/* 커뮤배구 — 모든 단추·창은 게임 화면 안에, 도트 느낌(계단 모서리·두꺼운 외곽선·위 밝게/아래 어둡게) */
:root{--ink:#0a0820;--tx:#f3f1ff;--dim:#a49fd0;--acc:#ffd23a;--px:3px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:#07051a;color:var(--tx);font-family:Jua,system-ui,"Apple SD Gothic Neo",sans-serif;font-weight:400;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none}
button,input{font:inherit;color:inherit}
button{cursor:pointer}
#app{height:100dvh;display:flex;align-items:flex-start;justify-content:center;padding-top:env(safe-area-inset-top)}
#stage{position:relative;overflow:hidden;box-shadow:0 0 0 3px var(--ink),0 0 40px rgba(80,60,200,.25)}
#cv,#ov{position:absolute;left:0;top:0;image-rendering:pixelated;image-rendering:crisp-edges}
#ov{image-rendering:auto;touch-action:none}

/* ── 도트 단추 ── 계단 모서리 = 바깥 4방향 그림자, 입체 = 안쪽 위 밝은 줄·아래 어두운 줄 */
.pb{--c:#5b4dc0;position:relative;border:0;background:var(--c);color:#fff;padding:0 12px;height:40px;margin:var(--px);
  box-shadow:0 calc(-1*var(--px)) 0 0 var(--ink),0 var(--px) 0 0 var(--ink),calc(-1*var(--px)) 0 0 0 var(--ink),var(--px) 0 0 0 var(--ink),
    inset 0 calc(-2*var(--px)) 0 0 rgba(0,0,0,.32),inset 0 var(--px) 0 0 rgba(255,255,255,.38);
  text-shadow:0 2px 0 rgba(0,0,0,.45);letter-spacing:.5px;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.pb:active,.pb.on{transform:translateY(2px);filter:brightness(1.15);box-shadow:0 calc(-1*var(--px)) 0 0 var(--ink),0 var(--px) 0 0 var(--ink),calc(-1*var(--px)) 0 0 0 var(--ink),var(--px) 0 0 0 var(--ink),inset 0 calc(2*var(--px)) 0 0 rgba(0,0,0,.3)}
.pb.yellow{--c:#ffc928;color:#3a2200;text-shadow:0 1px 0 rgba(255,255,255,.5)}
.pb.red{--c:#ef3d4f}.pb.blue{--c:#2f74f0}.pb.purple{--c:#4b3fb0}.pb.dark{--c:rgba(14,10,40,.82)}
.pb.ic{width:36px;height:32px;padding:0}.pb.txt{height:32px;font-size:12px;padding:0 9px}
.px{display:inline-block;width:22px;height:22px;background-size:100% 100%;image-rendering:pixelated}
.pb.txt .px{width:15px;height:15px}

/* ── 위 메뉴 줄 (점수판 바로 아래) ── */
#top{position:absolute;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:0 6px;pointer-events:none}
#top>*{pointer-events:auto}
#room{font-size:11px;height:26px;padding:0 8px;--px:2px}
#top .tb{display:flex}
#top .pb{--px:2px}

/* ── 아래 조작 칸 (관중석 위) ── */
#zone{position:absolute;left:0;right:0;bottom:0;padding:8px 10px calc(6px + env(safe-area-inset-bottom))}
#spec,#pad{position:absolute;inset:8px 10px calc(6px + env(safe-area-inset-bottom)) 10px}
#spec{display:flex;flex-direction:column;justify-content:center;gap:6px}
#pad{display:none;align-items:stretch;justify-content:space-between}
body.playing #pad{display:flex}body.playing #spec{display:none}
.r1,.r2{display:flex;align-items:center}
.pb.big{flex:1;height:50px;font-size:19px}
.pb.sq{width:56px;height:50px;font-size:22px;padding:0}
.pin{flex:1;min-width:0;height:40px;margin:3px;border:0;background:#0d0a24;color:#fff;padding:0 10px;font-size:16px;outline:none;
  box-shadow:0 -3px 0 0 var(--ink),0 3px 0 0 var(--ink),-3px 0 0 0 var(--ink),3px 0 0 0 var(--ink),inset 0 3px 0 0 rgba(0,0,0,.6);user-select:text;-webkit-user-select:text}
.pin:focus{box-shadow:0 -3px 0 0 var(--acc),0 3px 0 0 var(--acc),-3px 0 0 0 var(--acc),3px 0 0 0 var(--acc),inset 0 3px 0 0 rgba(0,0,0,.6)}
.pin::placeholder{color:#6c64a8}
#stick-zone{position:relative;flex:1 1 55%;touch-action:none;margin:-6px 0 -6px -10px}
#stick{position:absolute;width:112px;height:112px;margin:-56px 0 0 -56px;left:42%;top:50%;pointer-events:none;opacity:.7;background-size:100% 100%;image-rendering:pixelated}
#stick.on{opacity:1}
#knob{position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;background-size:100% 100%;image-rendering:pixelated;filter:drop-shadow(0 3px 0 var(--ink))}
.sz-hint{position:absolute;left:0;right:0;bottom:2px;text-align:center;font-size:10px;color:#8a80d0;pointer-events:none;text-shadow:0 1px 0 #000}
.ab{display:flex;align-items:center;gap:6px;padding-right:2px}
.pb.act{width:118px;height:118px;font-size:22px;touch-action:none;padding:0;flex-direction:column;gap:4px}
.pb.act small{font-family:Jua,sans-serif;font-size:11px;letter-spacing:0;opacity:.9}

/* ── 창 (게임 화면 안) ── */
#call,#upd,.panel{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(6,4,20,.6);z-index:20;padding:14px}
#call.on,#upd.on,.panel.on{display:flex}
.win{position:relative;width:100%;max-width:400px;max-height:86%;overflow:auto;background:#1d1846;padding:16px;margin:4px;
  box-shadow:0 -4px 0 0 var(--ink),0 4px 0 0 var(--ink),-4px 0 0 0 var(--ink),4px 0 0 0 var(--ink),inset 0 0 0 3px #5b4dc0,inset 0 -6px 0 0 rgba(0,0,0,.3);user-select:text;-webkit-user-select:text}
#call .win{text-align:center;width:auto;box-shadow:0 -4px 0 0 var(--ink),0 4px 0 0 var(--ink),-4px 0 0 0 var(--ink),4px 0 0 0 var(--ink),inset 0 0 0 3px var(--acc)}
#call .t{margin:0 0 10px;font-size:20px}
.pb.go{font-size:24px;height:64px;padding:0 24px;animation:pulse .6s infinite alternate}
.pb.go b{background:var(--ink);padding:3px 8px;color:var(--acc);margin-left:4px}
@keyframes pulse{to{transform:scale(1.06)}}
.lk{background:none;border:0;color:var(--dim);text-decoration:underline;font-size:12px;margin-top:10px;display:block;width:100%}
.win h2{margin:2px 40px 12px 0;font-size:18px}.dim{color:var(--dim)}.small{font-size:11px;line-height:1.6}
.pb.x{position:absolute;right:8px;top:8px;width:32px;height:30px;padding:0;margin:0;--px:2px}
#welp .win{text-align:center}#wel-helmet{width:96px;height:112px;image-rendering:pixelated;margin:0 auto;display:block}
.fld{display:flex;gap:10px;align-items:center;margin:14px 3px 10px;padding-left:2px}.fld .pin{flex:1;margin:3px 3px 3px 0}
#welp .pb.big{width:calc(100% - 6px);flex:none;height:54px}
#welp .win{padding:18px 16px}#welp h2{margin:8px 0 6px}#welp #wel-s{margin:0 0 4px;font-size:13px;line-height:1.5}#welp .small{margin:12px 0 0}
.tabs{display:flex;gap:4px;margin-bottom:6px}.tabs .tab{flex:1;height:34px;font-size:13px;--c:#2b2466;--px:2px}.tabs .tab.on{--c:#ffc928;color:#3a2200;text-shadow:none}
.tabs.sm .tab{height:28px;font-size:11px}
.list .row{display:flex;align-items:center;gap:8px;padding:7px 4px;border-bottom:2px solid #2a2460;font-size:13px}
.list .row.me{background:rgba(255,210,58,.14)}.list .n{width:24px;text-align:right;color:var(--dim)}
.list .top1 .n{color:#ffd23a}.list .top2 .n{color:#d6dbe6}.list .top3 .n{color:#e09a5a}
.chip{font-style:normal;font-size:10px;min-width:26px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 3px;box-shadow:0 0 0 2px var(--ink)}
.list .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list .bar{flex:1.3;height:10px;background:#0d0a24;box-shadow:0 0 0 2px var(--ink)}.list .bar i{display:block;height:100%}
.list .sc{white-space:nowrap}
.set{display:flex;align-items:center;gap:6px;padding:9px 0;border-bottom:2px solid #2a2460;flex-wrap:wrap;font-size:13px}.set>span:first-child{width:60px}
.set .pin{flex:1 1 120px}.set .pb{height:34px;font-size:12px;--px:2px}
.set.col{flex-direction:column;align-items:stretch}.set.col>span{width:auto}.set.col div{display:flex;gap:6px;align-items:center}
.code{font-family:ui-monospace,monospace;letter-spacing:1px;color:var(--acc)}
.links{font-size:11px;color:var(--dim);margin-top:12px;line-height:2}.links a,.links .lk{color:var(--dim);display:inline;width:auto;margin:0;font-size:11px}
.about{font-size:13px;line-height:1.7}.about h1{font-size:17px;margin:2px 36px 8px 0}.about h2{font-size:15px;margin:14px 0 4px}.about ul{padding-left:18px;margin:4px 0}.about a{color:var(--acc)}
#toast{position:absolute;left:50%;top:18%;transform:translateX(-50%) translateY(-10px);background:#0d0a24;padding:8px 14px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;z-index:40;max-width:90%;text-align:center;
  box-shadow:0 -3px 0 0 var(--acc),0 3px 0 0 var(--acc),-3px 0 0 0 var(--acc),3px 0 0 0 var(--acc)}
#toast.on{opacity:1;transform:translateX(-50%)}
/* 큰 글자(제목·주요 단추·도전하기)는 두꺼운 검은고딕 */
.pb.big,.pb.go,.pb.act,.win h2,.about h1,#call .t{font-family:"Black Han Sans",Jua,sans-serif;font-weight:400;letter-spacing:1px}
/* 이름·커뮤 이름처럼 바뀌는 글자는 모든 한글이 있는 주아로 (검은고딕엔 '펨' 같은 글자가 없음) */
#wel-t{font-family:Jua,sans-serif;font-size:22px;letter-spacing:0}
.pb{font-size:14px}
.mecard{--c:#5b4dc0;display:flex;align-items:center;gap:8px;padding:10px;margin:0 0 10px;background:#0d0a24;font-size:15px;
  box-shadow:0 -3px 0 0 var(--c),0 3px 0 0 var(--c),-3px 0 0 0 var(--c),3px 0 0 0 var(--c)}
.mecard .lb{font-size:11px;color:var(--dim)}.mecard .nm{flex:1}.mecard .sc{color:var(--acc)}
/* 폰을 가로로 돌리면 화면이 너무 작아짐 → 세로로 돌리라는 안내 */
#rot{display:none;position:fixed;inset:0;z-index:50;background:#07051a;color:#fff;align-items:center;justify-content:center;flex-direction:column;gap:12px;font-size:18px;text-align:center}
#rot b{font-size:48px;display:inline-block;animation:rot 1.6s infinite}
@keyframes rot{0%,30%{transform:rotate(90deg)}70%,100%{transform:rotate(0)}}
@media (orientation:landscape) and (max-height:500px) and (pointer:coarse){#rot{display:flex}}
/* 검색용 본문(게임 아래, 화면 밖) — 숨김(display:none) 아님 */
.seo{max-width:640px;margin:0 auto;padding:24px 16px 40px;font-size:14px;line-height:1.7;color:#cfcaf0}
.seo h1{font-size:20px;color:#fff}.seo h2{font-size:16px;color:#ffd23a;margin:18px 0 4px}.seo a{color:#ffd23a}.seo ul{padding-left:18px}
#upd{z-index:45}#upd .win{text-align:center;width:auto;box-shadow:0 -4px 0 0 var(--ink),0 4px 0 0 var(--ink),-4px 0 0 0 var(--ink),4px 0 0 0 var(--ink),inset 0 0 0 3px var(--acc)}#upd .t{margin:0 0 6px;font-size:20px}#upd .dim{margin:0 0 12px}#upd .pb.go{animation:none}
