:root{--brand-100:#fafcfd;--brand-200:#f5f9fc;--brand-300:#eaf3f9;--brand-400:#e0eef6;--brand-500:#d5e8f3;--brand-600:#cbe2f0;--brand-700:#a2b5c0;--brand-800:#7a8890;--brand-900:#3a4148;--brand-1000:#292d30;--gray-100:#f5f5f5;--gray-200:#e6e6e6;--gray-300:#d9d9d9;--gray-400:#b3b3b3;--gray-500:#757575;--gray-600:#444;--gray-700:#383838;--gray-800:#2c2c2c;--gray-900:#1e1e1e;--gray-1000:#111;--color-white:#fff;--color-text:var(--gray-900);--color-text-muted:var(--gray-600);--color-background:var(--brand-100);--color-surface:var(--color-white);--color-surface-muted:var(--gray-100);--color-border:var(--gray-300);--color-action:var(--brand-600);--color-action-hover:var(--brand-500);--color-control-background:var(--gray-100);--color-line-secondary:var(--gray-400);--color-focus:var(--brand-600);--font-family-body:Grandstander, "Trebuchet MS", sans-serif;--font-family-heading:var(--font-family-body);--font-size-2xs:8px;--font-size-xs:10px;--font-size-sm:11px;--font-size-caption:12px;--font-size-body:14px;--font-size-label:16px;--font-size-heading-mobile:22px;--font-size-heading:24px;--font-weight-regular:400;--font-weight-bold:700;--line-height-body:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-100:4px;--radius-200:8px;--radius-300:16px;--radius-400:24px;--radius-500:32px;--radius-600:40px;--radius-full:9999px;--control-height-medium:40px;--control-height-small:32px;--control-icon-size:16px}@font-face{font-family:Grandstander;src:url(/fonts/grandstander.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}:root{font-family:var(--font-family-body);color:var(--color-text);background:var(--brand-100);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;width:100%;min-height:100%;margin:0}*{box-sizing:border-box}body{background:url(/assets/background-Py5LYDC_.png) 50%/cover fixed;min-width:320px;margin:0}a{color:inherit;text-underline-offset:2px}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}a,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}:focus-visible{outline:2px solid var(--color-focus);outline-offset:-1px}h1,h2,p{margin:0}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.pill-button{background:var(--color-action);border-radius:var(--radius-pill);height:var(--control-height-medium);padding:var(--space-3) var(--space-3);font-size:var(--font-size-label);font-weight:var(--font-weight-regular);border:0;justify-content:center;align-items:center;gap:7px;line-height:1.2;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.pill-button:hover:not(:disabled){background:var(--color-action-hover);transform:translateY(-1px)}.pill-button:active:not(:disabled){transform:translateY(1px)}.site-footer{padding:16px var(--space-4) 16px;font-size:var(--font-size-xs);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:7px;line-height:1.6;display:flex}@media (width<=600px){.pill-button{font-size:var(--font-size-body);height:var(--control-height-small);padding:var(--space-2) var(--space-3)}.site-footer{padding:26px var(--space-3) 30px;font-size:var(--font-size-2xs);gap:6px}}@media print{.home-link,.site-footer{display:none}}.home{padding:var(--space-12) var(--space-6) 30px;flex:1;place-items:center;display:grid;position:relative}.home-composition{align-items:center;gap:var(--space-6);flex-direction:column;width:min(760px,58vw,81.778svh);display:flex;position:relative}.house-stage{aspect-ratio:2430/1842;perspective:1800px;touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none;width:100%;container-type:inline-size}.house-stage.is-dragging{cursor:grabbing}.house-camera{width:100%;height:100%;transform-style:preserve-3d;transform-origin:50% 67%;transition:transform 1.1s cubic-bezier(.65,0,.35,1) 1s}.house-model{--depth:22cqw;width:100%;height:100%;transform-style:preserve-3d;transform:translateZ(-11cqw) rotateY(var(--turn));transition:transform .55s;position:relative}.is-dragging .house-model{transition:none}.house-front,.house-back{backface-visibility:hidden;position:absolute;inset:0}.house-front{transform:translateZ(11cqw)}.house-back{transform:rotateY(180deg)translateZ(11cqw)}.house-art,.house-back svg{width:100%;height:100%;display:block}.house-curtain{transform-origin:100% 0;width:22.75%;height:45.2%;transform:scaleX(var(--curtain-width,1));cursor:ew-resize;touch-action:pan-y;transition:transform .55s cubic-bezier(.2,.8,.3,1);position:absolute;top:45.1%;left:44.35%}.curtain-fabric{transform-origin:80% 40%;width:100%;height:100%;animation:5.6s ease-in-out infinite curtain-breeze;display:block}@keyframes curtain-breeze{0%,to{transform:skew(0)scaleX(1)}28%{transform:skew(-1.8deg)scaleX(.86)}62%{transform:skew(1.2deg)scaleX(1.045)}82%{transform:skew(-.6deg)scaleX(.95)}}.is-dragging .curtain-fabric{animation-play-state:paused}.is-entering .curtain-fabric{animation:none}.house-wall{width:var(--depth);background:var(--color-white);border:2px solid var(--color-text-muted);height:61.5%;box-shadow:inset 0 0 0 2px var(--color-white), inset 0 0 0 3px var(--color-line-secondary);backface-visibility:hidden;color:var(--brand-500);place-items:center;font-size:9cqw;display:grid;position:absolute;top:38.5%}.house-wall-left{left:calc(7.6% - 11cqw);transform:rotateY(-90deg)}.house-wall-right{left:calc(92.5% - 11cqw);transform:rotateY(90deg)}.house-roof{width:56.2cqw;height:var(--depth);transform-origin:0 0;background:var(--color-white);border:2px solid var(--color-text-muted);position:absolute;top:1.2%;left:50%}.house-roof-right{transform:translateZ(11cqw)rotate(31.2deg)rotateX(-90deg)}.house-roof-left{transform:translateZ(11cqw)rotate(148.8deg)rotateX(-90deg)}.rotation-help{font-size:var(--font-size-sm);color:var(--color-text-muted);opacity:0;pointer-events:none;position:absolute;top:-25px}.home-composition:has(.house-stage:focus-visible) .rotation-help{opacity:1}.enter-button{white-space:nowrap}.is-entering .house-curtain{transition-delay:.4s;transform:scaleX(.045)}.is-entering .house-camera{pointer-events:none;transform:scale(5.5)}.is-entering .enter-button{opacity:0;transition:opacity .25s}.is-entering{animation:2.2s forwards enter-house}@keyframes enter-house{0%,80%{opacity:1}to{opacity:0}}@media (width<=600px){.home{padding:80px var(--space-5) 26px}.home-composition{gap:25px;width:min(100%,400px)}}@media (height<=550px) and (width>=601px){.home{padding-top:28px}.home-composition{width:min(46vw,430px)}}@media (prefers-reduced-motion:reduce){.is-entering .house-camera{transform:none}}.house-wall{box-shadow:none;background:0 0;border:0}.house-wall img,.house-roof svg{pointer-events:none;width:100%;height:100%;display:block}.house-roof{background:var(--color-white);border:0}.curtain-touch{transform-origin:100% 0;width:100%;height:100%;transition:transform .65s cubic-bezier(.2,1.5,.4,1)}@media (hover:hover){.house-curtain:hover .curtain-touch{transform:scaleX(.93)skew(-.8deg)}}.house-curtain.is-pulling{transition:none}.house-curtain.is-pulling .curtain-touch,.is-entering .curtain-touch{transform:none}.house-curtain.is-pulling .curtain-fabric{animation-play-state:paused}.house-soffit{width:96%;height:var(--depth);background:var(--color-white);pointer-events:none;position:absolute;top:calc(39.5% - 11cqw);left:2%;transform:rotateX(90deg)}.house-idle{width:100%;height:100%;transform-style:preserve-3d;transform-origin:50% 100%;animation:7s ease-in-out infinite house-sway}@keyframes house-sway{0%,to{transform:translateY(0)rotate(-.25deg)}50%{transform:translateY(-3px)rotate(.25deg)}}.house-stage:hover .house-idle,.house-stage:focus-within .house-idle,.house-stage.is-dragging .house-idle{animation-play-state:paused}.is-entering .house-idle{animation:none;transform:none}.button{justify-content:center;align-items:center;gap:var(--space-2);background:var(--color-action);border-radius:var(--radius-full);height:var(--control-height-medium);padding:var(--space-3);font-size:var(--font-size-label);font-weight:var(--font-weight-regular);border:0;line-height:1.2;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.button--primary{background:var(--brand-600);border:1px solid var(--brand-600)}.button--secondary{background:var(--brand-100);border:1px solid var(--brand-600)}.button:disabled{background:var(--gray-200);border:1px solid var(--gray-400);color:var(--gray-400);cursor:not-allowed}.button:hover:not(:disabled){background:var(--color-action-hover);transform:translateY(-1px)}.button:active:not(:disabled){transform:translateY(1px)}.button svg{width:var(--control-icon-size);height:var(--control-icon-size);flex:none}@media (width<=600px){.button{font-size:var(--font-size-body);height:var(--control-height-small);padding:var(--space-2) var(--space-3)}}.privacy-page{padding:120px var(--space-6) 0;flex:1;position:relative}.privacy-content{width:min(100%,680px);margin:0 auto}.privacy-content h1{font-size:var(--font-size-heading);font-weight:var(--font-weight-bold);text-align:center;margin-bottom:36px}.privacy-introduction{font-size:var(--font-size-body);overflow-wrap:anywhere;margin-bottom:34px;line-height:1.55}.privacy-sections{gap:var(--space-4);display:grid}.policy-section{border:1px solid var(--color-border);border-radius:var(--radius-200);background:var(--color-surface-muted)}.policy-section[open]{background:var(--color-white)}.policy-section summary{align-items:center;gap:var(--space-4);padding:18px var(--space-4);cursor:pointer;justify-content:space-between;list-style:none;display:flex}.policy-section summary::-webkit-details-marker{display:none}.policy-section h2{font-size:var(--font-size-label);font-weight:var(--font-weight-bold);line-height:1.35}.accordion-chevron{flex-shrink:0}.policy-section[open] .accordion-chevron{transform:rotate(180deg)}.policy-section[open] summary{padding-bottom:9px}.policy-body{padding:0 var(--space-4) 18px;font-size:var(--font-size-body);font-weight:var(--font-weight-regular);line-height:var(--line-height-body);overflow-wrap:anywhere}.policy-body p+p{margin-top:var(--space-3)}.policy-body ul{margin:10px 0 14px;padding-left:21px}.policy-body li+li{margin-top:5px}@media (width<=600px){.privacy-page{padding:108px 22px 0}.privacy-content h1{font-size:var(--font-size-heading-mobile);margin-bottom:30px}.privacy-introduction{margin-bottom:26px}.policy-section summary{padding:17px 14px}.policy-body{padding:0 14px 17px}.policy-section h2{font-size:var(--font-size-label)}.privacy-sections{gap:var(--space-4)}}@media print{.privacy-page{padding:0}.policy-section{break-inside:avoid}.policy-section::details-content{content-visibility:visible}}.privacy-delete-link{margin-top:18px}.privacy-delete-link label{font-weight:var(--font-weight-bold);margin-bottom:8px;display:block}.privacy-delete-row{align-items:center;gap:12px;display:flex}.privacy-delete-row input{border:1px solid var(--color-border);border-radius:var(--radius-full);width:100%;min-width:0;color:inherit;font:inherit;background:#fff;flex:1;padding:9px 12px}.privacy-delete-row input::placeholder{color:#999}.privacy-delete-row .button{flex-shrink:0}.privacy-delete-confirm,.privacy-delete-link [role]{margin-top:12px}.look-heading{color:var(--color-text);font-size:clamp(36px,4.5vw,60px);font-weight:var(--font-weight-bold);justify-content:center;align-items:center;gap:24px;margin:0 0 28px;line-height:1;display:flex}.look-heading:focus-visible{outline:none}.look-heading img{width:86px;height:86px}@media (width<=800px){.look-heading{gap:14px;margin-bottom:20px;font-size:38px}.look-heading img{width:80px;height:80px}}.frame-carousel{outline:none;width:100%;min-width:0}.frame-carousel-viewport{touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;position:relative;overflow:hidden}.frame-carousel-viewport:active{cursor:grabbing}.frame-carousel-arrow{z-index:4;width:40px;position:absolute;top:50%}.frame-carousel-arrow--previous{left:0}.frame-carousel-arrow--next{right:0}.frame-carousel-arrow:hover{background:var(--brand-100)}@media (width>=801px){.frame-carousel-track{margin-inline:36px}}.frame-carousel-track{perspective:1000px;height:280px;position:relative}.frame-carousel-slide{width:32%;height:250px;cursor:inherit;background:0 0;border:0;justify-content:center;align-items:center;padding:0;transition:transform .55s cubic-bezier(.22,.68,.16,1),opacity .45s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.frame-carousel-slide img{object-fit:contain;filter:drop-shadow(0 3px 2px #00000014);pointer-events:none;max-width:90%;max-height:100%;display:block;transform:rotate(8deg)}.frame-carousel-slide--current{z-index:3;opacity:1}.frame-carousel-slide--previous{z-index:2;opacity:.4;transform:translate(-145%,-50%)scale(.5)}.frame-carousel-slide--next{z-index:2;opacity:.4;transform:translate(45%,-50%)scale(.5)}.frame-carousel-slide--hidden{z-index:0;opacity:0;pointer-events:none;transform:translate(-50%,-50%)scale(.25)}.frame-carousel-dots{justify-content:center;margin-top:4px;display:flex}.frame-carousel-dot{background:0 0;border:0;place-items:center;width:16px;height:24px;padding:0;display:grid}.frame-carousel-dot span{background:var(--gray-300,#e5e5e5);border-radius:50%;width:8px;height:8px;transition:background .2s}.frame-carousel-dot[aria-pressed=true] span{background:var(--brand-500)}.frame-carousel-label{text-align:center;min-height:1.4em;font-size:var(--font-size-body);margin:2px 0 0}.frame-carousel--heart{justify-items:center;display:grid}.frame-carousel-heart-image{justify-content:center;align-items:center;width:100%;height:280px;padding:20px;display:flex}.frame-carousel-heart-image img{object-fit:contain;filter:drop-shadow(0 3px 2px #00000014);max-width:80%;max-height:100%;display:block}@media (width<=800px){.frame-carousel-arrow{display:none}.frame-carousel-track{height:252px}.frame-carousel-slide{width:54%;height:210px}.frame-carousel-label{margin-top:0;font-size:13px}.frame-carousel-heart-image{height:224px;padding:16px 32px}}@media (prefers-reduced-motion:reduce){.frame-carousel-slide{transition:none}}.choose-layout{box-sizing:border-box;width:min(100% - 48px,1140px);margin:0 auto;padding-top:32px}.selection-panel{box-sizing:border-box;background:url(/assets/Frame-screen-DRJgxDUF.png) 50%/100% 100% no-repeat;grid-template-columns:29% 71%;padding:32px 5% 28px;display:grid;position:relative}.selection-panel h2{text-align:center;font-size:var(--font-size-label);margin:12px 0 26px;font-weight:700}.quantity-selection{background:url(/assets/Line-vertical-CaojEJca.svg) 100%/5px 100% no-repeat;padding:0 24px 24px}.quantity-options,.frame-options{gap:16px;display:grid}.selection-option{border:1px solid var(--brand-600);background:var(--brand-100);min-height:54px;font-size:var(--font-size-label);border-radius:8px;padding:8px 12px;line-height:1.2;transition:background .18s}.selection-option[aria-pressed=true]{background:var(--brand-500);border-color:var(--brand-500)}.selection-option:hover:not(:disabled){background:var(--brand-400)}.selection-option:disabled{color:var(--gray-400);background:var(--gray-300);border-color:var(--gray-400)}.frame-selection{flex-direction:column;min-width:0;padding:0 24px 24px;display:flex}.frame-preview{justify-content:center;align-items:center;min-width:0;height:280px;padding:26px;display:flex}.frame-preview img{object-fit:contain;filter:drop-shadow(0 3px 2px #00000014);max-width:100%;max-height:100%;transform:rotate(10deg)}.heart-preview{padding:0}.heart-preview img{transform:none}.frame-options{align-self:center}.selection-next{text-align:center;background:url(/assets/Line-horizontal-BgaV46Vg.svg) top/100% 5px no-repeat;grid-column:1/-1;padding-top:22px}.selection-next .pill-button{min-width:108px;font-weight:var(--font-weight-regular)}@media (width<=800px){.choose-layout{padding-top:80px}.selection-panel{background:url(/assets/Frame-screen-ipad-BRlMTZMt.png) 50%/100% 100% no-repeat;grid-template-columns:1fr;padding:24px}.selection-panel h2{margin:10px 0 20px;font-size:14px}.quantity-selection{background:url(/assets/Line-horizontal-BgaV46Vg.svg) bottom/100% 4px no-repeat;padding:0 0 24px}.quantity-options{grid-template-columns:repeat(3,1fr);gap:8px}.selection-option{min-height:44px;padding:6px 10px;font-size:14px}.frame-selection{flex-direction:column;gap:0;padding:8px 0 18px;display:flex}.frame-selection h2{margin-bottom:8px}.frame-preview{height:252px;padding:26px 50px}.heart-preview{padding:18px 45px}.frame-options{grid-template-columns:repeat(2,1fr);gap:8px;width:100%}.selection-next{padding-top:16px}}.layout-message{width:min(100%,560px);min-width:0;font-size:var(--font-size-body);gap:8px;margin:8px auto 0;display:grid}.layout-message label span{color:var(--color-text-muted);font-size:var(--font-size-caption)}.layout-message textarea{resize:vertical;border:1px solid var(--color-border);background:var(--color-white);width:100%;height:70px;color:var(--color-text);font:inherit;border-radius:8px;padding:12px;line-height:1.5}.layout-message textarea::placeholder{color:var(--gray-400)}#message-count{text-align:right;font-size:var(--font-size-caption);color:var(--color-text-muted)}@media (width>=801px){.layout-shell .music-error{position:absolute;top:204px}}@media (width<=800px){.layout-message{width:100%;margin-top:14px}}@media (width<=600px){.selection-panel{background:url(/assets/Frame-screen-mobile-6nQj485l.png) 50%/100% 100% no-repeat;grid-template-columns:1fr;padding:24px}.layout-message textarea{min-height:88px}}.source-panel{display:block}.source-content{grid-template-columns:minmax(0,360px) 180px;justify-content:center;align-items:center;column-gap:70px;padding:0 24px 38px;display:grid}.source-preview{height:400px}.source-options{gap:16px;display:grid}.source-navigation{justify-content:center;gap:24px;display:flex}.source-back{background:var(--brand-100);border:1px solid var(--brand-600)}@media (width<=800px){.source-content{flex-direction:column;gap:16px;padding:0 0 20px;display:flex}.source-preview{width:100%;height:340px;padding:26px 44px}.source-options{gap:12px;width:100%}.source-navigation{gap:20px}.source-navigation .pill-button{min-width:96px}}.source-selection .look-heading:focus,.upload-page .look-heading:focus{outline:none}.upload-panel{min-height:580px}.upload-filters{background:url(/assets/Line-vertical-CaojEJca.svg) 100%/5px 100% no-repeat;padding:0 40px 38px 12px}.filter-options{gap:14px;display:grid}.upload-workspace{--upload-art-height:410px;flex-direction:column;justify-content:center;align-items:center;min-width:0;padding:20px 30px 24px;display:flex}.upload-artwork{max-width:100%;position:relative}.upload-artwork canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.photo-slot{color:var(--color-text-muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:0;place-items:center;padding:4px;display:grid;position:absolute}.photo-slot span{border-radius:6px;max-width:100%;margin-top:16px;padding:6px 0;font-size:clamp(9px,1vw,13px);line-height:1.4}.photo-slot svg{width:20px;height:20px;margin:6px auto 0;display:block}.photo-slot:hover{background:0 0}.photo-slot:not(.is-filled):hover span,.photo-slot:not(.is-filled):focus-visible span{background:var(--brand-500)}.photo-slot.is-filled:hover:after,.photo-slot.is-filled:focus-visible:after{content:"Edit photo";background:var(--brand-600);border-radius:var(--radius-full);padding:6px;font-size:12px}.upload-count{font-size:var(--font-size-caption);color:var(--color-text-muted);margin:16px 0 0}.upload-error{text-align:center;grid-column:1/-1}.upload-page .pill-button:disabled,.crop-dialog .pill-button:disabled{background:var(--gray-300);color:var(--gray-400);border:1px solid var(--gray-400)}.crop-dialog{border:1px solid var(--brand-700);background:var(--brand-100);width:min(420px,100% - 28px);max-height:calc(100svh - 32px);color:var(--color-text);border-radius:24px;padding:32px;overflow:auto}.crop-dialog::backdrop{background:#292d3070}.crop-dialog h2{text-align:center;margin:0 0 8px;padding-inline:28px;font-size:22px}.crop-close{width:36px;height:36px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;font:28px/1 sans-serif;display:grid;position:absolute;top:8px;right:8px}.crop-close:hover{background:var(--brand-500)}.crop-close:focus-visible{outline:2px solid var(--brand-800);outline-offset:2px}.crop-dialog p{text-align:center;font-size:14px}.crop-preview{touch-action:none;cursor:grab;background:repeating-conic-gradient(#eaf3f9 0% 25%,#fff 0% 50%) 0/16px 16px;width:auto;max-width:100%;max-height:38svh;margin:18px auto;display:block}.crop-preview:active{cursor:grabbing}.crop-controls{gap:12px;display:grid}.crop-controls label{grid-template-columns:90px 1fr;align-items:center;gap:12px;font-size:14px;display:grid}.crop-controls input{width:100%;accent-color:var(--brand-800)}.crop-actions{justify-content:center;gap:16px;margin-top:24px;display:flex}.crop-actions .pill-button{width:-webkit-fill-available;width:-moz-available;width:stretch;font-size:14px}@media (width<=800px){.upload-panel{flex-direction:column;min-height:0;display:flex}.upload-workspace{--upload-art-height:290px;order:0;padding:12px 18px 18px}.upload-filters{background:url(/assets/Line-horizontal-BgaV46Vg.svg) top/100% 4px no-repeat;order:1;padding:6px 0 18px}.upload-filters h2{margin:12px 0 16px}.filter-options{grid-template-columns:repeat(2,1fr);gap:8px}.upload-page .selection-next,.upload-error{order:2}.photo-slot span{font-size:10px}.photo-slot svg{width:18px;height:18px}.upload-count{margin-top:10px}}.print-page{text-align:center;flex:1;width:min(1100px,100% - 40px);margin:64px auto 0}.printer-scene{width:100%;position:relative}.printer-machine{aspect-ratio:2624/2920;isolation:isolate;width:min(520px,62%);margin:auto;position:relative}.printer-face{pointer-events:none;z-index:4;position:absolute;inset:0}.printer-face img{width:100%;height:100%;display:block}.printer-machine h1{z-index:5;width:82%;margin:0;font-size:clamp(18px,2.2vw,28px);line-height:1.2;position:absolute;top:15%;left:9%}.printer-machine h1:focus{outline:none}.printer-arrow{object-fit:contain;z-index:5;width:10%;height:7%;position:absolute;top:27%;left:45%}.printer-well,.printer-tray,.printer-rails{border-radius:2%;width:86%;height:49.5%;position:absolute;top:41%;left:7%}.printer-well{background:linear-gradient(#0005,#0000 46%),linear-gradient(90deg,#0002,#0000 13% 88%,#0002);box-shadow:inset 0 8px 15px #0003,inset 0 -3px 3px #0002}.printer-tray{z-index:2;overflow:hidden}.printer-tray.tray-open{overflow:visible}.printer-rails{pointer-events:none;z-index:3;justify-content:space-between;padding:0 16%;display:flex;overflow:hidden}.printer-rails img{filter:drop-shadow(2px 0 1px #0002);width:7%;height:100%}.movable{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.movable:active{cursor:grabbing}.movable[aria-disabled=true]{pointer-events:none}.printed-object{z-index:2;width:23%;position:absolute;top:62%;left:50%;transform:translate(-50%,-50%)}.delivered-photo{width:100%;transform:rotate(var(--rest-angle,86deg));filter:drop-shadow(3px 7px 4px #0004);animation:photo-delivery var(--print-duration,10s) linear both;display:block}.printed-object:not(.layout-heart){--rest-angle:86deg;transform:translate(-50%, calc((1 - cos(var(--rest-angle)) - var(--photo-ratio) * sin(var(--rest-angle))) * 50%));top:auto;bottom:6px}.printed-object.layout-a{width:35%}.printed-object.layout-c{width:20%}.printed-object.layout-d,.printed-object.layout-e{width:55%}.printed-object.layout-heart{width:88%;top:62%}.layout-heart .delivered-photo{--rest-angle:-12deg;animation-name:heart-delivery;transform:rotate(-12deg)}.locket-open .delivered-photo{animation:none;transform:rotate(-6deg)}.printer-machine:has(.is-lifted){z-index:7}:is(.printer-tray:has(.is-lifted),.printer-tray:has(.locket-open)){z-index:6}.printed-object.is-lifted .delivered-photo{animation:none;transform:rotate(0)}.is-delivered .printed-object:not(.layout-heart) .delivered-photo{transition:transform .42s cubic-bezier(.22,1,.36,1),filter .3s}.printed-object:not(.layout-heart).is-lifted.is-dragging .delivered-photo{filter:drop-shadow(4px 14px 9px #0004);transform:translateY(-8px)rotate(0)scale(1.025)}.is-delivered .printed-object .delivered-photo{animation:none}@media (prefers-reduced-motion:no-preference){@media (hover:hover){.is-delivered .layout-heart:not(.locket-open):not(.locket-opening):not(.is-dragging):hover .delivered-photo{animation:1.4s ease-in-out infinite locket-hover-pulse}}.is-delivered .layout-heart:not(.locket-open):not(.locket-opening):focus-visible .delivered-photo{animation:1.4s ease-in-out infinite locket-hover-pulse}.printed-object.layout-heart.locket-opening .delivered-photo{animation:.42s ease-in-out both locket-anticipation}.printed-object.layout-heart.locket-open .delivered-photo{animation:.75s cubic-bezier(.2,.75,.25,1) both locket-surprise}}@keyframes locket-hover-pulse{0%,to{scale:1}50%{scale:1.04}}.locket-pulse,.locket-burst{aspect-ratio:1;pointer-events:none;width:80%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.locket-pulse:before,.locket-pulse:after,.locket-burst:before{content:"";opacity:0;border-radius:50%;position:absolute;inset:0}.locket-pulse:before,.locket-pulse:after{background:#c8e3f1}.locket-burst{z-index:7}.locket-burst:before{border:3px solid #a5cddd}.locket-burst i{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 94%,50% 72%,21% 94%,32% 57%,2% 35%,39% 35%);background:var(--burst-color);opacity:0;width:28px;height:28px;margin:-14px;position:absolute;top:50%;left:50%}.locket-burst i:nth-child(2n){width:20px;height:20px;margin:-10px}@media (prefers-reduced-motion:no-preference){@media (hover:hover){.is-delivered .layout-heart:not(.locket-open):not(.locket-opening):not(.is-dragging):hover .locket-pulse:before,.is-delivered .layout-heart:not(.locket-open):not(.locket-opening):not(.is-dragging):hover .locket-pulse:after{animation:1.6s ease-out infinite locket-ripple}.is-delivered .layout-heart:hover .locket-pulse:after{animation-delay:.8s}}.locket-burst:before{animation:.85s ease-out both locket-ring}.locket-burst i{animation:1.1s ease-out both locket-particle}}@keyframes locket-ripple{0%{opacity:.3;scale:.6}to{opacity:0;scale:1.65}}@keyframes locket-ring{0%{opacity:0;scale:.3}25%{opacity:.8}to{opacity:0;scale:1.7}}@keyframes locket-particle{0%{transform:rotate(var(--angle)) translateY(0) scale(0);opacity:0}25%{opacity:1}70%{opacity:.8}to{transform:rotate(var(--angle)) translateY(-175px) scale(.3);opacity:0}}@keyframes locket-anticipation{0%,to{rotate:0deg;scale:1}25%{rotate:-9deg;scale:.94}55%{rotate:9deg;scale:.94}80%{rotate:-5deg;scale:1.03}}@keyframes locket-surprise{0%{opacity:.3;rotate:-12deg;scale:.65}45%{opacity:1;rotate:6deg;scale:1.12}70%{rotate:-3deg;scale:.97}to{opacity:1;rotate:0deg;scale:1}}.decorate-note{cursor:pointer;background:0 0;border:0;width:145px;padding:0;position:absolute;top:33%;left:calc(50% + 275px)}.decorate-note img{filter:drop-shadow(1px 2px 1px #0002);width:103%;display:block}.decorate-note span{place-content:center;gap:4px;width:100%;font-size:14px;display:grid;position:absolute;inset:0}.decorate-note small{font-size:11px;font-weight:400;display:block}.print-letter{aspect-ratio:1048/1129;isolation:isolate;clip-path:inset(-100vmax -100vmax 0);width:185px;position:absolute;top:55%;left:calc(50% + 275px)}.letter-back{width:100%;height:100%;position:absolute;inset:0}.letter-message{box-sizing:border-box;filter:drop-shadow(1px 2px 2px #0002);z-index:1;background-image:url(/assets/Letter-note-DJqf1t0T.svg);background-position:50%;background-repeat:no-repeat;background-size:100% 100%;width:100%;height:auto;min-height:64px;padding:12px;font-family:Grandstander,sans-serif;transition:translate .3s;position:absolute;top:44%;left:0}.letter-message p{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;margin:0;font-family:inherit;font-size:13px;line-height:1.5;position:relative}.letter-front{pointer-events:none;z-index:2;width:100%;position:absolute;bottom:0;left:0}.letter-message.is-lifted{z-index:1}.letter-message.is-dragging{transition:none}@media (prefers-reduced-motion:reduce){.letter-message{transition:none}}.print-letter:has(.is-lifted){z-index:6}.print-status{min-height:20px;color:var(--gray-600);margin:16px 0;font-size:13px}.print-actions{justify-content:center;gap:18px;display:flex}.print-actions .pill-button{border-radius:var(--radius-full);min-width:106px}.print-page button:disabled{cursor:not-allowed}.print-actions button:disabled{background:var(--gray-300);color:var(--gray-400)}.print-back{background:0 0;border:0;margin:18px 0 0;font-size:12px;text-decoration:underline}@keyframes photo-delivery{0%{transform:translateY(-220%) rotate(calc(var(--rest-angle) - 8deg))}27%,35%{transform:translateY(-38%) rotate(calc(var(--rest-angle) - 8deg))}55%,70%{transform:translateY(-14%) rotate(calc(var(--rest-angle) - 8deg));animation-timing-function:cubic-bezier(.4,0,1,1)}87%{transform:rotate(var(--rest-angle));animation-timing-function:ease-out}90%{transform:translateY(-1.2%) rotate(var(--rest-angle));animation-timing-function:ease-in}94%,to{transform:rotate(var(--rest-angle))}}@keyframes heart-delivery{0%{transform:translateY(-200%)rotate(-16deg)}27%,35%{transform:translateY(-38%)rotate(-16deg)}55%,70%{animation-timing-function:cubic-bezier(.4,0,1,1);transform:translateY(-14%)rotate(-16deg)}87%{transform:rotate(var(--rest-angle));animation-timing-function:ease-out}90%{transform:translateY(-1.2%) rotate(var(--rest-angle));animation-timing-function:ease-in}94%,to{transform:rotate(var(--rest-angle))}}@media (width<=1000px) and (width>=701px){.printer-machine{width:56%;margin-left:14%}.decorate-note,.print-letter{width:24%;left:73%}}@media (width<=700px){.print-page{width:min(360px,100% - 32px);margin-top:85px}.printer-machine{aspect-ratio:1436/2710;width:100%}.printer-machine h1{font-size:clamp(16px,4.8vw,22px);top:10%}.printer-arrow{height:5%;top:18%}.printer-well,.printer-tray,.printer-rails{height:65%;top:25.5%}.printed-object{width:39%}.printed-object:not(.layout-heart){--rest-angle:16deg}.printed-object.layout-a{width:60%}.printed-object.layout-c{width:32%}.printed-object.layout-d,.printed-object.layout-e{width:75%}.delivered-photo{animation-name:mobile-delivery;transform:rotate(16deg)}.printed-object.layout-heart{width:110%;top:80%}.decorate-note{width:100%;height:auto;margin:40px auto 0;display:block;position:relative;top:auto;left:auto}.print-letter{width:min(210px,100%);margin:32px auto 24px;position:relative;top:auto;left:auto}.letter-message p{font-size:14px}}@keyframes mobile-delivery{0%{transform:translateY(-130%) rotate(calc(var(--rest-angle) - 8deg))}27%,35%{transform:translateY(-38%) rotate(calc(var(--rest-angle) - 8deg))}55%,70%{transform:translateY(-14%) rotate(calc(var(--rest-angle) - 8deg));animation-timing-function:cubic-bezier(.4,0,1,1)}87%{transform:rotate(var(--rest-angle));animation-timing-function:ease-out}90%{transform:translateY(-1.2%) rotate(var(--rest-angle));animation-timing-function:ease-in}94%,to{transform:rotate(var(--rest-angle))}}@media (prefers-reduced-motion:reduce){.delivered-photo{animation:none}.is-delivered .printed-object:not(.layout-heart) .delivered-photo{transition:none}}.share-control{position:relative}.share-link{z-index:8;border:1px solid var(--brand-600);text-align:left;background:#fff;border-radius:12px;width:min(300px,80vw);padding:16px;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-35%);box-shadow:0 4px 18px #0002}.share-link label{font-size:14px;display:block}.share-close{width:32px;height:32px;color:var(--color-text);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;font-size:24px;display:grid;position:absolute;top:6px;right:6px}.share-close:hover{background:var(--brand-100)}.share-link input{border:1px solid var(--brand-600);border-radius:6px;width:100%;margin:8px 0;padding:8px;font-size:13px}.share-link small{margin-top:5px;line-height:1.5;display:block}.decorate-page{--decorate-height:460px;flex:1;width:min(1050px,100% - 40px);margin:135px auto 0}.decorate-layout{grid-template-columns:35% 65%;align-items:center;gap:12px;min-height:500px;display:grid}.sticker-palette{width:260px;max-width:100%;margin:auto}.sticker-palette h2{text-align:center;margin:0 0 10px;font-size:18px;font-weight:400}.sticker-palette h2 img{vertical-align:top;width:25px}.sticker-box{aspect-ratio:1322/1774;position:relative}.box-art{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.sticker-inventory{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(5,1fr);place-items:center;gap:4px;display:grid;position:absolute;inset:57% 12% 9%}.palette-sticker{touch-action:none;cursor:grab;background:0 0;border:0;width:34px;height:34px;padding:3px}.palette-sticker img{object-fit:contain;pointer-events:none;width:100%;height:100%}.palette-sticker:disabled{visibility:hidden}.decorate-work{justify-content:center;align-items:center;min-width:0;padding:36px;display:flex}.decorate-art{flex-shrink:0;position:relative}.decorate-base{filter:drop-shadow(1px 3px 2px #0002);width:100%;display:block}.placed-sticker{cursor:grab;touch-action:none;background:0 0;border:0;padding:0;position:absolute}.placed-sticker img{pointer-events:none;width:100%;display:block}.placed-sticker.is-selected{outline:1px dashed var(--brand-800);outline-offset:4px}.placed-sticker:active{cursor:grabbing}.sticker-tools{border:0;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:center;align-items:center;gap:16px;min-width:0;margin:0;padding:0;display:grid;position:absolute;inset:15% 15% auto}.sticker-tools legend{font-size:12px}.sticker-tools label{flex-direction:column;gap:4px;font-size:13px;display:flex}.sticker-tools input{width:100%;min-width:0;accent-color:var(--brand-800)}.sticker-tools .pill-button{min-width:0;height:24px;padding:6px 8px;font-size:11px}.decorate-actions{justify-content:center;gap:20px;margin:28px auto 0;display:flex}.decorate-actions .pill-button{min-width:100px}.sticker-ghost{object-fit:contain;pointer-events:none;z-index:100;width:48px;max-height:60px;position:fixed;transform:translate(-50%,-50%)}@media (width<=700px){.decorate-page{--decorate-height:320px;width:calc(100% - 32px);margin-top:90px}.decorate-layout{grid-template-columns:1fr;gap:36px}.decorate-work{grid-row:1;padding:22px 28px}.sticker-palette{width:260px}.sticker-palette h2{font-size:14px}.palette-sticker{width:32px;height:32px;padding:2px}}.take-panel{grid-template-columns:36% 64%;padding:32px 5% 24px}.take-frame{background:url(/assets/Line-vertical-CaojEJca.svg) 100%/3px 100% no-repeat;flex-direction:column;justify-content:center;align-items:center;min-width:0;padding:16px 28px 10px 0;display:flex}.take-frame canvas{object-fit:contain;max-height:360px;display:block}.take-frame p{color:var(--gray-600);margin:12px 0 0;font-size:12px}.take-camera{min-width:0;padding:0 0 22px 24px}.camera-viewport{background:#000;border-radius:10px;justify-content:center;align-items:center;height:400px;display:flex;position:relative;overflow:hidden}.camera-viewport canvas{object-fit:contain;max-width:100%;height:100%}.camera-source{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.camera-status{color:#fff;text-align:center;padding:20px;position:absolute}.camera-status .camera-back{color:inherit;margin:16px auto 0;display:block}.camera-filters .selection-option:disabled[aria-pressed=true]{background:var(--brand-500);color:var(--gray-900);border-color:var(--brand-600)}.camera-countdown{width:90px;height:90px;color:var(--gray-900);background:#fff9;border-radius:50%;place-items:center;font-size:48px;font-weight:700;display:grid;position:absolute}.camera-filters{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.camera-filters .selection-option{min-height:40px;padding:8px 4px;font-size:12px}.take-page .pill-button:disabled{background:var(--gray-300);color:var(--gray-400);cursor:not-allowed}.take-page .pill-button.is-capturing:disabled{background:var(--brand-600);border-color:var(--brand-600);color:var(--color-text);cursor:progress}.capture-dots{text-align:left;clip-path:inset(0 100% 0 0);width:1.2em;animation:1.6s step-end infinite capture-dots;display:inline-block}@keyframes capture-dots{0%,to{clip-path:inset(0 100% 0 0)}25%{clip-path:inset(0 66.66% 0 0)}50%{clip-path:inset(0 33.33% 0 0)}75%{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.capture-dots{clip-path:inset(0);animation:none}}.camera-error{text-align:center;grid-column:1/-1;padding:12px}.camera-error .pill-button{margin:0 auto}.camera-back{background:0 0;border:0;margin:12px;text-decoration:underline}.take-page .look-heading:focus{outline:none}@media (width<=800px){.take-panel{grid-template-columns:1fr;padding:18px 14px}.take-camera{background:url(/assets/Line-horizontal-BgaV46Vg.svg) bottom/100% 3px no-repeat;grid-row:1;padding:0 0 16px}.camera-viewport{height:240px}.camera-filters{gap:5px;margin-top:10px}.camera-filters .selection-option{min-height:36px;font-size:11px}.take-frame{background:0 0;padding:20px 0 16px}.take-frame canvas{max-width:220px;max-height:220px}.camera-countdown{width:64px;height:64px;font-size:34px}}.camera-flash{z-index:2;pointer-events:none;border-radius:inherit;opacity:0;background:#fff;animation:.24s ease-out camera-capture-flash;position:absolute;inset:0}@keyframes camera-capture-flash{0%{opacity:.55}to{opacity:0}}@media (prefers-reduced-motion:reduce){.camera-flash{animation:none}}.site-footer{justify-content:center;align-items:baseline;gap:var(--space-2);padding:16px var(--space-4) 16px;font-size:var(--font-size-xs);flex-wrap:wrap;line-height:1.6;display:flex}.snack{text-underline-offset:2px;text-decoration:underline}@media (width<=600px){.site-footer{gap:var(--space-2);padding:26px var(--space-3) 30px;font-size:var(--font-size-2xs)}}.app-shell{flex-direction:column;min-height:100svh;display:flex;overflow:clip}.inside-page{text-align:center;padding:160px var(--space-6) 80px;flex:1;position:relative}.inside-page h1{margin-bottom:var(--space-6)}@media (width<=600px){.inside-page{padding-top:108px}}.page-controls{top:var(--space-10);justify-content:space-between;align-items:center;gap:var(--space-3);z-index:20;display:flex;position:absolute;left:4.3%;right:4.3%}.home-link[aria-disabled=true]{opacity:.5;cursor:not-allowed;box-shadow:none}.ambience-button{pointer-events:auto;min-width:132px;margin-left:auto}.ambience-button[aria-pressed=false]{background:var(--brand-100)}.ambience-button[aria-pressed=true]{background:var(--brand-600)}.music-error{top:calc(var(--space-10) + var(--control-height-medium) + var(--space-2));text-align:right;font-size:var(--font-size-caption);z-index:20;pointer-events:none;position:fixed;left:4.3%;right:4.3%}@media (width<=600px){.page-controls{top:var(--space-5);left:var(--space-4);right:var(--space-4);gap:var(--space-1)}.ambience-button{min-width:112px}.music-error{top:calc(var(--space-5) + var(--control-height-small) + var(--space-2))}}@media print{.page-controls,.music-error{display:none}}@media (hover:hover) and (pointer:fine){:root{--site-cursor:url(/cursors/blue-0.cur) 2 9;animation:1.33333s step-end infinite blue-cursor}body{cursor:var(--site-cursor), auto}a,button,summary{cursor:var(--site-cursor), pointer}.house-stage{cursor:var(--site-cursor), grab}.house-stage.is-dragging{cursor:var(--site-cursor), grabbing}.house-curtain{cursor:var(--site-cursor), ew-resize}input,textarea,[contenteditable=true]{cursor:text}button:disabled{cursor:not-allowed}}@keyframes blue-cursor{0%{--site-cursor:url(/cursors/blue-0.cur) 2 9}25%{--site-cursor:url(/cursors/blue-1.cur) 2 9}50%{--site-cursor:url(/cursors/blue-2.cur) 2 9}75%{--site-cursor:url(/cursors/blue-3.cur) 2 9}}@media (prefers-reduced-motion:reduce){:root{animation:none}}
