*,*:before,*:after{box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.4;font-weight:400;color-scheme:dark;color:#fafafa;background-color:#0d0d0d;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{margin:0;padding:0;min-height:100vh}body{display:block}#root{width:100%;min-height:100vh}:root{--paper: #f6f6f2;--ink: #1c1c1a;--muted: #6b6b63;--accent: #b4531f;--rule: #d9d9d0;--mono: "SF Mono", Monaco, "Inconsolata", "Fira Mono", "Droid Sans Mono", monospace;--canvas-dark: #101c10;color-scheme:dark}.page{--dock-dur: 1.5s;--dock-ease: cubic-bezier(.16, 1, .3, 1);--dock-delay: .6s;--radius-dur: .2s;--radius-ease: cubic-bezier(.33, 1, .68, 1);--notch-w: clamp(220px, 32vw, 400px);--notch-h: clamp(48px, 7vh, 82px);--notch-radius: 28px;--reveal-top: clamp(1.25rem, 3vh, 2.5rem);position:relative;min-height:100vh;background:var(--paper)}html,body{background:var(--paper)}::selection{background:#ffc74d;color:#1c1c1a}.canvas-frame{position:fixed;top:0;left:50%;width:100vw;height:100vh;z-index:20;overflow:hidden;transform:translate(-50%) translateY(0);border-radius:0;box-shadow:0 0 #14120a00;background:linear-gradient(180deg,#101c10,#372512,#1b3640);transition:transform var(--dock-dur) var(--dock-ease),width var(--dock-dur) var(--dock-ease),border-radius var(--radius-dur) var(--radius-ease),box-shadow var(--dock-dur) ease;will-change:transform,width}.page.is-docked .canvas-frame{width:var(--notch-w);transform:translate(-50%) translateY(calc(-100vh + var(--notch-h)));border-radius:0 0 var(--notch-radius) var(--notch-radius);box-shadow:0 14px 34px -12px #14120a6b,0 0 0 1px #14120a0f;cursor:pointer;transition:transform var(--dock-dur) var(--dock-ease) var(--dock-delay),width var(--dock-dur) var(--dock-ease) var(--dock-delay),border-radius var(--radius-dur) var(--radius-ease) var(--dock-delay),box-shadow var(--dock-dur) ease var(--dock-delay)}.page.is-docked .ascii-canvas{cursor:pointer}.page.is-docked .hero-links{pointer-events:none}.ascii-fullscreen{position:absolute;inset:0;width:100%;height:100%;z-index:1}.ascii-flow-container{width:100%;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center}.ascii-canvas{width:100%;height:100%;display:block;object-fit:cover;cursor:crosshair;touch-action:pan-y}.title-overlay{position:absolute;bottom:0;left:0;z-index:10;padding:clamp(1rem,3vw,2rem);pointer-events:none;transition:opacity .5s ease,transform .7s var(--dock-ease)}.page.is-docked .title-overlay{opacity:0;transform:translateY(-24px);transition:opacity .5s ease var(--dock-delay),transform .7s var(--dock-ease) var(--dock-delay)}.giant-title{font-family:"Instrument Serif",serif;font-size:25vw;font-weight:400;font-style:normal;line-height:.85;letter-spacing:-.03em;margin:0;color:#ffffff14;text-transform:lowercase;-webkit-user-select:none;user-select:none;white-space:nowrap}.hero-links{display:flex;gap:clamp(1rem,2.5vw,1.75rem);margin-top:.85em;pointer-events:auto}.hero-link{font-family:var(--mono);font-size:clamp(.72rem,1.2vw,.95rem);letter-spacing:.02em;color:#ffffff6b;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:2px;transition:color .2s ease,border-color .2s ease}.hero-link:hover{color:#ffffffe6;border-color:#ffffff8c}.canvas-cta{position:fixed;top:clamp(1.5rem,4vh,2.6rem);right:clamp(1.25rem,4vw,2.75rem);z-index:25;display:flex;flex-direction:column;align-items:flex-end;gap:.7rem;font-family:var(--mono);font-size:clamp(.72rem,1.1vw,.92rem);letter-spacing:.02em;opacity:0;pointer-events:none;transition:opacity .4s ease}.canvas-cta.is-visible{opacity:1;pointer-events:auto;transition:opacity .5s ease var(--dock-delay)}.canvas-cta a{color:var(--accent);text-decoration:none;border-bottom:1px dotted currentColor;padding-bottom:2px;transition:opacity .2s ease}.canvas-cta a:hover{opacity:.6}.hero-spacer{height:100vh}.reveal{position:relative;z-index:5;min-height:100vh;background:var(--paper);color:var(--ink);padding:var(--reveal-top) clamp(1.25rem,5vw,3rem) clamp(4rem,12vh,8rem)}.reveal-inner{max-width:68ch;margin:0 auto;font-family:var(--mono)}.reveal-lede{margin:0 0 clamp(2.75rem,8vh,5.5rem);font-size:clamp(1.05rem,2.2vw,1.45rem);line-height:1.65;color:var(--ink)}.reveal-links{display:flex;flex-wrap:wrap;gap:clamp(1rem,3vw,2.25rem);padding-top:1.5rem;border-top:1px dashed var(--rule);font-size:.9rem}.reveal-links a{color:var(--ink);text-decoration:none;border-bottom:1px dotted currentColor;padding-bottom:2px;transition:color .2s ease}.reveal-links a:hover{color:var(--accent)}@media(max-width:640px){.page{--notch-w: clamp(180px, 62vw, 300px);--notch-h: clamp(42px, 6vh, 64px);--notch-radius: 22px}.title-overlay{padding:1rem 1rem 2rem}.giant-title{font-size:20vw;white-space:normal}}@media(prefers-reduced-motion:reduce){.canvas-frame,.title-overlay{transition-duration:.01ms}}
