/* One village, different places to learn, train and celebrate. */
body:not(.home-route) .game-shell{background:#f0e5ce}body:not(.home-route) .content{max-width:1160px;padding:28px 32px 30px}.facility-scene{position:relative;isolation:isolate;border:3px solid #8c6035;border-radius:23px;overflow:hidden;background:#8fbd86;box-shadow:0 6px 0 #c8ab7f;margin-bottom:25px}.scene-landscape{position:absolute;inset:0;z-index:-2;background:url('sumo-village.webp') center/cover no-repeat}.scene-landscape::after{content:'';position:absolute;inset:0;background:linear-gradient(#3f301855,transparent 45%,#3f251530)}.scene-heading{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:25px 28px 0;z-index:2;color:#fff4ce;text-shadow:0 2px 3px #40271e}.facility-kicker{font-size:12px;letter-spacing:2px;font-weight:800}.scene-heading h1{font-size:32px;letter-spacing:2px;font-weight:900;margin:8px 0 4px;color:#fff6db;text-shadow:0 3px 0 #71402e,0 4px 10px #45281580}.scene-heading p{font-size:14px;color:#ffeed0;margin:0;line-height:1.7}.scene-link{display:flex;align-items:center;gap:6px;background:#63422bcc;border:1px solid #e6c087;border-radius:10px;padding:9px 12px;color:#fff0cb;font-size:13px;font-weight:800;white-space:nowrap;text-shadow:none}.scene-link .icon{width:19px;height:19px}.scene-interior{position:relative;min-height:330px;padding:22px 28px 32px;z-index:1}.scene-character{position:absolute;right:10%;bottom:35px;width:260px;height:240px;pointer-events:none}.scene-character .mini-actor{width:100%;height:100%;filter:drop-shadow(0 9px 3px #6f491f40)}.fighter-speech{position:absolute;top:-18px;left:50%;transform:translateX(-50%);padding:10px 15px;border-radius:13px;background:#fff9e5;border:2px solid #a4773d;color:#845126;font-weight:800;font-size:13px;white-space:nowrap;z-index:3;box-shadow:0 3px 0 #8c6a3544}.fighter-speech::after{content:'';position:absolute;left:calc(50% - 6px);bottom:-8px;width:10px;height:10px;border-right:2px solid #a4773d;border-bottom:2px solid #a4773d;background:#fff9e5;transform:rotate(45deg)}.scene-footer{background:#67412ded;border-top:3px solid #c19559;padding:17px 28px;color:#fff0ca}.banzuke-paper{position:relative;max-width:320px;margin-left:7%;padding:18px 25px 22px;text-align:center;background:#fff3d4;border:6px double #b68b43;box-shadow:0 6px 0 #704b2bb3,0 9px 18px #54351f33;transform:rotate(-2deg);border-radius:3px;color:#6a3c20}.paper-top{display:block;font-weight:800;font-size:13px;letter-spacing:4px;border-bottom:1px solid #d9bd89;padding-bottom:11px;margin-bottom:12px}.banzuke-paper h2{font-size:51px;letter-spacing:7px;margin:9px 0 12px;font-family:'Noto Sans JP',sans-serif;font-weight:900}.banzuke-paper>strong{font-size:28px;color:#a44527}.banzuke-paper>strong small{font-size:14px}.banzuke-paper p{font-size:13px;margin:8px 0 14px;color:#99703e}.rank-seal{position:absolute;right:18px;top:71px;writing-mode:vertical-rl;border:2px solid #bd4c37;color:#ad4431;padding:5px 3px;font-size:13px;letter-spacing:2px;transform:rotate(8deg)}.banzuke-paper .track{height:7px;background:#e4d2a9}.rank-milestones{max-width:590px;margin:auto;display:flex;justify-content:space-between;gap:15px;position:relative}.rank-milestones::before{content:'';position:absolute;top:16px;height:3px;background:#a58051;left:12%;right:12%}.rank-step{display:flex;align-items:center;flex-direction:column;flex:1;position:relative;z-index:1;color:#cfb893;font-size:14px;gap:5px}.rank-step>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:2px solid #b49362;background:#725438}.rank-step .icon{width:17px;height:17px}.rank-step small{font-size:11px;color:#cdb48d}.rank-step.reached>span{background:#e3b653;border-color:#ffe3a0;color:#774218}.rank-step.current{color:#ffe39a}.rank-step.current>span{outline:3px solid #fbe4a25c;outline-offset:3px}.rank-step strong{font-weight:800}.world-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:27px 0}.metric-plaque{display:flex;align-items:center;justify-content:center;gap:14px;border:2px solid #bd965f;border-radius:15px;background:#fff4d6;padding:20px 15px;box-shadow:0 4px 0 #d2b582}.metric-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#f4dfa9;color:#9c652d;border:1px solid #e2c280;flex:none}.metric-icon .icon{width:26px;height:26px}.metric-plaque strong{display:block;font-size:30px;line-height:1.2;color:#7e4325}.metric-plaque small{font-size:14px;margin-left:5px;font-weight:500;color:#987245}.metric-plaque div>span{display:block;margin-top:7px;font-size:12px;color:#957445}.facility-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}.world-board{border:3px solid #a77e4a;border-radius:16px;background:#fffae9;box-shadow:0 5px 0 #c8ab7b;overflow:hidden}.board-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#805636;padding:16px 20px;border-bottom:3px solid #b38b52;color:#fff0c6}.board-heading h2{font-size:19px;font-weight:900;letter-spacing:2px;margin:0}.board-heading>span{font-size:11px;white-space:nowrap;color:#e7cca1}.board-caption{padding:0 22px 10px;font-size:13px;color:#9f8256;text-align:center}.attendance-board .calendar{padding:3px 17px 9px;gap:5px}.attendance-board .day{font-size:12px;gap:12px}.attendance-board .day b{width:39px;height:43px;border-radius:7px;background:#f4e9cf;border:1px dashed #d6c4a0;color:#c0ac84;font-size:17px}.attendance-board .day.done b{background:#fff5d6;border:2px solid #b8573e;color:#b54c35;transform:rotate(-8deg);font-size:13px;letter-spacing:1px}.attendance-board .day.today b{outline:2px solid #c79845;outline-offset:3px}.history-list{padding:0 20px}.history-row{gap:12px}.history-row strong{font-size:16px;color:#795129}.history-row p{line-height:1.6;font-size:11px}.result-mark{font-size:32px;width:33px;flex:none;line-height:1;color:#684632}.white-star{color:#be7734;text-shadow:0 1px 0 white}.draw-mark{color:#b49250}.history-row .tag{font-size:11px}.world-empty{padding:28px 24px 30px;text-align:center}.empty-crest{display:grid;place-items:center;background:#f4e1b5;color:#ab814b;border:2px solid #dfbf82;width:64px;height:64px;border-radius:50%;margin:0 auto 16px}.empty-crest .icon{width:32px;height:32px}.world-empty h3{font-size:18px;color:#82532d;line-height:1.6;margin-bottom:9px}.world-empty p{font-size:14px;color:#a0845a;line-height:1.9;margin-bottom:20px}.world-notice{text-align:center;margin:28px 12px 5px;font-size:12px;color:#a08a67}.facility-scene .button{font-size:15px;min-height:48px}.scene-rank .scene-interior{min-height:340px}.scene-rank .scene-character{width:310px;height:280px;bottom:35px;right:10%}
@media(max-width:1000px){.banzuke-paper{margin-left:2%;max-width:300px}.scene-rank .scene-character{right:4%;width:275px;height:255px}.facility-columns{grid-template-columns:1fr}.metric-plaque{gap:10px;padding:18px 12px}.metric-plaque strong{font-size:27px}.metric-icon{width:37px;height:37px}.attendance-board .calendar{max-width:550px;margin-left:auto;margin-right:auto}.facility-columns .world-board{min-width:0}}
@media(max-width:700px){body:not(.home-route) .content{padding:17px 12px 25px}.facility-scene{border-width:2px;border-radius:17px;margin-bottom:20px}.scene-heading{padding:18px 17px 0;gap:9px}.facility-kicker{font-size:10px;letter-spacing:1px}.scene-heading h1{font-size:25px;letter-spacing:1px;margin:7px 0 4px}.scene-heading p{font-size:12px;max-width:260px}.scene-link{padding:7px 9px;font-size:11px;gap:4px}.scene-link .icon{width:16px;height:16px}.scene-interior{min-height:260px;padding:21px 16px 26px}.scene-rank .scene-interior{min-height:286px;padding:22px 12px 23px}.banzuke-paper{margin-left:0;width:56%;max-width:none;padding:14px 10px 18px;border-width:5px;z-index:2}.paper-top{font-size:10px;letter-spacing:2px;padding-bottom:10px;margin-bottom:13px}.banzuke-paper h2{font-size:34px;letter-spacing:3px;margin:12px 0}.banzuke-paper>strong{font-size:24px}.banzuke-paper>strong small{font-size:12px}.banzuke-paper p{font-size:11px;line-height:1.7;margin:9px 0 12px}.rank-seal{right:5px;top:54px;font-size:10px;padding:3px 1px;letter-spacing:0}.scene-rank .scene-character{width:49%;height:176px;right:-1%;bottom:39px}.fighter-speech{font-size:11px;padding:8px 9px;white-space:normal;width:138px;text-align:center;line-height:1.6}.scene-rank .fighter-speech{top:-45px;left:48%}.scene-footer{padding:14px 13px}.rank-milestones{gap:5px}.rank-step{font-size:12px;gap:6px}.rank-step small{font-size:10px}.rank-step>span{width:30px;height:30px}.rank-milestones::before{top:14px}.rank-step .icon{width:15px;height:15px}.world-metrics{gap:8px;margin:22px 1px}.metric-plaque{padding:14px 5px;flex-direction:column;gap:8px;text-align:center;border-radius:12px}.metric-icon{width:32px;height:32px;border-radius:9px}.metric-icon .icon{width:20px;height:20px}.metric-plaque strong{font-size:25px}.metric-plaque small{font-size:12px;margin-left:3px}.metric-plaque div>span{font-size:10px;margin-top:6px;white-space:nowrap}.facility-columns{gap:20px}.world-board{border-width:2px;border-radius:14px}.board-heading{padding:14px 17px;gap:8px}.board-heading h2{font-size:17px;letter-spacing:1px}.board-heading>span{font-size:10px}.attendance-board .calendar{padding:0 12px 9px;gap:4px}.attendance-board .day{font-size:10px}.attendance-board .day b{width:33px;height:37px}.attendance-board .day.done b{font-size:11px;letter-spacing:0}.board-caption{font-size:12px}.world-empty{padding:25px 19px}.world-empty h3{font-size:17px}.world-empty p{font-size:13px}.world-notice{font-size:11px;line-height:1.9}.history-list{padding:0 15px}}
@media(max-width:359px){.banzuke-paper h2{font-size:30px}.banzuke-paper{width:55%;padding-left:7px;padding-right:7px}.scene-rank .scene-character{height:154px}.scene-rank .fighter-speech{width:119px;font-size:10px}.scene-heading h1{font-size:23px}.scene-heading p{font-size:11px}.attendance-board .day b{width:28px;height:33px}.attendance-board .calendar{padding-left:9px;padding-right:9px}.metric-plaque div>span{font-size:9px}.metric-plaque strong{font-size:22px}}
/* Each facility has its own landscape; interactive objects sit in the scene. */
.scene-rank .scene-landscape,.scene-complete .scene-landscape{background-image:url('facility-rank.webp');background-position:center 48%}.scene-review .scene-landscape,.scene-dojo .scene-landscape{background-image:url('facility-dojo.webp');background-position:center 58%}.scene-archive .scene-landscape,.scene-settings .scene-landscape{background-image:url('facility-archive.webp');background-position:center 48%}.scene-landscape::after{background:linear-gradient(#2f1a0b86,transparent 50%,#3f251523)}
.training-paper,.fighter-nameboard,.completion-paper{position:relative;background:#fff5dbeF;border:5px double #b98e4d;border-radius:4px;max-width:355px;margin-left:5%;padding:21px 25px 25px;text-align:center;box-shadow:0 6px 0 #704b2b9c,0 10px 25px #3725112b;color:#764922}.training-paper{transform:rotate(-1.5deg)}.training-paper .paper-top{font-size:13px;letter-spacing:4px;margin-bottom:8px}.review-count{display:flex;align-items:baseline;justify-content:center;gap:9px;color:#a14c2f}.review-count>strong{font-size:58px;line-height:1.45;font-weight:900}.review-count>span{font-size:16px;font-weight:800}.training-paper p{font-size:14px;line-height:1.9;color:#907044;margin:7px 0 17px}.review-count:has(.clear-stamp){flex-direction:column;align-items:center;gap:4px}.review-count .clear-title{font-size:25px;letter-spacing:1px}.clear-stamp{display:grid;place-items:center;width:52px;height:52px;border:3px solid #aa7042;border-radius:50%;margin:6px 0 7px;color:#aa7042;outline:1px solid #bc9862;outline-offset:4px}.clear-stamp .icon{width:30px;height:30px}.scene-review .scene-interior{min-height:357px}.scene-review .scene-character,.scene-dojo .scene-character{width:320px;height:300px;right:7%;bottom:27px}.dojo-motto{display:flex;align-items:center;gap:10px;font-size:14px;letter-spacing:1px;justify-content:center;color:#f6e2b3}.dojo-motto .icon{width:20px;height:20px;color:#e9c277}.dojo-motto small,.dojo-motto a{margin-left:auto;font-size:12px;letter-spacing:0;color:#f5d393}.register-body{padding:21px}.review-path{display:grid;grid-template-columns:repeat(3,1fr);padding:30px 18px}.review-path>div{text-align:center;padding:0 10px;border-right:1px dashed #d3b986}.review-path>div:last-child{border:0}.review-path>div>span{display:grid;place-items:center;width:42px;height:42px;margin:0 auto 17px;border:2px solid #b3803d;border-radius:13px;transform:rotate(-5deg);background:#f6dc9d;color:#925922;font-size:23px;font-weight:900;box-shadow:0 4px 0 #ceb07a}.review-path h3{font-size:17px;color:#895e30}.review-path p{font-size:13px;color:#9c7d50;margin-bottom:0;line-height:1.85}
/* The archive combines collection progress, search and word plaques. */
.scene-archive .scene-interior{min-height:200px;padding-top:40px;padding-bottom:26px}.archive-scroll{max-width:770px;margin:auto;background:#fff3d9;border:4px double #b48b4d;border-left:12px solid #a9743c;border-right:12px solid #a9743c;border-radius:9px;box-shadow:0 5px 0 #67402166;display:flex;align-items:center;gap:22px;padding:21px 25px;position:relative}.archive-seal{font-size:22px;writing-mode:vertical-rl;letter-spacing:4px;padding:11px 7px;border:2px solid #b6573b;color:#b6573b;transform:rotate(-4deg);font-weight:800;flex:none}.archive-scroll>div>span{font-size:12px;color:#a07b44;font-weight:700;letter-spacing:2px}.archive-scroll strong{display:block;color:#8c4c25;font-size:39px;line-height:1.5}.archive-scroll strong small{font-size:18px;color:#a4895f;font-weight:500}.archive-scroll p{font-size:12px;color:#987849;margin:2px 0 0}.scroll-progress{margin-left:auto;min-width:140px}.scroll-progress .track{height:9px;margin-bottom:10px;background:#e2cfa6}.scroll-progress>span{font-size:11px!important;letter-spacing:0!important}.scene-archive .book-toolbar{margin:0;gap:13px;align-items:stretch}.search-field{flex:1;display:flex;align-items:center;min-width:0;background:#fff8e2;border:2px solid #caab6e;border-radius:11px;padding-left:14px;color:#9d7942}.search-field>.icon{width:21px;height:21px}.search-field .search{border:0;background:none;min-width:0;width:100%;outline-offset:0;padding:13px 12px;font-size:14px}.scene-archive .filter{border:2px solid #c7a569;font-size:13px;background:#fff6db}.vocabulary-cabinet #word-results{padding:23px;background:repeating-linear-gradient(0deg,#af885542 0,#af885542 1px,transparent 1px,transparent 138px),#f0e0bd}.word-list{gap:15px}.word-row{position:relative;gap:14px;min-height:112px;border:2px solid #c5a064;border-radius:9px;background:linear-gradient(110deg,#fff9e5,#fff3d3);box-shadow:0 4px 0 #b99460;padding:17px 16px;color:#805126}.word-row:hover{border-color:#a57438;box-shadow:0 4px 0 #916635;background:#fff9e4}.word-index{align-self:stretch;display:flex;align-items:center;padding-right:12px;border-right:1px solid #dfc694;color:#ba9761;font-size:12px;font-weight:800;letter-spacing:1px}.word-main{min-width:0;flex:1}.word-row ruby{font-size:21px;color:#754b27;line-height:1.7}.word-row rt{font-size:10px;color:#9f8357}.word-row .meaning{font-size:13px;margin-top:3px;overflow-wrap:anywhere}.word-row .tag{font-size:10px;padding:5px 6px;margin-left:0}.word-open{color:#b4935c}.word-open .icon{width:17px;height:17px}.register-body .word-row{min-height:107px}.vocabulary-cabinet .world-empty{background:#fff4d7;border:1px dashed #b4945a;border-radius:12px;padding:45px 20px}.vocabulary-cabinet .world-empty>.icon{color:#b48d51;width:45px;height:45px;margin-bottom:17px}
/* A stable, a name plaque, and a cabinet for earned medals. */
.scene-dojo .scene-interior{min-height:360px;padding-top:38px}.fighter-nameboard{max-width:325px;transform:rotate(-2deg);padding:19px 25px 23px}.fighter-nameboard h2{font-size:46px;letter-spacing:6px;color:#8e4728;margin:16px 0}.fighter-nameboard>.tag{border:1px solid #d7b578;background:#f8dfa6;font-size:12px;letter-spacing:1px}.fighter-nameboard p{margin:14px 0 17px;font-size:14px;color:#9c7848}.fighter-rank{display:flex;align-items:center;gap:8px;justify-content:center;font-size:14px;font-weight:800;border-top:1px dashed #d4b483;padding-top:15px;color:#966327}.fighter-rank>.icon{width:19px;height:19px}.fighter-rank>span{margin-left:auto;color:#a4804e;font-size:13px}.medal-cabinet{margin-top:29px;background:#d1ad75}.medal-cabinet .badges{grid-template-columns:repeat(4,minmax(0,1fr));padding:22px 21px 15px;gap:15px}.medal-cabinet .badge-card{position:relative;border:2px solid #ae8248;border-radius:10px;background:linear-gradient(#f9eccd,#ecd4a6);box-shadow:0 6px 0 #936b3d;padding:17px 12px 21px;overflow:hidden}.medal-number{font-size:11px;letter-spacing:3px;color:#ac8a53}.medal-cabinet .badge-mark{position:relative;width:77px;height:77px;border:5px double #b48135;background:radial-gradient(circle at 30% 20%,#ffe8a0,#efb83d);box-shadow:0 4px 0 #a37535,0 9px 18px #a877322e;margin:18px auto 24px;z-index:1;color:#916025}.medal-cabinet .badge-mark::before,.medal-cabinet .badge-mark::after{content:'';position:absolute;z-index:-1;bottom:-19px;width:22px;height:24px;background:#bd553a;clip-path:polygon(0 0,100% 0,100% 100%,50% 75%,0 100%)}.medal-cabinet .badge-mark::before{left:8px;transform:rotate(13deg)}.medal-cabinet .badge-mark::after{right:8px;transform:rotate(-13deg)}.medal-cabinet .locked .badge-mark{background:radial-gradient(circle at 30% 20%,#eee0bf,#c6b28d);border-color:#b19a73;color:#a38c65;box-shadow:0 3px 0 #ad966f}.medal-cabinet .locked .badge-mark::before,.medal-cabinet .locked .badge-mark::after{background:#b9a385}.medal-cabinet .badge-card h3{font-size:15px;color:#7c5028;white-space:nowrap;letter-spacing:-.3px}.medal-cabinet .badge-card p{font-size:11px;color:#987849;min-height:34px;margin-bottom:11px}.medal-cabinet .badge-card .button{font-size:12px;width:100%;padding:8px 6px;min-height:40px}.medal-cabinet .badge-card.equipped{border-color:#9b6126;box-shadow:0 6px 0 #936b3d,inset 0 0 0 3px #fbd888}.medal-cabinet .badge-card.equipped::after{content:'装備中';position:absolute;right:-23px;top:14px;transform:rotate(40deg);width:90px;background:#a75334;color:#fff0c8;font-size:10px;padding:3px 0}.cabinet-note{font-size:12px;color:#77552e;text-align:center;padding:12px 20px 10px;margin:0;line-height:1.9}
/* The settings ledger is kept on the archive counter. */
.scene-settings .scene-interior{min-height:120px;padding:30px 28px}.settings-sign{display:flex;align-items:center;gap:11px;color:#ffeaca;font-size:14px;font-weight:800;letter-spacing:2px;text-shadow:0 2px 3px #583b1f}.settings-sign .icon{width:25px;height:25px}.settings-ledger{max-width:860px;margin:25px auto 0}.settings-ledger .settings-list{padding:7px 27px 10px;max-width:none}.settings-ledger .setting-row{padding:23px 0;border-color:#e1cda6}.settings-ledger .setting-row:last-child{border-bottom:0}.settings-ledger .setting-row strong{color:#825b32}.settings-ledger .setting-row p{font-size:12px;color:#9d8159}.settings-ledger .setting-row select{background:#fff2d1;border:2px solid #d0b57d;min-height:45px;font-size:13px;flex:none;max-width:180px}.settings-ledger input[type=checkbox]{width:26px;height:26px;accent-color:#a96931;flex:none}.settings-spec{display:flex;justify-content:center;font-size:12px}
/* The tournament keeps the playable ring prominent. */
body[data-page=battle] .content{max-width:1120px}.tournament-gate{position:relative;border:3px solid #996435;border-radius:18px;padding:21px 27px 23px;margin-bottom:24px;color:#fff2d2;background:linear-gradient(90deg,#633819e8,#563517b0),url('sumo-village.webp') center 62%/cover;box-shadow:0 4px 0 #c1a174}.tournament-gate h1{font-size:31px;letter-spacing:3px;margin:7px 0 4px}.tournament-gate p{font-size:13px;color:#ead2a7;margin-bottom:0}.tournament-tag{position:absolute;right:26px;top:50%;transform:translateY(-50%) rotate(3deg);background:#fff0cd;border:4px double #c7a060;color:#986032;padding:12px 17px;font-weight:800;font-size:17px;letter-spacing:2px}.battle-content .tournament-layout{grid-template-columns:minmax(0,470px) minmax(0,1fr);gap:26px;justify-content:center}.ring-frame{border:3px solid #a07240;background:#7d532f;border-radius:20px;padding:9px;box-shadow:0 6px 0 #bd9a66;overflow:hidden}.ring-nameplate{text-align:center;background:#7d532f;color:#ffdf9d;font-size:12px;font-weight:800;letter-spacing:5px;padding:5px 5px 13px}.ring-frame .battle-frame{display:block;min-height:730px;border:1px solid #b18c50;border-radius:12px;box-shadow:none}.tournament-side{display:block}.tournament-side .world-board{margin-bottom:23px}.matchup-scene{display:flex;align-items:center;justify-content:center;gap:0;padding:26px 12px 15px;background:linear-gradient(#fff1c631,#fff0c380),url('facility-dojo.webp') center 60%/cover}.matchup-scene>div{min-width:0;flex:1;text-align:center}.matchup-scene .mini-actor{width:100%;max-width:170px;height:150px;margin:0 auto}.matchup-scene strong{display:block;width:90px;max-width:100%;margin:0 auto;padding:5px 8px;border:2px solid #b38a46;background:#fff1c6;border-radius:6px;color:#8f4d2b;font-size:17px;letter-spacing:2px;box-shadow:0 3px 0 #9f7841}.matchup-scene small{font-size:10px;color:#715433;display:block;margin-top:9px;background:#fff3d4d9;padding:3px 2px}.versus-seal{font-size:25px;font-weight:900;color:#fff6d8;background:#bb5033;border:3px double #ffe2a6;transform:rotate(-7deg);width:45px;height:47px;display:grid;place-items:center;flex:none}.matchup-note{font-size:12px;line-height:1.85;text-align:center;color:#9b7a4b;padding:17px 12px;margin:0}.rules-board ol{counter-reset:rule;list-style:none;margin:0;padding:10px 22px 20px}.rules-board li{position:relative;padding:15px 0 15px 39px;border-bottom:1px dashed #d6ba86;font-size:14px;color:#846033;line-height:1.7;counter-increment:rule}.rules-board li:last-child{border:0}.rules-board li::before{content:counter(rule);position:absolute;left:0;top:16px;width:26px;height:27px;display:grid;place-items:center;background:#f5dc9c;border:1px solid #c7a16b;border-radius:7px;font-size:13px;font-weight:800;color:#91602b;box-shadow:0 2px 0 #d9bb83}.rules-board li span{display:block;font-size:12px;color:#a0855c;margin-top:5px}.rules-board .training-cta{margin:0 20px 23px;font-size:13px;min-height:45px}
/* A lesson takes place inside the stable, with one readable paper card. */
body[data-page=lesson] .content{max-width:1120px;padding-top:25px}.lesson-stage{background:linear-gradient(#452b1f77,#543d29b3),url('facility-dojo.webp') center/cover;border:3px solid #a47743;border-radius:22px;padding:26px 30px 12px;box-shadow:0 6px 0 #c4a46e}.lesson-stage .lesson-wrap{max-width:580px}.lesson-stage .lesson-top{background:#fff1d7f2;border:2px solid #bca06c;border-radius:13px;padding:10px 14px;margin-bottom:21px;color:#856336;gap:15px;box-shadow:0 3px 0 #5c3e2566}.lesson-stage .lesson-top .close-button{background:#ead3a8;width:33px;height:33px}.lesson-stage .lesson-top .track{background:#d8bb81;height:11px}.lesson-heading{text-align:center;color:#fff0cd;text-shadow:0 2px 3px #563817}.lesson-heading .facility-kicker{font-size:11px;color:#eacc98}.lesson-heading h1{font-size:24px;letter-spacing:1px;margin:10px 0 0}.lesson-stage .flashcard{position:relative;border:6px double #c49d62;border-radius:9px;background:linear-gradient(110deg,#fff9e7,#fff0cc);padding:25px 27px;margin:20px 0 23px;box-shadow:0 6px 0 #50351d66}.lesson-stage .flashcard ruby{color:#714623;font-size:48px;margin-top:20px}.lesson-stage .flashcard rt{color:#a28151}.lesson-stage .flashcard .category{color:#b0884d;letter-spacing:3px;font-size:11px}.lesson-stage .flashcard .meaning{font-size:26px;color:#a65331;margin:5px 0 15px}.lesson-stage .flashcard .example{font-size:14px;color:#9d7e4f}.lesson-stage .audio-button{font-size:13px;border-color:#cfb079;background:#f4dfb0;color:#93672f;padding:9px 15px}.flashcard-seal{position:absolute;bottom:19px;right:21px;writing-mode:vertical-rl;border:2px solid #bd6b4a;font-size:12px;letter-spacing:2px;color:#bd6b4a;padding:4px 2px;transform:rotate(8deg);opacity:.8}.lesson-stage .choices{gap:13px;margin-top:0}.lesson-stage .choice{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:15px;min-height:67px;background:#fff1d4;border-color:#c8a368;font-size:17px;box-shadow:0 4px 0 #79552d;border-radius:11px}.choice-mark{display:grid;place-items:center;width:25px;height:25px;flex:none;background:#ebd3a5;color:#a4824e;border:1px solid #d2b379;border-radius:7px;font-size:12px}.lesson-stage .choice.right{background:#e5eccb;border-color:#94a86b;color:#637443}.lesson-stage .choice.right .choice-mark{background:#97ad64;border-color:#97ad64;color:white}.lesson-stage .choice.wrong{background:#ffd9c2;border-color:#c18961;color:#a4613a}.lesson-stage .choice.wrong .choice-mark{background:#c78761;border-color:#c78761;color:white}.lesson-stage .choice:disabled{opacity:1}.lesson-stage .lesson-feedback{font-size:14px;margin:20px 0;border:2px solid #d4b27c;background:#fff1d2;color:#8b6036;padding:14px 17px}.lesson-stage .lesson-feedback.success{background:#edf1d6;border-color:#a7b681;color:#697a44}.lesson-stage .button.full{min-height:49px}.lesson-companion{display:flex;align-items:center;justify-content:center;gap:8px;color:#ffefd0;margin:16px auto 0}.lesson-companion .mini-actor{width:94px;height:92px}.lesson-companion p{font-size:13px;font-weight:800;margin:0;text-shadow:0 1px 3px #3f2c17}.lesson-companion small{display:block;color:#dfc79b;font-size:10px;font-weight:500;margin-top:5px}
/* Completion is a small ceremony, including only real earned rewards. */
.scene-complete .scene-interior{min-height:350px;padding-top:31px}.completion-paper{transform:rotate(-2deg);padding:42px 20px 25px;max-width:380px}.completion-paper .paper-top{font-size:12px;letter-spacing:2px}.completion-paper h2{font-size:35px;color:#a2552f;letter-spacing:5px;margin:15px 0 10px}.completion-paper p{font-size:12px;color:#9e7e4d;line-height:1.85;margin-bottom:12px}.completion-seal{position:absolute;top:-13px;left:50%;transform:translateX(-50%) rotate(2deg);white-space:nowrap;letter-spacing:2px;border:2px solid #b77740;background:#c15936;color:#fff0c8;font-size:12px;font-weight:800;padding:8px 16px;box-shadow:0 3px 0 #8e5b3066}.completion-reward{font-size:32px;font-weight:900;display:flex;align-items:center;gap:7px;justify-content:center;color:#b67f22}.completion-reward .icon{width:28px;height:28px}.completion-reward small{font-size:14px}.scene-complete .scene-character{width:300px;height:280px;right:8%;bottom:29px}.scene-complete .finish-actions{margin:0 auto;max-width:620px}.scene-complete .finish-actions .button{font-size:14px}dialog:has(.modal-word){border:6px double #b78949;border-radius:12px;background:linear-gradient(110deg,#fff9e5,#fff0cd)}.modal-word .meaning{color:#a25e31}.modal-word .audio-button{background:#f1dbac;color:#8b6235}
@media(max-width:1000px){.scene-review .scene-character,.scene-dojo .scene-character{right:1%;width:285px;height:275px}.training-paper,.fighter-nameboard,.completion-paper{margin-left:1%;max-width:315px}.scene-complete .scene-character{right:1%;width:270px;height:260px}.medal-cabinet .badges{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.medal-cabinet .badge-card h3{font-size:16px}.tournament-side .board-heading{padding:14px 16px}.tournament-side .board-heading h2{font-size:17px}.battle-content .tournament-layout{grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:20px}.matchup-scene{padding:20px 5px 12px}.matchup-scene .mini-actor{height:118px}.versus-seal{width:33px;height:39px;font-size:21px}.rules-board ol{padding-left:15px;padding-right:15px}.rules-board .training-cta{margin-left:14px;margin-right:14px}}
@media(max-width:850px){.battle-content .tournament-layout{grid-template-columns:minmax(0,470px)}.tournament-side{display:none}.scene-review .scene-character,.scene-dojo .scene-character{right:1%;width:250px;height:255px}.training-paper,.fighter-nameboard,.completion-paper{max-width:290px}.word-open{display:none}.scroll-progress{min-width:115px}.archive-scroll{gap:16px;padding:18px 20px}}
@media(max-width:700px){.scene-review .scene-interior{min-height:310px;padding:25px 12px 24px}.training-paper,.fighter-nameboard,.completion-paper{width:57%;margin:0;max-width:none;padding:17px 12px 20px;border-width:4px;z-index:2}.training-paper .paper-top{font-size:10px;letter-spacing:2px;margin-bottom:8px}.review-count{gap:5px}.review-count>strong{font-size:39px}.review-count>span{font-size:11px}.review-count .clear-title{font-size:18px;letter-spacing:0}.clear-stamp{width:39px;height:39px;border-width:2px;margin:8px 0 12px}.clear-stamp .icon{width:23px;height:23px}.training-paper p{font-size:11px;margin:9px 0 15px}.training-paper .button{font-size:12px;min-height:43px;padding:9px 5px;gap:4px}.training-paper .button .icon{width:16px}.scene-review .scene-character,.scene-dojo .scene-character{width:49%;height:185px;right:-1%;bottom:35px}.scene-review .fighter-speech,.scene-dojo .fighter-speech{top:-37px;left:48%;width:128px;font-size:10px}.dojo-motto{gap:6px;font-size:11px;letter-spacing:0;flex-wrap:wrap;justify-content:flex-start}.dojo-motto .icon{width:17px;height:17px}.dojo-motto small,.dojo-motto a{font-size:10px;white-space:nowrap}.review-path{padding:25px 11px;gap:7px}.review-path>div{padding:0 3px}.review-path h3{font-size:12px;letter-spacing:-.4px}.review-path p{font-size:10px;line-height:1.9}.review-path>div>span{width:33px;height:34px;font-size:20px;margin-bottom:13px}.register-body{padding:15px 12px}.scene-archive .scene-interior{min-height:197px;padding:34px 14px 27px}.archive-scroll{padding:15px 12px;gap:12px;border-left-width:7px;border-right-width:7px;align-items:center}.archive-seal{font-size:17px;padding:9px 5px;letter-spacing:3px}.archive-scroll>div>span{font-size:10px;letter-spacing:1px}.archive-scroll strong{font-size:32px}.archive-scroll strong small{font-size:15px}.archive-scroll p{font-size:10px;max-width:190px}.scroll-progress{display:none}.scene-archive .scene-footer{padding:13px 12px 15px}.scene-archive .book-toolbar{gap:10px}.search-field{flex-basis:100%;padding-left:11px}.search-field .search{font-size:12px;padding:11px 10px}.search-field>.icon{width:18px;height:18px}.scene-archive .filter{width:100%;font-size:12px;padding:10px 12px}.vocabulary-cabinet #word-results{padding:16px 12px 20px}.vocabulary-cabinet .board-heading{align-items:flex-start;gap:5px;flex-direction:column;padding:13px 15px}.word-list{gap:13px}.word-row{padding:15px 12px;gap:12px;min-height:101px}.word-row ruby{font-size:20px}.word-row .meaning{font-size:12px}.word-index{font-size:10px;padding-right:10px}.word-row .tag{font-size:9px;padding:5px 6px}.word-open{display:none}.scene-dojo .scene-interior{min-height:319px;padding:29px 12px 28px}.fighter-nameboard{padding:17px 12px 19px}.fighter-nameboard h2{font-size:32px;letter-spacing:2px;margin:17px 0 12px}.fighter-nameboard>.tag{font-size:9px;padding:5px 7px;letter-spacing:0}.fighter-nameboard p{font-size:11px;line-height:1.9;margin:13px 0}.fighter-rank{font-size:11px;gap:5px;padding-top:12px}.fighter-rank>span{font-size:10px}.fighter-rank>.icon{width:15px;height:15px}.medal-cabinet{margin-top:24px}.medal-cabinet .badges{padding:17px 12px 10px;gap:17px 12px}.medal-cabinet .badge-card{padding:15px 8px 17px}.medal-cabinet .badge-mark{width:68px;height:68px;margin-top:16px}.medal-cabinet .badge-mark .icon{width:28px;height:28px}.medal-cabinet .badge-card h3{font-size:12px;letter-spacing:-.5px}.medal-cabinet .badge-card p{font-size:10px;min-height:29px}.medal-cabinet .badge-card .button{font-size:10px;padding:8px 3px;min-height:39px}.medal-cabinet .badge-card.equipped::after{font-size:9px;top:12px;right:-25px}.cabinet-note{font-size:10px;padding:15px 18px 12px}.scene-settings .scene-interior{min-height:107px;padding:29px 17px}.settings-sign{font-size:11px;gap:8px;letter-spacing:1px}.settings-sign .icon{width:21px;height:21px}.settings-ledger{margin-top:22px}.settings-ledger .settings-list{padding:2px 17px 4px}.settings-ledger .setting-row{padding:20px 0;gap:13px}.settings-ledger .setting-row strong{font-size:12px}.settings-ledger .setting-row p{font-size:10px;line-height:1.75;max-width:175px}.settings-ledger .setting-row select{font-size:11px;max-width:113px;padding:8px 7px;min-height:41px}.settings-ledger .text-button{font-size:11px;white-space:nowrap}.settings-ledger input[type=checkbox]{width:23px;height:23px;margin-right:4px}.tournament-gate{padding:14px 16px 16px;margin-bottom:17px;border-radius:13px;border-width:2px}.tournament-gate .facility-kicker{font-size:9px}.tournament-gate h1{font-size:23px;margin:5px 0 0;letter-spacing:2px}.tournament-gate p{display:none}.tournament-tag{font-size:11px;letter-spacing:0;padding:8px 9px;right:14px;border-width:3px}.ring-frame{border-width:2px;border-radius:15px;padding:5px}.ring-nameplate{font-size:10px;letter-spacing:4px;padding:6px 0 10px}.ring-frame .battle-frame{border-radius:9px}.in-match .tournament-gate,.in-match .ring-nameplate{display:none}.in-match .ring-frame{border:0;padding:0;border-radius:0;box-shadow:none}.in-match .ring-frame .battle-frame{border:0;border-radius:0}.in-match[data-page=battle] .content{padding:0;max-width:460px}body[data-page=lesson] .content{padding:14px 10px 22px}.lesson-stage{border-width:2px;border-radius:15px;padding:16px 14px 6px}.lesson-stage .lesson-top{padding:8px 10px;gap:12px;border-radius:10px;margin-bottom:19px}.lesson-stage .lesson-top span{font-size:12px}.lesson-stage .lesson-top .close-button{width:29px;height:29px}.lesson-stage .lesson-top .close-button .icon{width:19px;height:19px}.lesson-stage .lesson-top .track{height:9px}.lesson-heading .facility-kicker{font-size:10px;letter-spacing:1px}.lesson-heading h1{font-size:18px;letter-spacing:0;margin-top:7px}.lesson-stage .flashcard{padding:21px 15px 23px;margin:18px 0 20px;border-width:5px}.lesson-stage .flashcard ruby{font-size:40px;margin-top:20px}.lesson-stage .flashcard rt{font-size:14px}.lesson-stage .flashcard .meaning{font-size:24px;margin-top:5px}.lesson-stage .flashcard .category{font-size:10px;letter-spacing:2px}.lesson-stage .flashcard .example{font-size:12px;line-height:1.85}.flashcard-seal{right:12px;bottom:16px;font-size:10px;padding:3px 1px}.lesson-stage .audio-button{font-size:12px;padding:8px 12px;gap:6px}.lesson-stage .audio-button .icon{width:19px;height:19px}.lesson-stage .button.full{font-size:12px;min-height:47px;padding:11px 8px}.lesson-stage .choices{gap:11px}.lesson-stage .choice{font-size:14px;padding:13px 9px;gap:7px;min-height:64px}.choice-mark{width:21px;height:21px;font-size:10px}.lesson-stage .lesson-feedback{font-size:12px;padding:12px 13px;margin:18px 0}.lesson-companion{gap:2px;margin-top:10px}.lesson-companion .mini-actor{width:79px;height:82px}.lesson-companion p{font-size:11px}.lesson-companion small{font-size:9px;line-height:1.8;max-width:180px}.scene-complete .scene-interior{min-height:300px;padding:36px 12px 22px}.completion-paper{padding:34px 10px 20px;width:58%}.completion-paper .paper-top{font-size:10px;letter-spacing:0;margin-bottom:15px}.completion-paper h2{font-size:24px;letter-spacing:2px;margin:15px 0 12px}.completion-paper p{font-size:10px;line-height:1.9}.completion-seal{font-size:9px;padding:7px 9px;letter-spacing:1px;top:-11px}.completion-reward{font-size:27px;gap:5px}.completion-reward .icon{width:23px;height:23px}.completion-reward small{font-size:11px}.scene-complete .scene-character{width:49%;height:180px;right:-1%;bottom:30px}.scene-complete .fighter-speech{width:121px;top:-45px;left:49%;font-size:10px}.scene-complete .finish-actions{flex-direction:row;gap:10px}.scene-complete .finish-actions .button{font-size:12px;min-height:44px;padding:9px 8px;gap:6px}.scene-complete .finish-actions .icon{width:18px;height:18px}}
@media(max-width:359px){.review-count .clear-title{font-size:16px}.training-paper{padding-left:9px;padding-right:9px}.training-paper p{font-size:10px}.training-paper .button{font-size:11px}.scene-review .scene-character,.scene-dojo .scene-character{height:159px;bottom:39px}.scene-review .fighter-speech,.scene-dojo .fighter-speech{width:111px;top:-39px;font-size:9px}.dojo-motto small{display:none}.dojo-motto{font-size:10px}.dojo-motto a{font-size:9px}.fighter-nameboard h2{font-size:28px}.fighter-nameboard p{font-size:10px}.fighter-rank{gap:3px;font-size:10px}.fighter-rank>span{font-size:9px}.medal-cabinet .badge-card h3{font-size:10px}.medal-cabinet .badge-card .button{font-size:9px}.scene-complete .scene-character{height:155px}.completion-paper h2{font-size:20px}.completion-paper p{font-size:9px}.completion-paper .paper-top{font-size:9px}.scene-complete .fighter-speech{width:108px;font-size:9px}.scene-complete .finish-actions .button{font-size:11px}.settings-ledger .setting-row select{max-width:96px;font-size:10px}.settings-ledger .setting-row{gap:10px}.lesson-stage{padding-left:11px;padding-right:11px}.lesson-heading h1{font-size:16px}.lesson-stage .choice{font-size:12px;gap:5px}.tournament-tag{font-size:10px;right:11px;padding:7px 6px}.tournament-gate h1{font-size:21px}}
.fighter-speech{text-wrap:balance}.matchup-scene strong{width:110px;white-space:nowrap;letter-spacing:1px;font-size:16px}
@media(max-width:700px){.tournament-gate{padding-top:10px;padding-bottom:10px;margin-bottom:13px}.tournament-gate h1{font-size:21px;margin-top:4px}.tournament-gate .facility-kicker{font-size:8px}.ring-nameplate{padding:3px 0 7px;font-size:9px}}

/* The fifteen-day tournament on the ranking page, and its announcement. */
.basho-board{margin:0 0 18px}
.basho-rank-line{display:flex;align-items:baseline;gap:14px;padding:16px 20px 0;flex-wrap:wrap;color:#684632}
.basho-rank-line strong{font-size:26px;color:#a73b2e}
.basho-rank-line span{font-weight:800}
.basho-rank-line .charm-count{margin-left:auto;color:#be7734;font-size:13px}
.basho-board .star-row{display:grid;grid-template-columns:repeat(15,1fr);gap:4px;margin:12px 20px 8px}
.star-cell{aspect-ratio:1;display:grid;place-items:center;border:1px solid #d9b06f;border-radius:5px;background:#fffdf5;font-size:14px;font-weight:900;line-height:1;color:#684632;min-width:0}
.star-cell i{width:4px;height:4px;border-radius:50%;background:#d9b06f}
.star-cell.win,.star-cell.fusen-win{color:#be7734;background:#fff1cd;border-color:#be7734}
.star-cell.loss,.star-cell.fusen-loss{color:#333;background:#eee4d2}
.star-cell.today{box-shadow:0 0 0 2px #a73b2e inset}
.basho-board .board-caption{padding:0 20px;font-weight:700}
.basho-history{padding:0 20px 8px}
.basho-board .world-notice{margin:8px 20px 16px}
.announce-body{text-align:center}
.announce-body .star-row{display:grid;grid-template-columns:repeat(15,1fr);gap:4px;margin:12px 0}
.announce-record{font-size:30px;font-weight:900;color:#a73b2e;margin:0}
.announce-body h3{margin:12px 0 6px;font-size:22px}
.announce-rank{font-size:18px;margin:0 0 6px}
.announce-rank strong{color:#a73b2e;font-size:24px}
.announce-body .button{margin-top:14px;width:100%}
@media(max-width:400px){.star-cell{font-size:11px;border-radius:3px}.basho-board .star-row,.announce-body .star-row{gap:3px}.basho-rank-line{padding:12px 14px 0}.basho-board .star-row{margin:10px 14px 6px}.basho-board .board-caption,.basho-history{padding-left:14px;padding-right:14px}}

/* One ranking: the tournament's. The paper carries the stars; XP is the amount of practice. */
.banzuke-paper strong small{font-size:12px;font-weight:800;color:#a08153;margin-left:6px}
.banzuke-paper .keiko-amount{margin:6px 0 0;font-size:12px;color:#a08153;font-weight:800}.banzuke-paper .keiko-amount b{color:#684632;font-size:14px}
.banzuke-paper>p{margin:4px 0 0;font-size:13px;font-weight:800;color:#a08153}
.basho-strip{margin:0 0 14px;padding:12px 14px 10px;border:2px solid #c19559;border-radius:10px;background:#fff6dc;color:#684632}
.basho-strip .star-row{display:grid;grid-template-columns:repeat(15,1fr);gap:4px;margin:0 0 8px}.basho-strip p{margin:0;font-size:13px;line-height:1.6;font-weight:700}
.rank-milestones-ten{max-width:none;justify-content:flex-start;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.rank-milestones-ten::-webkit-scrollbar{display:none}
.rank-milestones-ten .rank-step{flex:none;width:52px;font-size:12px}.rank-milestones-ten .rank-step strong{white-space:nowrap;font-size:12px}
@media(max-width:400px){.basho-strip{padding:10px 10px 8px}.basho-strip .star-row{gap:3px}.basho-strip p{font-size:12px}}
.announce-join{margin:10px 0 14px;padding:10px 12px;border-radius:12px;background:#fff5d6;border:2px solid #e6c56b;font-weight:800;color:#6b4a0e}
/* 会話で選ぶ問題（dialogue-quiz.js）：カードの中に会話の絵（720角の canvas）。スマホでも止めたときに4択が見えるよう、もう一度きくは絵の右下に重ねる */
.lesson-stage .dialogue-card{position:relative;border:6px double #c49d62;border-radius:9px;background:linear-gradient(110deg,#fff9e7,#fff0cc);padding:8px;margin:20px 0 23px;box-shadow:0 6px 0 #50351d66}.dialogue-card canvas{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:5px;background:#f8f3e9}.lesson-stage .dialogue-card .dialogue-replay{position:absolute;right:16px;bottom:18px;margin:0;box-shadow:0 2px 6px #50351d40}.lesson-stage .dialogue-card .dialogue-replay[hidden]{display:none}.lesson-stage.is-correct .dialogue-card{border-color:#edb942;box-shadow:0 0 0 3px #ffe59755,0 12px 26px #2d170b40}.dialogue-choices .choice ruby{font-size:inherit}
@media(max-width:700px){.lesson-stage .dialogue-card{padding:5px;margin:12px 0 14px;border-width:5px}.lesson-stage .dialogue-card .dialogue-replay{right:11px;bottom:13px;padding:6px 10px}}
