:root{color:#e7e7f0;font-synthesis:none;--muted:#9696ae;--line:#ffffff12;--violet:#b9a0ff;--cyan:#81e0e4;background:#101019;font-family:Inter,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button,.button{color:#e8e6f3;cursor:pointer;background:#252432;border:1px solid #ffffff20;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:11px 15px;font-weight:550;text-decoration:none;transition:background .15s,transform .15s;display:inline-flex}button:hover,.button:hover{background:#343142}button:disabled{opacity:.38;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:2px solid #c5b0ff}a{color:var(--violet);text-decoration:none}a:hover{text-decoration:underline}.primary{color:#21143c;background:#cab6ff;border-color:#cab6ff;box-shadow:0 4px 24px #9464e523}.primary:hover{background:#dbcfff}.icon-button{background:0 0;border-color:#0000;padding:8px}.text-button{color:var(--violet);background:0 0;border:0;padding:8px 0}.full{width:100%}.muted{color:var(--muted);line-height:1.6}.small-text{font-size:12px}.warning{color:#edbc8e}.success{color:#91d5bb}.danger{color:#f0a1ad}header{border-bottom:1px solid var(--line);background:#12121d;justify-content:space-between;align-items:center;height:88px;padding:0 4%;display:flex}.brand{color:#eeebf9;letter-spacing:3px;align-items:center;gap:13px;font-family:Georgia,serif;font-size:23px;display:flex}.brand:hover{text-decoration:none}.brand small{color:#8c839f;letter-spacing:3.2px;margin-top:6px;font-family:Inter,Segoe UI,sans-serif;font-size:8px;display:block}.brand-icon{color:#c8afff;background:#221d32;border:1px solid #887aa34a;border-radius:13px;place-items:center;width:44px;height:44px;display:grid;transform:rotate(-5deg)}nav{align-items:center;gap:12px;height:100%;display:flex}nav button{color:#9491a6;background:0 0;border:0;padding:13px 18px}nav button.active{color:#d9c6ff;background:#2b263d}main{max-width:1640px;margin:auto;padding:36px 4% 50px}.page-heading{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.eyebrow{letter-spacing:2px;color:#ada0c4;font-size:10px;font-weight:650}h1{letter-spacing:-.8px;margin:10px 0 0;font-family:Georgia,serif;font-size:36px;font-weight:400;line-height:1.15}h2,h3{margin:0;font-weight:550}h2{font-size:18px}h3{font-size:15px}p{margin:10px 0 16px;line-height:1.6}.connection{color:#9696aa;align-items:center;gap:7px;font-size:12px;display:flex}.connection>span{background:#8e879e;border-radius:50%;width:6px;height:6px}.connection.online{color:#92d5bb}.connection.online>span{background:#92d5bb;box-shadow:0 0 12px #92d5bb55}.connection small{font-size:10px}.workspace{grid-template-columns:minmax(0,1fr) 290px;gap:25px;display:grid}.main-content{min-width:0}.right-rail{flex-direction:column;gap:18px;display:flex}.panel{border:1px solid var(--line);background:#171721;border-radius:13px;padding:21px}.panel-title{align-items:center;gap:10px;display:flex}.panel-title h2{font-size:15px}.step{color:#a38bd1;background:#282134;border:1px solid #75658c55;border-radius:5px;padding:3px 6px;font-size:10px}.panel p{color:var(--muted);font-size:12px}.qr{color:#222;background:#fff;border-radius:8px;place-items:center;max-width:210px;min-height:190px;margin:20px auto 12px;font-size:12px;display:grid}.qr img{border-radius:8px;width:100%;display:block}.pairing>small{text-align:center;margin-bottom:18px;font-size:10px;display:block}.download{color:#a59bb9;justify-content:center;align-items:center;gap:7px;margin-top:14px;font-size:12px;display:flex}.paired-mark{text-align:center;color:#9addc4;flex-direction:column;align-items:center;padding:25px 0 4px;display:flex}.paired-mark>svg{background:#263c35;border-radius:50%;width:64px;height:64px;margin-bottom:15px;padding:9px}.book-stat{color:#c5b1ee;justify-content:space-between;align-items:center;margin:20px 0;display:flex}.book-stat strong{font:32px Georgia,serif}.book-stat small{color:#8c899f;margin-top:4px;font:11px Segoe UI,sans-serif;display:block}.rail-note{color:#6f6d84;margin:0;padding:0 8px;font-size:11px}.rail-note a{margin-top:5px;display:block}.arena{background:linear-gradient(#100e1bbd 0%,#10101f11 35%,#14101f33 70%,#11101b 100%),url(/assets/arena.png) 50%/cover;border:1px solid #4a3a6755;border-radius:14px;height:515px;position:relative;overflow:hidden;box-shadow:0 16px 60px #0003}.arena-top,.arena-bottom{justify-content:space-between;align-items:center;padding:22px 24px;display:flex;position:relative}.pill{color:#c0aedc;letter-spacing:.4px;background:#221b32bb;border:1px solid #8e75b33a;border-radius:5px;align-items:center;gap:8px;padding:6px 9px;font-size:10px;display:inline-flex}.pill.green{color:#9cd6bf;background:#1d302b}.arena-caption{letter-spacing:2px;color:#a49bb6;font-size:9px}.fighters{z-index:2;justify-content:space-between;gap:40px;padding:4px 28px;display:flex;position:relative}.fighter{width:34%;min-width:135px}.fighter>div:first-child{justify-content:space-between;align-items:center;font-size:12px;display:flex}.fighter strong{font-weight:550}.fighter span{color:#d5d5e5;font-size:11px}.fighter small{color:#77788c;font-size:9px}.hp{background:#312c3c;border-radius:5px;height:6px;margin-top:10px;overflow:hidden}.hp i{background:linear-gradient(90deg,#548e98,#a4dfd8);height:100%;transition:width .3s;display:block}.enemy .hp i{background:linear-gradient(90deg,#9b526d,#d28b9a)}.fighter-status{flex-wrap:wrap;align-items:center;gap:6px;height:26px;display:flex}.fighter-status span{color:#d9bdff;align-items:center;gap:3px;font-size:9px;display:flex}.casting{background:#252038cc;border-radius:3px;height:20px;margin-top:5px;position:relative;overflow:hidden}.casting span{z-index:1;text-align:center;font-size:10px;display:block;position:relative}.casting i{background:#9270d94f;animation:linear forwards casting;position:absolute;top:0;bottom:0;left:0}@keyframes casting{0%{width:0}to{width:100%}}.arena-center{position:absolute;inset:150px 0 40px}.arena-invite{text-align:center;background:radial-gradient(#100e1db0,#0000 75%);flex-direction:column;justify-content:center;align-items:center;height:100%;padding:10px 25px;display:flex}.ornament{color:#bc9ae7;margin-bottom:9px;font-size:24px}.arena-invite h2{letter-spacing:-.5px;text-shadow:0 2px 12px #000;font:31px Georgia,serif}.arena-invite p{color:#b0a7bf;max-width:380px;margin:12px 0 23px;font-size:12px}.arena-invite .text-button{margin-top:11px;font-size:12px}.arena-bottom{letter-spacing:.3px;color:#968baf;padding:18px 24px;font-size:9px;position:absolute;bottom:0;left:0;right:0}.arena-bottom span{align-items:center;gap:6px;display:flex}.rune-player,.rune-enemy{color:#b7f4f4;filter:drop-shadow(0 0 18px #67ccff);background:radial-gradient(#87ebfb33,#0000 70%);border-radius:50%;place-items:center;width:84px;height:100px;display:grid;position:absolute;top:45%;left:16%}.rune-enemy{color:#e6b5ff;filter:drop-shadow(0 0 18px #bd75ff);left:auto;right:16%}.arena-trace{background:radial-gradient(#101322d0,#0000 75%);width:285px;height:285px;position:absolute;top:35%;left:50%;transform:translate(-50%,-50%)}.play-indicator{text-align:center;color:#c4b9d4;font-size:12px;position:absolute;bottom:5px;left:20px;right:20px}.duel-toolbar{justify-content:space-between;align-items:center;gap:15px;margin:19px 0;display:flex}.duel-toolbar label{color:#9993aa;align-items:center;gap:12px;font-size:11px;display:flex}.duel-toolbar select{width:auto;padding:8px 28px 8px 12px;font-size:12px}.spell-hotbar{flex-wrap:wrap;gap:10px;display:flex}.spell-hotbar>button{background:#1b1927;border-color:#67558044;flex-direction:column;flex:1;min-width:110px;padding:18px 12px}.spell-hotbar>button svg{color:#cab4ff;margin-bottom:5px}.spell-hotbar small{color:#8f879f;font-size:10px}.empty-hotbar{border:1px solid var(--line);background:#191822;border-radius:11px;align-items:center;gap:17px;width:100%;padding:22px;display:flex}.empty-hotbar>svg{color:#9d88c2}.empty-hotbar strong{font-size:13px}.empty-hotbar p{color:#8e899f;margin:6px 0 0;font-size:11px}.empty-hotbar button{white-space:nowrap;margin-left:auto;font-size:11px}.battle-log{color:#a39bb6;border-left:1px solid #6f558255;margin-top:18px;padding:14px 18px;font-size:12px}.battle-log>div{padding:5px}.battle-log span{color:#a686d6;margin-right:10px}.book-layout{border:1px solid var(--line);background:#171721;border-radius:13px;grid-template-columns:245px minmax(0,1fr);min-height:750px;display:grid;overflow:hidden}.spell-list{border-right:1px solid var(--line);background:#14141e;padding:17px 12px}.list-heading{justify-content:space-between;align-items:center;padding:0 5px 12px;display:flex}.list-heading h2{font-size:14px}.spell-list input,.spell-list select{margin-bottom:10px;font-size:11px}.spell-scroll{scrollbar-width:thin;scrollbar-color:#51435f transparent;max-height:880px;overflow-y:auto}.spell-scroll button{text-align:left;background:0 0;border:1px solid #0000;justify-content:flex-start;align-items:center;gap:9px;width:100%;margin-bottom:3px;padding:12px 8px;display:flex}.spell-scroll button.selected{background:#2a223d;border-color:#74608b55}.spell-icon{color:#b99ddf;background:#282236;border-radius:7px;place-items:center;padding:8px;display:grid}.spell-icon.damage{color:#dcc09d;background:#342a25}.spell-icon.heal{color:#a6dbc5;background:#22332d}.spell-scroll strong{font-size:11px;font-weight:550;display:block}.spell-scroll small{color:#8e849f;margin-top:4px;font-size:9px;display:block}.sample-count{color:#797288;margin-left:auto;font-size:10px}.sample-count.ready{color:#9dd2bb}.spell-detail{min-width:0;padding:26px}.spell-detail>h2{margin:9px 0;font:29px Georgia,serif}.incantation{color:#c5acee;letter-spacing:1px;font:italic 16px Georgia,serif}.spell-detail>p{font-size:12px}.spell-form{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:15px;margin:25px 0 28px;padding-bottom:24px;display:grid}label{color:#aba4bc;flex-direction:column;gap:7px;font-size:11px;display:flex}input,select{color:#ddd7e9;background:#11111b;border:1px solid #ffffff1a;border-radius:7px;width:100%;min-width:0;padding:11px}select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.checkbox{flex-direction:row;align-items:center;line-height:1.5}.checkbox input{accent-color:#b798e8;width:16px;height:16px}.form-actions{grid-column:1/-1;gap:10px;display:flex}.spell-form>p{grid-column:1/-1;margin:0}.training-heading{justify-content:space-between;align-items:center;gap:8px;margin-top:23px;display:flex}.progress{background:#302b3c;border-radius:4px;height:3px;margin-top:16px}.progress i{background:#b29bdd;height:100%;transition:width .3s;display:block}.training-actions{flex-wrap:wrap;gap:8px;margin:17px 0;display:flex}.training-actions button{padding:10px;font-size:11px}.model-info{color:#8c839e;flex-wrap:wrap;gap:12px;margin:17px 0;font-size:10px;display:flex}.model-info b{color:#c2b4d6;margin-left:5px}.capture{text-align:center;background:#11131e;border:1px solid #82719a44;border-radius:9px;margin:15px 0;padding:12px}.capture>span{color:#a29bb4;font-size:10px}.capture .trace{width:100%;height:260px}.phase{justify-content:center;align-items:center;gap:9px;padding:10px;font-size:12px;line-height:1.4;display:flex}.phase.wait{color:#eea5b1}.phase.go{color:#9bddb9}.trace{width:100%;height:auto;max-height:320px;display:block;overflow:hidden}.trace.small{max-height:140px}.crosshair{stroke:#69648022;stroke-width:1px;fill:none}.stroke{fill:none;stroke:#89e6e8;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.corrected{fill:none;stroke:#bd98f0;stroke-width:2px;stroke-dasharray:5 4;opacity:.8}.tip{fill:#fff}.samples{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.sample{background:#13131d;border:1px solid #fff1;border-radius:8px;padding:8px;overflow:hidden}.sample.good{border-color:#6faa8a60}.sample.bad{border-color:#be6f7b55}.sample-meta{justify-content:space-between;align-items:center;gap:5px;padding:5px 0;font-size:10px;display:flex}.sample-meta small{color:#8d879d;font-size:9px}.sample-actions{justify-content:space-between;gap:4px;margin-top:6px;display:flex}.sample-actions button{background:#25212f;flex:1;padding:7px}.sample-actions button.good{color:#95d6b7;background:#293b32}.sample-actions button.bad{color:#efa0ab;background:#3c2630}.empty-samples{text-align:center;color:#756b89;border:1px dashed #6d607c55;border-radius:9px;grid-column:1/-1;padding:45px 20px}.empty-samples p{margin:14px 0 0;font-size:12px}.last-result{background:#1b1725;border:1px solid #8c6bb42d;border-radius:9px;justify-content:space-between;gap:15px;margin-top:20px;padding:20px;display:flex}.last-result>div{flex:1;min-width:0}.last-result h3{margin:8px 0;font-family:Georgia,serif;font-size:19px}.last-result p{font-size:12px}.last-result>.trace{align-self:center;width:125px}.candidate{gap:10px;margin:8px 0;font-size:11px;display:flex}.candidate b{color:#d2b7fb;margin-left:auto}.candidate small{color:#9990a9;font-size:9px}.last-result small.muted{margin-top:13px;font-size:10px;display:block}.right-rail .last-result{flex-direction:column;padding:14px}.right-rail .last-result .trace{width:150px}.notice{color:#d8c4e7;background:#252033;border:1px solid #7d638f44;border-radius:8px;align-items:flex-start;gap:20px;margin:16px 4%;padding:15px 20px;display:flex}.notice.error{color:#efbcc4;background:#35232e;border-color:#94607166}.notice button{background:0 0;border:0;margin-left:auto;padding:2px}.notice.help p{margin:8px 0;font-size:13px}.spell-detail .notice{margin:14px 0;font-size:12px}footer{border-top:1px solid var(--line);color:#9b8dae;justify-content:space-between;align-items:center;gap:20px;max-width:1640px;margin:auto;padding:25px 4%;font-size:10px;display:flex}footer>div{align-items:center;gap:20px;display:flex}footer a,footer button.text-button{color:#83788f;font-size:10px}.standalone{max-width:650px;margin:10vh auto;padding:30px}.standalone p{color:#b1a8c2}.standalone h1{margin-bottom:30px}@media (width>=1450px){.arena{height:585px}.arena-center{inset:170px 0 40px}.book-layout{grid-template-columns:270px minmax(0,1fr)}}@media (width<=1100px){.workspace{grid-template-columns:minmax(0,1fr) 250px;gap:16px}.book-layout{grid-template-columns:190px minmax(0,1fr)}.spell-detail{padding:18px}.spell-scroll button{gap:7px;padding:11px 3px}.spell-icon{padding:5px}.spell-scroll strong{font-size:10px}.panel{padding:17px}.arena-caption{display:none}.empty-hotbar{flex-wrap:wrap}.empty-hotbar button{margin-left:40px}.spell-form{grid-template-columns:1fr}.page-heading .connection small{display:none}}@media (width<=850px){header{height:76px;padding:0 20px}.brand{font-size:19px}.brand small{font-size:6px}nav{gap:0}nav button{padding:12px;font-size:0}nav svg{width:20px;height:20px}.workspace{grid-template-columns:1fr}.right-rail{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.right-rail .pairing{grid-row:span 2}.rail-note{grid-column:1/-1}.book-layout{grid-template-columns:220px minmax(0,1fr)}.spell-form{grid-template-columns:1fr 1fr}.arena{height:520px}.page-heading{align-items:flex-start}.page-heading h1{font-size:31px}.connection{margin-top:6px;font-size:10px}footer{flex-direction:column;align-items:flex-start}.arena-top{padding:18px}.fighters{padding:4px 20px}}@media (width<=560px){main{padding:25px 16px}.page-heading{flex-direction:column;gap:15px}.page-heading h1{font-size:30px}.right-rail{display:flex}.arena{height:480px}.arena-invite h2{font-size:25px}.fighter{width:43%;min-width:0}.fighters{gap:15px}.arena-bottom span:last-child{display:none}.arena-center{inset:155px 0 40px}.book-layout{display:block}.spell-list{border:0;border-bottom:1px solid var(--line)}.spell-scroll{grid-template-columns:1fr 1fr;max-height:220px;display:grid}.spell-detail{padding:22px 17px}.spell-form{grid-template-columns:1fr 1fr}.duel-toolbar{flex-direction:column;align-items:stretch}.empty-hotbar{gap:11px;padding:18px}.empty-hotbar>svg{display:none}.empty-hotbar button{margin-left:0}.last-result>.trace{width:95px}.last-result{padding:15px}.brand{gap:9px;font-size:16px}.brand-icon{width:34px;height:34px}.brand small{letter-spacing:2px}.arena-top .pill{font-size:8px}.connection{align-self:flex-start}.arena-trace{width:220px;height:220px}.rune-player{left:5%}.rune-enemy{right:5%}footer>div{flex-wrap:wrap;gap:14px}}.opponent-choice{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.multiplayer-lobby{background:#111d2a;border:1px solid #3b5366;border-radius:18px;margin-bottom:20px;padding:22px}.multiplayer-lobby h3{margin:8px 0;font-size:23px}.multiplayer-lobby p{color:#c0c8d0;line-height:1.6}.multiplayer-lobby form>button{margin-top:12px}.room-code{letter-spacing:.18em;color:#77e6d0;overflow-wrap:anywhere}.room-entry{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.room-entry input{letter-spacing:.13em;flex:130px;min-width:0}.voice-controls input[type=checkbox]{flex:none;width:auto}.voice-controls label{min-width:0}.voice-controls label:has(input[type=checkbox]){flex-direction:row;align-items:center;gap:8px}.arena-card,.arena-layout>*,.spell-detail,.voice-controls{min-width:0}@media (width<=500px){header{flex-wrap:wrap;gap:10px;height:auto;min-height:76px;padding:12px 16px}header nav{order:3;justify-content:space-between;width:100%;height:auto}header nav button{gap:5px;padding:8px;font-size:12px}.voice-controls{align-items:stretch}.voice-controls>label{width:100%}.multiplayer-lobby{padding:15px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation-duration:0s!important}}.training-targets{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.training-targets .active{color:#ffdb96;background:#3e3026;border-color:#d2aa60}.voice-practice{border-top:1px solid #483e54;margin:1.3rem 0;padding-top:1rem}.voice-chips{margin:1rem 0}.chip-scroll{padding-bottom:.5rem;overflow-x:auto}.chip-grid{align-items:stretch;gap:.45rem;display:grid}.chip-label{color:#bbb3c9;align-self:center;font-size:.875rem}.voice-chip{text-align:center;text-transform:capitalize;border:1px solid #53495d;border-radius:8px;padding:.65rem .4rem}.voice-chip small{text-transform:none;margin-top:.3rem;font-size:.75rem;display:block}.voice-chip svg{width:100%;height:54px;display:block}.voice-chip.hit{color:#b5f3cc;background:#193d31;border-color:#6ac49a}.voice-chip.tentative{color:#e9c581;border-color:#c2a067}.voice-chips>small,.heard{color:#beb6cd;font-size:.875rem}.syllable-tolerance{align-items:center;gap:1rem;margin:1rem 0;display:flex}.syllable-tolerance input{max-width:7rem}.syllable-aliases{gap:.5rem;margin:1rem 0;display:grid}.syllable-aliases small{color:#bcb3c9}.voice-controls{flex-wrap:wrap;align-items:center;gap:.7rem;margin:1rem 0;display:flex}.ready-signal{border:2px solid;border-radius:14px;align-items:center;gap:18px;min-height:92px;margin:12px 0;padding:18px 22px;display:flex}.ready-signal svg{flex:none}.ready-signal strong{font-size:21px;line-height:1.25;display:block}.ready-signal span{color:inherit;opacity:.85;margin-top:6px;font-size:12px;display:block}.can-draw{color:#a7ffd8;background:#103528;border-color:#4abe90;box-shadow:0 0 25px #49e6a21b}.must-wait{color:#ffb3b4;background:#381b24;border-color:#a64a58}.stream-feedback{color:#b9ddd2;background:#172b2b;border-radius:9px;padding:12px 16px;font-size:13px}.geometry-score{align-items:center;gap:12px;margin:12px 0;display:flex}.geometry-score>strong{font-variant-numeric:tabular-nums;color:#c0f4dc;font-size:32px}.geometry-score>span{color:#aca4be;font-size:11px;line-height:1.7}.model-view{background:#111622;border:1px solid #334148;border-radius:14px;grid-template-columns:minmax(150px,280px) 1fr;gap:24px;margin:20px 0;padding:18px;display:grid}.model-view h3{margin:0 0 12px}.model-view p{margin:12px 0;font-size:12px;line-height:1.7}.model-view input[type=range]{accent-color:#83d4b4;width:100%;margin:10px 0}.model-view label{justify-content:space-between;display:flex}.range-labels{color:#a7aaa9;justify-content:space-between;margin-bottom:14px;font-size:11px;display:flex}.model-envelope{background:radial-gradient(#23403655,#141623);border-radius:10px;align-self:start;overflow:hidden}.model-envelope svg{width:100%;display:block}.model-envelope>span{text-align:center;color:#aac7bf;padding:12px;font-size:10px;display:block}.trial-history{background:#171420;border:1px solid #353142;border-radius:12px;margin:20px 0;padding:18px}.trial-history summary{cursor:pointer;font-size:13px}.trial-history>p{color:#aea5bf;margin:16px 0;font-size:12px;line-height:1.7}.history-row{border-top:1px solid #322c41;padding:12px 0}.history-row summary{font-size:11px;line-height:1.7}.history-row p{margin:10px 0;font-size:12px}.history-row small{overflow-wrap:anywhere;color:#9f94b2;font-size:9px}.formula-gesture{justify-content:center;gap:16px;flex-direction:row!important}.formula-gesture svg{width:75px!important}.formula-gesture small{align-self:center}.combat-stage{pointer-events:none;position:absolute;inset:0;overflow:hidden}.arena-invite{z-index:3;background:radial-gradient(#100e1dea 35%,#100e1d88 65%,#0000);position:relative}.wizard{--robe-light:#47949c;--robe-dark:#173941;--magic:#99f7df;width:150px;height:195px;position:absolute;bottom:25px}.wizard-player{left:8%}.wizard-enemy{--robe-light:#9563af;--robe-dark:#342442;--magic:#e9acff;right:8%}.wizard-enemy>svg{transform:scaleX(-1)}.wizard svg{filter:drop-shadow(0 5px 5px #000a);width:100%;height:100%;overflow:visible}.wizard-body{transform-origin:90px 205px;animation:3.6s ease-in-out infinite wizard-breathe}.wizard-enemy .wizard-body{animation-delay:-1.5s}.wizard-shadow{filter:blur(3px);background:#080811ab;border-radius:50%;width:80%;height:19px;position:absolute;bottom:-5px;left:10%}.staff-aura{transform-origin:150px 65px;animation:2.5s ease-in-out infinite staff-glow}.wizard.casting .wizard-staff{transform-origin:142px 148px;animation:.45s ease-in-out infinite alternate staff-cast}.wizard.casting .staff-aura{opacity:.6;filter:drop-shadow(0 0 12px var(--magic))}.wizard.struck .wizard-body{animation:.2s linear 3 wizard-hit}.wizard.fallen{opacity:.5;transform:translateY(20px)rotate(-8deg)}.mirror-orbit,.casting-orbit{border:2px solid #d5c5ffb0;border-radius:50%;animation:2s ease-in-out infinite shield-shimmer;position:absolute;inset:12% -6% -2%;box-shadow:inset 0 0 20px #9b8dff33,0 0 15px #bdaaff55}.casting-orbit{border-color:var(--magic);box-shadow:0 0 16px var(--magic);inset:75% -5% -5%;transform:rotateX(58deg)}.spell-effect{color:#93eddd;background:currentColor;border-radius:50%;width:28px;height:28px;animation:.55s ease-in forwards spell-flight;position:absolute;top:52%;left:24%;box-shadow:0 0 20px,0 0 50px}.spell-effect.from-enemy{color:#d68efd;animation-name:spell-flight-back;left:auto;right:24%}.spell-effect i{background:currentColor;border-radius:50%;width:7px;height:7px;position:absolute;top:12px;left:-22px;box-shadow:-14px -8px 10px}.spell-effect i:nth-child(2){top:-8px;left:-12px}.spell-effect i:nth-child(3){top:27px;left:-30px}.effect-heal,.effect-mirror,.effect-shield,.effect-cure{color:#b9e898;background:0 0;border:3px solid;width:90px;height:90px;top:44%;animation:.9s ease-out forwards spell-bloom!important}.effect-mirror{color:#dad0ff}.lightning{clip-path:polygon(55% 0,15% 55%,50% 52%,35% 100%,90% 35%,57% 40%);color:#ebeeff;border-radius:0;width:65px;height:135px;top:20%}.damage-float{color:#ffb3af;text-shadow:0 2px 10px #000;font-size:30px;font-weight:800;animation:1s ease-out forwards damage-rise;position:absolute;top:45%}.at-player{left:18%}.at-enemy{right:18%}@keyframes wizard-breathe{50%{transform:translateY(-3px)rotate(1deg)}}@keyframes staff-glow{50%{opacity:.45;transform:scale(1.2)}}@keyframes staff-cast{to{transform:rotate(-12deg)}}@keyframes wizard-hit{50%{filter:brightness(2);transform:translate(5px)}}@keyframes shield-shimmer{50%{opacity:.5}}@keyframes spell-flight{to{opacity:0;left:74%;transform:scale(1.6)}}@keyframes spell-flight-back{to{opacity:0;right:74%;transform:scale(1.6)}}@keyframes spell-bloom{to{opacity:0;transform:scale(2)}}@keyframes damage-rise{to{opacity:0;transform:translateY(-65px)}}@media (width<=850px){.model-view{grid-template-columns:1fr}.model-envelope{width:100%;max-width:270px;margin:auto}.wizard{width:115px;height:150px}.wizard-player{left:4%}.wizard-enemy{right:4%}.ready-signal strong{font-size:17px}}@media (prefers-reduced-motion:reduce){.wizard-body,.staff-aura,.wizard.casting .wizard-staff,.mirror-orbit,.casting-orbit{animation:none!important}.spell-effect,.damage-float{animation-duration:.01ms!important}.wizard.struck .wizard-body{filter:brightness(1.5);animation:none!important}}.parry-settings{background:#10272966;border:1px solid #629d9380;border-radius:14px;grid-column:1/-1;min-width:0;margin:4px 0;padding:20px}.parry-settings legend{color:#9ae4d6;padding:0 8px;font-weight:650}.parry-fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.parry-curve{width:100%;max-height:155px;margin-top:14px}.parry-curve text{fill:#d0dfdf;font-size:11px}.parry-hud{background:linear-gradient(130deg,#15282e,#201d35);border:1px solid #70a7a33d;border-radius:16px;min-width:0;margin:14px 0;padding:18px}.parry-hud-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.parry-hud-heading>span{letter-spacing:.16em;color:#9bdad0;font-size:11px}.impact-timing>div:first-child{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.impact-timing strong{font-variant-numeric:tabular-nums;font-size:20px}.impact-timing span{color:#c3b8db}.impact-timing small{color:#b5c7cf;margin:8px 0 12px;display:block}.impact-track{background:#0b151d;border:1px solid #607985;border-radius:10px;height:18px;margin:12px 0;position:relative;overflow:hidden}.impact-track .guard-band,.impact-track .return-band{background:#4dad9570;height:100%;position:absolute;top:0;right:0}.impact-track .return-band{background:#c7a0f5}.impact-track>b{background:#fff4cf;width:4px;height:100%;position:absolute;top:0;transform:translate(-3px);box-shadow:0 0 12px #ffe7a4}.in-window strong{color:#a2f0d9}.return-combo{background:linear-gradient(130deg,#563a7880,#312546);border:1px solid #cbb4ff;border-radius:14px;align-items:center;gap:20px;margin:16px 0;padding:18px;display:flex;box-shadow:0 0 28px #a684fa24}.return-combo strong{color:#e5d6ff;letter-spacing:.05em;font-size:15px}.return-combo p{margin:6px 0}.return-combo small{color:#cfbfdc}.return-combo button{color:#231432;background:#ddc9ff;margin-top:10px}.combo-ring{background:conic-gradient(#e7d4ff var(--progress), #423354 0);border-radius:50%;flex-direction:column;flex:none;justify-content:center;align-items:center;width:96px;height:96px;display:flex;position:relative}.combo-ring:before{content:"";background:#211a33;border-radius:50%;position:absolute;inset:6px}.combo-ring b,.combo-ring small{z-index:1;position:relative}.combo-ring b{font-variant-numeric:tabular-nums;color:#fff1d1;font-size:27px}.combo-ring small{font-size:10px}.parry-result{color:#d3e6df;border-top:1px solid #ffffff20;padding-top:12px;font-size:13px}.parry-training-link{background:#241f33;border:1px solid #9c82b14a;border-radius:12px;grid-column:1/-1;margin:15px 0;padding:16px}.timed-projectile{background:#ffdfaa;border-radius:50%;width:17px;height:17px;position:absolute;top:48%;transform:translate(-50%);box-shadow:0 0 12px #ffc98b,0 0 30px #be91ff}.parry-guard-aura{border:3px solid #91efd3;border-radius:50%;position:absolute;inset:15% -10%;transform:rotate(-20deg);box-shadow:0 0 25px #7de6d155}.parry-slash{border-right:8px solid #b9ffe5;border-radius:50%;width:90px;height:125px;animation:.4s ease-out forwards parry-cut;position:absolute;top:22%;box-shadow:14px 0 22px #a6f8d768}.parry-slash.perfect{border-color:#efdbff;box-shadow:14px 0 32px #dcbbffaa}.impact-burst{border:3px solid #ffcdaa;border-radius:50%;width:45px;height:45px;animation:.4s ease-out forwards parry-burst;position:absolute;top:46%}@keyframes parry-cut{0%{opacity:1;transform:rotate(-80deg)scale(.6)}to{opacity:0;transform:rotate(40deg)scale(1.3)}}@keyframes parry-burst{0%{opacity:1;transform:scale(.5)}to{opacity:0;transform:scale(2)}}@media (width<=500px){.parry-hud{padding:13px}.return-combo{text-align:center;flex-direction:column;gap:10px;padding:14px}.parry-fields{grid-template-columns:1fr}.parry-settings{padding:13px}}@media (width>=600px){.return-combo{z-index:40;width:min(450px,80vw);position:fixed;bottom:24px;right:24px;box-shadow:0 12px 60px #05020dcc,0 0 32px #c095ff55}}@media (prefers-reduced-motion:reduce){.parry-slash,.impact-burst{opacity:.5;animation:none}.timed-projectile{display:none}}
