@font-face{font-family:'Autumn Japanese';src:url('./assets/autumn-japanese.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+7D05,U+8449,U+72E9,U+308A}
:root{--ink:#3c4741;--muted:#727c71;--accent:#9e4a35;--paper:239,238,224;--line:rgba(72,81,67,.18)}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden}
body{background:#e1dfd1;color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;transition:color 1.2s}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,a:focus-visible,[role=slider]:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
button{border:0;background:none}
#experience{position:relative;width:100%;height:100%;isolation:isolate}
#landscape{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}
#landscape.is-dragging{cursor:grabbing}
.paper-grain,.vignette{position:absolute;inset:0;pointer-events:none}
.paper-grain{z-index:2;opacity:.033;mix-blend-mode:multiply;background-repeat:repeat}
.vignette{z-index:1;background:radial-gradient(ellipse at 56% 43%,transparent 36%,rgba(63,59,40,.075) 100%)}
.topbar{position:absolute;z-index:4;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:32px 4.2%;gap:24px}
.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-family:Georgia,'Times New Roman',serif;font-size:32px;letter-spacing:-1.6px;line-height:1}
.brand-leaf{width:31px;height:34px;fill:var(--accent);transform:rotate(-9deg)}
.brand-period{color:var(--accent)}
.header-note{font-size:9px;letter-spacing:2.6px;margin-left:90px;color:var(--muted)}
.utilities{display:flex;align-items:center;gap:21px}
.sound-button{display:flex;align-items:center;gap:9px;padding:6px 0;font-size:11px;letter-spacing:.25px}
.sound-button svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.sound-waves{display:none}.sound-button[aria-pressed=true] .sound-waves{display:initial}.sound-button[aria-pressed=true] .sound-slash{display:none}
.utility-divider{width:1px;height:18px;background:var(--line)}
.icon-button{width:25px;height:25px;padding:2px;display:grid;place-items:center;opacity:.85;transition:opacity .2s,transform .2s}
.icon-button:hover{opacity:1;transform:scale(1.08)}
.icon-button svg{width:21px;height:21px;stroke:currentColor;stroke-width:1.2;stroke-linecap:round}
.intro{position:absolute;z-index:3;left:6.3%;top:23.1%;pointer-events:none}
.eyebrow{display:flex;align-items:center;gap:11px;color:var(--accent);font-size:12px;letter-spacing:3px;font-family:'Autumn Japanese',Arial,sans-serif}
.tiny-line{width:23px;height:1px;background:var(--accent);margin-right:1px;opacity:.65}
.eyebrow-translation{font-size:8px;letter-spacing:2.1px;margin-left:2px;opacity:.85}
h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(45px,4.7vw,76px);font-weight:400;line-height:1.075;letter-spacing:-3.2px;margin:24px 0 23px}
h1 em{font-weight:400;color:var(--accent)}
.intro>p{font-size:12px;line-height:1.9;letter-spacing:.15px;color:var(--muted);margin:0}
.season-note{display:flex;align-items:center;gap:8px;font-size:7px;letter-spacing:1.65px;margin-top:31px;color:var(--muted)}
.season-dot{width:4px;height:4px;border-radius:50%;background:var(--accent);opacity:.7}
.bottom-bar{position:absolute;z-index:4;bottom:40px;left:4.6%;right:4.6%;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none;gap:20px}
.water-notes{padding:0 0 3px 3px}
.interaction-note{display:flex;align-items:center;gap:13px;font-family:Georgia,'Times New Roman',serif;font-size:15px;line-height:1.5;letter-spacing:.05px}
.interaction-note svg{width:30px;height:28px;stroke:var(--ink);stroke-width:1;stroke-linecap:round;margin-right:1px;opacity:.7}
.muted{color:var(--muted)}
.edition{display:flex;align-items:center;gap:11px;color:var(--muted);font-size:7px;letter-spacing:1.6px;margin-top:24px}
.edition-line{width:22px;height:1px;background:var(--muted);opacity:.5}
.edition-number{margin-left:20px;letter-spacing:1px}
.time-panel{width:359px;display:flex;gap:18px;align-items:center;padding:17px 23px 14px 15px;border:1px solid rgba(255,255,255,.42);border-radius:14px;background:rgba(var(--paper),.69);box-shadow:0 4px 24px rgba(37,45,28,.035),inset 0 0 25px rgba(255,255,255,.05);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);pointer-events:auto;transition:background 1.2s,border-color 1.2s}
.time-dial{width:85px;height:85px;flex-shrink:0;cursor:ew-resize;touch-action:none;border-radius:50%}
.time-dial svg{width:100%;height:100%;overflow:visible}
#dial-ticks{stroke:var(--ink);opacity:.35;stroke-width:.65}
.dial-track{fill:none;stroke:var(--ink);stroke-width:.6;opacity:.2}
.dial-progress{fill:none;stroke:var(--accent);stroke-width:1;opacity:.7;stroke-dasharray:179.1;stroke-dashoffset:62.7}
.dial-face{fill:rgba(var(--paper),.25);stroke:var(--ink);stroke-width:.5;stroke-opacity:.15}
.dial-sun,.dial-moon{fill:none;stroke:var(--accent);stroke-width:1.25;stroke-linecap:round}.dial-moon{display:none}
.dial-handle{fill:var(--accent);stroke:rgba(var(--paper),1);stroke-width:2}
.dial-bottom{stroke:var(--muted);stroke-width:.65;fill:none;opacity:.5}
.time-content{flex:1;min-width:0}
.control-eyebrow{font-size:8px;letter-spacing:1.6px;color:var(--muted);font-family:'Autumn Japanese',Arial,sans-serif}
.time-heading{display:flex;align-items:baseline;gap:12px;margin-top:8px;margin-bottom:13px}
#time-name{font-family:Georgia,'Times New Roman',serif;font-size:26px;line-height:1;letter-spacing:-.65px}
#time-clock{font-size:10px;letter-spacing:.65px;color:var(--muted);font-variant-numeric:tabular-nums}
.time-presets{display:flex;gap:13px;align-items:center}
.time-presets button{position:relative;font-size:9px;letter-spacing:.05px;min-height:24px;min-width:26px;padding:3px 0 7px;color:var(--muted);transition:color .3s}
.time-presets button::after{position:absolute;content:'';width:3px;height:3px;bottom:0;left:calc(50% - 1.5px);background:var(--accent);border-radius:50%;opacity:0;transition:opacity .3s}
.time-presets button.active{color:var(--accent)}.time-presets button.active::after{opacity:1}.time-presets button:hover{color:var(--accent)}
.lantern-hint{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;font-size:7px;letter-spacing:1.7px;white-space:nowrap;padding:15px 0;opacity:0;transition:color .3s,opacity 1.5s;transform:translateY(-50%);color:var(--ink)}
.lantern-hint.is-visible{opacity:.72}.lantern-hint:hover{opacity:1;color:var(--accent)}
.hint-line{width:31px;height:1px;background:currentColor;opacity:.4}.hint-dot{width:3px;height:3px;border-radius:50%;background:var(--accent);margin-left:-10px}
.about-panel{position:absolute;z-index:7;right:4.2%;top:91px;width:340px;padding:31px;background:rgba(var(--paper),.94);backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.35);border-radius:12px;box-shadow:0 20px 80px rgba(25,30,20,.12)}
.about-panel[hidden]{display:none}
.about-close{position:absolute;top:13px;right:12px}
.about-panel h2{font-family:Georgia,'Times New Roman',serif;font-size:29px;line-height:1.18;font-weight:400;letter-spacing:-.8px;margin:20px 0 16px}
.about-panel p{font-size:11px;line-height:1.9;color:var(--muted)}
.about-panel ul{list-style:none;margin:24px 0;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.about-panel li{display:flex;align-items:baseline;gap:13px;font-size:10px;line-height:2.5}
.about-panel li span{font-size:8px;color:var(--accent)}
.about-panel .about-footnote{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:12px;line-height:1.6;margin-bottom:0}
.loading{position:absolute;z-index:10;inset:0;background:#e3e2d6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;transition:opacity 1.1s,visibility 1.1s;pointer-events:none}
.loading-mark{font-family:'Autumn Japanese',serif;color:#a34430;font-size:39px;font-weight:400}
.loading>span{color:#687162;font-size:8px;letter-spacing:2.8px}
.loading-line{height:1px;width:75px;background:linear-gradient(90deg,transparent,#a34430,transparent);transform-origin:center;animation:loading-breathe 2s ease-in-out infinite}
@keyframes loading-breathe{50%{transform:scaleX(.35);opacity:.3}}
.loading.is-hidden{opacity:0;visibility:hidden}
.error-message{position:absolute;z-index:12;inset:0;background:#e3e2d6;align-content:center;text-align:center;padding:30px;color:#3c4741}.error-message h2{font:36px Georgia,serif}.error-message p{font-size:13px;line-height:1.7}.error-message button{border:1px solid #8b927e;border-radius:30px;padding:12px 25px;margin-top:15px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.night{--ink:#d1d9d1;--muted:#9faeaf;--accent:#e5b183;--paper:39,53,61;--line:rgba(193,211,211,.18)}
body.night .time-panel{border-color:rgba(199,217,226,.16)}
body.night .dial-sun{display:none}body.night .dial-moon{display:initial}
body.night .paper-grain{mix-blend-mode:screen;opacity:.02}
@media(min-width:1700px){.intro{left:7%;top:25%}.topbar{padding-top:42px}.bottom-bar{bottom:48px}.time-panel{width:385px;gap:22px;padding:20px}.time-dial{width:92px;height:92px}.time-presets{gap:16px}}
@media(max-width:1100px){.intro{left:5%;top:24%}h1{font-size:54px;letter-spacing:-2.5px}.intro>p{font-size:11px}.eyebrow-translation{display:none}.season-note{font-size:6px}.time-panel{width:329px;gap:12px;padding:13px 17px 10px 11px}.time-presets{gap:11px}.header-note{margin-left:30px}.lantern-hint{font-size:6px;letter-spacing:1.3px;gap:8px}.hint-line{width:23px}}
@media(max-width:850px){.topbar{padding:23px 6%;gap:15px}.brand{font-size:29px}.brand-leaf{width:26px;height:29px}.header-note{display:none}.utilities{gap:15px}.sound-button{font-size:10px;gap:7px}.intro{left:7%;top:15.8%}.eyebrow{font-size:10px;gap:9px}.eyebrow-translation{display:inline;font-size:7px}h1{font-size:45px;letter-spacing:-2.4px;margin:16px 0 15px;line-height:1.025}.intro>p{font-size:10px;line-height:1.75}.season-note{display:none}.bottom-bar{left:5%;right:5%;bottom:max(23px,env(safe-area-inset-bottom));display:block}.water-notes{position:absolute;bottom:122px;left:4%;padding:0}.interaction-note{font-size:11px;gap:9px}.interaction-note svg{width:24px;height:24px}.interaction-note br{display:none}.interaction-note .muted{margin-left:4px}.edition{display:none}.time-panel{width:100%;max-width:390px;margin:0 auto;justify-content:center;gap:22px;padding:12px 26px 10px 20px;border-radius:13px}.time-dial{width:76px;height:76px}.time-content{max-width:212px}.time-heading{margin-top:6px;margin-bottom:12px}#time-name{font-size:25px}.time-presets{gap:16px}.lantern-hint{display:none}.about-panel{top:76px;right:5%;width:90%;max-width:340px;padding:27px}}
@media(max-height:650px) and (min-width:701px){.topbar{padding-top:21px}.intro{top:24%}h1{font-size:44px;margin:16px 0}.intro>p{font-size:10px}.season-note{margin-top:18px}.bottom-bar{bottom:23px}.interaction-note{font-size:12px}.edition{margin-top:15px}.time-panel{padding:9px 19px 7px 10px}.time-dial{width:75px;height:75px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01ms!important}}

@media(max-height:520px) and (max-width:850px){.topbar{padding-top:15px}.intro{top:26%;left:6%}h1{font-size:32px;letter-spacing:-1.6px;margin:12px 0}.intro>p,.water-notes{display:none}.bottom-bar{bottom:16px}.time-panel{width:300px;margin-right:0;gap:15px;padding:9px 17px 6px 11px}.time-dial{width:64px;height:64px}.time-content{max-width:185px}.time-heading{margin:5px 0 4px}#time-name{font-size:23px}.time-presets{gap:10px}.time-presets button{font-size:8px}.about-panel{max-height:calc(100vh - 93px);overflow:auto}}
