/* ---------- intro ---------- */
html:not(.ready) .hero *,html:not(.ready) .hero{animation-play-state:paused!important}
.skip-intro .intro{display:none}
.intro{position:fixed;inset:0;z-index:1000;background:var(--ink);display:grid;place-items:center;cursor:pointer;
  clip-path:inset(0 0 0 0);transition:clip-path 1s cubic-bezier(.77,0,.18,1)}
.intro.out{clip-path:inset(0 0 100% 0)}
.intro::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--signal);box-shadow:0 0 18px var(--signal);opacity:0;transition:opacity .3s}
.intro.out::after{opacity:1}
.intro-inner{display:flex;align-items:center;gap:clamp(14px,2vw,26px);transition:transform 1s cubic-bezier(.77,0,.18,1),opacity .8s}
.intro.out .intro-inner{transform:translateY(-30vh) scale(.9);opacity:0}
.intro-mark{width:clamp(72px,10vw,120px);aspect-ratio:81/83}
.intro-word{font-size:clamp(44px,7vw,92px);font-weight:800;letter-spacing:-.05em;display:flex;overflow:hidden;padding-bottom:.08em}
.intro-word span{display:inline-block;transform:translateY(110%);transition:transform .9s var(--ease) calc(.55s + var(--i)*45ms)}
.intro.go .intro-word span{transform:none}
.intro-count{position:absolute;right:clamp(16px,4vw,48px);bottom:clamp(16px,4vw,40px);font:500 12px "JetBrains Mono",monospace;letter-spacing:.2em;color:var(--mute)}
.intro-skip{position:absolute;left:clamp(16px,4vw,48px);bottom:clamp(16px,4vw,40px);font:500 11px "JetBrains Mono",monospace;letter-spacing:.2em;color:#4a5263;text-transform:uppercase}

/* assembling mark */
.mark{display:block;width:100%;height:100%;overflow:visible}
.mark.assemble polygon{transform-box:fill-box;transform-origin:center;opacity:0;
  transform:translate(var(--dx),var(--dy)) rotate(var(--r)) scale(.2);
  transition:transform 1.1s cubic-bezier(.34,1.4,.5,1) calc(var(--i)*55ms),opacity .5s calc(var(--i)*55ms)}
.go .mark.assemble polygon,.in .mark.assemble polygon,.mark.assemble.in polygon{transform:none;opacity:1}
.logo .markbox{width:30px;height:30px;transition:transform .8s var(--ease)}
.logo:hover .markbox{transform:rotate(-8deg) scale(1.08)}

/* page progress */
.pagebar{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;pointer-events:none}
.pagebar i{display:block;height:100%;width:100%;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,#24b993,#13a4d6,#c1c800,#ffc400,#fba100,#dc2d28)}

/* hero search input */
button.btn{border:0;font:600 14px "Inter Tight",sans-serif;cursor:pointer}
.search .field{position:relative;flex:1;min-width:0}
.search input::-webkit-search-cancel-button{-webkit-appearance:none}
.search input{-webkit-appearance:none;appearance:none;width:100%;background:transparent;border:0;outline:0;color:var(--text);font:500 17px "Inter Tight",sans-serif;padding:6px 0;caret-color:var(--signal)}
.search .typed{position:absolute;left:0;top:50%;transform:translateY(-50%);pointer-events:none;transition:opacity .2s;max-width:100%}
.search input:focus+.typed,.search input:not(:placeholder-shown)+.typed{opacity:0}
.search:focus-within{background:rgba(12,16,24,.92)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cursor.away{opacity:0}

/* bridge */
.bridge{padding:clamp(60px,10vw,140px) 0;overflow:hidden;position:relative}
.bridge .row{display:flex;white-space:nowrap;font-size:clamp(56px,11vw,180px);font-weight:800;letter-spacing:-.05em;line-height:1;will-change:transform}
.bridge .row span{display:inline-flex;align-items:center;gap:.25em;padding-right:.25em}
.bridge .row .bm{display:inline-block;width:.62em;height:.62em}
.bridge .r2{color:transparent;-webkit-text-stroke:1.5px rgba(238,241,246,.5)}
.bridge .r2 em{font-style:normal;-webkit-text-stroke:0;color:var(--signal)}

/* lens mixer */
.mixer{display:grid;grid-template-columns:minmax(280px,.9fr) 1.4fr;gap:clamp(28px,5vw,80px);margin-top:70px;align-items:start}
@media (max-width:900px){.mixer{grid-template-columns:1fr}}
.mx-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.mx-presets button{all:unset;cursor:pointer;padding:9px 14px;border-radius:999px;border:1px solid var(--line);font:500 12px "JetBrains Mono",monospace;color:var(--mute);transition:all .35s var(--ease)}
.mx-presets button:hover{color:var(--text);border-color:rgba(255,255,255,.3)}
.mx-presets button.on{background:var(--signal);color:var(--ink);border-color:var(--signal)}
.mx-presets button:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
.mx-sl{display:grid;gap:6px;margin-bottom:18px;--stage:var(--c)}
.mx-sl label{display:flex;justify-content:space-between;font:500 12px "JetBrains Mono",monospace;letter-spacing:.08em;color:var(--mute)}
.mx-sl label b{color:var(--c);font-weight:600}
.mx-shape{width:min(260px,70%);display:block;margin:26px auto 0;overflow:visible}
.mx-pick{margin-top:18px;text-align:center;font:500 12px "JetBrains Mono",monospace;color:var(--mute);letter-spacing:.1em;text-transform:uppercase}
.mx-pick b{display:block;margin-top:8px;font:800 26px "Inter Tight",sans-serif;letter-spacing:-.03em;text-transform:none;color:var(--text)}
.mx-list{position:relative;list-style:none}
.mx-row{position:absolute;left:0;right:0;top:0;height:64px;display:grid;grid-template-columns:44px 1fr 120px 64px;gap:14px;align-items:center;
  padding:0 16px;border-radius:16px;background:var(--ink-2);border:1px solid var(--line);
  transition:transform .8s var(--ease),border-color .5s,box-shadow .5s,background .5s}
.mx-row .rk{font:600 20px "JetBrains Mono",monospace;color:var(--mute)}
.mx-row .nm b{display:block;font-weight:600;font-size:16px;letter-spacing:-.01em}
.mx-row .nm small{font:400 11px "JetBrains Mono",monospace;color:var(--mute)}
.mx-row .sub{display:flex;gap:3px;align-items:flex-end;height:26px}
.mx-row .sub i{flex:1;border-radius:2px;background:var(--c);opacity:.85;height:calc(var(--v)*1%);transition:opacity .4s}
.mx-row .sc{font:600 18px "JetBrains Mono",monospace;text-align:right}
.mx-row .bar{position:absolute;left:16px;right:16px;bottom:0;height:2px;border-radius:2px;background:linear-gradient(90deg,#24b993,var(--signal));transform-origin:left;transform:scaleX(var(--s,0));transition:transform .8s var(--ease)}
.mx-row.top{border-color:rgba(198,255,61,.45);box-shadow:0 18px 50px -20px rgba(198,255,61,.35)}
.mx-row.top .rk{color:var(--signal)}
.mx-row.up{background:#0f1a12}.mx-row.down{background:#1a0f13}
@media (max-width:560px){.mx-row{grid-template-columns:30px 1fr 52px;gap:10px}.mx-row .sub{display:none}}

/* CTA sculpture */
.cta{isolation:isolate}
.cta .sculpt{position:absolute;left:50%;bottom:-6%;width:min(1500px,140vw);transform:translateX(-50%);z-index:-1;opacity:.5;mix-blend-mode:screen;pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 40%,#000 70%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0%,#000 40%,#000 70%,transparent 100%)}

/* nav sound toggle */
.sound-btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;border:1px solid var(--line);
  font:500 12px "JetBrains Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);transition:all .3s}
.sound-btn:hover{color:var(--text);border-color:rgba(255,255,255,.3)}
.sound-btn.on{color:var(--signal);border-color:rgba(198,255,61,.4)}
.sound-btn:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
.nav-right{display:flex;align-items:center;gap:10px}
@media (max-width:560px){.sound-btn>span:last-child{display:none}.sound-btn{padding:12px}}

/* context cursor */
.cursor{display:grid;place-items:center}
.cursor b{font:600 10px "JetBrains Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:#06080d;opacity:0;transform:scale(.6);transition:opacity .25s,transform .35s var(--ease)}
.cursor.labeled{width:88px;height:88px;margin:-44px 0 0 -44px;background:var(--signal);border-color:var(--signal);mix-blend-mode:normal}
.cursor.labeled b{opacity:1;transform:none}

/* hero headline letters (weight follows the cursor) */
.hero h1 .lt{display:inline;font-weight:inherit}

/* CTA particle logo */
.cta-particles{display:block;width:min(440px,86vw);aspect-ratio:1;margin:-40px auto -50px;cursor:pointer;touch-action:pan-y}

/* exit wipe */
.portal{position:fixed;inset:0;width:100%;height:100%;z-index:2000;pointer-events:none;display:none}
.portal-label{position:fixed;inset:0;z-index:2001;display:none;place-items:center;font:800 clamp(28px,5vw,64px) "Inter Tight",sans-serif;letter-spacing:-.04em;color:#eef1f6;pointer-events:none;opacity:0;transition:opacity .4s}
.portal-label.on{display:grid;opacity:1}

/* chat follow-ups */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;opacity:0;transform:translateY(10px);transition:all .6s var(--ease)}
.chips.in{opacity:1;transform:none}
.chips button{all:unset;cursor:pointer;padding:9px 14px;border-radius:999px;border:1px solid rgba(198,255,61,.3);color:var(--signal);font:500 13px "Inter Tight",sans-serif;transition:all .3s}
.chips button:hover{background:var(--signal);color:var(--ink)}
.chips button:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
.chat{max-height:none}

/* links into the research app */
.text-link{display:inline-flex;margin-top:22px;font:500 13px "JetBrains Mono",monospace;letter-spacing:.06em;color:var(--signal);position:relative}
.text-link::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(.3);transform-origin:left;transition:transform .5s var(--ease)}
.text-link:hover::after{transform:scaleX(1)}
#lens>.text-link{margin-top:36px}
.foot-links{display:flex;flex-wrap:wrap;gap:18px}
.foot-links a{color:var(--mute);transition:color .3s}
.foot-links a:hover{color:var(--text)}
