@charset "UTF-8";
:root{--ink:#263e32;--muted:#6d7765;--paper:#f8f2df;--green:#31533c;--red:#b94d32;--line:#d4d2b7;--gold:#c58b35;--shadow:0 5px 0 #263e3212;--font:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f4f0df;color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.7;background-image:radial-gradient(#5c63450c .65px,transparent .65px);background-size:5px 5px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.44}button:focus-visible,a:focus-visible{outline:3px solid #b75b38;outline-offset:4px}button:hover:not(:disabled){filter:brightness(1.035)}a{color:inherit}.masthead{max-width:1344px;margin:auto;padding:23px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font:900 23px/1.1 ui-monospace,monospace;letter-spacing:2px}.brand small{font-size:9px;letter-spacing:2.2px;display:block;margin-top:8px;font-weight:500}.brand-mark{font:30px/1.3 "Hiragino Mincho ProN",serif;border:2px solid var(--green);background:#e1e8cd;width:43px;height:48px;box-shadow:3px 3px 0 #8ba07a;text-align:center;transform:rotate(-5deg)}.header-actions{display:flex;gap:23px;align-items:center}.review-label{font:10px ui-monospace,monospace;letter-spacing:1.5px;color:var(--muted)}.quiet{border:0;background:none;text-decoration:underline;text-underline-offset:4px;font-size:12px}.intro{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:40px 0 32px}main{max-width:1264px;padding:0 40px;margin:auto}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.7px;color:var(--muted);margin:0 0 8px}h1,h2,p{margin-top:0}h1{font-size:34px;letter-spacing:.025em;line-height:1.4;margin:4px 0 11px;font-weight:800}h2{font-size:20px;line-height:1.4;margin:0;font-weight:750}.lead{font-size:13px;color:var(--muted);margin:0}.mobile-break{display:none}.journey{display:grid;gap:10px;font-size:12px;font-weight:650;min-width:200px}.journey div{color:#7b806d;display:flex;align-items:center;gap:12px}.journey span{font:11px ui-monospace,monospace;border:1px solid #b5b99c;padding:1px 6px}.journey .done{color:var(--green)}.journey .done span{background:var(--green);color:var(--paper);border-color:var(--green)}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:23px}.panel{border:1px solid var(--line);background:#fbf7e9;box-shadow:var(--shadow)}.panel-heading{display:flex;justify-content:space-between;align-items:center;padding:19px 21px 17px}.panel-heading .eyebrow{margin-bottom:3px}.panel-heading h2{font-size:18px}.location-tag{font-size:10px;letter-spacing:.05em;color:var(--muted);display:flex;gap:5px;align-items:center}.location-tag i{width:7px;height:7px;background:#d7a343;border-radius:50%}.map-frame{margin:0 15px;position:relative;border:4px solid #385b3e;box-shadow:inset 0 0 0 3px #a0b280,0 0 0 1px #293e2b;background:#88ad64;padding:4px}.map{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));aspect-ratio:16/10;position:relative;overflow:hidden;background:#8bae68;isolation:isolate}.tile{border:0;padding:0;background:#a2bb76;position:relative;border-radius:0;display:grid;place-items:center;aspect-ratio:1;overflow:visible}.tile:nth-child(3n){background:#a6bf7a}.tile.lawn:after{content:"";width:2px;height:2px;box-shadow:4px 4px #63894b,6px 2px #63894b;position:absolute;bottom:7px;right:10px;opacity:.5}.tile.path{background:#dfcf97}.tile.path:nth-child(3n){background:#d7c48c}.tile.path:after{content:"";width:3px;height:2px;background:#b4a36d;opacity:.6;position:absolute;bottom:9px;right:9px}.tile.pond{background:#71aba3;box-shadow:inset 0 0 0 2px #8fbba3}.tile.pond:after{content:"";width:40%;height:2px;background:#d7e6bc;box-shadow:7px 8px #b7d4b1}.tile.house{background:#b8ab76}.tile.house:after{content:"";position:absolute;inset:8% 3%;background:#b6753b;border:3px solid #4c5b3b;box-shadow:inset 0 6px #654b38,inset 0 11px #80553e,inset 0 -4px #80553e}.tile.tree{background:#799b58}.tile.tree svg{width:120%;height:125%;z-index:2;position:absolute;bottom:0;pointer-events:none}.tile.flowers:after{content:"✣";color:#efe5a2;position:absolute;bottom:4px;right:4px;font-size:14px;text-shadow:-12px -3px #cd7a4d}.tile svg{display:block;width:90%;height:90%;image-rendering:pixelated;position:relative;z-index:3;pointer-events:none}.tile.spot{cursor:pointer}.tile.spot:hover{outline:2px solid #fff2b8;outline-offset:-3px;z-index:5}.tile.found{filter:saturate(.55)}.tile.found:before{content:"✓";font-size:10px;background:#244e37;color:#fff4cb;z-index:6;position:absolute;right:0;top:0;width:13px;height:13px;line-height:13px}.tile.npc:before{content:"…";position:absolute;top:-10px;right:-7px;background:#fff8df;color:#385b3e;border:1px solid #385b3e;padding:0 5px;font-size:12px;line-height:17px;z-index:7}.player{position:absolute;inset:-15% -5% -1%;z-index:9;pointer-events:none;filter:drop-shadow(1px 2px 0 #263e3266)}.player svg{width:100%;height:100%}.map-stamp{position:absolute;right:10px;top:8px;font:10px ui-monospace,monospace;background:#f9f0cbbf;padding:2px 6px;pointer-events:none;z-index:10}.world-controls{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:16px 19px 0}.world-controls p{font-size:12px;margin:0;color:#5c6854}.primary{border:1px solid #203f2b;background:var(--green);color:#fff7db;padding:10px 16px;box-shadow:0 3px 0 #203f2b;font-weight:700;font-size:12px;white-space:nowrap}.primary kbd{margin-left:10px;background:#f7edce;color:#31533c;padding:2px 5px;border:0;font:11px ui-monospace,monospace}.primary:active{transform:translateY(2px);box-shadow:0 1px 0 #203f2b}.map-bottom{margin:11px 19px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px}.map-bottom p{font-size:10px;color:var(--muted);margin:0}.map-bottom p span{padding:0 4px}.dpad{display:flex;gap:3px}.dpad button{border:1px solid var(--line);background:#f0ecd8;min-width:29px;height:27px;line-height:1;font-size:16px}.message{display:flex;gap:12px;background:#ecefdc;border-top:1px solid #d7dcc1;padding:16px 20px;min-height:88px}.message-icon{font-size:24px;color:#ad6a32}.message strong{font-size:13px}.message p{font-size:11px;color:var(--muted);margin:4px 0 0}.side-column{display:flex;flex-direction:column;gap:20px}.guide-panel{padding:23px 21px;display:flex;flex-direction:column;align-items:start;position:relative;overflow:hidden}.guide-panel:after{content:"✦";position:absolute;right:20px;top:30px;font-size:36px;color:#cfb46c}.guide-portrait{background:#dce5be;border:1px solid #b4c19a;width:70px;height:70px;margin-bottom:15px}.guide-portrait svg{width:100%;height:100%;image-rendering:pixelated}.guide-panel h2{font-size:17px}.guide-panel p{font-size:12px;color:#56614e;margin:11px 0 12px;line-height:1.9}.text-button{background:none;border:0;border-bottom:1px solid #7d8c6a;padding:0 0 3px;font-size:11px;font-weight:700}.count-pill{font:12px ui-monospace,monospace;background:#e9ecd7;padding:4px 9px;border:1px solid #c5cdae}.bag-panel .panel-heading{padding-bottom:12px}.bag-stats{display:flex;margin:0 20px 18px;padding-top:14px;border-top:1px solid var(--line);justify-content:space-between;gap:6px}.bag-stats div{display:flex;flex-direction:column}.bag-stats strong{font:21px ui-monospace,monospace}.bag-stats span{font-size:9px;color:var(--muted);margin-top:5px}.muted{font-size:11px;color:var(--muted);margin:0 20px 18px}.secondary{background:#f8f3e1;border:1px solid #b6c1a0;padding:9px 13px;box-shadow:0 2px #d7dcc3;font-size:12px;font-weight:650}.full-width{width:calc(100% - 40px);margin:0 20px 20px;display:flex;justify-content:space-between}.tiny-note{display:flex;gap:10px;padding:1px 4px;font-size:11px;color:var(--muted)}.tiny-note>span{font-size:23px;color:var(--red)}.tiny-note p{margin:0}.tiny-note strong{color:#596547;font-weight:650}.craft-section{padding-top:39px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px}.section-heading .eyebrow{margin-bottom:5px}.section-heading>p{font-size:11px;color:var(--muted);margin:0;line-height:1.8}.recipes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.recipe{border:1px solid #c9cdb4;background:#f9f5e6;padding:15px 16px;box-shadow:var(--shadow);display:grid;gap:12px}.recipe-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.recipe-equation{display:flex;gap:7px;align-items:center}.recipe-equation b{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:29px;font-weight:600;line-height:1.3}.recipe-equation small{color:#8d947b;font-size:14px}.recipe-equation b:last-child{color:#9e562e}.recipe-points{font:11px ui-monospace,monospace;color:#697459}.recipe-detail{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--muted);align-items:center}.recipe button{font-size:11px;padding:5px 12px;min-width:63px}.collection-section{padding-top:39px}.filter-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}.filter-tabs button{padding:8px 13px;background:none;border:0;font-size:11px;color:var(--muted)}.filter-tabs button.active{border-bottom:2px solid var(--green);color:var(--ink);font-weight:700}.collection{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:15px}.card{position:relative;background:#fbf4dd;border:2px solid #37543b;padding:9px 10px 8px;box-shadow:3px 4px 0 #a9ae8b,0 0 0 1px #d7c79c;display:flex;flex-direction:column;align-items:center;min-width:0;isolation:isolate}.card:before{content:"";position:absolute;inset:4px;border:1px solid #8b9b72;pointer-events:none;z-index:-1}.card:after{content:"◆";position:absolute;left:5px;top:0;color:#b25232;font-size:10px}.card.fused{border-color:#345b51;background:#fbf4d8;box-shadow:3px 4px 0 #b1aa77}.card.fused:before{border-color:#c2943b}.card.fused:after{color:#b88724}.card-kanji{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP",serif;font-size:49px;line-height:1.45;font-weight:600;color:#1d241e;letter-spacing:0}.card-reading{font-size:10px;font-weight:650;line-height:1.5;min-height:15px;white-space:nowrap}.card-art{height:65px;width:78px;margin:5px 0}.card-art svg{display:block;width:100%;height:100%;image-rendering:pixelated}.card-english{font:800 10px/1.4 ui-monospace,monospace;letter-spacing:.7px;text-transform:uppercase;text-align:center;min-height:14px}.card-power{font:800 12px/1.4 ui-monospace,monospace;border:1px solid #879775;min-width:65px;text-align:center;padding:2px 7px;margin-top:7px;background:#f7f0da}.card-count{position:absolute;right:8px;top:8px;background:#e3e8cb;font:11px ui-monospace,monospace;padding:1px 5px}.card-materials{font-size:9px;margin-top:6px;color:#866d3c;text-align:center;min-height:14px}.empty{border:1px dashed var(--line);padding:35px;text-align:center;grid-column:1/-1;color:var(--muted)}footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin:45px 0 0;padding:23px 0 30px;gap:20px}.brand-mini{font:700 12px ui-monospace,monospace;letter-spacing:1.5px}footer p{font-size:10px;color:var(--muted);margin:0}footer button{font-size:10px}dialog{border:2px solid var(--green);background:var(--paper);color:var(--ink);width:min(690px,calc(100% - 28px));padding:0;box-shadow:8px 9px 0 #172c2440;max-height:90dvh}dialog::backdrop{background:#182b24a8;backdrop-filter:blur(3px)}.dialog-shell{padding:30px;position:relative}.dialog-close{position:absolute;top:10px;right:12px;border:0;background:none;font-size:25px;line-height:1;z-index:5}.dialog-shell h2{font-size:24px;margin:5px 0 15px}.dialog-shell p{font-size:13px}.dialog-shell .primary{margin-top:12px}.rules-list{padding-left:20px;font-size:12px;line-height:2}.rules-list li{margin-bottom:7px}.dialog-note{font-size:10px!important;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}.found-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:25px 0}.battle-top{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:18px}.battle-top h2{font-size:20px;margin:0}.round-dots{display:flex;gap:6px}.round-dots span{border:1px solid #b5bea0;min-width:24px;height:24px;text-align:center;font:11px/23px ui-monospace,monospace;background:#eee9d5}.round-dots .won{background:#345b3e;color:#fff1c9}.round-dots .lost{background:#ae6547;color:#fff5de}.battle-stage{display:grid;grid-template-columns:1fr 40px 1fr;gap:18px;align-items:center;margin:20px auto;max-width:410px}.battle-vs{text-align:center;font:700 13px ui-monospace,monospace;color:#a36a3c}.battle-side>p{text-align:center;font-size:11px;font-weight:700;margin:0 0 9px}.card-back{height:222px;border:3px solid #3e6044;box-shadow:3px 4px #94a278;background:repeating-linear-gradient(45deg,#3d624b 0 7px,#34563e 7px 14px);display:grid;place-items:center;position:relative}.card-back:after{content:"札";font:48px "Hiragino Mincho ProN",serif;border:1px solid #b5c29a;padding:12px;color:#ede7c6}.hand-title{font-size:11px;font-weight:700;display:flex;justify-content:space-between;color:#627451;margin:14px 0 10px}.battle-hand{display:flex;gap:7px;flex-wrap:wrap}.hand-option{border:1px solid #b9c3a2;padding:6px 9px;background:#f8f2dd;display:flex;gap:5px;align-items:baseline;font-size:19px;min-height:43px}.hand-option small{font:10px ui-monospace,monospace;color:#6f795e}.hand-option.selected{outline:2px solid #3a5c40;outline-offset:-3px;background:#e3e9cc}.hand-option.fusion{border-color:#bc9042}.hand-option:disabled{opacity:.4}.battle-message{background:#e8ecd6;border-left:3px solid #758c5b;padding:10px 13px;font-size:12px;margin-top:15px}.battle-actions{display:flex;justify-content:flex-end}.match-summary{font-size:22px!important;text-align:center;font-weight:750;margin:10px 0;color:var(--green)}.round-history{padding:0;list-style:none;font-size:12px}.round-history li{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0}.badge{font-size:10px;color:#8c6b31;background:#eee4c3;padding:3px 8px}.round-draw{font-size:11px;color:var(--muted)}
@media(min-width:1400px){main{max-width:1320px}.play-layout{grid-template-columns:minmax(0,1fr) 300px}.card-art{height:77px}}
@media(max-width:1000px){.play-layout{grid-template-columns:minmax(0,1fr) 250px}.world-controls{flex-wrap:wrap}.world-controls .primary{margin-left:auto}.collection{grid-template-columns:repeat(5,minmax(0,1fr))}.card-kanji{font-size:43px}.map-bottom{flex-wrap:wrap}.recipes{grid-template-columns:repeat(2,minmax(0,1fr))}.header-actions{gap:10px}.review-label{display:none}.intro h1{font-size:29px}}
@media(max-width:760px){main{padding:0 18px}.masthead{padding:18px}.brand{font-size:19px}.brand small{font-size:7px}.header-actions .quiet{font-size:10px}.intro{padding:27px 0 23px;display:block}.intro h1{font-size:28px}.journey{display:flex;gap:15px;min-width:0;margin-top:22px}.journey div{font-size:9px;gap:5px}.journey span{font-size:9px;padding:1px 4px}.play-layout{grid-template-columns:1fr;gap:18px}.side-column{display:grid;grid-template-columns:1fr 1fr;gap:14px}.guide-panel{padding:17px}.guide-portrait{width:48px;height:48px;margin-bottom:10px}.guide-panel:after{font-size:26px;top:15px}.guide-panel h2{font-size:14px}.guide-panel p{font-size:10px}.guide-panel .text-button{font-size:9px}.bag-panel .panel-heading{padding:17px 12px 12px}.bag-panel .panel-heading h2{font-size:14px}.bag-stats{margin:0 12px 10px;gap:4px}.bag-stats strong{font-size:17px}.bag-stats span{font-size:8px}.muted{font-size:9px;margin:0 12px 12px}.full-width{width:calc(100% - 24px);margin:0 12px 15px;font-size:10px}.tiny-note{grid-column:1/-1;padding:0 4px}.tiny-note p br{display:none}.tiny-note p{line-height:1.8}.tiny-note>span{font-size:18px}.collection{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.card{padding:8px 6px}.card-kanji{font-size:39px}.card-art{width:65px;height:58px}.card-reading{font-size:8px}.card-english{font-size:8px;letter-spacing:0}.card-power{font-size:10px}.card-materials{font-size:8px}.card-count{font-size:9px;top:7px;right:6px}.section-heading{align-items:start}.section-heading h2{font-size:19px}.section-heading>p{font-size:9px}.craft-section,.collection-section{padding-top:28px}.recipe{padding:13px}.recipe-equation b{font-size:25px}.recipe-points{font-size:10px}.recipe-detail{font-size:9px}.filter-tabs button{font-size:10px;padding:6px 8px}footer{flex-wrap:wrap;gap:13px}.brand-mini{font-size:11px}footer p{font-size:9px}.world-controls{margin:13px 15px 0}.world-controls p{font-size:11px}.map-frame{margin:0 10px}.map-bottom{margin:10px 15px 13px}.map-bottom p{font-size:9px}.dialog-shell{padding:26px 20px}.battle-stage{gap:12px;grid-template-columns:1fr 25px 1fr}.battle-stage .card-kanji{font-size:52px}.battle-stage .card-reading{font-size:10px}.battle-stage .card-art{height:67px}.found-cards{gap:10px}.found-cards .card-kanji{font-size:44px}.world-controls .primary{padding:8px 12px}}
@media(max-width:430px){.mobile-break{display:block}.collection{grid-template-columns:repeat(3,minmax(0,1fr))}.section-heading>p{max-width:140px}.recipes{gap:10px}.recipe-equation{gap:4px}.recipe-equation b{font-size:24px}.recipe-points{font-size:9px}.recipe-detail{flex-wrap:wrap}.recipe button{margin-left:auto}.map-bottom p{font-size:8px}.panel-heading{padding:16px}.journey{gap:10px}.card-art{height:62px}.location-tag{font-size:9px}.world-controls{gap:7px}.world-controls p{max-width:150px}.battle-stage{margin:18px auto}.card-back{height:227px}.dialog-shell h2{font-size:21px}.guide-panel p{font-size:9px}}
.tile.house{background:#a2bb76}.tile.house:after{display:none}.tile.house .map-house{position:absolute;bottom:0;right:0;width:200%;height:200%;z-index:5}
.card-shape{font-size:10px;line-height:1.6;text-align:center;margin-top:6px;color:#556e4a;overflow-wrap:anywhere}.recipe-shape{font-size:11px;line-height:1.7;color:#587046;margin:0;border-top:1px solid #d8ddc4;padding-top:8px}.shape-lesson{background:#e9edda;border:1px solid #bac8a5;padding:15px;text-align:center;margin:18px 0}.shape-lesson strong,.shape-lesson>span{display:block;font:22px/1.7 "Hiragino Mincho ProN","Yu Mincho",serif}.shape-lesson>span{color:#966039}.shape-lesson p{font-size:11px;margin:8px 0 0}.hand-option{flex-wrap:wrap;max-width:100%}.hand-option small{white-space:normal}
@media(max-width:760px){.recipe-top{flex-direction:column;align-items:flex-start;gap:5px}.recipe-points{align-self:flex-end}.recipe-equation{gap:2px}.recipe-equation b{font-size:22px}.recipe-equation small{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

/* A/B playtest: one task per screen, camera follows a continuous walker. */
[hidden]{display:none!important}.masthead{padding:9px 24px;min-height:53px}.brand{font-size:19px}.brand-mark{width:32px;height:37px;font-size:25px}.brand small{font-size:7px;margin-top:4px}.header-actions{gap:13px}.header-actions .secondary{font-size:11px;padding:5px 11px}main{padding:0 22px;max-width:1320px}.intro{padding:9px 0;min-height:55px}.intro h1{font-size:22px;margin:0;line-height:1.4}.intro .eyebrow{font-size:8px;margin:0}.journey{display:flex;gap:14px;min-width:0}.journey div{font-size:10px;gap:5px}.journey span{font-size:9px;padding:0 4px}.mode-bar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:5px 0 9px}.mode-bar button{padding:5px 12px;font-size:11px;border:1px solid #bac3a2;background:#f7f1de}.mode-bar button.active{background:#dce6c6;border-color:#31533c;box-shadow:inset 0 -2px #31533c}.mode-bar b{display:inline-block;margin-right:5px}.mode-bar p{font-size:10px;color:var(--muted);margin:0 0 0 8px}.screen-tabs{display:flex;gap:7px;border-bottom:1px solid var(--line);margin-bottom:10px}.screen-tabs button{background:transparent;border:0;padding:6px 14px;font-size:11px}.screen-tabs button.active{border-bottom:3px solid var(--green);font-weight:700}.play-layout{grid-template-columns:minmax(0,1fr) 245px;gap:17px}.world-panel .panel-heading{padding:9px 16px}.world-panel .panel-heading h2{font-size:16px}.world-panel .panel-heading .eyebrow{font-size:8px}.world-panel .map-frame{margin:0 12px;padding:0}.map-viewport{position:relative;overflow:hidden;width:100%;height:max(190px,calc(100dvh - 410px));max-height:440px;background:#a2bb76;touch-action:pan-y}.map{position:absolute;left:0;top:0;aspect-ratio:auto;overflow:visible;transform-origin:0 0;will-change:transform;gap:0;display:grid}.tile{width:100%;height:100%;aspect-ratio:auto;touch-action:manipulation}.player{inset:auto;left:0;top:0;z-index:12;position:absolute;pointer-events:none;will-change:transform}.player svg{width:100%;height:100%}.player[data-direction=left] svg{transform:scaleX(-1)}.player.is-walking[data-step="0"] svg rect[y="10"][x="4"],.player.is-walking[data-step="0"] svg rect[y="10"][x="5"],.player.is-walking[data-step="1"] svg rect[y="10"][x="8"],.player.is-walking[data-step="1"] svg rect[y="10"][x="9"]{transform:translateY(-1px)}.player.is-walking svg{filter:drop-shadow(0 1px #263e3230)}.evolution:before{content:"✦";position:absolute;z-index:5;top:0;right:0;font-size:12px;background:#fff2bb;padding:0 3px;border:1px solid #9b7835}.spring-star{position:absolute;color:#fff1a7;z-index:5;font-size:20px;top:-5px}.world-controls{margin:9px 14px 0;gap:10px}.world-controls p{font-size:10px}.world-controls .primary{font-size:11px;padding:7px 12px}.map-bottom{margin:8px 14px 10px;gap:9px;flex-wrap:wrap}.map-bottom p{font-size:9px;flex:1}.scene-shortcuts{display:flex;gap:4px}.scene-shortcuts button{font-size:9px;padding:4px 7px;border:1px solid #b6c1a0;background:#f8f3e1}.dpad{gap:2px}.dpad button{min-width:25px;width:27px;height:27px;touch-action:none}.world-panel .message{min-height:48px;padding:8px 14px;gap:9px}.message strong{font-size:11px}.message p{font-size:10px;margin:1px 0 0}.message-icon{font-size:20px}.side-column{gap:12px;max-height:calc(100dvh - 208px);overflow-y:auto}.guide-panel{padding:12px 15px;flex-direction:row;gap:12px;align-items:center;flex-shrink:0}.guide-portrait{width:48px;height:48px;flex-shrink:0;margin:0}.guide-panel:after{display:none}.guide-panel .eyebrow{font-size:8px;margin:0}.guide-panel h2{font-size:13px}.guide-panel p{font-size:10px;margin:6px 0}.guide-panel .text-button{font-size:9px}.bag-panel .panel-heading{padding:12px 14px}.bag-panel .panel-heading h2{font-size:14px}.bag-stats{margin:0 14px 12px}.bag-stats strong{font-size:19px}.bag-stats span{font-size:9px}.muted{margin:0 14px 12px;font-size:10px}.full-width{width:calc(100% - 28px);margin:0 14px 13px;font-size:11px}.craft-section,.collection-section{padding-top:10px}body[data-screen=field] footer{display:none}footer{margin-top:24px;padding:16px 0}.fusion-result{width:155px;margin:18px auto}.fusion-sum{text-align:center}.npc-portrait{width:72px;height:72px;margin:12px auto}.npc-portrait svg{width:100%;height:100%}.dialog-shell{padding:24px}.dialog-shell .found-cards{margin:15px 0}.shape-lesson{margin:12px 0;padding:10px}.shape-lesson strong,.shape-lesson>span{font-size:19px}
body[data-screen=battle]{overflow:hidden}body[data-screen=battle] .masthead,body[data-screen=battle] .intro,body[data-screen=battle] .mode-bar,body[data-screen=battle] .screen-tabs,body[data-screen=battle] footer{display:none}body[data-screen=battle] main{padding:0;max-width:none}.battle-screen{height:100dvh;max-width:1120px;margin:0 auto;padding:10px 24px;position:relative;overflow:hidden}.battle-screen-header{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:38px;border-bottom:1px solid #cbd2b6;padding-bottom:7px}.battle-screen-header>strong{font:12px ui-monospace,monospace;letter-spacing:1px}.battle-screen-header>div{display:flex;gap:7px}.battle-screen-header button{font-size:10px;padding:5px 10px}#battle-content{max-height:calc(100dvh - 67px);overflow:auto;overscroll-behavior:contain;padding:8px 6px 12px}.battle-top{padding-bottom:8px;margin-bottom:6px}.battle-top h2{font-size:19px}.battle-top .eyebrow{font-size:9px;margin-bottom:2px}.battle-stage{margin:8px auto 10px;max-width:340px;gap:20px}.battle-side>p{font-size:10px;margin-bottom:5px}.battle-stage .card{padding:5px 8px}.battle-stage .card-kanji{font-size:35px;line-height:1.3}.battle-stage .card-reading{font-size:8px;min-height:12px}.battle-stage .card-art{height:41px;margin:2px 0;width:58px}.battle-stage .card-english{font-size:8px;min-height:11px}.battle-stage .card-power{font-size:10px;margin-top:4px;padding:1px 5px}.battle-stage .card-materials,.battle-stage .card-shape{font-size:8px;margin-top:3px;min-height:10px}.card-back,.pass-card{height:163px}.pass-card{display:grid;place-items:center;background:#eee6cc;border:2px dashed #97a87c;font:18px ui-monospace,monospace}.card-back:after{font-size:40px;padding:8px}.hand-title{margin:8px 0;gap:10px;font-size:10px}.battle-hand{display:grid;grid-auto-flow:column;grid-auto-columns:122px;justify-content:start;overflow-x:auto;padding:5px 5px 10px;gap:12px;scroll-snap-type:x proximity;max-width:100%;touch-action:pan-x}.hand-card{position:relative;background:transparent;border:0;padding:0;margin:0;min-width:0;scroll-snap-align:start;text-align:center}.hand-card .card{height:100%;box-shadow:2px 3px #a9ae8b}.hand-card .card-kanji{font-size:38px}.hand-card .card-reading{font-size:9px}.hand-card .card-art{height:49px;width:65px;margin:3px 0}.hand-card .card-english{font-size:8px}.hand-card .card-power{font-size:10px}.hand-card .card-materials,.hand-card .card-shape{font-size:8px}.hand-card.selected{outline:3px solid #bc643a;outline-offset:2px}.hand-badge{position:absolute;top:-5px;left:4px;right:4px;background:#bf963f;color:#fff7dd;z-index:5;font:8px/1.5 ui-monospace,monospace}.battle-actions{display:flex;align-items:center;gap:15px;justify-content:space-between;position:sticky;bottom:-1px;background:#f5efdc;padding:9px 0 3px;z-index:8}.battle-actions>p{font-size:11px;line-height:1.5;margin:0;max-width:60%}.battle-actions button{margin:0}.battle-message{margin:10px 0 2px;padding:9px 12px}.battle-intro{position:absolute;inset:0;display:grid;place-items:center;background:#243e32f7;color:#fff1cb;z-index:20;text-align:center;animation:battle-arrive .65s ease-out}.battle-intro svg{width:95px;height:95px;image-rendering:pixelated}.battle-intro p{font-size:24px;font-weight:750;margin:15px 0}.battle-intro strong{font:12px ui-monospace,monospace;letter-spacing:2px}.match-summary{font-size:20px!important;margin:6px 0}.score-line{text-align:center;font-size:12px;margin:0}.round-history{margin:7px 0}.round-history li{padding:6px 0}.battle-screen .dialog-note{margin:8px 0}.battle-screen .round-dots span{font-size:10px;min-width:22px;height:22px;line-height:21px}@keyframes battle-arrive{from{clip-path:inset(48% 0)}to{clip-path:inset(0)}}
@media(max-width:760px){.masthead{padding:8px 13px;min-height:50px}.brand{font-size:16px;gap:8px}.brand small{font-size:6px}.brand-mark{width:29px;height:33px;font-size:22px}.header-actions{gap:8px}.header-actions .secondary{padding:4px 8px;font-size:10px}.header-actions .quiet{font-size:9px}main{padding:0 13px}.intro{display:none}.mode-bar{padding:8px 0 5px;gap:5px}.mode-bar button{flex:1;font-size:10px;padding:6px 4px}.mode-bar p{margin:2px 0 0;flex-basis:100%;font-size:9px;line-height:1.5;min-height:27px}.screen-tabs{margin-bottom:8px;gap:2px}.screen-tabs button{padding:6px 9px;font-size:10px}.play-layout{grid-template-columns:1fr;gap:0}.side-column{display:none}.world-panel .panel-heading{padding:9px 12px}.world-panel .map-frame{margin:0 9px}.world-panel .panel-heading h2{font-size:14px}.location-tag{font-size:8px}.map-viewport{height:max(205px,calc(100dvh - 355px));max-height:490px}.world-controls{margin:8px 10px 0;gap:5px;flex-wrap:nowrap}.world-controls p{max-width:55%;font-size:9px}.world-controls .primary{font-size:10px;padding:6px 9px}.map-bottom{margin:6px 10px 8px;gap:5px}.map-bottom p{flex-basis:100%;font-size:8px}.scene-shortcuts{flex:1}.scene-shortcuts button{font-size:9px;padding:4px 7px}.dpad button{width:28px;min-width:28px;height:28px}.world-panel .message{padding:7px 10px;min-height:48px}.world-panel .message strong{font-size:10px}.world-panel .message p{font-size:9px}.world-panel .message-icon{font-size:17px}.map-stamp{font-size:8px;right:7px;top:5px}.section-heading h2{font-size:18px}.section-heading>p{font-size:9px}.battle-screen{padding:7px 10px}.battle-screen-header>strong{font-size:10px}.battle-screen-header button{padding:4px 7px;font-size:9px}#battle-content{padding:7px 3px 10px;max-height:calc(100dvh - 55px)}.battle-top h2{font-size:17px}.battle-stage{max-width:305px;gap:14px;grid-template-columns:1fr 25px 1fr}.battle-stage .card-kanji{font-size:35px}.battle-stage .card-art{height:37px}.battle-stage .card-reading{font-size:8px}.card-back,.pass-card{height:156px}.battle-hand{grid-auto-columns:105px;gap:10px}.hand-card .card-kanji{font-size:35px}.hand-card .card-art{height:43px}.hand-title{font-size:9px;line-height:1.5}.battle-actions{gap:8px}.battle-actions>p{font-size:9px;max-width:52%}.battle-actions .primary{font-size:11px;padding:9px 11px}.battle-intro p{font-size:19px}.dialog-shell{padding:22px 17px}.dialog-shell h2{font-size:21px}.dialog-shell p{font-size:12px}.found-cards{gap:9px}.found-cards .card-kanji{font-size:38px}.found-cards .card-art{height:46px}.rules-list{font-size:11px;padding-left:17px}.round-history{font-size:11px}}
@media(max-height:700px) and (min-width:761px){.intro{min-height:43px;padding:5px 0}.mode-bar{padding:4px 0}.mode-bar p{font-size:9px}.map-viewport{height:max(180px,calc(100dvh - 365px))}.battle-stage .card-art{height:28px}.battle-stage .card-kanji{font-size:29px}.battle-stage .card-reading{font-size:8px}.card-back{height:140px}.battle-stage{margin:5px auto}.hand-card .card-art{height:34px}.hand-card .card-kanji{font-size:29px}.hand-card .card-reading{font-size:8px}.hand-card .card-materials,.hand-card .card-shape{font-size:7px}.battle-hand{grid-auto-columns:108px;padding-bottom:8px}.battle-top{margin:0}.battle-actions{padding-top:5px}}
.play-layout{align-items:start}.side-column{max-height:calc(100dvh - 230px)}

/* Handheld reference: rounded warm shell, green bezel, physical cross and A/B. */
body[data-screen=field] .intro{display:none}
body[data-screen=field] .mode-bar{padding-top:9px}
.play-layout{grid-template-columns:minmax(0,460px) 260px;justify-content:center;gap:28px}
.handheld.world-panel{width:100%;padding:15px 17px 13px;border:2px solid #aaa99c;border-radius:23px 23px 58px 23px;background:linear-gradient(115deg,#e4e3d8,#d2d1c6 78%);box-shadow:inset 2px 2px 0 #faf9ef,inset -4px -4px 0 #bcbcaf,6px 9px 0 #4b55441c}
.handheld .device-heading{padding:0 3px 9px;align-items:center}
.device-heading h2{font:800 13px/1.2 ui-monospace,monospace;letter-spacing:1px;color:#4d5664}
.device-heading h2 small{display:block;margin-top:4px;font:9px/1.2 var(--font);letter-spacing:.03em;color:#707766}
.device-power{font:7px ui-monospace,monospace;display:flex;align-items:center;gap:5px;color:#64735b}
.device-power i{width:5px;height:5px;background:#79a356;border:1px solid #4e7146;border-radius:50%}
.handheld .map-frame{margin:0;border:0;border-radius:10px 10px 25px 10px;padding:9px 12px 16px;background:#385b3e;box-shadow:inset 2px 3px 0 #25472f,0 2px 0 #f3f2e5}
.screen-topline{display:flex;justify-content:space-between;align-items:center;min-height:18px;padding:0 1px 6px;color:#d9dfb7;font:8px/1 ui-monospace,monospace;letter-spacing:.5px}
#field-card-count{font-weight:800}
.handheld .map-viewport{height:300px;max-height:none;border:2px solid #203f2b;box-shadow:0 0 0 2px #81965e;background:#a2bb76;touch-action:none}
.handheld .map-stamp{top:auto;bottom:2px;right:14px;padding:0;background:none;color:#d9dfb7;font-size:7px;line-height:12px}
.handheld .world-controls{margin:8px 1px 0;display:block;min-height:16px}
.handheld .world-controls p{max-width:none;font-size:9px;line-height:1.4;text-align:center;color:#59644e;margin:0}
.device-controls{display:flex;align-items:center;justify-content:space-between;margin:4px 12px 0;height:98px;user-select:none}
.handheld .dpad{display:grid;grid-template:repeat(3,29px)/repeat(3,29px);gap:0;position:relative;filter:drop-shadow(1px 3px 0 #787e73);touch-action:none}
.handheld .dpad button{background:#303c33;border:0;box-shadow:inset 1px 1px 0 #52604f;color:#86947b;width:29px;min-width:0;height:29px;margin:0;padding:0;font:13px/1 ui-monospace,monospace;border-radius:3px;touch-action:none}
.handheld .dpad button:active{background:#172d22;filter:none;color:#b4c0a0}
.direction-up{grid-area:1/2}.direction-left{grid-area:2/1}.direction-down{grid-area:3/2}.direction-right{grid-area:2/3}
.dpad-center{grid-area:2/2;background:radial-gradient(circle,#26372c 0 5px,#303c33 6px);z-index:1;pointer-events:none}
.device-ab{width:145px;height:90px;position:relative;background:#b7b9ac55;border-radius:50%;transform:rotate(-14deg)}
.device-button{position:absolute;border-radius:50%;width:46px;height:46px;border:2px solid #753d43;background:linear-gradient(135deg,#a85763,#8e414e);box-shadow:inset 2px 2px 0 #bb7680,1px 4px 0 #6b3b42;color:#f3dbe0;font:800 18px/1 ui-monospace,monospace;transform:rotate(14deg);padding:0}
.device-button:active{box-shadow:inset 1px 2px 0 #753d43,0 1px 0 #6b3b42;translate:0 2px}
.button-a{right:6px;top:9px}.button-b{left:11px;top:28px}
.ab-caption{position:absolute;right:8px;bottom:3px;font:6px/1 ui-monospace,monospace;letter-spacing:.4px;color:#666b60;transform:rotate(14deg)}
.device-menu-row{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;height:37px;margin-top:-9px}
#device-menu{width:39px;height:13px;border:1px solid #858d7d;border-radius:12px;background:#929d88;box-shadow:inset 1px 1px 0 #b4bfaa,0 2px 0 #68775f;transform:rotate(-8deg);padding:0}
.device-menu-row>span{font:7px ui-monospace,monospace;color:#707a67;letter-spacing:1px}
.speaker{position:absolute;right:13px;top:18px;width:51px;height:18px;background:repeating-linear-gradient(90deg,transparent 0 5px,#a1a697 5px 8px);transform:rotate(-25deg)}
.handheld .map-bottom{margin:3px 0 5px;display:flex;justify-content:center;flex-wrap:wrap;gap:4px}
.handheld .map-bottom p{flex-basis:100%;text-align:center;font-size:7px;line-height:1.3;margin:0}
.handheld .scene-shortcuts{display:flex;justify-content:center;gap:7px;flex:none}
.handheld .scene-shortcuts button{font-size:8px;line-height:1.4;padding:1px 5px;background:#d9ddcc;border:1px solid #aab49e;box-shadow:none}
.handheld.world-panel .message{display:none}
.player[data-direction] svg{transform:none!important;translate:none!important}
.player[data-direction] svg rect{transform:none!important;animation:none!important}
.town-menu{display:grid;gap:10px;margin-top:20px}.town-menu button{width:100%;margin:0}
@media(max-width:760px){
 main{padding:0 10px}.play-layout{grid-template-columns:minmax(0,430px);gap:0}.handheld.world-panel{padding:13px 14px 11px;border-radius:20px 20px 48px 20px}.handheld .device-heading{padding-bottom:8px}.handheld .map-frame{padding:8px 10px 15px}.device-controls{margin:4px 9px 0;height:97px}.handheld .map-bottom{margin-bottom:3px}.handheld .dpad{grid-template:repeat(3,29px)/repeat(3,29px)}.handheld .dpad button{width:29px;height:29px}.screen-tabs{margin-bottom:7px}
}
@media(max-height:650px) and (min-width:761px){.handheld.world-panel{padding-top:9px;padding-bottom:8px}.device-controls{height:82px}.handheld .dpad{transform:scale(.85);transform-origin:left center}.device-ab{transform:rotate(-14deg) scale(.9);transform-origin:right center}.device-menu-row{height:30px}.handheld .map-bottom p{display:none}}
.handheld.world-panel .message{display:block;background:none;border:0;padding:2px 0 0;min-height:0;text-align:center;line-height:1.25}
.handheld .message-icon,.handheld .message p{display:none}
.handheld .message strong{font-size:8px;font-weight:500;color:#59644e}
/* A：泉の場。札を真ん中に置いて、くっつける */
.spring-table{min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;border:2px dashed #b6c1a0;border-radius:18px;background:radial-gradient(ellipse at center,#e1eedd 0,#f4f0df 72%)}
.spring-empty{color:var(--muted);font-size:13px;padding:36px 0}
.spring-stack{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}
.spring-card,.pouch-card{background:none;border:0;padding:0;margin:0;min-width:0;text-align:center;cursor:pointer}
.spring-card{width:112px}.spring-card .card,.pouch-card .card{height:100%}
.spring-plus{font-size:24px;font-weight:700;color:var(--green)}
.spring-note{min-height:1.7em;margin:6px 0 12px;text-align:center;font-size:12px;color:var(--red)}
.spring-pouch{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.pouch-card:disabled{opacity:.35;cursor:default}
.pouch-card:not(:disabled):hover .card{transform:translateY(-3px)}
.shake{animation:spring-shake .32s}
@keyframes spring-shake{0%,100%{transform:none}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
.confirm-row{display:flex;justify-content:center;gap:10px;margin-top:16px}.confirm-row .primary{margin:0}
@media(max-width:760px){.spring-pouch{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.spring-card{width:86px}.spring-table{min-height:170px;padding:14px}}
@media(max-width:430px){.spring-pouch{grid-template-columns:repeat(3,minmax(0,1fr))}.spring-card{width:76px}}
@media(prefers-reduced-motion:reduce){.shake{animation:none}}
.fuse-ask{font-size:30px;font-weight:700;letter-spacing:.08em;margin:18px 0}.fuse-ask strong{color:var(--gold)}
/* 3つのフィールド：うみべの砂と海、道のつきあたりの出入口 */
.tile.sand{background:#ecd9a4}.tile.sand:nth-child(3n){background:#e6d199}
.tile.sand:after{content:"";width:2px;height:2px;background:#c7ad6c;box-shadow:6px 5px #c7ad6c;position:absolute;top:8px;left:8px;opacity:.7}
.tile.sea{background:#5f9fb0;box-shadow:inset 0 0 0 1px #6eabbb}
.tile.sea:after{content:"";width:45%;height:2px;background:#cfe6e3;opacity:.8;box-shadow:-6px 9px #a9d1d3}
.tile.exit{background:#e8d79c;cursor:pointer}
.exit-sign{position:absolute;inset:14%;display:grid;place-items:center;z-index:4;background:#fff5d9;border:2px solid #31533c;color:#31533c;font-weight:800;font-size:15px;line-height:1;animation:exit-blink 1.4s steps(2) infinite}
@keyframes exit-blink{50%{background:#f2d27a}}
@media(prefers-reduced-motion:reduce){.exit-sign{animation:none}}
/* 森：ゆする木 / うみべ：釣り場と光る貝がら */
.tile.m-shake:not(.found):after{content:"✦";position:absolute;top:2px;left:4px;z-index:6;color:#fff3b0;font-size:11px;text-shadow:0 0 3px #6b5a1e}
.tile.shaking svg{animation:tree-shake .32s}
@keyframes tree-shake{0%,100%{transform:none}25%{transform:rotate(-7deg)}75%{transform:rotate(7deg)}}
.tile.m-fish svg{width:80%;height:80%}
.tile.casting svg{animation:bob 1s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(2px)}}
.tile.bite:before{content:"！";position:absolute;top:-16px;left:50%;transform:translateX(-50%);z-index:8;background:#fff8df;color:#b94d32;border:2px solid #b94d32;font-weight:900;font-size:14px;line-height:18px;padding:0 5px}
.tile.m-pick:not(.found) svg{animation:shine 1.6s steps(2) infinite}
@keyframes shine{50%{filter:brightness(1.35)}}
@media(prefers-reduced-motion:reduce){.tile.shaking svg,.tile.casting svg,.tile.m-pick svg{animation:none}}
.tile.bite{z-index:40}
.tile.bite:before{top:-12px;left:auto;right:-16px;transform:none;font-size:18px;line-height:24px;padding:0 7px;box-shadow:2px 2px 0 #263e32}
