@charset "UTF-8";
.card>.cost{top:4px;left:4px}
.tutorial-step .tutorial-guide{justify-content:flex-start}
.tutorial-guide{display:flex;align-items:center;gap:9px;margin:8px 0}.tutorial-guide img{width:44px;height:48px;object-fit:cover;object-position:50% 32%;border:1px solid #ad89ce;border-radius:45% 45% 5px 5px}.tutorial-guide span{display:grid;gap:4px}.tutorial-guide small{font-size:10px;color:#b9a6c8}.tutorial-step .guide-dialogue{color:#d6b8e9;font:italic 12px/1.45 Georgia,serif;margin:5px 0 8px}.spatial-fissure,.shadow-eyes{position:absolute;pointer-events:none;animation:companion-shimmer .7s both}.spatial-fissure{width:70px;height:100px;background:#d6b1ff;clip-path:polygon(49% 0,53% 0,44% 29%,63% 44%,48% 69%,52% 100%,46% 100%,43% 68%,57% 45%,38% 30%);filter:drop-shadow(0 0 6px #ac77ff)}.shadow-eyes{width:27px;height:7px;background:radial-gradient(ellipse at 17% 50%,#ecd1ff 0 12%,#9a5fe5 18%,transparent 35%),radial-gradient(ellipse at 83% 50%,#ecd1ff 0 12%,#9a5fe5 18%,transparent 35%);filter:drop-shadow(0 0 6px #bb8aff)}@keyframes companion-shimmer{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}30%{opacity:.9;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-55%) scale(1.1)}}
:root{color-scheme:dark;--ink:#ece4d5;--muted:#a39bab;--gold:#c3a16b;--line:#6c5c45;--panel:#14151d;--violet:#a993e7;font-family:Georgia,'Times New Roman',serif;background:#07080d;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:360px;min-height:100dvh;background:radial-gradient(ellipse at 50% 20%,#29203380,transparent 60%),#07080d}button,input,select,textarea{font:inherit}button,input,select,textarea{border:1px solid #5e5363;background:#15151e;color:var(--ink);border-radius:5px}button{cursor:pointer;min-height:44px;padding:9px 14px;transition:background .16s,border-color .16s,transform .16s}button:hover{border-color:var(--gold);background:#292330}button:active{transform:scale(.97)}button:disabled{opacity:.4;cursor:default}button:focus-visible,[role=button]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #c9b2ff;outline-offset:3px}input,select,textarea{padding:10px;min-height:44px;max-width:100%;width:100%;font-family:Arial,sans-serif;font-size:15px}textarea{resize:vertical}h1,h2,h3,p{margin-top:0}h1{font-weight:400;font-size:25px}h2{font-weight:400;font-size:21px}h3{font-weight:400;color:var(--gold)}p{line-height:1.55}small,.muted,label,output{font-family:Arial,sans-serif}.muted{font-size:13px;color:var(--muted);line-height:1.6}.eyebrow{font-size:10px;letter-spacing:2.4px;color:#b6a787;text-align:center;line-height:1.6}.primary{background:linear-gradient(#65516f,#342b43);border-color:#a18cad}.quiet{background:transparent;border-color:transparent;color:#b4a6be}.app-shell,.battle-shell{position:relative;max-width:480px;margin:0 auto;min-height:100dvh;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#29203655,transparent 50%),linear-gradient(110deg,#141620,#0b0b11 60%,#18131d);box-shadow:0 0 90px #0008;border-inline:1px solid #332a3d}.app-shell{padding:20px 16px max(24px,env(safe-area-inset-bottom))}.page-header{display:flex;align-items:center;gap:14px;margin-bottom:22px;padding-top:env(safe-area-inset-top)}.page-header h1{margin:0;flex:1}.page-header button{font-family:Arial,sans-serif;font-size:12px}.tiny-sigil{color:var(--gold);font-size:28px}.menu-screen{display:flex;flex-direction:column;min-height:calc(100dvh - 48px);align-items:center;position:relative}.edition{font-family:Arial,sans-serif;letter-spacing:2px;font-size:9px;color:#8c8095;padding-top:18px}.brand{width:110%;max-width:510px;height:auto;position:relative;margin:24px -5% -6px;filter:drop-shadow(0 6px 26px #9979b21a)}.menu-screen .eyebrow{font-size:9px;letter-spacing:2px;margin:8px 0 0}.menu-gates{height:235px;width:100%;display:flex;align-items:end;justify-content:center;gap:18px;position:relative;perspective:800px}.menu-gates:after{content:'';position:absolute;bottom:-25px;width:100%;height:65px;background:radial-gradient(ellipse,#a191ba25,transparent 65%);border-top:1px solid #6c567030;transform:rotateX(60deg)}.menu-gates i{height:152px;width:78px;display:block;border:3px double #766a7d;border-radius:50% 50% 2px 2px;box-shadow:0 0 24px #679ff61c,inset 0 0 27px #819edb26;background:radial-gradient(ellipse at bottom,#486db440,#101521 65%);transform:rotateY(15deg);position:relative}.menu-gates i:before,.menu-gates i:after{content:'';position:absolute;inset:9px;border:1px solid #9d91b740;border-radius:inherit}.menu-gates i:after{inset:24px 30px -1px;background:linear-gradient(transparent,#829dd4);border:0;filter:blur(1px)}.menu-gates i:nth-child(2){height:193px;width:99px;border-color:#b39a6e;background:radial-gradient(ellipse at bottom,#cab37435,#1a1620 65%);box-shadow:0 0 40px #bb9a6325,inset 0 0 24px #b7a27926;transform:none}.menu-gates i:nth-child(2):after{background:linear-gradient(transparent,#d8cba6)}.menu-gates i:nth-child(3){transform:rotateY(-15deg);border-color:#986967;background:radial-gradient(ellipse at bottom,#993c483b,#1b1120 65%)}.gate-sigil{position:absolute;left:calc(50% - 25px);top:76px;font-size:72px;color:#d2b77b;text-shadow:0 0 30px #be985b;animation:breathe 5s ease-in-out infinite}.menu-lore{font-size:14px;color:#b2a8bb;text-align:center;max-width:290px;position:relative;margin:28px 0 26px}.menu-nav{width:100%;max-width:350px;margin-top:auto;display:grid;gap:12px}.play-button{background:linear-gradient(115deg,#746044,#48364f 70%,#2d2b3f);border:1px solid #b49a75;box-shadow:inset 0 0 0 3px #1e1a2055,0 4px 25px #0006;min-height:76px}.play-button span{display:block;text-transform:uppercase;letter-spacing:4px;font-size:19px}.play-button small{display:block;font-size:10px;margin-top:9px;color:#ccc0cc}.menu-secondary{display:grid;grid-template-columns:1fr 1fr;gap:12px}.menu-secondary button{background:linear-gradient(#22212c,#15151e);min-height:49px;letter-spacing:1px;font-size:13px}.menu-screen footer{display:flex;justify-content:space-between;width:100%;margin-top:27px;border-top:1px solid #54475b50}.menu-screen footer button{border:0;background:none;font-family:Arial,sans-serif;font-size:11px;color:#aaa0b4;padding:10px 7px}.battle-shell{padding:env(safe-area-inset-top) 12px max(12px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 40%,#43304433,transparent 55%),repeating-linear-gradient(170deg,transparent 0 88px,#74707e05 89px 90px),#0d0e15}.battle-header{height:43px;display:flex;align-items:center;justify-content:space-between}.icon-button{background:none;border:0;font-size:22px;width:40px;padding:4px;min-height:38px;color:#b6a6c2}.battle-wordmark{font-size:13px;letter-spacing:5px;color:#c6b79d}.hero{display:flex;align-items:center;gap:10px;min-height:75px;position:relative}.hero h2{font-size:15px;margin:0 0 5px}.hero small{font-size:9px;color:#9d93a9}.hero-hp{font-size:30px;color:#ffe4df;margin-left:auto;min-width:49px;height:56px;display:grid;place-items:center;background:linear-gradient(145deg,#6e353e80,#22121f);border:1px solid #9d6e6a;clip-path:polygon(50% 0,100% 15%,100% 78%,50% 100%,0 78%,0 15%);font-weight:400;text-shadow:0 1px 10px #ff536433}.portrait{flex:none;width:55px;height:62px;border:1px solid #9a8167;border-radius:48% 48% 35% 35%;background:#242234;box-shadow:inset 0 0 0 3px #111,0 0 15px #000}.enemy-portrait{background-image:linear-gradient(0deg,#1117,transparent),url('/assets/optimized/seraphine_the_last_queen.jpg');background-size:cover;background-position:50% 12%}.player-portrait{display:grid;place-items:center;font-size:47px;color:#c5b6f3;text-shadow:0 0 15px #9372db;background:radial-gradient(ellipse,#36304c,#15151e)}.enemy-cards{height:24px;display:flex;align-items:center;margin-top:6px;padding-left:4px}.enemy-cards img{width:16px;height:23px;border:1px solid #78644d;border-radius:2px;margin-left:-4px;object-fit:cover;transform:rotate(-5deg)}.enemy-cards span{font-size:11px;color:#c7bed2;margin-left:9px}.enemy-cards small{font-size:8px}.turn-strip{display:flex;justify-content:space-between;color:#a398af;font-family:Arial,sans-serif;font-size:10px;padding:8px 2px;border-block:1px solid #4b405c55;margin-top:8px}.your-turn{color:#e4d4a6}.veil-panel{padding:10px 7px 0}.veil-caption{display:flex;align-items:center;font-size:13px;letter-spacing:1px;color:#cab7e9;gap:8px}.veil-caption b{margin-left:auto;font-weight:400}.veil-caption small{color:#8f829d}.info-button{min-height:22px;padding:0;width:22px;border-radius:50%;font-size:12px;background:transparent}.veil-meter{height:6px;position:relative;margin:8px 0;background:#241e33;border:1px solid #4d3c69;border-radius:4px;overflow:hidden}.veil-meter div{height:100%;background:linear-gradient(90deg,#65509c,#c7a4f0);box-shadow:0 0 14px #b181e9;transition:width .5s}.veil-meter i{position:absolute;top:0;bottom:0;width:1px;background:#1c162c}.anomaly-label{min-height:24px;border:0;background:none;font-size:10px;color:#998baa;width:100%;padding:2px}.battlefield{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:8px 0 5px;position:relative}.lane{min-width:0;background:linear-gradient(transparent,#7c748a06,transparent);border-inline:1px solid #51475e26;border-radius:65px 65px 6px 6px;padding:0 3px}.lane-0{--gate:#84b1e4;--gate-rgb:99,159,229}.lane-1{--gate:#d6bd84;--gate-rgb:205,173,101}.lane-2{--gate:#d28691;--gate-rgb:201,90,110}.lane-unit{height:132px;position:relative}.empty-slot{height:124px;border:1px dashed #76688040;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(120deg,#76708005,transparent)}.empty-slot>span{font-size:32px;color:#7e6f8a44}.empty-slot small{font-size:8px;color:#8c809677;text-align:center}.portal{width:100%;height:132px;position:relative;border:0;background:none!important;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;color:var(--gate);padding:4px 0 5px;isolation:isolate}.portal-orbit{position:absolute;top:4px;left:calc(50% - 34px);width:68px;height:76px;border:3px double var(--gate);border-radius:50% 50% 45% 45%;box-shadow:inset 0 0 15px rgba(var(--gate-rgb),.2),0 0 16px rgba(var(--gate-rgb),.15);background:radial-gradient(ellipse at 50% 70%,rgba(var(--gate-rgb),.16),#0a0c16 72%);z-index:-1}.portal-orbit:after{content:'';position:absolute;inset:7px;border:1px solid rgba(var(--gate-rgb),.35);border-radius:inherit}.portal-symbol{position:absolute;top:18px;font-size:37px;text-shadow:0 0 17px var(--gate)}.portal b{font-size:12px;text-transform:uppercase;font-weight:400;letter-spacing:1px;margin-bottom:5px}.portal small{font-family:Arial,sans-serif;font-size:9px;line-height:1.3;min-height:25px;color:#a99dac;max-width:115px}.portal em{position:absolute;bottom:-7px;left:-4px;right:-4px;font-family:Arial,sans-serif;font-style:normal;font-size:10px;background:#544868;border:1px solid #b7a2db;padding:5px 2px;z-index:3;border-radius:4px}.valid-target{background:linear-gradient(transparent,#ba98ef16);box-shadow:0 0 0 1px #bea0f480}.valid-target .portal-orbit{box-shadow:0 0 25px rgba(var(--gate-rgb),.4);animation:breathe 1.5s infinite}.attachments{height:28px;display:flex;flex-direction:column;justify-content:center;gap:1px}.attachment{min-height:12px;max-height:13px;line-height:11px;padding:0 2px;border:0;font-family:Arial,sans-serif;font-size:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--accent,#bca3cc);background:#211e2d}.player{border-top:1px solid #574c6455;margin-top:2px;padding-top:7px;min-height:77px}.mana-gems{display:flex;gap:4px;margin:8px 0}.mana-gems i{width:11px;height:13px;background:#1d2030;clip-path:polygon(50% 0,100% 30%,100% 70%,50% 100%,0 70%,0 30%);border:1px solid #768aa4}.mana-gems i.filled{background:linear-gradient(120deg,#c1e9ff,#647fb7 60%,#232d50);filter:drop-shadow(0 0 4px #8399ec)}.mana-gems i.spent{background:#3a344d}.hand-heading{display:flex;gap:10px;align-items:center;justify-content:space-between;font-size:10px;color:#b7a7c4;margin:12px 1px 6px}.hand-heading span{white-space:nowrap}.hand-heading small{font-family:Arial,sans-serif;font-size:9px;line-height:1.35;text-align:right;max-width:275px;color:#94889e}.hand{display:flex;gap:7px;overflow-x:auto;padding:12px 4px 8px;min-height:152px;align-items:flex-end;scrollbar-width:thin;scrollbar-color:#594661 transparent}.hand-card{flex:0 0 87px;width:87px;touch-action:pan-x;cursor:pointer;animation:enter-card .3s both;animation-delay:calc(var(--order,0)*.025s)}.hand-card.selected{transform:translateY(-8px);border-color:#d4b6ff;box-shadow:0 0 14px #ac7bca70}.battle-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #51445955;padding-top:8px}.log-toggle{font-family:Arial,sans-serif;font-size:10px;text-align:left;padding:6px;max-width:150px}.end-turn{background:linear-gradient(135deg,#594564,#292737);border:1px solid #9981a9;min-width:148px;font-size:12px;text-transform:uppercase;letter-spacing:1px}.end-turn span{padding-left:8px;color:#ceb386}.battle-log{max-height:190px;overflow:auto;font:11px/1.5 Arial,sans-serif;background:#07080daa;padding:10px;color:#b6a8c2;margin-top:9px}.battle-log p{margin:0 0 5px}.card{--accent:#aca2c2;background:linear-gradient(145deg,#342d3c,#11121b 35%,#1f1b28);border:1px solid #8d7b62;border-radius:7px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #16131c,0 3px 7px #0009;padding:3px;color:#e8e0d2;text-align:center}.elvarion{--accent:#87b596}.khar_dor{--accent:#d99375}.norvein{--accent:#a4c8da}.astrael{--accent:#d6bf83}.abyss{--accent:#b49adc}.card.legendary{border-color:#c3a875;box-shadow:inset 0 0 0 2px #1c1419,0 2px 9px #ad79401c}.card.epic{border-color:#ab8ccc}.card.rare{border-color:#89a6bc}.card-art{position:relative;aspect-ratio:1/1.06;overflow:hidden;border-radius:35% 35% 2px 2px;background:radial-gradient(ellipse at 50% 30%,#62536a,#14141e 70%);border:1px solid #796d6040}.card-art>img{width:100%;height:100%;object-fit:cover;object-position:50% 25%;display:block}.card-art:after{content:'';position:absolute;inset:0;box-shadow:inset 0 -15px 18px -12px #000;pointer-events:none}.cost{position:absolute;top:0;left:0;border:1px solid #a3bfd9;border-radius:50%;background:radial-gradient(ellipse at 30% 20%,#3a5274,#111728);width:27px;height:29px;display:grid;place-items:center;font-size:21px;color:#e6f4ff;text-shadow:0 0 3px #9bd4ff;z-index:2}.faction-mark{position:absolute;right:3px;bottom:3px;color:var(--accent);text-shadow:0 0 6px #000;font-size:23px}.ward-mark{position:absolute;right:3px;top:0;font-size:25px;color:#dcf2ff;text-shadow:0 0 7px #8cbef7}.card-name{padding:5px 1px 2px;font-size:13px;line-height:1.1;color:#e4d1ac;text-wrap:balance}.card-subtitle{font-size:8px;color:#b5aabd;min-height:13px;padding:1px}.card-rarity{font-family:Arial,sans-serif;font-size:7px;color:var(--accent);border-block:1px solid #6b5c714a;padding:4px 0;margin:2px}.card-ability{font-family:Arial,sans-serif;font-size:10px;line-height:1.4;padding:5px 6px;min-height:70px;color:#d7cfdc}.card-ability small{display:block;margin-top:5px;font-size:9px;color:var(--accent)}.card-stats{display:flex;align-items:center;justify-content:space-between;padding:1px 4px 3px}.card-stats>b{font-size:19px;font-weight:400;background:linear-gradient(140deg,#5e482a,#1e1920);border:1px solid #a3926e;min-width:27px;height:26px;border-radius:50% 40%;line-height:25px}.card-stats .health{background:linear-gradient(140deg,#753749,#241720);border-color:#ae7c86}.card-stats span{color:#9e8e75;font-size:16px}.card-type{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--accent);padding:7px}.procedural-art{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 30%,color-mix(in srgb,var(--accent) 26%,transparent),transparent 67%),repeating-conic-gradient(from 25deg at 50% 45%,#fff0 0deg 28deg,#ffffff05 29deg 30deg),linear-gradient(145deg,#11151e,#221d2c)}.procedural-art:before{content:'';position:absolute;inset:17%;border:1px solid var(--accent);opacity:.4;transform:rotate(45deg);box-shadow:0 0 0 8px #c4b4d009,0 0 0 10px #c4b4d009}.procedural-art span{font-size:65px;color:var(--accent);text-shadow:0 0 25px color-mix(in srgb,var(--accent) 30%,transparent);z-index:1}.procedural-art i{position:absolute;inset:10%;border:1px solid #c5b8d333;border-radius:50%}.hand-card .card-art{height:72px;aspect-ratio:auto}.hand-card .cost{width:22px;height:24px;font-size:17px}.hand-card .card-name{font-size:9px;min-height:24px;padding:3px 0 1px;display:grid;place-items:center}.hand-card .card-subtitle{font-size:7px;min-height:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hand-card .card-rarity,.hand-card .card-ability{display:none}.hand-card .card-stats>b{font-size:15px;min-width:21px;height:21px;line-height:20px}.hand-card .card-stats{padding:0 1px}.hand-card .card-type{font-size:7px;padding:4px 0;min-height:21px}.hand-card .procedural-art span{font-size:45px}.board-card{width:100%;max-width:116px;margin:auto;height:116px;cursor:pointer}.board-card .card-art{height:62px;aspect-ratio:auto;border-radius:24% 24% 0 0}.board-card .card-name{font-size:9px;height:24px;padding:2px 0;display:grid;place-items:center}.board-card .cost{height:20px;width:19px;font-size:14px}.board-card .card-subtitle,.board-card .card-ability,.board-card .card-rarity{display:none}.board-card .card-stats{padding:0 2px}.board-card .card-stats>b{font-size:16px;min-width:24px;height:23px;line-height:22px}.board-card .procedural-art span{font-size:38px}.board-card.ready{border-color:#adcba2}.board-card.frozen{filter:saturate(.5);box-shadow:inset 0 0 12px #99d5ff66;border-color:#8ec5e8}.unit-status{font-family:Arial,sans-serif;font-size:8px;color:#a4bcac;display:block;text-align:center;padding-top:3px;height:14px;white-space:nowrap}.player-unit .ready:after{content:'';position:absolute;inset:0;border:1px solid #b5e1a080;border-radius:inherit;pointer-events:none}.collection-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 11px;margin:18px 0 24px}.card-button{padding:0;background:none;border:0;border-radius:8px;min-width:0;align-self:stretch}.card-button .card{height:100%;display:flex;flex-direction:column}.card-button .card-ability{flex:1}.card-button .card-stats{margin-top:auto}.filters{display:flex;gap:8px;margin-top:20px}.filters label{font-size:10px;color:#b4a6bd;flex:1;min-width:0}.filters select{font-size:11px;padding:7px 4px;margin-top:6px}.sticky-bottom{position:sticky;bottom:0;background:#101019f0;display:flex;justify-content:center;gap:8px;padding:12px 0 6px;backdrop-filter:blur(8px);border-top:1px solid #6f577d55}.sticky-bottom button{font-size:12px}.deck-summary{display:flex;align-items:center;gap:14px;margin-bottom:18px}.deck-summary strong{font-size:27px;color:#d5c299;font-weight:400}.deck-summary span{font:12px/1.4 Arial,sans-serif}.success{color:#a8c69c}.deck-row{display:flex;align-items:center;gap:8px;padding:6px;border-bottom:1px solid #53455b44;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 9%,transparent),transparent);min-height:62px}.deck-row>button:first-of-type{border:0;background:none;flex:1;text-align:left;padding:2px;min-width:0}.deck-row b{font-size:12px;font-weight:400}.deck-row small{display:block;font-size:9px;color:#a899b3;padding-top:5px}.deck-row>button:not(:first-of-type){width:36px;padding:5px;min-height:40px}.deck-cost{border:1px solid #7487a2;background:#283144;border-radius:50%;width:25px;height:29px;text-align:center;line-height:27px;color:#daeaff}.settings-list{display:grid;gap:22px;margin:22px 0}.settings-list label{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:14px;justify-content:space-between}.settings-list label select{width:auto;max-width:60%}.settings-list input[type=range]{width:100%;accent-color:#ad94c4;padding:0;height:28px;min-height:28px}.settings-list output{color:#b69dd1;font-size:12px}.check{display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:Arial,sans-serif;font-size:13px}.check input{width:20px;height:20px;min-height:20px;accent-color:#ae94c4}.creator-form{display:grid;gap:16px}.creator-form label{display:grid;gap:7px;font-size:12px;color:#c1b2cc}.form-grid{display:flex;gap:8px}.form-grid label{flex:1;min-width:0}.form-grid input,.form-grid select{font-size:12px;padding:8px 5px}.creator-form fieldset{border:1px solid #65527366;border-radius:5px;display:grid;gap:13px;padding:14px 12px}.creator-form legend{font-size:14px;color:#c2aed2;padding:0 7px}.creator-form .check{display:flex;flex-direction:row-reverse;font-size:12px}.creator-form h2{margin-top:10px;margin-bottom:0;text-align:center}#creator-preview{display:flex;justify-content:center}#creator-preview .card{width:240px}#export-area{margin-top:18px}#export-area textarea{font:11px/1.5 monospace}.button-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.button-row button{font-size:12px}.import-label{display:block;font-size:13px;margin-top:24px;color:#b9a7c8}.import-label input{margin-top:9px}#overlay{position:fixed;inset:0;display:none;z-index:30;background:#030309d9;backdrop-filter:blur(6px);padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom));overflow-y:auto}#overlay.open{display:flex;align-items:safe center;justify-content:center}.modal{position:relative;max-width:420px;width:100%;padding:28px 23px;background:radial-gradient(ellipse at top,#342a44,#15131e 65%);border:1px solid #8d729b;box-shadow:inset 0 0 0 4px #0b091180,0 10px 80px #000;border-radius:9px;animation:reveal .25s;max-height:calc(100dvh - 36px);overflow:auto}.modal p{font-family:Arial,sans-serif;font-size:14px;color:#c9becf;line-height:1.65}.modal-close{position:absolute;right:10px;top:8px;width:38px;min-height:38px;padding:0;font-size:26px;background:#15131ed9;z-index:3}.inspect-modal{max-width:330px;text-align:center;padding:22px 24px}.inspect-card{max-width:270px;margin:0 auto}.inspect-card .card-name{font-size:24px;padding:10px 3px 3px}.inspect-card .card-art{aspect-ratio:1/.9}.inspect-card .card-subtitle{font-size:11px;padding:4px}.inspect-card .card-ability{font-size:12px;padding:12px 10px;line-height:1.55;min-height:60px}.inspect-card .card-ability small{font-size:11px}.inspect-card .card-rarity{font-size:9px}.inspect-card .cost{width:39px;height:42px;font-size:30px}.inspect-card .card-stats>b{height:34px;min-width:37px;font-size:26px;line-height:33px}.inspect-card .card-stats{padding:5px}.modal .flavor{font-family:Georgia,serif;font-size:14px;font-style:italic;color:#c2ac86;margin:15px 0 9px}.modal .inspect-rule{font-size:11px;margin-bottom:15px}.tutorial-step{border:1px solid #baa4d2;background:#30273eea;padding:10px 12px;border-radius:5px;margin-top:10px}.tutorial-step>div{display:flex;justify-content:space-between;align-items:center}.tutorial-step b{font-size:12px;color:#e2cfac;font-weight:400}.tutorial-step p{font:12px/1.5 Arial,sans-serif;margin:5px 0 0;color:#e3d8ec}.tutorial-step button{font:11px Arial,sans-serif;min-height:32px;padding:5px 9px}.tutorial-step>button{margin-top:9px;width:100%}[data-tutorial]{outline:2px solid #d6b8fa;outline-offset:2px}.debug-panel{font:11px Arial,sans-serif;color:#b6a1c6;margin:15px 0;border:1px dashed #9472a4;padding:10px}.debug-panel summary{cursor:pointer;padding:8px 0}.debug-panel>div{display:grid;grid-template-columns:1fr 1fr;gap:5px}.debug-panel button{font-size:10px;padding:7px 5px}.debug-panel select{grid-column:1/-1}.veilbreak-modal{text-align:center;padding:45px 25px;overflow:hidden;background:radial-gradient(ellipse,#66527860,#110e1b 68%);border-color:#cbb3ed}.break-sigil{display:block;font-size:115px;line-height:1.1;color:#eed7ff;text-shadow:0 0 25px #cca0ff;animation:break-pulse 1.9s}.veilbreak-modal h1{color:#ead5ff;font-size:30px}.veilbreak-modal .eyebrow{margin:23px 0 15px;letter-spacing:4px}.fracture-lines{position:absolute;inset:0;pointer-events:none;opacity:.5;background:conic-gradient(from 15deg at 50% 25%,transparent 0deg 26deg,#e0b9ff 26deg 26.5deg,transparent 26.5deg 135deg,#f0d5ff 135deg 136deg,transparent 136deg 240deg,#ddaaff 240deg 241deg,transparent 241deg);animation:reveal .3s}.result-modal{text-align:center;padding:40px 25px}.result-modal h1{font-size:44px;color:#d2b787}.result-sigil{font-size:100px;color:#c3a06a;text-shadow:0 0 30px #dfb68170;animation:reveal 1s}.result-actions{display:grid;gap:11px}.drag-ghost{position:fixed;z-index:50;pointer-events:none;width:90px;opacity:.9;transform:rotate(-5deg) scale(1.12);box-shadow:0 12px 40px #000;animation:none;touch-action:none}#fx{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}.particle{position:absolute;width:6px;height:6px;border-radius:50%;box-shadow:0 0 8px currentColor;animation:particle .9s ease-out forwards}.floating-number{position:absolute;font-size:27px;font-family:Georgia,serif;text-shadow:0 2px 3px #000;animation:float-number 1s forwards}#toast{position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%) translateY(20px);max-width:calc(100% - 30px);width:max-content;z-index:60;background:#302739;border:1px solid #baa2cb;border-radius:6px;padding:12px 18px;font:13px/1.5 Arial,sans-serif;opacity:0;pointer-events:none;transition:.2s}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}.shaking{animation:shake .35s 2}.missing-art{background:radial-gradient(ellipse,#544269,#15141f)}
@keyframes breathe{50%{filter:brightness(1.3);opacity:.8}}@keyframes reveal{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}@keyframes enter-card{from{opacity:0;transform:translateX(20px) rotate(5deg)}to{opacity:1;transform:none}}@keyframes particle{to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}}@keyframes float-number{0%{opacity:0;transform:translate(-50%,0) scale(.7)}20%{opacity:1;transform:translate(-50%,-10px) scale(1.1)}100%{opacity:0;transform:translate(-50%,-55px)}}@keyframes shake{25%{transform:translate(2px,-1px)}75%{transform:translate(-2px,1px)}}@keyframes break-pulse{0%{transform:scale(.7);opacity:0}30%{transform:scale(1.1);opacity:1}100%{transform:scale(1)}}
@media(min-width:700px){body{padding:20px 0}.app-shell,.battle-shell{border:1px solid #554360;border-radius:14px;min-height:calc(100dvh - 40px)}.menu-screen{min-height:calc(100dvh - 90px)}}
@media(max-width:380px){.battle-shell{padding-inline:8px}.battlefield{gap:4px}.lane{padding:0 2px}.hero h2{font-size:13px}.hero small{font-size:8px}.portal small{font-size:8px}.portal b{font-size:11px}.lane-unit{height:123px}.board-card{height:110px}.board-card .card-art{height:56px}.empty-slot{height:116px}.portal{height:125px}.menu-gates{height:195px}.brand{margin-top:20px}.menu-lore{font-size:13px}.card-ability{font-size:9px;padding:5px}.hand-heading small{font-size:8px}.collection-grid{gap:9px}.card-name{font-size:12px}}
@media(max-height:850px){.battle-header{height:35px}.hero{min-height:65px}.portrait{height:54px;width:48px}.hero-hp{height:48px;font-size:27px}.turn-strip{margin-top:5px;padding:6px 2px}.veil-panel{padding-top:7px}.battlefield{padding-top:3px}.lane-unit{height:120px}.board-card{height:108px}.board-card .card-art{height:54px}.empty-slot{height:112px}.portal{height:118px}.portal-orbit{height:66px;width:61px;left:calc(50% - 30px)}.portal-symbol{top:15px;font-size:32px}.attachments{height:23px}.hand-heading{margin-top:8px}.player{min-height:65px}.hand{min-height:144px}.hand-card .card-art{height:65px}.menu-gates{height:195px}.menu-lore{margin-block:20px}.brand{margin-top:16px}}
/* Keep the complete standard battle visible on portrait phones. Tutorials and logs may scroll. */
@media(max-height:950px){.battle-header{height:32px}.hero{min-height:60px;gap:8px}.hero h2{margin-bottom:3px;font-size:14px}.hero small{line-height:11px}.enemy-cards{height:19px;margin-top:4px}.enemy-cards img{height:18px;width:13px}.portrait{height:49px;width:45px}.hero-hp{height:46px}.turn-strip{padding:5px 2px;margin-top:4px}.veil-panel{padding-top:6px}.veil-meter{margin:5px 0}.anomaly-label{min-height:20px;line-height:14px;padding:0}.battlefield{padding:4px 0}.lane-unit{height:96px}.board-card{height:89px}.board-card .card-art{height:37px}.board-card .card-name{height:21px;font-size:9px}.board-card .card-stats>b{height:22px;line-height:21px}.unit-status{font-size:7px;height:8px;padding-top:1px}.empty-slot{height:90px}.portal{height:96px;padding-bottom:0}.portal-orbit{top:0;height:54px;width:52px;left:calc(50% - 26px)}.portal-symbol{top:7px;font-size:29px}.portal b{margin-bottom:3px;font-size:11px}.portal small{font-size:8px;min-height:22px}.attachments{height:18px}.attachment{font-size:7px;max-height:9px;min-height:9px;line-height:9px}.player{min-height:60px;padding-top:5px}.mana-gems{margin:5px 0}.hand-heading{margin:7px 1px 2px}.hand{min-height:129px;padding-top:10px;padding-bottom:4px}.hand-card .card-art{height:54px}.hand-card .card-name{min-height:21px;font-size:9px}.hand-card .card-subtitle{display:none}.hand-card .card-stats{padding:2px 1px 0}.hand-card .card-type{min-height:23px}.battle-actions{padding-top:5px}.end-turn{min-height:42px}.tutorial-step{margin-top:7px}}
.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.reduced-motion .particle{display:none}@media(prefers-reduced-motion:reduce){body:not(.motion-override) .menu-gates *,body:not(.motion-override) .particle{animation:none}}

.network-clock{text-align:center;color:#bba4da;font-size:.85rem}body{padding-top:var(--tg-safe-top,0px);padding-bottom:var(--tg-safe-bottom,0px)}
