*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-heading:"Playfair Display", Georgia, serif;--color-bg:#f9fafb;--color-surface:#fff;--color-text:#111827;--color-text-muted:#6b7280;--color-accent:#c65d3a;--color-border:#e5e7eb;--color-linkedin:#0a66c2;--color-logo-dark:#0a0908;--radius:999px;--radius-card:14px;--shadow:0 1px 3px #0000000d, 0 1px 2px #00000008;--transition:.25s cubic-bezier(.4, 0, .2, 1)}@media (prefers-color-scheme:dark){:root{--color-bg:#0b1120;--color-surface:#141b2d;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-accent:#e08155;--color-border:#1e293b;--color-linkedin:#5b9bd5;--color-logo-dark:#f1f5f9;--shadow:0 1px 3px #0006}}body{min-height:100dvh;font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;flex-direction:column;justify-content:center;align-items:center;gap:2.5rem;padding:3rem 1.5rem;line-height:1.6;display:flex}.page{text-align:center;flex-direction:column;align-items:center;max-width:34rem;display:flex}.logo{width:64px;height:64px;margin-bottom:1.75rem}.status{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);align-items:center;gap:.5rem;padding:.35rem .9rem;font-size:.78rem;font-weight:500;display:inline-flex}.status-dot{background:var(--color-accent);border-radius:50%;width:7px;height:7px;animation:2.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}@media (prefers-reduced-motion:reduce){.status-dot{animation:none}}h1{font-family:var(--font-heading);letter-spacing:-.02em;margin-top:1.5rem;font-size:clamp(2.4rem,8vw,3.6rem);font-weight:700;line-height:1.1}.accent{color:var(--color-accent)}.tagline{color:var(--color-text-muted);margin-top:1rem;font-size:1.05rem;font-weight:300}.links{justify-content:center;gap:.75rem;margin-top:2rem;display:flex}.icon-link{border:1px solid var(--color-border);background:var(--color-surface);width:46px;height:46px;box-shadow:var(--shadow);color:var(--color-text-muted);transition:transform var(--transition), border-color var(--transition), color var(--transition);border-radius:50%;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.icon-link:hover,.icon-link:focus-visible{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-2px)}.icon-link-linkedin:hover,.icon-link-linkedin:focus-visible{border-color:var(--color-linkedin);color:var(--color-linkedin)}.projects{border-top:1px solid var(--color-border);width:100%;margin-top:3rem;padding-top:2.25rem}.projects-title{letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);font-size:.72rem;font-weight:500}.project{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);max-width:21rem;box-shadow:var(--shadow);color:inherit;text-align:left;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);margin:1.25rem auto 0;padding:1.1rem 1.4rem;text-decoration:none;display:block}.project:hover,.project:focus-visible{border-color:var(--color-accent);transform:translateY(-2px)}.project-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.project-name{font-size:1.02rem;font-weight:600}.project-arrow{color:var(--color-text-muted);transition:transform var(--transition), color var(--transition)}.project:hover .project-arrow,.project:focus-visible .project-arrow{color:var(--color-accent);transform:translate(2px,-2px)}.project-desc{color:var(--color-text-muted);margin-top:.3rem;font-size:.88rem;font-weight:300;display:block}.footer{color:var(--color-text-muted);font-size:.82rem}@media (width<=480px){.project{max-width:100%}}.project-status{letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);align-items:center;gap:.4rem;margin-top:.6rem;font-size:.7rem;font-weight:500;display:inline-flex}.project-status:before{content:"";background:var(--color-accent);border-radius:50%;width:6px;height:6px;animation:2.4s ease-in-out infinite pulse}:root{--color-live:#15803d}@media (prefers-color-scheme:dark){:root{--color-live:#4ade80}}.project-status.live{color:var(--color-live)}.project-status.live:before{background:var(--color-live)}.twin{gap:1.1rem;width:100%;max-width:60rem;scroll-margin-top:1.5rem;display:grid}.twin-head{text-align:center;justify-items:center;gap:.5rem;display:grid}.twin-head p{max-width:34rem;color:var(--color-text-muted);font-size:.95rem;font-weight:300}.twin-view{border:1px solid var(--color-border);border-radius:var(--radius-card);height:clamp(340px,50vw,540px);box-shadow:var(--shadow);isolation:isolate;background:#0a0e11;position:relative;overflow:hidden}.stage{position:absolute;inset:0}.stage canvas{width:100%;height:100%;display:block;position:absolute;inset:0}#tw{touch-action:pan-y;cursor:grab}#tw:active{cursor:grabbing}#ov2d{pointer-events:none}.hud{z-index:2;letter-spacing:.08em;text-transform:uppercase;color:#7b8d97;pointer-events:none;flex-wrap:wrap;gap:4px 16px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10.5px;display:flex;position:absolute;top:12px;left:14px;right:64px}.hud b{color:#dfe8ec;font-weight:500}.zoomctl{z-index:3;gap:6px;display:grid;position:absolute;top:12px;right:12px}.zoomctl button{color:#dfe8ec;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:34px;height:34px;transition:border-color var(--transition), color var(--transition);background:#0a0e11b8;border:1px solid #8fa3ad59;border-radius:8px;place-items:center;font:500 18px/1 IBM Plex Mono,ui-monospace,monospace;display:grid}.zoomctl button.rs{letter-spacing:.02em;font-size:10.5px}.zoomctl button:hover{border-color:var(--color-accent);color:var(--color-accent)}.zoomctl button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.hud .a{color:#ffb000}.nowebgl{color:#94a3b8;text-align:center;font-size:.85rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.twin-ui{text-align:left;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1rem;display:grid}@media (width<=720px){.twin-ui{grid-template-columns:minmax(0,1fr)}}.twin-col{align-content:start;gap:.75rem;min-width:0;display:grid}.faders{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow);gap:.4rem;padding:.9rem 1rem;display:grid}.faders label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-variant-numeric:tabular-nums;grid-template-columns:4.5rem minmax(0,1fr) 3.2rem;align-items:center;gap:.75rem;font-size:.72rem;font-weight:500;display:grid}.faders b{text-align:right;color:var(--color-text);font-weight:500}.faders input[type=range]{width:100%;accent-color:var(--color-accent)}.hint{color:var(--color-text-muted);font-size:.75rem}.readout{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text-muted);min-height:4.6rem;padding:.8rem 1rem;font-size:.82rem}.readout b{color:var(--color-text);margin-bottom:.15rem;font-weight:600;display:block}.parts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}@media (width<=480px){.parts{grid-template-columns:minmax(0,1fr)}}.parts .projects-title{grid-column:1/-1}.prt{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--transition), transform var(--transition);border-radius:10px;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.55rem .7rem;display:grid}.prt:hover,.prt.hi{border-color:var(--c);transform:translateY(-1px)}.prt[aria-pressed=true]{border-color:var(--c);box-shadow:0 0 0 1px var(--c) inset}.prt:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.prt i{background:var(--c);border-radius:3px;width:10px;height:10px}.prt .n{font-size:.82rem;font-weight:500;line-height:1.3}.prt .n small{color:var(--color-text-muted);font-size:.7rem;font-weight:300;display:block}.prt .q{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:.75rem}.prt.radar{--c:#e39a00}.prt.camera{--c:#1fb5dc}.prt.uss{--c:#7fbf2a}.prt.compute{--c:#9b7be6}.prt.power{--c:#7b8d97}.twin-note{color:var(--color-text-muted);text-align:center;font-size:.75rem}@media (prefers-reduced-motion:reduce){.project-status:before{animation:none}.prt{transition:none}}
