:root{--black:#000;--text:#dfe6df;--dim:#8e9a8e;--faint:#4f5a4f;--green:#5fa36a;--panel:#000000b8;--line:#263026;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", sans-serif;--slow:2.4s}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--black);height:100%;color:var(--text);margin:0;overflow:hidden}body{font:16px/1.5 var(--sans);-webkit-font-smoothing:antialiased}#forest{background:var(--black);width:100%;height:100%;display:block;position:fixed;inset:0}body.inside{cursor:none}body.inside.moving{cursor:default}.threshold{text-align:center;transition:opacity var(--slow) ease;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:24px 16px;display:flex;position:fixed;inset:0}.threshold.gone{opacity:0;pointer-events:none}.title{font:400 clamp(22px, 4vw, 34px)/1.25 var(--serif);letter-spacing:.02em;margin:0}.title .name{font:inherit;color:var(--text);white-space:nowrap;cursor:pointer;opacity:.5;background:0 0;border:0;border-radius:4px;margin:0;padding:0 2px;transition:opacity .9s}.title .name.active,.title .name:hover{opacity:1}.title .name:focus-visible{outline:2px solid var(--green);outline-offset:3px;opacity:1}.title .dot{color:var(--faint)}.swap{transition:opacity .5s}.swap.fading{opacity:0}.credit{color:var(--faint);margin:8px 0 0;font-size:12px}.creditsOpen{font:inherit;color:var(--dim);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:6px 2px;text-decoration:underline}.creditsOpen:hover,.creditsOpen:focus-visible{color:var(--text);outline:none}.creditsOpen:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:2px}.credits{max-width:min(34em,100% - 32px);max-height:calc(100% - 48px);color:var(--text);border:1px solid var(--line);background:#050605;border-radius:8px;padding:24px 24px 20px;overflow:auto}.credits::backdrop{background:#000000c7}.credits h2{font:400 18px/1.3 var(--serif);margin:0 0 14px}.credits p{color:var(--dim);margin:0 0 10px;font-size:14px;line-height:1.55}.credits p strong{color:var(--text);font-weight:500}.credits a{color:var(--text);text-underline-offset:3px}.credits a:focus-visible,.creditsClose:focus-visible{outline:2px solid var(--green);outline-offset:2px}.creditsClose{font:inherit;color:var(--text);border:1px solid var(--faint);cursor:pointer;background:0 0;border-radius:999px;min-height:40px;margin-top:8px;padding:8px 18px;font-size:14px}.line{color:var(--dim);margin:0;font-size:15px}.enter{font:inherit;letter-spacing:.12em;text-transform:lowercase;color:var(--text);border:1px solid var(--faint);cursor:pointer;background:0 0;border-radius:999px;min-height:44px;padding:12px 28px;font-size:15px;transition:border-color .6s,color .6s}.enter:hover,.enter:focus-visible{border-color:var(--green);color:#fff;outline:none}.enter:focus-visible{box-shadow:0 0 0 3px #5fa36a59}.hint{color:var(--dim);letter-spacing:.04em;margin:0;font-size:12px}.line,.hint{text-wrap:balance}.hint .keys{flex-wrap:wrap;justify-content:center;gap:4px 14px;margin-bottom:6px;display:flex}.hint .key{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.hint .key svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.noscript{color:var(--dim);max-width:34em;margin:0}.fragment{text-align:center;pointer-events:none;opacity:0;width:min(40em,100% - 32px);font:italic 400 clamp(17px, 2.1vw, 22px)/1.45 var(--serif);color:var(--text);text-shadow:0 0 18px #000000e6,0 0 3px #000c;margin:0;transition:opacity 4s;position:fixed;bottom:9vh;left:50%;transform:translate(-50%)}.fragment.shown{opacity:.92}.fragment small{font:400 13px/1.4 var(--sans);color:var(--dim);letter-spacing:.02em;margin-top:8px;font-style:normal;display:block}.turn{top:env(safe-area-inset-top,0);z-index:4;pointer-events:none;opacity:.32;height:2px;transition:opacity .9s;position:fixed;left:0;right:0}.turn span{background:var(--green);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.turn.dark{opacity:0}body.moving .turn:not(.dark){opacity:.75}.controls{right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));z-index:5;opacity:0;pointer-events:none;gap:4px;transition:opacity .9s;display:flex;position:fixed}body.moving .controls,.controls:hover{opacity:.85;pointer-events:auto}.controls:has(.ctl:focus-visible){opacity:.85;pointer-events:auto}.ctl{cursor:pointer;width:44px;height:44px;color:var(--text);background:#00000059;border:1px solid #0000;border-radius:999px;place-items:center;padding:0;transition:border-color .4s,background .4s;display:grid}.ctl:hover{border-color:var(--faint);background:#0009}.ctl:focus-visible{outline:2px solid var(--green);outline-offset:2px}.ctl svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.trace{opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px 16px;transition:opacity 3s;display:flex;position:fixed;inset:0;overflow:auto}.trace.shown{opacity:1}.joiner{max-width:100%;height:auto;max-height:72vh;display:block}.traceText{color:var(--dim);text-align:center;font:400 14px/1.6 var(--sans);max-width:40em;margin:0}.traceText em{font-family:var(--serif);color:var(--text);font-size:16px}.traceLinks{flex-wrap:wrap;justify-content:center;gap:8px 20px;display:flex}.traceLinks a{color:var(--text);border-bottom:1px solid var(--faint);padding:10px 2px;font-size:14px;text-decoration:none}.traceLinks a:hover,.traceLinks a:focus-visible{border-color:var(--green);outline:none}.traceLinks a:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:2px}.inspect{z-index:10;background:var(--panel);max-width:min(560px,100% - 16px);max-height:60vh;color:var(--text);border:1px solid var(--line);white-space:pre-wrap;pointer-events:auto;cursor:default;border-radius:6px;margin:0;padding:10px 12px;font:11px/1.45 ui-monospace,SF Mono,Menlo,monospace;position:fixed;top:8px;left:8px;overflow:auto}@media (prefers-reduced-motion:reduce){.threshold,.fragment,.trace{transition-duration:1.2s}.swap,.title .name{transition-duration:1ms}.controls{transition-duration:.2s}}body.reduced .threshold,body.reduced .fragment,body.reduced .trace{transition-duration:1.2s}
