.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-body);font-weight:600;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap;position:relative}.ui-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn--sm{font-size:var(--fs-xs);padding:.375rem .75rem}.ui-btn--md{font-size:var(--fs-sm);padding:.55rem 1rem}.ui-btn--lg{font-size:var(--fs-md);padding:.75rem 1.4rem}.ui-btn--primary{background:var(--accent);color:#fff}.ui-btn--primary:hover:not(:disabled){background:var(--accent-hover)}.ui-btn--secondary{background:var(--bg-surface-2);border-color:var(--border-strong);color:var(--text-body)}.ui-btn--secondary:hover:not(:disabled){background:var(--bg-hover)}.ui-btn--ghost{background:transparent;color:var(--text-muted)}.ui-btn--ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-body)}.ui-btn--danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.ui-btn--danger:hover:not(:disabled){background:var(--danger);color:#fff}.ui-btn--gold{background:var(--gold-soft);border-color:var(--gold);color:var(--gold)}.ui-btn--gold:hover:not(:disabled){background:var(--gold);color:var(--text-invert)}.ui-btn--icon{padding:.5rem;line-height:0}.ui-btn--icon.ui-btn--sm{padding:.35rem}.ui-btn__spinner{position:absolute;width:1em;height:1em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.ui-btn__label--loading{visibility:hidden}.ui-field{display:flex;flex-direction:column;gap:var(--space-1)}.ui-field__label{font-size:var(--fs-sm);font-weight:600;color:var(--text-heading)}.ui-field__hint{font-size:var(--fs-xs);color:var(--text-muted)}.ui-field__error{font-size:var(--fs-xs);color:var(--danger)}.ui-input,.ui-select,.ui-textarea{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--text-body);background:var(--bg-input);border:1px solid var(--border-input);border-radius:var(--radius-md);padding:.55rem .75rem;transition:border-color .15s ease;width:100%}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.ui-input::placeholder,.ui-textarea::placeholder{color:var(--text-dim)}.ui-input--invalid,.ui-select--invalid,.ui-textarea--invalid{border-color:var(--danger)}.ui-textarea{resize:vertical;min-height:5rem}.ui-checkbox{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--fs-sm);color:var(--text-body);cursor:pointer;-webkit-user-select:none;user-select:none}.ui-checkbox input{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer}.ui-surface{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.ui-surface--raised{box-shadow:var(--shadow-md)}.ui-surface--tight{padding:var(--space-3)}.ui-surface--interactive{cursor:pointer;transition:border-color .15s ease,background .15s ease}.ui-surface--interactive:hover{border-color:var(--border-strong);background:var(--bg-surface-2)}.ui-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:100}.ui-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:calc(100dvh - 2 * var(--space-4));overflow-y:auto;animation:modal-in .18s ease}.ui-modal--wide{max-width:720px}@media (max-width: 640px){.ui-modal__overlay{padding:0;align-items:flex-end}.ui-modal,.ui-modal--wide{max-width:none;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.ui-modal__header,.ui-modal__footer{padding:var(--space-3) var(--space-4)}.ui-modal__body{padding:var(--space-4)}}.ui-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.ui-modal__title{font-size:var(--fs-lg);font-weight:700;color:var(--text-heading);margin:0}.ui-modal__body{padding:var(--space-5)}.ui-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border)}.ui-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.ui-tabs::-webkit-scrollbar{display:none}.ui-tabs__tab{flex:0 0 auto;font-family:var(--font-body);font-size:var(--fs-sm);font-weight:600;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;padding:var(--space-2) var(--space-3);margin-bottom:-1px;cursor:pointer;white-space:nowrap;transition:color .15s ease,border-color .15s ease}.ui-tabs__tab:hover{color:var(--text-body)}.ui-tabs__tab--active{color:var(--accent-text);border-bottom-color:var(--accent)}.ui-tabs__tab:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.ui-badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--fs-xs);font-weight:600;line-height:1;padding:.3rem .55rem;border-radius:var(--radius-full);background:var(--bg-surface-2);color:var(--text-muted);border:1px solid var(--border);white-space:nowrap}.ui-badge--accent{background:var(--accent-soft);color:var(--accent-text);border-color:transparent}.ui-badge--gold{background:var(--gold-soft);color:var(--gold);border-color:transparent}.ui-badge--success{background:var(--success-soft);color:var(--success);border-color:transparent}.ui-badge--danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.ui-badge--warning{background:var(--warning-soft);color:var(--warning);border-color:transparent}.ui-badge--common{color:var(--rarity-common);border-color:var(--rarity-common);background:transparent}.ui-badge--rare{color:var(--rarity-rare);border-color:var(--rarity-rare);background:transparent}.ui-badge--epic{color:var(--rarity-epic);border-color:var(--rarity-epic);background:transparent}.ui-badge--legendary{color:var(--rarity-legendary);border-color:var(--rarity-legendary);background:transparent}.ui-spinner{display:inline-block;width:1.5rem;height:1.5rem;border:3px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.ui-spinner--sm{width:1rem;height:1rem;border-width:2px}.ui-spinner--lg{width:2.25rem;height:2.25rem}.ui-spinner__center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-7);color:var(--text-muted)}.ui-skeleton{display:block;background:linear-gradient(90deg,var(--bg-surface-2) 0px,var(--bg-hover) 40px,var(--bg-surface-2) 80px);background-size:200px 100%;border-radius:var(--radius-sm);animation:skeleton-shimmer 1.4s ease infinite}.ui-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-2);padding:var(--space-7) var(--space-5);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);color:var(--text-muted)}.ui-empty__icon{font-size:2rem;line-height:1}.ui-empty__title{font-size:var(--fs-lg);font-weight:700;color:var(--text-heading);margin:0}.ui-empty__body{max-width:42ch;margin:0}.ui-empty__action{margin-top:var(--space-3)}.ui-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}.ui-page-header__title{font-size:var(--fs-2xl);font-weight:800;margin:0}.ui-page-header__subtitle{color:var(--text-muted);margin:var(--space-1) 0 0}.ui-page-header__actions{display:flex;gap:var(--space-2);align-items:center}.ui-stack{display:flex;flex-direction:column}.ui-inline{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap}.ui-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--grid-min, 220px),1fr))}.ui-gap-1{gap:var(--space-1)}.ui-gap-2{gap:var(--space-2)}.ui-gap-3{gap:var(--space-3)}.ui-gap-4{gap:var(--space-4)}.ui-gap-5{gap:var(--space-5)}.ui-gap-6{gap:var(--space-6)}.ui-stat{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.ui-stat__label{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.ui-stat__value{font-size:var(--fs-2xl);font-weight:800;color:var(--gold);line-height:1}.ui-toast__container{position:fixed;bottom:var(--space-5);right:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);z-index:200;max-width:360px}.ui-toast{background:var(--bg-surface);border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-3) var(--space-4);font-size:var(--fs-sm);color:var(--text-body);animation:toast-in .2s ease}.ui-toast--success{border-left-color:var(--success)}.ui-toast--error{border-left-color:var(--danger)}.split-studio{display:grid;gap:var(--space-4);align-items:start}.split-studio--stacked{display:block}.split-studio__pane{min-width:0}.split-studio__toggle{display:flex;gap:var(--space-1);background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-1);margin-bottom:var(--space-3);position:sticky;top:calc(var(--nav-height) + var(--space-2));z-index:10}.split-studio__tab{flex:1;padding:var(--space-2);border:none;background:none;color:var(--text-muted);font:inherit;font-weight:600;font-size:var(--fs-sm);border-radius:var(--radius-sm);cursor:pointer}.split-studio__tab.is-active{background:var(--bg-surface);color:var(--text-heading);box-shadow:var(--shadow-sm)}.pane-split-a,.pane-split-b{display:grid;gap:var(--space-4);align-items:start}.pane-split-a{grid-template-columns:auto minmax(0,1fr)}.pane-split-b{grid-template-columns:minmax(0,1fr) 320px}@media (max-width: 640px){.pane-split-a,.pane-split-b{grid-template-columns:1fr}}.app-nav{height:var(--nav-height);background:var(--bg-nav);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 var(--space-5);gap:var(--space-5);position:sticky;top:0;z-index:50}.app-nav__brand{display:flex;align-items:center;gap:var(--space-2);font-weight:800;font-size:var(--fs-lg);color:var(--text-heading)}.app-nav__brand:hover{color:var(--text-heading)}.app-nav__links{display:flex;gap:var(--space-1);flex:1}.app-nav__link{font-size:var(--fs-sm);font-weight:600;color:var(--text-muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:background .15s ease,color .15s ease}.app-nav__link:hover{background:var(--bg-hover);color:var(--text-body)}.app-nav__link--active{background:var(--accent-soft);color:var(--accent-text)}.app-nav__right{display:flex;align-items:center;gap:var(--space-2)}.app-nav__user{font-size:var(--fs-sm);color:var(--text-muted)}.app-nav__burger{display:none;margin-left:auto;font-size:var(--fs-xl)}.app-main{max-width:var(--content-max);margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-8)}@media (max-width: 900px){.app-nav{gap:var(--space-3)}.app-nav__links,.app-nav__right{display:none}.app-nav__burger{display:inline-flex}}@media (max-width: 640px){.app-nav{padding:0 var(--space-4)}.app-main{padding:var(--space-4) var(--space-3) var(--space-6)}}.app-drawer__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:190;animation:drawer-fade .15s ease}.app-drawer__panel{position:fixed;top:0;right:0;height:100dvh;width:min(82vw,300px);background:var(--bg-nav);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:200;display:flex;flex-direction:column;padding:var(--space-3);overflow-y:auto;animation:drawer-in .2s ease}.app-drawer__head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-1) var(--space-1) var(--space-3);border-bottom:1px solid var(--border);margin-bottom:var(--space-2)}.app-drawer__title{font-weight:700;color:var(--text-heading)}.app-drawer__links{display:flex;flex-direction:column;gap:var(--space-1)}.app-drawer .app-nav__link{font-size:var(--fs-md);padding:var(--space-3)}.app-drawer__foot{margin-top:auto;padding-top:var(--space-3);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:var(--space-2)}.app-drawer__row{text-align:left;background:none;border:none;color:var(--text-body);font:inherit;font-weight:600;padding:var(--space-3);border-radius:var(--radius-md);cursor:pointer}.app-drawer__row:hover{background:var(--bg-hover)}.app-drawer__user{color:var(--text-muted);font-size:var(--fs-sm);padding:var(--space-2) var(--space-3)}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes drawer-fade{0%{opacity:0}to{opacity:1}}.ruleset-editor__group{margin-bottom:var(--space-3)}.ruleset-editor__group-title{font-weight:700;font-size:var(--fs-sm);color:var(--text-heading);margin-bottom:var(--space-1)}.ruleset-editor__group-fields{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.ruleset-editor__num{display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-sm);color:var(--text-muted)}.foil-tilt{transform:perspective(600px) rotateX(calc((var(--py, .5) - .5) * -12deg)) rotateY(calc((var(--px, .5) - .5) * 12deg));transition:transform 90ms ease-out;will-change:transform}.foil-layer{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;z-index:3;mix-blend-mode:color-dodge;opacity:.4}.foil-layer--holo{background:radial-gradient(circle at calc(var(--px, .5) * 100%) calc(var(--py, .5) * 100%),rgba(255,255,255,.55) 0%,transparent 42%),repeating-linear-gradient(115deg,#ff5a5a80,#ffdc5a80,#5aff8280,#5ac8ff80,#be5aff80,#ff5a5a80 40%);background-size:100% 100%,300% 300%;background-position:0 0,calc(var(--px, .5) * 100%) calc(var(--py, .5) * 100%)}.foil-layer--reverse{background:radial-gradient(circle at calc(var(--px, .5) * 100%) calc(var(--py, .5) * 100%),rgba(255,255,255,.5) 0%,transparent 45%),repeating-linear-gradient(65deg,#78dcff80,#be78ff80,#78ffc880,#78dcff80 36%);background-size:100% 100%,280% 280%;background-position:0 0,calc(var(--px, .5) * 100%) calc(var(--py, .5) * 100%);-webkit-mask:linear-gradient(#000 0 0),linear-gradient(#000 0 0) .5em 2.7em / calc(100% - 1em) 42% no-repeat;-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0),linear-gradient(#000 0 0) .5em 2.7em / calc(100% - 1em) 42% no-repeat;mask-composite:exclude}.foil-layer--gold{background:radial-gradient(circle at calc(var(--px, .5) * 100%) calc(var(--py, .5) * 100%),rgba(255,240,200,.6) 0%,transparent 40%),linear-gradient(160deg,#f5d67a80,#b8862e80 45%,#f5d67a80);opacity:.45}.foil-layer--prismatic{background:conic-gradient(from calc(var(--px, .5) * 360deg),#ff787873,#ffe67873,#8cffa073,#78d2ff73,#d28cff73,#ff787873),radial-gradient(circle at calc(var(--px, .5) * 100%) calc(var(--py, .5) * 100%),rgba(255,255,255,.6) 0%,transparent 45%)}.foil-layer--static{mix-blend-mode:normal;opacity:.22;background-position:30% 30%,30% 30%;-webkit-mask:none;mask:none}@media (prefers-reduced-motion: reduce){.foil-tilt{transform:none;transition:none}}.card-frame{aspect-ratio:63.5 / 93;display:flex;flex-direction:column;background:linear-gradient(160deg,#23262f,#191b22);border:.35em solid var(--card-rarity-color, #9aa0b0);border-radius:1em;padding:.5em;color:#eceef2;font-family:var(--font-body);box-sizing:border-box;overflow:visible;position:relative;text-align:left}.card-frame--thumb{width:164px;font-size:7.7px}.card-frame--field{width:176px;font-size:8.3px}.card-frame--full{width:300px;font-size:14px}.card-frame--print{width:750px;font-size:35px;aspect-ratio:63.5 / 88.9;overflow:hidden}.card-frame__header{display:flex;align-items:center;gap:.4em;margin-bottom:.4em}.card-frame__cost{flex-shrink:0;width:2.1em;height:2.1em;border-radius:50%;background:radial-gradient(circle at 35% 30%,#7d8cff,#3947c9);color:#fff;font-weight:800;font-size:calc(1.8em * var(--ind-cost-scale, 1));display:flex;align-items:center;justify-content:center;box-shadow:0 .12em .35em #0000008c,inset 0 -.15em .3em #0006;border:.07em solid rgba(255,255,255,.35);margin:-.75em 0 -.35em -.75em;transform:translate(var(--ind-cost-x, 0em),var(--ind-cost-y, 0em));position:relative;z-index:2}.card-frame__name{font-weight:700;font-size:calc(1.05em * var(--card-name-scale, 1) * var(--el-title-scale, 1));line-height:1.15;color:#f6f7fa;overflow:hidden;text-overflow:ellipsis;transform:translate(var(--el-title-x, 0em),var(--el-title-y, 0em))}.card-frame__art{aspect-ratio:4 / 3;width:92%;align-self:center;border-radius:.5em;border:.08em solid rgba(255,255,255,.14);background-size:cover;background-position:center;flex-shrink:0;transform:translate(var(--el-art-x, 0em),var(--el-art-y, 0em))}.card-frame__typeline{display:flex;align-items:center;justify-content:space-between;font-size:.8em;font-weight:600;color:#b9bfcc;margin:.5em .1em .35em;text-transform:capitalize}.card-frame__typeline-left{display:flex;align-items:center;gap:.35em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(1em * var(--el-type-scale, 1));transform:translate(var(--el-type-x, 0em),var(--el-type-y, 0em))}.card-frame__type-icon{width:1.5em;height:1.5em;border-radius:50%;object-fit:cover;flex-shrink:0}.card-frame__rarity{color:var(--card-rarity-color, #9aa0b0);font-size:calc(.9em * var(--el-rarity-scale, 1));letter-spacing:.06em;text-transform:uppercase;transform:translate(var(--el-rarity-x, 0em),var(--el-rarity-y, 0em))}.card-frame__body{flex:1;background:#00000040;border-radius:.5em;padding:.5em .6em;font-size:calc(.95em * var(--card-body-scale, 1) * var(--el-body-scale, 1));line-height:1.3;overflow:hidden;white-space:pre-line;transform:translate(var(--el-body-x, 0em),var(--el-body-y, 0em))}.card-frame--text-outline .card-frame__name,.card-frame--text-outline .card-frame__body{text-shadow:calc(-1 * var(--card-text-outline, .12em)) calc(-1 * var(--card-text-outline, .12em)) 0 rgba(0,0,0,.9),var(--card-text-outline, .12em) calc(-1 * var(--card-text-outline, .12em)) 0 rgba(0,0,0,.9),calc(-1 * var(--card-text-outline, .12em)) var(--card-text-outline, .12em) 0 rgba(0,0,0,.9),var(--card-text-outline, .12em) var(--card-text-outline, .12em) 0 rgba(0,0,0,.9),0 calc(-1 * var(--card-text-outline, .12em)) 0 rgba(0,0,0,.9),0 var(--card-text-outline, .12em) 0 rgba(0,0,0,.9),calc(-1 * var(--card-text-outline, .12em)) 0 0 rgba(0,0,0,.9),var(--card-text-outline, .12em) 0 0 rgba(0,0,0,.9),0 0 calc(3 * var(--card-text-outline, .12em)) rgba(0,0,0,.95)}.card-frame__flavor{font-style:italic;color:#99a0af;margin-top:.4em}.card-frame__footer{display:flex;justify-content:space-between;margin-top:.3em;min-height:1.9em}.card-frame__cost,.card-frame__stat{pointer-events:none}.card-frame__stat{min-width:2.1em;height:2.1em;border-radius:999px;padding:0 .25em;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.8em;color:#fff;position:relative;z-index:2;border:.06em solid rgba(255,255,255,.3);box-shadow:0 .12em .35em #0000008c;margin-bottom:-.75em}.card-frame__stat--attack{background:radial-gradient(circle at 35% 30%,#e5a04c,#b05c1a);font-size:calc(1.8em * var(--ind-attack-scale, 1));margin-left:-.75em;transform:translate(var(--ind-attack-x, 0em),var(--ind-attack-y, 0em))}.card-frame__stat--death{background:radial-gradient(circle at 35% 30%,#8a6fc0,#4d3580);font-size:calc(1.8em * var(--ind-death-scale, 1));gap:.12em;transform:translate(var(--ind-death-x, 0em),var(--ind-death-y, 0em))}.card-frame__death-icon{width:.9em;height:.9em;flex-shrink:0}.card-frame__stat--health{background:radial-gradient(circle at 35% 30%,#e55c4c,#a82418);font-size:calc(1.8em * var(--ind-health-scale, 1));margin-right:-.75em;transform:translate(var(--ind-health-x, 0em),var(--ind-health-y, 0em))}.card-frame__stat--damaged{background:radial-gradient(circle at 35% 30%,#ff3b2a,#7a0f06);box-shadow:0 0 .4em #e5534bb3}.card-frame__indicator{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.card-frame__stat-value{position:relative;z-index:1}.card-frame__cost--themed,.card-frame__stat--themed{background:none;border:none;box-shadow:none}.card-frame__cost--themed .card-frame__indicator,.card-frame__stat--themed .card-frame__indicator{top:-.2em;right:-.2em;bottom:-.2em;left:-.2em;width:calc(100% + .4em);height:calc(100% + .4em)}.card-frame__cost--themed .card-frame__stat-value,.card-frame__stat--themed .card-frame__stat-value{text-shadow:-.07em -.07em 0 rgba(0,0,0,.9),.07em -.07em 0 rgba(0,0,0,.9),-.07em .07em 0 rgba(0,0,0,.9),.07em .07em 0 rgba(0,0,0,.9),0 -.09em 0 rgba(0,0,0,.9),0 .09em 0 rgba(0,0,0,.9),-.09em 0 0 rgba(0,0,0,.9),.09em 0 0 rgba(0,0,0,.9),0 0 .3em rgba(0,0,0,.95)}.card-frame__text-cost{white-space:nowrap;font-weight:700}.card-frame__text-icon{width:1.05em;height:1.05em;display:inline-block;vertical-align:-.16em;margin-left:.08em;object-fit:contain}.card-frame__text-icon--mana{color:#7d8cff}.card-frame__text-icon--rage{color:#ff7a4c}.card-frame__text-icon--major{color:#d9c26a}.card-frame__text-icon--minor{color:#b9bfcc}.card-frame__fun-badge{position:absolute;top:.6em;right:.6em;background:var(--gold);color:#1a1405;font-size:.7em;font-weight:800;letter-spacing:.08em;padding:.2em .6em;border-radius:999px}.card-frame--full-art{justify-content:space-between}.card-frame__art--full{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:.65em;border:none;aspect-ratio:auto;z-index:0;transform:none;width:auto;align-self:auto}.card-frame--full-art .card-frame__header,.card-frame--full-art .card-frame__footer{position:relative;z-index:1}.card-frame--full-art .card-frame__name{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.85)}.card-frame--gold{border-color:var(--gold)}.card-frame--gold .card-frame__name,.card-frame--gold .card-frame__rarity{color:var(--gold)}.card-back{aspect-ratio:63.5 / 88.9;border:.35em solid var(--gold);border-radius:1em;background:radial-gradient(circle at 50% 42%,rgba(217,169,76,.24),transparent 55%),linear-gradient(160deg,#1c1f29,#12141b);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;box-sizing:border-box;overflow:hidden;position:relative}.card-back__monogram{font-weight:800;font-size:1.6em;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);text-align:center;padding:0 .5em;text-shadow:0 1px 4px rgba(0,0,0,.8)}body.arena-mode{overflow:hidden}body.arena-mode .app-nav{display:none}body.arena-mode .app-main{max-width:none;padding:0 var(--space-4)}.arena{height:100dvh;display:flex;flex-direction:column;gap:var(--space-1);position:relative;overflow:hidden}.arena__top{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:30px;position:relative;z-index:60}.arena__title{font-size:var(--fs-md);font-weight:800;color:var(--text-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arena__title small{color:var(--text-muted);font-weight:500}.arena__board{flex:1;min-height:0}.duel{--card-active-w: clamp(80px, min(calc((100dvh - 370px) / 5.9), 30vw), 236px);--card-bench-w: calc(var(--card-active-w) * .8);--card-hand-w: calc(var(--card-active-w) * .9);display:flex;flex-direction:column;gap:clamp(3px,.6dvh,8px);justify-content:space-between;height:100%;min-height:0;position:relative;padding-bottom:calc(var(--card-active-w) * .82)}.duel--themed{background-size:cover;background-position:center;border-radius:var(--radius-lg);padding-left:var(--space-3);padding-right:var(--space-3);padding-top:var(--space-2)}.duel--drag-active{user-select:none;-webkit-user-select:none;cursor:grabbing}.duel__player-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex:0 0 auto;min-height:46px;position:relative;z-index:45;width:100%}.duel__bar-left{display:flex;align-items:center;gap:var(--space-3);min-width:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-1) var(--space-3)}.duel__bar-right{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.duel__player-bar--turn .duel__bar-left{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 14px var(--accent-soft)}.duel__avatar{width:42px;height:42px;border-radius:50%;border:2px solid var(--border-strong);background:var(--bg-surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;color:var(--text-muted)}.duel__player-bar--turn .duel__avatar{border-color:var(--accent)}.duel__avatar img{width:100%;height:100%;object-fit:cover}.duel__panel-main{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0}.duel__panel-name{font-size:var(--fs-sm);color:var(--text-heading);white-space:nowrap}.duel__stats{display:flex;flex-direction:column;align-items:flex-start;gap:1px;flex-wrap:nowrap;row-gap:1px}.duel__stat{display:inline-flex;align-items:center;gap:3px;position:relative;font-weight:700}.duel__stat--life{color:var(--danger)}.duel__life-value{position:absolute;left:15px;top:50%;transform:translate(-50%,-50%);color:#fff;font-size:var(--fs-xs);font-weight:800;text-shadow:-1px -1px 0 rgba(0,0,0,.9),1px -1px 0 rgba(0,0,0,.9),-1px 1px 0 rgba(0,0,0,.9),1px 1px 0 rgba(0,0,0,.9),0 -1.5px 0 rgba(0,0,0,.9),0 1.5px 0 rgba(0,0,0,.9),-1.5px 0 0 rgba(0,0,0,.9),1.5px 0 0 rgba(0,0,0,.9),0 0 4px rgba(0,0,0,.95);pointer-events:none}.duel__mana{color:var(--mana);font-size:var(--fs-sm)}.duel__mana-icon{color:var(--mana)}.duel__rage{color:var(--rage);gap:1px}.duel__rage-pip{color:var(--rage)}.duel__rage-pip--empty{opacity:.25}.duel__actions{color:var(--gold);gap:2px}.duel__pip{color:var(--gold)}.duel__pip-none{color:var(--text-dim);font-weight:700}.duel__pile{position:relative;width:46px;height:62px;flex-shrink:0;background:none;border:none;padding:0;font-family:inherit}button.duel__pile{cursor:pointer}button.duel__pile:disabled{cursor:default}.duel__pile-card{position:absolute;left:0;bottom:0;transition:transform var(--dur-fast) ease}.duel__pile .card-back.card-frame--thumb,.duel__pile .card-frame--thumb{width:42px;font-size:2px;border-width:1.5px;pointer-events:none}.duel__pile .card-back .card-back__monogram{display:none}.duel__pile-empty{display:flex;align-items:center;justify-content:center;width:42px;height:58px;border:2px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-dim)}.duel__grave:hover:not(:disabled) .duel__pile-card:last-of-type{transform:translate(8px,-10px) rotate(6deg) scale(1.15)!important}.duel__pile-count{position:absolute;bottom:-6px;right:-6px;background:var(--bg-surface);border:1px solid var(--border-strong);color:var(--text-heading);border-radius:999px;font-size:var(--fs-xs);font-weight:800;padding:0 6px;box-shadow:var(--shadow-sm);z-index:5}.duel__hand.duel__hand--opp{top:0;bottom:auto;align-items:flex-start;transform:translateY(calc(var(--card-hand-w) * -.92));pointer-events:none;z-index:30}.duel__hand--opp .hand-card{pointer-events:none}.duel__hand--opp .card-back.card-frame--field{width:var(--card-hand-w);box-shadow:var(--shadow-md)}.duel__hand.duel__hand--opp .hand-card--opp-hover{transform:rotate(var(--fan-rot, 0deg)) translateY(calc(var(--fan-y, 0px) + var(--card-hand-w) * .3)) scale(1.12)}.duel__hand--opp .hand-card--opp-hover .card-back{outline:3px solid var(--danger);outline-offset:2px;box-shadow:0 0 16px var(--danger-soft)}.field-card--opp-hover{transform:scale(1.05);transition:transform var(--dur-fast) ease}.field-card--opp-hover .card-frame{outline:3px solid var(--danger);outline-offset:2px;box-shadow:0 0 16px var(--danger-soft)}.duel__opp-hand-count{position:absolute;left:50%;transform:translate(-50%);top:calc(var(--card-hand-w) * 1.24);background:var(--bg-surface);border:1px solid var(--border-strong);color:var(--text-muted);border-radius:999px;font-size:var(--fs-xs);font-weight:700;padding:1px 10px;box-shadow:var(--shadow-sm);white-space:nowrap}.duel__field{display:flex;flex-direction:column;gap:clamp(3px,.6dvh,8px);flex:0 0 auto}.duel__bench{display:flex;gap:clamp(10px,1.8vw,26px);justify-content:center;align-items:flex-start;flex:0 0 auto}.duel__bench-cell{display:flex;flex-direction:column;align-items:center;gap:calc(var(--card-bench-w) * .07)}.duel__card-chips{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;width:var(--card-bench-w);position:relative;z-index:30}.duel__active-stack .duel__card-chips{width:var(--card-active-w)}.duel__chip-cell{position:relative;display:flex;min-width:0}.duel__chip{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:0;padding:2px 3px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-body);font-family:inherit;cursor:grab;text-align:center}.duel__chip:hover:not(:disabled){border-color:var(--success);background:var(--bg-hover)}.duel__chip--ability:hover:not(:disabled){border-color:var(--accent)}.duel__chip:disabled{opacity:.45;filter:saturate(.4);cursor:default}.duel__chip-title{display:block;width:100%;text-align:center;font-size:var(--fs-xs);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duel__chip-title .duel__chip-icon{vertical-align:-1px;margin-right:2px}.duel__chip-sub{display:block;width:100%;text-align:center;font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duel__chip-costbit{display:inline-flex;align-items:center;gap:1px;font-weight:700;vertical-align:-1px;margin-left:3px}.duel__chip-costbit--mana{color:var(--mana)}.duel__chip-costbit--rage{color:var(--rage)}.duel__active-row{display:flex;gap:clamp(4px,1vw,var(--space-3));justify-content:center;align-items:center;flex:0 0 auto}.duel__active-row--mine{min-height:calc(var(--card-active-w) * 1.53 + 46px);align-items:flex-start}.duel__active-stack{display:flex;flex-direction:column;align-items:center;gap:calc(var(--card-active-w) * .06)}.duel__active-stack>:first-child,.duel__bench-cell>:first-child{position:relative;z-index:31}.duel__active-row .card-frame--field{width:var(--card-active-w);font-size:calc(var(--card-active-w) / 21.2)}.duel__bench .card-frame--field{width:var(--card-bench-w);font-size:calc(var(--card-bench-w) / 21.2)}.duel__hand .card-frame--field{width:var(--card-hand-w);font-size:calc(var(--card-hand-w) / 21.2)}.duel__slot{border-radius:var(--radius-md)}.duel__slot--empty{border:2px dashed var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:var(--fs-xs);text-align:center;width:var(--card-bench-w);aspect-ratio:63.5 / 93;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease,transform var(--dur-fast) ease}.duel__slot--active-empty{width:var(--card-active-w)}.duel__slot--droppable{border-color:var(--success);box-shadow:0 0 0 3px var(--success-soft),0 0 18px var(--success-soft);transform:scale(1.04);color:var(--success)}.duel__slot-face{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--text-dim)}.duel__slot-face span:last-child{text-shadow:-1px -1px 0 rgba(0,0,0,.85),1px -1px 0 rgba(0,0,0,.85),-1px 1px 0 rgba(0,0,0,.85),1px 1px 0 rgba(0,0,0,.85),0 0 4px rgba(0,0,0,.9)}.duel__slot--face-target{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft),0 0 18px var(--danger-soft);color:var(--danger)}.duel__slot--face-target .duel__slot-face{color:var(--danger);font-weight:700}.duel__board-empty{color:var(--text-dim);font-size:var(--fs-sm);margin:0 auto}.field-card{position:relative;border-radius:1em;-webkit-user-select:none;user-select:none}.field-card--can-act .card-frame{box-shadow:0 0 0 2px var(--success),0 0 14px var(--success-soft)}.field-card--selected .card-frame{box-shadow:0 0 0 3px var(--accent)}.field-card--targetable{cursor:crosshair}.field-card--targetable .card-frame{box-shadow:0 0 0 3px var(--danger),0 0 16px var(--danger-soft)}.field-card--swap-ready{cursor:grab}.field-card--guard .card-frame{outline:3px double var(--border-strong);outline-offset:2px}.field-card__badges{position:absolute;top:-8px;right:-6px;display:flex;gap:4px;z-index:4}.field-card__badge{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:999px;font-size:var(--fs-xs);padding:1px 6px;box-shadow:var(--shadow-sm)}.field-card__badge--buff{color:var(--success);font-weight:800}.field-card__badge--swap{color:var(--accent-text)}.duel__chip-icon{flex-shrink:0;opacity:.85}.duel__rage-step{position:absolute;top:-9px;right:-4px;z-index:2;display:inline-flex;align-items:center;gap:1px;padding:0 5px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:999px;color:var(--rage);font-family:inherit;font-size:var(--fs-xs);font-weight:800;cursor:pointer;box-shadow:var(--shadow-sm)}.duel__rage-step:hover,.duel__rage-step--armed{border-color:var(--rage);background:var(--rage-soft)}.drag-label{position:fixed;z-index:130;pointer-events:none;background:var(--bg-surface);border:1px solid var(--accent);color:var(--text-heading);font-size:var(--fs-sm);font-weight:700;padding:2px 10px;border-radius:999px;box-shadow:var(--shadow-md);white-space:nowrap}.grave-spread{display:flex;justify-content:center;align-items:flex-start;padding:var(--space-6) var(--space-2) var(--space-4);min-height:220px;flex-wrap:wrap;row-gap:var(--space-5)}.grave-spread__card{position:relative}.grave-spread__card+.grave-spread__card{margin-left:-108px}.grave-spread__card .card-frame--field{width:150px;font-size:7.1px}.grave-spread__zoom{transition:transform var(--dur-fast) ease 60ms;transform-origin:center center;border-radius:1em}.grave-spread__card:hover{z-index:60!important}.grave-spread__card:hover .grave-spread__zoom{transform:translateY(-16px) scale(1.7);box-shadow:var(--shadow-lg)}.card-flight{position:fixed;z-index:90;pointer-events:none;perspective:900px;transform:translate(-50%,-50%) scale(var(--flight-from-scale, 1));transition:transform var(--flight-ms, .42s) cubic-bezier(.35,.1,.35,1)}.card-flight .card-frame--field,.card-flight .card-back.card-frame--field{width:var(--flight-w, var(--card-bench-w));font-size:calc(var(--flight-w, var(--card-bench-w)) / 21.2);box-shadow:var(--shadow-lg)}.card-flight--go{transform:translate(calc(-50% + var(--fly-x)),calc(-50% + var(--fly-y)))}.card-flight--to-grave{transition:transform var(--flight-ms, .65s) cubic-bezier(.45,.05,.55,1),opacity var(--flight-ms, .65s) ease-in}.card-flight--to-grave.card-flight--go{transform:translate(calc(-50% + var(--fly-x)),calc(-50% + var(--fly-y))) scale(.24) rotate(14deg);opacity:.3}.card-flight__flipper{position:relative;transform-style:preserve-3d;transition:transform calc(var(--flight-ms, .42s) * .9) ease;transform:rotateY(0)}.card-flight__flipper--down{transform:rotateY(180deg)}.card-flight__front,.card-flight__back{backface-visibility:hidden}.card-flight__back{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotateY(180deg);display:flex}.card-flight__blank{width:var(--flight-w, var(--card-bench-w));aspect-ratio:63.5 / 88.9;border-radius:1em;background:var(--bg-surface-2);border:2px solid var(--border-strong)}.duel__hand{position:absolute;left:0;right:0;bottom:calc(-1 * var(--space-2));z-index:40;pointer-events:none}.hand-card{pointer-events:auto}.duel__hand--dragging .hand-card{pointer-events:none}.duel__hand--fan{display:flex;justify-content:center;align-items:flex-end;transform:translateY(calc(var(--card-hand-w) * .36))}.duel__hand:has(.hand-card--hovered,.hand-card--pinned,.hand-card--dragging,.hand-card--returning){z-index:100}.hand-card{position:relative;border-radius:1em}.duel__hand--fan .hand-card{transform:rotate(var(--fan-rot, 0deg)) translateY(var(--fan-y, 0px));transition:transform var(--dur-fast) ease}.duel__hand--fan .hand-card+.hand-card{margin-left:clamp(calc(var(--card-hand-w) * -.88),calc((min(94vw,880px) - var(--card-hand-w) * var(--hand-n, 5)) / max(var(--hand-n, 5) - 1,1)),calc(var(--card-hand-w) * -.2))}.hand-card__zoom{position:relative;transition:transform var(--dur-fast) ease;transform-origin:bottom center;border-radius:1em}.hand-card--hovered,.hand-card--pinned{z-index:60!important}.duel__hand--fan .hand-card--hovered,.duel__hand--fan .hand-card--pinned{transform:rotate(0) translateY(0)}.hand-card--hovered .hand-card__zoom,.hand-card--pinned .hand-card__zoom{transform:translateY(calc(var(--card-hand-w) * -.9)) scale(1.6);box-shadow:var(--shadow-lg)}.hand-card--dragging{z-index:100!important;pointer-events:none;transition:none!important}.hand-card--dragging .hand-card__zoom{transform:none;box-shadow:var(--shadow-lg)}.hand-card--snapped{transition:transform 90ms ease-out!important}.hand-card--returning{transition:transform .4s cubic-bezier(.3,.9,.35,1)!important;z-index:90!important}.hand-card--playable{cursor:grab}.hand-card--playable .card-frame{outline:2px solid var(--success);outline-offset:2px}.hand-card--disabled{cursor:zoom-in}.hand-card--disabled .card-frame{filter:saturate(.55) brightness(.85)}.hand-card__reason{position:absolute;left:50%;bottom:6px;transform:translate(-50%);background:var(--danger);color:#fff;font-size:var(--fs-xs);font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap;box-shadow:var(--shadow-sm);z-index:3}.hand-card--issue-mana .card-frame__cost{outline:2.5px solid var(--danger);animation:hand-cost-pulse 1.2s ease-in-out infinite}@keyframes hand-cost-pulse{0%,to{box-shadow:0 0 0 0 var(--danger-soft)}50%{box-shadow:0 0 10px 3px var(--danger)}}.duel__draggable{touch-action:none;user-select:none;-webkit-user-select:none}.duel__midbar{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto;height:40px;position:relative;z-index:45}.duel__midbar-status{flex:1;min-width:0;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duel__log-list{max-height:60vh;overflow-y:auto;font-size:var(--fs-sm);color:var(--text-muted);display:flex;flex-direction:column;gap:2px}.duel-menu{position:relative}.duel-menu__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:190}.duel-menu__panel{position:absolute;top:calc(100% + 6px);right:0;z-index:200;min-width:220px;display:flex;flex-direction:column;gap:var(--space-1);background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-2);box-shadow:var(--shadow-lg)}.duel-menu__item{display:flex;align-items:center;gap:var(--space-2);background:none;border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-2);color:var(--text-body);font-family:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;text-align:left}.duel-menu__item:hover{background:var(--bg-hover)}.duel-menu__section{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--border);margin-bottom:var(--space-1)}.duel-menu__section-label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:700}@media (min-width: 1000px) and (min-aspect-ratio: 6/5),(max-height: 560px) and (min-aspect-ratio: 13/10){.duel{--card-active-w: clamp(96px, min(calc((100dvh - 250px) / 3.95), 19vw), 264px)}.duel__field{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:clamp(12px,2.5vw,40px)}.duel__field .duel__active-row{grid-column:2}.duel__field--opp .duel__bench{grid-column:1;justify-self:end}.duel__field--mine .duel__bench{grid-column:3;justify-self:start;grid-row:1}.duel__field--mine .duel__active-row{grid-row:1}.duel__field--mine{align-items:start}.duel__panel-main,.duel__stats{flex-direction:row;align-items:center;gap:var(--space-3)}}@media (max-height: 560px) and (min-aspect-ratio: 13/10){body.arena-mode .app-main{padding:0 var(--space-1)}.duel{--card-active-w: clamp(40px, calc((100dvh - 120px) / 3.6), 104px);padding-bottom:calc(var(--card-active-w) * .5)}.duel__panel{padding:var(--space-1) var(--space-2)}.duel__avatar{width:30px;height:30px}.duel__pile{width:34px;height:46px}.duel__hand{z-index:50}}@media (min-height: 1150px){.duel{--card-active-w: clamp(88px, min(calc((100dvh - 370px) / 5.9), 30vw), 288px);padding-bottom:calc(var(--card-active-w) * .88)}.duel__hand--fan{transform:translateY(calc(var(--card-hand-w) * .26))}}@media (max-width: 640px) and (max-aspect-ratio: 13/10){body.arena-mode .app-main{padding:0 var(--space-1)}.duel{--card-active-w: clamp(52px, min(calc((100dvh - 320px) / 5.9), 34vw), 150px)}.duel__hand{z-index:50}.duel__player-bar{gap:var(--space-2);min-height:44px}.duel__bar-left{gap:var(--space-2);padding:2px var(--space-2)}.duel__avatar{width:32px;height:32px}.duel__panel-main{min-width:0}.duel__panel-name{font-size:var(--fs-xs);max-width:110px;overflow:hidden;text-overflow:ellipsis}.duel__stats{flex-direction:row;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.duel__pile{width:36px;height:48px}.duel__pile .card-back.card-frame--thumb,.duel__pile .card-frame--thumb{width:32px;font-size:1.5px}.duel__pile-empty{width:32px;height:44px}.duel__opp-hand{width:78px;height:48px}.duel__opp-hand .card-back.card-frame--thumb{width:28px}.duel__opp-hand-card{margin-left:-20px}.duel__chip-title{font-size:10px}.duel__chip-sub{font-size:9px}.duel__midbar{height:34px}.duel__midbar-status{font-size:var(--fs-xs)}.grave-spread__card+.grave-spread__card{margin-left:-84px}}.fx-announce{position:fixed;left:26%;top:44%;transform:translate(-50%,-50%);z-index:94;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);animation:fx-announce-pop .36s cubic-bezier(.2,1.1,.4,1) both}@media (max-width: 640px){.fx-announce{left:50%;top:32%}.fx-announce__card .card-frame--field{width:168px;font-size:7.9px}}.fx-announce__card .card-frame--field{width:232px;font-size:10.9px;box-shadow:0 0 0 3px var(--accent),0 18px 50px #000000a6}.fx-announce__label{background:var(--bg-surface);border:1px solid var(--accent);border-radius:999px;padding:4px 16px;display:flex;gap:6px;align-items:baseline;box-shadow:var(--shadow-lg);white-space:nowrap}.fx-announce__label strong{color:var(--text-heading);font-size:var(--fs-md)}.fx-announce__label span{color:var(--text-muted);font-size:var(--fs-sm)}@keyframes fx-announce-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.55)}70%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.fx-attack-arrow{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:110}.fx-attack-arrow .target-arrow__path{animation:fx-arrow-pulse .5s ease-in-out infinite alternate}@keyframes fx-arrow-pulse{0%{opacity:.75}to{opacity:1}}.fx-lunge-up{animation:fx-lunge-up var(--dur-med) ease-out}.fx-lunge-down{animation:fx-lunge-down var(--dur-med) ease-out}.fx-slash{animation:fx-slash var(--dur-med) ease-out}.fx-projectile{animation:fx-projectile var(--dur-med) ease-out}.fx-blast{animation:fx-blast var(--dur-med) ease-out}.fx-shake{animation:fx-shake var(--dur-med) ease-in-out}.fx-flash{animation:fx-flash var(--dur-med) ease-out}.fx-glow{animation:fx-glow .42s ease-out}.fx-materialize{animation:fx-materialize var(--dur-med) ease-out}.fx-slam{animation:fx-slam var(--dur-med) cubic-bezier(.2,1.4,.4,1)}.fx-promote{animation:fx-promote var(--dur-med) ease-out}@keyframes fx-lunge-up{0%{transform:translateY(0)}40%{transform:translateY(-16px) scale(1.06)}to{transform:translateY(0)}}@keyframes fx-lunge-down{0%{transform:translateY(0)}40%{transform:translateY(16px) scale(1.06)}to{transform:translateY(0)}}@keyframes fx-slash{0%{transform:rotate(0)}30%{transform:rotate(-9deg) scale(1.05)}65%{transform:rotate(7deg)}to{transform:rotate(0)}}@keyframes fx-projectile{0%{transform:translateY(0);filter:brightness(1)}35%{transform:translateY(-8px);filter:brightness(1.6)}to{transform:translateY(0);filter:brightness(1)}}@keyframes fx-blast{0%{transform:scale(1);box-shadow:none}45%{transform:scale(1.14);box-shadow:0 0 18px var(--warning)}to{transform:scale(1);box-shadow:none}}@keyframes fx-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@keyframes fx-flash{0%{filter:brightness(1)}30%{filter:brightness(2.1)}to{filter:brightness(1)}}@keyframes fx-glow{0%{box-shadow:0 0 0 0 var(--success-soft)}40%{box-shadow:0 0 16px 4px var(--success)}to{box-shadow:0 0 0 0 transparent}}@keyframes fx-materialize{0%{transform:scale(.55);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fx-slam{0%{transform:scale(1.35) translateY(-10px);opacity:.4}to{transform:scale(1) translateY(0);opacity:1}}@keyframes fx-promote{0%{transform:translateY(26px);opacity:.3}to{transform:translateY(0);opacity:1}}.fx-floater{position:absolute;left:50%;top:14%;transform:translate(-50%);font-weight:900;font-size:var(--fs-xl);pointer-events:none;animation:fx-floater-rise .95s ease-out forwards;text-shadow:0 2px 6px rgba(0,0,0,.95),0 0 2px rgba(0,0,0,.9);z-index:45;white-space:nowrap}.fx-floater--damage{color:#ff5a4a;top:32%;font-size:34px;animation:fx-floater-pop 1.1s cubic-bezier(.2,.9,.3,1) forwards}.fx-floater--heal{color:var(--success);font-size:var(--fs-2xl);animation-duration:.95s}.fx-floater--life{color:#ff5a4a;top:30%;font-size:38px;animation:fx-floater-pop 1.2s cubic-bezier(.2,.9,.3,1) forwards}.fx-floater--mana{color:var(--accent-text);font-size:var(--fs-xl);animation-duration:1s}.fx-floater--rage{color:var(--rage);font-size:var(--fs-xl);animation-duration:1s}.fx-floater--info{color:var(--text-muted);font-size:var(--fs-md);font-weight:700;animation-duration:.9s}@keyframes fx-floater-rise{0%{opacity:0;transform:translate(-50%,10px) scale(.7)}18%{opacity:1;transform:translate(-50%) scale(1.2)}to{opacity:0;transform:translate(-50%,-40px) scale(1)}}@keyframes fx-floater-pop{0%{opacity:0;transform:translate(-50%) scale(.4)}16%{opacity:1;transform:translate(-50%,-6px) scale(1.55)}38%{transform:translate(-50%,-2px) scale(1.15)}70%{opacity:1;transform:translate(-49%,14px) scale(1)}to{opacity:0;transform:translate(-47%,34px) scale(.8)}}.fx-life-pulse{animation:fx-life-pulse .45s ease-out}@keyframes fx-life-pulse{0%{transform:scale(1)}35%{transform:scale(1.28);box-shadow:0 0 14px var(--danger)}to{transform:scale(1)}}.fx-nudge{animation:fx-nudge .4s ease-in-out 2}@keyframes fx-nudge{0%,to{transform:translate(0)}50%{transform:translate(5px)}}.duel__hand-card--dragging{pointer-events:none;z-index:100;position:relative;transition:none}.duel__drop-hint{border-color:var(--success)!important;box-shadow:0 0 0 2px var(--success-soft)}.target-arrow{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:110}.target-arrow__path{fill:none;stroke:var(--danger);stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 0 6px var(--danger-soft))}@keyframes fx-floater-fade{0%{opacity:0}12%{opacity:1}80%{opacity:1}to{opacity:0}}.booster-reveal{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;perspective:1200px}.booster-card{cursor:pointer}.booster-card__inner{position:relative;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.3,1.2,.4,1)}.booster-card--flipped .booster-card__inner{transform:rotateY(180deg)}.booster-card__face{backface-visibility:hidden;-webkit-backface-visibility:hidden}.booster-card__face--back{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}.booster-card__face--front{transform:rotateY(180deg)}.booster-card--special .booster-card__face--front{animation:booster-special-glow .9s ease-out;border-radius:1em}@keyframes booster-special-glow{0%{box-shadow:0 0 0 0 var(--gold-soft)}40%{box-shadow:0 0 26px 8px var(--gold)}to{box-shadow:0 0 0 0 transparent}}@media (prefers-reduced-motion: reduce){.booster-card__inner{transition:none}.booster-card--special .booster-card__face--front{animation:none}}:root,[data-theme=dark]{--bg-page: #0e0f13;--bg-surface: #16181f;--bg-surface-2: #1d2029;--bg-nav: #12141b;--bg-input: #0f1117;--bg-hover: #232733;--bg-active: #2a2f3d;--border: #262a36;--border-strong: #343a4a;--border-input: #303646;--text-heading: #f4f5f7;--text-body: #d5d8e0;--text-muted: #9aa0b0;--text-dim: #6f7585;--text-invert: #0e0f13;--accent: #6d7cff;--accent-hover: #8592ff;--accent-soft: rgba(109, 124, 255, .14);--accent-text: #aab3ff;--gold: #d9a94c;--gold-soft: rgba(217, 169, 76, .14);--mana: #aab3ff;--rage: #e5744c;--rage-soft: rgba(229, 116, 76, .16);--danger: #e5534b;--danger-soft: rgba(229, 83, 75, .14);--success: #4cc38a;--success-soft: rgba(76, 195, 138, .14);--warning: #e5b84b;--warning-soft: rgba(229, 184, 75, .14);--rarity-common: #9aa0b0;--rarity-rare: #4c8fe5;--rarity-epic: #a55ce5;--rarity-legendary: #e59a4c;--overlay: rgba(0, 0, 0, .6);--overlay-heavy: rgba(0, 0, 0, .82);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .45);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .55);--dur-fast: .12s;--dur-med: .28s;--dur-slow: .45s}[data-theme=light]{--bg-page: #f6f7f9;--bg-surface: #ffffff;--bg-surface-2: #f0f1f5;--bg-nav: #ffffff;--bg-input: #ffffff;--bg-hover: #eef0f4;--bg-active: #e4e7ee;--border: #e3e6ec;--border-strong: #cdd2dc;--border-input: #cdd2dc;--text-heading: #14161c;--text-body: #363b47;--text-muted: #6b7180;--text-dim: #9ba1af;--text-invert: #ffffff;--accent: #4c5ce5;--accent-hover: #3b4bd4;--accent-soft: rgba(76, 92, 229, .1);--accent-text: #4c5ce5;--gold: #b8862e;--gold-soft: rgba(184, 134, 46, .12);--mana: #4c5ce5;--rage: #cf5a2e;--rage-soft: rgba(207, 90, 46, .12);--danger: #d3372e;--danger-soft: rgba(211, 55, 46, .1);--success: #1f9d61;--success-soft: rgba(31, 157, 97, .1);--warning: #b8862e;--warning-soft: rgba(184, 134, 46, .12);--rarity-common: #6b7180;--rarity-rare: #2f6fc4;--rarity-epic: #8a3fc4;--rarity-legendary: #c47a2f;--overlay: rgba(15, 17, 23, .35);--overlay-heavy: rgba(15, 17, 23, .55);--shadow-sm: 0 1px 2px rgba(20, 22, 28, .08);--shadow-md: 0 4px 16px rgba(20, 22, 28, .1);--shadow-lg: 0 12px 40px rgba(20, 22, 28, .16)}:root{--font-body: "Inter", system-ui, Avenir, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, monospace;--fs-xs: .75rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: clamp(1.35rem, 1rem + 1.6vw, 1.75rem);--fs-3xl: clamp(1.5rem, 1rem + 2.5vw, 2.25rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 999px;--focus-ring: 0 0 0 3px var(--accent-soft), 0 0 0 1px var(--accent);--nav-height: 56px;--content-max: 1100px;--bp-phone: 640px;--bp-split: 900px;--bp-tablet: 1024px}*,*:before,*:after{box-sizing:border-box}:root{font-family:var(--font-body);line-height:1.5;font-weight:400;color:var(--text-body);background-color:var(--bg-page);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{overflow-x:clip}body{margin:0;min-height:100dvh;overflow-x:clip}img,canvas,video{max-width:100%}h1,h2,h3,h4{color:var(--text-heading);line-height:1.2;margin:0 0 var(--space-3)}p{margin:0 0 var(--space-3)}a{color:var(--accent-text);text-decoration:none}a:hover{color:var(--accent-hover)}code{font-family:var(--font-mono);font-size:.9em;background:var(--bg-surface-2);padding:.1em .35em;border-radius:var(--radius-sm);overflow-wrap:anywhere}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
