@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800;900&display=swap');
:root{font-family:'Noto Sans JP',sans-serif;color:#183450;background:#f8fafc;--ink:#183450;--muted:#65788b;--line:#e2e9ef;--gold:#ffca4b;--blue:#2863ba;--green:#1c8066}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:disabled{cursor:default;opacity:.58}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #377af1;outline-offset:4px}button{border:0}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;line-height:1.5;margin-bottom:8px}h2{font-size:21px;line-height:1.5;margin-bottom:10px}h3{font-size:17px;margin-bottom:8px}p{line-height:1.8}.muted{color:var(--muted);font-size:14px}.small{font-size:12px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.7px}.shell{max-width:1440px;margin:auto;display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100dvh}.rail{position:sticky;top:0;height:100dvh;border-right:1px solid var(--line);padding:32px 22px;display:flex;flex-direction:column;background:#fff}.brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:21px;letter-spacing:-1px}.brandmark{display:grid;place-items:center;width:37px;height:39px;border-radius:12px;background:var(--ink);color:var(--gold);font-size:27px;transform:rotate(-7deg)}.brand small{display:block;font-size:10px;letter-spacing:2px;color:var(--muted);margin-top:3px}.navigation{display:flex;flex-direction:column;gap:9px;margin-top:50px}.nav-item{display:flex;align-items:center;gap:14px;font-weight:700;font-size:15px;min-height:55px;padding:12px 17px;border:2px solid transparent;border-radius:14px}.nav-item.active{color:#235cad;border-color:#c5dbf6;background:#edf5ff}.icon{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.rail-foot{margin-top:auto;color:var(--muted);font-size:12px;line-height:1.8}.rail-foot a{display:block;padding:10px 0;font-size:14px}.workspace{min-width:0}.topbar{height:94px;border-bottom:1px solid var(--line);padding:0 42px;display:flex;justify-content:space-between;align-items:center;gap:16px;background:#ffffffcc}.course-chip{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:700}.flag{width:29px;height:22px;background:#fff;border:1px solid #dce3e9;border-radius:5px;display:grid;place-items:center;color:#dc4d56;font-size:19px}.top-stats{display:flex;align-items:center;gap:23px;font-size:14px;font-weight:800}.stat-inline{display:flex;align-items:center;gap:6px}.stat-inline.gold{color:#a06b03}.stat-inline.blue{color:#2863ba}.avatar{width:36px;height:36px;border-radius:50%;background:#eaf1fa;display:grid;place-items:center;border:1px solid #d8e5f3}.content{padding:34px 40px 52px;max-width:1160px;margin:auto}.page-top{margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;gap:12px}.page-top p{margin-bottom:0}.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:30px}.panel{background:white;border:1px solid var(--line);border-radius:20px;padding:22px}.panel+.panel{margin-top:20px}.hero{position:relative;min-height:210px;border-radius:22px;overflow:hidden;background:#fff1c9;border:1px solid #ecd59c;padding:26px;margin-bottom:25px}.hero h2{font-size:26px;line-height:1.5;max-width:68%;margin:10px 0 9px}.hero p{max-width:63%;font-size:14px;color:#705f3d;margin-bottom:16px}.hero .mini-actor{position:absolute;width:180px;height:180px;right:-14px;bottom:24px;transform:rotate(-7deg)}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:12px 20px;border-radius:12px;background:var(--ink);color:#fff;font-weight:800;font-size:14px;border:1px solid #102941;box-shadow:0 3px 0 #0d263d}.button.primary{background:#ffca4b;color:#45350e;border-color:#e8b139;box-shadow:0 3px 0 #d69d25}.button.outline{background:white;color:var(--ink);border-color:#d9e3eb;box-shadow:0 3px 0 #e5ecf2}.button.blue{background:#2c68c1;border-color:#1c56ad;box-shadow:0 3px 0 #164785}.button:active{transform:translateY(2px);box-shadow:none}.button.full{width:100%}.text-button{background:none;color:#2966b3;font-size:14px;font-weight:700;padding:10px 0;display:inline-flex;align-items:center;gap:6px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:26px 0 14px}.section-head h2{margin:0;font-size:18px}.unit{border:1px solid var(--line);border-radius:18px;background:#fff;margin-bottom:15px;overflow:hidden}.unit-head{padding:18px 22px;display:flex;gap:14px;align-items:center;background:#edf5ff;border-bottom:1px solid #dceafa}.unit-head .unit-number{font-size:26px;font-weight:900;color:#366ab4}.unit-head h3{margin:0}.unit-head p{margin:3px 0 0;font-size:12px;color:var(--muted)}.unit-progress{margin-left:auto;font-size:13px;font-weight:700;white-space:nowrap}.path{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:25px 24px}.path-step{display:flex;align-items:center;gap:13px;flex:1;position:relative}.node{width:55px;height:55px;flex-shrink:0;border-radius:18px;display:grid;place-items:center;background:#ffcf57;border:2px solid #eab43b;box-shadow:0 5px 0 #dba12a;color:#664909}.node.done{background:#ddf2e9;border-color:#9cd1bc;box-shadow:0 4px 0 #92c7b1;color:#19765b}.node.locked{background:#f0f3f6;border-color:#dfe5ea;box-shadow:0 4px 0 #d8e0e7;color:#98a6b3}.step-text{font-size:14px;font-weight:800}.step-text small{display:block;color:var(--muted);font-size:12px;font-weight:500;margin-top:4px}.unit.locked .unit-head{background:#f5f7fa}.unit.locked .unit-number{color:#9aaaba}.unit.locked{color:#73889b}.side-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.side-heading h2{font-size:17px;margin:0}.quest{margin-top:23px}.quest-top{font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.track{height:8px;background:#edf1f5;border-radius:9px;overflow:hidden}.track>span{display:block;height:100%;background:var(--gold);border-radius:9px;width:var(--progress,0%)}.track.green>span{background:#48aa8c}.quest .small{margin-top:7px;color:var(--muted)}.daily-progress{font-size:34px;font-weight:900;margin:15px 0 8px}.daily-progress small{font-size:14px;font-weight:500;color:var(--muted)}.tip{border-left:3px solid var(--gold);padding-left:12px;font-size:14px;line-height:1.8;color:var(--muted);margin-top:18px}.review-call{display:flex;gap:14px;align-items:center;padding:19px;border:1px solid #d1e6dc;border-radius:16px;background:#f0faf5}.review-call .icon{color:#1d8065;width:30px;height:30px}.review-call p{font-size:13px;color:var(--muted);margin:5px 0 0}.review-call .text-button{margin-left:auto;white-space:nowrap}.mobile-brand{display:none}.tag{display:inline-flex;border-radius:7px;padding:5px 8px;font-size:12px;font-weight:700;background:#edf4fb;color:#386394}.row{display:flex;align-items:center;gap:12px}.spacer{flex:1}.notice{font-size:12px;color:var(--muted);line-height:1.8;margin-top:26px}.mini-actor{position:relative;width:115px;height:115px;flex-shrink:0}.mini-actor .sumo-sprite{width:100%;height:100%}.bottom-nav{display:none}#toast{position:fixed;z-index:100;bottom:30px;left:50%;transform:translateX(-50%);background:#183450;color:#fff;border-radius:12px;padding:15px 22px;max-width:90vw;font-size:14px;box-shadow:0 8px 35px #132b4b33}dialog{border:1px solid var(--line);border-radius:24px;padding:28px;width:min(460px,calc(100% - 32px));color:var(--ink);max-height:90dvh;overflow:auto}dialog::backdrop{background:#10294288;backdrop-filter:blur(3px)}.close-button{width:36px;height:36px;border-radius:50%;background:#f1f5f8;display:grid;place-items:center;margin-left:auto}.modal-head{display:flex;align-items:center;margin-bottom:20px}.modal-head h2{margin:0}label.field{display:block;font-size:14px;font-weight:700;margin:18px 0}label.field select,label.field input{display:block;width:100%;border:1px solid #c9d6e2;background:#fff;color:var(--ink);border-radius:10px;padding:12px;margin-top:8px}.empty{text-align:center;padding:35px 22px}.empty .icon{width:46px;height:46px;color:#7c97b5;margin-bottom:14px}.empty p{font-size:14px;color:var(--muted)}
@media(min-width:1300px){.content{padding:38px 52px}.home-grid{gap:36px;grid-template-columns:minmax(0,1fr) 298px}}@media(max-width:1120px){.shell{grid-template-columns:190px 1fr}.rail{padding:28px 15px}.brand{font-size:18px}.content{padding:28px}.home-grid{grid-template-columns:minmax(0,1fr) 250px;gap:20px}.topbar{padding:0 28px}.hero{padding:22px}.path{padding:22px 18px;gap:10px}.path-step{display:block;text-align:center}.node{margin:0 auto 12px}}@media(max-width:940px){.home-grid{grid-template-columns:1fr}.home-side{display:grid;grid-template-columns:1fr 1fr;gap:18px}.home-side .panel+.panel{margin-top:0}.home-side .panel:last-child{grid-column:1/-1}.rail{padding:26px 14px}.hero .mini-actor{right:6px}.hero h2{max-width:65%}}@media(max-width:700px){.shell{display:block}.rail{display:none}.topbar{height:72px;padding:0 20px;position:sticky;top:0;z-index:12;background:#fffffff5}.course-chip{font-size:12px}.top-stats{gap:14px;font-size:13px}.top-stats .avatar{display:none}.content{padding:24px 20px 104px}.page-top{margin-bottom:20px}h1{font-size:25px}.page-top p{font-size:13px}.hero{padding:22px;min-height:215px}.hero h2{font-size:24px;max-width:65%}.hero .mini-actor{right:-17px;bottom:39px;width:162px;height:162px}.hero p{max-width:67%;font-size:13px}.hero .button{position:relative;z-index:2}.home-grid{gap:24px}.path-step{display:block;text-align:center}.path{padding:23px 18px}.step-text{font-size:13px}.home-side{display:block}.home-side .panel+.panel{margin-top:17px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fffffffa;border-top:1px solid var(--line);justify-content:space-around;z-index:20;padding:8px 6px calc(9px + env(safe-area-inset-bottom))}.bottom-nav .nav-item{flex:1;padding:4px 2px;display:flex;flex-direction:column;gap:5px;font-size:11px;border:0;min-height:48px;border-radius:10px}.bottom-nav .nav-item.active{background:#edf5ff}.bottom-nav .icon{width:24px;height:24px}.button{font-size:14px}.mobile-brand{display:block}.review-call{padding:16px;gap:10px}.review-call strong{font-size:14px}.review-call .text-button{font-size:13px}.unit-head{padding:17px}.unit-progress{font-size:12px}.panel{padding:20px}#toast{bottom:95px}.notice{font-size:12px}.topbar .course-chip{gap:7px}}@media(max-width:359px){.content{padding-left:14px;padding-right:14px}.topbar{padding:0 14px}.top-stats{gap:10px}.topbar .stat-inline{font-size:12px}.hero{padding:18px}.hero h2{font-size:21px}.hero .mini-actor{right:-29px;width:150px;height:150px}.unit-head h3{font-size:15px}.path{padding:22px 12px}.step-text{font-size:12px}.node{width:50px;height:50px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Learning, review, collection and progress surfaces. */
.page-top .text-button{white-space:nowrap}.book-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.search{flex:1;min-width:170px;border:1px solid #cedbe6;border-radius:12px;background:white;padding:13px 16px;color:var(--ink)}.filter{border:1px solid #cedbe6;border-radius:12px;background:white;padding:10px;color:var(--ink);max-width:100%}.word-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.word-row{width:100%;background:white;border:1px solid var(--line);border-radius:15px;display:flex;align-items:center;gap:14px;padding:18px;text-align:left}.word-row:hover{border-color:#98b8da}.word-row ruby{font-size:20px;font-weight:800}.word-row rt{font-size:10px;color:var(--muted);font-weight:500}.word-row .meaning{font-size:14px;color:var(--muted);margin-top:7px}.word-row .tag{margin-left:auto;white-space:nowrap}.green-tag{background:#e7f4ed;color:#27735d}.amber-tag{background:#fff2d7;color:#956411}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:24px 0}.stat-card{border:1px solid var(--line);background:white;border-radius:18px;padding:21px}.stat-card strong{font-size:29px;display:block;margin-bottom:7px}.stat-card span{font-size:13px;color:var(--muted)}.review-hero{background:#e6f5ef;border-color:#b9dcd0}.review-hero h2{max-width:100%}.review-hero p{max-width:100%}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.two-columns>.panel+.panel{margin-top:0}.calendar{display:flex;justify-content:space-between;gap:8px;margin:24px 0 8px}.day{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.day b{display:grid;place-items:center;border-radius:50%;width:37px;height:37px;background:#edf2f7;color:#71869a}.day.done b{background:#ffcf57;color:#6c4d04}.day.today b{outline:2px solid #587693;outline-offset:3px}.history-row{padding:16px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.history-row:last-child{border:0}.history-row strong{font-size:15px}.history-row p{font-size:12px;color:var(--muted);margin:5px 0 0}.history-row .tag{margin-left:auto}.dojo-hero{display:flex;align-items:center;gap:25px;background:#fff2d3;border:1px solid #eed7a6;border-radius:22px;padding:25px;margin-bottom:25px}.dojo-hero .mini-actor{width:170px;height:180px}.dojo-hero h2{font-size:29px}.dojo-hero p{font-size:14px;color:#806a40;margin-bottom:12px}.badges{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.badge-card{border:1px solid var(--line);background:#fff;border-radius:18px;padding:22px;text-align:center}.badge-mark{width:62px;height:62px;display:grid;place-items:center;background:#fff0bb;color:#936817;border:2px solid #eed494;border-radius:50%;margin:0 auto 18px}.badge-mark .icon{width:34px;height:34px}.badge-card.locked .badge-mark{background:#f0f3f5;border-color:#e0e6eb;color:#9aaab9}.badge-card p{font-size:12px;color:var(--muted);margin-bottom:18px}.badge-card .button{min-height:41px;padding:8px 15px;font-size:13px}.settings-list{max-width:640px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:22px 0}.setting-row:first-child{padding-top:0}.setting-row strong{font-size:15px}.setting-row p{font-size:13px;color:var(--muted);margin:6px 0 0}.setting-row select{border:1px solid #cddae5;border-radius:10px;padding:10px;background:white;color:var(--ink);max-width:180px}.setting-row input[type=checkbox]{width:23px;height:23px;accent-color:var(--blue)}.lesson-wrap{max-width:610px;margin:0 auto}.lesson-top{display:flex;align-items:center;gap:18px;margin-bottom:28px}.lesson-top .track{flex:1}.lesson-top .close-button{margin:0;flex-shrink:0}.lesson-top span{font-size:14px;font-weight:700}.flashcard{border:1px solid #d3e1ee;border-bottom:5px solid #d3e1ee;border-radius:23px;background:#fff;text-align:center;padding:32px 26px;margin:20px 0}.flashcard .category{font-size:12px;color:var(--muted);letter-spacing:2px;font-weight:700}.flashcard ruby{font-size:48px;font-weight:800;line-height:1.9;display:block;margin-top:26px}.flashcard rt{font-size:16px;font-weight:500;color:var(--muted);letter-spacing:3px}.flashcard .meaning{font-size:26px;font-weight:700;color:#2c65a6;margin:13px 0 17px}.flashcard .example{font-size:16px;color:#607488;margin:0 0 18px}.audio-button{border:1px solid #d3e1ee;color:#3167ab;background:#edf5ff;padding:11px 17px;border-radius:12px;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700}.choices{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:25px}.choice{border:2px solid #d6e1eb;border-radius:14px;background:#fff;min-height:74px;font-size:17px;font-weight:700;padding:14px;box-shadow:0 3px 0 #e2e9f0;overflow-wrap:anywhere}.choice.right{background:#e9f7ef;border-color:#6fb79c;color:#1b7057}.choice.wrong{background:#fff0e9;border-color:#da9b7d;color:#a04e29}.lesson-feedback{padding:18px;border-radius:14px;margin:22px 0;line-height:1.8;font-size:15px;background:#eef6ff;color:#38628b}.lesson-feedback.success{background:#e6f5ec;color:#226e52}.lesson-bottom{text-align:center;font-size:13px;color:var(--muted);margin-top:22px}.finish-card{padding:35px;text-align:center}.finish-card .mini-actor{width:180px;height:180px;margin:0 auto 24px}.finish-card h1{font-size:28px}.finish-card p{font-size:15px;color:var(--muted)}.finish-actions{display:flex;gap:12px;margin-top:25px}.finish-actions>*{flex:1}.battle-layout{display:grid;grid-template-columns:minmax(0,460px) minmax(220px,1fr);gap:28px;align-items:start}.battle-frame{width:100%;border:1px solid var(--line);border-radius:24px;background:white;min-height:820px}.battle-sidebar .panel{margin-bottom:18px}.battle-sidebar ol{padding-left:22px;margin-bottom:0;color:var(--muted);font-size:14px;line-height:2}.in-match .navigation a,.in-match .bottom-nav a{pointer-events:none;opacity:.4}.in-match .topbar a{pointer-events:none}.in-match .rail-foot a{pointer-events:none}.in-match .page-top .text-button{display:none}.progress-row{display:flex;justify-content:space-between;gap:15px;font-size:14px;margin:20px 0 10px}.modal-word{text-align:center;margin:30px 0}.modal-word ruby{font-size:38px;font-weight:800}.modal-word rt{font-size:14px;color:var(--muted)}.modal-word .meaning{font-size:24px;color:var(--blue);margin:24px 0 15px}.modal-word p{font-size:15px;color:var(--muted)}.storage-warning{padding:12px 20px;background:#fff0d5;color:#755526;font-size:14px}.unit-summary{padding:16px 20px;font-size:14px;color:var(--muted)}.spec-link{margin-left:auto}.danger{color:#a84734}.onboard-call{display:flex;align-items:center;gap:12px;background:#edf5ff;border:1px solid #d0e2fa;padding:14px 18px;border-radius:14px;margin-bottom:22px;font-size:14px}.onboard-call .text-button{margin-left:auto;white-space:nowrap}.reduced *, .reduced *::before,.reduced *::after{animation:none!important;transition:none!important}
@media(max-width:1120px){.battle-layout{grid-template-columns:minmax(0,440px)}.battle-sidebar{display:none}}@media(max-width:700px){.word-list,.two-columns{grid-template-columns:1fr}.stats-grid{gap:8px}.stat-card{padding:16px 12px}.stat-card strong{font-size:24px}.stat-card span{font-size:12px}.dojo-hero{gap:6px;padding:18px}.dojo-hero .mini-actor{width:138px;height:158px}.dojo-hero h2{font-size:25px}.badges{gap:12px}.badge-card{padding:20px 13px}.badge-card h3{font-size:14px}.badge-card p{min-height:37px}.setting-row{gap:10px}.setting-row select{max-width:152px}.battle-content{padding:18px 12px 96px}.battle-content .page-top{padding:0 7px}.battle-layout{display:block}.battle-frame{border-radius:18px;min-height:820px}.flashcard{padding:26px 20px}.flashcard ruby{font-size:43px}.choices{gap:12px}.choice{font-size:16px;min-height:70px}.finish-card{padding:25px 18px}.finish-actions{flex-direction:column}.lesson-top{gap:12px}.onboard-call{font-size:13px;padding:12px}.onboard-call .icon{display:none}.calendar{gap:4px}.day b{width:34px;height:34px}}
/* The sumo village: the world is the navigation, not a dashboard. */
:root{color:#49341f;background:#f6ebd6;--ink:#49341f;--muted:#86725a;--line:#e0cfaf;--gold:#ffc548;--blue:#bd3b2f;--green:#427a57}body{background:#f6ebd6}.game-shell{min-height:100dvh;padding-bottom:110px;background:radial-gradient(ellipse at 50% 10%,#fff8e7,#f6ebd6 75%)}.game-header{height:83px;display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc((100vw - 1300px)/2));background:#fff9e9;border-bottom:3px solid #d0b182;box-shadow:0 3px 10px #402a2112;position:relative;z-index:10;gap:16px}.game-brand{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:900;letter-spacing:1px}.game-brand .brandmark{background:#c83d2f;color:#fff7d7;border:2px solid #9b2e25;box-shadow:0 3px 0 #8e2c22;border-radius:10px;width:43px;height:44px;font-size:28px}.game-brand small{font-size:10px;letter-spacing:2px;display:block;color:#957b56;margin-top:3px}.game-hud{display:flex;align-items:center;gap:14px}.hud-pill{display:flex;gap:7px;align-items:center;padding:9px 15px;border:2px solid #e2caa0;background:#fff4d9;border-radius:13px;font-weight:900;color:#b75526;box-shadow:0 3px 0 #ead9bb;font-size:18px}.hud-pill small{font-size:11px}.hud-pill.gold{color:#9e6c10}.hud-settings{width:42px;height:42px;display:grid;place-items:center;background:#efe0c3;border:2px solid #d7bf97;border-radius:13px}.home-content{max-width:none}.world{height:660px;position:relative;background:#67b7ee url('sumo-village.webp') center 56%/cover no-repeat;isolation:isolate;overflow:hidden;border-bottom:6px solid #ac713b}.world::after{content:'';position:absolute;inset:auto 0 0;height:180px;background:linear-gradient(transparent,#5b391954);z-index:-1}.world-topline{position:absolute;left:25px;right:25px;top:20px;display:flex;align-items:center;justify-content:space-between}.world-location{background:#25494edb;border:1px solid #b8ded485;color:#fffbea;font-size:12px;font-weight:700;padding:8px 13px;border-radius:7px;letter-spacing:1px}.world-settings{display:none}.world-heading{position:absolute;top:42px;left:50%;transform:translateX(-50%);text-align:center;width:600px;max-width:100%;color:#fffce9}.festival-label{display:inline-block;font-size:13px;font-weight:800;letter-spacing:2px;background:#a9322e;padding:6px 20px;border-radius:4px;box-shadow:0 3px 0 #742d22;transform:rotate(-2deg)}.world-heading h1{font-size:72px;font-weight:900;letter-spacing:2px;line-height:1.35;margin:12px 0 2px;color:#fff5cb;-webkit-text-stroke:5px #5d3323;paint-order:stroke fill;text-shadow:0 6px 0 #5c2e22,0 9px 0 #c78b3e,0 13px 20px #2f536770}.world-heading h1 span{color:#ffd04a}.world-heading p{font-size:14px;color:white;font-weight:800;letter-spacing:2px;text-shadow:0 2px 4px #273e47,0 1px 2px #273e47}.world-rank{position:absolute;top:177px;left:max(32px,calc((100vw - 1180px)/2));width:163px;background:#fff5dced;border:3px solid #a17341;border-radius:9px;box-shadow:0 6px 0 #70513455,0 12px 30px #3c291a33;text-align:center;padding:20px 15px;transform:rotate(-3deg)}.world-rank .eyebrow{font-size:11px;color:#94602d;letter-spacing:2px}.world-rank strong{display:block;font-size:34px;letter-spacing:4px;margin:9px 0;color:#6f3e20}.world-rank>span:not(.eyebrow){font-size:12px;letter-spacing:2px}.rank-xp{font-weight:900;font-size:21px;color:#b63d2d;margin:17px 0 12px}.world-rank a{font-size:12px;border-top:1px solid #d5bd96;display:block;padding-top:12px}.world-quests{position:absolute;right:max(32px,calc((100vw - 1240px)/2));top:185px;width:220px;padding:20px;background:#fff9e5ee;border:3px solid #b08851;border-radius:10px;box-shadow:0 6px 0 #70513455,0 12px 30px #3c291a33;transform:rotate(2deg)}.world-quests h2{font-size:20px;text-align:center;margin:0;padding-bottom:9px;border-bottom:1px dashed #c7a87e;letter-spacing:4px}.world-quests .quest{margin-top:17px}.world-quests .quest-top{font-size:12px;gap:5px;margin-bottom:7px}.world-quests .track{height:7px;background:#e8d9bb}.world-streak{font-size:12px;display:flex;align-items:center;gap:5px;color:#ab4e29;margin-top:19px;justify-content:center;font-weight:700}.world-streak .icon{width:19px}.world-fighters{position:absolute;left:50%;top:258px;transform:translateX(-50%);width:450px;height:220px;display:flex;justify-content:center;gap:5px;pointer-events:none}.world-fighters .mini-actor{width:224px;height:224px;filter:drop-shadow(0 9px 2px #5c351c33)}.world-play{position:absolute;top:493px;left:50%;transform:translateX(-50%);width:325px;max-width:calc(100% - 60px);display:grid;gap:14px}.battle-cta{display:grid;grid-template-columns:1fr 35px;text-align:center;align-items:center;padding:12px 20px;border:3px solid #79271f;background:linear-gradient(#e7543e,#c53228);box-shadow:0 6px 0 #79271f,0 8px 0 #f9da89,0 10px 22px #52301755;border-radius:16px;color:#fff7d9;position:relative}.battle-cta>span{font-size:29px;font-weight:900;letter-spacing:7px;text-shadow:0 2px 0 #8b291c}.battle-cta small{grid-column:1;font-size:11px;letter-spacing:2px;color:#ffe5b4;margin-top:2px}.battle-cta .icon{grid-column:2;grid-row:1/3;width:29px;height:29px}.training-cta{background:#fff4cc;border:2px solid #8e5b2c;border-radius:11px;box-shadow:0 4px 0 #86542c;color:#663c1a;display:flex;gap:9px;align-items:center;justify-content:center;min-height:47px;font-size:15px;font-weight:800}.training-cta>span{background:#e6c38a;padding:3px 7px;font-size:11px;border-radius:5px;margin-left:9px}.training-cta .icon{width:21px}.world-footer{position:absolute;top:460px;left:50%;transform:translateX(-50%);width:325px;display:flex;justify-content:space-between;font-size:12px;color:#fff9de;text-shadow:0 1px 3px #4b2d17;font-weight:700;letter-spacing:2px}.game-nav{position:fixed;bottom:15px;left:50%;transform:translateX(-50%);width:640px;max-width:calc(100% - 32px);display:flex;z-index:30;background:#67462beF;border:3px solid #e8c68b;border-radius:21px;padding:7px;box-shadow:0 4px 0 #523620,0 8px 24px #442b3b38;backdrop-filter:blur(12px);gap:6px}.game-nav .nav-item{flex:1;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:9px 5px 8px;font-size:12px;font-weight:800;color:#f8e8c9;border:1px solid transparent;border-radius:13px;min-height:66px}.game-nav .nav-item .icon{width:26px;height:26px}.game-nav .nav-item.active{background:#ffce65;color:#69451f;border-color:#fce6a5;box-shadow:0 3px 0 #b98738}.game-nav .nav-item:hover:not(.active){background:#87633f}.village-content{max-width:1150px;margin:auto;padding:30px 30px 35px}.village-grid{display:grid;grid-template-columns:1fr 290px;gap:30px}.village-content .section-head{margin-top:0}.village-side>.panel{margin-bottom:20px}.village-side>.panel+.panel{margin-top:0}.mobile-quests{display:none}.panel,.unit,.stat-card,.word-row,.badge-card{border:2px solid #dec7a0;background:#fffcf2;box-shadow:0 3px 0 #dbc49e}.panel{border-radius:17px}.unit{border-radius:15px}.unit-head{background:#f6dfab;border-bottom:1px solid #dbc395}.unit-head .unit-number{font-size:29px;color:#af6731;font-family:serif;font-weight:900}.unit-head h3{letter-spacing:1px}.unit.locked .unit-head{background:#eee6d6}.unit.locked{color:#a69882}.unit.locked .unit-number{color:#afa28c}.unit-summary{display:flex;align-items:center;gap:10px}.unit-summary .icon{width:18px}.node{background:#ffcf60;border-color:#b17b31;color:#744414;box-shadow:0 5px 0 #a07030}.node.done{background:#cde3c0;border-color:#729b64;color:#3d6a36;box-shadow:0 4px 0 #709460}.battle-node{background:#df6244;color:#fff3d3;border-color:#a6462d;box-shadow:0 5px 0 #893b26}.button{background:#ba3a2e;border-color:#87291f;color:#fff3d2;box-shadow:0 4px 0 #80291f}.button.primary{background:#ffcb5b;border-color:#b18034;box-shadow:0 4px 0 #9d6d29;color:#654217}.button.outline{background:#fff9e8;border-color:#ccab75;box-shadow:0 3px 0 #d4b887;color:#775326}.text-button{color:#b0442d}.tag{background:#f0dfbb;color:#85602b}.green-tag{background:#e3edd8;color:#52713d}.amber-tag{background:#ffe0a4;color:#99571c}.track{background:#e9ddc7}.track>span{background:#e9ad38}.review-call{background:#edf2dd;border:2px solid #bfcea6}.review-call .icon{color:#648044}.onboard-call{background:#fff7db;border:2px solid #e1c689}.hero.review-hero{background:#ecf1d9;border:2px solid #b9c79e}.hero.review-hero p{color:#6e7854}.game-foot{text-align:center;font-size:11px;color:#9a8363;padding:15px 25px}.game-foot a{margin-left:12px;color:#8d6036}.content{max-width:1050px;padding-top:36px}.page-top .eyebrow{color:#b47c3b;font-size:10px;letter-spacing:2px}.page-top h1{margin-top:8px;font-weight:900}.rank-banner{background:#fff3cf;border:3px solid #b28b50;border-radius:18px;padding:26px;text-align:center;box-shadow:0 5px 0 #c9a66d}.rank-banner>span{font-size:13px;letter-spacing:3px}.rank-banner h2{font-size:43px;letter-spacing:10px;margin:12px 0;color:#8e4124}.rank-banner p{font-size:14px;color:#8a6740;margin-bottom:20px}.rank-banner .track{max-width:350px;margin:auto}.flashcard{background:#fffaf0;border-color:#dac192;box-shadow:0 5px 18px #8a633017}.flashcard .meaning,.modal-word .meaning{color:#b4492f}.flashcard .example{color:#8b755b}.audio-button{color:#997030;background:#f8edce;border-color:#dec797}.choice{background:#fffaf0;border-color:#cfb68b;box-shadow:0 4px 0 #c4a777;color:#77502c}.choice.right{background:#e4efda;border-color:#86a56f;color:#4e703a}.choice.wrong{background:#ffe0d0;border-color:#c5805a;color:#a14c2d}.lesson-feedback{background:#f8e4c6;color:#8d6536}.lesson-feedback.success{background:#e8efd9;color:#607842}.dojo-hero{background:#ffe7ab;border:2px solid #d6b369}.badge-mark{border-color:#c9a66b}.word-row .meaning{color:#927952}.search,.filter,.setting-row select,label.field select{color:#775635;border-color:#cfb991;background:#fffcf1}.close-button{background:#eddfc4;color:#83663d}.empty .icon{color:#b19a74}dialog{background:#fff8e7;border:3px solid #c19a61;box-shadow:0 9px 0 #79583155}.in-match .game-nav{opacity:.3;pointer-events:none}.in-match .game-header a{pointer-events:none}.day b{background:#ecdfc4;color:#988468}.day.done b{background:#f8cd70;color:#79501e}.day.today b{outline-color:#bd9256}.battle-frame{border:3px solid #b9955e;box-shadow:0 5px 0 #b89867}.battle-content .battle-layout{grid-template-columns:minmax(0,460px) minmax(220px,1fr)}
@media(min-width:1550px){.world{height:720px;background-position:center 55%}.world-heading{top:52px}.world-fighters{top:308px}.world-play{top:550px}.world-footer{top:510px}.world-rank{top:210px}.world-quests{top:210px}}@media(max-width:1100px){.world-rank{left:22px;width:146px}.world-quests{right:22px;width:192px;padding:16px}.world-quests .quest-top{font-size:11px}.village-grid{grid-template-columns:1fr 250px;gap:23px}.world-heading h1{font-size:64px}}@media(max-width:850px){.world-rank{display:none}.world-quests{display:none}.world{height:660px;background-size:auto 760px;background-position:center 50%}.world-heading{top:58px}.world-fighters{top:262px}.world-play{top:492px}.world-footer{top:455px}.village-grid{grid-template-columns:1fr}.village-side{display:grid;grid-template-columns:1fr 1fr;gap:20px}.village-side .panel{margin:0}.mobile-quests{display:block}.village-side .panel:last-child{grid-column:1/-1}.battle-content .battle-layout{grid-template-columns:minmax(0,460px);justify-content:center}.battle-sidebar{display:none}.game-header{padding:0 25px}}@media(max-width:700px){.game-header{height:70px;padding:0 17px;gap:10px}.game-brand{font-size:17px;gap:8px;letter-spacing:0}.game-brand .brandmark{width:34px;height:36px;font-size:22px;border-radius:8px}.game-brand small{font-size:8px;letter-spacing:1.5px}.game-hud{gap:7px}.hud-pill{font-size:15px;padding:7px 9px;gap:4px;border-radius:10px}.hud-pill .icon{width:17px;height:17px}.hud-pill small{font-size:9px}.hud-settings{display:none}.world{height:638px;background-size:auto 690px;background-position:center 48%}.world-topline{left:15px;right:15px;top:14px}.world-location{font-size:10px;padding:6px 9px}.world-settings{display:grid;place-items:center;width:33px;height:33px;background:#24515cab;color:#fff5da;border:1px solid #abd4da94;border-radius:8px}.world-settings .icon{width:20px}.world-heading{top:68px;width:360px}.festival-label{font-size:11px;letter-spacing:1px;padding:5px 15px}.world-heading h1{font-size:51px;letter-spacing:0;margin-top:13px;-webkit-text-stroke:4px #613221;text-shadow:0 5px 0 #603022,0 8px 0 #c89048,0 13px 20px #21415860}.world-heading p{font-size:12px;letter-spacing:1px;margin-top:8px}.world-fighters{top:258px;width:338px;height:178px;gap:0}.world-fighters .mini-actor{width:179px;height:179px}.world-footer{top:436px;width:254px;font-size:11px}.world-play{top:468px;width:294px;gap:13px}.battle-cta{padding:10px 18px;border-radius:14px}.battle-cta>span{font-size:28px;letter-spacing:5px}.battle-cta small{font-size:10px;letter-spacing:1px}.training-cta{min-height:45px;font-size:14px}.village-content{padding:23px 17px 25px}.village-grid{gap:22px}.village-side{display:block}.village-side .panel+.panel{margin-top:20px}.game-nav{bottom:9px;max-width:calc(100% - 18px);border-radius:17px;padding:5px;gap:3px;padding-bottom:calc(5px + env(safe-area-inset-bottom))}.game-nav .nav-item{font-size:10px;min-height:61px;padding:7px 1px;gap:5px;white-space:nowrap;border-radius:11px}.game-nav .nav-item .icon{width:24px;height:24px}.game-foot{font-size:10px;line-height:2}.game-foot a{display:block;margin:0}.game-shell{padding-bottom:93px}.content{padding:24px 17px 24px}.page-top h1{font-size:24px}.page-top p{font-size:12px}.page-top .text-button{font-size:12px}.battle-content{padding-left:10px;padding-right:10px}.battle-content .battle-layout{display:block}.battle-frame{border-width:2px}.rank-banner h2{font-size:38px}.stat-card strong small{font-size:14px}.game-nav a:focus-visible{outline-color:white}#toast{background:#664421}}@media(max-width:359px){.game-header{padding:0 12px}.game-brand{font-size:15px}.game-brand small{font-size:7px}.hud-pill{padding:6px 7px;font-size:13px}.world-heading h1{font-size:46px}.world-fighters{width:300px}.world-fighters .mini-actor{width:162px;height:162px}.world-play{width:275px}.game-nav .nav-item{font-size:9px}}
@media(max-width:700px){.battle-content>.page-top{margin-bottom:14px}.battle-content>.page-top h1{font-size:21px;margin:4px 0}.battle-content>.page-top .eyebrow,.battle-content>.page-top p{display:none}.battle-content{padding-top:17px}.in-match .game-nav,.in-match .game-header,.in-match .game-foot,.in-match .battle-content>.page-top{display:none}.in-match .game-shell{padding-bottom:0}.in-match .battle-content{padding:0;max-width:460px}.in-match .battle-frame{border:0;border-radius:0;min-height:100dvh}}

/* The same nine fighters accompany practice and the next match. */
.character-cabinet{margin-bottom:24px;padding:24px}.character-heading h2{margin:0 0 8px}.character-heading p{color:var(--muted);line-height:1.7;margin:0 0 20px}.character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.character-card{display:flex;flex-direction:column;align-items:center;min-width:0;padding:10px 4px 14px;border:2px solid var(--line);border-radius:16px;background:#fff}.character-card[aria-pressed=true]{border-color:#996b18;background:#fff5d6}.character-card:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.character-card .mini-actor{width:100%;max-width:130px;height:auto;aspect-ratio:1}.character-card strong{font-size:17px}.character-card>span{font-size:11px;margin-top:5px;color:#65788b}@media(max-width:480px){.character-cabinet{padding:16px 10px}.character-grid{gap:7px}.character-card strong{font-size:14px}.character-card>span{font-size:10px}}
/* The question is the meaning in the learner's language; the choices are Japanese with the reading aid above them. */
.flashcard .prompt-meaning{font-size:38px;font-weight:800;line-height:1.3;margin:26px 0 12px;overflow-wrap:anywhere}.flashcard .prompt-meaning+ruby{font-size:34px;margin-top:0;line-height:1.8}.flashcard .listen-mark{width:92px;height:92px;margin:26px auto 14px;border-radius:50%;display:grid;place-items:center;background:#fff1cf;border:3px solid #d8b778;color:#a3622a}.flashcard .listen-mark .icon{width:46px;height:46px}.choices.japanese .choice{font-size:24px;line-height:1.2;padding-top:20px}.choice ruby{ruby-align:center}.choice rt{font-size:13px;font-weight:600;letter-spacing:.5px;color:#9a7a52}.aid-offer{margin-top:23px}.aid-offer-body{padding:18px 20px 22px;text-align:center}.aid-offer-body p{margin:0 0 12px;font-weight:700}.aid-sample{display:flex;justify-content:center;align-items:flex-end;gap:18px;font-size:30px;font-weight:800;margin:6px 0 16px}.aid-sample rt{font-size:12px;font-weight:600;color:#9a7a52}.aid-offer-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:10px}.aid-offer-body small{color:var(--muted)}
@media(max-width:700px){.flashcard .prompt-meaning{font-size:31px}.choices.japanese .choice{font-size:21px}.choice rt{font-size:12px}}
.cant-listen{display:block;margin:2px auto 10px;font-size:13px;text-decoration:underline;color:var(--muted)}
/* 第2弾：まだ入門していない子は影絵。押せないカードとして並べる */
.character-card.locked{border-style:dashed;background:#f4f1ea;cursor:default}.character-card.locked .mini-actor{display:grid;place-items:end center}.character-silhouette{width:78%;height:auto;opacity:.82}.character-card.locked strong{color:#7a7468;letter-spacing:.12em}
/* English course: the English word as the question, and the example's translation under it. */
.flashcard .prompt-term{letter-spacing:.01em}
.flashcard .example-ja{margin-top:-4px;font-size:14px;color:var(--muted)}
.choices.english .choice{font-size:22px}
