:root{--pink:#e8175a;--ink:#0a0a0a;--muted:#8e8e93;--line:#f2f2f7;--surface:#f5f5f7;--radius-sm:12px;--radius-md:20px;--radius-lg:28px;--radius-pill:999px}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font-family:Nunito Sans,Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer}.wally-app{min-height:100dvh;display:flex;flex-direction:column}.wally-top{height:64px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,.06);background:hsla(0,0%,100%,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:-webkit-sticky;position:sticky;top:0;z-index:100}.wally-logo{font-size:24px;letter-spacing:-.06em;font-weight:900;color:var(--ink)}.wally-logo-img{height:34px;width:auto;display:block;object-fit:contain}.wally-top-pill{height:36px;border:0;border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);padding:0 18px;font-size:13px;font-weight:800;letter-spacing:-.02em;transition:background .15s ease,transform .1s ease}.wally-top-pill:hover{background:#e8e8ec;transform:translateY(-1px)}.wally-top-pill:active{transform:translateY(0)}.wally-main{flex:1 1;min-height:0;display:flex;flex-direction:column}@keyframes ob-fade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ob-full{min-height:100dvh;display:flex;flex-direction:column;background:#f5f4f0}.ob-header{height:64px;padding:0 28px;display:flex;align-items:center;border-bottom:1px solid rgba(0,0,0,.06);background:hsla(0,0%,100%,.96);flex:0 0 auto}.ob-logo-img{height:26px;width:auto;display:block;object-fit:contain}.ob-body{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;animation:ob-fade .45s cubic-bezier(.22,1,.36,1) both}.ob-copy{text-align:center;margin-bottom:36px}.ob-hed{margin:0 0 10px;font-size:clamp(28px,6vw,40px);font-weight:900;letter-spacing:-.05em;line-height:1.05;color:#0a0a0a}.ob-dek{margin:0;font-size:14px;font-weight:500;color:#9e9e9e;letter-spacing:.01em;line-height:1.55}.ob-cards{display:flex;flex-direction:column;gap:14px;width:100%;max-width:440px}.ob-card{display:flex;align-items:center;gap:22px;padding:28px 24px;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:20px;cursor:pointer;text-align:left;box-shadow:0 1px 3px rgba(0,0,0,.04),0 2px 10px rgba(0,0,0,.03);transition:border-color .22s ease,transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease}.ob-card:hover{border-color:rgba(0,0,0,.13);transform:translateY(-2px);box-shadow:0 4px 20px rgba(0,0,0,.07)}.ob-card:active{transform:scale(.99);box-shadow:0 1px 3px rgba(0,0,0,.04)}.ob-card-icon{flex:0 0 auto;width:52px;height:52px;display:flex;align-items:center;justify-content:center;color:#3a3a3a}.ob-card-text{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:5px}.ob-card-title{display:block;font-size:17px;font-weight:700;color:#1a1a1a;letter-spacing:-.03em}.ob-card-desc{display:block;font-size:14px;font-weight:500;color:#9e9e9e;line-height:1.4}.ob-card-arrow{flex:0 0 auto;color:var(--pink);opacity:.6;transition:opacity .18s ease,transform .18s ease}.ob-card:hover .ob-card-arrow{opacity:1;transform:translateX(3px)}.ob-footer{flex:0 0 auto;padding:20px 24px max(20px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;gap:6px;color:#c2c0bc;font-size:11px;font-weight:500;letter-spacing:.01em}.ob-upload-screen{background:#f5f4f0;min-height:calc(100dvh - 56px)}.ob-upload-main,.ob-upload-screen{flex:1 1;display:flex;flex-direction:column}.ob-upload-main{gap:36px;padding:40px 24px;animation:ob-fade .45s cubic-bezier(.22,1,.36,1) both}.ob-upload-main,.ob-upload-tile{align-items:center;justify-content:center}.ob-upload-tile{display:flex;width:min(280px,72vw);aspect-ratio:1;border-radius:22px;border:1.5px dashed rgba(232,23,90,.45);background:rgba(232,23,90,.025);cursor:pointer;box-shadow:0 2px 20px rgba(0,0,0,.06);transition:background .22s ease,border-color .22s ease,transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease}.ob-upload-tile:hover{background:rgba(232,23,90,.05);border-color:rgba(232,23,90,.65);transform:scale(1.015);box-shadow:0 4px 28px rgba(0,0,0,.08)}.ob-upload-tile:active{transform:scale(.99)}.ob-upload-plus-icon{font-size:52px;font-weight:200;line-height:1;color:var(--pink)}.ob-upload-copy{text-align:center;display:flex;flex-direction:column;gap:8px}@media(max-width:768px){.ob-header{height:56px;padding:0 20px}.ob-body{padding:32px 20px}.ob-copy{margin-bottom:28px}}@media(min-width:769px){.ob-cards{max-width:480px}.ob-card{padding:32px 28px;gap:24px}.ob-upload-tile{width:min(300px,40vw)}.ob-upload-screen{min-height:calc(100dvh - 64px)}}.choice-screen{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px}.choice-head{text-align:center;margin-bottom:40px}.choice-head h1{margin:0 0 10px;font-size:42px;line-height:1;letter-spacing:-.06em;font-weight:900;color:var(--ink)}.choice-head p{margin:0;color:var(--muted);font-size:16px;font-weight:600;line-height:1.4}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,300px));grid-gap:20px;gap:20px;justify-content:center;width:100%}.choice-card{border:0;background:#fff;border-radius:var(--radius-md);overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.05),0 8px 32px rgba(0,0,0,.08);text-align:left;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease}.choice-card:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 8px 24px rgba(0,0,0,.1),0 24px 56px rgba(0,0,0,.12)}.choice-art{height:190px;background:linear-gradient(145deg,#f7f3ef,#fafafa);display:flex;align-items:center;justify-content:center;padding:24px}.choice-copy{position:relative;padding:18px 64px 20px 20px;border-top:1px solid rgba(0,0,0,.04)}.choice-copy h2{margin:0 0 5px;font-size:19px;line-height:1.1;letter-spacing:-.04em;font-weight:800;color:var(--ink)}.choice-copy p{margin:0;color:var(--muted);font-size:13px;font-weight:600;line-height:1.4}.choice-arrow{position:absolute;right:18px;top:50%;transform:translateY(-50%);color:var(--pink);display:flex;align-items:center;opacity:.5;transition:opacity .15s ease,transform .15s ease}.choice-card:hover .choice-arrow{opacity:1;transform:translateY(-50%) translateX(3px)}.tile-mockup{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;width:148px}.tile-mockup span{aspect-ratio:1;border-radius:8px;background:linear-gradient(135deg,#e2ddf5,#cdc7e8);box-shadow:0 2px 6px rgba(0,0,0,.1)}.poster-mockup{display:flex;gap:10px;align-items:flex-end;height:140px}.poster-mockup span{width:56px;border-radius:8px;background:linear-gradient(170deg,#f0e4dc,#e4ccc0);box-shadow:0 2px 6px rgba(0,0,0,.1)}.poster-mockup span:first-child{height:110px}.poster-mockup span:nth-child(2){height:140px}.poster-mockup span:nth-child(3){height:88px}.upload-zone{flex:1 1;display:flex;align-items:center;justify-content:center;padding:32px 24px;text-align:center}.upload-button{width:min(480px,100%);border:2px dashed rgba(236,27,114,.28);border-radius:var(--radius-lg);background:rgba(236,27,114,.03);padding:52px 28px;transition:border-color .2s ease,background .2s ease,transform .15s ease}.upload-button:hover{border-color:rgba(236,27,114,.52);background:rgba(236,27,114,.06);transform:translateY(-2px)}.upload-button h1{margin:0 0 10px;font-size:22px;font-weight:800;letter-spacing:-.04em;color:var(--ink)}.upload-button p{margin:0 auto;color:var(--muted);font-size:14px;font-weight:600;line-height:1.5;max-width:320px}.upload-plus{width:68px;height:68px;border-radius:50%;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;background:var(--pink);color:#fff;font-size:36px;font-weight:300;line-height:1;box-shadow:0 8px 24px rgba(236,27,114,.35);transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease}.upload-button:hover .upload-plus{transform:scale(1.1);box-shadow:0 12px 32px rgba(236,27,114,.45)}.editor{flex:1 1;display:flex;flex-direction:column;justify-content:flex-start;min-height:0;padding-bottom:220px}.wall-composition{display:contents}.gallery{min-height:0;overflow-x:auto;display:flex;align-items:flex-start;gap:20px;padding:28px 28px 260px;scroll-snap-type:x mandatory;scrollbar-width:none}.gallery::-webkit-scrollbar{display:none}.print-card{flex:0 0 360px;width:360px;max-width:360px;position:relative;border:0;background:transparent;padding:10px;scroll-snap-align:center;transition:transform .22s cubic-bezier(.34,1.56,.64,1)}.print-card:hover{transform:translateY(-5px)}.print-metal{--s:1;width:100%;overflow:hidden;border-radius:8px;position:relative;background:#d8d4cd;box-shadow:0 .5px 1px rgba(0,0,0,.24),0 2px 5px rgba(0,0,0,.18),0 10px 24px rgba(0,0,0,.16),0 28px 58px rgba(0,0,0,.1);transform:scale(var(--s)) translateZ(0);transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1)}.print-metal:before{z-index:2;background:linear-gradient(180deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,0) 40%,rgba(0,0,0,.055));transform:translateZ(0)}.print-metal:after,.print-metal:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none}.print-metal:after{z-index:3;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.22),inset 1px 0 0 hsla(0,0%,100%,.08),inset -1px 0 0 rgba(0,0,0,.16),inset 0 -1px 1px rgba(0,0,0,.18),inset 0 0 0 .5px rgba(0,0,0,.1)}.print-card.active .print-metal:before,.print-card:hover .print-metal:before{background:linear-gradient(180deg,hsla(0,0%,100%,.12),hsla(0,0%,100%,0) 40%,rgba(0,0,0,.055))}.print-card:hover .print-metal{transform:scale(var(--s)) translateY(-2px) translateZ(0);box-shadow:0 1px 2px rgba(0,0,0,.26),0 5px 12px rgba(0,0,0,.18),0 16px 34px rgba(0,0,0,.18),0 38px 76px rgba(0,0,0,.12)}.print-metal img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;transform-origin:center center;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden;image-rendering:auto;z-index:1;animation:img-appear .35s cubic-bezier(.22,1,.36,1) both}.photo-skeleton{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;background:linear-gradient(180deg,hsla(0,0%,100%,.52),hsla(0,0%,100%,0) 42%),linear-gradient(135deg,#f3f1ec,#ebe8e1 52%,#f7f6f2);transition:opacity .24s cubic-bezier(.22,1,.36,1);overflow:hidden}.photo-skeleton:after{content:"";position:absolute;inset:-20%;background:linear-gradient(105deg,hsla(0,0%,100%,0) 34%,hsla(0,0%,100%,.42) 50%,hsla(0,0%,100%,0) 66%);transform:translateX(-35%);animation:skeleton-sheen 1.8s ease-in-out infinite;opacity:.55}.print-card.is-image-pending .photo-skeleton{opacity:1}.print-card.is-image-pending .print-metal img.photo-img{opacity:0!important;animation:none}.print-card.is-image-ready .print-metal img.photo-img{opacity:1;animation:none;transition:opacity .28s cubic-bezier(.22,1,.36,1)}.editor .print-card:not(.placeholder-card) .print-metal img{filter:contrast(1.04) saturate(1.05)}.print-metal img.swap-crossfade-ghost{z-index:2;pointer-events:none;animation:swap-ghost-out .5s cubic-bezier(.22,1,.36,1) both!important}.photo-size-chip{position:absolute;bottom:10px;left:10px;z-index:3;pointer-events:none;background:rgba(0,0,0,.38);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.01em;line-height:1}.env-active .photo-size-chip{font-size:8.5px;padding:2px 5px;bottom:5px;left:5px;letter-spacing:0}.add-photo-card{width:200px;aspect-ratio:1;background:rgba(232,23,90,.04)!important;border:1.5px dashed rgba(232,23,90,.25);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--pink);font-weight:800;transition:background .22s ease,border-color .22s ease;box-shadow:none!important}.add-photo-card:hover{background:rgba(232,23,90,.08)!important;border-color:rgba(232,23,90,.45)}.add-photo-plus{font-size:32px;line-height:1;font-weight:300}.add-photo-text{font-size:12px;font-weight:700;letter-spacing:.01em}.print-overlay{position:absolute;inset:0;background:hsla(0,0%,4%,.16);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;border-radius:8px;z-index:5;pointer-events:none}.print-card.active .print-overlay{opacity:1;pointer-events:auto}.card-actions{display:flex;gap:8px;align-items:center}.card-action-btn{display:inline-flex;align-items:center;background:hsla(0,0%,100%,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:999px;padding:8px 16px;font-size:12px;font-weight:700;color:var(--ink);letter-spacing:-.01em;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,.12);pointer-events:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .18s ease,transform .15s ease;white-space:nowrap}.card-action-btn:hover{background:#fff;transform:translateY(-1px)}.card-action-btn:active{transform:scale(.97)}.add-photo-sub,.panel-subtotal,.panel-title{display:none}.edit-circle{width:50px;height:50px;border-radius:var(--radius-pill);background:hsla(0,0%,100%,.96);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(0,0,0,.18);font-size:20px;transition:transform .15s ease,box-shadow .15s ease}.edit-circle:hover{transform:scale(1.1);box-shadow:0 8px 28px rgba(0,0,0,.22)}.edit-toolbar{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:30;display:flex;gap:4px;background:hsla(0,0%,100%,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-pill);padding:5px;box-shadow:0 8px 32px rgba(0,0,0,.16)}.edit-toolbar button{border:0;background:var(--ink);color:#fff;border-radius:var(--radius-pill);padding:7px 14px;font-size:12px;font-weight:700;letter-spacing:-.01em;transition:background .15s ease,transform .1s ease}.edit-toolbar button:hover{background:#2a2a2a;transform:translateY(-1px)}.edit-toolbar button:active{transform:translateY(0)}.bottom-bar{overflow:visible;position:fixed;bottom:0;left:0;right:0;background:hsla(0,0%,100%,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(0,0,0,.06);padding:12px 20px 16px;display:flex;flex-direction:column;gap:10px;z-index:50}.bottom-bar-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.free-shipping-bar{width:100%;padding:10px 2px 4px}.free-shipping-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px}.free-shipping-label{font-size:9.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:rgba(0,0,0,.32)}.free-shipping-amount{font-size:11px;font-weight:600;color:rgba(0,0,0,.42);letter-spacing:-.01em}.free-shipping-bar.is-unlocked .free-shipping-amount{color:#1a9651;font-weight:700}.free-shipping-track{width:100%;height:2px;background:rgba(0,0,0,.07);border-radius:var(--radius-pill);overflow:hidden}.free-shipping-fill{height:100%;background:rgba(0,0,0,.2);border-radius:var(--radius-pill);transition:width .5s cubic-bezier(.22,1,.36,1)}.free-shipping-bar.is-unlocked .free-shipping-fill{background:#1a9651}.smart-upsell{width:100%;background:var(--surface);border:0;color:var(--muted);font-size:12px;font-weight:600;text-align:center;border-radius:var(--radius-pill);padding:8px 14px;line-height:1.3;letter-spacing:-.01em}.size-section{display:none;flex-direction:column;gap:8px}.size-section-label{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.apply-all-btn{border:none;background:none;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:-.01em;cursor:pointer;padding:0;align-self:flex-end;transition:color .15s ease}.apply-all-btn:hover{color:var(--ink)}@keyframes card-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.print-card.is-deleting{animation:card-out .26s cubic-bezier(.22,1,.36,1) forwards;pointer-events:none}.delete-btn{display:none;position:absolute;top:8px;right:8px;z-index:30;width:32px;height:32px;border-radius:50%;background:hsla(0,0%,100%,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:rgba(0,0,0,.6);align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:0 1px 6px rgba(0,0,0,.14);transition:background .18s ease,color .18s ease,transform .15s ease}.delete-btn:hover{background:hsla(0,100%,97%,.96);color:#b91c1c}.delete-btn:active{transform:scale(.88)}.print-card.active .delete-btn{display:flex}@keyframes toast-rise{0%{opacity:0;transform:translateX(-50%) translateY(8px) scale(.97)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}.undo-toast{position:fixed;bottom:24px;left:50%;z-index:300;display:flex;align-items:center;gap:12px;padding:11px 14px 11px 18px;border-radius:999px;background:hsla(0,0%,9%,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font-size:13px;font-weight:600;box-shadow:0 8px 32px rgba(0,0,0,.24);white-space:nowrap;animation:toast-rise .28s cubic-bezier(.22,1,.36,1) both}.undo-btn,.undo-toast{color:#fff;letter-spacing:-.01em}.undo-btn{border:none;background:hsla(0,0%,100%,.16);border-radius:999px;padding:5px 14px;font-size:12px;font-weight:700;cursor:pointer;transition:background .18s ease}.undo-btn:hover{background:hsla(0,0%,100%,.26)}@keyframes hint-fade{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes picker-rise{0%{opacity:0;transform:translateX(-50%) translateY(6px) scale(.96)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}@keyframes skeleton-sheen{0%{transform:translateX(-42%);opacity:.22}45%{opacity:.55}to{transform:translateX(42%);opacity:.18}}@media (prefers-reduced-motion:reduce){.photo-skeleton:after{animation:none;opacity:.22}}@keyframes img-appear{0%{opacity:0}to{opacity:1}}@keyframes subtotal-pop{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.size-hint{display:none;text-align:center;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:-.01em;padding:2px 0;animation:hint-fade .4s cubic-bezier(.22,1,.36,1) both}.floating-size-picker{position:absolute;left:50%;bottom:-12px;z-index:40;display:flex;gap:4px;padding:5px;border-radius:22px;background:hsla(0,0%,100%,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 12px 34px rgba(0,0,0,.12),0 1px 4px rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.05);justify-content:center;white-space:nowrap;animation:picker-rise .28s cubic-bezier(.22,1,.36,1) forwards;will-change:transform,opacity}.fsp-pill{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 12px;border-radius:16px;border:1.5px solid rgba(0,0,0,.08);background:#f8f8f7;cursor:pointer;min-width:56px;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .15s ease}.fsp-pill:hover{background:#fff;border-color:rgba(0,0,0,.16);transform:translateY(-1px)}.fsp-pill:active{transform:scale(.96)}.fsp-pill.active{background:#fff;border-color:var(--pink);box-shadow:0 0 0 4px rgba(232,23,90,.08)}.fsp-label{font-size:12px;font-weight:700;color:var(--ink);letter-spacing:-.02em}.fsp-price{font-size:10px;font-weight:500;color:var(--muted)}@keyframes action-sheet-rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}.action-sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:205;touch-action:none;-webkit-tap-highlight-color:transparent}.action-sheet{position:fixed;bottom:0;left:0;right:0;z-index:210;padding:0 10px max(14px,env(safe-area-inset-bottom));animation:action-sheet-rise .34s cubic-bezier(.25,.46,.45,.94) both}.action-sheet-group{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.1),0 2px 8px rgba(0,0,0,.06)}.action-sheet-handle{width:36px;height:4px;background:rgba(0,0,0,.12);border-radius:2px;margin:12px auto 0}.action-sheet-header{padding:18px 20px 16px;border-bottom:1px solid rgba(0,0,0,.055)}.action-sheet-title{font-size:18px;font-weight:800;color:var(--ink);letter-spacing:-.04em;margin-bottom:3px}.action-sheet-subtitle{font-size:13px;font-weight:500;color:var(--muted);letter-spacing:-.01em}.action-sheet-item{display:flex;align-items:center;gap:14px;width:100%;padding:14px 18px;border:none;background:#fff;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;transition:background .12s ease}.action-sheet-item+.action-sheet-item{border-top:1px solid rgba(0,0,0,.055)}.action-sheet-item:active{background:rgba(0,0,0,.04)}.asi-icon{width:44px;height:44px;border-radius:12px;background:rgba(232,23,90,.08);color:var(--pink);display:flex;align-items:center;justify-content:center;flex-shrink:0}.asi-text{flex:1 1;display:flex;flex-direction:column;gap:2px;min-width:0}.asi-label{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.02em}.asi-sub{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:-.01em}.asi-chevron{color:rgba(0,0,0,.22);flex-shrink:0}.action-sheet-cancel{display:block;width:100%;margin-top:10px;padding:16px;border:none;background:#fff;border-radius:18px;font-size:16px;font-weight:700;color:var(--ink);cursor:pointer;text-align:center;letter-spacing:-.02em;box-shadow:0 2px 14px rgba(0,0,0,.07);-webkit-tap-highlight-color:transparent;transition:background .12s ease}.action-sheet-cancel:active{background:rgba(0,0,0,.04)}.size-sheet{position:fixed;bottom:0;left:0;right:0;z-index:210;background:#fff;border-radius:24px 24px 0 0;padding:0 0 max(14px,env(safe-area-inset-bottom));box-shadow:0 -4px 32px rgba(0,0,0,.1);animation:action-sheet-rise .34s cubic-bezier(.25,.46,.45,.94) both}.size-sheet-handle{width:36px;height:4px;background:rgba(0,0,0,.12);border-radius:2px;margin:10px auto 0}.size-sheet-header{padding:12px 16px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.size-sheet-title{font-size:17px;font-weight:800;color:var(--ink);letter-spacing:-.04em;margin-bottom:2px}.size-sheet-subtitle{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:-.01em}.size-sheet-done{border:none;background:none;color:var(--pink);font-size:15px;font-weight:600;cursor:pointer;padding:4px 0;letter-spacing:-.01em;flex-shrink:0;-webkit-tap-highlight-color:transparent;font-family:inherit}.size-sheet-done:active{opacity:.7}.size-sheet-carousel-wrap{display:flex;align-items:center;gap:4px;padding:0 8px 8px}.size-sheet-nav{flex-shrink:0;width:34px;height:34px;border:none;background:rgba(0,0,0,.05);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);-webkit-tap-highlight-color:transparent;transition:background .15s ease}.size-sheet-nav:active{background:rgba(0,0,0,.1)}.size-sheet-carousel{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 16px 16px;-webkit-overflow-scrolling:touch}.size-sheet-carousel::-webkit-scrollbar{display:none}.size-card{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 10px 10px;width:84px;background:#fff;border:1.5px solid rgba(0,0,0,.09);border-radius:16px;cursor:pointer;scroll-snap-align:center;-webkit-tap-highlight-color:transparent;transition:border-color .18s ease,box-shadow .18s ease}.size-card:active{background:rgba(0,0,0,.03)}.size-card.selected{border-color:var(--pink);box-shadow:0 0 0 3px rgba(232,23,90,.1)}.size-card.group-start{margin-left:20px;border-left:none;position:relative}.size-card.group-start:before{content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:1px;background:rgba(0,0,0,.1)}.size-card-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:rgba(0,0,0,.4)}.size-card.selected .size-card-icon{color:var(--pink)}.size-card-label{font-size:11px;font-weight:800;color:var(--ink);letter-spacing:-.01em;text-align:center;white-space:nowrap}.size-card-price{font-size:10px;font-weight:500;color:var(--muted);letter-spacing:.01em}.size-sheet-apply{display:block;width:calc(100% - 32px);margin:0 16px;padding:16px;border:none;background:var(--pink);color:#fff;border-radius:16px;font-size:16px;font-weight:800;cursor:pointer;text-align:center;letter-spacing:-.02em;box-shadow:0 4px 20px rgba(232,23,90,.3);-webkit-tap-highlight-color:transparent;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.size-sheet-apply:active{transform:scale(.98);box-shadow:0 2px 10px rgba(232,23,90,.2)}.print-card.size-sm .print-metal{--s:.85}.print-card.size-md .print-metal{--s:.93}.print-card.is-picking{z-index:20;position:relative;overflow:visible}.size-row{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.size-row::-webkit-scrollbar{display:none}.size-pill{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1.5px solid #e5e7eb;background:#fff;color:var(--ink);border-radius:var(--radius-pill);padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;letter-spacing:-.01em;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .1s ease}.size-pill:hover{border-color:#c5c5c5;transform:translateY(-1px)}.size-pill.active{border-color:var(--pink);color:var(--pink);background:rgba(236,27,114,.07)}.size-group{display:flex;flex-direction:column;gap:6px}.size-group-title{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:rgba(0,0,0,.38)}.bottom-bar-row>button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:var(--ink);color:#fff;border-radius:var(--radius-pill);padding:13px 24px;font-size:14px;font-weight:800;cursor:pointer;white-space:nowrap;letter-spacing:-.02em;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.bottom-bar-row>button:hover{background:#1a1a1a;transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2)}.bottom-bar-row>button:active{transform:translateY(0);box-shadow:none}.bottom-bar-row>button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}@keyframes modal-rise{0%{opacity:0;transform:scale(.97) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.edit-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:32px;touch-action:none;overscroll-behavior:none}.edit-backdrop{position:absolute;inset:0;backdrop-filter:blur(32px) saturate(160%);-webkit-backdrop-filter:blur(32px) saturate(160%);background:rgba(0,0,0,.44)}.edit-content{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;margin:auto;animation:modal-rise .38s cubic-bezier(.22,1,.36,1) both}.edit-crop-frame{position:relative;flex:0 0 auto;width:min(84vw,500px);max-width:500px;border-radius:24px;overflow:hidden;background:#1a1a1a;box-shadow:0 32px 96px rgba(0,0,0,.6),0 4px 16px rgba(0,0,0,.25);touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:-webkit-grab;cursor:grab;contain:layout style}.edit-crop-frame:active{cursor:-webkit-grabbing;cursor:grabbing}.edit-crop-frame.square{aspect-ratio:1/1}.edit-crop-frame.landscape,.edit-crop-frame.poster{aspect-ratio:var(--ar)}.edit-crop-frame .edit-preview-image{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;border-radius:0;box-shadow:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transform-origin:center center;will-change:transform}.bottom-edit-toolbar{display:flex;align-items:center;gap:0;background:hsla(0,0%,100%,.9);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);border:1px solid rgba(0,0,0,.07);padding:0 4px;border-radius:100px;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.85),0 4px 24px rgba(0,0,0,.2),0 1px 4px rgba(0,0,0,.1)}.bottom-edit-toolbar button{border:none;background:none;color:rgba(0,0,0,.78);padding:10px 18px;border-radius:100px;font-size:13px;font-weight:500;letter-spacing:-.015em;font-family:inherit;line-height:1;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .12s ease,color .12s ease}.bottom-edit-toolbar button+button{border-left:1px solid rgba(0,0,0,.1)}.bottom-edit-toolbar button:hover{background:rgba(0,0,0,.06);transform:none;box-shadow:none}.bottom-edit-toolbar button:active{background:rgba(0,0,0,.07);color:rgba(0,0,0,.92);transform:none;box-shadow:none}.crop-hint{align-self:center;padding:7px 18px;border-radius:999px;background:hsla(0,0%,100%,.88);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border:1px solid rgba(0,0,0,.06);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.8),0 2px 12px rgba(0,0,0,.14),0 1px 3px rgba(0,0,0,.08);font-size:13px;font-weight:500;color:rgba(0,0,0,.68);letter-spacing:-.01em;text-align:center;white-space:nowrap;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:opacity .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1)}.crop-hint.is-hiding{opacity:0;transform:translateY(-4px);pointer-events:none}.zoom-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:120px;height:3px;border-radius:var(--radius-pill);background:rgba(0,0,0,.14);outline:none;cursor:pointer;align-self:center;margin:0 8px;flex-shrink:0;touch-action:pan-x}.zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,.72);cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.22);-webkit-transition:transform .2s cubic-bezier(.22,1,.36,1),background .15s ease;transition:transform .2s cubic-bezier(.22,1,.36,1),background .15s ease}.zoom-slider::-webkit-slider-thumb:hover{transform:scale(1.18);background:rgba(0,0,0,.86)}.zoom-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,.72);border:none;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.22)}.print-metal.square{aspect-ratio:1/1}.print-metal.landscape,.print-metal.poster{aspect-ratio:var(--ar)}@media (max-width:768px){.wally-top{padding:0 20px;height:56px;border-bottom:1px solid rgba(0,0,0,.05)}.wally-logo-img{height:28px}.wally-top-pill{height:32px;font-size:12px;font-weight:700;padding:0 13px;background:rgba(0,0,0,.055)}.choice-head h1{font-size:34px}.choice-grid,.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery{display:grid;grid-column-gap:10px;column-gap:10px;grid-row-gap:16px;row-gap:16px;padding:16px 12px 300px;overflow:visible;scroll-snap-type:none;align-items:start}.print-card{width:100%;max-width:none;padding:0;margin:0;display:block;page-break-inside:auto;break-inside:auto;scroll-snap-align:none;transition:opacity .22s ease;position:relative}.print-card:hover{transform:none}.print-card:active{opacity:.92}.print-card.landscape-card{grid-column:span 2}.print-metal{width:100%;border-radius:8px;box-shadow:0 .5px 1px rgba(0,0,0,.24),0 2px 5px rgba(0,0,0,.18),0 10px 24px rgba(0,0,0,.16),0 28px 58px rgba(0,0,0,.1);transition:transform .3s cubic-bezier(.22,1,.36,1);will-change:transform;transform:scale(var(--s)) translateZ(0)}.print-card.size-sm .print-metal{--s:.88}.print-card.size-md .print-metal{--s:.94}.print-card.size-lg.square-card .print-metal{--s:.96}.print-card:hover .print-metal{transform:scale(var(--s)) translateZ(0)}.undo-toast{bottom:calc(170px + env(safe-area-inset-bottom));animation-name:toast-rise-mobile}@keyframes toast-rise-mobile{0%{opacity:0;transform:translateX(-50%) translateY(6px) scale(.97)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}.print-metal.square{aspect-ratio:1/1;height:auto;overflow:hidden}.print-metal.landscape,.print-metal.poster{aspect-ratio:var(--ar);height:auto;overflow:hidden}.add-photo-card{width:100%;min-width:unset;aspect-ratio:1;border-radius:14px;background:rgba(232,23,90,.03)!important;border:1px dashed rgba(232,23,90,.22);gap:5px}.add-photo-plus{font-size:22px;color:rgba(232,23,90,.45)}.add-photo-text{font-size:10.5px;color:rgba(232,23,90,.4);letter-spacing:.01em}.print-overlay{display:none!important}.print-card.active .print-metal{box-shadow:0 0 0 2.5px var(--pink),0 0 0 6px rgba(232,23,90,.12),0 2px 6px rgba(0,0,0,.08),0 10px 28px rgba(0,0,0,.14)}.editor{padding-bottom:0;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch}.bottom-bar{padding:8px 16px max(12px,env(safe-area-inset-bottom));gap:6px;background:hsla(0,0%,100%,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(0,0,0,.05)}.free-shipping-bar{padding:8px 2px 2px}.smart-upsell{font-size:11px;padding:5px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.size-hint{display:block}.size-row{gap:6px;overflow:visible;padding-top:4px}.size-pill{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 10px;border-radius:10px;border:1.5px solid rgba(0,0,0,.09);background:#fff;white-space:normal}.size-pill-label{font-size:11.5px;font-weight:800;color:var(--ink);letter-spacing:-.02em}.size-pill-price{font-size:10px;font-weight:600;color:var(--muted);letter-spacing:.01em}.size-pill.active{border-color:var(--pink);background:#fff;color:var(--ink);box-shadow:0 0 0 2px rgba(232,23,90,.08)}.size-pill.active .size-pill-label{color:var(--ink)}.size-pill.active .size-pill-price{color:var(--muted)}.bottom-bar-row{flex-direction:column;align-items:stretch;gap:6px}.bottom-bar-row>button{width:100%;min-height:54px;font-size:15px;font-weight:800;border-radius:16px;letter-spacing:-.02em;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.bottom-bar-row>button,.bottom-bar-row>button:hover{background:var(--pink);box-shadow:0 4px 18px rgba(232,23,90,.3)}.bottom-bar-row>button:hover{transform:none}.bottom-bar-row>button:active{transform:scale(.975);box-shadow:0 2px 8px rgba(232,23,90,.18)}.edit-crop-frame{width:min(92vw,420px)}.zoom-slider{width:100px}}@media (min-width:769px){.wally-app{background:#f5f4f0}.wally-top{background:hsla(0,0%,100%,.96);border-bottom:1px solid rgba(0,0,0,.05)}.editor{flex-direction:row;padding-bottom:0;height:calc(100dvh - 64px);overflow:hidden;background:#f5f4f0}.editor,.gallery{align-items:flex-start}.gallery{flex:1 1;height:100%;overflow-y:auto;overflow-x:hidden;display:flex;flex-wrap:wrap;gap:28px;align-content:start;padding:32px 24px 56px 36px;scroll-snap-type:none;scrollbar-width:none}.print-card{display:block;width:var(--dtile-w,175px);max-width:100%;flex:0 0 auto;padding:0;scroll-snap-align:none;transition:transform .28s cubic-bezier(.22,1,.36,1)}.print-card.size-md .print-metal,.print-card.size-sm .print-metal{--s:1}.print-card:hover{transform:translateY(-3px)}.print-metal{width:100%;max-height:none;border-radius:8px;box-shadow:0 .5px 1px rgba(0,0,0,.24),0 2px 5px rgba(0,0,0,.18),0 10px 24px rgba(0,0,0,.16),0 28px 58px rgba(0,0,0,.1);transform:scale(var(--s)) translateZ(0);transition:transform .36s cubic-bezier(.22,1,.36,1),box-shadow .36s cubic-bezier(.22,1,.36,1)}.print-card:hover .print-metal{transform:scale(var(--s)) translateY(-2px) translateZ(0);box-shadow:0 1px 2px rgba(0,0,0,.26),0 5px 12px rgba(0,0,0,.18),0 16px 34px rgba(0,0,0,.18),0 38px 76px rgba(0,0,0,.12)}.print-card.active{z-index:5;position:relative}.edit-circle{display:none}.delete-btn{display:none!important}.undo-toast{left:auto;right:28px;bottom:32px;transform:none;animation:toast-rise-desktop .28s cubic-bezier(.22,1,.36,1) both}@keyframes toast-rise-desktop{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.edit-toolbar,.print-overlay{display:none}.print-card.active .print-metal{box-shadow:0 0 0 1px rgba(255,79,135,.42),0 0 0 5px rgba(232,23,90,.09),2px 8px 22px rgba(0,0,0,.1),4px 22px 56px rgba(0,0,0,.14)}.add-photo-card{width:100%;aspect-ratio:1;border-radius:18px;background:rgba(232,23,90,.025)!important;border:1px dashed rgba(232,23,90,.22);box-shadow:none!important;gap:6px;color:rgba(232,23,90,.4);transition:background .28s cubic-bezier(.22,1,.36,1),border-color .28s ease}.add-photo-card:hover{background:rgba(232,23,90,.055)!important;border-color:rgba(232,23,90,.38)}.add-photo-plus{font-size:20px;font-weight:300;color:rgba(232,23,90,.45)}.add-photo-text{font-size:11px;color:rgba(232,23,90,.4);font-weight:600;letter-spacing:.01em}.add-photo-sub{display:block;font-size:9.5px;color:rgba(0,0,0,.22);font-weight:600;letter-spacing:.03em;text-transform:uppercase}.bottom-bar{position:-webkit-sticky;position:sticky;top:24px;align-self:start;left:auto;right:auto;bottom:auto;flex:0 0 300px;width:300px;height:-moz-fit-content;height:fit-content;margin:20px 24px 0 0;border-radius:26px;border:1px solid rgba(0,0,0,.065);background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 2px 12px rgba(0,0,0,.04),0 8px 32px rgba(0,0,0,.06);padding:22px;gap:16px;flex-direction:column;align-items:stretch;justify-content:flex-start;z-index:auto}.panel-title{display:block;font-size:18px;font-weight:900;letter-spacing:-.05em;color:var(--ink);padding-bottom:0}.bottom-bar::-webkit-scrollbar{display:none}.bottom-bar-row{flex-direction:column;align-items:stretch;gap:12px}.panel-subtotal{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0 4px;border-top:1px solid rgba(0,0,0,.055)}.panel-subtotal span:first-child{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.01em;text-transform:uppercase}.panel-subtotal span:last-child{font-size:24px;font-weight:900;color:var(--ink);letter-spacing:-.06em;animation:subtotal-pop .24s cubic-bezier(.22,1,.36,1) both}.bottom-bar-row>button{width:100%;padding:17px;font-size:14px;font-weight:800;border-radius:16px;letter-spacing:-.02em;background:var(--pink);box-shadow:0 4px 20px rgba(232,23,90,.28);transition:background .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease}.bottom-bar-row>button:hover{background:#d0134e;transform:translateY(-2px);box-shadow:0 8px 28px rgba(232,23,90,.36)}.bottom-bar-row>button:active{transform:translateY(0) scale(.985);box-shadow:0 2px 10px rgba(232,23,90,.18)}.bottom-bar-row>button:disabled{opacity:.38;transform:none;box-shadow:none}.size-section{display:flex}.size-hint{display:none}.size-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));grid-gap:7px;gap:7px;background:none;padding:0;overflow:visible}.size-pill{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:12px 6px;font-size:12px;font-weight:700;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#f8f8f7;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;transform:none;transition:border-color .28s cubic-bezier(.22,1,.36,1),background .28s ease,box-shadow .28s ease,transform .28s cubic-bezier(.22,1,.36,1)}.size-pill-label{font-size:12px;font-weight:800;letter-spacing:-.02em}.size-pill-price{font-size:10.5px;font-weight:600;color:var(--muted);letter-spacing:.01em}.size-pill:hover{border-color:rgba(0,0,0,.18);background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.06);transform:translateY(-2px)}.size-pill.active{background:#fff;border-color:var(--pink);color:var(--ink);box-shadow:0 0 0 3px rgba(232,23,90,.08),0 2px 8px rgba(232,23,90,.1);transform:none}.size-pill.active .size-pill-label{color:var(--ink)}.size-pill.active .size-pill-price{color:var(--muted)}.free-shipping-bar{padding:10px 0 4px}.smart-upsell{display:none}.edit-crop-frame{border-radius:28px}.edit-crop-frame.square{width:min(min(580px,82vw),calc(100dvh - 180px))}.edit-crop-frame.poster{width:min(min(580px,82vw),calc((100dvh - 180px) / 1.5))}.edit-crop-frame.landscape{width:min(min(580px,82vw),calc((100dvh - 180px) * 1.5))}.bottom-edit-toolbar{margin-top:16px}.zoom-slider{width:160px}}.drag-handle{position:absolute;top:7px;left:7px;z-index:20;width:36px;height:36px;border-radius:10px;background:hsla(0,0%,100%,.82);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 1px 5px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;color:rgba(0,0,0,.45);cursor:-webkit-grab;cursor:grab;touch-action:none;pointer-events:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.drag-handle:hover{background:hsla(0,0%,100%,.96);color:rgba(0,0,0,.65);box-shadow:0 2px 8px rgba(0,0,0,.22)}.drag-handle:active,.drag-overlay-card{cursor:-webkit-grabbing;cursor:grabbing}.drag-overlay-card{transform:scale(1.01) rotate(-.4deg)!important;pointer-events:none}.drag-overlay-card .print-metal{transform:translateY(-4px) scale(1.01) translateZ(0)!important;box-shadow:0 8px 16px rgba(0,0,0,.18),0 20px 40px rgba(0,0,0,.22),0 40px 80px rgba(0,0,0,.14)!important}@keyframes toolbar-appear{0%{opacity:0;transform:translateX(-50%) scale(.92) translateY(6px)}to{opacity:1;transform:translateX(-50%) scale(1) translateY(0)}}.card-toolbar{position:fixed;z-index:200;transform:translateX(-50%);background:hsla(0,0%,98%,.96);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border-radius:20px;box-shadow:0 8px 32px rgba(0,0,0,.14),0 2px 8px rgba(0,0,0,.08),0 0 0 .5px rgba(0,0,0,.07);display:flex;align-items:center;padding:5px 6px;gap:1px;animation:toolbar-appear .18s cubic-bezier(.22,1,.36,1) both}.card-toolbar:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid hsla(0,0%,98%,.96);pointer-events:none}.card-toolbar.card-toolbar-below:after{bottom:auto;top:-6px;border-top:none;border-bottom:7px solid hsla(0,0%,98%,.96)}.toolbar-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 16px;border:none;background:none;color:rgba(0,0,0,.7);cursor:pointer;border-radius:14px;min-width:62px;transition:background .12s ease,color .12s ease;font-family:inherit}.toolbar-btn:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.88)}.toolbar-btn:active{background:rgba(0,0,0,.08);transform:scale(.95)}.toolbar-btn span{font-size:10.5px;font-weight:700;letter-spacing:-.01em;color:inherit}.toolbar-btn-size-active{background:rgba(232,23,90,.08);color:var(--pink)}.toolbar-btn-size-active:hover{background:rgba(232,23,90,.12);color:var(--pink)}.toolbar-btn-danger{color:rgba(176,40,40,.8)}.toolbar-btn-danger:hover{background:rgba(176,40,40,.06);color:#b02828}.toolbar-btn-focus,.toolbar-divider-focus{display:none}.card-toolbar-with-hint{flex-direction:column;align-items:stretch;gap:0}.dtap-hint{text-align:center;font-size:10px;font-weight:500;letter-spacing:.02em;color:rgba(0,0,0,.32);padding:1px 14px 7px;white-space:nowrap;pointer-events:none;overflow:hidden;animation:dtap-hint-lifecycle 3.8s ease forwards}@keyframes dtap-hint-lifecycle{0%{opacity:0;max-height:18px}12%{opacity:1;max-height:18px}72%{opacity:1;max-height:18px}90%{opacity:0;max-height:18px}to{opacity:0;max-height:0;padding:0}}.toolbar-btn-add{color:var(--pink);background:rgba(232,23,90,.05);border-radius:14px}.toolbar-btn-add:hover{background:rgba(232,23,90,.1);color:var(--pink)}.toolbar-divider{width:1px;height:32px;background:rgba(0,0,0,.08);flex-shrink:0;margin:0 3px}@keyframes tsp-rise{0%{opacity:0;transform:translateX(-50%) translateY(-4px) scale(.96)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}.toolbar-size-panel{position:fixed;z-index:201;transform:translateX(-50%);background:hsla(0,0%,99%,.97);backdrop-filter:blur(28px) saturate(1.6);-webkit-backdrop-filter:blur(28px) saturate(1.6);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.14),0 3px 10px rgba(0,0,0,.07),0 0 0 .5px rgba(0,0,0,.06);overflow-y:auto;overflow-x:hidden;max-height:60dvh;min-width:210px;animation:tsp-rise .18s cubic-bezier(.22,1,.36,1) both}.tsp-row{display:flex;align-items:center;gap:10px;width:100%;padding:11px 16px;border:none;background:none;font-family:inherit;cursor:pointer;text-align:left;transition:background .1s ease}.tsp-row:hover{background:rgba(0,0,0,.04)}.tsp-row:active{background:rgba(0,0,0,.07)}.tsp-row.active{background:rgba(232,23,90,.05)}.tsp-row+.tsp-row{border-top:1px solid rgba(0,0,0,.05)}.tsp-label{flex:1 1;font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.01em}.tsp-price{font-size:12px;font-weight:500;color:var(--muted)}.tsp-check{width:14px;height:14px;color:var(--pink);flex-shrink:0}.tsp-group-title{padding:8px 16px 3px;font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(0,0,0,.38)}.tsp-group+.tsp-group{border-top:1px solid rgba(0,0,0,.06)}.print-card.active .print-metal{box-shadow:0 0 0 2.5px rgba(232,23,90,.65),0 10px 32px rgba(0,0,0,.22)}.tile-drag-pill{position:absolute;top:7px;left:7px;transform:none;z-index:3;background:rgba(0,0,0,.4);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:hsla(0,0%,100%,.92);font-size:9.5px;font-weight:700;letter-spacing:.03em;border-radius:20px;padding:3px 7px 3px 5px;display:flex;align-items:center;gap:4px;pointer-events:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.65}.print-card.active .print-metal .tile-drag-pill,.print-metal:hover .tile-drag-pill{opacity:1}@media(max-width:768px){.tile-drag-pill{opacity:.82}.card-toolbar{padding:4px 5px;border-radius:18px;gap:0}.card-toolbar-sizes{padding:0}.toolbar-btn{padding:8px 12px;min-width:52px;gap:3px;border-radius:12px}.toolbar-btn span{font-size:10px}.toolbar-btn-focus{display:flex}.toolbar-divider-focus{display:block}}@keyframes toolbar-mode-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.toolbar-actions{display:flex;align-items:center;gap:1px;animation:toolbar-mode-in .16s cubic-bezier(.22,1,.36,1) both}.card-toolbar-sizes{padding:0;overflow:hidden}.toolbar-size-grid{display:flex;flex-direction:column;width:252px;animation:toolbar-mode-in .16s cubic-bezier(.22,1,.36,1) both}.tsg-header{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 5px 14px;border-bottom:1px solid rgba(0,0,0,.06)}.tsg-title{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:rgba(0,0,0,.38)}.tsg-close{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:none;background:rgba(0,0,0,.07);color:rgba(0,0,0,.45);cursor:pointer;padding:0;transition:background .1s ease;font-family:inherit}.tsg-close:hover{background:rgba(0,0,0,.12)}.tsg-close:active{background:rgba(0,0,0,.17)}.tsg-group-title{padding:7px 8px 1px;font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:rgba(0,0,0,.38)}.tsg-group+.tsg-group{border-top:1px solid rgba(0,0,0,.05)}.tsg-cells{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:2px;gap:2px;padding:4px 4px 5px}.tsg-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 4px 6px;border:none;background:none;border-radius:8px;cursor:pointer;color:rgba(0,0,0,.7);transition:background .1s ease,color .1s ease;font-family:inherit;min-width:0}.tsg-cell:hover{background:rgba(0,0,0,.05)}.tsg-cell:active{background:rgba(0,0,0,.08);transform:scale(.94)}.tsg-cell.active{background:rgba(232,23,90,.08);color:var(--pink);box-shadow:inset 0 0 0 1.5px rgba(232,23,90,.22)}.tsg-cell-label{font-size:9.5px;font-weight:700;letter-spacing:-.01em;color:inherit;white-space:nowrap}.tsg-cell-price{font-size:8.5px;font-weight:500;color:var(--muted);opacity:.75}.checkout-cta{display:flex;flex-direction:column;align-items:center;gap:2px}.checkout-cta-main{display:block;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:1.2}.checkout-cta-ship{display:block;font-size:10px;font-weight:600;letter-spacing:.01em;opacity:.72;line-height:1}.payment-trust-row{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;padding:4px 0 2px}.pay-badge{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 8px;border:1px solid rgba(0,0,0,.09);border-radius:5px;font-size:9.5px;font-weight:700;letter-spacing:.02em;color:rgba(0,0,0,.3);background:#fafafa;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (min-width:769px){.size-pill svg{opacity:.55;flex-shrink:0}.size-pill.active svg{opacity:1;color:var(--pink)}.size-pill{gap:5px;padding:10px 6px}}.env-area{position:relative}.env-bg{position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--env-img,none);background-size:var(--env-bg-size,cover);background-position:var(--env-bg-position,center center);background-repeat:no-repeat;background-color:#f0ebe3;opacity:0;transition:opacity .5s ease,filter .35s cubic-bezier(.16,1,.3,1)}.room-camera-canvas.is-focus-selecting .env-bg{filter:blur(3px) brightness(.62)}.env-active .env-bg{opacity:1;inset:var(--env-bg-inset,0);transform:scale(var(--env-bg-zoom,1));transform-origin:center center}.env-active.env-area,.env-area.env-active{background-color:#f0ebe3;touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none}.room-camera-canvas{position:relative;flex:1 1;min-height:0;display:flex;flex-direction:column;will-change:transform}.env-active .room-camera-canvas{cursor:-webkit-grab;cursor:grab;touch-action:none}.env-active .room-camera-canvas:active{cursor:-webkit-grabbing;cursor:grabbing}.room-camera-controls{display:none;position:absolute;bottom:56px;left:20px;z-index:5;align-items:center;gap:0;background:hsla(0,0%,100%,.9);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border:1px solid rgba(0,0,0,.1);border-radius:999px;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.9),0 2px 12px rgba(0,0,0,.12);padding:0 4px;height:34px}@media(min-width:769px){.env-active .room-camera-controls{display:flex}}.cam-btn{width:30px;height:30px;border:none;background:none;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:400;color:rgba(0,0,0,.65);cursor:pointer;transition:background .12s ease,color .12s ease;flex-shrink:0;line-height:1}.cam-btn:hover{background:rgba(0,0,0,.07);color:rgba(0,0,0,.85)}.cam-zoom-label{min-width:42px;text-align:center;font-size:12px;font-weight:700;color:rgba(0,0,0,.65);letter-spacing:-.01em}.cam-sep{width:1px;height:18px;background:rgba(0,0,0,.12);margin:0 4px;flex-shrink:0}.cam-reset-btn{padding:0 10px;height:30px;border:none;background:none;border-radius:999px;font-size:12px;font-weight:700;color:rgba(0,0,0,.55);cursor:pointer;letter-spacing:-.01em;transition:background .12s ease,color .12s ease;white-space:nowrap;font-family:inherit}.cam-reset-btn:hover{background:rgba(0,0,0,.07);color:rgba(0,0,0,.75)}.env-active .gallery{position:relative;z-index:1}.env-switcher{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:10px 16px;background:hsla(0,0%,100%,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(0,0,0,.06);z-index:2;position:relative}.env-switcher::-webkit-scrollbar{display:none}.env-btn{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:5px 12px 5px 7px;border:1.5px solid transparent;border-radius:20px;background:rgba(0,0,0,.055);font-size:12px;font-weight:700;font-family:inherit;color:rgba(0,0,0,.6);white-space:nowrap;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;letter-spacing:-.01em}.env-btn:hover{background:rgba(0,0,0,.08);color:rgba(0,0,0,.8)}.env-btn.active{border-color:var(--pink);background:rgba(232,23,90,.07);color:var(--pink)}.env-btn-swatch{background-size:cover;background-position:50%;background-color:#d8cfc8}.env-btn-clean-icon,.env-btn-swatch{width:18px;height:18px;border-radius:5px;flex-shrink:0;border:1px solid rgba(0,0,0,.1)}.env-btn-clean-icon{background:linear-gradient(135deg,#f5f5f7 40%,#e8e8e8)}@media(min-width:769px){.env-active .print-metal{box-shadow:0 .5px 1px rgba(0,0,0,.4),0 2px 4px rgba(0,0,0,.34),0 8px 20px rgba(0,0,0,.25),0 20px 44px rgba(0,0,0,.16),0 34px 68px rgba(0,0,0,.08)}.env-active .print-metal:before{background:linear-gradient(180deg,hsla(0,0%,100%,.12),hsla(0,0%,100%,0) 36%,rgba(0,0,0,.035));z-index:2}.env-active .print-metal:after{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.24),inset 1px 0 0 hsla(0,0%,100%,.1),inset -1px 0 0 rgba(0,0,0,.17),inset 0 -1px 1px rgba(0,0,0,.2),inset 0 0 0 .5px rgba(0,0,0,.1)}.env-active .print-metal img{filter:contrast(1.04) saturate(1.05)}.env-active .print-card:hover{transform:none}.env-active .room-anchor>.print-card .print-metal{transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease}.env-active .room-anchor>.print-card:active:not(.is-room-dragging) .print-metal{transform:scale(calc(var(--s) * .97)) translateZ(0)!important;transition:transform 60ms ease-out,box-shadow 60ms ease!important}.env-active .print-card:hover .print-metal{transform:scale(var(--s)) translateY(-5px) translateZ(0);box-shadow:0 1px 2px rgba(0,0,0,.46),0 5px 14px rgba(0,0,0,.34),0 18px 40px rgba(0,0,0,.25),0 42px 82px rgba(0,0,0,.14);transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s ease}.env-active .size-sm .print-metal{box-shadow:0 2px 6px rgba(0,0,0,.5),0 8px 22px rgba(0,0,0,.38),0 22px 48px rgba(0,0,0,.26),0 36px 72px rgba(0,0,0,.14)}.env-active .size-sm .print-metal:after{box-shadow:inset 5px 0 12px hsla(0,0%,100%,.28),inset -5px 0 12px rgba(0,0,0,.22),inset 0 2px 6px hsla(0,0%,100%,.14),inset 0 -5px 14px rgba(0,0,0,.3)}.env-area{flex:1 1;display:flex;flex-direction:column;min-height:0;overflow:hidden;height:calc(100dvh - 64px)}.env-area .gallery{flex:1 1;min-height:0;height:auto;padding-left:var(--env-pl,36px);padding-right:var(--env-pr,24px);transition:padding .4s cubic-bezier(.22,1,.36,1)}.env-active .gallery{padding-top:calc((100dvh - 64px) * var(--env-y, .1));justify-content:center;align-content:start;gap:14px;transition:padding .4s cubic-bezier(.22,1,.36,1),gap .4s cubic-bezier(.22,1,.36,1)}.env-active .print-card{width:calc(var(--dtile-w,175px) * var(--env-scale,.5));transition:width .4s cubic-bezier(.22,1,.36,1)}.env-switcher{flex:0 0 auto;padding:8px 20px}.editor.env-active .env-area{overflow:hidden}.editor.env-active .room-camera-canvas{flex:none}}.room-panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:4px;text-align:left}.room-panel-header-left{display:flex;flex-direction:column;gap:2px;min-width:0}.room-panel-title{font-size:17px;font-weight:900;letter-spacing:-.04em;color:var(--ink);line-height:1.15}.room-panel-count{font-size:11.5px;font-weight:600;color:rgba(0,0,0,.36);letter-spacing:.01em}.room-panel-chevron{font-size:19px;line-height:1;color:rgba(0,0,0,.28);flex-shrink:0;display:inline-block;transform:rotate(0deg);transition:transform .22s cubic-bezier(.22,1,.36,1),color .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.room-panel-chevron.open{transform:rotate(90deg);color:rgba(0,0,0,.5)}.room-panel-totals-compact{padding-top:12px!important;border-top:none!important}.room-print-list{display:flex;flex-direction:column;gap:14px}.room-print-item{display:flex;align-items:center;gap:13px;padding-bottom:14px;border-bottom:1px solid rgba(0,0,0,.055)}.room-print-item:last-child{padding-bottom:0;border-bottom:none}.room-print-thumb{flex:0 0 58px;width:58px;height:58px;border-radius:10px;background-size:cover;background-position:50%;background-color:rgba(0,0,0,.06);box-shadow:0 1px 4px rgba(0,0,0,.14),0 4px 12px rgba(0,0,0,.08)}.room-print-info{flex:1 1;display:flex;flex-direction:column;gap:3px;min-width:0}.room-print-name{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:-.02em}.room-print-size{font-size:12px;font-weight:500;color:rgba(0,0,0,.48)}.room-print-finish{font-size:11px;font-weight:500;color:rgba(0,0,0,.32)}.room-print-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.room-print-price{font-size:14px;font-weight:700;color:var(--ink);letter-spacing:-.025em}.room-print-remove{width:22px;height:22px;border-radius:50%;border:none;background:rgba(0,0,0,.07);color:rgba(0,0,0,.4);font-size:15px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s,color .15s}.room-print-remove:hover{background:rgba(220,38,38,.12);color:rgba(220,38,38,.75)}.room-panel-totals{display:flex;flex-direction:column;gap:10px;padding-top:14px;border-top:1px solid rgba(0,0,0,.08)}.room-panel-totals-compact{gap:6px;padding-top:14px;border-top:none}.room-total-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:500;color:rgba(0,0,0,.52)}.room-total-row span:last-child{font-weight:600;color:rgba(0,0,0,.62);font-size:13px}.room-total-free{color:#16a34a!important;font-weight:700!important}.room-total-grand{font-size:14.5px!important;font-weight:700!important;color:var(--ink)!important;padding-top:4px;border-top:1px solid rgba(0,0,0,.07);margin-top:2px}.room-total-grand span:last-child{font-size:16px!important;font-weight:800!important;color:var(--ink)!important;letter-spacing:-.03em}.room-group{border-bottom:1px solid rgba(0,0,0,.055)}.room-group:last-child{border-bottom:none}.room-group-row{display:flex;align-items:center;gap:12px;width:100%;padding:13px 0;background:none;border:none;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}.room-group-row:hover .room-group-name{opacity:.75}.room-group-left{flex:1 1;display:flex;align-items:center;gap:11px;min-width:0}.room-group-count{font-size:14px;font-weight:800;color:#e8175a;letter-spacing:-.02em;flex-shrink:0;min-width:28px}.room-group-info{display:flex;flex-direction:column;gap:2px;min-width:0}.room-group-name{font-size:13.5px;font-weight:700;color:var(--ink);letter-spacing:-.025em;transition:opacity .15s}.room-group-size{font-size:12px;font-weight:500;color:rgba(0,0,0,.45);letter-spacing:-.01em}.room-group-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.room-group-price{font-size:14px;font-weight:700;color:var(--ink);letter-spacing:-.03em}.room-group-chevron{font-size:18px;line-height:1;color:rgba(0,0,0,.28);display:inline-block;transform:rotate(0deg);transition:transform .2s cubic-bezier(.22,1,.36,1),color .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.room-group-chevron.open{transform:rotate(90deg);color:rgba(0,0,0,.5)}.room-group-photos{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0 16px}.room-group-photo-item{position:relative;width:60px;height:60px;flex-shrink:0}.room-group-thumb{width:60px;height:60px;border-radius:10px;background-size:cover;background-position:50%;background-color:rgba(0,0,0,.07);box-shadow:0 1px 3px rgba(0,0,0,.14),0 4px 10px rgba(0,0,0,.08)}.room-group-photo-item .room-print-remove{position:absolute;top:-5px;right:-5px;width:20px;height:20px;font-size:13px;box-shadow:0 1px 4px rgba(0,0,0,.15)}.room-panel-footer{margin:0 -28px;padding:16px 28px 28px;background:hsla(0,0%,100%,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid rgba(0,0,0,.07)}@media(max-width:768px){.env-active .gallery{background:transparent}.room-panel-footer,.room-panel-header,.room-print-list{display:none}.env-switcher{position:fixed;bottom:0;left:0;right:0;z-index:60;padding-bottom:max(10px,env(safe-area-inset-bottom));border-top:1px solid rgba(0,0,0,.08)}.bottom-bar{bottom:calc(46px + env(safe-area-inset-bottom,0px));padding-bottom:12px}.editor.env-active .bottom-bar{display:none}.editor{padding-bottom:calc(360px + env(safe-area-inset-bottom,0px))}.editor.env-active{padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}.composition-scale-control{bottom:calc(68px + env(safe-area-inset-bottom,0px))}}@media(min-width:769px){.room-cart-btn{display:none}}@media(max-width:768px){.room-cart-btn{position:relative;display:flex;align-items:center;gap:7px;height:38px;padding:0 16px 0 12px;background:var(--pink);color:#fff;border:none;border-radius:999px;font-size:14.5px;font-weight:800;letter-spacing:-.02em;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 2px 8px rgba(232,23,90,.32),0 6px 18px rgba(232,23,90,.2),inset 0 1px 0 hsla(0,0%,100%,.22);transition:transform .12s ease,box-shadow .12s ease}.room-cart-btn:active{transform:scale(.95);box-shadow:0 1px 4px rgba(232,23,90,.22),0 2px 8px rgba(232,23,90,.14)}.room-cart-icon{flex-shrink:0}.room-cart-btn-total{line-height:1}.room-cart-btn-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;border-radius:999px;background:#fff;color:var(--pink);font-size:10px;font-weight:900;display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 1px 4px rgba(0,0,0,.18);letter-spacing:0;pointer-events:none}}.cart-drawer-overlay{position:fixed;inset:0;z-index:200;background:transparent;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);pointer-events:none;transition:background .35s ease,-webkit-backdrop-filter .35s ease;transition:background .35s ease,backdrop-filter .35s ease;transition:background .35s ease,backdrop-filter .35s ease,-webkit-backdrop-filter .35s ease}.cart-drawer-overlay.open{background:rgba(0,0,0,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);pointer-events:auto}.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:min(88vw,360px);z-index:201;display:flex;flex-direction:column;background:#fff;box-shadow:-6px 0 48px rgba(0,0,0,.18);transform:translateX(100%);transition:transform .42s cubic-bezier(.22,1,.36,1);will-change:transform;overflow:hidden}.cart-drawer.open{transform:translateX(0)}.cart-drawer:before{content:"";position:absolute;top:10px;left:50%;transform:translateX(-50%);width:36px;height:4px;border-radius:2px;background:rgba(0,0,0,.12)}.cart-drawer-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;height:58px;padding:0 20px;border-bottom:1px solid rgba(0,0,0,.07)}.cart-drawer-title{font-size:18px;font-weight:900;letter-spacing:-.05em;color:var(--ink)}.cart-drawer-close{width:32px;height:32px;border-radius:50%;border:none;background:rgba(0,0,0,.07);color:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}.cart-drawer-close:active{background:rgba(0,0,0,.13)}.cart-drawer-items{flex:1 1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:4px 20px;min-height:0;scrollbar-width:none}.cart-drawer-items::-webkit-scrollbar{display:none}.cart-drawer-item{display:flex;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid rgba(0,0,0,.055)}.cart-drawer-item:last-child{border-bottom:none}.cart-drawer-thumb{flex:0 0 56px;width:56px;height:56px;border-radius:10px;background-size:cover;background-position:50%;background-color:rgba(0,0,0,.06);box-shadow:0 1px 4px rgba(0,0,0,.14),0 4px 12px rgba(0,0,0,.08)}.cart-drawer-item-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.cart-drawer-item-name{font-size:13.5px;font-weight:700;letter-spacing:-.025em;color:var(--ink)}.cart-drawer-item-size{font-size:12.5px;font-weight:500;color:rgba(0,0,0,.5)}.cart-drawer-item-finish{font-size:11.5px;font-weight:500;color:rgba(0,0,0,.32)}.cart-drawer-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:7px;flex-shrink:0}.cart-drawer-item-price{font-size:14px;font-weight:700;letter-spacing:-.03em;color:var(--ink)}.cart-drawer-item-remove{width:24px;height:24px;border-radius:50%;border:none;background:rgba(0,0,0,.07);color:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,color .15s}.cart-drawer-item-remove:active{background:rgba(220,38,38,.12);color:rgba(220,38,38,.7)}.cart-drawer-empty{padding:40px 0;text-align:center;font-size:14px;font-weight:500;color:rgba(0,0,0,.35);line-height:1.5}.cart-drawer-footer{flex:0 0 auto;padding:16px 20px max(24px,env(safe-area-inset-bottom));background:hsla(0,0%,100%,.98);border-top:1px solid rgba(0,0,0,.07);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.cart-drawer-totals{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.cart-drawer-total-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:500;color:rgba(0,0,0,.52)}.cart-drawer-total-row span:last-child{font-weight:600;color:rgba(0,0,0,.65)}.cart-drawer-total-grand{padding-top:10px;border-top:1px solid rgba(0,0,0,.07);margin-top:2px}.cart-drawer-total-grand,.cart-drawer-total-grand span{font-size:15px!important;font-weight:700!important;color:var(--ink)!important}.cart-drawer-total-grand span:last-child{font-size:17px!important;font-weight:900!important;letter-spacing:-.04em}.cart-drawer-free-ship{color:#16a34a!important;font-weight:700!important}.cart-drawer-checkout-btn{display:block;width:100%;height:52px;margin-top:14px;margin-bottom:10px;border-radius:16px;border:none;background:var(--pink);color:#fff;font-size:15.5px;font-weight:800;letter-spacing:-.02em;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 2px 8px rgba(232,23,90,.26),0 6px 20px rgba(232,23,90,.18);transition:transform .12s ease,box-shadow .12s ease}.cart-drawer-checkout-btn:active{transform:scale(.98);box-shadow:0 1px 4px rgba(232,23,90,.18)}.cart-drawer-checkout-btn:disabled{opacity:.45;cursor:default;transform:none}@media(max-width:768px){.bottom-bar,.env-switcher{display:none!important}.editor{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px));overflow-y:auto}.editor.env-active{padding-bottom:0;overflow:hidden}.gallery{padding-bottom:calc(64px + env(safe-area-inset-bottom,16px))}.editor.env-active .env-area{flex:1 1;display:flex;flex-direction:column;min-height:0;overflow:hidden;height:calc(100dvh - 56px);min-height:calc(100dvh - 56px)}.editor.env-active .room-camera-canvas{flex:none}.editor.env-active .gallery{display:flex;padding-top:calc((100dvh - 56px) * var(--env-y, .14));padding-bottom:calc(80px + env(safe-area-inset-bottom, 0px));padding-left:20px;padding-right:20px;justify-content:center;align-items:flex-start;align-content:start;flex-wrap:nowrap;gap:0;overflow-x:visible;overflow-y:visible;scroll-snap-type:none}.editor.env-active .wall-composition{display:grid;grid-gap:3px;gap:3px;width:-moz-fit-content;width:fit-content;max-width:100%;grid-template-columns:auto;align-items:end;justify-items:center;position:relative;left:calc((var(--wall-cx-frac, .5) - .5) * 100vw)}.editor.env-active .wall-composition[data-cols="1"]{grid-template-columns:auto}.editor.env-active .wall-composition[data-cols="2"]{grid-template-columns:auto auto}.editor.env-active .wall-composition[data-cols="3"]{grid-template-columns:auto auto auto}.editor.env-active .wall-composition[data-cols="2"]>.print-card:last-child:nth-child(odd){grid-column:1/3;justify-self:center}.editor.env-active .wall-composition[data-cols="3"]>.print-card:last-child:nth-child(3n+1){grid-column:1/4;justify-self:center}.editor.env-active .print-card{width:calc(var(--dtile-w, 120px) * var(--env-scale, .45));max-width:none;flex:0 0 auto;padding:2px;transition:width .3s cubic-bezier(.22,1,.36,1)}}.wally-top-right{display:none}@media(max-width:768px){.wally-top-right{display:flex;align-items:center;gap:8px}.header-room-btn{display:flex;align-items:center;gap:5px;height:34px;padding:0 9px 0 5px;background:rgba(0,0,0,.055);border:none;border-radius:999px;cursor:pointer;font-size:12.5px;font-weight:700;letter-spacing:-.01em;color:rgba(0,0,0,.62);-webkit-tap-highlight-color:transparent;font-family:inherit;transition:background .15s}.header-room-btn:active{background:rgba(0,0,0,.1);transform:scale(.96)}.header-room-swatch{width:22px;height:22px;border-radius:5px;background-size:cover;background-position:50%;background-color:#d8cfc8;border:1px solid rgba(0,0,0,.1);flex-shrink:0}.header-room-swatch-studio{background:linear-gradient(135deg,#f5f5f7 40%,#e5e5ea)}.header-room-label{line-height:1;white-space:nowrap}.header-room-chevron{flex-shrink:0;color:rgba(0,0,0,.32)}}.room-sheet-overlay{position:fixed;inset:0;z-index:200;background:transparent;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);pointer-events:none;transition:background .3s ease,-webkit-backdrop-filter .3s ease;transition:background .3s ease,backdrop-filter .3s ease;transition:background .3s ease,backdrop-filter .3s ease,-webkit-backdrop-filter .3s ease}.room-sheet-overlay.open{background:rgba(0,0,0,.42);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);pointer-events:auto}.room-sheet{position:fixed;left:0;right:0;bottom:0;z-index:201;background:#fff;border-radius:24px 24px 0 0;padding:0 20px max(28px,env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .42s cubic-bezier(.22,1,.36,1);will-change:transform}.room-sheet.open{transform:translateY(0)}.room-sheet-handle{width:36px;height:4px;border-radius:2px;background:rgba(0,0,0,.12);margin:12px auto 0}.room-sheet-title{font-size:17px;font-weight:900;letter-spacing:-.045em;color:var(--ink);padding:16px 0 14px;border-bottom:1px solid rgba(0,0,0,.07)}.room-sheet-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;padding:14px 0 0}.room-sheet-env-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:3px;background:none;border:2px solid transparent;border-radius:14px;cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit;transition:border-color .15s}.room-sheet-env-btn.active{border-color:var(--pink)}.room-sheet-env-preview{width:100%;aspect-ratio:4/3;border-radius:9px;background-size:cover;background-position:50%;background-color:#ede9e4;border:1px solid rgba(0,0,0,.07);overflow:hidden}.room-sheet-env-preview-studio{background:linear-gradient(135deg,#f5f5f7 40%,#e5e5ea)}.room-sheet-env-name{font-size:11.5px;font-weight:600;color:rgba(0,0,0,.5);letter-spacing:-.01em;padding-bottom:2px;line-height:1}.room-sheet-env-btn.active .room-sheet-env-name{color:var(--pink);font-weight:700}.mobile-tab-bar{display:none}@media(max-width:768px){.mobile-tab-bar{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:90;display:flex;gap:0;background:hsla(0,0%,100%,.88);backdrop-filter:saturate(200%) blur(32px);-webkit-backdrop-filter:saturate(200%) blur(32px);border-radius:32px;padding:6px;box-shadow:0 8px 32px rgba(0,0,0,.13),0 2px 8px rgba(0,0,0,.08),inset 0 .5px 0 hsla(0,0%,100%,.72);border:.5px solid rgba(0,0,0,.08);will-change:opacity}.mobile-float-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:66px;padding:9px 10px 8px;border-radius:26px;border:none;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit;color:rgba(0,0,0,.72);transition:transform .1s ease}.mobile-float-tab:active{transform:scale(.88)}.mobile-float-tab svg{opacity:1;flex-shrink:0}.mobile-float-label{font-size:10px;font-weight:600;letter-spacing:.01em;line-height:1;white-space:nowrap;color:rgba(0,0,0,.62)}.templates-sheet{max-height:82vh}.templates-sheet-content{overflow-y:auto;flex:1 1;padding-bottom:env(safe-area-inset-bottom,16px)}}.tile-drag-pill{opacity:0!important;transition:opacity .15s ease}@media(min-width:769px){.print-metal:hover .tile-drag-pill{opacity:.28!important}.drag-overlay-card .print-metal .tile-drag-pill{opacity:.7!important}}@media(max-width:768px){.tile-drag-pill{display:none!important}.print-card.active{transform:scale(1.018)!important;z-index:5;position:relative}.print-card.active .print-metal{box-shadow:0 0 0 2px var(--pink),0 0 0 5px rgba(232,23,90,.09),0 6px 18px rgba(0,0,0,.16),0 20px 48px rgba(0,0,0,.18)!important}.editor.env-active .print-metal,.editor.env-active .print-metal:after,.editor.env-active .print-metal:before{border-radius:2px}.editor.env-active .print-metal{box-shadow:0 .5px 1px rgba(0,0,0,.4),0 2px 4px rgba(0,0,0,.34),0 7px 18px rgba(0,0,0,.25),0 18px 40px rgba(0,0,0,.16),0 30px 60px rgba(0,0,0,.08)}.editor.env-active .print-metal:before{background:linear-gradient(180deg,hsla(0,0%,100%,.12),hsla(0,0%,100%,0) 36%,rgba(0,0,0,.035));z-index:2}.editor.env-active .print-metal:after{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.24),inset 1px 0 0 hsla(0,0%,100%,.1),inset -1px 0 0 rgba(0,0,0,.17),inset 0 -1px 1px rgba(0,0,0,.2),inset 0 0 0 .5px rgba(0,0,0,.1)}.editor.env-active .print-metal img{filter:contrast(1.04) saturate(1.05)}.editor.env-active .print-card.active{transform:none!important}.editor.env-active .print-card.active .print-metal{box-shadow:inset 0 0 0 1.5px rgba(232,23,90,.7),0 2px 4px rgba(0,0,0,.42),0 6px 16px rgba(0,0,0,.3),0 16px 40px rgba(0,0,0,.18)!important}.editor.env-active .room-camera-canvas{position:relative}}.snap-guide-layer{position:absolute;inset:0;pointer-events:none;z-index:10;overflow:hidden}.snap-guide{position:absolute;animation:snap-guide-appear 60ms ease-out both}.snap-guide-h{left:0;right:0;height:1px}.snap-guide-h,.snap-guide-v{background:hsla(0,0%,100%,.82);box-shadow:0 0 0 .5px rgba(0,0,0,.22),0 0 5px hsla(0,0%,100%,.25)}.snap-guide-v{top:0;bottom:0;width:1px}@keyframes snap-guide-appear{0%{opacity:0}to{opacity:1}}.composition-scale-control{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:70;display:flex;align-items:center;padding:3px;background:hsla(0,0%,100%,.86);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-radius:999px;border:1px solid rgba(0,0,0,.07);box-shadow:0 2px 14px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.07),inset 0 .5px 0 hsla(0,0%,100%,.55);pointer-events:auto;-moz-user-select:none;user-select:none;-webkit-user-select:none}.composition-scale-btn{padding:7px 18px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:-.01em;color:rgba(0,0,0,.38);background:transparent;border:none;cursor:pointer;white-space:nowrap;transition:color .14s;line-height:1}.composition-scale-btn.is-active{background:#fff;color:#111;box-shadow:0 1px 5px rgba(0,0,0,.1),0 .5px 1.5px rgba(0,0,0,.06)}.composition-scale-btn:not(.is-active):hover{color:rgba(0,0,0,.62)}body.is-room-photo-dragging,body.is-room-photo-dragging *{cursor:-webkit-grabbing!important;cursor:grabbing!important}.room-custom-canvas{position:absolute;inset:0;pointer-events:none;z-index:2}@keyframes room-anchor-in{0%{opacity:0}to{opacity:1}}.room-anchor{position:absolute;transform:translate(-50%,-50%);pointer-events:none;animation:room-anchor-in .25s ease-out both}.room-anchor>.print-card{pointer-events:auto;touch-action:none;cursor:-webkit-grab;cursor:grab;position:relative}.room-anchor>.print-card.is-room-dragging{cursor:-webkit-grabbing;cursor:grabbing;z-index:20}.room-anchor>.print-card.is-room-dragging .print-metal{transform:scale(calc(var(--s, 1) * 1.03)) translate3d(0,-6px,0)!important;will-change:transform,box-shadow;box-shadow:0 8px 20px rgba(0,0,0,.54),0 20px 48px rgba(0,0,0,.38),0 44px 88px rgba(0,0,0,.22),0 80px 140px rgba(0,0,0,.08)!important;transition:transform .15s cubic-bezier(.22,1,.36,1),box-shadow .15s ease!important}.room-anchor.is-template-animating{transition:left .26s cubic-bezier(.22,1,.36,1),top .26s cubic-bezier(.22,1,.36,1)}.room-anchor.is-template-animating>.print-card{transition:width .26s cubic-bezier(.22,1,.36,1)!important}.room-anchor.is-settling,.room-anchor.is-snapping{transition:transform .22s cubic-bezier(.16,1,.3,1)}.room-anchor.is-settling{transition:left .36s cubic-bezier(.16,1,.3,1),top .36s cubic-bezier(.16,1,.3,1),transform .22s cubic-bezier(.16,1,.3,1)}.room-anchor.is-snapping{transition:left .42s cubic-bezier(.16,1,.3,1),top .42s cubic-bezier(.16,1,.3,1),transform .22s cubic-bezier(.16,1,.3,1)}.room-anchor.is-settling>.print-card .print-metal,.room-anchor.is-snapping>.print-card .print-metal{transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s ease}.room-fab{position:fixed;bottom:calc(64px + env(safe-area-inset-bottom,0px) + 20px);right:20px;z-index:95;overflow:visible;width:56px;height:56px;border-radius:50%;background:#fff;border:none;box-shadow:0 2px 14px rgba(0,0,0,.12),0 1px 4px rgba(0,0,0,.08);display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease}.room-fab:focus-visible,.room-fab:hover{transform:scale(1.06);box-shadow:0 4px 20px rgba(0,0,0,.14),0 1px 5px rgba(0,0,0,.08);outline:none}.room-fab:active{transform:scale(.94);transition-duration:90ms}.room-fab-label{position:absolute;bottom:calc(100% + 8px);right:0;background:#fff;border-radius:20px;padding:5px 12px;white-space:nowrap;font-size:11px;font-weight:600;letter-spacing:.04em;color:#ff2d7a;box-shadow:0 2px 10px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.06);opacity:0;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.room-fab:focus-visible .room-fab-label,.room-fab:hover .room-fab-label{opacity:1;transform:translateY(0)}@media(min-width:769px){.room-fab{display:none}}.room-gesture-hint{position:absolute;bottom:calc(96px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:97;pointer-events:none;display:none}@media(max-width:768px){.room-gesture-hint{display:flex}}.room-gesture-hint-pill{display:inline-flex;align-items:center;gap:9px;padding:10px 18px 10px 14px;background:hsla(0,0%,100%,.84);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);border-radius:999px;border:1px solid hsla(0,0%,100%,.4);box-shadow:0 10px 30px rgba(0,0,0,.08);animation:rgh-in .5s cubic-bezier(.22,1,.36,1) both;pointer-events:none;white-space:nowrap}.room-gesture-hint-pill.is-dismissing{animation:rgh-out .35s cubic-bezier(.4,0,1,1) both}@keyframes rgh-in{0%{opacity:0;transform:translateY(7px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rgh-out{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.94) translateY(5px)}}.rgh-icon{color:var(--pink);flex-shrink:0;overflow:visible}.rgh-finger-l{animation:rgh-spread-l 3.6s ease-in-out 1.1s infinite}.rgh-finger-r{animation:rgh-spread-r 3.6s ease-in-out 1.1s infinite}@keyframes rgh-spread-l{0%,18%,78%,to{transform:translateX(0)}38%,62%{transform:translateX(-3.5px)}}@keyframes rgh-spread-r{0%,18%,78%,to{transform:translateX(0)}38%,62%{transform:translateX(3.5px)}}@media(prefers-reduced-motion:reduce){.rgh-finger-l,.rgh-finger-r{animation:none}}.rgh-text{font-size:13px;font-weight:500;color:rgba(0,0,0,.64);letter-spacing:-.01em;white-space:nowrap}.canvas-fab{display:none}.print-card.is-swap-source .print-metal{outline:2.5px solid var(--pink);outline-offset:3px;border-radius:inherit;transform:scale(.965);transition:transform .2s cubic-bezier(.22,1,.36,1)}.print-card.is-swap-target{cursor:crosshair}.print-card.is-swap-target .print-metal{transition:opacity .14s,outline .14s}.print-card.is-swap-target:hover .print-metal{outline:2px solid rgba(232,23,90,.45);outline-offset:2px;opacity:.82}.print-card.is-swap-flash .print-metal img:not(.swap-crossfade-ghost){animation:swap-flash .42s cubic-bezier(.22,1,.36,1) both}@keyframes swap-flash{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes swap-ghost-out{0%{opacity:1}to{opacity:0}}.swap-hint-pill{display:none}@media(min-width:769px){.swap-hint-pill{display:block;position:absolute;top:18px;left:50%;transform:translateX(-50%);background:hsla(0,0%,100%,.88);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(0,0,0,.07);border-radius:999px;padding:8px 20px;font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;pointer-events:none;z-index:30;box-shadow:0 2px 12px rgba(0,0,0,.07);animation:swap-hint-in .18s cubic-bezier(.22,1,.36,1) both}@keyframes swap-hint-in{0%{opacity:0;transform:translateX(-50%) translateY(-6px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}}.top-left-group,.top-right-group{display:flex;align-items:center;gap:10px}.desktop-sidebar,.top-add-photo-btn,.top-history,.top-seg-ctrl{display:none}@media(min-width:769px){.wally-top{padding:0 24px;gap:0}.top-left-group{flex:0 0 auto;min-width:140px}.top-history{gap:2px;margin-left:4px}.top-history,.top-history-btn{display:flex;align-items:center}.top-history-btn{justify-content:center;width:32px;height:32px;border-radius:10px;border:none;background:transparent;color:rgba(0,0,0,.55);transition:background .14s,color .14s,opacity .14s}.top-history-btn:hover{background:rgba(0,0,0,.05);color:var(--ink)}.top-history-btn:disabled{opacity:.28;cursor:default}.bottom-bar,.wally-top-right{display:none!important}.editor{display:flex;flex-direction:row;align-items:stretch;flex:1 1 auto;min-height:0}.env-area{flex:1 1 auto;min-width:0;position:relative}.canvas-fab{display:flex;flex-direction:column;align-items:center;gap:8px;position:absolute;bottom:28px;right:28px;border:none;background:transparent;padding:0;cursor:pointer;z-index:20;transition:transform .12s}.canvas-fab:hover{transform:scale(1.05)}.canvas-fab:active{transform:scale(.95)}.canvas-fab-label{font-size:12px;font-weight:700;color:var(--pink);letter-spacing:.01em;white-space:nowrap;padding:4px 10px;box-shadow:0 1px 6px rgba(0,0,0,.1)}.canvas-fab-circle,.canvas-fab-label{pointer-events:none;background:#fff;border-radius:999px}.canvas-fab-circle{display:flex;align-items:center;justify-content:center;width:56px;height:56px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 4px 20px rgba(0,0,0,.12)}.desktop-sidebar{display:flex;flex-direction:column;flex:0 0 370px;width:370px;background:#f7f5f2;border-left:1px solid rgba(0,0,0,.06);overflow:hidden;position:relative}.ds-header{display:flex;align-items:center;justify-content:space-between;padding:22px 22px 18px;flex-shrink:0}.ds-header-left{display:flex;flex-direction:column;gap:2px}.ds-room-name{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.02em;line-height:1.2}.ds-photo-count{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:-.01em}.ds-total{font-size:14px;font-weight:600;color:var(--muted);letter-spacing:-.02em}.ds-tab-nav{display:flex;flex-direction:row;border-bottom:1px solid rgba(0,0,0,.06);flex-shrink:0;padding:0 18px;gap:4px;overflow-x:auto;scrollbar-width:none}.ds-tab-nav::-webkit-scrollbar{display:none}.ds-tab-btn{flex:0 0 auto;position:relative;padding:10px 10px 12px;border:none;background:transparent;font-size:12px;font-weight:500;color:var(--muted);letter-spacing:-.005em;cursor:pointer;transition:color .14s;display:flex;align-items:center;gap:5px;white-space:nowrap}.ds-tab-btn.active{color:var(--ink);font-weight:600}.ds-tab-btn.active:after{content:"";position:absolute;bottom:6px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--pink)}.ds-tab-btn:hover:not(.active){color:rgba(0,0,0,.6)}.ds-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:15px;height:15px;padding:0 4px;border-radius:999px;background:rgba(232,23,90,.12);color:var(--pink);font-size:9.5px;font-weight:700}.ds-tab-content{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:20px;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.08) transparent}.ds-tab-content::-webkit-scrollbar{width:3px}.ds-tab-content::-webkit-scrollbar-thumb{background:rgba(0,0,0,.1);border-radius:2px}.ds-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:52px 20px;text-align:center}.ds-empty-state p{margin:0;font-size:13px;color:var(--muted);font-weight:400}.ds-empty-add-btn{padding:9px 20px;border-radius:12px;border:none;background:var(--pink);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .14s}.ds-empty-add-btn:hover{opacity:.88}.ds-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.ds-thumb{position:relative;border-radius:8px;overflow:hidden;aspect-ratio:1/1;background:#e8e5e1;cursor:pointer;transition:opacity .12s}.ds-thumb:hover{opacity:.82}.ds-thumb.active{box-shadow:0 0 0 2px var(--pink),0 0 0 4px rgba(232,23,90,.14);opacity:1}.ds-thumb-img{width:100%;height:100%;object-fit:cover;display:block}.ds-thumb-placed{left:4px;background:var(--pink);pointer-events:none}.ds-thumb-del,.ds-thumb-placed{position:absolute;top:4px;width:17px;height:17px;border-radius:999px;color:#fff;display:flex;align-items:center;justify-content:center}.ds-thumb-del{right:4px;background:rgba(0,0,0,.5);border:none;opacity:0;transition:opacity .12s;cursor:pointer}.ds-thumb:hover .ds-thumb-del{opacity:1}.ds-thumb-add{background:rgba(0,0,0,.04);display:flex;align-items:center;justify-content:center;color:rgba(0,0,0,.28);border:none;transition:background .14s,color .14s}.ds-thumb-add:hover{background:rgba(0,0,0,.07);color:rgba(0,0,0,.5);opacity:1}.ds-drag-hint{margin:12px 0 0;font-size:11.5px;color:var(--muted);text-align:center;letter-spacing:-.01em}.ds-rooms-content{padding:16px}.ds-rooms-grid{display:flex;flex-direction:column;gap:12px}.ds-room-card{width:100%;border:none;padding:0;cursor:pointer;border-radius:14px;overflow:hidden;background:#e8e5e1;position:relative;box-shadow:0 2px 8px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.06);transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s;-webkit-tap-highlight-color:transparent}.ds-room-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.14),0 2px 6px rgba(0,0,0,.08)}.ds-room-card.active{box-shadow:0 0 0 2px var(--pink),0 6px 22px rgba(232,23,90,.18),0 2px 8px rgba(0,0,0,.1);transform:translateY(-1px)}.ds-room-card-img{width:100%;aspect-ratio:16/9;background-size:cover;background-position:50%;position:relative;display:block}.ds-room-card-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.52) 0,rgba(0,0,0,.18) 38%,transparent 60%);display:flex;align-items:flex-end;padding:12px 14px}.ds-room-card-name{font-size:13px;font-weight:600;color:#fff;letter-spacing:-.01em;text-shadow:0 1px 4px rgba(0,0,0,.3)}.ds-room-card-badge{position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:50%;background:var(--pink);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(232,23,90,.4);animation:room-badge-in .2s cubic-bezier(.22,1,.36,1) both}@keyframes room-badge-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.ds-cart-tab{gap:16px}.ds-cart-list,.ds-cart-tab{display:flex;flex-direction:column}.ds-cart-group{background:transparent;border-bottom:1px solid rgba(0,0,0,.06)}.ds-cart-group:last-child{border-bottom:none}.ds-cart-group-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 0;border:none;background:transparent;cursor:pointer;text-align:left;gap:8px;transition:opacity .12s}.ds-cart-group-row:hover{opacity:.72}.ds-cart-group-left{display:flex;align-items:center;gap:10px}.ds-cart-group-count{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap;min-width:22px}.ds-cart-group-info{display:flex;flex-direction:column;gap:1px}.ds-cart-group-name{font-size:13px;font-weight:500;color:var(--ink);letter-spacing:-.01em}.ds-cart-group-size{font-size:11.5px;color:var(--muted);font-weight:400}.ds-cart-group-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.ds-cart-group-price{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.01em}.ds-cart-chevron{font-size:14px;color:rgba(0,0,0,.3);transition:transform .2s cubic-bezier(.22,1,.36,1);line-height:1}.ds-cart-chevron.open{transform:rotate(90deg)}.ds-cart-group-photos{display:flex;flex-wrap:wrap;gap:8px;padding:0 0 12px}.ds-cart-photo-item{position:relative;width:42px;height:42px;border-radius:7px;overflow:hidden;flex-shrink:0}.ds-cart-thumb{width:100%;height:100%;background-size:cover;background-position:50%}.ds-cart-remove{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:999px;background:rgba(0,0,0,.5);border:none;color:#fff;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .12s}.ds-cart-photo-item:hover .ds-cart-remove{opacity:1}.ds-cart-totals{display:flex;flex-direction:column;gap:8px;padding:14px 0 4px;border-top:1px solid rgba(0,0,0,.06)}.ds-cart-total-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:500;color:var(--ink)}.ds-cart-free{color:#22a06b;font-weight:500}.ds-cta-area{flex-shrink:0;padding:14px 20px 20px;background:#f7f5f2;border-top:1px solid rgba(0,0,0,.06)}.ds-cta-summary{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:-.01em;text-align:center;min-height:17px;margin-bottom:10px;transition:opacity .2s}.ds-cta-btn{width:100%;padding:15px 24px;border-radius:16px;border:none;background:var(--pink);color:#fff;font-size:15px;font-weight:700;letter-spacing:-.02em;cursor:pointer;box-shadow:0 4px 18px rgba(232,23,90,.3),0 1px 4px rgba(232,23,90,.14);transition:opacity .14s,transform .12s cubic-bezier(.22,1,.36,1),box-shadow .14s;display:block}.ds-cta-btn:hover{opacity:.93;box-shadow:0 6px 24px rgba(232,23,90,.36),0 2px 6px rgba(232,23,90,.18)}.ds-cta-btn:active{transform:scale(.98)}.ds-cta-btn:disabled{opacity:.35;cursor:default;box-shadow:none}.env-switcher{display:none}.ds-template-panel-header{padding:4px 2px 16px}.ds-template-panel-title{margin:0 0 2px;font-size:15px;font-weight:650;color:#111;letter-spacing:-.022em;line-height:1.2}.ds-template-panel-sub{margin:0;font-size:12px;color:#999;letter-spacing:-.01em;line-height:1.4}.ds-template-list{display:flex;flex-direction:column;gap:10px;padding:0 0 12px}.ds-template-card{position:relative;display:flex;flex-direction:column;border-radius:16px;background:#fff;border:1.5px solid rgba(0,0,0,.07);overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.05),0 4px 12px rgba(0,0,0,.05);cursor:pointer;transition:transform .18s cubic-bezier(.25,.46,.45,.94),box-shadow .18s,border-color .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ds-template-card:hover{transform:translateY(-2px);box-shadow:0 2px 6px rgba(0,0,0,.06),0 10px 28px rgba(0,0,0,.09);border-color:rgba(0,0,0,.1)}.ds-template-card:active{transform:translateY(0) scale(.99)}.ds-template-card.is-applied{border-color:var(--pink);box-shadow:0 0 0 3px rgba(232,23,90,.1),0 4px 14px rgba(0,0,0,.06)}.ds-template-card.is-applied:hover{box-shadow:0 0 0 3px rgba(232,23,90,.14),0 8px 24px rgba(0,0,0,.08)}.ds-template-badge{position:absolute;top:10px;right:10px;z-index:2;width:22px;height:22px;border-radius:50%;background:var(--pink);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(232,23,90,.35)}.ds-layout-preview{position:relative;width:100%;height:160px;background:linear-gradient(180deg,#f5f2ee,#ede9e3);flex-shrink:0;overflow:hidden}.ds-layout-tile{position:absolute;border-radius:2px;background:linear-gradient(160deg,#f4f1ec,#e8e3db);box-shadow:0 1px 3px rgba(0,0,0,.18),0 4px 14px rgba(0,0,0,.26),0 10px 28px rgba(0,0,0,.14);overflow:hidden;outline:1px solid hsla(0,0%,100%,.35)}.ds-layout-tile:before{content:"";position:absolute;inset:0;background:linear-gradient(150deg,hsla(0,0%,100%,.5),hsla(0,0%,100%,.14) 45%,transparent);pointer-events:none}.ds-layout-tile.is-filled{background:linear-gradient(160deg,#d6d0c8,#bab4ab)}.ds-layout-tile.is-filled:before{background:linear-gradient(150deg,hsla(0,0%,100%,.28),transparent 60%)}.ds-template-card-body{display:flex;align-items:center;gap:10px;padding:11px 14px 13px;border-top:1px solid rgba(0,0,0,.05)}.ds-template-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.ds-template-name{font-size:13px;font-weight:600;color:#111;letter-spacing:-.02em;line-height:1.2}.ds-template-meta{font-size:11px;color:#b0b0b0;letter-spacing:-.008em;line-height:1.3}.ds-template-card.is-applied .ds-template-meta{color:var(--pink);font-weight:500}.ds-template-apply{flex-shrink:0;padding:5px 13px;border-radius:20px;background:var(--pink);color:#fff;font-size:11.5px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;pointer-events:none;transition:background .14s,color .14s,opacity .12s}.ds-template-apply.is-applied{background:rgba(232,23,90,.1);color:var(--pink);opacity:.9}}.placeholder-card .print-metal{background:linear-gradient(135deg,#fbfcfd,#eef0f4 42%,#f9fafb)!important;box-shadow:0 1px 2px rgba(0,0,0,.06),0 6px 18px rgba(0,0,0,.1),0 22px 50px rgba(0,0,0,.07)!important;border:1px solid hsla(0,0%,100%,.72)!important;opacity:1!important;transition:box-shadow .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1)!important}.placeholder-card .print-metal:before{background:linear-gradient(180deg,hsla(0,0%,100%,.22),hsla(0,0%,100%,0) 42%,rgba(0,0,0,.025))!important;opacity:1!important}.placeholder-card .print-metal:after{background:linear-gradient(180deg,hsla(0,0%,100%,.08),rgba(0,0,0,.032))!important;box-shadow:none!important}.placeholder-card:hover .print-metal{box-shadow:0 2px 6px rgba(0,0,0,.08),0 12px 30px rgba(0,0,0,.13),0 32px 64px rgba(0,0,0,.09)!important}.placeholder-card:hover .print-metal:before{opacity:1!important}.placeholder-card .photo-size-chip,.placeholder-card .print-metal img,.placeholder-card .tile-drag-pill{display:none!important}.placeholder-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;pointer-events:none;opacity:.55;transition:opacity .2s ease;z-index:3}.placeholder-card:hover .placeholder-inner{opacity:.92}.placeholder-plus{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:rgba(232,23,90,.1);color:var(--pink);flex-shrink:0}.placeholder-label{font-size:11px;font-weight:600;color:var(--pink);letter-spacing:.01em;line-height:1}.placeholder-size-dim{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:500;color:rgba(60,60,67,.48);white-space:nowrap;letter-spacing:.01em;z-index:3;pointer-events:none}.room-camera-canvas.is-gesturing{will-change:transform}.room-camera-canvas.is-camera-panning .card-toolbar,.room-camera-canvas.is-camera-panning .card-toolbar button,.room-camera-canvas.is-camera-panning .photo-control,.room-camera-canvas.is-camera-panning .photo-control button,.room-camera-canvas.is-camera-panning .photo-size-chip,.room-camera-canvas.is-camera-panning .print-card,.room-camera-canvas.is-camera-panning .print-metal,.room-camera-canvas.is-camera-panning .print-metal img,.room-camera-canvas.is-camera-panning .resize-handle,.room-camera-canvas.is-camera-panning .room-anchor,.room-camera-canvas.is-camera-panning .tile-drag-pill,.room-camera-canvas.is-camera-panning .toolbar-size-panel,.room-camera-canvas.is-camera-panning .toolbar-size-panel button{pointer-events:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;touch-action:none;transition:none!important}.room-camera-canvas.is-camera-panning .print-metal img{will-change:auto}@supports (-webkit-touch-callout:none){.room-camera-canvas.is-camera-panning .card-toolbar,.room-camera-canvas.is-camera-panning .card-toolbar button,.room-camera-canvas.is-camera-panning .photo-control,.room-camera-canvas.is-camera-panning .photo-control button,.room-camera-canvas.is-camera-panning .photo-size-chip,.room-camera-canvas.is-camera-panning .print-card,.room-camera-canvas.is-camera-panning .print-metal,.room-camera-canvas.is-camera-panning .print-metal img,.room-camera-canvas.is-camera-panning .resize-handle,.room-camera-canvas.is-camera-panning .room-anchor,.room-camera-canvas.is-camera-panning .tile-drag-pill,.room-camera-canvas.is-camera-panning .toolbar-size-panel,.room-camera-canvas.is-camera-panning .toolbar-size-panel button{will-change:auto!important;backface-visibility:hidden;-webkit-backface-visibility:hidden}.room-camera-canvas.is-camera-panning .print-metal img{filter:none!important}}.focus-vignette{position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;background:radial-gradient(ellipse 54% 46% at 50% 42%,rgba(0,0,0,.58) 0,rgba(0,0,0,.78) 35%,rgba(0,0,0,.91) 65%,rgba(0,0,0,.97) 100%);transition:opacity .42s cubic-bezier(.16,1,.3,1)}.focus-vignette.is-active{opacity:1}.focus-mode-btn{display:none;position:absolute;right:20px;left:auto;bottom:24px;z-index:101;padding:9px 16px 9px 13px;white-space:nowrap;border-radius:999px;border:1px solid rgba(0,0,0,.08);background:hsla(0,0%,100%,.84);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.65),0 1px 4px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.08);font-size:13px;font-weight:600;letter-spacing:-.015em;color:rgba(0,0,0,.6);font-family:inherit;line-height:1;align-items:center;gap:7px;cursor:pointer;-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:manipulation;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s cubic-bezier(.22,1,.36,1)}.focus-mode-btn-icon{display:block;flex-shrink:0;position:relative;top:.5px}.focus-mode-btn:active{transform:scale(.95)}.focus-mode-btn.is-active{background:hsla(0,0%,100%,.93);border-color:rgba(0,0,0,.07);color:rgba(0,0,0,.78);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.85),0 4px 24px rgba(0,0,0,.2),0 1px 4px rgba(0,0,0,.1)}.focus-mode-btn.is-active:active{background:rgba(245,245,247,.97)}@media(max-width:768px){.focus-mode-btn{display:flex;position:fixed;left:50%;right:auto;bottom:calc(32px + env(safe-area-inset-bottom,0px));transform:translateX(-50%)}.focus-mode-btn:active{transform:translateX(-50%) scale(.95)}}.focus-instruction{display:none;position:absolute;left:50%;transform:translateX(-50%);top:max(16px,calc(var(--env-y, .15) * 100% - 44px));z-index:20;padding:8px 20px;border-radius:999px;background:hsla(0,0%,100%,.88);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border:1px solid rgba(0,0,0,.06);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.8),0 2px 14px rgba(0,0,0,.14),0 1px 3px rgba(0,0,0,.08);font-size:13px;font-weight:500;letter-spacing:-.01em;color:rgba(0,0,0,.72);white-space:nowrap;pointer-events:none;animation:focus-instruction-in .3s cubic-bezier(.22,1,.36,1) both}@keyframes focus-instruction-in{0%{opacity:0;transform:translateX(-50%) translateY(-6px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@media(max-width:768px){.focus-instruction{display:block}}.focus-photo-toolbar{display:none}@media(max-width:768px){.focus-photo-toolbar{display:flex;align-items:center;position:fixed;bottom:calc(140px + env(safe-area-inset-bottom,0px));left:50%;z-index:101;background:hsla(0,0%,100%,.9);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);border-radius:100px;border:1px solid rgba(0,0,0,.07);padding:0 4px;gap:0;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.85),0 4px 24px rgba(0,0,0,.2),0 1px 4px rgba(0,0,0,.1);animation:fpt-in .26s cubic-bezier(.22,1,.36,1) both;white-space:nowrap}.focus-photo-toolbar,.focus-photo-toolbar:active{transform:translateX(-50%)}}@keyframes fpt-in{0%{opacity:0;transform:translateX(-50%) translateY(8px) scale(.94)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}.fpt-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 14px;background:none;border:none;color:rgba(0,0,0,.78);font-size:11px;font-weight:500;letter-spacing:.01em;cursor:pointer;border-radius:100px;transition:background .12s ease,color .12s ease;-webkit-tap-highlight-color:transparent}.fpt-btn:active{background:rgba(0,0,0,.07);color:rgba(0,0,0,.92)}.fpt-divider{width:1px;height:28px;background:rgba(0,0,0,.1);flex-shrink:0}.fsd-backdrop{position:fixed;inset:0;z-index:199;background:transparent;-webkit-tap-highlight-color:transparent}.focus-swap-drawer{position:fixed;bottom:0;left:0;right:0;z-index:200;background:rgba(14,14,16,.95);backdrop-filter:blur(28px) saturate(1.5);-webkit-backdrop-filter:blur(28px) saturate(1.5);border-top:1px solid hsla(0,0%,100%,.1);border-radius:20px 20px 0 0;padding-bottom:max(env(safe-area-inset-bottom,0px),16px);animation:fsd-in .34s cubic-bezier(.22,1,.36,1) both}@keyframes fsd-in{0%{transform:translateY(100%);opacity:.6}to{transform:translateY(0);opacity:1}}.fsd-drag-handle{display:flex;justify-content:center;align-items:center;padding:10px 0 4px;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent}.fsd-drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.fsd-handle-pill{width:36px;height:4px;border-radius:2px;background:hsla(0,0%,100%,.2)}.fsd-header{display:flex;align-items:center;justify-content:space-between;padding:6px 20px 10px}.fsd-title{font-size:15px;font-weight:600;color:hsla(0,0%,100%,.8);letter-spacing:-.02em;font-family:inherit}.fsd-close{width:28px;height:28px;border-radius:50%;border:none;background:hsla(0,0%,100%,.13);color:hsla(0,0%,100%,.65);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .12s ease;-webkit-tap-highlight-color:transparent}.fsd-close:active{background:hsla(0,0%,100%,.22)}.fsd-scroll{display:flex;gap:10px;padding:4px 16px 8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.fsd-scroll::-webkit-scrollbar{display:none}.fsd-thumb{flex-shrink:0;width:82px;height:82px;border-radius:12px;overflow:hidden;border:2.5px solid transparent;padding:0;background:hsla(0,0%,100%,.06);cursor:pointer;transition:border-color .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1),transform .2s cubic-bezier(.22,1,.36,1),opacity .2s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.fsd-thumb img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fsd-thumb:active:not(.is-selected){transform:scale(.92);opacity:.75}.fsd-thumb.is-selected{border-color:hsla(0,0%,100%,.82);transform:scale(1.08);box-shadow:0 0 0 3px hsla(0,0%,100%,.12),0 6px 24px rgba(0,0,0,.5);cursor:default}.is-focus-selecting .room-anchor>.print-card .print-metal{transform:scale(calc(var(--s) * 1.04)) translateZ(0);animation:focus-wall-breathe 4s ease-in-out infinite;transition:transform .38s cubic-bezier(.22,1,.36,1)}@keyframes focus-wall-breathe{0%,to{filter:brightness(1.02) contrast(1.02);box-shadow:0 3px 10px rgba(0,0,0,.28),0 10px 30px rgba(0,0,0,.22),0 28px 60px rgba(0,0,0,.12)}50%{filter:brightness(1.04) contrast(1.03);box-shadow:0 4px 12px rgba(0,0,0,.34),0 12px 36px rgba(0,0,0,.26),0 32px 68px rgba(0,0,0,.14)}}.room-anchor.is-focus-selected>.print-card .print-metal{transform:scale(calc(var(--s) * 1.06)) translateZ(0);animation:none;filter:brightness(1.07) contrast(1.05) saturate(1.06);box-shadow:0 0 0 .5px hsla(0,0%,100%,.48),0 5px 18px rgba(0,0,0,.44),0 16px 44px rgba(0,0,0,.28),0 36px 80px rgba(0,0,0,.14);transition:transform .26s cubic-bezier(.22,1,.36,1),box-shadow .26s cubic-bezier(.22,1,.36,1),filter .26s cubic-bezier(.22,1,.36,1)}.is-focus-selecting.has-focus-photo .room-anchor:not(.is-focus-selected)>.print-card .print-metal{filter:brightness(.8) saturate(.88);animation:none;transition:filter .36s cubic-bezier(.22,1,.36,1),transform .36s cubic-bezier(.22,1,.36,1)}@media (max-width:768px){.canvas-fab,.composition-scale-control,.env-switcher,.mobile-tab-bar,.room-gesture-hint,.swap-hint-pill,.wally-top{transition:opacity .35s cubic-bezier(.16,1,.3,1),visibility .35s cubic-bezier(.16,1,.3,1)}.wally-app.is-focus-mode .canvas-fab,.wally-app.is-focus-mode .composition-scale-control,.wally-app.is-focus-mode .env-switcher,.wally-app.is-focus-mode .mobile-tab-bar,.wally-app.is-focus-mode .room-gesture-hint,.wally-app.is-focus-mode .swap-hint-pill,.wally-app.is-focus-mode .wally-top{opacity:0;visibility:hidden;pointer-events:none}}.focus-backdrop{position:fixed;inset:0;z-index:98;background:rgba(0,0,0,.93);opacity:0;pointer-events:none;transition:opacity .42s cubic-bezier(.16,1,.3,1);display:none}.focus-backdrop.is-active{opacity:1}@media(max-width:768px){.focus-backdrop{display:block}.wally-app.is-focus-mode .env-area{position:relative;z-index:99}.wally-app.is-focus-mode .wally-top{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s cubic-bezier(.16,1,.3,1),visibility .35s cubic-bezier(.16,1,.3,1)}}.focus-control-zone{display:none;position:fixed;bottom:0;left:0;right:0;height:calc(260px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,transparent 0,rgba(0,0,0,.18) 55%,rgba(0,0,0,.36) 80%,rgba(0,0,0,.44));z-index:100;pointer-events:none;opacity:0;transition:opacity .42s cubic-bezier(.16,1,.3,1)}@media(max-width:768px){.focus-control-zone{display:block}.focus-control-zone.is-active{opacity:1}}