:root{--void:#070605;--laterite:#c45c32;--laterite-soft:#e8c4a8;--steel:#c5ced6;--steel-dim:#8b97a2;--weld:#ff4e1a;--paper:#ead8c6;--olive:#6d7c3c;--olive-deep:#0c110c}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--void);min-height:100%;color:var(--paper)}html{cursor:crosshair;overscroll-behavior-y:none}html:not(.booting){scroll-snap-type:y mandatory}html.booting,html.booting body{height:100%;overflow:hidden}body{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}a{color:inherit}.scroll-track{pointer-events:none}.snap-frame{scroll-snap-align:start;scroll-snap-stop:always;height:100dvh}.canvas-root{z-index:0;position:fixed;inset:0}.canvas-root canvas{cursor:grab}.canvas-root canvas:active{cursor:grabbing}.overlay{z-index:2;pointer-events:none;opacity:0;transition:opacity .8s;position:fixed;inset:0}.overlay--live{opacity:1}.mark{letter-spacing:.22em;text-transform:lowercase;color:var(--steel-dim);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;position:absolute;top:1.4rem;left:1.5rem}.beat{transition:opacity .2s linear;position:absolute;inset:0}.voice{max-width:14ch;position:absolute}.voice--curator{max-width:16ch;color:var(--laterite-soft);letter-spacing:.01em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:clamp(1.15rem,2.6vw,1.85rem);font-weight:400;line-height:1.25;bottom:18vh;left:7vw}.voice--architect{text-align:right;max-width:18ch;color:var(--steel);letter-spacing:.06em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:clamp(.78rem,1.35vw,.95rem);line-height:1.45;top:16vh;right:7vw}.work{background:color-mix(in srgb, var(--olive-deep) 78%, transparent);pointer-events:none;position:absolute;inset:0}.work__index{letter-spacing:.28em;color:var(--olive);margin-bottom:.55rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.68rem}.work__leaf{opacity:.9;width:min(18vw,140px);height:auto;position:absolute;top:50%;right:8vw;transform:translateY(-54%)}.work__copy{max-width:22rem;position:absolute;top:42%;left:7vw;transform:translateY(-50%)}.work__name{letter-spacing:.12em;color:#cfd6b4;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:clamp(1.6rem,4.2vw,2.8rem);font-weight:400}.work__line{letter-spacing:.14em;color:#8a9370;margin-top:.7rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;line-height:1.5}.work__link{letter-spacing:.1em;color:var(--steel);border-bottom:1px solid #6d7c3c99;margin-top:1.4rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem;text-decoration:none;display:inline-block}.work__link:hover{color:#cfd6b4}.work .voice--curator,.work .voice--architect{max-width:18ch}@media (width<=720px){.work__leaf{width:72px;top:28%;right:6vw;transform:none}.work__copy{max-width:none;inset:auto 6vw 28vh;transform:none}}.hint{letter-spacing:.28em;text-transform:lowercase;color:#5c5854;white-space:nowrap;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.62rem;position:absolute;bottom:1.6rem;left:50%;transform:translate(-50%)}.plaque{text-align:center;width:min(28rem,86vw);position:absolute;bottom:8vh;left:50%;transform:translate(-50%)}.plaque__pair{justify-content:space-between;gap:2rem;margin-bottom:1.6rem;display:flex}.plaque__pair-end{text-align:right}.plaque__name{letter-spacing:.08em;color:var(--paper);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:clamp(1rem,2.2vw,1.25rem);font-weight:400}.plaque__pair>div:first-child .plaque__name{color:var(--laterite-soft)}.plaque__pair-end .plaque__name{color:var(--steel)}.plaque__role{letter-spacing:.22em;color:var(--steel-dim);margin-top:.25rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.68rem}.plaque__mail{pointer-events:auto;letter-spacing:.08em;color:var(--steel);border-bottom:1px solid #ff4e1a66;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem;text-decoration:none;display:inline-block}.plaque__mail:hover{color:var(--weld)}.plaque__where{letter-spacing:.28em;color:#6a6560;margin-top:.55rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.62rem}.boot{z-index:4;background:var(--void);cursor:crosshair;border:0;flex-direction:column;justify-content:center;align-items:center;gap:.85rem;transition:opacity .9s,visibility .9s;display:flex;position:fixed;inset:0}.boot--done{opacity:0;visibility:hidden;pointer-events:none}.boot__line{opacity:0;animation:.9s forwards boot-in}.boot__line--a{letter-spacing:.28em;color:var(--steel);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem}.boot__line--b{letter-spacing:.18em;color:var(--laterite-soft);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:clamp(1.1rem,2.8vw,1.7rem);font-weight:400;animation-delay:.55s}.boot__line--c{letter-spacing:.32em;color:#6a6560;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.68rem;animation-delay:1.15s}.boot__line--d{letter-spacing:.28em;color:#3f3c3a;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.58rem;animation-delay:1.9s;position:absolute;bottom:1.8rem}@keyframes boot-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.grain{z-index:5;pointer-events:none;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}.fallback-mass{z-index:0;background:radial-gradient(circle at 42% 40%,#c45c32,#3a140c 72%);border-radius:50%;width:min(52vmin,380px);height:min(52vmin,380px);position:fixed;top:46%;left:50%;transform:translate(-50%,-50%);box-shadow:0 40px 80px #000c}.fallback-mass:after{content:"";clip-path:polygon(50% 0%,100% 38%,82% 100%,18% 100%,0% 38%);border:2px solid #c5ced6;position:absolute;inset:-8%;box-shadow:inset 0 0 0 1px #c5ced644}@media (width<=720px){.voice--curator{max-width:none;font-size:clamp(1.05rem,4.6vw,1.45rem);bottom:14vh;left:6vw;right:18vw}.voice--architect{max-width:none;top:12vh;left:20vw;right:6vw}.plaque{bottom:6vh}}@media (prefers-reduced-motion:reduce){.boot__line{opacity:1;animation:none}.overlay,.boot{transition:none}}
