/* あそび屋台: shared stall chrome — lantern string, HUD bar, framed stage, overlay card */
:root{
  --night:#0f1630; --night-2:#18213f; --line:#34406a;
  --lantern:#ff9f43; --on-lantern:#2a1300;
  --paper:#f6efe2; --ink:#f3ead8; --muted:#a9b3cc; --red:#ef5a3c; --sky:#9fe3ff;
  --frame:#3aa6c8; --frame-hi:#8fdaf0; --stage-bg:#0b2a48;
  --display:"Dela Gothic One","Hiragino Sans","Yu Gothic",sans-serif;
  --body:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Sans","Yu Gothic",sans-serif;
  color-scheme:dark;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
html{height:100%;box-sizing:border-box}
body{height:100%;margin:0;overflow:hidden;background:var(--night);color:var(--ink);font-family:var(--body)}
[hidden]{display:none!important}
.app{height:100%;box-sizing:border-box;max-width:980px;margin:0 auto;display:flex;flex-direction:column;gap:10px;
  padding-block:6px 12px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.lanterns{height:18px;position:relative;flex:none}
.lanterns::before{content:"";position:absolute;left:0;right:0;top:4px;height:1px;background:var(--line)}
.lanterns::after{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 6px 7px at 50% 11px,var(--lantern) 0 98%,transparent 100%) 0 0/46px 18px repeat-x;
  filter:drop-shadow(0 0 6px var(--lantern));opacity:.85}
.bar{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;flex:none}
.title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.back{color:var(--muted);font-size:13px;text-decoration:none;border-radius:6px}
.back:hover{color:var(--ink)}
.back:focus-visible{outline:2px solid var(--paper);outline-offset:3px}
h1{font-family:var(--display);font-weight:400;font-size:clamp(20px,4.4vw,26px);margin:0;letter-spacing:.04em}
h1 span{color:var(--lantern)}
.hud{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.stat{display:flex;align-items:center;gap:8px}
.lbl{font-size:12px;color:var(--muted);letter-spacing:.08em}
.num{font-family:var(--display);font-size:24px;color:var(--lantern);font-variant-numeric:tabular-nums;min-width:2ch;text-align:right}
.num.small{font-size:18px;color:var(--ink)}
.meter{width:100px;height:10px;border-radius:99px;background:var(--line);overflow:hidden}
.meter i{display:block;height:100%;width:100%;background:var(--paper);border-radius:inherit;transition:background-color .3s}
.meter.low i{background:var(--red)}

.stage{position:relative;flex:1;min-height:0;border-radius:30px;border:10px solid var(--frame);
  box-shadow:inset 0 0 0 3px var(--frame-hi),0 18px 40px #0008;overflow:hidden;background:var(--stage-bg)}
.stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none}
.stage.playing canvas{cursor:none}

.overlay{position:absolute;inset:0;display:flex;flex-direction:column;padding:16px;overflow:auto;background:#080e20a0}
.card{margin:auto;width:100%;max-width:380px;box-sizing:border-box;background:var(--night-2);border:1px solid var(--line);border-radius:18px;
  padding:22px;display:grid;gap:14px;box-shadow:0 20px 50px #0009}
.eyebrow{margin:0;font-size:12px;letter-spacing:.14em;color:var(--lantern)}
.card h2{margin:0;font-family:var(--display);font-weight:400;font-size:32px;line-height:1.15;text-wrap:balance}
.card p{margin:0;line-height:1.75;font-size:14px}
.sub{margin:0;font-size:12px;letter-spacing:.14em;color:var(--muted)}
.tech{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:13px;line-height:1.5}
.tech li{display:grid;grid-template-columns:6em 1fr;gap:8px}
.tech b{color:var(--frame-hi);font-weight:700}
.row{display:flex;gap:8px;flex-wrap:wrap}
.go,.ghost{font:inherit;font-weight:700;font-size:16px;border-radius:999px;padding:11px 22px;cursor:pointer;text-align:center;text-decoration:none}
.go{background:var(--lantern);color:var(--on-lantern);border:0;flex:1}
.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
button:focus-visible,a.go:focus-visible,a.ghost:focus-visible{outline:3px solid var(--paper);outline-offset:2px}
.hint{font-size:12px!important;color:var(--muted)}
.big{font-family:var(--display);font-size:56px;line-height:1;color:var(--lantern);font-variant-numeric:tabular-nums}
.big small{font-size:20px;color:var(--ink);margin-left:6px}
.new{display:inline-block;font-family:var(--body);font-size:12px;font-weight:700;color:var(--on-lantern);background:var(--paper);border-radius:6px;padding:2px 8px;margin-left:6px;vertical-align:8px}
.legend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;font-size:12px;color:var(--muted);flex:none}
