:root{--bg:#080b12;--panel:#101722;--panel2:#151e2b;--line:#263448;--text:#eaf2f0;--muted:#8496a3;--cyan:#55e5d3;--gold:#e9b85c;--coral:#e06e78;--purple:#a985e8}
.app-loading{position:fixed;inset:0;z-index:1000;display:none;place-items:center;background:var(--bg);color:var(--cyan);letter-spacing:.16em;text-transform:uppercase}.app-booting .app-loading{display:grid}.app-booting #appViews{visibility:hidden}.app-booting{overflow:hidden}
.hidden{display:none!important}.screen{position:relative;z-index:1;min-height:100vh}.menu-screen{display:grid;place-items:center;padding:24px}.menu-card{width:min(520px,100%);padding:55px 48px;text-align:center;border:1px solid var(--line);background:linear-gradient(145deg,#172333ee,#0b1019f2);box-shadow:0 30px 100px #000b}.brand-mark.large{margin:0 auto 28px;width:64px;height:64px;font-size:34px}.menu-card h1{font-size:42px;letter-spacing:.1em}.menu-subtitle{color:var(--muted);letter-spacing:.15em}.menu-actions{display:grid;gap:10px;margin:35px auto 18px;width:min(300px,100%)}.menu-btn{width:100%;min-height:48px}.secondary-btn,.back-btn{border:1px solid var(--line);background:#111a26;color:var(--text);border-radius:3px;padding:10px 18px}.secondary-btn:hover,.back-btn:hover{border-color:var(--cyan)}.deck-status{min-height:18px;color:var(--cyan);font-size:11px;letter-spacing:.08em}.screen-header{min-height:90px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:min(1200px,calc(100% - 40px));margin:auto;border-bottom:1px solid var(--line)}.screen-header>div{text-align:center}.screen-header h1{font-size:26px}.screen-header .primary-btn{justify-self:end}.back-btn{justify-self:start}.tutorial-layout{width:min(1050px,calc(100% - 40px));min-height:calc(100vh - 90px);margin:auto;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:60px}.tutorial-demo{height:430px;display:grid;place-items:center;border:1px solid var(--line);background:radial-gradient(circle,#263550,#0d131d 68%);box-shadow:inset 0 0 70px #0007}.tutorial-copy h2{font:38px Georgia;margin:8px 0 18px}.tutorial-copy>p:not(.eyebrow){color:#b7c4ca;line-height:1.8;min-height:100px}.tutorial-actions{display:flex;justify-content:space-between;margin-top:30px}.tutorial-dots{display:flex;gap:8px}.tutorial-dots span{width:28px;height:3px;background:var(--line)}.tutorial-dots span.active{background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.tutorial-pulse{display:grid;place-items:center;gap:8px}.tutorial-pulse span{font-size:80px;color:var(--cyan);filter:drop-shadow(0 0 25px var(--cyan))}.tutorial-pulse strong{position:absolute;font:35px Georgia}.tutorial-pulse small{color:var(--muted);letter-spacing:.18em}.tutorial-lanes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:88%;height:70%}.tutorial-lanes span{display:grid;place-items:center;border:1px solid var(--line);background:linear-gradient(#1b2a3a,#101721);color:var(--muted);font-size:10px;letter-spacing:.1em}.tutorial-card{width:190px;height:270px;padding:16px;position:relative;display:flex;flex-direction:column;gap:18px;border:1px solid var(--cyan);background:linear-gradient(145deg,#223143,#101721);box-shadow:0 15px 45px #000}.tutorial-card.future{border-style:dashed;border-color:var(--purple)}.tutorial-card b{font-size:9px;color:var(--cyan);letter-spacing:.15em}.tutorial-card i{height:120px;display:grid;place-items:center;background:#111a28;color:var(--gold);font:64px Georgia}.tutorial-card strong{font:18px Georgia}.tutorial-card em{position:absolute;right:12px;bottom:12px;width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;color:var(--gold)}.tutorial-card span{color:var(--purple)}.time-flow{display:flex;align-items:center;gap:16px;color:var(--muted)}.time-flow>*{padding:16px 8px}.time-flow b{border:1px dashed var(--purple);color:var(--purple)}.time-flow strong{border:1px solid var(--cyan);color:var(--cyan)}.deck-summary{width:min(1100px,calc(100% - 40px));margin:25px auto;display:flex;align-items:center;gap:28px;padding:18px 22px;border:1px solid var(--line);background:var(--panel)}.deck-summary strong{color:var(--gold);font:24px Georgia}.deck-summary span,.deck-summary p{font-size:11px;color:var(--muted)}.deck-summary .validation{margin-left:auto;color:var(--coral)}.deck-summary .validation.valid{color:var(--cyan)}.card-library{width:min(1100px,calc(100% - 40px));margin:0 auto;padding-bottom:45px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.builder-card{min-height:150px;display:grid;grid-template-columns:105px 1fr auto;gap:16px;align-items:center;padding:14px;border:1px solid var(--line);background:linear-gradient(145deg,#172333,#0d141e)}.builder-art{height:120px;display:grid;place-items:center;border:1px solid #34465a;background:radial-gradient(circle,#3a4860,#111722);font:50px Georgia;color:var(--gold)}.builder-info span,.builder-info small{font-size:9px;color:var(--cyan);letter-spacing:.1em}.builder-info h2{font:18px Georgia;margin:6px 0}.builder-info p{font-size:11px;color:#adbbc1;line-height:1.45}.builder-info small{color:var(--muted)}.quantity{display:grid;grid-template-columns:32px 28px 32px;align-items:center;text-align:center}.quantity button{width:32px;height:32px;border:1px solid var(--line);background:#111a26}.quantity button:hover:not(:disabled){border-color:var(--cyan);color:var(--cyan)}.quantity button:disabled{opacity:.3;cursor:not-allowed}.quantity strong{font:20px Georgia;color:var(--gold)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -20%,#26304b 0,transparent 36%),linear-gradient(180deg,#090d15,#070a10);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;overflow-x:hidden}.noise{position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.11'/%3E%3C/svg%3E")}.game-shell{width:min(1440px,100%);margin:auto;padding:0 24px 24px}.topbar{min-height:78px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line)}.brand,.architect,.player-status,.rival-bar,.top-actions,.resource,.deck-count{display:flex;align-items:center}.brand{gap:12px}.brand-mark,.avatar{display:grid;place-items:center;border:1px solid var(--cyan);color:var(--cyan);background:#0c1d21}.brand-mark{width:38px;height:38px;transform:rotate(45deg);font-family:Georgia;font-size:21px}.brand-mark::first-letter{transform:rotate(-45deg)}h1{font-family:Georgia,serif;font-size:20px;letter-spacing:.08em;margin:0}.brand p,.architect small,.resource small{margin:2px 0 0;color:var(--muted);font-size:10px;letter-spacing:.15em}.round-display{text-align:center}.round-display span,.round-display small{display:block;font-size:9px;letter-spacing:.2em;color:var(--muted)}.round-display strong{font:28px Georgia;color:var(--gold)}.round-display small{color:var(--cyan)}.top-actions{justify-content:flex-end;gap:10px}button{font:inherit;color:inherit;cursor:pointer}.ghost-btn,.icon-btn{background:transparent;border:1px solid var(--line);border-radius:3px;padding:8px 13px}.icon-btn{width:34px}.rival-bar{height:64px;justify-content:space-between;padding:0 10px}.architect{gap:10px}.avatar{width:35px;height:35px;border-radius:50%;font-family:Georgia}.enemy .avatar{border-color:var(--coral);color:var(--coral);background:#221116}.architect div{display:flex;flex-direction:column}.architect strong{font-size:13px}.resource{gap:7px}.resource span{color:var(--cyan);filter:drop-shadow(0 0 6px var(--cyan))}.resource strong{font-size:21px}.resource small{writing-mode:vertical-rl}.deck-count{gap:8px;color:var(--muted)}.mini-card{width:20px;height:27px;border:1px solid var(--purple);background:repeating-linear-gradient(45deg,#1b1630,#1b1630 3px,#241b3b 3px,#241b3b 6px)}
.board{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:420px}.territory{position:relative;border:1px solid var(--line);background:linear-gradient(180deg,rgba(20,29,43,.92),rgba(10,15,23,.96));overflow:hidden;transition:.2s}.territory::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,var(--glow,#486582) 0,transparent 58%);opacity:.13;pointer-events:none}.territory.targetable{border-color:var(--cyan);box-shadow:inset 0 0 30px #55e5d30d}.territory.targetable:hover{transform:translateY(-3px);box-shadow:0 7px 30px #55e5d31c}.territory-head{height:62px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;border-bottom:1px solid var(--line)}.territory-head h2{font:17px Georgia;margin:0}.territory-head p{font-size:9px;letter-spacing:.13em;color:var(--muted);margin:3px 0}.control-score{display:flex;gap:10px;font:18px Georgia}.score-enemy{color:var(--coral)}.score-player{color:var(--cyan)}.time-row{min-height:117px;padding:8px 10px;border-bottom:1px solid #202c3c;position:relative}.time-row:last-child{border:0}.time-label{position:absolute;left:8px;top:8px;color:#627485;font-size:8px;letter-spacing:.18em;writing-mode:vertical-rl}.slots{height:100%;display:flex;gap:8px;align-items:center;justify-content:center;padding-left:15px}.empty-slot{width:74px;height:88px;border:1px dashed #334357;border-radius:4px;display:grid;place-items:center;color:#425466;font-size:25px}.unit{width:78px;height:98px;padding:7px;border-radius:4px;border:1px solid #486079;background:linear-gradient(145deg,#1b2937,#0f151e);position:relative;box-shadow:0 4px 15px #0008;animation:arrive .25s ease}.unit.enemy-unit{border-color:#75424d;background:linear-gradient(145deg,#311b25,#12151d)}.unit.future-unit{opacity:.7;border-style:dashed}.unit .unit-art{height:39px;display:grid;place-items:center;font:25px Georgia;color:var(--gold);background:radial-gradient(circle,#3c4863,#111722)}.unit.enemy-unit .unit-art{color:var(--coral)}.unit h3{font-size:9px;margin:5px 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unit small{font-size:7px;color:var(--muted)}.power{position:absolute;right:4px;bottom:4px;background:#0b1119;border:1px solid var(--gold);color:var(--gold);border-radius:50%;width:23px;height:23px;display:grid;place-items:center;font:bold 11px Georgia}.timer{position:absolute;left:5px;bottom:5px;color:var(--purple);font-size:9px}
.player-zone{padding-top:12px}.player-status{justify-content:space-between;margin-bottom:4px;padding:0 10px}.hand{display:flex;justify-content:center;align-items:flex-end;gap:10px;min-height:190px;padding:10px 0}.card{width:138px;height:184px;border:1px solid #586d82;border-radius:7px;background:linear-gradient(150deg,#223143,#101721 70%);padding:8px;position:relative;box-shadow:0 8px 20px #0009;transition:.18s;animation:arrive .25s ease}.card:hover,.card:focus-visible{transform:translateY(-10px);border-color:var(--cyan);outline:none}.card.selected{transform:translateY(-15px);border-color:var(--cyan);box-shadow:0 0 25px #55e5d333}.card.unaffordable{filter:saturate(.35);opacity:.55}.card-top{display:flex;justify-content:space-between;align-items:center}.card-type{font-size:8px;letter-spacing:.12em;color:var(--cyan)}.cost{width:27px;height:27px;display:grid;place-items:center;background:#102f35;border:1px solid var(--cyan);transform:rotate(45deg);font-weight:bold}.cost span{transform:rotate(-45deg)}.card-art{height:67px;margin:7px 0;background:radial-gradient(circle at 50% 60%,#526178,#17212e 55%,#0d131c);display:grid;place-items:center;font:40px Georgia;color:var(--gold);border:1px solid #39495a}.card h3{font:14px Georgia;margin:5px 0}.card p{font-size:9px;line-height:1.35;color:#b8c5ca;margin:0}.card .power{right:7px;bottom:7px}.turn-controls{text-align:center}.turn-controls p{color:var(--muted);font-size:12px;margin:0 0 9px}.primary-btn{border:1px solid #70efe0;background:linear-gradient(180deg,#1b756f,#12524f);padding:11px 22px;border-radius:3px;text-transform:uppercase;font-size:11px;font-weight:bold;letter-spacing:.09em;box-shadow:0 0 18px #55e5d322}.primary-btn:disabled{opacity:.5;cursor:not-allowed}.primary-btn span{margin-left:16px}.toast{position:fixed;top:90px;left:50%;transform:translate(-50%,-20px);padding:10px 18px;background:#14202b;border:1px solid var(--cyan);font-size:12px;opacity:0;pointer-events:none;transition:.25s;z-index:10}.toast.show{opacity:1;transform:translate(-50%,0)}.modal{position:fixed;inset:0;background:#02050bd9;display:grid;place-items:center;z-index:20;padding:20px}.modal.hidden{display:none}.modal-card{width:min(520px,100%);background:linear-gradient(145deg,#1b2635,#0e141d);border:1px solid #405269;padding:34px;position:relative;box-shadow:0 20px 80px #000}.modal-card h2{font:30px Georgia;margin:6px 0 18px}.modal-card li,.modal-card p{color:#b7c4ca;line-height:1.6;font-size:14px}.eyebrow{color:var(--cyan)!important;letter-spacing:.17em;font-size:9px!important}.modal-close{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:24px;color:var(--muted)}.modal-card .primary-btn{width:100%;margin-top:10px}@keyframes arrive{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
@media(max-width:850px){.game-shell{padding:0 10px}.brand p,.top-actions .ghost-btn{display:none}.board{grid-template-columns:1fr;min-height:0}.territory{display:grid;grid-template-columns:150px repeat(3,1fr)}.territory-head{height:auto;border-bottom:0;border-right:1px solid var(--line);padding:10px}.time-row{min-height:115px;border-bottom:0;border-right:1px solid #202c3c}.hand{justify-content:flex-start;overflow-x:auto;padding:16px 8px}.card{min-width:128px}.topbar{grid-template-columns:1fr auto 1fr}}@media(max-width:560px){.territory{grid-template-columns:110px repeat(3,1fr)}.territory-head{align-items:flex-start;flex-direction:column}.time-row{padding:5px 2px}.unit{width:58px;height:88px}.empty-slot{width:54px}.unit .unit-art{height:32px}.time-label{display:none}.slots{padding-left:0}.card{width:120px;min-width:120px}.rival-bar{padding:0}.architect strong{font-size:11px}}
.tutorial-pulse{position:relative}
@media(max-width:800px){.screen-header{grid-template-columns:auto 1fr auto;gap:10px}.tutorial-layout{grid-template-columns:1fr;gap:25px;padding:30px 0}.tutorial-demo{height:300px}.tutorial-copy{padding-bottom:35px}.card-library{grid-template-columns:1fr}.deck-summary{align-items:flex-start;flex-wrap:wrap}.deck-summary .validation{width:100%;margin:0}.builder-card{grid-template-columns:80px 1fr auto}.builder-art{height:105px}.menu-card{padding:40px 24px}.menu-card h1{font-size:32px}}
@media(max-width:540px){.screen-header{width:calc(100% - 20px)}.screen-header h1{font-size:18px}.screen-header .eyebrow{display:none}.screen-header .primary-btn,.back-btn{padding:9px}.tutorial-layout,.card-library,.deck-summary{width:calc(100% - 20px)}.time-flow{gap:3px;font-size:9px}.builder-card{grid-template-columns:60px 1fr}.builder-art{height:85px}.quantity{grid-column:1/-1;justify-self:end}.top-actions{gap:5px}.top-actions button{padding:7px}.brand h1{font-size:14px}}
.unit.boosted .power{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 12px #55e5d366;animation:effectPulse .5s ease}
@keyframes effectPulse{50%{transform:scale(1.2)}}
.unit.past-unit{opacity:.48;filter:grayscale(.7);border-style:dotted}.unit.past-unit .power{display:none}.fracture-meter{display:flex;flex-direction:column;align-items:center;color:var(--coral)}.fracture-meter small{font-size:8px;letter-spacing:.16em}.fracture-meter strong{font:16px Georgia}.fracture-demo{display:grid;grid-template-columns:repeat(4,55px);gap:12px;text-align:center}.fracture-demo b{display:grid;place-items:center;height:55px;border:1px solid var(--coral);color:var(--coral);font:24px Georgia}.fracture-demo span{grid-column:1/-1;color:var(--muted);font-size:9px;letter-spacing:.18em}
.card{touch-action:none;cursor:grab}.card:active{cursor:grabbing}.card.dragging{opacity:.25;transform:none}.drag-ghost{position:fixed;left:0;top:0;z-index:100;pointer-events:none;margin:0;opacity:.92;box-shadow:0 18px 45px #000,0 0 24px #55e5d355;transition:none!important}.territory.drag-targetable{border-color:#55e5d377;box-shadow:inset 0 0 25px #55e5d30d}.territory.drag-over{border-color:var(--gold);background:linear-gradient(180deg,rgba(39,49,60,.98),rgba(18,24,32,.98));box-shadow:inset 0 0 45px #e9b85c22,0 0 18px #e9b85c33;transform:translateY(-3px)}
.image-art{padding:0!important;overflow:hidden;background:#0c131c}.image-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 24%;pointer-events:none}.card:has(.image-art){height:210px}.card:has(.image-art) .card-art{height:92px}.hand:has(.card .image-art){min-height:220px}.unit .image-art{height:39px}.builder-art.image-art img{object-position:50% 20%}
.hand .card{width:150px;height:260px}.hand .card .card-art{width:96px;height:128px;aspect-ratio:3/4;margin:8px auto 6px}.hand{min-height:272px}.hand .card .image-art img{object-position:50% 24%}
.turn-timer{display:block;margin-top:4px;color:#67e8dc;font:700 12px/1 monospace;letter-spacing:.12em}.turn-timer.urgent{color:#ff7b9c;animation:timerPulse .7s ease-in-out infinite alternate}@keyframes timerPulse{to{opacity:.45}}
.numeric-indicator{position:relative;display:inline-grid;place-items:center;isolation:isolate;width:36px;height:36px;aspect-ratio:1/1;flex:0 0 auto;vertical-align:middle;background:none;border:0;border-radius:0;color:#fff;font:800 14px/1 Georgia,serif;text-shadow:0 1px 2px #000,0 0 4px #000;filter:none;transform:none}.numeric-indicator-icon{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.numeric-indicator-value,.cost .numeric-indicator-value{position:relative;z-index:1;display:grid!important;place-items:center;width:100%;height:100%;color:#fff!important;line-height:1!important;letter-spacing:0!important;writing-mode:horizontal-tb!important;filter:none!important;transform:none!important}.numeric-indicator.power{position:absolute;right:5px;bottom:4px}.numeric-indicator--card{width:42px;height:42px;font-size:16px}.numeric-indicator--unit{right:0!important;bottom:0!important;width:34px;height:34px;font-size:12px}.numeric-indicator--cost{width:36px;height:36px;font-size:14px}.resource-indicator-host{display:inline-grid!important;place-items:center;filter:none!important}.numeric-indicator--resource{width:48px;height:48px;font-size:18px}.builder-meta,.builder-power{display:flex;align-items:center;gap:6px}.builder-info .numeric-indicator--inline{position:relative;right:auto;bottom:auto;width:28px;height:28px;font-size:11px}.builder-power{color:var(--muted)!important;letter-spacing:.08em}.tutorial-pulse>.numeric-indicator--tutorial{position:relative;width:120px;height:120px;font-size:36px;color:#fff;filter:drop-shadow(0 0 18px #55e5d366)}.tutorial-pulse>.numeric-indicator--tutorial .numeric-indicator-icon{font-size:initial}.tutorial-pulse>.numeric-indicator--tutorial .numeric-indicator-value{position:relative;font:800 36px/1 Georgia,serif}
.online-auth,.social-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;max-width:1000px;margin:32px auto;padding:0 24px}.online-panel{background:#111c2a;border:1px solid #294054;padding:22px}.online-panel h2{margin:4px 0 18px}.online-panel label{display:grid;gap:6px;margin:12px 0;color:#9eb0bd;font-size:12px;letter-spacing:.08em}.online-panel input,.friend-search input{box-sizing:border-box;width:100%;padding:12px;background:#0a131e;border:1px solid #345066;color:#eef7f5}.online-panel .primary-btn{width:100%;margin-top:10px}.online-dashboard{max-width:1100px;margin:24px auto}.online-welcome{display:flex;align-items:center;gap:12px;padding:0 24px}.online-welcome div{display:grid}.friend-search{display:flex;gap:10px;margin:22px 24px}.social-list{display:grid;gap:10px}.social-item{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #25394a;padding:12px 0}.social-item div:first-child{display:grid}.social-item small{color:#8095a5}.social-actions{display:flex;flex-wrap:wrap;gap:6px}.social-actions button{padding:7px 9px;background:#16283a;border:1px solid #36536a;color:#dbe7e7;cursor:pointer}.social-actions .danger{border-color:#704052;color:#ff9bb3}.social-empty{color:#7f93a1;font-size:13px}
.room-panel{border-color:#2e8079;background:radial-gradient(circle at top,#163638,#101b28 62%)}.preparing-layout{width:min(620px,calc(100% - 40px));min-height:calc(100vh - 91px);margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.preparing-rune{width:90px;height:90px;display:grid;place-items:center;transform:rotate(45deg);border:1px solid var(--cyan);color:var(--cyan);font:42px Georgia;box-shadow:0 0 45px #42d6c733}.preparing-rune::first-letter{display:block;transform:rotate(-45deg)}.preparing-layout h2{margin:38px 0 8px;font:30px Georgia}.preparing-layout>p{color:var(--muted)}.preparing-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;margin:32px 0}.preparing-steps span{padding:14px 8px;border:1px solid var(--line);color:var(--muted);font-size:11px}.preparing-steps span.active{border-color:var(--cyan);color:var(--cyan);background:#12302f}.preparing-layout>.primary-btn{min-width:200px}
.challenge-notice{position:fixed;z-index:900;right:24px;bottom:24px;width:min(360px,calc(100% - 48px));padding:24px;border:1px solid var(--cyan);background:linear-gradient(145deg,#172b35,#0d151f);box-shadow:0 20px 70px #000c}.challenge-notice h2{margin:8px 0;font:25px Georgia}.challenge-notice p:not(.eyebrow){color:var(--muted)}.challenge-notice .social-actions{margin-top:18px}.challenge-notice .social-actions button{flex:1}
.danger-btn{border-color:#704052!important;color:#ff9bab!important}.danger-btn:hover{background:#321722!important}
