@font-face{font-family:'Archivo';font-style:normal;font-weight:100 900;font-display:swap;src:url('/fonts/archivo-variable-latin.woff2') format('woff2')}
:root{--ink:#11100e;--paper:#f0ede4;--acid:#c7ff35;--muted:#716e66;--line:#cbc6b9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Archivo',Arial,Helvetica,sans-serif}.wrap{width:min(1180px,calc(100% - 40px));margin-inline:auto}.nav{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-size:1.4rem;font-weight:900;letter-spacing:-.05em;color:inherit;text-decoration:none}.nav nav{display:flex;gap:24px}.nav nav a,.footer a{color:inherit;text-decoration:none;font:700 .72rem/1 monospace;text-transform:uppercase;letter-spacing:.12em}.hero{min-height:750px;display:flex;flex-direction:column;justify-content:center;padding-block:80px}.label,.number,.demo-meta{font:700 .72rem/1.2 monospace;text-transform:uppercase;letter-spacing:.16em}.label{color:#4d4a43}.hero h1{max-width:1000px;margin:26px 0 0;font-size:clamp(4rem,10vw,9.4rem);line-height:.82;letter-spacing:-.08em;font-weight:900}.lead{max-width:700px;margin:34px 0 0;color:var(--muted);font-size:clamp(1.15rem,2vw,1.55rem);line-height:1.5}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}.button{display:inline-flex;padding:15px 21px;border:1px solid var(--ink);color:inherit;text-decoration:none;font:700 .75rem/1 monospace;text-transform:uppercase;letter-spacing:.12em}.button.primary{background:var(--ink);color:var(--paper)}.button:hover{background:var(--acid);color:var(--ink)}.role-line{margin-top:auto;padding-top:60px;display:grid;grid-template-columns:1fr auto 1fr;gap:22px;border-bottom:1px solid var(--line);padding-bottom:24px;font:500 .9rem/1.4 monospace}.role-line span:last-child{text-align:right}.split{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.split article{padding:90px 50px 90px 0}.split article+article{border-left:1px solid var(--line);padding-left:50px}.number{color:var(--muted)}.split h2,.section-head h2,.cta h2{margin:20px 0 0;font-size:clamp(2.6rem,5vw,5.5rem);line-height:.93;letter-spacing:-.06em}.split article p:last-child,.section-head>p{max-width:520px;color:var(--muted);font-size:1.1rem;line-height:1.55}.demos{padding-block:100px;border-bottom:1px solid var(--line)}.section-head{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:end}.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:55px}.demo{min-height:0;padding:0;overflow:hidden;background:#141117}.demo:hover{transform:translateY(-5px)}.demo strong{font-size:clamp(2.5rem,5vw,5rem);line-height:.88;letter-spacing:-.06em}.demo span:last-child{font:700 .72rem/1 monospace;text-transform:uppercase;letter-spacing:.14em}.demo span:last-child{font:700 .72rem/1 monospace;text-transform:uppercase;letter-spacing:.14em}.cta{padding-block:130px}.cta h2{max-width:900px;margin-bottom:38px}.footer{min-height:120px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);font-weight:900}.footer div{display:flex;gap:22px}@media(max-width:720px){.nav{height:auto;flex-wrap:wrap;row-gap:14px;padding-block:16px}.nav nav{width:100%;justify-content:space-between;gap:10px}.hero{min-height:680px}.role-line{grid-template-columns:1fr}.role-line span:nth-child(2){display:none}.role-line span:last-child{text-align:left}.split,.section-head,.demo-grid{grid-template-columns:1fr}.split article{padding:65px 0}.split article+article{border-left:0;border-top:1px solid var(--line);padding-left:0}.demo{min-height:320px}.footer{align-items:flex-start;padding-block:35px;gap:25px}.footer div{flex-direction:column;gap:12px}}

/* --- 2026-07 refresh: real previews, reveals, rotating word --- */
.demo{display:flex;flex-direction:column;color:var(--paper);text-decoration:none;border:1px solid var(--ink);transition:transform .2s}
.demo-shot{display:block;aspect-ratio:16/7;overflow:hidden;border-bottom:1px solid var(--ink)}
.demo-shot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.demo:hover .demo-shot img{transform:scale(1.04)}
.demo .demo-meta{margin:24px 28px 0}
.demo strong{margin:10px 28px 0}
.demo .demo-open{margin:auto 28px 26px;padding-top:28px}
.cycle{display:inline-block;box-shadow:inset 0 -0.14em var(--acid);transition:opacity .26s ease,transform .26s ease}
.cycle.out{opacity:0;transform:translateY(.15em)}
html.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
html.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){html.js .reveal{opacity:1;transform:none;transition:none}.demo:hover{transform:none}.demo-shot img{transition:none}}

