@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/HTx3L3I-JCGChYJ8VI-L6OO_au7B2xY.ttf) format("truetype")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/HTxwL3I-JCGChYJ8VI-L6OO_au7B4-Lw_3E.ttf) format("truetype")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/HTxwL3I-JCGChYJ8VI-L6OO_au7B4873_3E.ttf) format("truetype")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/HTxwL3I-JCGChYJ8VI-L6OO_au7B46r2_3E.ttf) format("truetype")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/HTxwL3I-JCGChYJ8VI-L6OO_au7B47b1_3E.ttf) format("truetype")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/-F63fjptAgt5VM-kVkqdyU8n5ig.ttf) format("truetype")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/-F6qfjptAgt5VM-kVkqdyU8n3twJ8lc.ttf) format("truetype")}:root{font-family:IBM Plex Mono,monospace;color:#e8e6db;background:#080f12;font-synthesis:none;--red:#f2543d;--muted:#839b9a;--line:#ced6cc25}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,select{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,select:focus-visible{outline:2px solid #71e6d4;outline-offset:5px}button:disabled{cursor:wait;opacity:.5}#scene{position:fixed;inset:0}#scene canvas{width:100%;height:100%;display:block}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 35%,#02090ba6 100%);z-index:1}.grain{position:fixed;inset:0;opacity:.035;pointer-events:none;z-index:12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}header{position:fixed;left:42px;right:42px;top:30px;display:flex;justify-content:space-between;align-items:center;z-index:20}.brand{display:flex;gap:16px;align-items:center;background:none;border:0;padding:0}.sigil{display:grid;place-items:center;background:var(--red);color:#071113;width:35px;height:42px;font-size:25px;font-weight:700;clip-path:polygon(0 0,100% 0,100% 80%,75% 100%,0 100%)}.brand-text{font-family:Barlow Condensed,sans-serif;font-size:25px;letter-spacing:5px;font-weight:600}.brand small{display:block;font:8px IBM Plex Mono,monospace;letter-spacing:3.5px;color:#9aa9a3;margin-top:1px}.top-right{display:flex;gap:28px;align-items:center;font-size:10px;letter-spacing:1px}.weather{color:#b5c4be}.weather b{color:#69cabc;margin-right:7px}.icon-btn{width:36px;height:36px;background:#07111375;border:1px solid var(--line);font-size:16px}.screen{position:fixed;inset:0;z-index:5}.hidden{display:none!important}#menu{background:linear-gradient(90deg,#071113f7,#071113cb 29%,#0711131c 60%,#07111324),linear-gradient(0deg,#071113 0%,transparent 30%),url(/art/afterblade-direction.png) center center/cover}.menu-content{position:absolute;left:7.1%;top:21%;width:440px}.eyebrow{font-size:10px;letter-spacing:3px;color:#b0c0b9;display:flex;align-items:center;gap:10px}.eyebrow:before{content:"";width:25px;height:2px;background:var(--red)}h1{font-family:Barlow Condensed,Impact,sans-serif;font-size:clamp(76px,8.8vw,142px);font-weight:600;line-height:.86;letter-spacing:-2px;margin:27px 0 24px}h1 span{display:block;color:var(--red)}.intro{font-size:11px;line-height:1.9;color:#b3c1b9;max-width:310px;margin:0 0 26px}.settings{display:flex;gap:25px;margin:24px 0}.settings label{font-size:8px;letter-spacing:2px;color:var(--muted);display:block}.settings select{display:block;margin-top:8px;color:#dfdfd2;background:#0b171c;border:0;border-bottom:1px solid #6b807751;border-radius:0;font-size:11px;padding:8px 27px 8px 0;cursor:pointer}.primary{height:52px;background:var(--red);color:#101619;border:0;padding:0 24px;font-size:11px;letter-spacing:2px;font-weight:500;min-width:245px;display:flex;align-items:center;justify-content:space-between;gap:35px;transition:background .15s,transform .15s;clip-path:polygon(0 0,100% 0,100% 77%,95% 100%,0 100%)}.primary:hover{background:#ff7d5b;transform:translate(3px)}.primary span{font-size:21px}.secondary{background:none;border:0;border-bottom:1px solid #8a9a9255;padding:11px 0;margin:15px 25px 0 0;font-size:9px;letter-spacing:1.5px;color:#b3c1b9}.secondary:hover{color:#fff}.menu-bottom{position:absolute;left:7.1%;right:42px;bottom:30px;display:flex;align-items:flex-end;justify-content:space-between}.coordinates{color:#758d87;font-size:9px;line-height:1.9;letter-spacing:1px}.chapter{display:flex;gap:17px;align-items:center;font-size:10px}.chapter strong{font-family:Barlow Condensed;font-size:50px;font-weight:400;color:#526360}.chapter span{line-height:1.8}.chapter small{color:#7f9892;letter-spacing:2px;font-size:8px}.menu-side{position:absolute;right:42px;top:45%;writing-mode:vertical-rl;letter-spacing:8px;color:#e4e4d0;font-size:20px}.menu-side small{font-size:8px;letter-spacing:4px;color:#8aaca3;margin-top:20px}.hud{position:fixed;inset:0;z-index:4;pointer-events:none}.hud button{pointer-events:auto}.fighters{position:absolute;left:42px;right:42px;top:108px;display:flex;justify-content:space-between}.fighter-label{width:225px}.fighter-label.right{text-align:right}.fighter-label .number{color:var(--red);font-size:9px;letter-spacing:2px}.fighter-label h2{font-family:Barlow Condensed;font-size:29px;letter-spacing:3px;margin:5px 0 7px;font-weight:500}.fighter-label .condition{color:#9dc1b4;font-size:9px;letter-spacing:1.2px;padding-top:10px;border-top:1px solid var(--line)}.stance-readout{color:#e3e6db;font-size:9px;margin-top:8px;letter-spacing:2px}.duel-mark{position:absolute;left:50%;top:108px;transform:translate(-50%);font-size:9px;letter-spacing:3px;color:#aabcb2;text-align:center}.duel-mark b{display:block;font-family:Barlow Condensed;font-weight:400;font-size:29px;letter-spacing:9px;margin-top:5px;color:#e4e7dc}.hud-bottom{position:absolute;left:42px;right:42px;bottom:30px;display:flex;align-items:flex-end;justify-content:space-between}.stance{font-size:9px;letter-spacing:2px;color:#9eafa7}.stance h3{font-family:Barlow Condensed;font-size:38px;letter-spacing:3px;color:#e3e7db;margin:5px 0 14px;font-weight:500}.stance-buttons{display:flex;gap:6px}.stance-buttons button{background:#0c191ca8;border:1px solid var(--line);padding:8px 12px;font-size:9px;color:#7f958e}.stance-buttons button.active{border-color:var(--red);color:#f7795e}.control-strip{display:flex;gap:22px;font-size:8px;color:#abc0b6;line-height:2}.control-strip span{display:block}.control-strip kbd{font:9px IBM Plex Mono;color:#e2e4d8;background:#122226b3;border:1px solid #66827860;padding:3px 5px;margin-right:3px}.right-note{text-align:right;color:#d1ddd2;font-size:10px;letter-spacing:2px}.right-note small{display:block;color:#71948a;font-size:8px;margin-top:10px;letter-spacing:1px}#feedback{position:absolute;top:26%;left:50%;transform:translate(-50%);font-size:12px;letter-spacing:5px;color:#e9ebdc;text-align:center;text-shadow:0 2px 12px black;transition:opacity .2s}#feedback small{display:block;font-size:9px;color:#b5c9bd;letter-spacing:1px;margin-top:10px}.overlay{background:#051013a6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:25}.panel{width:570px;padding:40px;border:1px solid #526c644f;background:#0a171bed;box-shadow:0 20px 100px #0005}.panel h2{font-family:Barlow Condensed;font-size:58px;line-height:1;font-weight:500;letter-spacing:1px;margin:16px 0 20px}.panel p{color:#a9bdb3;font-size:11px;line-height:1.9}.panel .primary{margin-top:25px;width:100%}.lesson{border-top:1px solid var(--line);padding:12px 0;display:grid;grid-template-columns:120px 1fr;font-size:10px;line-height:1.8}.lesson b{color:#e6e9dc;font-weight:400}.lesson span{color:#94ada2}#result .panel{text-align:center}#result h2{font-size:78px}#result .eyebrow{justify-content:center}.result-stats{display:flex;justify-content:center;gap:30px;border-block:1px solid var(--line);padding:16px;color:#adc4b7;font-size:9px}.result-stats b{color:#edf0e2;font-weight:400}#flash{position:fixed;inset:0;background:#d0fff9;opacity:0;z-index:15;pointer-events:none}.touch-controls{display:none;position:absolute;bottom:135px;left:20px;right:20px;justify-content:space-between;pointer-events:none}.touch-controls div{display:grid;grid-template-columns:repeat(3,42px);gap:5px}.touch-controls button{pointer-events:auto;touch-action:none;background:#08191eb8;border:1px solid #739c8c66;height:42px;font-size:11px}.touch-controls .attacks{grid-template-columns:repeat(2,55px)}.mobile-hint{display:none}.error{position:fixed;bottom:20px;left:20px;background:#361815;padding:20px;z-index:50;font-size:12px;max-width:500px}button,select{touch-action:manipulation}@media(max-width:850px){header{left:22px;right:22px;top:20px}.top-right{gap:10px}.weather{display:none}.menu-content{left:7%;top:19%;width:80%}h1{font-size:90px}.menu-side{right:20px}.menu-bottom{left:7%;right:20px}.chapter{display:none}.fighters{left:22px;right:22px;top:91px}.fighter-label{width:160px}.hud-bottom{left:22px;right:22px;bottom:20px}.control-strip{gap:8px}.right-note{display:none}.panel{max-width:calc(100vw - 32px);padding:26px}.duel-mark{top:91px}.duel-mark b{font-size:21px}.brand-text{font-size:20px}.menu-content .intro{font-size:10px}.stance h3{font-size:29px}}@media(pointer:coarse){.touch-controls{display:flex}.control-strip{display:none}.mobile-hint{display:block}}@media(max-height:680px){.menu-content{top:18%}h1{font-size:76px;margin:18px 0}.intro{margin-bottom:12px}.settings{margin:12px 0}.menu-bottom{bottom:16px}.panel{padding:24px}.panel h2{font-size:42px;margin:10px 0}.lesson{padding:7px 0}.panel .primary{margin-top:14px}.menu-content .secondary{margin-top:5px}}#menu{background-image:linear-gradient(90deg,#071113f7,#071113cb 29%,#0711131c 60%,#07111324),linear-gradient(0deg,#071113 0%,transparent 30%),url(/art/afterblade-menu.png)}@media(max-width:600px){h1{font-size:clamp(56px,12vw,72px)}.menu-side{font-size:15px;right:14px}.menu-side small{display:none}.menu-content{width:85%}.duel-mark{display:none}.fighter-label{width:135px}.fighter-label h2{font-size:23px}.control-strip{display:none}}
