/* ============================================================
   SatoshiOS — Bitcoin Gold 98 design system
   Hyper-skeuomorphic 90s desktop, gold-trimmed, deep-teal canvas
   ============================================================ */

:root{
  /* Surface ladder */
  --paper:           #fdf9f0;
  --paper-soft:      #f8f3eb;
  --paper-mid:       #f2ede5;
  --paper-deep:      #ece8df;
  --paper-deeper:    #e6e2da;
  --panel:           #d4d0c8;     /* classic Win98 system gray */
  --panel-shadow:    #808080;
  --panel-deep:      #404040;

  /* Ink */
  --ink:             #1d1c17;
  --ink-soft:        #554335;
  --ink-faint:       #887362;
  --rule:            #dbc2ae;
  --rule-soft:       #e6e2da;

  /* Bitcoin gold */
  --gold:            #F7931A;
  --gold-light:      #ffb874;
  --gold-mid:        #fea141;
  --gold-deep:       #c97615;
  --gold-copper:     #8a4d00;
  --gold-bronze:     #6b3b00;
  --gold-shadow:     #2d1600;

  /* Desktop */
  --teal:            #004d4d;
  --teal-deep:       #003636;

  /* Semantic */
  --good:            #1f9e3c;
  --good-bg:         #d4f2dc;
  --error:           #ba1a1a;
  --error-bg:        #ffdad6;
  --term-green:      #25e045;
  --term-amber:      #ffae3e;

  /* Sizing */
  --task-h:          28px;
  --bevel:           3px;

  /* Bezel border systems */
  --bezel-raised:
    inset 1px 1px 0 #fff,
    inset -1px -1px 0 #d4d0c8,
    inset 2px 2px 0 #d4d0c8,
    inset -2px -2px 0 #808080;
  --bezel-sunken:
    inset 1px 1px 0 #808080,
    inset -1px -1px 0 #fff,
    inset 2px 2px 0 #404040,
    inset -2px -2px 0 #d4d0c8;
  --bezel-flat:
    inset 1px 1px 0 #d4d0c8,
    inset -1px -1px 0 #808080;

  --title-grad:        linear-gradient(180deg, #ffb874 0%, #F7931A 18%, #c97615 75%, #8a4d00 100%);
  --title-grad-sheen:  linear-gradient(110deg, transparent 0%, transparent 28%, rgba(255,255,255,.32) 38%, rgba(255,255,255,.10) 56%, transparent 70%);
  --title-grad-inactive: linear-gradient(180deg, #b8b8b0 0%, #888880 60%, #6a6a64 100%);
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%;overflow:hidden}
body{
  font-family:'Inter','Hanken Grotesk','MS Sans Serif',sans-serif;
  font-size:13px;color:var(--ink);
  background:var(--teal);
  user-select:none;-webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
input,textarea{user-select:text}
[hidden]{display:none !important}

/* Letter classes */
.txt-mono{font-family:'IBM Plex Mono','Consolas',monospace}
.txt-ui  {font-family:'Hanken Grotesk',Inter,sans-serif;font-weight:700;letter-spacing:.5px;text-transform:uppercase;font-size:11px;line-height:12px}
.txt-acc {color:var(--gold-deep);font-weight:700}
.txt-good{color:var(--good);font-weight:600}
.txt-bad {color:var(--error);font-weight:600}
.txt-dim {color:var(--ink-faint)}

/* ============================================================
   BOOT SCREEN — terminal CRT, orange ASCII, segmented bar
   ============================================================ */
.boot{
  position:fixed;inset:0;z-index:1000;
  background:#000;color:var(--term-green);
  font-family:'IBM Plex Mono','VT323',monospace;
  font-size:14px;line-height:1.45;
  padding:60px 36px 90px;overflow:hidden;
  animation:boot-fade-in .35s ease-out;
}
.boot::before{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, transparent 1px 3px);
  pointer-events:none;
}
.boot-inner{max-width:780px;margin:0 auto;position:relative;z-index:1}
.boot-logo{
  color:var(--gold);
  font-family:'IBM Plex Mono',monospace;
  font-size:14px;line-height:1.05;
  margin:0 auto 28px;white-space:pre;
  text-shadow:0 0 12px rgba(247,147,26,.55), 0 0 2px rgba(247,147,26,.85);
  text-align:center;
  animation:boot-flicker 4.5s steps(20) infinite;
}
.boot-line{
  margin-bottom:5px;font-size:14px;
  color:var(--term-green);
  text-shadow:0 0 6px rgba(37,224,69,.4);
  opacity:.88;
}
.boot-line .ok{color:var(--term-green);font-weight:700}
.boot-bar{
  position:absolute;left:36px;right:36px;bottom:60px;
  height:24px;border:2px solid var(--gold-copper);
  background:#1a0e00;padding:2px;
}
.boot-bar-fill{
  height:100%;width:0;
  background:repeating-linear-gradient(90deg,
    var(--gold) 0 10px,
    var(--gold-copper) 10px 12px);
  transition:width .12s linear;
  box-shadow:inset 0 0 6px rgba(255,200,90,.35), 0 0 8px rgba(247,147,26,.4);
}
.boot-skip{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
  color:var(--term-green);opacity:.55;font-size:12px;letter-spacing:.05em;
}
@keyframes boot-fade-in{from{opacity:0}to{opacity:1}}
@keyframes boot-flicker{0%,3%,5%,100%{opacity:1}4%{opacity:.82}}

/* Cursor blink in terminal lines */
.cursor-blink::after{
  content:"_";display:inline-block;color:var(--term-green);
  animation:term-blink 1s steps(1) infinite;margin-left:3px;
}
@keyframes term-blink{0%,49%{opacity:1}50%,100%{opacity:0}}

/* ============================================================
   DESKTOP — teal canvas with subtle grid + ₿ watermark
   ============================================================ */
.desktop{
  position:fixed;inset:0;
  background:var(--teal);
  display:flex;flex-direction:column;overflow:hidden;
  cursor:default;
}
.wallpaper{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(0,90,90,.55) 0%, transparent 55%),
    var(--teal);
}
.wallpaper-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:32px 32px;
  pointer-events:none;
}
.wallpaper-logo{
  position:absolute;
  bottom:80px;right:48px;
  width:220px;height:220px;opacity:.10;
  pointer-events:none;
  animation:wp-pulse 8s ease-in-out infinite;
}
.wallpaper-logo svg{width:100%;height:100%}
@keyframes wp-pulse{0%,100%{opacity:.10}50%{opacity:.16}}

/* ============================================================
   DESKTOP ICONS
   ============================================================ */
