/* ============ TOKENS ============ */
:root{
  --teal:#008080;
  --silver:#c0c0c0;
  --silver-hi:#ffffff;
  --silver-lo:#808080;
  --silver-dk:#404040;
  --navy:#000082;
  --pink:#ff71ce;
  --cyan:#01cdfe;
  --lime:#05ffa1;
  --sun1:#ff9966;
  --sun2:#ff5e9c;
  --grid:#ff71ce;
  --term-green:#33ff66;
  --font-pixel:'Silkscreen', monospace;
  --font-term:'VT323', monospace;
  --font-ui:'MS Sans Serif', 'Tahoma', 'Segoe UI', sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;overflow:hidden;}
body{
  font-family:var(--font-ui);
  font-size:14px;
  background:#000;
  cursor:default;
  user-select:none;
}

/* ============ BOOT SCREEN ============ */
#boot{
  position:fixed;inset:0;background:#000;color:#aaa;
  font-family:var(--font-term);font-size:clamp(16px,2.4vw,22px);
  padding:24px;z-index:9999;line-height:1.35;white-space:pre-wrap;
}
#boot .amibios{color:#fff;}
#boot .ok{color:var(--term-green);}
#boot .skip{position:absolute;bottom:16px;right:20px;color:#555;font-size:16px;animation:blink 1.2s steps(1) infinite;}

