: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}

/* v1.2 code-clean UI refinements */
.saveCard{gap:12px}.saveCard small{display:block;margin-top:4px}.saveCard p{margin-top:7px}.vault summary{cursor:pointer}.story p{max-width:42em}.story .choices{margin-top:18px}.story .choices button{padding:13px 14px}.betaNote{padding:10px 12px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}

/* v1.3 art integration polish */
:root{--bg:#09101a;--panel:#121d2b;--panel2:#172536;--ink:#f3e9d5;--muted:#bba987;--gold:#c69a58;--gold2:#efd49a;--red:#9e5852;--line:rgba(210,168,97,.34)}
body{background:radial-gradient(circle at 78% -8%,rgba(108,54,42,.30),transparent 29%),radial-gradient(circle at -5% 45%,rgba(31,67,87,.20),transparent 34%),#09101a}
.app{box-shadow:0 0 0 1px rgba(210,168,97,.06),0 0 60px rgba(0,0,0,.22)}
.top{height:74px;background:rgba(9,15,24,.94)}
.brand small{font-size:10px;letter-spacing:.18em}.brand h1{font-size:25px;text-shadow:0 2px 20px rgba(220,177,102,.12)}
.hero{height:232px}.storyscene{height:190px}.hero img,.storyscene img{object-position:center center}
.story{background:linear-gradient(180deg,rgba(20,31,44,.98),rgba(14,23,34,.98));box-shadow:0 12px 36px rgba(0,0,0,.18)}
.story p{font-size:15.5px;line-height:1.98;letter-spacing:.012em}
.portraitGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.portraitCard{padding:8px;background:linear-gradient(180deg,#172536,#111b29)}
.portraitCard img{aspect-ratio:1/1;object-position:center 18%;background:#101a27}.portraitCard b{font-size:13px}.portraitCard small{font-size:10px;line-height:1.35}
.personHero{grid-template-columns:145px 1fr;gap:14px}.personHero img{width:145px;height:210px;object-position:center 12%;background:#121c2a}.personHero p{line-height:1.72}
.profileTop img{object-position:center 17%}
.itemGrid,.cgGrid,.locationGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.itemCard,.cgGrid button,.locationGrid button{padding:8px;background:linear-gradient(180deg,#172536,#111b29)}
.itemCard img,.cgGrid img,.locationGrid img{aspect-ratio:1/1;object-fit:cover;background:#0d1622}.itemHero{grid-template-columns:145px 1fr}.itemHero img{width:145px;height:145px}
.card{box-shadow:0 7px 20px rgba(0,0,0,.10)}
.choice,.choices button{transition:transform .12s ease,border-color .12s ease}.choice:active,.choices button:active,.itemCard:active,.portraitCard:active{transform:scale(.985)}
.sheetBox{background:linear-gradient(180deg,#172435,#101925)}
.lightbox{padding:24px 12px 92px}.lightbox img{max-width:min(94vw,900px);max-height:78vh;object-fit:contain;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 80px rgba(0,0,0,.6)}
#toast{border-color:rgba(226,184,107,.48);box-shadow:0 16px 35px rgba(0,0,0,.35)}
@media(max-width:420px){main{padding:11px}.portraitGrid{gap:8px}.portraitCard{padding:6px}.portraitCard b{font-size:12px}.itemGrid,.cgGrid,.locationGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.personHero{grid-template-columns:128px 1fr}.personHero img{width:128px;height:192px}.itemHero{grid-template-columns:126px 1fr}.itemHero img{width:126px;height:126px}}

/* v1.4 soundscape + inline adult prose */
.adultInline{margin:16px 0 4px;padding:13px 13px 10px;border:1px solid rgba(222,126,153,.58);border-radius:14px;background:linear-gradient(180deg,rgba(105,42,67,.27),rgba(64,28,48,.20));box-shadow:0 10px 28px rgba(30,4,17,.18)}
.adultInline .adultHead{margin:0 0 8px;color:#f0a8c0;font-weight:700;letter-spacing:.045em;font-size:13px}
.story .adultInline p{color:#efb3c6;line-height:2.02;text-shadow:0 1px 13px rgba(130,34,69,.12)}
.memoryAdult{border-color:rgba(222,126,153,.36)}
.memoryText p{line-height:1.96}
.audioNow{display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center;margin:12px 0;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025)}
.audioNow b{grid-column:1/3;color:var(--gold2);font-size:13px}.audioNow span{color:var(--muted);font-size:13px}.audioNow button{border:1px solid var(--line);border-radius:999px;background:#1a2634;color:var(--ink);padding:5px 9px}
.adultSetting{margin:12px 0;padding:10px 11px;border:1px dashed rgba(222,126,153,.46);border-radius:11px;color:#e4a2b8;background:rgba(92,35,60,.16);font-size:13px;line-height:1.72}

/* v1.5 narrative wiring, inline cast, author console and tactile minigames */
button.card.homeCard{display:block;width:100%;border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,#172536,#111b29);color:var(--ink);padding:12px;text-align:left;box-shadow:0 7px 20px rgba(0,0,0,.10)}
.homeCard h4{margin:0 0 6px;font-size:16px}.homeCard p{margin:0 0 5px;color:var(--muted);line-height:1.6}.homeCard small{color:var(--gold);font-size:11px}
.inlineCg{display:block;width:100%;margin:13px 0 10px;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#0c1521;color:var(--gold2);text-align:left;box-shadow:0 10px 26px rgba(0,0,0,.18)}
.inlineCg img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.inlineCg span{display:block;padding:8px 10px;font-size:12px;letter-spacing:.04em}
.storyCast{display:flex;align-items:center;gap:8px;overflow-x:auto;margin:9px 0 14px;padding:7px 0 5px}.storyCast>small{flex:0 0 auto;color:var(--muted);font-size:11px;writing-mode:vertical-rl;letter-spacing:.1em}.storyCast button{flex:0 0 auto;width:63px;border:1px solid var(--line);border-radius:11px;background:#162231;color:var(--ink);padding:5px}.storyCast img{display:block;width:51px;height:51px;border-radius:8px;object-fit:cover;object-position:center 16%}.storyCast b{display:block;margin-top:4px;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lockedChoice{opacity:.62;border-style:dashed!important;background:rgba(38,43,51,.72)!important;text-align:left}.lockedChoice small{display:block;margin-top:7px;color:#c4a77d;font-size:11px;line-height:1.5}.lockedChoice b{color:#d0b47d}
.relationGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.relationCard{border:1px solid var(--line);border-radius:13px;padding:9px;background:linear-gradient(180deg,#172536,#111b29)}.relationCard>div{display:flex;align-items:center;gap:8px}.relationCard img{width:42px;height:42px;border-radius:50%;object-fit:cover;object-position:center 16%;border:1px solid var(--line)}.relationCard p{margin:8px 0 3px;color:var(--muted)}.relationCard strong{color:var(--gold2);font-size:18px}.relationCard small{color:var(--muted);font-size:10px;line-height:1.45}.formula p{margin:6px 0;color:var(--muted);font-size:12px;line-height:1.75}
.heartStage{margin:14px 0;padding:18px 14px;border:1px solid rgba(222,126,153,.42);border-radius:16px;background:radial-gradient(circle at 50% 30%,rgba(131,51,82,.30),rgba(20,29,42,.96) 67%);text-align:center}.heartOrb{width:148px;height:148px;border:1px solid rgba(239,168,192,.58);border-radius:50%;background:radial-gradient(circle,rgba(133,46,77,.64),rgba(53,23,45,.92));color:#f0a8c0;box-shadow:0 0 0 8px rgba(222,126,153,.05),0 0 34px rgba(222,126,153,.16)}.heartOrb span,.heartOrb b,.heartOrb small{display:block}.heartOrb span{font-size:40px;line-height:1}.heartOrb b{font-size:25px;margin:6px 0}.heartOrb small{color:#efc2d0}.heartMeter{height:9px;margin:17px auto 8px;overflow:hidden;border:1px solid rgba(222,126,153,.38);border-radius:999px;background:rgba(255,255,255,.04)}.heartMeter i{display:block;height:100%;background:linear-gradient(90deg,#ad5574,#efadc1);transition:width .17s ease}.heartStage p{margin:0;color:var(--muted);font-size:12px}
.authorTools{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0}.authorTools button,.authorGrid button,.authorSelect button{border:1px solid var(--line);border-radius:11px;background:#182638;color:var(--ink);padding:9px 7px}.authorSelect{display:grid;gap:8px}.authorSelect label{color:var(--gold2);font-weight:700}.authorSelect select{width:100%;padding:9px;border:1px solid var(--line);border-radius:8px;background:#0e1927;color:var(--ink)}.authorGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.authorGrid button{text-align:left}.authorGrid b,.authorGrid small{display:block}.authorGrid small{margin-top:5px;color:var(--muted);font-size:10px;line-height:1.35}
@media(max-width:390px){.relationGrid{grid-template-columns:1fr}.authorTools{grid-template-columns:1fr}.inlineCg img{aspect-ratio:16/10}}

/* v1.6 wiring repair: story props and author-return path */
.storyProps{display:flex;align-items:center;gap:8px;overflow-x:auto;margin:8px 0 15px;padding:7px 0 5px}.storyProps>small{flex:0 0 auto;color:var(--muted);font-size:11px;writing-mode:vertical-rl;letter-spacing:.1em}.storyProps button{flex:0 0 auto;width:78px;border:1px solid var(--line);border-radius:11px;background:#162231;color:var(--ink);padding:5px;text-align:left}.storyProps img{display:block;width:66px;height:58px;border-radius:8px;object-fit:cover}.storyProps b{display:block;margin-top:4px;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.authorReturn{position:sticky;top:79px;z-index:24;display:block;width:100%;margin:0 0 9px;padding:9px 12px;border:1px solid rgba(231,195,126,.54);border-radius:999px;background:rgba(29,42,58,.97);color:var(--gold2);font-weight:700;text-align:left;box-shadow:0 8px 22px rgba(0,0,0,.26);backdrop-filter:blur(14px)}.adultInline .adultHead{font-family:"Songti SC","STSong",serif;font-size:14px}.storyCast button:active,.storyProps button:active,.authorReturn:active{transform:scale(.985)}
