:root{color-scheme:dark;--ink:#fcf4e8;--muted:#d9d3c9;--accent:#edb7b0;--panel:rgba(30,37,39,.78);font-family:'Yu Gothic','Hiragino Kaku Gothic ProN',system-ui,sans-serif;color:var(--ink);background:#252e31}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{border:1px solid #ffffff38;background:transparent;border-radius:6px;padding:10px 15px}button:hover:enabled{background:#ffffff13}[hidden]{display:none!important}#app{min-height:100svh;position:relative;isolation:isolate;overflow:hidden}.scene-stage{position:absolute;inset:0;z-index:-2;display:grid;place-items:center;background:#252e31}.scene-stage canvas{width:100%;height:100%;position:absolute;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges}.scene-shade{position:absolute;inset:0;background:linear-gradient(180deg,#10192183 0%,transparent 28%,transparent 64%,#11191f9c 100%),linear-gradient(90deg,#18202d65,transparent 52%);pointer-events:none}.interface{min-height:100svh;padding:30px 42px 20px;display:grid;grid-template-columns:1fr 245px;grid-template-rows:auto 1fr auto auto;gap:22px}.masthead{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:13px;text-shadow:0 2px 10px #0008}.brand-seal{border:1px solid #f2dad4a3;width:40px;height:44px;padding:3px 7px;line-height:17px;letter-spacing:2px;font-family:'Yu Mincho',serif;color:#ffe4db;font-size:16px}.brand strong{display:block;font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:21px;letter-spacing:4px;font-weight:500}.brand small{display:block;font-size:8px;letter-spacing:3.3px;margin-top:7px;color:#e5d9d1}.header-right{display:flex;gap:15px;align-items:center}.text-button{border:0;padding:9px 10px;font-size:11px}.review-tag{font-size:9px;letter-spacing:1.4px;color:#fff0df}.scene-caption{align-self:center;margin:0 0 100px 15px;max-width:630px;text-shadow:0 2px 14px #152025c9}.eyebrow{font-size:9px;letter-spacing:2.3px;font-weight:500;display:flex;align-items:center;gap:10px}.line{height:1px;width:25px;background:#f5e7de94}.scene-caption h1{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:clamp(25px,3vw,42px);font-weight:400;letter-spacing:3px;line-height:1.7;margin:19px 0 12px}.scene-caption>p:not(.eyebrow){font-size:11px;letter-spacing:1.2px;color:#f3e4d9}.scene-meta{margin-top:28px;display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:1.1px}.small-seal{border:1px solid #f4cfb488;color:#ffe0c7;padding:4px 5px;font-size:13px;font-family:serif}.glass{background:var(--panel);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid #efe0d02b;box-shadow:0 12px 40px #0a172127}.focus-card{align-self:end;margin-bottom:14px;border-radius:12px;padding:20px}.focus-card>.eyebrow{justify-content:center;color:var(--muted);font-size:10px;letter-spacing:1.7px}.enso{position:relative;aspect-ratio:1;margin:4px 2px}.enso svg{width:100%;height:100%;fill:none;stroke:#ffffff12;stroke-width:2}.enso path{stroke:var(--accent);stroke-width:2.5;stroke-linecap:round}.enso>div{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px}.time{font:42px Georgia,serif;font-variant-numeric:tabular-nums;letter-spacing:1px}.time>span{opacity:.55;font-size:33px}.enso small{font-size:9px;letter-spacing:1px;color:var(--muted)}.timer-presets{display:flex;justify-content:center;gap:15px;font-size:10px;margin:0 0 18px;color:var(--muted)}.timer-presets .active{color:var(--accent)}.primary{background:var(--accent);color:#302b2d;width:100%;border:0;font-size:11px;padding:12px 5px}.bottom-bar{grid-column:1/-1;border-radius:11px;display:flex;align-items:center;min-height:78px;padding:12px 19px;gap:22px}.track{display:flex;gap:14px;align-items:center;min-width:195px}.play-button{width:42px;height:42px;border-radius:50%;padding:0;color:var(--accent)}.track .eyebrow{font-size:8px;color:var(--muted);letter-spacing:1px;display:block;margin-bottom:5px}.track strong{font-size:12px;font-weight:500;letter-spacing:.8px}.tools{display:flex;justify-content:center;gap:7px;flex:1}.tools button{display:flex;align-items:center;gap:9px;border:0;font-size:10px;padding:12px 10px;white-space:nowrap}.tools button>span:first-child{font-size:19px;color:var(--accent)}.review-link{font-size:9px;color:var(--muted);border-bottom:1px solid #ffffff33;padding-bottom:4px}.phase-label{grid-column:1/-1;margin:0;text-align:right;color:#ebdfd0;font-size:9px;letter-spacing:1.5px}.restore{position:fixed;bottom:24px;right:24px;font-size:12px;z-index:5}.load-status{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);max-width:90%;z-index:3;text-align:center;background:#252e31e8;border:1px solid #ffffff33;padding:20px;border-radius:10px;font-size:13px}.load-status button{margin-top:8px}.drawer{color:var(--ink);position:fixed;inset:auto 24px 24px auto;width:min(520px,calc(100% - 48px));max-height:85svh;overflow:auto;border-radius:14px;padding:26px;margin:0}.drawer::backdrop{background:#101b285e;backdrop-filter:blur(3px)}.drawer-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.drawer h2{font:21px 'Yu Mincho',serif;letter-spacing:2px;margin:0}.drawer p{font-size:12px;line-height:1.9;color:var(--muted)}.scene-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.scene-choice{padding:14px;text-align:left;border:1px solid #ffffff26;min-height:100px}.scene-choice.current{border-color:var(--accent)}.scene-choice strong{display:block;font-size:12px;line-height:1.7;font-weight:500}.scene-choice small{display:block;font-size:9px;color:var(--muted);margin-top:6px}.scene-choice .number{font:18px Georgia,serif;color:var(--accent);display:block;margin-bottom:10px}.option-row{padding:13px 0;border-bottom:1px solid #ffffff1c;font-size:12px;display:flex;justify-content:space-between;gap:15px;align-items:center}.option-row small{font-size:9px;color:var(--muted)}.option-row input{width:110px;accent-color:var(--accent)}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#253038;padding:14px 20px;border-radius:7px;font-size:12px;z-index:10;max-width:90%}.review-page{padding:30px 24px 60px;max-width:1030px;margin:auto}.review-page h1{font:26px 'Yu Mincho',serif;font-weight:400}.review-page p{line-height:1.9;font-size:13px;color:var(--muted)}.review-art{position:relative;max-width:960px;aspect-ratio:16/9;margin-top:25px;overflow:hidden;border:1px solid #ffffff24}.review-art canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.review-art svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.coordinate-water{fill:#51caff1c;stroke:#6ad4ff;stroke-width:1}.coordinate-light{fill:#ffd76d55;stroke:#ffe086;stroke-width:1}.coordinate-steam{fill:#ffffff55;stroke:white;stroke-width:1}.coordinate-label{font:11px monospace;fill:#fff;paint-order:stroke;stroke:#151b29;stroke-width:3px}.review-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px}.review-actions a{font-size:12px;border-bottom:1px solid #ffffff66}.review-note{border-left:2px solid var(--accent);padding:0 18px;margin-top:28px}
@media(min-width:701px){
 .focus-card{position:absolute;left:42px;bottom:150px;width:190px;margin:0;padding:14px}.focus-card .time{font-size:35px}.scene-caption{align-self:start;margin:8px 0 0 15px}.scene-caption h1{font-size:clamp(25px,2.6vw,36px);margin:12px 0 8px}.scene-meta{margin-top:16px}.review-art{box-sizing:content-box;width:min(960px,100%)}
}
@media(max-width:1100px){
 .interface{padding:24px;grid-template-columns:1fr 220px;gap:16px}.review-link,.review-tag{display:none}.tools{gap:0}.tools button{padding:10px 8px;font-size:9px}.track{min-width:170px}.bottom-bar{gap:10px}.scene-caption{margin-left:0}.focus-card{left:24px;bottom:140px}
}
/* The full composition stays visible on phones; the tools sit below the art. */
@media(max-width:700px){
 #app{display:block;padding:0;overflow:clip}.interface{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(6,auto);align-content:start;padding:18px 16px;gap:18px;min-height:100svh}
 .masthead{grid-column:1;grid-row:1}.brand strong{font-size:15px;letter-spacing:1px}.brand small{font-size:6px;letter-spacing:2px}.brand-seal{width:34px;height:38px;font-size:14px;line-height:15px;padding:3px 5px}.header-right{gap:0;flex-shrink:0}.text-button{font-size:10px;padding:8px}
 .scene-caption{grid-column:1;grid-row:2;margin:12px 0 4px}.scene-caption h1{font-size:25px;letter-spacing:1px;line-height:1.65;margin:12px 0 8px}.scene-caption>p:not(.eyebrow){font-size:10px;max-width:100%;line-height:1.8}.scene-meta{margin-top:12px;font-size:9px}
 .scene-stage{position:relative;inset:auto;grid-column:1;grid-row:3;z-index:0;width:calc(100% + 32px);margin-left:-16px;aspect-ratio:16/9}.scene-shade{display:none}
 .focus-card{grid-column:1;grid-row:4;position:static;width:100%;max-width:320px;justify-self:center;margin:0;padding:15px;background:#1e2527db}.focus-card>.eyebrow{font-size:9px;letter-spacing:1px;margin:0 0 5px}.enso{height:150px;margin:0 auto;width:150px}.time{font-size:33px}.enso small{font-size:8px}.timer-presets{gap:9px;font-size:8px;margin:0 0 12px}.primary{font-size:11px;padding:10px 2px}
 .bottom-bar{grid-column:1;grid-row:5;flex-wrap:wrap;padding:9px 12px;gap:8px;min-height:0;margin:0}.track{width:100%;min-width:0;gap:10px}.play-button{width:30px;height:30px;font-size:10px}.track strong{font-size:10px}.track .eyebrow{font-size:7px}.tools{width:100%;justify-content:space-between;border-top:1px solid #ffffff19;padding-top:3px}.tools button{flex-direction:column;gap:3px;font-size:8px;padding:7px 4px}.tools button>span:first-child{font-size:17px}.phase-label{grid-column:1;grid-row:6;font-size:8px;margin:0}
 .drawer{inset:auto 8px 8px;width:calc(100% - 16px);max-height:85svh;padding:21px}.scene-list{gap:8px}.scene-choice{padding:11px}.review-page{padding:20px 14px 40px}.review-page h1{font-size:22px}.load-status{top:35%}
}
@media(max-width:380px){.brand strong{font-size:14px}.brand small{letter-spacing:1px}.scene-caption h1{font-size:22px}.header-right #hide-ui{max-width:55px}.scene-choice strong{font-size:11px}}
@media(max-height:550px) and (min-width:701px){.interface{padding:14px 24px;gap:8px;min-height:550px}.scene-caption{margin-top:10px}.focus-card{padding:12px;width:190px;bottom:110px;left:auto;right:24px}.enso{height:140px}.bottom-bar{min-height:60px}}
.immersed .masthead,.immersed .scene-caption,.immersed .focus-card,.immersed .bottom-bar,.immersed .phase-label{display:none}.immersed .interface{display:block;min-height:100svh;padding:0}.immersed .scene-stage{position:absolute;inset:0;width:100%;height:100%;margin:0;aspect-ratio:auto}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* A quiet prototype: two mode buttons and one primary action. */
.timer-modes{display:flex;gap:6px;margin:0 0 12px}.timer-modes button{flex:1;font-size:10px;padding:7px 3px;border-color:transparent;white-space:nowrap}.timer-modes [aria-pressed=true]{color:var(--accent);border-color:#edb7b055;background:#edb7b00c}.reset-button{display:block;border:0;margin:6px auto 0;font-size:10px;padding:5px 12px;color:var(--muted)}.quiet-caption{font-size:11px;letter-spacing:1px;color:var(--muted)}.completion-count{font-size:10px;color:var(--muted)}.bottom-bar .tools{flex:1;justify-content:center}.option-row input[type=checkbox]{width:18px;height:18px}.enso path{transition:stroke-dashoffset 1s linear}
@media(min-width:701px){.focus-card{width:202px;bottom:135px}.scene-caption{max-width:650px}}
@media(max-width:700px){.quiet-caption{width:100%;text-align:center;padding:7px 0}.bottom-bar .tools{width:auto;border:0}.tools button{flex-direction:row;gap:8px;font-size:11px;padding:10px}.completion-count{text-align:right}.focus-card{max-width:300px}.timer-modes button{font-size:11px}.reset-button{font-size:11px;padding:8px 12px}.enso{width:150px;height:150px}}
@media(prefers-reduced-motion:reduce){.enso path{transition:none}}
.option-row select{font:inherit;font-size:12px;color:var(--ink);background:#293236;border:1px solid #ffffff44;border-radius:5px;padding:8px;max-width:58%}
.audio-controls{display:flex;flex-wrap:wrap;gap:8px}.audio-controls button{font-size:12px;padding:9px 12px}.option-row output{min-width:34px;font-variant-numeric:tabular-nums;text-align:right}.option-row input[type=range]{min-width:80px;max-width:40%}
@media(min-width:701px){.focus-card .enso{width:138px;height:138px;margin:4px auto}.focus-card .enso small{font-size:8px}}
@media(min-width:701px){.scene-caption{margin:0 0 0 15px}.scene-caption>.eyebrow{margin:0}.scene-caption h1{font-size:clamp(25px,2.6vw,32px);line-height:1.5;margin:10px 0 0}.scene-caption>p:not(.eyebrow),.scene-caption .scene-meta{display:none}.focus-card{bottom:148px}.focus-card .enso{width:120px;height:120px}.focus-card .enso small{max-width:110px;line-height:1.4;text-align:center}}

/* Compact timer: keep the water and foreground open. */
.focus-card{position:absolute;top:82px;right:24px;left:auto;bottom:auto;width:300px;max-width:none;padding:12px 15px;margin:0;background:rgba(30,37,39,.94);border-radius:10px}.focus-card>.eyebrow{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}.timer-main{display:flex;justify-content:space-between;align-items:center;gap:16px}.timer-readout{display:flex;flex-direction:column;gap:2px}.focus-card .time{font:42px Georgia,serif;letter-spacing:1px;line-height:1.1;font-variant-numeric:tabular-nums}.timer-readout small{font-size:10px;color:var(--muted)}.timer-actions{width:116px;flex-shrink:0}.timer-actions .primary{font-size:11px;padding:8px 5px}.timer-actions .reset-button{margin:3px auto 0;padding:3px 10px;font-size:10px}.focus-card .timer-modes{margin:8px 0 0;gap:8px}.focus-card .timer-modes button{padding:4px;font-size:10px}.scene-caption{max-width:calc(100vw - 380px)}
@media(max-width:700px){.scene-caption{max-width:100%}.focus-card{position:static;grid-row:3;grid-column:1;width:100%;max-width:390px;padding:12px 16px;justify-self:center}.scene-stage{grid-row:4}.focus-card .time{font-size:40px}.timer-actions{width:130px}.timer-actions .primary{min-height:38px}.timer-actions .reset-button{padding:6px 14px;margin:0 auto;min-height:32px}.focus-card .timer-modes button{min-height:32px;font-size:11px}}
@media(max-height:550px) and (min-width:701px){.focus-card{top:80px;right:24px;left:auto;bottom:auto}}


/* Center the desktop timer; preserve the separate mobile scene layout. */
@media(min-width:701px){.focus-card{left:50%;right:auto;top:24px;transform:translateX(-50%);width:280px;padding:10px 12px}.timer-main{gap:10px}.timer-actions{width:108px}.scene-caption{max-width:calc(50vw - 200px)}}
@media(min-width:701px) and (max-width:900px){.focus-card{top:96px}.scene-caption h1{font-size:25px}}

/* Keep desktop timer entirely above the artwork. */
@media(min-width:901px){.focus-card{top:8px}.scene-stage{top:136px}}
@media(min-width:701px) and (max-width:900px){.focus-card{top:80px}.scene-stage{top:210px}}

.timer-modes #timer-profile{width:82px;min-width:0;background:#303b3d;color:var(--ink);border:1px solid #ffffff55;border-radius:5px;font-size:10px;font-family:inherit;padding:3px}.focus-card .timer-modes button{min-width:0;flex:1;white-space:nowrap}.timer-readout small{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-timer label{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;font-size:12px}.custom-timer input{width:75px;background:#303b3d;color:var(--ink);padding:8px;border:1px solid #ffffff55;border-radius:4px}@media(max-width:700px){.timer-modes #timer-profile{min-height:32px;font-size:11px}}

.timer-actions .primary:hover:enabled{background:var(--accent);filter:brightness(1.06)}

/* Presentation changes layout only; the same canvas, timer and audio remain alive. */
.presentation-page{overflow:hidden}.presentation#app{position:fixed;inset:0;min-height:0;height:100dvh;z-index:6;background:#172125}.presentation .interface{display:block;padding:0;min-height:0;height:100%}.presentation .scene-stage{position:absolute;inset:0;width:100%;height:100%;margin:0;aspect-ratio:auto;z-index:0}.presentation .scene-stage canvas{object-fit:contain;width:100%;height:100%}.presentation .scene-shade{display:none}.presentation .masthead,.presentation .scene-caption,.presentation .focus-card,.presentation .bottom-bar,.presentation .phase-label,.presentation #show-ui{display:none!important}.full-timer{position:absolute;top:max(14px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:2;border-radius:8px;padding:9px 17px;margin:0;font:20px Georgia,'Yu Gothic',serif;font-variant-numeric:tabular-nums;background:#1e2527d9;pointer-events:none}.fullscreen-controls{position:absolute;z-index:3;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:12px;border-radius:10px;width:max-content;max-width:calc(100% - 24px);background:#1e2527ee}.fullscreen-controls button{font-size:12px;min-height:40px}.fullscreen-controls label{display:flex;gap:8px;align-items:center;font-size:12px}.fullscreen-controls select{font:inherit;color:var(--ink);background:#293236;border:1px solid #ffffff44;border-radius:5px;padding:8px}.drawer .review-link{display:inline-block}.tools{flex-wrap:wrap}.tools #quick-mute[aria-pressed=true]{color:var(--accent);border:1px solid #edb7b055}#bgm-choice{min-width:140px}#drawer-content h3{margin-top:24px;font-size:15px}.toast{z-index:20}@media(max-width:700px){.bottom-bar .tools{width:100%;gap:2px;justify-content:center}.bottom-bar .tools button{font-size:10px;padding:9px 7px}.fullscreen-controls{gap:4px;padding:8px}.fullscreen-controls button{padding:8px;font-size:11px}.full-timer{font-size:18px;padding:8px 13px}.fullscreen-controls label{width:100%;justify-content:center}}

.tour-review-rate{position:absolute;left:12px;bottom:5px;font-size:10px;background:#182328e8;padding:5px;z-index:4;pointer-events:none}#travel-music-status,#travel-current-scene{padding:8px 10px;border-left:2px solid var(--accent);background:#ffffff05}#bgm-fixed{min-width:0;width:65%;max-width:65%}.option-row #bgm-mode,.option-row #scene-tour-mode{min-width:0;max-width:65%}#music-in-travel{font-size:12px;text-align:left;line-height:1.6}@media(max-width:700px){#drawer-content .option-row{gap:8px}#bgm-fixed{font-size:11px}.tour-review-rate{font-size:8px;max-width:95%}}