.dt-icons{
  position:absolute;
  top:14px;left:14px;bottom:48px;
  display:grid;
  grid-template-rows:repeat(auto-fill,84px);
  grid-auto-flow:column;
  grid-auto-columns:84px;
  gap:4px;
  z-index:1;
}
.dt-icon{
  width:80px;
  display:flex;flex-direction:column;align-items:center;
  text-align:center;cursor:pointer;
  padding:6px 4px;border-radius:0;
  user-select:none;
  transition:background .08s;
}
.dt-icon:hover{background:rgba(255,255,255,.08)}
.dt-icon.selected{
  background:rgba(247,147,26,.18);
  outline:1px dotted rgba(255,255,255,.65);
  outline-offset:-1px;
}
.dt-icon .ico{
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:6px;
  filter:drop-shadow(1px 1px 0 rgba(0,0,0,.55));
}
.dt-icon .ico svg{width:100%;height:100%;display:block}
.dt-icon .lbl{
  font-family:'Hanken Grotesk',sans-serif;
  font-size:11.5px;font-weight:600;
  color:#f5e7c8;
  text-shadow:1px 1px 0 rgba(0,0,0,.55);
  letter-spacing:0.01em;line-height:1.15;
  word-break:break-word;
}

/* ============================================================
   WINDOW SYSTEM — Bitcoin Gold 98 chrome
   ============================================================ */
.windows-layer{
  position:absolute;inset:0;pointer-events:none;z-index:5;
}
.win{
  position:absolute;
  pointer-events:auto;
  display:flex;flex-direction:column;
  min-width:300px;min-height:160px;
  background:var(--panel);
  border-top:1px solid #fff;
  border-left:1px solid #fff;
  border-right:1px solid var(--panel-deep);
  border-bottom:1px solid var(--panel-deep);
  box-shadow:
    inset 1px 1px 0 var(--panel),
    inset -1px -1px 0 var(--panel-shadow),
    2px 2px 0 rgba(0,0,0,.45),
    4px 4px 14px rgba(0,0,0,.25);
  animation:win-open .22s cubic-bezier(.2,.7,.3,1.18);
  transform-origin:center;
}
@keyframes win-open{
  0%   {transform:scale(.85) translateY(8px);opacity:0}
  60%  {transform:scale(1.02) translateY(-1px);opacity:1}
  100% {transform:scale(1) translateY(0);opacity:1}
}
.win.maximized{
  top:0 !important;left:0 !important;
  width:100% !important;height:calc(100% - var(--task-h)) !important;
  box-shadow:none;
}
.win.minimized{
  display:none;
}
.win.dragging{user-select:none}
.win.dragging *{pointer-events:none}
.win.focused .titlebar{
  background:var(--title-grad);
  position:relative;
}
.win.focused .titlebar::before{
  content:"";position:absolute;top:0;left:-50%;height:100%;width:200%;
  background:linear-gradient(110deg,
    transparent 30%,
    rgba(255,255,255,.42) 45%,
    rgba(255,255,255,.10) 60%,
    transparent 72%);
  pointer-events:none;
  animation:gold-sheen 5.5s linear infinite;
  transform:translateX(-25%);
}
@keyframes gold-sheen{
  0%   {transform:translateX(-25%)}
  100% {transform:translateX(25%)}
}
.win:not(.focused) .titlebar{
  background:var(--title-grad-inactive);
}

/* Titlebar */
.titlebar{
  height:24px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 4px 0 6px;
  color:#fff;
  font-family:'Hanken Grotesk',sans-serif;
  font-weight:900;font-size:13px;letter-spacing:0.02em;
  cursor:move;flex-shrink:0;
  text-shadow:0 1px 0 rgba(0,0,0,.4);
  position:relative;
  border-bottom:1px solid var(--gold-shadow);
}
.titlebar > *{position:relative;z-index:1}
.titlebar .title{
  display:flex;align-items:center;gap:6px;
  text-transform:uppercase;letter-spacing:.04em;
}
.titlebar .title .ti{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;
  background:var(--gold-copper);
  color:#fff;font-size:11px;font-weight:900;
  border:1px solid var(--gold-shadow);
  box-shadow:inset 1px 1px 0 var(--gold-light);
}
.titlebar .ctrls{display:flex;gap:2px}
.titlebar button{
  background:var(--panel);
  border-top:1px solid #fff;
  border-left:1px solid #fff;
  border-right:1px solid var(--panel-deep);
  border-bottom:1px solid var(--panel-deep);
  width:18px;height:18px;
  font-family:'Hanken Grotesk',sans-serif;font-size:11px;font-weight:900;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--ink);padding:0;line-height:1;
  box-shadow:var(--bezel-flat);
}
.titlebar button:hover{background:#e0dcd3}
.titlebar button:active{
  border-top-color:var(--panel-deep);
  border-left-color:var(--panel-deep);
  border-right-color:#fff;
  border-bottom-color:#fff;
}
.titlebar button.close:hover{background:#e7785c;color:#fff}
.titlebar .ctrl-glyph{display:block;width:10px;height:8px;position:relative}

/* Menubar */
.menubar{
  display:flex;height:22px;
  background:var(--panel);
  border-bottom:1px solid var(--panel-shadow);
  padding:0 4px;align-items:center;gap:0;
  font-family:'Hanken Grotesk',sans-serif;
  font-size:12px;color:var(--ink);
  flex-shrink:0;
}
.menubar .item{padding:3px 10px;cursor:pointer;letter-spacing:.01em}
.menubar .item:hover{background:var(--gold);color:#fff}
.menubar .item u{text-decoration:underline}

/* Toolbar (icon strip) */
.toolbar{
  display:flex;align-items:center;gap:2px;
  padding:4px 4px;
  background:var(--panel);
  border-bottom:1px solid var(--panel-shadow);
}
.toolbar .tool-btn{
  width:24px;height:24px;
  background:var(--panel);
  border-top:1px solid #fff;
  border-left:1px solid #fff;
  border-right:1px solid var(--panel-shadow);
  border-bottom:1px solid var(--panel-shadow);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--ink);font-size:13px;
}
.toolbar .tool-btn:hover{background:#e0dcd3}

/* Window body */
.win-body{
  flex:1;overflow:auto;
  background:var(--paper-soft);
  color:var(--ink);
  position:relative;
  display:flex;flex-direction:column;
  min-height:0;
}
.win-body.classic{background:var(--paper-soft)}
.win-body.cream {background:var(--paper)}
.win-body.dark  {background:#000;color:#0f0}
.win-body.terminal{
  background:#000;color:var(--term-green);
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  position:relative;
}
.win-body.terminal::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 3px);
}
.win-body.print{
  background:#fff;
  font-family:'Times New Roman',serif;color:#111;
}

/* Status bar */
.statusbar{
  height:22px;
  background:var(--panel);
  border-top:1px solid #fff;
  display:flex;align-items:stretch;
  padding:2px;gap:2px;
  font-family:'Hanken Grotesk',sans-serif;font-size:11px;
  color:var(--ink-soft);flex-shrink:0;
  font-weight:600;letter-spacing:.02em;
}
.statusbar .cell{
  border-top:1px solid var(--panel-shadow);
  border-left:1px solid var(--panel-shadow);
  border-right:1px solid #fff;
  border-bottom:1px solid #fff;
  padding:2px 8px;height:100%;
  display:flex;align-items:center;
  flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.statusbar .cell.fixed{flex:0 0 auto}
.statusbar .cell .good{color:var(--good)}
.statusbar .cell .bad{color:var(--error)}
.statusbar .cell .acc{color:var(--gold-deep);font-weight:700}
.statusbar .cell .pip{
  display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--good);margin-right:6px;vertical-align:1px;
  box-shadow:0 0 4px var(--good);
  animation:pip-pulse 2s ease-in-out infinite;
}
@keyframes pip-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(31,158,60,.7)}
  50%{box-shadow:0 0 0 4px rgba(31,158,60,0)}
}

