:root{--bg:#03101a;--panel:rgba(5,16,28,.82);--panel2:rgba(7,21,36,.92);--line:rgba(81,205,255,.22);--cyan:#17dcff;--cyan2:#268dff;--violet:#c05cff;--red:#ff5367;--green:#1de0ad;--text:#f3fbff;--muted:#95adbf}button{font:inherit}.gb-root a{color:inherit;text-decoration:none}.gb-root{margin:0;width:100%;min-height:100vh;background:#020a12;color:var(--text);font-family:Inter,Pretendard,Noto Sans KR,Arial,sans-serif;overflow:hidden;position:relative;word-break:keep-all;overflow-wrap:break-word}.game-bg{z-index:0;background-image:radial-gradient(circle at 30% 20%,#123049,transparent 60%),radial-gradient(circle at 80% 80%,#2a1240,transparent 55%),linear-gradient(160deg,#03101a,#020a12);transform:scale(1.035);animation:bgBreath 8s ease-in-out infinite alternate;will-change:transform}.game-bg,.game-bg:after{position:absolute;inset:0}.game-bg:after{content:"";background:radial-gradient(circle at 50% 62%,rgba(16,178,255,.08),transparent 36%),linear-gradient(180deg,rgba(1,8,16,.35),rgba(1,8,16,.18) 35%,rgba(1,8,16,.56))}@keyframes bgBreath{0%{transform:scale(1.03) translateZ(0)}to{transform:scale(1.06) translate3d(0,-6px,0)}}.scanline{z-index:2;opacity:.14;background:repeating-linear-gradient(180deg,rgba(255,255,255,.04) 0 1px,transparent 1px 4px);mix-blend-mode:screen}.scanline,.vignette{pointer-events:none;position:absolute;inset:0}.vignette{z-index:1;box-shadow:inset 0 0 180px 60px rgba(0,0,0,.62)}.topbar{position:relative;z-index:10;height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:rgba(3,12,22,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.06)}.brand{font-weight:900;font-size:25px;letter-spacing:-.04em}.brand span{color:var(--cyan)}.nav{display:flex;gap:30px;font-size:14px;color:#cbd9e4}.nav b{color:#fff;position:relative}.nav b:after{content:"";position:absolute;left:0;right:0;bottom:-22px;height:2px;background:var(--cyan);box-shadow:0 0 14px var(--cyan)}.nav-toggle{display:none;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:transparent;border:1px solid rgba(255,255,255,.14);color:var(--cyan);font-size:16px;cursor:pointer}.nav-panel{position:absolute;top:100%;left:0;right:0;z-index:30;display:flex;flex-direction:column;background:rgba(2,8,18,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08);padding:6px 30px 12px}.nav-panel a,.nav-panel b,.nav-panel span{padding:12px 4px;font-size:14px;color:#cbd9e4;border-bottom:1px solid rgba(255,255,255,.06)}.nav-panel a:last-child,.nav-panel b:last-child,.nav-panel span:last-child{border-bottom:0}.nav-panel b{color:#fff}.user{display:flex;align-items:center;gap:12px;color:#dfeaf1;font-size:13px}.online{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green)}.stage{position:relative;z-index:5;height:calc(100vh - 66px);display:flex;align-items:center;justify-content:center;padding:18px 26px 24px}.arena{width:min(1440px,96vw);display:grid;grid-template-rows:auto 1fr auto;grid-gap:16px;gap:16px}.hero-copy{text-align:center;text-shadow:0 4px 20px rgba(0,0,0,.65)}.hero-copy .kicker{font-size:12px;letter-spacing:.22em;color:#8fdfff;font-weight:800}.hero-copy h1{margin:8px 0 6px;font-size:clamp(30px,3.6vw,52px);letter-spacing:-.05em}.hero-copy p{margin:0;color:#c3d2dd;font-size:15px}.main-card{position:relative;background:linear-gradient(180deg,rgba(5,17,30,.94),rgba(4,14,25,.88));border:1px solid rgba(49,196,255,.38);border-radius:22px;box-shadow:0 0 0 1px rgba(117,228,255,.04),0 30px 100px rgba(0,86,185,.28),0 0 34px rgba(23,220,255,.08);overflow:hidden}.main-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 0 44%,rgba(20,209,255,.04) 50%,transparent 56% 100%);animation:sheen 6s linear infinite}@keyframes sheen{0%{transform:translateX(-60%)}to{transform:translateX(60%)}}.race-head{display:grid;grid-template-columns:220px 1fr 220px;align-items:center;padding:20px 28px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.player{display:flex;align-items:center;gap:14px}.avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--cyan);box-shadow:0 0 22px rgba(23,220,255,.22);background:#092338;font-size:27px}.avatar.ghost{border-color:var(--violet);box-shadow:0 0 22px rgba(192,92,255,.24);background:#24103b}.player strong{display:block;font-size:24px;line-height:1}.player small{color:var(--muted);font-size:12px}.player.right{justify-content:flex-end;text-align:right}.race-track{padding:0 22px}.track-line{position:relative;height:8px;background:#203247;border-radius:999px;overflow:visible;box-shadow:inset 0 0 12px rgba(0,0,0,.4)}.track-progress{position:absolute;left:0;top:0;bottom:0;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),#3aa6ff 58%,var(--violet));box-shadow:0 0 16px rgba(62,185,255,.34)}.runner{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:23px;filter:drop-shadow(0 0 10px currentColor);transition:left .16s linear}.runner.you{color:var(--cyan)}.runner.ghost{color:var(--violet)}.gap-label{position:absolute;top:-30px;transform:translateX(-50%);font-size:12px;color:#e49aff;background:rgba(55,17,79,.62);border:1px solid rgba(202,104,255,.24);padding:4px 9px;border-radius:999px}.typing-zone{padding:18px 28px 22px}.typing-meta{display:flex;justify-content:space-between;color:#9cb1c1;font-size:12px;margin-bottom:8px}.sentence-rows{display:flex;flex-direction:column;gap:10px}.sentence-row{position:relative;display:flex;align-items:center;gap:16px;min-height:72px;border:1px solid rgba(116,204,245,.14);border-radius:14px;background:rgba(2,12,23,.74);padding:14px 20px;box-shadow:inset 0 0 30px rgba(0,0,0,.26)}.sentence-row.ghost{border-color:rgba(192,92,255,.18)}.sentence-row.leading{box-shadow:inset 0 0 30px rgba(0,0,0,.26),0 0 0 1px rgba(29,224,173,.5),0 0 18px rgba(29,224,173,.18)}.row-rank{flex:0 0 auto;width:44px;text-align:center;font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--green);background:rgba(29,224,173,.12);border:1px solid rgba(29,224,173,.4);border-radius:999px;padding:3px 0;visibility:hidden}.row-rank.show{visibility:visible}.sentence-row .row-icon{flex:0 0 auto;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:19px;border:2px solid var(--cyan);background:#092338;box-shadow:0 0 14px rgba(23,220,255,.2)}.sentence-row.ghost .row-icon{border-color:var(--violet);background:#24103b;box-shadow:0 0 14px rgba(192,92,255,.22)}.sentence-row .row-text{position:relative;flex:1 1;min-height:44px;text-align:left}.row-live{position:static;white-space:pre-wrap;font:800 clamp(17px,2.4vw,30px)/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.03em}.row-live-typed{color:#aef7ff;filter:drop-shadow(0 0 8px rgba(23,220,255,.22))}.row-live-wrong{color:var(--red);text-shadow:0 0 8px rgba(255,83,103,.5)}.row-live-composing{color:#aef7ff;border-bottom:2px solid var(--cyan)}.row-caret{display:inline-block;width:2px;height:1.1em;margin:0 1px;vertical-align:text-bottom;background:var(--cyan);box-shadow:0 0 8px rgba(23,220,255,.7);animation:row-caret-blink 1s steps(1) infinite}@keyframes row-caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.row-live-rest{color:rgba(180,198,212,.26)}.row-ghost-done{color:#df91ff;text-shadow:0 0 14px rgba(202,92,255,.26)}.sentence-row.error-flash{animation:errorFlash .2s ease}.raw-input-line{margin-top:10px;padding:8px 14px;border-radius:10px;background:rgba(9,25,40,.6);border:1px solid rgba(95,197,242,.12);font-size:12px;color:#8aa3b6;display:flex;align-items:baseline;gap:10px}.raw-input-label{flex:0 0 auto;letter-spacing:.05em}.raw-input-value{font:700 15px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:#aef7ff;letter-spacing:-.02em}.raw-input-wrong{color:var(--red);text-shadow:0 0 8px rgba(255,83,103,.5)}@keyframes errorFlash{0%{box-shadow:inset 0 0 0 0 rgba(255,83,103,0)}50%{box-shadow:inset 0 0 40px 6px rgba(255,83,103,.35)}to{box-shadow:inset 0 0 0 0 rgba(255,83,103,0)}}.countdown-overlay{position:fixed;inset:0;z-index:35;display:flex;align-items:center;justify-content:center;background:rgba(1,5,10,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none}.countdown-overlay-number{font-size:clamp(100px,24vw,260px);line-height:1;font-weight:900;color:#fff;text-shadow:0 0 70px var(--cyan);animation:countdownPulse .5s ease}@keyframes countdownPulse{0%{transform:scale(.85);opacity:.3}to{transform:scale(1);opacity:1}}.hud{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:10px;gap:10px;margin-top:14px}.hud-item{padding:14px 16px;background:rgba(9,25,40,.72);border:1px solid rgba(95,197,242,.14);border-radius:11px}.hud-item span{display:block;color:#8aa3b6;font-size:11px;margin-bottom:5px}.hud-item strong{font-size:22px}.hud-item.combo strong{color:#ff776f}.hud-item.time-warn{border-color:rgba(255,83,103,.4);background:rgba(58,10,17,.55)}.hud-item.time-warn strong{color:var(--red);text-shadow:0 0 10px rgba(255,83,103,.4)}.comboFlash{animation:comboPulse .35s ease}@keyframes comboPulse{0%{transform:scale(1)}50%{transform:scale(1.08);filter:drop-shadow(0 0 14px #ff6d67)}to{transform:scale(1)}}.bottom-row{display:grid;grid-template-columns:1.8fr .75fr 1fr 1fr;grid-gap:10px;gap:10px;margin-top:14px}.info-card{min-height:94px;padding:15px 18px;border-radius:12px;background:rgba(6,19,33,.78);border:1px solid rgba(104,203,247,.14);display:flex;align-items:center;gap:14px}.thumb{width:95px;height:62px;border-radius:8px;background:linear-gradient(135deg,#1d3853,#552978);box-shadow:inset 0 0 20px rgba(0,0,0,.4)}.info-card strong{display:block;font-size:20px}.info-card small{color:#8da5b8}.verified{color:var(--green)}.rematch{justify-content:center;text-align:center;background:linear-gradient(180deg,rgba(18,91,177,.24),rgba(6,20,35,.85))}.rematch button{width:100%;padding:15px;border:0;border-radius:9px;background:linear-gradient(90deg,var(--cyan),var(--cyan2));color:#00111b;font-weight:900;cursor:pointer;box-shadow:0 0 20px rgba(24,215,255,.22);transition:transform .18s ease,box-shadow .18s ease}.rematch button:hover{transform:translateY(-2px);box-shadow:0 0 28px rgba(24,215,255,.35)}.rematch.ending button{background:linear-gradient(90deg,#ff776f,var(--red));color:#1a0508;box-shadow:0 0 20px rgba(255,83,103,.24)}.rematch.ending button:hover{box-shadow:0 0 28px rgba(255,83,103,.36)}.flash{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 54%,rgba(42,222,255,.18),transparent 36%)}.flash.on{animation:overtake .45s ease}@keyframes overtake{0%{opacity:0}25%{opacity:1}to{opacity:0}}.overtake-text{position:absolute;left:50%;top:18%;transform:translate(-50%,-50%) scale(.7);z-index:15;opacity:0;font-weight:900;font-size:28px;letter-spacing:.12em;color:#fff;text-shadow:0 0 18px var(--cyan)}.overtake-text.show{animation:overtakeText .7s ease}@keyframes overtakeText{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}35%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}.flash.ghost-flash-on{background:radial-gradient(circle at 50% 54%,rgba(192,92,255,.18),transparent 36%);animation:ghostOvertake .45s ease}@keyframes ghostOvertake{0%{opacity:0}25%{opacity:1}to{opacity:0}}.overtake-text.ghost{color:var(--violet);text-shadow:0 0 18px var(--violet)}.overtake-text.ghost.show{animation:overtakeText .7s ease}.typing-input-sr{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.result-overlay{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:rgba(2,8,15,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.result-card{background:var(--panel2);border:1px solid rgba(117,228,255,.28);border-radius:20px;padding:40px 56px;text-align:center;box-shadow:0 30px 100px rgba(0,0,0,.5)}.result-card .complete-label{letter-spacing:.3em;font-size:12px;color:#8fdfff;font-weight:800}.result-card .duration{font-size:56px;font-weight:900;margin:10px 0}.result-card .ghost-result{font-size:20px;font-weight:800;margin-bottom:22px}.result-card .ghost-result.win{color:var(--green)}.result-card .ghost-result.lose{color:var(--red)}.result-card .ghost-result.tie{color:var(--muted)}.result-card .ghost-result-label{font-size:12px;letter-spacing:.2em;color:var(--muted);margin-top:4px}.session-summary{display:flex;gap:28px;justify-content:center;margin:18px 0 26px}.session-summary-item{display:flex;flex-direction:column;gap:4px}.session-summary-item span{font-size:11px;letter-spacing:.1em;color:var(--muted)}.session-summary-item strong{font-size:22px}.session-actions{display:flex;gap:12px;justify-content:center}.session-actions button{padding:13px 22px;border-radius:9px;border:0;font-weight:800;cursor:pointer;font-size:14px}.session-actions .session-retry{background:linear-gradient(90deg,var(--cyan),var(--cyan2));color:#00111b}.session-actions .session-exit{background:rgba(255,255,255,.08);color:var(--text);border:1px solid rgba(255,255,255,.16)}.confirm-overlay{position:fixed;inset:0;z-index:32;display:flex;align-items:center;justify-content:center;background:rgba(2,8,15,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.confirm-card{background:var(--panel2);border:1px solid rgba(117,228,255,.28);border-radius:20px;padding:32px 40px;text-align:center;box-shadow:0 30px 100px rgba(0,0,0,.5)}.confirm-card h3{margin:0 0 22px;font-size:20px}.confirm-actions{display:flex;gap:12px;justify-content:center}.confirm-actions button{padding:13px 22px;border-radius:9px;border:0;font-weight:800;cursor:pointer;font-size:14px}.confirm-actions .confirm-retry{background:linear-gradient(90deg,var(--cyan),var(--cyan2));color:#00111b}.confirm-actions .confirm-end{background:rgba(255,83,103,.14);color:var(--red);border:1px solid rgba(255,83,103,.4)}.gb-toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,12px);opacity:0;transition:.22s;border:1px solid rgba(255,83,103,.42);background:#1a0810;color:#ffd7dc;padding:10px 14px;font-size:12px;z-index:40;pointer-events:none;border-radius:8px}.gb-toast.show{opacity:1;transform:translate(-50%)}@media(max-width:1000px){.nav{display:none}.nav-toggle{display:inline-flex}.race-head{grid-template-columns:1fr 1.4fr 1fr}.race-head .player strong{font-size:18px}.hud{grid-template-columns:repeat(3,1fr)}.bottom-row{grid-template-columns:1fr 1fr}}@media(max-width:680px){.gb-root{overflow-y:auto;overflow-x:hidden}.stage{height:auto;min-height:calc(100vh - 60px);align-items:flex-start;padding:14px 12px 100px}.topbar{height:60px;padding:0 14px}.brand{font-size:19px}.user{gap:8px;font-size:12px}.hero-copy h1{font-size:clamp(24px,7vw,32px)}.hero-copy p{font-size:13px}.main-card{border-radius:16px}.race-head{grid-template-columns:1fr 1fr;grid-template-areas:"you ghost" "track track";gap:4px 10px;padding:10px 16px 8px}.race-head .player{grid-area:you;gap:8px}.race-head .player.right{grid-area:ghost;justify-content:flex-end;text-align:right}.race-head .race-track{grid-area:track;padding:2px 4px 0}.avatar{width:32px;height:32px}.avatar,.player strong{font-size:15px}.gap-label,.player small{font-size:10px}.gap-label{top:-22px}.runner{font-size:17px}.typing-zone{padding:14px 16px 16px}.row-live{font:800 clamp(16px,4.6vw,20px)/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.sentence-row{min-height:0;padding:12px 14px;gap:10px}.sentence-row .row-icon{width:34px;height:34px;font-size:16px}.countdown-overlay-number{font-size:clamp(64px,28vw,160px)}.confirm-card{padding:24px 26px;width:min(90vw,360px)}.hud{grid-template-columns:repeat(2,1fr)}.hud-item strong{font-size:19px}.bottom-row{grid-template-columns:1fr}.info-card{min-height:0}.thumb{display:none}.info-card.rematch{position:fixed;left:12px;right:12px;bottom:max(14px,env(safe-area-inset-bottom));z-index:20;box-shadow:0 10px 30px rgba(0,0,0,.45)}.result-card{padding:28px 22px;width:min(92vw,420px)}.result-card .duration{font-size:38px}.gb-root.keyboard-open .hero-copy{display:none}.gb-root.keyboard-open .race-head{padding:6px 16px}}