/* =============================================================================
 * corruption.css — FLAVOR CORRUPTION PROTOCOL. A fully contained theme layer
 * that fuses the JARS aesthetic into TACTICAL-OS 96. Everything lives behind
 * `body.corrupted` + a single `--flavor` accent, so PURGE restores the clean
 * desktop pixel-for-pixel. Default state changes NOTHING.
 * ===========================================================================*/

:root{ --flavor:#ff2d55; }   /* JS overrides the hue when a flavor is picked */

/* ---------- the forbidden desktop icon ---------- */
.dicon.danger .gi{filter:drop-shadow(0 0 7px #ff2d2d)}
.dicon.danger .lbl{color:#ff5a5a;font-weight:800;text-shadow:0 0 6px #ff2d2d;animation:dgr-blink 1s steps(1) infinite}
@keyframes dgr-blink{50%{opacity:.28}}

/* ---------- JARS background video (only mounts when corrupted) ---------- */
#corrupt-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;display:none;pointer-events:none}
body.corrupted #corrupt-bg{display:block}
body.corrupted #desktop{background:#000}
body.corrupted #desktop::before{display:none}                 /* hide the sunset stripes */
/* keep OUR banner text readable over the video: solid (not screen) + hard shadow */
body.corrupted #bg-banners{mix-blend-mode:normal;z-index:1}
body.corrupted .bg-row__track{color:#fff;-webkit-text-stroke:2px #000;text-shadow:3px 3px 0 var(--flavor);opacity:1 !important}
body.corrupted .bg-row.rev .bg-row__track{color:var(--flavor);text-shadow:3px 3px 0 #000}

/* ---------- chrome tinted to the live flavor ---------- */
body.corrupted .win .tbar{background:linear-gradient(90deg,var(--flavor),color-mix(in srgb,var(--flavor) 45%,#000))}
body.corrupted #startbtn .htm{background:linear-gradient(135deg,var(--flavor),color-mix(in srgb,var(--flavor) 45%,#000))}
body.corrupted #tasks .task.active{background:#dedede;box-shadow:inset 0 0 0 2px var(--flavor)}
body.corrupted #taskbar{box-shadow:0 -2px 0 var(--flavor)}
body.corrupted #startmenu .rail{background:linear-gradient(180deg,var(--flavor),color-mix(in srgb,var(--flavor) 40%,#000))}
body.corrupted #startmenu .mi:hover{background:var(--flavor)}
body.corrupted #mascot .orca{border-color:var(--flavor) #000 #000 var(--flavor);box-shadow:0 0 18px var(--flavor)}
body.corrupted #tray .cd{color:var(--flavor)}

/* faint CRT veil while infected */
body.corrupted::after{content:"";position:fixed;inset:0;z-index:9300;pointer-events:none;opacity:.12;
  background:repeating-linear-gradient(0deg,#000 0 1px,transparent 1px 3px);animation:crt .14s steps(2) infinite}
@keyframes crt{50%{opacity:.06}}

/* ---------- the "are you sure" warning dialog ---------- */
.cdlg-back{position:fixed;inset:0;z-index:9500;background:#0007;display:grid;place-items:center;font-family:var(--sans)}
.cdlg{width:380px;max-width:92vw;background:var(--face);border:2px solid;border-color:#fff #808080 #808080 #fff;box-shadow:4px 4px 0 #0006}
.cdlg .tb{background:linear-gradient(90deg,#a00000,#ff3b3b);color:#fff;font-weight:700;padding:4px 7px;display:flex;justify-content:space-between;align-items:center}
.cdlg .tb b{letter-spacing:.3px}
.cdlg .bd{display:flex;gap:13px;align-items:flex-start;padding:16px 16px 8px}
.cdlg .ic{font-size:36px;line-height:1}
.cdlg .msg{font-size:13px;line-height:1.5;color:#000}
.cdlg .msg b{color:#a00000}
.cdlg .bt{display:flex;gap:10px;justify-content:flex-end;padding:6px 16px 16px}
.cdlg .b{font-family:var(--sans);font-size:12px;font-weight:700;padding:6px 16px;cursor:pointer;background:var(--face);
  border:2px solid;border-color:#fff #808080 #808080 #fff}
.cdlg .b:active{border-color:#808080 #fff #fff #808080}

/* ---------- activation flash ---------- */
.corrupt-flash{position:fixed;inset:0;z-index:9600;display:grid;place-items:center;pointer-events:none;text-align:center;
  background:radial-gradient(80% 80% at 50% 50%,#000a,#000e);animation:cf-fade 2.4s ease-out forwards}
.corrupt-flash b{display:block;font-family:var(--sans);font-weight:800;font-size:clamp(26px,5vw,52px);color:#fff;
  -webkit-text-stroke:2px #000;text-shadow:4px 4px 0 var(--flavor);animation:cf-glitch .12s steps(2) infinite;letter-spacing:1px}
.corrupt-flash small{display:block;margin-top:10px;font-family:var(--mono);font-size:13px;letter-spacing:3px;color:var(--flavor)}
@keyframes cf-fade{0%{opacity:0}10%{opacity:1}80%{opacity:1}100%{opacity:0}}
@keyframes cf-glitch{0%{transform:translate(0,0)}50%{transform:translate(-3px,2px)}100%{transform:translate(3px,-2px)}}

/* ---------- corruption control panel (the DO-NOT-CLICK app, post-infection) ---------- */
.cpanel{height:100%;overflow:auto;padding:14px;background:var(--face);font-family:var(--sans);color:#000}
.cpanel h3{margin:0 0 4px;font-size:15px;letter-spacing:.5px}
.cpanel .lead{font-size:11px;color:#444;margin-bottom:12px;line-height:1.5}
.cpanel .lbl{font-size:10px;letter-spacing:2px;color:#555;margin:12px 0 6px;font-family:var(--mono)}
.flavors{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.flavors button{height:46px;border:2px solid;border-color:#fff #808080 #808080 #fff;cursor:pointer;color:#fff;
  font-size:8.5px;font-weight:800;line-height:1.05;text-shadow:0 1px 2px #000a;padding:2px;display:flex;align-items:flex-end;justify-content:center}
.flavors button:active{border-color:#808080 #fff #fff #808080}
.flavors button.on{outline:3px solid #000;outline-offset:-3px}
.cursors{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.cursors button{height:40px;border:2px solid;border-color:#fff #808080 #808080 #fff;background:#dcdcdc;cursor:pointer;
  font-size:8px;font-weight:700;color:#222;display:flex;align-items:flex-end;justify-content:center;padding:2px;text-align:center;line-height:1.05}
.cursors button:active{border-color:#808080 #fff #fff #808080}
.cursors button.on{outline:3px solid var(--flavor);outline-offset:-3px}
.cpanel .row{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.cpanel .big{flex:1;min-width:120px;font-family:var(--sans);font-size:13px;font-weight:800;padding:11px 14px;cursor:pointer;
  border:2px solid;border-color:#fff #808080 #808080 #fff;background:var(--face)}
.cpanel .big:active{border-color:#808080 #fff #fff #808080}
.cpanel .big.amp{background:linear-gradient(180deg,var(--flavor),color-mix(in srgb,var(--flavor) 50%,#000));color:#fff;text-shadow:0 1px 2px #000a}
.cpanel .big.purge{background:linear-gradient(180deg,#ffce5a,#d98a1f)}

/* ---------- juice particles ---------- */
.cparticle{position:fixed;z-index:9400;width:9px;height:9px;border-radius:50%;pointer-events:none;
  box-shadow:0 0 8px currentColor;animation:cfly .8s ease-out forwards}
@keyframes cfly{to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}

/* ---------- tray biohazard indicator ---------- */
#tray .biohaz{cursor:pointer;font-weight:800;color:#fff;background:var(--flavor);padding:2px 7px;border-radius:3px;
  text-shadow:0 1px 2px #000a;animation:dgr-blink 1.4s steps(1) infinite}
#tray .biohaz:hover{filter:brightness(1.12)}