/* Resize handle */
.resize-handle{
  position:absolute;bottom:1px;right:1px;
  width:14px;height:14px;
  cursor:se-resize;
  background:
    linear-gradient(135deg, transparent 0 6px, var(--panel-shadow) 6px 7px, transparent 7px 9px, var(--panel-shadow) 9px 10px, transparent 10px 12px, var(--panel-shadow) 12px 13px, transparent 13px);
}
.win.maximized .resize-handle{display:none}

/* ============================================================
   TASKBAR
   ============================================================ */
.taskbar{
  position:absolute;left:0;right:0;bottom:0;
  height:var(--task-h);
  background:var(--panel);
  border-top:1px solid #fff;
  display:flex;align-items:center;
  padding:2px;gap:3px;z-index:100;
  box-shadow:0 -1px 0 #b8b4ab inset;
}
.start-btn{
  background:var(--panel);
  border-top:1px solid #fff;
  border-left:1px solid #fff;
  border-right:1px solid var(--panel-deep);
  border-bottom:1px solid var(--panel-deep);
  height:24px;padding:0 8px 0 6px;
  font-family:'Hanken Grotesk',sans-serif;
  font-weight:800;font-size:12px;
  display:flex;align-items:center;gap:5px;
  cursor:pointer;color:var(--ink);
  letter-spacing:.02em;
  box-shadow:var(--bezel-flat);
}
.start-btn:hover{background:#e0dcd3}
.start-btn:active,
.start-btn.open{
  border-top-color:var(--panel-deep);
  border-left-color:var(--panel-deep);
  border-right-color:#fff;
  border-bottom-color:#fff;
  padding:1px 7px 0 7px;
}
.start-btn .start-glyph{
  display:inline-flex;align-items:center;justify-content:center;
  width:16px;height:16px;
  background:linear-gradient(180deg, var(--gold-light) 0%, var(--gold) 60%, var(--gold-deep) 100%);
  color:#fff;font-size:11px;font-weight:900;
  border:1px solid var(--gold-shadow);
  font-family:Arial,sans-serif;
  font-style:italic;
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.5);
}

.quick-launch{
  display:flex;gap:1px;
  border-right:1px solid var(--panel-shadow);
  border-left:1px solid #fff;
  padding-right:4px;padding-left:4px;
  margin-left:2px;
  height:24px;align-items:center;
}
.ql-btn{
  width:22px;height:22px;
  background:var(--panel);
  border:1px solid transparent;
  display:flex;align-items:center;justify-content:center;
  padding:0;cursor:pointer;color:var(--ink);
}
.ql-btn:hover{
  border-top-color:#fff;
  border-left-color:#fff;
  border-right-color:var(--panel-shadow);
  border-bottom-color:var(--panel-shadow);
}
.ql-btn:active{
  border-top-color:var(--panel-shadow);
  border-left-color:var(--panel-shadow);
  border-right-color:#fff;
  border-bottom-color:#fff;
}
.ql-btn svg{width:14px;height:14px}

.task-windows{
  flex:1;display:flex;gap:2px;
  overflow:hidden;margin-left:4px;
}
.task-win{
  background:var(--panel);
  border-top:1px solid #fff;
  border-left:1px solid #fff;
  border-right:1px solid var(--panel-deep);
  border-bottom:1px solid var(--panel-deep);
  height:24px;padding:0 8px;
  display:flex;align-items:center;gap:5px;
  font-family:'Hanken Grotesk',sans-serif;
  font-size:12px;font-weight:600;color:var(--ink);
  cursor:pointer;
  min-width:140px;max-width:220px;
  flex:0 1 auto;
  overflow:hidden;white-space:nowrap;letter-spacing:.01em;
  box-shadow:var(--bezel-flat);
}
.task-win.active{
  border-top-color:var(--panel-deep);
  border-left-color:var(--panel-deep);
  border-right-color:#fff;
  border-bottom-color:#fff;
  background:
    linear-gradient(45deg, transparent 25%, rgba(0,0,0,.06) 25%, rgba(0,0,0,.06) 50%, transparent 50%, transparent 75%, rgba(0,0,0,.06) 75%) 0 0/4px 4px,
    var(--panel);
  padding:1px 7px 0 9px;
}
.task-win .ti{display:inline-flex;width:14px;height:14px;align-items:center;justify-content:center;flex-shrink:0}
.task-win .ti svg{width:14px;height:14px}
.task-win .lbl{overflow:hidden;text-overflow:ellipsis}

