:root{--s:1;--ox:0;--oy:0}*{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(ellipse 70% 60% at 50% 35%, #fbf9f2 0%, var(--paper) 70%);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.55}a{color:inherit;text-underline-offset:3px;text-decoration-color:var(--rule)}a:hover{text-decoration-color:var(--forest)}#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#markers{pointer-events:none;margin:0;padding:0;list-style:none;position:fixed;inset:0}header{z-index:5;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px clamp(16px,3vw,36px);display:flex;position:fixed;top:0;left:0;right:0}header>*{pointer-events:auto}h1{font-family:var(--serif);letter-spacing:-.01em;margin:0 0 6px;font-size:28px;font-weight:400;line-height:1.1}.intro{max-width:25em;color:var(--muted);margin:0;font-size:14.5px}.intro em{font-family:var(--serif);color:var(--forest);font-size:1.08em}nav{gap:18px;padding-top:6px;font-size:14px;display:flex}nav a{color:var(--muted);text-decoration:none}nav a:hover{color:var(--ink)}.now{z-index:5;pointer-events:none;position:fixed;bottom:74px;left:clamp(16px,3vw,36px)}.now .year{font-family:var(--serif);color:var(--forest);letter-spacing:-.02em;font-size:64px;font-weight:300;line-height:1}.now .sub{color:var(--ink);max-width:18em;margin-top:4px;font-size:14px}.timeline{z-index:5;background:#f4f1e8f0;border:1px solid #17201b14;border-radius:12px;width:min(720px,100vw - 32px);padding:10px 16px 8px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.track{cursor:pointer;touch-action:none;height:22px;position:relative}.track .line{background:var(--rule);border-radius:2px;height:2px;position:absolute;top:10px;left:0;right:0}.track .fill{background:var(--forest);border-radius:2px;width:0;height:2px;position:absolute;top:10px;left:0}.track .thumb{background:var(--forest);border-radius:50%;width:14px;height:14px;margin-left:-7px;position:absolute;top:4px;box-shadow:0 0 0 4px #1f5c3a26}.ticks{justify-content:space-between;margin-top:2px;display:flex}.ticks button{all:unset;cursor:pointer;font-family:var(--mono);color:var(--muted);white-space:nowrap;justify-content:center;width:0;font-size:11px;display:flex}.ticks button.reached{color:var(--ink)}.ticks button:focus-visible{outline:2px solid var(--leaf);outline-offset:3px}.hint{z-index:5;font-family:var(--mono);color:var(--muted);text-align:right;font-size:11.5px;position:fixed;bottom:32px;right:clamp(16px,3vw,36px)}.hint button{all:unset;cursor:pointer;color:var(--forest);text-underline-offset:3px;text-decoration:underline}.m{pointer-events:auto;cursor:pointer;left:calc((var(--ox) + var(--x) * var(--s)) * 1px);top:calc((var(--oy) + var(--y) * var(--s)) * 1px);font:inherit;color:inherit;opacity:0;background:0 0;border:0;padding:0;transition:transform .45s cubic-bezier(.34,1.56,.64,1),opacity .3s;position:absolute;transform:translate(-50%,-50%)scale(0)}.m.on{opacity:1;transform:translate(-50%,-50%)scale(1)}.m:focus-visible{outline:none}.m .dot{background:var(--paper);border:2.5px solid var(--ink);border-radius:50%;width:14px;height:14px;transition:transform .2s;display:block;box-shadow:0 1px 3px #0000004d}.m.role .dot{border-color:var(--paper);background:var(--forest)}.m.root .dot{border-color:var(--paper);background:var(--bark)}.m .lbl{white-space:nowrap;color:var(--ink);background:#f4f1e8ed;border-radius:20px;padding:2px 9px;font-size:12.5px;font-weight:500;transition:background .2s,color .2s;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 1px 4px #0000002e}.m.r .lbl{left:20px}.m.l .lbl{right:20px}.m:hover .dot,.m:focus-visible .dot,.m.active .dot{transform:scale(1.3)}.m:hover .lbl,.m:focus-visible .lbl,.m.active .lbl{background:var(--ink);color:var(--paper)}.m.apple{width:24px;height:24px}.m.apple .fruit{background:radial-gradient(circle at 34% 30%, #ff8a7a 0%, #e0453a 28%, var(--apple) 55%, #7f1814 100%);border-radius:50% 50% 46% 46%;transition:transform .2s;position:absolute;inset:0;box-shadow:0 2px 4px #00000059}.m.apple .fruit:before{content:"";background:#4a3828;border-radius:2px;width:2.5px;height:9px;position:absolute;top:-6px;left:11px;transform:rotate(8deg)}.m.apple .fruit:after{content:"";background:#3f9d63;border-radius:0 10px;width:10px;height:5px;position:absolute;top:-7px;left:13px;transform:rotate(-18deg)}.m.apple:hover .fruit,.m.apple:focus-visible .fruit,.m.apple.active .fruit{transform:scale(1.2)}.m.bud .budshape{border:2px dashed var(--forest);background:#8cc49a;border-radius:50%/65% 65% 35% 35%;width:16px;height:24px;display:block}#tip{z-index:10;border-top:4px solid var(--forest);opacity:0;pointer-events:none;background:#fbf9f2;border-radius:12px;width:330px;max-width:calc(100vw - 32px);padding:16px 18px 14px;transition:opacity .18s,transform .18s;position:fixed;transform:translateY(6px);box-shadow:0 10px 40px #17201b38,0 1px 3px #17201b26}#tip.show{opacity:1;pointer-events:auto;transform:none}#tip.apple{border-top-color:var(--apple)}#tip.root{border-top-color:var(--bark)}#tip.edu{border-top-color:var(--ink)}#tip .kind{font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:11px}#tip.apple .kind{color:var(--apple)}#tip h3{font-family:var(--serif);margin:4px 0 2px;font-size:21px;font-weight:400;line-height:1.2}#tip .meta{color:var(--muted);margin-bottom:8px;font-size:13px}#tip p{margin:0 0 6px}#tip ul{margin:4px 0 0;padding-left:18px}#tip li{margin:3px 0}#tip li::marker{color:var(--leaf)}.legal{z-index:5;font-family:var(--mono);color:var(--muted);font-size:11px;line-height:1;position:fixed;bottom:6px;right:clamp(16px,3vw,36px)}.legal a{text-decoration:none}.legal a:hover{color:var(--ink)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1240px){.hint{bottom:96px}}@media (width<=760px){header{flex-direction:column;gap:6px;padding:14px 16px}h1{font-size:22px}.intro{font-size:13px}nav{gap:14px;padding:0;font-size:13px}.now{bottom:84px}.now .year{font-size:40px}.now .sub{font-size:12.5px}.hint,.m .lbl{display:none}.m.active .lbl{display:block}#tip{width:auto;bottom:16px;right:16px;top:auto!important;left:16px!important}}@media (prefers-reduced-motion:reduce){.m,#tip{transition:none}}
