@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200;
  src: url(assets/manrope-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 300;
  src: url(assets/manrope-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  src: url(assets/manrope-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  src: url(assets/manrope-3.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  src: url(assets/manrope-4.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  src: url(assets/manrope-5.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  src: url(assets/manrope-6.ttf) format('truetype');
}

@font-face {
  font-family: 'Cormorant';
  font-style: normal;
  font-weight: 400;
  src: url(assets/cormorant-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant';
  font-style: normal;
  font-weight: 500;
  src: url(assets/cormorant-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant';
  font-style: normal;
  font-weight: 600;
  src: url(assets/cormorant-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant';
  font-style: normal;
  font-weight: 700;
  src: url(assets/cormorant-3.ttf) format('truetype');
}

:root{--bg:#10191c;--panel:#172226;--panel2:#1c2b2e;--ink:#eee5d6;--muted:#a1b0ad;--gold:#d8ae77;--gold-dim:#826c4f;--green:#9cbea9;--line:#d0b38c25;--danger:#eca48e;--radius:17px;--font-scale:1;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);font-family:Manrope,system-ui,sans-serif;font-size:calc(14px * var(--font-scale));color:var(--ink);background:var(--bg);color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;overscroll-behavior-y:none}body{background:radial-gradient(ellipse at 20% 0,#29414255,transparent 60%),var(--bg);line-height:1.55}button,input{font:inherit}button{cursor:pointer}button,a,input{-webkit-tap-highlight-color:transparent}button{color:inherit}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Cormorant,Georgia,serif;font-weight:600;line-height:1.1}h1{font-size:3.45rem}h2{font-size:2.65rem}h3{font-size:1.8rem}a{color:var(--gold)}svg.icon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none}.icon.small{width:17px;height:17px}.icon.large{width:32px;height:32px}img{max-width:100%;display:block}button{border:0;background:transparent}.eyebrow{font-size:.7rem;letter-spacing:.19em;text-transform:uppercase;color:var(--gold);font-weight:700}.muted{color:var(--muted)}.fine{font-size:.78rem}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.stack{display:grid;gap:16px}.gold{color:var(--gold)}.hide{display:none!important}.pill{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;border:1px solid var(--line);border-radius:30px;padding:4px 10px;color:var(--muted);white-space:nowrap}.pill.active{color:var(--green);border-color:#9cbea950;background:#9cbea912}.pill.gold{color:var(--gold)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:11px 21px;border-radius:10px;font-weight:700;font-size:.88rem;background:linear-gradient(120deg,#d5b080,#c7955e);color:#201e1b;transition:filter .2s,transform .2s;touch-action:manipulation}.btn:hover{filter:brightness(1.09)}.btn:active{transform:translateY(1px)}.btn.secondary{background:#172427;color:var(--ink);border:1px solid var(--line)}.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.btn.full{width:100%}.icon-btn{display:grid;place-items:center;border:1px solid var(--line);border-radius:11px;width:40px;height:40px;flex:none;background:#10191c9c}.icon-btn:hover{background:#354749}.divider{height:1px;background:var(--line);margin:20px 0}.blank{padding:26px;border:1px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--muted)}.blank h3{color:var(--ink);margin-bottom:8px}.notice{display:flex;gap:10px;border:1px solid #c6a4743b;border-radius:11px;background:#c6a4740c;padding:12px 14px;font-size:.8rem;color:#cbbda9}.notice svg{margin-top:1px}.notice.error{color:var(--danger);border-color:#e5a18855}.notice.success{color:var(--green);border-color:#9cbea950}.loading{padding:30px;text-align:center;color:var(--muted)}
#splash{position:fixed;inset:0;background:#11191c;z-index:1000;transition:opacity .8s;overflow:hidden}#splash picture,#splash img{width:100%;height:100%;object-fit:cover}#splash img{animation:slow-reveal 5s ease-out both}#splash.leaving{opacity:0;pointer-events:none}.splash-bottom{position:absolute;bottom:8%;left:20%;right:20%;text-align:center;font-size:.78rem;letter-spacing:.13em;text-shadow:0 2px 8px #000}.loading-line{height:2px;width:150px;background:#ddbc8633;margin:18px auto 0;overflow:hidden}.loading-line i{display:block;width:40%;height:100%;background:var(--gold);animation:loading-line 1.5s ease-in-out infinite}@keyframes loading-line{from{transform:translateX(-100%)}to{transform:translateX(350%)}}@keyframes slow-reveal{from{transform:scale(1.035);filter:brightness(.55)}to{transform:scale(1);filter:brightness(1)}}
.welcome{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.8fr)}.welcome-art{position:relative;min-height:100dvh;background:linear-gradient(0deg,#10191c,transparent 60%),url('assets/splash-mobile.webp') center 25%/cover}.welcome-caption{position:absolute;bottom:9%;left:9%;right:9%;max-width:400px}.welcome-caption p{font-family:Cormorant,serif;font-size:2rem;text-shadow:0 3px 10px #000;margin-bottom:12px}.auth-panel{align-self:center;padding:46px;max-width:500px;width:100%;margin:auto}.auth-logo{display:flex;gap:12px;align-items:center;color:var(--gold);margin-bottom:38px}.auth-logo img{width:44px;height:44px}.auth-logo strong{font-family:Cormorant,serif;font-size:1.6rem;letter-spacing:.04em}.auth-panel h1{margin:12px 0}.auth-panel>.muted{margin-bottom:28px}.auth-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:24px}.auth-tabs button{padding:0 0 10px;color:var(--muted);border-bottom:2px solid transparent}.auth-tabs button.active{color:var(--gold);border-color:var(--gold)}.field{display:grid;gap:6px;margin-bottom:15px}.field span{font-size:.78rem;color:var(--muted)}.field input{color:var(--ink);background:#10191c;border:1px solid #52656488;border-radius:9px;padding:12px 13px;min-width:0;width:100%}.field input:focus{border-color:var(--gold);outline:none}.password-wrap{position:relative}.password-wrap input{padding-right:44px}.password-wrap button{position:absolute;right:5px;top:6px;padding:7px;color:var(--muted)}.auth-panel .notice{margin-bottom:18px}.auth-preview{margin-top:18px;width:100%;color:var(--muted);font-size:.84rem}.auth-preview:hover{color:var(--gold)}.auth-foot{font-size:.72rem;color:var(--muted);margin-top:25px}
.app-shell{max-width:1420px;margin:0 auto;padding:0 38px 35px}.topbar{height:92px;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line);margin-bottom:28px;padding-top:var(--safe-top)}.brand{display:flex;align-items:center;gap:12px;flex:none}.brand img{width:42px;height:42px}.brand strong{font-family:Cormorant,Georgia,serif;font-size:1.85rem;letter-spacing:.02em;font-weight:600}.brand small{display:block;font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:-1px}.navigation{display:flex;align-self:stretch;gap:6px;margin:auto}.navigation button{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);padding:0 18px;position:relative;font-size:.87rem}.navigation button.active{color:var(--gold)}.navigation button.active:after{content:'';position:absolute;bottom:0;left:18px;right:18px;height:2px;background:var(--gold)}.account-small{display:flex;align-items:center;gap:10px;font-size:.78rem}.avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--gold-dim);background:#293837;color:var(--gold);font-family:Cormorant,serif;font-size:1.4rem;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.account-small small{display:block;color:var(--muted);font-size:.65rem}.page-intro{display:flex;justify-content:space-between;align-items:end;margin-bottom:23px;gap:16px}.page-intro h1{margin:7px 0 8px}.page-intro p{font-size:.87rem;max-width:630px;color:var(--muted)}.city-label{display:flex;align-items:center;gap:7px;white-space:nowrap;color:var(--muted);font-size:.76rem}.story-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(310px,.8fr);gap:24px;align-items:start}.map-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel)}.map-head{padding:15px 19px;display:flex;justify-content:space-between;align-items:center}.map-head strong{font-size:.85rem;font-weight:600}.map-wrap{height:485px;position:relative;background:#182a2b}#map{height:100%;width:100%;z-index:1;background:#243532}.map-caption{position:absolute;top:17px;left:17px;z-index:401;pointer-events:none;background:#10191ccd;border:1px solid #c5b89d33;border-radius:9px;padding:10px 12px;font-size:.7rem;backdrop-filter:blur(8px)}.map-caption strong{display:block;font-family:Cormorant,serif;font-size:1.5rem;letter-spacing:.02em}.map-controls{position:absolute;z-index:402;right:13px;top:16px;display:grid;gap:7px}.map-controls button{width:37px;height:37px;background:#172426ec;box-shadow:0 2px 9px #0003;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center}.map-bottom{padding:15px 18px;display:flex;gap:10px;align-items:center;color:var(--muted);font-size:.78rem}.status-dot{width:7px;height:7px;background:var(--gold);border-radius:50%;box-shadow:0 0 9px #d8ae7733;flex:none}.status-dot.good{background:var(--green);box-shadow:0 0 9px #9cbea955}.map-bottom .btn{margin-left:auto;white-space:nowrap;font-size:.73rem;min-height:36px;padding:7px 11px}.map-source{font-size:.63rem;color:#84968f;margin-top:9px}.map-source a{color:#a1b0ad}.leaflet-control-attribution{background:#102022d9!important;color:#a2b2a7!important;font-size:9px!important}.leaflet-control-attribution a{color:#bfba99!important}.leaflet-tooltip{background:#132223e8!important;color:#d4d1bb!important;border:1px solid #637469!important;box-shadow:none!important;font:11px Manrope!important;padding:4px 7px!important}.leaflet-tooltip:before{display:none}.quest-marker{background:none!important;border:0!important}.quest-marker span{display:grid;place-items:center;border-radius:50% 50% 50% 5px;width:31px;height:31px;transform:rotate(-45deg);border:1.5px solid #c9a675;background:#19282b;box-shadow:0 3px 13px #0007}.quest-marker b{transform:rotate(45deg);font-size:12px;color:#dbc59b}.quest-marker.current span{background:#d3ac76;border-color:#f1d6a2;box-shadow:0 0 0 7px #d3ac761c,0 4px 10px #0008}.quest-marker.current b{color:#252521}.quest-marker.done span{background:#4a7464;border-color:#a0c1ad}.quest-marker.locked span{border-color:#84958e;background:#233536}.quest-marker.locked b{color:#9baa9f}.user-marker{background:#c5ded4;border:3px solid #47786b;border-radius:50%;box-shadow:0 0 0 7px #92d3bc22}.map-river{font-family:Cormorant,serif!important;font-size:16px!important;letter-spacing:.28em;background:none!important;border:0!important;color:#84a8a3!important}.map-place{font-family:Manrope,sans-serif;font-size:10px;white-space:nowrap;color:#c7c8ae;opacity:.65;text-shadow:0 1px 3px #132323}
.chapter-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}.chapter-head h3{font-size:1.65rem}.quest-list{display:grid;gap:13px}.quest-card{border:1px solid var(--line);background:linear-gradient(110deg,#203034,#172327);border-radius:13px;overflow:hidden;text-align:left;width:100%;padding:0;transition:border-color .2s,transform .2s}.quest-card:hover{border-color:#d8ae7777;transform:translateY(-2px)}.quest-card.active{border-color:#d8ae775e}.quest-card.locked{opacity:.63}.quest-card-art{height:121px;position:relative;overflow:hidden}.quest-card-art img{width:100%;height:100%;object-fit:cover;object-position:center 44%;transition:transform .5s}.quest-card:hover img{transform:scale(1.035)}.quest-card-art:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#1b292d)}.quest-card-art .pill{position:absolute;left:14px;top:12px;z-index:1;background:#0d191bd9;border-color:#cab28b4d;color:#d2c0a4}.quest-card-body{padding:0 16px 14px;position:relative}.quest-card-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.quest-card-title h3{font-size:1.8rem}.quest-card-body p{font-size:.76rem;color:var(--muted);margin-top:6px;line-height:1.55}.quest-card-meta{display:flex;justify-content:space-between;align-items:center;margin-top:13px;color:var(--gold);font-size:.67rem}.quest-card-meta .muted{display:flex;align-items:center;gap:5px}.chapter-progress{padding:15px 0 0;display:grid;gap:7px}.progress-track{height:4px;border-radius:3px;background:#78948920;overflow:hidden}.progress-track i{height:100%;display:block;background:linear-gradient(90deg,#8aa78d,#d8ae77);border-radius:3px;transition:width .5s}.chapter-progress .row{font-size:.7rem}.story-note{display:flex;gap:14px;padding:20px 0;border-top:1px solid var(--line);margin-top:25px;color:var(--muted);font-size:.79rem}.story-note strong{color:var(--ink);display:block;font-family:Cormorant,serif;font-size:1.5rem;font-weight:500;margin-bottom:4px}.story-note svg{color:var(--gold);margin-top:4px}
.bag-layout{display:grid;grid-template-columns:235px minmax(0,1fr);gap:30px}.bag-aside{background:linear-gradient(145deg,#273937,#162428);border:1px solid var(--line);border-radius:var(--radius);padding:26px 20px;align-self:start;text-align:center}.bag-aside .avatar{width:76px;height:76px;font-size:2.6rem;margin:0 auto 16px}.bag-aside h3{font-size:2rem;overflow-wrap:anywhere}.bag-aside p{color:var(--muted);font-size:.75rem;margin-top:7px}.bag-aside .row{font-size:.74rem}.bag-aside .progress-track{margin-top:10px}.bag-aside .btn{margin-top:20px}.filter-bar{display:flex;gap:9px;overflow-x:auto;padding-bottom:12px;scrollbar-width:thin}.filter-bar button{flex:none;padding:7px 14px;border:1px solid var(--line);border-radius:30px;color:var(--muted);font-size:.76rem}.filter-bar button.active{border-color:#d8ae7760;background:#d8ae7712;color:var(--gold)}.item-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.item-card{position:relative;background:radial-gradient(ellipse at 50% 35%,#43504433,transparent 68%),linear-gradient(130deg,#1f2e30,#172225);border:1px solid var(--line);border-radius:var(--radius);text-align:left;overflow:hidden;padding:16px;transition:transform .2s,border-color .2s;min-width:0}.item-card:hover{transform:translateY(-3px);border-color:#d8ae7777}.item-card .item-image{height:158px;display:flex;align-items:center;justify-content:center;padding:4px 9px 14px}.item-card .item-image img{max-width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 15px #0006)}.item-card h3{font-size:1.48rem;line-height:1.05;margin:8px 0}.item-card .kind{font-size:.66rem;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.item-card .item-status{font-size:.65rem;color:var(--green);margin-top:11px;display:flex;align-items:center;gap:5px}.item-card.not-owned{opacity:.45}.rarity{font-size:.59rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);position:absolute;top:14px;left:14px}.rarity.unique{color:#aec3a4}.collection-note{font-size:.78rem;color:var(--muted);margin-top:18px}
.profile-grid{display:grid;grid-template-columns:minmax(275px,.8fr) minmax(0,1.2fr);gap:24px}.profile-card{padding:30px;background:linear-gradient(145deg,#293c3b,#18252a);border:1px solid var(--line);border-radius:var(--radius)}.profile-card .avatar{width:84px;height:84px;font-size:2.6rem;position:relative}.profile-name{margin-top:18px;font-size:2.6rem;overflow-wrap:anywhere}.profile-handle{color:var(--muted);font-size:.8rem;margin-top:3px}.profile-card .btn{margin-top:20px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:24px 0}.stat-grid>div{text-align:center;border-right:1px solid var(--line)}.stat-grid>div:last-child{border:0}.stat-grid strong{display:block;color:var(--gold);font-family:Cormorant,serif;font-size:2.2rem}.stat-grid span{font-size:.65rem;color:var(--muted)}.section-card{background:#162226;border:1px solid var(--line);border-radius:var(--radius);padding:24px}.section-card h3{margin-bottom:18px}.achievements{display:grid;gap:16px}.achievement{display:flex;gap:14px;align-items:center}.achievement .medal{width:45px;height:45px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:#6e807a;background:#1d2e2e;flex:none}.achievement.earned .medal{border-color:#d8ae7777;color:var(--gold);background:#d8ae770c}.achievement strong{font-weight:500;font-size:.85rem}.achievement p{font-size:.72rem;color:var(--muted);margin-top:3px}.journal-entry{display:flex;gap:13px;padding:13px 0;border-top:1px solid var(--line)}.journal-entry:first-of-type{border-top:0}.journal-entry img{width:63px;height:52px;object-fit:cover;border-radius:6px;flex:none}.journal-entry strong{font-weight:500;font-size:.81rem}.journal-entry p{font-size:.7rem;color:var(--muted);margin-top:3px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);gap:15px}.settings-row:last-child{border:0}.settings-row strong{font-size:.8rem;font-weight:500}.settings-row small{display:block;color:var(--muted);font-size:.7rem;margin-top:3px}.toggle{width:43px;height:24px;background:#40534d;border-radius:20px;padding:3px;flex:none}.toggle i{display:block;background:#cfdbd0;width:18px;height:18px;border-radius:50%;transition:transform .2s}.toggle.on{background:#99784e}.toggle.on i{transform:translateX(19px);background:#f2dbb6}input[type=range]{width:95px;accent-color:var(--gold)}.exit-row{margin-top:20px;font-size:.8rem;color:var(--muted);padding:0;display:flex;gap:7px;align-items:center}.preview-banner{font-size:.73rem;color:#c6baa3;border:1px solid #cdb58733;background:#cdb58708;border-radius:9px;padding:9px 13px;margin-bottom:19px;display:flex;align-items:center;gap:8px}.preview-banner button{margin-left:auto;color:var(--gold);font-size:.72rem;white-space:nowrap}
.modal-backdrop{position:fixed;inset:0;background:#030a0dc2;backdrop-filter:blur(8px);z-index:600;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .2s}.modal{position:relative;width:600px;max-width:100%;max-height:calc(100dvh - 48px);overflow:auto;background:#172328;border:1px solid #cfb28044;border-radius:20px;box-shadow:0 24px 100px #0008;scrollbar-width:thin;scrollbar-color:#657e71 #172328;animation:sheet-in .3s ease-out}.modal.wide{width:850px}.modal-close{position:absolute;top:14px;right:14px;z-index:5;background:#142025df;backdrop-filter:blur(10px);border-color:#d7c09755}.modal-art{height:240px;position:relative}.modal-art img{width:100%;height:100%;object-fit:cover}.modal-art:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#172328)}.modal-body{padding:0 28px 28px;position:relative}.modal-body.standalone{padding-top:28px}.modal-body h2{margin:8px 0 12px}.modal-body>p{color:var(--muted);font-size:.86rem;margin-bottom:18px}.modal-body .notice{margin:15px 0}.reward-strip{display:flex;gap:14px;align-items:center;padding:12px;background:#30413a45;border:1px solid var(--line);border-radius:10px;margin:18px 0}.reward-strip img{width:52px;height:52px;object-fit:contain}.reward-strip strong{font-family:Cormorant,serif;font-size:1.5rem;font-weight:500;line-height:1.1}.reward-strip p{font-size:.72rem;color:var(--muted);margin-top:3px}.reward-strip .pill{margin-left:auto}.story-pages{min-height:130px;white-space:pre-line;font-family:Cormorant,Georgia,serif;font-size:1.65rem;line-height:1.45;color:#e2dbcd;margin:20px 0 26px}.story-step{display:flex;gap:7px;margin-top:12px}.story-step i{height:3px;width:22px;background:#869a8333;border-radius:2px}.story-step i.active{background:var(--gold)}.choice-list{display:grid;gap:11px;margin:18px 0}.choice-list button{text-align:left;padding:15px 18px;background:#263734;border:1px solid var(--line);border-radius:9px;font-size:.84rem;display:flex;align-items:center;gap:12px}.choice-list button:hover,.choice-list button.selected{border-color:var(--gold);background:#c5a57614}.choice-list button .circle{width:15px;height:15px;border:1px solid var(--muted);border-radius:50%;flex:none}.choice-list button.selected .circle{border:4px solid var(--gold)}.sheet-actions{display:flex;gap:10px;align-items:center}.sheet-actions .btn{flex:1}.story-result{text-align:center;padding:26px}.story-result img{width:195px;height:195px;object-fit:contain;margin:10px auto 15px;filter:drop-shadow(0 0 35px #c8a76222);animation:reward-in .8s both}.story-result p{color:var(--muted);font-size:.86rem;margin:14px 0}.story-result .btn{margin-top:16px}.item-view{height:310px;background:radial-gradient(ellipse,#42605345,transparent 68%);position:relative;display:grid;place-items:center;touch-action:pan-y;perspective:900px;overflow:hidden}.item-view>img{width:73%;height:86%;object-fit:contain;filter:drop-shadow(0 16px 20px #0006);transition:transform .15s}.item-view canvas{width:100%!important;height:100%!important;touch-action:none}.item-view .model-label{position:absolute;bottom:9px;left:0;right:0;text-align:center;pointer-events:none;color:var(--muted);font-size:.68rem}.item-tools{display:flex;justify-content:center;gap:8px;margin:-7px 0 20px}.item-tools button{border:1px solid var(--line);padding:7px 12px;border-radius:30px;font-size:.7rem;color:var(--muted)}.item-tools button.active{border-color:#d8ae7788;color:var(--gold)}.lore{font-family:Cormorant,serif;font-style:italic;font-size:1.5rem;color:#cbb995;margin:22px 0;border-left:2px solid var(--gold-dim);padding-left:17px}.field-hint{font-size:.72rem;color:var(--muted);margin-top:6px}.photo-edit{display:flex;align-items:center;gap:14px;margin:22px 0}.photo-edit .avatar{width:64px;height:64px;font-size:2rem}.photo-edit label{cursor:pointer;color:var(--gold);font-size:.8rem}.scroll-lock{overflow:hidden}#toast{position:fixed;z-index:1100;left:50%;bottom:calc(28px + var(--safe-bottom));transform:translate(-50%,20px);max-width:min(430px,calc(100vw - 32px));background:#d4b386;color:#222724;border:1px solid #f0dfbbaa;box-shadow:0 10px 40px #0006;border-radius:11px;padding:12px 19px;font-size:.8rem;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%,0)}#toast.error{background:#dcab96;color:#352320}body.reduce-motion *,body.reduce-motion *:before,body.reduce-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes sheet-in{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes reward-in{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}
@media(min-width:1350px){.map-wrap{height:580px}.quest-card-art{height:143px}}
@media(max-width:1100px){.app-shell{padding:0 24px 30px}.topbar{gap:12px}.navigation button{padding:0 13px}.brand strong{font-size:1.6rem}.account-small>div:last-child{display:none}.story-grid{grid-template-columns:minmax(0,1fr) 330px;gap:19px}.map-wrap{height:505px}.item-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.item-card{padding:12px}.item-card .item-image{height:135px}.bag-layout{grid-template-columns:200px minmax(0,1fr);gap:20px}.welcome{grid-template-columns:1fr 1fr}.auth-panel{padding:30px}}
@media(max-width:760px){:root{font-size:calc(13px * var(--font-scale))}.welcome{display:block;position:relative;min-height:100dvh;padding-top:33vh}.welcome-art{position:absolute;top:0;left:0;right:0;min-height:0;height:49vh;background-image:linear-gradient(0deg,#10191c,transparent 90%),url('assets/splash-mobile.webp');background-position:center 15%}.welcome-caption{display:none}.auth-panel{position:relative;padding:19px 27px 35px}.auth-logo{display:none}.auth-panel h1{font-size:2.7rem}.auth-panel>.muted{margin-bottom:20px}.auth-tabs{margin-bottom:20px}.app-shell{padding:0 16px calc(88px + var(--safe-bottom));max-width:580px}.topbar{height:76px;margin-bottom:23px;gap:10px}.brand img{width:35px;height:35px}.brand strong{font-size:1.7rem}.brand small{font-size:.52rem}.account-small{margin-left:auto}.avatar{width:36px;height:36px}.navigation{position:fixed;bottom:0;left:0;right:0;height:calc(68px + var(--safe-bottom));padding-bottom:var(--safe-bottom);z-index:500;display:grid;grid-template-columns:repeat(3,1fr);margin:0;background:#121e22f5;backdrop-filter:blur(18px);border-top:1px solid #b4ab8730;gap:0}.navigation button{padding:8px 0 6px;display:flex;flex-direction:column;gap:4px;font-size:.7rem}.navigation button svg{width:23px;height:23px}.navigation button.active:after{bottom:auto;top:0;left:32%;right:32%;height:2px}.page-intro{margin-bottom:20px;display:block}.page-intro h1{font-size:3.05rem;line-height:1.04;margin:9px 0}.page-intro p{font-size:.83rem}.page-intro .city-label{display:none}.story-grid{display:flex;flex-direction:column;gap:24px}.map-section{width:100%}.map-wrap{height:365px}.map-head{padding:12px 14px}.map-head strong{font-size:.78rem}.map-bottom{padding:11px 13px;font-size:.72rem}.map-bottom .btn{font-size:.68rem;min-height:34px;padding:6px 9px}.quests-section{width:100%}.quest-list{gap:13px}.quest-card{display:grid;grid-template-columns:121px minmax(0,1fr);min-height:160px}.quest-card-art{height:100%;min-height:160px}.quest-card-art img{object-position:50% 50%}.quest-card-art:after{inset:0 0 0 60%;background:linear-gradient(90deg,transparent,#1b292d)}.quest-card-art .pill{left:8px;top:9px;font-size:.56rem;padding:4px 7px}.quest-card-body{padding:17px 12px 13px 7px;display:flex;flex-direction:column;justify-content:center}.quest-card-title h3{font-size:1.65rem}.quest-card-title .icon{width:17px;height:17px}.quest-card-body p{font-size:.72rem;line-height:1.5;margin-top:7px}.quest-card-meta{font-size:.61rem;margin-top:13px;gap:6px}.quest-card-meta .icon{width:12px;height:12px}.story-note{font-size:.75rem;margin-top:20px}.preview-banner{font-size:.7rem;margin-bottom:16px}.bag-layout{display:block}.bag-aside{display:none}.item-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.item-card{padding:14px 12px}.item-card .item-image{height:143px;padding:14px 7px 8px}.item-card h3{font-size:1.55rem}.item-card .kind{font-size:.6rem}.item-card .rarity{top:11px;left:12px;font-size:.55rem}.filter-bar{margin-bottom:3px}.profile-grid{display:block}.profile-card{padding:23px;margin-bottom:18px}.profile-card .avatar{width:67px;height:67px;font-size:2.2rem}.profile-name{font-size:2.5rem;margin-top:13px}.profile-card .btn{margin-top:14px}.profile-grid>.stack{gap:17px}.section-card{padding:20px}.stat-grid{margin:18px 0}.modal-backdrop{padding:0;align-items:end;backdrop-filter:blur(5px)}.modal,.modal.wide{width:100%;max-width:600px;border-radius:21px 21px 0 0;max-height:calc(100dvh - max(12px,var(--safe-top)));padding-bottom:var(--safe-bottom);border-bottom:0}.modal-art{height:205px}.modal-body{padding:0 22px 25px}.modal-body.standalone{padding-top:27px}.modal-body h2{font-size:2.6rem}.modal-close{right:12px;top:12px;width:35px;height:35px}.story-pages{font-size:1.65rem;line-height:1.4;margin:18px 0 22px}.item-view{height:285px}.reward-strip{gap:10px;padding:10px}.reward-strip strong{font-size:1.4rem}.reward-strip img{width:43px;height:43px}.reward-strip .pill{font-size:.62rem;padding:3px 8px}.btn{min-height:45px;padding:11px 16px;font-size:.86rem}#toast{bottom:calc(82px + var(--safe-bottom))}.sheet-actions{gap:8px}.splash-bottom{left:10%;right:10%;font-size:.7rem;bottom:9%}}
@media(max-width:360px){.app-shell{padding-left:12px;padding-right:12px}.quest-card{grid-template-columns:97px minmax(0,1fr)}.quest-card-title h3{font-size:1.45rem}.map-wrap{height:320px}.item-card .item-image{height:117px}.item-card h3{font-size:1.37rem}.modal-body{padding-left:17px;padding-right:17px}.reward-strip .pill{display:none}}
