:root{color-scheme:light;--paper:#f3f0e8;--ink:#16202b;--muted:#697077;--red:#bd342a;--line:#c9c7bf;--serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif CJK JP',serif;--sans:'Noto Sans CJK JP','Yu Gothic','Hiragino Kaku Gothic ProN',sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#101823;color:var(--ink);font:16px/1.6 var(--sans)}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #bf5244;outline-offset:3px}button:disabled{cursor:default;opacity:.36}button{color:inherit}#app{position:relative;width:100%;height:100svh;min-height:280px;isolation:isolate;overflow:hidden}#stage{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#111922}#screen{position:absolute;inset:0;overflow:auto}#screen:empty{pointer-events:none}[hidden]{display:none!important}.paper{background:var(--paper)}.eyebrow{font:12px/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}h1,h2,h3,p{margin:0}h2{font:700 clamp(24px,3.4vw,40px)/1.35 var(--serif);letter-spacing:.08em}h3{font:700 21px/1.5 var(--serif)}.tiny{font-size:12px;color:var(--muted)}.muted{color:var(--muted)}.title-page{height:100%;min-height:100%;overflow:hidden;position:relative;display:flex;align-items:center;background:linear-gradient(90deg,var(--paper) 0%,var(--paper) 38%,#f3f0e8df 48%,transparent 69%)}.title-page:after{content:'';position:absolute;inset:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.055' filter='url(%23n)'/%3E%3C/svg%3E")} .title-content{position:relative;z-index:3;width:46%;padding:35px 0 40px max(35px,7vw)}.brand-top{display:flex;align-items:center;gap:18px;font-size:12px;letter-spacing:.2em;margin-bottom:18px}.brand-top:before{content:'';width:30px;height:2px;background:var(--red)}.brand{font-family:var(--serif);font-size:clamp(72px,10.5vw,150px);font-weight:900;line-height:1.1;letter-spacing:-.06em;transform:skew(-5deg);text-shadow:1px 1px currentColor}.brand-en{letter-spacing:.45em;font-size:14px;margin:6px 0 20px;padding-left:7px}.tagline{font:700 18px var(--serif);letter-spacing:.15em;margin-bottom:35px}.title-menu{display:flex;flex-direction:column;align-items:stretch;width:min(285px,100%);gap:1px}.menu-button{display:flex;justify-content:space-between;align-items:center;border:0;border-bottom:1px solid #16202b2c;padding:13px 10px;background:transparent;text-align:left;transition:padding .2s,background .2s}.menu-button:hover{padding-left:20px;background:#ffffff80}.menu-button b{letter-spacing:.12em;font-size:15px}.menu-button span{font-size:12px;color:#6e7274}.menu-button:first-child{border-top:2px solid var(--red)}.menu-button:first-child b{color:var(--red)}.title-art{position:absolute;width:48%;height:94%;right:3%;bottom:-4%;display:flex;justify-content:center;align-items:flex-end;pointer-events:none;filter:drop-shadow(0 25px 28px #0006)}.title-art img{height:100%;width:auto;max-width:100%;object-fit:contain;position:relative;z-index:2;animation:breathe 5s ease-in-out infinite}.sun{position:absolute;border:15px solid #a9352cbd;border-radius:49% 51% 48% 53%;width:min(36vw,540px);height:min(36vw,540px);top:6%;right:5%;transform:rotate(-12deg);box-shadow:inset 5px -3px 0 #912c274d,3px 4px 0 #912c274d}.title-caption{position:absolute;right:25px;top:10%;writing-mode:vertical-rl;color:#fff7e8;font:18px var(--serif);letter-spacing:.4em;text-shadow:0 2px 8px #000}.version{position:absolute;bottom:15px;left:max(35px,7vw);z-index:3;color:#85867e;font-size:11px;letter-spacing:.13em}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:25px}.topbar .eyebrow{margin-bottom:4px}.back,.plain{border:1px solid var(--line);background:transparent;padding:8px 15px;white-space:nowrap}.back:hover,.plain:hover{background:#fff7}.page{min-height:100%;padding:clamp(20px,4vw,55px) clamp(24px,6vw,80px);background:var(--paper)}.page.narrow{max-width:900px;margin:auto}.chapter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px}.chapter-card{text-align:left;min-height:180px;padding:24px;border:1px solid #d2cfc7;background:#faf8f3;position:relative;overflow:hidden}.chapter-card:not(:disabled):hover{border-color:var(--red);background:#fff}.chapter-card .chapter-word{font:80px var(--serif);color:#16202b0b;position:absolute;right:12px;bottom:-10px}.chapter-card h3{margin:15px 0 20px;position:relative;font-size:19px}.chapter-card .status{font-size:12px;letter-spacing:.08em;color:var(--red)}.story-progress{display:flex;justify-content:space-between;align-items:center;gap:20px}.chips{display:flex;gap:10px;flex-wrap:wrap}.chip{border:1px solid #b7bab9;padding:3px 10px;font-size:12px;color:#536269}.primary{border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:13px 24px;letter-spacing:.08em;font-weight:700}.primary:hover{background:#293a4b}.primary.red{background:var(--red);border-color:var(--red)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.char-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.char-card{border:1px solid #c9c7c0;background:#e8e5dd;position:relative;padding:0;text-align:left;overflow:hidden}.char-card.selected{border:2px solid var(--red);background:#fffaf1}.char-card img{height:clamp(150px,31vh,290px);width:100%;object-fit:cover;object-position:50% 12%;display:block}.char-card .char-name{position:absolute;bottom:0;padding:14px;width:100%;background:linear-gradient(transparent,#15202bef 35%);color:#fff;line-height:1.7;padding-top:35px}.char-card .char-name b{font:700 23px var(--serif);display:block}.char-card .char-name small{font-size:10px;letter-spacing:.15em}.char-card .chosen{position:absolute;top:12px;left:12px;background:var(--red);color:white;padding:3px 8px;font-size:11px}.select-layout{display:grid;grid-template-columns:1fr 270px;gap:30px}.character-desc{border-left:3px solid var(--red);padding-left:16px;margin-top:18px;font-size:14px;min-height:75px}.side-config{padding:20px;background:#e7e4dc}.side-config label{display:block;margin-bottom:6px;font-weight:700;font-size:14px}.side-config select{width:100%;padding:10px;margin-bottom:22px;background:#f9f7f0;border:1px solid #b6b7b0}.side-config .primary{width:100%}.practice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.practice-card{display:block;width:100%;padding:23px;text-align:left;border:1px solid #c7c8c3;background:#fcfaf5}.practice-card:hover{border-color:var(--red)}.practice-card p{margin-top:8px;font-size:14px;color:var(--muted)}.dialog-scene{height:100%;position:relative;background:linear-gradient(0deg,#06111dcc,transparent 65%);overflow:hidden}.scene-place{position:absolute;left:6%;top:7%;padding:12px 20px;background:#f7f1e9ed;color:var(--ink);border-left:3px solid var(--red);font:18px var(--serif);letter-spacing:.1em}.standing{position:absolute;right:11%;height:94%;bottom:-6%;filter:drop-shadow(10px 5px 35px #0008);pointer-events:none}.standing.alt{right:auto;left:3%;height:80%;filter:brightness(.60) drop-shadow(10px 5px 20px #0008);transform:scaleX(-1)}.dialog-box{position:absolute;left:8%;right:8%;bottom:6%;background:#f5f1eaf5;border-top:4px solid var(--red);padding:22px 30px 23px;box-shadow:0 12px 70px #0008;min-height:150px;display:grid;grid-template-columns:1fr auto;gap:8px 25px}.speaker{font:700 20px var(--serif);color:var(--red);grid-column:1/-1}.dialog-text{font-size:clamp(15px,1.7vw,21px);line-height:1.85;align-self:center}.next{align-self:end;width:55px;height:48px;background:var(--ink);color:white;border:0;font-size:22px}.dialog-count{position:absolute;right:9%;bottom:2%;color:#fffb;font-size:12px}.dialog-skip{position:absolute;right:4%;top:5%;color:white;border:1px solid #fff7;background:#17222c99;padding:7px 15px;font-size:12px}.hud-top{position:absolute;top:3%;left:5%;right:5%;display:grid;grid-template-columns:1fr 140px 1fr;align-items:start;pointer-events:none;color:#f7f1e9;text-shadow:0 2px 6px #000}.fighter-name{font:700 clamp(16px,2vw,25px) var(--serif);letter-spacing:.08em}.fighter-sub{font-size:10px;letter-spacing:.17em;color:#ffffffa0;margin-bottom:5px}.hud-enemy{text-align:right}.score-dots{display:flex;gap:8px;margin-top:9px}.hud-enemy .score-dots{justify-content:flex-end}.score-dot{border:1px solid #fff8;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font:700 13px var(--sans)}.score-dot.filled{background:var(--red);border-color:var(--red);box-shadow:0 0 10px #bc3c3540}.time{text-align:center;font:300 34px var(--serif);line-height:1.15}.time small{display:block;font:10px var(--sans);letter-spacing:.12em;color:#fff9;margin:6px 0}.pause-btn{pointer-events:auto;position:absolute;top:0;right:-4.7%;width:32px;height:32px;border:1px solid #fffa;color:#fff;background:#14213077}.focus-note{font-size:11px;color:#e8b7a4;margin-top:6px;min-height:14px}.lesson{position:absolute;left:50%;top:16%;transform:translateX(-50%);width:min(620px,84%);color:#fff;padding:9px 18px;background:#14202bdc;border-left:3px solid var(--red);text-align:center;font-size:13px;pointer-events:none}.lesson-title{font:700 17px var(--serif);margin-bottom:2px}.objectives{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;color:#ddd7c7;font-size:12px}.objective.done{color:#9cd5bd}.maai{position:absolute;left:50%;bottom:16%;transform:translateX(-50%);text-align:center;color:#fffc;letter-spacing:.16em;font:16px var(--serif);padding:4px 13px;background:#16202b70;pointer-events:none}.match-message{position:absolute;left:20%;right:20%;bottom:21%;text-align:center;color:#fff;background:#101a23bd;min-height:30px;font-size:14px;padding:4px 9px;pointer-events:none}.match-message:empty{display:none}.touch-ui{position:absolute;inset:0;pointer-events:none;touch-action:none;user-select:none;-webkit-user-select:none}.move-pad{position:absolute;bottom:3%;left:5%;display:flex;gap:12px;pointer-events:auto}.attack-pad{position:absolute;bottom:3%;right:5%;display:flex;gap:8px;align-items:end;pointer-events:auto}.control{min-width:65px;height:62px;border:1px solid #e5e7e680;background:#101b2bb8;color:#eee9df;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 5px 8px #0002;font:700 23px var(--serif);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;padding:3px 9px}.control small{font:10px var(--sans);color:#bac0c7;letter-spacing:.04em}.control.active,.control:active{background:#f1eadd;color:#17222b;border-color:#fff}.control.attack{background:#f2eee1e8;color:#18232c;min-width:66px}.control.attack small{color:#767b7c}.control.seme{border-color:#b75546}.control.guard{font-size:20px}.match-corner{position:absolute;bottom:3%;left:50%;transform:translateX(-50%);font-size:10px;color:#fff8;pointer-events:none}.overlay{position:absolute;inset:0;background:#08121ddb;display:flex;align-items:center;justify-content:center;padding:25px;backdrop-filter:blur(7px)}.modal{background:var(--paper);padding:32px;max-width:580px;max-height:95%;overflow:auto;width:100%;box-shadow:0 24px 70px #0006}.modal .actions{flex-direction:column}.result-page{display:grid;grid-template-columns:45% 55%;height:100%;background:linear-gradient(90deg,#0d1722a6 20%,var(--paper) 45%)}.result-portrait{position:relative;overflow:hidden}.result-portrait img{position:absolute;height:100%;bottom:-8%;left:0;max-width:100%;object-fit:contain}.result-content{padding:7vh 7vw 5vh 3vw;overflow:auto}.result-calligraphy{font:900 clamp(42px,6vw,85px) var(--serif);letter-spacing:.08em;margin:14px 0}.result-score{font:35px var(--serif);border-block:1px solid var(--line);padding:12px 0;margin:15px 0;display:flex;justify-content:space-between;align-items:center}.result-score span{font-size:15px}.result-log{margin-top:15px}.result-line{padding:9px 0;border-bottom:1px solid #cecec8;font-size:13px}.result-line b{font-size:15px;color:var(--red);margin-right:10px}.result-line small{display:block;color:var(--muted)}.result-tip{font:17px/1.8 var(--serif);margin:17px 0}.setting-row{padding:21px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.setting-row label{font-size:17px}.setting-row input[type=range]{accent-color:var(--red);width:180px}.setting-row select{padding:7px;border:1px solid #aaa;background:#fff9}.guide{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:20px}.guide section{border-top:3px solid var(--ink);padding-top:13px}.guide p{font-size:15px;line-height:1.9;margin-top:10px}.key-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:14px}.key-table td{padding:10px;border-bottom:1px solid #d0cec6}.key-table td:first-child{font-family:monospace;font-weight:bold;width:35%}.ending{min-height:100%;position:relative;background:linear-gradient(90deg,#eee9dccf,#f3efdfef 55%,#eee9dccf);display:flex;justify-content:center;align-items:center;text-align:center;padding:40px}.ending .brand{font-size:90px;margin:20px}.ending p{margin:20px 0;line-height:2.2;font-family:var(--serif)}.ending .cast-row{display:flex;height:190px;justify-content:center}.ending .cast-row img{height:100%;margin:0 -8px}.ending .actions{justify-content:center}.rotate-note{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:none;z-index:20}.asset-status{font-size:11px;color:#788187;margin-top:14px}#toast{position:absolute;z-index:100;left:50%;bottom:16px;transform:translateX(-50%) translateY(90px);background:#16202bea;color:#fff;padding:9px 20px;border-left:3px solid var(--red);font-size:14px;max-width:90%;transition:transform .2s;pointer-events:none}#toast.show{transform:translateX(-50%) translateY(0)}@keyframes breathe{50%{transform:translateY(4px)}}
@media(min-width:1500px){.title-content{padding-left:10vw}.page{padding-inline:10vw}}
@media(max-width:900px){.title-content{width:50%;padding-left:5vw}.tagline{font-size:15px;margin-bottom:18px}.title-art{right:-3%;width:57%}.title-menu{width:240px}.menu-button{padding:10px 6px}.chapter-grid{gap:12px}.chapter-card{padding:16px;min-height:150px}.select-layout{grid-template-columns:1fr 230px;gap:20px}.page{padding:22px 30px}.topbar{padding-bottom:14px;margin-bottom:15px}.control{height:53px;min-width:55px;font-size:21px}.control.attack{min-width:55px}.move-pad{left:3%;gap:9px}.attack-pad{right:3%;gap:6px}.lesson{font-size:12px;top:17%}.match-message{font-size:12px;bottom:23%}.hud-top{grid-template-columns:1fr 110px 1fr}.time{font-size:27px}.dialog-box{left:5%;right:5%;bottom:6%;padding:16px 22px;min-height:125px}.standing{right:3%;height:95%}.speaker{font-size:18px}.dialog-text{font-size:16px}.result-content{padding-top:5vh}.result-tip{font-size:15px}}
@media(max-height:540px) and (orientation:landscape){.brand-top{margin-bottom:8px;font-size:10px}.brand{font-size:74px}.brand-en{margin:3px 0 8px;font-size:11px}.tagline{font-size:13px;margin-bottom:12px}.title-content{padding-top:16px;padding-bottom:20px}.title-menu{width:220px}.menu-button{padding:6px 7px}.menu-button b{font-size:12px}.menu-button span{font-size:10px}.version{font-size:9px;bottom:7px}.brand-top:before{width:20px}.title-caption{font-size:14px}.char-card img{height:145px}.char-grid{margin:10px 0}.char-card .char-name b{font-size:18px}.character-desc{min-height:40px;font-size:12px}.topbar h2{font-size:24px}.page{padding:16px 28px}.hud-top{top:3%;}.fighter-name{font-size:16px}.fighter-sub{font-size:9px}.score-dot{width:19px;height:19px;font-size:11px}.score-dots{margin-top:5px}.time{font-size:23px}.focus-note{display:none}.lesson{top:15%;padding:5px 12px;font-size:11px}.lesson-title{font-size:13px}.objectives{font-size:10px;gap:10px}.control{height:47px;min-width:47px;padding:2px 7px;font-size:20px}.control.attack{min-width:48px}.control small{font-size:9px}.control.guard{font-size:18px}.match-message{font-size:11px;bottom:22%;left:19%;right:19%}.maai{bottom:17%;font-size:12px}.move-pad,.attack-pad{bottom:3%}.dialog-box{padding:12px 20px;min-height:112px;bottom:6%}.dialog-text{font-size:15px;line-height:1.7}.scene-place{top:5%;font-size:14px;padding:7px 13px}.standing{height:100%;bottom:-13%}.next{width:44px;height:38px}.dialog-count{font-size:10px}.result-calligraphy{font-size:42px;margin:6px 0}.result-score{padding:6px 0;font-size:28px;margin:9px 0}.result-tip{font-size:13px;margin:7px 0}.result-line{font-size:11px;padding:4px 0}.result-line b{font-size:12px}.result-content .actions{margin-top:12px;gap:6px}.primary{padding:9px 15px;font-size:13px}.result-content{padding:18px 30px 20px 12px}.ending .cast-row{height:100px}.ending .brand{font-size:54px;margin:4px}.ending p{margin:5px;font-size:13px}.chapter-card h3{font-size:16px;margin:7px 0 14px}.chapter-card{min-height:122px}.chapter-word{font-size:60px!important}}
@media(orientation:portrait){.title-page{background:linear-gradient(0deg,var(--paper) 0%,var(--paper) 40%,#f3f0e877 75%,#f3f0e833)}.title-content{width:100%;padding:38vh 7vw 40px;align-self:flex-start}.brand{font-size:75px}.brand-top{display:none}.brand-en{font-size:11px;margin:5px 0 13px}.tagline{font-size:15px;margin-bottom:18px}.title-menu{width:100%}.menu-button{padding:13px 6px}.title-art{height:65%;width:77%;right:-6%;top:0;bottom:auto;opacity:.83}.sun{width:65vw;height:65vw;top:2%;right:1%}.title-caption{font-size:13px;right:14px;top:3%}.title-content .brand{position:relative;z-index:4}.version{left:7vw;font-size:10px}.chapter-grid{grid-template-columns:1fr 1fr}.chapter-card{min-height:160px}.chapter-card h3{font-size:17px}.story-progress{display:block}.chips{margin-top:12px}.select-layout{grid-template-columns:1fr;gap:10px}.char-grid{gap:8px}.char-card img{height:195px}.char-card .char-name{padding:8px;padding-top:25px}.char-card .char-name b{font-size:18px}.char-card .char-name small{font-size:8px}.side-config{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;padding:15px}.side-config .config-full{grid-column:1/-1}.side-config .primary{margin-top:6px;grid-column:1/-1}.page{padding:24px 20px}.practice-grid,.guide{grid-template-columns:1fr}.hud-top{top:3%;left:5%;right:5%;grid-template-columns:1fr 75px 1fr}.fighter-name{font-size:15px}.time{font-size:23px}.score-dots{gap:5px}.score-dot{width:20px;height:20px;font-size:11px}.pause-btn{top:80px;right:0}.lesson{top:16%;width:90%;font-size:12px}.lesson-title{font-size:15px}.objectives{gap:8px}.maai{bottom:36%;font-size:13px}.match-message{bottom:40%;left:6%;right:6%;font-size:12px}.move-pad{left:5%;bottom:21%;gap:12px}.attack-pad{bottom:5%;left:5%;right:5%;justify-content:space-between}.control{width:16%;min-width:53px;height:62px}.move-pad .control{width:72px;height:55px}.control.attack{min-width:55px}.control small{font-size:10px}.match-corner{bottom:16%;font-size:10px;white-space:nowrap}.dialog-box{left:4%;right:4%;bottom:5%;padding:17px 18px;grid-template-columns:1fr 40px;gap:6px 12px;min-height:190px}.dialog-text{font-size:16px}.next{width:40px;height:40px}.standing{height:80%;right:-15%;bottom:16%;}.standing.alt{display:none}.scene-place{font-size:14px;left:5%;top:10%}.dialog-skip{top:3%}.dialog-count{bottom:1.5%;font-size:10px}.result-page{grid-template-columns:1fr;display:block;background:var(--paper);overflow:auto}.result-portrait{height:150px;background:#d7d3c8}.result-portrait img{height:400px;left:30%;bottom:-230px}.result-content{padding:25px}.result-calligraphy{font-size:54px}.result-score{font-size:28px}.result-tip{font-size:15px}.result-content .actions{gap:8px}.result-content .primary{font-size:14px}.setting-row{align-items:flex-start;flex-direction:column;gap:10px}.setting-row input[type=range]{width:100%}.ending .cast-row{height:150px}.ending .brand{font-size:72px}.ending p{font-size:15px}.modal{padding:24px}.back{font-size:13px;padding:7px 11px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Keep focus and pointer activation from scrolling the fixed game surface. */
#app{overflow:clip}#toast{transform:translateX(-50%);opacity:0;visibility:hidden;transition:opacity .2s}#toast.show{transform:translateX(-50%);opacity:1;visibility:visible}
.char-card img{object-position:50% 30%}
@media(max-height:540px) and (orientation:landscape){.side-config{padding:14px}.side-config select{padding:6px;margin-bottom:12px}.side-config .config-full{font-size:11px}}
@media(orientation:portrait){.control.attack,.control.guard{font-size:18px;white-space:nowrap}.control small{white-space:nowrap}.fighter-sub{font-size:8px;letter-spacing:.08em}.time small{letter-spacing:0;white-space:nowrap}}
.char-card[data-id=takumi] img{object-position:12% 30%}
/* COMMAND BATTLE — a quiet planning board opens into a full cinematic arena. */
.command-battle{height:100%;display:grid;grid-template-rows:minmax(205px,1fr) auto;background:#101a27;color:#f2eee3;font-size:14px;overflow:hidden}.command-arena{position:relative;min-height:0;overflow:hidden;background:#111c29}.command-arena canvas{display:block;width:100%;height:100%;object-fit:fill}.command-hud{position:absolute;inset:15px 54px auto;display:grid;grid-template-columns:1fr 140px 1fr;gap:20px;pointer-events:none;text-shadow:0 2px 8px #06111f}.command-hud>div{display:flex;flex-direction:column}.command-hud small{font-size:11px;letter-spacing:.16em;color:#e6e3d1b3}.command-hud b{font:700 24px var(--serif);letter-spacing:.06em}.command-hud .score-dots{margin-top:6px;gap:6px}.command-hud .score-dot{width:22px;height:22px;font-size:12px}.command-time{text-align:center}.command-time b{font:30px var(--serif)}.enemy-score{align-items:flex-end}.command-pause{pointer-events:auto;position:absolute;right:-40px;top:0;width:32px;height:32px;background:#111c29bb;border:1px solid #ddd9;color:white}.arena-context{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);display:flex;align-items:center;gap:15px;white-space:nowrap;background:#07131bdc;padding:6px 18px;font-size:12px;border:1px solid #bcae8d55;color:#e6dbc3}.arena-context b{font:700 16px var(--serif);color:white}.command-desk{background:#111d2b;border-top:2px solid #b84535;padding:16px 28px 18px;position:relative;z-index:2}.planning-layout{display:grid;grid-template-columns:minmax(230px,.35fr) 1fr;gap:25px}.opponent-reading{border-right:1px solid #a8b1b42d;padding-right:23px}.reading-head{display:flex;gap:13px;align-items:center;margin-bottom:10px}.reading-head img{width:70px;height:66px;object-fit:cover;object-position:40% 20%;background:#dedaca;border:1px solid #70808e}.reading-head div{display:flex;flex-direction:column;gap:3px}.reading-head small{font-size:11px;letter-spacing:.18em;color:#c5b48f}.reading-head b{font:700 19px var(--serif)}.reading-head span{font-size:12px;color:#9eacb7}.opponent-reading p{font-size:13px;line-height:1.7;margin:4px 0;color:#c5ced4}.opponent-reading .reading-tell{color:#f0dab1;border-left:2px solid #bb6651;padding-left:10px;margin-top:9px}.focus-state{display:block;font-size:11px;color:#93a5b0;margin-top:9px}.plan-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.plan-label b{font:700 17px var(--serif);letter-spacing:.08em}.plan-label span{font-size:12px;color:#a9b6bd}.three-hands{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.hand{display:flex;align-items:center;gap:9px;background:#09131f;border:1px dashed #677685;color:#83929e;text-align:left;padding:10px 11px;height:51px;white-space:nowrap}.hand:disabled{opacity:1;cursor:default}.hand>span{color:#c7ad81;font:22px var(--serif)}.hand>span small{font:10px var(--sans);margin-left:2px}.hand>b{font:700 18px var(--serif);flex:1}.hand>small{font-size:12px}.hand.filled{border:1px solid #b9b3a0;color:#f2e6cb;background:#243241}.hand.filled:not(:disabled):hover{border-color:#d75d49}.hand.current{border-color:#edc993;background:#4b352e;box-shadow:inset 0 -2px #c04e36}.command-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-top:11px}.command-button{border:1px solid #566776;background:#1d2c3b;color:#e6eced;min-height:49px;padding:7px 6px;display:flex;align-items:center;justify-content:center;gap:7px;transition:background .15s}.command-button b{font:700 16px var(--serif);white-space:nowrap}.command-button small{color:#99abb8;font-size:10px;white-space:nowrap}.command-button.strike{background:#eee8da;color:#172531;border-color:#eee8da}.command-button.strike small{color:#7b7972}.command-button.counter{border-color:#9a7465;background:#322b2a;color:#eddbca}.command-button:hover:not(:disabled){background:#506173;color:white;border-color:#e4c998}.command-button:disabled{opacity:.35}.commit-row{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px}.commit-row p{font-size:11px;line-height:1.55;color:#94a3ae;flex:1;margin:0}.commit-plan{border:1px solid #be5140;background:#ad382d;color:#fff4df;font:700 16px var(--serif);padding:11px 24px;min-width:155px;white-space:nowrap;letter-spacing:.08em}.commit-plan span{margin-left:16px}.commit-plan:hover:not(:disabled){background:#c04b3e}.commit-plan:disabled{opacity:.4;cursor:default}.plan-clear{background:transparent;border:1px solid #586775;color:#b6c0c6;padding:8px 12px;white-space:nowrap;font-size:12px}.command-lesson{display:flex;flex-wrap:wrap;gap:5px 14px;align-items:center;background:#263341;margin:-5px 0 12px;padding:8px 12px;border-left:2px solid #b96348;color:#c8d1d5;font-size:12px;line-height:1.6}.command-lesson strong{font:700 15px var(--serif);color:#f0e7d4}.command-lesson>span{flex:1;min-width:220px}.lesson-goals{width:100%;display:flex;gap:14px;flex-wrap:wrap;color:#b9b08d;font-size:11px}.lesson-goals .done{color:#97c6b0}.playback-panel{display:grid;grid-template-columns:1fr auto;gap:35px;align-items:center;padding:2px 0}.playback-panel>div>small{display:block;margin-bottom:10px;color:#aab6bf;letter-spacing:.16em}.playback-controls{display:flex;gap:10px}.playback-controls .plain{color:#d7d9d6;border-color:#566774;font-size:13px}.playback-panel .hand{height:49px}.replay-caption{position:absolute;bottom:48px;left:6%;right:6%;padding:14px 22px;background:#08121eea;border-left:3px solid #b74736;font:700 clamp(15px,1.5vw,21px)/1.6 var(--serif);text-align:center;color:#f1e9d6;min-height:52px;box-shadow:0 6px 22px #0006}.cutin{position:absolute;left:5%;top:20%;height:44%;width:min(680px,65%);border-block:3px solid #e7dbc4;background:repeating-linear-gradient(-8deg,#273b4ddd 0px,#273b4ddd 5px,#172636ee 6px,#172636ee 12px);display:flex;align-items:center;gap:20px;overflow:hidden;transform:skew(-6deg);box-shadow:0 8px 28px #0008;pointer-events:none}.cutin img{height:185%;width:38%;object-fit:cover;object-position:45% 30%;transform:skew(6deg);filter:contrast(1.15)}.cutin>div{transform:skew(6deg);padding-right:18px}.cutin small{display:block;color:#ccae88;font-size:12px;letter-spacing:.16em;margin-bottom:7px}.cutin b{font:900 clamp(19px,3vw,40px)/1.45 var(--serif);text-shadow:3px 3px #050d14}.impact-word{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%) skew(-9deg);font:900 clamp(55px,9vw,135px)/1 var(--serif);white-space:nowrap;color:#fff5dd;text-shadow:3px 5px 0 #08131e,0 0 30px #08131e;pointer-events:none}.impact-word.ippon{color:#f6ead4;text-shadow:4px 5px 0 #a53329,0 0 50px #0b121a}.review-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}.review-heading small{color:#b3a07c;letter-spacing:.2em;font-size:11px}.review-heading h3{font-size:21px;margin-top:4px}.exchange-records{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.exchange-record{padding:12px 14px;background:#1c2b3b;border:1px solid #445565;display:grid;grid-template-columns:auto 1fr;gap:6px 12px}.exchange-record>span{font-size:11px;color:#b5a483}.record-pair{display:flex;align-items:center;gap:9px;font-size:14px}.record-pair small{font-size:10px;color:#8fa0ab}.exchange-record p{grid-column:1/-1;font-size:12px;color:#b5c2cb;line-height:1.65}.exchange-record p strong{display:block;font:700 16px var(--serif);color:#efe3cc;margin-bottom:3px}.exchange-record.ippon{border-color:#b6533e;background:#392c2c}.review-foot{display:flex;justify-content:space-between;margin-top:12px;color:#8da0af;font-size:11px}.command-battle.review .command-desk{max-height:52vh;overflow:auto}.command-battle.plan .command-desk{max-height:65vh;overflow:auto}
@media(max-width:1050px){.command-desk{padding:13px 20px}.planning-layout{grid-template-columns:220px 1fr;gap:18px}.opponent-reading{padding-right:17px}.command-grid{gap:6px}.command-button{flex-direction:column;gap:1px;padding:5px;min-height:44px}.command-button b{font-size:15px}.command-button small{font-size:9px}.commit-row p{font-size:10px}.hand b{font-size:16px}.hand{height:46px;padding:7px 8px;gap:5px}.plan-label b{font-size:16px}.reading-head img{width:57px;height:58px}.reading-head b{font-size:16px}.opponent-reading p{font-size:12px}.playback-panel{gap:15px}.playback-controls{flex-direction:column;gap:7px}.exchange-records{gap:7px}.exchange-record{padding:9px}.record-pair{font-size:12px;gap:5px}}
@media(max-height:540px) and (orientation:landscape){.command-battle{grid-template-rows:minmax(115px,1fr) auto}.command-desk{padding:9px 18px}.command-hud{top:8px;left:38px;right:38px}.command-hud b{font-size:17px}.command-hud small{font-size:9px}.command-hud .score-dot{width:16px;height:16px;font-size:10px}.command-hud .score-dots{margin-top:3px}.command-time b{font-size:20px}.command-pause{right:-28px;width:26px;height:26px}.arena-context{bottom:5px;font-size:9px;padding:3px 12px;gap:9px}.arena-context b{font-size:12px}.planning-layout{grid-template-columns:200px 1fr;gap:15px}.reading-head{margin-bottom:5px;gap:9px}.reading-head img{width:42px;height:43px}.reading-head b{font-size:15px}.reading-head small{font-size:9px}.reading-head span{font-size:10px}.opponent-reading p{font-size:11px;line-height:1.5;margin:3px 0}.opponent-reading .reading-tell{margin-top:4px}.focus-state{font-size:9px;margin-top:4px}.plan-label{margin-bottom:5px}.plan-label b{font-size:14px}.hand{height:36px;padding:5px 8px}.hand>b{font-size:14px}.hand>span{font-size:18px}.hand>span small{font-size:8px}.command-grid{margin-top:7px;gap:5px}.command-button{min-height:38px;padding:4px;flex-direction:row;gap:5px}.command-button b{font-size:13px}.command-button small{font-size:8px}.commit-row{margin-top:7px;gap:7px}.commit-row p{font-size:10px}.commit-plan{padding:7px 15px;min-width:127px;font-size:14px}.plan-clear{padding:6px 9px;font-size:11px}.command-lesson{padding:4px 8px;margin:0 0 7px;font-size:10px;gap:1px 10px}.command-lesson strong{font-size:12px}.lesson-goals{font-size:9px;gap:8px}.playback-panel>div>small{font-size:11px;margin-bottom:6px}.playback-controls{flex-direction:row}.playback-controls .plain{font-size:11px;padding:7px 10px}.replay-caption{bottom:35px;padding:7px 14px;font-size:15px;min-height:36px}.cutin{height:40%;top:20%;width:65%}.cutin b{font-size:25px}.cutin small{font-size:10px}.review-heading h3{font-size:16px}.review-heading{margin-bottom:8px}.exchange-record p{font-size:11px}.exchange-record p strong{font-size:13px}.review-foot{margin-top:7px;font-size:9px}.command-battle.plan .command-desk{max-height:68vh}.command-battle.review .command-desk{max-height:59vh}}
@media(orientation:portrait){.command-battle{grid-template-rows:220px minmax(0,1fr)}.command-battle.replay{grid-template-rows:minmax(230px,1fr) auto}.command-battle.review{grid-template-rows:220px minmax(0,1fr)}.command-desk{padding:14px 16px;overflow:auto!important;max-height:none!important}.planning-layout{grid-template-columns:1fr;gap:13px}.opponent-reading{border-right:0;border-bottom:1px solid #65737c5c;padding:0 0 12px;display:grid;grid-template-columns:95px 1fr;gap:0 12px}.reading-head{grid-row:1/5;display:block;margin:0}.reading-head img{width:48px;height:46px;float:left;margin-right:7px}.reading-head b{font-size:13px;white-space:nowrap}.reading-head small{font-size:9px}.reading-head span{display:none}.opponent-reading p{font-size:12px;margin:2px 0;line-height:1.5}.opponent-reading .reading-tell{margin-top:4px}.focus-state{grid-column:1/-1;font-size:10px;margin-top:7px}.command-grid{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.command-button{min-height:43px;flex-direction:row;gap:6px}.command-button b{font-size:15px}.command-button small{font-size:9px}.plan-label b{font-size:16px}.hand{height:43px;gap:4px;padding:5px}.hand>b{font-size:14px}.hand>span{font-size:17px}.hand>span small{display:none}.three-hands{gap:6px}.commit-row{flex-wrap:wrap;gap:8px}.commit-row p{flex-basis:100%;font-size:11px}.commit-plan{flex:1;padding:11px 15px;font-size:16px}.plan-clear{padding:10px 12px}.command-hud{inset:12px 23px auto;grid-template-columns:1fr 78px 1fr;gap:8px}.command-hud b{font-size:17px}.command-hud small{font-size:9px;letter-spacing:.08em}.command-hud .score-dot{width:18px;height:18px;font-size:10px}.command-time b{font-size:22px}.command-pause{right:-13px;top:70px;width:28px;height:28px}.arena-context{font-size:9px;padding:4px 10px;gap:8px;bottom:7px}.arena-context b{font-size:12px}.arena-context span:last-child{display:none}.command-lesson{font-size:11px;padding:7px 9px}.command-lesson strong{font-size:14px}.lesson-goals{font-size:10px;gap:6px}.playback-panel{display:block}.playback-controls{flex-direction:row;justify-content:flex-end;margin-top:12px}.playback-controls .plain{font-size:12px}.replay-caption{left:4%;right:4%;bottom:42px;padding:12px 15px;font-size:16px;line-height:1.7}.cutin{left:4%;top:20%;width:92%;height:29%;gap:12px}.cutin b{font-size:25px}.cutin img{width:40%;height:170%}.impact-word{font-size:88px}.review-heading{align-items:flex-start;gap:10px;flex-direction:column}.review-heading .commit-plan{width:100%}.review-heading h3{font-size:19px}.exchange-records{grid-template-columns:1fr;gap:8px}.exchange-record{padding:10px 12px}.exchange-record p{font-size:12px}.record-pair{font-size:14px}.review-foot{display:block;font-size:11px}.review-foot span{display:block;margin-top:5px}}
/* 心をつなぐ章 — supplied mark, quiet title, character signatures. */
.renewed-title{display:grid;grid-template-columns:56% 44%;background:#f3f0e8;isolation:isolate;min-height:100%;height:100%;overflow:auto}.renewed-title:after{z-index:4;opacity:.6}.title-emblem{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 3vw 40px}.title-emblem h1{width:min(100%,70vh);line-height:0}.title-emblem img{display:block;width:100%;height:auto;mix-blend-mode:multiply}.title-emblem>p{font:700 clamp(14px,1.4vw,19px) var(--serif);letter-spacing:.32em;margin-top:8px}.title-controls{min-height:100%;height:100%;display:flex;flex-direction:column;justify-content:center;padding:50px clamp(30px,5vw,90px);background:linear-gradient(125deg,#192b3af5,#0a1522ed),url('assets/background/dojo.webp') center/cover;color:#f4ecdd;border-left:4px solid #a7352d}.title-controls>.eyebrow{color:#c8ac7a;letter-spacing:.46em;font-size:14px}.title-lead{font:600 clamp(18px,1.9vw,27px)/1.7 var(--serif);letter-spacing:.08em;margin:14px 0 34px}.renewed-title .title-menu{width:100%;max-width:370px}.renewed-title .menu-button{color:#f1ebdf;border-color:#c5bfa82d;padding:17px 3px;gap:12px;min-height:55px}.renewed-title .menu-button:first-child{border-top:1px solid #ba6d52}.renewed-title .menu-button:first-child b{color:#e9b79b}.renewed-title .menu-button span{color:#a9b3ba;font-size:12px}.renewed-title .menu-button b{font-size:14px;font-weight:500;letter-spacing:.13em}.renewed-title .menu-button:hover{background:#d9c69d13;padding-left:12px}.title-footnote{margin-top:30px;color:#8497a5;font-size:11px;line-height:1.9}.renewed-title .version{bottom:13px;left:3vw;color:#7a7972;font-size:10px;pointer-events:none}.signature-intro{display:block;margin-top:12px;font-size:13px;color:#8a3e2a;line-height:1.8}.command-button.signature{background:linear-gradient(115deg,#553229,#282b31);border-color:#bf825f;color:#ffe2b1}.command-button.signature b{font-size:15px}.command-button.signature small{color:#d1ac86}.signature-cutin{border-color:var(--signature-color);background:repeating-linear-gradient(-8deg,#101d29f7 0px,#101d29f7 7px,#283d4df5 8px,#283d4df5 11px);box-shadow:0 12px 32px #0009,inset 0 -3px 0 #fff2}.signature-cutin small{color:var(--signature-color)}.signature-cutin b{font-size:clamp(28px,4.5vw,58px);letter-spacing:.14em;color:#fff3db}.ending-logo{margin:8px auto;width:min(230px,35vw);line-height:0}.ending-logo img{width:100%;mix-blend-mode:multiply}.music-note{color:var(--muted);font-size:12px;line-height:1.8}
@media(max-height:560px) and (orientation:landscape){.title-emblem{padding:10px 3vw 26px}.title-emblem h1{width:68vh}.title-emblem>p{font-size:12px;margin-top:3px}.title-controls{padding:22px 5vw}.title-controls>.eyebrow{font-size:10px}.title-lead{font-size:17px;margin:7px 0 15px}.renewed-title .menu-button{padding:8px 2px;min-height:37px}.renewed-title .menu-button b{font-size:12px}.renewed-title .menu-button span{font-size:10px}.title-footnote{margin-top:13px;font-size:9px}.renewed-title .version{font-size:8px;bottom:7px}.command-button.signature b{font-size:12px}.signature-cutin b{font-size:31px}.ending-logo{width:95px}.signature-intro{font-size:11px;margin-top:8px}}
@media(orientation:portrait){.renewed-title{display:flex;flex-direction:column;justify-content:flex-start;height:auto;min-height:100%}.title-emblem{width:100%;height:auto;min-height:280px;padding:14px 28px 24px}.title-emblem h1{width:min(66vw,38vh)}.title-emblem>p{font-size:13px;letter-spacing:.23em;margin-top:0}.title-controls{width:100%;height:auto;flex:1;padding:27px 8vw 42px;border-left:0;border-top:3px solid #a7352d}.title-controls>.eyebrow{font-size:11px}.title-lead{font-size:19px;margin:9px 0 23px}.renewed-title .title-menu{max-width:none}.renewed-title .menu-button{padding:13px 2px;min-height:48px}.title-footnote{margin-top:22px;font-size:10px}.renewed-title .version{position:static;padding:8px;width:100%;text-align:center;background:#0d1a27;color:#86919b;font-size:9px}.command-button.signature b{font-size:14px}.signature-cutin b{font-size:33px}.ending-logo{width:155px}}
