@charset "UTF-8";
.currency-icon{display:inline-block;object-fit:contain;vertical-align:middle;pointer-events:none}
.item-icon .item-art{display:block;width:100%;height:100%;object-fit:cover}
:root{--ink:#34382f;--muted:#797a6b;--paper:#eee9d9;--panel:#f5f1e6;--line:#c9c2ad;--olive:#4b5842;--olive-dark:#343e2e;--gold:#9d7d3f;--red:#943f37;--head:#292d28;--shadow:0 2px 8px #28291b15;--safe-top:0px;--safe-bottom:0px}
*{box-sizing:border-box}body{margin:0;background:#d4d1c3;color:var(--ink);font:14px/1.5 Georgia,"Times New Roman",serif;background-image:radial-gradient(#b8b4a338 .7px,transparent .7px);background-size:5px 5px}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a67d31;outline-offset:3px}button{touch-action:manipulation}h1,h2,h3,p{margin:0}svg{display:inline-block;vertical-align:middle}button svg{pointer-events:none}.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.muted{color:var(--muted)}.small{font:12px/1.5 system-ui,sans-serif}.caps{font:10px/1.5 system-ui,sans-serif;text-transform:uppercase;letter-spacing:1.6px}.gold{color:var(--gold)}.red{color:var(--red)}.flex{display:flex;align-items:center;gap:9px}.spread{display:flex;align-items:center;justify-content:space-between;gap:10px}.stack{display:grid;gap:12px}.badge{display:inline-flex;gap:5px;align-items:center;font:11px system-ui,sans-serif;padding:3px 7px;border:1px solid var(--line);background:#e4dfcc;color:#636853}.badge.good{color:var(--olive);background:#dce3d1;border-color:#b4c29e}.badge.danger{background:#ead7cb;color:var(--red)}.divider{border:0;border-top:1px solid var(--line);margin:16px 0}.btn{min-height:38px;padding:8px 14px;border:1px solid #a9a38e;background:linear-gradient(#faf7ec,#e6e0cd);box-shadow:inset 0 1px #fff8,0 1px 2px #0000000a;display:inline-flex;align-items:center;justify-content:center;gap:7px;font:12px/1.4 system-ui,sans-serif;transition:background .15s,transform .15s}.btn:hover:not(:disabled){background:#fffcef;border-color:#7b846d}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{background:linear-gradient(#5b684d,#435139);color:#fff9e9;border-color:#38442f}.btn.primary:hover:not(:disabled){background:#5b6b4b}.btn.danger{color:#fff0dd;background:linear-gradient(#a45648,#843c34);border-color:#7b3830}.btn.gold-btn{background:#ded0a9;border-color:#ae9355}.btn.wide{width:100%}.btn.tiny{min-height:30px;padding:4px 8px;font-size:11px}.btn.icon-btn{padding:6px;min-height:36px}.link{background:none;border:0;padding:0;color:#6b5730;text-decoration:underline;text-underline-offset:3px;font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap}.empty{padding:38px 20px;text-align:center;color:var(--muted)}.empty .icon{width:38px;height:38px;margin-bottom:10px}.loading{height:100svh;display:grid;align-content:center;justify-items:center;gap:12px}.loading h1{letter-spacing:6px;text-transform:uppercase;font-size:32px}.loading p{color:var(--muted)}
.topbar{background:var(--head);color:#e5dfcd;border-bottom:3px solid #9b8756;padding-top:var(--safe-top)}.masthead{height:76px;max-width:1480px;margin:auto;padding:0 28px;display:flex;align-items:center;gap:14px}.crest{width:45px;height:53px}.brand h1{font-size:27px;font-weight:normal;text-transform:uppercase;letter-spacing:6px;line-height:1.15}.brand .caps{font-size:9px;letter-spacing:4px;color:#b9b7a4;margin-top:4px}.world-label{margin-left:32px;border-left:1px solid #5c6050;padding-left:25px;color:#abae9b;display:grid;gap:3px}.top-right{margin-left:auto;display:flex;align-items:center;gap:22px;font:12px system-ui,sans-serif}.status-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:#a6b97b;margin-right:6px}.silver{color:#f0d596;font-weight:600}.topnav{background:#e7e1cd;border-bottom:1px solid #aba38a;box-shadow:0 2px 5px #0001}.nav-inner{max-width:1424px;display:flex;margin:0 auto;padding:0 10px}.nav-item{background:none;border:0;border-right:1px solid #cbc3ad;padding:13px 24px;display:flex;gap:8px;align-items:center;font-size:14px;position:relative;white-space:nowrap}.nav-item:first-child{border-left:1px solid #cbc3ad}.nav-item .icon{width:19px;height:19px;color:#71765f}.nav-item:hover{background:#f1ecd9}.nav-item.active{background:#f5f1e5;color:#65512d}.nav-item.active:after{position:absolute;content:"";height:3px;background:#957844;left:0;right:0;bottom:0}.nav-item .counter{background:#963f33;color:#f9edd7;font:10px system-ui;padding:0 4px;min-width:14px;text-align:center}.shell{max-width:1480px;margin:22px auto 0;padding:0 28px 24px;display:grid;grid-template-columns:248px minmax(0,1fr) 250px;gap:18px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.panel-head{background:linear-gradient(#ece6d4,#e4dec9);border-bottom:1px solid var(--line);padding:10px 13px;display:flex;align-items:center;justify-content:space-between;min-height:43px}.panel-head h2,.panel-head h3{font-size:15px;font-weight:normal}.panel-head .caps{font-size:9px}.panel-body{padding:14px}.left-rail,.right-rail{display:grid;gap:14px;min-width:0}.main{min-width:0;display:grid;gap:14px}.page-heading{padding:16px 18px;border-bottom:1px solid var(--line);background:#efeadb;display:flex;align-items:center;justify-content:space-between;gap:10px}.page-heading h2{font-size:23px;font-weight:normal}.page-heading .caps{color:var(--gold);margin-bottom:3px}.paper-title{padding:14px 16px;border-bottom:1px solid var(--line);font-size:17px;font-weight:normal}.level-box{border:1px solid #9b8757;background:#ddd1ad;color:#665129;font:bold 13px Georgia;padding:1px 5px;min-width:23px;text-align:center}.player-name{font-size:17px;font-weight:bold}.char-title{font:10px system-ui;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-top:3px}.meters{padding:11px 13px;border-bottom:1px solid var(--line)}.meter{margin:5px 0 9px}.meter:last-child{margin-bottom:0}.meter-label{font:10px system-ui,sans-serif;display:flex;justify-content:space-between;margin-bottom:4px;color:#707260}.meter-track{height:9px;background:#d8d2bf;border:1px solid #bab49f;box-shadow:inset 0 1px 2px #0002;overflow:hidden}.meter-fill{height:100%;background:linear-gradient(#899969,#62784b);transition:width .25s}.meter.xp .meter-track{height:6px}.meter.xp .meter-fill{background:#b19251}.meter.enemy .meter-fill{background:linear-gradient(#b26b5a,#87483d)}
.paperdoll{position:relative;height:269px;margin:0 10px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 50% 55%,#ddd7bf88,transparent 60%)}.paperdoll:after{content:"";position:absolute;width:124px;height:124px;border:1px solid #c7c0a6;border-radius:50%;left:50%;top:58px;transform:translateX(-50%);z-index:0}.figure{position:absolute;height:238px;left:50%;bottom:0;transform:translateX(-50%);width:145px;z-index:1}.gear-slot{position:absolute;width:44px;height:46px;z-index:2;border:1px solid #bdb59a;background:linear-gradient(140deg,#eee8d7,#d7ceb1);display:grid;place-items:center;color:#73694e;box-shadow:inset 0 0 0 3px #f9f4e128}.gear-slot .icon{width:28px;height:28px}.gear-slot.empty-slot{opacity:.55;border-style:dashed}.gear-slot:hover{background:#faf0d2;border-color:#92713c}.gear-slot .broken{position:absolute;right:1px;top:0;color:var(--red);font:bold 12px system-ui}.slot-head{left:0;top:14px}.slot-body{left:0;top:72px}.slot-hands{left:0;top:130px}.slot-weapon{left:0;top:188px}.slot-amulet{right:0;top:14px}.slot-shield{right:0;top:72px}.slot-legs{right:0;top:130px}.slot-feet{right:0;top:188px}.doll-caption{text-align:center;position:absolute;bottom:5px;left:0;right:0;z-index:3;font:9px system-ui;letter-spacing:1.5px;text-transform:uppercase;color:#777762}.stat-list{padding:10px 13px}.stat-row{display:flex;justify-content:space-between;align-items:center;min-height:27px;border-bottom:1px dotted #d3cbb4;font-size:12px}.stat-row:last-child{border:0}.stat-value{display:flex;gap:8px;align-items:center;font:bold 12px system-ui}.stat-up{width:23px;height:23px;border:1px solid #97a57c;background:#e0e7d1;color:#47643a;font:bold 16px system-ui}.combat-values{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding:10px 0;background:#e9e5d6;text-align:center}.combat-values strong{display:block;font:17px Georgia}.combat-values span{font:9px system-ui;letter-spacing:.4px;color:var(--muted)}.player-foot{padding:10px 13px;font:11px system-ui;display:flex;justify-content:space-between}.quest-note{padding:15px}.quest-note h3{font-size:16px;font-weight:normal;margin:8px 0}.quest-note p{font-size:12px;color:#747560;line-height:1.65}.quest-track{display:flex;gap:5px;margin:14px 0}.quest-track span{flex:1;height:4px;background:#d3cbb3}.quest-track span.done{background:#7a895e}.quest-foot{padding-top:9px;margin-top:12px;border-top:1px solid var(--line);font:11px system-ui}.journal-mini{padding:0 13px}.journal-entry{padding:12px 0;border-bottom:1px dotted #c8c0a8;font-size:12px;line-height:1.55}.journal-entry:last-child{border:0}.journal-time{font:9px system-ui;color:#94927e;display:block;margin-bottom:3px}.journal-entry.reward{color:#657549}.journal-entry.combat,.journal-entry.danger{color:#915344}.weather{background:#353d30;color:#d9d9bf;border:1px solid #252d22;padding:14px 16px}.weather .caps{color:#aab393}.weather p{font-size:12px;line-height:1.7;margin-top:8px;color:#c3c8af}.footer{text-align:center;font:10px system-ui;color:#898977;padding:8px 20px 22px;letter-spacing:.4px}
.scene{height:343px;position:relative;overflow:hidden;background:#515546}.scene img{height:100%;width:100%;object-fit:cover;filter:saturate(.72)}.scene:after{content:"";position:absolute;inset:0;background:linear-gradient(#18211c24 5%,transparent 25%,#1c221dbb 100%);pointer-events:none}.scene-label{position:absolute;z-index:2;top:17px;left:18px;background:#242d23c9;border:1px solid #bac2a453;color:#e8e9d6;padding:5px 8px;font:9px system-ui;text-transform:uppercase;letter-spacing:1.3px}.scene-time{position:absolute;right:17px;top:17px;color:#f2eedb;z-index:2;font:10px system-ui;letter-spacing:1px}.scene-title{position:absolute;bottom:25px;left:23px;right:23px;z-index:2;color:#fff6e1}.scene-title .caps{color:#dbcca5;margin-bottom:6px}.scene-title h2{font-size:34px;font-weight:normal;text-shadow:0 2px 6px #0007;letter-spacing:.3px;line-height:1.12}.scene-title p{max-width:500px;font-size:12px;line-height:1.7;color:#e2e1d0;margin-top:10px}.scene-marker{position:absolute;z-index:3;left:64%;top:34%;background:#e9e2c5ed;border:1px solid #726e50;padding:6px 10px;box-shadow:0 3px 8px #0005;font:11px system-ui;display:flex;align-items:center;gap:6px}.scene-marker:after{content:"";position:absolute;bottom:-5px;left:20px;width:8px;height:8px;background:#e9e2c5;border-bottom:1px solid #726e50;border-right:1px solid #726e50;transform:rotate(45deg)}.scene-marker .icon{width:17px;height:17px}.scene-actions{padding:14px 16px;background:#eae5d6;display:flex;gap:9px;align-items:center;flex-wrap:wrap;border-top:1px solid #b8b195}.scene-actions .hint{font:11px system-ui;color:var(--muted);margin-left:auto}.notice{padding:12px 15px;border:1px solid #b7bca0;border-left:3px solid #7b8b57;background:#e9ecdd;display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.6}.notice .icon{width:19px;height:19px;color:#7b855f;margin-top:1px}.notice.danger,.notice.combat{border-color:#c0a897;border-left-color:#955448;background:#ede0d2}.notice.reward,.notice.level{border-color:#bdb181;border-left-color:#a78b45;background:#eee7cc}.notice.ending{background:#e6e3c6;border-color:#af9b56}.location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.location-link{background:none;display:flex;align-items:center;text-align:left;padding:14px 16px;border:0;border-bottom:1px solid #d8d1bc;gap:12px;min-height:75px}.location-link:nth-child(odd){border-right:1px solid #d8d1bc}.location-link:hover{background:#e8e2ce}.location-link .loc-icon{width:36px;height:37px;display:grid;place-items:center;background:#e3decc;color:#7a785f;border:1px solid #ccc3a7;flex-shrink:0}.location-link .loc-title{display:block;font-size:14px}.location-link .loc-sub{display:block;font:10px system-ui;color:#858570;margin-top:4px}.location-link .arrow{margin-left:auto;color:#a29b80;font-size:17px}.location-link.current{background:#e1e5d5}.location-link.current .loc-icon{background:#d1dabe;color:#586c46}.tabs{display:flex;gap:0;border-bottom:1px solid var(--line);background:#eae5d5;overflow:auto}.tab{padding:11px 16px;border:0;border-right:1px solid #cfc7b2;background:none;white-space:nowrap;font:12px system-ui;color:#777763}.tab.active{background:var(--panel);color:#5d512d;box-shadow:inset 0 -2px #967a45}.tab:hover{background:#f0ead9}.npc-row{padding:17px;display:flex;align-items:flex-start;gap:13px;border-bottom:1px solid var(--line)}.npc-avatar{width:49px;height:57px;flex-shrink:0;border:1px solid #b3ad96;background:radial-gradient(#cad0b5,#7e8d73);display:grid;place-items:center;color:#f4eacb}.npc-avatar .icon{width:34px;height:34px}.npc-text{flex:1;min-width:0}.npc-text h3{font-size:15px;font-weight:normal;margin-bottom:4px}.npc-text p{font-size:12px;line-height:1.65;color:#747461;margin-bottom:11px}.npc-text .caps{color:#8c866b;font-size:9px}.travel-progress{display:flex;gap:10px;align-items:center;padding:18px}.travel-progress .step{width:27px;height:27px;border:1px solid #aaa488;color:#8a8164;display:grid;place-items:center;font:11px system-ui}.travel-progress .step.done{background:#63784a;color:#f3efd9}.travel-progress .path-line{height:1px;flex:1;background:#bdb494}.scene.travel img{filter:saturate(.5) brightness(.85)}
.item-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}.item-card{border:1px solid var(--line);background:#f4efe1;min-width:0}.item-card.equipped{border-color:#91a078;background:#edf0df}.item-top{padding:13px 11px;display:flex;align-items:flex-start;gap:11px}.item-icon{width:47px;height:48px;display:grid;place-items:center;background:linear-gradient(145deg,#ede5ce,#d8cba7);border:1px solid #beb08b;flex-shrink:0;color:#71613e;position:relative}.item-icon .icon{width:32px;height:32px}.item-icon.quest{background:#e4d9b7;color:#947947}.item-qty{position:absolute;bottom:-1px;right:-1px;background:#eee7cf;border:1px solid #b3a47f;padding:0 3px;font:10px system-ui}.item-info{flex:1;min-width:0}.item-info h3{font-size:13px;font-weight:normal;line-height:1.35;margin-bottom:4px}.item-info p{font:10px/1.6 system-ui;color:#7c7968}.item-actions{border-top:1px solid #d8cfb9;display:flex;gap:6px;align-items:center;justify-content:space-between;padding:7px 9px;background:#eae5d7}.item-actions .price{font:11px system-ui;color:#8b7138;white-space:nowrap}.shop-banner{padding:12px 15px;font-size:12px;background:#ede7d4;border-bottom:1px solid var(--line)}.recipe{padding:15px;border-bottom:1px solid var(--line);display:flex;gap:13px;align-items:center}.recipe-main{flex:1}.recipe h3{font-size:14px;font-weight:normal}.recipe p{font:11px/1.6 system-ui;color:var(--muted);margin:5px 0}.quest-card{margin:14px;padding:17px;border:1px solid var(--line);background:#f1ecda;position:relative}.quest-card.done{background:#e5e8d7}.quest-card h3{font-size:17px;font-weight:normal;margin:7px 0}.quest-card p{font-size:13px;color:#74725f;line-height:1.7}.quest-reward{display:flex;gap:15px;font:11px system-ui;color:#8d7135;margin:12px 0}.quest-step{display:flex;align-items:center;gap:10px;font-size:12px;margin:10px 0;color:#797763}.quest-step .check{width:19px;height:19px;border:1px solid #bbb293;display:grid;place-items:center;font:11px system-ui}.quest-step.done{color:#5a7047}.quest-step.done .check{background:#6f8255;color:#fff8dd;border-color:#6f8255}.map-wrap{position:relative;height:440px;background-color:#dbd7bd;background-image:linear-gradient(#99977820 1px,transparent 1px),linear-gradient(90deg,#99977820 1px,transparent 1px),radial-gradient(ellipse at 20% 20%,#94a28088,transparent 45%),radial-gradient(ellipse at 60% 60%,#cacbb155,transparent 70%);background-size:38px 38px,38px 38px,auto,auto;overflow:hidden;border-bottom:1px solid var(--line)}.map-roads{width:100%;height:100%;position:absolute;inset:0;opacity:.65}.map-point{position:absolute;transform:translate(-50%,-50%);z-index:2;border:0;background:none;display:grid;justify-items:center;gap:4px;padding:4px;max-width:118px}.map-dot{width:24px;height:24px;border:2px solid #eee3c7;background:#6c7757;color:#f6f0db;box-shadow:0 0 0 1px #727455;display:grid;place-items:center;transform:rotate(45deg)}.map-dot .icon{width:14px;height:14px;transform:rotate(-45deg)}.map-point.wild .map-dot{background:#8c674d}.map-point.current .map-dot{background:#9f4539;box-shadow:0 0 0 3px #b28753}.map-point span.map-name{font:10px Georgia;background:#e8e1c7ec;padding:1px 4px;text-align:center;color:#53573f}.map-point:hover .map-name{background:#faf3d9}.compass{position:absolute;right:16px;bottom:15px;font:12px Georgia;color:#787957;display:grid;justify-items:center}.compass .icon{width:48px;height:48px}.map-legend{display:flex;gap:20px;padding:12px 15px;font:10px system-ui;color:#7e7b64}.profile-details{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.profile-details h3{font-size:16px;font-weight:normal;margin-bottom:12px}.profile-details p{font-size:13px;line-height:1.8}.profile-wide-doll{display:none}.skill-chip{display:inline-block;font:11px system-ui;padding:6px 9px;border:1px solid #c4bca1;background:#e6dfc9;margin:0 4px 6px 0}.statistics{display:grid;grid-template-columns:repeat(4,1fr);padding:18px;gap:10px;background:#e8e3d2;border-top:1px solid var(--line)}.statistics div{text-align:center}.statistics strong{font-size:23px;font-weight:normal;display:block}.statistics span{font:10px system-ui;color:var(--muted)}.info-box{border:1px solid #c5bda3;padding:14px;background:#eae4d1;font-size:12px;line-height:1.7}.help-section{padding:16px 20px;border-bottom:1px solid var(--line)}.help-section h3{font-size:16px;font-weight:normal;margin-bottom:8px}.help-section p{font-size:13px;color:#72725f;line-height:1.7}.archive-entry{padding:15px 18px;border-bottom:1px solid var(--line)}.archive-entry summary{cursor:pointer;font-size:14px}.archive-log{margin-top:12px;background:#eae5d6;padding:12px;font:11px/1.8 system-ui}.log-full{padding:0 18px}.log-full .journal-entry{font-size:13px;padding:14px 0}
.combat-header{background:#59483b;color:#f3e9d5;border-bottom:2px solid #a18550;padding:13px 17px;display:flex;justify-content:space-between;align-items:center}.combat-header h2{font-size:20px;font-weight:normal}.combat-header .caps{color:#cfc4a3}.combat-hint{font:11px/1.6 system-ui;color:#88816b;margin-top:10px}.combat-log{max-height:330px;overflow:auto;padding:0 16px;background:#ede7d5}.round-log{padding:12px 0;border-bottom:1px dotted #bcb395;font:11px/1.8 system-ui}.round-log strong{color:#86723e;display:block;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-bottom:3px}.arena-row{display:flex;gap:14px;align-items:center;padding:17px;border-bottom:1px solid var(--line)}.arena-row .rank-emblem{width:48px;height:54px;display:grid;place-items:center;flex-shrink:0;background:#dcd2b3;border:1px solid #ae9e75;color:#867242}.rank-emblem .icon{width:30px;height:30px}.arena-text{flex:1}.arena-text h3{font-size:16px;font-weight:normal}.arena-text p{font:11px/1.6 system-ui;color:#807960;margin-top:4px}.contract{padding:16px;background:#e5e8d7;border-top:1px solid #bbc3a2}.contract p{font-size:12px;line-height:1.7;margin:7px 0 12px}
.fishing-water{height:235px;position:relative;background:url('/assets/river.webp?v=36c21ac3840e50e8') center 53%/cover;overflow:hidden}.fishing-water:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,#12221d88)}.bobber{position:absolute;left:52%;top:62%;width:9px;height:28px;background:linear-gradient(#a44233 45%,#f8efd9 45%);border-radius:4px;border:1px solid #473f31;z-index:2;animation:bob 3s ease-in-out infinite;transform:rotate(8deg)}.bobber:after{content:"";position:absolute;width:58px;height:16px;border:1px solid #e4ece190;border-radius:50%;left:-25px;top:19px}.bobber.biting{animation:bite .4s ease-in-out infinite}.fish-status{position:absolute;bottom:18px;left:20px;right:20px;color:#f7efd7;z-index:3;text-shadow:0 1px 3px #000;font-size:16px}.fish-timer{padding:18px}.fish-timer .meter-track{height:12px}.fish-instructions{padding:0 18px 18px;font:12px/1.8 system-ui;color:#77745e}.fish-collection{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:14px}.fish-type{text-align:center;padding:10px 3px;background:#e9e5d4;border:1px solid #c8bea0;font:10px/1.7 system-ui}.fish-type .icon{display:block;width:30px;height:30px;margin:0 auto 7px;color:#7f8867}.fish-type.locked{opacity:.5}@keyframes bob{50%{transform:translateY(4px) rotate(-4deg)}}@keyframes bite{50%{transform:translateY(12px) rotate(15deg)}}
.onboarding{max-width:1140px;min-height:690px;margin:38px auto;display:grid;grid-template-columns:1.2fr 1fr;box-shadow:0 10px 50px #28271933;border:1px solid #9b947d}.welcome-art{background:url('/assets/road.webp?v=36c21ac3840e50e8') 57% center/cover;position:relative;display:flex;align-items:flex-end;padding:42px;color:#f7efd9;min-height:560px}.welcome-art:before{content:"";position:absolute;inset:0;background:linear-gradient(#15271d11 20%,#19231bdd 100%)}.welcome-copy{z-index:1;position:relative}.welcome-copy .caps{color:#cfba87;letter-spacing:2px}.welcome-copy h2{font-size:49px;line-height:1.1;font-weight:normal;margin:13px 0 20px}.welcome-copy p{font-size:15px;line-height:1.8;color:#e2dfc9}.welcome-features{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.welcome-features span{border:1px solid #dbd8b44a;padding:5px 8px;font:10px system-ui;color:#d4d8bf}.registration{background:var(--panel);padding:36px}.registration h2{font-size:28px;font-weight:normal;margin:7px 0 11px}.registration .intro-text{font-size:13px;color:#7d7c67;line-height:1.8;margin-bottom:25px}.field{display:grid;gap:7px;margin-bottom:17px}.field label{font:11px system-ui;color:#72735f}.field input,.field select,.select{width:100%;min-height:40px;background:#fffbf0;border:1px solid #bcb298;color:#444c39;border-radius:0;padding:9px 11px;font:13px system-ui;box-shadow:inset 0 1px 3px #00000009}.field input::placeholder{color:#a5a08c}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.character-note{padding:13px;background:#e9e6d5;border-left:2px solid #979e79;margin:19px 0;font:11px/1.8 system-ui;color:#797963}.registration .btn{min-height:45px}.registration details{font-size:12px;color:#7e7c65;margin:12px 0 20px}.registration summary{cursor:pointer;padding:7px 0}.registration details .field:first-of-type{margin-top:10px}.form-error{color:var(--red);font:12px/1.6 system-ui;margin:12px 0;min-height:0}.intro-story{padding:26px;background:#eee7d3}.intro-story p{font-size:16px;line-height:1.9;margin-bottom:18px}.toast{position:fixed;z-index:20;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);max-width:min(580px,calc(100vw - 30px));background:#333e2e;color:#f7f0d9;border:1px solid #889572;box-shadow:0 6px 24px #0004;padding:12px 18px;font:12px/1.7 system-ui;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.error{background:#6f3d33;border-color:#aa7b62}.mobile-hud,.bottomnav{display:none}.app-busy{cursor:progress}.connection-error{max-width:500px;margin:15vh auto;padding:30px;background:var(--panel);border:1px solid var(--line)}.connection-error h2{font-size:24px;font-weight:normal;margin-bottom:12px}.connection-error p{margin:12px 0 20px;color:var(--muted);font-size:14px;line-height:1.8}
@media(min-width:1500px){.scene{height:370px}.shell{margin-top:28px}}
@media(max-width:1200px){.shell{grid-template-columns:220px minmax(0,1fr);gap:15px;padding:0 20px 20px}.right-rail{display:none}.nav-item{padding:13px 20px}.masthead{padding:0 20px}.top-right{gap:14px}.world-label{margin-left:20px}.onboarding{margin:30px 25px}.scene{height:350px}}
@media(max-width:820px){.nav-item{padding:13px 14px;font-size:12px}.nav-item .icon{width:17px}.shell{padding:0 13px 18px;grid-template-columns:202px minmax(0,1fr);gap:12px}.paperdoll{height:247px;margin:0 7px}.figure{height:218px;width:127px}.gear-slot{width:38px;height:41px}.gear-slot .icon{width:24px;height:24px}.slot-head,.slot-amulet{top:12px}.slot-body,.slot-shield{top:65px}.slot-hands,.slot-legs{top:118px}.slot-weapon,.slot-feet{top:171px}.world-label{display:none}.scene-title h2{font-size:29px}.scene{height:320px}.item-grid{grid-template-columns:1fr}.scene-actions .hint{margin-left:0}.profile-details{grid-template-columns:1fr}.onboarding{grid-template-columns:1fr 1fr;min-height:620px}.welcome-art{padding:25px}.welcome-copy h2{font-size:39px}.registration{padding:25px}.location-link{padding:12px 10px;gap:9px}.location-link .loc-title{font-size:12px}.location-link .loc-sub{font-size:9px}.location-link .loc-icon{width:29px;height:32px}.top-right .session-mode{display:none}}
@media(max-width:640px){body{font-size:14px}.masthead{height:62px;padding:0 14px;gap:10px}.crest{width:32px;height:40px}.brand h1{font-size:21px;letter-spacing:4px}.brand .caps{font-size:7px;letter-spacing:3px}.top-right{font-size:11px;gap:12px}.top-right .help-button{display:none}.topnav{display:none}.shell{display:block;padding:0 10px 16px;margin-top:12px}.left-rail,.right-rail{display:none}.main{gap:11px}.mobile-hud{display:flex;align-items:center;gap:12px;background:#e8e2ce;padding:10px 14px;border-bottom:1px solid #bdb49c}.mobile-name{font-size:12px;min-width:74px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-hud .meter{flex:1;margin:0}.mobile-hud .meter-track{height:7px}.mobile-hud .meter-label{font-size:9px;margin-bottom:3px}.bottomnav{display:flex;position:fixed;z-index:10;bottom:0;left:0;right:0;padding-bottom:max(env(safe-area-inset-bottom),var(--safe-bottom));background:#e7e0cc;border-top:1px solid #a59c7d;box-shadow:0 -3px 10px #0001}.bottomnav button{flex:1;background:none;border:0;padding:8px 3px 7px;display:grid;justify-items:center;gap:3px;color:#7b7b62;font:9px system-ui;min-height:56px}.bottomnav button .icon{width:22px;height:22px}.bottomnav button.active{color:#50643c;box-shadow:inset 0 2px #7a8c5e;background:#eff0de}.footer{padding-bottom:calc(85px + var(--safe-bottom));font-size:9px}.scene{height:315px}.scene-title{left:18px;right:18px;bottom:20px}.scene-title h2{font-size:31px}.scene-title p{font-size:12px;line-height:1.65}.scene-marker{left:57%;top:31%;font-size:10px}.scene-label{font-size:8px;top:13px;left:13px}.scene-time{right:13px;top:14px;font-size:9px}.scene-actions{padding:12px}.scene-actions .btn{flex:1;min-height:40px}.scene-actions .hint{flex-basis:100%;text-align:center}.notice{font-size:12px;padding:11px 12px}.panel-head{min-height:40px;padding:9px 12px}.location-link{padding:13px 12px;min-height:72px}.location-link .loc-title{font-size:13px}.location-link .loc-sub{font-size:9px}.location-link .loc-icon{width:30px;height:34px}.page-heading{padding:14px}.page-heading h2{font-size:22px}.onboarding{display:block;margin:16px 12px 25px;min-height:0}.welcome-art{min-height:270px;padding:25px}.welcome-copy h2{font-size:36px;max-width:270px;margin:10px 0 13px}.welcome-copy p{font-size:12px;max-width:360px;line-height:1.7}.welcome-features{margin-top:15px;gap:5px}.welcome-features span{font-size:9px;padding:4px 6px}.registration{padding:25px 23px}.registration h2{font-size:25px}.registration .intro-text{margin-bottom:20px}.profile-wide-doll{display:block;width:230px;margin:10px auto}.profile-wide-doll .paperdoll{height:262px}.profile-wide-doll .figure{height:231px;width:141px}.profile-wide-doll .gear-slot{width:43px;height:45px}.profile-wide-doll .slot-weapon,.profile-wide-doll .slot-feet{top:177px}.profile-details{padding:16px;gap:16px;grid-template-columns:1fr 1fr}.profile-details .stat-list{padding:0}.profile-details p{font-size:12px}.profile-details h3{font-size:15px}.statistics{padding:13px;gap:5px}.statistics strong{font-size:21px}.statistics span{font-size:9px}.item-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:8px}.item-top{display:block;padding:10px}.item-icon{float:left;margin:0 8px 7px 0;width:36px;height:38px}.item-icon .icon{width:25px;height:25px}.item-info h3{font-size:12px;min-height:33px}.item-info p{clear:both;font-size:9px;line-height:1.8}.item-actions{clear:both;padding:7px;gap:4px;flex-wrap:wrap}.item-actions .btn{font-size:10px;min-height:33px;padding:6px 7px}.tab{padding:11px 13px;font-size:11px;min-height:42px}.npc-row{padding:14px;gap:11px}.npc-avatar{width:43px;height:51px}.npc-text h3{font-size:14px}.npc-text p{font-size:12px}.npc-text .btn{min-height:39px}.arena-row{padding:14px;gap:10px}.arena-row .rank-emblem{width:38px;height:46px}.arena-text h3{font-size:14px}.arena-text p{font-size:10px}.arena-row .btn{padding:9px 10px;font-size:11px}.combat-header h2{font-size:19px}.combat-log{max-height:280px}.fish-collection{padding:10px;gap:5px}.fish-type{font-size:9px}.fish-type .icon{width:25px}.fishing-water{height:225px}.map-wrap{height:405px}.map-point{max-width:88px}.map-point span.map-name{font-size:9px}.map-dot{width:20px;height:20px}.map-legend{font-size:9px;gap:12px}.recipe{padding:12px;gap:9px;flex-wrap:wrap}.recipe .item-icon{float:none;margin:0}.recipe .btn{margin-left:auto}.toast{bottom:calc(76px + max(env(safe-area-inset-bottom),var(--safe-bottom)));width:max-content}.info-box{font-size:11px}.connection-error{margin:14vh 15px;padding:24px}}
@media(max-width:360px){.item-grid{grid-template-columns:1fr}.item-top{display:flex}.item-icon{float:none;flex-shrink:0}.item-info p{clear:none}.location-grid{grid-template-columns:1fr}.location-link:nth-child(odd){border-right:0}.scene-title h2{font-size:27px}.profile-details{grid-template-columns:1fr}.nav-item{padding:10px}}
/* Let panel contents shrink to the available screen width. */
.main{grid-template-columns:minmax(0,1fr)}
.main>*{min-width:0}
@media(max-width:640px){
  .inventory-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}
  .inventory-filters .tab{min-width:0;white-space:normal;padding:11px 6px;border-bottom:1px solid var(--line)}
  .inventory-filters .tab:nth-child(3n){border-right:0}
  .inventory-filters .tab:nth-last-child(-n+3){border-bottom:0}
  .item-info h3{overflow-wrap:anywhere}
  .item-actions .btn{max-width:100%;white-space:normal;overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.mobile-preview-link{position:fixed;right:14px;bottom:14px;z-index:9;padding:9px 13px;background:#e9e2cc;color:#505d42;border:1px solid #a89b76;box-shadow:0 2px 8px #0002;text-decoration:none;font:12px system-ui,sans-serif}.mobile-preview-link:hover{background:#f5efd9}@media(max-width:640px){.mobile-preview-link{display:none}}.tactical-status{display:flex;justify-content:space-between;gap:12px;padding:13px 17px;background:#e7e0c9;border-bottom:1px solid #bfb393}.tactical-status .caps{display:block;font-size:9px;color:#847c63}.tactical-status strong{font-size:14px;font-weight:normal;color:#576345;display:block;margin-top:3px}.tactical-status small{font:10px system-ui;color:#8a846d}.tactical-layout{display:grid;grid-template-columns:minmax(0,1fr) 155px;gap:13px;padding:15px;background:#e1ddc9}.battle-board-wrap{max-width:410px;width:100%;margin:0 auto}.board-columns{display:grid;grid-template-columns:18px repeat(var(--board-columns),1fr);height:22px;text-align:center;font:10px system-ui;color:#939079;align-items:center}.board-with-rows{display:grid;grid-template-columns:18px 1fr}.board-rows{display:grid;grid-template-rows:repeat(9,1fr);font:10px system-ui;color:#939079;text-align:center;align-items:center}.tactical-board{display:grid;grid-template-columns:repeat(var(--board-columns),1fr);border:2px solid #6a7055;box-shadow:0 3px 8px #252b2026;background:#8a9274}.tactical-cell{padding:0;border:0;border-right:1px solid #5a664a55;border-bottom:1px solid #5a664a55;aspect-ratio:1;position:relative;display:grid;place-items:center;min-width:0;background:radial-gradient(#80876844 1px,transparent 1px),linear-gradient(120deg,#aab09166,#838c6999);background-size:7px 7px,auto;color:#626d4d;opacity:1!important}.tactical-cell:nth-child(odd){background-color:#a5ab8a}.tactical-cell.reachable{background-color:#b4c190;box-shadow:inset 0 0 0 1px #d9e5af99;cursor:pointer}.tactical-cell.reachable:hover{background:#d1dba7}.move-dot{font:10px system-ui;color:#667b42;background:#d1dbaa88;border:1px solid #87976755;border-radius:50%;width:18px;height:18px;display:grid;place-items:center}.tactical-cell.cover{background-color:#667752}.cover-object{position:absolute;inset:5px 3px;background:repeating-linear-gradient(0deg,#727653 0px,#727653 6px,#535e3f 7px,#a0a379 9px);border:2px solid #565e3e;box-shadow:0 2px 3px #0003;color:transparent;transform:rotate(-4deg)}.tactical-cell.cover.reachable{box-shadow:inset 0 0 0 2px #d3dcb0}.tactical-cell.blocked{background:#6d725d}.rubble{width:80%;height:70%;color:transparent;border:2px solid #555d47;background:linear-gradient(30deg,#797e6e,#a7a996 47%,#737c6b 49%,#5b6453);clip-path:polygon(10% 0,88% 10%,100% 60%,82% 100%,0 85%);box-shadow:1px 3px 5px #0005}.unit-token{position:relative;z-index:2;display:grid;place-items:center;border-radius:50%;width:74%;height:74%;border:2px solid #ded6b5;box-shadow:0 2px 5px #0006;color:#f6eed1}.player-token{background:linear-gradient(#727f52,#374e32);border-color:#d9e5aa}.enemy-token{background:linear-gradient(#b67a58,#794536);border-color:#edc59d}.unit-token .icon{width:70%;height:70%;stroke-width:1.5}.targeted{box-shadow:inset 0 0 0 2px #db8e5b!important}.unit-hp{position:absolute;z-index:3;bottom:1px;left:4px;right:4px;height:4px;background:#462e27;border:1px solid #ebccb055}.unit-hp i{display:block;background:#ce8061;height:100%}.board-legend{display:flex;gap:9px;justify-content:center;padding:11px 0 0 18px;font:9px system-ui;color:#81836b}.legend-dot{width:7px;height:7px;display:inline-block;border-radius:50%;margin-right:3px}.legend-dot.player{background:#607948}.legend-dot.enemy{background:#a66b4c}.tactical-side{padding-top:24px;min-width:0}.tactical-target{display:block;padding:10px 9px;border:1px solid #b9ab8c;background:#ece2c9;width:100%;margin:9px 0;text-align:left}.tactical-target.selected{border:1px solid #9e7548;background:#f5e9ca}.tactical-target b{font-size:11px;font-weight:normal}.tactical-target .icon{width:21px;height:21px}.tactical-target .small{font-size:9px}.tactical-target .meter{margin-top:10px}.tactical-tip{font-size:11px;line-height:1.8;color:#7c7d62;padding:13px 2px}.tactical-tip p{margin-top:5px}.tactical-tip .icon{width:18px;height:18px}.tactical-actions{padding:14px 16px;background:#ece6d4;border-top:1px solid var(--line)}.tactical-actions .actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.tactical-actions .btn{font-size:11px;padding:10px 7px}.tactical-actions .icon{width:17px;height:17px}.tactical-instruction{font:11px/1.7 system-ui;margin-bottom:11px;color:#75795b}.battle-result{padding:22px;text-align:center;background:linear-gradient(#e9e8ce,#dce1c3);border-bottom:1px solid #aeb990}.battle-result.defeat{background:#e8d9ca}.battle-result h2{font-weight:normal;font-size:27px;margin:5px 0 10px}.battle-result p{font-size:13px;line-height:1.8;margin-bottom:15px}.result-symbol .icon{width:40px;height:40px;color:#99814a}
@media(max-width:820px){.tactical-layout{grid-template-columns:1fr;padding:12px}.tactical-side{display:flex;align-items:center;padding:0;gap:8px}.tactical-side>.caps{display:none}.tactical-target{flex:1;margin:0}.tactical-tip{display:none}.battle-board-wrap{max-width:375px}.tactical-status{padding:10px 13px}.tactical-status strong{font-size:12px}.tactical-actions .actions{grid-template-columns:1fr 1fr}.tactical-actions .actions>.primary{grid-column:1/-1}.tactical-actions .btn{min-height:42px}.tactical-actions .combat-hint{font-size:10px}}
@media(max-width:640px){.battle-board-wrap{max-width:365px}.tactical-layout{padding:9px 12px 12px}.tactical-status strong{font-size:13px}.tactical-side{gap:8px}.tactical-target{padding:8px 10px}.battle-result{padding:20px 15px}}
@media(max-width:640px){.in-combat .topbar{display:none}.in-combat .mobile-hud{padding-top:calc(10px + var(--safe-top))}.in-combat .shell{margin-top:8px}.in-combat .combat-header{padding:9px 13px}.in-combat .combat-header h2{font-size:18px}.in-combat .tactical-status{padding:8px 12px}.in-combat .battle-board-wrap{max-width:min(100%,clamp(265px,calc((100svh - 470px) * .7778),340px))}.in-combat .tactical-layout{padding:3px 10px 8px;gap:7px}.in-combat .tactical-target{display:grid;grid-template-columns:1fr 100px;align-items:center;gap:4px;padding:6px 8px}.in-combat .tactical-target>.small{grid-column:1/-1;text-align:right;font-size:8px}.in-combat .tactical-target .meter{margin:0}.in-combat .tactical-target .meter-label{font-size:8px}.in-combat .tactical-target b{font-size:10px}.in-combat .tactical-target .icon{width:17px;height:17px}.in-combat .tactical-actions{padding:9px 10px}.in-combat .tactical-actions .actions{grid-template-columns:repeat(3,1fr);gap:5px}.in-combat .tactical-actions .actions>.primary{grid-column:auto}.in-combat .tactical-actions .btn{font-size:9px;min-height:43px;display:grid;gap:2px;justify-items:center;padding:5px 3px}.in-combat .tactical-actions .combat-hint{font-size:9px;line-height:1.4;margin-top:6px}.in-combat .tactical-instruction{font-size:10px;line-height:1.5;margin-bottom:7px}.in-combat .board-legend{padding-top:6px;padding-bottom:0;font-size:8px}.in-combat .board-columns{height:19px}.in-combat .tactical-target .meter-track{height:6px}}
/* Locale selector remains reachable on narrow Telegram screens. */
.language-picker{display:flex;align-items:center;gap:6px;color:#e5dfcd;white-space:nowrap;font:11px system-ui,sans-serif}
.language-picker select{max-width:92px;padding:5px 3px;background:#353b32;color:#f6efdd;border:1px solid #777960;border-radius:3px;font:11px system-ui,sans-serif}
@media(max-width:640px){.language-picker{font-size:0;gap:0}.language-picker select{max-width:75px}.top-right .silver .caps{display:none}}
.npc-row{display:block}
.npc-header{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.npc-header .npc-text h3{font-size:18px;line-height:1.3;margin:6px 0 0}
.npc-description p{font-size:13px;line-height:1.65;color:#747461;margin:0 0 12px}
.npc-avatar.has-portrait{width:88px;height:110px;overflow:hidden;background:#d7d3c1}
.npc-avatar.has-portrait img{display:block;width:100%;height:100%;object-fit:cover}
.profile-settings .language-picker{color:var(--ink);font-size:13px;justify-content:space-between;max-width:280px}
.profile-settings .language-picker select{max-width:none;min-width:120px;padding:8px 10px;background:#f8f4e9;color:var(--ink);border-color:var(--line);font-size:13px}
@media(max-width:640px){
  .has-character .topbar{display:none}
  .has-character .mobile-hud{padding-top:calc(10px + var(--safe-top));gap:10px}
  .mobile-name{flex:0 1 auto;min-width:0;max-width:105px}
  .mobile-hud .meter{min-width:0}
  .mobile-hud .meter-label{gap:4px;white-space:nowrap}
  .mobile-coins{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;color:#80652f;font:600 12px system-ui,sans-serif;white-space:nowrap}
  .mobile-coins .icon{width:19px;height:19px}
}
@media(max-width:360px){.mobile-name{max-width:75px}.has-character .mobile-hud{gap:7px;padding-left:10px;padding-right:10px}}
/* Dedicated combat screen: the dock has its own space and never covers cells. */
body.combat-focused{overflow:hidden;padding:0}
.combat-screen{position:fixed;inset:0;z-index:20;max-width:680px;margin:0 auto;height:100vh;height:var(--tg-viewport-stable-height,100dvh);padding:max(var(--safe-top),env(safe-area-inset-top,0px)) 12px max(var(--safe-bottom),env(safe-area-inset-bottom,0px));background:#e9e3ce;display:flex;flex-direction:column;isolation:isolate}
.combat-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.combat-vitals{height:36px;display:flex;align-items:center;gap:20px;padding:3px 2px}
.combat-vitals>.meter{flex:1;margin:0}.combat-vitals>span{font-size:14px;white-space:nowrap}.combat-vitals .meter-track{height:6px}.combat-vitals .meter-label{font-size:11px;margin-bottom:3px}
.combat-strip{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#5c493c;color:#f4ecd8;padding:5px 9px;min-height:28px;font-size:12px}
.combat-strip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combat-strip>b{font:600 12px system-ui;white-space:nowrap}
.combat-weapon{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:44px;border:0;border-bottom:1px solid var(--line);padding:5px 5px;background:transparent;text-align:left}
.combat-weapon>span{min-width:0}.combat-weapon>span:last-child{text-align:right;flex-shrink:0}.combat-weapon strong{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combat-weapon b{font:12px system-ui;color:var(--olive)}.combat-weapon small{display:block;font:10px/1.4 system-ui;color:#666c56}
.combat-targets{display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin;padding-top:3px;scroll-snap-type:x proximity}
.combat-target{flex:1 0 82%;min-width:0;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 7px;border:1px solid #b6a888;background:#e5dfca;text-align:left;scroll-snap-align:start}
.combat-target:only-child{flex-basis:100%}.combat-target.selected{border-color:#a9844d;background:#f0e6cb}.combat-target>span:first-child{min-width:0}.combat-target strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combat-target small{display:block;font:9px/1.4 system-ui;color:#6d705e}.combat-target>span:last-child{width:96px;flex-shrink:0}.combat-target .meter{margin:0}.combat-target .meter-label{font-size:9px;gap:5px}.combat-target .meter-track{height:5px}
.combat-field{padding:4px 0}.combat-screen .battle-board-wrap{width:var(--combat-board-width);max-width:100%;margin:0 auto}.combat-screen .board-columns{height:19px}.combat-screen .board-rows{grid-template-rows:repeat(var(--board-rows),1fr)}.combat-screen .board-legend{display:none}
.combat-dock{flex:none;padding:2px 0 0;background:#e9e3ce;border-top:1px solid #c2bea5}.combat-feedback{font:11px/1.4 system-ui;color:#61684f;padding:3px 1px 5px;min-height:24px}.combat-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px}.combat-buttons .btn{min-height:48px;padding:5px 4px;display:flex;flex-direction:column;justify-content:center;gap:2px;border-radius:3px;white-space:normal}.combat-buttons .btn strong{font:600 13px/1.3 system-ui}.combat-buttons .btn small{font:10px/1.3 system-ui}.combat-buttons.without-melee>.primary{grid-column:1/-1}.combat-tools{display:grid;grid-template-columns:repeat(3,1fr)}.combat-tool{border:0;background:transparent;min-height:36px;font:11px system-ui;color:#62694f;padding:6px}.combat-tool:hover{background:#dedac5}
.combat-feedback-row{display:flex;align-items:center;gap:5px;min-width:0}.combat-feedback-row .combat-feedback{flex:1;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combat-skip{flex:none;border:0;background:transparent;color:#515d3e;text-decoration:underline;font:11px system-ui;min-height:26px;padding:0 3px;cursor:pointer}
.combat-wait-spinner{display:inline-block;width:12px;height:12px;margin-right:6px;border:2px solid #a6aa92;border-top-color:#435138;border-radius:50%;vertical-align:-2px;animation:combat-wait-spin .8s linear infinite}
.action-sync-notice{position:fixed;z-index:35;left:12px;right:12px;bottom:calc(max(var(--safe-bottom),env(safe-area-inset-bottom,0px)) + 80px);max-width:560px;margin:0 auto;font:13px/1.5 system-ui}
.action-sync-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 3px 14px #0003}.action-recover{min-height:44px;min-width:80px;font-weight:600}
.session-recovery{position:fixed;inset:0;z-index:1000;display:grid;align-items:center;justify-items:center;padding:calc(max(var(--safe-top),env(safe-area-inset-top,0px)) + 16px) 16px calc(max(var(--safe-bottom),env(safe-area-inset-bottom,0px)) + 16px);overflow:auto;background:#292d2899}
.session-recovery-card{width:100%;max-width:420px;max-height:100%;overflow:auto;padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 32px #0004;display:grid;gap:16px;overflow-wrap:anywhere}
.session-recovery-card h2{font-size:21px;line-height:1.3}.session-recovery-card .btn{min-height:48px;flex:1}
@keyframes combat-wait-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.combat-wait-spinner{animation:none;border-style:dotted}}
.cover-object.cover-occupied{inset:1px auto auto 1px;width:13px;height:12px;z-index:4;border-width:1px;transform:none;pointer-events:none;box-shadow:0 0 0 1px #e8e1ca}
.combat-screen .tactical-board{position:relative}.combat-moving-destination .unit-token,.combat-moving-destination .unit-hp{visibility:hidden}.combat-traveler{position:absolute;z-index:6;left:var(--from-left);top:var(--from-top);width:var(--cell-width);height:var(--cell-height);display:grid;place-items:center;pointer-events:none;animation:combat-travel .34s ease-out both}.combat-traveler .unit-token{width:74%;height:74%}
.combat-attack-source .unit-token{animation:combat-strike .48s ease-out}.combat-attack-target{box-shadow:inset 0 0 0 3px #d99d5e!important}.combat-impact{position:absolute;z-index:7;top:-8px;right:-7px;min-width:26px;padding:2px 3px;border-radius:3px;background:#8b4937;color:#fff5df;font:700 11px/1.2 system-ui;box-shadow:0 2px 4px #0005;pointer-events:none;animation:combat-pop .5s ease-out both}.combat-impact.miss{background:#4b5944;font-size:9px}
@keyframes combat-travel{from{transform:translate(0,0)}to{transform:translate(var(--travel-x),var(--travel-y))}}@keyframes combat-strike{0%{transform:scale(1)}40%{transform:scale(1.22);filter:brightness(1.5)}100%{transform:scale(1);filter:none}}@keyframes combat-pop{from{opacity:0;transform:translateY(6px) scale(.7)}35%{opacity:1;transform:translateY(-3px) scale(1.1)}to{opacity:1;transform:translateY(-8px) scale(1)}}
@media(prefers-reduced-motion:reduce){.combat-traveler{display:none}.combat-attack-source .unit-token,.combat-impact{animation:none}.combat-moving-destination .unit-token,.combat-moving-destination .unit-hp{visibility:visible}}
.combat-finished .combat-scroll{padding-top:8px}.combat-finished .battle-result{padding:18px 10px}.combat-finished .battle-result .btn{min-height:48px}.combat-result-tools{text-align:center;flex:none}
.combat-panel{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,560px);max-width:100%;max-height:calc(100dvh - max(var(--safe-top),env(safe-area-inset-top,0px)) - 12px);padding:0 0 max(var(--safe-bottom),env(safe-area-inset-bottom,0px));border:1px solid #a8a58d;border-radius:14px 14px 0 0;background:var(--panel);color:var(--ink);overflow:auto;overscroll-behavior:contain}.combat-panel::backdrop{background:#20271bc0}.combat-panel-heading{position:sticky;top:0;z-index:1;background:#e7e1cd;display:flex;align-items:center;justify-content:space-between;padding:4px 8px 4px 16px;border-bottom:1px solid var(--line)}.combat-panel-heading h2{font:18px Georgia}.combat-panel-heading button{height:44px;width:44px;border:0;background:none;font-size:28px}.combat-panel-body{padding:16px;font-size:14px}.combat-panel-body p{margin:0 0 12px}.combat-panel-body .panel-body{padding:12px 0}.combat-panel-body .btn{min-height:44px}.combat-panel-body .actions{flex-wrap:wrap}.combat-menu-links{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.combat-return{position:fixed;top:max(var(--safe-top),env(safe-area-inset-top,0px));left:12px;right:12px;z-index:25;max-width:450px;margin:auto;box-shadow:0 3px 10px #0003}.combat-return .btn{min-height:44px}
@media(max-height:720px){.combat-screen .combat-feedback{font-size:10px}.combat-screen .combat-field{padding:2px 0}.combat-tool{min-height:32px}}
@media(max-height:820px){
 .combat-vitals{height:30px}.combat-strip{min-height:24px;padding-top:3px;padding-bottom:3px}
 .combat-weapon{min-height:40px;padding-top:3px;padding-bottom:3px}
 .combat-target{min-height:36px;padding-top:2px;padding-bottom:2px}
 .combat-feedback{min-height:20px;padding-top:1px;padding-bottom:3px}.combat-tool{min-height:32px}
}
@media(max-width:340px){.combat-screen{padding-left:8px;padding-right:8px}}
/* City recovery is a compact status outside the focused battle screen. */
.profile-recovery{margin:0 18px 18px;border:1px solid var(--line);background:#eeeedf}
.profile-recovery summary{display:flex;align-items:center;gap:9px;min-height:48px;padding:10px 12px;cursor:pointer;list-style:none;font:13px/1.4 system-ui,sans-serif}
.profile-recovery summary::-webkit-details-marker{display:none}
.profile-recovery summary:focus-visible{outline:3px solid #a67d31;outline-offset:2px}
.profile-recovery summary .icon{width:21px;height:21px;color:var(--olive)}
.profile-recovery-arrow{margin-left:auto;font-size:23px;line-height:1}
.profile-recovery[open] .profile-recovery-arrow{transform:rotate(90deg)}
.profile-recovery-content{border-top:1px solid var(--line);padding:12px;font:13px/1.6 system-ui,sans-serif;overflow-wrap:anywhere}
.profile-recovery-content p+p{margin-top:8px}
.topnav .nav-inner { overflow-x:auto; }
