@import url('https://fonts.googleapis.com/css2?family=Black+Han+Sans&family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');
:root{--ink:#21251f;--muted:#62675f;--paper:#f5f7f0;--lime:#caff70;--orange:#ff7747;--border:2px solid var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans KR',sans-serif;font-size:16px;line-height:1.5}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:wait}button:focus-visible,a:focus-visible{outline:4px solid #6938ef;outline-offset:4px}button{transition:transform .16s,background .16s,box-shadow .16s}button:hover:not(:disabled){transform:translateY(-2px)}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.topbar{max-width:1440px;margin:auto;padding:22px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d7ddd0;gap:14px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;font-weight:900;letter-spacing:-.7px;font-size:20px}.brand-icon{width:43px;height:43px;display:grid;place-items:center;border:var(--border);background:var(--lime);border-radius:12px;font-size:29px;box-shadow:2px 2px 0 var(--ink);transform:rotate(-7deg)}.brand-sub{display:block;font-size:12px;font-weight:600;letter-spacing:0;margin-top:1px}.top-actions{display:flex;gap:10px}.quiet-button{background:transparent;border:1px solid #ccd2c5;border-radius:9px;padding:9px 13px;font-size:14px;font-weight:600}.question{border:1px solid var(--ink);border-radius:50%;font-size:12px;padding:0 4px;margin-left:4px}main{max-width:1280px;margin:auto;padding:34px 32px 0}.intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}.eyebrow{font-size:13px;font-weight:700;letter-spacing:.3px}.tiny-star{color:#6e8d38;font-size:21px;vertical-align:middle;margin-right:4px}h1{font-family:'Black Han Sans','Noto Sans KR',sans-serif;font-weight:400;font-size:48px;letter-spacing:-1.8px;line-height:1.3;margin:7px 0 10px}h1>span:not(.title-star){background:linear-gradient(transparent 60%,var(--lime) 60%);padding-right:5px}.title-star{display:inline-block;font-size:36px;color:var(--orange);margin-left:10px;transform:rotate(12deg)}.intro p{font-size:14px;color:var(--muted);margin:0}.player-ticket{border:var(--border);background:#fff;padding:12px 19px;transform:rotate(3deg);box-shadow:4px 4px 0 #e0e5d8;border-radius:5px;flex-shrink:0}.player-ticket>span{display:block;font-size:12px;color:var(--muted)}.player-ticket strong{display:block;font-size:22px;margin:2px 0}.player-ticket small{font-size:11px;padding:3px 7px;background:var(--ink);color:var(--lime);border-radius:4px;margin-left:7px;vertical-align:middle}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:24px;align-items:stretch}.arena{border:var(--border);border-radius:19px;background:#e7eddc;box-shadow:5px 5px 0 var(--ink);overflow:hidden}.arena-header{display:flex;align-items:center;gap:13px;padding:16px 19px;border-bottom:1px solid #c1cbb6;background:#f2f5eb}.round-pill{border:var(--border);border-radius:6px;padding:4px 9px;font-size:12px;font-weight:800;background:white;letter-spacing:1px}.round-pill span{font-size:15px}.remaining{font-size:14px;font-weight:800}.remaining span{color:#777e6e;font-weight:500}.mode{margin-left:auto;font-size:12px;border:1px solid #bcc5b1;border-radius:20px;padding:4px 9px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:20px}.character{position:relative;min-width:0;background:#fff;border:var(--border);border-radius:12px;overflow:visible;transition:opacity .25s,transform .3s,box-shadow .3s}.character.you{box-shadow:0 0 0 3px var(--lime)}.character-top{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:9px 10px 0;font-size:13px;font-weight:800;position:relative;z-index:1}.character-top .status{font-size:10px;letter-spacing:.3px;color:#64695f}.character.you .status{background:var(--ink);color:var(--lime);padding:2px 5px;border-radius:4px}.portrait-zone{height:101px;overflow:hidden;position:relative;margin:0 5px;background:var(--portrait-bg);border-radius:8px}.portrait{width:124px;height:124px;position:absolute;top:-4px;left:50%;transform:translateX(-50%);background-image:url('portraits.png');background-size:300% 200%;background-position:var(--pos);border-radius:8px;transition:filter .3s}.role{display:block;font-size:11px;color:#62685c;margin:0 10px 6px;position:relative;z-index:1}.speech{font-size:12px;font-weight:600;line-height:1.5;min-height:48px;padding:9px 9px 8px;border-top:1px solid #e0e4da;margin:0;background:#fff;border-radius:0 0 10px 10px;word-break:keep-all;text-align:center;display:grid;place-items:center}.hand-reveal{position:absolute;right:8px;top:45px;width:50px;height:50px;display:grid;place-items:center;background:#fff;border:var(--border);border-radius:50%;font-size:30px;box-shadow:2px 2px 0 var(--ink);z-index:2;transform:rotate(12deg)}.hand-reveal.unknown{font-size:26px;background:var(--lime)}.character.escaped{background:#edf0e7;border-color:#95a185}.character.escaped .portrait{filter:saturate(.55);opacity:.75}.character.escaped .character-top .status{color:#467b37;font-weight:800}.character.escaped .speech{background:#f6f8f1;color:#57664c}.character.escaped .hand-reveal{background:var(--lime);font-size:18px;border-color:#759655}.character.loser{box-shadow:0 0 0 4px var(--orange);transform:rotate(-2deg)}.character.loser .status{color:#b83814}.character.reacting{animation:reaction .5s ease}.stage-message{border-top:1px solid #c1cbb6;background:#f6f9f0;display:flex;justify-content:center;gap:12px;padding:13px 15px;min-height:80px;align-items:center;text-align:left}.stage-message>span{font-size:29px}.stage-message strong{font-size:16px;font-weight:800}.stage-message p{margin:2px 0 0;font-size:12px;color:#606851}.sideline{display:flex;flex-direction:column;gap:17px}.commentary{background:#fff;border:var(--border);border-radius:14px;padding:19px;flex:1;min-height:0}.section-label{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:800}.on-air{background:#fff0e9;color:#af3917;padding:3px 6px;border-radius:5px;letter-spacing:1px;font-size:10px}.commentary h2{font-size:23px;letter-spacing:-.8px;margin:11px 0 14px}.commentary-list{display:flex;flex-direction:column;gap:16px;max-height:305px;overflow:auto;scrollbar-width:thin}.comment-line{padding-left:12px;border-left:3px solid #dfebce;animation:slide-in .3s ease}.comment-line:first-child{border-color:var(--orange)}.comment-author{font-size:11px;color:#73796d;font-weight:600}.comment-line p{font-size:13px;line-height:1.7;margin:3px 0 0;word-break:keep-all}.coach{background:var(--lime);border:var(--border);border-radius:13px;padding:17px;position:relative}.coach p{font-size:13px;line-height:1.8;word-break:keep-all;margin:10px 0}.text-button{width:100%;text-align:left;border:0;border-top:1px solid #9bbd57;padding:10px 0 0;background:none;font-size:12px;font-weight:800;display:flex;justify-content:space-between}.controls{margin-top:26px;border:var(--border);box-shadow:4px 4px 0 var(--ink);border-radius:15px;padding:20px 25px;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff}.control-copy .eyebrow{font-size:11px;letter-spacing:1.4px;color:#667b3e}.control-copy h2{font-size:24px;letter-spacing:-.9px;line-height:1.35;margin:5px 0}.control-copy p{font-size:13px;color:var(--muted);margin:0}.hand-controls{display:flex;gap:12px;flex:0 1 490px}.hand-button{border:var(--border);border-radius:11px;flex:1;min-width:90px;padding:8px 14px 10px;box-shadow:3px 3px 0 var(--ink);font-weight:800;display:flex;align-items:center;justify-content:center;gap:9px}.hand-button:hover:not(:disabled){box-shadow:5px 6px 0 var(--ink);transform:translateY(-3px) rotate(-2deg)}.scissors{background:#dcd1ff}.rock{background:var(--orange)}.paper{background:var(--lime)}.hand-emoji{font-size:38px;line-height:1.6}.hand-button>span:last-child{font-size:16px;white-space:nowrap}kbd{display:block;margin:2px auto 0;border:1px solid #0003;border-radius:4px;font-size:10px;width:19px;font-weight:500;font-family:inherit;line-height:1.4}.hand-button:disabled{opacity:.65;box-shadow:none;transform:none}.primary-button{background:var(--ink);color:var(--lime);border:var(--border);border-radius:9px;padding:18px 28px;min-width:230px;font-size:17px;font-weight:800;box-shadow:4px 4px 0 #b9c4a8}.bottom-note{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:15px 0 25px}.bottom-note p{font-size:11px;color:#6e7763;margin:0}.bottom-note p span{font-size:10px;color:#4b5540;font-weight:800;margin-right:8px;letter-spacing:.4px}.record{border-top:1px solid #d3dbc9;padding:20px 0 12px}.history{display:flex;gap:10px;overflow:auto;margin-top:12px;padding-bottom:7px}.history-item{border:1px solid #cdd5c3;background:#fff;border-radius:9px;min-width:175px;max-width:230px;padding:12px;font-size:12px;flex-shrink:0}.history-item b{display:block;font-size:11px;margin-bottom:5px;color:#58634b}.history-item p{margin:4px 0 0;color:#606954;font-size:11px}.result{position:relative;background:var(--lime);border:var(--border);border-radius:15px;padding:26px;text-align:center;margin-top:23px;overflow:hidden}.result .result-icon{font-size:42px}.result h2{font-size:34px;margin:5px 0;letter-spacing:-1.3px}.result p{font-size:14px;margin:6px 0}.result .result-note{font-size:12px;color:#4b6232}.result.loss{background:#ffd2be}.result .result-stats{display:flex;justify-content:center;gap:30px;margin-top:20px;font-size:13px}.result .result-stats strong{font-size:24px;display:block}.chanting .character:not(.escaped) .portrait{animation:shake .3s ease-in-out infinite}.chanting .hand-reveal{animation:shake .3s ease-in-out infinite}.chanting #stage-title{font-size:25px}.confetti{position:absolute;width:10px;height:18px;top:-25px;background:var(--c);left:var(--x);animation:fall 2.3s ease-in var(--d) forwards;pointer-events:none}footer{max-width:1216px;border-top:1px solid #d7ddd0;margin:16px auto 0;padding:20px 0 27px;display:flex;justify-content:space-between;font-size:11px;color:#77816c}dialog{border:var(--border);border-radius:18px;padding:25px;width:540px;max-width:calc(100% - 28px);box-shadow:7px 7px 0 var(--ink);background:#f8faF3;color:var(--ink)}dialog::backdrop{background:#1d281aa8;backdrop-filter:blur(4px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.dialog-top h2{font-size:24px;margin:0}.dialog-top button{border:0;font-size:20px}.rules-list{padding-left:23px;font-size:16px;line-height:1.8}.rules-list li{margin-bottom:12px}.dialog-note{font-size:13px;color:#626e58;border-top:1px solid #d7dfce;padding-top:15px}.profile-row{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #d7dfce}.profile-row:last-child{border:0}.profile-avatar{width:55px;height:55px;background-image:url('portraits.png');background-size:300% 200%;background-position:var(--pos);border-radius:10px;flex-shrink:0}.profile-row strong{font-size:15px}.profile-row small{font-size:12px;color:#60754b;margin-left:8px}.profile-row p{margin:4px 0 0;font-size:13px;line-height:1.6}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes shake{0%,100%{transform:translateX(-50%) rotate(-5deg)}50%{transform:translateX(-50%) rotate(5deg)}}@keyframes reaction{25%{transform:translateY(-9px) rotate(-2deg)}60%{transform:translateY(2px) rotate(2deg)}100%{transform:translateY(0)}}@keyframes slide-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fall{to{top:110%;transform:rotate(650deg)}}
@media(min-width:1300px){.portrait-zone{height:120px}.portrait{width:143px;height:143px}.speech{min-height:46px}.commentary-list{max-height:345px}}
@media(max-width:1050px){.game-layout{grid-template-columns:minmax(0,1fr) 245px;gap:18px}.cards{padding:16px;gap:10px}.character-top{font-size:12px;padding:8px 7px 0}.role{font-size:10px;margin-left:7px}.speech{font-size:11px;padding:7px 5px;min-height:49px}.commentary{padding:15px}.hand-controls{flex-basis:440px}.hand-button{padding:8px}.control-copy h2{font-size:21px}}
@media(max-width:800px){main{padding:23px 20px 0}.topbar{padding:16px 20px}.game-layout{grid-template-columns:1fr}.intro{margin-bottom:24px}h1{font-size:40px}.player-ticket{display:none}.portrait-zone{height:116px}.portrait{width:142px;height:142px}.character-top{font-size:14px;padding:10px 10px 0}.role{font-size:11px;margin-left:10px}.speech{font-size:12px;min-height:45px}.sideline{display:grid;grid-template-columns:1fr 1fr;gap:14px}.commentary h2{font-size:20px;margin:5px 0 10px}.commentary-list{max-height:128px;gap:12px}.comment-line p{font-size:12px}.controls{flex-direction:column;gap:15px;align-items:stretch;padding:18px;margin-top:20px}.control-copy{text-align:center}.control-copy h2{font-size:22px}.control-copy .eyebrow{display:none}.hand-controls{flex-basis:auto}.hand-button{padding:8px 10px}.hand-emoji{font-size:38px}.bottom-note{align-items:flex-start;flex-direction:column;gap:5px}footer{margin:0 20px;font-size:10px;padding:18px 0}.intro p{font-size:13px}}
@media(max-width:480px){.brand{font-size:16px;gap:8px}.brand-icon{width:34px;height:34px;font-size:24px}.brand-sub{font-size:10px}.quiet-button{font-size:12px;padding:8px}.top-actions{gap:5px}.question{display:none}.topbar{padding:13px 14px}main{padding:22px 14px 0}.eyebrow{font-size:11px}h1{font-size:34px;letter-spacing:-1px}.title-star{font-size:24px;margin-left:5px}.intro p{font-size:12px;line-height:1.7;max-width:320px}.arena-header{padding:11px;gap:9px}.round-pill{font-size:10px;padding:3px 7px}.remaining{font-size:12px}.mode{font-size:10px;padding:3px 7px}.cards{padding:12px 9px;gap:10px 8px}.character{border-radius:10px}.character-top{font-size:12px;padding:7px 6px 0}.character-top .status{font-size:8px}.role{font-size:9px;margin:1px 6px 4px}.portrait-zone{height:83px;margin:0 3px}.portrait{width:100px;height:100px;top:-2px}.speech{font-size:10px;min-height:49px;padding:5px 4px}.hand-reveal{width:33px;height:33px;font-size:21px;right:3px;top:42px}.hand-reveal.unknown{font-size:19px}.character.escaped .hand-reveal{font-size:12px}.stage-message{min-height:70px;padding:10px;gap:9px}.stage-message strong{font-size:14px}.stage-message p{font-size:11px}.sideline{grid-template-columns:1fr;gap:12px}.commentary{padding:12px 15px}.commentary h2{display:none}.commentary-list{margin-top:9px;max-height:90px;gap:9px}.comment-author{font-size:10px}.comment-line p{font-size:12px;margin-top:0}.coach{padding:12px 15px}.coach p{font-size:12px;margin:6px 0}.text-button{padding-top:7px}.controls{padding:15px 12px}.hand-controls{gap:9px}.hand-button{min-width:0;gap:4px;flex-direction:column;padding:5px 7px 8px}.hand-emoji{font-size:34px;line-height:1.35}.hand-button>span:last-child{font-size:13px}kbd{display:none}.control-copy h2{font-size:21px}.control-copy p{font-size:12px}.controls{position:relative}.bottom-note p{font-size:10px}.bottom-note p span{display:none}.result{padding:20px 12px}.result h2{font-size:27px}.result .result-stats{gap:20px}.dialog-top h2{font-size:21px}.profile-row small{display:block;margin-left:0}.rules-list{font-size:14px}footer span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep the play controls directly below the arena on narrow screens. */
.speech,.role,.comment-author,.stage-message p,.text-button,.bottom-note p,.brand-sub,.mode,.round-pill,.on-air,.character-top .status,footer{font-size:12px}
.comment-line p,.coach p,.control-copy p,.section-label{font-size:14px}
.character-top{font-size:14px}.speech{min-height:54px}.role{min-height:18px}
@media(max-width:800px){main{display:flex;flex-direction:column}.intro{order:0}.game-layout{display:contents}.arena{order:1}.controls{order:2}.result{order:3}.sideline{order:4;margin-top:22px}.bottom-note{order:5}.record{order:6}}
@media(max-width:480px){.role{font-size:12px;min-height:36px;line-height:1.4}.character-top .status{font-size:10px}.speech{font-size:12px;min-height:63px;line-height:1.5}.character-top{font-size:13px}.brand-sub{font-size:10px}.remaining,.mode{font-size:12px}.mode{padding:2px 5px}.round-pill{letter-spacing:0}.intro{margin-bottom:18px}.intro p,.control-copy p,.stage-message p{font-size:12px}.stage-message strong{font-size:14px}.hand-button{flex-direction:row;padding:10px 5px}.hand-emoji{font-size:31px}.hand-button>span:last-child{font-size:14px}.bottom-note p{font-size:12px}.speech{word-break:normal}.comment-author{font-size:12px}.comment-line p,.coach p{font-size:14px}.section-label{font-size:14px}.hand-reveal{top:60px}.player-ticket>span{font-size:12px}}
@media(min-width:801px) and (max-height:950px){.topbar{padding-top:12px;padding-bottom:12px}main{padding-top:18px}.intro{margin-bottom:18px}h1{font-size:38px;margin:3px 0 7px}.intro .eyebrow{font-size:12px}.cards{padding:14px;gap:10px 14px}.portrait-zone{height:82px}.portrait{width:107px;height:107px}.speech{min-height:44px;padding:7px}.arena-header{padding:10px 15px}.stage-message{min-height:68px;padding:10px}.character-top{padding-top:7px}.controls{padding:13px 22px;margin-top:20px}.control-copy h2{font-size:23px}.hand-emoji{font-size:32px}.commentary-list{max-height:240px}.bottom-note{margin:13px 0}}

.character.escaped .hand-reveal.revealed{font-size:30px}@media(max-width:480px){.character.escaped .hand-reveal.revealed{font-size:21px}}
@media(max-width:480px){main{padding-top:14px}.intro .eyebrow,.intro p{display:none}.intro{margin-bottom:14px}h1{font-size:29px;margin:0;line-height:1.35}.title-star{font-size:23px}.character .role{display:none}.character-top{padding:7px 6px 6px}.speech{min-height:56px}.hand-reveal{top:33px}.stage-message{min-height:60px}.controls{padding:12px;margin-top:15px;gap:10px}.control-copy h2{font-size:19px;margin:0 0 3px}.hand-button{padding:9px 5px}}
