/* Arcade MV 화면: 일부러 투박한 옛 오락실 게임기. 휴대폰 세로형, 폭 900px 이상 PC 가로형 */
@font-face{font-family:Galmuri11;src:url(https://arapshow.net/lib/vendor/galmuri-2.40.3/Galmuri11.woff2) format('woff2');font-display:swap}
@font-face{font-family:Galmuri11;font-weight:700;src:url(https://arapshow.net/lib/vendor/galmuri-2.40.3/Galmuri11-Bold.woff2) format('woff2');font-display:swap}
@font-face{font-family:Galmuri14;src:url(https://arapshow.net/lib/vendor/galmuri-2.40.3/Galmuri14.woff2) format('woff2');font-display:swap}
@font-face{font-family:GalmuriMono11;src:url(https://arapshow.net/lib/vendor/galmuri-2.40.3/GalmuriMono11.woff2) format('woff2');font-display:swap}
:root{--red:#e2382f;--red2:#b8231c;--teal:#27b3bd;--yel:#ffd23a;--org:#ff8a1f;--grn:#7ee04a;--ink:#14121c;--scr:#1d1b2b;--txt:#d8ff9e;--pink:#ff4f6a;
  --foot-bg:#2a2340;--foot-ink:#cfc8ff;--foot-faint:#8f88b8;--foot-line:#3a3358;--foot-font:Galmuri11,sans-serif}
*{box-sizing:border-box}
html{background:#2a2340}
body{margin:0;background:#2a2340;font-family:Galmuri11,sans-serif;word-break:keep-all;color:#fff;-webkit-font-smoothing:none;min-height:100vh}
button,select,input{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
button:disabled{cursor:wait;opacity:.5}
.wrap{display:flex;justify-content:center;padding:16px 16px 72px}
.cab{width:min(420px,100%);background:var(--red);border-radius:18px 18px 6px 6px;padding:12px 12px 0;box-shadow:inset -10px 0 0 var(--red2),0 8px 0 #12101a}
.marquee{background:var(--teal);border:4px solid #fff;outline:4px solid var(--ink);border-radius:6px;height:92px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.marquee::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,#0000 0 3px,#0001 3px 4px);pointer-events:none}
.logo{font-weight:700;font-size:clamp(30px,9.5vw,46px);letter-spacing:2px;color:var(--yel);transform:rotate(-3deg) skewX(-6deg);
  text-shadow:0 2px 0 var(--org),0 4px 0 var(--org),0 6px 0 #c0391b,3px 8px 0 var(--ink),-3px 0 0 var(--ink),3px 0 0 var(--ink),0 -3px 0 var(--ink)}
.logo small{font-size:18px;display:block;text-align:center;color:#fff;text-shadow:2px 2px 0 var(--ink);transform:rotate(2deg);margin-top:-2px}
.star{position:absolute;top:6px;font-size:22px;color:var(--yel);text-shadow:2px 2px 0 var(--ink)}.star.l{left:8px}.star.r{right:8px;transform:rotate(12deg)}
.bezel{margin-top:12px;background:var(--ink);padding:10px;border-radius:4px;box-shadow:inset 0 0 0 3px #3a3550}
.screen{background:var(--scr);position:relative;border:3px solid var(--pink);min-height:430px;padding-bottom:16px;
  background-image:radial-gradient(#fff 1px,#0000 1.5px),radial-gradient(#fff8 1px,#0000 1.5px);background-size:53px 61px,37px 41px;background-position:7px 9px,21px 30px}
.grass{height:10px;background:linear-gradient(90deg,var(--grn) 50%,#5cbf2f 50%);background-size:16px 10px;box-shadow:0 4px 0 #3c8d1f}
.grass.b{position:absolute;bottom:0;left:0;right:0;box-shadow:0 -4px 0 #3c8d1f}
.hud{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:8px 10px 4px;font-family:GalmuriMono11,monospace;font-size:13px}
.hud .lv{background:var(--yel);color:var(--ink);padding:2px 6px;box-shadow:2px 2px 0 var(--ink);white-space:nowrap}
.hud .coin{display:flex;align-items:center;gap:4px;background:#fff;color:var(--ink);padding:1px 8px 1px 2px;border-radius:10px;border:2px solid var(--ink);white-space:nowrap}
.hud .coin b{display:inline-block;width:16px;height:16px;border-radius:50%;background:var(--yel);box-shadow:inset -3px -3px 0 var(--org)}
.hud .life{color:var(--pink);white-space:nowrap}
.view[hidden]{display:none!important}
/* 첫 화면 */
.box{margin:14px 18px 10px;border:4px solid var(--pink);padding:14px 10px;text-align:center;background:#0006}
.box.insert{display:block;cursor:pointer;position:relative}
.box.insert:hover{background:#0009;border-color:var(--yel)}
.box .hint .br{display:block}
.box .hint{display:block;margin-top:6px;font-size:12px;color:#c9c3e0;word-break:keep-all}
.box.insert.half{border-color:var(--yel)}.box.insert.half h2{color:var(--yel);text-shadow:3px 3px 0 #8a5a00}
.box.insert.ready{border-color:var(--yel);background:var(--grn)}.box.insert.ready:hover{background:#5cbf2f}
.box.insert.ready h2{font-size:clamp(20px,6.2vw,30px);color:#fff;text-shadow:3px 3px 0 #2f5d17}.box.insert.ready .hint{color:#fff;font-weight:bold}
.box.insert.pop{animation:pop .6s steps(3)}@keyframes pop{0%{transform:scale(.8)}50%{transform:scale(1.08)}100%{transform:scale(1)}}
#btnMain.call span,.tb.call span{animation:call .5s steps(1) infinite}@keyframes call{50%{background:#fff;box-shadow:0 0 0 4px var(--yel),0 2px 0 #000}}
.box input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.screen.drop{outline:4px dashed var(--yel);outline-offset:-8px}
.box h2{margin:0;font-family:Galmuri14,sans-serif;font-size:clamp(22px,7vw,30px);white-space:nowrap;color:var(--grn);letter-spacing:2px;text-shadow:3px 3px 0 #2f5d17}
.blink{animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}
.slots{display:flex;gap:10px;margin:0 18px}
.slot{flex:1;min-width:0;border:3px dashed var(--yel);padding:10px 6px;text-align:center;font-size:13px;line-height:1.5;color:var(--yel);background:#0004;cursor:pointer;position:relative;display:flex;flex-direction:column;align-items:center}
.slot i{font-style:normal;font-size:24px}
.slot .fn{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.slot .sub{font-size:11px;opacity:.85}
.slot input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.slot.done{border-style:solid;color:var(--txt);border-color:var(--grn)}
.slot.sample{border-color:#9aa6ff;color:#cdd3ff;border-style:solid}
.menu{margin:14px 22px 0;display:flex;flex-direction:column;gap:6px}
.menu button{font-family:Galmuri14,sans-serif;font-size:clamp(17px,5.4vw,21px);line-height:1.2;color:var(--grn);text-align:left;position:relative;padding-left:28px}
.menu button small{font-family:Galmuri11,sans-serif;font-size:12px;color:#b7c9a0;display:block}
.menu button.on::before{content:"▶";position:absolute;left:0;top:1px;color:var(--pink)}
.opts{display:flex;flex-wrap:wrap;gap:8px;margin:12px 18px 0}
.opt{display:flex;align-items:center;gap:6px;font-size:12px;color:#c9c3e0}
.opt select{background:#0006;border:2px solid #6a6390;color:#fff;padding:3px 4px;font-size:12px}
.note{margin:12px 18px 18px;font-size:12px;color:#c9c3e0;text-align:center}
/* 손님 기다리는 무대 + 설명 */
.attract{margin:12px 18px 0;display:grid;grid-template-columns:1fr;gap:6px;text-align:center;border:3px solid #6a6390;background:#0005;padding:8px}
.attract canvas{width:100%;height:170px;display:block;image-rendering:pixelated}
.howto b{display:block;font-family:GalmuriMono11,monospace;font-size:13px;color:var(--yel);letter-spacing:1px}
.howto .tagline{margin:4px 0 6px;font-size:12px;line-height:1.5;color:#fff}
.howto ol{display:inline-block;text-align:left;margin:0;padding-left:18px;font-size:11px;line-height:1.6;color:var(--txt)}
/* 콘티: 큰 스크린 → 재생바 → 장면 카드 줄 */
#viewEdit{padding:0 10px 8px}
.modes{display:flex;align-items:center;gap:4px;margin:2px 0 6px;font-size:12px}
.modes button{background:#0006;border:2px solid #6a6390;color:#c9c3e0;padding:3px 10px}
.modes button.on{background:var(--yel);border-color:var(--ink);color:var(--ink);font-weight:700}
.modes .now{display:none;flex:1;min-width:0;text-align:right;color:var(--txt);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.modes .dl{margin-left:6px;background:var(--grn);border-color:var(--ink);color:var(--ink);font-weight:700}
.prev{border:3px solid #fff;position:relative;background:#000;display:flex;justify-content:center;min-height:160px}
.prev canvas{display:block;width:auto;height:auto;max-width:100%;max-height:52vh}
.prev .tag{position:absolute;left:50%;transform:translateX(-50%);bottom:6px;max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#000a;padding:2px 6px;font-family:GalmuriMono11,monospace;font-size:12px;color:var(--txt)}
.prev .rec{position:absolute;right:6px;bottom:30px;color:var(--pink);font-family:GalmuriMono11,monospace;font-size:12px}
.typing{position:absolute;inset:0;background:#0b0a14d9;padding:12px 14px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;font-family:GalmuriMono11,monospace;font-size:13px;line-height:1.7;color:var(--grn)}
.typing p{margin:0;white-space:nowrap}.typing .ready{font-family:Galmuri14,sans-serif;font-size:30px;color:var(--yel);margin-top:4px}
.typing[hidden],.script[hidden]{display:none}
.script{position:absolute;inset:0;background:#f4ecd2;color:#2a2418;overflow:auto;padding:14px 16px;font-size:13px;line-height:1.6;word-break:keep-all}
.script h3{margin:0;font-family:Galmuri14,sans-serif;font-size:18px}.script .meta{margin:2px 0 8px;color:#6b5f45}
.script h4{margin:14px 0 4px;padding:3px 8px;color:#fff;font-size:13px;text-shadow:1px 1px 0 #0006}.script h4 small{font-weight:400;opacity:.85;margin-left:4px}
.script .sc{padding:6px 8px;border-left:4px solid transparent;cursor:pointer}.script .sc:hover{background:#0000000d}
.script .sc.cur{background:#ffd23a55;border-left-color:#e2382f}
.script .sc b{display:block}.script .sc b small{font-weight:400;color:#6b5f45}
.script q,.script em,.script span{display:block;margin-left:12px}.script q{quotes:none;color:#7a2c8c}.script em{font-style:normal;color:#2d5f9a}
.seek{position:relative;margin-top:6px;height:22px;border:3px solid #fff;background:#000;cursor:pointer;touch-action:none}
.segs{display:flex;height:100%}
.segs i{display:block;min-width:0;overflow:hidden;white-space:nowrap;font-style:normal;font-size:10px;line-height:16px;padding-left:3px;color:#fff;text-shadow:1px 1px 0 #000;border-right:2px solid #000}
.seek .head{position:absolute;top:-6px;bottom:-6px;width:4px;margin-left:-2px;background:var(--red);box-shadow:0 0 0 2px #fff;left:0;pointer-events:none}
.stripbar{display:flex;align-items:center;gap:8px;margin:8px 0 4px;font-size:12px}
.stripbar .stlabel{color:var(--yel);font-family:GalmuriMono11,monospace}.stripbar .stnum{flex:1;color:#c9c3e0}
.zoom{display:flex;gap:4px}.zoom button{width:28px;height:24px;background:#0006;border:2px solid #6a6390;color:#fff;font-size:16px;line-height:1}
.strip{--cw:90px;display:flex;gap:4px;overflow-x:auto;overflow-y:hidden;padding:4px 2px 8px;scrollbar-color:var(--yel) #0006}
.card{flex:none;width:var(--cw);position:relative;background:#000;border:3px solid;border-color:#5a5a5a #fff #fff #5a5a5a;padding:0;text-align:left;visibility:hidden}
.card.in{visibility:visible;animation:drop .25s steps(3)}@keyframes drop{0%{transform:translateY(-120%)}66%{transform:translateY(8%)}100%{transform:none}}
.card canvas{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#222}
.card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:inherit;z-index:1}
.card b{position:absolute;left:2px;top:4px;background:#000b;color:#fff;font-family:GalmuriMono11,monospace;font-size:10px;font-weight:400;padding:0 3px}
.card s{position:absolute;right:2px;top:4px;background:#000b;color:var(--yel);font-family:GalmuriMono11,monospace;font-size:10px;text-decoration:none;padding:0 3px}
.card span{display:block;padding:2px 4px;font-size:11px;line-height:1.35;height:2.7em;overflow:hidden;color:#fff;background:#1d1a2b;word-break:keep-all}
.card span.inst{color:#8f88b0}
.card.sel{outline:3px solid var(--yel);outline-offset:-1px;z-index:2}
.strip.tiny .card span,.strip.tiny .card s{display:none}
.card.k-intro,.card.k-outro{border-top-color:#7a86a8}.card.k-verse{border-top-color:#6aa0d8}.card.k-chorus{border-top-color:#d7b94e}.card.k-bridge{border-top-color:#b98ad8}
.card.k-intro::before,.card.k-outro::before{background:#7a86a8}.card.k-verse::before{background:#6aa0d8}.card.k-chorus::before{background:#d7b94e}.card.k-bridge::before{background:#b98ad8}
.k-intro{background:#7a86a8}.k-verse{background:#6aa0d8}.k-chorus{background:#d7b94e}.k-bridge{background:#b98ad8}.k-outro{background:#7a86a8}
.card.k-intro,.card.k-outro,.card.k-verse,.card.k-chorus,.card.k-bridge{background:#000}
.status{display:flex;align-items:center;gap:8px;margin:4px 0 0;background:#3a3550;border:3px solid var(--ink);padding:5px 8px;font-size:12px;word-break:keep-all}
.status img{width:26px;height:26px;border:2px solid var(--ink)}
.status .say{flex:1}
/* 알림 창 */
.dialog{position:absolute;inset:0;background:#000b;display:flex;align-items:center;justify-content:center;z-index:5;padding:16px}
.dialog[hidden]{display:none}
.dlg-in{background:var(--scr);border:4px solid var(--yel);box-shadow:6px 6px 0 var(--ink);padding:16px;max-width:340px;text-align:center;font-size:14px;line-height:1.6}
.dlg-in p{margin:0 0 12px;white-space:pre-line}
.dlg-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.dlg-btns button{background:var(--yel);color:var(--ink);padding:6px 12px;box-shadow:3px 3px 0 var(--ink);font-weight:700}
.dlg-btns button.sub{background:#cfc8ff}
.bar{height:12px;border:2px solid #fff;margin:6px 0 2px;background:#0006}.bar b{display:block;height:100%;background:var(--grn);width:0}
/* 조작판 */
.panel{margin:12px -12px 0;padding:10px 10px 14px;border-radius:0 0 6px 6px;background:repeating-linear-gradient(135deg,var(--org) 0 22px,var(--yel) 22px 44px);border-top:6px solid #ffb84a}
.deck{background:#2b2b33;border:3px solid var(--ink);border-radius:8px;padding:10px 8px 8px;box-shadow:inset 0 -6px 0 #1b1b22,0 4px 0 var(--ink);position:relative}
.deck::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--red);border-radius:5px 5px 0 0}
.tops{display:flex;justify-content:center;align-items:flex-end;gap:20px;margin:4px 0 8px}
.tb{text-align:center;font-size:11px;color:#ddd;line-height:1}
.tb span{display:block;position:relative;width:34px;height:34px;border-radius:50%;background:var(--c);margin:0 auto 3px;box-shadow:inset -3px -3px 0 #0004,0 2px 0 #000}
.tb em{font-style:normal}
.tb.play span{width:44px;height:44px}
.tb.play span::after{content:"";position:absolute;left:50%;top:50%;margin:-9px 0 0 -5px;border-left:15px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent}
.tb.play.on span::after{margin:-7px 0 0 -7px;width:14px;height:14px;border:0;background:#fff}
.tb.call span{animation:call .5s steps(1) infinite}
.tb:active span,.b2:active span{transform:translateY(2px);box-shadow:inset -3px -3px 0 #0004}
.pls{display:flex;justify-content:space-between;gap:8px}
.pl{display:flex;align-items:center;gap:8px}
.stk{width:30px;height:46px;position:relative;flex:none}
.stk::before{content:"";position:absolute;left:11px;top:14px;width:8px;height:26px;background:#bbb;border-radius:3px}
.stk::after{content:"";position:absolute;left:3px;top:0;width:24px;height:24px;border-radius:50%;background:var(--c);box-shadow:inset -4px -4px 0 #0004,2px 2px 0 #000}
.stk i{position:absolute;left:0;bottom:0;width:30px;height:10px;border-radius:50%;background:#111}
.bg{display:flex;gap:10px}
.b2{text-align:center;font-size:10px;color:#eee;line-height:1.1;white-space:nowrap}
.b2 span{display:block;width:32px;height:32px;border-radius:50%;background:var(--c);margin:0 auto 3px;box-shadow:inset -3px -3px 0 #0003,0 2px 0 #000}
/* PC 가로형: 창 전체가 오락기 안쪽. 창 네 모서리 → 스크린 벽 네 모서리를 사선으로 이어 천장·옆벽·바닥(조작판)이 입체로 보인다 */
.walls{display:none}
@media (min-width:900px){
  .wrap{padding:0}
  .cab{--t:92px;--s:clamp(44px,5vw,84px);--b:132px;width:100%;height:max(560px,calc(100vh - 48px));border-radius:0;padding:0;position:relative;background:#14121c;box-shadow:none;overflow:hidden}
  .walls,.walls i{position:absolute;inset:0;display:block}
  .wt{background:linear-gradient(180deg,#8f1a14,var(--red));clip-path:polygon(0 0,100% 0,calc(100% - var(--s)) var(--t),var(--s) var(--t))}
  .wl{background:repeating-linear-gradient(115deg,#0000 0 26px,#0002 26px 30px),linear-gradient(90deg,#9c1e17,var(--red));clip-path:polygon(0 0,var(--s) var(--t),var(--s) calc(100% - var(--b)),0 100%)}
  .wr{background:repeating-linear-gradient(65deg,#0000 0 26px,#0002 26px 30px),linear-gradient(270deg,#7a1510,var(--red2));clip-path:polygon(100% 0,100% 100%,calc(100% - var(--s)) calc(100% - var(--b)),calc(100% - var(--s)) var(--t))}
  .marquee{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:min(56%,620px);height:calc(var(--t) - 26px);z-index:1;border-radius:18px;box-shadow:0 0 22px #5ff3ff88,0 0 0 4px var(--ink)}
  .logo{font-size:40px}.logo small{display:inline;font-size:18px;margin-left:14px}.star{top:50%;margin-top:-13px}
  .bezel{position:absolute;top:var(--t);left:var(--s);right:var(--s);bottom:var(--b);margin:0;padding:26px clamp(30px,4.5vw,80px) 24px;background:radial-gradient(120% 90% at 50% 40%,#f04a3f,var(--red) 60%,#c52a22);border-radius:16px;box-shadow:inset 0 0 0 3px #ff6a5f,inset 0 -8px 0 #0002;display:flex}
  .screen{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;padding-bottom:12px;border-radius:26px/20px;overflow:hidden;
    box-shadow:0 0 0 10px var(--ink),0 0 0 15px #4a4560,0 0 0 18px var(--ink),inset 0 0 50px #000a}
  .screen .grass{border-radius:20px 20px 0 0}.screen .grass.b{border-radius:0 0 20px 20px}
  .screen>.view{flex:1;min-width:0;min-height:0;overflow:auto}
  #viewEdit>*{min-width:0}
  .panel{position:absolute;left:0;right:0;bottom:0;height:var(--b);margin:0;padding:14px calc(var(--s) + 8px) 10px;border-radius:0;border-top:0;
    clip-path:polygon(var(--s) 0,calc(100% - var(--s)) 0,100% 100%,0 100%)}
  .deck::before{display:none}
  .deck{height:100%;border:0;border-radius:0;box-shadow:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='7,1 93,1 99.6,99 0.4,99' fill='%232b2b33' stroke='%2314121c' stroke-width='4' vector-effect='non-scaling-stroke' stroke-linejoin='round'/%3E%3Cpolygon points='7,1 93,1 93.5,7 6.5,7' fill='%23e2382f'/%3E%3Cpolygon points='0.4,99 99.6,99 99.3,93 0.7,93' fill='%231b1b22'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;filter:drop-shadow(0 5px 0 var(--ink));padding:12px 6% 8px;display:flex;align-items:center;justify-content:space-between;padding:6px 40px 4px}
  .pls{display:contents}.pl:last-child{order:3}.tops{order:2;margin:0}
  #viewEdit:not([hidden]){display:flex;flex-direction:column;padding:0 14px 6px;overflow:hidden}
  .prev{flex:1;min-height:120px;border:0;background:none;align-items:center}
  .prev canvas{max-width:none;max-height:none;border:3px solid #fff;background:#000}
  .typing,.script{border:3px solid #fff}
  .modes .now{display:block}#viewEdit .status{display:none}
  .modes{margin:0 0 6px}
  #viewTitle:not([hidden]){display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"insert insert" "slots attract" "menu attract" "opts attract" "note note";gap:12px 22px;padding:0 20px;align-content:start}
  #viewTitle .box{grid-area:insert;margin:10px 0 0}#viewTitle .note{grid-area:note;margin:0 0 8px}#viewTitle .slots{grid-area:slots;flex-direction:column;margin:0}#viewTitle .menu{grid-area:menu;margin:0}#viewTitle .opts{grid-area:opts;margin:0}
  #viewTitle .attract{grid-area:attract;margin:0;grid-template-columns:1fr;align-self:stretch;align-content:start}
  #viewTitle .attract canvas{width:100%;height:200px}
  #viewTitle .box{padding:10px}#viewTitle .slot{padding:6px}
  .box .hint .br{display:inline}
  .howto{text-align:center}.howto .tagline{font-size:14px}.howto ol{display:inline-block;text-align:left;font-size:12px}
  .b2 span{width:42px;height:42px}.b2{font-size:12px}.bg{gap:18px}.stk{transform:scale(1.25)}.tb span{width:42px;height:42px}.tb.play span{width:58px;height:58px}.tb{font-size:12px}
}
/* 낮은 PC 화면(노트북): 천장·바닥을 얇게, 안내 줄은 숨겨서 스크린 키우기 */
@media (min-width:900px) and (max-height:800px){
  .cab{--t:66px;--b:108px}
  .marquee{top:8px;height:calc(var(--t) - 16px)}.logo{font-size:30px}.logo small{font-size:14px}
  .bezel{padding:20px clamp(30px,4.5vw,80px) 18px}
  #viewEdit .status{display:none}
  .stk{transform:none}.b2 span,.tb span{width:36px;height:36px}.tb.play span{width:48px;height:48px}
}
