:root{color-scheme:dark;--bg: #030507;--bg-soft: #0a0e12;--surface: #111820;--surface-2: #0d141c;--text: #e8eef2;--text-muted: rgba(232, 238, 242, .66);--accent: #00f0ff;--accent-rgb: 0, 240, 255;--accent-2: #2dd4bf;--accent-3: #f59e0b;--ros: #9b2c2c;--danger: #ef4444;--success: #22c55e;--warning: #f59e0b;--font-display: "Syne", "Syne Fallback", sans-serif;--font-body: "Space Grotesk", "Space Grotesk Fallback", sans-serif;--font-mono: "Share Tech Mono", "Cockpit Mono", ui-monospace, "DejaVu Sans Mono", "Liberation Mono", monospace;--fs-hero: clamp(2.65rem, 7.4vw, 5.75rem);--fs-h2: clamp(1.8rem, 2.1vw + 1.15rem, 3.35rem);--fs-lead: clamp(1.02rem, .9rem + .45vw, 1.28rem);--fs-body: clamp(.97rem, .92rem + .22vw, 1.08rem);--lh-body: 1.68;--lh-relaxed: 1.75;--nav-h: 64px;--max-w: 1360px;--radius: 14px;--glass: rgba(10, 14, 18, .65);--nav-ctrl-size: 32px;--nav-cluster-gap: 8px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--accent) var(--bg);scroll-padding-top:calc(var(--nav-h) + var(--safe-top, 0px) + 16px);-webkit-text-size-adjust:100%;text-size-adjust:100%;font-synthesis-style:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);overflow-x:hidden;-webkit-font-smoothing:antialiased}p{text-wrap:pretty}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.5) 100%)}body:after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat}h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;line-height:1.15}a{color:var(--accent);text-decoration:none;transition:color .25s ease}a:hover{color:#fff}button{font-family:inherit;cursor:pointer;background:none;border:none;color:inherit}p,h1,h2,h3,h4,li,a,.mono{overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;word-break:normal}:is(.glass-card,.project-card,.skill-group,.about-bio,.about-approach,.tr-card,.tr-step,.tr-stage,.tr-audience-item,.tr-need-card,.tr-req-row,.tr-faq-item,.contact-card,.telemetry-item,.mc-unit-row,.ros2-panel,.robot-bubble){min-width:0;overflow-wrap:break-word}.contact-email{overflow-wrap:break-word}::selection{background:var(--accent);color:#000}h1,h2,h3{text-wrap:balance}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:3px}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--bg-soft) inset;transition:background-color 9999s ease-out 0s}.skip-link{position:fixed;top:-60px;left:16px;z-index:200;padding:10px 18px;border-radius:999px;background:var(--accent);color:#000;font-weight:600;font-size:13px;transition:top .2s ease}.skip-link:focus-visible{top:12px;color:#000}.app{position:relative;z-index:2;width:100%;min-height:100vh;min-height:100svh;pointer-events:none}.app :is(a,button,input,select,textarea,label,iframe,.joystick){pointer-events:auto}.robot-stage{position:fixed;inset:0;z-index:1;pointer-events:none}.robot-stage canvas{pointer-events:auto;touch-action:pan-y}.robot-scene{width:100%;height:100%}.robot-stage:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,#030507e6,#03050700 26%)}section{position:relative;width:100%;max-width:var(--max-w);margin:0 auto;padding:clamp(72px,10vh,128px) clamp(20px,5vw,48px)}.section-label{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:22px}.section-label:before{content:"";width:36px;height:1px;background:var(--accent)}.section-title{font-size:var(--fs-h2);text-transform:uppercase;text-wrap:balance;margin-bottom:18px}.section-desc{font-size:var(--fs-lead);line-height:var(--lh-relaxed);color:var(--text-muted);max-width:80ch;margin-bottom:40px}.hud-corner{position:absolute;width:16px;height:16px;border:1.5px solid rgba(var(--accent-rgb),.7);border:1.5px solid color-mix(in srgb,var(--accent) 70%,transparent);pointer-events:none;opacity:.85}.hud-corner.tl{top:0;left:0;border-right:none;border-bottom:none;border-radius:6px 0 0}.hud-corner.tr{top:0;right:0;border-left:none;border-bottom:none;border-radius:0 6px 0 0}.hud-corner.bl{bottom:0;left:0;border-right:none;border-top:none;border-radius:0 0 0 6px}.hud-corner.br{bottom:0;right:0;border-left:none;border-top:none;border-radius:0 0 6px}.glass-card{background:var(--glass);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);box-shadow:0 20px 60px #00000073}.mono{font-family:var(--font-mono)}.accent{color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.minimal-nav{position:fixed;top:0;left:0;right:0;height:calc(var(--nav-h) + var(--safe-top, 0px));padding-top:var(--safe-top, 0px);box-sizing:border-box;z-index:100;background:#03050799;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.06)}.minimal-nav-inner{max-width:var(--max-w);margin:0 auto;height:100%;display:flex;align-items:center;justify-content:center;padding-left:max(clamp(16px,4vw,48px),var(--safe-left, 0px));padding-right:max(clamp(16px,4vw,48px),var(--safe-right, 0px));position:relative}.nav-toggle{position:absolute;left:max(clamp(16px,4vw,48px),var(--safe-left, 0px));top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:1.15rem;color:var(--text-muted);background:#0305078c;border:1px solid rgba(255,255,255,.14);border-radius:10px;transition:color .25s ease,border-color .25s ease}.nav-toggle:hover{color:var(--accent);border-color:var(--accent)}.nav-toggle.is-open{color:var(--accent);border-color:var(--accent);box-shadow:0 0 16px rgba(var(--accent-rgb),.3);box-shadow:0 0 16px color-mix(in srgb,var(--accent) 30%,transparent)}.nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@keyframes navDrop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.nav-items{display:none;position:absolute;top:calc(var(--nav-h) + var(--safe-top, 0px) + 10px);left:max(clamp(16px,4vw,48px),var(--safe-left, 0px));width:min(340px,calc(100vw - 32px));flex-direction:column;gap:2px;padding:10px;background:#030507f7;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:14px;box-shadow:0 28px 56px #0009;max-height:calc(100vh - var(--nav-h) - var(--safe-top, 0px) - 24px);max-height:calc(100dvh - var(--nav-h) - var(--safe-top, 0px) - 24px);overflow-y:auto;z-index:5}.nav-items.open{display:flex;animation:navDrop .18s ease-out}.nav-item{display:inline-flex;align-items:center;gap:10px;width:100%;padding:12px;border-radius:9px;font-size:14.5px;font-weight:500;color:#ffffff80;letter-spacing:.05em;position:relative;transition:color .25s ease,background .25s ease;text-align:left}.nav-item:hover{color:#ffffffe6;background:#ffffff0a}.nav-item-num{font-family:var(--font-mono);font-size:11px;opacity:.6}.nav-item.active{color:#fff;background:rgba(var(--accent-rgb),.13);background:color-mix(in srgb,var(--accent) 13%,transparent)}.nav-item.active:after{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--accent)}.nav-progress{position:absolute;bottom:0;left:0;width:100%;height:1px;background:#ffffff0f}.nav-progress div{height:100%;background:var(--accent);transition:width .2s ease-out}.lang-toggle{display:inline-flex;align-items:center;gap:4px;box-sizing:border-box;height:var(--nav-ctrl-size);padding:0 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#03050773;font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.1em;color:#ffffff8c;cursor:pointer;transition:all .2s ease;pointer-events:auto}.lang-toggle .sep{opacity:.35}.lang-toggle .is-active,.lang-toggle:hover{color:#fff;border-color:var(--accent);background:#080c12d9}.lang-toggle .is-active{color:var(--accent)}.lang-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.nav-cluster{position:absolute;right:max(clamp(12px,2.5vw,28px),var(--safe-right, 0px));top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:var(--nav-cluster-gap);z-index:2}.voice-controls{display:inline-flex;align-items:center;gap:var(--nav-cluster-gap);pointer-events:auto}.voice-btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--nav-ctrl-size);height:var(--nav-ctrl-size);border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#03050773;color:#ffffff8c;font-size:12px;cursor:pointer;transition:all .2s ease;pointer-events:auto}.voice-btn:hover{color:#fff;border-color:var(--accent);background:#080c12d9}.voice-btn.is-active{color:#4caf50;border-color:#4caf50b3;box-shadow:0 0 12px #4caf5040}.voice-btn.is-off{color:#f44;border-color:#ff444480}.voice-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.minimal-nav.cockpit-only .nav-toggle,.minimal-nav.cockpit-only .nav-items,.minimal-nav.cockpit-only .nav-progress{display:none}.nav-logout{position:absolute;left:max(clamp(16px,4vw,48px),var(--safe-left, 0px));top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#03050773;color:#ffffffbf;font-size:12px;cursor:pointer;transition:all .2s ease}.nav-logout:hover{color:#fff;border-color:var(--accent);background:#080c12d9}.nav-logout:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.voice-settings{position:absolute;top:calc(100% + 10px);right:max(clamp(12px,2.5vw,28px),var(--safe-right, 0px));width:min(340px,calc(100vw - 24px));max-height:min(70vh,560px);overflow-y:auto;padding:14px 16px 16px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:#080c12eb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 18px 50px #00000080,0 0 0 1px #ffffff08 inset;color:#e8ecf2;font-family:var(--font-mono);animation:navDrop .18s ease-out;z-index:60;pointer-events:auto}.vs-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08)}.vs-title{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.vs-close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:#ffffff8c;font-size:14px;cursor:pointer;transition:color .15s ease}.vs-close:hover{color:#fff}.vs-row{display:grid;grid-template-columns:96px 1fr 44px;align-items:center;gap:8px;margin:10px 0;font-size:11px;color:#ffffffb8}.vs-label{letter-spacing:.04em}.vs-value{text-align:right;font-size:11px;color:var(--accent)}.vs-row input[type=range]{width:100%;accent-color:var(--accent);background:transparent;cursor:pointer}.vs-row select{grid-column:2 / 4;width:100%;padding:6px 26px 6px 8px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#030507b3;color:#e8ecf2;font-family:var(--font-mono);font-size:11px;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23aab4c0' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.vs-toggle{display:flex;align-items:center;justify-content:space-between}.vs-toggle input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.vs-voice select{grid-template-columns:96px 1fr}.vs-actions{display:flex;gap:8px;margin-top:14px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.vs-btn{flex:1;padding:8px 10px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#03050799;color:#e8ecf2;font-family:var(--font-mono);font-size:11px;cursor:pointer;transition:all .15s ease}.vs-btn:hover{border-color:var(--accent);color:#fff}.vs-test{color:var(--accent)}.vs-reset{color:#fff9}.hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;padding-top:calc(var(--nav-h) + var(--safe-top, 0px));overflow:hidden}.hero-content{position:relative;z-index:2;max-width:720px}.hero-title{font-size:var(--fs-hero);text-transform:uppercase;text-wrap:balance;margin-bottom:10px}.hero-role{font-family:var(--font-mono);font-size:clamp(15px,2vw,21px);color:var(--accent);margin-bottom:12px}.hero-tagline{font-size:var(--fs-lead);line-height:var(--lh-relaxed);color:var(--text-muted);margin-bottom:12px;max-width:72ch}.hero-value{font-size:var(--fs-lead);line-height:var(--lh-relaxed);color:var(--text);margin-bottom:32px;max-width:72ch;padding-left:14px;border-left:2px solid var(--accent);opacity:.92}.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:48px}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;border-radius:999px;font-weight:600;font-size:14px;letter-spacing:.04em;transition:all .3s ease;border:1px solid transparent}.btn-primary{background:var(--accent);color:#000}.btn-primary:hover{box-shadow:0 0 30px rgba(var(--accent-rgb),.5);box-shadow:0 0 30px color-mix(in srgb,var(--accent) 50%,transparent);transform:translateY(-2px)}.btn-ghost{border-color:#fff3;color:var(--text)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.hero-stats{display:flex;gap:40px;flex-wrap:wrap}.hero-stat{display:flex;flex-direction:column;gap:4px}.hero-stat-value{font-family:var(--font-display);font-size:28px;font-weight:800;color:var(--accent)}.hero-stat-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.app-download-trigger{cursor:pointer}.app-download-backdrop{position:fixed;inset:0;z-index:180;display:grid;place-items:center;padding:calc(var(--nav-h) + var(--safe-top, 0px) + 20px) max(20px,var(--safe-right, 0px)) max(20px,var(--safe-bottom, 0px)) max(20px,var(--safe-left, 0px));background:#010305d1;backdrop-filter:blur(16px) saturate(.9);-webkit-backdrop-filter:blur(16px) saturate(.9);animation:appDownloadFade .2s ease both}.app-download-dialog{position:relative;width:min(900px,100%);max-height:min(780px,calc(100vh - var(--nav-h) - 40px));max-height:min(780px,calc(100svh - var(--nav-h) - 40px));overflow-y:auto;padding:clamp(24px,4vw,44px);border:1px solid rgba(var(--accent-rgb),.34);border-radius:22px;background:linear-gradient(145deg,#0c1219fa,#030609fc);box-shadow:0 28px 90px #000000ad;scrollbar-width:thin}.app-download-dialog h2{margin:6px 42px 10px 0;font-size:clamp(26px,5vw,44px);line-height:1.05;text-transform:uppercase}.app-download-intro{max-width:88ch;margin-bottom:26px;color:var(--text-muted);font-size:14px;line-height:1.65}.app-download-close{position:absolute;top:18px;right:18px;z-index:2;display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:#ffffff0a;color:var(--text-muted);cursor:pointer}.app-download-close:hover,.app-download-close:focus-visible{border-color:var(--accent);color:var(--text)}.app-download-group{display:grid;gap:14px;margin-top:14px;padding:20px;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:#ffffff06}.app-download-group.is-recommended,.app-download-group[data-recommended=true]{border-color:rgba(var(--accent-rgb),.48);box-shadow:inset 0 0 32px rgba(var(--accent-rgb),.055)}.app-download-group-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.app-download-group-head h3{margin-bottom:5px;font-size:18px;text-transform:uppercase}.app-download-group-head p,.app-download-option-copy p,.app-download-manual span{color:var(--text-muted);font-size:12px;line-height:1.55}.app-download-status{flex:0 0 auto;padding:6px 9px;border:1px solid rgba(255,193,7,.35);border-radius:999px;background:#ffc10714;color:#ffd76a;font-size:9px;letter-spacing:.09em;text-transform:uppercase}.app-download-options{display:grid;gap:10px}.app-download-option{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#0000002e}.app-download-option.is-selected,.app-download-option[data-recommended=true]{border-color:rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.045)}.app-download-option-copy{display:flex;align-items:flex-start;gap:13px;min-width:0}.app-download-option-copy>i{width:28px;margin-top:2px;color:var(--accent);font-size:18px;text-align:center}.app-download-option-copy h4{margin-bottom:3px;font-size:14px}.app-download-option-copy .mono{display:inline-block;margin-top:6px;color:var(--accent);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.app-download-action{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 14px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#ffffff0a;color:var(--text-muted);font:inherit;font-size:10px;letter-spacing:.04em;text-align:center}.app-download-action.is-primary:not(:disabled){border-color:rgba(var(--accent-rgb),.72);background:rgba(var(--accent-rgb),.13);color:var(--accent);cursor:pointer}.app-download-action:disabled{cursor:not-allowed;opacity:.56}.app-download-architecture{display:grid;gap:6px;padding:13px;border:1px dashed rgba(var(--accent-rgb),.3);border-radius:12px;background:rgba(var(--accent-rgb),.035)}.app-download-architecture strong{font-size:12px;text-transform:uppercase}.app-download-architecture>span{color:var(--text-muted);font-size:11px}.app-download-architecture>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:5px}.app-download-architecture button{min-height:38px;padding:8px 14px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#00000040;color:var(--text);cursor:pointer}.app-download-architecture button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.app-download-launch{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.app-download-launch .app-download-installed{flex:1 1 190px}.app-download-launch .app-download-action{flex:0 0 auto}.app-download-manual,.app-download-installed{display:grid;gap:5px;padding:13px 15px;border:1px solid rgba(var(--accent-rgb),.28);border-radius:12px;background:rgba(var(--accent-rgb),.055);color:var(--accent);font-size:12px}.app-download-manual strong{color:var(--text)}.pwa-install-compare{align-self:flex-start;margin-top:5px;padding:0;border:0;background:none;color:var(--accent);font:inherit;font-size:10px;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}@keyframes appDownloadFade{0%{opacity:0}to{opacity:1}}@media(max-width:640px){.app-download-backdrop{align-items:start;padding-left:max(12px,var(--safe-left, 0px));padding-right:max(12px,var(--safe-right, 0px))}.app-download-dialog{max-height:calc(100vh - var(--nav-h) - var(--safe-top, 0px) - 24px);max-height:calc(100svh - var(--nav-h) - var(--safe-top, 0px) - 24px);padding:24px 16px 18px;border-radius:16px}.app-download-group{padding:15px}.app-download-group-head,.app-download-option{align-items:stretch;flex-direction:column}.app-download-status{align-self:flex-start}.app-download-action{width:100%}}.robot-speaker{position:fixed;right:calc(clamp(20px,4vw,64px) + var(--safe-right, 0px));bottom:calc(clamp(20px,4vh,56px) + var(--safe-bottom, 0px));z-index:50;display:flex;flex-direction:column;align-items:flex-end;gap:12px;pointer-events:none}.robot-speaker>*{pointer-events:auto}.robot-selector{position:fixed;left:calc(clamp(16px,2vw,40px) + var(--safe-left, 0px));bottom:calc(clamp(20px,4vh,56px) + var(--safe-bottom, 0px));z-index:50;display:flex;gap:8px;pointer-events:none}.robot-selector>*{pointer-events:auto}.robot-model-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;background:#030507d1;border:1px solid rgba(255,255,255,.2);color:var(--text);transition:all .3s ease;cursor:pointer}.robot-model-btn:hover{border-color:var(--accent);color:var(--accent)}.robot-model-btn.is-active{background:#030507e0;background:color-mix(in srgb,var(--accent) 18%,rgba(3,5,7,.85));border-color:var(--accent);color:var(--accent);box-shadow:0 0 18px rgba(var(--accent-rgb),.4);box-shadow:0 0 18px color-mix(in srgb,var(--accent) 40%,transparent)}.robot-model-btn i{font-size:12px}.webgl-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--text-muted);pointer-events:none}.webgl-fallback i{font-size:44px;color:var(--accent)}.webgl-fallback span{font-size:13px;letter-spacing:.08em}.music-toggle{display:inline-flex;align-items:center;gap:7px;box-sizing:border-box;height:var(--nav-ctrl-size);padding:0 13px;border-radius:999px;font-weight:600;font-size:12px;background:#03050773;border:1px solid rgba(255,255,255,.18);color:#ffffff8c;transition:all .2s ease;cursor:pointer}.music-toggle:hover{color:#fff;border-color:var(--accent);background:#080c12d9}.music-toggle.is-playing{border-color:#4caf50b3;color:#4caf50;box-shadow:0 0 12px #4caf5040}.music-toggle.is-muted{border-color:#ff444480;color:#f44}.music-toggle i{font-size:12px}.music-label{letter-spacing:.1em}.robot-bubble{max-width:min(440px,calc(100vw - 28px));padding:18px 22px;background:#030507d1;border:1px solid rgba(var(--accent-rgb),.45);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:16px 16px 4px;color:var(--text);font-size:clamp(13.5px,1.5vw,15.5px);line-height:1.6;box-shadow:0 16px 50px #00000080,0 0 0 1px rgba(var(--accent-rgb),.12);box-shadow:0 16px 50px #00000080,0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent);backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);animation:rosterIn .35s cubic-bezier(.16,1,.3,1) both}.robot-bubble.is-speaking .robot-bubble-caret i{color:var(--accent);animation:rosterBlink .6s ease-in-out infinite}.robot-bubble-caret{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;margin-right:10px;background:#00f0ff14}.robot-bubble-caret i{color:var(--accent);font-size:13px}.robot-talk{background:#03050799;border-color:rgba(var(--accent-rgb),.55);border-color:color-mix(in srgb,var(--accent) 55%,transparent);color:var(--accent)}.robot-talk:hover{border-color:var(--accent);box-shadow:0 0 26px rgba(var(--accent-rgb),.45);box-shadow:0 0 26px color-mix(in srgb,var(--accent) 45%,transparent);transform:translateY(-2px)}@keyframes rosterIn{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rosterBlink{0%,to{opacity:1}50%{opacity:.35}}.pwa-toast{position:fixed;top:calc(var(--nav-h) + var(--safe-top, 0px) + 10px);left:50%;transform:translate(-50%);z-index:120;display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:999px;background:#030507e6;border:1px solid rgba(76,175,80,.7);color:#4caf50;box-shadow:0 0 18px #4caf5040;animation:soundGateIn .35s cubic-bezier(.16,1,.3,1) both;max-width:min(92vw,480px)}.pwa-toast-label{font-size:12px;letter-spacing:.06em;white-space:nowrap}.pwa-toast-btn{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:999px;border:1px solid rgba(76,175,80,.7);background:#4caf501f;color:#4caf50;font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .2s ease;white-space:nowrap}.pwa-toast-btn:hover{color:#fff;border-color:var(--accent);background:#080c12e6}.pwa-toast-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.pwa-install{position:fixed;left:50%;transform:translate(-50%);bottom:calc(clamp(20px,4vh,56px) + var(--safe-bottom, 0px));z-index:118;display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:16px;background:#030507e0;border:1px solid rgba(var(--accent-rgb),.4);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);box-shadow:0 16px 50px #00000080;backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);animation:soundGateIn .35s cubic-bezier(.16,1,.3,1) both;max-width:min(92vw,460px)}.pwa-install-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.pwa-install-copy strong{font-size:12px;letter-spacing:.06em;color:var(--text)}.pwa-install-copy span{font-size:11px;color:var(--text-muted)}.pwa-install-copy .pwa-install-note{font-size:10px;opacity:.72;margin-top:2px}.pwa-install-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:999px;border:1px solid rgba(76,175,80,.7);background:#4caf501f;color:#4caf50;font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .2s ease;white-space:nowrap}.pwa-install-btn:hover{color:#fff;border-color:var(--accent);background:#080c12e6}.pwa-install-btn:disabled{opacity:.6;cursor:wait}.pwa-install-close{position:absolute;top:6px;right:8px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);font-size:11px;cursor:pointer;border-radius:999px}.pwa-install-close:hover{color:#fff;background:#ffffff14}@media(max-width:640px){.pwa-install{bottom:auto;top:calc(var(--nav-h) + var(--safe-top, 0px) + 58px)}}.sound-gate{position:fixed;left:50%;transform:translate(-50%);bottom:calc(clamp(20px,4vh,56px) + var(--safe-bottom, 0px));z-index:120;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:min(92vw,520px);text-align:center}.sound-gate-btn{display:inline-flex;align-items:center;gap:9px;padding:10px 18px;border-radius:999px;background:#030507d9;border:1px solid rgba(76,175,80,.7);color:#4caf50;font-size:12px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .2s ease;box-shadow:0 0 18px #4caf5040;animation:soundGateIn .35s cubic-bezier(.16,1,.3,1) both,soundGatePulse 2.6s ease-in-out .4s infinite}.sound-gate-btn:hover{color:#fff;border-color:var(--accent);background:#080c12e6}.sound-gate-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sound-gate-btn i{font-size:12px}.sound-gate-hint{font-size:10px;letter-spacing:.06em;color:var(--text-muted)}@keyframes soundGateIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes soundGatePulse{0%,to{box-shadow:0 0 18px #4caf5040}50%{box-shadow:0 0 26px #4caf508c}}@media(max-width:640px){.sound-gate{bottom:auto;top:calc(var(--nav-h) + var(--safe-top, 0px) + 10px)}}.about-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.about-bio,.about-approach{padding:32px}.about-bio p{color:var(--text-muted);margin-bottom:16px;font-size:clamp(16px,1.1rem,18.5px);line-height:var(--lh-relaxed)}.about-meta{display:flex;flex-direction:column;gap:8px;margin-top:24px;font-size:13.5px}.about-approach h3{font-size:20px;margin-bottom:20px;color:var(--accent)}.about-list{list-style:none;display:flex;flex-direction:column;gap:14px}.about-list li{color:var(--text-muted);display:flex;gap:10px;font-size:15px}.about-list li:before{content:"→";color:var(--accent);flex-shrink:0}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.skill-group{padding:28px}.skill-group-label{font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);padding-bottom:12px;margin-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08)}.skill-list{list-style:none;display:flex;flex-direction:column;gap:12px}.skill-item{display:flex;align-items:center;gap:12px;color:#ffffffc7;font-size:var(--fs-body);transition:color .2s ease}.skill-item i{width:20px;text-align:center;color:var(--accent);font-size:15px}.skill-item:hover{color:#fff}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.project-card{padding:28px;display:flex;flex-direction:column;gap:16px;transition:border-color .3s ease,transform .3s ease}.project-card:hover{border-color:var(--accent);transform:translateY(-4px)}.project-card-top{display:flex;justify-content:space-between;align-items:center}.project-index{font-size:14px}.project-arrow{color:#ffffff80;transition:color .3s ease,transform .3s ease}.project-card:hover .project-arrow{color:var(--accent);transform:translate(2px,-2px)}.project-title{font-size:clamp(19px,2vw,23px)}.project-desc{color:var(--text-muted);font-size:var(--fs-body);line-height:var(--lh-relaxed);flex:1}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tag{font-size:11px;letter-spacing:.06em;color:var(--accent);border:1px solid rgba(var(--accent-rgb),.3);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);padding:5px 12px;border-radius:999px}.contact-card{padding:40px;display:flex;flex-direction:column;gap:28px;align-items:flex-start}.contact-email{font-size:clamp(20px,3vw,30px);font-weight:500;display:inline-flex;align-items:center;gap:12px}.contact-email:hover{text-shadow:0 0 20px var(--accent)}.contact-socials{display:flex;gap:16px;flex-wrap:wrap}.contact-social{display:inline-flex;align-items:center;gap:8px;color:var(--text-muted);font-size:16px}.contact-social:hover{color:#fff}.contact-footer{margin-top:48px;font-size:13px;color:#ffffff75;text-align:center}.site-footer{position:relative;width:100%;max-width:var(--max-w);margin:72px auto 0;padding:48px clamp(20px,5vw,48px) 32px;border-top:1px solid rgba(255,255,255,.08);background:#0a0e1299;backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);pointer-events:auto}.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;align-items:start}.footer-col{display:flex;flex-direction:column;gap:12px;min-width:0;overflow-wrap:break-word}.footer-brand{font-family:var(--font-display);font-size:22px;font-weight:600;letter-spacing:.02em;color:#fff}.footer-tagline{font-size:14px;color:var(--text-muted)}.footer-stack{font-size:12px;color:#e8eef280}.footer-heading{font-family:var(--font-display);font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin:0}.footer-link,.footer-btn{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted);text-decoration:none;cursor:pointer;font-family:var(--font-mono)}.footer-link:hover,.footer-btn:hover{color:#fff}.footer-link .fa-solid{color:var(--accent);width:14px;text-align:center}.footer-address,.footer-legal-name{font-size:13px;color:var(--text-muted)}.footer-mono{font-size:12px;color:#e8eef280}.footer-legal-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.footer-btn{border:none;background:none;padding:0;text-align:left}.footer-bottom{margin:28px 0 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.06);text-align:center;font-size:12.5px;color:#e8eef280}.footer-version{color:#e8eef280}.footer-dialog-backdrop{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:24px;background:#030507b8}.footer-dialog{width:min(620px,100%);max-height:82vh;max-height:82dvh;overflow-y:auto;padding:26px 28px;border:1px solid rgba(255,255,255,.1);animation:rosterIn .25s cubic-bezier(.16,1,.3,1) both}.footer-dialog-title{font-family:var(--font-display);font-size:20px;color:#fff;margin:0 0 16px}.footer-dialog-body p{font-size:14px;line-height:1.7;color:var(--text)}.footer-dialog-body p+p{margin-top:12px}.footer-dialog-close{margin-top:20px}@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;gap:32px}.footer-company{grid-column:1 / -1}}@media(max-width:700px){.footer-grid{grid-template-columns:1fr;gap:28px}}.ros2-panel{padding:32px;display:flex;flex-direction:column;gap:24px}.ros2-connect{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.ros2-url{flex:1;min-width:240px;background:#0006;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:12px 16px;color:var(--text);font-size:14px;outline:none;transition:border-color .3s ease}.ros2-url:focus{border-color:var(--accent)}select.ros2-url{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23aab4c0' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.ros2-status{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted)}.ros2-status+.ros2-status{margin-top:8px}.status-dot{width:10px;height:10px;border-radius:50%;background:var(--danger)}.status-dot.connecting{background:var(--warning);animation:pulse 1.2s infinite}.status-dot.connected{background:var(--success);box-shadow:0 0 10px var(--success)}.status-dot.demo{background:var(--accent-3)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.ros2-telemetry{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.telemetry-item{background:#00000059;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:4px}.telemetry-item .label{font-size:10px;letter-spacing:.12em;color:var(--text-muted)}.telemetry-item .value{font-size:20px;color:var(--accent)}.ros2-controls{display:flex;justify-content:center}.dpad{display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(3,56px);gap:6px}.dpad-btn{border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#00000059;color:var(--text-muted);font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.dpad-btn:hover{border-color:var(--accent);color:var(--accent);background:rgba(var(--accent-rgb),.1);background:color-mix(in srgb,var(--accent) 10%,transparent)}.dpad-btn.up{grid-column:2;grid-row:1}.dpad-btn.left{grid-column:1;grid-row:2}.dpad-btn.stop{grid-column:2;grid-row:2}.dpad-btn.right{grid-column:3;grid-row:2}.dpad-btn.down{grid-column:2;grid-row:3}.ros2-log{background:#0006;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:16px;min-height:80px;display:flex;flex-direction:column;gap:6px}.log-line{font-size:12px;color:var(--text-muted);overflow-wrap:break-word}.mc-unit-name,.mc-param,.telemetry-item .value{overflow-wrap:break-word;min-width:0}.mc-param-list{max-height:260px;overflow-y:auto}.ros2-connect>*{min-width:0}.status-dot[title]{cursor:help}.mc-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.mc-tab{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#030507b8;color:var(--text-muted);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;transition:all .25s ease}.mc-tab:hover{color:var(--text);border-color:#ffffff59}.mc-tab:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.mc-tab.is-active{color:var(--accent);border-color:var(--accent);box-shadow:0 0 18px rgba(var(--accent-rgb),.3);box-shadow:0 0 18px color-mix(in srgb,var(--accent) 30%,transparent)}.mc-tab-role{font-size:9px;letter-spacing:.1em;opacity:.65;border:1px solid currentColor;border-radius:999px;padding:1px 6px}.mc-gate-note strong{color:var(--accent)}.access-login{max-width:460px;padding:26px;display:flex;flex-direction:column;gap:14px}.access-login-title{font-family:var(--font-display);font-size:1.05rem;display:flex;align-items:center;gap:10px}.access-field{display:flex;flex-direction:column;gap:6px}.access-field span{font-size:11px;letter-spacing:.12em;color:var(--text-muted)}.access-field input{background:#0006;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:11px 14px;color:var(--text);font-family:inherit;font-size:15px;outline:none;transition:border-color .25s ease}.access-field input:focus{border-color:var(--accent)}.access-demo{margin-top:14px;padding:12px 14px;border:1px dashed rgba(var(--accent-rgb),.45);border:1px dashed color-mix(in srgb,var(--accent) 45%,transparent);border-radius:10px;display:flex;flex-direction:column;gap:8px;background:rgba(var(--accent-rgb),.06);background:color-mix(in srgb,var(--accent) 6%,transparent)}.access-demo .demo-title{font-size:12px;letter-spacing:.08em;color:var(--text)}.access-demo .demo-hint{font-size:11.5px;color:var(--text-muted);line-height:1.5}.access-demo .demo-fill{align-self:flex-start;padding:7px 14px;font-size:12px}.joy-wrap{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap}.joystick{position:relative;width:176px;height:176px;border-radius:50%;background:radial-gradient(circle at 50% 45%,#080c12e6,#03050799);border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 4px 24px #0000008c;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab}.joystick:active{cursor:grabbing}.joystick:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.joystick-ring{position:absolute;inset:17%;border-radius:50%;border:1px dashed rgba(var(--accent-rgb),.4);border:1px dashed color-mix(in srgb,var(--accent) 40%,transparent)}.joystick-axis{position:absolute;background:#ffffff14}.joystick-axis-x{left:9%;right:9%;top:50%;height:1px}.joystick-axis-y{top:9%;bottom:9%;left:50%;width:1px}.joystick-knob{position:absolute;left:50%;top:50%;width:66px;height:66px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffff38,#080c12f2);border:1px solid var(--accent);box-shadow:0 0 20px rgba(var(--accent-rgb),.4);box-shadow:0 0 20px color-mix(in srgb,var(--accent) 40%,transparent);transition:transform .05s linear;will-change:transform;pointer-events:none}.joy-stack{display:flex;flex-direction:column;align-items:center;gap:8px}.joystick-readout{display:flex;gap:16px;font-size:12px;letter-spacing:.08em;color:var(--text-muted);user-select:none;-webkit-user-select:none}.joystick-readout b{color:var(--accent);font-weight:400;min-width:44px;display:inline-block;text-align:right}.joy-side{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.joy-hint{font-size:11px;letter-spacing:.06em;color:var(--text-muted);max-width:190px;line-height:1.5}.joy-rotate-row{display:flex;align-items:center;gap:10px}.joy-rotate{width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:#0305078c;color:var(--text-muted);font-size:14px;cursor:pointer;transition:all .2s ease;touch-action:none}.joy-rotate:active,.joy-rotate:hover{color:var(--accent);border-color:var(--accent)}.joy-stop{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;border:1px solid rgba(239,68,68,.6);border:1px solid color-mix(in srgb,var(--danger) 60%,transparent);background:#ef44441f;background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--text);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.joy-stop:hover{border-color:var(--danger);color:#fff;background:#ef444440;background:color-mix(in srgb,var(--danger) 25%,transparent)}.access-submit{justify-content:center;margin-top:6px}.access-error{color:var(--danger);font-size:13.5px;display:flex;align-items:center;gap:8px}.mc-forbidden{padding:20px 24px}.mc-sub{font-family:var(--font-display);font-size:1rem;margin:6px 0 12px;display:flex;align-items:center;gap:10px}.gauge-track{height:4px;border-radius:999px;background:#ffffff14;overflow:hidden}.gauge-fill{height:100%;background:var(--accent);border-radius:inherit;transition:width .5s ease-out}.mc-power-row{display:flex;flex-wrap:wrap;gap:10px}.mc-power-note{color:#e8c268}.mc-power-btn.is-active{border-color:var(--accent);color:var(--accent);box-shadow:0 0 16px rgba(var(--accent-rgb),.35);box-shadow:0 0 16px color-mix(in srgb,var(--accent) 35%,transparent)}.mc-unit-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#0000004d}.mc-unit-name{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--text)}.mc-unit-name.is-selected{color:var(--accent)}.mc-unit-actions{display:flex;gap:8px}.mc-mini-btn{padding:7px 14px!important;font-size:12px!important;min-height:34px;cursor:pointer}.mc-link{background:none;border:none;color:var(--text);font:inherit;cursor:pointer}.mc-journal{max-height:240px;overflow-y:auto}.mc-param-list{list-style:none;margin:0;padding:8px 0;max-height:260px;overflow-y:auto;border-block:1px dashed rgba(255,255,255,.08);display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2px 14px}.mc-param{width:100%;text-align:left;background:none;border:none;color:var(--text-muted);font-family:var(--font-mono);font-size:13px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:color .15s ease,background .15s ease}.mc-param:hover{color:var(--text);background:#ffffff0d}.mc-param.is-selected{color:var(--accent);background:rgba(var(--accent-rgb),.1);background:color-mix(in srgb,var(--accent) 10%,transparent)}.mc-param-name{align-self:center}.mc-terminal{height:380px;background:#1c1c1c;border-radius:8px;padding:8px;cursor:text;overflow:hidden;pointer-events:auto;touch-action:pan-y}.mc-terminal .xterm,.mc-terminal .xterm-screen,.mc-terminal .xterm-helper-textarea{outline:none}@media(max-width:700px){.mc-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;margin-bottom:18px}.mc-tab{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:6px;row-gap:3px;width:100%;min-width:0;min-height:44px;padding:8px 9px;white-space:nowrap}.mc-tab>i{grid-column:1;grid-row:1 / 3;align-self:center}.mc-tab-label{grid-column:2;min-width:0}.mc-tab-role{grid-column:2;justify-self:start;flex:0 0 auto;padding-inline:4px;font-size:8px}.mc-terminal{height:300px}.mc-unit-row{flex-direction:column;align-items:stretch}.mc-unit-actions{justify-content:flex-end}}@media(max-width:300px){.mc-tabs{grid-template-columns:minmax(0,1fr)}}.mc-sub{margin:14px 0 8px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim, #9aa4b2);font-family:Share Tech Mono,monospace}.mc-conn{min-width:140px}.mc-conn.is-connected{color:#37d67a}.mc-conn.is-demo,.mc-conn.is-error{color:#ff6b6b}.mc-sport-safety{color:#e8c268}.mc-sport-grid{display:flex;flex-wrap:wrap;gap:6px}.mc-sport-btn{padding:7px 12px;border:1px solid rgba(148,163,184,.35);border-radius:8px;background:#0f172a8c;color:#dbe4f0;font:inherit;font-size:.78rem;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .05s ease}.mc-sport-btn:hover:not(:disabled){border-color:#4ade80;color:#eafff1}.mc-sport-btn:active:not(:disabled){transform:scale(.97);background:#4ade801f}.mc-sport-btn:disabled{opacity:.45;cursor:not-allowed}.mc-movepad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-width:320px;margin:10px 0}.mc-move{padding:12px 6px;border:1px solid rgba(148,163,184,.35);border-radius:10px;background:#0f172a8c;color:#dbe4f0;font:inherit;font-size:.8rem;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none}.mc-move:hover:not(:disabled){border-color:#4ade80}.mc-move:active:not(:disabled){background:#4ade802e}.mc-move:disabled{opacity:.45;cursor:not-allowed}.mc-euler{max-width:90px}.mc-ls-table{width:100%;max-width:480px;border-collapse:collapse;font-size:.78rem;margin-top:6px}.mc-ls-table th,.mc-ls-table td{text-align:left;padding:3px 10px 3px 0;border-bottom:1px solid rgba(148,163,184,.15)}.mc-ls-table th{color:var(--ink-dim, #9aa4b2);font-weight:400}.mc-node-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}.mc-node-chip{padding:4px 10px;border:1px solid rgba(148,163,184,.3);border-radius:999px;background:#0f172a8c;color:#cbd5e1;font-size:.72rem;cursor:pointer}.mc-node-chip:hover{border-color:#60a5fa;color:#dbeafe}.mc-node-chip.is-selected{border-color:#4ade80;color:#eafff1;background:#4ade801a}.mc-vision-views{display:grid;grid-template-columns:1fr;gap:10px;align-items:start}@media(min-width:900px){.mc-vision-views[data-lidar=on]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.mc-vision-frame{position:relative;aspect-ratio:16 / 9;max-width:560px;margin:10px 0;border:1px solid rgba(148,163,184,.25);border-radius:10px;background:#05070d;overflow:hidden}.mc-vision-frame img,.mc-vision-frame video{width:100%;height:100%;object-fit:contain;display:block}.mc-vision-video.is-hidden{visibility:hidden;position:absolute;inset:0}.mc-vision-live{position:absolute;top:8px;left:8px;padding:2px 9px;border-radius:999px;background:#05070db8;color:#37d67a;font-size:.68rem}.mc-vision-idle{position:absolute;inset:0;display:grid;place-items:center;padding:14px;text-align:center;color:var(--ink-dim, #9aa4b2);font-size:.78rem}.mc-vision-stamp{position:absolute;top:8px;right:8px;padding:2px 9px;border-radius:999px;background:#05070db8;color:#94a3b8;font-size:.68rem;pointer-events:none}.mc-vision-tools{position:absolute;bottom:8px;right:8px;display:flex;gap:6px;opacity:0;transition:opacity .15s ease}.mc-vision-frame:hover .mc-vision-tools,.mc-vision-frame:focus-within .mc-vision-tools{opacity:1}.mc-vision-tools .mc-mini-btn{background:#05070dcc}.mc-vision-lidar{aspect-ratio:1 / 1;max-width:460px;background:radial-gradient(circle at 50% 50%,#0a1018,#04060b 70%);touch-action:manipulation}.mc-lidar-canvas{width:100%;height:100%;display:block;image-rendering:pixelated}.mc-lidar-hint{position:absolute;bottom:6px;left:8px;right:8px;font-size:.62rem;color:#cbd5e1bf;text-align:center;pointer-events:none}.mc-vision-lidar.mc-vision-lidar-full{position:fixed;inset:0;z-index:90;max-width:none;margin:0;border-radius:0;aspect-ratio:auto;display:grid;place-items:center}.mc-vision-lidar.mc-vision-lidar-full .mc-lidar-canvas{width:min(100vw,100vh);height:min(100vw,100vh)}.mc-vision-frame:fullscreen{max-width:none;aspect-ratio:auto;display:grid;place-items:center;border-radius:0}.mc-vision-lidar:fullscreen{aspect-ratio:1 / 1}.mc-vision-lidar:fullscreen .mc-lidar-canvas{width:min(100vw,100vh);height:min(100vw,100vh)}.mc-vision-frame:fullscreen img,.mc-vision-frame:fullscreen video{width:auto;max-width:100vw;height:auto;max-height:100vh}.mc-vision-history{max-height:150px;overflow-y:auto;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.3) transparent}.mc-vision-history::-webkit-scrollbar{width:6px}.mc-vision-history::-webkit-scrollbar-thumb{background:#94a3b84d;border-radius:3px}.mc-vision-alert{display:inline-flex;align-items:center;gap:8px;margin:6px 0;padding:6px 12px;border:1px solid rgba(255,107,107,.55);border-radius:8px;background:#ff6b6b1f;color:#ffd9d9;font-size:.78rem}.mc-vision-chips{display:flex;flex-wrap:wrap;gap:6px}.mc-vision-chip{padding:3px 10px;border:1px solid rgba(96,165,250,.4);border-radius:999px;background:#0f172a8c;color:#bfdbfe;font-size:.72rem}.mc-vision-hint{opacity:.7}.mc-param-list{columns:2;column-gap:18px;margin:8px 0;padding:0;list-style:none;font-size:.76rem}.mc-param-list li{break-inside:avoid}.mc-param{width:100%;text-align:left;padding:3px 4px;background:none;border:0;border-left:2px solid transparent;color:#cbd5e1;cursor:pointer;font:inherit}.mc-param:hover{color:#e2e8f0;border-left-color:#94a3b866}.mc-param.is-selected{color:#eafff1;border-left-color:#4ade80}.mc-param-name{min-width:120px;overflow-wrap:break-word}@media(max-width:720px){.mc-param-list{columns:1}.mc-movepad{max-width:none}}.toast-container{position:fixed;top:calc(80px + var(--safe-top, 0px));right:calc(20px + var(--safe-right, 0px));z-index:1000;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:360px}.toast{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;background:#0f172af2;border:1px solid rgba(148,163,184,.2);border-left:3px solid var(--toast-accent, #60a5fa);box-shadow:0 8px 24px #0006;pointer-events:auto;animation:toast-in .3s ease-out;font-size:.85rem}.toast-message{flex:1;color:#e2e8f0;line-height:1.4}.toast-dismiss{background:none;border:none;color:#94a3b8;cursor:pointer;padding:4px;opacity:.7;transition:opacity .2s}.toast-dismiss:hover{opacity:1}.toast i{color:var(--toast-accent, #60a5fa)}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media(max-width:480px){.toast-container{left:12px;right:12px;top:70px;max-width:none}}.mc-spark-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mc-spark-cell{display:flex;flex-direction:column;gap:4px}.mc-spark-cell .label{font-size:10px;letter-spacing:.1em;color:var(--text-muted)}.mc-spark{display:block;width:100%;background:#0000004d;border-radius:6px}.telemetry-item.is-over .gauge-fill{background:var(--danger, #f87171)!important}.telemetry-item.is-over .value{color:#f87171!important}.mc-temp-alert{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:.8rem}.mc-temp-warn{border:1px solid rgba(251,191,36,.5);background:#fbbf241a;color:#fde68a}.mc-temp-crit{border:1px solid rgba(248,113,113,.6);background:#f871711f;color:#fecaca;animation:temp-pulse 1.2s infinite}@keyframes temp-pulse{0%,to{opacity:1}50%{opacity:.75}}.mc-demo-note{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;border:1px solid rgba(96,165,250,.35);background:#60a5fa14;color:#93c5fd;font-size:.78rem}.status-dot.demo{background:#60a5fa;box-shadow:0 0 8px #60a5fa80}@media(max-width:720px){.mc-spark-row{grid-template-columns:1fr}}.mc-drive-api{align-items:center;gap:10px}.mc-drive-api .mc-mini-btn.is-active{border-color:var(--accent, #38bdf8);color:var(--accent, #38bdf8);box-shadow:0 0 0 1px var(--accent, #38bdf8) inset}.mc-estop-row{display:flex;align-items:center;gap:12px}.mc-estop{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 18px;border-radius:12px;border:2px solid #f87171;background:linear-gradient(180deg,#f871712e,#f8717114);color:#fecaca;font:inherit;font-weight:700;letter-spacing:.08em;cursor:pointer;transition:background .15s,box-shadow .15s}.mc-estop:hover:not(:disabled){background:#f871714d;box-shadow:0 0 16px #f8717159}.mc-estop:active:not(:disabled){background:#f8717173}.mc-estop:disabled{opacity:.4;cursor:not-allowed}.mc-fsm-state{padding:6px 10px;border-radius:8px;border:1px solid rgba(74,222,128,.4);background:#4ade8014;color:#86efac;font-size:.75rem;white-space:nowrap}.mc-euler.is-invalid{border-color:#f87171;color:#fca5a5}.mc-ls-grid{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;font-size:.78rem}.mc-ls-imu-data{flex:1;min-width:220px;display:flex;flex-direction:column;gap:6px;font-size:.78rem;color:#cbd5e1}.mc-horizon{width:110px;height:110px;flex-shrink:0;border-radius:50%;border:1px solid rgba(148,163,184,.3);background:#00000059}.mc-export-row{margin-left:auto;display:inline-flex;gap:6px}.mc-joint-name{color:#93c5fd;font-size:.72rem;white-space:nowrap}.mc-tau-cell{position:relative;display:inline-flex;align-items:center;min-width:70px;height:14px}.mc-tau-bar{position:absolute;left:0;top:1px;bottom:1px;border-radius:3px;background:linear-gradient(90deg,#60a5fa80,#a78bfab3);transition:width .2s}.mc-tau-val{position:relative;z-index:1;font-size:.72rem;padding-left:4px;color:#e2e8f0}.temp-ok{color:#86efac}.temp-warm{color:#fde68a}.temp-hot{color:#fca5a5;font-weight:700}.mc-dropout{color:#fbbf24}.mc-confirm{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:10px;border:1px solid rgba(251,191,36,.5);background:#fbbf2414}.mc-confirm-text{margin:0;display:flex;align-items:center;gap:8px;color:#fde68a;font-size:.85rem}.mc-confirm-btns{display:flex;gap:10px}.mc-journal-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mc-journal-toolbar .ros2-url{min-width:160px;flex:1;padding:8px 12px;font-size:13px}.mc-journal{background:#0006;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:12px;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.3) transparent}.mc-journal::-webkit-scrollbar{width:6px}.mc-journal::-webkit-scrollbar-thumb{background:#94a3b84d;border-radius:3px}.mc-journal-time{color:#64748b;font-size:.68rem;margin-right:6px}.mc-mini-btn.is-active{border-color:var(--accent);color:var(--accent)}.mc-param-search{margin-bottom:6px}.mc-param-count{font-size:.7rem;color:var(--text-muted);margin-bottom:8px}.mc-param-editor{display:flex;flex-direction:column;gap:6px;align-items:stretch}.mc-param-type{font-size:.7rem;padding:2px 8px;border-radius:10px;background:#60a5fa26;color:#93c5fd;align-self:flex-start}.mc-param-type.is-invalid{background:#f8717126;color:#fecaca}.mc-param-diff{font-size:.72rem;color:#fbbf24}.mc-param-msg.is-ok{color:#86efac}.mc-param-msg.is-warn{color:#fbbf24}.mc-param-msg.is-error{color:#fca5a5}.mc-param-msg.is-info{color:var(--muted)}.mc-param-badge{font-size:.68rem;padding:1px 6px;border-radius:4px;border:1px solid rgba(148,163,184,.4);color:#cbd5e1;background:#94a3b81f}.mc-param-badge.is-readonly{border-color:#fbbf2480;color:#fde68a;background:#fbbf241f}.mc-param-stale{font-size:.7rem;color:#fbbf24}.mc-term-tools{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mc-term-hint{font-size:.68rem;color:var(--text-muted);cursor:help}.mc-term-error{margin:8px 14px 12px;padding:8px 10px;border:1px solid rgba(248,113,113,.35);border-radius:8px;background:#f8717114;color:#fecaca;font-size:.68rem}.mc-term-font{font-size:.72rem;min-width:34px;text-align:center;color:var(--text-muted)}.mc-term-full{position:fixed;top:calc(12px + var(--safe-top, 0px));right:calc(12px + var(--safe-right, 0px));bottom:calc(12px + var(--safe-bottom, 0px));left:calc(12px + var(--safe-left, 0px));z-index:1200;display:flex;flex-direction:column}.mc-term-full .mc-terminal{flex:1;min-height:0}@media(max-width:720px){.mc-term-hint{display:none}}.mc-param-editor .ros2-url.is-invalid{border-color:#f87171;background:#f871710f}@media(max-width:720px){.mc-param-editor{flex-direction:column}}.access-pair{display:flex;gap:12px;align-items:flex-end}.access-pair .access-field{flex:1;min-width:0}.access-field-narrow{flex:0 0 92px}.access-hint{opacity:.68;font-size:11px;margin:6px 0 0;line-height:1.5}.access-check{display:flex;align-items:center;gap:8px;margin:10px 0;cursor:pointer;font-size:12px}.access-check input{accent-color:var(--accent, #00ff9d);width:16px;height:16px;cursor:pointer}.scan-results{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}.scan-results h5{margin:0 0 8px;font-size:11px;letter-spacing:.14em;opacity:.7}.scan-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0;font-size:12px}.scan-row .access-hint{margin:0;flex:1;min-width:140px}.access-robots .scan-results{border-top:0;padding-top:0;margin-top:6px}.scan-row-actions{display:inline-flex;gap:6px;align-items:center}.access-pair-link{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.access-pair-link .access-hint{margin:0}.scan-blocked{margin-top:10px;padding:8px 10px;border:1px dashed rgba(255,255,255,.16);border-radius:8px}.scan-blocked .ros2-connect{margin-top:8px}.access-trust{margin-top:10px}.access-trust summary{cursor:pointer;font-size:11px;letter-spacing:.12em;opacity:.75}.access-trust summary:hover{opacity:1}.btn-small{padding:3px 10px;font-size:11px}.auth-steps,.auth-result{margin:10px 0}.auth-result .log-line{color:var(--accent, #00ff9d)}.access-demo-card{border-style:dashed}.log-line .error,.access-error i{color:#ff5f56}.scan-progress{margin-top:10px}.scan-progress-bar{height:3px;width:100%;background:#ffffff14;border-radius:2px;overflow:hidden}.scan-progress-bar>span{display:block;height:100%;background:var(--accent, #00ff9d)}.scan-cancelled{opacity:.6;font-weight:400}.wifi-guide{margin-top:.75rem;padding:.75rem .9rem;border:1px solid var(--mc-line, rgba(255, 255, 255, .12));border-radius:8px;background:#ffffff08}.wifi-guide h5{margin:0 0 .5rem;font-size:.8rem;letter-spacing:.04em}.wifi-guide p{margin:0 0 .4rem;line-height:1.5}.wifi-guide p:last-child{margin-bottom:0;opacity:.72}.scan-hint{color:var(--mc-accent, #7dd3fc);opacity:.78;letter-spacing:.03em}.scan-gateway{color:var(--mc-accent, #7dd3fc);font-weight:600;letter-spacing:.02em}.mc-desktop-only{max-width:46rem}.mc-desktop-only .access-hint{margin:0;line-height:1.6}.loader-wrapper{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:var(--bg);color:#fff}.loader-bg-grid{position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(to right,rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.03) 1px,transparent 1px);background-size:32px 32px}.loader-scanlines{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(#12101000 50%,#00000026 50%);background-size:100% 4px;opacity:.85}.loader-panel-top,.loader-panel-bottom{position:absolute;left:0;right:0;height:50%;background:var(--bg);z-index:4}.loader-panel-top{top:0;border-bottom:1px solid rgba(255,255,255,.03)}.loader-panel-bottom{bottom:0;border-top:1px solid rgba(255,255,255,.03)}.loader-header{position:fixed;top:0;left:0;width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:calc(20px + var(--safe-top, 0px)) max(48px,var(--safe-right, 0px)) 20px max(48px,var(--safe-left, 0px));border-bottom:1px solid rgba(255,255,255,.03);z-index:50}.loader-header-left,.loader-header-right{display:flex;gap:16px;font-family:var(--font-mono);font-size:11px;color:#ffffff80}.loader-header-right{justify-content:flex-end}.loader-header-center{display:flex;align-items:center;gap:10px;justify-content:center}.loader-header-icon{color:var(--accent);font-size:1.1rem}.loader-header-title{font-family:var(--font-body);font-size:11px;font-weight:500;letter-spacing:.2em;color:var(--accent);text-transform:uppercase}.loader-main{flex-grow:1;display:flex;align-items:center;justify-content:center;position:relative;z-index:20;width:100%}.loader-center-text{text-align:center;z-index:6}.loader-pct-box{background:#08090be6;border:1px solid rgba(255,255,255,.05);border-top:1.5px solid var(--accent);border-radius:12px;padding:16px 28px;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:135px}.loader-pct-label{font-family:var(--font-body);font-size:9px;font-weight:500;letter-spacing:.18em;color:#ffffff80;text-transform:uppercase}.loader-pct-val{font-family:var(--font-mono);font-size:22px;font-weight:600;color:var(--accent);text-shadow:0 0 6px var(--accent)}.loader-bottom-overlay{position:absolute;bottom:48px;left:50%;transform:translate(-50%);width:min(500px,90vw);display:flex;flex-direction:column;align-items:center;z-index:30}.loader-logs-row{display:flex;justify-content:space-between;width:100%;margin-bottom:8px;font-family:var(--font-mono);color:#ffffff80;font-size:10px}.loader-progress-track{width:100%;height:1px;background:#ffffff0f;position:relative;overflow:hidden;margin-bottom:16px}.loader-progress-bar{position:absolute;top:0;left:0;height:100%;transition:width .12s ease-out}.loader-audio-advice{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:9px;color:#ffffff80;letter-spacing:.12em;text-transform:uppercase}.loader-audio-advice i{color:var(--accent);font-size:11px}.loader-audio-advice.is-gated{margin-top:4px}.loader-audio-advice.is-on,.loader-audio-advice.is-on i{color:#4caf50}.loader-audio-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid rgba(76,175,80,.7);background:#030507cc;color:#4caf50;font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .2s ease;animation:loaderAudioPulse 2.6s ease-in-out infinite}.loader-audio-btn:hover,.loader-audio-btn:focus-visible{color:#fff;border-color:var(--accent);background:#080c12e6;outline:none}.loader-audio-btn i{color:currentColor}@keyframes loaderAudioPulse{0%,to{box-shadow:0 0 12px #4caf5033}50%{box-shadow:0 0 22px #4caf5080}}.loader-hint{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--text-muted);animation:loaderHintIn .4s ease-out}.loader-hint i{color:var(--accent);font-size:11px}@keyframes loaderHintIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(max-width:900px){.section-desc{max-width:100%}.about-grid,.projects-grid,.skills-grid{grid-template-columns:1fr}.ros2-telemetry{grid-template-columns:repeat(2,1fr)}.nav-toggle{display:inline-flex;z-index:2}.nav-items{display:none;position:absolute;top:calc(var(--nav-h) + var(--safe-top, 0px));left:calc(-1*clamp(16px,4vw,48px));right:calc(-1*clamp(16px,4vw,48px));flex-direction:column;align-items:stretch;gap:2px;padding:10px max(clamp(16px,4vw,48px),var(--safe-right, 0px)) 18px max(clamp(16px,4vw,48px),var(--safe-left, 0px));background:#030507f5;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 28px 56px #0009;max-height:calc(100vh - var(--nav-h) - var(--safe-top, 0px));max-height:calc(100dvh - var(--nav-h) - var(--safe-top, 0px));overflow-y:auto}.nav-items.open{display:flex;animation:navDrop .18s ease-out}.nav-item-title{display:inline}.nav-item{justify-content:flex-start;padding:13px 10px;font-size:15px;min-height:44px}.nav-item.active:after{height:100%;width:3px;left:-14px}.loader-header{padding:16px 24px}.loader-header-left,.loader-header-right{display:none}.loader-header{grid-template-columns:1fr}.robot-scene{opacity:.55}.glass-card{background:#0a0e12d6;backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);box-shadow:0 12px 40px #00000080}.about-bio,.about-approach,.skill-group,.project-card,.ros2-panel,.contact-card{padding:22px}.contact-card{padding:26px}section{padding:clamp(56px,9vh,96px) clamp(16px,4.5vw,32px) 88px}.hero-stats{gap:26px}section{scroll-margin-top:calc(var(--nav-h) + var(--safe-top, 0px))}}@media(max-width:700px){.robot-selector{left:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px))}.robot-model-btn{padding:8px 12px;font-size:11px}.music-toggle{padding:0;width:var(--nav-ctrl-size);height:var(--nav-ctrl-size);justify-content:center}.music-label{display:none}.joystick{width:150px;height:150px}.joystick-knob{width:58px;height:58px}.joy-wrap{gap:16px}.robot-speaker{right:12px;left:12px;bottom:calc(58px + env(safe-area-inset-bottom,0px));align-items:stretch}.robot-bubble{max-width:none}.robot-talk{width:100%;justify-content:center}.btn{padding:13px 22px;font-size:15px}.hero-actions .btn{flex:1 1 100%;justify-content:center}}@media(max-width:380px){.lang-toggle{padding:0 8px;font-size:11px;letter-spacing:.06em}}@media(pointer:coarse){.btn,.robot-model-btn,.robot-talk,.tr-faq-item summary,.nav-toggle{min-height:44px}.joystick{touch-action:none;-webkit-tap-highlight-color:transparent}}@media(min-width:1100px){#training,#enroll,#ros2-control,#skills{padding-left:clamp(380px,40vw,640px)}#home,#learn,#about,#projects,#contact{padding-right:clamp(380px,40vw,640px)}}@media(min-width:1100px)and (max-width:1360px){#training,#enroll,#skills{padding-left:clamp(300px,33vw,430px)}#home,#learn,#about,#projects,#contact{padding-right:clamp(300px,33vw,430px)}.glass-card{background:#0a0e12d1;backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15)}}@media(min-width:1100px){#ros2-control{max-width:none;margin:0;padding-left:clamp(380px,40vw,640px);padding-right:clamp(24px,3vw,64px)}}@media(min-width:1100px)and (max-width:1360px){#ros2-control{padding-left:clamp(300px,33vw,430px)}}.cockpit-mode{padding-top:calc(var(--nav-h) + var(--safe-top, 0px));display:flex;flex-direction:column;justify-content:flex-start}.cockpit-mode #ros2-control{flex:1}@media(max-width:700px){#ros2-control{max-width:none;margin:0;padding:18px 10px calc(96px + env(safe-area-inset-bottom,0px))}.cockpit-mode{min-height:100vh;min-height:100dvh}.cockpit-mode #ros2-control{min-height:calc(100vh - var(--nav-h) - var(--safe-top, 0px));min-height:calc(100dvh - var(--nav-h) - var(--safe-top, 0px));display:flex;flex-direction:column;justify-content:flex-start}.ros2-panel{padding:16px 12px;gap:16px;border-radius:10px}.ros2-url{min-width:150px}.ros2-telemetry{grid-template-columns:repeat(2,1fr);gap:10px}.ros2-controls{padding:0}}.offline-pill{position:fixed;top:calc(var(--nav-h, 64px) + var(--safe-top, 0px) + 10px);left:50%;transform:translate(-50%);z-index:117;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:12px;letter-spacing:.02em;background:#030507eb;border:1px solid rgba(251,191,36,.55);color:#fbbf24;box-shadow:0 0 14px #fbbf242e;max-width:min(92vw,480px);text-align:center}.crash-card{display:flex;flex-direction:column;align-items:center;gap:10px;margin:24px auto;max-width:520px;padding:22px;border:1px solid rgba(248,113,113,.45);border-radius:14px;background:#030507eb;color:#f87171;text-align:center;font-size:13px}.crash-card strong{font-size:15px;color:#fff}.crash-detail{color:#94a3b8;font-size:11px;overflow-wrap:break-word;max-width:100%}.crash-actions{display:flex;gap:10px}.crash-card-panel{margin:0;border-radius:12px;background:#080c12e6}@media(max-width:640px){.offline-pill{font-size:11px;padding:7px 12px}}.training{position:relative;z-index:1;max-width:var(--max-w);margin:0 auto;padding:calc(var(--nav-h) + var(--safe-top, 0px) + 72px) clamp(20px,5vw,64px) calc(96px + var(--safe-bottom, 0px))}.training .section-title{font-family:var(--font-display);font-size:clamp(2rem,4.6vw,3.2rem)}.tr-lead{color:var(--text-muted);max-width:80ch;margin:10px 0 28px;font-size:var(--fs-lead);line-height:var(--lh-relaxed)}.tr-hero{padding:8px 0 40px;border-bottom:1px solid rgba(232,238,242,.08);margin-bottom:48px}.tr-headline{font-family:var(--font-display);font-weight:800;font-size:var(--fs-hero);line-height:1.15;letter-spacing:-.02em;margin:0 0 18px;text-wrap:balance}.tr-headline-tail{display:block;font-size:.55em;font-weight:600;color:var(--text-muted);margin-top:12px;letter-spacing:0}.tr-sub{max-width:84ch;color:var(--text-muted);font-size:var(--fs-lead);line-height:var(--lh-relaxed);margin:0 0 26px}.tr-cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.tr-cta{font-size:1rem;padding:14px 26px;cursor:pointer;border-radius:var(--radius);display:inline-flex;align-items:center;gap:10px;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.tr-cta:hover{transform:translateY(-2px)}.tr-trust{margin-top:22px;font-size:.9rem;color:var(--text-muted);display:flex;align-items:center;gap:8px}.tr-block{margin-top:56px}.tr-block-title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.1rem);margin:0 0 10px}.tr-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:24px}.tr-card{padding:22px;transition:transform .18s ease,border-color .18s ease}.tr-card:hover{transform:translateY(-3px);border-color:var(--accent)}.tr-card h4{font-family:var(--font-display);margin:10px 0 8px;font-size:1.08rem}.tr-card p{color:var(--text-muted);font-size:var(--fs-body);line-height:var(--lh-body);margin:0}.tr-card-icon{color:var(--accent);font-size:1.35rem}.tr-journey{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;padding:0;margin:24px 0 0;counter-reset:step}.tr-step{position:relative;padding:20px 18px}.tr-step-num{position:absolute;top:12px;right:14px;font-size:.75rem;color:var(--accent);opacity:.85}.tr-step-icon{color:var(--accent);font-size:1.3rem}.tr-step h4{font-family:var(--font-display);margin:10px 0 6px;font-size:1rem}.tr-step p{color:var(--text-muted);font-size:.92rem;line-height:1.6;margin:0}.tr-loop-note{margin-top:16px;font-size:.8rem;color:var(--text-muted);text-align:center;letter-spacing:.08em}.tr-stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:26px}.tr-stage{padding:24px}.tr-stage-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.tr-stage-num{font-size:.8rem;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:3px 10px}.tr-stage-icon{color:var(--accent);font-size:1.2rem}.tr-stage-head h3{font-family:var(--font-display);font-size:1.1rem;margin:0}.tr-stage-list{list-style:none;padding:0;margin:0}.tr-stage-list li{display:flex;align-items:baseline;gap:9px;padding:7px 0;border-bottom:1px dashed rgba(232,238,242,.08);font-size:var(--fs-body);color:var(--text-muted)}.tr-stage-list li:last-child{border-bottom:none}.tr-stage-list i{font-size:.65rem;transform:translateY(-1px)}.tr-projects-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.tr-final-note{margin-top:22px;padding:18px 22px;display:flex;gap:12px;align-items:center;font-size:.95rem;line-height:1.6}.tr-audience-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:22px}.tr-audience-item{padding:16px 18px;display:flex;align-items:center;gap:12px;font-size:.93rem}.tr-need-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:20px}.tr-need-card{padding:22px}.tr-need-card h4{font-family:var(--font-display);margin:0 0 12px;font-size:1rem;display:flex;align-items:center;gap:9px}.tr-need-card ul{list-style:none;margin:0;padding:0}.tr-need-card li{position:relative;padding:6px 0 6px 18px;color:var(--text-muted);font-size:var(--fs-body);line-height:var(--lh-body)}.tr-need-card li:before{content:"▸";position:absolute;left:0;color:var(--accent)}.tr-need-no li:before{color:var(--danger)}.tr-deliverables-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:24px}.tr-req-list{display:flex;flex-direction:column;gap:10px;margin-top:24px}.tr-req-row{display:grid;grid-template-columns:auto 130px 1fr;align-items:center;gap:14px;padding:15px 20px}.tr-req-row p{margin:0;color:var(--text-muted);font-size:var(--fs-body);line-height:var(--lh-body)}.tr-req-label{color:var(--accent);font-size:.85rem;letter-spacing:.05em}.tr-card,.tr-step,.tr-stage,.tr-audience-item,.tr-need-card,.tr-req-row,.tr-faq-item,.tr-final-note,.tr-pricing-card{min-width:0;overflow-wrap:break-word}.tr-stage-head,.tr-stage-list li,.tr-includes li,.tr-req-row,.tr-final-note{min-width:0}.tr-final-note i{flex-shrink:0}#pricing{scroll-margin-top:calc(var(--nav-h) + var(--safe-top, 0px) + 20px)}.tr-price-inline{font-family:var(--font-mono)}.tr-pricing-card{max-width:560px;margin-top:26px;padding:34px clamp(22px,4vw,40px);text-align:center;border:1px solid var(--accent);box-shadow:0 0 42px #00f0ff14,inset 0 0 30px #00f0ff08;position:relative}.tr-price-badge{display:inline-block;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:4px 14px;margin-bottom:18px}.tr-price{font-size:clamp(2.2rem,5vw,3.1rem);margin:0;color:var(--text)}.tr-price-note{color:var(--text-muted);font-size:.88rem;margin:8px 0 22px}.tr-includes-lead{font-family:var(--font-display);font-weight:600;margin:0 0 12px}.tr-includes{list-style:none;margin:0 auto 24px;padding:0;max-width:400px;text-align:left}.tr-includes li{display:flex;align-items:baseline;gap:10px;padding:7px 0;font-size:var(--fs-body);color:var(--text-muted)}.tr-includes i{font-size:.8rem;transform:translateY(1px)}.tr-buy-btn{width:100%;justify-content:center}.tr-fineprint{margin:14px 0 0;font-size:.75rem;color:var(--text-muted);opacity:.8}.tr-faq{display:flex;flex-direction:column;gap:10px;margin-top:24px}.tr-faq-item{padding:0;overflow:hidden}.tr-faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:17px 20px;font-family:var(--font-display);font-weight:600;font-size:clamp(1rem,.96rem + .25vw,1.1rem)}.tr-faq-item summary::-webkit-details-marker{display:none}.tr-faq-item summary>span{flex:1}.tr-faq-caret{color:var(--text-muted);font-size:.8rem;transition:transform .2s ease}.tr-faq-item[open] .tr-faq-caret{transform:rotate(180deg)}.tr-faq-item[open]{border-color:var(--accent)}.tr-faq-item>p{margin:0;padding:0 20px 18px 48px;color:var(--text-muted);font-size:var(--fs-body);line-height:var(--lh-relaxed)}@keyframes tr-faq-reveal{0%{opacity:0}to{opacity:1}}.tr-faq-item[open]>p{animation:tr-faq-reveal .22s ease-out both}.tr-faq-item summary:hover{background:#00f0ff0a}.tr-faq-item summary:active{background:#00f0ff12}.tr-faq-item summary:focus-visible{outline-offset:-2px;border-radius:inherit}.tr-pending-note{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:10px;font-size:.86rem;color:var(--text-muted)}.tr-pending-note i{color:#f5c542;font-size:.95em}.tr-pending-note span{overflow-wrap:break-word}.tr-pending-link{color:var(--accent);white-space:nowrap;margin-left:auto}.tr-price-pending{color:var(--text-muted);letter-spacing:.06em}.tr-final{margin-top:64px;padding:clamp(30px,5vw,54px);text-align:center;border-color:var(--accent)}.tr-final-headline{font-family:var(--font-display);font-size:clamp(1.6rem,3.8vw,2.6rem);line-height:1.15;margin:0 0 14px;text-wrap:balance}.tr-final-sub{max-width:80ch;margin:0 auto 26px;color:var(--text-muted);line-height:1.7}@media(max-width:720px){.tr-req-row{grid-template-columns:auto 1fr;grid-template-areas:"icon label" "body body";row-gap:6px}.tr-req-row .tr-card-icon{grid-area:icon}.tr-req-label{grid-area:label}.tr-req-row p{grid-area:body}.tr-hero{padding-top:0}.tr-block{margin-top:44px}.tr-cta-row{flex-direction:column;align-items:stretch;gap:10px}.tr-cta-row .btn{width:100%;justify-content:center}.tr-journey{grid-template-columns:1fr 1fr;gap:10px}.tr-pricing-card{padding:28px 18px}.tr-final{padding:30px 20px;margin-top:48px}.tr-card-grid,.tr-deliverables-grid{gap:12px}}@media(max-width:430px){.tr-journey{grid-template-columns:1fr}.tr-faq-item summary{min-height:48px;align-items:center;padding:14px 16px}.tr-faq-item>p{padding-left:44px;padding-right:16px}.tr-includes li{font-size:.92rem}}@media(prefers-reduced-motion:reduce){.tr-card,.tr-cta,.tr-faq-caret{transition:none}}.cal-overlay{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:16px;background:#030507d1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:cal-fade .16s ease-out}@keyframes cal-fade{0%{opacity:0}to{opacity:1}}.cal-dialog{position:relative;width:min(680px,100%);max-height:min(90vh,900px);overflow-y:auto;padding:28px;border-radius:var(--radius);padding-top:calc(28px + var(--safe-top))}.cal-title{margin:0 0 6px;font-size:1.35rem;color:var(--text);padding-right:40px}.cal-sub{margin:0 0 20px;color:var(--text-muted);font-size:.95rem;max-width:72ch}.cal-close{position:absolute;top:18px;right:18px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(var(--accent-rgb),.28);background:rgba(var(--accent-rgb),.08);color:var(--accent);cursor:pointer;transition:background .14s ease,transform .14s ease}.cal-close:hover{background:rgba(var(--accent-rgb),.18)}.cal-close:active{transform:scale(.94)}.cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.cal-nav{display:flex;align-items:center;gap:8px}.cal-nav-btn{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;border:1px solid rgba(var(--accent-rgb),.24);background:transparent;color:var(--accent);cursor:pointer;transition:background .14s ease}.cal-nav-btn:hover{background:rgba(var(--accent-rgb),.14)}.cal-month{margin:0;min-width:11ch;text-align:center;font-size:1.05rem;color:var(--text);text-transform:capitalize}.cal-today-btn{white-space:nowrap}.cal-grid{margin-bottom:14px}.cal-weekdays,.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-weekday{text-align:center;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:6px 0}.cal-day{position:relative;min-height:44px;display:grid;place-items:center;border-radius:10px;border:1px solid transparent;background:rgba(var(--accent-rgb),.04);color:var(--text);font-variant-numeric:tabular-nums;cursor:pointer;transition:background .13s ease,border-color .13s ease,transform .13s ease}.cal-day:hover{background:rgba(var(--accent-rgb),.14)}.cal-day:active{transform:scale(.96)}.cal-day.is-outside{background:transparent;color:var(--text-muted);font-weight:400}.cal-day.is-today{border-color:var(--accent-2);box-shadow:inset 0 0 0 1px #2dd4bf80}.cal-day.is-selected{background:var(--accent);color:#030507;font-weight:700}.cal-day.has-events .cal-day-dots{position:absolute;bottom:5px;display:flex;gap:3px}.cal-day.is-selected .cal-day-dot{background:#030507}.cal-day-dot{width:4px;height:4px;border-radius:50%;background:var(--accent-2)}.cal-selected{margin:0 0 18px;padding:10px 14px;border-radius:10px;border:1px solid rgba(var(--accent-rgb),.2);background:rgba(var(--accent-rgb),.07);color:var(--text);font-size:.95rem}.cal-selected-label{color:var(--text-muted)}.cal-selected strong{color:var(--accent)}.cal-form{display:grid;gap:12px}.cal-form-title{margin:0;font-size:1rem;color:var(--text)}.cal-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cal-field{display:grid;gap:5px}.cal-field label{font-size:.8rem;color:var(--text-muted)}.cal-field input,.cal-field textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(var(--accent-rgb),.22);background:var(--surface-2);color:var(--text);font:inherit;transition:border-color .14s ease}.cal-field input:focus,.cal-field textarea:focus{border-color:var(--accent);outline:2px solid rgba(var(--accent-rgb),.4);outline-offset:1px}.cal-error{margin:0;color:var(--danger);font-size:.88rem}.cal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.cal-action{flex:1 1 220px;justify-content:center}.cal-hint{margin:0;font-size:.78rem;color:var(--text-muted)}.cal-day:focus-visible,.cal-nav-btn:focus-visible,.cal-close:focus-visible,.cal-today-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cal-day:focus-visible{outline-offset:-2px;z-index:1}@media(max-width:560px){.cal-dialog{padding:20px}.cal-row{grid-template-columns:1fr}.cal-day{min-height:42px}.cal-month{font-size:.95rem;min-width:9ch}.cal-actions .cal-action{flex:1 1 100%}}@media(prefers-reduced-motion:reduce){.cal-overlay{animation:none}.cal-day,.cal-nav-btn,.cal-close{transition:none}}
