@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Outfit:wght@400;500;600;700;800;900&display=swap');
:root{--bg:#f5f7fb;--paper:#fff;--ink:#14243b;--muted:#8794a8;--line:#e2e9f1;--blue:#2865e9;--deep:#173f9c;--cyan:#19bcda;--gold:#e8a83d;--coral:#e76a66;--radius:18px;--shadow:0 18px 55px #273d6b0c;--font:'DM Sans','Pretendard','Noto Sans KR','Malgun Gothic',sans-serif;--display:'Outfit','Pretendard','Malgun Gothic',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.57;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid #6da1fd;outline-offset:3px}.hidden{display:none!important}
.app-shell{width:min(100% - 44px,1420px);margin:auto}.topbar{min-height:88px;display:grid;grid-template-columns:minmax(200px,1fr) auto minmax(210px,1fr);align-items:center;gap:20px;background:#fff;border:1px solid #e8edf4;border-radius:0 0 18px 18px;padding:13px 26px;position:relative;z-index:10;box-shadow:0 4px 35px #36578409}
.brand{display:inline-flex;align-items:center;gap:13px;max-width:max-content}.brand-icon{width:48px;height:48px;background:#245ef0;border-radius:13px;display:flex;align-items:flex-end;justify-content:center;gap:3px;padding-bottom:11px;box-shadow:0 5px 10px #2662e92c}.brand-icon i{display:block;width:9px;background:#fff;border-radius:2px 2px 0 0}.brand-icon i:nth-child(1){height:10px}.brand-icon i:nth-child(2){height:18px}.brand-icon i:nth-child(3){height:27px}.brand-type strong{display:block;font-size:24px;font-weight:900;line-height:1.02;letter-spacing:-1.1px}.brand-dot{color:#346cff}.brand-type small{display:block;font:700 9px var(--display);letter-spacing:1.8px;color:#94a4bb;margin-top:7px}
.topnav{display:flex;align-items:center;gap:5px;background:#f3f6fb;border-radius:14px;padding:5px}.nav-item{border:0;border-radius:10px;background:transparent;padding:12px 16px;font-weight:800;color:#7d90ab;white-space:nowrap;transition:all .18s}.nav-item:hover{color:#315fba;background:#e7effe}.nav-item.active{background:#fff;color:#235be0;box-shadow:0 1px 6px #244d9720}.account-block{display:flex;gap:10px;align-items:center;justify-content:flex-end}.gold-pill{display:inline-flex;align-items:center;gap:9px;background:#fff9eb;border:1px solid #f1dfb8;border-radius:12px;padding:7px 12px;min-height:41px;color:#996b27;font-size:16px}.coin-icon{display:grid;place-items:center;width:24px;height:24px;background:linear-gradient(135deg,#ffdf6e,#efad38);border-radius:50%;font:800 12px var(--display);box-shadow:inset 0 -3px #d99425;color:#895717}.account-button{display:flex;align-items:center;gap:9px;border:1px solid #dbe4f2;background:#fff;padding:10px 13px;border-radius:12px;font-weight:800;color:#3d587c;min-height:41px}.status-dot,.online-pip,.green-dot,.eye-pip,.preview-dot{display:inline-block;width:8px;height:8px;background:#31c59c;border-radius:50%;box-shadow:0 0 0 4px #31c59c16;flex-shrink:0}
.ticker{display:flex;align-items:center;gap:13px;letter-spacing:1.2px;font:800 10px var(--display);color:#92a1b6;min-height:40px;padding-left:6px}.ticker-divider{color:#cdd7e5}
.guest-hero{display:grid;grid-template-columns:minmax(0,1.43fr) minmax(300px,.64fr);gap:22px;margin:2px 0 28px;align-items:stretch}.guest-hero__visual{background:#fff;border:1px solid #e3ebf4;border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}.hero-copy{padding:30px 32px 18px}.eyebrow{color:#94a0b1;font:800 10px var(--display);letter-spacing:1.65px}.eyebrow.accent{color:#2d70dd}.eye-pip{width:7px;height:7px;margin-right:7px;background:#56d3e2}.hero-copy h1{font-size:clamp(35px,3.3vw,56px);letter-spacing:-2.1px;line-height:1.13;margin:10px 0 12px;font-weight:900}.hero-copy h1 span{color:#2467eb}.guest-hero__copy{margin:0;color:#72839a;font-size:14px;line-height:1.8}.guest-hero__preview{position:relative;background:#8fc8e9;margin:0 18px;border-radius:13px;overflow:hidden;box-shadow:0 6px 15px #1b549122}.guest-hero__preview canvas{display:block;width:100%;height:auto;aspect-ratio:16/8.4;image-rendering:pixelated}.preview-label{position:absolute;left:16px;bottom:15px;background:#0c294bbd;color:#fff;border:1px solid #ffffff40;padding:9px 12px;border-radius:40px;font-size:9px;font-weight:900;letter-spacing:1.2px;display:flex;align-items:center;gap:10px}.preview-dot{background:#63dce5;width:7px;height:7px}.guest-hero__hud{display:flex;gap:10px;flex-wrap:wrap;padding:16px 22px;color:#8293ad;font-weight:800;font-size:12px}.guest-hero__hud span{background:#f3f7fd;border:1px solid #e6edf8;padding:8px 12px;border-radius:50px}
.guest-hero__auth{border:1px solid #dfebff;border-radius:22px;padding:33px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(150deg,#eff6ff 0,#fff 57%,#fff 100%);box-shadow:var(--shadow)}.join-badge{display:inline-flex;align-self:flex-start;color:#315de2;font-size:10px;letter-spacing:1px;background:#e7efff;font-weight:900;padding:9px 12px;border-radius:9px}.guest-card-head h2{font-weight:900;font-size:clamp(24px,2.4vw,34px);letter-spacing:-1.2px;line-height:1.3;margin:22px 0 12px}.guest-card-head p{color:#7f8fa6;line-height:1.85;margin:0 0 24px}.guest-card-actions{display:flex;flex-direction:column;gap:11px}.btn{border-radius:11px;border:1px solid transparent;padding:13px 17px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:800;transition:transform .16s,box-shadow .16s,background .16s;min-height:45px;text-align:center;white-space:normal}.btn:not(:disabled):hover{transform:translateY(-2px)}.btn:not(:disabled):active{transform:translateY(1px)}.btn span:last-child{margin-left:auto}.btn-primary{background:#2765e9;border-color:#2765e9;color:#fff;box-shadow:0 7px 18px #2765e928}.btn-primary:hover{background:#164dca;box-shadow:0 9px 22px #2765e933}.btn-outline{background:#fff;border-color:#cddcf4;color:#235acf}.btn-outline:hover{background:#edf5ff}.btn-ghost{background:#eff4fa;color:#56718f}.btn-ghost:hover{background:#e6eef8}.btn-light,.btn-dim{background:#f0f5fd;color:#2860bf;border-color:#e2ebf8}.btn-light:hover,.btn-dim:hover{background:#e5effe}.btn-dark,.btn-purple{background:#1d3559;color:#fff;border-color:#1d3559}.btn-dark:hover,.btn-purple:hover{background:#142840}.full{width:100%}.join-foot{border-top:1px solid #e5edf7;margin-top:23px;padding-top:17px;display:flex;gap:10px;flex-wrap:wrap;color:#93a4b9;font-size:12px;font-weight:700}.join-foot span{color:#386de5;font-weight:900}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;grid-template-areas:"stage right" "left right";gap:22px;align-items:start}.stage-col{grid-area:stage;min-width:0}.right-rail{grid-area:right;display:flex;flex-direction:column;gap:20px;min-width:0}.left-rail{grid-area:left;display:grid;grid-template-columns:1fr 1fr;gap:20px;min-width:0}.stage-top{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:2px 2px 19px}.stage-top h1{font-weight:900;letter-spacing:-1.5px;line-height:1.2;font-size:clamp(25px,2.5vw,36px);margin:8px 0 5px}.stage-subtitle{margin:0;color:#8799b0}.sound-button{white-space:nowrap;border:1px solid #d8e4f4;background:#fff;border-radius:11px;padding:11px 14px;color:#526e97;font-size:12px;font-weight:800}.sound-button:hover{background:#edf3ff}
.game-frame{background:#fff;border:1px solid #dae5f3;border-radius:20px;overflow:hidden;box-shadow:0 10px 38px #1b487315;isolation:isolate}.game-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 0}.game-badge,.game-corner{display:inline-flex;align-items:center;gap:9px;font:900 10px var(--display);letter-spacing:1.2px;color:#3f6cbd}.game-corner{color:#91a0b6}.arrow-up{color:#3e88f2;font-size:16px}
.game-metrics{display:grid;grid-template-columns:1.3fr .9fr .9fr .75fr;gap:10px;align-items:end;padding:14px 24px 20px}.game-metrics>div{border-left:1px solid #e4edf6;padding-left:18px;min-width:0}.game-metrics>div:first-child{border-left:0;padding-left:0}.metric-label{display:block;color:#899bb2;font-size:12px;font-weight:800}.metric-label small{font:800 9px var(--display);color:#a2b3c9}.game-metrics strong{display:block;font:800 clamp(20px,2.1vw,32px)/1.3 var(--display);color:#253b5b;letter-spacing:-.6px;margin-top:5px}.game-metrics .score-metric strong{font-size:clamp(34px,3.1vw,49px);line-height:1.1;color:#1d54cb}.game-metrics .best-metric strong{color:#6a83a6}.game-metrics .timer-metric strong{color:#bd7835}.game-metrics .combo-metric strong{color:#2c7ec3}.game-metrics .small-s{font-size:.52em;margin-left:2px;color:#a1acb9}.meter-wrap{height:6px;background:#eaf0f7;overflow:hidden}.meter-fill{height:100%;width:100%;background:linear-gradient(90deg,#2373e5,#2ac6d4);transition:width .1s linear}
.canvas-wrap{height:clamp(420px,41vw,610px);position:relative;isolation:isolate;background:#93cbee;overflow:hidden}.canvas-wrap canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.world-hud{position:absolute;z-index:2;top:22px;left:50%;transform:translateX(-50%);pointer-events:none;display:flex;flex-direction:column;align-items:center;text-shadow:0 2px 14px #103b6f70;color:white;line-height:1;filter:drop-shadow(0 2px 0 #274c80c9)}.world-hud__label{font:900 10px var(--display);letter-spacing:2.8px;white-space:nowrap}.world-hud strong{font:900 clamp(43px,6.4vw,85px)/.97 var(--display);letter-spacing:-2px;margin:8px 0 4px}.world-hud__unit{font:900 10px var(--display);letter-spacing:3px}.world-hud.bump strong{animation:scorePop .15s ease-out}@keyframes scorePop{50%{transform:scale(1.15)}}.journey-pill{position:absolute;z-index:2;top:18px;left:18px;display:flex;align-items:center;gap:9px;padding:10px 12px;background:#0e375ab0;color:#fff;font-weight:900;font-size:11px;border-radius:9px;pointer-events:none;backdrop-filter:blur(3px)}.journey-dot{height:7px;width:7px;border-radius:50%;background:#61efc5}.next-hint{position:absolute;z-index:2;top:18px;right:18px;display:flex;flex-direction:column;align-items:flex-end;gap:5px;color:#fff;font:900 10px var(--display);letter-spacing:1.3px;text-shadow:0 2px 4px #153c68a0;pointer-events:none}.next-hint strong{background:#ffdf78;color:#213f64;border-radius:8px;box-shadow:0 4px 0 #bb8e39;padding:10px 15px;font:900 19px var(--display);text-shadow:none;letter-spacing:0}
.center-overlay{position:absolute;z-index:5;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#10447338}.overlay-card{background:#fffffff0;border:1px solid #ffffff;border-radius:20px;box-shadow:0 20px 52px #0c3b6870;max-width:410px;width:100%;padding:27px 26px;text-align:center;backdrop-filter:blur(10px)}.overlay-tag{font:900 10px var(--display);letter-spacing:1.8px;color:#2c78c6;background:#eaf4ff;display:inline-flex;padding:9px 14px;border-radius:50px}.overlay-card h2{margin:18px 0 13px;font-size:clamp(25px,3vw,34px);line-height:1.25;letter-spacing:-1.6px;font-weight:900;color:#1f3857}.overlay-card h2 span{color:#2a69e7}.overlay-card p{color:#72859e;font-size:13px;line-height:1.8;margin:0 0 19px}.start-btn{font-size:16px;width:100%;min-height:54px}.overlay-bottom{font:900 9px var(--display);letter-spacing:1.5px;color:#9bb0c6;margin-top:19px}.game-floating-label{position:absolute;z-index:3;top:32%;left:50%;transform:translate(-50%,-50%) scale(.8);opacity:0;pointer-events:none;color:#fff;font:900 25px var(--display);text-shadow:0 3px 8px #1456ac;transition:opacity .16s,transform .16s}.game-floating-label.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.controls{display:grid;grid-template-columns:1fr 75px 1fr;align-items:center;gap:12px;padding:16px 18px;background:#fff}.control-btn{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:75px;border:1px solid #d7e4f2;border-radius:13px;background:#f4f8fd;color:#2856a7;padding:12px 26px;font-weight:900;transition:all .1s;touch-action:manipulation}.control-btn:hover,.control-btn.pressed{background:#e6f0ff;border-color:#7aaffb;transform:translateY(-1px)}.ctrl-arrow{font:900 34px/1 var(--display)}.ctrl-text{display:flex;align-items:center;gap:12px;font-size:15px}.ctrl-text b{display:grid;place-items:center;background:#dfeaff;border:1px solid #b6d1f4;border-radius:8px;color:#1e57b7;width:35px;height:35px;font:900 19px var(--display)}.control-divider{display:flex;align-items:center;flex-direction:column;gap:0;color:#a9b8ca}.control-divider>span{font-size:25px;color:#3d88e6}.control-divider small{text-align:center;font:900 8px/1.5 var(--display);letter-spacing:.7px}.under-stage{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 4px;color:#98a6b8;font-size:12px;font-weight:700}.under-stage b{color:#507097}.under-sep{padding:0 5px}.pvp-scoreline{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;background:#eaf3ff;font-weight:900;color:#2b64bc}.vs-line{color:#a0abbc}
.pixel-panel,.extra-section{background:#fff;border:1px solid #e0e8f2;border-radius:18px;box-shadow:var(--shadow)}.rank-panel,.duel-panel,.profile-panel,.instructions{padding:23px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.live-label{font:900 10px var(--display);letter-spacing:1px;color:#4d9d8c;display:flex;align-items:center;gap:8px}.rail-title{display:flex;align-items:center;justify-content:space-between;gap:7px;margin:13px 0 6px}.rail-title h3{font-size:19px;font-weight:900;letter-spacing:-.6px;margin:0}.text-button{border:0;background:none;padding:7px 2px;font-size:11px;font-weight:800;color:#3a72d9}.mini-ranking{min-height:280px;margin-bottom:14px}.rank-row{display:grid;grid-template-columns:24px 35px minmax(0,1fr) auto;align-items:center;gap:7px;padding:12px 0;border-bottom:1px solid #edf1f6}.rank-row .rank-number{font:900 15px var(--display);color:#8496ae}.rank-row:nth-child(1) .rank-number{color:#e7aa33}.rank-row:nth-child(2) .rank-number{color:#a5b6ce}.rank-row:nth-child(3) .rank-number{color:#b78260}.rank-avatar{width:34px;height:34px;background:#e7f2ff;border-radius:9px;image-rendering:pixelated}.rank-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:900;font-size:12px}.rank-score{font:900 13px var(--display);color:#285fc2}.empty-note{text-align:center;padding:50px 8px;color:#8d9db1;line-height:1.8;font-size:12px}
.duel-panel{background:linear-gradient(156deg,#153363,#193b69 50%,#1f4a85);border-color:#254d7b;color:#fff;overflow:hidden;position:relative}.duel-panel:after{content:"";position:absolute;right:-64px;top:10px;width:190px;height:190px;border:28px solid #ffffff0b;border-radius:50%}.duel-panel .eyebrow{color:#9eb9df}.tag-new{font:900 10px var(--display);letter-spacing:1px;background:#3569ad;color:#e4f6ff;padding:6px 9px;border-radius:8px}.duel-art{display:flex;align-items:center;justify-content:center;gap:12px;margin:23px 0 10px;position:relative}.duel-art>span:nth-child(2){font:900 20px var(--display);color:#99d9fd}.duel-circle{display:grid;place-items:center;width:65px;height:65px;border:2px solid #ffffff8c;border-radius:14px;font:900 19px var(--display)}.duel-circle.c1{background:#2565ad}.duel-circle.c2{background:#754eaa}.duel-panel h3{font-size:23px;font-weight:900;letter-spacing:-.6px;margin:10px 0}.duel-panel p{color:#c1d7f2;font-size:12px;line-height:1.8;margin:0 0 20px}.duel-panel .btn-dark{background:#fff;color:#2253a4;position:relative;border:0}.duel-panel .btn-dark:hover{background:#e5f1ff}
.profile-banner{display:flex;align-items:center;gap:14px;margin:17px 0}.avatar-frame{background:linear-gradient(#9cd9f6,#e8f7ff);border:1px solid #d7e8f5;border-radius:14px;width:77px;height:77px;display:grid;place-items:center;flex-shrink:0;overflow:hidden}.avatar-frame canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.profile-text{min-width:0}.profile-text h2{font-size:18px;font-weight:900;margin:0 0 5px;overflow-wrap:anywhere}.profile-text p{color:#8295ad;font-size:12px;margin:0}.chip-outline{font:900 9px var(--display);color:#81a0c7;background:#eff4fc;padding:6px 8px;border-radius:7px}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 16px;border:1px solid #e8eef6;border-radius:11px;overflow:hidden}.profile-stats>div{padding:12px 6px;text-align:center;border-right:1px solid #e8eef6}.profile-stats>div:last-child{border:0}.profile-stats small{display:block;color:#879db6;font-size:10px;font-weight:700}.profile-stats strong{display:block;font:900 25px var(--display);color:#2c60bb;margin-top:3px}.instructions h3{font-size:20px;margin:12px 0 6px;letter-spacing:-.6px}.instructions>p{color:#8697ad;line-height:1.75;font-size:12px;margin:0 0 15px}.tiny-star{color:#5392ec;font-size:19px}.keyboard-row{display:flex;align-items:center;gap:12px;margin:9px 0;font-weight:800;font-size:12px}.key{display:grid;place-items:center;width:36px;height:34px;background:#edf5ff;border:1px solid #b8d3f7;border-radius:9px;color:#2c62bd;font:900 16px var(--display)}.arrow-mini{margin-left:auto;color:#538adb}.instructions .instruction-foot{border-top:1px solid #e8eef6;margin-top:12px;padding-top:12px;font-size:10px;color:#a6b3c5}
.extra-section{margin:24px 0;padding:28px}.extra-header{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:25px}.extra-header h2{font-size:30px;letter-spacing:-1px;margin:8px 0 5px}.extra-header p{color:#91a0b4;margin:0}.ranking-table{width:100%;border-collapse:collapse}.ranking-table th{text-align:left;color:#92a3b8;font:900 10px var(--display);letter-spacing:.5px;padding:14px 10px;border-bottom:1px solid #dfe8f4}.ranking-table td{padding:16px 10px;border-bottom:1px solid #e6edf5;font-weight:700}.ranking-table td:first-child,.ranking-table td:last-child{color:#2a65c6;font:900 14px var(--display)}.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.shop-card,.pvp-card,.room-box{border:1px solid #e0e8f2;border-radius:14px;background:#f9fbfe;padding:20px}.shop-card h3,.pvp-card h3{font-size:19px;margin:9px 0}.shop-card p,.pvp-card p{color:#8195ad;font-size:12px;line-height:1.7;margin:0 0 16px}.shop-card .btn{width:100%}.shop-art{display:grid;place-items:center;height:140px;background:linear-gradient(140deg,#b1dffc,#e1f4ff);border-radius:12px;margin-bottom:14px}.shop-art canvas{width:120px;height:120px;image-rendering:pixelated}.rarity{color:#427fcb;font:900 10px var(--display)}.rarity.LEGEND{color:#cc9040}.pvp-board{display:grid;grid-template-columns:1fr 1fr;gap:18px}.pvp-card input{display:block;width:100%;border:1px solid #cbd8e9;border-radius:10px;background:#fff;color:#213f69;padding:12px;margin:0 0 12px;font-size:15px;letter-spacing:3px;text-transform:uppercase}.room-code{font:900 27px var(--display);letter-spacing:4px;color:#2c67cc}.room-persons{display:flex;gap:16px;margin:20px 0}.room-person{flex:1;border:1px solid #e2e8f4;padding:14px;border-radius:10px;background:#fff}.room-person b{display:block;margin:9px 0;font-size:16px}.room-person small{color:#9badc0}.ready-yes{color:#24a37d}.ready-no{color:#ba9455}.pvp-actions{display:flex;flex-wrap:wrap;gap:10px}
footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:26px 2px 35px;color:#9ba9bb;font-size:11px}footer strong{color:#465e7a}
.modal-backdrop{position:fixed;inset:0;z-index:50;background:#0b1c38b8;backdrop-filter:blur(8px);display:grid;place-items:center;padding:18px}.modal{position:relative;background:#fff;border-radius:22px;box-shadow:0 28px 90px #04132c70;padding:33px;width:min(100%,430px)}.modal-close{position:absolute;right:18px;top:17px;border:0;background:#edf3fd;border-radius:10px;padding:8px 12px;color:#5274a4}.modal h2{font-weight:900;font-size:29px;letter-spacing:-1.2px;margin:12px 0 6px}.modal-desc{color:#8495ae;margin:0 0 20px}.auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#edf3fb;border-radius:11px;padding:4px;margin-bottom:20px}.auth-switch button{border:0;border-radius:9px;background:transparent;padding:10px;color:#87a0be;font-weight:900}.auth-switch button.active{background:#fff;color:#2c63cb;box-shadow:0 2px 7px #244c8121}.modal label{display:block;margin:12px 0;font-weight:800;font-size:12px}.modal input{display:block;margin-top:7px;width:100%;border:1px solid #d3dfed;border-radius:10px;padding:13px;background:#fbfdff;color:#1c314b}.modal input::placeholder{color:#b1c0d1}.form-error{color:#cc5673;font-size:12px;min-height:18px;margin:8px 0}.auth-note{color:#a1afbe;font-size:11px;line-height:1.7;margin:16px 0 0}.toast-container{position:fixed;z-index:60;right:22px;bottom:22px;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:#163a69;color:white;border:1px solid #5f9bee;border-radius:12px;box-shadow:0 10px 27px #122d5355;padding:13px 19px;max-width:340px;font-size:12px;font-weight:800}.toast.error{background:#7c2d48}
@media(max-width:1180px){.topbar{grid-template-columns:minmax(180px,1fr) auto;gap:7px}.topnav{grid-column:1/-1;grid-row:2;justify-content:center}.account-block{grid-column:2;grid-row:1}.guest-hero{grid-template-columns:minmax(0,1fr) 340px}.layout{grid-template-columns:minmax(0,1fr) 275px}.game-metrics{padding-left:16px;padding-right:16px}.game-metrics>div{padding-left:12px}.control-btn{padding:12px 16px}}
@media(max-width:920px){.app-shell{width:min(100% - 24px,760px)}.guest-hero{grid-template-columns:1fr}.guest-hero__auth{padding:23px}.layout{grid-template-columns:1fr;grid-template-areas:"stage" "right" "left"}.right-rail{display:grid;grid-template-columns:1fr 1fr}.left-rail{grid-template-columns:1fr 1fr}.canvas-wrap{height:clamp(430px,70vw,600px)}.hero-copy h1{font-size:47px}}
@media(max-width:650px){.app-shell{width:100%;padding:0 10px}.topbar{border-radius:0 0 15px 15px;padding:12px 12px;gap:12px;grid-template-columns:minmax(0,1fr) auto}.brand{gap:9px}.brand-icon{width:39px;height:39px;border-radius:10px}.brand-type strong{font-size:19px}.brand-type small{font-size:7px;letter-spacing:1px}.gold-pill{min-height:34px;font-size:12px;padding:5px 7px;gap:4px}.coin-icon{width:21px;height:21px;font-size:10px}.account-button{font-size:10px;padding:7px 9px;min-height:34px;max-width:113px}.account-button #accountName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-button .status-dot{display:none}.topnav{width:100%;justify-content:stretch}.nav-item{flex:1;padding:11px 5px;font-size:12px}.ticker{padding:0 7px;gap:7px;min-height:32px;letter-spacing:.6px;font-size:8px}.guest-hero{gap:12px;margin:0 0 24px}.hero-copy{padding:23px 20px 14px}.hero-copy h1{font-size:clamp(31px,8vw,46px);letter-spacing:-1.7px}.guest-hero__copy{font-size:12px}.guest-hero__preview{margin:0 11px}.guest-hero__preview canvas{aspect-ratio:16/10}.preview-label{font-size:7px;padding:7px 9px;left:10px;bottom:10px}.guest-hero__hud{padding:14px;gap:6px}.guest-hero__hud span{font-size:10px;padding:6px 9px}.guest-hero__auth{padding:22px}.guest-card-head h2{font-size:26px;margin:15px 0 9px}.stage-top{padding:0 5px 13px;align-items:center}.stage-top h1{font-size:26px}.stage-subtitle{font-size:11px}.stage-top .eyebrow{font-size:8px}.sound-button{font-size:9px;padding:8px 9px}.game-head{padding:12px 13px 0}.game-corner{font-size:8px}.game-metrics{padding:13px 12px;gap:4px;grid-template-columns:1.05fr .86fr .92fr .63fr}.game-metrics>div{padding-left:7px}.metric-label{font-size:9px}.metric-label small{display:none}.game-metrics .score-metric strong{font-size:32px}.game-metrics strong{font-size:18px;margin-top:7px}.canvas-wrap{height:clamp(390px,111vw,560px)}.world-hud{top:74px}.world-hud strong{font-size:66px}.world-hud__label,.world-hud__unit{font-size:8px}.journey-pill{top:13px;left:10px;padding:8px 10px;font-size:10px}.next-hint{right:10px;top:13px;font-size:9px}.next-hint strong{font-size:17px;padding:8px 12px}.overlay-card{padding:20px 17px;border-radius:16px}.overlay-card h2{font-size:26px}.overlay-card p{font-size:11px}.center-overlay{padding:13px}.controls{grid-template-columns:1fr 43px 1fr;gap:7px;padding:10px}.control-btn{min-height:72px;padding:9px 11px}.ctrl-arrow{font-size:27px}.ctrl-text{gap:5px;font-size:11px}.ctrl-text b{width:28px;height:28px;font-size:16px}.control-divider small{font-size:7px}.control-divider>span{font-size:20px}.under-stage{font-size:10px;padding:12px 5px}.under-stage>span:last-child{display:none}.right-rail,.left-rail{grid-template-columns:1fr;gap:14px}.rank-panel,.duel-panel,.profile-panel,.instructions{padding:20px}.extra-section{padding:20px}.extra-header h2{font-size:24px}.extra-header{align-items:center}.extra-header .btn{font-size:10px;padding:8px 10px}.shop-grid,.pvp-board{grid-template-columns:1fr}.room-persons{flex-direction:column}.ranking-table td,.ranking-table th{padding:11px 5px;font-size:10px}.ranking-table th{font-size:8px}footer{padding:20px 7px 30px;flex-wrap:wrap;font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* V5 - actual routed screens (no content appended below play) */
body[data-view="ranking"] .guest-hero,body[data-view="shop"] .guest-hero,body[data-view="pvp"] .guest-hero{display:none!important}
body[data-view="ranking"] .layout,body[data-view="shop"] .layout,body[data-view="pvp"] .layout{display:none!important}
.extra-section{min-height:calc(100vh - 240px);margin:16px auto 28px;max-width:1120px;width:100%;padding:clamp(20px,3vw,44px);background:white;border:1px solid #e0e7f1;border-radius:20px;box-shadow:0 8px 32px #1e3e6b0b}
.extra-header{margin-bottom:30px;padding-bottom:22px;border-bottom:1px solid #e6ebf4}
.extra-header h2{font-size:clamp(32px,4vw,46px);color:#182640}
.rank-score{display:flex;flex-direction:column;align-items:end;gap:4px}
.rank-gold{font-size:11px;color:#a47713;font-weight:800}
.ranking-page .ranking-intro{margin-bottom:18px}
.ranking-intro span,.shop-intro span{font-weight:900;letter-spacing:1.5px;color:#4b74c7;font-size:11px}
.ranking-intro h3,.shop-intro h3{margin:9px 0;color:#17284a;font-size:clamp(22px,3vw,30px)}
.ranking-intro p,.shop-intro p{color:#63728c;line-height:1.6}
.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:27px 0 34px}
.podium-place{border:1px solid #dfe7f4;background:#f5f8fd;border-radius:16px;min-height:207px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;padding:16px;text-align:center}
.podium-place.place-1{background:linear-gradient(140deg,#fff9ea,#ffefd0);border-color:#efdab2}
.podium-place canvas{width:72px;height:72px;image-rendering:pixelated}
.podium-place strong{font-size:18px;color:#182740;overflow-wrap:anywhere}
.podium-place span:not(.podium-num){font-weight:800;color:#395a94}
.podium-place small{font-size:12px;color:#ac781f;font-weight:800}
.podium-num{background:#e3eafd;border-radius:30px;padding:5px 12px;font-size:11px;font-weight:900;color:#3459ae}
.ranking-table-wrap{overflow:auto;border-radius:12px;border:1px solid #e2e8f1}
.ranking-table{width:100%;white-space:nowrap;border-collapse:collapse}
.ranking-table th{background:#f3f6fc;color:#516079;letter-spacing:0;font-size:12px;font-weight:800;padding:17px 18px;text-align:left}
.ranking-table td{color:#25344e;font-size:14px;padding:18px}
.ranking-table td:last-child{color:#344d79}
.table-gold{color:#af7816;font-weight:800}
.my-tag{background:#dfe9ff;color:#355caa;padding:4px 7px;font-size:10px;border-radius:6px}
.shop-intro{margin:0 0 24px}.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px;margin:auto;gap:20px}
.shop-card{border:1px solid #e0e8f4;border-radius:16px;background:#fbfcff;box-shadow:0 6px 20px #263c680a;padding:20px}
.shop-art{background:linear-gradient(#e4f4ff,#f9e9cf);border:1px solid #dae6f2;border-radius:12px}
.shop-card .rarity.SPECIAL{color:#d67627}.shop-card h3{color:#1b2e4d}.shop-card p{color:#67758d}
.shop-card .btn{border-radius:10px}
/* Down-to-earth controls, readable status and animation */
.world-hud{pointer-events:none}
.canvas-wrap{background:#86c8f4}
.center-overlay{z-index:5}
.game-frame{border-radius:16px;overflow:hidden}
@media(max-width:720px){.extra-section{padding:20px 14px;min-height:60vh;border-radius:14px}.podium{gap:6px}.podium-place{min-height:150px;padding:10px 5px}.podium-place strong{font-size:12px}.podium-place canvas{height:54px;width:54px}.podium-place span:not(.podium-num){font-size:11px}.shop-grid{grid-template-columns:1fr}.ranking-table th,.ranking-table td{padding:12px 9px}}

.rank-tabs{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0 8px}
.rank-tabs button{border:1px solid #d9e3f4;background:#f4f7fc;color:#52658b;border-radius:10px;padding:12px 20px;font-weight:850;cursor:pointer;transition:background .2s,transform .2s}
.rank-tabs button:hover{transform:translateY(-1px);border-color:#b4c7e7}
.rank-tabs button.selected{background:#285cf2;color:#fff;border-color:#285cf2;box-shadow:0 5px 14px #285cf224}
.ability-badge{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:4;background:#fff1d4e8;border:1px solid #e8b86a;border-radius:9px;box-shadow:0 3px 10px #35231115;color:#8b470d;font-size:11px;font-weight:900;white-space:nowrap;padding:8px 12px;pointer-events:none}
.ability-badge.spent{opacity:.58;background:#e7ebf2;color:#556279;border-color:#b5c0cc}
@media(max-width:600px){.ability-badge{top:54px;left:12px;transform:none;font-size:10px}}
