:root{--bg:#070814;--fg:#f2f3ff;--muted:#8186a5;--line:rgba(190,198,255,.15);--blue:#55a7ff;--violet:#996eff;--mono:"DM Mono",monospace;--sans:"Manrope",system-ui,sans-serif}
*{box-sizing:border-box}
html,body{height:100%;margin:0;overflow:hidden}
body{background:var(--bg);color:var(--fg);font-family:var(--sans)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:inherit;text-decoration:none}
button{font:inherit}
.aurora{position:fixed;inset:-20%;pointer-events:none;background:radial-gradient(circle at 42% 48%,rgba(54,103,255,.11),transparent 28%),radial-gradient(circle at 70% 35%,rgba(145,71,255,.09),transparent 25%);filter:blur(20px)}
.shell{height:100%;display:grid;grid-template-rows:82px minmax(0,1fr) 58px;position:relative}
header,footer{display:flex;align-items:center;justify-content:space-between;padding:0 3.4vw;position:relative;z-index:4}
header{border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;font:500 11px var(--mono);letter-spacing:.16em}
.brand b{width:31px;height:31px;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--violet));color:#080914;font:600 15px var(--sans);box-shadow:0 0 26px rgba(104,106,255,.35)}
.ai-thesis{position:absolute;left:50%;top:50%;display:flex;align-items:baseline;gap:14px;margin:0;transform:translate(-50%,-50%);white-space:nowrap}.ai-thesis strong{color:#d8dcff;font:500 clamp(.72rem,.9vw,.9rem) var(--mono);letter-spacing:.12em}.ai-thesis span{color:#656b8d;font:400 8px var(--mono);letter-spacing:.12em}
.slogan{margin:0;text-align:right;font-size:clamp(.82rem,1.05vw,1rem);font-weight:500;line-height:1.3;letter-spacing:-.015em}
.slogan em{font-style:normal;color:#8b8fff}
main{position:relative;min-height:0;overflow:hidden}
.context{position:absolute;top:18px;left:3.4vw;right:3.4vw;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font:400 10px var(--mono);letter-spacing:.12em;z-index:2;pointer-events:none}.stack-orbits{position:absolute;inset:0;z-index:3;pointer-events:none}.stack-orbit{position:absolute;display:flex;align-items:center;gap:8px;padding:6px;border:0;background:transparent;color:#5f6483;font:400 7px var(--mono);letter-spacing:.11em;cursor:pointer;pointer-events:auto;transition:color .2s}.stack-orbit i{width:10px;height:10px;border:1px solid #666b91;transform:rotate(45deg);transition:background .2s,box-shadow .2s,transform .2s}.stack-orbit span{opacity:0;transition:opacity .2s}.stack-orbit:hover span,.stack-orbit:focus-visible span,.stack-orbit.active span{opacity:1}.stack-orbit:hover i,.stack-orbit.active i{transform:rotate(135deg);background:#8c88ff;box-shadow:0 0 13px rgba(140,136,255,.8)}.orbit-languages{left:3.1vw;top:62px}.orbit-apps{right:3.1vw;top:62px;flex-direction:row-reverse}.orbit-ai{left:3.1vw;bottom:58px}.orbit-systems{right:3.1vw;bottom:58px;flex-direction:row-reverse}.orbit-languages i{border-color:#55a7ff}.orbit-apps i{border-color:#d46fff}.orbit-ai i{border-color:#9478ff}.orbit-systems i{border-color:#f2b36d}.legend-card{position:absolute;z-index:5;width:min(430px,42vw);padding:24px;border:1px solid rgba(176,181,255,.2);background:rgba(8,9,24,.9);backdrop-filter:blur(24px);box-shadow:0 22px 60px rgba(0,0,0,.4);opacity:0;transform:scale(.97);pointer-events:none;transition:opacity .2s,transform .2s}.legend-card.open{opacity:1;transform:none;pointer-events:auto}.legend-card[data-position="languages"]{left:4.2vw;top:98px}.legend-card[data-position="apps"]{right:4.2vw;top:98px}.legend-card[data-position="ai"]{left:4.2vw;bottom:94px}.legend-card[data-position="systems"]{right:4.2vw;bottom:94px}.close-legend{position:absolute;top:12px;right:14px;border:0;background:transparent;color:#777d9f;font-size:20px;cursor:pointer}.legend-kicker{margin:0 0 9px;color:#686e91;font:400 8px var(--mono);letter-spacing:.13em}.legend-title{margin:0;color:#edf0ff;font-size:28px;font-weight:500;letter-spacing:-.04em}.legend-summary{margin:10px 0 16px;color:#8d92ae;font-size:11px;line-height:1.5}.legend-items{display:flex;flex-wrap:wrap;gap:7px}.legend-chip{--chip:#8c88ff;display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid color-mix(in srgb,var(--chip) 28%,transparent);background:color-mix(in srgb,var(--chip) 7%,transparent);color:#c8cbde;font:400 9px var(--mono)}.legend-chip i{width:6px;height:6px;border-radius:50%;background:var(--chip);box-shadow:0 0 9px color-mix(in srgb,var(--chip) 75%,transparent)}
#graph{position:absolute;inset:0;transition:right .35s cubic-bezier(.2,.8,.2,1)}
.shell.panel-open #graph{right:min(620px,54vw)}
.chart-error{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:var(--muted);font:400 10px var(--mono);letter-spacing:.12em}
.instruction{position:absolute;left:3.4vw;bottom:24px;margin:0;color:var(--muted);font:400 10px var(--mono);letter-spacing:.12em;z-index:2}
.instruction i{display:inline-block;width:6px;height:6px;margin-right:9px;border-radius:50%;background:#8e87ff;box-shadow:0 0 12px #8178ff;animation:blink 2.4s ease-in-out infinite}
.activity-legend{position:absolute;left:50%;bottom:22px;z-index:2;display:flex;align-items:center;gap:18px;transform:translateX(-50%);color:#666c8a;font:400 7px var(--mono);letter-spacing:.1em;white-space:nowrap}.activity-legend span{display:flex;align-items:center;gap:7px}.activity-legend i{display:block;width:5px;height:5px;border-radius:50%}.state-pulse{background:#8f87ff;box-shadow:0 0 10px rgba(143,135,255,.8);animation:statePulse 1.8s ease-in-out infinite}.state-steady{background:#629bda;box-shadow:0 0 6px rgba(98,155,218,.35)}.state-dormant{background:#424761;opacity:.65}
.project-panel{position:absolute;z-index:6;top:88px;right:3.4vw;bottom:62px;width:min(560px,50vw);padding:36px;overflow:auto;border:1px solid rgba(176,181,255,.21);background:rgba(9,10,27,.82);backdrop-filter:blur(26px);box-shadow:0 30px 80px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.05);opacity:0;transform:translateX(28px);pointer-events:none;transition:opacity .3s ease,transform .3s ease}
.project-panel.open{opacity:1;transform:none;pointer-events:auto}
.close-panel{position:absolute;top:16px;right:18px;width:30px;height:30px;border:0;background:transparent;color:var(--muted);font-size:24px;line-height:1;cursor:pointer}
.close-panel:hover{color:var(--fg)}
.panel-count{color:#777d9f;font:400 10px var(--mono);letter-spacing:.12em}
.panel-status{display:inline-block;margin:35px 0 14px;padding:6px 9px;border:1px solid rgba(124,135,255,.33);border-radius:99px;color:#9b9cff;font:400 9px var(--mono);letter-spacing:.12em}
.panel-title{margin:0;font-size:clamp(2.25rem,4vw,4.2rem);line-height:.92;letter-spacing:-.06em;font-weight:500}
.panel-description{margin:22px 0;color:#a7abc4;font-size:15px;line-height:1.65}
.panel-media{position:relative;margin:0 0 22px;overflow:hidden;border:1px solid var(--line);background:#0b0c1d}.panel-media img{display:block;width:100%;height:260px;object-fit:contain}.panel-media figcaption{padding:8px 10px;color:var(--muted);font:400 8px var(--mono);letter-spacing:.08em}.panel-gallery-controls{position:absolute;right:9px;top:225px;display:flex;align-items:center;gap:7px;padding:4px 6px;border:1px solid rgba(132,126,255,.22);background:rgba(7,8,22,.82);backdrop-filter:blur(8px)}.panel-gallery-controls[hidden]{display:none}.panel-gallery-controls button{width:24px;height:24px;border:0;background:transparent;color:#b6b7d6;cursor:pointer}.panel-gallery-controls button:hover{color:#fff}.gallery-count{min-width:30px;text-align:center;color:#777d9f;font:400 8px var(--mono);letter-spacing:.08em}
.panel-facts{margin:0;border-top:1px solid var(--line)}.panel-facts div{padding:13px 0;border-bottom:1px solid var(--line)}.panel-facts dt{margin-bottom:6px;color:#6f7594;font:400 8px var(--mono);letter-spacing:.12em}.panel-facts dd{margin:0;color:#bdc1d8;font-size:12px;line-height:1.5}
.panel-origin{color:#9d96ff}.panel-origin:hover{color:#c3c0ff}
.panel-technical{margin-top:22px;padding:16px 18px;border:1px solid rgba(132,126,255,.2);background:rgba(103,95,255,.055)}.panel-technical h2{margin:0 0 11px;color:#8d91b2;font:400 8px var(--mono);letter-spacing:.13em}.panel-technical ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.panel-technical li{position:relative;padding-left:13px;color:#aeb2cb;font-size:11px;line-height:1.55}.panel-technical li::before{content:"";position:absolute;left:0;top:.65em;width:4px;height:4px;border-radius:50%;background:#8178ff;box-shadow:0 0 8px rgba(129,120,255,.8)}
.panel-link{display:inline-flex;gap:12px;align-items:center;margin-top:22px;color:#9d96ff;font:500 10px var(--mono);letter-spacing:.12em}
.panel-link[hidden]{display:none}
.panel-link span{font-size:17px;transition:transform .2s}.panel-link:hover span{transform:translate(3px,-3px)}
footer{border-top:1px solid var(--line);color:var(--muted);font:400 9px var(--mono);letter-spacing:.1em}
footer div{display:flex;gap:28px}footer a:hover{color:#9b96ff}
@keyframes blink{0%,100%{opacity:.42;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}
@keyframes statePulse{0%,100%{opacity:.45;transform:scale(.72)}50%{opacity:1;transform:scale(1.35)}}
@media(prefers-reduced-motion:reduce){.instruction i,.state-pulse{animation:none}.project-panel,.panel-link span{transition:none}}
@media(max-width:760px){
  .shell{grid-template-rows:70px minmax(0,1fr) 64px}
  header,footer{padding-left:18px;padding-right:18px}
  .brand span{display:none}.slogan{display:none}.ai-thesis{left:auto;right:18px;transform:translateY(-50%)}.ai-thesis span{display:none}.ai-thesis strong{font-size:.66rem}
  .context{left:18px;right:18px;top:16px;font-size:8px}.stack-orbit span{display:none}.orbit-languages,.orbit-ai{left:12px}.orbit-apps,.orbit-systems{right:12px}.legend-card,.legend-card[data-position]{position:fixed;left:10px;right:10px;top:auto;bottom:74px;width:auto}
  #graph{inset:18px 0 76px}
  .shell.panel-open #graph{right:0}
  .instruction{left:18px;bottom:20px;font-size:8px}.activity-legend{right:18px;left:auto;bottom:19px;transform:none}.activity-legend span:not(:first-child){display:none}
  .project-panel{position:fixed;top:auto;left:10px;right:10px;bottom:10px;width:auto;max-height:58vh;overflow:auto;padding:24px;transform:translateY(28px)}
  .project-panel.open{transform:none}
  .panel-status{margin-top:25px}.panel-title{font-size:2.5rem}.panel-description{margin:18px 0}
  footer{gap:12px}footer>span{display:none}footer div{width:100%;justify-content:space-between;gap:12px;font-size:8px}
}
