:root{color-scheme:dark;--cream:#f4eee0;--muted:#b9c1c5;--gold:#ddbf87;--serif:"Noto Serif SC","Songti SC","STSong","SimSun",serif;--sans:"Microsoft YaHei","PingFang SC",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:#090f1b;color:var(--cream);font-family:var(--sans);font-size:16px;overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}h1,h2,p{margin:0}button{border:0}#room-stage{position:fixed;inset:0;transition:filter 1.7s,transform 2s}#room-stage canvas,#particle-canvas canvas{display:block;width:100%;height:100%}.vignette{pointer-events:none;position:fixed;inset:0;background:linear-gradient(0deg,#040a13ba,transparent 25%,transparent 75%,#040a1377),linear-gradient(90deg,#02081770,transparent 65%);z-index:1}header{position:fixed;z-index:20;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:28px 3.6vw;pointer-events:none}header button{pointer-events:auto}.brand{background:none;display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:24px;letter-spacing:3px;text-align:left}.brand-mark{font-size:40px;color:var(--gold);font-weight:300}.brand small{display:block;font:9px var(--sans);letter-spacing:3px;color:#b4babe;margin-top:4px}.header-tools{display:flex;align-items:center;gap:24px}.local-label{font-size:10px;letter-spacing:2px;color:#a9b5bd}.icon-label{padding:8px 0;background:transparent;font-size:16px;color:#d6dbdc}.icon-label span{font-size:13px;letter-spacing:1px;margin-left:6px}main{position:relative;z-index:4;pointer-events:none;height:100svh}main button,main input,main aside{pointer-events:auto}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold)}.entry{position:absolute;top:50%;left:6vw;transform:translateY(-42%);max-width:620px}.entry h1{font-family:var(--serif);font-size:clamp(35px,4vw,63px);font-weight:400;line-height:1.65;letter-spacing:3px;margin:20px 0}.entry p{font-family:var(--serif);font-size:16px;letter-spacing:1.5px;line-height:2;color:#d1d6d9;max-width:470px}.primary{background:linear-gradient(100deg,#ddbf8722,#ddbf8708);border:1px solid #ddbf877a;border-radius:40px;padding:14px 25px;min-height:52px;display:inline-flex;gap:35px;align-items:center;justify-content:center;backdrop-filter:blur(15px);font-family:var(--serif);font-size:17px;letter-spacing:2px;transition:background .3s,box-shadow .3s}.primary:hover{background:#ddbf8730;box-shadow:0 0 30px #ddbf8715}.primary b{font-size:23px;font-weight:400;color:var(--gold)}.entry .primary{margin-top:32px}.small-note{display:block;margin-top:22px;color:#aab7bf;font-size:12px;letter-spacing:1px}.chapter{position:absolute;left:5vw;bottom:22%;max-width:390px}.chapter h2{font:400 clamp(28px,3.3vw,47px)/1.65 var(--serif);letter-spacing:3px;margin:16px 0 13px}.chapter p{font-family:var(--serif);font-size:15px;line-height:1.9;color:#cbd2d6;letter-spacing:1px}.chapter .primary{margin-top:27px}.chapter .secondary{display:block;margin-top:23px}.text-button{background:transparent;color:#c7cfce;font-size:12px;letter-spacing:1px;padding:8px 0;border-bottom:1px solid #d9c49833}.chapter .text-button{display:block;margin-top:18px}.hotspot{position:fixed;display:flex;align-items:center;gap:10px;padding:8px;background:none;transform:translate(-20px,-50%);z-index:5;text-align:left;transition:opacity .3s}.hotspot i{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid #f1d297cc;background:#0e172696;box-shadow:0 0 25px #ebc7872e;font-size:22px;font-style:normal;color:#ffdfa1;animation:halo 3s infinite}.hotspot span{font-family:var(--serif);font-size:16px;letter-spacing:2px;text-shadow:0 2px 8px #000}.hotspot small{display:block;font:11px var(--sans);color:#d2d3d1;letter-spacing:1px;margin-top:6px}.hotspot:hover i{background:#d4b97a55}.gesture-button{position:fixed;bottom:28px;right:3.6vw;z-index:25;background:#111d2ec9;backdrop-filter:blur(20px);border:1px solid #bdd5e02e;border-radius:12px;padding:11px 15px;display:flex;align-items:center;gap:11px;color:#dee5e7;text-align:left}.hand-icon{font-size:23px;filter:grayscale(1)}#gesture-label{font-size:13px;letter-spacing:1px}#gesture-label small{display:block;font-size:10px;margin-top:3px;color:#9eadb7;letter-spacing:.3px}#gesture-led{width:5px;height:5px;border-radius:50%;background:#667485;margin-left:3px}body.hand-active #gesture-led{background:#8edac6;box-shadow:0 0 12px #71efbd}#gesture-status{position:fixed;right:3.6vw;bottom:103px;z-index:25;max-width:240px;font-size:12px;color:#bcd4d3;background:#10252be8;padding:10px 14px;border-radius:8px;line-height:1.7}#hand-video{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none}#hand-cursor{position:fixed;z-index:100;pointer-events:none;transform:translate(-50%,-50%);display:grid;place-items:center;width:50px;height:50px;border-radius:50%;border:1px solid #e9d0a4;color:#ffe3ad;font-size:30px;box-shadow:0 0 25px #e9d0a455}#hand-cursor.pinched{background:#e9d0a466;transform:translate(-50%,-50%) scale(.72)}footer{position:fixed;left:4vw;bottom:29px;right:290px;z-index:10;display:flex;align-items:center;gap:24px;pointer-events:none}footer button{pointer-events:auto}#footer-message{font-family:var(--serif);font-size:12px;letter-spacing:2px;color:#aab6bf}.view-dots{display:flex;gap:12px;align-items:center;margin-left:auto}.view-dots i{width:5px;height:5px;border-radius:50%;background:#c5cdda44}.view-dots i.active{background:var(--gold);box-shadow:0 0 10px #ddbf87}.view-dots>span{width:28px;height:1px;background:#cad3dc30}#memory-stage{position:fixed;inset:0;z-index:2;animation:fade 1s}#particle-canvas{position:absolute;inset:0;touch-action:none}#photo-orbit{position:absolute;inset:0;pointer-events:none}.orbit-card{position:absolute;left:0;top:0;padding:7px 7px 22px;background:#eee9df;border:1px solid #e9e4d7;color:#4c4642;box-shadow:0 15px 50px #0005;pointer-events:auto;cursor:pointer;width:132px;will-change:transform;transition:opacity .4s;text-align:left;border-radius:2px}.orbit-card img{width:100%;height:99px;object-fit:cover;display:block}.orbit-card>span{display:block;font-size:10px;margin-top:8px;text-align:center;letter-spacing:1px}.orbit-card.voice-card{background:#171e30e8;border-color:#c7b6d066;color:#eee6ef;width:145px;padding:15px}.voice-card .voice-mark{font-size:30px;color:#d8b0ce;display:block;margin:3px;text-align:center}.voice-card>span{font-size:12px}.voice-card small{display:block;text-align:center;font-size:10px;color:#b0b8cb}.orbit-card.note-card{background:#f5e8ce;width:140px;padding:18px}.note-card .voice-mark{font-size:24px;text-align:center;display:block}.note-card small{font:12px/1.7 var(--serif);display:block;margin-top:8px;text-align:center}.memory-heading{position:absolute;top:132px;left:0;right:0;text-align:center;pointer-events:none}.memory-heading h2{font:400 clamp(24px,2.5vw,37px)/1.5 var(--serif);letter-spacing:4px;margin:12px 0}.memory-heading p{font-size:12px;letter-spacing:1px;color:#c5c6d1}.particle-controls{position:absolute;top:33%;left:3.6vw;width:175px;padding:18px;border:1px solid #b9b5cf20;border-radius:14px;background:#13182989;backdrop-filter:blur(25px)}.control-title{font-size:11px;letter-spacing:2px;color:#bbc2cf;display:block;margin-bottom:12px}.shape-buttons{display:flex;gap:8px;margin-bottom:22px}.shape-buttons button{border-radius:8px;background:#dce1f00a;border:1px solid #dce1f012;font-size:24px;flex:1;padding:7px 0}.shape-buttons button span{display:block;font-size:10px;margin-top:4px;color:#b8bbcd}.shape-buttons button[aria-pressed=true]{border-color:#e9c5b985;background:#d8bdb920}.palette{display:flex;gap:15px;margin-bottom:20px}.palette button{width:20px;height:20px;border-radius:50%;box-shadow:0 0 0 4px #0002}.palette button[aria-pressed=true]{outline:1px solid #eee5dc;outline-offset:4px}.rose{background:#f490b4}.gold{background:#f4cb85}.blue{background:#7bd8e4}.spread-label{font-size:11px;color:#cbd1d8}.spread-label>span{float:right;color:#e5c59b}.spread-label input{width:100%;accent-color:#e2bf9f;height:18px;margin:12px 0}.secondary{padding:10px 16px;border:1px solid #d4c9ba55;border-radius:9px;background:#c6bdc40c;backdrop-filter:blur(20px);font-size:13px;letter-spacing:1px}.secondary:hover{background:#d5c6c325}.particle-controls .secondary{width:100%;font-size:12px;margin-top:7px}.particle-controls small{display:block;font-size:10px;line-height:1.9;color:#9ca8bd;margin-top:16px}.memory-actions{position:absolute;bottom:95px;left:0;right:0;display:flex;justify-content:center;gap:15px;align-items:center}.compact{font-size:14px;padding:8px 20px;min-height:43px;gap:20px}.compact b{font-size:18px}body[data-view=memory] #room-stage{filter:blur(12px) brightness(.45) saturate(.75);transform:scale(1.04)}body[data-view=memory] .vignette{background:radial-gradient(ellipse at center,#0f112129, #080c20a6)}#fireworks{position:fixed;inset:0;pointer-events:none;z-index:3;width:100%;height:100%}#ending-ui{position:absolute;top:48%;left:5vw;right:5vw;text-align:center;transform:translateY(-40%)}#ending-ui>p{font-family:var(--serif);font-size:18px;letter-spacing:3px;margin-top:22px}#ending-ui h2{font:400 clamp(35px,4.5vw,66px)/1.5 var(--serif);letter-spacing:5px;margin:18px 0;text-shadow:0 0 30px #d9bd843a}#ending-text{font-family:var(--serif);font-size:18px;line-height:2;letter-spacing:2px;white-space:pre-line;max-width:800px;margin:auto}#ending-ui .primary{margin-top:34px}.wish-progress{height:2px;width:235px;background:#fff2;margin:16px 0}#wish-progress-bar{height:100%;width:0;background:var(--gold);box-shadow:0 0 10px var(--gold)}dialog{border:1px solid #cfc0a245;color:var(--cream);background:#111b2be8;backdrop-filter:blur(26px);box-shadow:0 30px 100px #0009;border-radius:16px;max-width:calc(100vw - 35px);max-height:calc(100dvh - 40px);padding:32px;overflow:auto}dialog::backdrop{background:#070c1966;backdrop-filter:blur(9px)}.close{position:absolute;right:18px;top:12px;font-size:30px;background:none;color:#d5d7d9;font-weight:300}#media-dialog{width:560px;text-align:center;padding-top:36px}#media-dialog h2{font:400 27px/1.5 var(--serif);letter-spacing:2px;margin:12px 0 22px}#media-photo{width:100%;max-height:48vh;object-fit:contain;border:7px solid #e8e2d5;background:#e8e2d5}#media-caption{font-family:var(--serif);font-size:16px;line-height:1.9;letter-spacing:1px;margin-top:22px;white-space:pre-wrap;overflow-wrap:anywhere}.media-nav{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #cfc0a225;padding-top:20px;margin-top:25px}.media-nav button{background:none;font-size:12px;color:#cdbfad}.media-nav span{font-size:10px;letter-spacing:2px;color:#8f9bb0}.audio-visual{height:90px;display:flex;align-items:center;justify-content:center;gap:7px;margin:20px 0}.audio-visual i{display:block;width:4px;height:22px;border-radius:10px;background:#e0c39e}.audio-visual i:nth-child(3n){height:56px}.audio-visual i:nth-child(3n+1){height:36px}.playing .audio-visual i{animation:wave .8s ease-in-out infinite alternate}.playing .audio-visual i:nth-child(2n){animation-delay:.4s}.audio-visual+button{margin:10px auto}audio{width:100%;margin-top:15px}#settings{position:fixed;inset:0 0 0 auto;margin:0;border-radius:0;height:100dvh;max-height:100dvh;width:470px;padding:28px;max-width:100%}.settings-header{padding:5px 0 22px}.settings-header h2{font:400 28px/1.5 var(--serif);margin:15px 0 10px}.settings-header p,.settings-foot{font-size:12px;line-height:1.8;color:#aab8c9}#settings-form>label{font-size:14px;display:block;margin:17px 0}label small{display:block;color:#94a2b4;font-size:11px;margin-top:5px}input:not([type=checkbox]):not([type=range]),textarea{display:block;width:100%;font:14px/1.65 var(--sans);color:var(--cream);border:1px solid #cfd4e32b;border-radius:7px;background:#030b1880;padding:10px 12px;margin-top:8px;outline:none}input:focus,textarea:focus{border-color:var(--gold)}input[type=file]{font-size:11px!important;padding:8px!important}input::file-selector-button{background:#283445;color:#e2d8c5;border:0;padding:8px;border-radius:4px;margin-right:10px}textarea{resize:vertical}#settings-form>.primary{width:100%;margin:22px 0 15px}.settings-options{margin-top:22px;font-size:13px;color:#bfc6d0}input[type=checkbox]{accent-color:var(--gold)}#record-status{display:block;font-size:12px;margin-top:9px;color:#d2be9e}#upload-previews{display:flex;gap:7px;flex-wrap:wrap}#upload-previews img{width:53px;height:53px;border-radius:4px;object-fit:cover}#toast{position:fixed;bottom:120px;left:50%;transform:translate(-50%,15px);border:1px solid #d2c4a946;background:#132232ed;backdrop-filter:blur(15px);color:#e7dfcf;padding:12px 20px;border-radius:12px;z-index:200;font-size:13px;max-width:90vw;opacity:0;pointer-events:none;transition:.3s}#toast.show{opacity:1;transform:translate(-50%,0)}#fatal{position:fixed;z-index:200;inset:25%;background:#18263b;padding:35px;border:1px solid #ddbf8755}#fatal h2{font-size:23px;margin-bottom:20px}body[data-view=entry] .gesture-button{opacity:.8}body[data-view=ending] .vignette{background:#040a1355}body[data-view=window] .chapter{opacity:0}.reduced *{animation:none!important;transition:none!important}@keyframes halo{50%{box-shadow:0 0 35px #ebc78750}}@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes wave{to{transform:scaleY(.3)}}
.room-shortcuts{display:none}#wish-button{touch-action:none;user-select:none;-webkit-user-select:none}
@media(max-width:800px){.local-label{display:none}.header-tools{gap:18px}header{padding:22px 24px}.brand{font-size:21px;gap:7px}.brand-mark{font-size:30px}.entry{left:7vw;right:7vw;max-width:540px}.entry h1{font-size:43px}.particle-controls{width:145px;left:20px;padding:13px}.chapter{left:6vw;max-width:310px}.chapter h2{font-size:34px}.hotspot small{display:none}.hotspot span{font-size:13px;letter-spacing:1px}.hotspot i{width:32px;height:32px;font-size:20px}.memory-heading h2{font-size:30px}.gesture-button{right:24px}.gesture-button small{display:none!important}footer{left:24px;right:240px}#footer-message{font-size:10px;letter-spacing:1px}.view-dots{display:none}.memory-heading p{font-size:11px}.orbit-card{width:112px}.orbit-card img{height:83px}.orbit-card.voice-card{width:120px}.orbit-card.note-card{width:120px}.room-shortcuts{display:flex;position:absolute;bottom:90px;left:24px;right:24px;justify-content:center;gap:12px}.room-shortcuts button{font-size:12px;padding:10px 15px;background:#11202bc9;border:1px solid #e2c79955;border-radius:30px;backdrop-filter:blur(18px)}}
@media(max-width:600px){header{padding:18px 20px}.brand{font-size:19px;letter-spacing:2px}.brand small{font-size:8px;letter-spacing:1.8px}.icon-label span{font-size:11px}.header-tools{gap:15px}.icon-label{font-size:17px}.icon-label#customize span{display:none}.entry{top:auto;bottom:22%;transform:none;left:24px;right:24px}.entry h1{font-size:33px;letter-spacing:2px;margin:18px 0}.entry p{font-size:14px;line-height:1.9;max-width:310px}.entry .primary{font-size:15px;margin-top:23px}.small-note{font-size:10px;letter-spacing:.5px}.eyebrow{font-size:8px;letter-spacing:2px}.chapter{left:24px;bottom:20%;max-width:260px}.chapter h2{font-size:28px;line-height:1.6;letter-spacing:2px}.chapter p{font-size:12px;line-height:1.8;max-width:235px}.chapter .primary{font-size:14px;padding:10px 20px;gap:20px}.hotspot{padding:5px;gap:5px}.hotspot span{font-size:11px;max-width:80px;white-space:nowrap}.hotspot i{width:28px;height:28px;font-size:18px}.gesture-button{bottom:22px;right:20px;padding:9px 11px;gap:7px}.hand-icon{font-size:18px}#gesture-label{font-size:11px;letter-spacing:0}#gesture-status{right:20px;bottom:77px;max-width:190px;font-size:10px}footer{bottom:23px;left:23px;right:175px}#footer-message{font-size:10px;line-height:1.7;letter-spacing:0}footer #room-reset{font-size:11px}body:not([data-view=entry]) #footer-message{display:none}.memory-heading{top:108px;padding:0 20px}.memory-heading h2{font-size:25px;letter-spacing:2px;margin:9px 0}.memory-heading p{font-size:10px;line-height:1.7;margin:auto;max-width:280px}.particle-controls{top:auto;bottom:138px;left:20px;right:20px;width:auto;padding:10px 13px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-radius:12px}.particle-controls>.control-title,.particle-controls>small,.spread-label{display:none}.shape-buttons{margin:0;gap:5px}.shape-buttons button{width:35px;font-size:20px;padding:4px}.shape-buttons button span{display:none}.palette{margin:0;gap:12px}.palette button{width:15px;height:15px}.particle-controls>.secondary{margin:0 0 0 auto;width:auto;font-size:11px;padding:8px 10px}.memory-actions{bottom:85px;gap:9px}.memory-actions .primary{font-size:12px;gap:10px;min-height:39px;padding:8px 15px}.memory-actions .secondary{font-size:11px;padding:10px 13px}.orbit-card{width:96px;padding:5px 5px 14px}.orbit-card img{height:72px}.orbit-card>span{font-size:8px;letter-spacing:0}.orbit-card.voice-card,.orbit-card.note-card{width:100px;padding:10px}.voice-card .voice-mark{font-size:23px}.voice-card>span{font-size:10px}.note-card small{font-size:10px}#ending-ui{top:45%;left:24px;right:24px}#ending-ui h2{font-size:34px;letter-spacing:2px;overflow-wrap:anywhere}#ending-ui>p{font-size:14px;letter-spacing:1px}#ending-text{font-size:15px;letter-spacing:1px}#ending-ui .primary{font-size:12px;gap:16px}#media-dialog{padding:30px 20px 23px}#media-dialog h2{font-size:24px}#media-caption{font-size:14px}#media-photo{max-height:44vh}.media-nav button{font-size:11px}#settings{padding:25px 23px}.settings-header h2{font-size:25px}#fatal{inset:20% 20px}}

/* Preview 03: explicit access, atmosphere switching and visible hand feedback. */
.scene-picker{position:fixed;top:100px;right:3.6vw;z-index:21;display:flex;align-items:center;gap:5px;padding:6px;border:1px solid #e4d1b52b;border-radius:30px;background:#111c2bbd;backdrop-filter:blur(20px)}
.scene-picker>span{font-size:10px;letter-spacing:1px;color:#b7c2cc;padding:0 8px}.scene-picker button{padding:9px 13px;border-radius:25px;background:none;font-size:11px;color:#c3cbd2}.scene-picker button[aria-pressed=true]{background:#d5bc872b;color:#ffe1aa;box-shadow:inset 0 0 0 1px #e5c08b66}.scene-picker.loading{opacity:.55}
body[data-view=memory] .scene-picker{top:95px}body[data-view=memory] #room-stage{filter:blur(10px) brightness(.54) saturate(.85)}
.room-shortcuts{display:flex;position:absolute;bottom:95px;left:24px;right:24px;justify-content:center;gap:12px}.room-shortcuts button{font-size:12px;padding:11px 20px;background:#11202bdb;border:1px solid #e2c79966;border-radius:30px;backdrop-filter:blur(18px)}
.hotspot{min-height:60px}.hotspot i{box-shadow:0 0 15px #ffce8766,0 0 45px #ffce8744}.hotspot:focus-visible,.room-shortcuts button:focus-visible{outline:2px solid #ffe1ac;outline-offset:4px}
#hand-preview{display:none;position:fixed;right:3.6vw;bottom:205px;width:200px;z-index:24;border:1px solid #8bc8bb88;border-radius:12px;overflow:hidden;background:#101d29;box-shadow:0 15px 50px #0005}.hand-active #hand-preview{display:block}.camera-image{position:relative;aspect-ratio:4/3}#hand-video{position:absolute;inset:0;width:100%;height:100%;opacity:1;object-fit:cover;transform:scaleX(-1)}#hand-landmarks{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#hand-feedback{display:block;padding:8px 10px;font-size:10px;color:#c5eddf;line-height:1.6}#camera-help{position:fixed;right:3.6vw;bottom:86px;z-index:26;font-size:10px;color:#ead1aa;text-decoration:underline}#gesture-status{bottom:113px}body.hand-active #gesture-status{font-size:10px;max-width:220px}
@media(max-width:800px){.scene-picker{top:85px;right:24px}.scene-picker>span{display:none}.scene-picker button{font-size:10px;padding:8px 10px}body[data-view=memory] .scene-picker{top:82px}.memory-heading{top:142px}}
@media(max-width:600px){.scene-picker{top:82px;right:20px}.scene-picker button{padding:6px 10px}body[data-view=memory] .scene-picker{top:76px}.memory-heading{top:127px}.memory-heading h2{font-size:23px}.memory-heading p{font-size:9px}.room-shortcuts{bottom:88px;gap:8px}.room-shortcuts button{padding:10px 15px}#hand-preview{width:130px;right:20px;bottom:175px}#gesture-status{bottom:99px;max-width:190px}#camera-help{right:20px;bottom:76px;font-size:9px}}
/* Panoramic room 04: scenery leads; controls leave the center of the window clear. */
body[data-view=room] .chapter{bottom:23%;max-width:280px}body[data-view=room] .chapter h2{font-size:29px}body[data-view=room] .chapter p{font-size:12px}
#hot-memory{transform:translate(-85%,-50%)}#fireworks{display:none}
body[data-view=ending] #ending-ui{top:auto;bottom:98px;left:6vw;right:6vw;transform:none;text-align:center}#ending-ui h2{font-size:clamp(26px,3vw,43px);margin:10px 0}#ending-ui>p{font-size:13px}#ending-text{font-size:14px}#ending-ui .primary{font-size:12px;min-height:40px;padding:10px 20px;margin-top:16px}
body[data-view=ending] .scene-picker,body[data-view=ending] #gesture-toggle{display:none}body[data-view=ending] .vignette{background:linear-gradient(0deg,#040a13b0,transparent 40%,transparent 85%,#040a1333)}
.media-page-stack{position:relative;perspective:1000px;overflow:hidden}#media-content{position:relative}.media-page-ghost{position:absolute;inset:0;pointer-events:none;background:#121a25;z-index:2}.media-page-ghost img{max-width:100%;max-height:48vh;object-fit:contain}.media-page-ghost p{font:15px/1.9 var(--serif)}
#media-dialog[open]{animation:none}#media-dialog::backdrop{animation:media-shade .55s ease both}@keyframes media-shade{from{background:#04081300;backdrop-filter:blur(0)}to{background:#04081399;backdrop-filter:blur(5px)}}
main[inert],main[inert] *{pointer-events:none!important}.orbit-card[aria-hidden=true]{filter:blur(4px)}.orbit-card{transition:opacity .5s,filter .7s}
body:not(.reduced) #media-photo:not([hidden]){animation:photo-breathe 10s ease-in-out infinite alternate}@keyframes photo-breathe{from{scale:1}to{scale:1.025}}
@media(max-width:650px){body[data-view=room] .chapter{bottom:24%;max-width:230px}body[data-view=room] .chapter h2{font-size:23px}body[data-view=ending] #ending-ui{bottom:105px;left:24px;right:24px}#ending-ui h2{font-size:26px}#ending-text{font-size:12px}#ending-ui>p{font-size:11px}#hot-memory{transform:translate(-80%,-50%)}}
/* 05 · reference-led warm photographic art direction */
#room-stage{overflow:hidden;background:#171719}.photographic-room{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.room-picture{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;transition:filter 2s}.room-exterior{position:absolute;inset:0;clip-path:polygon(11% 10%,81% 14%,81% 64%,11% 64%);background-position:center;background-size:100% 100%;opacity:0;transition:opacity 1.5s;pointer-events:none}.room-exterior:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 23.8%,#151b20 23.9% 24.2%,transparent 24.3% 60.8%,#151b20 60.9% 61.2%,transparent 61.3% 76%,#151b20 76.1% 76.4%,transparent 76.5%)}
.room-atmosphere{position:absolute;left:11%;top:12%;width:70%;height:50%;background:radial-gradient(ellipse at 40% 20%,#63d8b622,transparent 65%);mix-blend-mode:screen;animation:aurora-light 12s ease-in-out infinite alternate;pointer-events:none}.wall-photos{position:absolute;inset:0;pointer-events:none}.wall-photos img{position:absolute;width:3.6%;height:6.7%;object-fit:cover;transform:skewY(-8deg);box-shadow:0 0 8px #ffc98288;border:1px solid #dbc09755}
@keyframes aurora-light{from{translate:-1% 0;opacity:.15}to{translate:1% 1%;opacity:.5}}
.photographic-flame{position:absolute;left:56.8%;top:65.15%;width:.5%;height:2.4%;transform:translate(-50%,-100%);transform-origin:50% 100%;background:radial-gradient(ellipse at 50% 70%,#fffde0 10%,#ffd766 40%,#ffb33c99 62%,transparent 75%);border-radius:50%;box-shadow:0 0 12px #ffb74ccc,0 0 45px #ffd77899;animation:candle-breathe .7s ease-in-out infinite alternate}
@keyframes candle-breathe{from{scale:.85 1;opacity:.9}to{scale:1.1 1.12;opacity:1}}
#room-stage .window-festival-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.vignette{background:linear-gradient(0deg,#110e13a8,transparent 34%,transparent 76%,#100d1240)}
header{padding:27px 3.4vw}.brand{font-size:21px}.brand-mark{font-size:31px}.brand small{font-size:7px;letter-spacing:3px}.header-tools{gap:20px}.local-label{font-size:8px;letter-spacing:2px}.icon-label span{font-size:11px}.scene-picker{top:85px;background:#1c181d70;border-color:#efd6b02b;backdrop-filter:blur(15px)}.scene-picker button{font-size:10px;padding:8px 12px}.scene-picker>span{font-size:8px}.scene-picker button[aria-pressed=true]{background:#e4c89422;box-shadow:none}
.entry{top:auto;bottom:16%;left:5vw;transform:none;max-width:450px}.entry h1{font-size:clamp(32px,3.6vw,53px);line-height:1.5;letter-spacing:4px;margin:15px 0}.entry p{font-size:13px;line-height:1.9;max-width:340px}.entry .primary{margin-top:23px}.small-note{font-size:10px;margin-top:15px}.eyebrow{font-size:8px;letter-spacing:3px}.primary{font-size:14px;min-height:45px;padding:11px 23px;gap:24px;background:#bca17312;border-color:#e6c89966}.primary b{font-size:18px}
body[data-view=room] .chapter{left:4vw;bottom:22%;max-width:250px}body[data-view=room] .chapter h2{font-size:25px;line-height:1.6}body[data-view=room] .chapter p{font-size:10px;max-width:200px}.room-shortcuts{bottom:80px;gap:9px}.room-shortcuts button{font:11px var(--serif);padding:9px 16px;background:#211d246b;border:1px solid #e6c39440}.hotspot i{width:28px;height:28px;font-size:16px;background:#241c2699;border-color:#ead5a899;box-shadow:0 0 20px #dfc69d44}.hotspot span{font-size:12px;letter-spacing:1px}.hotspot small{font-size:9px}.hotspot{gap:8px}.hotspot#hot-memory{transform:translate(-90%,-50%)}.hotspot#hot-cake{transform:translate(10%,-100%)}
.gesture-button{padding:9px 12px;background:#211c248c;border-radius:30px}.hand-icon{font-size:19px}#gesture-label{font-size:11px}#gesture-label small{font-size:8px}footer{bottom:25px}#footer-message{font-size:10px}
body[data-view=memory] #room-stage{filter:blur(7px) brightness(.63) saturate(.8)}body[data-view=cake] .chapter{max-width:320px;bottom:24%}body[data-view=cake] .chapter h2{font-size:37px}body[data-view=cake] .chapter p{font-size:12px}
#media-dialog{background:#211f29e8;border-color:#d8b98944;box-shadow:0 30px 100px #0008}body[data-view=ending] #ending-ui{bottom:80px}body[data-view=ending] #ending-ui h2{font-size:32px}body[data-view=ending] #ending-ui>p{font-size:11px}
@media(max-width:650px){.entry{left:25px;right:25px;bottom:20%;max-width:none}.entry h1{font-size:34px}.entry p{font-size:11px;max-width:270px}header{padding:20px}.brand{font-size:18px}.header-tools{gap:12px}.local-label{display:none}.scene-picker{top:78px;right:20px}.scene-picker>span{display:none}.scene-picker button{padding:7px 10px;font-size:9px}body[data-view=room] .chapter{bottom:27%;left:24px;max-width:205px}body[data-view=room] .chapter h2{font-size:22px}.room-shortcuts{bottom:100px;gap:7px}.room-shortcuts button{font-size:10px;padding:9px 13px}body[data-view=cake] .chapter{bottom:25%;left:23px;max-width:215px}body[data-view=cake] .chapter h2{font-size:27px}.hotspot span{font-size:10px}.hotspot small{display:none}body[data-view=ending] #ending-ui{bottom:110px}body[data-view=ending] #ending-ui h2{font-size:25px}}
.hotspot{width:max-content;max-width:180px}.hotspot span{white-space:nowrap}.hotspot i{flex-shrink:0}
/* Guided journey keeps a single forward route until the finale. */
#journey-status{position:fixed;top:86px;left:4vw;z-index:12;color:#dfc8a4;font:11px/1.8 var(--serif);letter-spacing:1px;pointer-events:none;text-shadow:0 2px 8px #000}
#home:disabled{opacity:1;cursor:default}.memory-actions{flex-wrap:wrap;max-width:calc(100vw - 40px)}#memory-progress{flex-basis:100%;font-size:11px;color:#d9c8ab;text-align:center}button:disabled{cursor:default;opacity:.45}
body[data-guided=true] #room-reset,body[data-guided=true] #cake-back,body[data-guided=true] #back-room,body[data-guided=true] [data-object=cake],body[data-guided=true] [data-object=window]{display:none!important}
body[data-guided=true]:not([data-view=entry]) #customize{display:none}
@media(max-width:650px){#journey-status{top:116px;left:22px;font-size:10px}.memory-actions{gap:8px;bottom:90px}.memory-actions button{font-size:11px;padding:9px 12px}#memory-progress{font-size:10px}}
/* Scene-specific architecture and candle anchors. */
.photographic-room[data-interior=ship]>.photographic-flame,.photographic-room[data-interior=ship] .seated-flame{left:49.9%;top:67.5%}
.photographic-room[data-interior=ship] .lighting-hand{left:45.36%;top:60.53%}
.photographic-room[data-interior=ship] .seated-candle-glow{left:37%;top:58%}
.photographic-room[data-interior=ship] .seated-window-light{clip-path:polygon(7.5% 0,95.5% 0,99.5% 34%,92% 58%,84% 63%,29% 63%,20% 58%,10% 34%)}
.photographic-room[data-interior=ship] .wall-photos img{width:3%;height:6.2%;transform:skewY(14deg)}
body[data-scene=rings] #hot-memory,body[data-scene=nebula] #hot-memory{transform:translate(5%,-50%)}
.scene-picker{max-width:57vw;flex-wrap:wrap;justify-content:flex-end}
body[data-guided=true][data-view=memory] .scene-picker{display:none}
@media(max-width:650px){.scene-picker{max-width:calc(100vw - 40px);gap:2px}.scene-picker button{font-size:8px;padding:6px 8px}#journey-status{top:135px}}
.photographic-room[data-interior=lodge]>.photographic-flame,.photographic-room[data-interior=lodge] .seated-flame{left:49.6%;top:68%}
.photographic-room[data-interior=lodge] .lighting-hand{left:45.06%;top:61.03%}
.photographic-room[data-interior=lodge] .seated-candle-glow{left:36.5%;top:61%}
.photographic-room[data-interior=lodge] .seated-window-light{clip-path:polygon(7% 0,87% 0,87% 74.5%,7% 79%)}
.photographic-room[data-interior=lodge] .wall-photos img{width:3%;height:7%;transform:none}
.scene-ghost{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;z-index:8}
#scene-description{position:fixed;right:3vw;top:130px;z-index:10;font:11px/1.8 var(--serif);color:#ecd9bc;text-shadow:0 2px 8px #000;pointer-events:none}
body:not([data-view=entry]):not([data-view=room]) #scene-description{display:none}
body[data-scene=sunset] .vignette{background:linear-gradient(0deg,#271b1999,transparent 40%,transparent 65%,#35252855)}
@media(max-width:650px){#scene-description{top:112px;font-size:9px;right:20px}#journey-status{top:145px}}
.living-window{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}
#particle-wish{position:fixed;inset:0;width:100%;height:100%;z-index:6;pointer-events:none}
body[data-finale=fireworks] #ending-ui,body[data-finale=gathering] #ending-ui{visibility:hidden;pointer-events:none}
body[data-finale=complete] #ending-ui{animation:final-note-in 1.2s ease both}
body[data-finale=complete] #ending-ui h2,body[data-finale=complete] #ending-ui>.eyebrow,body[data-finale=complete] #ending-ui>p{display:none}
@keyframes final-note-in{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@media(max-width:850px){.scene-picker{left:20px;right:20px;top:82px;max-width:none;justify-content:center;border-radius:16px}.scene-picker>span{display:none}.scene-picker button{font-size:9px;padding:7px 9px}#scene-description{top:157px;left:22px;right:22px;font-size:10px}#journey-status{top:179px;left:22px;font-size:10px}body:not([data-view=entry]):not([data-view=room]) #journey-status{top:88px}}
/* 06: seated first-person candle-lighting sequence. */
.seated-candle-scene{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease;pointer-events:none;overflow:hidden}.seated-candle-scene.visible{opacity:1}.seated-picture,.seated-window-light{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.seated-picture{transition:filter 2.1s ease}.seated-window-light{clip-path:polygon(14% 0,90% 0,90% 51.5%,14% 52%);opacity:0;transition:opacity 2.1s ease;filter:brightness(.85)}.lights-dim .seated-picture{filter:brightness(.37) saturate(.85)}.lights-dim .seated-window-light{opacity:1}
.seated-flame{left:60.7%;top:53.6%;width:.5%;height:2.4%;z-index:2}.lighting-hand{position:absolute;left:56.16%;top:46.63%;width:42%;height:auto;transform-origin:10.8% 14%;pointer-events:none;z-index:3;will-change:transform,opacity}.seated-candle-glow{position:absolute;left:48%;top:45%;width:27%;height:33%;background:radial-gradient(ellipse,#ffbd552b,transparent 67%);opacity:0;transition:opacity 1.5s;mix-blend-mode:screen;pointer-events:none}.candle-lit .seated-candle-glow{opacity:1}
body[data-view=cake] .chapter{bottom:20%;left:4vw;max-width:280px}body[data-view=cake] .chapter h2{font-size:31px}body[data-view=cake] .chapter p{font-size:11px;max-width:230px;line-height:1.9}body[data-view=cake] .chapter .primary{font-size:12px;margin-top:20px}body[data-view=cake] .scene-picker{display:none}
@media(max-width:650px){body[data-view=cake] .chapter{bottom:17%;left:22px;max-width:200px}body[data-view=cake] .chapter h2{font-size:24px}body[data-view=cake] .chapter p{font-size:10px}body[data-view=cake] .chapter .primary{font-size:11px;padding:10px 15px}}

/* 18: taste refinement, clearer hierarchy and protected interaction zones. */
.local-label{display:none}
#scene-description{display:none!important}
#journey-status{top:88px;color:#ead8b9;font-size:10px;letter-spacing:.7px;opacity:.9}
.entry .eyebrow,#ending-ui>.eyebrow{letter-spacing:2px;color:#e1c28e}
.scene-picker{max-width:none;flex-wrap:nowrap;padding:5px;background:#111722a8;border-color:#d9c0982e;box-shadow:0 12px 34px #03071040}
#scene-options{display:flex;align-items:center;gap:3px}
#scene-toggle{display:none}
.scene-picker button{transition:background .25s ease,color .25s ease,transform .2s ease}
.scene-picker button:active,.primary:active,.secondary:active{transform:scale(.98)}
.memory-heading{top:104px;padding:0 24px;z-index:4}
.memory-heading h2{margin:0 0 7px;font-size:clamp(26px,2.4vw,35px)}
.memory-heading p{font-size:11px}
.particle-controls{top:34%;width:164px;padding:15px;background:#11162473;border-color:#c9c1d21a;box-shadow:0 18px 50px #0507122e}
.particle-controls small{margin-top:11px;color:#aeb4c0}
.memory-actions{bottom:42px;z-index:5;gap:10px}
#memory-progress{font-size:10px;color:#e2cfad;letter-spacing:.7px}
.orbit-card{width:118px;padding:4px 4px 15px;border-radius:5px;background:#d8cbb8;border:1px solid #f1dfbf75;box-shadow:0 12px 38px #0007;transition:opacity .5s,filter .7s,box-shadow .25s}
.orbit-card:hover,.orbit-card:focus-visible{box-shadow:0 15px 45px #0009,0 0 0 1px #f0d3a38c}
.orbit-card img{height:88px}
.orbit-card>span{margin-top:6px;font-size:9px;color:#463f39}
.orbit-card.voice-card,.orbit-card.note-card{width:124px;padding:12px;background:#171b25e8;border:1px solid #8191a638;color:#eee7da;border-radius:5px}
.orbit-card.voice-card>span,.orbit-card.note-card>span{color:#eee7da}
.orbit-card.voice-card small,.orbit-card.note-card small{color:#b9bec8}
body[data-scene=rings] .orbit-card{background:#101720;border-color:#8598ab50;color:#e6e8eb;box-shadow:0 14px 42px #02050a99}
body[data-scene=rings] .orbit-card>span{color:#dce2e7}
body[data-scene=rings] .orbit-card.voice-card,body[data-scene=rings] .orbit-card.note-card{background:#0c131ce8;border-color:#8fa4b94d}
#media-dialog{width:min(540px,calc(100vw - 32px));padding:30px;background:#171c27ef;border-color:#d5c09b38}
#media-dialog h2{margin:9px 0 18px;font-size:25px}
#media-photo{max-height:45vh;border:4px solid #d8cbb8;background:#d8cbb8}
#media-caption{font-size:15px;line-height:1.85;margin-top:18px}
.media-nav{margin-top:20px;padding-top:16px}
body[data-scene=rings] #media-photo{border-color:#111a24;background:#111a24}

@media(max-width:850px){
 .scene-picker{left:auto;right:20px;top:76px;width:auto;display:block;padding:0;background:transparent;border:0;box-shadow:none;overflow:visible}
 .scene-picker>span{display:none}
 #scene-toggle{display:flex;align-items:center;gap:10px;padding:10px 13px;background:#111722cf;border:1px solid #d9c0983d;border-radius:8px;font-size:11px;color:#f0dfc3;box-shadow:0 12px 30px #02050b55}
 #scene-toggle b{font-size:14px;font-weight:400;transition:transform .25s}
 .scene-picker.expanded #scene-toggle b{transform:rotate(180deg)}
 #scene-options{position:absolute;right:0;top:calc(100% + 8px);width:min(330px,calc(100vw - 40px));display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:7px;background:#101620e8;border:1px solid #ddc9a72e;border-radius:10px;box-shadow:0 22px 60px #0009;backdrop-filter:blur(18px);opacity:0;visibility:hidden;translate:0 -7px;transition:opacity .2s,translate .2s,visibility .2s}
 .scene-picker.expanded #scene-options{opacity:1;visibility:visible;translate:0 0}
 #scene-options button{min-height:52px;padding:9px 10px;border-radius:6px;text-align:left;font-size:11px;color:#f1e8dc;background-position:center;background-size:cover;text-shadow:0 2px 8px #000,0 1px 2px #000}
 #scene-options button[data-scene=aurora]{background-image:linear-gradient(90deg,#07101cb8,#07101c55),url('./assets/aurora-cabin-v1.png')}
 #scene-options button[data-scene=sunset]{background-image:linear-gradient(90deg,#171015b8,#17101555),url('./assets/sunset-villa-v1.png')}
 #scene-options button[data-scene=garden]{background-image:linear-gradient(90deg,#07110fb8,#07110f55),url('./assets/moon-conservatory-v1.png')}
 #scene-options button[data-scene=rings]{background-image:linear-gradient(90deg,#080b10ba,#080b1055),url('./assets/ship-rings-v1.png')}
 #scene-options button[data-scene=starlake]{background-image:linear-gradient(90deg,#080d16ba,#080d1655),url('./assets/lake-stars-v1.png')}
 #scene-options button[aria-pressed=true]{box-shadow:inset 0 0 0 1px #f0d49a;background-color:#201b18}
 #journey-status{top:82px;left:22px;max-width:42vw;font-size:11px}
}

@media(max-width:650px) and (orientation:portrait){
 .memory-heading{top:102px;padding:0 28px}
 .memory-heading h2{font-size:25px;letter-spacing:2px}
 .memory-heading p{font-size:12px;line-height:1.6}
 .particle-controls{left:16px;right:16px;bottom:112px;width:auto;padding:9px 11px;gap:10px;background:#111624b8}
 .memory-actions{left:16px;right:16px;bottom:18px;gap:7px;max-width:none}
 .memory-actions button{padding:9px 11px;font-size:11px}
 #memory-progress{font-size:11px;line-height:1.2}
 .orbit-card{width:92px;padding:3px 3px 11px}
 .orbit-card img{height:68px}
 .orbit-card.voice-card,.orbit-card.note-card{width:96px;padding:9px}
 body[data-view=memory] .gesture-button{right:16px;bottom:177px;padding:7px 9px}
 body[data-view=memory] #gesture-label{display:none}
 #media-dialog{padding:28px 18px 20px}
 #media-dialog h2{font-size:23px}
 #media-photo{max-height:40vh;border-width:3px}
 #media-caption{font-size:14px}
}

@media(max-height:520px) and (orientation:landscape){
 header{padding:13px 20px}.brand{font-size:16px}.brand-mark{font-size:24px}.brand small{display:none}.header-tools{gap:12px}
 .scene-picker{top:14px;right:190px}#scene-toggle{padding:8px 11px;font-size:10px}
 #journey-status{top:58px;left:20px;max-width:220px}
 .memory-heading{top:54px;left:170px;right:170px;padding:0}.memory-heading h2{font-size:21px;line-height:1.35}.memory-heading p{font-size:10px}
 .particle-controls{top:105px;left:16px;width:145px;padding:10px}.shape-buttons{margin-bottom:10px}.palette{margin-bottom:8px}.particle-controls small,.spread-label{display:none}.particle-controls .secondary{margin-top:0}
 .memory-actions{bottom:14px;left:175px;right:175px;gap:7px}.memory-actions button{font-size:10px;padding:7px 10px;min-height:34px}#memory-progress{font-size:9px;flex-basis:auto}
 .orbit-card{width:84px;padding:3px 3px 10px}.orbit-card img{height:60px}.orbit-card.voice-card,.orbit-card.note-card{width:90px;padding:8px}
 body[data-view=memory] .gesture-button{bottom:14px;right:16px;padding:7px 9px}body[data-view=memory] #gesture-label small{display:none}
 #media-dialog{width:min(610px,calc(100vw - 70px));padding:20px 24px 14px}#media-dialog h2{font-size:20px;margin:4px 0 8px}#media-photo{max-height:42vh;border-width:3px}#media-caption{font-size:12px;margin-top:8px}.media-nav{margin-top:9px;padding-top:8px}
}

@media(prefers-reduced-motion:reduce){#scene-options,.scene-picker button{transition:none!important}}
