@font-face{font-family:Field;src:local('Georgia')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#d2d8bf;color:#334d48;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-tap-highlight-color:transparent}body{overscroll-behavior:none}button,a,input,select{font:inherit}button{cursor:pointer;color:inherit;border:1px solid #61746538;background:#f8f4e6;border-radius:12px;min-height:44px;padding:11px 16px;transition:background .15s,transform .15s}button:hover{background:#e8e9cf}button:active{transform:translateY(1px)}button:disabled{cursor:default;opacity:.42;transform:none}button:focus-visible,a:focus-visible{outline:3px solid #a15f3f;outline-offset:3px}button.primary{background:#3d6457;color:#fff8e4;border-color:#3d6457}button.primary:hover{background:#315449}button.ghost{background:transparent}button.small{padding:6px 10px;min-height:34px;border-radius:9px;font-size:12px}button.selected{background:#dae2c9;border-color:#79977c}button.danger{color:#925b4a}h1,h2,h3,p{margin:0}h1,h2,.serif{font-family:Field,Georgia,"Songti SC",serif;font-weight:500}h2{font-size:29px;line-height:1.2}h3{font-size:15px}p{line-height:1.65}small{font-size:11px}img{user-select:none;-webkit-user-drag:none}#app{height:100dvh;height:100svh;position:relative;isolation:isolate}#world{position:absolute;width:100%;height:100%;inset:0;touch-action:none;user-select:none;-webkit-user-select:none}#header{position:absolute;z-index:4;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 24px;background:linear-gradient(#f7f1e9f5,#f7f1e9db 85%,#f7f1e900);pointer-events:none}#header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#344c47}.brand img{width:33px;height:33px}.brand strong{font-size:12px;letter-spacing:.14em;font-weight:700}.brand small{display:block;letter-spacing:.16em;font-size:8px;margin-top:4px;opacity:.65}.header-location{text-align:center}.header-location strong{font-family:Georgia,"Songti SC",serif;font-size:16px;font-weight:500}.header-location small{display:block;margin-top:3px;font-size:10px}.header-actions{display:flex;gap:6px}.icon-button{padding:9px;width:42px;min-height:42px;display:grid;place-items:center;background:#f7f3e5db}.icon-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#7b856d;font-weight:700}.muted{color:#7b8879}.rule{height:1px;background:#b8bfa558;margin:18px 0}.row{display:flex;align-items:center;gap:10px}.spread{justify-content:space-between}.wrap{flex-wrap:wrap}.stack{display:grid;gap:12px}.paper{background:#faf6e9f2;border:1px solid #fff8e3b0;box-shadow:0 12px 50px #2b443d26;border-radius:18px}#ui{position:absolute;inset:0;pointer-events:none;z-index:2}#ui button,#ui a,#ui select{pointer-events:auto}.intro{pointer-events:auto;position:absolute;left:5%;top:15%;width:min(680px,90%);padding:30px 34px 24px;background:#faf6e9f2;border:1px solid #fff5dc;box-shadow:0 20px 100px #23463d33;border-radius:22px}.intro h1{font-size:clamp(34px,4.2vw,62px);line-height:1.06;letter-spacing:-.04em;margin:12px 0 14px;color:#355c4d}.intro>p{max-width:500px;color:#657764;font-size:14px}.starter-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0 16px}.starter{position:relative;padding:5px 6px 12px;border:1px solid #8d9c7940;background:#fffaf178;border-radius:14px;text-align:center;min-width:0;overflow:hidden}.starter:before{content:'';position:absolute;width:100px;height:100px;border-radius:50%;background:#d9dfc24f;top:24px;left:50%;transform:translateX(-50%)}.starter img{position:relative;width:100%;aspect-ratio:1;max-height:145px;object-fit:contain}.starter b{display:block;font-size:12px}.starter small{display:block;font-size:10px;margin-top:5px;color:#72836e}.intro-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;color:#7d8a76}.map-note{position:absolute;top:100px;left:24px;padding:13px 16px;max-width:310px}.map-note h2{font-size:22px;margin:5px 0}.map-note p{font-size:11px;color:#73816f}.journal-count{display:flex;gap:14px;font-size:10px;margin-top:9px;letter-spacing:.05em}.party-strip{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;gap:7px;pointer-events:auto}.party-token{padding:1px;width:56px;height:64px;border-radius:14px;background:#f9f5e7de;position:relative}.party-token img{width:50px;height:50px;object-fit:contain}.party-token .hp{position:absolute;bottom:6px;left:9px;right:9px;height:3px}.party-token.selected{border:2px solid #486e57}.hp{height:6px;background:#78908130;border-radius:9px;overflow:hidden}.hp i{display:block;height:100%;background:#72977b;border-radius:9px;transition:width .4s}.hud-bottom{position:absolute;bottom:26px;left:24px;font-size:11px;background:#f9f5e7dc;border-radius:12px;padding:10px 14px}.hud-bottom kbd{font-size:10px;border:1px solid #a9b198;border-radius:4px;padding:1px 4px;margin-right:4px}.map-hint{position:absolute;bottom:112px;left:50%;transform:translateX(-50%);text-align:center;max-width:340px;font-size:12px;padding:7px 14px;background:#f9f5e7e8;border:1px solid #ffffff88;border-radius:30px;white-space:nowrap}#touch{z-index:3;position:absolute;inset:auto 0 0;pointer-events:none;display:none;height:175px}#interact{pointer-events:auto;position:absolute;bottom:35px;left:25px;border-radius:50%;width:76px;height:76px;min-height:76px;background:#f5efdfe8;border:2px solid #fff7df;box-shadow:0 7px 30px #2a423a33;font-size:12px;line-height:1.3}#joystick{position:absolute;pointer-events:auto;right:24px;bottom:22px;width:116px;height:116px;border-radius:50%;background:#f7f4e440;border:1px solid #f7f3da95;touch-action:none;user-select:none;-webkit-user-select:none;display:grid;place-items:center}#joystick i{position:absolute;width:54px;height:54px;border-radius:50%;background:#f8f3e0d9;box-shadow:0 4px 18px #334b3d33;pointer-events:none}#joystick span{z-index:1;font-size:22px;color:#5d7a68;pointer-events:none;opacity:.8}#toast{z-index:12;position:absolute;left:50%;bottom:160px;transform:translateX(-50%);max-width:min(90%,550px);font-size:13px;text-align:center;pointer-events:none;opacity:0;transition:opacity .2s;padding:12px 20px;background:#344e48ed;color:#fff8e5;border-radius:12px}#toast.visible{opacity:1}#loading{position:absolute;z-index:30;inset:0;background:#edf0df;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px}#loading h1{font-size:24px;letter-spacing:.08em}#loading progress{width:200px;height:5px;accent-color:#527b62}#loading p{font-size:12px;color:#75856d}#loading[hidden]{display:none}.sheet-shade{position:absolute;inset:0;background:#203d3a66;backdrop-filter:blur(5px);z-index:8;display:grid;place-items:center;padding:22px}.sheet{pointer-events:auto;width:min(800px,100%);max-height:calc(100dvh - 44px);background:#f7f3e7;border:1px solid #fff6e0;border-radius:22px;box-shadow:0 30px 90px #193e3c40;display:flex;flex-direction:column;overflow:hidden}.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:21px 25px 16px;gap:12px;border-bottom:1px solid #9ba88833}.sheet-body{overflow:auto;overscroll-behavior:contain;padding:20px 25px 26px;-webkit-overflow-scrolling:touch}.sheet-body p{font-size:13px;color:#66785f}.sheet-body h3{margin:14px 0 6px}.sheet-body .large{font-size:20px;color:#405c4c}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.menu-grid button{padding:20px 8px;font-size:14px}.menu-grid small{display:block;margin-top:8px;font-size:10px;color:#79876d}.species-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.species-card{padding:4px 4px 10px;min-width:0;text-align:center;position:relative;background:#fdf8eb;border-color:#95a88536}.species-card img{width:100%;aspect-ratio:1;object-fit:contain;display:block}.species-card b{display:block;font-size:10px}.species-card small{font-size:9px;display:block;color:#7c8a74;margin-top:5px}.species-card.unknown img{filter:brightness(0) opacity(.17)}.species-card.unseen img{filter:brightness(0) opacity(.07)}.species-card .caught{position:absolute;right:6px;top:6px;font-size:12px;color:#729471}.member{display:grid;grid-template-columns:70px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid #9cab8038;border-radius:14px;background:#fdf9ed;margin-bottom:9px}.member img{width:70px;height:70px;object-fit:contain}.member h3{margin:0 0 6px;font-size:14px}.member p{font-size:10px}.member-actions{display:flex;flex-direction:column;gap:5px}.detail-hero{display:flex;align-items:center;gap:24px}.detail-hero img{width:190px;max-width:44%;aspect-ratio:1}.detail-hero h3{font:28px Georgia,"Songti SC",serif;margin:5px 0 10px}.type-tag{display:inline-block;border-radius:20px;font-size:10px;padding:4px 9px;color:#4c655d;border:1px solid #839a8355;background:#e3e9d13d}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:16px 0}.stat-grid div{background:#e7e9d662;padding:10px 12px;border-radius:10px;font-size:11px}.stat-grid b{float:right}.move-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.move-option{display:block;text-align:left;padding:12px}.move-option b{font-size:12px}.move-option p{font-size:11px;margin-top:5px}.move-option .row{justify-content:space-between}.region-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.region-option{padding:18px;text-align:left;min-height:100px;position:relative;overflow:hidden}.region-option b{display:block;position:relative;font:21px Georgia,"Songti SC",serif}.region-option p{position:relative;font-size:10px;margin-top:9px}.region-option .number{position:absolute;font:80px Georgia;right:5px;top:0;opacity:.08}.battle-ui{position:absolute;inset:0}.combat-card{position:absolute;padding:14px 18px;background:#faf6e9e8;border:1px solid #fff4d6;border-radius:15px;min-width:220px}.combat-card.enemy{top:100px;right:8%}.combat-card.player{top:51%;left:7%}.combat-card h3{font:18px Georgia,"Songti SC",serif}.combat-card .hp{margin-top:9px}.combat-card small{font-size:10px;color:#718069}.combat-card .conditions{font-size:10px;color:#976b55;margin-top:7px;min-height:12px}.energy{display:flex;gap:4px}.energy i{width:9px;height:5px;border-radius:4px;background:#d1c6a1}.energy i.on{background:#b8995b}.battle-meta{position:absolute;left:24px;top:95px;font-size:10px;line-height:1.8;color:#e9efdb;background:#35554b77;border-radius:10px;padding:10px 13px}.battle-controls{pointer-events:auto;position:absolute;bottom:25px;width:min(650px,65%);right:5%;padding:16px 18px;border-radius:18px;background:#f9f5e8f2;border:1px solid #fff7de;box-shadow:0 14px 50px #294a3a22}.battle-tabs{display:flex;gap:6px;margin-bottom:11px;flex-wrap:wrap}.battle-tabs button{min-height:32px;font-size:11px;padding:5px 10px;border-radius:8px}.battle-skills{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.skill{min-height:73px;text-align:left;padding:10px 12px;border-radius:11px;background:#fdf9ed;border-left:3px solid var(--color,#8aa381)}.skill strong{font-size:12px}.skill small{font-size:10px;color:#7e896f}.skill p{font-size:10px;color:#829075;line-height:1.4;margin-top:5px}.turn-line{font:17px Georgia,"Songti SC",serif;min-height:25px;line-height:1.4}.battle-controls .result-list{font-size:12px;max-height:150px;overflow:auto;margin-bottom:14px;display:grid;gap:6px}.battle-controls .result-list p{padding-bottom:5px;border-bottom:1px solid #7b93642a}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.inline-notice{background:#e8e9d6;padding:12px 15px;border-radius:11px;font-size:12px;line-height:1.7}.quest{padding:13px 15px;background:#eae9d480;border-radius:12px;margin-bottom:9px}.quest p{font-size:12px}.quest b{font-size:13px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;font-size:13px}.settings-row select{max-width:55%;padding:8px;border:1px solid #b9c1aa;border-radius:8px;background:#faf6e9}.field-portrait{position:absolute;right:6%;bottom:18%;font:italic 40px Georgia;color:#eff1d766;letter-spacing:-.04em;pointer-events:none}.fatal{pointer-events:auto;position:absolute;inset:20% 5% auto;padding:30px;background:#faf5e6;border-radius:20px}button,.starter,#interact{touch-action:manipulation;-webkit-user-select:none;user-select:none}a{color:#456e58}
@media(pointer:coarse){#touch{display:block}.hud-bottom{display:none}.party-strip{bottom:25px;left:50%}.party-token{width:43px;height:51px}.party-token img{width:40px;height:40px}}
@media(max-width:700px){#header{padding:12px 14px;gap:8px}.brand{gap:7px}.brand img{width:29px;height:29px}.brand strong{font-size:9px;letter-spacing:.1em}.brand small{font-size:7px;letter-spacing:.08em}.header-location{display:none}.header-actions{gap:4px}.icon-button{width:36px;min-height:36px;padding:8px;border-radius:10px}.icon-button svg{width:18px;height:18px}.intro{top:11%;left:5%;max-height:82%;overflow:auto;padding:23px 20px;border-radius:20px}.intro h1{font-size:39px;margin:12px 0}.intro>p{font-size:12px}.starter-list{gap:6px;margin:20px 0 15px}.starter{padding:0 1px 12px;border-radius:12px}.starter img{height:auto;max-height:115px}.starter b{font-size:10px}.starter small{font-size:9px}.intro-footer{font-size:9px}.map-note{top:78px;left:14px;padding:10px 13px;max-width:250px}.map-note h2{font-size:20px}.map-note p{font-size:10px}.journal-count{gap:10px;font-size:9px}.map-hint{bottom:158px;max-width:80%;font-size:11px}.party-strip{top:185px;left:14px;bottom:auto;transform:none;gap:4px}.party-token{width:39px;height:44px;border-radius:10px}.party-token img{width:34px;height:34px}.party-token .hp{bottom:4px;left:6px;right:6px}.hud-bottom{display:none}.field-portrait{display:none}.sheet-shade{padding:10px}.sheet{border-radius:19px;max-height:calc(100dvh - 20px)}.sheet-head{padding:17px 17px 13px}.sheet-head h2{font-size:25px}.sheet-body{padding:15px 17px 23px}.species-grid{grid-template-columns:repeat(3,1fr);gap:7px}.species-card b{font-size:10px}.menu-grid{grid-template-columns:repeat(2,1fr)}.detail-hero{gap:14px}.detail-hero h3{font-size:24px}.detail-hero p{font-size:11px}.member{grid-template-columns:55px 1fr auto;gap:9px;padding:8px}.member img{width:55px;height:55px}.member h3{font-size:12px}.member-actions .small{font-size:10px;padding:5px 7px}.stat-grid{gap:4px}.stat-grid div{padding:8px;font-size:10px}.move-grid{gap:6px}.move-option{padding:9px}.region-grid{gap:8px}.region-option{padding:14px}.region-option b{font-size:18px}.battle-meta{left:14px;top:78px;padding:7px 10px;font-size:9px}.combat-card{min-width:0;width:175px;padding:10px 12px;border-radius:12px}.combat-card.enemy{right:14px;top:132px}.combat-card.player{left:14px;top:43%}.combat-card h3{font-size:15px}.combat-card .hp{margin-top:7px;height:5px}.combat-card .conditions{font-size:9px;margin-top:5px}.battle-controls{bottom:max(12px,env(safe-area-inset-bottom));left:12px;right:12px;width:auto;padding:12px;border-radius:15px}.battle-tabs{gap:4px;margin-bottom:8px}.battle-tabs button{font-size:10px;padding:5px 8px;min-height:30px}.skill{min-height:67px;padding:9px}.skill strong{font-size:11px}.skill small{font-size:9px}.skill p{font-size:9px}.battle-skills{gap:6px}.turn-line{font-size:16px}.battle-controls .result-list{max-height:120px}.battle-controls .result-list p{font-size:11px}.battle-controls .member{grid-template-columns:35px 1fr auto;margin:0}.battle-controls .member img{width:35px;height:35px}.battle-controls .member p{display:none}.battle-controls .member h3{font-size:10px;margin-bottom:3px}}
@media(max-height:600px) and (orientation:landscape){#header{padding:8px 14px}.intro{top:64px;max-height:calc(100% - 80px);width:600px;left:4%;padding:18px 24px}.intro h1{font-size:30px;margin:6px 0}.intro>p{font-size:11px}.starter-list{margin:10px 0;gap:12px}.starter img{height:82px}.starter{padding-bottom:8px}.map-note{top:66px;padding:8px 12px}.map-note h2{font-size:17px}.map-note>p{display:none}.party-strip{top:auto;bottom:12px;left:50%;transform:translateX(-50%)}.map-hint{bottom:115px}.combat-card.enemy{top:75px;right:12%;width:170px;padding:9px 12px}.combat-card.player{top:48%;left:6%;width:170px;padding:9px 12px}.battle-meta{top:70px;font-size:9px}.battle-controls{bottom:12px;right:3%;left:auto;width:48%;padding:10px}.skill{min-height:55px;padding:8px}.skill p{display:none}.battle-tabs{margin-bottom:7px;gap:3px}.battle-tabs button{padding:5px 7px;font-size:9px}.battle-controls .result-list{max-height:80px}.combat-card h3{font-size:14px}#joystick{width:96px;height:96px;bottom:13px}#interact{bottom:22px;width:64px;height:64px;min-height:64px}.field-portrait{display:none}}

@media(min-width:701px){.combat-card.player{top:62%}}
@media(max-width:700px) and (min-height:601px){.combat-card.enemy{left:14px;right:auto;top:92px}.combat-card.player{left:auto;right:14px;top:51%}}

@media(max-width:700px) and (min-height:601px){.battle-meta{top:68px;left:14px;padding:0;background:none;color:#47644f;line-height:10px;font-size:8px}.combat-card{width:min(175px,45vw)}.combat-card.enemy{top:98px}}

#seo-host{position:absolute;z-index:5;right:124px;top:12px}.native-info-slot{display:block;width:42px}.native-info-slot .game-seo-info{position:static!important;width:42px;z-index:7}.native-info-slot .game-seo-info summary{width:42px;min-width:42px;height:42px;padding:9px;background:#f7f3e5db;color:#334d48;border:1px solid #61746538;border-radius:12px}.native-info-slot summary svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.native-info-slot .game-info-content{top:70px;max-height:calc(100dvh - 84px);background:#f8f4e9;color:#334d48;border-color:#a6b696;box-shadow:0 15px 60px #203e3b44}.native-info-slot .game-info-content h2,.native-info-slot .game-info-content h3,.native-info-slot .game-info-content p,.native-info-slot .game-info-content a{color:#405d4f}body:has(#game-seo-info[open]) #touch{display:none!important}@media(max-width:700px){.native-info-slot,.native-info-slot .game-seo-info{width:36px}.native-info-slot .game-seo-info summary{min-width:36px;width:36px;height:36px;border-radius:10px;padding:8px}.native-info-slot summary svg{width:18px;height:18px}}