/* ============ DESKTOP ============ */
#desktop{
  position:fixed;inset:0 0 40px 0;
  overflow:hidden;
  background:
    linear-gradient(180deg,#2b1055 0%, #5b2a86 30%, var(--sun2) 62%, var(--sun1) 78%, #2b1055 78.2%);
}
/* vaporwave sun */
#sun{
  position:absolute;left:50%;top:34%;
  width:min(42vmin,340px);height:min(42vmin,340px);
  transform:translateX(-50%);
  background:linear-gradient(180deg,#ffe29a,#ff5e9c 70%);
  border-radius:50%;
  -webkit-mask:repeating-linear-gradient(180deg,#000 0 12%, transparent 12% 17%);
          mask:repeating-linear-gradient(180deg,#000 0 12%, transparent 12% 17%);
  filter:drop-shadow(0 0 28px rgba(255,94,156,.8));
  pointer-events:none;
}
/* perspective grid floor */
#gridfloor{
  position:absolute;left:-25%;right:-25%;bottom:0;height:30%;
  background:
    repeating-linear-gradient(90deg, var(--grid) 0 2px, transparent 2px 70px),
    repeating-linear-gradient(180deg, var(--grid) 0 2px, transparent 2px 44px),
    linear-gradient(180deg,#1a0b2e,#2b1055);
  transform:perspective(280px) rotateX(58deg);
  transform-origin:top center;
  opacity:.55;pointer-events:none;
  animation:gridScroll 4s linear infinite;
}
@keyframes gridScroll{from{background-position:0 0,0 0;}to{background-position:0 0,0 44px;}}
/* stars */
#stars{position:absolute;inset:0 0 30% 0;pointer-events:none;}
.star{position:absolute;width:2px;height:2px;background:#fff;border-radius:50%;animation:twinkle 3s ease-in-out infinite;}
@keyframes twinkle{0%,100%{opacity:.15;}50%{opacity:.95;}}
/* shooting star */
#shooter{
  position:absolute;top:10%;left:-6%;width:120px;height:2px;
  background:linear-gradient(90deg,transparent,#fff);
  transform:rotate(14deg);opacity:0;pointer-events:none;
}
#shooter.go{animation:shoot 1.4s ease-in forwards;}
@keyframes shoot{0%{opacity:0;transform:translate(0,0) rotate(14deg);}8%{opacity:1;}100%{opacity:0;transform:translate(115vw,30vh) rotate(14deg);}}
/* palms on the horizon */
.palm{position:absolute;bottom:26%;font-size:54px;pointer-events:none;filter:brightness(0) drop-shadow(0 0 6px rgba(255,113,206,.55));animation:sway 6s ease-in-out infinite;transform-origin:bottom center;}
@keyframes sway{0%,100%{transform:rotate(-2deg);}50%{transform:rotate(2deg);}}
body.wall-teal #desktop{background:var(--teal);}
body.wall-teal #sun, body.wall-teal #gridfloor, body.wall-teal #stars,
body.wall-teal .palm, body.wall-teal #shooter, body.wall-teal .float-shape{display:none;}

/* floating shapes */
.float-shape{position:absolute;font-family:var(--font-term);color:rgba(255,255,255,.35);font-size:26px;animation:floaty 9s ease-in-out infinite;pointer-events:none;text-shadow:0 0 8px rgba(1,205,254,.6);}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(-4deg);}50%{transform:translateY(-22px) rotate(5deg);}}

/* ============ DESKTOP ICONS ============ */
.icons{position:absolute;top:14px;left:12px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;gap:12px;max-height:calc(100% - 24px);z-index:5;}
.icon{
  width:84px;display:flex;flex-direction:column;align-items:center;gap:4px;
  cursor:pointer;border:1px dotted transparent;padding:4px 2px;
}
.icon:focus-visible,.icon.sel{border-color:#fff;background:rgba(0,0,130,.35);outline:none;}
.icon .glyph{font-size:34px;line-height:1;filter:drop-shadow(2px 2px 0 rgba(0,0,0,.5));transition:transform .15s;}
.icon:hover .glyph{transform:scale(1.12) rotate(-3deg);}
.icon span{color:#fff;font-size:12px;text-align:center;text-shadow:1px 1px 0 #000;font-family:var(--font-ui);}
.icon-link{text-decoration:none;}
.icon-primary .glyph{filter:drop-shadow(0 0 10px rgba(255,255,255,.9)) drop-shadow(2px 2px 0 rgba(0,0,0,.5));}
.icon-primary span:last-child{font-weight:800;color:#fff7a8;}

/* ============ WINDOWS ============ */
.window{
  position:absolute;min-width:300px;
  background:var(--silver);
  border:2px solid;border-color:var(--silver-hi) var(--silver-dk) var(--silver-dk) var(--silver-hi);
  box-shadow:4px 4px 0 rgba(0,0,0,.35);
  display:none;flex-direction:column;
  animation:winOpen .18s ease-out;
}
.window.open{display:flex;}
@keyframes winOpen{from{transform:scale(.92);opacity:0;}to{transform:scale(1);opacity:1;}}
.titlebar{
  background:linear-gradient(90deg,var(--navy),var(--pink));
  color:#fff;padding:3px 4px 3px 8px;display:flex;align-items:center;gap:6px;
  font-weight:bold;font-size:13px;cursor:grab;touch-action:none;
  font-family:var(--font-ui);
}
.window.inactive .titlebar{background:linear-gradient(90deg,#7d7d7d,#a8a8a8);}
.titlebar .t-icon{font-size:14px;}
.titlebar .t-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tbtn{
  width:20px;height:18px;background:var(--silver);
  border:2px solid;border-color:var(--silver-hi) var(--silver-dk) var(--silver-dk) var(--silver-hi);
  font-size:11px;line-height:1;font-weight:bold;color:#000;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-family:var(--font-ui);
}
.tbtn:active{border-color:var(--silver-dk) var(--silver-hi) var(--silver-hi) var(--silver-dk);}
.win-body{
  margin:3px;border:2px solid;border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);
  background:#fff;overflow:auto;flex:1;padding:14px;user-select:text;
  max-height:calc(100vh - 140px);
}
.win-body h2{font-family:var(--font-pixel);font-size:17px;color:var(--navy);margin:0 0 10px;}
.win-body h3{font-family:var(--font-pixel);font-size:13px;color:#b3186d;margin:16px 0 6px;}
.win-body p{line-height:1.5;margin-bottom:10px;}
.win-body a{color:#0000ee;}
.statusbar{display:flex;gap:4px;margin:0 3px 3px;}
.statusbar div{flex:1;border:1px solid;border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);padding:2px 6px;font-size:11px;color:#222;}

/* ============ RETRO BITS ============ */
.marquee{
  overflow:hidden;background:#000;color:var(--lime);
  font-family:var(--font-term);font-size:20px;padding:3px 0;margin-bottom:12px;
  border:2px ridge var(--silver);
}
.marquee span{display:inline-block;white-space:nowrap;padding-left:100%;animation:scrollLeft 14s linear infinite;}
@keyframes scrollLeft{to{transform:translateX(-100%);}}
.construction{
  background:repeating-linear-gradient(45deg,#000 0 14px,#ffd700 14px 28px);
  color:#fff;text-align:center;font-family:var(--font-pixel);font-size:11px;
  padding:6px;margin:14px 0;letter-spacing:1px;
}
.construction em{background:#000;padding:2px 8px;font-style:normal;color:#ffd700;}
.counter{display:flex;align-items:center;gap:8px;margin:12px 0;font-size:12px;}
.counter .digits{display:flex;gap:2px;}
.counter .digit{background:#000;color:var(--term-green);font-family:var(--font-term);font-size:22px;padding:1px 6px;border:1px solid #333;min-width:22px;text-align:center;}
.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;}
.badge{
  width:88px;height:31px;font-family:var(--font-pixel);font-size:8px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  border:1px solid #000;color:#fff;letter-spacing:.5px;cursor:pointer;
  transition:transform .12s;line-height:1.1;
}
.badge:hover{transform:translateY(-2px) rotate(-2deg);}
.b1{background:linear-gradient(135deg,#0000aa,#00aaff);}
.b2{background:linear-gradient(135deg,#aa0044,var(--pink));}
.b3{background:#000;color:var(--term-green);font-family:var(--font-term);font-size:13px;}
.b4{background:linear-gradient(135deg,#444,#999);}
.webring{border:2px dashed var(--pink);padding:8px;text-align:center;font-size:12px;margin-top:14px;background:#fff0fa;}
.webring b{font-family:var(--font-pixel);font-size:10px;}
.webring a{cursor:pointer;}
.blink{animation:blink 1s steps(1) infinite;}
@keyframes blink{50%{opacity:0;}}

/* project cards */
.files{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.file{
  border:2px solid;border-color:var(--silver-hi) var(--silver-lo) var(--silver-lo) var(--silver-hi);
  background:var(--silver);padding:10px;cursor:pointer;transition:transform .12s;
}
.file:hover{transform:translateY(-3px);}
.file .glyph{font-size:26px;}
.file b{display:block;font-size:12px;margin:6px 0 2px;}
.file small{font-size:10px;color:#333;}
.file .desc{display:none;font-size:11px;margin-top:8px;border-top:1px dotted #777;padding-top:6px;line-height:1.4;}
.file.openf .desc{display:block;}
.file.openf{background:#fffbe6;}

/* ============ PORTFOLIO HOME ============ */
.home-window{box-shadow:8px 8px 0 rgba(19,5,42,.45),0 0 36px rgba(1,205,254,.18);}
.home-body{
  position:relative;
  padding:clamp(20px,3.5vw,34px);
  color:#17203a;
  background:
    linear-gradient(135deg,rgba(1,205,254,.08),transparent 38%),
    linear-gradient(315deg,rgba(255,113,206,.1),transparent 42%),
    #fbfbff;
}
.home-kicker,.eyebrow{
  font-family:var(--font-pixel);font-size:10px;letter-spacing:.05em;color:#57557d;
}
.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#13b76a;box-shadow:0 0 0 3px rgba(19,183,106,.14);margin-right:5px;}
.home-body h1{
  max-width:650px;margin:12px 0 13px;font-family:var(--font-ui);font-size:clamp(30px,4.1vw,46px);
  line-height:1.02;letter-spacing:-.045em;color:#11182e;text-wrap:balance;
}
.home-lede{max-width:650px;font-size:15px;line-height:1.6!important;color:#3e465f;}
.home-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0;}
.home-actions .btn95{display:inline-flex;align-items:center;min-height:34px;padding:6px 12px;color:#111;text-decoration:none;font-weight:700;}
.home-actions .home-primary{background:var(--navy);color:#fff;border-color:#9ba9ff #020246 #020246 #9ba9ff;}
.home-proof{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #c8c9d7;background:#fff;box-shadow:3px 3px 0 #d9dae4;margin:4px 0 18px;}
.home-proof div{display:flex;align-items:center;gap:10px;padding:12px 14px;border-right:1px solid #d9dae4;}
.home-proof div:last-child{border-right:0;}
.home-proof strong{font-family:var(--font-term);font-size:34px;line-height:1;color:#b3186d;}
.home-proof span{font-size:11px;line-height:1.3;color:#565c70;}
.home-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;}
.home-panel{border:1px solid #b8bacd;background:#fff;padding:14px;box-shadow:2px 2px 0 #d9dae4;}
.panel-label{font-family:var(--font-pixel);font-size:10px;color:var(--navy);margin-bottom:10px;}
.capability-list{display:flex;flex-wrap:wrap;gap:6px;}
.capability-list span{padding:5px 7px;background:#edf2ff;border:1px solid #c5d2f6;font-size:11px;color:#2c3c6b;}
.home-now{background:#10152a;color:#e9efff;border-color:#39466f;box-shadow:2px 2px 0 #6371a0;}
.home-now .panel-label{color:var(--lime);}
.home-now p{font-size:12px;line-height:1.45;margin-bottom:9px;color:#cbd3eb;}
.text-launch{border:0;background:none;padding:0;color:#69e7ff;text-decoration:underline;font:700 12px var(--font-ui);cursor:pointer;}
.home-signature{margin-top:13px;font-size:12px;color:#51586d;}
.home-signature span{font-weight:800;color:#252c44;}
.home-footnote{margin-top:10px;padding:8px 10px;background:#fff6ce;border-left:4px solid #ffc93d;font:15px/1.25 var(--font-term);color:#55430a;}
.home-legacy{position:absolute;right:14px;bottom:7px;font-size:8px;opacity:.3;}
.home-legacy .digits{font-family:monospace;}

/* clearer selected-work cards */
.section-intro{border-bottom:1px solid #d4d4dc;margin-bottom:14px;padding-bottom:10px;}
.section-intro h2{font-family:var(--font-ui);font-size:23px;letter-spacing:-.02em;color:#171b33;margin:5px 0 4px;}
.section-intro p{font-size:12px;color:#5b5d6a;margin:0;}
.project-file{position:relative;min-height:145px;padding-top:12px;background:linear-gradient(145deg,#f8f8fb,#d7d7e1);}
.project-file .file-tag{display:inline-block;margin-bottom:8px;padding:3px 5px;background:#151b38;color:#fff;font:8px var(--font-pixel);text-shadow:none;}
.project-file .glyph{display:block;}
.project-file b{font-family:var(--font-pixel);color:#151b38;}
.project-file small{display:block;line-height:1.35;}
.project-file .file-proof{display:block;margin-top:9px;padding-top:7px;border-top:1px dotted #8f8f9b;font:14px var(--font-term);color:#a01665;}
.case-list{margin:0 0 12px 19px;line-height:1.5;}
.case-list li{margin-bottom:6px;}

/* ============ AFTER HOURS ============ */
.arcade-body{background:linear-gradient(145deg,#f8f7ff,#ece5ff);}
.arcade-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;}
.arcade-grid button{
  display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:9px;text-align:left;
  padding:10px;background:#fff;border:2px solid;border-color:#fff #777 #777 #fff;cursor:pointer;font-family:var(--font-ui);
}
.arcade-grid button:active{border-color:#777 #fff #fff #777;}
.arcade-grid button:focus-visible{outline:3px solid var(--navy);outline-offset:2px;}
.arcade-grid button>span{grid-row:1/3;font-size:28px;align-self:center;}
.arcade-grid button b{font-size:12px;color:#191d3b;}
.arcade-grid button small{font-size:10px;color:#646579;}
.arcade-note{margin-top:12px;padding:8px;background:#11182f;color:#aeefff;font:15px var(--font-term);}

/* blog */
.post{border-bottom:1px dashed #999;padding:10px 0;}
.post h4{font-family:var(--font-term);font-size:20px;color:var(--navy);}
.post .meta{font-size:10px;color:#777;font-family:var(--font-pixel);margin:2px 0 6px;}
.post p{font-size:13px;}

/* guestbook */
.gb-entry{background:#f4f0ff;border:1px solid #cbb6ff;padding:8px 10px;margin-bottom:8px;font-size:13px;}
.gb-entry b{color:#5b2a86;}
.gb-entry .when{font-size:10px;color:#888;float:right;}
.gb-form{display:flex;flex-direction:column;gap:6px;margin-top:10px;}
.gb-form input,.gb-form textarea{
  font-family:var(--font-ui);font-size:13px;padding:5px;
  border:2px solid;border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);
  resize:vertical;
}
.btn95{
  background:var(--silver);border:2px solid;
  border-color:var(--silver-hi) var(--silver-dk) var(--silver-dk) var(--silver-hi);
  padding:5px 16px;font-family:var(--font-ui);font-size:13px;cursor:pointer;align-self:flex-start;
}
.btn95:active{border-color:var(--silver-dk) var(--silver-hi) var(--silver-hi) var(--silver-dk);}
.gb-note{font-size:10px;color:#999;margin-top:4px;}
.gb-honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden;}

/* cool sites */
.site-link{display:flex;gap:10px;align-items:flex-start;padding:9px 6px;border-bottom:1px dotted #bbb;}
.site-link .glyph{font-size:22px;}
.site-link b{font-size:13px;}
.site-link small{display:block;font-size:11px;color:#555;line-height:1.4;margin-top:2px;}
.site-link a{font-weight:bold;}

/* terminal */
#win-terminal .win-body{background:#0a0f0a;color:var(--term-green);font-family:var(--font-term);font-size:19px;padding:10px;line-height:1.3;}
#term-out{white-space:pre-wrap;word-break:break-word;}
#term-line{display:flex;}
#term-line .prompt{color:var(--cyan);margin-right:6px;}
#term-input{
  flex:1;background:transparent;border:none;outline:none;color:var(--term-green);
  font-family:var(--font-term);font-size:19px;caret-color:var(--term-green);
}
#win-terminal .win-body a{color:var(--cyan);}

/* ============ MINESWEEPER ============ */
#win-mines .win-body{background:var(--silver);padding:8px;}
.ms-top{
  display:flex;justify-content:space-between;align-items:center;gap:8px;
  border:2px solid;border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);
  padding:6px;margin-bottom:8px;background:var(--silver);
}
.ms-lcd{background:#000;color:#f00;font-family:var(--font-term);font-size:26px;padding:0 6px;min-width:62px;text-align:center;line-height:1.1;}
#ms-face{
  width:36px;height:36px;font-size:20px;background:var(--silver);
  border:2px solid;border-color:var(--silver-hi) var(--silver-dk) var(--silver-dk) var(--silver-hi);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
}
#ms-face:active{border-color:var(--silver-dk) var(--silver-hi) var(--silver-hi) var(--silver-dk);}
#ms-flagmode{font-size:16px;width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;}
#ms-flagmode.on{border-color:var(--silver-dk) var(--silver-hi) var(--silver-hi) var(--silver-dk);background:#ffe9a8;}
#ms-grid{
  display:grid;grid-template-columns:repeat(9,30px);gap:0;width:fit-content;margin:0 auto;
  border:2px solid;border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);
  touch-action:manipulation;
}
.cell{
  width:30px;height:30px;background:var(--silver);
  border:2px solid;border-color:var(--silver-hi) var(--silver-dk) var(--silver-dk) var(--silver-hi);
  font-family:var(--font-pixel);font-size:13px;font-weight:bold;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
}
.cell.rev{border:1px solid #9a9a9a;background:#d4d4d4;cursor:default;}
.cell.boom{background:#ff5050;}
.c1{color:#0000ff;}.c2{color:#007b00;}.c3{color:#ff0000;}.c4{color:#00007b;}
.c5{color:#7b0000;}.c6{color:#007b7b;}.c7{color:#000;}.c8{color:#7b7b7b;}
.ms-msg{text-align:center;font-size:12px;margin-top:8px;font-family:var(--font-pixel);min-height:16px;}

/* ============ REEF WIDGET ============ */
#reefwidget{
  position:absolute;right:16px;bottom:16px;width:208px;z-index:6;
  background:#0b1420;border:2px solid;border-color:#3a5a7a #050a10 #050a10 #3a5a7a;
  box-shadow:3px 3px 0 rgba(0,0,0,.4);
  font-family:var(--font-term);color:#bfe3ff;
}
#reefwidget .rw-bar{
  background:linear-gradient(90deg,#063a52,#0a7fa8);color:#fff;
  font-family:var(--font-ui);font-weight:bold;font-size:11px;
  padding:3px 6px;display:flex;align-items:center;gap:6px;cursor:grab;touch-action:none;
}
#reefwidget .rw-bar .led{
  width:8px;height:8px;border-radius:50%;background:var(--lime);
  box-shadow:0 0 6px var(--lime);animation:blink 2s steps(1) infinite;
}
#reefwidget .rw-body{padding:8px 10px;font-size:17px;line-height:1.45;}
#reefwidget .rw-row{display:flex;justify-content:space-between;}
#reefwidget .rw-row span:last-child{color:var(--lime);}
#reefwidget .rw-row.warn span:last-child{color:#ffd24a;}
#reefwidget .rw-foot{font-size:13px;color:#5d83a3;border-top:1px solid #1d3a52;margin-top:6px;padding-top:4px;}
@media (max-width:640px){
  #reefwidget{width:170px;right:8px;bottom:8px;}
  #reefwidget .rw-body{font-size:15px;}
}

/* ============ CAREER LOG & SKILLS ============ */
.bootlog{
  background:#000;border:2px ridge var(--silver);padding:10px 12px;
  font-family:var(--font-term);font-size:17px;color:#bbb;line-height:1.5;
  white-space:pre-line;margin:6px 0 4px;
}
.bootlog .yr{color:var(--cyan);}
.bootlog .ver{color:var(--pink);}
.bootlog .ok{color:var(--term-green);}
.skills{margin:8px 0 4px;}
.skill{margin-bottom:9px;font-size:12px;}
.skill .lbl{display:flex;justify-content:space-between;margin-bottom:2px;}
.skill .lbl em{font-style:normal;color:#999;font-size:10px;}
.bar{
  height:16px;border:2px solid;
  border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);
  background:#fff;padding:1px;
}
.bar i{
  display:block;height:100%;width:var(--pct);
  background:repeating-linear-gradient(90deg,var(--navy) 0 8px,#2a2ad0 8px 10px,#fff 10px 12px);
  animation:fillbar 1.4s ease-out;
}
@keyframes fillbar{from{width:0;}}
.edit{background:#fff3c4;color:#a06800;}

/* ============ DEVICE MANAGER & CERTS ============ */
.devmgr{
  font-size:12px;border:2px solid;
  border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);
  background:#fff;padding:8px;margin-top:6px;
}
.devmgr .dev-root{font-weight:bold;padding-bottom:4px;}
.dev-cat{margin-left:14px;}
.dev-cat>summary{cursor:pointer;font-weight:bold;padding:3px 0;list-style:none;user-select:none;}
.dev-cat>summary::-webkit-details-marker{display:none;}
.dev-cat>summary::before{content:'▸ ';color:var(--navy);}
.dev-cat[open]>summary::before{content:'▾ ';}
.dev-item{padding:2px 0 2px 24px;line-height:1.45;}
.dev-item.warn{color:#8a6d00;}
.b5{background:linear-gradient(135deg,#0a4f8f,#01cdfe);}
.b6{background:linear-gradient(135deg,#c2185b,#ff9966);}

/* ============ README WINDOWS ============ */
.readme .win-body{font-family:var(--font-term);font-size:18px;background:#fffef2;line-height:1.35;}
.readme h2{font-size:15px;}
.readme .rm-meta{font-size:15px;color:#666;border-bottom:2px solid #222;padding-bottom:6px;margin-bottom:6px;}
.readme .rm-h{font-family:var(--font-pixel);font-size:11px;color:#b3186d;margin:14px 0 4px;letter-spacing:1px;}
.readme p{font-size:18px;margin-bottom:8px;}

/* ============ PAINT ============ */
#win-paint .win-body{background:var(--silver);padding:6px;}
.paint-tools{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px;}
.ptool{width:32px;height:30px;font-size:15px;padding:0;display:flex;align-items:center;justify-content:center;}
.ptool.on{border-color:var(--silver-dk) var(--silver-hi) var(--silver-hi) var(--silver-dk);background:#ffe9a8;}
#paint-canvas{background:#fff;border:2px solid;border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);cursor:crosshair;touch-action:none;max-width:100%;display:block;}
.paint-palette{display:grid;grid-template-columns:repeat(12,20px);gap:2px;margin-top:6px;}
.swatch{width:20px;height:20px;border:1px solid #000;cursor:pointer;padding:0;}
.swatch.on{outline:2px solid var(--pink);outline-offset:1px;}
.paint-bottom{display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap;font-size:11px;}
#paint-size{width:90px;vertical-align:middle;}

/* ============ WINAMP ============ */
#win-amp .win-body{background:#1a1a2e;padding:8px;border-color:#3a3a5c #000 #000 #3a3a5c;}
.amp-display{background:#000;border:1px solid #3a3a5c;padding:6px 8px;margin-bottom:8px;}
.amp-time{color:var(--lime);font-family:var(--font-term);font-size:26px;line-height:1;}
.amp-track{color:var(--term-green);font-family:var(--font-term);font-size:18px;white-space:nowrap;overflow:hidden;margin-top:2px;}
.amp-track span{display:inline-block;padding-left:100%;animation:scrollLeft 9s linear infinite;}
#amp-scope{display:block;background:#000;border:1px solid #3a3a5c;width:100%;height:48px;margin-bottom:8px;}
.amp-btns{display:flex;gap:4px;align-items:center;}
.amp-btns .btn95{padding:4px 9px;font-size:13px;}
#amp-vol{flex:1;min-width:50px;}
.amp-note{color:#5d5d8a;font-family:var(--font-term);font-size:14px;margin-top:6px;}

/* ============ GAMES & LEADERBOARD ============ */
#win-snake .win-body,#win-sol .win-body,#win-poker .win-body{background:var(--silver);padding:8px;}
.game-hud{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-family:var(--font-pixel);font-size:10px;flex-wrap:wrap;}
.game-hud .lcd{background:#000;color:var(--lime);font-family:var(--font-term);font-size:20px;padding:1px 8px;border:1px solid #333;}
#snake-canvas{display:block;background:#0a0f14;border:2px solid;border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);margin:0 auto;max-width:100%;touch-action:none;}
.game-ctl{display:flex;gap:6px;justify-content:center;margin-top:8px;flex-wrap:wrap;}
.game-hint{text-align:center;font-size:10px;color:#555;margin-top:6px;font-family:var(--font-pixel);}
.dpad{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,40px);gap:4px;justify-content:center;margin-top:8px;}
.dpad .btn95{font-size:15px;padding:0;}
.dpad .up{grid-column:2;}
.dpad .left{grid-column:1;grid-row:2;}
.dpad .down{grid-column:2;grid-row:2;}
.dpad .right{grid-column:3;grid-row:2;}
.save-score{display:none;gap:6px;margin-top:8px;justify-content:center;align-items:center;flex-wrap:wrap;}
.save-score.show{display:flex;}
.save-score input{padding:4px;border:2px solid;border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);font-size:13px;width:140px;font-family:var(--font-ui);}

/* Space Cadet-inspired pinball cabinet */
#win-pinball .win-body{background:linear-gradient(180deg,#24243e,#11152b);padding:7px;}
#win-pinball .game-hud{color:#e9efff;justify-content:flex-start;}
#win-pinball .game-hud .lcd{color:#ffea67;min-width:52px;text-align:center;text-shadow:0 0 6px rgba(255,234,103,.7);}
#pin-rank{min-width:88px!important;color:#6ef7ff!important;}
#pin-new{margin-left:auto;}
#pin-canvas{display:block;width:min(100%,360px);height:auto;aspect-ratio:2/3;margin:0 auto;background:#05081a;border:2px solid;border-color:#555 #fff #fff #555;box-shadow:0 0 14px rgba(23,126,255,.35);touch-action:none;}
#win-pinball .game-ctl{margin-top:7px;}
#win-pinball .game-ctl .btn95{min-width:92px;font-weight:bold;}
#pin-launch{color:#7b1800;background:#ffe27a;}
#win-pinball .game-hint{color:#aeb9e6;line-height:1.45;}
#win-pinball .save-score{color:#fff;}
.lb-tabs{display:flex;gap:4px;margin-bottom:8px;}
.lb-tabs .btn95.on{border-color:var(--silver-dk) var(--silver-hi) var(--silver-hi) var(--silver-dk);background:#ffe9a8;font-weight:bold;}
.lb-table{width:100%;border-collapse:collapse;font-size:13px;}
.lb-table th{font-family:var(--font-pixel);font-size:9px;color:var(--navy);text-align:left;border-bottom:2px solid var(--navy);padding:4px;}
.lb-table td{padding:4px;border-bottom:1px dotted #bbb;}
.lb-table tr.r1 td{color:#a87900;font-weight:bold;}
.lb-table tr.r2 td{color:#707070;font-weight:bold;}
.lb-table tr.r3 td{color:#8a4b22;font-weight:bold;}
.lb-empty{font-size:12px;color:#888;text-align:center;padding:14px 0;}
.lb-note{font-size:10px;color:#999;margin-top:8px;}

/* ============ CARDS / SOLITAIRE / POKER ============ */
.card{
  width:44px;height:60px;border-radius:6px;border:1px solid rgba(0,0,0,.35);
  background:linear-gradient(160deg,#ffffff 0%,#f2f3f8 70%,#e7e9f2 100%);
  font-family:var(--font-ui);font-weight:bold;position:absolute;left:0;
  box-shadow:0 2px 5px rgba(0,0,0,.35);cursor:pointer;user-select:none;
  transition:transform .14s ease, box-shadow .14s ease;
}
.card .tl{position:absolute;top:3px;left:4px;display:flex;flex-direction:column;align-items:center;line-height:1;gap:1px;}
.card .tl b{font-size:12px;}
.card .tl i{font-style:normal;font-size:10px;}
.card .big{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:24px;opacity:.85;pointer-events:none;}
.card.red{color:#d6244a;}
.card.black{color:#1d2733;}
.card.back{
  background:
    repeating-linear-gradient(45deg,rgba(255,255,255,.07) 0 4px,transparent 4px 8px),
    linear-gradient(135deg,#2333a0,#5b2a86 60%,#8636a8);
  border-color:#141b5e;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.18), 0 2px 5px rgba(0,0,0,.35);
}
.card.sel{
  transform:translateY(-4px);
  box-shadow:0 0 0 2px var(--lime), 0 6px 14px rgba(5,255,161,.45);
}
.card.stat{position:relative;}
.pile .card:last-child:hover{transform:translateY(-2px);box-shadow:0 4px 9px rgba(0,0,0,.4);}
#sol-board{
  background:radial-gradient(ellipse at 50% 25%,#108c49 0%,#0a6a36 55%,#064d26 100%);
  border:2px solid;border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);
  padding:10px 8px;user-select:none;
}
.sol-row{display:flex;gap:7px;margin-bottom:12px;}
.pile{position:relative;width:44px;min-height:60px;border-radius:6px;}
.pile.outline{box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.3), inset 0 2px 8px rgba(0,0,0,.25);}
.sol-spacer{width:44px;}
.fmark,.recycle{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.45);font-size:22px;
}
.recycle{font-size:26px;cursor:pointer;transition:transform .25s;}
.recycle:hover{transform:rotate(180deg);}
#sol-msg{font-family:var(--font-pixel);font-size:10px;text-align:center;margin-top:6px;min-height:14px;color:#d8ffe8;text-shadow:0 0 6px rgba(5,255,161,.6);}
#win-poker .win-body{background:radial-gradient(ellipse at 50% 15%,#0f7a44 0%,#0a5530 55%,#073a21 100%);}
#win-poker .game-hud{color:#ffe9b0;}
.pk-hud{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;}
.pk-table{
  position:relative;min-height:292px;margin:8px 0;padding:10px;overflow:hidden;
  border:2px solid;border-color:#064c2c #3bcf88 #3bcf88 #064c2c;
  background:
    radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.12),transparent 42%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 24px),
    linear-gradient(180deg,#097343,#06351f);
  box-shadow:inset 0 0 26px rgba(0,0,0,.45),0 0 18px rgba(5,255,161,.16);
}
.pk-table:before{
  content:'';position:absolute;left:12%;right:12%;top:17%;bottom:14%;
  border:3px solid rgba(255,233,176,.24);border-radius:48%;pointer-events:none;
  box-shadow:0 0 20px rgba(255,113,206,.12);
}
.pk-seat,.pk-board-wrap{position:relative;z-index:1;}
.pk-seatlabel,.pk-stage{
  font-family:var(--font-pixel);font-size:9px;text-align:center;color:#d8ffe8;
  text-shadow:0 0 6px rgba(5,255,161,.55);letter-spacing:.5px;
}
.pk-ai-seat{margin-bottom:6px;}
.pk-player-seat{margin-top:8px;}
.pk-stage{color:#ffd700;margin-bottom:4px;min-height:14px;}
.pk-cards{display:flex;gap:8px;justify-content:center;align-items:center;margin:6px 0;perspective:600px;min-height:78px;}
.pk-board{min-height:84px;}
.pk-hole .card,.pk-board .card,.pk-empty-card{width:52px;height:74px;border-radius:7px;}
.pk-board .card{width:48px;height:68px;}
.pk-hole .card .big{font-size:26px;}
.pk-board .card .big{font-size:23px;}
.pk-empty-card{
  display:flex;align-items:center;justify-content:center;border:2px dashed rgba(255,255,255,.26);
  color:rgba(255,255,255,.28);font-family:var(--font-pixel);font-size:18px;background:rgba(0,0,0,.12);
}
.pk-cards .card.deal{animation:cardIn .3s ease-out backwards;}
.pk-cards .card.win-card{transform:translateY(-4px);box-shadow:0 0 0 2px #ffd700,0 0 18px rgba(255,215,0,.45);}
@keyframes cardIn{from{transform:translateY(-14px) rotateX(40deg);opacity:0;}to{transform:none;opacity:1;}}
#pk-msg{
  font-family:var(--font-pixel);font-size:10px;text-align:center;color:#ffd700;
  min-height:28px;margin:7px 0;text-shadow:0 0 8px rgba(255,215,0,.5);line-height:1.45;
}
.pk-betbar{justify-content:center;margin-bottom:6px;}
.pk-actions{flex-wrap:wrap;}
.pk-actions .btn95{margin-bottom:3px;}
.pk-pay{font-size:10px;color:#bfe8cf;text-align:center;line-height:1.6;margin-top:8px;opacity:.9;}
#win-poker .save-score.show{margin-top:8px;}
@media (max-width:640px){
  #win-poker{width:96vw!important;left:2vw!important;}
  .pk-hud{grid-template-columns:repeat(2,1fr);}
  .pk-hole .card,.pk-empty-card{width:46px;height:66px;}
  .pk-board .card{width:42px;height:60px;}
  .pk-cards{gap:5px;}
}

/* ============ PETER ISLAND ============ */
#win-island .win-body{background:#101319;padding:0;max-height:none;overflow:auto;}
.island-shell{color:#e7e2d7;font-family:Georgia,"Times New Roman",serif;}
.isl-hud{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;padding:10px 13px;background:#171b22;border-bottom:1px solid #434957;}
.isl-hud strong{display:block;margin-top:2px;color:#e9c36b;font-size:14px;letter-spacing:.08em;}
.isl-eyebrow{display:block;color:#738398;font:9px/1.2 var(--font-pixel);letter-spacing:.08em;margin-bottom:5px;}
.isl-hud-stats{display:flex;gap:12px;font:11px var(--font-ui);color:#9ea7b3;}
.isl-hud-stats b{display:block;color:#fff;margin-top:3px;text-align:center;}
#isl-resolve{color:#e65b64;letter-spacing:2px;}
.isl-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;min-height:570px;}
.isl-main{display:flex;flex-direction:column;min-width:0;background:#090b0f;}
.isl-scene{position:relative;min-height:355px;overflow:hidden;isolation:isolate;user-select:none;border-bottom:1px solid #4a4e56;background:#18202a;}
.isl-scene::before,.isl-scene::after{content:"";position:absolute;pointer-events:none;z-index:-1;}
.scene-beach{background:radial-gradient(circle at 78% 20%,#ffd18b 0 6%,rgba(255,168,95,.35) 7%,transparent 19%),linear-gradient(168deg,#1a3250 0 33%,#a85755 34% 48%,#263b55 49% 59%,#c89d67 60% 74%,#31271f 75%);}
.scene-beach::before{left:-8%;right:-8%;bottom:23%;height:32%;background:repeating-radial-gradient(ellipse at 50% 110%,rgba(196,232,236,.7) 0 2px,transparent 3px 18px);transform:rotate(-2deg);opacity:.55;}
.scene-beach::after{left:8%;bottom:0;width:28%;height:68%;background:linear-gradient(78deg,transparent 46%,#10171b 47% 53%,transparent 54%),radial-gradient(ellipse at 52% 13%,#18251f 0 22%,transparent 24%);filter:blur(.4px);}
.scene-lobby{background:radial-gradient(ellipse at 50% 25%,rgba(184,103,76,.42),transparent 33%),linear-gradient(155deg,#101c22 0 28%,#26373a 29% 56%,#17171a 57% 78%,#332722 79%);}
.scene-lobby::before{left:10%;top:8%;width:28%;height:55%;border:7px solid #141312;background:linear-gradient(155deg,rgba(255,193,110,.8),rgba(91,131,145,.15));box-shadow:90px 25px 0 -4px rgba(91,55,47,.45);transform:skewY(-2deg);}
.scene-lobby::after{left:0;right:0;bottom:0;height:29%;background:repeating-linear-gradient(95deg,rgba(216,178,116,.12) 0 2px,transparent 2px 50px),linear-gradient(#5d4938,#2c241e);}
.scene-bar{background:radial-gradient(circle at 68% 28%,rgba(255,68,181,.52),transparent 24%),radial-gradient(circle at 24% 45%,rgba(35,226,221,.34),transparent 29%),linear-gradient(155deg,#151029,#32163b 55%,#17100e 56%);}
.scene-bar::before{left:7%;right:7%;bottom:12%;height:34%;border-top:7px solid #18120d;background:linear-gradient(90deg,#341b16,#755133 46%,#291916);transform:perspective(300px) rotateX(6deg);}
.scene-bar::after{right:7%;top:7%;width:90px;height:90px;border:7px double #dfb83e;background:radial-gradient(circle,#6ef6ff 0 9%,#a5217e 10% 26%,#14152b 27%);border-radius:50%;box-shadow:0 0 34px #d636bb;}
.scene-cove{background:radial-gradient(ellipse at 50% 105%,rgba(53,210,169,.8),transparent 27%),linear-gradient(168deg,#071727 0 17%,#0b5060 18% 54%,#0c7c75 55% 76%,#063d3c 77%);}
.scene-cove::before{inset:0;background:repeating-linear-gradient(112deg,transparent 0 42px,rgba(174,244,241,.09) 43px 48px,transparent 49px 82px);transform:skewX(-8deg);}
.scene-cove::after{left:5%;right:5%;bottom:-8%;height:44%;background:radial-gradient(ellipse at 15% 70%,#b75b66 0 8%,transparent 9%),radial-gradient(ellipse at 46% 60%,#6c3c96 0 11%,transparent 12%),radial-gradient(ellipse at 77% 75%,#d58e4a 0 10%,transparent 11%);filter:blur(1px);}
.scene-station{background:radial-gradient(circle at 78% 16%,rgba(210,225,255,.75),transparent 8%),linear-gradient(150deg,#080b14,#243246 40%,#10141d 41% 70%,#3b332b 71%);}
.scene-station::before{left:13%;bottom:4%;width:46%;height:83%;background:linear-gradient(90deg,transparent 43%,#0c0c0d 44% 55%,transparent 56%),linear-gradient(25deg,transparent 48%,#16191d 49% 54%,transparent 55%);clip-path:polygon(44% 0,60% 0,65% 35%,100% 100%,0 100%,38% 35%);opacity:.9;}
.scene-station::after{inset:0;background:repeating-linear-gradient(104deg,transparent 0 19px,rgba(205,230,255,.15) 20px 22px,transparent 23px 44px);animation:islRain .8s linear infinite;}
@keyframes islRain{to{background-position:-45px 90px;}}
.scene-archive{background:radial-gradient(circle at 50% 42%,rgba(224,179,81,.34),transparent 23%),repeating-linear-gradient(90deg,rgba(34,91,73,.18) 0 2px,transparent 2px 68px),linear-gradient(145deg,#061512,#112a25 57%,#090d0d 58%);}
.scene-archive::before{left:8%;right:8%;top:10%;bottom:9%;border:10px double #625636;border-radius:45% 45% 8% 8%;box-shadow:inset 0 0 55px #000,0 0 24px rgba(214,177,90,.25);}
.scene-archive::after{left:46%;top:27%;width:10%;height:35%;background:linear-gradient(#e7cf75,#7c672d);box-shadow:0 0 35px #e5bd4f;opacity:.65;}
.isl-scene-title{position:absolute;left:16px;top:14px;z-index:4;max-width:65%;text-shadow:0 2px 4px #000;}
.isl-scene-title h2{font-size:25px;line-height:1;margin:4px 0;color:#f5e6c1;font-weight:normal;}
.isl-scene-title p{font:italic 12px/1.35 Georgia,serif;color:#c7d0d8;}
.isl-hot{position:absolute;z-index:5;display:flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid rgba(245,226,167,.7);border-radius:18px;background:rgba(8,13,18,.78);color:#fff;box-shadow:0 2px 9px #000;font:11px var(--font-ui);cursor:pointer;transform:translate(-50%,-50%);transition:.15s;backdrop-filter:blur(3px);}
.isl-hot span{font-size:20px;line-height:1;}
.isl-hot:hover,.isl-hot:focus-visible{background:#e9d089;color:#111;transform:translate(-50%,-50%) scale(1.06);outline:2px solid #fff;}
.isl-hot.used{opacity:.52;border-style:dashed;}
.isl-dialogue{min-height:190px;padding:14px 17px 16px;background:linear-gradient(160deg,#15191f,#090b0f);border-top:1px solid #000;}
.isl-speaker{color:#d6b05c;font:9px var(--font-pixel);letter-spacing:.1em;margin-bottom:7px;}
#isl-text{min-height:54px;color:#e8e2d8;font:16px/1.48 Georgia,"Times New Roman",serif;user-select:text;}
.isl-choices{display:grid;gap:6px;margin-top:12px;}
.isl-choice{position:relative;padding:8px 10px 8px 26px;border:1px solid #47515d;background:#1a2028;color:#cbd5df;text-align:left;font:12px/1.35 var(--font-ui);cursor:pointer;}
.isl-choice::before{content:"›";position:absolute;left:10px;color:#e3b754;font:bold 16px Georgia;}
.isl-choice:hover,.isl-choice:focus-visible{background:#273441;color:#fff;border-color:#d0ac59;outline:1px solid #d0ac59;}
.isl-choice.check{border-left:4px solid #90703a;}
.isl-choice.danger{border-left:4px solid #9d3d49;}
.isl-casefile{display:flex;flex-direction:column;gap:0;background:#e4ddce;color:#252c31;border-left:4px solid #07090c;overflow:auto;}
.isl-casefile section{padding:13px;border-bottom:1px solid #aaa08e;}
.isl-casefile h3{font:12px var(--font-pixel);color:#293846;margin-bottom:10px;}
.isl-skill{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dotted #978e7e;font:11px var(--font-ui);}
.isl-skill b{display:grid;place-items:center;width:24px;height:20px;background:#303c48;color:#f5d87b;}
#isl-objective{font:italic 13px/1.45 Georgia,serif;color:#3c3934;}
.isl-map{display:grid;gap:5px;}
.isl-map button{padding:6px;border:0;border-left:4px solid transparent;background:#cbc3b4;color:#3a3d3f;text-align:left;font:11px var(--font-ui);cursor:pointer;}
.isl-map button:hover,.isl-map button:focus-visible{background:#b8c6c8;outline:1px solid #50636a;}
.isl-map button.current{border-left-color:#9b3b3f;background:#303c48;color:#fff;}
.isl-map button.locked{opacity:.45;cursor:not-allowed;}
.isl-lore-panel{min-height:118px;}
#isl-lore{font:11px/1.45 var(--font-ui);color:#4a4945;}
.isl-inv-wrap{display:flex;align-items:flex-start;gap:10px;padding:10px 13px;background:#20252c;border-top:1px solid #4e5662;}
.isl-inv-lbl{flex:0 0 124px;color:#8290a1;font:9px/1.4 var(--font-pixel);padding-top:7px;}
.isl-inv{display:flex;gap:5px;flex-wrap:wrap;min-height:30px;flex:1;}
.isl-item{padding:5px 8px;border:1px solid #56616e;background:#10151b;color:#d9e0e6;font:11px var(--font-ui);cursor:pointer;}
.isl-item:hover,.isl-item:focus-visible{border-color:#e2bd62;outline:1px solid #e2bd62;}
.isl-item.selitem{background:#d2ae55;color:#111;border-color:#fff;}
#win-island .save-score{padding:8px;background:#2a2020;color:#fff;margin:0;}
#isl-ending-label{font:10px var(--font-pixel);color:#f0c96c;}
#win-island .game-hint{margin:0;padding:7px;background:#0a0c0f;color:#707d8c;border-top:1px solid #262c34;}
@media (max-width:760px){
  #win-island{width:96vw!important;left:2vw!important;}
  .isl-hud{grid-template-columns:1fr auto;}.isl-hud-stats{grid-column:1/-1;grid-row:2;justify-content:space-between;}
  .isl-layout{grid-template-columns:1fr;}.isl-casefile{border-left:0;border-top:4px solid #07090c;max-height:240px;}
  .isl-scene{min-height:300px;}.isl-inv-wrap{flex-direction:column;}.isl-inv-lbl{flex-basis:auto;}
}

/* ============ MODERN POLISH ============ */
.btn95:hover{filter:brightness(1.06);}
.cell{transition:filter .08s;}
.cell:not(.rev):hover{filter:brightness(1.12);}

/* ============ TASKBAR ============ */
#taskbar{
  position:fixed;left:0;right:0;bottom:0;height:40px;
  background:var(--silver);
  border-top:2px solid var(--silver-hi);
  display:flex;align-items:center;gap:6px;padding:4px;z-index:5000;overflow-x:auto;
}
#startbtn{
  display:flex;align-items:center;gap:6px;font-weight:bold;font-size:14px;
  padding:3px 10px;height:30px;
}
#startbtn .logo{font-size:16px;}
.task-item{
  height:30px;max-width:150px;flex:0 1 auto;display:none;align-items:center;gap:6px;
  padding:0 10px;font-size:12px;overflow:hidden;white-space:nowrap;
}
.task-item.show{display:flex;}
.task-item.active{border-color:var(--silver-dk) var(--silver-hi) var(--silver-hi) var(--silver-dk);background:#d8d8d8;font-weight:bold;}
#tray{
  margin-left:auto;display:flex;align-items:center;gap:8px;height:30px;
  border:1px solid;border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);
  padding:0 10px;font-size:12px;
}
#crt-toggle,#sound-toggle,#safe-toggle{cursor:pointer;font-size:14px;background:none;border:none;padding:2px;}
#crt-toggle[aria-pressed="true"]{filter:drop-shadow(0 0 4px var(--cyan));}
#sound-toggle[aria-pressed="true"]{filter:drop-shadow(0 0 4px var(--lime));}

/* start menu */
#startmenu{
  position:fixed;bottom:42px;left:4px;width:240px;background:var(--silver);
  border:2px solid;border-color:var(--silver-hi) var(--silver-dk) var(--silver-dk) var(--silver-hi);
  box-shadow:4px 4px 0 rgba(0,0,0,.35);display:none;z-index:6000;
}
#startmenu.open{display:flex;}
#startmenu .strip{
  background:linear-gradient(180deg,var(--pink),var(--navy));width:30px;
  display:flex;align-items:flex-end;justify-content:center;padding-bottom:8px;
}
#startmenu .strip span{
  writing-mode:vertical-rl;transform:rotate(180deg);color:#fff;
  font-family:var(--font-pixel);font-size:12px;letter-spacing:2px;
}
#startmenu ul{list-style:none;flex:1;padding:4px 0;}
#startmenu li{padding:8px 12px;font-size:13px;cursor:pointer;display:flex;gap:10px;align-items:center;}
#startmenu li:hover{background:var(--navy);color:#fff;}
#startmenu li.sep{border-top:1px solid var(--silver-lo);margin-top:4px;padding-top:9px;}
#startmenu li:focus-visible{background:var(--navy);color:#fff;outline:1px dotted #fff;outline-offset:-3px;}

/* ============ CRT OVERLAY ============ */
#crt{position:fixed;inset:0;pointer-events:none;z-index:8000;display:none;}
body.crt-on #crt{display:block;}
#crt::before{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(180deg,rgba(0,0,0,.18) 0 1px, transparent 1px 3px);
}
#crt::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.42));
  animation:flicker 4s infinite;
}
@keyframes flicker{0%,100%{opacity:1;}92%{opacity:1;}93%{opacity:.82;}94%{opacity:1;}}

/* ============ SCREENSAVER ============ */
#saver{position:fixed;inset:0;background:#000;z-index:9500;display:none;}
#saver.show{display:block;}
#saver-canvas{display:block;width:100%;height:100%;}
#saver .label{
  position:absolute;left:50%;bottom:10%;transform:translateX(-50%);
  color:#555;font-family:var(--font-term);font-size:20px;white-space:nowrap;text-shadow:1px 1px #000;
}

/* wandering desktop seal — peeks out from behind the taskbar */
#seal{
  position:fixed;left:72%;bottom:-96px;z-index:4990;font-size:68px;line-height:1;
  cursor:pointer;transition:bottom .5s cubic-bezier(.2,.9,.25,1.25),left .8s ease;
  filter:drop-shadow(3px 4px 2px rgba(0,0,0,.55));user-select:none;
}
#seal:hover{transform:rotate(-4deg) scale(1.05);}
#seal .bubble{
  display:none;position:absolute;right:76%;bottom:62%;width:max-content;max-width:230px;
  padding:8px 10px;background:#fff;color:#111;border:2px solid #000;border-radius:12px 12px 2px 12px;
  font:13px/1.3 var(--font-ui);box-shadow:3px 3px 0 rgba(0,0,0,.35);white-space:normal;
}
#seal .bubble::after{content:"";position:absolute;right:-10px;bottom:4px;border-width:8px 0 0 12px;border-style:solid;border-color:transparent transparent transparent #000;}
#seal.talk .bubble{display:block;}
@media (max-width:640px){#seal{font-size:54px;}#seal .bubble{max-width:180px;font-size:11px;}}

/* ============ SHUTDOWN ============ */
#shutdown{
  position:fixed;inset:0;background:#000;z-index:9998;display:none;
  align-items:center;justify-content:center;text-align:center;
}
#shutdown.show{display:flex;}
#shutdown p{color:#ffa500;font-family:var(--font-term);font-size:clamp(22px,4vw,36px);line-height:1.4;}
#shutdown small{display:block;color:#555;font-size:16px;margin-top:18px;}

/* ============ MOBILE ============ */
@media (max-width:640px){
  #desktop{overflow-y:auto;overflow-x:hidden;}
  .window{position:fixed;left:2vw !important;top:8px !important;bottom:44px;width:96vw !important;min-width:0;height:auto;}
  .win-body{max-height:none;}
  .icons{position:relative;top:8px;left:0;right:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 4px;max-height:none;padding:0 8px 110px;}
  .icon{width:100%;min-width:0;}
  .icon .glyph{font-size:30px;}
  .icon span{font-size:10px;overflow-wrap:anywhere;}
  .home-body{padding:20px 16px 28px;}
  .home-body h1{font-size:30px;}
  .home-lede{font-size:14px;}
  .home-actions{display:grid;}
  .home-actions .btn95{justify-content:center;}
  .home-proof{grid-template-columns:1fr;}
  .home-proof div{border-right:0;border-bottom:1px solid #d9dae4;padding:9px 12px;}
  .home-proof div:last-child{border-bottom:0;}
  .home-proof strong{min-width:42px;font-size:29px;}
  .home-grid{grid-template-columns:1fr;}
  .home-footnote{font-size:14px;}
  .home-legacy{display:none;}
  .arcade-grid{grid-template-columns:1fr;}
  .project-file{min-height:0;}
  .task-item{max-width:92px;flex:1 1 70px;}
  #tray{margin-left:0;flex:0 0 auto;padding:0 7px;gap:6px;}
  #reefwidget{display:none;}
  #startmenu{max-height:calc(100vh - 50px);overflow-y:auto;}
  #ms-grid{grid-template-columns:repeat(9,32px);}
  .cell{width:32px;height:32px;}
}
@media (max-height:760px) and (min-width:641px){
  .home-window{top:3% !important;}
  .home-body{padding:18px 24px;}
  .home-body h1{font-size:34px;margin:8px 0;}
  .home-lede{font-size:13px;}
  .home-actions{margin:11px 0;}
  .home-proof{margin-bottom:10px;}
  .home-proof div{padding:8px 11px;}
  .home-proof strong{font-size:28px;}
  .home-panel{padding:10px;}
  .home-signature,.home-footnote{margin-top:7px;}
}
/* reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;}
}

/* Poker uses the shared card face renderer, but Solitaire positions .card absolutely.
   Keep poker cards in normal flex layout so the hole cards and board are visible. */
#win-poker .pk-cards .card{
  position:relative;
  left:auto;
  top:auto;
  flex:0 0 auto;
  cursor:default;
  transform:none;
}
#win-poker .pk-cards .card.back::after{
  content:'♠';
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:26px;
  color:rgba(255,255,255,.75);
  text-shadow:0 0 8px rgba(1,205,254,.9);
}
#win-poker .pk-hole,
#win-poker .pk-board{
  position:relative;
}

/* ============ SYSTEM PROPERTIES ============ */
.sysprops{background:#f7f7f7;}
.sys-hero{display:flex;gap:16px;align-items:center;border-bottom:1px solid #aaa;padding:4px 2px 14px;margin-bottom:12px;}
.sys-computer{font-size:54px;filter:drop-shadow(3px 3px 0 #bbb);}
.sys-hero h2{margin-bottom:4px;}
.sys-hero p{margin:0;font-weight:bold;color:#333;}
.sys-status{display:inline-block;margin-top:6px;color:#08783e;font-family:var(--font-term);font-size:16px;}
.sys-grid{display:grid;gap:7px;margin:10px 0;}
.sys-grid>div{display:grid;grid-template-columns:105px 1fr;gap:8px;border-bottom:1px dotted #bbb;padding-bottom:6px;}
.sys-grid dt{font-weight:bold;color:#444;}
.sys-grid dd{margin:0;line-height:1.35;}
.sys-list{list-style:none;border:2px solid;border-color:var(--silver-lo) var(--silver-hi) var(--silver-hi) var(--silver-lo);background:#fff;padding:8px;}
.sys-list li{display:flex;flex-direction:column;gap:2px;padding:6px;border-bottom:1px dotted #bbb;}
.sys-list li:last-child{border-bottom:0;}
.sys-list span{font-size:12px;color:#555;}
.sys-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.sys-actions a{text-decoration:none;color:#000;}

/* ============ ACROBAT READER IMITATION ============ */
.resume-window{min-height:420px;overflow:hidden;}
.resume-window .titlebar{background:linear-gradient(90deg,#4d0000,#a40000);}
.resume-window.inactive .titlebar{background:linear-gradient(90deg,#6f6f6f,#aaa);}
.acrobat-mini{display:inline-grid;place-items:center;width:16px;height:16px;background:#fff;color:#b40000;font:bold 13px Georgia,serif;border-radius:1px;}
.acrobat-menu{display:flex;gap:18px;padding:4px 9px;background:#ece9d8;border-bottom:1px solid #999;font-size:12px;}
.acrobat-menu span::first-letter{text-decoration:underline;}
.acrobat-tools{display:flex;align-items:center;gap:4px;min-height:38px;padding:4px 7px;background:#ddd9c8;border-bottom:2px groove #fff;}
.acrobat-brand{display:flex;align-items:center;gap:5px;margin-right:4px;font-weight:bold;color:#4b4b4b;font-size:12px;white-space:nowrap;}
.acrobat-brand b{display:grid;place-items:center;width:26px;height:26px;background:#a40000;color:#fff;font:italic bold 20px Georgia,serif;box-shadow:inset 1px 1px #e9a3a3,1px 1px #777;}
.tool-sep{align-self:stretch;width:2px;margin:0 3px;border-left:1px solid #999;border-right:1px solid #fff;}
.acrobat-tool{min-width:28px;height:26px;padding:0 6px;background:#ece9d8;border:2px solid;border-color:#fff #777 #777 #fff;color:#222;font-weight:bold;cursor:pointer;}
.acrobat-tool:active{border-color:#777 #fff #fff #777;}
.acrobat-tool:focus-visible{outline:2px solid #000080;outline-offset:1px;}
.page-box,.zoom-box{min-width:48px;padding:4px 6px;background:#fff;border:2px inset #eee;text-align:center;font:12px Tahoma,sans-serif;}
.pdf-stage{display:flex;flex:1;min-height:300px;padding:14px;background:#696969;overflow:hidden;box-shadow:inset 2px 2px 4px #333;}
.pdf-stage iframe{display:block;width:100%;height:100%;border:0;background:#fff;box-shadow:4px 4px 0 rgba(0,0,0,.35);}
.acrobat-status{margin-top:3px;}

/* ============ SAFE MODE / BLUE SCREEN ============ */
#bsod{display:none;position:fixed;inset:0;z-index:10000;align-items:center;justify-content:center;overflow:auto;background:#0000aa;color:#fff;padding:clamp(22px,6vw,80px);font-family:"Lucida Console",Consolas,"Courier New",monospace;font-size:clamp(14px,2vw,20px);line-height:1.45;user-select:text;}
body.bsod-mode #bsod{display:flex;}
.bsod-copy{width:min(980px,100%);}
.bsod-copy p{margin:0 0 1.4em;}
.bsod-title{width:max-content;margin:0 auto 2em!important;padding:2px 12px;background:#aaa;color:#0000aa;font-weight:bold;}
.bsod-stop{font-weight:bold;letter-spacing:.08em;}
.bsod-tech{font-size:.85em;}
#bsod-exit{display:block;margin:2.5em auto 0;padding:5px 10px;border:0;background:#aaa;color:#0000aa;font:inherit;font-weight:bold;cursor:pointer;}
#bsod-exit:focus-visible{outline:3px solid #fff;outline-offset:4px;}
.bsod-cursor{display:block;text-align:center;margin-top:1.5em;animation:blink 1s steps(1) infinite;}
@media (max-width:640px){
  .resume-window{min-height:0;}
  .acrobat-brand,.acrobat-menu span:nth-child(4),.acrobat-menu span:nth-child(5){display:none;}
  .acrobat-menu{gap:12px;}
  .pdf-stage{padding:6px;min-height:0;}
}