.tray{
  display:flex;align-items:stretch;
  border:1px solid var(--panel-shadow);
  border-top-color:var(--panel-shadow);
  border-left-color:var(--panel-shadow);
  border-right-color:#fff;
  border-bottom-color:#fff;
  height:22px;padding:0;background:var(--panel);
  margin-right:2px;
}
.tray-item{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;padding:2px 7px;
  display:flex;align-items:center;gap:4px;
  border-right:1px solid var(--panel-shadow);
  color:var(--ink);
  cursor:default;
}
.tray-item:last-child,.tray-clock{border-right:none}
.tray-item .pip{
  display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 4px var(--gold);
  animation:pip-pulse 2s ease-in-out infinite;
}
.tray-item .pip.btc{background:var(--gold);box-shadow:0 0 4px var(--gold)}
.tray-item .pip.eth{background:#a3b3ff;box-shadow:0 0 4px #a3b3ff}
.tray-clock{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;
  font-weight:600;color:var(--ink);padding:2px 8px;
  white-space:nowrap;display:flex;align-items:center;
}

/* Number flash on update */
.flash-up{animation:flash-up .6s ease-out}
@keyframes flash-up{
  0%{background:rgba(247,147,26,.35)}
  100%{background:transparent}
}

/* ============================================================
   START MENU
   ============================================================ */
.start-menu{
  position:absolute;
  bottom:var(--task-h);left:0;
  width:240px;max-height:520px;
  background:var(--panel);
  border-top:1px solid #fff;
  border-left:1px solid #fff;
  border-right:1px solid var(--panel-deep);
  border-bottom:1px solid var(--panel-deep);
  z-index:200;display:flex;
  box-shadow:2px 2px 6px rgba(0,0,0,.5), var(--bezel-flat);
  animation:menu-pop .13s ease-out;
}
@keyframes menu-pop{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}
.start-side{
  width:30px;
  background:linear-gradient(180deg, var(--gold) 0%, var(--gold-deep) 60%, var(--gold-copper) 100%);
  display:flex;align-items:flex-end;justify-content:center;
  padding-bottom:14px;position:relative;
  border-right:1px solid var(--gold-shadow);
}
.start-side::after{
  content:"";position:absolute;top:0;bottom:0;right:0;width:1px;background:rgba(255,255,255,.25);
}
.start-side-text{
  color:#fff;font-weight:900;font-size:16px;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  letter-spacing:.06em;
  font-family:'Hanken Grotesk',sans-serif;
  text-shadow:1px 1px 0 rgba(0,0,0,.5);
  text-transform:uppercase;
}
.start-items{
  flex:1;background:var(--paper-soft);
  padding:2px 0;overflow-y:auto;
}
.start-item{
  display:flex;align-items:center;gap:8px;
  padding:5px 10px;
  cursor:pointer;font-size:13px;color:var(--ink);
  font-family:'Hanken Grotesk',sans-serif;font-weight:500;
}
.start-item:hover{background:var(--gold);color:#fff}
.start-item .ti{
  display:inline-flex;width:18px;height:18px;
  align-items:center;justify-content:center;flex-shrink:0;
}
.start-item .ti svg{width:18px;height:18px}
.start-item.sep{
  border-top:1px solid var(--panel-shadow);
  border-bottom:1px solid #fff;
  padding:3px 10px;color:var(--ink-faint);font-size:10px;
  font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  pointer-events:none;background:var(--paper-deep);
}

/* ============================================================
   APP CONTENT — COMMON STYLES
   ============================================================ */
.app-padded{padding:12px}
.app-h2{
  font-family:'Hanken Grotesk',sans-serif;
  font-size:11px;font-weight:800;color:var(--ink-soft);
  text-transform:uppercase;letter-spacing:.06em;
  margin:0 0 8px;
}
.app-row{
  display:flex;justify-content:space-between;
  padding:5px 8px;
  border-bottom:1px dotted var(--rule);
  font-size:13px;
}
.app-row .k{color:var(--ink-soft);font-family:'IBM Plex Mono',monospace;font-size:12px}
.app-row .v{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink);text-align:right}
.app-row .v.acc{color:var(--gold-deep);font-weight:700}

/* Panels (sunken cards) */
.panel-sunken{
  background:#fff;
  border-top:1px solid var(--panel-shadow);
  border-left:1px solid var(--panel-shadow);
  border-right:1px solid #fff;
  border-bottom:1px solid #fff;
  box-shadow:inset 1px 1px 0 var(--panel-deep);
  padding:8px 10px;
}
.panel-raised{
  background:var(--panel);
  border-top:1px solid #fff;
  border-left:1px solid #fff;
  border-right:1px solid var(--panel-shadow);
  border-bottom:1px solid var(--panel-shadow);
  padding:8px 10px;
}

/* Buttons */
.btn{
  background:var(--panel);
  border-top:1px solid #fff;
  border-left:1px solid #fff;
  border-right:1px solid var(--panel-deep);
  border-bottom:1px solid var(--panel-deep);
  padding:4px 14px;
  font-family:'Hanken Grotesk',sans-serif;
  font-size:12px;font-weight:600;color:var(--ink);
  cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  letter-spacing:.02em;min-height:24px;
  box-shadow:var(--bezel-flat);
  transition:transform .04s ease;
}
.btn:hover{background:#e0dcd3}
.btn:active{
  border-top-color:var(--panel-deep);
  border-left-color:var(--panel-deep);
  border-right-color:#fff;
  border-bottom-color:#fff;
  padding:5px 13px 3px 15px;
}
.btn:disabled{opacity:.55;cursor:not-allowed;color:var(--panel-shadow)}
.btn:disabled:active{padding:4px 14px;border-top-color:#fff;border-left-color:#fff;border-right-color:var(--panel-deep);border-bottom-color:var(--panel-deep)}

.btn.primary{
  background:linear-gradient(180deg, var(--gold-light) 0%, var(--gold) 35%, var(--gold-deep) 100%);
  color:#fff;font-weight:800;
  border-top:1px solid var(--gold-light);
  border-left:1px solid var(--gold-light);
  border-right:1px solid var(--gold-shadow);
  border-bottom:1px solid var(--gold-shadow);
  text-shadow:0 1px 0 rgba(0,0,0,.4);
  position:relative;
  box-shadow:var(--bezel-flat), inset 0 0 6px rgba(255,255,255,.2);
}
.btn.primary:hover{
  filter:brightness(1.08);
}
.btn.primary:active{
  filter:brightness(.95);
}
.btn.primary::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(110deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%);
  pointer-events:none;
  opacity:.6;
}

.btn.full{width:100%}
.btn.lg{font-size:13px;padding:8px 18px;min-height:32px}
.btn.danger{
  background:linear-gradient(180deg, #f08080 0%, #c14242 60%, #821c1c 100%);
  color:#fff;font-weight:800;
  border-top:1px solid #f8b0b0;
  border-left:1px solid #f8b0b0;
  border-right:1px solid #5a0e0e;
  border-bottom:1px solid #5a0e0e;
}

/* Inputs */
.tinput{
  background:#fff;
  border-top:1px solid var(--panel-shadow);
  border-left:1px solid var(--panel-shadow);
  border-right:1px solid #fff;
  border-bottom:1px solid #fff;
  padding:5px 8px;
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  width:100%;color:var(--ink);
  box-shadow:inset 1px 1px 0 var(--panel-deep);
}
.tinput:focus{
  outline:1px dotted var(--ink-soft);outline-offset:-3px;
}

/* ============================================================
   APP-SPECIFIC PANELS
   ============================================================ */

/* WALLET — gold "pending yield" hero card */
.wallet-hero{
  position:relative;overflow:hidden;
  background:linear-gradient(125deg, var(--gold-light) 0%, var(--gold) 35%, var(--gold-deep) 80%, var(--gold-copper) 100%);
  color:#fff;
  padding:14px 18px;margin-bottom:12px;
  border-top:1px solid var(--gold-light);
  border-left:1px solid var(--gold-light);
  border-right:1px solid var(--gold-shadow);
  border-bottom:1px solid var(--gold-shadow);
  box-shadow:inset 0 0 14px rgba(255,200,90,.15);
}
.wallet-hero::before{
  content:"";position:absolute;
  right:-30px;bottom:-60px;
  font-size:200px;font-weight:900;font-style:italic;
  font-family:Arial,sans-serif;
  opacity:.16;color:#fff;
  text-shadow:0 0 12px rgba(0,0,0,.3);
}
.wallet-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(110deg, transparent 28%, rgba(255,255,255,.45) 38%, transparent 50%);
  pointer-events:none;
  animation:hero-sheen 7s ease-in-out infinite;
}
@keyframes hero-sheen{
  0%,100%{transform:translateX(-30%);opacity:.45}
  50%{transform:translateX(30%);opacity:.85}
}
.wallet-hero .lbl{
  font-family:'Hanken Grotesk',sans-serif;font-weight:800;
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  opacity:.92;margin-bottom:6px;position:relative;z-index:1;
  text-shadow:0 1px 0 rgba(0,0,0,.3);
}
.wallet-hero .val{
  font-family:'IBM Plex Mono',monospace;
  font-size:30px;font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:-0.01em;line-height:1;
  position:relative;z-index:1;
  text-shadow:0 1px 0 rgba(0,0,0,.4);
}
.wallet-hero .sub{
  font-size:11px;opacity:.92;margin-top:6px;
  font-family:'IBM Plex Mono',monospace;
  position:relative;z-index:1;
}

.bal-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:6px;
  margin-bottom:10px;
}
.bal-cell{
  background:var(--panel);
  border-top:1px solid #fff;
  border-left:1px solid #fff;
  border-right:1px solid var(--panel-shadow);
  border-bottom:1px solid var(--panel-shadow);
  padding:8px 10px;
}
.bal-cell .k{
  font-family:'Hanken Grotesk',sans-serif;font-weight:700;
  font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:6px;
}
.bal-cell .v{
  font-family:'IBM Plex Mono',monospace;
  font-size:16px;font-weight:600;color:var(--ink);
  font-variant-numeric:tabular-nums;text-align:right;
}
.bal-cell .v.acc{color:var(--gold-deep)}
.bal-cell .v.good{color:var(--good)}
.bal-cell .v.bad{color:var(--error)}

.wallet-actions{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.wallet-actions .btn{flex:1;min-width:120px}

/* TERMINAL */
.terminal-output{
  flex:1;padding:8px 12px;overflow:auto;
  white-space:pre-wrap;word-break:break-word;
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  line-height:1.45;color:var(--term-green);background:#000;
  position:relative;z-index:1;
}
.terminal-output .ok{color:var(--term-green)}
.terminal-output .err{color:#f55}
.terminal-output .info{color:#5af}
.terminal-output .acc{color:var(--term-amber)}
.terminal-output .dim{color:#5a8a4a;opacity:.7}
.terminal-input-row{
  display:flex;align-items:center;gap:6px;
  padding:5px 12px;background:#000;
  border-top:1px solid var(--term-green);position:relative;z-index:1;
}
.terminal-input-row .prompt{color:var(--term-green);font-family:'IBM Plex Mono',monospace}
.terminal-input-row input{
  flex:1;background:transparent;border:none;outline:none;
  color:var(--term-green);font:inherit;
  caret-color:var(--term-green);
}

/* CRT screen for halving / hashrate / tax displays */
.crt-screen{
  background:#1a0e00;
  border-top:1px solid #5a3000;
  border-left:1px solid #5a3000;
  border-right:1px solid #fff;
  border-bottom:1px solid #fff;
  padding:14px 16px;text-align:center;
  position:relative;overflow:hidden;
  box-shadow:inset 0 0 16px rgba(0,0,0,.6);
}
.crt-screen::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg, rgba(0,0,0,.25) 0 1px, transparent 1px 3px);
}
.crt-screen::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at 50% 30%, transparent 0%, rgba(0,0,0,.4) 100%);
}
.crt-screen > *{position:relative;z-index:1}
.crt-screen .live{
  position:absolute;top:6px;left:10px;
  font-family:'IBM Plex Mono',monospace;font-size:9px;
  letter-spacing:.12em;color:var(--gold-light);
  display:flex;align-items:center;gap:4px;
}
.crt-screen .live::before{
  content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 6px var(--gold);
  animation:live-pulse 1.4s ease-in-out infinite;
}
@keyframes live-pulse{0%,100%{opacity:.9}50%{opacity:.3}}
.crt-screen .lbl{
  font-family:'IBM Plex Mono',monospace;
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);opacity:.75;margin-bottom:4px;
}
.crt-screen .val{
  font-family:'IBM Plex Mono',monospace;
  font-size:34px;font-weight:700;color:var(--gold);
  letter-spacing:.04em;line-height:1.1;
  text-shadow:0 0 12px rgba(247,147,26,.6), 0 0 2px rgba(247,147,26,.9);
}
.crt-screen .sub{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;color:var(--gold);opacity:.85;margin-top:4px;
}
.crt-screen .green{color:var(--term-green);text-shadow:0 0 10px rgba(37,224,69,.5)}
.crt-screen .red  {color:#f55;text-shadow:0 0 10px rgba(255,80,80,.5)}

/* Pizza hero — black card with glowing pizza */
.pizza-hero{
  background:#1a0e00;color:#fff;padding:18px 16px;text-align:center;
  border-top:1px solid #5a3000;
  border-left:1px solid #5a3000;
  border-right:1px solid #fff;
  border-bottom:1px solid #fff;
  margin-bottom:10px;position:relative;overflow:hidden;
}
.pizza-hero .pie{
  font-size:50px;line-height:1;display:inline-block;
  filter:drop-shadow(0 0 14px rgba(247,147,26,.55));
  margin-bottom:8px;
  animation:pie-glow 3s ease-in-out infinite;
}
@keyframes pie-glow{
  0%,100%{filter:drop-shadow(0 0 12px rgba(247,147,26,.45))}
  50%{filter:drop-shadow(0 0 22px rgba(247,147,26,.85))}
}
.pizza-hero .lbl{
  font-family:'Hanken Grotesk',sans-serif;font-weight:800;
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:#fff8e8;margin-bottom:6px;
}
.pizza-hero .val-pill{
  display:inline-block;
  background:linear-gradient(180deg, var(--gold-light), var(--gold), var(--gold-deep));
  color:#3a1a00;font-family:'IBM Plex Mono',monospace;
  font-size:13px;font-weight:700;
  padding:4px 12px;letter-spacing:.04em;
  border:1px solid var(--gold-shadow);
}
.pizza-tale{
  padding:10px 12px;background:var(--paper);
  border:1px solid var(--rule);
  font-family:'Inter',sans-serif;font-size:13px;line-height:1.55;
  color:var(--ink);margin-bottom:10px;
}

/* Lost & Found / Burned / generic ledger table */
.ledger-table{
  width:100%;border-collapse:collapse;font-family:'IBM Plex Mono',monospace;font-size:12px;
}
.ledger-table thead th{
  background:var(--panel);
  border-top:1px solid #fff;
  border-left:1px solid #fff;
  border-right:1px solid var(--panel-shadow);
  border-bottom:1px solid var(--panel-shadow);
  padding:5px 10px;
  font-family:'Hanken Grotesk',sans-serif;
  font-size:10.5px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ink-soft);
  text-align:left;
}
.ledger-table tbody td{
  padding:5px 10px;border-bottom:1px solid var(--rule-soft);
  background:#fff;color:var(--ink);
}
.ledger-table tbody tr:nth-child(even) td{background:var(--paper)}
.ledger-table tbody tr:hover td{background:var(--paper-deep)}
.ledger-table tbody tr.highlight td{
  background:var(--gold-copper);color:#fff;font-weight:700;
}
.ledger-table tbody tr.highlight td .acc{color:#ffd9a8}
.ledger-table tbody td.acc{color:var(--gold-deep);font-weight:700}
.ledger-table tbody td.bad{color:var(--error);font-weight:700}
.ledger-table tbody td.good{color:var(--good);font-weight:700}
.ledger-table tbody td.num{text-align:right;font-variant-numeric:tabular-nums}
.ledger-table tbody td.right{text-align:right}

/* SOS Stats */
.stats-hero{
  text-align:center;padding:18px 16px;
  background:var(--paper);
  border-top:1px solid var(--panel-shadow);
  border-left:1px solid var(--panel-shadow);
  border-right:1px solid #fff;
  border-bottom:1px solid #fff;
  box-shadow:inset 1px 1px 0 var(--panel-deep);
  margin-bottom:10px;
}
.stats-hero .num{
  font-family:'Hanken Grotesk',sans-serif;
  font-size:28px;font-weight:900;color:var(--ink);
  letter-spacing:.02em;line-height:1.1;
  text-shadow:1px 1px 0 #fff, 2px 2px 0 var(--panel-shadow);
}
.stats-hero .num small{font-size:.65em;font-weight:600;color:var(--ink-soft);margin-left:4px}
.stats-hero .pill{
  display:inline-block;
  background:#1a0e00;color:var(--gold);
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;letter-spacing:.08em;padding:2px 10px;margin-top:6px;
  border:1px solid var(--gold-shadow);
  text-shadow:0 0 6px rgba(247,147,26,.6);
}
.stats-bar{
  height:14px;display:flex;
  border:1px solid var(--panel-shadow);background:var(--paper);
  margin:6px 0;
}
.stats-bar .seg{height:100%;border-right:1px solid rgba(0,0,0,.3)}
.stats-bar .seg:last-child{border-right:none}
.stats-bar-legend{
  display:flex;flex-wrap:wrap;gap:10px;
  font-family:'Hanken Grotesk',sans-serif;font-size:10px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);
  font-weight:700;
}
.stats-bar-legend .lg{display:flex;align-items:center;gap:5px}
.stats-bar-legend .lg .sw{display:inline-block;width:12px;height:12px;border:1px solid var(--ink-soft)}

