@font-face{font-family:Exo;src:url('assets/fonts/Exo2-Thin.ttf') format('truetype');font-weight:200;font-display:swap}
@font-face{font-family:Exo;src:url('assets/fonts/Exo2-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Exo;src:url('assets/fonts/Exo2-SemiBold.ttf') format('truetype');font-weight:600;font-display:swap}

:root{--paper:#f5f1e8;--paper-hi:#fbf8f1;--ink:#171918;--ink-soft:#262827;--muted:#6e706c;--rule:#cdc8bc;--red:#e6352e;--orange:#f6781e;--solar:#f9bd16;--green:#399661;--azure:#2181b8;--indigo:#5044a7;--violet:#914caf;--ease:cubic-bezier(.22,.78,.22,1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Exo,Arial,sans-serif;font-size:16px;line-height:1.55;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit}
::selection{background:var(--solar);color:var(--ink)}
.cursor-signal{position:fixed;z-index:99;width:8px;height:8px;border-radius:50%;background:var(--red);pointer-events:none;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s;mix-blend-mode:multiply}
body.has-pointer,body.has-pointer *{cursor:none!important}
body.has-pointer.cursor-active .cursor-signal{opacity:1}
.site-header{position:absolute;z-index:10;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:28px 4.8vw;border-bottom:1px solid rgba(23,25,24,.16)}
.wordmark{display:inline-flex;align-items:center;color:var(--ink);white-space:nowrap}
.wordmark-lockup{display:block;width:170px;height:auto;overflow:visible;flex:0 0 auto}
.site-header nav{display:flex;gap:42px;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.site-header nav a,.text-link,.contact-link{position:relative}
.site-header nav a:after,.text-link:after,.contact-link:after{content:"";position:absolute;left:0;bottom:-7px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.site-header nav a:hover:after,.text-link:hover:after,.contact-link:hover:after{transform:scaleX(1);transform-origin:left}
.menu-button{display:none;border:0;background:none;width:36px;height:36px;padding:9px}
.menu-button span{display:block;height:1px;background:var(--ink);margin:6px 0}
.hero{position:relative;min-height:100svh;padding:150px 4.8vw 82px;display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);align-items:center;gap:5vw;overflow:hidden}
#field,.hero-grid{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero-grid{opacity:.43;background-image:linear-gradient(to right,transparent calc(100% - 1px),var(--rule) 1px),linear-gradient(to bottom,transparent calc(100% - 1px),var(--rule) 1px);background-size:8.333vw 100%,100% 25%;mask-image:linear-gradient(to right,transparent,black 32%,black)}
.hero-copy,.hero-instrument{position:relative;z-index:2;min-width:0}
.eyebrow,.section-index{font-family:'Courier New',monospace;text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:600}
.signal{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:9px}
.signal-red{background:var(--red)}.signal-green{background:var(--green)}.signal-orange{background:var(--orange)}.signal-violet{background:var(--violet)}
h1,h2,h3,p{margin-top:0}
h1{margin:25px 0 31px;font-size:clamp(52px,5.4vw,96px);font-weight:200;line-height:.94;letter-spacing:-.05em}
h1>span{display:block;white-space:nowrap}
em{font-style:normal;color:var(--red)}
.hero-deck{max-width:620px;color:var(--muted);font-size:clamp(17px,1.45vw,22px);line-height:1.55}
.text-link{display:inline-flex;gap:30px;margin-top:24px;font-family:'Courier New',monospace;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.text-link span,.contact-link span,.project-link span{transition:transform .35s var(--ease)}
.text-link:hover span,.contact-link:hover span,.project-link:hover span{transform:translate(4px,4px)}
.hero-instrument{justify-self:center;width:min(43vw,620px);aspect-ratio:1;margin-inline:auto}
.logo-stage{position:relative;width:100%;height:100%;display:grid;place-items:center}
.logo-core{position:relative;z-index:2;width:88%;height:88%;object-fit:contain;display:block;transform:translateY(2.5%)}
.logo-orbits{position:absolute;z-index:1;inset:0;width:100%;height:100%;overflow:visible}
.logo-orbits *{vector-effect:non-scaling-stroke}
.construction{fill:none;stroke:var(--rule);stroke-width:1}
.dash{stroke-dasharray:7 9}
.orbit-one{transform-origin:310px 310px;animation:orbit 46s linear infinite}.orbit-two{transform-origin:310px 310px;animation:orbit 34s linear infinite reverse;stroke-dasharray:2 18;opacity:.65}
.registration-ticks{fill:none;stroke:var(--ink);stroke-width:1;opacity:.52}
.orbit-label{position:absolute;z-index:3;font-family:'Courier New',monospace;font-size:9px;letter-spacing:.15em;color:var(--muted);white-space:nowrap}.label-a{left:-3%;top:8%}.label-b{right:-3%;bottom:8%}
.instrument-note{position:absolute;left:0;bottom:-32px;width:100%;text-align:center;margin:0;font-family:'Courier New',monospace;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.scroll-index{position:absolute;z-index:2;left:4.8vw;bottom:28px;display:flex;align-items:center;gap:12px;font-family:'Courier New',monospace;font-size:9px}.scroll-index i{display:block;width:80px;height:1px;background:var(--ink)}
@keyframes orbit{to{transform:rotate(360deg)}}@keyframes signalPulse{50%{transform:scale(1.5)}}@keyframes breach{0%{opacity:.7;transform:scale(.2)}70%,100%{opacity:0;transform:scale(4)}}
.thesis,.work,.method,.contact{padding:110px 4.8vw}
.thesis{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:.28fr .72fr;gap:8vw;position:relative}
.thesis:after{content:"";position:absolute;right:4.8vw;top:112px;width:6px;height:6px;border-radius:50%;background:var(--red);box-shadow:0 0 0 38px rgba(230,53,46,.08)}
.thesis .section-index{color:#a8aaa4}
.thesis-copy{max-width:950px}.kicker{text-transform:uppercase;font-size:13px;letter-spacing:.16em;font-weight:600;line-height:1.45}
.thesis h2,.section-heading h2,.method h2,.contact h2{font-size:clamp(52px,6.4vw,105px);font-weight:200;line-height:.92;letter-spacing:-.05em}
.thesis-copy>p:last-child{max-width:760px;color:#aeb0aa;font-size:20px}
.essence-visual{grid-column:1/-1;justify-self:center;width:100%;max-width:1500px;margin:48px auto -16px;position:relative}
.essence-visual:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#2b2e2c;pointer-events:none}
.essence-visual img{position:relative;z-index:1;display:block;width:100%;height:auto}
.work{padding-bottom:130px}.section-heading{display:grid;grid-template-columns:.3fr .7fr;gap:8vw;align-items:start;margin-bottom:70px}.section-heading h2{margin:0}
.project{position:relative;overflow:hidden}.project-dark{min-height:700px;background:var(--ink);color:var(--paper);padding:34px 40px;display:grid;grid-template-columns:.72fr 1.28fr;grid-template-rows:auto 1fr auto;gap:30px}
.project-meta{grid-column:1/-1;display:flex;justify-content:space-between;border-bottom:1px solid currentColor;padding-bottom:18px;opacity:.58;font-family:'Courier New',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.project-copy{align-self:center;position:relative;z-index:2;max-width:560px}.project-copy h3{font-size:clamp(38px,5vw,76px);font-weight:200;line-height:.95;letter-spacing:-.045em;margin:22px 0}.project-copy>p:last-child{font-size:17px;line-height:1.6;color:#aaaca6;max-width:480px}
.project-visual{align-self:center;justify-self:center;width:100%;max-width:780px}.project-visual svg{width:100%;overflow:visible;fill:none;stroke:var(--paper);stroke-width:1.2}.project-visual svg *{vector-effect:non-scaling-stroke}.project-visual img{display:block;width:100%;height:auto}.effigy-system{color:var(--paper);overflow:visible}
.project-link{font-family:'Courier New',monospace;text-transform:uppercase;letter-spacing:.13em;font-size:10px;display:flex;gap:18px;align-self:end}.project-link span{color:var(--red)}
.project-pair{display:grid;grid-template-columns:1fr 1fr;margin-top:20px;gap:20px}.project-paper,.project-spectrum{min-height:650px;padding:30px;display:flex;flex-direction:column}.project-paper{background:var(--paper-hi);border:1px solid var(--rule)}.project-spectrum{background:#ebe6dc}.project-pair .project-copy{margin-top:80px}.project-pair .project-copy h3{font-size:clamp(40px,4.2vw,68px)}.project-pair .project-copy>p:last-child{color:var(--muted);max-width:400px}
.wave-system{margin-top:auto}.wave-system svg{width:100%;overflow:visible}.waves{fill:none;stroke:var(--rule);stroke-width:1}.focus-wave{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-dasharray:10 9;animation:phase 12s linear infinite}@keyframes phase{to{stroke-dashoffset:-190}}
.live-system{margin-top:auto;padding-top:48px}.live-system img{display:block;width:100%;height:auto}
.method{display:grid;grid-template-columns:.3fr .7fr;gap:8vw;border-top:1px solid var(--rule)}.method-intro{grid-column:2}.method-intro h2{margin-bottom:70px}.method-list{grid-column:2;margin:0;padding:0;list-style:none;border-top:1px solid var(--ink)}.method-list li{display:grid;grid-template-columns:70px .35fr .65fr;gap:28px;padding:32px 0;border-bottom:1px solid var(--rule);align-items:start}.method-list li>span{font-family:'Courier New',monospace;font-size:10px}.method-list h3{text-transform:uppercase;letter-spacing:.12em;font-size:14px}.method-list p{margin:0;color:var(--muted);max-width:560px}
.contact{position:relative;min-height:88svh;background:var(--ink);color:var(--paper);display:flex;align-items:center;overflow:hidden}.particle-field{position:absolute;inset:0;opacity:.2;background-image:radial-gradient(circle,var(--paper) .7px,transparent .9px);background-size:18px 18px;mask-image:radial-gradient(ellipse at 70% 45%,black,transparent 64%)}
.contact-copy{position:relative;z-index:2;max-width:1000px}.contact .section-index{color:#a8aaa4;margin-bottom:75px}.contact h2{margin:25px 0 55px}.contact h2 em{color:var(--solar)}.contact-link{font-family:'Courier New',monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;display:inline-flex;gap:28px}.contact-mark{position:absolute;width:min(47vw,680px);height:auto;right:-6vw;top:50%;transform:translateY(-50%);opacity:.12;filter:invert(1)}
footer{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;padding:38px 4.8vw;background:var(--ink);color:#a4a6a0;border-top:1px solid #383b39;font-family:'Courier New',monospace;font-size:9px;text-transform:uppercase;letter-spacing:.13em}footer p{margin:0;text-align:center}footer p:last-child{text-align:right}footer .wordmark{color:var(--paper);text-transform:none}footer .wordmark-lockup{opacity:.9}
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1s var(--ease)}.reveal[data-delay="1"]{transition-delay:.16s}.reveal.visible{opacity:1;transform:none}
@media (max-width:1100px) and (min-width:901px){h1{font-size:clamp(48px,5.2vw,60px)}.hero{gap:3vw}.hero-instrument{width:min(47vw,560px)}.hero-deck{font-size:17px}}
@media (max-width:900px){.site-header{position:absolute}.site-header nav{display:none}.menu-button{display:block}.site-header.open nav{display:flex;position:absolute;left:0;top:89px;width:100%;padding:24px 4.8vw;background:var(--paper);border-bottom:1px solid var(--rule);justify-content:space-between}.hero{grid-template-columns:1fr;padding-top:145px}.hero-copy{padding-bottom:34px}.hero-instrument{width:min(82vw,570px);margin:8px auto 42px}.label-a{left:-4%;top:5%}.label-b{right:-4%;bottom:5%}.hero-grid{background-size:16.666vw 100%,100% 25%}.thesis,.method{grid-template-columns:1fr}.thesis-copy,.essence-visual,.method-intro,.method-list{grid-column:1}.section-heading{grid-template-columns:1fr}.project-dark{grid-template-columns:1fr;min-height:auto;padding:28px}.project-visual{width:min(90vw,650px)}.project-pair{grid-template-columns:1fr}.project-paper,.project-spectrum{min-height:600px}.contact-mark{width:80vw;right:-30vw}.method-list li{grid-template-columns:40px 1fr}.method-list p{grid-column:2}footer{grid-template-columns:1fr;gap:18px}footer p,footer p:last-child{text-align:left}}
@media (max-width:560px){h1{font-size:clamp(46px,13vw,58px)}.wordmark-lockup{width:150px}.hero{padding-left:22px;padding-right:22px}.site-header,.thesis,.work,.method,.contact,footer{padding-left:22px;padding-right:22px}.hero-instrument{width:min(90vw,470px);margin-top:8px}.orbit-label{font-size:8px}.label-a{left:0;top:1%}.label-b{right:0;bottom:1%}.instrument-note{bottom:-26px;font-size:7px;letter-spacing:.12em}.project-dark,.project-paper,.project-spectrum{padding:22px}.project-copy h3,.project-pair .project-copy h3{font-size:42px}.project-pair .project-copy{margin-top:56px}.thesis h2,.section-heading h2,.method h2,.contact h2{font-size:50px}.method-list li{gap:14px}.contact{min-height:760px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.orbit-one,.orbit-two,.focus-wave{animation:none}.reveal{opacity:1;transform:none;transition:none}.cursor-signal{display:none}}
