html[data-card-columns] #s-profile #gifts .mosaic-item{position:relative;min-width:0;min-height:0;border-radius:18px;}
html[data-card-columns] #s-profile #gifts .mosaic-item>.gift{height:100%;aspect-ratio:auto;}
/* Preserve production native artwork geometry. */
.mosaic-handle{display:none;position:absolute;z-index:8;width:32px;height:32px;border-radius:10px;color:var(--deep);background:var(--bar);border:1px solid var(--hairline);font-size:21px;line-height:1;touch-action:none;user-select:none;}
.mosaic-editing .mosaic-handle{display:grid;place-items:center;}.mosaic-move{top:4px;left:calc(50% - 16px);cursor:grab;}
/* Transparent touch targets keep only the rounded corner grips visible. */
.mosaic-resize{width:36px;height:36px;padding:0;background:transparent;border:0;border-radius:12px;color:color-mix(in srgb,var(--bar) 45%,white);cursor:nwse-resize;}
.mosaic-resize svg{width:32px;height:32px;pointer-events:none;}
.mosaic-resize[data-corner="nw"]{top:-5px;left:-5px;}
.mosaic-resize[data-corner="ne"]{top:-5px;right:-5px;cursor:nesw-resize;}
.mosaic-resize[data-corner="sw"]{bottom:-5px;left:-5px;cursor:nesw-resize;}
.mosaic-resize[data-corner="se"]{bottom:-5px;right:-5px;}
.mosaic-resize[data-corner="ne"] svg{transform:rotate(90deg);}
.mosaic-resize[data-corner="sw"] svg{transform:rotate(-90deg);}
.mosaic-resize[data-corner="se"] svg{transform:rotate(180deg);}
.mosaic-resize:active{color:var(--bar);}
html.mosaic-editing-page,html.mosaic-editing-page body{overflow-anchor:none;}
.mosaic-size-preview{position:absolute;z-index:9;left:50%;top:50%;transform:translate(-50%,-50%);padding:6px 10px;border-radius:12px;background:var(--surface);color:var(--ink);border:1px solid var(--bar);font-size:12px;font-weight:800;white-space:nowrap;pointer-events:none;}
.mosaic-editing .gift{cursor:default;}.mosaic-editing .mosaic-selected,.mosaic-editing .mosaic-drop{outline:2px solid var(--bar);outline-offset:2px;}
.mosaic-toolbar{position:sticky;top:8px;z-index:20;padding:12px;margin:12px 0;background:var(--surface);border:1px solid var(--hairline);border-radius:16px;box-shadow:0 4px 16px #0002;}
.mosaic-toolbar p{margin:0 0 8px;color:var(--ink-dim);font-size:12px;line-height:1.4;}.mosaic-toolbar>div{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}.mosaic-toolbar button,.mosaic-toolbar select{padding:8px;border-radius:10px;background:var(--surface);color:var(--ink);border:1px solid var(--hairline);font-size:12px;}.mosaic-toolbar #mosaic-done{background:var(--bar);color:var(--deep);}.mosaic-toolbar label{display:flex;gap:8px;align-items:center;min-width:0;font-size:12px;margin-bottom:8px;}.mosaic-toolbar #mosaic-selected{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;}.mosaic-handle:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}

/* Editing previews show only artwork and an independent, unadorned number. */
.mosaic-number{display:none;}
html[data-card-columns] #s-profile #gifts.mosaic-editing .mosaic-item .gift>:not(.gift-visual){display:none!important;}

/* A focused editing screen, scoped to the mosaic session only. */
html.mosaic-editing-page .phone>:not(#s-profile),
html.mosaic-editing-page #s-profile>:not(#gifts):not(#mosaic-toolbar){display:none!important;}
html.mosaic-editing-page .phone{padding-top:12px!important;padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))!important;background-image:none!important;}
html.mosaic-editing-page .phone::before,html.mosaic-editing-page .phone::after{display:none!important;}
html.mosaic-editing-page #s-profile{margin:0!important;padding-top:0!important;}
html.mosaic-editing-page #gifts{margin-top:0!important;}
html.mosaic-editing-page .mosaic-size-preview{display:none;}
html.mosaic-editing-page #mosaic-toolbar{position:fixed;top:auto;bottom:calc(12px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:500px;box-sizing:border-box;margin:0;padding:8px;border-radius:22px;background:var(--surface);border:1px solid var(--hairline);box-shadow:0 6px 24px #0002;z-index:50;}
html.mosaic-editing-page #mosaic-toolbar>p,html.mosaic-editing-page #mosaic-toolbar>label{display:none!important;}
html.mosaic-editing-page #mosaic-toolbar>div{display:flex;gap:8px;flex-wrap:nowrap;}
html.mosaic-editing-page #mosaic-toolbar button{flex:1;min-height:48px;border-radius:15px;font-size:15px;font-weight:600;}
html.mosaic-editing-page #mosaic-toolbar #mosaic-done{transition:box-shadow .15s ease;}
html.mosaic-editing-page #mosaic-toolbar.mosaic-dirty #mosaic-done{box-shadow:0 0 0 2px var(--bar),0 3px 12px color-mix(in srgb,var(--bar) 30%,transparent);}
html.mosaic-editing-page{scroll-padding-top:12px;scroll-padding-bottom:110px;} html.mosaic-editing-page .mosaic-handle{scroll-margin-bottom:110px;scroll-margin-top:12px;}
html.mosaic-editing-page #s-profile{transform:none!important;animation:none!important;}

