:root{
  --gold:#d9a031; --orange:#c8611d; --brown:#4a2c17; --cream:#f3e6c4;
  --avocado:#6b7a2a; --lcd:#b8c4a0; --ink:#1a1f14;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%}
body{
  background:
    repeating-linear-gradient(90deg,rgba(0,0,0,.05) 0 2px,transparent 2px 60px),
    radial-gradient(circle at 50% 30%,#6b4a2a,#2a170b 75%);
  font-family:'Righteous',sans-serif;color:var(--cream);
  display:flex;flex-direction:column;align-items:center;
  user-select:none;overflow-x:hidden;
}
#auth-status{position:fixed;top:8px;right:10px;font:12px 'Special Elite',monospace;color:var(--cream);opacity:.8;z-index:5}
#auth-status a{color:var(--gold)}
.stage{padding:18px 8px 6px;display:flex;justify-content:center;width:100%}
.device{
  width:min(400px,96vw);
  background:
    radial-gradient(circle at 30% 10%,rgba(255,255,255,.25),transparent 50%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E"),
    linear-gradient(160deg,var(--gold),#c78a22 60%,#a86c16);
  border-radius:28px 28px 40px 40px;
  padding:12px 14px 16px;
  box-shadow:0 30px 50px rgba(0,0,0,.6),inset 0 3px 0 rgba(255,255,255,.4),inset 0 -6px 0 rgba(0,0,0,.25);
  animation:drop .7s cubic-bezier(.2,1.4,.4,1) both;
}
@keyframes drop{from{transform:translateY(-40px) rotate(-3deg);opacity:0}}
.top-edge{display:flex;justify-content:space-between;align-items:center;padding:0 8px 8px}
.led{width:12px;height:12px;border-radius:50%;background:#5a1410;box-shadow:inset 0 2px 2px rgba(0,0,0,.5)}
.led.on{background:#ff3a20;box-shadow:0 0 10px #ff3a20,0 0 3px #fff inset}
.woodgrain{
  background:
    repeating-linear-gradient(92deg,rgba(0,0,0,.12) 0 1px,transparent 1px 7px),
    repeating-linear-gradient(88deg,rgba(255,220,160,.07) 0 3px,transparent 3px 17px),
    linear-gradient(180deg,#6e3f1c,#4a2810);
  border-radius:16px;padding:10px 12px 14px;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.6),0 1px 0 rgba(255,255,255,.3);
}
.brand{font-family:'Bowlby One',sans-serif;font-size:15px;letter-spacing:2px;color:var(--gold);text-shadow:0 1px 0 #000}
.brand span{font-family:'Righteous';font-size:10px;margin-left:6px;color:var(--cream);letter-spacing:3px}
.title-plate{font-family:'Bowlby One';font-size:30px;line-height:1;
  background:linear-gradient(180deg,#ffd36b,#e8742a 55%,#b53a12);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 0 #2a1408);letter-spacing:1px;margin:2px 0}
.sub{font-size:9px;letter-spacing:2px;color:var(--cream);opacity:.8;margin-bottom:8px}
.bezel{background:linear-gradient(#3b3b36,#26261f);border-radius:10px;padding:6px 10px 10px;box-shadow:inset 0 2px 4px #000,0 1px 0 rgba(255,255,255,.2)}
.icons{display:flex;justify-content:space-between;align-items:center;padding:0 2px 4px}
.bezel-label{font-size:8px;letter-spacing:2px;color:#c9c3a8}
.ico{font-size:16px;color:#55554a;transition:.2s}
.ico.lit{color:#ff6b3a;text-shadow:0 0 8px #ff6b3a}
#icoTrophy.lit{color:#ffd23a;text-shadow:0 0 8px #ffd23a}
.screen-wrap{position:relative;border-radius:4px;overflow:hidden;box-shadow:inset 0 0 0 2px #111}
#canvas{display:block;width:100%;height:auto;touch-action:none}
.glare{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.22) 32%,transparent 40%),
  linear-gradient(115deg,transparent 60%,rgba(255,255,255,.08) 63%,transparent 66%)}
.controls{display:flex;justify-content:space-between;align-items:center;padding:16px 4px 8px;gap:8px}
.dpad{position:relative;width:150px;height:150px;flex-shrink:0}
.btn{font-family:'Righteous';border:none;cursor:pointer;color:var(--cream);transition:transform .05s,box-shadow .05s}
.btn.round{position:absolute;width:52px;height:52px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#ff6a4a,#b5200f 70%);
  box-shadow:0 5px 0 #5c0d05,0 7px 8px rgba(0,0,0,.4);font-size:16px}
.btn.round:nth-child(even){background:radial-gradient(circle at 35% 30%,#555,#111 70%);box-shadow:0 5px 0 #000,0 7px 8px rgba(0,0,0,.4)}
.up{left:49px;top:0}.down{left:49px;bottom:5px}.left{left:0;top:47px}.right{right:0;top:47px}
.btn.pressed,.btn:active{transform:translateY(4px);box-shadow:0 1px 0 #000,0 2px 3px rgba(0,0,0,.4)!important}
.right-panel{display:flex;flex-direction:column;align-items:flex-end;gap:9px}
.grille{width:70px;height:28px;background:radial-gradient(circle,#3a2410 2px,transparent 2.5px) 0 0/8px 8px;cursor:help;opacity:.8}
.btn.start{background:linear-gradient(#3a3a32,#16160f);padding:10px 22px;border-radius:20px;font-size:14px;letter-spacing:2px;box-shadow:0 4px 0 #000,0 6px 8px rgba(0,0,0,.4)}
.btn.small{background:var(--avocado);padding:6px 10px;border-radius:6px;font-size:10px;letter-spacing:1px;box-shadow:0 3px 0 #3a4212}
.slide{display:flex;align-items:center;gap:5px;font-size:9px;color:var(--brown);cursor:pointer;letter-spacing:1px}
.track{width:34px;height:14px;background:#2a1a0c;border-radius:3px;position:relative;box-shadow:inset 0 2px 3px #000}
.knob{position:absolute;top:1px;left:2px;width:14px;height:12px;background:linear-gradient(#eee,#999);border-radius:2px;transition:left .12s}
.slide.on .knob{left:18px}
.battery{margin-top:6px;border-top:2px dashed rgba(74,44,23,.4);padding-top:6px;display:flex;justify-content:space-between;font-size:8px;color:var(--brown);letter-spacing:1px;cursor:pointer}
.battery:hover{color:#000}
.scorecard{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-1.5deg);
  width:min(340px,92vw);background:#f6f0dc;color:#222;font-family:'Special Elite',monospace;
  padding:18px 20px;box-shadow:0 20px 40px rgba(0,0,0,.6);z-index:10;
  background-image:repeating-linear-gradient(transparent 0 23px,rgba(0,0,120,.12) 23px 24px);
  filter:contrast(1.1) grayscale(.3);animation:unfold .3s ease-out}
@keyframes unfold{from{transform:translate(-50%,-50%) scaleY(.1)}}
.scorecard h2{margin:0;font-size:18px;text-align:center;letter-spacing:2px}
.scorecard .fine{font-size:10px;text-align:center;margin:2px 0 10px}
.scorecard table{width:100%;border-collapse:collapse;font-size:14px}
.scorecard td{padding:2px 4px;border-bottom:1px dotted #888}
.scorecard input{font-family:inherit;font-size:20px;width:80px;text-transform:uppercase;letter-spacing:6px;text-align:center;border:none;border-bottom:2px solid #222;background:transparent}
.scorecard button{font-family:inherit}
.close{position:absolute;top:4px;right:8px;background:none;border:none;font-size:22px;cursor:pointer}
footer{font:12px 'Special Elite',monospace;color:var(--cream);opacity:.75;padding:10px 0 18px}
footer a{color:var(--gold)}