:root{--ink:#e9f5ff;--bg:#070c14;--panel:#101925;--line:#26384a;--cyan:#21d4ff;--amber:#ffbd3c;--red:#ff526f;--green:#7cff90}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;color:var(--ink);font-family:Pretendard,"Noto Sans KR",system-ui,sans-serif;background:radial-gradient(circle at 50% 0,#17324a 0,#080e17 38%,#05080d 100%);min-height:100vh}
button{font:inherit;cursor:pointer}
nav{height:58px;display:flex;justify-content:center;align-items:center;gap:30px;background:#080d14e8;border-bottom:1px solid #ffffff17;position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}
nav a{color:#a9b8c6;text-decoration:none;font-weight:800}
nav a.active,nav a:hover{color:#fff}
main{width:min(1160px,calc(100% - 28px));margin:auto}
.hero{text-align:center;padding:34px 10px 20px}
.eyebrow{font-size:12px;font-weight:1000;letter-spacing:.2em;color:var(--cyan)}
.hero h1{margin:6px 0 2px;font-size:clamp(36px,6vw,68px);font-weight:1000;letter-spacing:-.06em;text-shadow:0 4px 0 #173a53}
.hero p{margin:0;color:#a9b8c6}
.game-shell{background:#0b121d;border:1px solid var(--line);border-radius:24px;padding:14px;box-shadow:0 24px 80px #000b}
.hud{display:grid;grid-template-columns:110px 140px 1fr 1fr;gap:8px;margin-bottom:8px}
.hud>div{background:#111d2a;border:1px solid #26384a;border-radius:12px;padding:8px 11px;min-height:54px}
.hud small{display:block;color:#7790a6;font-size:10px;font-weight:900;letter-spacing:.12em}
.hud strong{font-size:19px}
.meter{display:grid!important;grid-template-columns:1fr auto;align-items:center;column-gap:10px}
.meter small{grid-column:1/-1}
.meter span,.boss-hud div{height:8px;background:#253342;border-radius:20px;overflow:hidden}
.meter i,.boss-hud i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ff526f,#ff8a45);transition:width .15s}
.meter b{font-size:12px}
.meter.energy i{width:0;background:linear-gradient(90deg,#24a9ff,#65efff)}
.boss-hud{display:grid;grid-template-columns:minmax(150px,260px) 1fr auto;align-items:center;gap:12px;padding:10px 14px;background:#17121a;border:1px solid #57303a;border-radius:12px;margin-bottom:8px}
.boss-hud span{font-weight:1000;font-size:13px}.boss-hud i{background:linear-gradient(90deg,#ffbd3c,#ff526f)}
.boss-hud b{font-size:12px;color:#ffb7c1}
.canvas-wrap{position:relative;overflow:hidden;border-radius:15px;border:2px solid #34516a;background:#111;aspect-ratio:16/9}
.canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:none;image-rendering:pixelated}
.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;background:#03070dcc;backdrop-filter:blur(4px);z-index:5}
.overlay.hidden{display:none}
.overlay span{font-size:12px;font-weight:1000;letter-spacing:.22em;color:var(--amber)}
.overlay h2{margin:8px 0;font-size:clamp(27px,5vw,54px);line-height:1.08;max-width:850px;word-break:keep-all;text-shadow:0 4px 0 #000}
.overlay p{max-width:650px;margin:5px 0 22px;color:#c1ced8;line-height:1.7;word-break:keep-all}
.overlay button{border:0;border-radius:12px;padding:13px 28px;background:var(--cyan);color:#04121d;font-weight:1000;box-shadow:0 6px 0 #087a98}
.skill-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:4;font-size:0;font-weight:1000;color:#fff;text-align:center;text-shadow:5px 5px 0 #06121c,-3px -3px 0 #06121c}
.skill-text.show{animation:skillPop 1s ease-out}
@keyframes skillPop{0%{font-size:25px;opacity:0;transform:scale(.5) rotate(-4deg)}25%{font-size:clamp(54px,11vw,128px);opacity:1;transform:scale(1.08) rotate(-2deg)}75%{font-size:clamp(48px,10vw,115px);opacity:1}100%{font-size:80px;opacity:0;transform:scale(1.25)}}
.game-controls{display:flex;align-items:center;justify-content:center;gap:28px;width:min(760px,100%);margin:14px auto 2px;padding:12px 16px;border:1px solid #294258;border-radius:18px;background:linear-gradient(180deg,#121f2c,#0d1722);user-select:none}
.joystick-zone{width:160px;flex:0 0 160px;display:flex;flex-direction:column;align-items:center;gap:5px;color:#7790a6;font-weight:900;letter-spacing:.15em}
.joystick{position:relative;width:138px;height:138px;border:2px solid #3d5b73;border-radius:50%;background:radial-gradient(circle at 42% 35%,#2e485f 0,#182b3c 45%,#0c1620 72%);box-shadow:inset 0 0 0 10px #0a121b99,inset 0 0 28px #000b,0 9px 18px #0008;touch-action:none;cursor:grab;outline:none}
.joystick:focus-visible{box-shadow:0 0 0 3px var(--cyan),inset 0 0 28px #000b,0 9px 18px #0008}
.joystick::before,.joystick::after{content:"";position:absolute;left:50%;top:50%;background:#66819a55;transform:translate(-50%,-50%);pointer-events:none}
.joystick::before{width:78%;height:1px}.joystick::after{width:1px;height:78%}
.joystick span{position:absolute;left:50%;top:50%;z-index:2;width:58px;height:58px;border:2px solid #78cae4;border-radius:50%;background:radial-gradient(circle at 36% 30%,#8ceaff,#1f94bd 42%,#0a4965 100%);box-shadow:inset 0 -7px 10px #06293899,0 7px 12px #000a;transform:translate(-50%,-50%);pointer-events:none;transition:transform .08s ease-out,box-shadow .15s}
.joystick.active{cursor:grabbing;border-color:var(--cyan)}
.joystick.active span{transition:none;box-shadow:inset 0 -7px 10px #06293899,0 0 20px #21d4ffcc}
.actions{flex:1;max-width:510px;display:grid;grid-template-columns:repeat(2,minmax(100px,1fr));gap:8px}
.actions button{min-height:54px;border:1px solid #3a5268;border-radius:12px;background:#162536;color:#fff;font-weight:1000;touch-action:none}
.actions button:active{transform:translateY(2px);filter:brightness(1.2)}
.actions .jump{background:linear-gradient(180deg,#315e79,#18364b);border-color:#54c7ef;box-shadow:inset 0 0 15px #21d4ff22}
.actions .attack{background:linear-gradient(180deg,#7d3041,#4f1d29);border-color:#ff607b;box-shadow:inset 0 0 16px #ff526f22}
.actions .charge{background:#173d51;border-color:#1ba5ca}
.actions .ultimate{grid-column:1/-1;background:#6d2834;border-color:#ff526f}
.actions .ultimate.ready{background:#ffbd3c;color:#241500;border-color:#ffe396;box-shadow:0 0 20px #ffbd3c88}
.actions button:disabled{opacity:.4}.actions small{font-size:10px}
.keyboard-guide{text-align:center;color:#8ea2b4;font-size:12px;margin:12px 0 2px}
kbd{display:inline-block;background:#203142;border:1px solid #496078;border-radius:5px;padding:2px 7px;color:#fff}
.round-list,.how{margin-top:22px;padding:28px;background:#0d1621;border:1px solid var(--line);border-radius:22px}
.round-list h2,.how h2{margin:6px 0 18px;font-size:clamp(24px,4vw,38px)}
.round-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.round-grid article{display:flex;align-items:center;gap:12px;padding:15px;border-radius:12px;background:#142231;border:1px solid #263d51}
.round-grid b{color:var(--cyan);font-size:12px}.round-grid span{font-weight:900}.round-grid .final{grid-column:1/-1;background:linear-gradient(90deg,#381a23,#172535);border-color:#713543}
.how>div{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.how article{padding:18px;border-radius:15px;background:#142231}.how article>b{color:var(--amber)}.how h3{margin:8px 0 4px}.how p{margin:0;color:#a9b8c6;line-height:1.65;font-size:14px}
.ad-container{min-height:90px;margin:28px auto;text-align:center}footer{text-align:center;padding:28px;color:#708699;font-size:12px}
@media(max-width:760px){nav{gap:17px;font-size:13px;height:52px}.hero{padding:22px 5px 14px}.hero h1{font-size:39px}.game-shell{padding:7px;border-radius:15px}.hud{grid-template-columns:1fr 1fr;gap:5px}.hud>div{min-height:45px;padding:6px 8px}.hud strong{font-size:15px}.boss-hud{grid-template-columns:1fr auto;padding:7px 9px;gap:5px}.boss-hud div{grid-column:1/-1;grid-row:2}.canvas-wrap{border-radius:10px}.game-controls{gap:10px;padding:9px 7px;border-radius:13px}.joystick-zone{width:126px;flex-basis:126px;font-size:10px}.joystick{width:112px;height:112px}.joystick span{width:48px;height:48px}.actions{gap:6px;grid-template-columns:repeat(2,minmax(62px,1fr))}.actions button{min-height:48px;font-size:13px}.keyboard-guide{display:none}.round-list,.how{padding:18px;border-radius:16px}.round-grid{grid-template-columns:1fr 1fr}.how>div{grid-template-columns:1fr}.overlay{padding:18px}.overlay p{font-size:13px;margin-bottom:15px}}
@media(max-width:390px){main{width:calc(100% - 12px)}.game-controls{gap:6px}.joystick-zone{width:112px;flex-basis:112px}.joystick{width:100px;height:100px}.actions{gap:5px}.actions button{font-size:11px}.round-grid{grid-template-columns:1fr}}
