@font-face{font-family:"Instrument Serif";src:url(../fonts/instrument-serif.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(../fonts/instrument-serif-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(../fonts/geist-mono-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{
  --red:#d2051e;
  --red-d:#a80016;
  --paper:#f3f3f1;
  --ink:#141416;
  --ink-2:#4b4d52;
  --ink-3:#8a8d93;
  --hl:rgba(20,20,22,.12);
  --sans:var(--font-sans);
  --mono:"Geist Mono",ui-monospace,Menlo,monospace;
--serif:"Instrument Serif",Georgia,serif;
  --gut:clamp(16px,5vw,72px);
  --ease:cubic-bezier(.2,.7,.1,1);
}
*{box-sizing:border-box;margin:0;padding:0}
:where(main,#outro) :is(p,h1,h2,h3,figure){margin:0}
:where(main,#outro) :is(h1,h2,h3){line-height:inherit}
html{background:var(--red);-webkit-text-size-adjust:100%}
body{background:var(--red);color:var(--ink);font-family:var(--sans);line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background-color .6s var(--ease)}
img,video,canvas{display:block;max-width:100%}
button{font:inherit;color:inherit}
::selection{background:var(--red);color:#fff}

.site-header--over.site-header--scrolled:not(.site-header--past-hero){background:rgba(20,20,22,.82)}
#stage{position:fixed;top:0;left:0;right:0;height:100vh;height:100lvh;z-index:0;pointer-events:none}
#stage canvas{width:100%!important;height:100%!important;display:block}
#stage.drag{pointer-events:auto;cursor:grab}
#stage.drag:active{cursor:grabbing}

#loader{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:var(--red);transition:opacity .9s var(--ease),visibility .9s}
#loader.done{opacity:0;visibility:hidden;pointer-events:none}
#loader div{width:min(240px,60vw);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.8)}
#loader s{display:block;height:1px;margin-top:12px;background:rgba(255,255,255,.25);position:relative;overflow:hidden;text-decoration:none}
#loader s::after{content:"";position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(var(--p,0));background:#fff;transition:transform .3s}

nav.dots{position:fixed;right:clamp(10px,2vw,28px);top:50%;transform:translateY(-50%);z-index:20;display:flex;flex-direction:column;gap:10px;transition:opacity .4s,color .4s;--dc:rgba(255,255,255,.55);--dn:#fff}
nav.dots.on-light{--dc:rgba(20,20,22,.35);--dn:var(--ink)}
nav.dots.off{opacity:0;pointer-events:none}
nav.dots a{display:flex;align-items:center;justify-content:flex-end;gap:10px;text-decoration:none;color:var(--dc);font-family:var(--mono);font-size:10px;letter-spacing:.12em}
nav.dots a span{opacity:0;transform:translateX(6px);transition:.35s var(--ease);text-transform:uppercase}
nav.dots a i{width:6px;height:6px;border-radius:50%;background:currentColor;transition:.35s var(--ease)}
nav.dots a:hover span,nav.dots a:focus-visible span{opacity:1;transform:none}
nav.dots a.on{color:var(--dn)}
nav.dots a.on i{height:18px;border-radius:4px}
nav.dots a:focus-visible{outline:1px solid currentColor;outline-offset:4px}

main{position:relative;z-index:10}
.ch{position:relative;min-height:100svh;padding:0 var(--gut)}
#hero{min-height:150svh;color:#fff}
#hero .inner{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(36px,9vh,110px);max-width:780px}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;display:flex;gap:12px;align-items:center;color:var(--ink-2)}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor}
#hero .eyebrow{color:rgba(255,255,255,.82)}
#hero h1{font-weight:500;font-size:clamp(46px,7.6vw,118px);line-height:.92;letter-spacing:-.045em;margin:22px 0 24px}
#hero h1 em{font-family:var(--serif);font-weight:400;font-style:italic;letter-spacing:-.01em;color:var(--ink)}
#hero p.lead{max-width:46ch;color:rgba(255,255,255,.88);font-size:clamp(16px,1.35vw,19px)}
.roles{margin-top:26px;display:flex;flex-wrap:wrap;gap:8px}
.roles span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:7px 11px;border:1px solid rgba(255,255,255,.4);border-radius:999px;color:#fff}
.scroll{margin-top:38px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.8);display:flex;align-items:center;gap:12px}
.scroll i{position:relative;width:1px;height:38px;background:rgba(255,255,255,.3);overflow:hidden}
.scroll i::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:#fff;animation:drip 1.8s cubic-bezier(.6,0,.4,1) infinite}
@keyframes drip{to{top:100%}}

#bohrer{min-height:240svh}
#modell{min-height:220svh}
#kreis{min-height:240svh}
.card{position:sticky;top:max(14vh,90px);width:min(440px,100%);padding:clamp(20px,2.2vw,30px);background:rgba(255,255,255,.84);border:1px solid rgba(20,20,22,.08);border-radius:18px;backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-shadow:0 30px 80px rgba(0,0,0,.12)}
.kick{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);display:flex;gap:10px;align-items:center}
.kick::after{content:"";height:1px;flex:1;background:var(--hl)}
.card h2{font-weight:500;font-size:clamp(26px,2.5vw,36px);line-height:1.08;letter-spacing:-.02em;margin:14px 0 12px}
h2 em,#outro h2 em{font-family:var(--serif);font-weight:400;font-style:italic;color:var(--red)}
h2 em{letter-spacing:0}
#outro h2 em{letter-spacing:inherit}
.card p{color:var(--ink-2);font-size:clamp(14.5px,1.05vw,16px)}
.card p+p{margin-top:.7em}
.facts{margin-top:16px;display:flex;flex-wrap:wrap;gap:6px}
.facts span{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:6px 9px;border:1px solid var(--hl);border-radius:999px;color:var(--ink-2)}

.sec{position:relative;z-index:10;padding:clamp(80px,14vh,160px) var(--gut)}
.sec--light{background:var(--paper)}
.sec--line{border-top:1px solid var(--hl)}
.sec--red{background:var(--red);color:#fff}
.sec--red .kick{color:#fff}
.sec--red .kick::after{background:rgba(255,255,255,.35)}
.sec--red h2 em{color:var(--ink)}
.sec--red p{color:rgba(255,255,255,.9)!important}
.sec--red .facts span{border-color:rgba(255,255,255,.4);color:#fff}
.wrap{max-width:1280px;margin:0 auto}
.head{max-width:620px}
.head--wide{max-width:760px}
.head--row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.head--row>div:first-child{max-width:620px}
.head h2{font-weight:500;font-size:clamp(34px,4.4vw,64px);line-height:1;letter-spacing:-.035em;margin:18px 0 18px}
.head p{color:var(--ink-2);font-size:clamp(15px,1.15vw,17.5px);max-width:58ch}
.head p+p{margin-top:.8em}
.note{margin-top:14px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.note--c{text-align:center;margin-top:28px}

.spot{margin-top:clamp(40px,7vh,80px);display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:clamp(24px,4vw,64px);align-items:center}
.phone{position:relative;aspect-ratio:9/16;border-radius:22px;overflow:hidden;background:#ddd;box-shadow:0 30px 70px rgba(0,0,0,.18)}
.phone video{width:100%;height:100%;object-fit:cover}
.snd{position:absolute;left:12px;bottom:12px;display:flex;align-items:center;gap:8px;padding:8px 12px 8px 10px;border:0;border-radius:999px;background:rgba(10,10,12,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.snd i{width:14px;height:12px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 12'%3E%3Cpath d='M0 4h3l4-3v10L3 8H0z'/%3E%3Cpath d='M9 3l4 6M13 3L9 9' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 12'%3E%3Cpath d='M0 4h3l4-3v10L3 8H0z'/%3E%3Cpath d='M9 3l4 6M13 3L9 9' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat}
.snd[aria-pressed="true"] i{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 12'%3E%3Cpath d='M0 4h3l4-3v10L3 8H0z'/%3E%3Cpath d='M9 3.5q2 2.5 0 5M11 1.5q4 4.5 0 9' stroke='black' fill='none' stroke-width='1.3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 12'%3E%3Cpath d='M0 4h3l4-3v10L3 8H0z'/%3E%3Cpath d='M9 3.5q2 2.5 0 5M11 1.5q4 4.5 0 9' stroke='black' fill='none' stroke-width='1.3'/%3E%3C/svg%3E")}
.snd:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.snd--sm{left:8px;bottom:8px;padding:6px 9px 6px 8px;font-size:9.5px}

.tl{min-width:0}
.tl__chapters{position:relative;height:44px}
.tl__chapters button{position:absolute;bottom:0;left:var(--x);transform:translateX(-1px);border:0;background:none;padding:0 0 8px 8px;border-left:1px solid var(--ink);text-align:left;cursor:pointer;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;line-height:1.3;transition:color .3s}
.tl__chapters button b{display:block;font-family:var(--sans);font-size:13px;letter-spacing:0;text-transform:none;font-weight:500;color:var(--ink)}
.tl__chapters button:last-child{transform:translateX(-100%);border-left:0;border-right:1px solid var(--ink);padding:0 8px 8px 0;text-align:right}
.tl__chapters button.on{color:var(--red)}
.tl__chapters button.on b{color:var(--red)}
.tl__strip{position:relative;cursor:pointer;touch-action:none;user-select:none;outline:none}
.tl__strip:focus-visible{box-shadow:0 0 0 2px var(--red)}
.tl__frames{height:clamp(84px,9vw,128px);background:url(../img/promo-strip.jpg) 0 0/100% 100% no-repeat;border-radius:8px 8px 0 0}
.tl__sound{height:clamp(56px,6vw,84px);background:url(../img/promo-sound.png) 0 0/100% 100% no-repeat;border-top:1px solid var(--hl)}
.tl__bands{position:relative;height:26px;border-top:1px solid var(--hl)}
.tl__bands span{position:absolute;top:0;bottom:0;left:var(--a);width:var(--b);display:flex;align-items:center;padding-left:8px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);border-left:1px solid var(--ink)}
.tl__bands span+span{color:var(--red);border-color:var(--red)}
.tl__head{position:absolute;top:-6px;bottom:0;left:0;width:2px;background:var(--red);transform:translateX(var(--hx,0px));pointer-events:none}
.tl__head::before{content:"";position:absolute;top:0;left:-4px;width:10px;height:10px;border-radius:50%;background:var(--red)}
.tl__scale{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--ink-3)}

.trio{margin-top:clamp(40px,7vh,80px);max-width:980px;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,28px);align-items:end}
.trio .vid{aspect-ratio:var(--ar);border-radius:14px;overflow:hidden;background:#e4e4e2}
.trio video{width:100%;height:100%;object-fit:cover}
.trio .vid--green{background:rgb(34,255,52)}
.trio .vid--green video{object-fit:contain}
figcaption{margin-top:12px;font-size:14px;color:var(--ink-2);line-height:1.45}
figcaption b{display:block;font-family:var(--mono);font-weight:400;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:4px}

.ki{margin-top:clamp(40px,7vh,80px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,28px)}
.ki__card{background:#fff;border-radius:18px;padding:16px 16px 18px;border:1px solid var(--hl)}
.ki__tier{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.ki__tier b{font-weight:400;color:#fff;background:var(--red);padding:4px 8px;border-radius:4px}
.ki__view{position:relative;aspect-ratio:1;margin-top:12px;overflow:hidden;border-radius:10px;background:#fff}
.ki__view img,.ki__view canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ki__view canvas{opacity:0;transition:opacity .25s}
.ki__card.is-ki canvas{opacity:1}
.ki__state{position:absolute;right:10px;top:10px;font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:5px 8px;border-radius:999px;background:var(--paper);color:var(--ink-2)}
.ki__card.is-ki .ki__state{background:var(--ink);color:#fff}
.ki__range{width:100%;margin-top:14px;accent-color:var(--red);cursor:pointer}
.ki__card figcaption{margin-top:10px}

.fmt{display:flex;gap:6px;flex-wrap:wrap}
.fmt button{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--hl);border-radius:10px;background:#fff;cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-2);transition:border-color .3s,background .3s,color .3s}
.fmt button i{display:block;height:14px;width:calc(14px * var(--w) / var(--h));border:1.5px solid currentColor;border-radius:2px}
.fmt button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.fmt button:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.quad{margin-top:clamp(36px,6vh,64px);display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.6vw,22px);align-items:start}
.quad[data-f="16x9"]{grid-template-columns:repeat(2,1fr)}
.quad[data-f="1x1"]{grid-template-columns:repeat(4,1fr)}
.quad .vid{position:relative;border-radius:12px;overflow:hidden;background:#e4e4e2;aspect-ratio:9/16;transition:aspect-ratio .5s var(--ease)}
.quad[data-f="4x5"] .vid{aspect-ratio:4/5}
.quad[data-f="1x1"] .vid{aspect-ratio:1}
.quad[data-f="16x9"] .vid{aspect-ratio:16/9}
.quad video{width:100%;height:100%;object-fit:cover}

#outro{position:relative;z-index:15;background:var(--paper);padding:clamp(90px,16vh,180px) var(--gut) 60px;border-top:1px solid var(--hl)}
#outro .wrap{max-width:1280px;margin:0 auto}
#outro h2{font-weight:500;font-size:clamp(38px,6vw,92px);line-height:.95;letter-spacing:-.04em;max-width:15ch;margin-top:22px}
.grid{margin-top:clamp(48px,8vh,90px);display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--hl)}
.grid div{padding:22px 22px 0 0}
.grid div+div{padding-left:22px;border-left:1px solid var(--hl)}
.grid b{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);font-weight:400}
.grid h3{font-weight:500;font-size:18px;margin:10px 0 8px;letter-spacing:-.01em}
.grid p{color:var(--ink-2);font-size:14px}
.stats{margin-top:clamp(56px,9vh,110px);display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.stats b{display:block;font-weight:400;font-family:var(--serif);font-size:clamp(56px,8vw,120px);line-height:.9;color:var(--red)}
.stats span{display:block;margin-top:12px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.also{margin-top:clamp(56px,9vh,100px);padding:22px 24px;border:1px solid var(--hl);border-radius:16px;display:flex;flex-wrap:wrap;gap:12px 28px;align-items:baseline;color:var(--ink-2)}
.also b{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-weight:400}
#outro footer{margin-top:80px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.case-nav,.cta,.site-footer{position:relative;z-index:15}
.case-nav,.cta{color:var(--c-ink);background:var(--c-bg)}

.nogl #stage{background:var(--paper) url(../media/viewport.jpg) 72% 50%/auto 82% no-repeat}

@media (max-width:860px){
  nav.dots{display:none}
  .ch{padding:0 12px;display:flex;flex-direction:column;justify-content:flex-end}
  .card{position:sticky;top:auto;bottom:12px;margin-bottom:12px;width:100%;max-height:52svh;overflow:auto;border-radius:16px;padding:18px 18px 16px}
  .card h2{font-size:24px;margin:10px 0 8px}
  .card p{font-size:14.5px}
  #hero{display:block;min-height:130svh}
  #hero .inner{padding-left:4px;padding-right:4px;padding-bottom:max(22px,4vh)}
  #hero h1{font-size:clamp(42px,12vw,62px)}
  #hero p.lead{font-size:15px}
  .roles{margin-top:18px}
  .scroll{margin-top:22px}
  .spot{grid-template-columns:1fr}
  .phone{max-width:300px;width:100%;margin:0 auto}
  .tl__chapters button{font-size:0;padding-bottom:6px}
  .tl__chapters button b{font-size:11px}
  .trio{grid-template-columns:repeat(3,1fr);gap:10px}
  .trio figcaption{font-size:12px}
  .ki{grid-template-columns:1fr;max-width:420px;margin-left:auto;margin-right:auto}
  .quad{grid-template-columns:1fr 1fr!important}
  .grid{grid-template-columns:1fr 1fr}
  .grid div,.grid div+div{padding:20px 0;border-left:0;border-bottom:1px solid var(--hl)}
  .grid div:nth-child(odd){padding-right:14px}
  .stats{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .scroll i::after{animation:none}
  .quad .vid{transition:none}
}

.site-header--over:not(.site-header--past-hero):not(.site-header--scrolled) .logo{--logo-accent:currentColor}