/* A limit changes only paint, so it cannot shift cards under the pointer. */
html.mosaic-editing-page #s-profile #gifts .mosaic-item.mosaic-limit{outline:2px solid #ed5265;outline-offset:2px;}
html.mosaic-editing-page #gifts .mosaic-limit .mosaic-resize{color:#ed5265;}

html.mosaic-editing-page #mosaic-toolbar #mosaic-reset{display:block!important;flex:.85;font-size:13px;}
html.mosaic-editing-page #mosaic-toolbar button{padding:8px 6px;font-size:14px;}
html.mosaic-editing-page #s-profile #gifts .mosaic-item.mosaic-dragging{z-index:30;outline:none;}
html.mosaic-editing-page #s-profile #gifts .mosaic-dragging>.gift{position:absolute!important;left:var(--mosaic-preview-left,0px)!important;top:var(--mosaic-preview-top,0px)!important;width:var(--mosaic-preview-width,100%)!important;height:var(--mosaic-preview-height,100%)!important;transition:none!important;box-shadow:0 0 0 2px var(--bar);}
html.mosaic-editing-page #s-profile #gifts .mosaic-dragging.mosaic-limit>.gift{box-shadow:0 0 0 2px #ed5265;}
html.mosaic-editing-page #gifts .mosaic-dragging .mosaic-resize[data-corner="nw"]{left:calc(var(--mosaic-preview-left,0px) - 5px);top:calc(var(--mosaic-preview-top,0px) - 5px);}
html.mosaic-editing-page #gifts .mosaic-dragging .mosaic-resize[data-corner="ne"]{right:auto;left:calc(var(--mosaic-preview-left,0px) + var(--mosaic-preview-width,100%) - 31px);top:calc(var(--mosaic-preview-top,0px) - 5px);}
html.mosaic-editing-page #gifts .mosaic-dragging .mosaic-resize[data-corner="sw"]{left:calc(var(--mosaic-preview-left,0px) - 5px);bottom:auto;top:calc(var(--mosaic-preview-top,0px) + var(--mosaic-preview-height,100%) - 31px);}
html.mosaic-editing-page #gifts .mosaic-dragging .mosaic-resize[data-corner="se"]{right:auto;bottom:auto;left:calc(var(--mosaic-preview-left,0px) + var(--mosaic-preview-width,100%) - 31px);top:calc(var(--mosaic-preview-top,0px) + var(--mosaic-preview-height,100%) - 31px);}

/* Movement follows the pointer without repacking until release. */
html.mosaic-editing-page #gifts .mosaic-item.mosaic-moving{z-index:40;transform:translate3d(var(--mosaic-move-x,0px),var(--mosaic-move-y,0px),0) scale(1.035);will-change:transform;pointer-events:none;}
html.mosaic-editing-page #gifts .mosaic-moving>.gift{box-shadow:0 12px 28px #0003,0 0 0 2px var(--bar);}
html.mosaic-editing-page #gifts .mosaic-moving .mosaic-move{cursor:grabbing;}
html.mosaic-editing-page #gifts .mosaic-drop{box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--bar) 35%,transparent);}
@media(prefers-reduced-motion:reduce){html.mosaic-editing-page #gifts .mosaic-item.mosaic-moving{transform:translate3d(var(--mosaic-move-x,0px),var(--mosaic-move-y,0px),0);}}

/* Hold feedback stays on the visual, leaving packing and scroll anchors stable. */
@keyframes mosaic-hold{
 0%{transform:scale(1) rotate(0deg);}
 15%{transform:scale(.97) rotate(-.8deg);}
 30%{transform:scale(.95) rotate(.9deg);}
 45%{transform:scale(.93) rotate(-1deg);}
 60%{transform:scale(.91) rotate(1.1deg);}
 75%{transform:scale(.9) rotate(-1.1deg);}
 90%{transform:scale(.89) rotate(1deg);}
 100%{transform:scale(.88) rotate(0deg);}
}
#gifts .mosaic-holding>.gift{animation:mosaic-hold 1.1s linear both;will-change:transform;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;}
#gifts .mosaic-holding{z-index:2;}
.mosaic-hold-progress{position:absolute;inset:-3px;z-index:12;pointer-events:none;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--bar) 35%,transparent));}
.mosaic-hold-progress svg{display:block;width:100%;height:100%;overflow:visible;}
.mosaic-hold-progress rect{fill:none;stroke-width:3;vector-effect:non-scaling-stroke;}
.mosaic-hold-progress .hold-track{stroke:color-mix(in srgb,var(--bar) 28%,transparent);}
.mosaic-hold-progress .hold-fill{stroke:var(--bar);stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;}
@keyframes mosaic-wiggle{0%,100%{transform:rotate(-.65deg);}50%{transform:rotate(.65deg);}}
html.mosaic-editing-page #gifts .mosaic-item>.gift{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab;animation:mosaic-wiggle .32s ease-in-out infinite;transform-origin:50% 50%;}
html.mosaic-editing-page #gifts .mosaic-item:nth-child(3n+2)>.gift{animation-delay:-.11s;animation-duration:.37s;}
html.mosaic-editing-page #gifts .mosaic-item:nth-child(3n)>.gift{animation-delay:-.23s;animation-duration:.34s;}
html.mosaic-editing-page #gifts .mosaic-item.mosaic-moving>.gift,
html.mosaic-editing-page #gifts .mosaic-item.mosaic-dragging>.gift{animation:none;transform:none;cursor:grabbing;}
@media(prefers-reduced-motion:reduce){
 #gifts .mosaic-holding>.gift{animation:none;transform:scale(.97);outline:2px solid var(--bar);outline-offset:2px;}
 html.mosaic-editing-page #gifts .mosaic-item>.gift{animation:none;}
}
