.labs-page{min-height:100dvh;padding-block:0;position:relative;z-index:1}.labs{display:flex;flex-direction:column;gap:1.75rem;max-width:1100px;margin-inline:auto;padding:clamp(1.5rem,5vw,3rem) clamp(1rem,4vw,2rem) 4rem}.labs-back{font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;color:var(--paper-dim);display:inline-flex;align-items:center;gap:.4rem;transition:color .25s var(--ease);text-decoration:none;width:-moz-fit-content;width:fit-content}.labs-back:hover{color:var(--signal)}.labs-back:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.labs-header{display:flex;flex-direction:column;gap:.75rem}.labs-kicker{margin:0}.labs-title{margin:0;font-size:clamp(2rem,5vw,3.25rem);color:var(--paper)}.labs-lede{margin:0;color:var(--paper-dim);font-family:var(--serif);max-width:55ch;line-height:1.6}.ambient-canvas{border-radius:4px;border:1px solid var(--line);background:rgba(12,11,10,.6)}.ambient-static{display:flex;gap:1rem}.ambient-node{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem 1rem;background:hsla(40,44%,84%,.03);border:1px solid var(--line);border-radius:4px;cursor:pointer;font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-dim);transition:border-color .25s var(--ease),color .25s var(--ease)}.ambient-node--active,.ambient-node:hover{border-color:var(--signal);color:var(--signal)}.ambient-node--static:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.ambient-node__label{pointer-events:none}.agent-picker{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem}.agent-card{display:flex;flex-direction:column;gap:.35rem;text-align:left;padding:1rem 1.1rem;background:hsla(40,44%,84%,.02);border:1px solid var(--line);border-radius:4px;cursor:pointer;transition:border-color .25s var(--ease),background .25s var(--ease);color:inherit;font-family:inherit}.agent-card:hover{border-color:var(--line-strong);background:hsla(40,44%,84%,.04)}.agent-card:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.agent-card--active{border-color:var(--signal);background:rgba(255,138,61,.05)}.agent-card__name{font-family:var(--mono);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--paper)}.agent-card--active .agent-card__name{color:var(--signal)}.agent-card__blurb{font-family:var(--serif);font-size:.88rem;color:var(--paper-dim);line-height:1.5}.chat-panel{gap:.75rem}.chat-messages,.chat-panel{display:flex;flex-direction:column}.chat-messages{gap:1rem;min-height:180px;max-height:460px;overflow-y:auto;padding:1.25rem;background:rgba(12,11,10,.55);border:1px solid var(--line);border-radius:4px;scroll-behavior:smooth}.chat-empty{color:var(--paper-faint);font-family:var(--serif);font-size:.95rem;font-style:italic;margin:0}.chat-bubble{display:flex;flex-direction:column;gap:.2rem;max-width:86%}.chat-bubble--user{align-self:flex-end;align-items:flex-end}.chat-bubble--model{align-self:flex-start;align-items:flex-start}.chat-bubble__label{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}.chat-bubble--user .chat-bubble__label,.chat-bubble__label{color:var(--paper-faint)}.chat-bubble--model .chat-bubble__label{color:var(--signal)}.chat-bubble__text{margin:0;font-family:var(--serif);font-size:.95rem;line-height:1.6;color:var(--paper);padding:.65rem .9rem;border-radius:3px}.chat-bubble--user .chat-bubble__text{background:hsla(40,44%,84%,.07);border:1px solid var(--line-strong)}.chat-bubble--model .chat-bubble__text{background:rgba(255,138,61,.05);border:1px solid rgba(255,138,61,.15)}.chat-typing{display:flex;gap:5px;align-items:center;padding:.5rem .25rem}.chat-typing__dot{width:6px;height:6px;border-radius:50%;background:var(--cool);animation:typing-pulse 1.1s ease-in-out infinite}.chat-typing__dot:nth-child(2){animation-delay:.18s}.chat-typing__dot:nth-child(3){animation-delay:.36s}@keyframes typing-pulse{0%,60%,to{opacity:.25;transform:scale(.85)}30%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.chat-typing__dot{animation:none;opacity:.6}}.chat-error{color:#e05555;font-size:.82rem;padding:.5rem .75rem;border:1px solid rgba(224,85,85,.3);border-radius:3px;background:rgba(224,85,85,.05)}.chat-demo-note,.chat-error{font-family:var(--mono);margin:0}.chat-demo-note{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--paper-faint)}.chat-demo-badge{background:hsla(40,44%,84%,.08);border:1px solid var(--line-strong);border-radius:2px;padding:.1rem .4rem;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-dim)}.chat-form{display:flex;gap:.75rem;align-items:flex-end}.chat-input{flex:1 1;background:rgba(12,11,10,.7);border:1px solid var(--line-strong);border-radius:3px;color:var(--paper);font-family:var(--serif);font-size:.95rem;line-height:1.5;padding:.65rem .9rem;resize:none;transition:border-color .2s var(--ease)}.chat-input::placeholder{color:var(--paper-faint)}.chat-input:focus{border-color:var(--signal)}.chat-input:focus-visible{outline:2px solid var(--signal);outline-offset:2px;border-color:var(--signal)}.chat-input:disabled{opacity:.55;cursor:not-allowed}.chat-send{font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-900);background:var(--signal);border:1px solid var(--signal);border-radius:3px;padding:.7rem 1.2rem;cursor:pointer;white-space:nowrap;transition:background .25s var(--ease),opacity .25s var(--ease);flex-shrink:0;align-self:flex-end}.chat-send:hover:not(:disabled){background:var(--paper);border-color:var(--paper)}.chat-send:disabled{opacity:.4;cursor:not-allowed}.chat-send:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.chat-hint{font-family:var(--mono);font-size:.7rem;color:var(--paper-faint);margin:0;letter-spacing:.06em}.chat-hint kbd{font-family:var(--mono);font-size:.68rem;background:hsla(40,44%,84%,.07);border:1px solid var(--line-strong);border-radius:2px;padding:.05rem .3rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:520px){.agent-picker{grid-template-columns:1fr}.chat-form{flex-direction:column;align-items:stretch}.chat-send{width:100%;padding-block:.85rem}.chat-input{font-size:16px}}.scene3d-wrapper{position:relative;display:flex;flex-direction:column;border-radius:4px;overflow:hidden;border:1px solid var(--line);height:min(78vh,760px);cursor:none}.scene3d-canvas-host{position:absolute;inset:0}.labs--3d{display:block;max-width:none;margin:0;padding:0;gap:0}.labs--3d .scene3d-wrapper{position:fixed;inset:0;width:100vw;height:100dvh;border:none;border-radius:0;z-index:1}.labs-hud{position:absolute;top:clamp(1.1rem,2.6vw,2.2rem);left:clamp(1.1rem,2.6vw,2.4rem);z-index:6;max-width:min(38ch,78vw);display:flex;flex-direction:column;gap:.45rem;pointer-events:none}.labs-hud .labs-back{pointer-events:auto;margin-bottom:.4rem}.labs--3d .labs-title{margin:0;font-size:clamp(1.7rem,3vw,2.7rem);text-shadow:0 2px 26px rgba(7,6,5,.92)}.labs--3d .labs-lede{margin:0;font-size:.9rem;line-height:1.55;color:var(--paper-dim);text-shadow:0 1px 14px rgba(7,6,5,.92)}.labs-hud .labs-lede b{color:var(--signal);font-weight:500}.labs-progress{margin-top:.9rem;width:220px;max-width:62vw;height:2px;background:var(--line-strong);overflow:hidden;border-radius:2px}.labs-progress__fill{height:100%;background:var(--signal);transform-origin:left;box-shadow:0 0 8px var(--signal-glow);transition:transform .12s linear}.labs-progress__pct{margin:.4rem 0 0;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-faint)}.labs-legend{position:absolute;left:clamp(1.1rem,2.6vw,2.4rem);bottom:clamp(2.8rem,5vw,3.6rem);z-index:6;list-style:none;margin:0;padding:.7rem .95rem;display:grid;grid-gap:.42rem;gap:.42rem;background:rgba(7,6,5,.5);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);border:1px solid var(--line);border-radius:5px;pointer-events:none}.labs-legend__item{display:flex;align-items:center;gap:.55rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim)}.labs-legend__glyph{font-size:.95rem;width:1em;text-align:center;filter:drop-shadow(0 0 5px currentColor)}@media (max-width:900px){.labs-legend{display:none}.labs-hud{max-width:72vw}}.lab-stage{position:absolute;inset:0;overflow:hidden;background:#060504 url(/labs-assets/lab-backdrop.png) center 62%/cover no-repeat;cursor:none}.lab-stage__grade{inset:0;background:linear-gradient(180deg,rgba(7,6,5,.62) 0,rgba(7,6,5,.08) 30%,transparent 60%,rgba(7,6,5,.55))}.lab-ambient,.lab-stage__grade{position:absolute;pointer-events:none}.lab-ambient{opacity:.38;filter:drop-shadow(0 0 10px rgba(255,138,61,.4));animation:lab-drift var(--dur,11s) ease-in-out infinite alternate;will-change:transform;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lab-agent{position:absolute;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:0;margin:0;cursor:none;display:flex;flex-direction:column;align-items:center;width:clamp(124px,14vw,188px);transition:transform .5s var(--ease);z-index:3}.lab-agent__glow{position:absolute;top:36%;left:50%;width:250px;height:250px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,138,61,.55) 0,rgba(255,138,61,.12) 40%,transparent 68%);filter:blur(10px);opacity:.5;pointer-events:none;transition:opacity .4s var(--ease),transform .4s var(--ease);z-index:0}.lab-agent__img{position:relative;width:100%;height:auto;z-index:1;filter:drop-shadow(0 12px 30px rgba(0,0,0,.6)) drop-shadow(0 0 24px rgba(255,138,61,.45));animation:lab-float 6s ease-in-out infinite;transition:transform .4s var(--ease),filter .4s var(--ease);-webkit-user-select:none;-moz-user-select:none;user-select:none}.lab-agent__plate{position:relative;z-index:2;margin-top:-.5rem;display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center}.lab-agent__name{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--paper);transition:color .25s var(--ease)}.lab-agent__name,.lab-agent__status{text-shadow:0 1px 8px rgba(0,0,0,.9)}.lab-agent__status{font-size:.62rem;letter-spacing:.14em;color:var(--cool)}.lab-agent:hover{z-index:5}.lab-agent:hover .lab-agent__img{transform:scale(1.1) translateY(-4px);filter:drop-shadow(0 16px 34px rgba(0,0,0,.6)) drop-shadow(0 0 38px rgba(255,138,61,.85))}.lab-agent:hover .lab-agent__glow{opacity:.95;transform:translate(-50%,-50%) scale(1.18)}.lab-agent:hover .lab-agent__name{color:var(--signal)}.lab-agent:focus-visible .lab-agent__img{outline:2px solid var(--signal);outline-offset:8px;transform:scale(1.08)}.lab-agent.is-active .lab-agent__glow{opacity:1;background:radial-gradient(circle,rgba(255,138,61,.72) 0,rgba(255,138,61,.18) 42%,transparent 70%)}.lab-agent.is-active .lab-agent__img{filter:drop-shadow(0 16px 34px rgba(0,0,0,.6)) drop-shadow(0 0 42px rgba(255,138,61,.9))}.lab-agent.is-active .lab-agent__name,.lab-agent.is-active .lab-agent__status{color:var(--signal)}@keyframes lab-float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes lab-drift{0%{translate:0 0}to{translate:0 -18px}}@media (prefers-reduced-motion:reduce){.lab-agent__img,.lab-ambient{animation:none!important}}.scene3d-hint{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--paper-faint);margin:0;padding:.4rem .75rem .6rem;background:rgba(7,6,5,.85);border-top:1px solid var(--line);text-align:center;left:0;z-index:2}.chat-overlay,.scene3d-hint{position:absolute;bottom:0;right:0}.chat-overlay{top:0;width:380px;max-width:100%;display:flex;flex-direction:column;background:rgba(7,6,5,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-left:1px solid rgba(111,214,201,.25);z-index:10;animation:slide-in-right .28s var(--ease) both}@keyframes slide-in-right{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.chat-overlay__header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--line);gap:1rem;flex-shrink:0}.chat-overlay__agent-name{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--signal)}.chat-overlay__body{flex:1 1;overflow:hidden;padding:.75rem 1rem 1rem;display:flex;flex-direction:column}.chat-overlay__body .chat-panel{flex:1 1;display:flex;flex-direction:column;min-height:0}.chat-overlay__body .chat-messages{flex:1 1;max-height:none;min-height:0;background:rgba(7,6,5,.5)}@media (max-width:680px){.chat-overlay{top:auto;left:0;right:0;width:100%;height:60%;border-left:none;border-top:1px solid rgba(111,214,201,.25);animation:slide-in-bottom .28s var(--ease) both}@keyframes slide-in-bottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}}.chat-section{display:flex;flex-direction:column;gap:.75rem}.labs-back-lab{font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;color:var(--paper-dim);background:none;border:none;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:.4rem;transition:color .25s var(--ease);width:-moz-fit-content;width:fit-content}.labs-back-lab:hover{color:var(--cool)}.labs-back-lab:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.labs-preloader{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#070605;font-family:var(--mono)}.labs-preloader__inner{display:flex;flex-direction:column;gap:1.2rem;align-items:flex-start;min-width:220px}.labs-preloader__kicker{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--paper-faint);margin:0}.labs-preloader__counter{font-size:clamp(2.5rem,8vw,5rem);font-weight:700;color:var(--paper);letter-spacing:-.02em;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.labs-preloader__bar{width:100%;height:1px;background:var(--line-strong);position:relative;overflow:visible}.labs-preloader__bar-fill{position:absolute;inset-block:0;left:0;background:var(--signal);transition:width .04s linear;box-shadow:0 0 8px var(--signal)}.labs-preloader__enter{font-family:var(--mono);font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;color:var(--signal);background:none;border:1px solid rgba(255,138,61,.4);border-radius:2px;padding:.55rem 1.1rem;cursor:pointer;transition:background .2s ease,color .2s ease;animation:enter-fade-in .4s ease both}.labs-preloader__enter:hover{background:rgba(255,138,61,.1)}.labs-preloader__enter:focus-visible{outline:2px solid var(--signal);outline-offset:3px}@keyframes enter-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.labs-cursor{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;display:flex;align-items:center;gap:.5rem;transform:translate(-50%,-50%);will-change:transform}.labs-cursor__dot{width:8px;height:8px;border-radius:50%;background:var(--signal);flex-shrink:0;transition:transform .2s ease}.labs-cursor[data-active] .labs-cursor__dot{transform:scale(1.6)}.labs-cursor__label{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--signal);background:rgba(7,6,5,.8);border:1px solid rgba(255,138,61,.3);border-radius:2px;padding:.18rem .5rem;white-space:nowrap;animation:cursor-label-in .15s ease both}@keyframes cursor-label-in{0%{opacity:0;transform:translateX(-4px)}to{opacity:1;transform:none}}