.oly-overlay{position:fixed;inset:0;z-index:9200;display:grid;place-items:center;padding:clamp(10px,2vw,28px);background:radial-gradient(circle at 50% 25%,rgba(91,18,35,.34),transparent 42%),rgba(3,4,7,.9);backdrop-filter:blur(8px)}.oly-overlay[hidden]{display:none!important}.oly-shell{width:min(1500px,98vw);height:min(920px,96vh);overflow:hidden;display:grid;grid-template-rows:auto 1fr;border:1px solid #704252;border-top:3px solid #a53b47;border-radius:10px;background:linear-gradient(145deg,#17131b 0,#090b10 52%,#120c16 100%);box-shadow:0 35px 100px #000,inset 0 0 80px rgba(107,27,57,.1);color:#e7e1e8}.oly-shell>header{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid #3e2938;background:linear-gradient(90deg,rgba(108,24,45,.3),transparent 55%)}.oly-shell>header b{font:900 clamp(16px,2vw,25px) var(--font-machine,monospace);letter-spacing:.14em}.oly-shell>header b i{color:#bd4150}.oly-shell>header small{display:block;margin-top:5px;color:#8f7d91;font:700 10px var(--font-mono,monospace);letter-spacing:.2em}.oly-shell>header button{width:42px;height:42px;border:1px solid #583546;background:#160e15;color:#d7a9b7;font-size:25px}.oly-shell>main{overflow:auto;padding:clamp(18px,3vw,40px)}.oly-error{position:absolute;top:74px;left:50%;transform:translateX(-50%);z-index:2;padding:10px 18px;border:1px solid #a94050;background:#2b1018;color:#ffbac4;font:800 12px var(--font-mono,monospace);letter-spacing:.12em}.oly-intro{text-align:center;padding:clamp(20px,5vh,60px) 10px}.oly-sigil{display:block;font-size:clamp(38px,7vw,78px);filter:grayscale(.35) drop-shadow(0 0 22px rgba(178,57,72,.3))}.oly-intro h1,.oly-champion h1{margin:18px 0 8px;font:900 clamp(26px,5vw,58px) var(--font-machine,monospace);letter-spacing:.14em;color:#efe6e7;text-shadow:0 0 28px rgba(205,52,66,.35)}.oly-intro p{color:#baabb7;font-size:clamp(15px,2vw,21px)}.oly-lobby{max-width:1100px;margin:auto;border:1px solid #473342;background:rgba(11,12,17,.7);padding:20px}.oly-lobby>header,.oly-bracket>header{display:flex;justify-content:space-between;color:#c66a78;font:800 12px var(--font-mono,monospace);letter-spacing:.16em}.oly-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:18px 0}.oly-player{display:flex;align-items:center;gap:11px;min-width:0;padding:10px;border:1px solid #3c3440;background:#101319}.oly-player.is-active{border-color:#b44253;box-shadow:0 0 20px rgba(170,46,65,.18)}.oly-player.is-eliminated{filter:grayscale(1);opacity:.5}.oly-player.is-disconnected{border-style:dashed}.oly-player>span:nth-child(2){min-width:0;flex:1}.oly-player b,.oly-player small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oly-player b{font:800 13px var(--font-machine,monospace);letter-spacing:.08em}.oly-player small{margin-top:3px;color:#877e89;font:700 9px var(--font-mono,monospace);letter-spacing:.1em}.oly-avatar{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border:3px solid var(--oly-frame);border-radius:50%;background:#06070a;overflow:hidden;box-shadow:0 0 0 2px #111,0 0 14px color-mix(in srgb,var(--oly-frame),transparent 55%)}.oly-avatar img{width:100%;height:100%;object-fit:cover}.oly-avatar.is-large{width:clamp(86px,11vw,150px);height:clamp(86px,11vw,150px);border-width:5px}.oly-actions,.oly-gm-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px}.oly-actions button,.oly-gm-controls button,.oly-hand,.oly-support{border:1px solid #684051;background:linear-gradient(#261723,#130f16);color:#eadde4;padding:12px 18px;font:800 11px var(--font-machine,monospace);letter-spacing:.1em}.oly-actions button:hover,.oly-gm-controls button:hover,.oly-hand:hover,.oly-support:hover{border-color:#d25264;box-shadow:0 0 18px rgba(201,57,79,.2)}.oly-actions .is-primary{background:linear-gradient(135deg,#641d32,#311125);border-color:#d14d62}.oly-actions .is-danger,.oly-gm-controls .is-danger{color:#ff8495;border-color:#963244}.oly-actions button:disabled{opacity:.4}.oly-arena.is-final{position:relative}.oly-arena.is-final:before{content:'';position:absolute;inset:-40px;background:radial-gradient(circle,rgba(145,28,51,.16),transparent 58%);pointer-events:none}.oly-final-title{text-align:center;color:#ed6276;font:900 clamp(23px,4vw,45px) var(--font-machine,monospace);letter-spacing:.22em;margin:5px 0 25px;animation:oly-pulse 2.2s ease-in-out infinite}.oly-duel{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,240px) minmax(0,1fr);align-items:center;gap:20px;max-width:1120px;margin:auto;padding:clamp(18px,4vw,45px);border:1px solid #503140;background:radial-gradient(circle at 50%,rgba(105,24,49,.25),transparent 36%),linear-gradient(135deg,#15131a,#090b0f);overflow:hidden}.oly-duel.is-impact{animation:oly-impact .45s ease-out}.oly-combatant{text-align:center;min-width:0}.oly-combatant .oly-avatar{margin:auto}.oly-combatant h2{overflow:hidden;text-overflow:ellipsis;margin:14px 0 8px;font:900 clamp(17px,2.3vw,29px) var(--font-machine,monospace);letter-spacing:.1em}.oly-lock{color:#9d8797;font:800 10px var(--font-mono,monospace);letter-spacing:.16em}.oly-reveal-hand{display:block;font-size:clamp(44px,7vw,88px);animation:oly-reveal .38s cubic-bezier(.2,1.5,.5,1)}.oly-reveal-hand small{display:block;color:#d9cbd3;font:900 11px var(--font-machine,monospace);letter-spacing:.17em}.oly-versus{text-align:center;display:grid;gap:8px}.oly-versus small{color:#8e7887;font:700 10px var(--font-mono,monospace);letter-spacing:.14em}.oly-versus b{font:900 clamp(35px,5vw,65px) var(--font-machine,monospace);letter-spacing:.12em;color:#f2e8eb}.oly-versus i{color:#b94d5f;font:900 17px var(--font-machine,monospace);font-style:normal}.oly-countdown{color:#c5b4c0;font:800 17px var(--font-mono,monospace)}.oly-status{text-align:center;margin:18px;color:#d78b9a;font:900 13px var(--font-machine,monospace);letter-spacing:.18em}.oly-hands{display:flex;justify-content:center;gap:14px}.oly-hand{min-width:130px}.oly-hand b{display:block;font-size:38px}.oly-hand span{display:block;margin-top:6px}.oly-hand.is-locked{border-color:#ba4a5b;background:#351420}.oly-support{margin-top:12px;padding:8px 12px;font-size:9px}.oly-support.is-selected{border-color:#ff775d;color:#ffae7a}.oly-gm-controls{max-width:1050px;margin:22px auto;padding:14px;border:1px dashed #513542}.oly-gm-controls>b{width:100%;text-align:center;color:#8f7888;font:800 10px var(--font-mono,monospace);letter-spacing:.16em}.oly-bracket{margin-top:32px;border-top:1px solid #422d39;padding-top:18px}.oly-bracket-scroll{display:flex;gap:18px;overflow-x:auto;padding:15px 3px 24px}.oly-round{flex:0 0 260px}.oly-round h3{color:#a87d91;font:800 11px var(--font-machine,monospace);letter-spacing:.16em}.oly-bracket-match{margin:9px 0;padding:10px;border:1px solid #342d36;background:#0d1015}.oly-bracket-match.is-current{border-color:#a63f51;box-shadow:0 0 15px rgba(165,44,66,.15)}.oly-bracket-match span{display:flex;justify-content:space-between;font:700 11px var(--font-mono,monospace);color:#9e959e}.oly-bracket-match span.is-winner{color:#f0c96c}.oly-bracket-match i{display:block;margin:4px 0;color:#5f5760;font:700 8px var(--font-mono,monospace);font-style:normal}.oly-champion-slot>div{min-height:100px;border:1px solid #75552b;background:rgba(104,71,21,.1);display:grid;place-items:center;color:#bda36a;font:800 10px var(--font-mono,monospace)}.oly-champion{text-align:center;padding:30px}.oly-champion .oly-avatar{margin:20px auto}.oly-champion h2{font:900 clamp(25px,4vw,50px) var(--font-machine,monospace);letter-spacing:.15em}.oly-champion>strong{color:#d5ad58;font:900 clamp(14px,2vw,23px) var(--font-machine,monospace);letter-spacing:.2em}.oly-stats{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;max-width:1000px;margin:auto}.oly-stats>div{padding:15px;border:1px solid #463743;background:#101217}.oly-stats span,.oly-stats b{display:block}.oly-stats span{color:#8d808a;font:700 9px var(--font-mono,monospace);letter-spacing:.12em}.oly-stats b{margin-top:7px}.oly-wait{display:grid;place-items:center;min-height:300px;color:#8c7a87;font:800 13px var(--font-mono,monospace);letter-spacing:.18em}@keyframes oly-impact{0%{transform:translate(0)}20%{transform:translate(-5px,2px)}40%{transform:translate(5px,-2px)}65%{transform:translate(-2px)}100%{transform:none}}@keyframes oly-reveal{from{transform:scale(.25) rotate(-15deg);opacity:0}to{transform:none;opacity:1}}@keyframes oly-pulse{50%{text-shadow:0 0 28px #bd3049}}@media(max-width:700px){:where(html:not(.asoc-mobile)) .oly-duel{grid-template-columns:1fr 88px 1fr;padding:15px;gap:6px}:where(html:not(.asoc-mobile)) .oly-versus b{font-size:28px}:where(html:not(.asoc-mobile)) .oly-hands{gap:6px}:where(html:not(.asoc-mobile)) .oly-hand{min-width:0;flex:1;padding:9px}:where(html:not(.asoc-mobile)) .oly-hand b{font-size:28px}:where(html:not(.asoc-mobile)) .oly-stats{grid-template-columns:1fr 1fr}:where(html:not(.asoc-mobile)) .oly-shell>main{padding:12px}}
