/* Four worlds, shared functionality. Visual instruments are decorative. */
.world-readout { display:none; }
.c-space { background:radial-gradient(circle at 65% 30%,#ffddae 0 13%,transparent 16%),#142331; border:1px solid #c48c54; }

/* CYBERPUNK — scarlet optical glass, cyan diagnostics, hard cut chassis. */
[data-theme="cyberpunk"] {
 --bg:#08080b; --panel:rgba(26,8,13,.88); --panel-2:rgba(74,17,27,.55);
 --line:rgba(250,73,84,.32); --line-strong:rgba(255,83,94,.75);
 --ink:#f2d6d4; --ink-dim:#bb8587; --accent:#ff515c; --accent-2:#68dfdf;
 --accent-ink:#1b080c; --ok:#68dfdf; --warn:#f9b965; --bad:#ff6971;
 --user:rgba(248,65,79,.1); --glow:0 0 18px rgba(255,65,80,.2); --cut:12px;
}
[data-theme="cyberpunk"] .fx { background:linear-gradient(90deg,rgba(3,7,10,.15),rgba(3,7,10,.6) 45%,rgba(3,7,10,.1)),url('/static/neural-grid.svg') center/cover,#08080b; }
[data-theme="cyberpunk"] .fx::before { inset:0; width:auto; height:auto; transform:none; mask-image:none; opacity:.4; background:radial-gradient(ellipse at 70% 55%,rgba(150,20,31,.13),transparent 60%),repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.3) 3px 4px); }
[data-theme="cyberpunk"] .fx::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,transparent 90%,rgba(18,68,73,.07)); }
[data-theme="cyberpunk"] .panel { border:1px solid var(--line-strong); border-top:3px solid var(--accent); background:linear-gradient(120deg,rgba(63,14,23,.5),rgba(13,9,13,.94) 60%); backdrop-filter:blur(4px); box-shadow:inset 0 0 24px rgba(235,42,60,.06); clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px)); }
[data-theme="cyberpunk"] .top.panel { clip-path:none; border:0; border-bottom:1px solid var(--accent); background:#10090d; }
[data-theme="cyberpunk"] .name { font-weight:700; color:#ff5b63; letter-spacing:.26em; text-shadow:none; }
[data-theme="cyberpunk"] .tag { color:var(--accent-2); }
[data-theme="cyberpunk"] .hud { font-size:10px; color:var(--accent-2); padding-left:15px; border-left:3px solid var(--accent); }
[data-theme="cyberpunk"] .themes { border-color:var(--line); border-radius:0; padding:0; }
[data-theme="cyberpunk"] .sw { text-transform:uppercase; font-size:10px; }
[data-theme="cyberpunk"] .sw[aria-checked="true"] { background:var(--accent); color:#16070a; box-shadow:none; }
[data-theme="cyberpunk"] .c-cyber { background:#ff515c; box-shadow:0 0 5px #ff515c; }
[data-theme="cyberpunk"] .rail { background:rgba(12,7,11,.95); border-color:var(--line-strong); }
[data-theme="cyberpunk"] .rail button { border-bottom:1px solid var(--line); text-transform:uppercase; font-size:10px; }
[data-theme="cyberpunk"] .rail button[aria-current="true"] { background:var(--accent); color:#18080d; box-shadow:none; border-color:var(--accent); clip-path:polygon(0 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%); }
[data-theme="cyberpunk"] .brief-column .panel { background:linear-gradient(150deg,rgba(70,12,24,.62),rgba(12,8,13,.95)); }
[data-theme="cyberpunk"] .section-line h2 { letter-spacing:.19em; font-weight:700; }
[data-theme="cyberpunk"] .briefing>.section-line,[data-theme="cyberpunk"] .attention>.section-line { padding-bottom:14px; border-bottom:1px solid var(--line-strong); position:relative; }
[data-theme="cyberpunk"] .briefing>.section-line::after { content:''; width:58px; height:4px; position:absolute; bottom:-2px; right:0; background:repeating-linear-gradient(120deg,var(--accent) 0 4px,transparent 4px 7px); }
[data-theme="cyberpunk"] .briefing>.eyebrow { color:var(--accent-2); font-size:9px; }
[data-theme="cyberpunk"] .greeting { text-align:left; width:min(850px,100%); padding:14px 20px; border-left:4px solid var(--accent); background:linear-gradient(90deg,rgba(107,24,34,.22),transparent); position:relative; }
[data-theme="cyberpunk"] .greeting::after { content:'AE–02 / NEURAL INTERFACE'; display:block; position:absolute; right:0; top:14px; color:var(--accent-2); font-size:8px; letter-spacing:.1em; }
[data-theme="cyberpunk"] .greeting h2 { text-transform:uppercase; font-size:clamp(22px,2.3vw,32px); font-weight:600; letter-spacing:.015em; color:var(--accent); }
[data-theme="cyberpunk"] .greeting>.eyebrow { color:var(--accent-2); }
[data-theme="cyberpunk"] .orbit-toolbar { border-color:var(--line-strong); color:var(--accent-2); }
[data-theme="cyberpunk"] .orbit { margin-top:16px; background:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:40px 40px; border:1px solid var(--line); box-shadow:inset 0 0 65px #09070b; }
[data-theme="cyberpunk"] .orbit::before,[data-theme="cyberpunk"] .orbit::after { content:''; position:absolute; width:28px; height:28px; border:2px solid var(--accent); pointer-events:none; }
[data-theme="cyberpunk"] .orbit::before { left:-1px; top:-1px; border-right:0;border-bottom:0; }
[data-theme="cyberpunk"] .orbit::after { right:-1px; bottom:-1px; border-left:0;border-top:0; }
[data-theme="cyberpunk"] .world-readout { position:absolute; top:7px; left:8px; right:8px; display:flex; justify-content:space-between; color:var(--accent-2); font-size:7px; letter-spacing:.09em; }
[data-theme="cyberpunk"] .world-readout i { width:38px; height:6px; background:repeating-linear-gradient(90deg,var(--accent) 0 2px,transparent 2px 4px); }
[data-theme="cyberpunk"] .orbit-caption { bottom:6px; font-size:8px; }
[data-theme="cyberpunk"] .orbit-core { inset:34%; border-radius:50%; background:radial-gradient(circle,rgba(255,56,72,.14),transparent 70%); }
[data-theme="cyberpunk"] .orbit-core svg { stroke:var(--accent); opacity:.65; }
[data-theme="cyberpunk"] .orbit-core strong { color:var(--accent); font-weight:700; }
[data-theme="cyberpunk"] .orbit-core span { color:var(--accent-2); }
[data-theme="cyberpunk"] .orbit-ring { border-color:rgba(255,83,94,.6); }.orbit-ring { pointer-events:none; }
[data-theme="cyberpunk"] .orbit-ring.middle { border-color:rgba(104,223,223,.4); }
[data-theme="cyberpunk"] .orbit-node span { border:1px solid var(--line-strong); padding:4px 6px; color:var(--accent); background:#160b11; text-transform:uppercase; }
[data-theme="cyberpunk"] .orbit-node small { color:var(--accent-2); }
[data-theme="cyberpunk"] .chat-dock>.section-line { background:var(--accent); color:#18070b; }
[data-theme="cyberpunk"] .chat-dock>.section-line h2,[data-theme="cyberpunk"] .chat-dock>.section-line .text-button { color:#18070b; }
[data-theme="cyberpunk"] .composer textarea { border-color:var(--line-strong); }
[data-theme="cyberpunk"] .btn { text-transform:uppercase; font-size:11px; border-color:var(--accent); }
[data-theme="cyberpunk"] .btn.primary { box-shadow:none; font-weight:700; }
[data-theme="cyberpunk"] .bridge-stats { gap:0; width:min(430px,100%); border-top:1px solid var(--line); padding-top:10px; }
[data-theme="cyberpunk"] .bridge-stats>div { flex:1; border-right:1px solid var(--line); }.bridge-stats>div:last-child { border-right:0; }
[data-theme="cyberpunk"] .project-card,[data-theme="cyberpunk"] .team-grid .agent { border-top:3px solid var(--accent); background:rgba(32,10,17,.9); }
[data-theme="cyberpunk"] .project-mark { color:var(--accent-2); background:repeating-linear-gradient(0deg,transparent 0 18px,rgba(76,191,197,.12) 19px,transparent 20px),#0d1218; }
[data-theme="cyberpunk"] .page-heading { border-bottom:1px solid var(--line-strong); padding-bottom:20px; }
[data-theme="cyberpunk"] .page-heading h2 { color:var(--accent); text-transform:uppercase; font-weight:600; }
[data-theme="cyberpunk"] .city-grid { stroke:rgba(85,210,215,.18); }

/* HACKER — bright, changing code falls behind a readable terminal layer. */
[data-theme="hacker"] .fx { background:radial-gradient(ellipse at 50% 65%,#021308,#000 75%); }
[data-theme="hacker"] .fx canvas { display:block; opacity:.62; }
[data-theme="hacker"] .fx::after { background:radial-gradient(ellipse at 60% 50%,rgba(0,0,0,.5),transparent 75%),repeating-linear-gradient(0deg,rgba(0,0,0,.12) 0 1px,transparent 1px 4px); }
[data-theme="hacker"] .brief-column .panel,[data-theme="hacker"] .chat-dock { background:rgba(0,9,3,.93); }
[data-theme="hacker"] .greeting { background:rgba(0,7,2,.7); padding:12px 24px; border:1px solid rgba(51,255,102,.3); box-shadow:0 0 20px rgba(51,255,102,.07); }
[data-theme="hacker"] .orbit-node span,[data-theme="hacker"] .orbit-node small { background:#000b03; }

/* OUTER WILDS — a quiet starfield and warm exploration instruments. */
[data-theme="outerwilds"] {
 --bg:#070e16; --panel:rgba(10,20,30,.88); --panel-2:rgba(35,54,64,.62);
 --line:rgba(145,184,196,.23); --line-strong:rgba(231,171,107,.65);
 --ink:#eee8da; --ink-dim:#9dabb1; --accent:#e5aa69; --accent-ink:#1e170d;
 --accent-2:#98d2dc; --ok:#9ecbc0; --warn:#edb15e; --bad:#ec8976; --user:rgba(229,170,105,.08);
 --font:'Chakra Petch',system-ui,sans-serif; --font-head:'Chakra Petch',system-ui,sans-serif;
 --font-code:'Courier Prime',monospace; --fs:15px; --radius:4px; --cut:0px; --glow:0 0 22px rgba(229,170,105,.14);
}
[data-theme="outerwilds"] .fx { background:url('/static/space.svg') center/cover no-repeat,#050910; }
[data-theme="outerwilds"] .fx::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(2,6,10,.28),transparent 70%); }
[data-theme="outerwilds"] .fx::after { content:''; position:absolute; width:42vw; height:42vw; min-width:400px;min-height:400px; border-radius:50%; left:53%;top:12%; border:1px solid rgba(202,168,117,.07); box-shadow:0 0 0 70px rgba(202,168,117,.025),0 0 0 140px rgba(202,168,117,.015); }
[data-theme="outerwilds"] .top.panel { background:rgba(5,12,19,.93); border-bottom-color:var(--line); }
[data-theme="outerwilds"] .name { letter-spacing:.22em; color:var(--accent); font-weight:600; }
[data-theme="outerwilds"] .tag { color:var(--accent-2); }
[data-theme="outerwilds"] .hud { font-size:10px; letter-spacing:.1em; color:var(--ink-dim); }
[data-theme="outerwilds"] .rail { background:rgba(5,12,19,.91); }
[data-theme="outerwilds"] .rail button[aria-current="true"] { border-color:var(--line-strong); box-shadow:inset 0 -2px var(--accent); background:rgba(229,170,105,.09); border-radius:3px; }
[data-theme="outerwilds"] .panel { border:1px solid var(--line); border-top:2px solid var(--line-strong); background:rgba(8,19,29,.89); border-radius:4px; backdrop-filter:blur(5px); }
[data-theme="outerwilds"] .brief-column .panel { background:rgba(8,19,29,.92); }
[data-theme="outerwilds"] .section-line h2 { letter-spacing:.18em; font-weight:500; }
[data-theme="outerwilds"] .briefing>.eyebrow { color:var(--accent-2); }
[data-theme="outerwilds"] .greeting>.eyebrow { color:var(--accent); letter-spacing:.3em; }
[data-theme="outerwilds"] .greeting h2 { font-size:clamp(26px,2.6vw,38px); letter-spacing:.015em; font-weight:400; }
[data-theme="outerwilds"] .greeting p { color:#b0bfc6; }
[data-theme="outerwilds"] .orbit-toolbar { color:var(--accent-2); font-size:10px; border-bottom-style:dashed; }
[data-theme="outerwilds"] .orbit-ring { border-color:rgba(184,203,210,.25); }
[data-theme="outerwilds"] .orbit-ring.middle { border-color:rgba(229,170,105,.42); }
[data-theme="outerwilds"] .orbit-core { inset:37%; border:1px solid rgba(229,170,105,.55); border-radius:50%; background:radial-gradient(circle at 30% 25%,#795739,#392b25 45%,#09141c 80%); box-shadow:0 0 42px rgba(214,139,72,.18); }
[data-theme="outerwilds"] .orbit-core svg { opacity:.25; stroke:#eebf90; }
[data-theme="outerwilds"] .orbit-core strong { font-size:26px; letter-spacing:.12em; color:#ffe7c4; }
[data-theme="outerwilds"] .orbit-core span { font-size:7px; color:#e9c6a1; }
[data-theme="outerwilds"] .orbit-ticks { opacity:.6; }
[data-theme="outerwilds"] .orbit-node::before { width:10px; height:10px; background:radial-gradient(circle at 30% 25%,#d7edf0,#477a87); box-shadow:0 0 12px rgba(152,210,220,.5); }
[data-theme="outerwilds"] .orbit-node.review::before,[data-theme="outerwilds"] .orbit-node.blocked::before { background:radial-gradient(circle at 30% 25%,#ffe1a6,#996231); }
[data-theme="outerwilds"] .orbit-node.planned::before { background:radial-gradient(circle at 30% 25%,#aca5bb,#3a334a); }
[data-theme="outerwilds"] .orbit-node span { background:rgba(7,14,22,.85); color:var(--ink); font-size:11px; border-radius:3px; }
[data-theme="outerwilds"] .orbit-caption { color:var(--accent); letter-spacing:.21em; }
[data-theme="outerwilds"] .btn { border-radius:3px; border-color:var(--line-strong); }
[data-theme="outerwilds"] .btn.primary { background:var(--accent); box-shadow:none; font-weight:600; }
[data-theme="outerwilds"] .chat-dock { background:rgba(7,16,25,.94); }
[data-theme="outerwilds"] .composer textarea { background:rgba(1,8,14,.65); }
[data-theme="outerwilds"] .bridge-stats b { font-size:24px; font-weight:300; }
[data-theme="outerwilds"] .project-card,[data-theme="outerwilds"] .team-grid .agent { background:rgba(8,19,29,.91); border-radius:4px; border-top:2px solid var(--line-strong); }
[data-theme="outerwilds"] .project-mark { border-radius:50%; width:88px; height:88px; margin:0 0 20px; background:radial-gradient(circle at 35% 30%,#375365,#0c1824); color:var(--accent); }
[data-theme="outerwilds"] .map-scene { background:linear-gradient(rgba(5,12,19,.2),rgba(5,12,19,.7)),url('/static/space.svg') center/cover; }
[data-theme="outerwilds"] .city-floor { fill:#152934; stroke:#a7bcbf; }
[data-theme="outerwilds"] .city-wall { fill:#09151e; stroke:#bc976c; }
[data-theme="outerwilds"] .city-screen { fill:#99d2dc; }
[data-theme="outerwilds"] .gate { border-top:3px solid var(--accent); }

/* Keep theme controls usable with four modes at narrow widths. */
@media(max-width:1150px) { .top { gap:12px; }.top .name { font-size:22px; }.top-actions { gap:8px; }.sw { padding:6px; font-size:11px; } }
@media(max-width:760px) {
 .top { padding:10px 12px; }.top-actions { display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;gap:7px; }
 .top-actions .themes { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:1px; }
 .top-actions .sw { padding:6px 2px;justify-content:center;min-width:0;font-size:9px;line-height:1.2;min-height:30px; }
 .top-actions .sw .chip { display:none; }.top-actions #logout { padding:5px 7px;font-size:10px; }
 [data-theme="hacker"] .sw { font-size:12px; }
 [data-theme="cyberpunk"] .sw { font-size:8px; }
 [data-theme="cyberpunk"] .greeting { padding:20px 12px 12px; }
 [data-theme="cyberpunk"] .greeting::after { font-size:6px;top:6px;right:8px; }
 [data-theme="cyberpunk"] .orbit { width:calc(100% - 10px); }
 [data-theme="cyberpunk"] .world-readout { font-size:6px; }
 [data-theme="cyberpunk"] .greeting h2 { font-size:23px; }
 [data-theme="hacker"] .greeting { padding:10px 16px; }
 [data-theme="outerwilds"] .greeting h2 { font-size:27px; }
 [data-theme="outerwilds"] .orbit-node span { font-size:9px; }
}
