:root{--gold:#f4d27a;--pink:#ff3c8f;--cyan:#49e8ff;--bg:#050509;--panel:rgba(12,10,20,.86)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% 20%,#241126 0,#09070d 45%,#030305 100%);color:#fff;font-family:Pretendard,Arial,sans-serif;overflow-x:hidden}body{touch-action:manipulation}.goal-top{height:68px;display:flex;align-items:center;justify-content:center;position:relative;z-index:20;padding:0 18px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(3,3,5,.72);backdrop-filter:blur(14px)}.back-link{position:absolute;left:18px;color:#bbb;text-decoration:none;font-size:12px;font-weight:800;letter-spacing:.08em}.brand{font-family:Cinzel,serif;font-weight:900;letter-spacing:.16em;color:#f5e3ad}.brand span{color:var(--pink);font-size:.72em}.account-badge{position:absolute;right:18px;color:var(--gold);font-size:11px;font-weight:800}.screen{display:none;min-height:calc(100vh - 68px);padding:34px 18px}.screen.active{display:flex}#setupScreen{flex-direction:column;align-items:center;justify-content:center}.hero-copy{text-align:center;margin:0 0 24px}.eyebrow{font-size:11px;letter-spacing:.3em;color:var(--cyan);font-weight:900}.hero-copy h1{font:900 clamp(4rem,12vw,8rem)/.9 Cinzel,serif;margin:12px 0;color:#fff;text-shadow:0 0 40px rgba(255,60,143,.35)}.hero-copy p{color:#bcb6c3;line-height:1.8;font-size:14px}.setup-card{width:min(520px,100%);padding:25px;border:1px solid rgba(255,255,255,.13);border-radius:28px;background:var(--panel);box-shadow:0 30px 90px rgba(0,0,0,.5);backdrop-filter:blur(15px)}.step-title{font-size:11px;letter-spacing:.2em;color:#aaa;margin:0 0 12px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:25px}.mode-btn,.character-card{border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.04);color:#ddd;border-radius:15px;padding:13px;cursor:pointer;font-weight:900}.mode-btn.selected{border-color:var(--pink);box-shadow:0 0 22px rgba(255,60,143,.18);color:#fff;background:rgba(255,60,143,.1)}.character-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.character-card{padding:8px;display:flex;flex-direction:column;gap:8px;align-items:center}.character-card img{width:100%;aspect-ratio:1;border-radius:12px;object-fit:cover}.character-card strong{font-size:14px}.character-card.selected{border-color:var(--gold);box-shadow:0 0 24px rgba(244,210,122,.18);transform:translateY(-2px)}.opponent-select-area{margin-top:24px}.opponent-select-area.is-cpu .opponent-character-grid{display:none}.opponent-cpu-note{display:none;margin:-2px 0 12px;color:#777;font-size:9px;letter-spacing:.16em;text-align:center}.opponent-select-area.is-cpu .opponent-cpu-note{display:block}.opponent-character-grid .opponent-card{padding:6px}.opponent-character-grid .opponent-card strong{font-size:12px}.opponent-row{display:flex;justify-content:space-between;margin:20px 0;padding:13px 15px;border-radius:12px;background:rgba(255,255,255,.045);font-size:12px;color:#999}.opponent-row strong{color:#fff}.primary-btn,.kick-btn{width:100%;border:0;border-radius:999px;padding:15px;background:linear-gradient(90deg,#ff277f,#a941ff);color:#fff;font-weight:900;letter-spacing:.12em;cursor:pointer;box-shadow:0 12px 30px rgba(255,39,127,.22)}#gameScreen{flex-direction:column;min-height:calc(100vh - 68px);height:calc(100dvh - 68px);padding:18px;overflow:hidden}.score-header{width:min(1100px,100%);margin:0 auto 10px;display:grid;grid-template-columns:1fr 190px 1fr;align-items:center;gap:12px;flex:0 0 auto}.player-mini{display:grid;grid-template-columns:48px 1fr;align-items:center;gap:4px 7px}.player-mini.right{text-align:right;grid-template-columns:1fr 48px}.player-mini img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}.player-mini b{font-size:25px;color:#fff}.player-mini span{font-size:10px;color:#aaa}.player-mini small{grid-column:2;color:var(--cyan);font-size:8px;font-weight:900;letter-spacing:.12em}.player-mini.right small{grid-column:1}.round-info{text-align:center}.round-info small{display:block;color:#999;font-size:10px;letter-spacing:.25em}.round-info strong{display:inline-block;font-size:52px;line-height:.9;margin:4px 3px 2px;text-shadow:0 0 24px rgba(244,210,122,.22)}.round-info em{font-style:normal;color:#777;font-size:14px}.round-info div{font-size:16px;color:var(--gold);font-weight:900;letter-spacing:.12em;margin-top:5px}.round-info span{display:block;font-size:9px;color:var(--cyan);font-weight:900;letter-spacing:.08em;margin-top:4px}.wall-stage{position:relative;width:min(1200px,100%);height:min(58vh,650px);min-height:390px;margin:0 auto;overflow:hidden;border-radius:28px;background:linear-gradient(#07050b,#14101a 58%,#211721);border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 0 100px #000,0 20px 70px rgba(0,0,0,.55);perspective:900px;flex:1 1 auto;min-height:0}.distance-label{position:absolute;top:15px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:.25em;color:#777;z-index:4}.target-wall{position:absolute;left:3%;right:3%;top:10%;bottom:8%;transform:rotateX(4deg);display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,1fr));gap:clamp(4px,.6vw,8px);padding:clamp(6px,1vw,12px);background:linear-gradient(145deg,#302633,#0b090e);border:clamp(6px,1vw,12px) solid #2d2630;box-shadow:0 25px 45px rgba(0,0,0,.7);overflow:hidden}.target{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;border:2px solid rgba(255,255,255,.22);border-radius:5px;color:#fff;font:900 clamp(14px,2.1vw,31px)/1 Arial,sans-serif;text-shadow:0 2px 5px #000;box-shadow:inset 0 0 14px rgba(0,0,0,.5),0 3px 8px rgba(0,0,0,.4);transform:rotate(var(--r)) translateZ(var(--z));transition:transform .18s,opacity .5s,filter .18s,box-shadow .18s}.target::after{content:'';position:absolute;inset:5px;border:1px solid rgba(255,255,255,.14)}.target.aimed{filter:brightness(1.35);box-shadow:inset 0 0 20px rgba(255,255,255,.12),0 0 22px rgba(73,232,255,.55);border-color:var(--cyan);z-index:3}.target.hit{transform:translate3d(0,135px,180px) rotate(78deg)!important;opacity:0}.target.hit-impact{animation:targetImpact .24s ease-out}.target.plus{background:linear-gradient(145deg,#155d52,#0b2f2b)}.target.minus{background:linear-gradient(145deg,#7d1d3b,#3b1020)}.target.zero{background:linear-gradient(145deg,#5d5262,#28232c)}.wall-ground{position:absolute;left:-10%;right:-10%;bottom:-18%;height:30%;background:linear-gradient(#161018,#050406);transform:rotateX(65deg);transform-origin:top;box-shadow:0 -20px 45px rgba(0,0,0,.8)}.ball{position:absolute;z-index:8;left:50%;bottom:9%;font-size:clamp(45px,7vw,78px);transform:translateX(-50%);filter:drop-shadow(0 15px 10px rgba(0,0,0,.7));cursor:grab;user-select:none;touch-action:none;will-change:left,bottom,transform}.ball.dragging{cursor:grabbing;filter:drop-shadow(0 12px 10px rgba(0,0,0,.75)) drop-shadow(0 0 18px rgba(73,232,255,.25))}.ball.kicking{filter:drop-shadow(0 16px 10px rgba(0,0,0,.7)) drop-shadow(0 0 12px rgba(244,210,122,.2))}.aim-panel{width:min(700px,100%);margin:10px auto 0;flex:0 0 auto}.aim-hint{text-align:center;color:#aaa;font-size:11px;margin-bottom:8px}.power-meter{height:14px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);margin:0 0 10px;box-shadow:inset 0 2px 5px rgba(0,0,0,.4)}.power-fill{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#49e8ff,#f4d27a,#ff3c8f);box-shadow:0 0 18px rgba(255,60,143,.4);transition:width .06s linear}.meters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.meters div{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:8px;text-align:center}.meters span{display:block;color:#777;font-size:8px;letter-spacing:.15em}.meters b{font-size:14px;color:var(--gold)}.kick-btn{background:rgba(255,255,255,.08);box-shadow:none}.kick-btn:disabled{opacity:.5;cursor:not-allowed}.shot-popup{position:fixed;left:50%;top:43%;z-index:20000;transform:translate(-50%,-50%) scale(.6);font:900 clamp(3.5rem,12vw,8rem)/1 Arial,sans-serif;color:#fff;text-shadow:0 5px 25px rgba(0,0,0,.8),0 0 35px rgba(255,60,143,.55);pointer-events:none;animation:shotPop 1.05s ease-out forwards}.shot-popup.positive{color:#fff}.shot-popup.negative{color:#ff668f}.shot-popup.miss{color:#bbb;font-size:clamp(2.5rem,8vw,5rem)}.shot-popup::after{content:'POINTS';display:block;text-align:center;font-size:10px;letter-spacing:.4em;color:var(--gold)}.shot-popup.miss::after{content:'NO HIT'}.shot-popup[data-quality]::before{content:attr(data-quality);display:block;position:absolute;top:-22px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.25em;color:var(--cyan)}.result-screen{flex-direction:column;align-items:center;justify-content:center;text-align:center}.result-screen h2{font:900 clamp(3rem,12vw,7rem) Cinzel,serif;margin:15px 0}.final-score{display:flex;gap:25px;align-items:center}.final-score div{display:flex;flex-direction:column;gap:5px}.final-score span{font-size:10px;color:#888}.final-score strong{font-size:48px}.final-score i{font-size:40px;color:#555;font-style:normal}.result-screen .primary-btn{max-width:300px;margin-top:35px}@keyframes targetImpact{0%{filter:brightness(2);transform:scale(1.08) rotate(var(--r)) translateZ(var(--z))}100%{filter:brightness(1);transform:rotate(var(--r)) translateZ(var(--z))}}@keyframes shotPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.55)}14%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}70%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-57%) scale(.92)}}@keyframes goalShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}body.goal-score-impact .wall-stage{animation:goalShake .24s ease-out}body.goal-miss-impact .wall-stage{animation:goalShake .16s ease-out}@media(max-width:650px){.goal-top{height:58px}.brand{font-size:12px}.back-link{font-size:9px;left:10px}.account-badge{right:10px;font-size:9px}.screen{min-height:calc(100vh - 58px);padding:14px 8px}#gameScreen{height:calc(100dvh - 58px);min-height:0;padding:10px 8px;overflow:hidden}.hero-copy{margin-bottom:14px}.setup-card{padding:18px}.character-grid{gap:6px}.character-card{padding:5px}.character-card strong{font-size:12px}.score-header{grid-template-columns:1fr 92px 1fr;gap:3px;margin-bottom:6px}.player-mini{grid-template-columns:32px 1fr}.player-mini.right{grid-template-columns:1fr 32px}.player-mini img{width:32px;height:32px}.player-mini b{font-size:18px}.player-mini span{font-size:8px}.player-mini small{font-size:6px}.round-info strong{font-size:38px}.round-info small{font-size:7px}.round-info em{font-size:9px}.round-info div{font-size:11px}.round-info span{font-size:7px}.wall-stage{width:100%;height:auto;min-height:0;flex:1 1 auto;border-radius:16px;perspective:700px}.target-wall{left:2%;right:2%;top:5%;bottom:7%;transform:rotateX(3deg);grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));gap:3px;padding:5px;border-width:5px}.target{font-size:clamp(10px,3.5vw,18px);border-width:1px;border-radius:4px}.target::after{inset:3px}.target.aimed{box-shadow:inset 0 0 10px rgba(255,255,255,.12),0 0 12px rgba(73,232,255,.55)}.ball{font-size:clamp(42px,12vw,60px);bottom:6%}.aim-panel{margin-top:6px}.aim-hint{font-size:9px;margin-bottom:5px}.power-meter{height:9px;margin-bottom:6px}.meters{gap:4px;margin-bottom:5px}.meters div{padding:5px 3px}.meters span{font-size:6px}.meters b{font-size:11px}.kick-btn{padding:10px;font-size:11px}}@media(min-width:651px) and (max-height:800px){#gameScreen{padding-top:10px;padding-bottom:10px}.score-header{margin-bottom:6px}.player-mini img{width:40px;height:40px}.player-mini b{font-size:21px}.wall-stage{min-height:0}.aim-panel{margin-top:6px}.meters div{padding:5px}.power-meter{height:10px}}