:root{--bg: #09090b;--ink: #ECEAE3;--dim: #7A7872;--line: #26262A;--fail: #FF3B30;--pass: #36D399;--accent: #FF3B30}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;overflow:hidden;background:var(--bg)}body{font-family:Familjen Grotesk,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior:none}.mono{font-family:IBM Plex Mono,monospace}.deck{position:fixed;inset:0}.slide{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,7vw,90px);padding-bottom:clamp(64px,12vh,120px);opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease;pointer-events:none;overflow:hidden}.slide.active{opacity:1;transform:translateY(0);pointer-events:auto}.kicker{font-family:IBM Plex Mono,monospace;font-size:clamp(10px,2.6vw,13px);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:clamp(18px,4vh,30px);display:flex;align-items:center;gap:10px}.kicker:before{content:"";width:22px;height:1px;background:var(--accent);display:inline-block}h1{font-family:IBM Plex Mono,monospace;font-weight:700;font-size:clamp(34px,9vmin,86px);line-height:1.02;letter-spacing:-.02em}h2{font-family:IBM Plex Mono,monospace;font-weight:600;font-size:clamp(26px,6.4vmin,56px);line-height:1.08;letter-spacing:-.02em;margin-bottom:clamp(16px,3.5vh,28px)}.lead{font-size:clamp(17px,4.4vmin,30px);line-height:1.42;color:var(--ink);font-weight:400;max-width:18ch}p.body{font-size:clamp(15px,3.7vmin,21px);line-height:1.55;color:var(--dim);max-width:34ch;margin-top:clamp(14px,3vh,22px)}p.body strong{color:var(--ink);font-weight:600}.accent{color:var(--accent)}.rows{margin-top:clamp(20px,4vh,34px);display:flex;flex-direction:column;gap:clamp(12px,2.4vh,18px);max-width:40ch}.row{display:flex;gap:14px;align-items:baseline;font-size:clamp(15px,3.7vw,20px);line-height:1.4}.row .n{font-family:IBM Plex Mono,monospace;color:var(--accent);font-size:clamp(12px,3vw,15px);flex-shrink:0;min-width:22px}.row span.t{color:var(--ink)}.row span.t b{color:var(--ink);font-weight:600}.row .muted{color:var(--dim)}.matrix{margin-top:clamp(20px,4vh,32px);width:100%;max-width:560px}.matrix table{width:100%;border-collapse:collapse;font-family:IBM Plex Mono,monospace}.matrix th,.matrix td{padding:clamp(8px,2vw,14px) clamp(4px,1.6vw,10px);text-align:center;font-size:clamp(10px,2.7vw,14px);border:1px solid var(--line)}.matrix th{color:var(--dim);font-weight:500;letter-spacing:.04em}.matrix td.lbl{text-align:left;color:var(--ink);white-space:nowrap}.cell{display:inline-block;width:clamp(20px,5.4vw,30px);height:clamp(20px,5.4vw,30px);border-radius:5px;line-height:1}.p{background:#36d39929;color:var(--pass);border:1px solid rgba(54,211,153,.4)}.f{background:#ff3b3029;color:var(--fail);border:1px solid rgba(255,59,48,.45)}.cellwrap{display:flex;align-items:center;justify-content:center}.cellwrap span{font-size:clamp(11px,2.8vw,15px);font-weight:600}.caption{font-family:IBM Plex Mono,monospace;font-size:clamp(11px,2.8vw,13px);color:var(--dim);margin-top:clamp(14px,3vh,20px);max-width:36ch;line-height:1.5}.flow{margin-top:clamp(22px,4.5vh,36px);display:flex;flex-direction:column;gap:clamp(10px,2.2vh,16px);max-width:34ch}.step{display:flex;align-items:center;gap:14px;font-family:IBM Plex Mono,monospace;font-size:clamp(13px,3.4vw,18px);color:var(--ink)}.step .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}.step .arrow{color:var(--dim)}.big-num{font-family:IBM Plex Mono,monospace;font-weight:700;font-size:clamp(40px,12vw,110px);line-height:1;letter-spacing:-.03em}.two{display:flex;flex-direction:column;gap:clamp(20px,4vh,30px);margin-top:clamp(18px,3.5vh,26px)}.two .col .h{font-family:IBM Plex Mono,monospace;font-size:clamp(11px,2.8vw,13px);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.two .col p{font-size:clamp(14px,3.5vw,19px);line-height:1.5;color:var(--dim);max-width:36ch}.two .col p b{color:var(--ink);font-weight:600}.fmf{display:flex;flex-direction:column;gap:clamp(14px,3vh,22px);max-width:42ch}.fmf-row{display:flex;flex-direction:column;gap:6px;border-left:2px solid var(--accent);padding-left:clamp(12px,3vw,18px)}.fmf-h{font-size:clamp(10px,2.7vw,13px);letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.fmf-b{font-size:clamp(14px,3.5vw,19px);line-height:1.48;color:var(--dim)}.fmf-b b{color:var(--ink);font-weight:600}.term{width:100%;max-width:540px;margin-top:clamp(16px,3.5vh,24px);border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#0c0c0f}.term-bar{display:flex;align-items:center;gap:7px;padding:clamp(9px,2.2vw,12px) clamp(12px,3vw,16px);border-bottom:1px solid var(--line)}.term-bar i{width:9px;height:9px;border-radius:50%;background:var(--line);display:block}.term-bar .tt{font-family:IBM Plex Mono,monospace;font-size:clamp(10px,2.5vw,12px);color:var(--dim);margin-left:8px;letter-spacing:.04em}.term-body{padding:clamp(12px,3vw,18px) clamp(13px,3.4vw,20px);font-family:IBM Plex Mono,monospace;font-size:clamp(10.5px,2.75vw,13.5px);line-height:1.7;color:var(--dim);overflow:auto;white-space:pre;scrollbar-width:thin;scrollbar-color:var(--line) transparent;-webkit-overflow-scrolling:touch}.term-body::-webkit-scrollbar{width:6px;height:6px}.term-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.term-body::-webkit-scrollbar-thumb:hover{background:#3a3a40}.term-body::-webkit-scrollbar-track{background:transparent}.slide:has(.term){justify-content:flex-start;padding-top:clamp(70px,12vh,130px)}.slide:has(.term) .term{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.slide:has(.term) .term-body{flex:1 1 auto;min-height:0}.term-body .cmd{color:var(--ink)}.term-body .cmd:before{content:"$ ";color:var(--accent)}.term-body .ok{color:var(--pass)}.term-body .no{color:var(--fail)}.term-body .mut{color:#54534f}.term-body .hl{color:var(--ink)}.repo-facts{display:flex;flex-wrap:wrap;gap:clamp(8px,2vw,12px);margin-top:clamp(16px,3.5vh,22px);max-width:560px}.chip{font-family:IBM Plex Mono,monospace;font-size:clamp(10px,2.6vw,12px);color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:6px 13px;letter-spacing:.03em}.chip b{color:var(--ink);font-weight:600}.nav{position:fixed;left:0;right:0;bottom:0;padding:18px clamp(24px,6vw,56px) calc(18px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;z-index:20;pointer-events:none}.dots{display:flex;gap:7px;pointer-events:auto}.dots i{width:7px;height:7px;border-radius:50%;background:var(--line);cursor:pointer;transition:all .3s;display:block}.dots i.on{background:var(--accent);width:20px;border-radius:4px}.count{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--dim);letter-spacing:.1em}.count b{color:var(--ink)}.progress{position:fixed;top:0;left:0;height:2px;background:var(--accent);z-index:30;transition:width .5s ease}.brand{position:fixed;top:0;left:0;right:0;padding:clamp(20px,5vw,40px) clamp(24px,6vw,56px) 0;display:flex;justify-content:space-between;align-items:center;font-family:IBM Plex Mono,monospace;font-size:clamp(11px,2.8vw,13px);letter-spacing:.14em;z-index:15;pointer-events:none}.brand .l{color:var(--ink);font-weight:600}.brand .r{color:var(--dim)}.tapzone{position:fixed;top:0;bottom:64px;width:34%;z-index:10;cursor:pointer}.tapzone.left{left:0}.tapzone.right{right:0}.hint{position:fixed;bottom:calc(70px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--dim);letter-spacing:.1em;z-index:18;opacity:1;transition:opacity .6s;pointer-events:none}.hint.hide{opacity:0}@media(min-width:760px){.lead{max-width:20ch}.two{flex-direction:row;gap:clamp(40px,6vw,80px)}.two .col{flex:1}}@media(max-height:720px){.slide{padding:clamp(20px,5vw,60px);padding-bottom:clamp(56px,10vh,90px)}.slide:has(.term){padding-top:clamp(56px,10vh,100px)}.kicker{margin-bottom:clamp(12px,2.5vh,22px)}h1{font-size:clamp(26px,7vmin,60px)}h2{font-size:clamp(22px,5.4vmin,44px);margin-bottom:clamp(12px,2.6vh,22px)}.lead{font-size:clamp(15px,3.6vmin,24px)}p.body{font-size:clamp(13px,3vmin,18px);margin-top:clamp(10px,2vh,16px)}.rows{gap:clamp(8px,1.6vh,14px);margin-top:clamp(14px,2.6vh,24px)}.row{font-size:clamp(13px,3vmin,17px)}.flow{gap:clamp(6px,1.4vh,12px);margin-top:clamp(14px,2.8vh,24px)}.step{font-size:clamp(12px,2.8vmin,16px)}.two{gap:clamp(14px,2.8vh,22px);margin-top:clamp(12px,2.5vh,20px)}.two .col p{font-size:clamp(12px,2.8vmin,17px)}.fmf{gap:clamp(10px,2vh,16px)}.fmf-b{font-size:clamp(12px,2.8vmin,17px)}.matrix{margin-top:clamp(12px,2.5vh,22px)}.caption,.repo-facts{margin-top:clamp(10px,2vh,16px)}}@media(max-height:560px){.slide{padding:16px clamp(20px,5vw,48px);padding-bottom:clamp(48px,9vh,72px)}.kicker{font-size:clamp(9px,2.2vmin,12px);margin-bottom:clamp(8px,1.6vh,14px)}h1{font-size:clamp(22px,5.6vmin,44px);line-height:1.04}h2{font-size:clamp(18px,4.5vmin,34px);line-height:1.1;margin-bottom:clamp(8px,1.8vh,14px)}.lead{font-size:clamp(14px,3.2vmin,20px)}p.body{font-size:clamp(12px,2.7vmin,16px);margin-top:clamp(8px,1.6vh,12px)}.rows{gap:clamp(6px,1.2vh,10px);margin-top:clamp(10px,2vh,16px)}.row{font-size:clamp(12px,2.8vmin,15px)}.flow{gap:clamp(4px,1vh,8px);margin-top:clamp(10px,2vh,16px)}.step{font-size:clamp(11px,2.6vmin,14px)}.two{gap:clamp(10px,2vh,16px);margin-top:clamp(8px,1.6vh,12px)}.two .col p{font-size:clamp(11px,2.6vmin,15px)}.two .col .h{margin-bottom:6px}.fmf{gap:clamp(8px,1.5vh,12px)}.fmf-b{font-size:clamp(11px,2.6vmin,15px)}.matrix th,.matrix td{padding:clamp(5px,1.2vw,9px) clamp(3px,1vw,6px)}.cell{width:clamp(16px,4.4vw,24px);height:clamp(16px,4.4vw,24px)}.caption{font-size:clamp(10px,2.4vmin,12px);margin-top:clamp(8px,1.6vh,12px)}.repo-facts{gap:clamp(6px,1.4vw,10px);margin-top:clamp(8px,1.6vh,12px)}.chip{padding:4px 10px;font-size:clamp(9px,2.2vmin,11px)}}.gate[data-astro-cid-b7jmyspo]{position:fixed;inset:0;background:var(--bg);z-index:100;display:flex;align-items:center;justify-content:center;transition:opacity .5s ease}.gate[data-astro-cid-b7jmyspo].unlocked{opacity:0;pointer-events:none}.gate-inner[data-astro-cid-b7jmyspo]{display:flex;flex-direction:column;align-items:center;gap:clamp(20px,4vh,32px)}.gate-brand[data-astro-cid-b7jmyspo]{font-size:clamp(12px,2.8vw,16px);letter-spacing:.24em;color:var(--ink);font-weight:600;text-transform:uppercase}.gate-form[data-astro-cid-b7jmyspo]{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;transition:border-color .2s}.gate-form[data-astro-cid-b7jmyspo]:focus-within{border-color:#3a3a40}.gate-input[data-astro-cid-b7jmyspo]{background:transparent;border:none;color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:clamp(14px,3vmin,16px);padding:clamp(10px,2.4vw,14px) clamp(14px,3.4vw,20px);width:clamp(180px,38vw,260px);outline:none;letter-spacing:.1em}.gate-input[data-astro-cid-b7jmyspo]::placeholder{color:var(--dim);letter-spacing:.06em}.gate-btn[data-astro-cid-b7jmyspo]{background:transparent;border:none;border-left:1px solid var(--line);color:var(--accent);font-family:IBM Plex Mono,monospace;font-size:clamp(16px,3.4vmin,20px);padding:0 clamp(14px,3.2vw,20px);cursor:pointer;transition:background .15s;line-height:1}.gate-btn[data-astro-cid-b7jmyspo]:hover{background:#ff3b3014}.gate-error[data-astro-cid-b7jmyspo]{font-size:clamp(10px,2.4vmin,12px);color:var(--fail);letter-spacing:.16em;text-transform:uppercase;opacity:0;transition:opacity .25s;height:1em}.gate-error[data-astro-cid-b7jmyspo].visible{opacity:1}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.gate-form[data-astro-cid-b7jmyspo].shake{animation:shake .38s ease}