/* MINT NODE — tier picker */
.mint-tabs{
  display:grid;grid-template-columns:repeat(5,1fr);gap:0;
  background:var(--panel);
  margin-bottom:10px;
}
.mint-tab{
  background:var(--panel);
  border-top:1px solid #fff;
  border-left:1px solid #fff;
  border-right:1px solid var(--panel-shadow);
  border-bottom:1px solid var(--panel-shadow);
  padding:6px 4px;
  display:flex;flex-direction:column;align-items:center;gap:3px;
  font-family:'Hanken Grotesk',sans-serif;
  font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  color:var(--ink-soft);
  cursor:pointer;transition:background .08s;
}
.mint-tab:hover{background:#e8e2d6;color:var(--ink)}
.mint-tab.active{
  border-top-color:var(--panel-shadow);
  border-left-color:var(--panel-shadow);
  border-right-color:#fff;
  border-bottom-color:#fff;
  background:linear-gradient(180deg, var(--gold-light) 0%, var(--gold) 60%, var(--gold-deep) 100%);
  color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.4);
}
.mint-tab .ico-svg{width:22px;height:22px}

.mint-detail{
  display:grid;grid-template-columns:1fr 1.4fr;gap:10px;
  margin-bottom:10px;
}
.mint-art{
  background:#000;
  border:1px solid var(--panel-deep);
  box-shadow:inset 1px 1px 0 var(--panel-shadow);
  overflow:hidden;
}
.mint-art svg{width:100%;height:auto;display:block}
.mint-spec-head{
  background:var(--panel);
  border-top:1px solid #fff;border-left:1px solid #fff;
  border-right:1px solid var(--panel-shadow);border-bottom:1px solid var(--panel-shadow);
  padding:5px 8px;
  font-family:'Hanken Grotesk',sans-serif;
  font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);
}
.mint-progress{
  height:14px;background:var(--paper);
  border:1px solid var(--panel-shadow);margin-top:2px;
  position:relative;overflow:hidden;
}
.mint-progress .bar{
  height:100%;
  background:linear-gradient(90deg, var(--gold-light), var(--gold), var(--gold-deep));
  transition:width .3s ease;
}

