:root{--tw:70px;--th:104px;--gap:6px;--ink:#F2EEE4;--tile:#141414;--blue:#0060FF}
@font-face{font-family:"Flap";src:url(flap700.woff2) format("woff2");font-weight:700;font-display:block}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:#050505;color:var(--ink);overflow:hidden}
body{font-family:"Flap","Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased}
.stage{min-height:100%;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--th)*.28);
  background:radial-gradient(ellipse 80% 70% at 50% 45%,#1a1b1e 0%,#0b0b0c 55%,#030303 100%)}
.housing{position:relative;padding:calc(var(--th)*.62) calc(var(--tw)*.62) calc(var(--th)*.4);border-radius:calc(var(--tw)*.22);
  background:linear-gradient(180deg,#3a3b3f 0%,#26272a 6%,#1c1d20 50%,#16171a 94%,#0e0e10 100%);
  box-shadow:0 0 0 1px #000,inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.8),0 30px 80px rgba(0,0,0,.75),0 6px 18px rgba(0,0,0,.6)}
.housing::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.35;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px)}
.screw{position:absolute;width:calc(var(--tw)*.2);height:calc(var(--tw)*.2);border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#d9d9d9 0%,#8a8a8a 35%,#3d3d3d 75%,#1a1a1a 100%);box-shadow:0 1px 2px rgba(0,0,0,.8),inset 0 0 0 1px rgba(0,0,0,.4)}
.screw::after{content:"";position:absolute;left:18%;right:18%;top:45%;height:12%;background:#202020;border-radius:1px;transform:rotate(var(--r,35deg))}
.screw.tl{left:calc(var(--tw)*.2);top:calc(var(--tw)*.2)}.screw.tr{right:calc(var(--tw)*.2);top:calc(var(--tw)*.2);--r:-20deg}
.screw.bl{left:calc(var(--tw)*.2);bottom:calc(var(--tw)*.2);--r:80deg}.screw.br{right:calc(var(--tw)*.2);bottom:calc(var(--tw)*.2);--r:10deg}
.plate{position:absolute;left:calc(var(--tw)*.62);right:calc(var(--tw)*.62);top:calc(var(--th)*.14);height:calc(var(--th)*.34);display:flex;align-items:center;justify-content:space-between;
  font-weight:700;letter-spacing:.18em;font-size:calc(var(--th)*.17);color:#9c9a94;text-shadow:0 -1px 0 rgba(0,0,0,.9),0 1px 0 rgba(255,255,255,.06)}
.plate em{font-style:normal;color:#5d5c58;padding:0 .3em}
.plate-l{display:flex;align-items:center;white-space:nowrap;overflow:hidden}
.led-dot{width:.55em;height:.55em;border-radius:50%;background:var(--blue);margin-right:.7em;box-shadow:0 0 6px var(--blue),0 0 14px rgba(0,96,255,.6);flex:none}
.plate-r{white-space:nowrap;font-variant-numeric:tabular-nums}
.plate-r .lbl{color:#5d5c58;margin-right:.35em}
#clock{color:#d8d4ca}
.board{display:grid;grid-template-columns:repeat(var(--cols,22),var(--tw));gap:var(--gap) calc(var(--gap)*.75);padding:calc(var(--gap)*1.4);
  background:#070707;border-radius:calc(var(--tw)*.08);box-shadow:inset 0 2px 8px rgba(0,0,0,.95),inset 0 0 0 1px #000,0 1px 0 rgba(255,255,255,.06)}
.tile{position:relative;width:var(--tw);height:var(--th);perspective:calc(var(--th)*4);border-radius:calc(var(--tw)*.07);
  font-weight:700;font-size:calc(var(--th)*1.1);color:var(--ink);box-shadow:0 2px 3px rgba(0,0,0,.9)}
.half{position:absolute;left:0;right:0;height:50%;overflow:hidden;background:var(--tile);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.half span{position:absolute;left:0;right:0;height:var(--th);line-height:var(--th);text-align:center;display:block;transform:scaleX(1.04);letter-spacing:0}
.top{top:0;border-radius:calc(var(--tw)*.07) calc(var(--tw)*.07) 0 0;
  background:#171717}
.top span{top:0}
.bot{bottom:0;border-radius:0 0 calc(var(--tw)*.07) calc(var(--tw)*.07);background:#141414}
.bot span{top:calc(var(--th)*-.5)}
/* gloss on upper half */
.top::after{content:"";position:absolute;left:0;right:0;top:0;height:8%;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0));pointer-events:none}
/* split gap shadow */
.top::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(0,0,0,.95);z-index:2}
.bot::before{content:"";position:absolute;left:0;right:0;top:0;height:calc(var(--th)*.03);background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,0));z-index:2}
.tile::after{content:"";position:absolute;left:0;right:0;top:calc(50% - .5px);height:1px;background:rgba(0,0,0,.9);z-index:6;pointer-events:none}
.flap{display:none;z-index:4;will-change:transform}
.ft{transform-origin:50% 100%}
.fb{transform-origin:50% 0%}
.flap .shade{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none}
.pin{position:absolute;top:calc(50% - var(--th)*.03);width:calc(var(--tw)*.07);height:calc(var(--th)*.06);background:linear-gradient(180deg,#6b6b6b,#2b2b2b);border-radius:1px;z-index:7;box-shadow:0 0 1px #000}
.pin.l{left:calc(var(--tw)*-.035)}.pin.r{right:calc(var(--tw)*-.035)}
.ticker-frame{margin-top:calc(var(--th)*.22);padding:calc(var(--th)*.06) calc(var(--th)*.08);background:#0a0705;border-radius:4px;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.95),inset 0 0 0 1px #000,0 1px 0 rgba(255,255,255,.06)}
#ticker{display:block;width:100%}
.logo{height:calc(var(--th)*.62);width:auto;opacity:.9}
.sound{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:.55em;
  font:600 15px/1 "Helvetica Neue",Arial,sans-serif;letter-spacing:.04em;color:#F2EEE4;background:rgba(28,28,30,.72);
  border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:11px 18px 11px 14px;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 8px 24px rgba(0,0,0,.5);transition:opacity .3s,background .2s}
.sound:hover{background:rgba(44,44,48,.85)}
.sound:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.sound .ico{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--blue);font-size:10px;padding-left:2px}
.sound.on .ico{background:#2a2a2c;padding-left:0}
.sound.idle{opacity:.35}.sound.idle:hover{opacity:1}
body.rec .sound{display:none}
@media (max-width:700px){.plate{letter-spacing:.1em;font-size:calc(var(--th)*.24)}.hide-sm{display:none}.housing{padding:calc(var(--th)*.8) calc(var(--tw)*.5) calc(var(--th)*.45)}.plate{top:calc(var(--th)*.18);height:calc(var(--th)*.4);left:calc(var(--tw)*.5);right:calc(var(--tw)*.5)}}
