:root{--paper: #fffaf0;--paper-2: #fdf2dd;--paper-3: #f0e2c6;--ink: #3b2f22;--ink-2: #6a5a45;--ink-3: #a08d73;--line: #4a3a28;--line-soft: #e2d3b6;--pink: #f4a7b9;--pink-d: #d4718c;--blue: #8ec9f2;--blue-d: #4f9ed4;--green: #a6d98a;--green-d: #6aa84f;--yellow: #f8d06b;--yellow-d: #d9a02f;--orange: #f0a35e;--orange-d: #d07a2c;--purple: #c3b0ea;--accent: #d4718c;--accent-soft: #f4a7b9;--jade: #6aa84f;--gold: #d9a02f;--good: #6aa84f;--bad: #d4574a;--wood-1: #96603a;--wood-2: #6b4426;--surface: #fffdf6;--surface-warm: #fff3dd;--surface-gold: #fff7d6;--surface-muted: #f3e3c6;--surface-chip: #ffe9c9;--font-serif: "Songti SC", "STSong", "Source Han Serif SC", "Noto Serif SC", "Noto Serif CJK SC", "SimSun", serif;--font-hand: var(--font-serif);--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "HarmonyOS Sans SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--fs-scale: 1;--radius: 16px;--tab-h: 66px;--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:#4a3019;color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.6;overscroll-behavior:none;-webkit-font-smoothing:antialiased}button{font-family:inherit;font-size:inherit;color:inherit;border:none;background:none;padding:0;cursor:pointer;touch-action:manipulation}input{font-family:inherit;font-size:inherit;color:inherit}h1,h2,h3,p{margin:0}ul{margin:0;padding:0;list-style:none}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app{position:relative;display:flex;flex-direction:column;width:100%;max-width:520px;height:100dvh;margin:0 auto;background:#8a5a34;background-image:radial-gradient(circle at 20% 0%,rgba(255,220,170,.28),transparent 46%),repeating-linear-gradient(92deg,#0000001a 0 3px,#0000 3px 104px);overflow:hidden;box-shadow:0 0 50px #00000073}.screen{flex:1;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;margin:10px 10px 0;padding:0 16px calc(12px + var(--safe-b));border-radius:20px 20px 0 0;background:var(--paper);box-shadow:inset 0 2px #ffffffe6,0 0 0 2px #4a3a288c,0 10px 24px #00000059}.screen>*{flex:none}.screen--flush{padding:0}.hero{display:flex;align-items:center;gap:12px;padding:14px 0 10px}.hero__avatar{flex:none;padding:3px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px var(--line),0 3px #4a3a2840}.hero__main{flex:1;min-width:0}.hero__name{font-family:var(--font-hand);font-size:23px;letter-spacing:.05em;color:var(--ink);line-height:1.2}.hero__sub{margin-top:2px;font-size:11.5px;color:var(--ink-3);letter-spacing:.1em}.hero__money{font-family:var(--font-hand);font-size:18px;color:var(--ink);text-align:right;line-height:1.25}.hero__money small{display:block;font-family:var(--font-sans);font-size:10.5px;color:#fff;background:var(--orange);border:2px solid var(--line);border-radius:999px;padding:1px 7px;margin-top:3px;letter-spacing:.06em}.hero__money--neg{color:var(--bad)}.attrs{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;padding:12px 0 14px}.attr{display:grid;grid-template-columns:52px 1fr 24px;align-items:center;gap:7px;font-size:11.5px;color:var(--ink-2)}.attr__label{display:flex;align-items:center;gap:4px;letter-spacing:.02em}.game-icon{display:block;flex:none;object-fit:contain;user-select:none}.attr__track{display:block;height:11px;border:2px solid var(--line);border-radius:999px;background:#f1e6d0;overflow:hidden}.attr__fill{display:block;height:100%;border-radius:999px;transition:width .4s ease}.attr__val{text-align:right;font-size:10.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}.feed{display:flex;flex-direction:column;gap:8px;margin-top:6px}.feed__item{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border:2px solid var(--line-soft);border-radius:16px;background:var(--surface);box-shadow:0 2px #4a3a2814}.feed__item--now{border-color:var(--line);background:var(--surface-gold);box-shadow:0 3px #4a3a282e}.feed__badge{flex:none;min-width:34px;padding:2px 6px;border:2px solid var(--line);border-radius:999px;background:var(--green);color:#2f3b22;font-size:10.5px;text-align:center;letter-spacing:.02em}.feed__item--now .feed__badge{background:var(--yellow)}.feed__text{margin:0;font-size:14px;line-height:1.72;color:var(--ink-2)}.feed__item--now .feed__text{font-family:var(--font-hand);font-size:16px;color:var(--ink)}.typing{letter-spacing:.3em;color:var(--ink-3)}.card{margin-top:12px;padding:14px;border:2px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 3px #4a3a2829}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;padding:10px 14px;border:2px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font-size:15px;font-family:var(--font-hand);letter-spacing:.06em;box-shadow:0 3px #4a3a2838;transition:transform .08s ease}.btn:active{transform:translateY(2px);box-shadow:0 1px #4a3a2838}.btn--primary{background:var(--yellow);color:#4a3310}.btn--accent{background:var(--pink);color:#5c2130}.btn--ghost{border-style:dashed;background:transparent;box-shadow:none;color:var(--ink-3);min-height:38px;font-size:13px}.btn--sm{width:auto;min-height:38px;padding:6px 14px;font-size:13.5px}.btn:disabled{opacity:.45}.bottom-bar{margin-top:auto;padding:14px 0 calc(10px + var(--safe-b))}.btn--bar{min-height:54px;border-radius:18px;background:linear-gradient(180deg,var(--orange),var(--orange-d));color:#fff9ec;font-size:19px;letter-spacing:.16em;text-shadow:0 1px 0 rgba(120,60,10,.45);box-shadow:0 0 0 2px var(--line) inset,0 5px 0 var(--orange-d),0 9px 16px #00000047}.btn--bar:active{transform:translateY(3px);box-shadow:0 0 0 2px var(--line) inset,0 2px 0 var(--orange-d),0 4px 10px #0000003d}.section{margin-top:18px}.section__title{display:flex;align-items:center;gap:8px;font-size:11.5px;letter-spacing:.18em;color:var(--ink-3)}.section__title:after{content:"";flex:1;height:2px;border-radius:2px;background:repeating-linear-gradient(90deg,var(--line-soft) 0 6px,transparent 6px 11px)}.season-head{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;letter-spacing:.18em;color:var(--ink-3)}.ap-dots{display:inline-flex;gap:5px}.ap-dot{width:11px;height:11px;border-radius:50%;border:2px solid var(--line);background:#f1e6d0}.ap-dot.on{background:var(--pink)}.chip-wrap{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{display:inline-flex;align-items:center;gap:5px;padding:8px 13px;border:2px solid var(--line);border-radius:999px;background:var(--surface);font-family:var(--font-hand);font-size:14.5px;color:var(--ink);box-shadow:0 2px #4a3a2833;transition:transform .08s ease}.chip:active{transform:translateY(2px);box-shadow:none}.chip--big{background:var(--surface-chip)}.chip--ghost{border-style:dashed;box-shadow:none;color:var(--ink-3);background:transparent}.chip:disabled{opacity:.42}.chip__cost{font-size:11px;color:var(--ink-3)}.free-input{display:flex;gap:8px;margin-top:12px}.free-input input{flex:1;min-width:0;height:46px;padding:0 14px;border:2px solid var(--line);border-radius:14px;background:var(--surface);font-family:var(--font-hand);font-size:15px;color:var(--ink);box-shadow:inset 0 2px 4px #4a3a2814}.free-input input:focus{outline:none;border-color:var(--orange-d);background:#fff}.free-input input::placeholder{color:var(--ink-3);font-size:13px}.sit-note{margin-top:10px;padding:10px 12px;border:2px dashed var(--orange-d);border-radius:14px;background:var(--surface-warm);display:flex;flex-direction:column;gap:8px}.sit-note__item{font-size:13px;line-height:1.7;color:var(--ink-2)}.sit-note__title{font-family:var(--font-hand);color:var(--ink);margin-right:6px}.brief{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.brief__item{padding:5px 12px;border:2px solid var(--line-soft);border-radius:999px;background:var(--surface);font-size:12.5px;color:var(--ink-2)}.brief__item--bad{color:#fff;background:var(--bad);border-color:var(--line)}.near-row{display:flex;gap:12px;margin-top:12px;overflow-x:auto;padding-bottom:6px}.near{display:flex;flex-direction:column;align-items:center;gap:5px;flex:none}.near__name{font-size:11px;color:var(--ink-3);letter-spacing:.02em}.person-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:2px solid var(--line-soft);border-radius:16px;background:var(--surface);text-align:left}.person-row:active{background:var(--surface-gold)}.person-row__main{flex:1;min-width:0}.person-row__name{display:flex;align-items:baseline;gap:6px;font-size:15px;font-family:var(--font-hand)}.person-row__tag{font-size:11px;padding:1px 7px;border-radius:999px;background:var(--blue);color:#17364a;border:1.5px solid var(--line)}.person-row__meta{margin-top:2px;font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{flex:none;border-radius:12px;overflow:hidden;background:var(--paper-3);display:block}.sheet-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 0;border-bottom:2px dashed var(--line-soft)}.sheet-line__name{font-family:var(--font-hand);font-size:15px}.sheet-line__meta{font-size:11px;color:var(--ink-3)}.sheet-line__acts{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}.mini{padding:6px 11px;border:2px solid var(--line);border-radius:999px;background:var(--surface);font-size:12px;color:var(--ink-2);box-shadow:0 2px #4a3a2826}.mini:disabled{opacity:.4}.overlay{position:absolute;inset:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;background:#3a281680;backdrop-filter:blur(2px);animation:fade .18s ease}@keyframes fade{0%{opacity:0}}.sheet{width:100%;max-height:86%;overflow-y:auto;padding:20px 18px calc(20px + var(--safe-b));border:2px solid var(--line);border-bottom:none;border-radius:24px 24px 0 0;background:var(--paper);box-shadow:0 -6px #4a3a281f;animation:rise .22s cubic-bezier(.2,.8,.3,1)}@keyframes rise{0%{transform:translateY(24px)}}.sheet__title{font-family:var(--font-hand);font-size:21px;letter-spacing:.05em}.sheet__body{margin-top:12px;display:flex;flex-direction:column;gap:10px}.situation-block{margin-bottom:10px;padding:10px 12px;border:2px dashed var(--orange-d);border-radius:14px;background:var(--surface-warm)}.situation-block__title{font-family:var(--font-hand);font-size:15px;margin-bottom:2px}.tabbar{flex:none;display:flex;align-items:flex-end;height:calc(66px + var(--safe-b));padding:0 10px;background:transparent}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:52px;margin:0 3px;padding-bottom:var(--safe-b);border:2px solid var(--line);border-bottom:none;border-radius:14px 14px 0 0;background:var(--surface-muted);color:var(--ink-2);font-family:var(--font-hand);font-size:12px;letter-spacing:.1em;box-shadow:0 -2px #4a3a281f inset}.tab:nth-child(1){transform:rotate(-1.5deg)}.tab:nth-child(2){transform:rotate(1deg)}.tab:nth-child(3){transform:rotate(-.8deg)}.tab--on{background:var(--yellow);color:#4a3310;height:58px}.tab__icon{font-size:17px;line-height:1}.bars{display:flex;flex-direction:column;gap:8px}.bar-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3)}.bar-row>span:first-child{flex:none;width:44px}.bar-row__track{flex:1;display:block;height:10px;border:2px solid var(--line);border-radius:999px;background:#f1e6d0;overflow:hidden}.bar-row__fill{display:block;height:100%;border-radius:999px;background:var(--ink-3)}.bar-row__val{flex:none;width:30px;text-align:right;font-variant-numeric:tabular-nums}.kv{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:2px dashed var(--line-soft);font-size:14px}.kv:last-child{border-bottom:none}.kv__k{color:var(--ink-3);font-size:13px;flex:none}.kv__v{text-align:right;font-variant-numeric:tabular-nums}.status-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:11.5px;border:2px solid var(--line);letter-spacing:.04em}.status-chip--good{background:var(--green);color:#2f3b22}.status-chip--bad{background:var(--pink);color:#5c2130}.status-chip--neutral{background:var(--surface-muted);color:var(--ink-2)}.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.tag{padding:3px 10px;border:2px solid var(--line);border-radius:999px;background:var(--surface-muted);font-size:11px;color:var(--ink-2)}.card--calendar{background:var(--surface-gold)}.calendar__month{font-family:var(--font-hand);font-size:44px;line-height:1;color:var(--ink)}.calendar__sub{margin-top:4px;font-size:12px;letter-spacing:.14em;color:var(--ink-3)}.calendar__weather{position:absolute;top:14px;right:14px;padding:2px 10px;border:2px solid var(--line);border-radius:999px;background:#fff;font-size:11px;color:var(--ink-2)}.narration{margin-top:12px;font-family:var(--font-hand);font-size:15px;line-height:1.85;color:var(--ink-2)}.event{margin-top:14px;border:2px solid var(--line);border-radius:18px;background:var(--surface);overflow:hidden;box-shadow:0 3px #4a3a2829}.event__head{padding:14px 14px 0}.event__kicker{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--pink);border:2px solid var(--line);font-size:10.5px;letter-spacing:.1em;color:#5c2130}.event__title{margin-top:8px;font-family:var(--font-hand);font-size:20px;letter-spacing:.04em}.event__text{margin-top:6px;font-size:14px;line-height:1.8;color:var(--ink-2)}.event__choices{padding:12px;display:flex;flex-direction:column;gap:8px}.choice{display:flex;align-items:center;gap:8px;width:100%;min-height:46px;padding:10px 13px;border:2px solid var(--line);border-radius:14px;background:var(--surface);text-align:left;font-size:14.5px;box-shadow:0 2px #4a3a282e}.choice:active{transform:translateY(2px);box-shadow:none}.choice:disabled{opacity:.4}.choice__cost{margin-left:auto;font-size:12px;color:var(--ink-3);white-space:nowrap}.event__result{padding:0 14px 14px;font-family:var(--font-hand);font-size:14.5px;line-height:1.85;color:var(--jade)}.graph-wrap{position:relative;margin:8px -4px 0;height:56vh;min-height:300px;border:2px solid var(--line);border-radius:18px;background:var(--surface);overflow:hidden}.graph-canvas{display:block;width:100%;height:100%;touch-action:none}.graph-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;font-size:11px;color:var(--ink-3)}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:-1px;border:1px solid var(--line)}.seg{display:flex;padding:3px;border:2px solid var(--line);border-radius:999px;background:var(--surface-muted)}.seg button{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;min-height:32px;border-radius:999px;font-size:13px;color:var(--ink-3);font-family:var(--font-hand)}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px #4a3a282e}.form-card{margin-top:20px;padding:12px 14px;border:2px solid var(--line);border-radius:18px;background:var(--surface);display:flex;flex-direction:column;gap:8px;box-shadow:0 3px #4a3a2829}.field{display:flex;align-items:center;gap:10px;min-height:40px}.field__label{flex:none;width:40px;font-size:12px;letter-spacing:.12em;color:var(--ink-3)}.field__input{flex:1;min-width:0;height:38px;padding:0 10px;border:2px solid var(--line-soft);border-radius:10px;background:#fff;font-family:var(--font-hand);font-size:15px;color:var(--ink)}.field__input:focus{outline:none;border-color:var(--orange-d)}.field__input::placeholder{color:var(--ink-3);font-size:13px}.field__suffix{flex:none;font-size:12px;color:var(--ink-3)}.seg--sm{flex:1}.seg--sm button{min-height:32px}.title{display:flex;flex-direction:column;justify-content:center;min-height:100%;padding:40px 24px calc(32px + var(--safe-b));overflow-y:auto}.title__logo{align-self:center;width:88px;height:88px;margin:0 auto 10px;border-radius:20px;box-shadow:0 6px 18px #4a3a282e}.title__name{font-family:var(--font-hand);font-size:46px;letter-spacing:.14em;line-height:1.2;color:var(--ink);text-shadow:0 2px 0 rgba(255,255,255,.9)}.title__sub{margin-top:8px;font-size:12px;letter-spacing:.24em;color:var(--ink-3)}.title__quote{margin-top:24px;font-family:var(--font-hand);font-size:16px;line-height:2;color:var(--ink-2)}.title__actions{margin-top:30px;display:flex;flex-direction:column;gap:10px}.title__foot{margin-top:26px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--ink-3);letter-spacing:.06em}.title__gear{margin-left:auto;font-size:11px;color:var(--ink-3);letter-spacing:.12em;padding:6px 2px}.death{display:flex;flex-direction:column;justify-content:center;min-height:100%;padding:40px 24px calc(30px + var(--safe-b));text-align:center}.death__title{font-family:var(--font-hand);font-size:34px;letter-spacing:.2em}.death__age{margin-top:10px;font-size:13px;letter-spacing:.14em;color:var(--ink-3)}.epitaph{margin-top:24px;padding:16px;border:2px dashed var(--line);border-radius:16px;font-family:var(--font-hand);font-size:16px;line-height:2;color:var(--ink-2)}.death__stats{margin-top:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.death__stat b{display:block;font-family:var(--font-hand);font-size:24px;font-weight:400}.death__stat span{font-size:11px;letter-spacing:.1em;color:var(--ink-3)}.achievements{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.achievement{padding:5px 12px;border:2px solid var(--line);border-radius:999px;background:var(--yellow);font-size:12px;color:#4a3310}.hint{margin-top:8px;font-size:12px;color:var(--ink-3);line-height:1.7}.empty{padding:26px 12px;text-align:center;font-size:13px;color:var(--ink-3);line-height:1.9}.venue-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:2px solid var(--line);border-radius:9px;font-family:var(--font-hand);font-size:14px;line-height:1;background:#fff}.venue-icon--img{width:36px;height:36px;border:none;background:none}.log{margin-top:10px;display:flex;flex-direction:column;gap:8px}.log__item{display:flex;gap:8px;font-size:13.5px;line-height:1.7;color:var(--ink-2)}.log__dot{flex:none;width:6px;height:6px;margin-top:8px;border-radius:50%;background:var(--orange)}.deltas{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.delta{padding:4px 10px;border-radius:999px;border:2px solid var(--line);font-size:12px;background:var(--surface-muted);color:var(--ink-2)}.delta--up{background:var(--green);color:#2f3b22}.delta--down{background:var(--pink);color:#5c2130}.summary{width:100%;padding:24px 20px calc(24px + var(--safe-b));border:2px solid var(--line);border-bottom:none;border-radius:24px 24px 0 0;background:var(--paper)}.summary__month{font-size:12px;letter-spacing:.2em;color:var(--orange-d)}.summary__title{margin-top:6px;font-family:var(--font-hand);font-size:24px;letter-spacing:.05em}.summary__lines{margin-top:10px;display:flex;flex-direction:column;gap:8px;font-size:14px;line-height:1.8;color:var(--ink-2)}.tabbar{height:calc(70px + var(--safe-b));padding:0 10px 6px;align-items:flex-end}.tab{height:50px}.tab--on{height:56px}.book{margin-top:8px;perspective:900px}.book__head{display:flex;align-items:center;gap:8px}.book__nav{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink-2);font-size:16px;line-height:1;box-shadow:0 2px #4a3a2833}.book__nav:disabled{opacity:.28;box-shadow:none}.book__age{font-family:var(--font-hand);font-size:19px;letter-spacing:.06em;color:var(--ink)}.book__dots{margin-left:auto;font-size:11px;color:var(--ink-3);letter-spacing:.08em}.book__page{margin-top:8px;padding:14px 16px;border:2px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:inset 0 0 0 3px var(--surface),0 3px #4a3a282e;transform-origin:left center;animation:pageIn .34s cubic-bezier(.2,.8,.3,1)}.book__text{margin:0;font-family:var(--font-hand);font-size:15.5px;line-height:1.9;color:var(--ink)}.book__text+.book__text{margin-top:7px}@keyframes pageIn{0%{transform:rotateY(-26deg) translate(-10px);opacity:.15}to{transform:none;opacity:1}}.bottom-bar{position:sticky;bottom:0;z-index:12;margin:auto -16px 0;padding:12px 16px calc(12px + var(--safe-b));background:var(--paper);box-shadow:0 -14px 12px -14px #4a3a288c}.topbar{position:relative;margin:0 -16px;padding:12px 16px 8px;border-bottom:2px dashed var(--line-soft)}.topbar__row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.topbar__date{font-family:var(--font-hand);font-size:20px;letter-spacing:.06em;color:var(--ink)}.money{font-family:var(--font-hand);font-size:17px;color:var(--ink-2);white-space:nowrap}.money--neg{color:var(--bad)}.statbar{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat__label{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-3);margin-bottom:4px}.stat__track{height:10px;border:2px solid var(--line);border-radius:999px;background:#f1e6d0;overflow:hidden}.stat__fill{height:100%;border-radius:999px;background:var(--ink-3);transition:width .4s ease}.stat__fill--health{background:var(--green)}.stat__fill--spirit{background:var(--gold)}.stat__fill--mood{background:var(--pink-d)}.topbar__meta{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:11.5px;letter-spacing:.1em;color:var(--ink-3)}.topbar__job{padding:1px 8px;border:2px solid var(--line);border-radius:999px;background:var(--orange);color:#fff;letter-spacing:.04em}.gender-tag{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:6px;padding:0 4px;border:2px solid var(--line);border-radius:6px;font-family:var(--font-sans);font-size:10px;line-height:1;vertical-align:2px}.gender-tag--m{background:var(--blue);color:#17364a}.gender-tag--f{background:var(--pink);color:#5c2130}.book__mon{display:inline-block;min-width:38px;margin-right:6px;font-family:var(--font-sans);font-size:10.5px;color:var(--ink-3);letter-spacing:.02em;vertical-align:1px}.intro{display:flex;flex-direction:column;justify-content:center;min-height:100%;padding:26px 2px 16px}.intro__kicker{font-size:11.5px;letter-spacing:.16em;color:var(--ink-3)}.intro__title{margin-top:6px;font-family:var(--font-hand);font-size:34px;letter-spacing:.08em;color:var(--ink)}.intro__body{margin-top:16px;display:flex;flex-direction:column;gap:10px}.intro__line{font-family:var(--font-hand);font-size:16px;line-height:1.85;color:var(--ink-2)}.intro .card{margin-top:18px}.book__undo{margin-left:8px;padding:3px 9px;border:2px solid var(--line-soft);border-radius:999px;background:var(--surface);font-size:11px;color:var(--ink-3);letter-spacing:.02em}.book__undo:disabled{opacity:.32}.sit-card{margin-top:12px;padding:14px;border:2px solid var(--line);border-radius:18px;background:var(--surface-warm);box-shadow:0 4px #4a3a282e}.sit-card__kicker{display:inline-block;padding:2px 9px;border:2px solid var(--line);border-radius:999px;background:var(--pink);color:#5c2130;font-size:10.5px;letter-spacing:.12em}.sit-card__title{margin-top:8px;font-family:var(--font-hand);font-size:20px;letter-spacing:.04em;color:var(--ink)}.sit-card__text{margin-top:6px;font-size:14.5px;line-height:1.8;color:var(--ink-2)}.sit-card__opts{margin-top:12px;display:flex;flex-direction:column;gap:8px}.sit-opt{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:48px;padding:10px 14px;border:2px solid var(--line);border-radius:14px;background:var(--surface);font-family:var(--font-hand);font-size:16px;color:var(--ink);text-align:left;box-shadow:0 3px #4a3a2838;transition:transform .08s ease}.sit-opt:active{transform:translateY(2px);box-shadow:0 1px #4a3a2838}.sit-opt:disabled{opacity:.42}.sit-opt__cost{font-family:var(--font-sans);font-size:11.5px;color:var(--ink-3);white-space:nowrap}.sit-card__hint{margin-top:10px;font-size:11.5px;color:var(--ink-3);text-align:center}.season-sub{margin-top:14px;font-size:11.5px;letter-spacing:.12em;color:var(--ink-3)}.book__text{font-size:16.5px;line-height:1.95;color:var(--ink)}.intro__line{font-size:17px}.chip,.feed__text{font-size:15px}.sit-opt{min-height:44px;padding:8px 13px;font-size:15.5px}.bottom-bar{padding-top:8px;padding-bottom:calc(8px + var(--safe-b))}.btn--bar{min-height:48px;font-size:18px}.timeline{margin-top:10px;display:flex;flex-direction:column;gap:10px}.timeline__row{display:flex;gap:10px;align-items:flex-start;padding-left:10px;border-left:2px solid var(--line-soft)}.timeline__age{flex:none;width:42px;font-family:var(--font-hand);font-size:13px;color:var(--ink-3)}.timeline__text{flex:1;font-size:13.5px;line-height:1.7;color:var(--ink-2)}.npc-story{margin-top:8px;display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:2px dashed var(--line-soft);border-radius:14px;background:var(--surface)}.npc-story p{margin:0;font-family:var(--font-hand);font-size:14.5px;line-height:1.8;color:var(--ink-2)}.review-card{margin-top:24px;padding:16px;border:2px solid var(--line);border-radius:18px;background:var(--surface-gold);box-shadow:0 3px #4a3a2829;text-align:left}.review-card__kicker{font-size:11px;letter-spacing:.16em;color:var(--ink-3)}.review-card__text{margin-top:8px;font-family:var(--font-hand);font-size:16px;line-height:1.9;color:var(--ink)}.venue-head{display:flex;align-items:center;gap:12px}.venue-head__meta{margin-top:2px;font-size:11.5px;color:var(--ink-3);letter-spacing:.04em}.venue-desc{margin-top:12px;font-size:14px;line-height:1.8;color:var(--ink-2)}.venue-acts{margin-top:10px;display:flex;flex-direction:column;gap:8px}.theme-grid{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.theme-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:10px 12px;border:2px solid var(--line-soft);border-radius:14px;background:var(--surface);box-shadow:0 2px #4a3a281f}.theme-card--on{border-color:var(--line);box-shadow:0 3px #4a3a283d}.theme-card__dots{display:flex;gap:4px}.theme-card__dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.12)}.theme-card__name{font-family:var(--font-hand);font-size:14px;color:var(--ink)}.book__text{font-size:calc(16.5px * var(--fs-scale))}.intro__line{font-size:calc(17px * var(--fs-scale))}.chip{font-size:calc(15px * var(--fs-scale))}.sit-opt{font-size:calc(15.5px * var(--fs-scale))}.kv{font-size:calc(14px * var(--fs-scale))}.kv__k{font-size:calc(13px * var(--fs-scale))}.npc-story p,.timeline__text,.log__item,.narration{font-size:calc(14px * var(--fs-scale))}.sheet-line__name,.person-row__name{font-size:calc(15px * var(--fs-scale))}.person-row__meta{font-size:calc(12px * var(--fs-scale))}.free-input input{font-size:calc(15px * var(--fs-scale))}.setting-row{display:flex;align-items:center;gap:10px;margin-top:10px}.setting-row__label{flex:none;width:34px;font-size:12px;color:var(--ink-3);letter-spacing:.1em}.font-preview{margin-top:12px;padding:12px 14px;border:2px dashed var(--line-soft);border-radius:14px;background:var(--surface);font-family:var(--font-hand);font-size:calc(16px * var(--fs-scale));line-height:1.9;color:var(--ink)}.book__mon--blank{color:transparent}.loading-line{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;font-size:12.5px;color:var(--ink-3);letter-spacing:.06em}.loading-dots{display:inline-flex;gap:3px;align-items:center}.loading-dots i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.35;animation:dotPulse 1.1s infinite ease-in-out}.loading-dots i:nth-child(2){animation-delay:.15s}.loading-dots i:nth-child(3){animation-delay:.3s}@keyframes dotPulse{0%,80%,to{opacity:.25;transform:scale(.85)}40%{opacity:1;transform:scale(1.15)}}.btn--bar.is-loading{opacity:1;color:#fff9ec;cursor:default}.btn--bar:disabled{opacity:.85}.stamina-pill{display:inline-flex;align-items:center;gap:8px}.stamina-bar{display:block;width:92px;height:10px;border:2px solid var(--line);border-radius:999px;background:var(--surface-muted);overflow:hidden}.stamina-bar__fill{display:block;height:100%;border-radius:999px;background:var(--green);transition:width .3s ease}.stamina-num{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.activity-sheet{max-height:88%;padding-bottom:calc(12px + var(--safe-b))}.activity-head{display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:2px solid var(--line-soft)}.activity-back{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:10px;background:var(--surface);font-size:16px;color:var(--ink);box-shadow:0 2px #4a3a282e}.activity-title{flex:1;font-family:var(--font-hand);font-size:20px;letter-spacing:.06em;color:var(--ink)}.activity-stamina{font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}.activity-list{margin-top:6px;display:flex;flex-direction:column}.act-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 4px;border-bottom:2px dashed var(--line-soft);background:none;text-align:left}.act-row:last-child{border-bottom:none}.act-row:active{background:var(--surface-gold)}.act-row--off{opacity:.42}.act-row__icon{flex:none;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:12px;font-size:18px;line-height:1}.act-row__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.act-row__name{font-family:var(--font-hand);font-size:16px;color:var(--ink)}.act-row__meta{font-size:11.5px;color:var(--ink-3)}.act-row__chev{flex:none;font-size:18px;color:var(--ink-3)}.entry-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.entry-btn{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 14px;border:2px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 3px #4a3a282e;text-align:left}.entry-btn:active{transform:translateY(2px);box-shadow:0 1px #4a3a282e}.entry-btn:disabled{opacity:.45}.entry-btn__name{font-family:var(--font-hand);font-size:16px;color:var(--ink)}.entry-btn__meta{font-size:11px;color:var(--ink-3)}.origin-pick{margin-top:20px}.origin-pick__head{display:flex;align-items:baseline;justify-content:space-between;font-size:11.5px;letter-spacing:.14em;color:var(--ink-3)}.origin-pick__hint{color:var(--ink);letter-spacing:.04em}.origin-pick__row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;overflow:visible;padding-bottom:2px}.origin-pick__row::-webkit-scrollbar{display:none}.origin-chip{flex:0 0 auto;padding:8px 14px;border:2px solid var(--line);border-radius:999px;background:var(--surface);font-family:var(--font-hand);font-size:14px;color:var(--ink);box-shadow:0 2px #4a3a2829;white-space:nowrap}.origin-chip--on{background:var(--yellow);color:#4a3310}.exam-sheet{max-height:88%}.exam-head{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:10px;border-bottom:2px solid var(--line-soft)}.exam-title{font-family:var(--font-hand);font-size:21px;letter-spacing:.06em}.exam-progress{font-size:11.5px;color:var(--ink-3)}.exam-question{margin-top:18px;font-family:var(--font-hand);font-size:19px;line-height:1.7;color:var(--ink)}.exam-options{margin-top:18px;display:flex;flex-direction:column;gap:10px}.exam-option{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border:2px solid var(--line);border-radius:14px;background:var(--surface);font-size:16px;color:var(--ink);text-align:left;box-shadow:0 3px #4a3a2829}.exam-option:active{transform:translateY(2px);box-shadow:0 1px #4a3a2829}.exam-option__idx{flex:none;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:8px;font-size:12px;color:var(--ink-3)}.exam-option--right{background:var(--green);border-color:var(--line)}.exam-option--wrong{background:var(--pink);border-color:var(--line)}.exam-feedback{margin-top:18px;padding-top:14px;border-top:2px dashed var(--line-soft)}.exam-feedback__mark{font-family:var(--font-hand);font-size:18px}.exam-feedback__mark.is-right{color:var(--good)}.exam-feedback__mark.is-wrong{color:var(--bad)}.exam-feedback__note{margin-top:6px;font-size:13px;line-height:1.7;color:var(--ink-2)}.exam-feedback .btn{margin-top:14px}.ending-card{margin-top:22px;padding:18px;border:2px solid var(--line);border-radius:18px;background:var(--surface-gold);box-shadow:0 3px #4a3a282e;text-align:left}.ending-card__tier{display:inline-block;padding:2px 10px;border:2px solid var(--line);border-radius:999px;background:var(--pink);color:#5c2130;font-size:10.5px;letter-spacing:.12em}.ending-card__title{margin-top:10px;font-family:var(--font-hand);font-size:24px;letter-spacing:.06em;color:var(--ink)}.ending-card__lines{margin-top:10px;display:flex;flex-direction:column;gap:8px}.ending-card__lines p{margin:0;font-family:var(--font-hand);font-size:15.5px;line-height:1.85;color:var(--ink-2)}.scores{margin-top:18px;display:flex;flex-direction:column;gap:8px}.score-row{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--ink-3)}.score-row__label{flex:none;width:30px}.score-row__track{flex:1;height:10px;border:2px solid var(--line);border-radius:999px;background:var(--surface-muted);overflow:hidden}.score-row__fill{display:block;height:100%;border-radius:999px;background:var(--blue)}.score-row__val{flex:none;width:26px;text-align:right;font-variant-numeric:tabular-nums}.scores__total{margin-top:4px;text-align:right;font-size:12.5px;color:var(--ink-2)}.scores__total b{font-family:var(--font-hand);font-size:20px;font-weight:400}.death__origin{margin-top:14px;font-size:12px;color:var(--ink-3)}.sit-opt__hint{display:block;margin-top:2px;font-family:var(--font-sans);font-size:11.5px;line-height:1.5;color:var(--ink-3)}.panel-card{margin-top:10px;padding:12px 14px;border:2px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 3px #4a3a2824}.panel-card .kv{border-bottom:2px dashed var(--line-soft);padding:9px 0}.panel-card .kv:last-child{border-bottom:none}.person-page .page-head{display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:2px solid var(--line-soft)}.npc-worry{margin-top:8px;padding:10px 12px;border:2px dashed var(--line-soft);border-radius:14px;background:var(--surface-warm);font-family:var(--font-hand);font-size:14.5px;line-height:1.8;color:var(--ink-2)}.person-page{position:absolute;inset:0;z-index:40;margin:0;border-radius:0;padding-top:calc(10px + env(safe-area-inset-top,0px));background:var(--paper)}.overlay--modal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:18px;background:#3a28169e;backdrop-filter:blur(2px)}.intro-card{width:100%;max-height:88%;overflow-y:auto;padding:22px 20px;border:2px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 10px 30px #00000059;text-align:left}.intro-card .intro__title{font-size:30px}.uni-card{max-height:90%}.uni-score{font-family:var(--font-hand);font-size:20px;color:var(--ink)}.uni-score b{font-size:30px;color:var(--accent)}.uni-list{margin-top:12px;display:flex;flex-direction:column;gap:8px}.uni-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:2px solid var(--line);border-radius:14px;background:var(--surface);text-align:left;box-shadow:0 2px #4a3a2829}.uni-row--off{opacity:.45}.uni-row__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.uni-row__name{font-family:var(--font-hand);font-size:16px;color:var(--ink)}.uni-row__meta{font-size:11px;color:var(--ink-3)}.uni-row__go{flex:none;padding:4px 10px;border:2px solid var(--line);border-radius:999px;background:var(--green);font-size:12px;color:#2f3b22}.uni-actions{margin-top:14px;display:flex;flex-direction:column;gap:8px}.timeline__row{border-left:none;padding-left:0;gap:12px;align-items:baseline}.timeline__age{width:38px;text-align:right;font-size:13px;color:var(--ink-3)}.timeline__text{font-size:13.5px;line-height:1.75;color:var(--ink)}.book__log{flex:none;margin-left:2px;padding:3px 9px;border:2px solid var(--line-soft);border-radius:999px;background:var(--surface);font-size:11px;color:var(--ink-3);letter-spacing:.02em;white-space:nowrap}.book__log:active{transform:translateY(1px)}.life-log-overlay{position:absolute;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:18px;background:#3a28169e;backdrop-filter:blur(2px)}.life-log{width:100%;max-height:84%;display:flex;flex-direction:column;border:2px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 12px 34px #0006;overflow:hidden}.life-log__head{display:flex;align-items:center;gap:10px;padding:14px 18px 10px}.life-log__title{flex:none;font-family:var(--font-hand);font-size:17px;letter-spacing:.22em;color:var(--ink-3)}.life-log__rule{flex:1;border-top:1.5px dashed var(--line-soft)}.life-log__close{flex:none;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:2px solid var(--line-soft);border-radius:50%;background:var(--surface);font-size:14px;line-height:1;color:var(--ink-3)}.life-log__list{overflow-y:auto;padding:4px 18px calc(16px + var(--safe-b));-webkit-overflow-scrolling:touch}.life-log__row{display:flex;gap:12px;align-items:baseline;padding:5px 0}.life-log__age{flex:none;width:40px;text-align:right;font-family:var(--font-hand);font-size:13px;color:var(--ink-3)}.life-log__text{flex:1;font-size:13.5px;line-height:1.7;color:var(--ink)}.life-log__row.is-now .life-log__age{color:var(--orange)}.choice-modal{width:100%;max-height:88%;overflow-y:auto;border:2px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 12px 34px #0006}.choice-modal__banner{padding:12px 16px;margin:-2px -2px 0;background:var(--orange);color:#fff9ec;font-family:var(--font-hand);font-size:18px;letter-spacing:.16em;text-align:center;border-radius:18px 18px 0 0;text-shadow:0 1px 0 rgba(90,50,10,.4)}.choice-modal__body{padding:18px 18px calc(16px + var(--safe-b))}.choice-modal__title{font-family:var(--font-hand);font-size:21px;color:var(--ink);text-align:center}.choice-modal__text{margin-top:10px;font-size:15px;line-height:1.85;color:var(--ink-2)}.choice-modal__opts{margin-top:16px;display:flex;flex-direction:column;gap:10px}.choice-modal__opt{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 14px;border:2px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 3px #4a3a2833}.choice-modal__opt:active{transform:translateY(2px);box-shadow:none}.choice-modal__opt:disabled{opacity:.45}.choice-modal__label{font-family:var(--font-hand);font-size:16.5px;color:var(--ink)}.choice-modal__meta{font-size:11.5px;color:var(--ink-3)}.choice-modal__later{display:block;margin:14px auto 0;font-size:12.5px;color:var(--ink-3);text-decoration:underline}.choice-modal__banner{background:linear-gradient(180deg,#f2a55c,#d67e2a)}.result-modal{width:100%;max-height:80%;overflow-y:auto;border:2px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 12px 34px #0006}.result-modal__body{padding:18px 18px calc(16px + var(--safe-b))}.result-modal__title{font-family:var(--font-hand);font-size:20px;color:var(--ink);text-align:center}.result-modal__line{margin-top:10px;font-family:var(--font-hand);font-size:16px;line-height:1.9;color:var(--ink-2)}.result-modal .btn{margin-top:18px}.result-modal{overflow-x:hidden;overflow-y:auto}.result-modal .choice-modal__banner{margin:0;border-radius:18px 18px 0 0}.exam-modal{width:100%;max-height:88%;overflow-y:auto;padding:18px 18px calc(16px + var(--safe-b));border:2px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 12px 34px #0006}.overlay--modal{z-index:60}.activity-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:2px solid var(--line);border-radius:16px;background:var(--surface)}.activity-row--off{opacity:.5}.activity-icon{width:34px;height:34px;flex:none;display:grid;place-items:center;border:2px solid var(--line);border-radius:10px;background:var(--paper)}.activity-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.activity-name{font-family:var(--font-hand);font-size:16px;color:var(--ink)}.activity-desc,.activity-cost{font-size:11.5px;color:var(--ink-3)}.tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}.tile-grid--wide{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{display:flex;flex-direction:column;align-items:center;gap:2px;aspect-ratio:1 / 1;padding:8px 5px 7px;overflow:hidden;border:2px solid var(--line);border-radius:14px;background:var(--surface);text-align:center}.tile--off{opacity:.5}.tile__icon{position:relative;flex:1 1 auto;width:100%;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.tile__icon img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.tile__name{flex:none;max-width:100%;font-family:var(--font-hand);font-size:13px;line-height:1.25;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile__desc{flex:none;max-width:100%;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;font-size:9.5px;line-height:1.25;color:var(--ink-3)}.tile__cost{flex:none;margin-top:1px;max-width:100%;font-size:11px;line-height:1.2;color:var(--ink-2);white-space:nowrap}.stock-list{display:flex;flex-direction:column;gap:6px}.stock-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:2px solid var(--line);border-radius:14px;background:var(--surface)}.stock-row__main{flex:1;min-width:0}.stock-row__name{font-family:var(--font-hand);font-size:15px;color:var(--ink)}.stock-row__own{margin-left:6px;font-size:10.5px;color:var(--ink-3)}.stock-row__sub{font-size:10.5px;color:var(--ink-3)}.stock-row__num{text-align:right;min-width:74px}.stock-row__price{font-size:15px;color:var(--ink)}.stock-row__chg.up{color:#b4453a}.stock-row__chg.down{color:#3f7c5a}.stock-row__chg{font-size:11px}.stock-row__act{display:flex;gap:6px}.trade-qty{margin-top:12px;display:flex;gap:8px;justify-content:center}.quote-card{padding:12px 14px 14px;border:2px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 3px #4a3a2824}.quote-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.quote-name{font-family:var(--font-hand);font-size:18px;color:var(--ink)}.quote-tag{margin-left:8px;padding:1px 7px;border:1px solid var(--line-soft);border-radius:999px;font-size:10.5px;color:var(--ink-3)}.quote-code{margin-top:2px;font-size:11px;color:var(--ink-3);letter-spacing:.05em}.quote-price{text-align:right;font-size:24px;font-family:var(--font-hand);line-height:1.1}.quote-chg{font-size:12px}.kline{width:100%;height:168px;margin-top:8px;border-top:1px dashed var(--line-soft);border-bottom:1px dashed var(--line-soft)}.quote-stats{display:flex;justify-content:space-between;margin-top:8px;font-size:11.5px;color:var(--ink-3)}.quote-actions{margin-top:10px;display:flex;gap:10px}.quote-actions .mini{flex:1;padding:8px 0}.stock-row__num{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.stock-row__chg{display:block;white-space:nowrap}.trade-input-row{display:flex;align-items:center;gap:8px;margin-top:12px}.trade-input{flex:1;min-width:0;padding:10px 12px;border:2px solid var(--line);border-radius:14px;background:var(--paper);font-family:var(--font-hand);font-size:18px;color:var(--ink);text-align:center}.trade-input:focus{outline:none;border-color:#c99a3f}.trade-unit{font-size:13px;color:var(--ink-3)}.choice-modal{overflow-x:hidden}.quote-zoom{width:30px;height:30px;flex:none;border:2px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink-2);font-size:14px;line-height:1}.chart-full{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;padding:calc(10px + env(safe-area-inset-top,0px)) 12px calc(10px + env(safe-area-inset-bottom,0px));background:var(--paper)}.chart-full__bar{display:flex;align-items:center;gap:12px;font-family:var(--font-hand);font-size:16px;color:var(--ink)}.chart-full__name{flex:1}.chart-full__close{width:32px;height:32px;border:2px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}.chart-full__tabs{display:flex;gap:8px;margin-top:10px}.chart-full__tabs button{flex:1;padding:6px 0;border:2px solid var(--line);border-radius:999px;background:var(--surface);font-size:12.5px;color:var(--ink-2)}.chart-full__tabs button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.chart-full__body{flex:1;min-height:0;margin-top:10px;border:2px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}.chart-full__body .kline{width:100%;height:100%;margin:0;border:none}.chart-full__foot{display:flex;justify-content:space-between;margin-top:8px;font-size:11.5px;color:var(--ink-3)}@media (orientation: landscape){.chart-full__body .kline{height:100%}}.seg--lock{opacity:.55}.chart-full--rot{width:100vh;height:100vw;top:50%;left:50%;transform:translate(-50%,-50%) rotate(90deg);transform-origin:center;padding:10px 14px}.chart-full__tabs button{min-width:0}.chart-full__tabs button:last-child{flex:0 0 auto;padding:6px 10px}.chart-full,.chart-full--rot{box-sizing:border-box;overflow:hidden}.chart-full--rot .chart-full__bar{padding:0 2px}.chart-full--rot .chart-full__tabs{gap:6px}.chart-full--rot .chart-full__tabs button{padding:5px 0;font-size:12px}.eff-list{margin-top:12px;border:2px solid var(--line-soft);border-radius:14px;background:var(--paper);padding:4px 12px}.eff-list__row{display:flex;justify-content:space-between;padding:7px 0;font-size:13px;color:var(--ink-2);border-bottom:1px dashed var(--line-soft)}.eff-list__row:last-child{border-bottom:none}.eff-up{color:#b4453a}.eff-down{color:#3f7c5a}.quick-start{margin-top:14px;padding-top:12px;border-top:2px dashed var(--line-soft)}.quick-start__title{font-size:12.5px;color:var(--ink-3);letter-spacing:.04em}.quick-start__row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.quick-start__row .origin-chip{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 16px}.quick-start__hint{font-family:var(--font-body, inherit);font-size:10px;color:var(--ink-3)}.title__name,.title__sub,.title__quote{text-align:center}.form-card{border:none;background:transparent;box-shadow:none;padding:0;margin-top:16px}.btn,.mini,.origin-chip,.stock-row,.activity-row,.tile,.uni-row,.entry-btn,.choice-modal__opt,.seg button,.tab,.book__nav,.quote-zoom,.chart-full__tabs button,.chart-full__close,.choice-modal__later{transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease,transform 90ms ease,filter .14s ease}@media (hover: hover){.btn:not(:disabled):hover,.mini:not(:disabled):hover,.origin-chip:not(:disabled):hover,.seg button:not(:disabled):hover,.tab:not(:disabled):hover,.quote-zoom:not(:disabled):hover,.chart-full__tabs button:not(:disabled):hover,.chart-full__close:not(:disabled):hover{filter:brightness(.96);border-color:var(--ink-3);box-shadow:0 4px #4a3a2838;transform:translateY(-1px)}.stock-row:not(:disabled):hover,.activity-row:not(:disabled):hover,.tile:not(:disabled):hover,.uni-row:not(:disabled):hover,.entry-btn:not(:disabled):hover,.choice-modal__opt:not(:disabled):hover{background:var(--surface-warm, #fff);border-color:var(--ink-3);box-shadow:0 4px #4a3a2833}.choice-modal__opt:not(:disabled):hover{transform:translateY(-1px)}.book__nav:not(:disabled):hover{background:var(--surface-warm, #fff);border-color:var(--ink-3)}.tab:not(.tab--on):hover{background:var(--surface-warm, #fff)}.choice-modal__later:hover{color:var(--ink)}}.btn:not(:disabled):active,.mini:not(:disabled):active,.origin-chip:not(:disabled):active,.stock-row:not(:disabled):active,.activity-row:not(:disabled):active,.tile:not(:disabled):active,.uni-row:not(:disabled):active,.entry-btn:not(:disabled):active,.choice-modal__opt:not(:disabled):active{transform:translateY(1px);box-shadow:none;filter:brightness(.94)}.title{padding-top:6px}.title__name{font-size:34px;letter-spacing:.12em}.title__sub{margin-top:4px;font-size:11px;letter-spacing:.2em}.title__quote{margin-top:12px;font-size:13.5px;line-height:1.75}.title__quote p{margin:0}.form-card{margin-top:10px;gap:6px}.form-card .field__input{height:38px}.origin-pick__row{gap:6px;margin-top:8px}.origin-chip{padding:6px 11px;font-size:13px}.quick-start{margin-top:10px;padding-top:8px}.quick-start__row{margin-top:6px;gap:6px}.quick-start__row .origin-chip{padding:5px 12px}.title__actions{margin-top:12px;gap:8px}.free-hint{margin-top:12px;padding:8px 10px;border-top:1px dashed var(--line-soft);font-size:12px;line-height:1.7;color:var(--ink-3);text-align:center}.quit-link{display:block;margin:10px auto 0;padding:4px 8px;font-size:11.5px;color:var(--ink-3);text-decoration:underline;background:none;border:none}.quit-link:hover{color:var(--ink)}.book__home{width:30px;height:30px;flex:none;display:grid;place-items:center;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink-2);font-size:14px;line-height:1}.book__home:hover{background:var(--surface-warm, #fff);border-color:var(--ink-3)}.hero__tools{display:flex;justify-content:flex-end;gap:6px;margin-bottom:6px}.tool-btn{padding:4px 9px;border:1.5px solid var(--line);border-radius:9px;background:var(--surface);font-size:11.5px;color:var(--ink-2);transition:background-color .14s ease,border-color .14s ease}.tool-btn:hover{background:var(--surface-warm, #fff);border-color:var(--ink-3)}.hero__right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:none}.hero__right .hero__tools{margin-bottom:0;gap:4px}.hero__right .tool-btn{width:26px;padding:3px 0;text-align:center;font-size:12px}.hero__right .hero__money{margin:0}.back-link{padding:6px 2px;background:none;border:none;font-size:14px;color:var(--ink-2);transition:color .14s ease}.back-link:hover{color:var(--ink)}.field--quick{align-items:flex-start;flex-wrap:wrap}.field--quick .field__label{padding-top:8px}.field--quick .quick-start__row{flex:1;display:flex;flex-wrap:wrap;gap:6px;margin-top:0}.field--quick .origin-chip{flex:1 1 0;min-width:0;padding:4px;font-size:12.5px}.field--quick .quick-start__hint{font-size:9px}.field--quick .field__label{width:58px;flex:none;line-height:1.35;padding-top:6px}.slot-row{padding:10px 12px;border:2px solid var(--line);border-radius:14px;background:var(--surface)}.slot-row__name{font-family:var(--font-hand);font-size:15px;color:var(--ink)}.slot-row__meta{margin-top:2px;font-size:11px;color:var(--ink-3)}.slot-row__act{margin-top:8px;display:flex;gap:6px}.archive-list{margin-top:10px;display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto}.archive-row{padding:10px 12px;border:2px solid var(--line);border-radius:14px;background:var(--surface)}.archive-row__head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.archive-row__name{font-family:var(--font-hand);font-size:15px;color:var(--ink)}.archive-row__age{font-size:11px;color:var(--ink-3)}.archive-row__line{margin-top:4px;font-size:13px;line-height:1.7;color:var(--ink-2)}.archive-row__meta{margin-top:4px;font-size:11px;color:var(--ink-3)}.title__actions__row{display:flex;gap:8px}.title__actions__row .btn{flex:1}.field__select{appearance:none;-webkit-appearance:none;padding-right:28px;background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 11px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat}.field__static{flex:1;padding:9px 14px;border:2px dashed var(--line-soft);border-radius:12px;font-family:var(--font-hand);font-size:15px;color:var(--ink-2);background:var(--paper)}.kin-list{margin-top:8px;display:flex;flex-direction:column;gap:6px}.kin-row{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border:2px solid var(--line);border-radius:12px;background:var(--surface);font-size:13.5px;color:var(--ink)}.kin-row__label{color:var(--ink-3);font-size:12px}.kin-row:hover{background:var(--surface-warm, #fff);border-color:var(--ink-3)}.tree-wrap{margin-top:12px;padding:10px 6px;border:2px solid var(--line);border-radius:16px;background:var(--surface)}.tree-svg{width:100%;height:auto;display:block}.person-page .kin-row{padding:6px 10px;border-width:1.5px;border-radius:10px;font-size:12.5px}.person-page .kin-row__label{font-size:11px}.person-page .tree-wrap{margin-top:8px;padding:6px 2px}.goods-cat{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--surface);border:1.5px solid var(--line-soft);font-size:11.5px;color:var(--ink-3);letter-spacing:.08em}.meet-sheet{max-height:84%}.meet-head{display:flex;align-items:flex-start;gap:12px;padding-bottom:12px;border-bottom:1.5px dashed var(--line-soft)}.meet-head__main{flex:1;min-width:0}.meet-head__name{display:flex;align-items:center;gap:6px;font-family:var(--font-hand);font-size:20px;color:var(--ink)}.meet-head__sub{margin-top:3px;font-size:12px;color:var(--ink-3)}.meet-head__aff{display:flex;align-items:center;gap:8px;margin-top:9px}.meet-head__aff-label{flex:none;font-size:11px;color:var(--ink-3)}.meet-head__bar{flex:1;height:8px;border-radius:999px;background:var(--line-soft);overflow:hidden}.meet-head__fill{display:block;height:100%;border-radius:999px;background:var(--gold)}.meet-head__num{flex:none;width:26px;text-align:right;font-size:12px;color:var(--ink-3)}.meet-close{flex:none;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:2px solid var(--line-soft);border-radius:50%;background:var(--surface);font-size:15px;line-height:1;color:var(--ink-3)}.meet-tired{margin-top:10px;text-align:center}.meet-list{margin-top:12px;display:flex;flex-direction:column;gap:8px}.meet-row{display:flex;align-items:center;gap:10px;width:100%;padding:11px 13px;border:2px solid var(--line-soft);border-radius:14px;background:var(--surface);text-align:left}.meet-row.is-off{opacity:.45}.meet-row__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.meet-row__label{display:flex;align-items:center;gap:6px;font-size:15px;color:var(--ink)}.meet-row__desc{font-size:12px;color:var(--ink-3)}.meet-row__hint{flex:none;font-size:12px;color:var(--ink-3)}.meet-back{margin-top:10px;padding:2px 0;border:none;background:none;font-size:12.5px;color:var(--ink-3)}.meet-row--danger{border-color:#c9553f}.meet-row--danger .meet-row__label{color:#a63b2a}.meet-confirm__text{margin-top:12px;font-size:13.5px;line-height:1.8;color:var(--ink-2)}.ad-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:26px;min-width:26px;padding:0 7px;flex:none;border:1.5px solid var(--gold);border-radius:9px;background:#f0a35e24;color:var(--orange-d);font-size:11.5px;letter-spacing:.02em;white-space:nowrap}.ad-btn:disabled{opacity:.45}.ad-btn:hover{border-color:var(--orange-d);background:#f0a35e3d}.ad-btn__label{font-size:11.5px}.meet-row-wrap{display:flex;align-items:center;gap:8px}.meet-row-wrap .meet-row{flex:1;min-width:0}.birth-card{max-height:90%}.birth-head{display:flex;align-items:center;gap:14px;padding-bottom:12px;border-bottom:1.5px dashed var(--line-soft)}.birth-head__main{flex:1;min-width:0}.birth-head__title{font-family:var(--font-hand);font-size:20px;color:var(--ink)}.birth-head__sub{margin-top:4px;font-size:12.5px;color:var(--ink-3)}.birth-surname{margin-top:14px;display:flex;align-items:center;gap:10px}.birth-surname__label{flex:none;font-size:12.5px;color:var(--ink-3)}.birth-surname .seg{flex:1;min-width:0}.birth-name{margin-top:16px;display:flex;align-items:center;gap:8px}.birth-name__surname{flex:none;font-family:var(--font-hand);font-size:24px;color:var(--ink)}.birth-name__input{flex:1;min-width:0;height:44px;padding:0 12px;border:2px solid var(--line);border-radius:12px;background:var(--surface);font-family:var(--font-hand);font-size:20px;letter-spacing:.08em;color:var(--ink);outline:none}.birth-name__input:focus{border-color:var(--gold)}.birth-name__input::placeholder{font-size:15px;letter-spacing:0;color:var(--ink-3)}.birth-name__hint{margin-top:10px}.birth-name__hint b{font-family:var(--font-hand);font-size:15px;color:var(--ink)}.settle-row{display:flex;justify-content:center;margin-bottom:10px}.exam-head__right{display:flex;align-items:center;gap:8px}.exam-boosted{font-size:11.5px;color:var(--orange-d)}.hero__right .tool-btn--ad{border-color:var(--gold);background:#f0a35e24;color:var(--orange-d)}.hero__right .tool-btn--ad:hover{border-color:var(--orange-d);background:#f0a35e3d}.ad-card{width:100%;max-width:420px;border:2px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 12px 34px #00000073;overflow:hidden}.ad-card__banner{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--orange);color:#fff9ec;font-family:var(--font-hand);font-size:16px;letter-spacing:.2em}.ad-card__badge{font-family:var(--font-serif);font-size:12px;letter-spacing:.04em;padding:2px 8px;border-radius:999px;background:#ffffff47}.ad-card__body{padding:16px 18px calc(16px + var(--safe-b))}.ad-card__title{font-family:var(--font-hand);font-size:20px;text-align:center;color:var(--ink)}.ad-card__desc{margin-top:8px;font-size:13.5px;line-height:1.8;color:var(--ink-2);text-align:center}.ad-card__tip{margin-top:8px;font-size:12.5px;color:#a63b2a;text-align:center}.ad-card__note{margin-top:10px;font-size:11.5px;color:var(--ink-3);text-align:center}.ad-card__actions{margin-top:16px;display:flex;flex-direction:column;gap:8px}.ad-fake{padding:22px 14px;border:2px dashed var(--line-soft);border-radius:14px;background:var(--surface);text-align:center}.ad-fake__tag{font-size:10.5px;letter-spacing:.14em;color:var(--ink-3)}.ad-fake__title{margin-top:10px;font-family:var(--font-hand);font-size:18px;color:var(--ink)}.ad-fake__sub{margin-top:6px;font-size:12px;color:var(--ink-3)}.ad-fake__timer{margin-top:14px;font-family:var(--font-hand);font-size:15px;color:var(--orange-d)}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.portrait-zoom{background:var(--paper);border:3px solid var(--line);border-radius:20px;padding:16px 20px 18px;box-shadow:0 12px 32px #00000047;text-align:center;max-width:280px}.portrait-zoom img{width:232px;height:232px;border-radius:50%;border:3px solid var(--line);display:block;margin:0 auto}.portrait-zoom__name{margin-top:12px;font-size:17px;color:var(--ink)}.portrait-zoom__sub{margin-top:2px;font-size:12.5px;color:var(--ink-3)}.shop{display:flex;gap:10px;margin-top:10px;align-items:flex-start}.shop__menu{flex:none;width:76px;display:flex;flex-direction:column;gap:6px}.shop__item{padding:8px 4px;border:1.5px solid var(--line-soft);border-radius:10px;background:var(--surface);font-size:12px;color:var(--ink-2);text-align:center}.shop__item.is-on{background:var(--yellow);border-color:var(--ink);color:var(--ink);font-weight:600}.shop__detail{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.title{justify-content:flex-start;padding:18px 20px calc(16px + var(--safe-b))}.title__hero{display:flex;flex-direction:column;align-items:center;text-align:center}.title__logo{width:62px;height:62px;margin:0;padding:3px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px var(--line),0 4px #4a3a2838}.title__name{margin-top:10px;font-family:var(--font-serif);font-size:32px;line-height:1.15;letter-spacing:.14em;color:var(--ink);text-shadow:0 2px 0 rgba(255,255,255,.9)}.title__tag{margin-top:8px;padding:2px 11px;border:2px solid var(--line);border-radius:999px;background:var(--surface-muted);font-size:10.5px;letter-spacing:.12em;color:var(--ink-2)}.title__prologue{margin-top:12px;padding:11px 13px 12px;border:2px solid var(--line);border-radius:18px;background:var(--surface-warm);box-shadow:0 4px #4a3a282e}.title__kicker{display:inline-block;padding:2px 9px;border:2px solid var(--line);border-radius:999px;background:var(--pink);color:#5c2130;font-size:10.5px;letter-spacing:.12em}.title__prologue p{margin-top:6px;font-family:var(--font-serif);font-size:13.5px;line-height:1.75;color:var(--ink-2)}.title .form-card{margin-top:10px}.title .seg{flex:none;width:150px}.title .field{min-height:36px}.title .origin-pick{margin-top:12px}.title .origin-pick__row{gap:6px;margin-top:8px}.title .origin-chip{padding:5px 10px;font-size:12.5px}.title__actions{margin-top:16px}.title__foot{margin-top:auto;padding-top:14px}.landing{display:flex;flex-direction:column;justify-content:safe center;min-height:100%;padding:30px 24px calc(22px + var(--safe-b))}.landing__head{display:flex;flex-direction:column;align-items:center;text-align:center}.landing__logo{width:84px;height:84px;padding:3px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px var(--line),0 4px #4a3a2838}.landing__name{margin-top:14px;font-family:var(--font-serif);font-size:38px;line-height:1.15;letter-spacing:.16em;color:var(--ink);text-shadow:0 2px 0 rgba(255,255,255,.9)}.landing__sub{margin-top:10px;padding:3px 13px;border:2px solid var(--line);border-radius:999px;background:var(--surface-muted);font-size:11px;letter-spacing:.12em;color:var(--ink-2)}.landing__intro{margin-top:26px;font-family:var(--font-serif);font-size:15px;line-height:1.95;text-align:center;color:var(--ink-2)}.landing__menu{margin-top:30px;display:flex;flex-direction:column;gap:10px}.landing__item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:12px 16px;border:2px solid var(--line);border-radius:16px;background:var(--surface);text-align:left;box-shadow:0 3px #4a3a2833}.landing__label{font-family:var(--font-serif);font-size:16.5px;letter-spacing:.06em;color:var(--ink)}.landing__hint{font-size:11.5px;color:var(--ink-3)}.landing__item--quiet{border-style:dashed;background:transparent;box-shadow:none}.landing__item--quiet .landing__label{font-size:14px;color:var(--ink-3)}@media (hover: hover){.landing__item:not(.landing__item--quiet):hover{background:var(--surface-warm);border-color:var(--ink-3)}}.landing__item:not(.landing__item--quiet):active{transform:translateY(2px);box-shadow:0 1px #4a3a2833}.landing__foot{margin-top:16px;text-align:center;font-size:10.5px;letter-spacing:.08em;color:var(--ink-3)}
