@font-face{font-family:Vollkorn;src:url("/assets/Vollkorn-Regular.ttf")}*{box-sizing:border-box}
:root{--bg:#0d0d0c;--fg:#f2f0e9;--muted:#9d9a93;--line:#34322e;--panel:#171715;--orange:#ff5a24}
[data-theme=light]{--bg:#f2f0e9;--fg:#11110f;--muted:#6d6a64;--line:#cbc7be;--panel:#e7e3da}
html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 system-ui,sans-serif;transition:.25s}
a{color:inherit}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:20;background:var(--orange);padding:.7rem;color:#111}
header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:2rem;padding:1.2rem clamp(1rem,4vw,4.5rem);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(16px)}
.brand{font-family:Vollkorn,serif;font-size:1.35rem;text-decoration:none}.brand small{font:700 .62rem/1 system-ui;letter-spacing:.18em;color:var(--orange)}
nav{display:flex;gap:1.5rem;margin-left:auto}nav a{text-decoration:none;text-transform:uppercase;font-size:.7rem;letter-spacing:.15em}.controls{display:flex;gap:.5rem}.controls button,.filters button,#reset{border:1px solid var(--line);background:transparent;color:var(--fg);padding:.6rem .8rem;cursor:pointer}
main{overflow:hidden}.hero{position:relative;min-height:82vh;padding:clamp(5rem,12vw,10rem) clamp(1rem,6vw,7rem);border-bottom:1px solid var(--line)}
.eyebrow,.section-id{text-transform:uppercase;letter-spacing:.2em;font-size:.68rem;color:var(--orange);font-weight:700}
h1,h2,h3{font-family:Vollkorn,serif;font-weight:400;line-height:.9;margin:.2em 0}h1{font-size:clamp(5rem,15vw,13rem);letter-spacing:-.06em}h1 em{color:var(--orange)}
.lede{max-width:40rem;font-size:clamp(1.1rem,2vw,1.5rem);color:var(--muted)}.hero-stats{display:flex;gap:clamp(1.5rem,5vw,5rem);margin-top:4rem;text-transform:uppercase;font-size:.7rem;letter-spacing:.12em}.hero-stats strong{display:block;font:3rem/1 Vollkorn;color:var(--fg)}
.wafer{position:absolute;right:-7rem;bottom:-10rem;width:min(50vw,42rem);aspect-ratio:1;border:1px solid var(--line);border-radius:50%;opacity:.75;animation:drift 10s ease-in-out infinite}.wafer i{position:absolute;inset:12%;border:1px solid color-mix(in srgb,var(--orange) 50%,transparent);border-radius:50%}.wafer i:nth-child(2){inset:24%}.wafer i:nth-child(3){inset:36%}.wafer i:nth-child(4){inset:48%;background:var(--orange)}.wafer i:nth-child(5){inset:0;background:repeating-linear-gradient(90deg,transparent 0 3rem,color-mix(in srgb,var(--line) 60%,transparent) 3rem calc(3rem + 1px));border:0}
@keyframes drift{50%{transform:translate(-2rem,-1rem) rotate(8deg)}}.intro,.progress-panel{display:grid;grid-template-columns:1fr 2fr;gap:4rem;padding:clamp(5rem,10vw,9rem) clamp(1rem,6vw,7rem);border-bottom:1px solid var(--line)}h2{font-size:clamp(3rem,7vw,7rem);letter-spacing:-.045em}.intro p:not(.section-id){font-size:1.25rem;color:var(--muted);max-width:42rem}
.catalogue{padding:clamp(5rem,9vw,8rem) clamp(1rem,6vw,7rem)}.catalogue-head{display:flex;align-items:end;justify-content:space-between;gap:2rem}.search{display:grid;gap:.5rem;text-transform:uppercase;font-size:.65rem;letter-spacing:.18em;color:var(--muted)}.search input{width:min(28rem,70vw);border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--fg);font:1rem system-ui;padding:.8rem 0;outline:0}.search input:focus{border-color:var(--orange)}
.filters{display:flex;flex-wrap:wrap;gap:.6rem;margin:3rem 0}.filters button{border-radius:99px}.filters button.active,.filters button:hover{background:var(--orange);border-color:var(--orange);color:#111}
.modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.module{min-height:17rem;padding:1.5rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-decoration:none;display:flex;flex-direction:column;transition:.2s}.module:hover{background:var(--panel);transform:translateY(-4px)}.module .num{color:var(--orange);font-size:.7rem;letter-spacing:.16em}.module h3{font-size:1.7rem;line-height:1.05;margin:2rem 0 .7rem}.module p{color:var(--muted);font-size:.9rem}.module .state{margin-top:auto;font-size:.68rem;text-transform:uppercase;letter-spacing:.14em}
.progress-card{display:flex;align-items:center;gap:2rem}.ring{--p:0deg;display:grid;place-items:center;width:10rem;aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--orange) var(--p),var(--line) 0);position:relative}.ring::before{content:"";position:absolute;inset:.6rem;border-radius:50%;background:var(--bg)}.ring span{position:relative;font:2rem Vollkorn}.progress-card p{color:var(--muted)}
footer{display:flex;justify-content:space-between;gap:2rem;padding:2rem clamp(1rem,6vw,7rem);font-size:.75rem;color:var(--muted)}
@media(max-width:760px){header nav{display:none}.brand small{display:none}.intro,.progress-panel{grid-template-columns:1fr}.catalogue-head{align-items:start;flex-direction:column}.modules{grid-template-columns:1fr}.wafer{width:90vw}.hero-stats{flex-wrap:wrap}.progress-card{align-items:start;flex-direction:column}footer{flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,::before,::after{animation:none!important;scroll-behavior:auto!important}}
