.scene{min-height:100svh;background:radial-gradient(ellipse at 63% 46%,#234a40 0,#102f2c 44%,#071d20 86%)}.scene:not(.letter-phase)>.intro,.scene:not(.letter-phase)>.stage,.scene:not(.letter-phase)>.hint,.scene:not(.letter-phase)>.replay,.scene:not(.letter-phase)>.footer{display:none}.scene:not(.letter-phase)>.landscape{opacity:.12}.scene:not(.letter-phase)>.moon{display:none}.topbar{padding:23px 4vw 12px}.brand{font-size:19px;letter-spacing:.2px}.quiet{font-size:11px;letter-spacing:.2px}#edit{display:none}.playing #edit,.letter-phase #edit{display:block}.snow{opacity:.35}.snow.paused{opacity:0}.prologue{position:relative;z-index:3;padding:12px 4vw 32px;max-width:1280px;margin:auto}.letter-phase .prologue{display:none}.home-heading{text-align:center;margin:3px 0 28px}.home-heading .eyebrow{font-size:8px;letter-spacing:3px}.home-heading h1{font-size:42px;letter-spacing:-1px;margin:12px 0 0;line-height:1.1}.home-heading h1 em{font-weight:400;color:#dfc991}.atelier-layout{display:grid;grid-template-columns:390px minmax(0,1fr);gap:55px;align-items:center;max-width:1100px;margin:auto}.composer{border:1px solid #d6c9a9;background:#f7f0e0;color:#334739;padding:27px 28px 21px;border-radius:7px;box-shadow:0 22px 65px #02191644;position:relative;z-index:5}.composer-kicker{font-size:8px;color:#9d865c;letter-spacing:1.5px}.composer h2{font:29px/1.15 var(--serif);letter-spacing:-.6px;font-weight:400;margin:11px 0 8px}.composer-desc{font-size:11px;color:#828675;margin:0 0 21px;line-height:1.6}.composer label{display:block;font-size:11px;font-weight:500;margin:0 0 7px}.composer label span{font-weight:400;font-size:9px;color:#89907f;display:block;margin-top:4px}.names-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.composer input,.composer textarea{width:100%;border:1px solid #d4cbb7;background:#fffdf6;border-radius:4px;padding:10px 11px;font-size:12px;color:#344739;line-height:1.7;display:block}.composer textarea{min-height:157px;max-height:280px;resize:vertical}.composer input:focus,.composer textarea:focus{outline:2px solid #b9a36b;outline-offset:1px}.form-meta{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:9px;color:#989884}.form-meta .reset{margin:0;padding:0;font-size:9px;color:#8b8e77}.envelope-caption{display:flex;align-items:center;justify-content:space-between;padding:14px 0 11px;margin-top:10px;border-top:1px solid #d1c6aa66}.envelope-caption>span:first-child{font-size:7px;letter-spacing:1.5px;color:#998967}.envelope-caption>strong{font:italic 17px var(--serif);font-weight:400;overflow-wrap:anywhere;max-width:64%}.envelope-caption>span:last-child{color:#ab8e53;font-size:17px}.composer .primary{display:flex;align-items:center;justify-content:space-between;margin-top:3px;padding:14px 15px;letter-spacing:.1px;font-size:11px}.composer .primary span:last-child{font-size:16px;color:#e7d6a7}.local-note{font-size:9px;line-height:1.7;color:#929681;margin:12px 0 0;text-align:center}.showcase{position:relative;min-width:0;text-align:center}.scene-frame{position:relative;width:100%;height:450px;touch-action:pan-y}.scene-frame canvas{position:relative;display:block;width:100%;height:100%;cursor:grab;touch-action:pan-y;z-index:2;outline:0}.scene-frame canvas:active{cursor:grabbing}.scene-frame .fireworks-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.scene-frame:after{content:'';position:absolute;width:43%;height:4%;left:28%;bottom:5%;border-radius:50%;background:#000f15;filter:blur(19px);opacity:.5;z-index:0}.showcase-bottom{position:relative;z-index:4}.box-caption{font:italic 21px Georgia,serif;letter-spacing:.5px;color:#eadbb3;margin:0 0 10px}.interaction-hint{font-size:8px;letter-spacing:2px;color:#aabca695;margin:0}.progress-text{font-size:10px;line-height:1.7;letter-spacing:.3px;color:#b5c3ae9c;margin:15px auto 0;max-width:90%;min-height:18px}.story-heading{display:none}.story-progress{display:none}.playing .composer,.playing .home-heading{display:none}.playing .atelier-layout{display:block;max-width:1150px}.playing .prologue{padding:0 0 20px;max-width:none;min-height:calc(100svh - 82px)}.playing .story-heading{display:block;text-align:center;padding-top:12px}.story-heading .eyebrow{font-size:8px;letter-spacing:3px;color:#cbb47a}.story-heading h1{font:italic 39px/1.1 var(--serif);letter-spacing:0;margin:10px auto 0;max-width:85%;overflow-wrap:anywhere}.playing .scene-frame{height:clamp(390px,64svh,640px);margin-top:-12px}.playing .interaction-hint{display:none}.playing .progress-text{font-size:12px;letter-spacing:.5px;margin-top:13px;color:#d4c8a7}.playing .box-caption{font-size:22px}.playing .story-progress{display:block;width:130px;height:1px;margin:18px auto 0;background:#ddc89425}.story-progress i{display:block;width:0;height:100%;background:#dfc58a}.prologue.fading{opacity:0;transform:translateY(-20px);transition:opacity 1.2s ease,transform 1.4s ease}.playing .scene-frame{animation:scene-in 1.5s ease both}.scene-coda .showcase-bottom{opacity:0;transition:opacity 1s}.letter-phase>.intro,.letter-phase>.stage{animation:scene-in 1.2s both}.letter-phase>.intro{padding-top:35px}.letter-phase h1{font-size:37px;letter-spacing:-.7px}.letter-phase>.intro p{font-size:12px;letter-spacing:.3px}.letter-phase .date{margin-top:20px}.letter-phase .hint{font-size:10px;letter-spacing:.5px}.letter-phase.opening .hint{opacity:0;transition:opacity .6s}.letter-phase .stage{min-height:360px;margin-top:20px}.letter-phase.opened .stage{min-height:0;margin-top:10px}.opened .envelope-wrap{visibility:hidden}.opened h1{font-size:29px}.letter-sub{font:9px/1.6 -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:2px}.dear{font-size:18px}.message{font-size:16px;line-height:1.85}.envelope-to{font-size:17px;line-height:1.2}.letter-phase .replay{font-size:11px;letter-spacing:.2px}.return-box{display:none;position:relative;z-index:5;font-size:10px;letter-spacing:.3px;color:#c2bba49c;background:transparent;border:0;text-decoration:underline;text-underline-offset:5px;margin:4px auto 24px}.letter-phase.opened .return-box{display:block}.scene-fallback{display:none;position:absolute;inset:0;align-items:center;justify-content:center;flex-direction:column;color:#dccba5}.scene-fallback svg{height:270px;width:270px;filter:drop-shadow(0 0 30px #d6b96720)}.scene-fallback p{font-size:12px}.without-webgl .scene-fallback{display:flex}.without-webgl canvas{display:none}@keyframes scene-in{from{opacity:0;transform:translateY(25px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(min-width:1400px){.scene-frame{height:530px}.atelier-layout{grid-template-columns:420px minmax(0,1fr);gap:80px;max-width:1200px}.composer{padding:32px}.composer textarea{min-height:175px}}
@media(max-width:850px){.atelier-layout{grid-template-columns:minmax(0,370px) minmax(0,1fr);gap:15px}.scene-frame{height:400px}.composer{padding:23px}.box-caption{font-size:18px}.home-heading h1{font-size:37px}}
@media(max-width:650px){.topbar{padding:20px 20px 10px}.brand{font-size:17px;gap:7px;letter-spacing:0}.brand svg{width:19px}.quiet{font-size:10px;padding:9px 11px}.prologue{padding:13px 20px 30px}.home-heading{margin:6px 0 24px}.home-heading h1{font-size:34px;line-height:1.12;max-width:320px;margin:12px auto 0}.home-heading h1 em{display:block}.home-heading .eyebrow{font-size:7px;letter-spacing:2px}.atelier-layout{display:flex;flex-direction:column;gap:12px}.composer{width:100%;padding:23px}.composer h2{font-size:29px}.composer-desc{font-size:11px;margin-bottom:19px}.composer input,.composer textarea{font-size:16px}.composer textarea{font-size:13px;min-height:156px}.composer input{padding:9px 10px;font-size:14px}.composer .primary{padding:14px;font-size:11px}.names-row{gap:10px}.showcase{width:100%}.scene-frame{height:390px;margin-top:0}.showcase-bottom{margin-top:-7px}.box-caption{font-size:21px}.progress-text{font-size:10px}.playing .scene-frame{height:clamp(400px,65svh,620px);margin-top:2px;width:100vw}.playing .story-heading{padding-top:22px}.story-heading h1{font-size:34px}.playing .box-caption{font-size:20px}.playing .prologue{padding-bottom:25px}.playing .progress-text{font-size:11px}.playing .story-progress{margin-top:16px}.letter-phase>.intro{padding-top:35px}.letter-phase h1{font-size:30px;line-height:1.25;max-width:360px;margin:17px auto}.letter-phase>.intro p{font-size:11px;max-width:300px;margin:auto}.letter-phase.opened h1{font-size:27px}.letter-phase .stage{min-height:310px}.letter-phase.opened .stage{min-height:0}.letter{padding:30px 27px}.message{font-size:15px}.letter-sub{font-size:8px;letter-spacing:1.5px}.envelope-to{font-size:14px}.letter-phase .replay{font-size:10px}.scene:not(.letter-phase)>.landscape{display:none}}
@media(max-width:380px){.topbar{padding:18px 14px 10px}.brand{font-size:15px}.brand svg{width:16px}.prologue{padding-left:14px;padding-right:14px}.composer{padding:20px}.composer h2{font-size:26px}.composer .primary{font-size:10px}.letter-phase h1{font-size:28px}.envelope-to{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.snow{display:none}}
@media(min-width:851px) and (max-height:800px){.topbar{padding-top:18px}.home-heading{margin-bottom:20px}.composer{padding-top:23px;padding-bottom:17px}.composer-desc{margin-bottom:15px}.names-row{margin-bottom:14px}.composer textarea{height:143px;min-height:143px}.envelope-caption{padding-top:11px;padding-bottom:9px}.scene-frame{height:420px}.playing .scene-frame{height:62svh}}

/* Fifth edition — a preview first, followed by a personal little cinema. */
.landing .composer,.landing .progress-text,.landing .interaction-hint,.landing .box-caption,.composing .landing-actions,.playing .landing-actions,.recipient .landing-actions{display:none}
.landing .atelier-layout{display:block;max-width:1100px}.landing .home-heading{position:relative;z-index:4;margin:8px 0 -20px;pointer-events:none}.landing .home-heading h1{font-size:clamp(34px,4.5vw,60px);letter-spacing:-1.8px}.landing .scene-frame{height:clamp(380px,64svh,700px)}.landing .prologue{padding-top:8px;padding-bottom:25px}.landing-actions{text-align:center;position:relative;z-index:5;margin:-12px auto 0}.make-yours{display:inline-flex;gap:55px;align-items:center;justify-content:space-between;background:#ead7aa;color:#153d33;border:1px solid #f9e6b6;border-radius:3px;padding:16px 27px;font:14px Georgia,serif;box-shadow:0 8px 30px #0002;cursor:pointer}.make-yours:hover{background:#f7e5bc;transform:translateY(-1px)}.landing-actions p{font-size:10px;color:#b3bea9;margin:15px 0 0;letter-spacing:.5px}.composing .home-heading h1{font-size:34px}.composing .home-heading{margin-bottom:25px}.composing .showcase-bottom .progress-text{display:none}.composing .landing-actions{display:none}.playing #edit{display:none}.playing .story-heading{position:relative;z-index:4}.playing .scene-frame{animation:none}.playing .box-caption{display:none}.playing .story-progress{display:none}.playing .progress-text{font:italic 18px Georgia,serif;color:#e8d7af;min-height:24px}.recipient .home-heading,.recipient #edit,.recipient .composer,.recipient .maker-actions,.recipient .return-box,.recipient .share-result{display:none!important}.recipient .brand{opacity:.65}.recipient .topbar .snow-label{display:none}.recipient .topbar{position:absolute;top:0;left:0;right:0;z-index:12}.recipient .prologue{padding-top:60px}.recipient .playing .prologue{padding-top:60px}.recipient .intro{padding-top:90px}.final-actions{display:none;position:relative;z-index:5;width:min(570px,calc(100% - 40px));margin:25px auto 18px;text-align:center}.opened .final-actions{display:block}.maker-actions{display:flex;justify-content:center;gap:12px}.action-primary,.action-secondary{font-size:12px;padding:14px 20px;border-radius:4px;border:1px solid #d9c28a;cursor:pointer}.action-primary{background:#e9d7aa;color:#163c32}.action-secondary{background:transparent;color:#e9d7aa}.action-primary:disabled{opacity:.6;cursor:wait}.recipient-replay{display:none;margin:0 auto}.recipient .recipient-replay{display:inline-block}.share-result{background:#f8f1df;color:#264638;border:1px solid #dec994;border-radius:5px;padding:26px 23px;margin-top:25px;text-align:left;overflow-wrap:anywhere}.share-result[hidden]{display:none}.share-eyebrow{font-size:8px;letter-spacing:2px;color:#937743}.share-result h3{font:25px Georgia,serif;font-weight:400;margin:12px 0}.share-result p{font-size:12px;line-height:1.7;color:#697768}.share-link-row{display:flex;margin:18px 0 15px;gap:7px}.share-link-row input{min-width:0;flex:1;border:1px solid #cfc4a9;background:#fffdf5;padding:12px 9px;border-radius:3px;color:#3a5141;font-size:12px}.share-link-row button{border:0;background:#254c3c;color:#fff4d6;padding:10px 14px;border-radius:3px;font-size:11px}.share-result a{color:#355d48;font-size:12px;text-underline-offset:4px}#save-status{font-size:10px;margin-bottom:0}#save-error{color:#f1c2aa;font-size:12px;line-height:1.5}.topbar #fullscreen{font-size:12px}.topbar #fullscreen span{font-size:10px}.scene:fullscreen{width:100%;min-height:100vh}.letter-phase .hint{display:none}.composing #edit{display:none}
@media(max-width:650px){.landing .home-heading{margin:12px 0 0}.landing .home-heading h1{line-height:1.15;letter-spacing:-.7px}.landing .scene-frame{height:clamp(340px,53svh,560px);margin-top:-5px}.landing .home-heading h1 em{display:block}.landing-actions{margin:0 auto}.make-yours{min-width:220px;font-size:14px;padding:16px 24px}.topbar #fullscreen span{display:none}.topbar .tools{gap:2px}.landing .prologue{padding-left:0;padding-right:0}.composing .showcase{display:none}.composing .home-heading{margin-bottom:23px}.maker-actions{flex-direction:column}.action-primary{order:-1}.recipient .brand{font-size:15px}.recipient .prologue{padding-top:60px}.recipient .story-heading h1{font-size:31px}.playing .progress-text{font-size:16px}.share-result{padding:22px 17px}.share-link-row button{padding:10px}.recipient.letter-phase .intro{padding-top:80px}}
@media(min-width:851px) and (max-height:800px){.landing .scene-frame{height:57svh}.landing .home-heading h1{font-size:44px}.landing .home-heading{margin-top:0;margin-bottom:-15px}.landing-actions{margin-top:-8px}.landing .prologue{padding-top:0}.playing .scene-frame{height:65svh}}

/* Graceful graphics fallback: illustration, candlelight and live fireworks. */
.without-webgl canvas.fireworks-canvas{display:block}.scene-fallback{inset:0;z-index:1;overflow:hidden}.scene-fallback img{height:94%;max-width:94%;object-fit:contain;transform:scale(var(--fallback-scale,1));filter:drop-shadow(0 14px 18px #00161177);transform-origin:center 70%}.fallback-crown{position:absolute;top:5%;left:50%;font-size:42px;transform:translateX(-50%);color:#fff0bf;opacity:var(--fallback-light,.65);text-shadow:0 0 15px #ffd888,0 0 35px #edc780;animation:fallback-shimmer 2.8s ease-in-out infinite}.without-webgl .scene-fallback{display:flex}.without-webgl .interaction-hint{visibility:hidden}@keyframes fallback-shimmer{50%{filter:brightness(1.5);transform:translateX(-50%) scale(1.12)}}
/* Redeem only after previewing; code controls are absent from recipient documents. */
.gift-note{display:inline-block;margin-top:8px;color:#d3c5a4;font-size:10px}.redeem-panel{text-align:left;border:1px solid #d9c28a50;border-radius:5px;background:#0c2827a6;padding:23px 25px;margin:0 0 19px}.redeem-panel .share-eyebrow{color:#cbb47a}.redeem-panel label{display:block;font:24px Georgia,serif;margin-top:12px;color:#f5e6c4}.redeem-panel p{font-size:11px;line-height:1.7;color:#c7cebb;margin:8px 0 13px}.redeem-panel input{display:block;width:100%;min-width:0;border:1px solid #c7b484;border-radius:3px;background:#fcf5e5;color:#234b3b;padding:14px 12px;font-size:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.5px}.redeem-panel input::placeholder{font-size:11px;letter-spacing:0;color:#7a8575}.redeem-panel input[aria-invalid=true]{border-color:#e8a48c}.redeem-panel #redeem-note{font-size:11px;color:#d3c5a4;margin:13px 0 0}.recipient .redeem-panel{display:none!important}#save-status{font-size:12px;color:#36523c}.snow{opacity:.85;transition:opacity .3s}.snow.paused{opacity:0}.snow.user-enabled{display:block}.snow.user-enabled .flake{animation:fall var(--snow-duration,16s) linear infinite!important;animation-delay:var(--snow-delay,0s)!important;box-shadow:0 0 3px #ffffff30}.topbar .snow-label,.recipient .topbar .snow-label{display:inline}.snow-icon{margin-right:5px}#snow-toggle[aria-pressed=false]{color:#aaa994;background:#021b2040;border-style:dashed}#snow-toggle[aria-pressed=true]{background:#ffffff09;border-color:#d6cfa663}@media(max-width:600px){.redeem-panel{padding:20px 18px}.redeem-panel input{font-size:12px;letter-spacing:0}.topbar{padding-left:18px;padding-right:18px}.topbar .tools{gap:6px}.topbar .quiet{padding:9px 10px}.brand{font-size:15px}.snow-icon{font-size:14px}.maker-actions{flex-wrap:wrap}.maker-actions button{flex:1;white-space:nowrap}}