/* WHITEPAPER print page */
.paper-body{
  font-family:'Times New Roman','Source Serif Pro',serif;
  font-size:13px;line-height:1.55;color:#111;
  padding:24px 36px;background:#fff;
  flex:1;overflow:auto;
}
.paper-body h1{font-size:22px;text-align:center;margin:0 0 4px;font-family:'Times New Roman',serif;letter-spacing:.06em;text-transform:uppercase;font-weight:bold}
.paper-body h2{font-size:14px;margin:18px 0 6px;font-weight:bold}
.paper-body .meta{
  text-align:center;font-size:12px;font-style:italic;
  margin-bottom:18px;color:#444;
}
.paper-body p{margin:0 0 10px;text-align:justify}
.paper-body .abstract{
  margin:14px 24px 18px;padding:10px 14px;
  background:var(--paper);
  border:1px dashed var(--gold-deep);
  font-size:12.5px;font-family:'IBM Plex Mono',monospace;
  line-height:1.5;
}
.paper-body .abstract b{color:var(--ink)}
.paper-body table.lost-table{
  width:100%;border-collapse:collapse;font-family:'IBM Plex Mono',monospace;font-size:11.5px;
  margin:8px 0;
}
.paper-body table.lost-table th{
  background:var(--panel);padding:5px 8px;border:1px solid var(--panel-shadow);
  font-family:'Hanken Grotesk',sans-serif;font-size:10.5px;font-weight:800;text-transform:uppercase;
  color:var(--ink);text-align:left;letter-spacing:.04em;
}
.paper-body table.lost-table td{padding:5px 8px;border:1px solid var(--rule);background:#fff}
.paper-body code{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;
  background:#fff8ee;padding:1px 4px;border:1px solid var(--rule);
}

/* IRC / chat */
.chat-feed{
  flex:1;overflow:auto;padding:8px 12px;
  background:#000;color:var(--gold-light);
  font-family:'IBM Plex Mono',monospace;font-size:13px;line-height:1.4;
  position:relative;
}
.chat-feed::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 3px);
}
.chat-msg{margin-bottom:2px;position:relative;z-index:1}
.chat-msg .ts{color:#9a8a6a;margin-right:6px;font-size:12px}
.chat-msg .nick{color:var(--gold);font-weight:700;margin-right:6px}
.chat-msg .nick.you{color:#5af}
.chat-msg .system{color:var(--term-amber);font-style:italic}

/* Notepad */
.notepad-toolbar{
  display:flex;gap:2px;padding:3px 6px;
  background:var(--panel);
  border-bottom:1px solid var(--panel-shadow);
}
.notepad-body{
  flex:1;background:#fff;
  padding:14px 18px;
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  line-height:1.6;white-space:pre-wrap;overflow:auto;color:#222;
}
.notepad-body .quote{
  color:var(--gold-deep);font-style:italic;
  border-left:3px solid var(--gold);padding:6px 12px;margin:8px 0;
  background:var(--paper);
}

/* ABOUT — official splash */
.about-splash{
  display:flex;align-items:center;gap:14px;
  padding:14px 16px;
  background:var(--paper);
  border-bottom:1px solid var(--panel-shadow);
}
.about-splash .glyph{
  width:64px;height:64px;
  background:radial-gradient(circle at 35% 30%, var(--gold-light) 0%, var(--gold) 45%, var(--gold-deep) 100%);
  border:1px solid var(--gold-shadow);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-family:Arial,sans-serif;font-style:italic;font-weight:900;font-size:38px;
  text-shadow:0 1px 0 rgba(0,0,0,.4);
  flex-shrink:0;
  box-shadow:inset 2px 2px 0 rgba(255,255,255,.45), inset -2px -2px 0 rgba(0,0,0,.18);
  animation:about-coin 7s ease-in-out infinite;
}
@keyframes about-coin{
  0%,100%{transform:rotate(-2deg)}
  50%{transform:rotate(2deg)}
}
.about-splash h2{
  font-family:'Hanken Grotesk',sans-serif;
  font-size:22px;font-weight:900;color:var(--ink);
  margin:0;letter-spacing:.02em;
}
.about-splash .ver{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;color:var(--ink-soft);margin-top:2px;
}

/* Modal (alert dialogs etc) */
.modal-backdrop{
  position:fixed;inset:0;
  background:rgba(0,0,0,.35);
  display:flex;align-items:center;justify-content:center;
  z-index:300;padding:20px;
}

/* Toast */
.toast-wrap{
  position:absolute;bottom:calc(var(--task-h) + 12px);right:14px;
  display:flex;flex-direction:column;gap:6px;z-index:250;pointer-events:none;
}
.toast{
  background:var(--panel);
  border-top:1px solid #fff;border-left:1px solid #fff;
  border-right:1px solid var(--panel-deep);border-bottom:1px solid var(--panel-deep);
  padding:8px 14px 8px 6px;
  font-family:'Hanken Grotesk',sans-serif;font-size:12px;font-weight:600;
  min-width:240px;max-width:380px;
  pointer-events:auto;
  display:flex;align-items:center;gap:8px;
  box-shadow:2px 2px 0 rgba(0,0,0,.3), var(--bezel-flat);
  animation:toast-in .18s ease both;
}
@keyframes toast-in{from{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}
.toast::before{
  content:"";display:inline-block;width:6px;align-self:stretch;
  background:var(--gold);flex-shrink:0;
}
.toast.ok::before {background:var(--good)}
.toast.err::before{background:var(--error)}
.toast.info::before{background:var(--gold)}

/* Tooltip */
.tip{
  position:fixed;z-index:400;
  background:#fffaae;border:1px solid var(--ink);
  padding:3px 7px;font-family:'Hanken Grotesk',sans-serif;font-size:11px;color:var(--ink);
  pointer-events:none;
  box-shadow:1px 1px 0 var(--panel-deep);
}

/* tx-pending blink */
.tx-pending{animation:txblink 1s linear infinite}
@keyframes txblink{0%,100%{opacity:1}50%{opacity:.6}}

/* ============================================================
   AMBIENT LIFE — animations so the desktop "breathes"
   ============================================================ */

/* Window close animation */
.win.closing{
  animation:win-close .18s cubic-bezier(.3,.0,.7,.0) forwards;
  pointer-events:none;
  transform-origin:center;
}
@keyframes win-close{
  0%   {transform:scale(1);opacity:1}
  100% {transform:scale(.78) translateY(14px);opacity:0}
}

/* Button press ripple */
.btn{position:relative;overflow:hidden}
.btn .ripple{
  position:absolute;border-radius:50%;
  pointer-events:none;
  background:rgba(255,255,255,.45);
  transform:scale(0);
  animation:ripple-out .55s ease-out;
}
@keyframes ripple-out{
  from{transform:scale(0);opacity:.6}
  to{transform:scale(3);opacity:0}
}
.btn.primary .ripple{background:rgba(255,255,255,.55)}

/* Icon click bounce */
.dt-icon.opening{animation:dt-launch .35s ease-out}
@keyframes dt-launch{
  0%{transform:scale(1)}
  35%{transform:scale(.9);background:rgba(247,147,26,.35)}
  70%{transform:scale(1.05)}
  100%{transform:scale(1);background:transparent}
}

/* Random rare CRT flicker on terminal-style bodies */
.win-body.terminal,
.crt-screen{
  animation:crt-flicker 7s steps(1) infinite;
}
@keyframes crt-flicker{
  0%, 4%, 7%, 100%   {filter:none}
  5%                  {filter:brightness(1.18) contrast(.97)}
  6%                  {filter:brightness(.85) contrast(1.05)}
  82%                 {filter:brightness(1.08)}
  83%                 {filter:none}
}

/* CRT scanline drift */
.win-body.terminal::before,
.crt-screen::before{
  animation:crt-scan 8s linear infinite;
}
@keyframes crt-scan{
  0%   {background-position:0 0}
  100% {background-position:0 24px}
}

/* Live ticker drift on tray */
.tray-clock{
  position:relative;
}
.tray-clock::before{
  content:"";display:inline-block;
  width:6px;height:6px;border-radius:50%;background:var(--good);
  margin-right:5px;vertical-align:middle;
  animation:clock-tick 1s steps(1) infinite;
  box-shadow:0 0 4px var(--good);
}
@keyframes clock-tick{
  0%   {opacity:1}
  50%  {opacity:.25}
  100% {opacity:1}
}

/* Halving countdown digit pulse */
.crt-screen .val{
  animation:crt-glow 4s ease-in-out infinite;
}
@keyframes crt-glow{
  0%, 100% {text-shadow:0 0 12px rgba(247,147,26,.55), 0 0 2px rgba(247,147,26,.85)}
  50%      {text-shadow:0 0 20px rgba(247,147,26,.85), 0 0 4px rgba(247,147,26,1)}
}
.crt-screen .green{animation:crt-glow-green 4s ease-in-out infinite}
@keyframes crt-glow-green{
  0%, 100% {text-shadow:0 0 10px rgba(37,224,69,.45)}
  50%      {text-shadow:0 0 18px rgba(37,224,69,.85)}
}

/* Wallet hero gold reflection (existing — boost) */
.wallet-hero::after{
  animation:hero-sheen 6s ease-in-out infinite;
}

/* Stats hero subtle scale on render */
.stats-hero{animation:stats-rise .35s ease-out}
@keyframes stats-rise{
  from{transform:translateY(6px);opacity:0}
  to  {transform:translateY(0);opacity:1}
}

/* About coin wobble — make it more present */
.about-splash .glyph{
  animation:about-coin 5s ease-in-out infinite, coin-shimmer 3s ease-in-out infinite;
}
@keyframes coin-shimmer{
  0%,100% {box-shadow:inset 2px 2px 0 rgba(255,255,255,.45), inset -2px -2px 0 rgba(0,0,0,.18)}
  50%     {box-shadow:inset 2px 2px 0 rgba(255,255,255,.65), inset -2px -2px 0 rgba(0,0,0,.18), 0 0 16px rgba(247,147,26,.4)}
}

/* Mint tab hover lift */
.mint-tab{
  transition:background .08s, transform .12s, box-shadow .12s;
}
.mint-tab:hover:not(.active){
  transform:translateY(-1px);
}
.mint-tab.active{
  animation:tab-glow 3s ease-in-out infinite;
}
@keyframes tab-glow{
  0%, 100% {box-shadow:inset 0 0 0 transparent}
  50%      {box-shadow:inset 0 0 12px rgba(255,255,255,.25)}
}

/* Tray flash subtle */
.tray-item.flash-up{
  animation:tray-flash .8s ease-out;
}
@keyframes tray-flash{
  0%   {background:rgba(247,147,26,.55)}
  50%  {background:rgba(247,147,26,.25)}
  100% {background:transparent}
}

/* Pip pulse hierarchy — make BTC pip and ETH pip independent */
.tray-item .pip.btc{
  animation:btc-pulse 2.6s ease-in-out infinite;
}
.tray-item .pip.eth{
  animation:eth-pulse 2s ease-in-out infinite;
}
@keyframes btc-pulse{
  0%, 100% {box-shadow:0 0 4px var(--gold)}
  50%      {box-shadow:0 0 9px var(--gold), 0 0 14px rgba(247,147,26,.4)}
}
@keyframes eth-pulse{
  0%, 100% {box-shadow:0 0 4px #a3b3ff}
  50%      {box-shadow:0 0 9px #a3b3ff, 0 0 14px rgba(163,179,255,.4)}
}

/* Toast subtle drift */
.toast{animation:toast-in .22s cubic-bezier(.2,.7,.3,1.2) both}

/* Status bar pip — make a touch more alive */
.statusbar .pip{
  animation:pip-pulse 1.8s ease-in-out infinite;
}

/* Boot logo flicker, make slightly more frequent on first 2s */
.boot-logo{
  animation:
    boot-flicker 4.5s steps(20) infinite,
    boot-init-glow 1.4s ease-out forwards;
}
@keyframes boot-init-glow{
  0%   {filter:brightness(2) blur(2px)}
  100% {filter:brightness(1) blur(0)}
}

/* Boot lines fade-in stagger */
.boot-line{
  opacity:0;
  animation:boot-line-in .35s ease-out forwards;
}
.boot-line:nth-of-type(1){animation-delay:.1s}
.boot-line:nth-of-type(2){animation-delay:.4s}
.boot-line:nth-of-type(3){animation-delay:.7s}
.boot-line:nth-of-type(4){animation-delay:1.0s}
.boot-line:nth-of-type(5){animation-delay:1.3s}
.boot-line:nth-of-type(6){animation-delay:1.6s}
.boot-line:nth-of-type(7){animation-delay:1.9s}
@keyframes boot-line-in{
  0%   {opacity:0;transform:translateX(-6px)}
  100% {opacity:.88;transform:translateX(0)}
}

/* Pizza pie wobble */
.pizza-hero .pie{
  animation:pie-glow 3s ease-in-out infinite, pie-wobble 5s ease-in-out infinite;
}
@keyframes pie-wobble{
  0%, 100% {transform:rotate(-3deg)}
  50%      {transform:rotate(3deg)}
}

/* Gold sheen on titlebar — keep continuous */
.win.focused .titlebar::before{
  animation:gold-sheen 8s ease-in-out infinite;
}

/* CHAT feed: faint typing-cursor on last line */
.chat-feed .chat-msg:last-child{
  animation:chat-line-in .22s ease-out;
}
@keyframes chat-line-in{
  from{transform:translateY(4px);opacity:0}
  to  {transform:translateY(0);opacity:1}
}

/* Reduce motion respected */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation:none !important;
    transition:none !important;
  }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:760px){
  .quick-launch{display:none}
  .tray-item:not(.tray-clock){display:none}
  .start-menu{width:88vw}
  .dt-icons{grid-template-rows:repeat(auto-fill,76px);grid-auto-columns:78px}
  .win{
    top:0 !important;left:0 !important;
    width:100% !important;height:calc(100% - var(--task-h)) !important;
    border:none;box-shadow:none;
  }
  .resize-handle{display:none}
  .mint-detail{grid-template-columns:1fr}
  .mint-tabs{grid-template-columns:repeat(5,1fr)}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    transition-duration:0.01ms !important;
  }
}
