@font-face{font-family:Arbora;src:local('Helvetica Neue');font-display:swap}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#020303;color:#e7e9e4;font-family:Arbora,'Helvetica Neue',Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}body{--accent:#c7d8a8;--muted:#858b84;--line:rgba(222,232,212,.15);--flow-duration:5s}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:1px solid var(--accent);outline-offset:7px}a{color:inherit;text-decoration:none}#artwork,.fallback,.vignette{position:absolute;inset:0;width:100%;height:100%}#artwork canvas{display:block;width:100%;height:100%;touch-action:none}.fallback{object-fit:cover;object-position:80% center}.vignette{pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.24),transparent 22%,transparent 58%,rgba(0,0,0,.48)),linear-gradient(90deg,rgba(0,0,0,.12),transparent 40%)}header{position:absolute;top:max(33px,env(safe-area-inset-top));left:42px;right:42px;display:flex;align-items:center;z-index:3;gap:35px}.wordmark{font-size:23px;font-weight:300;letter-spacing:.40em}.edition,.micro,.text-button,.instrument-heading,.wind-heading,.wind-scale,.season-caption strong,.chapter>span,.invitation>span,.quadrant,.dial-center,.transport,.loading,.notice{font-family:'SFMono-Regular',Consolas,'Liberation Mono',monospace;font-size:9px;letter-spacing:.13em;line-height:1.5}.edition{color:#a0a59b;font-size:8px;letter-spacing:.18em}.edition-no{color:#666d64}#about-open{margin-left:auto}.text-button{padding:8px 0;color:#b6bcb1;white-space:nowrap;font-size:9px}.text-button:hover{color:white}.text-button span{margin-left:6px;color:var(--accent)}main{transition:opacity 1.8s}main.unready{opacity:0;pointer-events:none}.invitation{position:absolute;left:43px;top:26%;pointer-events:none;transition:opacity 2s}.invitation p{font-size:15px;font-weight:300;letter-spacing:.015em;color:#c1c6bd}.invitation>span{font-size:8px;letter-spacing:.17em;color:#737d6c}.chapter{position:absolute;left:43px;bottom:330px;pointer-events:none}.chapter>span{color:var(--accent);font-size:9px}.chapter h1{font-size:37px;line-height:1.1;letter-spacing:-.025em;font-weight:300;margin:12px 0 9px}.chapter p{font-size:13px;font-weight:300;color:#949d90;letter-spacing:.015em;margin:0}.instruments{position:absolute;left:43px;bottom:max(37px,env(safe-area-inset-bottom));width:340px}.instrument-heading{display:flex;align-items:center;gap:9px;font-size:8px;color:#8b9683;letter-spacing:.15em;border-top:1px solid var(--line);padding-top:13px}.instrument-heading .text-button{margin-left:auto;font-size:8px;padding:0}.status-dot{width:4px;height:4px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px #c5df9250}#control-body{display:flex;align-items:center;gap:27px;height:139px;transition:opacity .3s}#control-body[hidden]{display:none}.season-instrument{display:flex;align-items:center;gap:12px}.season-dial{height:91px;width:91px;position:relative;flex-shrink:0}.season-dial svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#69745e;stroke-width:.55}.season-dial svg .dial-track{stroke:#7c8a6b;stroke-dasharray:52 6;transform:rotate(-86deg);transform-origin:center;opacity:.5}#year-arc{stroke:#c1d5a1;stroke-width:1;stroke-dasharray:0 233;transform:rotate(-90deg);transform-origin:center;opacity:.8}#season-orbit{fill:var(--accent);stroke:none}.dial-center{position:absolute;inset:37px 0 0;text-align:center;color:#9daa8f;font-size:10px;pointer-events:none}.quadrant{position:absolute;color:#68745e;width:39px;height:37px;font-size:7px;padding:0;z-index:2}.quadrant[aria-pressed=true]{color:#e0e9d5}.quadrant:hover{color:white}.spring{top:10px;right:6px}.summer{bottom:7px;right:6px}.autumn{bottom:7px;left:6px}.winter{top:10px;left:6px}.season-caption{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.micro{font-size:8px;color:#6e7b65}.season-caption strong{font-weight:400;font-size:9px;color:#d2dcc7;letter-spacing:.10em}.auto-button{font-size:7px;margin-top:0;padding:2px 0;color:#89997a}.tiny-led{display:inline-block;width:3px;height:3px;border:1px solid #6d7c5c;border-radius:50%;vertical-align:middle}.auto-button[aria-pressed=true] .tiny-led{background:var(--accent);border-color:var(--accent)}.wind-instrument{width:137px;flex-shrink:0}.wind-heading{display:flex;justify-content:space-between;font-size:8px;color:#8f9c82}.wind-heading output{color:#c1cfb1}.flow{width:100%;height:38px;opacity:.7;overflow:hidden}.flow svg{width:100%;height:100%}.flow path{fill:none;stroke:#657650;stroke-width:.55}.flow path:first-child{stroke:#b0c38f;stroke-dasharray:4 32;animation:flow var(--flow-duration) linear infinite}.flow path:nth-child(2){stroke-dasharray:2 37;animation:flow calc(var(--flow-duration)*1.35) linear infinite reverse}input[type=range]{width:100%;height:18px;display:block;margin:0;appearance:none;background:transparent;cursor:ew-resize;touch-action:pan-y}input[type=range]::-webkit-slider-runnable-track{height:1px;background:#46513d}input[type=range]::-webkit-slider-thumb{appearance:none;width:5px;height:11px;margin-top:-5px;border:0;border-radius:0;background:#c4d7a7}input[type=range]::-moz-range-track{height:1px;background:#46513d}input[type=range]::-moz-range-thumb{width:5px;height:11px;border:0;border-radius:0;background:#c4d7a7}.wind-scale{display:flex;justify-content:space-between;font-size:6px;color:#5b6850}.transport{display:flex;align-items:center;gap:25px;border-top:1px solid var(--line);padding-top:9px}.transport .text-button{font-size:8px}.transport .live-state{font-size:6px;letter-spacing:.12em;color:#69755f;margin-left:auto}#play-icon{margin-left:0}.year-line{position:absolute;bottom:0;left:0;right:0;height:1px;background:#11160e}.year-line div{height:100%;background:#9bae81;width:0;box-shadow:0 0 8px #c5df9255}.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:14px;z-index:5;font-size:8px;color:#aebaa1;background:#020303;transition:opacity 1.2s;pointer-events:none}.loading.done{opacity:0}.loading-ring{width:17px;height:17px;border:1px solid #2d3725;border-top-color:#aabd94;border-radius:50%;animation:spin 2s linear infinite}#loading-percent{color:#607052}.contact-indicator{position:absolute;border:1px solid #d1e4b255;width:72px;height:72px;border-radius:50%;pointer-events:none;opacity:0;transition:opacity .4s,transform 1s;transform:scale(.5)}.contact-indicator.active{opacity:.7;transform:scale(1)}.contact-indicator span{position:absolute;inset:17px;border-radius:50%;border:1px solid #d1e4b233}dialog{position:fixed;margin:auto;width:min(540px,calc(100% - 36px));padding:52px 47px 38px;background:#070a07ed;border:1px solid #3c4730;color:#cbd3c2;max-height:90dvh;overflow-y:auto;box-shadow:0 25px 100px #000b}dialog::backdrop{background:#0009;backdrop-filter:blur(12px)}dialog .close{position:absolute;right:28px;top:21px;font-size:8px}dialog h2{font-size:42px;font-weight:300;letter-spacing:-.04em;line-height:1.1;margin:22px 0 25px}dialog p{font-size:14px;line-height:1.7;font-weight:300;color:#9ba891}dialog p.quiet{font-size:11px;color:#6e7d63;margin-top:25px}.return-button{display:flex;justify-content:space-between;width:100%;border-top:1px solid #344029;margin-top:28px;padding:20px 0 0;font-family:monospace;font-size:9px;letter-spacing:.14em;color:#c9dcb0}.notice{position:fixed;left:50%;bottom:29px;transform:translateX(-50%);background:#0b1109dd;border:1px solid #2e3d23;padding:12px 18px;color:#abbc9b;opacity:0;pointer-events:none;transition:opacity .4s;font-size:8px;max-width:90%;text-align:center}.notice.show{opacity:1}body.controls-hidden .chapter{bottom:155px}body.paused .flow path{animation-play-state:paused}body.art-only .chapter,body.art-only .invitation,body.art-only .instruments{opacity:0;pointer-events:none}.instruments{transition:opacity .4s}.chapter h1,.chapter p{transition:opacity .3s}.no-webgl .instruments{display:none}.no-webgl .chapter{bottom:75px}@keyframes flow{to{stroke-dashoffset:-144}}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:700px){header{left:24px;right:24px;top:max(26px,env(safe-area-inset-top));gap:0;flex-wrap:wrap}.wordmark{font-size:21px;letter-spacing:.35em}.edition{position:absolute;left:1px;top:38px;font-size:6px;letter-spacing:.12em}.edition-no{display:none}#about-open{font-size:8px}.invitation{left:25px;top:20%}.invitation p{font-size:12px}.invitation>span{font-size:6px}.chapter{left:25px;bottom:250px}.chapter h1{font-size:30px;margin:9px 0 7px}.chapter>span{font-size:7px}.chapter p{font-size:11px;max-width:190px}.instruments{left:25px;right:25px;bottom:max(22px,env(safe-area-inset-bottom));width:auto}.instrument-heading{font-size:7px;padding-top:12px}#control-body{height:123px;justify-content:space-between;gap:18px}.season-dial{height:83px;width:83px}.season-caption strong{font-size:8px}.season-caption{gap:3px}.season-instrument{gap:9px}.dial-center{inset:33px 0 0;font-size:9px}.quadrant{width:34px;height:33px;font-size:6px}.spring{right:6px;top:10px}.winter{left:6px;top:10px}.summer{right:6px;bottom:7px}.autumn{left:6px;bottom:7px}.wind-instrument{width:min(36vw,150px)}.transport{gap:23px}.transport .live-state{font-size:5px}.transport .text-button{font-size:7px}body.controls-hidden .chapter{bottom:125px}.vignette{background:linear-gradient(180deg,rgba(0,0,0,.3),transparent 25%,transparent 52%,rgba(0,0,0,.85) 88%)}dialog{padding:49px 28px 26px}dialog h2{font-size:37px}}
@media(max-height:550px) and (min-width:701px){.invitation{display:none}.chapter{bottom:240px}.chapter h1{font-size:28px}header{top:20px}.instruments{bottom:20px}#control-body{height:110px}}
@media(prefers-reduced-motion:reduce){.flow path,.loading-ring{animation:none}main,.invitation,.contact-indicator{transition:none}}

body.no-wind .flow path{animation-play-state:paused}

@media(max-width:360px){#control-body{gap:12px}.season-instrument{gap:7px}.chapter h1{font-size:27px}}

.quadrant{width:50%;height:50%}.quadrant.spring{top:0;right:0}.quadrant.summer{bottom:0;right:0}.quadrant.autumn{bottom:0;left:0}.quadrant.winter{top:0;left:0}
