@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Noto+Serif+JP:wght@400;500;600&display=swap');
:root{font-family:Georgia,'Times New Roman',serif;color:#eee8db;background:#111c1e;color-scheme:dark;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #f1d49b;outline-offset:5px}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}[lang=ja]{font-family:'Noto Serif JP',serif}#game{position:relative;height:100dvh;min-height:380px;width:100%;overflow:hidden}#scene{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#06101266,transparent 52%),linear-gradient(0deg,#071111a8,transparent 25%,transparent 82%,#07111188);box-shadow:inset 0 0 130px #06111650}header{position:absolute;top:0;left:0;right:0;padding:27px 36px;display:flex;align-items:center;justify-content:space-between;z-index:5}.brand{display:flex;align-items:center;gap:13px;color:#ece3d0;text-decoration:none;font-size:14px;letter-spacing:3px}.seal{display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;background:#873c31;padding:8px 5px;font-size:15px;letter-spacing:3px;border:1px solid #c18b6644}.top-right{display:flex;align-items:center;gap:15px}.icon-button{width:37px;height:37px;padding:9px;background:none;border:0;color:#d2c6b2;opacity:.8}.icon-button:hover{opacity:1}.icon-button svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.sound-waves{display:none}.sound-on .sound-waves{display:block}.sound-on .sound-mute{display:none}.round-display{position:absolute;top:26px;left:50%;transform:translateX(-50%);text-align:center;opacity:0;pointer-events:none;min-width:190px}.round-display>span{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:29px;letter-spacing:2px}.round-display>span:before,.round-display>span:after{content:'';display:inline-block;width:22px;height:1px;vertical-align:middle;background:#b5956a70;margin:0 13px}.round-display small{display:block;margin-top:4px;font-size:13px;color:#b9c0af;letter-spacing:1px}.playing .round-display{opacity:1}.intro{position:absolute;left:8%;top:27%;transition:opacity .4s}.title-kanji{font-size:clamp(70px,7vw,110px);font-weight:500;letter-spacing:.12em;line-height:1.3;color:#e3d4b8;text-shadow:0 3px 20px #07131199}h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(46px,4.6vw,72px);font-weight:400;line-height:1;margin:9px 0 18px;letter-spacing:-1px}.intro p{font-size:16px;color:#bac3b5;margin:0 0 31px}.primary{display:flex;align-items:center;justify-content:center;gap:20px;min-width:225px;padding:15px 25px;background:#d9c6a6;color:#1e2a27;border:1px solid #d9c6a6;font-size:16px;letter-spacing:.5px;box-shadow:0 6px 30px #05121433;transition:background .2s}.primary:hover{background:#f0dfbf}.primary [lang=ja]{font-size:18px;padding-right:18px;border-right:1px solid #344b3e44}.text-button{display:block;background:none;border:0;padding:13px 0;color:#c0b49a;font-size:13px;text-underline-offset:5px}.text-button:hover{text-decoration:underline;color:#f3dcb6}.start-note{font-size:12px;color:#9baa9d;max-width:260px;line-height:1.5;margin-top:2px}.playing .intro{opacity:0;pointer-events:none}.combat-status{position:absolute;left:50%;top:122px;transform:translateX(-50%);text-align:center;pointer-events:none;opacity:0;transition:opacity .2s;max-width:90%;width:450px;text-shadow:0 2px 8px #061112}.playing .combat-status.visible{opacity:1}.combat-status span{font-size:22px;letter-spacing:2px;color:#ead0a0}.combat-status strong{display:block;font-size:14px;font-weight:400;color:#d1d5c5;margin-top:6px}.tutorial-panel{position:absolute;left:34px;bottom:36px;width:min(360px,calc(100% - 68px));border-left:2px solid #b79769;background:linear-gradient(90deg,#0b181af2,#0b181ac7 80%,#0b181a00);padding:16px 22px;z-index:4}.tutorial-heading{display:flex;align-items:center;gap:13px}.tutorial-heading>span{font-size:23px;color:#d8b582}.tutorial-heading>b{font-size:15px;font-weight:400}.tutorial-heading>small{margin-left:auto;font-size:13px;color:#b7b79f;white-space:nowrap}.tutorial-panel p{font-size:18px;margin:13px 0 7px;line-height:1.45;color:#f1e7d4}.tutorial-panel>small{display:block;font-size:13px;line-height:1.6;color:#b1c0ae}.tutorial-panel .text-button{font-size:12px;padding-bottom:0;margin-top:5px}.stance{position:absolute;bottom:27px;right:38px;text-align:center;opacity:0;pointer-events:none;transition:opacity .3s}.playing .stance{opacity:1;pointer-events:auto}.direction-pad{display:grid;grid-template:repeat(3,34px)/repeat(3,34px);gap:5px;justify-content:center}.direction-pad button{border:1px solid #d0c2a34d;color:#acbca9;background:#101e20a8;font:14px Georgia,serif;transition:background .1s}.direction-pad button.active{background:#d8c29d;color:#182723;border-color:#e9cf9c}.direction-pad button.lesson-target{outline:2px solid #efdfb6;outline-offset:2px}.direction-pad button[data-dir=up]{grid-area:1/2}.direction-pad button[data-dir=left]{grid-area:2/1}.direction-pad button[data-dir=right]{grid-area:2/3}.direction-pad button[data-dir=down]{grid-area:3/2}.pad-center{grid-area:2/2;color:#bca37e;font-size:17px;display:grid;place-items:center}.stance small{display:block;margin-top:10px;font-size:13px;color:#cabb9f}.enemy-target{position:absolute;width:180px;height:180px;transform:translate(-50%,-50%);pointer-events:none;opacity:0}.playing .enemy-target{opacity:1}.enemy-target i{position:absolute;display:block;width:45px;height:45px;color:#e7dfcc;opacity:.15;filter:drop-shadow(0 2px 3px #03100e);transition:opacity .09s,transform .09s}.enemy-target svg{width:100%;height:100%;fill:currentColor;stroke:#071413;stroke-width:2.5;stroke-linejoin:round;paint-order:stroke fill}.enemy-target i.active{opacity:1;color:#f2dfac;transform:scale(1.12);filter:drop-shadow(0 0 8px #f3d28280) drop-shadow(0 2px 2px #081010)}.enemy-target.attacking i.active{color:#ffac68;transform:scale(1.28);filter:drop-shadow(0 0 9px #ff693dbb) drop-shadow(0 2px 2px #000)}.enemy-target.attacking svg{stroke:#562114;stroke-width:3}.enemy-target i[data-enemy=up]{left:67.5px;top:-4px}.enemy-target i[data-enemy=left]{top:67.5px;left:-6px}.enemy-target i[data-enemy=left] svg{transform:rotate(-90deg)}.enemy-target i[data-enemy=right]{top:67.5px;right:-6px}.enemy-target i[data-enemy=right] svg{transform:rotate(90deg)}.enemy-target i[data-enemy=down]{left:67.5px;bottom:-4px}.enemy-target i[data-enemy=down] svg{transform:rotate(180deg)}.target-caption{position:absolute;top:-40px;left:-30px;width:240px;text-align:center;font-size:14px;color:#f3d8ad;letter-spacing:1px;text-shadow:0 2px 5px #02100d}.enemy-target.attacking .target-caption{color:#ffd4a7}.overlay{position:absolute;inset:0;z-index:10;background:#081317a8;backdrop-filter:blur(6px);display:grid;place-items:center}.result-card{padding:30px;max-width:520px;text-align:center}.result-kanji{font-size:70px;color:#b99c6d;line-height:1.4}.eyebrow{font-size:13px;color:#b9b8a0;letter-spacing:1px;margin-top:8px}.result-card h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:56px;line-height:1.07;font-weight:400;margin:16px 0}.result-card p{font-size:16px;line-height:1.65;color:#b5c1b3;margin:17px 0 25px}.result-card .primary{margin:0 auto}.control-list{display:grid;grid-template-columns:110px 1fr;text-align:left;gap:15px 20px;margin:25px 0 32px;font-size:15px}.control-list dt{color:#ddc69f}.control-list dd{margin:0;color:#b3c0b0}.touch-help{display:none}#flash{position:absolute;inset:0;pointer-events:none;z-index:6;background:#b85034;opacity:0;transition:opacity .16s}#touch-actions{display:none}
@media(max-width:700px){header{padding:18px}.brand{font-size:12px;letter-spacing:1.5px;gap:8px}.seal{font-size:13px}.top-right{gap:5px}.round-display{top:23px;min-width:140px}.round-display>span{font-size:24px;letter-spacing:1px}.round-display>span:before,.round-display>span:after{display:none}.round-display small{font-size:12px;letter-spacing:0}.intro{top:auto;bottom:17%;left:8%}.title-kanji{font-size:82px}.intro h1{font-size:54px}.intro p{font-size:15px}.combat-status{top:108px}.combat-status span{font-size:20px}.tutorial-panel{left:18px;bottom:26px;width:calc(100% - 183px);min-width:180px;padding:13px 14px}.tutorial-heading{gap:8px;flex-wrap:wrap}.tutorial-heading>span{display:none}.tutorial-heading>b{font-size:14px}.tutorial-panel p{font-size:16px}.tutorial-panel>small{font-size:12px}.stance{bottom:32px;right:18px}.result-card h2{font-size:43px}.result-card{padding:22px}.result-kanji{font-size:55px}}
@media(pointer:coarse){.playing #touch-actions{display:flex;position:absolute;left:auto;right:14px;bottom:24px;flex-direction:column;gap:9px;align-items:stretch;pointer-events:none}#touch-actions button{pointer-events:auto;touch-action:none;background:#13201ee6;border:1px solid #aa947570;color:#ddc7a4;min-width:94px;min-height:68px;padding:8px 12px;font-size:14px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#touch-actions [lang=ja]{display:block;font-size:26px;line-height:1.4;pointer-events:none}.stance{left:14px;right:auto;bottom:18px;transform:none;padding:22px;margin:-22px;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.direction-pad{grid-template:repeat(3,46px)/repeat(3,46px);gap:4px}.direction-pad button{min-width:46px;min-height:46px;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.pad-center,.stance small{pointer-events:none}.stance small{margin-top:5px}.tutorial-panel{left:18px;right:18px;bottom:185px;width:auto;min-width:0;max-width:370px;padding:12px 16px}.tutorial-panel p{font-size:16px;margin:7px 0}.tutorial-heading{flex-wrap:nowrap}.tutorial-panel .text-button{position:absolute;right:15px;top:8px;font-size:12px}.tutorial-progress{margin-right:70px}.tutorial-heading>small{margin-right:75px}.control-list{display:none}.touch-help{display:block}}
@media(max-height:600px) and (min-width:701px){header{padding-top:13px}.round-display{top:13px}.intro{top:22%}.title-kanji{font-size:63px}.intro h1{font-size:44px;margin:0 0 13px}.intro p{margin-bottom:18px}.tutorial-panel{bottom:18px}.stance{bottom:18px}.combat-status{top:90px}.result-kanji{font-size:40px}.result-card h2{font-size:38px}.result-card p{margin:12px 0}.result-card{padding:15px}.control-list{margin:15px 0;gap:9px}}
@media(prefers-reduced-motion:reduce){button,.combat-status,.intro,.enemy-target i{transition:none}}

.result-card .option-hint{font-size:13px;margin:0 0 23px;color:#aebaa8}.no-indicators #enemy-target{display:none!important}.overlay{overflow-y:auto}.result-card{max-height:100dvh;overflow-y:auto}

#lives{font-size:12px;color:#d5b987;margin-top:6px;letter-spacing:1px}.records-link{margin:0 auto}#records-panel{z-index:12}#record-list{min-width:280px;margin:24px 0}#record-list>div{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:16px 0;border-bottom:1px solid #b8996633;text-align:left}#record-list span{color:#b7baa7;font-size:14px}#record-list strong{text-align:right;font-weight:400;color:#e9d3ab;font-size:19px}#record-list small{grid-column:1/-1;text-align:right;font-size:14px;overflow-wrap:anywhere}#record-name-panel{border-top:1px solid #b8996640;padding:18px 0;margin-bottom:15px}#record-name-form label{display:block;font-size:16px;color:#e3d5b9}#record-name{display:block;width:100%;background:#0a1519;border:1px solid #b8996666;color:#eee8db;padding:12px;margin:12px 0;font:16px Georgia,serif}#record-name-status{font-size:13px!important;margin:8px 0!important}#record-name-form .text-button{display:inline-block;margin:0 12px;font-size:14px}
