:root{font-family:'Courier New',monospace;color:#eee5d1;background:#10131b;--ink:#171b29;--panel:#242939;--edge:#817453;--paper:#eee5d1;--muted:#b4b0a3;--gold:#e3bd78;--rust:#b86d50;--blue:#7297c5;--green:#76b083;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;border:1px solid #756c57;background:#303548;color:var(--paper);min-height:38px;padding:9px 13px;box-shadow:inset 0 1px #ffffff0c;border-radius:2px;transition:background .1s,transform .1s}button:hover:not(:disabled){background:#454c61;border-color:var(--gold)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}button.primary{background:#b99355;color:#171b29;border-color:#edca87;font-weight:bold}button.primary:hover{background:#d8b572}button.danger{color:#ef9b7d}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid #f6d48d;outline-offset:3px}input{background:#151a28;border:1px solid #756c57;color:var(--paper);padding:12px;width:100%}h1,h2,h3,p{margin:0}h2{font-size:22px;line-height:1.3}h3{font-size:16px;line-height:1.4}p{font-size:13px;line-height:1.65}b,strong{font-weight:bold}kbd{font-size:10px;border:1px solid #b7a78366;padding:1px 4px;border-radius:2px;color:#e1c994}svg{width:22px;height:22px;flex-shrink:0}.overline,.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold);line-height:1.5}.tiny{font-size:11px;color:var(--muted);line-height:1.6}.tag{font-size:10px;color:var(--gold)}[hidden]{display:none!important}#game{position:relative;height:100dvh;max-width:1920px;margin:auto;display:flex;flex-direction:column;overflow:hidden}#hud{height:60px;flex-shrink:0;background:#181b2bec;border-bottom:3px solid #594f3d;display:flex;align-items:center;justify-content:space-between;padding:5px 20px;gap:22px;z-index:2}.identity{display:flex;align-items:center;gap:11px;min-width:190px}.identity canvas{width:45px;height:45px;image-rendering:pixelated;border:1px solid #74664c}.identity b{font-size:13px;display:block;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.identity span:not(#belt-mark){display:block;font-size:11px;color:var(--gold);margin-top:5px}#belt-mark{width:27px;height:7px;box-shadow:0 2px #0006;border-right:4px solid #bfa982;display:block}.vitals{width:180px;max-width:20vw}.vitals>span,.progression>span{font-size:10px;color:var(--muted)}.meter{height:8px;background:#080b12;border:1px solid #3b4257;margin-top:4px}.meter i{display:block;height:100%;width:100%;background:#76b083;transition:width .3s}.meter.xp{height:5px}.meter.xp i{background:#a48ac1}.progression{width:160px;max-width:18vw}#toolbar{display:flex;gap:6px}#toolbar button{font-size:11px;padding:6px 11px;min-height:32px;background:#252a3c}#world{position:relative;flex:1;min-height:0;background:#141720}#town{width:100%;height:100%;display:block;object-fit:cover;image-rendering:pixelated;touch-action:none}#town:focus-visible{outline-offset:-4px}.location{position:absolute;top:18px;left:20px;background:#171b2bcf;padding:12px 17px;border-left:3px solid var(--gold);pointer-events:none}.location b{font-size:12px;letter-spacing:2px}.location span{display:block;font-size:10px;color:#c8bca6;margin-top:5px}#objective{position:absolute;top:18px;right:20px;max-width:370px;background:#171b2bdf;padding:11px 15px;font-size:11px;line-height:1.55;border:1px solid #8674537a;border-left:3px solid #7297c5;pointer-events:none}#objective:before{content:'NEXT  ';font-weight:bold;color:var(--gold)}.world-bottom{position:absolute;bottom:0;left:0;right:0;background:#171b2be8;border-top:1px solid #81745366;padding:11px 20px;display:flex;justify-content:space-between;align-items:center;gap:10px}.world-bottom>span{font-size:10px;color:#c7bdab}.world-bottom button{font-size:12px;min-width:215px;border-color:#9b8054;background:#3a3429}#save-status{font-size:9px;color:#9ab39b!important}#scene-flash{position:absolute;top:36%;left:50%;transform:translateX(-50%);opacity:0;background:#171b2be8;border-block:1px solid #bc9d68;padding:18px 35px;font-size:19px;color:var(--gold);white-space:nowrap;pointer-events:none;transition:opacity .25s}#scene-flash.show{opacity:1}.title-screen{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(#10131b82,#121620ab 45%,#111521e6);gap:34px;text-align:center}.title-copy h1{font-size:clamp(52px,8vw,102px);letter-spacing:-5px;text-shadow:4px 4px #151823,0 0 40px #16192d;color:#f6e6c2;line-height:1.2}.title-copy h1 span{color:#ddad67}.title-copy>p{font-size:12px;letter-spacing:8px;color:#d0b38a}.title-copy .overline{font-size:9px;letter-spacing:3px}.title-menu{display:flex;flex-direction:column;gap:9px;width:285px;padding:20px;background:#171b2bde;border:1px solid #b2996e;box-shadow:5px 5px #10131b88}.title-menu button{font-size:13px;min-height:43px;text-align:left;display:flex;justify-content:space-between}.title-menu button small{font-size:10px;font-weight:normal;align-self:center;color:inherit;opacity:.8}.title-footer{position:absolute;bottom:26px;font-size:10px;color:#c9b994;letter-spacing:1px}
dialog{background:#202638;color:var(--paper);border:2px solid #b39a6b;padding:0;width:min(720px,calc(100% - 24px));max-height:88dvh;box-shadow:7px 7px #090e1977;border-radius:2px}dialog::backdrop{background:#09101a91}.panel-head{display:flex;justify-content:space-between;gap:16px;padding:19px 23px;border-bottom:1px solid #81745366;background:#191e2e}.panel-head h2{margin-top:5px}.close{font-size:23px;width:34px;min-height:32px;padding:0;align-self:flex-start}.panel-content{padding:22px 23px}.panel-content>p{color:#c8c2b4}.panel-foot{padding:13px 23px;border-top:1px solid #81745366;background:#191e2e;display:flex;align-items:center;justify-content:space-between;gap:13px}.action-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.action-row button{font-size:12px}.create-form label{display:block;color:var(--gold);font-size:10px;letter-spacing:1px;margin:17px 0 7px}.style-list{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.style-choice{text-align:left;padding:13px;min-height:140px;display:flex;flex-direction:column;gap:9px}.style-choice strong{font-size:17px}.style-choice span{font-size:10px;color:#c2bdad;line-height:1.7}.style-choice.selected{background:#3b3b45;border:2px solid var(--gold);padding:12px}.create-intro{display:flex;gap:20px;align-items:center}.portrait{width:80px;height:80px;flex-shrink:0;image-rendering:pixelated;background:#302e40;border:2px solid #a79065}.dialogue{display:grid;grid-template-columns:100px 1fr;gap:19px;align-items:start}.dialogue .portrait{width:95px;height:95px}.dialogue p{font-size:14px;color:#e4dbc7;line-height:1.75}.dialogue .tag{display:block;margin-bottom:9px}.tell,.help-text{padding:12px 15px;background:#151c2b;border-left:3px solid #a38b5e;margin-top:17px;font-size:12px;line-height:1.65;color:#cac3b2}.help-text strong{color:var(--gold)}.training-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:20px}.training-card{border:1px solid #81745388;padding:16px;background:#282e41}.training-card h3{margin:8px 0}.training-card p{font-size:11px;color:#c2bcaf;min-height:44px}.training-card strong{font-size:23px;display:block;margin-top:15px;color:var(--gold)}.training-card button{font-size:11px;width:100%;margin-top:12px}.section-rule{margin-top:24px;padding-top:20px;border-top:1px solid #81745366}.kit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:18px}.kit-card{text-align:left;padding:13px;min-height:84px}.kit-card strong{font-size:13px;display:block}.kit-card p{font-size:10px;color:#bcb7aa;margin-top:6px;line-height:1.6}.kit-card .tag{float:right;font-size:8px;margin-left:8px}.kit-card.equipped{border:2px solid var(--gold);padding:12px;background:#3b3b45}.kit-card.basic{background:#222a39}.settings-list{display:flex;gap:9px;flex-wrap:wrap;margin:19px 0}.settings-list button{font-size:11px}.opponents{display:flex;gap:6px;flex-wrap:wrap;margin-top:15px}.chip{padding:6px 9px;border:1px solid #81745388;background:#2e3447;font-size:10px}.chip.done{border-color:#718f72;color:#b3d3b0}.bracket{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.bracket-stage{border:1px solid #756c57;background:#282e41;padding:15px}.bracket-stage.active{border:2px solid var(--gold);padding:14px;background:#393942}.bracket-stage h3{margin:9px 0}.bracket-stage p{font-size:10px;color:#bfb6a6}.bracket-tree{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:13px}.bracket-tree span{background:#141b28;padding:8px;font-size:9px;line-height:1.6;border:1px solid #5b5e6b}.promotion{text-align:center;padding:25px;background:radial-gradient(ellipse at center,#66513b40,#1b2234 80%)}.promotion h2{font-size:34px;margin:12px 0;color:var(--gold)}.promotion canvas{width:100px;height:100px;margin:15px;border-color:var(--gold)}.belt-award{display:block;width:160px;height:17px;margin:23px auto;box-shadow:0 5px #090f1b99;border-right:20px solid #272834;position:relative}.belt-award:after{content:'';position:absolute;width:17px;height:40px;background:inherit;top:0;left:105px;border-bottom:3px solid #e1d0a177;transform:rotate(-12deg)}.promotion p{max-width:480px;margin:15px auto;color:#dfd3be}.promotion button{margin-top:20px}.legend{font-size:10px;color:#b7b1a1;line-height:1.7}
#battle{flex:1;min-height:0;background:#141924;display:grid;grid-template-columns:minmax(0,1fr) 365px}.combat-main{min-width:0;display:flex;flex-direction:column;position:relative;background:#1a1f2c}.combat-score{display:grid;grid-template-columns:1fr 88px 1fr;align-items:center;gap:14px;padding:12px 18px;background:#191e2eee;border-bottom:1px solid #81745366}.combat-person{display:flex;gap:10px;align-items:center}.combat-person .portrait{width:52px;height:52px;border-width:1px}.combat-person h3{font-size:14px}.combat-person .tiny{font-size:10px}.combat-person.opponent{flex-direction:row-reverse;text-align:right}.combat-person .meter{width:160px;max-width:20vw}.scoreboard{font-size:27px;text-align:center;color:var(--gold);font-weight:bold;letter-spacing:2px}.scoreboard small{display:block;font-size:8px;letter-spacing:2px;color:#bcb6a8;margin-top:4px;font-weight:normal}.arena-stage{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;background:#141922 url('assets/dojo.png') center/cover no-repeat}.arena-stage.rival{background-image:url('assets/ash-house.png')}.arena-stage:before{content:'';position:absolute;inset:0;background:#14172399}.arena-stage canvas{position:relative;width:100%;max-height:100%;aspect-ratio:640/360;image-rendering:pixelated;object-fit:contain;z-index:1}.position-label{position:absolute;top:13px;left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:2;pointer-events:none}.position-label strong{font-size:19px;background:#151c2beb;border:1px solid #c4a373;padding:7px 11px;color:#f1d39c}.position-label span{font-size:10px;line-height:1.5;padding:8px;background:#151c2be8;border:1px solid #81745377;text-align:right}.arena-feedback{position:absolute;bottom:18px;left:10%;right:10%;text-align:center;background:#1b2335e8;border:1px solid #a99469;padding:10px 14px;z-index:3;font-size:12px;color:#f6d796;line-height:1.5}.arena-feedback.pulse{animation:feedback .55s ease-out}.arena-stage.impact canvas{animation:impact .28s ease-out}.combat-summary{min-height:67px;background:#191f2f;border-top:1px solid #81745366;padding:13px 18px}.combat-summary p{font-size:11px;color:#c4bdaf;line-height:1.6}.combat-palette{min-height:0;padding:15px 16px;display:flex;flex-direction:column;border-left:2px solid #766244;background:#202738}.combat-palette .eyebrow{font-size:9px;letter-spacing:1px}.round-count{font-size:11px;color:#e6d2ae;margin-bottom:12px}.intent{padding:11px 12px;background:#151c2b;border-left:3px solid #bc9160;font-size:11px;line-height:1.6;color:#cec5b2}.intent strong{color:#e3bd78}.move-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px;overflow:auto;padding:1px 1px 6px;flex:1;align-content:start}.move{display:flex;flex-direction:column;text-align:left;padding:10px;gap:7px;min-height:119px;background:#30394d;border-color:#687083}.move strong{font-size:12px;line-height:1.4;display:flex;align-items:center;gap:6px}.move svg{width:19px;height:19px;color:#d6b67f}.move p{font-size:11px;line-height:1.5;color:#c7c3b7}.move-cost{display:flex;justify-content:space-between;gap:6px;font-size:10px;color:#b0c6dc;margin-top:auto;line-height:1.5}.move.submission{border-color:#b38668;background:#44363e}.combat-notes{margin-top:11px;display:flex;flex-direction:column;gap:7px}.combat-notes .tiny{font-size:10px}.combat-notes button{font-size:10px;min-height:29px;padding:6px}.result-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}.result-art{width:100%;image-rendering:pixelated;background:#161d2d}.result-copy h2{font-size:27px;margin:10px 0;color:#e6c487}.result-copy blockquote{font-size:14px;line-height:1.65;color:#d9c8a5;margin:15px 0}.result-copy p{font-size:12px;color:#ccc2b0}.result-copy button{font-size:11px;margin-top:17px}.timing-wrap{text-align:center;padding:29px}.timing-wrap p{margin:12px 0;color:#c8c1b2}.timing-bar{height:33px;background:#0e1420;border:1px solid #857453;position:relative;margin:25px 0;overflow:hidden}.timing-zone{position:absolute;left:39%;width:22%;height:100%;background:#cbb175}.timing-pointer{position:absolute;left:0;width:4px;height:100%;background:#f3edd9}.ending{padding:0 0 25px;text-align:center}.ending canvas{width:100%;height:auto;image-rendering:pixelated;display:block}.ending h2{font-size:28px;margin:22px 20px 12px;color:var(--gold)}.ending p{max-width:570px;margin:12px auto;padding:0 25px;color:#d6ccb9;font-size:12px}.ending blockquote{font-size:17px;line-height:1.6;margin:23px;color:#f0d69d}.ending button{margin:17px 5px 0;font-size:11px}.credits{padding-top:18px;margin-top:20px;border-top:1px solid #81745355;color:#afa694!important;font-size:10px!important}.combat-log{display:flex;flex-direction:column;gap:5px;max-height:120px;overflow:auto;margin-top:12px}.combat-log p{font-size:10px;color:#bcb5a7}#toast{position:fixed;bottom:72px;left:50%;transform:translate(-50%,10px);z-index:10;background:#111927f2;border:1px solid #c6a46b;padding:11px 17px;font-size:11px;color:#f1d7a4;max-width:90%;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}#toast.show{opacity:1;transform:translate(-50%,0)}@keyframes impact{0%{transform:translateX(-3px)}35%{transform:translateX(3px)}100%{transform:translateX(0)}}@keyframes feedback{0%{transform:translateY(7px);opacity:.4}100%{transform:translateY(0);opacity:1}}
@media(max-width:950px){#hud{padding:6px 10px;gap:10px}.identity{min-width:150px}.progression{display:none}#battle{grid-template-columns:minmax(0,1fr) 310px}.combat-score{gap:7px;padding:10px}.combat-person .portrait{width:40px;height:40px}.combat-person h3{font-size:11px}.combat-person .meter{width:105px}.combat-person .tiny{font-size:8px}.scoreboard{font-size:23px}.position-label strong{font-size:15px}.position-label span{font-size:9px}.combat-palette{padding:12px}.move{padding:8px}.move strong{font-size:11px}.move svg{width:16px;height:16px}#objective{max-width:300px;font-size:10px}.location{padding:10px 12px}.world-bottom>span:first-child{max-width:180px;line-height:1.6}}
@media(max-width:650px){body{overflow:auto}#game{height:100dvh;min-height:560px}#hud{height:54px}.identity{gap:7px;min-width:125px}.identity canvas{width:34px;height:34px}.identity b{font-size:10px;max-width:90px}.identity span:not(#belt-mark){font-size:9px}#belt-mark{display:none}.vitals{max-width:20vw;width:85px}.vitals>span{font-size:7px}#toolbar{gap:3px}#toolbar button{font-size:9px;padding:5px 7px;min-height:29px}#toolbar kbd{display:none}.location{top:11px;left:10px;padding:8px 10px}.location b{font-size:9px;letter-spacing:1px}.location span{font-size:8px}#objective{top:70px;left:10px;right:auto;max-width:230px;font-size:9px;padding:7px 10px;background:#171b2bda}.world-bottom{padding:9px 10px}.world-bottom>span:first-child{display:none}#save-status{font-size:7px!important}.world-bottom button{font-size:10px;min-width:175px}#town{object-fit:cover}.title-copy h1{font-size:57px;letter-spacing:-3px}.title-copy>p{font-size:10px;letter-spacing:5px}.title-copy .overline{font-size:7px;letter-spacing:1.4px}.title-footer{font-size:8px;padding:0 15px}.title-menu{width:260px}.style-list{grid-template-columns:1fr}.style-choice{min-height:72px;padding:11px;gap:5px}.style-choice.selected{padding:10px}.style-choice strong{font-size:14px}.panel-head{padding:16px 18px}.panel-head h2{font-size:19px}.panel-content{padding:18px}.panel-foot{padding:12px 18px}.dialogue{grid-template-columns:70px 1fr;gap:13px}.dialogue .portrait{width:68px;height:68px}.dialogue p{font-size:12px}.training-grid{gap:7px}.training-card{padding:10px}.training-card h3{font-size:13px}.training-card p{font-size:9px}.training-card button{font-size:9px;padding:7px 4px}.kit-grid{grid-template-columns:1fr}.bracket{gap:6px}.bracket-stage{padding:10px}.bracket-stage.active{padding:9px}.bracket-stage h3{font-size:12px}.bracket-stage .eyebrow{font-size:8px;letter-spacing:1px}.bracket-tree{grid-template-columns:repeat(2,1fr)}#battle{display:flex;flex-direction:column;overflow:auto}.combat-main{height:390px;flex-shrink:0}.combat-score{grid-template-columns:1fr 65px 1fr;padding:9px 10px;gap:6px}.combat-person{gap:6px}.combat-person .portrait{width:35px;height:35px}.combat-person h3{font-size:10px}.combat-person .tiny{font-size:7px}.combat-person .meter{width:89px;max-width:23vw}.scoreboard{font-size:22px}.position-label{top:8px;left:10px;right:10px}.position-label strong{font-size:13px;padding:6px 8px}.position-label span{font-size:8px;padding:5px}.arena-feedback{bottom:10px;left:7%;right:7%;font-size:10px;padding:8px 10px}.combat-summary{min-height:44px;padding:8px 11px}.combat-summary p{font-size:8px}.combat-palette{border-left:0;border-top:2px solid #766244;flex:1;overflow:visible;padding:12px}.move-grid{overflow:visible;flex:none;grid-template-columns:repeat(2,1fr);gap:7px}.move{min-height:108px}.move strong{font-size:11px}.move p{font-size:11px}.round-count{margin-bottom:9px}.intent{font-size:10px}.result-layout{grid-template-columns:1fr;gap:10px}.result-art{max-height:220px;object-fit:cover}.result-copy h2{font-size:24px}.promotion h2{font-size:28px}.promotion p{font-size:12px}.ending h2{font-size:25px}.ending blockquote{font-size:14px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

#side-objective{position:absolute;bottom:75px;left:20px;max-width:570px;background:#172738ec;border-left:3px solid #95bec9;padding:9px 13px;font-size:11px;line-height:1.6;pointer-events:none}#side-objective:before{content:'OPTIONAL · ';color:#a5d1da}.story-links{border-top:1px solid #81745366;margin-top:20px;padding-top:15px}.story-links button{font-size:11px}.story-reader{display:grid;grid-template-columns:80px 1fr;gap:22px}.story-copy{font-size:14px;line-height:1.9;margin:17px 0 23px;max-width:600px}.quest-complete,.practice-goal,.practice-result{padding:10px 13px;background:#203633;border-left:3px solid #82b29a;font-size:11px;line-height:1.65;color:#cfdfcd;margin:13px 0}.practice-goal{margin:0 0 11px;font-size:10px}.quest-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}.quest-summary p{padding:13px;background:#182637;font-size:11px}.ending-echo{color:#e5c784!important}@media(max-width:650px){#side-objective{left:10px;right:10px;bottom:64px;font-size:9px;padding:7px 10px}.story-reader{grid-template-columns:1fr;gap:10px}.story-reader .portrait{width:65px;height:65px}.story-copy{font-size:12px;line-height:1.8}.quest-summary{grid-template-columns:1fr}.story-links button{font-size:10px}}

.world-assistance{position:absolute;left:20px;bottom:75px;display:grid;gap:8px;max-width:570px;pointer-events:none}.world-assistance #side-objective{position:static;max-width:none}#navigation-guide{display:flex;align-items:center;gap:14px;background:#202431ee;border-left:3px solid #ecc773;padding:10px 13px;color:#f0dfb9}#navigation-guide[hidden]{display:none}#navigation-guide b{display:block;font-size:9px;letter-spacing:1px;color:#efc878;margin-bottom:5px}#navigation-message{display:block;font-size:11px;line-height:1.6}#navigation-guide button{pointer-events:auto;font-size:10px;flex-shrink:0}.settings-list label{display:flex;align-items:center;gap:10px;font-size:11px}.settings-list select{max-width:100%;font:inherit;color:#eed9b0;background:#1d2635;border:1px solid #8e7954;padding:10px}@media(max-width:650px){.world-assistance{left:10px;right:10px;bottom:64px}.world-assistance #side-objective{font-size:9px;padding:7px 10px}#navigation-guide{padding:8px 10px;gap:8px}#navigation-message{font-size:9px}#navigation-guide button{font-size:9px;padding:7px}.settings-list label{flex-wrap:wrap}}
