/* root/venomwing_v9/styles.css */
:root{color-scheme:dark;--cyan:#7dffe1;--muted:#a4c0c8;--panel:rgba(6,20,33,.92);--border:rgba(77,206,202,.42)}
*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#07111b;color:#d7f8f5;font-family:system-ui,Segoe UI,Arial,sans-serif}canvas{display:block}
.hud-surface{background:linear-gradient(115deg,rgba(6,21,33,.75),rgba(6,21,33,.35));border:1px solid rgba(87,202,208,.15);border-radius:10px;padding:13px 16px;backdrop-filter:blur(6px);pointer-events:none;text-shadow:0 2px 6px #000}
#hud{position:absolute;top:17px;left:18px;min-width:245px}#hud h1{font-size:21px;letter-spacing:.24em;margin:0;color:var(--cyan)}#hud small{color:var(--muted);font-size:9px;letter-spacing:.14em}#stats{margin-top:12px;display:grid;gap:6px;font-size:12px;letter-spacing:.08em}.bar-label{display:flex;justify-content:space-between;gap:12px}.bar{width:100%;height:8px;overflow:hidden;border:1px solid rgba(91,159,162,.7);background:#102731;border-radius:99px}.fill{height:100%;background:linear-gradient(90deg,#19a88b,#6cffe0);width:100%;transition:width .15s}#energyFill{background:linear-gradient(90deg,#317acf,#72ceff)}#mode{margin-top:5px;color:#87decf;font-size:10px}
#build{position:absolute;top:202px;left:18px;color:#addbd9;font-size:11px;line-height:1.85;max-width:285px}#score{position:absolute;right:18px;top:17px;text-align:right;font-size:12px;line-height:1.8;min-width:205px}#score b{color:#f3fffb}
#evolutionHud{position:absolute;right:18px;top:142px;width:240px;display:flex;flex-direction:column;gap:7px}#evolutionRank{font-size:14px;color:#b8fff0;letter-spacing:.07em}.section-label{color:#90b8c0;letter-spacing:.16em;font-size:10px}#evolutionNext{font-size:10px;color:#96bfc4}#evolutionFill{background:linear-gradient(90deg,#21a89c,#81f7d7)}
#overdriveHud{position:absolute;left:18px;bottom:100px;min-width:235px;display:flex;flex-direction:column;gap:7px}#overdriveHud strong{font-size:13px;letter-spacing:.07em;color:#eac5ff}#overdriveHud .bar{width:225px}#overdriveFill{background:linear-gradient(90deg,#7941b9,#ee72ff);width:0}#overdriveFill.overdrive-active{background:linear-gradient(90deg,#ff9ada,#b669ff);box-shadow:0 0 12px #d774ff}#overdriveHud small{font-size:10px;color:var(--muted)}kbd{font-family:inherit;border:1px solid #9c6abe;padding:1px 4px;border-radius:4px;color:#edcfff}
#bossHud{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:min(440px,38vw);display:none;z-index:4;font-weight:700;text-align:center;color:#ff9eaa;font-size:12px;letter-spacing:.13em;text-shadow:0 2px 8px #000}#bossBar{height:13px;background:#4b1b2a;border:1px solid #ff718b;margin-top:6px;border-radius:8px;overflow:hidden}#bossFill{height:100%;background:#ff5978;width:100%}
#reticle{position:absolute;left:50%;top:50%;width:26px;height:26px;border:1px solid #b9fff0;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:.75}#reticle:before,#reticle:after{content:'';position:absolute;background:#b9fff0}#reticle:before{width:8px;height:1px;left:8px;top:12px}#reticle:after{height:8px;width:1px;left:12px;top:8px}#message{position:absolute;left:50%;top:20%;width:min(70vw,800px);transform:translateX(-50%);text-align:center;font-size:18px;font-weight:700;letter-spacing:.1em;color:#b9fff0;text-shadow:0 0 12px #00cda0;pointer-events:none}#damage{position:absolute;inset:0;background:#ff2244;opacity:0;pointer-events:none}
#controls{position:absolute;bottom:15px;left:18px;color:#b5cbd0;font-size:11px;line-height:1.7;text-shadow:0 2px 6px #000;pointer-events:none}#footer{position:absolute;bottom:18px;right:20px;color:#8cbdc1;font-size:11px;letter-spacing:.13em;pointer-events:none}
button{border:1px solid #5bf5d3;background:linear-gradient(135deg,#12565a,#0c383f);color:#e0fff7;font-weight:800;letter-spacing:.1em;padding:12px 22px;cursor:pointer;border-radius:5px;transition:background .2s,border-color .2s,transform .15s}button:hover{background:#147a7a;border-color:#a3fff0}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible{outline:2px solid #f8d18b;outline-offset:3px}
#panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--panel);border:1px solid var(--border);padding:25px 30px;max-width:510px;width:calc(100% - 36px);text-align:center;box-shadow:0 15px 100px #000c,0 0 26px #16615c33;max-height:94vh;overflow:auto;z-index:5;border-radius:13px}#panel h2{font-size:32px;letter-spacing:.2em;color:#79ffe2;margin:2px 0}#panel p{color:#b8d2d7;line-height:1.55;font-size:13px}.eyebrow{font-size:10px;letter-spacing:.21em;color:#76acb5;font-weight:700}.subtitle{font-size:11px;letter-spacing:.2em;color:#d0fff4}.menu-features{display:flex;justify-content:space-around;margin:18px 0;padding:13px;background:#102f3b90;border-radius:8px}.menu-features>div{display:flex;flex-direction:column;gap:2px}.menu-features b{color:#87ffe4;font-size:21px}.menu-features span{color:#a4b9c0;font-size:9px;letter-spacing:.07em}#panel h3{font-size:11px;letter-spacing:.13em;color:#afffe8;font-weight:600;margin:14px 0 5px}#panel .menu-note{font-size:11px;color:#91afb7}#panel .menu-help{color:#d1e4e6}#panel #start{display:block;width:100%;font-size:15px;padding:16px 20px;border-color:#96ffdf;background:linear-gradient(125deg,#166f69,#135a5d)}#panel #start:hover{background:linear-gradient(125deg,#1c9b8c,#16726d)}#biomes{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin:9px 0}#biomes .biome{padding:9px 12px;font-size:11px;letter-spacing:.03em}#biomes .biome.selected{background:#167d78;border-color:#d7fff2}#meta{display:flex;flex-direction:column;gap:7px;margin:14px 0;padding:10px;background:#0e293580;border-radius:8px;font-size:11px;letter-spacing:.04em}#meta button{font-size:11px;padding:9px;letter-spacing:.03em}.startup-error{color:#ffb5a9!important;background:#381e28;padding:12px;border:1px solid #ff6b6b;border-radius:8px;white-space:pre-wrap}
#upgrade{display:none;position:absolute;inset:0;background:#020b15e8;z-index:10;align-items:center;justify-content:center;flex-direction:column;padding:20px;text-align:center}#upgrade h2{color:#83ffe3;letter-spacing:.14em;margin:5px 0}#upgrade p{color:#afcbd1;font-size:13px}#choices{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}#choices .choice{width:245px;min-height:170px;text-align:left;background:#102b39;border:1px solid #4aa5a4;padding:18px;letter-spacing:normal;display:flex;flex-direction:column}#choices .choice strong{display:block;color:#82ffe3;font-size:17px;margin-bottom:9px}#choices .choice span{display:block;font-weight:400;line-height:1.5;color:#c2d6dc;flex:1}#choices .choice em{display:block;margin-top:13px;font-style:normal;font-size:11px;letter-spacing:.12em}#choices .rare{border-color:#549afc}#choices .epic{border-color:#bd78ff}#choices .legendary{border-color:#ffce64}
#pausePanel{position:absolute;inset:0;z-index:12;display:grid;place-items:center;background:#020c18d5}#pausePanel[hidden]{display:none}.pause-dialog{text-align:center;max-width:380px;background:var(--panel);padding:36px;border:1px solid var(--border);border-radius:12px}.pause-dialog h2{letter-spacing:.25em;color:#86ffe0;font-size:31px}.pause-dialog p{color:#b9cdd3}
#mobile{display:none}@media(max-width:800px){#hud{left:9px;top:9px;min-width:190px;padding:10px}#hud h1{font-size:17px}#build{top:180px;left:9px}#score{top:9px;right:9px;min-width:145px;font-size:11px}#evolutionHud{top:124px;right:9px;width:185px;font-size:11px}#overdriveHud{bottom:103px;left:9px;min-width:180px}#overdriveHud .bar{width:175px}#controls{font-size:9px;left:9px}#footer{display:none}#mobile{display:block;position:absolute;bottom:10px;right:10px}#mobile button{padding:12px;margin:3px}#panel{padding:20px 16px}#upgrade .choice{width:min(80vw,310px);min-height:120px}}@media(max-height:600px){#overdriveHud{bottom:65px}#controls{bottom:5px}#panel{padding:15px}}

/* V8 controls: preserve existing panel layout and clear focus states. */
.settings-row{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:14px auto;color:#9bd8e5;font-size:12px;letter-spacing:1px}
.settings-row select,.settings-row button{font:inherit;color:#d9faff;background:#0c2331;border:1px solid #35687b;border-radius:7px;padding:10px 12px;cursor:pointer}
.settings-row select:focus-visible,.settings-row button:focus-visible{outline:2px solid #60ffd9;outline-offset:3px}
#hitmarker{position:fixed;z-index:6;left:50%;top:50%;transform:translate(-50%,-50%);font-size:26px;font-weight:900;color:#d7fffb;text-shadow:0 0 8px #00ffe2;pointer-events:none;opacity:0;transition:opacity 80ms linear}
#synergies{color:#9eeed3;font-size:11px}
@media (max-width:700px){.settings-row{font-size:11px}#hitmarker{font-size:20px}}


/* V9 objectives stay outside the central aiming area and avoid the boss HUD. */
#contractHud{position:absolute;right:18px;top:276px;width:240px;display:flex;flex-direction:column;gap:6px;z-index:2}
#contractTitle{color:#ffe7ab;font-size:12px;letter-spacing:.055em}
#contractDescription{color:#b0cbd0;font-size:11px}
#contractProgress{color:#f6f3ce;font-weight:700;font-size:12px}
#contractReward{color:#b4e8d1;font-size:10px;letter-spacing:.02em}
#contractFill{background:linear-gradient(90deg,#967343,#ffe3a1);width:0}
#rerollArea{display:flex;align-items:center;gap:15px;justify-content:center;flex-wrap:wrap;margin-top:22px;color:#a9d1d4;font-size:12px}
#rerollUpgrade{background:linear-gradient(125deg,#46315f,#18535f);border-color:#c49cff}
#rerollUpgrade:disabled{opacity:.4}
@media(max-width:800px){#contractHud{right:9px;top:245px;width:185px;padding:10px}}
@media(max-width:520px){#contractHud{top:auto;bottom:165px;width:170px}#build{max-width:170px}#contractDescription{font-size:10px}}

/* Global leaderboard: compact and scrollable on desktop and mobile. */
#leaderboardSection {margin-top:14px;padding:12px;border:1px solid #36596c;border-radius:10px;background:rgba(5,20,30,.82);}
.leaderboard-controls,.score-submit {display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0;}
#leaderboardSection select,#leaderboardSection input {background:#102a36;color:#e7f9ff;border:1px solid #47788a;padding:8px;border-radius:5px;min-width:110px;}
#leaderboardSection button {background:#1c5d71;color:#e7ffff;border:1px solid #4c9db0;padding:8px;border-radius:5px;cursor:pointer;}
.leaderboard-scroll {max-height:210px;overflow:auto;}
#leaderboardSection table {width:100%;border-collapse:collapse;font-size:12px;}
#leaderboardSection th,#leaderboardSection td {padding:6px 5px;text-align:left;border-bottom:1px solid #284454;}
#leaderboardStatus {font-size:12px;color:#aac9d7;}

/* V11 armor customization controls */
.paint-panel{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0 18px;padding:12px;border:1px solid rgba(125,225,220,.22);border-radius:12px;background:rgba(0,25,35,.4)}
.paint-panel label{font-size:12px;font-weight:700;letter-spacing:.09em}.paint-panel input[type=color]{width:54px;height:36px;padding:2px;border:1px solid #6ab7b4;background:transparent;cursor:pointer}.paint-presets{display:flex;gap:7px}.paint-presets button{width:27px;height:27px;min-width:27px;border:2px solid rgba(255,255,255,.65);border-radius:50%;background:var(--paint);cursor:pointer}.paint-presets button:focus-visible{outline:3px solid #fff;outline-offset:3px}

/* root/styles.css — V12 research and mastery status */
.mastery-panel{padding:12px 14px;border:1px solid #2d817c;border-radius:8px;background:#0b2428;color:#a9f8e5;font-size:12px;line-height:1.7;margin-bottom:12px}

/* root/styles.css — V13 customization panels */
.v13-options{display:grid;gap:7px;margin:10px 0 18px}.v13-options button{padding:10px 12px;text-align:left;white-space:normal;line-height:1.4}.v13-options button:disabled{opacity:.55;cursor:not-allowed}

/* root/styles.css — V15 character workshop */
.workshop{border:1px solid #327b7c;border-radius:10px;background:#0a2330b8;padding:14px;margin:15px 0;text-align:left}
.workshop h3{text-align:center}.workshop-note{font-size:11px;color:#abcdd0}
.workshop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.workshop-grid label{display:flex;flex-direction:column;gap:5px;font-size:10px;letter-spacing:.07em;color:#b8e8df}
.workshop-grid input,.workshop-grid select{min-width:0;width:100%;background:#09202e;border:1px solid #377878;color:#e2fff8;padding:9px;border-radius:5px}
.workshop-grid input[type=color]{height:40px;padding:3px;cursor:pointer}
.workshop button{padding:8px 12px;font-size:10px}
@media(max-width:430px){.workshop-grid{grid-template-columns:1fr}}

/* root/styles.css — V16 design garage and portable cosmetic codes */
.workshop-actions{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}
.workshop-actions button{flex:1;min-width:90px;letter-spacing:.025em}
.workshop-actions select,.workshop textarea{background:#09202e;color:#e2fff8;border:1px solid #377878;border-radius:5px;padding:9px;font:inherit}
.workshop-actions select{min-width:125px;max-width:100%;flex:1}
.workshop textarea{width:100%;resize:vertical;overflow-wrap:anywhere;font:11px ui-monospace,SFMono-Regular,Consolas,monospace}
.workshop-code-label{display:block;font-size:10px;color:#b8e8df;margin:8px 0}
.workshop-status{min-height:1.5em;color:#a6ebd8!important;font-size:11px!important}

/* root/styles.css — V18 isolated live Three.js character preview. */
.forge-preview{margin:13px 0 18px;border:1px solid #347f86;background:#071923;border-radius:10px;overflow:hidden}
.forge-preview-header{display:flex;justify-content:space-between;gap:10px;padding:11px 12px;background:#0d303b;color:#b6fff0;font-size:10px;letter-spacing:.09em;font-weight:700}
#forgePreviewState{color:#f6ce85;text-align:right}
.forge-viewport{height:315px;position:relative;overflow:hidden;touch-action:none;cursor:grab;background:radial-gradient(ellipse at 50% 55%,#164451,#06111c 70%)}
.forge-viewport:active{cursor:grabbing}
.forge-viewport canvas{width:100%;height:100%;display:block}
.forge-preview-fallback{position:absolute;top:45%;left:0;right:0;text-align:center;pointer-events:none}
.forge-preview-controls{display:flex;gap:6px;justify-content:center;padding:9px}
.forge-preview-controls button{flex:1;min-width:0}
.forge-preview-help{text-align:center;margin:0 8px 10px!important;font-size:10px!important}
.forge-finalize{display:block;width:calc(100% - 20px);margin:8px 10px;background:#176c63;border-color:#8bf8dd!important;font-weight:700;letter-spacing:.07em}
.forge-confirmation{margin:7px 10px 13px!important;text-align:center;font-size:11px!important}
@media(max-width:480px){.forge-viewport{height:250px}.forge-preview-header{font-size:9px}}

/* V20.1: keep the preview visible and give WebGL failure feedback a readable surface. */
.forge-viewport canvas{position:absolute;inset:0;z-index:1;width:100%;height:100%;display:block}
.forge-preview-fallback{z-index:2;padding:14px;color:#ffdcc0;background:#102b39;line-height:1.5}
.forge-preview-fallback[hidden]{display:none}

/* root/styles.css — V21 focused forge inspection */
.forge-preview-controls{flex-wrap:wrap}
.forge-camera-controls button{font-size:10px;padding:8px 4px}
.forge-build-summary{margin:7px 12px!important;color:#a7eddb!important;font-size:11px!important;overflow-wrap:anywhere}
.forge-preview.forge-focused{position:fixed;inset:3vh 3vw;z-index:50;margin:0;display:flex;flex-direction:column;border:2px solid #8bf8dd;box-shadow:0 0 0 100vmax #020a12e8,0 12px 60px #000;overflow:auto}
.forge-preview.forge-focused .forge-viewport{flex:1;min-height:240px;height:auto}
.forge-preview.forge-focused .forge-preview-header{flex-shrink:0}
.forge-preview.forge-focused .forge-preview-controls{flex-shrink:0}
.forge-preview.forge-focused .forge-confirmation{flex-shrink:0}
@media(max-width:600px){.forge-preview.forge-focused{inset:1vh 1vw}.forge-camera-controls button{font-size:9px}}

/* root/styles.css — V22 combat protocol selector */
.combat-protocol-panel{border:1px solid rgba(102,238,218,.3);background:rgba(8,32,43,.88);border-radius:12px;padding:16px;margin:18px 0;text-align:left}
.combat-protocol-panel label,.combat-protocol-panel small{display:block;font-size:.78rem;opacity:.85;margin:8px 0}
.combat-protocol-panel select{width:100%;min-height:42px;background:#102b37;color:#e2fff9;border:1px solid #4b9b9e;border-radius:6px;padding:9px}
.combat-protocol-panel p{min-height:1.5em;color:#86e8cf}

/* root/styles.css — V26 optional manual upgrade selection. */
#claimUpgrade{position:absolute;top:395px;left:18px;z-index:4;max-width:280px;padding:10px 12px;font-size:11px;letter-spacing:.04em;background:#174c4b;border-color:#88ffde;box-shadow:0 0 15px #1bc8a444}
#claimUpgrade[hidden]{display:none}
#claimUpgrade:disabled{opacity:.65;cursor:default;box-shadow:none}
@media(max-width:800px){#claimUpgrade{top:350px;left:9px;max-width:175px;font-size:9px}}

/* root/venomwing_v29/styles.css — active powerup visibility */
#activeBuffs{display:inline-block;margin-top:5px;color:#80ffe0;font-weight:700;letter-spacing:.04em;line-height:1.4}
#activeBuffs:not(:empty){text-shadow:0 0 10px rgba(65,255,199,.22)}

/* V30: free-moving mouse crosshair with optional right-drag camera rotation. */
#reticle{z-index:20;will-change:left,top;}
canvas{cursor:crosshair;}
