:root{font-synthesis:none;color-scheme:dark;color:#f0eee8;--ink:#f0eee8;--muted:#c6d4e3;--paper-ink:#40566b;--paper:#fffaf0;background:#314965;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(at 50% 48%,#516984,#314965 65%,#233953);min-width:320px;margin:0;transition:background 1.5s,color 1.5s}body:before{content:"";pointer-events:none;opacity:.55;background:radial-gradient(circle at 9% 15%,#fff7dc 0 1px,#0000 1.5px),radial-gradient(circle at 23% 8%,#dfecfc 0 1px,#0000 1.5px),radial-gradient(circle at 76% 12%,#fff7dc 0 1px,#0000 1.5px),radial-gradient(circle at 89% 27%,#dfecfc 0 1px,#0000 1.5px),radial-gradient(circle at 7% 64%,#dfecfc 0 1px,#0000 1.5px),radial-gradient(circle at 94% 73%,#fff7dc 0 1px,#0000 1.5px),radial-gradient(circle at 17% 85%,#dfecfc 0 1px,#0000 1.5px);position:fixed;inset:0}button,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;border:0}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,summary:focus-visible{outline-offset:5px;outline:2px solid #f3dab0}a{color:inherit}svg{fill:none;stroke:currentColor;stroke-width:1.55px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:20px;height:20px}button svg{pointer-events:none}[hidden]{display:none!important}.icon-library{width:0;height:0;position:absolute;overflow:hidden}h1,h2,p{margin-top:0}.app-shell{max-width:1920px;height:100svh;min-height:680px;margin:auto;position:relative}main,.island-layout{height:100%;min-height:inherit;position:relative}.story-panel{z-index:4;text-align:center;pointer-events:none;position:absolute;top:34px;left:5vw;right:5vw}.story-panel button{pointer-events:auto}#welcome-panel{padding-top:37px}h1{letter-spacing:-2px;margin:0 0 13px;font:400 clamp(38px,4.5vw,65px)/1.2 Lora,Georgia,serif}h1 em{color:#d3e4f6;font-weight:400}.intro-copy{color:var(--muted);margin:0;font-size:14px;line-height:1.8}h2{letter-spacing:-.9px;margin:12px 0 18px;font:400 32px/1.25 Lora,Georgia,serif}h2:focus{outline:none}.story-panel:has(#place-panel:not([hidden])){text-align:left;width:300px;inset:auto auto 116px 5vw}#place-panel{background:var(--paper);color:var(--paper-ink);pointer-events:auto;border-radius:2px 5px 3px 1px;padding:22px 25px 26px;animation:.3s both fade-up;box-shadow:0 12px 40px #14253c26}.back-button{color:#657b8d;background:0 0;min-height:40px;padding:0;font-size:12px}.back-button:hover{color:#334e64}.place-description{margin-bottom:17px;font-size:15px;line-height:1.8}.primary-button{color:#446582;background:0 0;border-bottom:1px solid #809ab6;justify-content:center;align-items:center;gap:15px;min-height:46px;padding:8px 0;font:italic 17px/1.5 Lora,Georgia,serif;display:inline-flex}.primary-button:hover:not(:disabled){color:#294c6a;border-bottom-color:#294c6a}.primary-button svg{width:18px;height:18px}.world-wrap{isolation:isolate;position:absolute;inset:168px 0 66px}.world-halo{z-index:-1;pointer-events:none;background:radial-gradient(at 50% 55%,#8bafcd18,#0000 65%);position:absolute;inset:0}.world-canvas{cursor:grab;position:absolute;inset:0}.world-canvas:active{cursor:grabbing}.world-canvas canvas{touch-action:none;width:100%;height:100%;display:block;mask-image:linear-gradient(#0000,#0004 5%,#000c 12%,#000 22% 70%,#000c 84%,#0004 94%,#0000)}.world-loading{color:var(--muted);white-space:nowrap;align-items:center;gap:12px;font:italic 15px/1.7 Lora,Georgia,serif;display:flex;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.loading-spark{font-size:32px;animation:2s infinite breathe}.hotspots{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.hotspot{pointer-events:auto;opacity:0;will-change:transform;background:0 0;border-radius:50%;place-items:center;width:48px;height:48px;padding:0;display:grid;position:absolute;top:0;left:0}.hotspot-light{color:#fff1ce;text-shadow:0 0 9px #fff0bd,0 0 24px #ffda9180;background:radial-gradient(circle,#ffdf921f,#0000 72%);border-radius:50%;place-items:center;width:30px;height:30px;font:28px/1 Georgia,serif;transition:transform .25s;display:grid}.hotspot:hover .hotspot-light,.hotspot:focus-visible .hotspot-light{transform:scale(1.2)}.drag-hint{text-align:center;pointer-events:none;width:max-content;max-width:calc(100% - 40px);color:var(--muted);margin:0;font:italic 14px/1.7 Lora,Georgia,serif;position:absolute;bottom:-27px;left:50%;transform:translate(-50%)}.world-fallback{object-fit:contain;opacity:.88;width:100%;height:100%;position:absolute;inset:0;mask-image:radial-gradient(#000 35%,#0000 72%)}.is-fallback .hotspots{display:none}.gift-footer{z-index:6;pointer-events:none;justify-content:space-between;align-items:flex-end;gap:20px;display:flex;position:absolute;bottom:24px;left:5vw;right:5vw}.gift-footer>*{pointer-events:auto}.quiet-corner{align-items:flex-end;gap:16px;display:flex}.volume-control{position:relative}.volume-control summary{width:44px;height:44px;color:var(--muted);cursor:pointer;place-items:center;list-style:none;display:grid}.volume-control summary::-webkit-details-marker{display:none}.volume-control summary:hover,.volume-control[open] summary{color:var(--ink)}.volume-control summary svg{width:19px;height:19px}.volume-panel{background:var(--paper);width:220px;color:var(--paper-ink);color-scheme:light;border-radius:2px;padding:16px 16px 10px;position:absolute;bottom:calc(100% + 8px);left:-80px;box-shadow:0 12px 40px #14253c33}.volume-panel label{font:italic 14px/1.7 Lora,Georgia,serif}.volume-row{align-items:center;gap:8px;margin-top:6px;display:flex}.volume-row button{flex-shrink:0}.volume-row input{accent-color:#6484a2;cursor:pointer;width:100%;min-width:0;min-height:36px;margin:0}.volume-panel button:focus-visible,.volume-panel input:focus-visible{outline-offset:3px;outline:2px solid #477da8}.letter-button{background:0 0;flex-direction:column;align-items:center;gap:15px;padding:8px 6px 0;display:flex}.envelope{color:#527391;isolation:isolate;background:#e4ebeb;border:1px solid #f9fbf299;border-radius:2px;place-items:center;width:122px;height:81px;transition:transform .3s;display:grid;position:relative;transform:rotate(-7deg);box-shadow:0 6px 18px #13284140}.envelope:before{content:"";z-index:-1;background:linear-gradient(34deg,#d1dfe5 49%,#0000 50%),linear-gradient(-34deg,#edf0e8 49%,#0000 50%);position:absolute;inset:0}.envelope:after{content:"";clip-path:polygon(0 0,100% 0,50% 55%);z-index:-1;filter:drop-shadow(0 1px 1px #a3b7c444);background:#f4f4e9;position:absolute;inset:0}.envelope>span{margin-top:32px;font:italic 16px/1.4 Lora,Georgia,serif}.envelope svg{color:#ae7a7f;fill:#ae7a7f33;width:11px;height:11px;position:absolute;top:27px}.letter-button:hover .envelope{transform:translateY(-4px)rotate(-3deg)}.letter-caption{color:var(--muted);font:italic 12px/1.6 Lora,Georgia,serif}.island-details{max-width:310px;position:relative}.island-details summary{width:max-content;min-height:44px;color:var(--muted);cursor:pointer;text-underline-offset:5px;align-items:center;font-size:12px;text-decoration:underline #bbcdda66;list-style:none;display:flex}.island-details summary::-webkit-details-marker{display:none}.help-sheet{background:var(--paper);width:310px;max-width:calc(100vw - 40px);max-height:70svh;color:var(--paper-ink);border-radius:2px;padding:23px;position:absolute;bottom:calc(100% + 8px);left:0;overflow:auto;box-shadow:0 12px 40px #14253c33}.help-sheet p{margin-bottom:13px;font-size:14px;line-height:1.7}.place-links{grid-template-columns:repeat(2,1fr);gap:2px 7px;display:grid}.place-link{text-align:left;background:0 0;align-items:center;gap:7px;min-height:44px;padding:6px 0;font-size:12px;display:flex}.place-link svg{width:16px;height:16px}.place-link:hover,.place-link.is-active{text-underline-offset:4px;text-decoration:underline}.quiet-controls{border-top:1px solid #b0bec94d;flex-direction:column;align-items:flex-start;margin-top:13px;padding-top:10px;display:flex}.quiet-controls button{text-underline-offset:4px;background:0 0;min-height:44px;padding:7px 0;font-size:13px;text-decoration:underline}.skip-link{z-index:50;background:var(--paper);color:var(--paper-ink);padding:14px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:12px}.toast{color:#fff1d9;text-align:center;z-index:30;opacity:0;pointer-events:none;background:#253c55f2;border-radius:2px;width:max-content;max-width:calc(100vw - 36px);padding:12px 20px;font:italic 15px/1.7 Lora,Georgia,serif;transition:opacity .3s,transform .3s;position:fixed;bottom:80px;left:50%;transform:translate(-50%,10px)}.toast.is-visible{opacity:1;transform:translate(-50%)}dialog{color-scheme:light;background:var(--paper);color:var(--paper-ink);border:0;border-radius:3px;width:100%;max-width:min(560px,100vw - 32px);max-height:calc(100svh - 40px);padding:46px;overflow:auto;box-shadow:0 30px 100px #10213766}dialog[open]{animation:.3s both fade-up}dialog::backdrop{backdrop-filter:blur(5px);background:#182d4988}.icon-button{background:0 0;border-radius:50%;place-items:center;width:44px;height:44px;display:inline-grid}.icon-button:hover{background:#8da5bb20}.dialog-close{z-index:5;position:absolute;top:10px;right:10px}.dialog-eyebrow{color:#657d91;margin-bottom:12px;font:italic 15px/1.7 Lora,Georgia,serif}.dialog-subtitle{color:#617589;font-size:15px;line-height:1.8}.letter-dialog{padding:3px 0 8px}.letter-stamp{color:#ab7b7c;background:0 0;border-radius:50%;place-items:center;width:44px;height:44px;margin:0 0 10px auto;padding:0;display:grid;transform:rotate(8deg)}.letter-stamp svg{fill:#0000;width:25px;height:25px;transition:fill .3s,color .3s}.letter-stamp[aria-pressed=true] svg{fill:#d95464;color:#d95464}.letter-dialog h2{margin:0 0 26px;font-size:34px;font-style:italic}.letter-dialog p{color:#50667a;margin-bottom:20px;font:16px/1.95 Lora,Georgia,serif}.letter-signature{color:#6484a2;margin-top:28px;font:italic 21px/1.6 Lora,Georgia,serif}.basket-items{margin:20px 0 24px;padding:0;list-style:none}.basket-items li{border-bottom:1px dashed #a7b5bd66;align-items:center;gap:24px;padding:19px 0;display:flex}.basket-items h3{margin:0 0 6px;font:400 19px/1.4 Lora,Georgia,serif}.basket-items p{color:#637b8c;margin:0;font-size:14px;line-height:1.7}.basket-item-art{color:#7897aa;flex-shrink:0;justify-content:center;width:80px;display:flex;transform:rotate(-6deg)}.basket-item-art>svg{stroke-width:1.2px;width:43px;height:43px}.basket-item-art span+span{margin-left:-15px;transform:rotate(16deg)}.basket-item-art span svg{stroke-width:1.5px;width:34px;height:48px}.empty-basket{text-align:center;color:#637b8c;padding:25px 0 18px}.empty-basket>svg{stroke-width:1px;color:#ad8c64;width:70px;height:70px;transform:rotate(-7deg)}.empty-basket p{margin-top:22px;font:italic 16px/1.9 Lora,Georgia,serif}.flower-choices{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.flower-choice{background:0 0;border-bottom:2px solid #0000;flex-direction:column;align-items:center;gap:16px;min-height:120px;padding:15px 6px;font-size:13px;line-height:1.5;display:flex}.flower-choice svg{width:40px;height:40px;stroke:var(--flower-color);stroke-width:1.8px}.flower-choice[aria-pressed=true]{background:#d6e4ea4a;border-bottom-color:#789bb5}.selection-status{color:#637b8e;margin:18px 0 8px;font:italic 14px/1.8 Lora,Georgia,serif}.shell-choices{flex-direction:column;margin-top:23px;display:flex}.shell-choice{text-align:left;background:0 0;border-bottom:1px dashed #acb8c26b;align-items:center;gap:17px;min-height:80px;padding:18px 5px;font-size:15px;display:flex}.shell-choice svg:first-child{color:#b98880;width:34px;height:34px}.shell-choice:nth-child(2) svg:first-child{color:#b5a06e}.shell-choice:nth-child(3) svg:first-child{color:#789dbc}.shell-choice:nth-child(4) svg:first-child{color:#91a7b8;fill:#b4c8d144}.shell-choice svg:last-child{margin-left:auto}.shell-choice:hover{background:#d6e4ea38}dialog button:focus-visible,#place-panel button:focus-visible,.help-sheet button:focus-visible{outline-color:#477da8}.noscript{text-align:center;background:var(--paper);color:var(--paper-ink);z-index:50;padding:30px;position:fixed;inset:auto 0 0}html[data-time=morning]{--ink:#3b536b;--muted:#586f84;color-scheme:light}html[data-time=morning] body{color:var(--ink);background:radial-gradient(at 50% 45%,#f6fbff,#dbe8f1)}html[data-time=golden]{--ink:#654f4b;--muted:#755c56;color-scheme:light}html[data-time=golden] body{color:var(--ink);background:radial-gradient(at 50% 45%,#fff0dd,#e4d4d7)}html:not([data-time=night]) body:before{opacity:0}@keyframes breathe{50%{opacity:.4}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1100px){.story-panel:has(#place-panel:not([hidden])){width:275px;left:26px}#place-panel{padding:18px 22px 22px}#place-panel h2{font-size:27px}.envelope{width:105px;height:74px}.envelope>span{font-size:14px}}@media (width<=780px){.app-shell{flex-direction:column;height:auto;min-height:100svh;display:flex}main{flex:1;min-height:0;display:flex}.island-layout{flex-direction:column;flex:1;height:auto;display:flex}.story-panel,.story-panel:has(#place-panel:not([hidden])){flex-shrink:0;width:auto;margin:30px 24px 0;position:relative;inset:auto}#welcome-panel{padding-top:36px}h1{letter-spacing:-1.3px;font-size:clamp(35px,8.5vw,52px);line-height:1.23}h1 em{display:block}.intro-copy{font-size:13px}#place-panel{width:min(420px,100%);margin:auto}#place-panel h2{margin:4px 0 12px}.place-description{margin-bottom:8px;font-size:14px}.world-wrap{flex:1;height:clamp(310px,49svh,520px);min-height:310px;position:relative;inset:auto}.world-canvas,.hotspots{inset:-5px 0 5px}.world-loading{font-size:13px}.drag-hint{width:calc(100% - 40px);max-width:280px;font-size:13px;bottom:-16px}.gift-footer{flex-shrink:0;margin:46px 26px 22px;position:relative;inset:auto}.letter-button{gap:12px}.envelope{width:100px;height:68px}.envelope svg{top:21px}.envelope>span{margin-top:29px}.letter-caption{font-size:11px}.help-sheet{width:300px}.toast{width:max-content;padding:11px 16px;font-size:14px;bottom:28px}dialog{padding:43px 26px 32px}dialog h2{font-size:29px}.letter-dialog p{font-size:15px;line-height:1.9}.basket-items li{gap:14px}.basket-item-art{width:58px}.basket-items h3{font-size:17px}.flower-choices{grid-template-columns:repeat(2,1fr)}.flower-choice:last-child{flex-direction:row;grid-column:1/-1;justify-content:center;min-height:75px}.shell-choice{gap:12px;font-size:14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.movie-lightbox{color-scheme:dark;color:#ecf0f4;background:#304962f2;border:1px solid #d4e3f226;border-radius:26px;width:calc(100vw - 48px);max-width:1050px;max-height:calc(100svh - 40px);padding:48px 35px 28px;box-shadow:0 0 100px 30px #afcfe014,0 28px 100px #0d1d3855}.movie-lightbox::backdrop{backdrop-filter:blur(13px);background:#1a3042a8}.movie-lightbox .movie-close{width:44px;height:44px;color:inherit;opacity:.8;background:0 0;border-radius:50%;font:29px Georgia,serif;position:absolute;top:6px;right:9px}.movie-lightbox video{aspect-ratio:16/9;object-fit:contain;background:#142536;border-radius:15px;width:100%;max-height:62svh;display:block;box-shadow:0 10px 42px #12243750}.movie-lightbox .movie-intro{text-align:center;margin-top:22px}.movie-lightbox .movie-intro>span{color:#c4d7e8;font:italic 14px Lora,Georgia,serif}.movie-lightbox h2{margin:9px 0;font:italic 30px/1.25 Lora,Georgia,serif}.movie-lightbox .movie-intro p{opacity:.75;margin:0;font-size:13px;line-height:1.8}#movie-status{text-align:center;color:#e9d1b8;margin:16px 0 0;font-size:13px;line-height:1.7}#movie-status:empty{display:none}.movie-lightbox button:focus-visible,.movie-lightbox video:focus-visible{outline-offset:3px;outline:2px solid #e8b995}@media (width<=700px){.movie-lightbox{border-radius:20px;width:calc(100vw - 20px);padding:48px 12px 20px}}
