@font-face{font-family:'Atkinson Hyperlegible';src:url(/fonts/AtkinsonHyperlegible-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Atkinson Hyperlegible';src:url(/fonts/AtkinsonHyperlegible-Bold.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Atkinson Hyperlegible';src:url(/fonts/AtkinsonHyperlegible-Italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}
:root{color-scheme:light dark;--bg:#efece1;--ink:#182220;--muted:#5f6a5e;--line:rgba(24,34,32,.16);--soft:#e2ddcf;--paper:rgba(255,255,255,.34);--re:#c8402a;--im:#24519e;--radius:3px}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);color:var(--ink);font-family:'Atkinson Hyperlegible',ui-sans-serif,system-ui,sans-serif}body{margin:0;overflow-x:hidden}a{color:inherit}.skip{position:fixed;z-index:20;top:.5rem;left:.5rem;padding:.65rem 1rem;border-radius:var(--radius);background:var(--ink);color:var(--bg);transform:translateY(-150%)}.skip:focus{transform:none}.nav,main,footer{width:min(78rem,calc(100% - 3rem));margin-inline:auto}.nav{height:5rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.brand{font-size:1.05rem;font-weight:700;letter-spacing:-.01em;text-decoration:none}.brand .dot{color:var(--re)}.nav nav{display:flex;align-items:center;gap:clamp(1rem,3vw,2.25rem)}.nav nav a{font-size:.83rem;text-decoration:none}.external{display:flex;gap:.3rem;align-items:center}.nav a:hover,.nav a:focus-visible,.project a:hover,.project a:focus-visible{text-decoration:underline;text-decoration-color:var(--re);text-underline-offset:.3rem}:focus-visible{outline:2px solid var(--re);outline-offset:5px}
main{padding-bottom:4rem}.hero{min-height:min(46rem,calc(100vh - 5rem));display:grid;grid-template-columns:minmax(0,1.2fr) minmax(19rem,.8fr);align-items:center;gap:clamp(2rem,8vw,8rem);padding:clamp(5rem,10vw,9rem) 0}.eyebrow{display:flex;align-items:center;gap:.65rem;margin:0 0 1.6rem;color:var(--muted);font:700 .7rem/1.2 'JetBrains Mono',ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.13em;text-transform:uppercase}.eyebrow span{width:1.9rem;height:2px;background:var(--re)}h1,h2,h3,p{margin-top:0}h1{margin-bottom:2rem;font-weight:700;font-size:clamp(3.6rem,8.6vw,7.25rem);line-height:.87;letter-spacing:-.03em}h1 em{color:var(--re);font-style:normal}.lede{max-width:42rem;margin-bottom:2rem;color:var(--muted);font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.55;letter-spacing:-.005em}.actions{display:flex;flex-wrap:wrap;gap:.75rem}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-width:11rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:var(--radius);font-size:.78rem;font-weight:700;text-decoration:none}.button:hover,.button:focus-visible{border-color:var(--re)}.button.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.plane{margin:0;text-align:right}.plane svg{width:100%;height:auto;display:block;overflow:visible}.plane .ring{fill:none;stroke:var(--line);stroke-width:1;stroke-dasharray:2 6}.plane .axis-re,.plane .axis-im{stroke:var(--ink);stroke-width:1.4}.plane polygon.axis-re,.plane polygon.axis-im{fill:var(--ink);stroke:none}.plane .tick{stroke:var(--muted);stroke-width:1.4}.plane .drop{stroke:var(--muted);stroke-width:1;stroke-dasharray:1 4}.plane .vector{stroke:var(--im);stroke-width:2}.plane .arc{fill:none;stroke:var(--im);stroke-width:1.2}.plane .point{fill:var(--re)}.plane .glow{fill:var(--re);opacity:.16}.plane .label{fill:var(--muted);font:700 .62rem/1 'JetBrains Mono',ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em}.plane .label.axis{fill:var(--ink);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.plane .label.pt{fill:var(--im);font-style:italic;font-family:Georgia,'Times New Roman',serif;font-size:1rem;letter-spacing:0}.plane figcaption{margin-top:1rem;color:var(--muted);font:700 .64rem/1.2 'JetBrains Mono',ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase}.plane .pulse{animation:pulse 6s ease-in-out infinite}@keyframes pulse{0%,100%{opacity:.1;r:10}50%{opacity:.28;r:14}}
.work,.doctrine{padding-top:clamp(6rem,12vw,10rem)}.section-label{display:grid;grid-template-columns:1fr 2fr;gap:2rem;padding-bottom:2.5rem;border-bottom:1px solid var(--line)}.section-label>p{color:var(--re);font:700 .68rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase}.section-label h2{margin:0;font-weight:700;font-size:clamp(2.5rem,5.5vw,4.75rem);line-height:.95;letter-spacing:-.025em}.feature{margin-top:1rem;min-height:31rem;padding:clamp(1.5rem,4vw,3rem);border-radius:var(--radius);display:flex;flex-direction:column;justify-content:space-between;background:var(--ink);color:var(--bg);position:relative;overflow:hidden}.feature:after{content:"";position:absolute;width:min(38rem,65vw);aspect-ratio:1;right:-14%;top:-40%;border:1px solid color-mix(in srgb,var(--bg) 18%,transparent);border-radius:50%;box-shadow:0 0 0 5rem color-mix(in srgb,var(--bg) 3%,transparent),0 0 0 10rem color-mix(in srgb,var(--bg) 2%,transparent)}
.feature-top{display:flex;justify-content:space-between;position:relative;z-index:1;font:700 .67rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}.status{display:flex;align-items:center;gap:.55rem}.status i{width:.46rem;height:.46rem;border-radius:50%;background:var(--re)}.index{opacity:.6}.feature-copy{position:relative;z-index:1;max-width:47rem}.kicker{color:var(--re);font:700 .68rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase}.feature h3{margin-bottom:1rem;font-weight:700;font-size:clamp(2.75rem,6.2vw,5.25rem);line-height:.95;letter-spacing:-.02em}.feature-copy>p:last-child{max-width:42rem;color:color-mix(in srgb,var(--bg) 70%,transparent);font-size:1.08rem;line-height:1.55}.attributes{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:.5rem;margin:2rem 0 0;padding:0;list-style:none}.attributes li{padding:.55rem .7rem;border:1px solid color-mix(in srgb,var(--bg) 22%,transparent);border-radius:var(--radius);font-size:.69rem;text-transform:uppercase;letter-spacing:.06em}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:1px;background:var(--line)}.project{display:flex;flex-direction:column;min-height:25rem;padding:1.5rem;background:var(--bg)}.project-meta{display:flex;justify-content:space-between;color:var(--muted);font:700 .65rem/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}.project h3{margin:clamp(5rem,9vw,8rem) 0 1rem;font-weight:700;font-size:clamp(1.6rem,2.8vw,2.35rem);letter-spacing:-.015em}.project>p:not(.availability){color:var(--muted);line-height:1.55}.availability,.project>a{margin:auto 0 0;padding-top:1rem;border-top:1px solid var(--line);font-size:.72rem;font-weight:700;text-decoration:none;text-transform:uppercase;letter-spacing:.05em}.availability{color:var(--muted)}.project>a{display:flex;justify-content:space-between}.project-linked{background:var(--soft)}
.doctrine{display:grid;grid-template-columns:1fr 2fr;gap:clamp(2rem,8vw,8rem)}.doctrine .section-label{display:block;border:0}.doctrine .section-label>p{margin-bottom:2rem}.doctrine .section-label h2{font-size:clamp(2.5rem,4.6vw,4.25rem)}.principles{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.principles li{display:grid;grid-template-columns:3rem 1fr;gap:1rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}.principles li>span{color:var(--re);font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:1.6rem;line-height:1}.principles li:nth-child(2n)>span{color:var(--im)}.principles h3{margin-bottom:.45rem;font-weight:700;font-size:1.15rem}.principles p{margin-bottom:0;color:var(--muted);line-height:1.5}.boundary{margin-top:clamp(6rem,12vw,10rem);padding:clamp(2rem,5vw,4rem);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.boundary .eyebrow{margin-bottom:2rem}.boundary>p:last-child{max-width:52rem;margin:0;font-size:clamp(1.3rem,2.8vw,2.1rem);line-height:1.3;letter-spacing:-.015em}
footer{display:grid;grid-template-columns:1fr 2fr 1fr;gap:1rem;align-items:center;padding:2rem 0;border-top:1px solid var(--line);color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}footer .brand{text-transform:none}footer p{margin:0}footer p:last-child{text-align:right}.not-found{min-height:calc(100vh - 5rem);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:4rem 0}.not-found h1{margin-bottom:2rem}.not-found .lede{max-width:34rem}
@media(max-width:48rem){.nav,main,footer{width:min(100% - 2rem,78rem)}.nav nav>a:not(.external){display:none}.hero{min-height:auto;grid-template-columns:1fr;padding:5rem 0}.plane{width:min(19rem,78vw);margin:1rem auto;text-align:center}.section-label,.doctrine{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr}.project{min-height:20rem}.project h3{margin-top:4rem}.doctrine{gap:0}footer{grid-template-columns:1fr;align-items:start}footer p:last-child{text-align:left}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.plane .pulse{animation:none;opacity:.16;r:12}}@media(prefers-color-scheme:dark){:root{--bg:#10151a;--ink:#eef1ea;--muted:#9aa39a;--line:rgba(238,241,233,.16);--soft:#1a2226;--paper:rgba(255,255,255,.025);--re:#ff7a52;--im:#6f9dff}}
.page{max-width:52rem;min-height:calc(100vh - 10rem);padding:clamp(5rem,10vw,9rem) 0}.page h1{font-weight:700;font-size:clamp(3rem,7vw,5.75rem);line-height:.92}.prose{margin-top:3rem;color:var(--muted);font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.7}.prose h2,.prose h3,.prose h4{margin:2.5rem 0 .8rem;color:var(--ink);letter-spacing:-.02em}.prose a{text-decoration-color:var(--re);text-underline-offset:.25rem}.prose blockquote{margin:2rem 0;padding-left:1.25rem;border-left:2px solid var(--re)}.prose code{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Consolas,monospace}.prose pre{overflow:auto;padding:1rem;border-radius:var(--radius);background:var(--ink);color:var(--bg)}
