:root{--night:#080504;--paper:#fff0d0;--sand:#cdb48a;--red:#b72e20;--fire:#ef512e;--sun:#ffd274;--line:rgba(255,240,208,.2);--panel:rgba(10,6,4,.8);--safe:max(14px,env(safe-area-inset-bottom))}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--night);color:var(--paper);font-family:Arial,Helvetica,sans-serif;touch-action:none}button,a{font:inherit;color:inherit}button{cursor:pointer}a{text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--sun);outline-offset:3px}.hidden{display:none!important}canvas{position:fixed;inset:0;width:100%;height:100%;display:block;background:#0b0705}.grain{position:fixed;z-index:4;inset:0;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.86' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.fight-header{position:fixed;z-index:20;top:0;left:0;right:0;padding:max(13px,env(safe-area-inset-top)) 17px 8px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;pointer-events:none}.brand{pointer-events:auto;display:flex;align-items:center;gap:9px;font-size:9px;font-weight:900;letter-spacing:.17em;text-transform:uppercase;text-shadow:0 4px 20px #000}.brand svg{width:30px;fill:var(--fire)}.mode-name{text-align:center;text-transform:uppercase;text-shadow:0 4px 18px #000}.mode-name span,.mode-name strong{display:block}.mode-name span{color:var(--sand);font-size:6px;letter-spacing:.2em}.mode-name strong{margin-top:2px;font:20px/1 Impact,sans-serif;letter-spacing:.08em}.fight-header nav{justify-self:end;display:flex;gap:6px;pointer-events:auto}.fight-header nav>*{width:37px;height:37px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#080504b8;backdrop-filter:blur(12px);font-size:11px;font-weight:900}.fight-header nav>*:hover{border-color:var(--sun);background:#4b160fc7}
.fight-hud{position:fixed;z-index:15;top:67px;left:50%;width:min(960px,calc(100% - 30px));transform:translateX(-50%);display:grid;grid-template-columns:1fr 100px 1fr;gap:20px;align-items:start;pointer-events:none;filter:drop-shadow(0 7px 20px #000)}.hud-fighter>div:first-child span,.hud-fighter>div:first-child strong{display:block}.hud-fighter>div:first-child span{color:var(--sand);font-size:7px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.hud-fighter>div:first-child strong{margin-top:3px;font:20px/1 Impact,sans-serif;text-transform:uppercase;letter-spacing:.05em}.enemy-hud{text-align:right}.health,.stamina{height:9px;margin-top:7px;overflow:hidden;border:1px solid #fff4;background:#140a07;transform:skewX(-10deg)}.health i,.stamina i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#7e1d16,var(--fire),var(--sun));transition:width .12s linear}.stamina{height:3px;margin-top:4px;border:0;background:#fff2}.stamina i{background:linear-gradient(90deg,#8ca177,#e8d8ae)}.enemy-hud .health,.enemy-hud .stamina{transform:skewX(10deg)}.enemy-hud i{margin-left:auto}.hud-fighter>small{display:block;margin-top:5px;color:var(--sand);font-size:7px;text-transform:uppercase;letter-spacing:.12em}.hud-fighter>small b{color:var(--paper)}.round-clock{text-align:center}.round-clock span,.round-clock strong,.round-clock small{display:block}.round-clock span{color:var(--sun);font-size:7px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.round-clock strong{margin:3px 0;font:34px/.9 Impact,sans-serif}.round-clock small{color:var(--sand);font:italic 8px Georgia,serif}
.announcer{position:fixed;z-index:19;left:50%;top:42%;transform:translate(-50%,-50%);width:min(900px,92vw);text-align:center;pointer-events:none;text-shadow:0 7px 35px #000}.announcer span,.announcer strong,.announcer small{display:block}.announcer span{color:var(--sun);font-size:9px;font-weight:900;letter-spacing:.28em;text-transform:uppercase}.announcer strong{margin:5px 0;font:clamp(75px,15vw,190px)/.72 Impact,"Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:-.04em}.announcer small{color:var(--sand);font:italic 14px Georgia,serif}.announcer.show{display:block!important;animation:announce 1.6s ease both}@keyframes announce{0%{opacity:0;transform:translate(-50%,-46%) scale(1.18)}18%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-56%) scale(.94)}}.combat-toast{position:fixed;z-index:18;left:50%;top:30%;transform:translate(-50%,-50%) scale(.8);font:clamp(28px,6vw,65px)/1 Impact,sans-serif;color:var(--sun);text-transform:uppercase;text-shadow:0 0 28px var(--fire),0 6px 20px #000;opacity:0;pointer-events:none;white-space:nowrap}.combat-toast.pop{animation:toast .68s ease-out}@keyframes toast{14%{opacity:1;transform:translate(-50%,-50%) scale(1.04)}100%{opacity:0;transform:translate(-50%,-75%) scale(1.16)}}
.loading{position:fixed;z-index:60;inset:0;display:grid;place-content:center;justify-items:center;gap:17px;background:radial-gradient(circle at 50% 66%,#651d1048,transparent 38%),#080504}.loading>strong{font-size:10px;letter-spacing:.2em;text-transform:uppercase}.loading>small{color:var(--sand);font-size:8px;letter-spacing:.1em}.loading>div:not(.triple-mark){width:min(280px,70vw);height:2px;background:#fff2}.loading>div i{display:block;width:0;height:100%;background:var(--fire)}.triple-mark{position:relative;width:76px;height:62px}.triple-mark i{position:absolute;width:42px;height:38px;clip-path:polygon(50% 0,100% 100%,80% 100%,50% 24%,20% 100%,0 100%);background:var(--red);filter:drop-shadow(0 0 18px #ff5a2d88)}.triple-mark i:nth-child(1){left:17px}.triple-mark i:nth-child(2){left:0;top:23px;transform:scale(.7)}.triple-mark i:nth-child(3){right:0;top:23px;transform:scale(.7)}
.select-screen,.pause-screen,.result-screen{position:fixed;z-index:40;inset:0;padding:18px;display:grid;place-items:center;overflow:auto;background:rgba(4,3,2,.74);backdrop-filter:blur(13px)}.select-shell{width:min(1180px,100%);max-height:calc(100svh - 36px);display:grid;grid-template-columns:.72fr 1.28fr;overflow:auto;border:1px solid rgba(204,71,43,.48);border-radius:30px;background:linear-gradient(145deg,rgba(29,15,10,.98),rgba(7,5,4,.99));box-shadow:0 40px 140px #000}.select-heading{position:relative;min-height:680px;padding:38px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:linear-gradient(0deg,#080504f0,transparent 58%),url("../assets/game/environment-night.webp") center/cover}.select-heading:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 45% 54%,#df45283d,transparent 33%)}.select-heading>*{position:relative;z-index:2}.select-heading p{margin:0;color:var(--sun);font-size:8px;font-weight:900;letter-spacing:.22em;text-transform:uppercase}.select-heading h1{margin:12px 0;font:clamp(82px,10vw,145px)/.68 Impact,"Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:-.05em}.select-heading h1 em{font-style:normal;color:var(--fire)}.select-heading>span{color:var(--sand);font:italic 13px/1.5 Georgia,serif}.selection-panel{padding:clamp(24px,4vw,48px);align-self:center}.panel-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:13px}.panel-head>div{display:flex;align-items:center;gap:10px}.panel-head span{color:var(--fire);font:21px Impact,sans-serif}.panel-head strong{font-size:9px;letter-spacing:.16em;text-transform:uppercase}.panel-head small{color:var(--sand);font:italic 10px Georgia,serif}.roster{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.fighter-card{padding:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff1;text-align:left;transition:.18s}.fighter-card:hover,.fighter-card.selected{border-color:var(--sun);background:#6c2115aa;transform:translateY(-3px)}.fighter-card i{display:block;width:100%;aspect-ratio:.78;background-repeat:no-repeat;background-size:400% 200%;background-position:0 0;filter:drop-shadow(0 7px 8px #000)}.fighter-card>span{display:block;padding:9px}.fighter-card strong,.fighter-card small{display:block}.fighter-card strong{font-size:9px;text-transform:uppercase}.fighter-card small{margin-top:3px;color:var(--sand);font-size:6px;letter-spacing:.06em}.portrait-kwaad{background-image:url("../assets/game/character-combat.png")}.portrait-mara{background-image:url("../assets/game/rival-mara.png")}.portrait-jackal{background-image:url("../assets/game/rival-jackal.png")}.portrait-rook{background-image:url("../assets/game/fighter-rook.png")}.portrait-sable{background-image:url("../assets/game/fighter-sable.png")}.selection-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.panel-head.compact{justify-content:flex-start;align-items:center;margin-bottom:7px}.choice-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:5px}.choice-group button{min-height:37px;padding:5px;border:1px solid var(--line);border-radius:9px;background:#fff1;color:var(--sand);font-size:7px;font-weight:900;text-transform:uppercase}.choice-group button.selected{border-color:var(--sun);background:#6c2115;color:var(--paper)}.controls-preview{display:flex;flex-wrap:wrap;gap:5px;margin-top:20px}.controls-preview span{padding:7px 8px;border:1px solid var(--line);border-radius:8px;color:var(--sand);font-size:7px;font-weight:900;text-transform:uppercase}.controls-preview kbd{display:inline-grid;place-items:center;min-width:21px;height:21px;margin-right:3px;border:1px solid #fff4;border-radius:5px;background:#0005;color:var(--paper);font-size:8px}.select-actions,.result-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:20px}.primary,.select-actions>a,.result-actions>*,.pause-screen a,.text-button{min-height:47px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:#fff1;font-weight:900;text-transform:uppercase;font-size:9px;letter-spacing:.08em}.primary{border:0;background:linear-gradient(135deg,var(--red),#64130d);box-shadow:0 12px 28px #a32d1b3d}.select-actions>a{border:0;background:none;color:var(--sand);padding:0 6px}.primary:hover,.result-actions>*:hover{transform:translateY(-2px);border-color:var(--sun)}
.pause-screen{z-index:35;text-align:center}.pause-screen>div{padding:42px;border:1px solid var(--line);border-radius:28px;background:#100a07ed}.pause-screen p,.result-copy>p{margin:0;color:var(--sun);font-size:8px;font-weight:900;letter-spacing:.2em;text-transform:uppercase}.pause-screen h2,.result-copy h2{margin:12px 0;font:clamp(64px,9vw,120px)/.75 Impact,sans-serif;text-transform:uppercase}.pause-screen>* .primary,.pause-screen>* .text-button,.pause-screen>* a{display:flex;margin:10px auto 0}.text-button{width:100%;background:#fff1}
.result-card{width:min(1040px,100%);max-height:calc(100svh - 36px);display:grid;grid-template-columns:.82fr 1.18fr;overflow:auto;border:1px solid rgba(204,71,43,.48);border-radius:30px;background:#0b0705;box-shadow:0 40px 140px #000}.result-art{position:relative;min-height:620px;overflow:hidden;background:linear-gradient(0deg,#080504e8,transparent 55%),url("../assets/game/environment-dawn.webp") center/cover}.result-fighter{position:absolute;left:50%;bottom:-2%;width:min(500px,94%);aspect-ratio:418/470.5;transform:translateX(-50%);background-size:400% 200%;background-position:100% 100%;background-repeat:no-repeat;filter:drop-shadow(0 20px 25px #000)}.result-art>span{position:absolute;z-index:2;top:20px;left:20px;font:clamp(75px,11vw,155px)/.75 Impact,sans-serif;color:var(--sun);text-transform:uppercase;text-shadow:0 6px 25px #000}.result-copy{padding:clamp(28px,5vw,55px);align-self:center}.result-score span,.result-score strong{display:block}.result-score span{color:var(--sand);font-size:8px;letter-spacing:.14em;text-transform:uppercase}.result-score strong{margin-top:4px;font:clamp(65px,9vw,115px)/.82 Impact,sans-serif;color:var(--sun)}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:20px 0;background:var(--line);border:1px solid var(--line)}.result-grid div{padding:13px;background:#100a07}.result-grid span,.result-grid strong{display:block}.result-grid span{color:var(--sand);font-size:7px;text-transform:uppercase;letter-spacing:.12em}.result-grid strong{margin-top:4px;font-size:17px}.result-copy>p:last-of-type{color:var(--sand);font:italic 14px/1.5 Georgia,serif;text-transform:none;letter-spacing:0}
.touch-fight{position:fixed;z-index:22;left:10px;right:10px;bottom:var(--safe);display:none;justify-content:space-between;pointer-events:none}.touch-fight>div{display:flex;gap:7px;pointer-events:auto}.touch-fight button{width:58px;height:55px;border:1px solid var(--line);border-radius:16px;background:#080504ab;backdrop-filter:blur(10px);font-weight:900}.touch-fight button:active,.touch-fight button.active{border-color:var(--sun);background:#7d2618d9;transform:scale(.95)}.touch-fight span,.touch-fight small{display:block}.touch-fight span{font-size:8px;text-transform:uppercase}.touch-fight small{margin-top:3px;color:var(--sand);font-size:7px}
@media(max-width:900px){.fight-header{grid-template-columns:1fr auto}.mode-name{display:none}.brand span{display:none}.select-screen,.result-screen{padding:7px;align-items:start}.select-shell,.result-card{grid-template-columns:1fr;max-height:calc(100svh - 14px);border-radius:22px}.select-heading{min-height:200px;height:25svh;padding:20px}.select-heading h1{font-size:68px}.selection-panel{padding:20px}.result-art{min-height:210px;height:26svh}.result-fighter{width:min(320px,65%);left:62%}.result-art>span{font-size:70px}.result-copy{padding:20px}.result-copy h2{font-size:55px}.result-score strong{font-size:70px}.fight-hud{top:58px;grid-template-columns:1fr 68px 1fr;gap:6px;width:calc(100% - 14px)}.hud-fighter>div:first-child strong{font-size:15px}.round-clock strong{font-size:26px}.round-clock small{display:none}.touch-fight{display:flex}}
@media(max-width:600px){.fight-header nav>*{width:34px;height:34px}.fight-header nav a:nth-last-child(2){display:none}.select-heading{min-height:155px;height:20svh}.select-heading h1{font-size:55px}.selection-panel{padding:15px}.roster{grid-template-columns:repeat(5,minmax(70px,1fr));overflow-x:auto;padding-bottom:7px}.fighter-card{min-width:78px}.fighter-card>span{padding:7px}.fighter-card strong{font-size:8px}.selection-row{grid-template-columns:1fr;gap:10px;margin-top:10px}.controls-preview{display:none}.select-actions{margin-top:12px}.select-actions>*{min-height:42px}.fight-hud{top:53px}.hud-fighter>div:first-child span{display:none}.hud-fighter>div:first-child strong{font-size:13px}.health{height:7px}.hud-fighter>small{font-size:6px}.round-clock span{font-size:6px}.round-clock strong{font-size:22px}.touch-fight{left:6px;right:6px}.touch-fight>div{gap:4px}.touch-fight button{width:48px;height:48px;border-radius:14px}.touch-move button:nth-child(3){width:43px}.result-grid{margin:12px 0}.result-actions>*{min-height:42px;padding:0 12px}}
@media(max-height:650px) and (orientation:landscape){.select-shell,.result-card{grid-template-columns:.72fr 1.28fr}.select-heading,.result-art{height:auto;min-height:calc(100svh - 28px)}.selection-panel,.result-copy{padding:18px}.select-heading h1{font-size:68px}.roster{grid-template-columns:repeat(5,1fr)}.fighter-card i{aspect-ratio:1}.selection-row{margin-top:10px}.controls-preview{display:none}.touch-fight button{height:44px}.result-copy h2{font-size:50px}.result-score strong{font-size:60px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
/* v31 campaign, survival, fighter identity and Wildfire meter */
.special{height:4px;margin-top:4px;overflow:hidden;background:rgba(255,210,116,.12);transform:skewX(-10deg)}.special i{display:block;width:0;height:100%;background:linear-gradient(90deg,#9e2217,#ef512e,#ffd274);box-shadow:0 0 10px #ef512e;transition:width .12s linear}.enemy-hud .special{transform:skewX(10deg)}.enemy-hud .special i{margin-left:auto}.special.ready i{animation:meterReady .65s ease-in-out infinite alternate}@keyframes meterReady{to{filter:brightness(1.8);box-shadow:0 0 18px #ffd274}}.round-clock em{display:block;margin-top:3px;color:var(--sun);font-style:normal;font-size:6px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.mode-select{margin-top:18px}.mode-select .choice-group{max-width:520px}.special-button{border-color:#ef512e!important;background:linear-gradient(145deg,#6e1d13cc,#170907dd)!important}.special-button.ready{border-color:var(--sun)!important;box-shadow:0 0 22px #ef512e88;animation:meterReady .65s infinite alternate}.result-grid{grid-template-columns:repeat(3,1fr)}@media(max-width:600px){.mode-select{margin-top:10px}.round-clock em{display:none}.result-grid{grid-template-columns:1fr 1fr}.touch-fight>div{gap:3px}.touch-fight button{width:46px}}
/* v31 professional progression layer */
.fighter-detail{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.move-card,.career-card{min-height:145px;padding:13px;border:1px solid rgba(255,240,208,.16);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(0,0,0,.16));box-shadow:inset 0 0 24px rgba(0,0,0,.16)}.move-card>span,.career-card>span{display:block;color:var(--fire);font-size:7px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.move-card>strong,.career-card>strong{display:block;margin-top:5px;font:18px/1 Impact,sans-serif;text-transform:uppercase;letter-spacing:.04em}.move-card>small{display:block;margin-top:7px;color:var(--sand);font:italic 11px/1.45 Georgia,serif}.move-card dl{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:12px 0 0}.move-card div{padding:8px;border:1px solid rgba(255,240,208,.12);border-radius:10px;background:#0003}.move-card dt{color:var(--sand);font-size:6px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.move-card dd{margin:4px 0 0;font-size:9px;font-weight:900;text-transform:uppercase}.tour-ladder{display:grid;gap:5px;margin:10px 0 0;padding:0;list-style:none}.tour-ladder li{display:grid;grid-template-columns:20px 1fr auto;gap:7px;align-items:center;padding:7px;border:1px solid rgba(255,240,208,.12);border-radius:10px;background:#0003;color:var(--sand);font-size:7px;font-weight:900;text-transform:uppercase}.tour-ladder li.current{border-color:var(--sun);color:var(--paper);background:#681b12aa}.tour-ladder b{color:var(--fire);font-size:10px}.tour-ladder em{font-style:normal;color:var(--sun);font-size:6px}.result-grid{grid-template-columns:repeat(4,1fr)}.touch-actions #kickButton{border-color:rgba(255,211,116,.28)}@media(max-width:900px){.fighter-detail{grid-template-columns:1fr}.move-card,.career-card{min-height:0}.result-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.fighter-detail{display:none}.touch-fight button{width:43px}.touch-actions{max-width:248px;flex-wrap:wrap;justify-content:flex-end}.touch-actions button{height:45px}}

/* v32 practice and readability */
.mode-select .choice-group{grid-template-columns:repeat(4,1fr)}.practice-badge{color:var(--sun)}@media(max-width:700px){.mode-select .choice-group{grid-template-columns:1fr 1fr}}