/* --- demo previews without a screenshot: CSS-drawn brand tiles, same card grid --- */
.demo-shot--nebelkind,.demo-shot--radiowerkstatt{display:flex;align-items:center;justify-content:center;position:relative}
.demo-shot--nebelkind{background:#0a0a0c}
.demo-shot--nebelkind .demo-shot-word{font:800 clamp(1.6rem,4vw,2.6rem)/1 ui-monospace,"SF Mono","Cascadia Code",Menlo,Consolas,monospace;color:#e8e6df;letter-spacing:-.04em;text-transform:lowercase}
.demo-shot--nebelkind .demo-shot-eq{position:absolute;bottom:0;left:0;right:0;height:34%;display:flex;align-items:flex-end;gap:4px;padding:0 20px 10px}
.demo-shot--nebelkind .demo-shot-eq i{flex:1;background:#ffb000;opacity:.75;animation:demoeq 1.1s ease-in-out infinite alternate}
.demo-shot--nebelkind .demo-shot-eq i:nth-child(2n){animation-duration:.8s}
.demo-shot--nebelkind .demo-shot-eq i:nth-child(3n){animation-duration:1.4s}
.demo-shot--nebelkind .demo-shot-eq i:nth-child(4n){animation-duration:.65s}
@keyframes demoeq{from{height:15%}to{height:100%}}
.demo-shot--radiowerkstatt{background:radial-gradient(60rem 40rem at 50% -20%,rgba(29,26,22,.10),transparent 60%),#eae3d2}
.demo-shot--radiowerkstatt .demo-shot-word{font:900 clamp(1.4rem,3.6vw,2.3rem)/1 ui-monospace,"SF Mono","Cascadia Code",Menlo,Consolas,monospace;color:#b3392a;letter-spacing:-.02em;text-transform:uppercase;text-align:center}
.demo-shot--radiowerkstatt .demo-shot-word i{font-weight:400;font-style:normal}
.demo-shot--radiowerkstatt .demo-shot-rule{position:absolute;left:20px;right:20px;bottom:18px;border-top:2px dotted rgba(29,26,22,.35)}
@media (prefers-reduced-motion: reduce){.demo-shot--nebelkind .demo-shot-eq i{animation:none;height:45%;opacity:.4}}
a:focus-visible{outline:2px solid var(--acid);outline-offset:3px}
.footer-brand{display:flex;flex-direction:column;gap:6px}
.footer-brand small{font:400 .68rem/1 monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}

/* --- 2026-08 WebGL layer: fixed canvas host, scissored view boxes, no-webgl fallbacks --- */
html,body{overflow-x:clip}
:root{--paper-2:#e7e3d8}
#gl{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}
html.no-webgl #gl{display:none}
body>header,body>main,body>footer{position:relative;z-index:1}
[data-gl-view]{position:relative}
.nav{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--paper) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
@supports not (backdrop-filter: blur(1px)){.nav{background:var(--paper)}}
.hero{min-height:100svh;position:relative}
.hero-gl{position:absolute;inset:-6vh -6vw;z-index:-1;pointer-events:none}
.hero>:not(.hero-gl){position:relative}
.capability{position:relative;padding-block:110px;border-bottom:1px solid var(--line)}
/* banding is a top strip, not a section background: an opaque background would hide the canvas */
.capability::before{content:"";position:absolute;left:0;right:0;top:0;height:300px;background:linear-gradient(var(--paper-2),transparent);pointer-events:none;z-index:-1}
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:55px}
.cap{border:1px solid var(--line);padding:0 26px 30px;background:transparent}
.cap-stage{height:clamp(220px,26vh,300px);margin:0 -26px 26px;border-bottom:1px solid var(--line)}
.cap h3{font-size:1.5rem;margin:14px 0 10px;letter-spacing:-.03em}
.cap p:last-child{color:var(--muted);line-height:1.55;font-size:.98rem}
.cta{position:relative}
.cta-gl{position:absolute;inset:-4vh -4vw;z-index:-1;pointer-events:none}
.cta>:not(.cta-gl){position:relative}
html.no-webgl .hero-gl,html.no-webgl .cta-gl{display:none}
html.no-webgl .cap-stage,html:not(.js) .cap-stage{background:repeating-linear-gradient(135deg,var(--paper-2) 0 12px,var(--paper) 12px 24px)}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
@media(max-width:720px){.cap-grid{grid-template-columns:1fr}.cap-stage{height:230px}.hero{min-height:88svh}.capability::before{height:220px}}
