[hidden]{display:none!important}
:root{--k:#0A0A0A;--w:#F2F2EE;--r:#FF3B00;--g:#8C8C88;--l:#D9D9D4;--pad:clamp(14px,2.2vw,32px)}
*{box-sizing:border-box;border-radius:0}html{scroll-behavior:smooth}
body{margin:0;background:var(--w);color:var(--k);font:500 15px/1.5 'IBM Plex Mono',ui-monospace,monospace;cursor:crosshair}
a{color:inherit}::selection{background:var(--r);color:#fff}
.skip{position:absolute;left:-999px}.skip:focus{left:0;top:0;z-index:99;background:var(--r);color:#fff;padding:10px}
:focus-visible{outline:3px solid var(--r);outline-offset:2px}
.gridlines{position:fixed;inset:0;display:grid;grid-template-columns:repeat(12,1fr);padding:0 var(--pad);pointer-events:none;z-index:0;transition:opacity .3s}
.gridlines i{border-left:1px solid var(--l)}.gridlines i:last-child{border-right:1px solid var(--l)}
body:not(.grid-on) .gridlines{opacity:0}
main,header,footer,.ticker{position:relative;z-index:1}
.bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:22px;padding:12px var(--pad);background:var(--w);border-bottom:2px solid var(--k);font-size:.8rem}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font:700 1rem 'Space Mono'}
.meta{color:var(--g)}.bar nav{margin-left:auto;display:flex;gap:18px}.bar nav a{text-decoration:none}.bar nav a:hover{background:var(--k);color:var(--w)}
.gridbtn{font:inherit;border:2px solid var(--k);background:var(--k);color:var(--w);padding:6px 10px;cursor:pointer}.gridbtn[aria-pressed=false]{background:transparent;color:var(--k)}
@media(max-width:900px){.hide-s{display:none!important}.bar{flex-wrap:wrap;gap:10px}.bar nav{order:3;width:100%;margin:0;justify-content:space-between;font-size:.7rem}}
/* hero */
.hero{padding:var(--pad);min-height:calc(100vh - 62px);display:flex;flex-direction:column;justify-content:space-between;border-bottom:2px solid var(--k)}
.h-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.8rem;margin:0}
.giant{font:700 clamp(4rem,19.5vw,22rem)/.82 'Space Mono',monospace;letter-spacing:-.06em;margin:4vh 0 2vh;margin-left:-.04em}
.giant .row{display:block;overflow:hidden}.r2{text-align:right}
.giant .row{animation:rise 1s cubic-bezier(.2,.7,0,1) both}.r2{animation-delay:.12s!important}
@keyframes rise{from{transform:translateY(100%)}}
.cursor{color:var(--r);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}
.h-foot{display:grid;grid-template-columns:repeat(12,1fr);gap:0 var(--pad);align-items:end;border-top:2px solid var(--k);padding-top:16px}
.lead{grid-column:1/5;font:700 clamp(1.2rem,2.2vw,2rem)/1.1 'Space Mono';margin:0}.small{grid-column:6/10;margin:0}.arrow-link{grid-column:11/13;justify-self:end;font-weight:600;text-decoration:none;border-bottom:2px solid var(--r)}
.arrow-link:hover{background:var(--r);color:#fff}
@media(max-width:800px){.h-foot{grid-template-columns:1fr;gap:14px}.lead,.small,.arrow-link{grid-column:1/-1;justify-self:start}.hero{min-height:auto}}
.ticker{background:var(--k);color:var(--w);overflow:hidden;white-space:nowrap;border-bottom:2px solid var(--k);font:700 1.1rem 'Space Mono';padding:12px 0}
.track{display:inline-flex;animation:tick 26s linear infinite}.track span{padding-right:0}@keyframes tick{to{transform:translateX(-50%)}}
/* sections */
.sec-t{font:700 .9rem 'Space Mono';letter-spacing:.05em;margin:0 0 26px;display:flex;gap:10px;align-items:center}.sec-t span{background:var(--r);color:#fff;padding:0 6px}.sec-t small{color:var(--g)}
.manifest{padding:80px var(--pad);border-bottom:2px solid var(--k)}
.m-list{list-style:none;margin:0;padding:0}.m-list li{display:grid;grid-template-columns:2fr 10fr;border-top:2px solid var(--k);padding:18px 0;align-items:baseline}
.m-list b{font:700 1rem 'Space Mono';color:var(--g)}.m-list p{margin:0;font:700 clamp(1.6rem,4.6vw,4.6rem)/1 'Space Mono';letter-spacing:-.04em}
.m-list em{font-style:normal;color:var(--r)}.m-list li:hover p{transform:translateX(16px)}.m-list p{transition:transform .3s}
/* projects */
.projects{padding:80px var(--pad);border-bottom:2px solid var(--k);position:relative}
.p-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px}
.p-filter{display:flex;border:2px solid var(--k)}.p-filter button{font:inherit;font-size:.8rem;background:none;border:0;border-right:2px solid var(--k);padding:8px 12px;cursor:pointer}.p-filter button:last-child{border-right:0}.p-filter button.on{background:var(--k);color:var(--w)}
.p-table{border-top:2px solid var(--k)}
.p-row{display:grid;grid-template-columns:1fr 4fr 2fr 1fr 1.4fr 2.6fr;gap:12px;padding:16px 4px;border-bottom:1px solid var(--k);align-items:baseline;text-decoration:none;transition:background .15s,color .15s,padding .2s}
.p-row.head{font-size:.75rem;color:var(--g);padding:10px 4px}.p-row .nm{font:700 clamp(1.1rem,2.2vw,1.9rem) 'Space Mono';letter-spacing:-.03em}
a.p-row:hover,a.p-row:focus-visible{background:var(--k);color:var(--w);padding-left:18px}a.p-row:hover .nm::after{content:" ↗";color:var(--r)}
@media(max-width:800px){.p-row{grid-template-columns:1fr 5fr 1.4fr}}
.preview{position:fixed;left:0;top:0;width:340px;height:260px;pointer-events:none;z-index:30;opacity:0;transition:opacity .2s}
.preview.show{opacity:1}.pv-in{width:100%;height:100%;background:var(--w);border:2px solid var(--k);box-shadow:10px 10px 0 var(--r);padding:8px}
.pv-in svg{width:100%;height:100%}
@media(hover:none){.preview{display:none}}
.cards{display:grid;grid-template-columns:repeat(3,1fr);margin-top:60px;border-top:2px solid var(--k);border-left:2px solid var(--k)}
.card{border-right:2px solid var(--k);border-bottom:2px solid var(--k);padding:18px;background:var(--w);display:flex;flex-direction:column;gap:10px;transition:background .2s}
.card:hover{background:#fff}.card .dw{aspect-ratio:4/3;border:1px solid var(--l);background:repeating-linear-gradient(0deg,transparent 0 19px,#ecece7 19px 20px),repeating-linear-gradient(90deg,transparent 0 19px,#ecece7 19px 20px)}
.card .dw{position:relative;overflow:hidden}.card .dw svg{position:absolute;inset:6%;width:88%;height:88%}.card h3{font:700 1.2rem 'Space Mono';margin:0;letter-spacing:-.02em}.card dl{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0;font-size:.78rem}.card dt{color:var(--g)}.card dd{margin:0}
.card p{margin:0;font-size:.85rem}.card .idx{font:700 3rem/1 'Space Mono';color:var(--l)}
.card.hide{display:none}
@media(max-width:1000px){.cards{grid-template-columns:1fr 1fr}}@media(max-width:640px){.cards{grid-template-columns:1fr}}
.axo .top{fill:#fff}.axo .lf{fill:url(#hatch)}.axo .rt{fill:#BDBDB8}.axo .red{fill:var(--r)}.axo path{stroke:var(--k);stroke-width:1.4;stroke-linejoin:round}
.axo .gnd{fill:none;stroke:var(--g);stroke-dasharray:3 4;stroke-width:1}
.card .dw svg .bx{animation:build .6s cubic-bezier(.2,.7,0,1) both}@keyframes build{from{opacity:0;transform:translateY(-30px)}}
/* studio */
.studio{padding:80px var(--pad);border-bottom:2px solid var(--k)}
.s-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--k);border-left:2px solid var(--k)}
.s-grid>div{border-right:2px solid var(--k);border-bottom:2px solid var(--k);padding:22px}.s-big{grid-column:1/-1}.s-big p{margin:0;font:700 clamp(1.3rem,2.8vw,2.6rem)/1.1 'Space Mono';letter-spacing:-.03em}
.s-num b{display:block;font:700 clamp(3rem,7vw,6.4rem)/1 'Space Mono';letter-spacing:-.05em}.s-num span{font-size:.78rem;color:var(--g)}.s-num.red{background:var(--r);color:#fff}.s-num.red span{color:#fff}
@media(max-width:800px){.s-grid{grid-template-columns:1fr 1fr}}
.sub{font:700 .9rem 'Space Mono';margin:60px 0 16px}
.services ul{list-style:none;margin:0;padding:0;border-top:2px solid var(--k)}.services li{display:flex;gap:20px;padding:14px 0;border-bottom:1px solid var(--k);font:700 clamp(1rem,1.8vw,1.5rem) 'Space Mono';letter-spacing:-.02em}
.services li span{color:var(--r)}.services li:hover{background:var(--k);color:var(--w)}
.process ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--k)}
.process li{padding:18px 18px 18px 0;border-right:1px solid var(--k);font:700 1.4rem 'Space Mono';display:flex;flex-direction:column;gap:6px}.process li+li{padding-left:18px}.process li:last-child{border-right:0}
.process b{color:var(--r);font-size:.9rem}.process small{font:500 .85rem 'IBM Plex Mono';color:var(--g)}
@media(max-width:800px){.process ol{grid-template-columns:1fr 1fr}.process li{padding:14px!important;border-bottom:1px solid var(--k)}}
.note{font-size:.75rem;color:var(--g);margin-top:30px}
/* contact */
.contact{padding:80px var(--pad) 60px;background:var(--k);color:var(--w)}
.giant2{font:700 clamp(3.4rem,15vw,16rem)/.85 'Space Mono';letter-spacing:-.06em;margin:0 0 40px}.red{color:var(--r)}
.c-grid{display:grid;grid-template-columns:4fr 8fr;gap:var(--pad);border-top:2px solid var(--w);padding-top:24px}
.c-info p{margin:0 0 18px}
.c-form{display:grid;grid-template-columns:1fr 1fr;gap:0}.c-form label{display:flex;flex-direction:column;border:1px solid #444;padding:12px}.c-form .full{grid-column:1/-1}
.c-form span{font-size:.72rem;color:var(--g)}.c-form input,.c-form select,.c-form textarea{font:700 1.1rem 'Space Mono';background:none;border:0;color:var(--w);padding:6px 0;outline:none}
.c-form select option{color:var(--k)}.c-form label:focus-within{border-color:var(--r);background:#141414}
.c-form button{grid-column:1/-1;font:700 1.6rem 'Space Mono';padding:20px;border:0;background:var(--r);color:#fff;cursor:pointer;text-align:left;transition:padding .2s}.c-form button:hover{padding-left:40px}
.ok{grid-column:1/-1;margin:10px 0 0;color:var(--r)}
@media(max-width:800px){.c-grid,.c-form{grid-template-columns:1fr}}
.foot{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;align-items:center;gap:16px;padding:24px var(--pad);background:var(--k);color:var(--w);border-top:2px solid #333;font-size:.78rem}
.foot img{height:56px;width:auto}.foot p{margin:0}.fict{color:var(--r)}
@media(max-width:800px){.foot{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
