/* 웹 전용 플레이그라운드. 기존 화면 계약과 모드별 색상을 유지한다. */
:root{--muted:#697080;--faint:#787e8b;--radius:22px;--line:#e5e2dc;--border:#dededc}
body{color:var(--navy);background-size:28px 28px}
.skip-link{position:fixed;top:-80px;left:12px;z-index:100;background:var(--navy);color:white;padding:12px 18px}
.skip-link:focus{top:8px}
.topbar{padding:15px max(24px,calc((100vw - 1200px)/2));gap:32px;border-bottom:1px solid #14213d15}
.topbar-brand{gap:10px;font-size:21px;line-height:1.1}
.topbar-brand img{width:38px;height:38px;border-radius:12px}
.brand-caption{display:block;font:9px var(--mono);letter-spacing:2px;margin-top:4px}
.topbar-nav{gap:6px;font-size:14px}.topbar-nav a{padding:10px 18px;border-radius:10px}
.topbar-nav a[aria-current=page]{background:var(--navy);color:#fff}
.topbar-out{color:var(--navy);border-left:1px solid var(--border);padding-left:24px}
.view{max-width:1250px;padding-top:32px}
.lobby-hero{display:grid;grid-template-columns:1.05fr 1fr;min-height:405px;overflow:hidden;border-radius:30px;background:#eee9df;border:1px solid #e4ded2;position:relative;margin-bottom:38px}
.lobby-copy{padding:44px 0 38px 40px;position:relative;z-index:2}
.lobby-label{font:10px var(--mono);letter-spacing:1.6px;color:#716a5d;display:inline-block;margin-bottom:22px}
.lobby-copy h1{font-size:clamp(36px,4.2vw,55px);line-height:1.16;letter-spacing:-2.5px;font-weight:850}
.lobby-copy h1 em{font-style:normal;color:var(--orange)}
.lobby-copy p{font-size:14px;line-height:1.85;color:#62636b;margin-top:20px}
.lobby-start{display:inline-flex;align-items:center;gap:40px;background:var(--navy);color:white;border-radius:12px;padding:17px 22px;margin-top:24px;font-size:15px;font-weight:750;box-shadow:0 4px 0 #060d1d;transition:transform .2s}
.lobby-start:hover{transform:translateY(-3px)}.lobby-start span{font-size:22px;line-height:1}
.lobby-facts{display:flex;gap:20px;font-size:10px;color:#6c6b65;margin-top:22px;align-items:center;flex-wrap:wrap}
.lobby-facts i{display:inline-block;background:#45836b;width:6px;height:6px;border-radius:50%;margin-right:4px}.lobby-facts b{font-family:var(--mono);font-weight:500}
.lobby-stage{position:relative;min-height:420px;background:radial-gradient(ellipse at 60% 45%,#fff9eb 0,transparent 68%)}
.stage-orbit{position:absolute;width:330px;height:330px;border:1px solid #c5bdac80;border-radius:50%;left:50%;top:48%;transform:translate(-50%,-50%)}
.stage-orbit:after{content:'';position:absolute;inset:-25px;border:1px dashed #c5bdac60;border-radius:50%}
.stage-plinth{position:absolute;width:82%;height:68px;left:9%;bottom:51px;background:linear-gradient(#ddd5c5,#c8c0b0);border-radius:50%;box-shadow:0 15px 0 #b8b0a0,0 26px 28px #685b4225}
.stage-friend{position:absolute;object-fit:contain;filter:drop-shadow(0 16px 8px #26365323);z-index:2}
.friend-nody{width:250px;height:250px;bottom:59px;left:25%;z-index:4;transform:rotate(-7deg)}
.friend-oni{width:175px;height:175px;left:2%;bottom:112px;transform:rotate(-14deg)}
.friend-quri{width:175px;height:175px;right:0;bottom:116px;transform:rotate(12deg)}
.stage-bubble{position:absolute;background:#fffdf8;border:1px solid #d3ccbe;border-radius:14px;padding:10px 15px;font-size:12px;font-weight:750;z-index:5;box-shadow:0 4px 0 #d7cebd80}
.bubble-one{top:61px;left:10%;transform:rotate(-8deg)}.bubble-two{top:93px;right:6%;transform:rotate(7deg)}
.stage-star{position:absolute;color:var(--orange);font-size:40px}.star-one{top:21px;right:28%}.star-two{bottom:83px;left:1%}
.stage-caption{position:absolute;bottom:13px;text-align:center;width:100%;font:8px var(--mono);letter-spacing:2px;color:#837765}
.lobby-section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:19px;gap:16px}.lobby-section-head h2{font-size:23px;margin-top:5px;font-weight:800}.lobby-section-head>a{font-size:12px;color:var(--muted);flex-shrink:0}
.modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.mode{position:relative;display:block;padding:21px 20px 18px;background:#fffefa;border:1px solid #d9d8d1;border-radius:20px;overflow:hidden;box-shadow:0 5px 0 #e5e1d8;transition:transform .2s,box-shadow .2s,border-color .2s}
.mode{display:flex;flex-direction:column}.mode-main{display:flex;flex-direction:column;flex:1}.mode-desc{flex:1}
.mode:hover{transform:translateY(-6px);border-color:var(--m);box-shadow:0 9px 0 var(--ms)}
.mode-number{font:9px var(--mono);letter-spacing:1.2px;color:var(--m);display:block;margin-bottom:12px}
.mode-top{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.mode-face,.mode .dot{width:112px;height:112px;object-fit:contain;align-self:center;margin:4px 0 10px;transition:transform .25s;filter:drop-shadow(0 10px 8px #14213d15)}
.mode:hover .mode-face{transform:rotate(-7deg) scale(1.06)}.mode .dot{border-radius:32px;font-size:53px;display:grid;place-items:center;background:var(--ms)}
.mode-kicker{display:none}.mode b{font-size:26px}.mode-tag{font-size:11px;margin-top:6px}.mode-desc{font-size:12px;line-height:1.7;min-height:62px;margin-top:13px}
.mode-go{display:flex;justify-content:space-between;background:var(--ms);color:var(--m);padding:12px;border-radius:10px;margin-top:16px;font-size:12px;border:0}.mode-go>span{font-size:17px}
.lobby-note{display:flex;justify-content:space-between;gap:12px;padding:20px 4px;margin-bottom:12px;font-size:12px;color:var(--muted)}.lobby-note a{color:var(--orange);font-weight:700}
.hero{padding:22px 26px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:22px;position:relative;overflow:hidden}
.hero:after{content:'PICKNODE';position:absolute;right:25px;bottom:3px;font:700 55px var(--mono);opacity:.035;pointer-events:none}
.hero img{width:86px;height:86px}.hero h1{font-size:29px}.hero .sub{color:var(--accent-dark)}
.card{background:#fffefa;box-shadow:0 4px 0 #e9e5de;padding:25px}.card-flat{background:#fffefa}
.btn{border-radius:12px;min-height:44px}.btn-primary{box-shadow:0 4px 0 var(--accent-dark);border-top:1px solid #ffffff50}.btn-primary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--accent-dark)}
.input,.textarea{background:#faf9f5;border-color:#dfdfd8;border-radius:12px}.input:focus,.textarea:focus{background:white}.label{font-size:15px}.opt-row .idx{width:30px;height:30px;border-radius:9px}.icon-btn{min-width:44px;height:44px}
.chip{border-radius:10px;min-height:40px;background:#fffefa}.track{height:18px;border-radius:6px}.fill{border-radius:6px}.verdict{border-radius:24px;border:1px solid var(--accent);box-shadow:0 5px 0 var(--accent-soft)}
.wait-wrap{border-radius:24px}.sitefoot{border-top:1px solid #14213d15;margin-top:24px}.sitefoot p{color:#747780}.teaser .fh{margin-bottom:15px}
/* 입력은 옆으로 흐르지 않고 내용만큼 자란다. */
textarea.input,textarea.textarea,textarea{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;resize:vertical;overflow-x:hidden;min-width:0;line-height:1.65;box-sizing:border-box}
.opt-row{align-items:flex-start;min-width:0}.opt-row .idx,.opt-row .icon-btn{margin-top:4px;flex-shrink:0}.opt-row textarea{flex:1;width:0;min-height:48px}
.sample-play{display:flex;align-items:stretch;gap:6px;width:100%;min-width:0}.sample-play .chip{flex:1;text-align:left;white-space:normal;overflow-wrap:anywhere}.sample-run{flex:none;border:1px solid var(--border);background:var(--accent-soft);color:var(--accent-dark);border-radius:10px;padding:10px;font:600 11px inherit;cursor:pointer}.sample-run:hover{border-color:var(--accent)}
.story-text,.qhead,.tool-msg,.order-item b,.chip-item{overflow-wrap:anywhere;white-space:pre-wrap;min-width:0}
/* 응답 준비 → 결과 공개 */
.reveal-heading{text-align:center;padding:25px 12px 10px}.reveal-heading h1{font-size:clamp(23px,3.5vw,36px);letter-spacing:-1.3px;margin:12px 0}.reveal-heading>p:last-child{color:var(--muted);font-size:13px}
.reveal-steps{display:flex;gap:8px;padding:0;list-style:none;counter-reset:step;width:100%;justify-content:center}.reveal-steps li{counter-increment:step;display:flex;gap:6px;align-items:center;font-size:11px;color:var(--muted)}.reveal-steps li:before{content:counter(step);display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--border);border-radius:50%;font-family:var(--mono)}.reveal-steps li.on{color:var(--accent-dark);font-weight:750}.reveal-steps li.on:before{background:var(--accent);color:white;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.wait-scene{border:7px solid var(--navy);border-radius:23px;box-shadow:0 7px 0 #0a1325}.result-layout>.stack>*{animation:resultEnter .5s cubic-bezier(.2,.8,.2,1) both}.result-layout>.stack>*:nth-child(2){animation-delay:.1s}.result-layout>.stack>*:nth-child(3){animation-delay:.2s}.result-layout .fill{animation:barReveal .9s cubic-bezier(.2,.8,.2,1) both;transform-origin:left}.result-layout .qhead{font-size:25px;line-height:1.5}.verdict{background:linear-gradient(140deg,#fff9e9,var(--accent-soft))}
@keyframes resultEnter{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}@keyframes barReveal{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* 다섯 개의 아케이드: 공통 캐비닛 + 게임별 무대 */
.arcade-preview{height:145px;border-radius:15px;display:grid;place-items:center;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 20%,#3c506e,#14213d 75%);margin-bottom:16px;color:#ffe5a2}.arcade-preview:before{content:'';position:absolute;width:110px;height:110px;border:1px solid #ffffff25;border-radius:50%;box-shadow:0 0 0 17px #ffffff08,0 0 0 35px #ffffff04}.arcade-preview>span{font-size:59px;z-index:1;transition:transform .3s;filter:drop-shadow(0 8px 3px #0004)}.arcade-preview>i{position:absolute;bottom:10px;font:8px var(--mono);letter-spacing:2px;font-style:normal;color:#c3cad6}.tool-card:hover .arcade-preview>span{transform:translateY(-5px) rotate(-8deg)}
.tool-stage{display:block;padding:0;background:#14213d;border:1px solid #0b1427;border-radius:25px;box-shadow:0 8px 0 #091328,0 18px 32px #14213d18;overflow:hidden}.game-marquee{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:18px 24px;border-bottom:1px solid #ffffff15;color:#f7ecd6}.game-marquee>span:first-child{font:9px var(--mono);letter-spacing:1.7px;color:#d2bb82}.game-marquee>b{font-size:15px}.game-status{font:9px var(--mono);letter-spacing:1px;background:#ffffff0d;border:1px solid #ffffff25;border-radius:6px;padding:6px 9px;color:#d2d9e5}
.tool-stage .stage-fx{padding:22px}.tool-stage .stage-split{gap:24px;width:100%}.tool-stage .stage-scene{position:relative;border:1px solid #ffffff20;border-radius:18px;background:radial-gradient(ellipse at 50% 36%,#fffdf4,#e5dbc5);box-shadow:inset 0 -14px 35px #14213d10;overflow:hidden;height:365px}.tool-stage .stage-side{padding:20px 12px;min-width:0}.tool-stage .tool-msg{color:#c6cfdf;font-size:13px}.tool-stage .result-big{color:#ffe0a0;font-size:34px}.tool-stage .drum{color:#f2c982}.tool-stage .chip-item{background:#ffffff0c;border-color:#ffffff28;color:#e6eaf1}.tool-stage .chip-item.on{background:#f5d79a;color:#14213d;border-color:#ffebb8;box-shadow:0 0 0 3px #f5d79a20}.tool-stage .face-card{background:#ffffff0b;border-color:#ffffff22;color:#e0e7f0}.tool-stage .face-card.on{background:#f6d99e;color:#14213d;border-color:#ffeabf}.tool-stage .order-item{background:#ffffff0c;color:#ecedf1;border:1px solid #ffffff12}.tool-stage .order-item .prize{color:#aebacf}.tool-stage .order-item .prize.reveal{color:#ffe0a0}.tool-stage .order-item.first,.tool-stage .order-item.win{color:#14213d}.tool-stage .order-item.win .prize{color:#7c4f13}
.tool-stage.tense{animation:none}.tense .game-status{background:#dc6d26;color:#fff;border-color:#ffaf6b;animation:statusPulse 1s ease-in-out infinite}.game-revealed .stage-side{animation:resultEnter .45s both}.game-revealed .game-status{color:#ffe0a0;border-color:#ffe0a066}.game-revealed .result-big{animation:resultEnter .4s cubic-bezier(.15,1.3,.4,1)}
[data-game=coin] .stage-scene{background:radial-gradient(ellipse at 50% 30%,#fff6d6,#decda6)}.coin-face{border:3px solid #d5a34e}.coin-face:after{inset:9px;border-width:3px}.coin-shadow{width:150px}
[data-game=roulette] .stage-scene{background:radial-gradient(ellipse at center,#f9eddf,#dcc7ad)}.roulette-wrap{width:min(295px,68vw);border:8px solid #14213d;border-radius:50%;box-shadow:0 0 0 3px #d3a559,0 0 0 9px #fff8e8,0 15px 25px #14213d30}.roulette-hub{border:3px solid #dfb676;background:radial-gradient(circle at 35% 25%,#fff9e8,#eac787);color:#14213d}.roulette-pin{border-top-color:#14213d;top:-22px}
[data-game=ladder] .stage-scene{background:repeating-linear-gradient(0deg,transparent 0 23px,#14213d05 23px 24px),#f6f2e9}.ladder-svg{padding:8px;box-sizing:border-box}
[data-game=draw] .stage-scene{background:radial-gradient(ellipse at 50% 30%,#fff1e8,#e8c8b5)}.cup-body{background:linear-gradient(110deg,#e38c4d,#b54b20);border:3px solid #f7bf78;box-shadow:inset 0 8px 0 #ffffff20,0 16px 22px #77381d25;color:#fff6dd;font-size:16px;letter-spacing:5px}.stick{border-top:8px solid #cf6740}.stick-row:empty:before{content:'?  ?  ?';font:700 32px var(--mono);letter-spacing:15px;color:#b96639;padding:30px 0 50px}
[data-game=order] .stage-scene{background:#eee5d3}.track-field rect{fill:#c0d2a9;stroke:#89a578}.track-lane{stroke:#b9704e}.track-finish{stroke:#fff;opacity:1}.track-svg{padding:10px;box-sizing:border-box}
.game-marquee{width:100%;box-sizing:border-box}.tool-stage .face-card b{color:#d5dfef}.tool-stage .face-card small{color:#afbed2}.tool-stage .face-card.on b,.tool-stage .face-card.on small{color:#73531b}.sample-run{font-family:inherit;font-weight:600}
.ladder-preview{display:grid;grid-template-columns:repeat(3,1fr);width:180px;margin:auto;gap:15px 0;color:#b18548;text-align:center}.ladder-preview i{display:block;height:155px;border-left:5px solid #b8a58a;position:relative;margin-left:28px}.ladder-preview i:first-child:after,.ladder-preview i:nth-child(2):after{content:'';position:absolute;left:0;top:43px;width:56px;border-top:5px solid #b8a58a}.ladder-preview i:nth-child(2):after{top:103px}.ladder-preview b{font:24px var(--mono)}
.race-preview{width:80%;height:215px;margin:auto;border:14px double #b9704e;border-radius:110px;background:#c0d2a9;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 7px #b9704e55;color:#31513a}.race-preview span{font-size:37px}.race-preview b{font:10px var(--mono);letter-spacing:2px;margin-top:12px}.race-preview p{font-size:11px;margin-top:9px}
@media(min-width:1100px){.tool-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px;align-items:start}.tool-layout>.btn-row{grid-column:2}.tool-layout .opt-grid{grid-template-columns:1fr}.tool-layout>.card{padding:20px}.tool-layout .stage-split{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}.tool-layout .game-marquee{padding:16px 22px}}
@keyframes statusPulse{50%{box-shadow:0 0 0 4px #dc6d2625}}
@media(max-width:819px){.tool-stage .stage-fx{padding:14px}.tool-stage .stage-split{gap:10px}.tool-stage .stage-scene{height:320px}.tool-stage .stage-side{padding:14px 8px}.game-marquee{padding:14px}.game-marquee>span:first-child{font-size:7px;letter-spacing:.6px}.game-marquee>b{font-size:12px}.game-status{font-size:8px}.tool-stage .result-big{font-size:29px}.sample-run{font-size:10px;max-width:95px}.reveal-steps{gap:10px}}
@media(min-width:1000px){.two-col{gap:28px}.two-col>.stack:first-child>.card:first-child{padding:30px}}
@media(max-width:900px){.modes{grid-template-columns:repeat(2,minmax(0,1fr))}.lobby-copy{padding:32px 0 30px 26px}.lobby-copy h1{font-size:40px}.friend-nody{width:200px;left:20%}.friend-oni,.friend-quri{width:135px}.stage-bubble{font-size:10px;padding:8px}.bubble-one{left:0}.bubble-two{right:2%}.stage-orbit{width:260px;height:260px}.topbar{padding:13px 22px}.mode-top{flex-direction:row;align-items:center}.mode-face,.mode .dot{width:85px;height:85px;align-self:auto;margin:0}.mode-desc{min-height:40px}}
@media(max-width:600px){.topbar{padding:11px 14px;gap:10px}.topbar-brand{font-size:17px}.topbar-brand img{width:32px;height:32px}.brand-caption{font-size:7px}.topbar-nav{gap:1px}.topbar-nav a{padding:9px 10px;font-size:12px}.topbar-out{display:none}.view{padding:18px 16px 35px}.lobby-hero{grid-template-columns:1fr;border-radius:23px;margin-bottom:28px}.lobby-copy{padding:28px 25px 0}.lobby-label{font-size:8px;margin-bottom:17px}.lobby-copy h1{font-size:39px;letter-spacing:-1.8px}.lobby-copy p{font-size:12px;margin-top:14px}.lobby-copy p br{display:none}.lobby-start{margin-top:18px;padding:15px 18px}.lobby-facts{font-size:9px;margin-top:17px;gap:12px}.lobby-stage{min-height:265px}.stage-orbit{width:210px;height:210px;top:49%}.friend-nody{height:180px;width:180px;bottom:41px;left:calc(50% - 90px)}.friend-oni,.friend-quri{width:128px;height:128px;bottom:73px}.friend-oni{left:5%}.friend-quri{right:3%}.stage-plinth{bottom:38px;height:42px}.stage-caption{font-size:6px;bottom:8px}.bubble-one{top:22px;left:5%}.bubble-two{top:37px;right:3%}.star-one{top:8px;right:34%;font-size:28px}.star-two{bottom:42px;font-size:30px}.lobby-section-head h2{font-size:19px}.lobby-section-head>a{font-size:10px}.eyebrow{font-size:9px}.modes{gap:13px}.mode{padding:15px 13px;border-radius:17px}.mode-number{font-size:8px;letter-spacing:.4px}.mode-top{flex-direction:column;align-items:flex-start;gap:10px}.mode-face,.mode .dot{width:87px;height:87px;align-self:center}.mode b{font-size:22px}.mode-tag{font-size:10px}.mode-desc{font-size:11px;min-height:57px}.mode-go{font-size:11px;padding:10px 9px;margin-top:10px}.lobby-note{font-size:10px;flex-direction:column;gap:5px}.hero{padding:18px;gap:12px}.hero img{width:66px;height:66px}.hero h1{font-size:23px}.hero .sub{font-size:12px}.card{padding:20px}.lobby-section-head{align-items:center}.sitefoot{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
