:root{--bg-primary: #0a0a15;--bg-secondary: #12121f;--bg-card: #1a1a2e;--bg-cell: #16213e;--bg-cell-hover: #1e2d50;--harry-gold: #d4a017;--harry-glow: #ffd700;--harry-bg: rgba(212, 160, 23, .08);--harry-mark: #f0c040;--voldy-green: #2ecc40;--voldy-glow: #39ff14;--voldy-bg: rgba(46, 204, 64, .08);--voldy-mark: #30e050;--voldy-dark: #0d3b1a;--text-primary: #e8d5b7;--text-secondary: #c3b197;--text-muted: #8b7c68;--border-color: #2a2a4a;--parchment: #1e1a14;--parchment-light: #2c2416;--purple-accent: #6c3fa0;--font-heading: "Cinzel", serif;--font-body: "Lora", serif;--board-size: min(88vw, 560px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html,body{height:100%;overflow-x:hidden}body.in-game-screen{overflow:hidden}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.4) 100%)}body:before{content:"";position:fixed;inset:-12%;pointer-events:none;z-index:9998;opacity:0;background:radial-gradient(circle at 14% 45%,rgba(186,216,255,.2),transparent 20%),radial-gradient(circle at 78% 40%,rgba(255,215,0,.16),transparent 18%),linear-gradient(112deg,transparent 26%,rgba(255,215,0,.14) 48%,rgba(255,255,255,.08) 52%,transparent 68%);transform:translate(-22%) scale(1.04)}body{font-family:var(--font-body);background:var(--bg-primary);background-image:radial-gradient(ellipse at 20% 0%,rgba(108,63,160,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 0%,rgba(13,59,26,.06) 0%,transparent 50%),radial-gradient(ellipse at 50% 100%,rgba(10,10,21,1) 0%,transparent 70%);color:var(--text-primary);display:flex;flex-direction:column;align-items:center;min-height:100vh}.screen{display:none;width:100%;min-height:100vh;min-height:100svh;flex-direction:column;align-items:center;justify-content:center;padding:20px}#screen-game{--board-size: min(54vh, 92vw, 500px);min-height:100svh;height:100svh;justify-content:flex-start;padding:10px 16px 12px;position:relative;gap:10px;overflow:hidden}.screen.active{display:flex}.screen.is-entering{animation:screenDriftIn .32s cubic-bezier(.22,1,.36,1)}#screen-title{justify-content:flex-start;padding-top:42px;padding-bottom:48px}#screen-online,#screen-leaderboard{justify-content:flex-start;padding-top:18px;padding-bottom:28px}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}body.screen-transitioning:before{animation:flooSweep .36s ease-out}@keyframes flooSweep{0%{opacity:0;transform:translate(-20%) scale(1.04)}22%{opacity:.95}to{opacity:0;transform:translate(18%) scale(1)}}@keyframes screenDriftIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.hogwarts-bg{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.castle-silhouette{position:absolute;bottom:0;left:0;width:100%;height:auto;min-height:200px;max-height:35vh;opacity:.6;z-index:1}.castle-silhouette rect{animation:windowFlicker 4s ease-in-out infinite alternate}.castle-silhouette rect:nth-child(odd){animation-delay:-1s}.castle-silhouette rect:nth-child(3n){animation-delay:-2.5s}.castle-silhouette rect:nth-child(4n){animation-delay:-.5s;animation-duration:3s}@keyframes windowFlicker{0%,80%{opacity:.3}85%{opacity:.7}90%{opacity:.2}to{opacity:.5}}.stars-layer{position:absolute;inset:0;z-index:0}.stars-slow{background-image:radial-gradient(1.5px 1.5px at 10% 8%,#ffd700 50%,transparent 50%),radial-gradient(1px 1px at 25% 15%,#ffffff 50%,transparent 50%),radial-gradient(1.5px 1.5px at 45% 5%,#ffd700 50%,transparent 50%),radial-gradient(1px 1px at 60% 12%,#ffffff 50%,transparent 50%),radial-gradient(2px 2px at 75% 3%,#ffd700 50%,transparent 50%),radial-gradient(1px 1px at 88% 18%,#ffffff 50%,transparent 50%),radial-gradient(1.5px 1.5px at 15% 28%,#ffffff 50%,transparent 50%),radial-gradient(1px 1px at 35% 22%,#ffd700 50%,transparent 50%),radial-gradient(1.5px 1.5px at 55% 30%,#ffffff 50%,transparent 50%),radial-gradient(1px 1px at 70% 25%,#ffd700 50%,transparent 50%),radial-gradient(2px 2px at 92% 8%,#ffffff 50%,transparent 50%),radial-gradient(1px 1px at 5% 35%,#ffd700 50%,transparent 50%),radial-gradient(1.5px 1.5px at 82% 32%,#ffffff 50%,transparent 50%),radial-gradient(1px 1px at 48% 18%,#ffffff 50%,transparent 50%),radial-gradient(1px 1px at 20% 42%,#ffd700 50%,transparent 50%),radial-gradient(1.5px 1.5px at 65% 38%,#ffffff 50%,transparent 50%),radial-gradient(1px 1px at 38% 45%,#ffffff 50%,transparent 50%),radial-gradient(1px 1px at 95% 40%,#ffd700 50%,transparent 50%);animation:starsTwinkle 6s ease-in-out infinite alternate;opacity:.6}.stars-fast{background-image:radial-gradient(1px 1px at 12% 6%,rgba(255,215,0,.8) 50%,transparent 50%),radial-gradient(1px 1px at 30% 10%,rgba(255,255,255,.7) 50%,transparent 50%),radial-gradient(1px 1px at 50% 3%,rgba(255,215,0,.6) 50%,transparent 50%),radial-gradient(1px 1px at 68% 14%,rgba(255,255,255,.8) 50%,transparent 50%),radial-gradient(1px 1px at 85% 7%,rgba(255,215,0,.7) 50%,transparent 50%),radial-gradient(1px 1px at 22% 20%,rgba(255,255,255,.6) 50%,transparent 50%),radial-gradient(1px 1px at 42% 16%,rgba(255,215,0,.7) 50%,transparent 50%),radial-gradient(1px 1px at 78% 22%,rgba(255,255,255,.5) 50%,transparent 50%),radial-gradient(1px 1px at 58% 28%,rgba(255,215,0,.6) 50%,transparent 50%),radial-gradient(1px 1px at 8% 32%,rgba(255,255,255,.7) 50%,transparent 50%),radial-gradient(1px 1px at 90% 26%,rgba(255,215,0,.5) 50%,transparent 50%),radial-gradient(1px 1px at 35% 35%,rgba(255,255,255,.6) 50%,transparent 50%);animation:starsTwinkle 4s ease-in-out infinite alternate-reverse;opacity:.4}@keyframes starsTwinkle{0%{opacity:.3}50%{opacity:.7}to{opacity:.4}}.deathly-hallows{position:absolute;width:280px;height:280px;top:50%;left:50%;transform:translate(-50%,-50%);color:#6c3fa00f;z-index:0;animation:hallowsSpin 60s linear infinite}@keyframes hallowsSpin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.mist{position:absolute;width:120%;height:150px;left:-10%;border-radius:50%;filter:blur(40px);z-index:1}.mist-1{bottom:120px;background:radial-gradient(ellipse at center,rgba(108,63,160,.08) 0%,transparent 70%);animation:mistDrift 20s ease-in-out infinite}.mist-2{bottom:60px;background:radial-gradient(ellipse at center,rgba(46,204,64,.04) 0%,transparent 70%);animation:mistDrift 25s ease-in-out infinite reverse;animation-delay:-8s}.mist-3{bottom:180px;background:radial-gradient(ellipse at center,rgba(212,160,23,.04) 0%,transparent 70%);animation:mistDrift 18s ease-in-out infinite;animation-delay:-12s}@keyframes mistDrift{0%,to{transform:translate(-5%) scaleX(1);opacity:.5}33%{transform:translate(3%) scaleX(1.1);opacity:.8}66%{transform:translate(-2%) scaleX(.95);opacity:.6}}.screen{z-index:2}.particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.particles:before,.particles:after{content:"";position:absolute;border-radius:50%;animation:float 8s ease-in-out infinite}.particles:before{width:4px;height:4px;background:var(--harry-gold);top:20%;left:15%;box-shadow:120px 40px #d4a01766,250px 100px 0 1px #d4a0174d,60px 200px #d4a01780,300px 250px 0 1px #d4a01733,180px 300px #d4a01766,400px 150px 0 1px #d4a0174d,50px 350px #d4a01733,350px 50px 0 1px #d4a01766;filter:blur(1px)}.particles:after{width:3px;height:3px;background:var(--voldy-green);top:50%;right:20%;box-shadow:-80px -30px #2ecc404d,-200px 60px 0 1px #2ecc4033,-120px -120px #2ecc4066,-300px -50px 0 1px #2ecc4033,-50px 100px #2ecc404d,-250px 120px 0 1px #2ecc4033;filter:blur(1px);animation-delay:-4s;animation-direction:reverse}@keyframes float{0%,to{transform:translateY(0) rotate(0);opacity:.7}50%{transform:translateY(-30px) rotate(180deg);opacity:1}}.title-layout{width:min(1140px,100%);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:24px;align-items:center;position:relative;z-index:1}.title-container{text-align:left;z-index:1}.title-mobile-hero{display:none}.title-story.panel-card,.title-menu-card.panel-card,.setup-shell.panel-card,.result-container.panel-card,.game-tools.panel-card{background:linear-gradient(180deg,#18172bf0,#0c0c18eb);border:1px solid rgba(232,213,183,.1);box-shadow:0 24px 60px #00000059,inset 0 1px #ffffff08}.title-story.panel-card{padding:34px}.title-menu-card.panel-card{padding:28px}.title-story.panel-card:before,.title-menu-card.panel-card:before,.setup-shell.panel-card:before,.result-container.panel-card:before,.game-tools.panel-card:before{content:"";position:absolute;inset:0;background:linear-gradient(140deg,rgba(255,215,0,.06),transparent 28%,transparent 72%,rgba(57,255,20,.04));pointer-events:none}.title-kicker,.section-kicker{font-family:var(--font-heading);font-size:.75rem;letter-spacing:1.8px;text-transform:uppercase;color:var(--harry-gold);margin-bottom:14px}.title-emblem{margin-bottom:18px;filter:drop-shadow(0 0 20px var(--harry-gold));animation:emblemPulse 3s ease-in-out infinite;display:flex;justify-content:flex-start}.title-emblem svg{filter:drop-shadow(0 0 10px rgba(255,215,0,.5))}@keyframes emblemPulse{0%,to{transform:scale(1);filter:drop-shadow(0 0 20px var(--harry-gold))}50%{transform:scale(1.08);filter:drop-shadow(0 0 40px var(--harry-gold))}}.game-title{font-family:var(--font-heading);font-size:clamp(2.8rem,7vw,5rem);font-weight:900;background:linear-gradient(180deg,gold,#b8860b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:2px;line-height:.96;text-shadow:none;margin-bottom:8px}.subtitle{font-family:var(--font-body);font-style:italic;color:var(--text-secondary);font-size:1.15rem;margin-bottom:18px}.title-intro{max-width:60ch;color:var(--text-secondary);line-height:1.75;font-size:1rem}.menu-eyebrow{font-family:var(--font-heading);font-size:.8rem;letter-spacing:1.8px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:16px}.menu-buttons{display:flex;flex-direction:column;gap:14px;align-items:stretch;width:100%}.btn-magic{font-family:var(--font-heading);font-size:1rem;font-weight:700;padding:14px 36px;border:2px solid var(--harry-gold);background:linear-gradient(135deg,#d4a01726,#d4a0170d);color:var(--harry-gold);border-radius:6px;cursor:pointer;letter-spacing:1.5px;text-transform:uppercase;transition:all .25s ease;min-width:220px;position:relative;overflow:hidden}.btn-magic>*{position:relative;z-index:1}.btn-magic:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#d4a01726;border-radius:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s}.btn-magic:hover:before{width:300px;height:300px}.btn-magic:hover{border-color:var(--harry-glow);color:var(--harry-glow);box-shadow:0 0 25px #d4a0174d}.btn-magic:active{transform:scale(.97)}.btn-secondary{border-color:var(--text-muted);color:var(--text-secondary);background:transparent;font-size:.85rem}.btn-secondary:hover{border-color:var(--text-secondary);color:var(--text-primary);box-shadow:none}.btn-small{padding:8px 20px;font-size:.8rem;min-width:auto}.btn-menu{width:100%;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:18px 20px;text-align:left;text-transform:none;letter-spacing:.8px}.btn-label{font-size:1.15rem;font-weight:700}.btn-hint{font-family:var(--font-body);font-size:.88rem;line-height:1.5;color:#e8d5b7d1;text-transform:none;letter-spacing:0}.btn-menu:hover .btn-hint{color:var(--text-primary)}.title-secondary-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.btn-inline{min-width:0;padding:11px 16px;font-size:.76rem}.title-menu-note{margin-top:18px;color:var(--text-secondary);line-height:1.7;font-size:.92rem}.setup-container{text-align:center;max-width:680px;width:min(680px,100%)}.setup-heading{font-family:var(--font-heading);font-size:1.8rem;color:var(--text-primary);margin-bottom:14px}.setup-shell.panel-card{padding:30px}.setup-copy{color:var(--text-secondary);line-height:1.7;max-width:42ch;margin:0 auto 28px}.role-select{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:30px;flex-wrap:wrap}.role-vs{font-family:var(--font-heading);font-size:1.2rem;color:var(--text-muted)}.role-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 30px;border:2px solid var(--border-color);border-radius:10px;background:var(--bg-card);cursor:pointer;transition:all .3s ease;min-width:180px;font-family:inherit;color:var(--text-primary);position:relative;overflow:hidden}.role-card .role-icon{font-size:2.5rem}.role-card .role-name{font-family:var(--font-heading);font-size:1.1rem;font-weight:700}.role-card .role-desc{font-size:.8rem;color:var(--text-muted)}.role-card[data-role=harry].selected{border-color:var(--harry-gold);box-shadow:0 0 20px #d4a01740;background:var(--harry-bg)}.role-card[data-role=voldemort].selected{border-color:var(--voldy-green);box-shadow:0 0 20px #2ecc4040;background:var(--voldy-bg)}.role-card:hover{border-color:var(--text-secondary);transform:translateY(-2px)}.difficulty-select{margin-bottom:25px}.difficulty-select label{display:block;font-family:var(--font-heading);font-size:.9rem;color:var(--text-secondary);margin-bottom:8px;letter-spacing:1px;text-transform:uppercase}.difficulty-select select{font-family:var(--font-body);font-size:1rem;padding:10px 16px;border:2px solid var(--border-color);border-radius:6px;background:var(--bg-card);color:var(--text-primary);cursor:pointer;min-width:220px}.setup-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.difficulty-select select:focus{outline:none;border-color:var(--purple-accent)}.game-topbar{width:min(92vw,760px);max-width:100%;display:flex;gap:10px;justify-content:flex-end}.game-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"harry turn voldemort";align-items:center;width:min(92vw,760px);max-width:100%;gap:12px}#screen-game.is-online .game-topbar,#screen-game.is-online .game-header,#screen-game.is-online .match-status-bar,#screen-game.is-online .game-main{width:min(96vw,1120px);max-width:100%}.game-main{width:min(92vw,760px);max-width:100%;display:flex;flex-direction:column;gap:10px;flex:1 1 auto;min-height:0}.game-primary{display:flex;flex-direction:column;gap:10px;flex:1 1 auto;min-height:0}.player-info{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);min-width:0}.harry-info{grid-area:harry;justify-self:start;border-color:#d4a0174d}.voldemort-info{grid-area:voldemort;justify-self:end;border-color:#2ecc404d}.player-icon{font-size:1.6rem;flex-shrink:0}.player-details{display:flex;flex-direction:column;gap:2px;min-width:0}.player-name{font-family:var(--font-heading);font-size:.92rem;font-weight:700;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-score{font-size:.8rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-goal{font-size:.7rem;color:var(--text-muted);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.harry-info .player-name{color:var(--harry-gold)}.voldemort-info .player-name{color:var(--voldy-green)}.turn-indicator{grid-area:turn;font-family:var(--font-heading);font-size:.9rem;font-weight:700;letter-spacing:1px;text-align:center;padding:6px 12px;border-radius:6px;white-space:nowrap;transition:color .3s,background .3s}.turn-indicator.turn-harry{color:var(--harry-gold);background:var(--harry-bg)}.turn-indicator.turn-voldemort{color:var(--voldy-green);background:var(--voldy-bg)}.turn-indicator.thinking{color:var(--text-muted);animation:thinkPulse 1.2s ease-in-out infinite}@keyframes thinkPulse{0%,to{opacity:.5}50%{opacity:1}}.hogwarts-bg:before{content:"";position:absolute;width:2px;height:2px;background:gold;border-radius:50%;top:8%;left:-5%;box-shadow:0 0 6px 2px #ffd70099;animation:shootingStar 8s ease-in infinite;animation-delay:3s;opacity:0}.hogwarts-bg:after{content:"";position:absolute;width:2px;height:2px;background:#fff;border-radius:50%;top:15%;right:-5%;box-shadow:0 0 6px 2px #fff9;animation:shootingStar2 12s ease-in infinite;animation-delay:7s;opacity:0}@keyframes shootingStar{0%{transform:translate(0) translateY(0);opacity:0}5%{opacity:1}30%{transform:translate(40vw) translateY(15vh);opacity:.8}35%{opacity:0}to{opacity:0;transform:translate(40vw) translateY(15vh)}}@keyframes shootingStar2{0%{transform:translate(0) translateY(0);opacity:0}3%{opacity:1}25%{transform:translate(-35vw) translateY(12vh);opacity:.7}30%{opacity:0}to{opacity:0;transform:translate(-35vw) translateY(12vh)}}.board-wrapper{display:flex;justify-content:center;align-items:center;position:relative;width:100%;flex:1 1 auto;min-height:0}.board-wrapper:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);width:calc(var(--board-size) + 16px);height:calc(var(--board-size) + 16px);border-radius:14px;background:radial-gradient(ellipse at center,rgba(108,63,160,.15) 0%,rgba(108,63,160,.05) 40%,transparent 70%);z-index:-1;animation:boardAura 4s ease-in-out infinite alternate}@keyframes boardAura{0%{opacity:.5;filter:blur(8px)}to{opacity:.8;filter:blur(12px)}}.ultimate-board{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:6px;width:var(--board-size);height:var(--board-size);padding:10px;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:10px;box-shadow:0 0 40px #00000080,inset 0 0 30px #0000004d}.mini-board{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px;padding:3px;background:var(--parchment);border-radius:4px;position:relative;transition:box-shadow .3s,opacity .3s}.mini-board.active-target{box-shadow:0 0 12px 2px #ffd70059}.mini-board.inactive-target{opacity:.45}.mini-board.won-harry{box-shadow:0 0 18px 4px #d4a01780}.mini-board.won-voldemort{box-shadow:0 0 18px 4px #2ecc4080}.mini-board.board-draw{opacity:.5}.cell{display:flex;align-items:center;justify-content:center;background:var(--bg-cell);border-radius:2px;cursor:pointer;font-size:calc(var(--board-size) / 18);transition:background .2s,transform .1s;-webkit-user-select:none;user-select:none;position:relative;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.cell:hover:not(.taken){background:var(--bg-cell-hover)}.cell:active:not(.taken){transform:scale(.95)}.cell.taken{cursor:default}.cell.harry-mark:after{content:"⚡";color:var(--harry-mark);text-shadow:0 0 6px var(--harry-glow)}.cell.voldemort-mark:after{content:"☠";color:var(--voldy-mark);text-shadow:0 0 6px var(--voldy-glow)}.cell.mark-appear:after{animation:markAppear .3s cubic-bezier(.34,1.56,.64,1)}@keyframes markAppear{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.board-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:4px;font-size:calc(var(--board-size) / 10);pointer-events:none;opacity:0;transition:opacity .4s;z-index:2}.board-overlay.active{opacity:1;pointer-events:auto;animation:overlayAppear .5s ease-out}.won-harry .board-overlay.active{background:radial-gradient(circle,#d4a01766,#d4a01726);text-shadow:0 0 20px var(--harry-glow);color:var(--harry-gold)}.won-voldemort .board-overlay.active{background:radial-gradient(circle,#2ecc4059,#0d3b1a66);text-shadow:0 0 20px var(--voldy-glow);color:var(--voldy-green)}.board-draw .board-overlay.active{background:#00000080;color:var(--text-muted)}@keyframes overlayAppear{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.shield-overlay{position:absolute;inset:-2px;border-radius:6px;pointer-events:none;opacity:0;transition:opacity .4s;z-index:3}.shield-overlay.active{opacity:1;border:2px solid rgba(192,192,255,.5);background:radial-gradient(circle,rgba(192,192,255,.1) 0%,transparent 70%);box-shadow:0 0 15px #c0c0ff4d,inset 0 0 15px #c0c0ff1a;animation:shieldShimmer 2s ease-in-out infinite}.shield-overlay.active:after{content:attr(data-turns) " turns";position:absolute;top:2px;right:4px;font-size:.55rem;font-family:var(--font-heading);color:#c0c0ffcc;letter-spacing:.5px}.shield-overlay.shield-cast{animation:shieldCast .8s ease-out}@keyframes shieldShimmer{0%,to{border-color:#c0c0ff66}50%{border-color:#c0c0ffb3}}@keyframes shieldCast{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}.cell.spell-expelliarmus{animation:expelliarmusAnim .6s ease-out}@keyframes expelliarmusAnim{0%,to{transform:translate(0)}10%{transform:translate(-4px)}20%{transform:translate(4px)}30%{transform:translate(-3px)}40%{transform:translate(3px)}50%{transform:translate(-2px);opacity:1}80%{opacity:.3}to{opacity:1}}.cell.spell-avadaKedavra{animation:avadaAnim .7s ease-out}@keyframes avadaAnim{0%{box-shadow:inset 0 0 #2ecc40cc}40%{box-shadow:inset 0 0 30px 5px #2ecc40cc;background:#2ecc404d}to{box-shadow:inset 0 0 0 0 transparent}}.cell.spell-darkMark{animation:darkMarkAnim .5s ease-out}@keyframes darkMarkAnim{0%{filter:hue-rotate(0deg) brightness(1)}50%{filter:hue-rotate(100deg) brightness(1.5);box-shadow:0 0 15px #2ecc4099}to{filter:hue-rotate(0deg) brightness(1)}}.cell.avada-selected{box-shadow:inset 0 0 12px #2ecc4080;background:#2ecc4026!important}.ultimate-board.targeting-expelliarmus .cell:not(.voldemort-mark){opacity:.3;pointer-events:none}.ultimate-board.targeting-expelliarmus .cell.voldemort-mark{cursor:crosshair;animation:targetPulse .8s ease-in-out infinite}.ultimate-board.targeting-darkMark .cell:not(.harry-mark){opacity:.3;pointer-events:none}.ultimate-board.targeting-darkMark .cell.harry-mark{cursor:crosshair;animation:targetPulse .8s ease-in-out infinite}.ultimate-board.targeting-avadaKedavra .cell.taken{opacity:.3;pointer-events:none}.ultimate-board.targeting-avadaKedavra .cell:not(.taken){cursor:crosshair}.ultimate-board.targeting-patronus .mini-board{cursor:crosshair}.ultimate-board.spell-targeting .mini-board.won-harry .cell,.ultimate-board.spell-targeting .mini-board.won-voldemort .cell,.ultimate-board.spell-targeting .mini-board.board-draw .cell{opacity:.2;pointer-events:none}@keyframes targetPulse{0%,to{box-shadow:0 0 #fff0}50%{box-shadow:0 0 8px 2px #ffffff4d}}.game-tools{width:min(92vw,760px);max-width:100%;position:relative;z-index:1}.game-primary .game-tools{width:100%}.game-tools{padding:12px 14px}.spell-bar{display:flex;justify-content:center;gap:12px;min-height:0}.spell-group{display:none;gap:10px;width:100%}.spell-group.visible{display:flex;justify-content:center;flex-wrap:wrap}.spell-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:6px;cursor:pointer;font-family:var(--font-heading);font-size:.75rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;transition:all .25s;position:relative;min-width:160px}.spell-btn .spell-icon{font-size:1.1rem}.spell-btn.harry-spell{border:1.5px solid var(--harry-gold);background:var(--harry-bg);color:var(--harry-gold)}.spell-btn.harry-spell:hover:not(:disabled){box-shadow:0 0 15px #d4a0174d;background:#d4a01726}.spell-btn.voldemort-spell{border:1.5px solid var(--voldy-green);background:var(--voldy-bg);color:var(--voldy-green)}.spell-btn.voldemort-spell:hover:not(:disabled){box-shadow:0 0 15px #2ecc404d;background:#2ecc4026}.spell-btn:disabled{opacity:.35;cursor:not-allowed}.spell-btn.used{text-decoration:line-through;opacity:.25}.spell-btn.selected{box-shadow:0 0 18px #d4a01759;transform:translateY(-1px)}.spell-instructions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:9px 12px;background:#ffffff09;border:1px solid rgba(108,63,160,.45);border-radius:10px;font-size:.8rem;color:var(--text-secondary);animation:fadeIn .2s ease-out}.spell-instructions[hidden]{display:none}.game-log{width:100%;margin-top:10px;max-height:none;overflow:hidden;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.game-log:empty{display:none}.log-entry{font-size:.76rem;color:var(--text-secondary);line-height:1.45;padding:8px 10px;border:1px solid rgba(232,213,183,.08);border-left:3px solid rgba(212,160,23,.45);border-radius:8px;margin-bottom:0;background:#ffffff06;animation:logSlide .3s ease-out}.game-log .log-entry:not(:first-child){display:none}#screen-game.is-online .game-log{max-height:112px;overflow-y:auto}#screen-game.is-online .game-log .log-entry:not(:first-child){display:block}@keyframes logSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.duel-chat{display:flex;flex-direction:column;gap:12px;width:100%;min-height:0;padding:14px;z-index:4}.duel-chat[hidden]{display:none!important}.duel-chat-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.duel-chat-header h3{margin-bottom:4px}.quick-reactions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.quick-reaction-btn{border:1px solid rgba(212,160,23,.45);background:#d4a01714;color:var(--harry-gold);border-radius:8px;padding:8px 10px;font-family:var(--font-heading);font-size:.72rem;letter-spacing:.5px;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}.quick-reaction-btn:hover:not(:disabled){background:#d4a01729;border-color:var(--harry-glow);transform:translateY(-1px)}.quick-reaction-btn:disabled{opacity:.4;cursor:not-allowed}.duel-chat-feed{display:flex;flex-direction:column;gap:8px;min-height:0;flex:1 1 auto;overflow-y:auto;padding-right:2px}.chat-empty-state{border:1px dashed rgba(232,213,183,.16);border-radius:10px;padding:12px;color:var(--text-muted);font-size:.8rem;line-height:1.45}.chat-message{display:flex;flex-direction:column;gap:4px;max-width:100%}.chat-message-meta{font-size:.66rem;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted)}.chat-message-bubble{border:1px solid rgba(232,213,183,.09);background:#ffffff08;border-radius:10px;padding:9px 11px;color:var(--text-primary);font-size:.86rem;line-height:1.45;word-break:break-word}.chat-message.is-self .chat-message-bubble{background:#d4a0171c;border-color:#d4a01742}.chat-message.is-reaction .chat-message-bubble{background:#39ff1414;border-color:#39ff142e;color:#d6ffd1}.duel-chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.duel-chat-form input{min-width:0;border-radius:10px;border:1px solid rgba(232,213,183,.12);background:#0a0a1599;color:var(--text-primary);padding:11px 13px;font-family:var(--font-body);font-size:.92rem}.duel-chat-form input:focus{outline:none;border-color:var(--harry-gold);box-shadow:0 0 0 2px #d4a0171f}.duel-chat-backdrop{position:fixed;inset:0;background:#04040cb8;z-index:3}.duel-chat-backdrop[hidden]{display:none}.reaction-burst{position:fixed;inset:0;pointer-events:none;display:flex;justify-content:center;align-items:flex-start;padding-top:118px;z-index:30}.reaction-burst[hidden]{display:none}.reaction-burst-card{min-width:min(82vw,420px);max-width:min(82vw,420px);display:flex;flex-direction:column;align-items:center;gap:6px;border:1px solid rgba(212,160,23,.22);border-radius:18px;padding:16px 22px;background:linear-gradient(180deg,#18172bf5,#0c0c18f0);box-shadow:0 20px 60px #0000006b;animation:reactionBurstIn 1.9s ease forwards}.reaction-burst-label{font-family:var(--font-heading);font-size:clamp(1.2rem,3vw,2rem);color:var(--harry-gold);text-align:center}.reaction-burst-author{color:var(--text-secondary);font-size:.9rem;text-align:center}@keyframes reactionBurstIn{0%{opacity:0;transform:translateY(18px) scale(.92)}14%{opacity:1;transform:translateY(0) scale(1)}80%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.98)}}#screen-gameover{background:radial-gradient(ellipse at center,#0a0a1580,#0a0a15f2)}.result-container{text-align:center;z-index:1;max-width:640px;width:min(640px,100%);padding:32px}.result-title{font-family:var(--font-heading);font-size:clamp(1.6rem,5vw,2.8rem);font-weight:900;margin-bottom:12px;letter-spacing:2px}.result-title.harry-victory{background:linear-gradient(180deg,gold,#b8860b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 25px rgba(212,160,23,.5));animation:victoryGlow 2s ease-in-out infinite alternate}.result-title.voldemort-victory{background:linear-gradient(180deg,#39ff14,#1a5c2a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 25px rgba(46,204,64,.5));animation:defeatGlow 2s ease-in-out infinite alternate}@keyframes victoryGlow{0%{filter:drop-shadow(0 0 15px rgba(212,160,23,.3))}to{filter:drop-shadow(0 0 35px rgba(212,160,23,.7))}}@keyframes defeatGlow{0%{filter:drop-shadow(0 0 15px rgba(46,204,64,.3))}to{filter:drop-shadow(0 0 35px rgba(46,204,64,.7))}}.result-desc{font-size:1rem;color:var(--text-secondary);font-style:italic;line-height:1.45;margin:0 auto 30px;max-width:min(100%,560px);text-wrap:balance}.result-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.modal-overlay{display:none;position:fixed;inset:0;background:#000c;z-index:100;align-items:center;justify-content:center;padding:20px}.modal-overlay.active{display:flex;animation:fadeIn .3s ease-out}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:30px;max-width:520px;max-height:80vh;overflow-y:auto;position:relative;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.modal-content h2{font-family:var(--font-heading);font-size:1.5rem;color:var(--harry-gold);margin-bottom:20px}.modal-content h3{font-family:var(--font-heading);font-size:1rem;color:var(--text-primary);margin-top:18px;margin-bottom:8px}.modal-content p{font-size:.85rem;color:var(--text-secondary);line-height:1.6;margin-bottom:6px}.modal-close{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:4px 8px;line-height:1}.modal-close:hover{color:var(--text-primary)}.online-shell,.leaderboard-shell{width:min(1020px,100%);display:flex;flex-direction:column;gap:22px;position:relative;z-index:2}.screen-scroll-shell{min-height:0}.panel-topline{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.panel-copy{color:var(--text-secondary);line-height:1.6;font-size:.92rem}.online-grid-primary{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}.online-grid{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.panel-card{background:#1a1a2ee0;border:1px solid rgba(232,213,183,.08);border-radius:14px;padding:22px;box-shadow:0 20px 50px #00000047;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden}.panel-card h3{font-family:var(--font-heading);font-size:1.1rem;margin-bottom:10px;color:var(--text-primary)}.panel-card-featured{border-color:#d4a0172e}.panel-card-featured:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(212,160,23,.12),transparent 42%);pointer-events:none}.stat-list{display:flex;flex-direction:column;gap:12px;margin:18px 0}.stat-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;border-bottom:1px solid rgba(232,213,183,.08);color:var(--text-secondary)}.stat-row strong{color:var(--text-primary);text-align:right}.online-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.online-actions .btn-magic{min-width:170px}.online-actions-centered{justify-content:center}.magic-form{display:flex;flex-direction:column;gap:12px;margin-top:16px}.magic-form label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;letter-spacing:.3px;color:var(--text-secondary)}.magic-form input{width:100%;border-radius:8px;border:1px solid rgba(232,213,183,.12);background:#0a0a158c;color:var(--text-primary);padding:12px 14px;font-family:var(--font-body);font-size:.95rem}.magic-form input:focus{outline:none;border-color:var(--harry-gold);box-shadow:0 0 0 2px #d4a0171f}.inline-error{width:min(1020px,100%);padding:12px 16px;border-radius:10px;background:#78121252;border:1px solid rgba(255,146,146,.25);color:#ffd6d6;position:relative;z-index:2}.leaderboard-table-wrap{width:100%;background:#1a1a2ee0;border:1px solid rgba(232,213,183,.08);border-radius:14px;overflow:auto;box-shadow:0 20px 50px #00000047}.leaderboard-table{width:100%;min-width:640px;border-collapse:collapse}.leaderboard-table thead{background:#d4a01714}.leaderboard-table th,.leaderboard-table td{padding:14px 16px;text-align:left}.leaderboard-table th{font-family:var(--font-heading);font-size:.82rem;letter-spacing:.8px;text-transform:uppercase;color:var(--harry-gold)}.leaderboard-table tbody tr{border-top:1px solid rgba(232,213,183,.06)}.leaderboard-table tbody tr.is-you{background:#d4a01712}.leaderboard-table tbody tr:hover{background:#ffffff08}.match-status-bar{width:min(92vw,760px);max-width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;margin:10px 0 14px;padding:12px 16px;border-radius:10px;border:1px solid rgba(232,213,183,.08);background:#1a1a2eeb}.match-status-text{color:var(--text-secondary)}.match-status-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}@media(min-width:981px){#screen-game.is-online{--board-size: min(48vh, 58vw, 470px)}#screen-game.is-online .game-main{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:stretch;gap:16px}#screen-game.is-online .duel-chat{display:flex!important;height:100%}#screen-game.is-online #btn-game-chat,#screen-game.is-online #btn-chat-close,#screen-game.is-online .duel-chat-backdrop{display:none!important}}@media(max-width:980px){#screen-title{padding-top:24px}.title-layout{grid-template-columns:1fr}#screen-game.is-online #btn-game-chat{display:inline-flex!important}#screen-game.is-online .duel-chat{position:fixed;left:12px;right:12px;top:max(82px,calc(env(safe-area-inset-top) + 68px));bottom:max(12px,env(safe-area-inset-bottom));width:auto;max-height:none;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .22s ease,transform .22s ease}#screen-game.is-online.chat-open .duel-chat{opacity:1;transform:translateY(0);pointer-events:auto}#screen-game.is-online.chat-open .duel-chat-backdrop{display:block!important}}@media(max-width:768px){:root{--board-size: min(94vw, 480px)}.screen{padding:18px 16px}#screen-game{--board-size: min(58vh, 96vw, 460px);padding:12px 8px 14px}#screen-title{min-height:100svh;height:100svh;justify-content:center;overflow:hidden;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}#screen-online,#screen-leaderboard{min-height:100svh;height:100svh;overflow:hidden;padding-top:max(14px,env(safe-area-inset-top));padding-bottom:max(14px,env(safe-area-inset-bottom))}.title-layout,.online-shell,.leaderboard-shell{gap:18px}.title-layout{width:min(440px,100%);height:100%;align-items:stretch}.title-container,.title-story{text-align:center}.title-story{display:none}.title-emblem,.title-secondary-actions{justify-content:center}.title-mobile-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}.title-mobile-hero .title-emblem{margin-bottom:6px}.title-mobile-hero .title-kicker{margin-bottom:0}.title-kicker,.section-kicker,.menu-eyebrow{font-size:.72rem;letter-spacing:1.4px}.title-story,.title-menu-card,.setup-shell,.result-container,.game-tools{padding:20px}.title-menu-card{order:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:12px}.title-emblem{margin-bottom:14px}.game-title{font-size:clamp(2.3rem,12vw,3.6rem);letter-spacing:1.2px}.subtitle{font-size:1rem;margin-bottom:14px}.title-intro{font-size:.95rem;line-height:1.65}.btn-magic{min-width:0}.menu-eyebrow{text-align:center;margin-bottom:0}.menu-buttons{gap:10px}.btn-menu{padding:16px 18px}.btn-label{font-size:1rem}.btn-hint{font-size:.84rem;line-height:1.4}.title-menu-note{margin-top:0;font-size:.88rem;line-height:1.55;text-align:center}.setup-heading{font-size:clamp(1.55rem,7vw,1.95rem);line-height:1.08}.setup-copy,.panel-copy{font-size:.88rem;line-height:1.5}.role-select{gap:12px;margin-bottom:22px}.role-card{flex:1 1 100%;max-width:100%;min-width:0;padding:18px}.role-card .role-icon{font-size:2.1rem}.role-card .role-name{font-size:1rem}.difficulty-select{margin-bottom:20px}.difficulty-select select{width:100%;min-width:0}.setup-actions{gap:10px}.setup-actions .btn-magic{flex:1 1 100%;width:100%}.game-header{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"turn turn" "harry voldemort"}.game-topbar{width:100%}.player-info{padding:6px 10px}.player-icon{font-size:1.3rem}.player-name{font-size:.78rem}.turn-indicator{width:100%;text-align:center;font-size:.8rem;justify-self:stretch}.spell-bar{flex-wrap:wrap}.duel-chat{padding:14px}.duel-chat-form{grid-template-columns:1fr}.duel-chat-form .btn-magic{width:100%}.panel-topline,.match-status-bar,.spell-instructions{flex-direction:column;align-items:flex-start}.panel-topline{gap:12px}.panel-topline>div{width:100%}#screen-online .panel-topline .btn-magic,#screen-leaderboard .panel-topline .btn-magic{width:100%;max-width:260px}.online-grid{grid-template-columns:1fr;gap:14px}.screen-scroll-shell{flex:1 1 auto;width:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:6px;scroll-padding-top:12px;scroll-padding-bottom:18px}.online-actions{gap:10px;margin-top:14px}.online-actions .btn-magic{width:100%;min-width:0}.castle-silhouette{max-height:25vh}.deathly-hallows{width:180px;height:180px}.mist{height:100px;filter:blur(30px)}}@media(max-width:640px){.leaderboard-table-wrap{background:transparent;border:none;box-shadow:none;overflow:visible}.leaderboard-table{min-width:0}.leaderboard-table thead{display:none}.leaderboard-table tbody{display:grid;gap:12px}.leaderboard-table tbody tr{display:grid;gap:10px;padding:16px;border:1px solid rgba(232,213,183,.08);border-radius:14px;background:#1a1a2ee0;box-shadow:0 18px 40px #0000003d}.leaderboard-table tbody tr.is-you{border-color:#d4a01738;background:#d4a01714}.leaderboard-table tbody tr:hover{background:#1a1a2eeb}.leaderboard-table th,.leaderboard-table td{padding:0}.leaderboard-table td{display:flex;justify-content:space-between;align-items:center;gap:14px;border:none;text-align:right;font-size:.95rem}.leaderboard-table td:before{font-family:var(--font-heading);font-size:.72rem;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted)}.leaderboard-table td:nth-child(1):before{content:"Rank"}.leaderboard-table td:nth-child(2):before{content:"Player"}.leaderboard-table td:nth-child(3):before{content:"Rating"}.leaderboard-table td:nth-child(4):before{content:"Record"}.leaderboard-table td:nth-child(5):before{content:"Best Streak"}.leaderboard-table td:nth-child(1){color:var(--harry-gold);font-family:var(--font-heading);font-size:1rem}.leaderboard-table td:nth-child(2){color:var(--text-primary);font-size:1rem}}@media(max-width:480px){:root{--board-size: min(98vw, 370px)}.screen{padding:14px 12px}#screen-game{--board-size: min(50vh, 98vw, 380px);padding:8px 4px 10px;gap:8px}#screen-title{padding-top:max(12px,env(safe-area-inset-top));padding-left:14px;padding-right:14px}#screen-online,#screen-leaderboard{padding-top:max(12px,env(safe-area-inset-top))}.title-layout{gap:14px}.title-story,.title-menu-card,.setup-shell,.result-container,.game-tools,.panel-card{padding:16px}.title-emblem svg{width:64px;height:70px}.title-mobile-hero{gap:4px}.game-title{font-size:clamp(2rem,13vw,2.9rem);letter-spacing:1px}.subtitle{font-size:.88rem;margin-bottom:0}.title-intro{font-size:.9rem;line-height:1.55}.menu-buttons{gap:8px}.btn-magic{padding:12px 18px;letter-spacing:1.1px}.btn-menu{padding:13px 14px;gap:2px}.btn-label{font-size:.94rem}.btn-hint{display:none}.btn-inline,.btn-small{font-size:.74rem}.title-secondary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:0}.title-secondary-actions .btn-magic{padding:10px 6px;font-size:.64rem;letter-spacing:.6px;line-height:1.15}.title-menu-note{display:none}.setup-heading{font-size:1.45rem;margin-bottom:10px}.setup-copy{margin-bottom:20px;font-size:.9rem}.ultimate-board{gap:3px;padding:4px}.mini-board{gap:1px;padding:2px}.cell{font-size:calc(var(--board-size) / 22)}.game-header,.game-topbar,.match-status-bar,.game-tools{width:100%}#screen-game.is-online .duel-chat{left:8px;right:8px;top:max(76px,calc(env(safe-area-inset-top) + 60px));bottom:max(8px,env(safe-area-inset-bottom));padding:12px}.turn-indicator{font-size:.76rem;padding:6px 10px}.player-info{padding:6px 8px;gap:8px}.player-icon{font-size:1.2rem}.player-name{font-size:.72rem;letter-spacing:.6px}.player-goal{display:none}.player-score{font-size:.68rem}.role-select{flex-direction:column;gap:12px}.role-vs{display:none}.online-actions .btn-magic{width:100%;min-width:0}.role-card{padding:16px 14px;gap:6px}.role-card .role-icon{font-size:1.8rem}.role-card .role-name{font-size:.95rem}.role-card .role-desc{font-size:.76rem}.difficulty-select label{font-size:.8rem}.difficulty-select select{font-size:.92rem;padding:10px 12px}.panel-card h3{font-size:1rem}.panel-copy{font-size:.84rem;line-height:1.45}.stat-list{gap:10px;margin:14px 0}.stat-row{padding-bottom:8px;font-size:.88rem}.magic-form input{padding:10px 12px;font-size:.9rem}.spell-group.visible{gap:8px}.spell-btn{min-width:0;flex:1 1 calc(50% - 4px);font-size:.66rem;padding:8px}.spell-btn .spell-icon{font-size:1rem}.setup-actions .btn-magic,.title-secondary-actions .btn-magic{width:100%}.spell-instructions{margin-top:10px;padding:8px 10px;font-size:.76rem;gap:8px}.game-log{margin-top:8px}.log-entry{font-size:.72rem;padding:7px 9px}.duel-chat-header{gap:8px}.duel-chat-header h3{font-size:.96rem}.quick-reaction-btn{font-size:.66rem;padding:8px}.chat-message-bubble{font-size:.8rem;padding:8px 10px}.reaction-burst{padding-top:92px}.reaction-burst-card{min-width:min(90vw,360px);max-width:min(90vw,360px);padding:14px 16px}.reaction-burst-author{font-size:.82rem}.inline-error{padding:10px 12px;font-size:.84rem}.leaderboard-shell{gap:16px}.screen-scroll-shell{padding-bottom:10px}.leaderboard-table tbody tr{padding:14px;gap:8px}.leaderboard-table td{font-size:.9rem}.modal-content{width:calc(100vw - 24px);padding:24px 18px 18px;max-height:82vh}.modal-content h2{font-size:1.25rem;margin-bottom:16px}.modal-content h3{font-size:.92rem;margin-top:16px}.modal-content p{font-size:.82rem;line-height:1.55}.modal-close{top:10px;right:12px;font-size:1.3rem}}@media(max-height:860px){#screen-game{--board-size: min(50vh, 90vw, 470px)}}@media(max-height:740px){#screen-game{--board-size: min(44vh, 88vw, 390px)}.player-info{padding:6px 10px}.match-status-bar{padding:10px 12px}.spell-btn{padding:7px 12px}}
