@font-face{font-family:Cinzel;src:url('../assets/fonts/Cinzel.ttf')}@font-face{font-family:Barlow;src:url('../assets/fonts/Barlow-Regular.ttf')}@font-face{font-family:Barlow;src:url('../assets/fonts/Barlow-Medium.ttf');font-weight:500 800}@font-face{font-family:Shippori;src:url('../assets/fonts/ShipporiMincho-Bold.ttf');font-weight:700}@font-face{font-family:Teko;src:url('../assets/fonts/Teko.ttf');font-weight:400 900}
:root{color-scheme:dark;--ink:#f5eddd;--muted:#a7b4be;--gold:#d8bc84;--element:#ff9867;--panel:#101e2ce8;font-family:Barlow,sans-serif;font-size:15px}*{box-sizing:border-box}body{margin:0;background:#09131d;color:var(--ink);overflow:hidden}button,a,select,input{-webkit-tap-highlight-color:transparent}button,select,input{font:inherit}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer;border:1px solid #9ca8b635;background:#142638;padding:10px 15px;border-radius:3px;transition:background .18s,border-color .18s,transform .18s}button:hover{background:#263c4d;border-color:#d8bc8488}button:active{transform:translateY(1px)}button:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #f4d79a;outline-offset:4px}a{color:var(--gold);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Cinzel,serif;font-weight:500}small{color:var(--muted)}[hidden]{display:none!important}#arena{position:fixed;inset:0}#arena canvas{display:block;width:100%;height:100%}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 58% 45%,transparent 45%,#050b1455 100%)}body[data-mode=lobby] .vignette{background:linear-gradient(90deg,#07121bf7 0%,#0b1723dd 31%,#0b172347 56%,transparent 78%),linear-gradient(0deg,#070e1acc,transparent 28%)}.game-header{position:fixed;z-index:5;top:0;left:0;right:0;height:90px;padding:12px 36px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#07101cc9,transparent)}.wordmark{display:flex;align-items:center;gap:20px}.wordmark img{width:144px;height:72px;object-fit:cover}.wordmark span{font-size:11px;color:#aebbc5;letter-spacing:.1em}.game-header nav{display:flex;align-items:center;gap:18px;font-size:12px}.game-header nav button{border:0;background:none;padding:8px 3px;color:#bdc7ce}.game-header nav a{color:#bdc7ce}.lobby{position:relative;width:460px;margin:115px 0 0 6vw;z-index:2;max-height:calc(100dvh - 130px);overflow:auto;scrollbar-width:thin;padding:0 8px 24px 0}.chapter{font:500 12px Barlow;letter-spacing:.16em;color:var(--gold);display:flex;align-items:center;gap:10px}.chapter>span{display:block;width:28px;height:1px;background:var(--gold)}h1{font-size:clamp(36px,4.2vw,65px);line-height:1.06;letter-spacing:-.035em;margin:18px 0}.intro{font-size:16px;color:#aebec9;line-height:1.55;margin-bottom:26px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:16px 0 10px;gap:10px}.section-title h2{font-size:17px}.section-title>span{color:var(--muted);font-size:11px}.text-button{padding:0;border:0;background:none!important;color:var(--gold);font-size:12px}.element-choices{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.element-choices button{display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;padding:11px 6px;background:#14243280}.element-choices svg{width:17px;height:17px;fill:none;stroke:var(--choice);stroke-width:1.7}.element-choices button[aria-pressed=true]{background:color-mix(in srgb,var(--choice) 14%,#0e1b29);border-color:var(--choice);color:var(--choice);box-shadow:inset 0 -2px var(--choice)}.allegiance{display:flex;align-items:center;gap:13px;padding:13px 0 2px;min-height:64px}.allegiance>span{color:var(--element);width:38px}.allegiance svg{width:35px;height:35px;fill:none;stroke:currentColor;stroke-width:1.2}.allegiance h3{font-size:16px;color:var(--element)}.allegiance p{font-size:12px;color:#aabac6;margin-top:5px}.deck-presets{display:flex;border-bottom:1px solid #a5b6c82a}.deck-presets button{flex:1;border:0;border-radius:0;background:none;color:#9caebc;font-size:13px}.deck-presets button[aria-pressed=true]{border-bottom:2px solid var(--gold);color:var(--gold);background:#be9e6220}.deck-preview{display:flex;height:71px;gap:7px;margin-top:12px;overflow:hidden}.deck-preview img{height:71px;width:48px;object-fit:cover;border:1px solid #c3a67777;border-radius:3px}.deck-summary{font-size:12px;color:#aabac6;margin-top:7px}.preferences{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.preferences label,.collection-toolbar label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#a5b5c2}select,input{background:#102232;border:1px solid #7990a43a;border-radius:3px;color:#e4ebee;padding:9px 10px;width:100%;min-width:0}select{cursor:pointer}.launch{display:flex;gap:9px}.primary{background:linear-gradient(120deg,#e1c891,#b99a5c);border:1px solid #e8ce95;color:#18222b;font-weight:700;padding:15px 22px;box-shadow:0 4px 22px #d6ad5212}.primary:hover{background:linear-gradient(120deg,#f3dfb5,#d5b579);color:#101b25}.launch .primary{flex:1;display:flex;align-items:center;justify-content:space-between}.lobby-note{font-size:11px;text-align:center;color:#98a9b6;margin-top:11px}.record{color:#8197a8;text-align:center;font-size:11px;margin-top:10px}.scene-caption{position:fixed;right:7vw;bottom:8vh;text-align:right;pointer-events:none}.scene-caption span{font:28px Cinzel;color:#d9c8a9}.scene-caption p{font-size:14px;color:#a3b5c6;margin:10px 0}.scene-caption small{font-size:10px;color:#6e8498}
#duel-hud{position:fixed;inset:90px 0 0;pointer-events:none}#duel-hud button,#duel-hud aside{pointer-events:auto}.hud-panel{background:linear-gradient(135deg,#112638e8,#0a1623ed);border:1px solid #9eabb532;box-shadow:0 12px 24px #030b1440;border-radius:5px}.opponent,.player{position:absolute;top:10px;width:225px;padding:12px 16px}.opponent{left:28px}.player{right:28px}.core-button{display:flex;gap:12px;align-items:center;text-align:left;border:0;background:none;padding:0;width:100%}.core-button:hover{background:none}.core-icon{display:flex;width:42px;height:42px;align-items:center;justify-content:center;background:#53678922;border-radius:50%;border:1px solid #94a9c344}.core-icon svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.5}.core-button small{display:block;font-size:11px}.core-button b{font:600 32px Teko;line-height:1.1}.core-button em{font:12px Barlow;color:#8ca1b3;font-style:normal}.health-track{height:4px;background:#040d17;border-radius:2px;margin:10px 0 7px;overflow:hidden}.health-track i{display:block;height:100%;width:100%;background:#97c7ba;transition:width .3s}.opponent .health-track i{background:#bf9ad7}.opponent p,.player p{font-size:10px;color:#90a6b7}.turn-display{position:absolute;top:4px;left:50%;transform:translateX(-50%);text-align:center;background:linear-gradient(90deg,transparent,#12283dd9,transparent);padding:8px 50px}.turn-display span{font:21px Cinzel;color:#ebd2a0;white-space:nowrap}.turn-display small{display:block;margin-top:5px;font-size:10px}.action-prompt{position:absolute;top:90px;left:50%;transform:translateX(-50%);max-width:46vw;padding:9px 20px;border-radius:20px;background:#0a1c2bc9;color:#e5d6b5;text-align:center;font-size:13px;line-height:1.35}.inspector{position:absolute;right:28px;top:145px;width:198px;padding:11px}.inspector canvas{display:block;width:100%;height:auto;border-radius:3px}.inspector h2{font-size:14px;margin-top:8px}.inspector p{font-size:12px;line-height:1.4;margin-top:5px;color:#b6c9d5}.inspector #inspect-info{color:#dbc795;font-size:11px}.inspector small{display:block;margin-top:7px;font-size:10px;color:#99c9bd}.battle-journal{position:absolute;bottom:170px;left:28px;width:225px;font-size:11px;padding:10px}.battle-journal>button{padding:0;background:none;border:0;width:100%;text-align:left;color:#b5c5d0;display:flex;justify-content:space-between}.battle-journal ol{padding:0 4px 0 15px;line-height:1.5;max-height:180px;overflow:auto;color:#90a6b9;margin:10px 0 0}.battle-journal li{margin-bottom:6px}.command-left{position:absolute;bottom:35px;left:28px;width:225px}.energy{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:10px}.energy>span{font:24px Teko;color:#dceef8}.energy small{font-size:10px;color:#8fa9bf}#energy-gems{display:flex;gap:3px}#energy-gems i{display:block;width:9px;height:13px;background:#213747;clip-path:polygon(50% 0,100% 28%,100% 72%,50% 100%,0 72%,0 28%)}#energy-gems i.filled{background:#a7dcf6;box-shadow:0 0 10px #a3dcfa}.power-button{display:block;width:100%;text-align:left;border-color:#d8bc8466;background:linear-gradient(110deg,#34404c,#142536);padding:10px 14px}.power-button span{display:block;font:16px Cinzel;color:#ead2a5}.power-button small{font-size:10px;display:block;margin-top:4px}.command-left>.text-button{margin-top:12px;padding:4px}.command-right{position:absolute;bottom:35px;right:28px;display:flex;flex-direction:column;gap:9px;width:198px}.command-right .primary{display:flex;justify-content:space-between}.command-right small{text-align:center;font-size:11px}.hand-label{position:absolute;bottom:13px;left:50%;transform:translateX(-50%);font-size:11px;color:#b6c7d2;white-space:nowrap}.hand-label span{color:#6e8ca4;margin-left:10px}.tactical{position:absolute;left:28px;top:144px;width:255px;padding:12px;max-height:calc(100dvh - 410px);overflow:auto;z-index:8}.tactical .section-title{margin:0 0 8px}.tactical h2{font-size:14px}.tactical>p{font-size:11px;color:#a8b8c5;line-height:1.4;margin:8px 0}.tactical button{font-size:12px}.tactical .section-title button{padding:0 7px}.tactical-actions{display:flex;flex-direction:column}.tactical-group{font:11px Barlow;color:var(--gold);margin:12px 0 6px}.tactical #tactical-actions button{display:block;width:100%;text-align:left;margin:4px 0;padding:8px 9px}.tactical #tactical-actions button span{float:right;color:#d6c29e}
dialog{color:var(--ink);background:#0d1d2b;border:1px solid #b9a27977;border-radius:8px;padding:28px;max-height:90dvh;max-width:94vw;box-shadow:0 40px 120px #0009}dialog::backdrop{background:#030a13c4;backdrop-filter:blur(7px)}dialog header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:25px;gap:25px}dialog header h2{font-size:30px;margin-top:9px}dialog p{line-height:1.5;color:#a7bdcd}dialog h2{margin-bottom:15px}.close-button{background:none;border:0;font-size:27px;padding:0 5px;color:#becbd4}.deck-dialog{width:1180px}.deck-builder{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:30px}.collection-toolbar{display:grid;grid-template-columns:1fr 1fr 1.7fr;gap:9px}.collection>p{font-size:11px;margin:10px 0}.collection-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;height:480px;overflow:auto;align-content:start;padding-right:5px}.collection-card{padding:0;overflow:hidden;text-align:left;background:#172d3e;position:relative;min-width:0}.collection-card img{width:100%;height:140px;object-fit:cover;object-position:50% 35%;display:block}.collection-card .card-copy{padding:7px;display:block}.collection-card b{font-size:11px;display:block}.collection-card small{font-size:10px;display:block;margin-top:4px}.collection-card .cost{position:absolute;left:6px;top:6px;width:25px;height:28px;background:#0b1c2eef;text-align:center;font:20px Teko;border:1px solid #d4bf87;clip-path:polygon(50% 0,100% 15%,100% 85%,50% 100%,0 85%,0 15%)}.collection-card .copies{position:absolute;right:5px;top:6px;background:#1b3043ed;font-size:11px;padding:4px;border-radius:3px}.pager{display:flex;justify-content:space-between;align-items:center;margin-top:13px;font-size:12px}.pager button{padding:7px 10px}.deck-list{border-left:1px solid #94a4b529;padding-left:25px}.deck-list>.section-title{margin-top:0}.deck-list h3{font-size:19px}.deck-list>p{font-size:11px}.deck-list>b{color:var(--gold)}.mana-curve{display:flex;align-items:flex-end;gap:7px;height:62px;margin:12px 0 15px;padding-bottom:15px}.mana-curve div{flex:1;background:#8daeb7;min-height:2px;position:relative;max-height:45px}.mana-curve small{position:absolute;bottom:-17px;left:50%;transform:translateX(-50%);font-size:10px}#draft-list{height:345px;overflow:auto;scrollbar-width:thin}.draft-row{display:flex;align-items:center;gap:7px;font-size:11px;padding:5px 0;border-bottom:1px solid #a3b2c515}.draft-row img{width:22px;height:31px;object-fit:cover}.draft-row span{flex:1}.draft-row em{font:18px Teko;color:#e4d1a8;font-style:normal}.draft-row button{padding:1px 6px;font-size:16px}.deck-tools{display:flex;justify-content:space-between;margin:12px 0}.deck-tools button{font-size:10px;padding:6px 8px}#deck-save{width:100%;padding:11px}#deck-error{color:#e4a685;min-height:20px;font-size:11px;margin-bottom:5px}.rules-dialog{width:850px}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.rules-grid section>b{font:22px Cinzel;color:#b5a071}.rules-grid h3{font-size:18px;margin:7px 0}.rules-grid p,.keyword-grid p,.rule-note{font-size:13px;line-height:1.6}.keyword-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:25px 0;padding:20px 0;border-block:1px solid #8495a22b}.keyword-grid strong{display:block;color:var(--gold);font-weight:500}.rule-note{color:#8fa7b8}.result-dialog{width:450px;text-align:center;padding:45px}.result-dialog .chapter{justify-content:center}.result-dialog>span:first-child{display:block;font-size:60px;color:#e1bc76;margin-bottom:20px}.result-dialog h2{font-size:49px;margin:15px 0}.result-dialog p{font-size:14px}#result-stats{display:flex;justify-content:center;gap:30px;margin:25px 0;font-size:13px;color:#e1c999}.result-dialog button{display:block;width:100%;margin-top:12px}#leave-dialog{width:400px}#leave-dialog p{margin:12px 0 22px}#leave-dialog button{margin:4px}#toast{position:fixed;z-index:40;bottom:22px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#183244;border:1px solid #f0cb8b66;padding:12px 20px;border-radius:4px;font-size:13px;max-width:90vw;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}.render-error{position:fixed;z-index:60;inset:25%;background:#102333;padding:35px;box-shadow:0 0 0 100vmax #06101be8;border:1px solid #d1b880}.render-error p{margin:20px 0;line-height:1.5}.render-error a{display:inline-block;margin:15px}
@media(min-height:950px){.lobby{margin-top:140px}.intro{margin-bottom:32px}.deck-preview{height:90px}.deck-preview img{height:90px;width:60px}.section-title{margin-top:22px}}
@media(max-height:800px) and (min-width:901px){.lobby{margin-top:90px;max-height:calc(100dvh - 100px);width:420px}h1{font-size:44px;margin:12px 0}.intro{font-size:13px;margin-bottom:12px}.chapter{font-size:10px}.section-title{margin:11px 0 7px}.element-choices button{padding:8px 5px}.allegiance{padding:7px 0;min-height:50px}.deck-preview{height:52px}.deck-preview img{height:52px;width:36px}.preferences{margin:12px 0}.inspector{width:155px}.inspector p{font-size:10px}.inspector h2{font-size:12px}.battle-journal{width:190px}.command-left{width:190px}.tactical{max-height:calc(100dvh - 380px)}}
@media(max-width:1050px){.lobby{margin-left:4vw}.wordmark span{display:none}.game-header{padding:10px 22px}.scene-caption{right:4vw}.scene-caption span{font-size:21px}.inspector{right:16px;width:150px;top:140px}.inspector p{font-size:10px}.opponent,.player{width:185px}.opponent{left:16px}.player{right:16px}.command-left,.battle-journal{left:16px;width:175px}.command-right{right:16px;width:160px}.action-prompt{max-width:55vw;font-size:12px}.tactical{left:16px}.collection-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.game-header{height:70px;padding:5px 12px}.wordmark img{width:100px;height:60px}.game-header nav{gap:10px;font-size:10px}.game-header nav button{font-size:10px}.game-header nav a{display:none}.lobby{width:min(440px,92vw);margin:90px auto 0;max-height:calc(100dvh - 100px);padding-bottom:30px;background:linear-gradient(90deg,#0b1723b8,#0b172340)}body[data-mode=lobby] .vignette{background:#07121bbd}.lobby h1{font-size:44px}.scene-caption{display:none}.intro{font-size:14px}.element-choices button{padding:10px 4px}.collection-grid{grid-template-columns:repeat(2,1fr);height:360px}.deck-builder{grid-template-columns:1fr}.deck-list{border:0;border-top:1px solid #9eb4c333;padding:20px 0 0}.deck-list #draft-list{height:180px}.deck-dialog{padding:18px}.deck-dialog header h2{font-size:24px}.collection-toolbar{grid-template-columns:1fr 1fr}.search-label{grid-column:span 2}.rules-grid{grid-template-columns:1fr;gap:18px}.keyword-grid{grid-template-columns:1fr}.rules-dialog{padding:22px}.rules-dialog header h2{font-size:23px}#duel-hud{top:70px}.opponent,.player{width:145px;top:0;padding:8px;left:10px}.player{left:auto;right:10px}.core-icon{width:29px;height:29px}.core-icon svg{width:20px;height:20px}.core-button b{font-size:25px}.core-button small{font-size:10px}.core-button{gap:7px}.opponent p,.player p{font-size:8px}.turn-display{top:104px;padding:4px 20px}.turn-display span{font-size:16px}.turn-display small{font-size:9px}.action-prompt{top:157px;max-width:94vw;width:max-content;font-size:11px;padding:7px 13px}.inspector{display:none!important}.battle-journal{display:none}.command-left{left:10px;width:138px;bottom:23px}.command-right{right:10px;width:130px;bottom:33px}.command-right .primary{font-size:12px;padding:13px}.power-button{padding:9px}.power-button span{font-size:13px}.power-button small{font-size:8px}.energy{gap:6px}.energy small{display:none}#energy-gems{gap:2px}#energy-gems i{width:6px;height:10px}.hand-label{bottom:8px;font-size:9px}.tactical{left:10px;top:208px;max-height:calc(100dvh - 450px);width:230px}.command-right small{font-size:9px}.render-error{inset:15% 5%;padding:22px}.result-dialog{padding:28px}.result-dialog h2{font-size:39px}}
@media(max-height:550px) and (min-width:640px){.game-header{height:55px}#duel-hud{top:55px}.opponent,.player{top:0;width:150px;padding:7px}.opponent{left:12px}.player{right:12px}.core-button b{font-size:24px}.core-icon{width:28px;height:28px}.health-track{margin:5px 0}.inspector,.battle-journal,.scene-caption{display:none!important}.command-left{bottom:10px;width:150px;left:12px}.command-right{bottom:15px;width:150px;right:12px}.turn-display{top:0}.action-prompt{top:65px}.tactical{top:110px;max-height:180px}.lobby{margin-top:65px;max-height:calc(100dvh - 70px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
.collection-grid{grid-auto-rows:190px;height:min(48dvh,480px)}.collection-card{min-height:190px}.collection-card:disabled{opacity:.8;cursor:default}.deck-list #draft-list{height:min(33dvh,345px)}
.tactical-description{font-size:12px;line-height:1.45;color:#c4d4df;margin:7px 0 12px}

