:root{--bg:#0c1119;--panel:#151f2c;--panel2:#1a2635;--ink:#f3e6cc;--muted:#b8a485;--gold:#c99a55;--gold2:#ecd091;--red:#9d514b;--line:rgba(201,154,85,.31);--safe:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:15px/1.68 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}body{background:radial-gradient(circle at 70% -10%,#36231f 0,transparent 25%),#0c1119}button,label{font:inherit}button{cursor:pointer}.app{max-width:620px;margin:auto;min-height:100vh;padding-bottom:78px}.top{position:sticky;top:0;z-index:30;height:70px;display:flex;gap:10px;align-items:center;padding:10px 13px;background:rgba(12,17,25,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.round{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#182334;color:var(--gold2);font-size:21px}.brand{flex:1}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.15em}.brand h1{margin:1px 0 0;font:700 23px/1.05 "Songti SC","STSong",serif;letter-spacing:.1em}main{padding:12px}.bottom{position:fixed;left:0;right:0;bottom:0;z-index:35;max-width:620px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);padding:7px 4px calc(7px + var(--safe));background:rgba(10,15,23,.97);border-top:1px solid var(--line);backdrop-filter:blur(15px)}.bottom button{border:0;background:transparent;color:#a79577;padding:3px 0}.bottom b{display:block;font-size:18px}.bottom small{font-size:10px}.bottom .active{color:var(--gold2)}.hero,.storyscene{position:relative;border:1px solid var(--line);border-radius:17px;overflow:hidden;background:#111824}.hero{height:215px}.storyscene{height:175px;margin-bottom:14px}.hero img,.storyscene img{width:100%;height:100%;object-fit:cover}.ov{position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,rgba(5,8,13,.94))}.heroText{position:absolute;left:15px;right:15px;bottom:13px}.heroText h2{font:700 27px "Songti SC","STSong",serif;margin:0}.heroText p{margin:3px 0;color:#dfcda8}.storyscene span{position:absolute;right:10px;bottom:9px;background:rgba(6,9,14,.68);padding:3px 8px;border-radius:999px;color:var(--gold2);font-size:11px}.section{display:flex;justify-content:space-between;align-items:center;margin:18px 2px 9px}.section h3{margin:0;font:700 19px "Songti SC","STSong",serif}.section small,.subhead{color:var(--muted)}.subhead{margin:16px 2px 8px;font-size:14px}.homeActions{display:grid;gap:8px;margin:13px 0}.homeActions button,.choice,.choices button{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,#1a2635,#131c28);color:var(--ink);padding:11px 13px}.homeActions b{display:block;font-size:16px}.homeActions small{display:block;margin-top:3px;color:var(--muted)}.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.card{background:linear-gradient(180deg,#172230,#121a26);border:1px solid var(--line);border-radius:14px;padding:11px}.card h4{margin:0 0 4px}.card p{margin:4px 0;color:var(--muted);font-size:13px}.story{background:#121b27;border:1px solid var(--line);border-radius:16px;padding:13px}.story h2{font:700 24px "Songti SC","STSong",serif;margin:3px 0 8px}.story p{font-size:15px;line-height:1.88;color:#eadcc3}.quote{font-family:"Songti SC","STSong",serif;color:#d6bb8b;margin:5px 0}.choices{display:grid;gap:8px;margin-top:14px}.choices button b{color:var(--gold2)}.portraitGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.portraitCard{border:1px solid var(--line);border-radius:13px;background:#141e2b;color:var(--ink);padding:7px;text-align:left;overflow:hidden}.portraitCard img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:9px}.portraitCard b,.portraitCard small{display:block}.portraitCard b{margin-top:5px}.portraitCard small{color:var(--muted);font-size:11px}.locked{opacity:.62}.personHero,.itemHero,.profileTop{display:grid;grid-template-columns:124px 1fr;gap:12px;align-items:start}.personHero img,.profileTop img{width:124px;height:166px;object-fit:cover;border:1px solid var(--line);border-radius:14px}.itemHero img{width:124px;height:124px;object-fit:cover;border:1px solid var(--line);border-radius:14px}.personHero h2,.itemHero h2,.profileTop h2{font:700 23px "Songti SC","STSong",serif;margin:3px 0}.personHero p,.itemHero p,.profileTop p{color:var(--muted);font-size:13px;margin:4px 0}.tabs,.chips{display:flex;gap:6px;overflow:auto;padding:12px 0 8px}.tabs button,.chips button{white-space:nowrap;border:1px solid var(--line);border-radius:999px;background:#162130;color:var(--muted);padding:6px 10px;font-size:12px}.tabs .active,.chips .active{color:var(--gold2);background:#2a211e}.itemGrid,.cgGrid,.locationGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.itemCard,.cgGrid button,.locationGrid button{border:1px solid var(--line);border-radius:13px;background:#141e2b;color:var(--ink);padding:7px;text-align:left}.itemCard img,.cgGrid img,.locationGrid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px}.itemCard b,.itemCard small,.cgGrid b,.locationGrid b,.locationGrid small{display:block}.itemCard b,.cgGrid b,.locationGrid b{margin-top:5px;font-size:13px}.itemCard small,.locationGrid small{color:var(--muted);font-size:11px}.vault{margin-top:14px;border:1px solid var(--line);border-radius:14px;padding:10px;color:var(--muted)}.lockedGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.lockedGrid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px}.lockedGrid small{display:block;text-align:center}.archiveGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.archiveGrid button{border:1px solid var(--line);border-radius:13px;background:#151f2d;color:var(--ink);padding:11px 6px}.archiveGrid b,.archiveGrid span,.archiveGrid small{display:block}.archiveGrid b{font-size:20px;color:var(--gold2)}.archiveGrid small{color:var(--muted)}.endingGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.endingCard{border:1px solid var(--line);border-radius:13px;background:#151f2d;padding:10px}.endingCard p{color:var(--muted);font-size:12px}.endingPanel{margin-top:16px;padding:13px;border:1px solid rgba(178,85,70,.75);border-radius:14px;background:rgba(95,42,40,.22)}.endingPanel button{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:999px;background:#1a2634;color:var(--ink);padding:8px}.list{display:grid;gap:8px}.row,.saveCard{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1px solid var(--line);border-radius:13px;background:#151f2d;color:var(--ink);padding:10px;text-align:left}.row p,.saveCard p,.saveCard small{margin:3px 0;color:var(--muted);font-size:12px}.saveCard button{border:1px solid var(--line);border-radius:999px;background:#1a2634;color:var(--ink);padding:5px 8px;margin:2px}.stat p{display:flex;justify-content:space-between;border-bottom:1px dashed rgba(201,154,85,.18);padding:6px 0}.stat b{color:var(--muted)}.miniCards{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0}.miniCards button{border:1px solid var(--line);border-radius:12px;background:#172231;color:var(--ink);padding:10px;text-align:left}.miniCards b,.miniCards small{display:block}.miniCards small{margin-top:4px;color:var(--muted)}.flow{display:grid;gap:4px}.flow div{border:1px solid var(--line);border-radius:12px;background:#151f2d;padding:9px;text-align:center}.flow i{text-align:center;color:var(--gold)}.warn,.error,.empty{border:1px dashed var(--line);border-radius:13px;padding:15px;color:var(--muted);background:rgba(255,255,255,.02)}.danger{border-color:rgba(178,85,70,.8)!important;background:rgba(95,42,40,.22)!important}.secondary{opacity:.78}.fileLabel{text-align:center}.settings label{display:block;margin:11px 0}.settings input[type=range]{width:100%}.sheet{position:fixed;inset:0;z-index:70;display:none;align-items:flex-end;background:rgba(0,0,0,.64)}.sheet.open{display:flex}.sheetBox{width:100%;max-width:620px;margin:auto;background:#121b27;border:1px solid var(--line);border-radius:18px 18px 0 0;padding:14px 14px calc(14px + var(--safe))}.sheetHead{display:flex;justify-content:space-between;align-items:center}.sheetGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.sheetGrid button{border:1px solid var(--line);border-radius:12px;background:#182333;color:var(--ink);padding:10px 4px}.sheetGrid b,.sheetGrid small{display:block}.sheetGrid b{color:var(--gold2);font-size:17px}.sheetGrid small{font-size:11px}.lightbox{position:fixed;inset:0;z-index:90;display:none;background:rgba(0,0,0,.93);padding:16px;align-items:center;justify-content:center}.lightbox.open{display:flex}.lightbox img{max-width:100%;max-height:84vh;object-fit:contain}.lightbox .close{position:absolute;right:16px;top:16px}.lightbox strong{position:absolute;left:18px;bottom:25px;color:var(--gold2)}#toast{position:fixed;z-index:100;left:50%;top:82px;width:min(88vw,430px);transform:translate(-50%,-140%);opacity:0;transition:.3s;background:#1b2836;border:1px solid var(--line);border-radius:13px;padding:10px 12px;box-shadow:0 12px 35px rgba(0,0,0,.45)}#toast.show{transform:translate(-50%,0);opacity:1}#toast b,#toast span{display:block}#toast span{color:var(--muted);font-size:12px;margin-top:2px}a{color:var(--gold2);word-break:break-all}@media(max-width:390px){.itemGrid,.cgGrid,.locationGrid{grid-template-columns:repeat(2,1fr)}.portraitGrid{grid-template-columns:repeat(3,1fr)}.story p{font-size:14px}.archiveGrid{grid-template-columns:repeat(2,1fr)}}
.saveCard small{display:block;margin-top:3px}.saveCard b{margin-right:6px}.saveCard>div:first-child{min-width:0}.saveCard p{word-break:break-word}
