:root{color-scheme:dark;--bg:oklch(41.76% .1598 29.23);--surface:oklch(22% .052 19);--paper:oklch(95% .016 73);--white:var(--paper);--bg1:var(--accent);--accent:oklch(84.71% .0666 89.52);--muted:color-mix(in oklch, var(--paper) 70%, var(--bg));--line:color-mix(in oklch, var(--paper) 23%, transparent);--line-strong:color-mix(in oklch, var(--paper) 55%, transparent);--font:"Times New Roman", Times, serif;--space:clamp(22px, 3.2vw, 52px);font-family:var(--font);color:var(--paper);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-block-start:24px}body{-webkit-font-smoothing:antialiased;background-image:linear-gradient(color-mix(in oklch, var(--paper) 20%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in oklch, var(--paper) 20%, transparent) 1px, transparent 1px), linear-gradient(color-mix(in oklch, var(--paper) 40%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in oklch, var(--paper) 40%, transparent) 1px, transparent 1px);background-size:24px 24px,24px 24px,120px 120px,120px 120px;min-width:320px;min-height:100vh;margin:0}:where(h1,h2,h3,p){margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit;cursor:pointer;background:0 0;border:0}:where(a,button,summary){touch-action:manipulation;-webkit-tap-highlight-color:transparent}::selection{color:var(--bg);background:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.site-shell{width:min(100% - 44px,1320px);padding-inline:var(--space);border:1px solid var(--line-strong);background:color-mix(in oklch, var(--bg) 70%, transparent);margin:22px auto;position:relative}.site-shell:before,.site-shell:after{content:"+";pointer-events:none;color:var(--accent);font:24px/1 var(--font);position:absolute}.site-shell:before{inset:-14px auto auto -8px}.site-shell:after{inset:auto -8px -11px auto}.site-header,nav,.page-label,.section-header,.hero-bottom,.project-meta,.figure-caption,.art-top,.art-bottom,.terminal-title,footer{justify-content:space-between;align-items:center;gap:16px;display:flex}.site-header{border-bottom:1px solid var(--line-strong);min-height:88px}.identity{letter-spacing:-.04em;white-space:nowrap;font-size:30px}nav{gap:clamp(10px,2vw,28px);font-size:18px}nav a{align-items:center;min-height:44px;display:inline-flex}nav a:last-child{color:var(--accent)}.hero{padding-block:clamp(45px,8vw,120px) 0}.hero-content{gap:32px;display:grid}.hero-content:has(.classifier){grid-template-columns:minmax(0,1fr) minmax(0,.95fr);align-items:center}.hero-content:has(.classifier) h1{font-size:clamp(50px,6vw,84px)}.eyebrow,.page-label,.project-meta,.section-note,.tech-list,.build-note>span,.figure-caption,.note-num,.experiment-list small,.art-top,.art-bottom,footer{font-size:18px}.eyebrow{color:var(--accent)}h1{letter-spacing:-.075em;text-wrap:balance;max-width:950px;margin-block:18px 22px;font-size:clamp(64px,10vw,136px);font-weight:400;line-height:.93}.hero-content p:not(.eyebrow){max-width:59ch;color:var(--paper);text-wrap:pretty;font-size:clamp(17px,1.6vw,21px);line-height:1.55}.hero-content p.intro-note{color:var(--muted);margin-top:15px;font-size:clamp(14px,1.25vw,18px)}.primary-link,.email-link{border-bottom:1px solid var(--accent);justify-content:space-between;align-items:center;gap:50px;min-height:44px;display:inline-flex}.primary-link{color:var(--accent);margin-top:28px;padding:10px;font-size:20px}.hero-bottom{border-top:1px solid var(--line);color:var(--muted);letter-spacing:.06em;margin-top:clamp(55px,8vw,112px);padding-block:14px;font-size:11px}.hero-bottom a{min-height:44px;color:var(--paper);align-items:center;display:inline-flex}main>section:not(.hero){border-top:1px solid var(--line-strong);margin-top:clamp(65px,8vw,116px);padding-top:22px}.section-header{align-items:baseline;padding-bottom:clamp(25px,4vw,52px)}.section-header h2{letter-spacing:-.05em;font-size:clamp(30px,4vw,49px);font-weight:400;line-height:1.1}.section-header h2 span{color:var(--accent);letter-spacing:0;vertical-align:middle;margin-right:14px;font-size:13px}.section-note{color:var(--muted);white-space:nowrap}.project{border-top:1px solid var(--line);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:clamp(24px,5vw,84px);padding-block:clamp(29px,4.3vw,58px);display:grid}.project-meta{color:var(--muted);flex-wrap:wrap;align-items:flex-start;line-height:1.5}.project-meta time{white-space:nowrap}.project h3{letter-spacing:-.065em;margin-block:24px 17px;font-size:clamp(42px,5.1vw,72px);font-weight:400;line-height:1}.project p{text-wrap:pretty;max-width:57ch;font-size:18px;line-height:1.7}.project .tech-list{color:var(--accent);margin-top:22px;font-size:20px;line-height:1.7}.build-note{border-inline-start:2px solid var(--accent);max-width:54ch;margin-top:30px;padding-inline-start:17px}.build-note>span{color:var(--muted)}.build-note p{color:var(--muted);margin-top:9px;font-size:14px}.case-detail{margin-top:23px}.case-detail summary{cursor:pointer;border-bottom:1px dashed var(--line-strong);align-items:center;gap:28px;min-height:44px;display:inline-flex}.case-detail>p{color:var(--muted);padding-top:16px;font-size:14px}summary{list-style:none}summary::-webkit-details-marker{display:none}.case-detail summary span,.note-toggle{font-size:22px;font-weight:400;transition:transform .18s;display:inline-block}details[open]>summary span:last-child{transform:rotate(45deg)}.project-figure{min-width:0}.project-figure img{border:6px solid var(--accent);width:100%;height:auto;display:block}.project-art{aspect-ratio:1.45;min-width:0;color:var(--paper);background:var(--surface);border:1px solid var(--line-strong);flex-direction:column;display:flex;position:relative;overflow:hidden}.project-art svg{flex:1;width:100%;height:0;display:block}.project-art text{font-family:var(--font)}.art-top,.art-bottom{padding:10px 13px;font-size:9px;line-height:1.5}.art-top{border-bottom:1px solid var(--line)}.art-top>span:last-child,.art-bottom>span:last-child{font-size:12px}.figure-caption{color:var(--muted);align-items:baseline;margin-top:13px;line-height:1.6}.figure-caption span:last-child{text-align:right}.figure-caption strong{color:var(--paper);letter-spacing:-.03em;font-size:17px;font-weight:400}.terminal{flex:1;padding:12px 24px;font-size:10px;line-height:1.8}.terminal-title{margin-bottom:10px;font-size:10px}.terminal .dim{color:var(--muted)}.terminal b{font-weight:500}.terminal-bars{align-items:flex-end;gap:5px;height:48px;margin:12px 0 22px;display:flex}.terminal-bars>div{background:var(--line-strong);flex:1;position:relative}.terminal-bars>div:nth-child(3n){background:var(--accent)}.terminal-bars span{font-size:8px;position:absolute;bottom:-14px}.club{border-top:1px solid var(--line);grid-template-columns:96px minmax(0,1fr) auto;align-items:start;gap:clamp(18px,3vw,40px);padding-block:28px;display:grid}.club-logo{aspect-ratio:1;border:1px dashed var(--line-strong);width:96px;color:var(--muted);place-items:center;font-size:13px;display:grid}.club-logo:has(img){border:0}.club-logo img{object-fit:contain;width:100%;height:100%;display:block}.club-copy{overflow-wrap:anywhere;min-width:0}.club h3{letter-spacing:-.04em;font-size:clamp(30px,3.5vw,44px);font-weight:400;line-height:1.1}.club-role{color:var(--accent);margin-top:9px;font-size:17px}.club-description{text-wrap:pretty;max-width:65ch;margin-top:14px;font-size:18px;line-height:1.7}.club-website,.club-website-placeholder{align-items:center;gap:18px;min-height:44px;padding:9px;font-size:17px;display:inline-flex}.club-website{color:var(--accent);border-bottom:1px solid var(--accent)}.club-website-placeholder{color:var(--muted)}.notes-intro{color:var(--muted);justify-content:space-between;gap:16px;padding-bottom:24px;font-size:16px;display:flex}.experiment-list details{border-top:1px solid var(--line)}.experiment-list summary{cursor:pointer;grid-template-columns:45px minmax(0,1fr) 26px;align-items:baseline;gap:18px;padding-block:24px;font-size:clamp(17px,2vw,23px);display:grid}.note-num{color:var(--accent)}.experiment-list small{color:var(--muted);margin-top:9px;display:block}.note-toggle{justify-self:end}.note-body{max-width:74ch;color:var(--muted);padding:0 36px 28px 63px}.note-body p{text-wrap:pretty;font-size:15px;line-height:1.75}.note-body p+p{margin-top:12px}.note-body code{border-inline-start:1px solid var(--accent);overflow-wrap:anywhere;margin-top:18px;padding-inline-start:14px;font:13px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;display:block}.blog-page{padding-bottom:clamp(65px,8vw,116px)}.blog-list{margin:24px 0 0;padding:0;list-style:none}.blog-list li{border-top:1px solid var(--line);padding-block:28px}.blog-list time,.blog-description{color:var(--muted);line-height:1.7}.blog-list h2{overflow-wrap:anywhere;margin-block:12px;font-size:clamp(28px,4vw,44px);font-weight:400}.blog-list a,.prose a{text-underline-offset:4px;text-decoration:underline}.blog-post{max-width:75ch;margin-inline:auto;padding-bottom:clamp(65px,8vw,116px)}.blog-post header{margin-block:40px}.blog-post h1{overflow-wrap:anywhere;font-size:clamp(42px,7vw,80px);line-height:1.05}.prose{overflow-wrap:anywhere;font-size:18px;line-height:1.8}.prose :where(p,ul,ol,blockquote,pre,table){margin-block:1.25em}.prose :where(h2,h3,h4,h5,h6){margin-block:1.5em .5em;line-height:1.25}.prose img{max-width:100%;height:auto}.prose pre{padding:18px;font-size:14px;overflow-x:auto}.prose table{display:block;overflow-x:auto}.prose :where(th,td){border-bottom:1px solid var(--line);padding:8px 12px}.prose blockquote{border-left:2px solid var(--accent);color:var(--muted);margin-inline:0;padding-left:20px}.blog-empty{color:var(--muted);font-size:18px;line-height:1.7}.about-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:clamp(25px,6vw,90px);padding-bottom:12px;display:grid}.about-lead{letter-spacing:-.045em;text-wrap:balance;max-width:23ch;font-size:clamp(27px,3vw,40px);line-height:1.25}.about-copy p{max-width:67ch;color:var(--muted);margin-bottom:16px;font-size:16px;line-height:1.8}.contact{justify-content:space-between;align-items:center;gap:35px;padding-block:34px 56px;display:flex}.contact h2{letter-spacing:-.06em;margin-block:15px 12px;font-size:clamp(44px,5.5vw,74px);font-weight:400}.contact p{max-width:48ch;color:var(--muted);font-size:15px;line-height:1.7}.contact-actions{flex-direction:column;width:320px;min-width:0;max-width:100%;display:flex}.email-link{width:100%;min-width:0;color:var(--accent);overflow-wrap:anywhere;padding:12px;font-size:17px}.email-link>span{flex-shrink:0}#copy-email{min-height:44px;color:var(--muted);padding:10px;font-size:12px}footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;padding-block:19px}footer a{min-height:44px;color:var(--paper);align-items:center;display:inline-flex}.skip-link{z-index:20;background:var(--paper);color:var(--bg);padding:12px;position:fixed;inset:-100px auto auto 12px}.skip-link:focus{top:12px}.classifier{border:1px solid var(--line-strong);background:var(--surface);min-width:0;padding:18px}.classifier-heading,.classifier-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.classifier-heading h2{font-size:19px;font-weight:400}.classifier-heading>span,#classifier-description,.classifier-stats,.model-description,#classifier-fallback,.classifier noscript p{color:var(--muted);font-size:12px;line-height:1.65}#classifier-description{margin-block:11px}#classifier-canvas{aspect-ratio:1.9;cursor:crosshair;width:100%;height:auto;display:block}.classifier-toolbar{border-top:1px solid var(--line);justify-content:flex-start;padding-top:12px}.classifier button{border:1px solid var(--line-strong);min-height:44px;padding:8px 12px;font-size:12px}.class-picker{gap:5px;margin-right:auto;display:flex}.class-picker button{min-width:44px}.class-picker button[aria-pressed=true]{color:var(--bg);background:var(--paper)}.classifier-stats{min-height:36px;margin-block:12px}.classifier-keyboard summary{cursor:pointer;border-top:1px solid var(--line);justify-content:space-between;align-items:center;min-height:44px;font-size:12px;display:flex}.coordinate-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-block:8px 16px;display:grid}.coordinate-controls label{flex-wrap:wrap;justify-content:space-between;font-size:12px;display:flex}.coordinate-controls input{width:100%;min-height:44px;accent-color:var(--accent)}.coordinate-controls button{grid-column:1/-1;justify-self:start}@media (hover:hover) and (pointer:fine){:where(nav a,.hero-bottom a,footer a):hover{color:var(--accent)}:where(.primary-link,.email-link,.club-website):hover{color:var(--bg);background:var(--accent)}:where(.case-detail summary,.experiment-list summary,button):hover{text-underline-offset:4px;text-decoration:underline}}@media (width<=900px){.hero-content:has(.classifier),.project{grid-template-columns:1fr}.hero-content:has(.classifier) h1{font-size:clamp(60px,11vw,100px)}.project{gap:22px}.project-figure{max-width:720px}.hero{padding-top:72px}h1{font-size:clamp(60px,11vw,100px)}.about-layout{grid-template-columns:1fr;gap:20px}.about-lead{max-width:34ch}}@media (width<=620px){.site-shell{width:calc(100% - 24px);margin-block:12px}.site-header{flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;padding-block:17px 8px}nav{flex-wrap:wrap;justify-content:space-between;gap:4px 12px;width:100%;font-size:15px}.hero{padding-top:53px}h1{overflow-wrap:anywhere;font-size:clamp(48px,12vw,76px)}.hero-bottom{margin-top:62px}.hero-bottom>span:nth-child(2){display:none}.section-header{align-items:flex-start;gap:15px}.section-note{padding-top:5px;font-size:10px}.project h3{margin-top:18px}.figure-caption{flex-wrap:wrap}.figure-caption>span:last-child{text-align:left}.club{grid-template-columns:64px minmax(0,1fr);gap:16px;padding-block:24px}.club-logo{width:64px}.club-website,.club-website-placeholder{grid-column:2;justify-self:start}.experiment-list summary{grid-template-columns:28px minmax(0,1fr) 20px;gap:12px}.note-body{padding-inline:40px 0}.contact{flex-direction:column;align-items:stretch}.contact-actions{width:100%}footer>span:nth-child(2){display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (forced-colors:active){.classifier button{border-color:buttontext}.class-picker button[aria-pressed=true]{outline:2px solid highlight}#classifier-canvas{forced-color-adjust:none;background:#8b292b}}.now{flex-direction:column;gap:10px;font-size:20px;display:flex}
