:root{--acc-h: 29;--acc-c: .17;--kim-h: 80;--kim-c: .11;--two-h: 255;--two-c: .1;--acc-l: .5;--kim-l: .62;--two-l: .5;--on-acc-l: .98;--stat-l: .56;--paper: oklch(.955 .018 80);--paper-2: oklch(.925 .024 78);--card: oklch(.982 .01 80);--ink: oklch(.24 .02 40);--ink-soft: oklch(.46 .02 45);--line: oklch(.85 .03 75);--jade: oklch(.52 .09 160);--amber: oklch(.58 .15 50);--blood: oklch(.47 .17 25);--plum: oklch(.45 .12 330);--shadow: 0 18px 40px -28px oklch(.2 .03 40 / .45);--font-display: "Noto Serif Display", "Noto Serif", Georgia, serif;--font-serif: "Noto Serif", Georgia, "Times New Roman", serif;--font-ui: "Be Vietnam Pro", system-ui, sans-serif;--font-cjk: "Noto Serif TC", "Noto Serif CJK TC", "PMingLiU", "SimSun", serif;--font-mono: ui-monospace, "Cascadia Mono", "SFMono-Regular", Consolas, monospace;--r: 14px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--t-fast: .16s;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--acc-l: .68;--kim-l: .8;--two-l: .74;--on-acc-l: .17;--stat-l: .74;--paper: oklch(.17 .015 30);--paper-2: oklch(.215 .018 32);--card: oklch(.205 .018 32);--ink: oklch(.93 .018 80);--ink-soft: oklch(.74 .02 75);--line: oklch(.32 .025 40);--jade: oklch(.72 .11 160);--amber: oklch(.72 .15 50);--blood: oklch(.67 .18 25);--plum: oklch(.72 .12 330);--shadow: 0 22px 48px -26px oklch(0 0 0 / .75)}}[data-dyn=han]{--acc-h: 31;--acc-c: .16;--kim-h: 62;--kim-c: .08;--two-h: 178;--two-c: .05}[data-dyn=tang]{--acc-h: 50;--acc-c: .15;--kim-h: 86;--kim-c: .13;--two-h: 165;--two-c: .1}[data-dyn=song]{--acc-h: 182;--acc-c: .07;--kim-h: 95;--kim-c: .05;--two-h: 228;--two-c: .06}[data-dyn=ming]{--acc-h: 23;--acc-c: .2;--kim-h: 82;--kim-c: .11;--two-h: 262;--two-c: .14}[data-dyn=qing]{--acc-h: 262;--acc-c: .12;--kim-h: 90;--kim-c: .15;--two-h: 27;--two-c: .16}[data-dyn=ly]{--acc-h: 30;--acc-c: .15;--kim-h: 78;--kim-c: .11;--two-h: 120;--two-c: .06}[data-dyn=tran]{--acc-h: 55;--acc-c: .09;--kim-h: 75;--kim-c: .08;--two-h: 170;--two-c: .05}[data-dyn=leso]{--acc-h: 258;--acc-c: .11;--kim-h: 85;--kim-c: .08;--two-h: 28;--two-c: .13}[data-dyn=nguyen]{--acc-h: 205;--acc-c: .08;--kim-h: 88;--kim-c: .14;--two-h: 27;--two-c: .14}:root,[data-dyn]{--cinnabar: oklch(var(--acc-l) var(--acc-c) var(--acc-h));--cinnabar-ink: oklch(var(--on-acc-l) .012 var(--acc-h));--gold: oklch(var(--kim-l) var(--kim-c) var(--kim-h));--azure: oklch(var(--two-l) var(--two-c) var(--two-h));--tint: color-mix(in oklch, var(--cinnabar) 9%, var(--card))}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font:16px/1.6 var(--font-ui);-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;background:radial-gradient(1100px 520px at 100% -10%,color-mix(in oklch,var(--cinnabar) 12%,transparent),transparent 70%),radial-gradient(900px 480px at -10% 0%,color-mix(in oklch,var(--gold) 9%,transparent),transparent 70%);background-repeat:no-repeat}h1,h2,h3,h4{font-family:var(--font-serif);line-height:1.25;margin:0 0 var(--s3);text-wrap:balance}h1{font-size:clamp(1.8rem,5vw,2.6rem)}h2{font-size:1.3rem}h3{font-size:1.05rem;margin-top:var(--s4)}h4{font-size:.95rem;color:var(--ink-soft);margin:var(--s4) 0 var(--s2)}p{margin:0 0 var(--s3)}small{font-size:.82rem}.muted{color:var(--ink-soft)}.small{font-size:.85rem}.mono{font-family:var(--font-mono);letter-spacing:.04em}.error{color:var(--blood);font-weight:500}:focus-visible{outline:2px solid var(--cinnabar);outline-offset:2px}.page,.card,.col-main,.col-side,.col-prof{min-width:0}.page{max-width:1200px;margin:0 auto;padding:0 20px var(--s7)}.birth,.death{max-width:820px;padding-top:var(--s6)}.seal{--size: 40px;display:inline-grid;place-items:center;flex:none;width:var(--size);height:var(--size);border-radius:6px;background:var(--cinnabar);color:var(--cinnabar-ink);font:700 calc(var(--size) * .56) / 1 var(--font-cjk);box-shadow:inset 0 0 0 2px var(--cinnabar),inset 0 0 0 3.5px color-mix(in oklch,var(--cinnabar-ink) 70%,transparent);-webkit-user-select:none;user-select:none}.seal.sm{--size: 32px;border-radius:5px}.seal.lg{--size: 64px;border-radius:8px}.seal.big{--size: 84px;transform:rotate(-4deg);margin:0 auto var(--s4)}.seal.stamp{--size: 88px;position:absolute;top:var(--s5);right:var(--s6);background:transparent;color:var(--cinnabar);box-shadow:inset 0 0 0 3px var(--cinnabar),inset 0 0 0 7px transparent,inset 0 0 0 8px var(--cinnabar);transform:rotate(9deg);opacity:.8}:root{--fret: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='10' fill='none' stroke='%23000' stroke-width='1.3'%3E%3Cpath d='M0 .65H20M0 9.35H20M3 7.6V2.4H13V6.2H7V4.4H10M16.5 2.4V7.6'/%3E%3C/svg%3E")}.fret{height:10px;background:var(--gold);opacity:.55;-webkit-mask:var(--fret) left center / 20px 10px repeat-x;mask:var(--fret) left center / 20px 10px repeat-x}.framed{position:relative}.framed:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px solid color-mix(in oklch,var(--gold) 35%,transparent);border-radius:calc(var(--r) - 4px);pointer-events:none}.kicker{font:600 .75rem/1.4 var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--cinnabar);margin-bottom:var(--s2)}.label{font:600 .75rem/1.4 var(--font-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin:0}.card{--pad: 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:var(--pad);box-shadow:inset 0 1px color-mix(in oklch,var(--gold) 12%,transparent),var(--shadow)}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);margin-bottom:var(--s3)}.card-head h2{font-size:1.15rem;margin:0}.card-head .meta{font:500 .75rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}.band{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:10px 20px;background:linear-gradient(180deg,color-mix(in oklch,var(--cinnabar) 88%,white),var(--cinnabar));color:var(--cinnabar-ink);font:600 .78rem/1.3 var(--font-ui);letter-spacing:.1em;text-transform:uppercase}.card>.band:first-child{margin:calc(var(--pad) * -1) calc(var(--pad) * -1) 0;border-radius:calc(var(--r) - 1px) calc(var(--r) - 1px) 0 0}.mrz{font:500 .8rem/1.55 var(--font-mono);letter-spacing:.14em;color:var(--ink-soft);background:var(--paper-2);padding:var(--s3) 20px 14px;border-top:1px dashed var(--line);white-space:nowrap}.mrz>div{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}.card>.mrz:last-child{margin:var(--s4) calc(var(--pad) * -1) calc(var(--pad) * -1);border-radius:0 0 calc(var(--r) - 1px) calc(var(--r) - 1px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);font:600 .95rem var(--font-ui);border-radius:10px;padding:10px 18px;min-height:44px;cursor:pointer;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);transition:background-color var(--t-fast),border-color var(--t-fast),color var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast),filter var(--t-fast)}.btn:hover:not(:disabled){border-color:var(--cinnabar)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg,color-mix(in oklch,var(--cinnabar) 84%,white),var(--cinnabar) 60%);border-color:color-mix(in oklch,var(--cinnabar) 70%,black);color:var(--cinnabar-ink);box-shadow:inset 0 1px #ffffff38,0 8px 18px -10px var(--cinnabar)}.btn.primary:hover:not(:disabled){filter:brightness(1.07)}.btn.ghost{background:transparent}.btn.ghost:hover:not(:disabled){color:var(--cinnabar)}.btn.small{min-height:38px;padding:6px 14px;font-size:.85rem}.btn.big{width:100%;font-size:1.05rem;padding:14px;margin-top:var(--s4)}.row{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s5)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s3)}.chip{display:inline-flex;align-items:center;min-height:30px;padding:3px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:500 .82rem var(--font-ui)}button.chip{cursor:pointer;min-height:38px;transition:border-color var(--t-fast),background-color var(--t-fast),color var(--t-fast)}@media (hover: hover){button.chip:hover{border-color:var(--cinnabar)}}.chip.on{background:var(--cinnabar);color:var(--cinnabar-ink);border-color:var(--cinnabar)}.chip.scheme{border-color:color-mix(in oklch,var(--blood) 50%,var(--line));color:var(--blood)}.chip.scheme.on{background:var(--blood);color:var(--cinnabar-ink);border-color:var(--blood)}.chip.good{border-color:var(--jade);color:var(--jade)}.chip.warn{border-color:var(--amber);color:var(--amber)}.chip.bad{border-color:var(--blood);color:var(--blood);font-weight:600}.chip.ghost{border-style:dashed}.role-pick{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s3)}.field{display:flex;flex-direction:column;gap:4px;margin:var(--s3) 0}.field>span{font-size:.88rem;font-weight:500}.field input,.field select,textarea,select{font:inherit;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--paper);color:var(--ink);min-height:44px;width:100%;max-width:100%;text-overflow:ellipsis;transition:border-color var(--t-fast)}.field input:focus,select:focus,textarea:focus{border-color:var(--cinnabar)}textarea{resize:vertical}.check{display:flex;gap:var(--s2);align-items:flex-start;margin:0;padding:10px 0;cursor:pointer;font-size:.92rem}.check input{width:18px;height:18px;margin-top:3px;flex:none;accent-color:var(--cinnabar)}.choices{display:grid;gap:var(--s2)}.opt{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s3);border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color var(--t-fast),background-color var(--t-fast)}.opt:hover{border-color:var(--cinnabar)}.opt.on{border-color:var(--cinnabar);background:var(--tint)}.opt span{display:flex;flex-direction:column}.opt small{color:var(--ink-soft)}.opt input{margin-top:5px;accent-color:var(--cinnabar)}.track{display:block;height:8px;background:color-mix(in oklch,var(--ink) 9%,transparent);border-radius:99px;overflow:hidden}.fill{display:block;height:100%;border-radius:inherit;background:var(--cinnabar);transition:width .3s ease}.masthead{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:20px 0}.brand{display:flex;align-items:center;gap:10px;font:700 1rem var(--font-serif)}.masthead-tools{display:flex;align-items:center;gap:var(--s2)}.hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;align-items:center;padding:var(--s6) 0 var(--s7)}.hero:before{content:attr(data-glyph);position:absolute;left:-3%;top:50%;translate:0 -50%;z-index:-1;font:700 clamp(14rem,30vw,26rem) / 1 var(--font-cjk);color:var(--cinnabar);opacity:.06;pointer-events:none}.display{font:700 clamp(2.6rem,6.5vw,5rem) / 1.1 var(--font-display);letter-spacing:-.01em;margin:0 0 var(--s4)}.display em{font-style:normal;color:var(--cinnabar)}.lede{font:italic 1.2rem/1.55 var(--font-serif);color:var(--ink-soft);max-width:36ch}.counters{display:flex;flex-wrap:wrap;gap:var(--s6);margin:var(--s5) 0 0}.counters div{display:flex;flex-direction:column-reverse}.counters dd{margin:0;font:700 2.4rem/1 var(--font-display)}.counters dd small{font:600 1rem var(--font-serif);color:var(--ink-soft)}.counters dt{font-size:.85rem;color:var(--ink-soft);margin-top:4px}.continue{display:flex;align-items:center;gap:14px;margin-top:var(--s5);padding:14px 16px;border:1px solid color-mix(in oklch,var(--cinnabar) 40%,var(--line));border-radius:12px;background:var(--tint)}.continue-who{flex:1;min-width:0;display:flex;flex-direction:column}.continue-who .kicker{margin:0}.continue-who strong{font:700 1.1rem var(--font-serif)}.continue-who small{color:var(--ink-soft)}.census{--pad: 24px}.census-rows{list-style:none;padding:0;margin:var(--s3) 0 0;display:grid;gap:10px}.census-rows li{display:grid;grid-template-columns:6.5em minmax(0,1fr) 4em;gap:var(--s3);align-items:center;font-size:.9rem}.census-rows .fill{background:linear-gradient(90deg,var(--gold),var(--cinnabar))}.census-val{text-align:right;font:500 .85rem var(--font-mono)}.census-more{display:none}.setup{--pad: 28px}.setup h3{font:600 .78rem var(--font-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin:var(--s5) 0 var(--s3)}.setup .card-head+h3{margin-top:var(--s2)}.dynasty-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.dynasty-picker{display:grid;gap:var(--s4)}.realm-head{display:flex;align-items:center;gap:10px;margin:0 0 var(--s2);font:700 1rem var(--font-serif);color:var(--ink)}.flag{display:inline-flex;width:30px;height:20px;border-radius:3px;overflow:hidden;box-shadow:0 0 0 1px color-mix(in oklch,var(--ink) 20%,transparent)}.flag svg{width:100%;height:100%;display:block}.realm-random{padding-top:var(--s4);border-top:1px dashed var(--line)}.dynasty{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px;min-height:44px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(160deg,color-mix(in oklch,var(--cinnabar) 8%,var(--card)),var(--card) 65%);color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:border-color var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast)}.dynasty .seal{margin-bottom:10px}.dynasty strong{font:700 1.1rem var(--font-serif)}.dynasty>span:not(.seal){font-size:.82rem;color:var(--ink-soft)}.dynasty small{font-size:.78rem;color:var(--ink-soft)}@media (hover: hover){.dynasty:hover{border-color:var(--cinnabar);transform:translateY(-2px)}}.dynasty:active{transform:scale(.97)}.dynasty.on{border-color:var(--cinnabar);box-shadow:0 0 0 1px var(--cinnabar),0 12px 26px -16px var(--cinnabar)}.dynasty.on:after{content:"";position:absolute;top:12px;right:12px;width:10px;height:10px;border-radius:50%;background:var(--cinnabar)}.intro{font:.98rem/1.65 var(--font-serif);color:var(--ink-soft);margin:var(--s4) 0 0;padding-left:var(--s4);border-left:3px solid var(--gold)}.home-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--s4);align-items:start;margin-top:var(--s4)}.home-grid>:only-child{grid-column:1 / -1}.fate-grid{list-style:none;padding:0;margin:var(--s3) 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--s2)}.fate{position:relative;border:1px solid var(--line);border-top:3px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;background:var(--paper);text-align:left}.fate strong{font:600 .95rem var(--font-serif)}.fate small{color:var(--ink-soft);font-size:.78rem}.fate em{font-style:normal;color:var(--gold);font-size:.72rem;letter-spacing:.1em}.fate-count{position:absolute;top:8px;right:10px;font:600 .72rem var(--font-mono);color:var(--cinnabar)}.fate.r2{border-top-color:var(--jade)}.fate.r3{border-top-color:var(--azure)}.fate.r4{border-top-color:var(--gold)}.fate.r5{border-top-color:var(--cinnabar);background:var(--tint)}.lives{list-style:none;padding:0;margin:0 0 var(--s3)}.lives li{border-bottom:1px dashed var(--line);padding:var(--s2) 0}.lives summary{display:flex;align-items:center;gap:var(--s3);cursor:pointer;list-style:none;min-height:44px}.lives summary::-webkit-details-marker{display:none}.lives summary>span:last-child{display:flex;flex-direction:column;min-width:0}.lives summary small{color:var(--ink-soft)}.epitaph{font-family:var(--font-serif);font-style:italic;border-left:3px solid var(--cinnabar);padding-left:var(--s3);margin:var(--s3) 0}.foot{text-align:center;margin-top:var(--s6)}.dock{position:sticky;bottom:0;z-index:10;margin-top:var(--s5);padding:var(--s3) 0 calc(var(--s3) + env(safe-area-inset-bottom))}.dock-inner{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3);padding:10px 12px 10px 14px;border:1px solid color-mix(in oklch,var(--cinnabar) 35%,var(--line));border-radius:16px;background:color-mix(in oklch,var(--card) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 18px 40px -18px #00000080}.dock-summary{display:flex;align-items:center;gap:10px;flex:1;min-width:180px}.dock-summary>span:not(.seal){display:flex;flex-direction:column;line-height:1.3}.dock-summary strong{font:700 1rem var(--font-serif)}.dock-summary small{color:var(--ink-soft)}.dock-actions{display:flex;gap:var(--s2)}.dock .error{flex-basis:100%;order:-1;margin:0}.go-bar{position:sticky;bottom:calc(var(--go-bottom, 12px) + env(safe-area-inset-bottom));z-index:12;display:grid;gap:var(--s2);margin-top:var(--s5);padding:10px;border:1px solid color-mix(in oklch,var(--cinnabar) 35%,var(--line));border-radius:16px;background:color-mix(in oklch,var(--card) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 18px 40px -18px #00000080}.go-bar>.btn{width:100%;margin-top:0}.go-bar>.hint{margin:0;padding:0;background:none;text-align:center;font-size:.85rem}.doc,.stele{position:relative;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;overflow:clip;box-shadow:var(--shadow)}.doc-body,.stele-body{position:relative;z-index:1;padding:28px 36px 32px}.doc .display{font-size:clamp(2.2rem,6vw,3.6rem);margin:2px 0 4px;padding-right:100px}.role{font:600 1.2rem var(--font-serif);color:var(--cinnabar);margin-bottom:var(--s4)}.odds-big{display:inline-block;font:600 .8rem var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--cinnabar);border:1px solid color-mix(in oklch,var(--cinnabar) 50%,transparent);border-radius:99px;padding:4px 12px;margin-bottom:var(--s4)}.log-intro{font:1.05rem/1.7 var(--font-serif)}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px var(--s5);margin:var(--s5) 0;padding-top:var(--s5);border-top:1px dashed var(--line)}.field-row dt{font:600 .75rem var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.field-row dd{margin:2px 0 0;font-weight:500}.fields.compact{grid-template-columns:minmax(0,1fr);gap:8px;margin:var(--s4) 0 0;padding-top:var(--s4)}.fields.compact .field-row{display:grid;grid-template-columns:6.5em minmax(0,1fr);gap:10px;align-items:baseline}.fields.compact dd{margin:0;font-size:.92rem}.innate ul{list-style:none;padding:0;margin:var(--s2) 0 var(--s4);display:grid;gap:var(--s2)}.innate li{display:flex;flex-direction:column;padding:10px 14px;border-radius:10px;background:var(--tint);border-left:3px solid var(--gold)}.innate li span{color:var(--ink-soft);font-size:.9rem}.stele:before{content:attr(data-glyph);position:absolute;left:0;right:0;bottom:-2rem;text-align:center;font:700 22rem/1 var(--font-cjk);color:var(--cinnabar);opacity:.05;pointer-events:none}.stele-body{text-align:center;padding-top:var(--s6)}.stele .seal.big{display:grid}.death-line{font-size:1.05rem}.stele .epitaph{font-size:1.25rem;line-height:1.6;max-width:46ch;margin:var(--s5) auto;padding:var(--s4) var(--s5);border:0;border-top:1px solid color-mix(in oklch,var(--gold) 50%,transparent);border-bottom:1px solid color-mix(in oklch,var(--gold) 50%,transparent)}.stele-section{text-align:left;margin-top:var(--s6)}.death-actions{display:grid;gap:var(--s2);width:min(420px,100%);margin:var(--s6) auto 0}.death-actions .btn.big{margin-top:0}.death-actions-sub{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}.share-card{width:fit-content;max-width:100%;margin-inline:auto}.share-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s3)}.share-head h3{margin:0}.share-save{gap:6px}.share-save-icon{display:inline-flex}.share-thumb{display:block;width:280px;max-width:100%;border-radius:12px;overflow:hidden;border:1px solid color-mix(in oklch,var(--gold) 45%,var(--line));background:var(--paper-2);aspect-ratio:9 / 16;box-shadow:var(--shadow)}.share-preview{display:block;width:100%;height:100%;object-fit:cover}.share-preview:not([src]){visibility:hidden}.death>.card{margin-top:var(--s4)}.topbar{position:sticky;top:0;z-index:20;background:color-mix(in oklch,var(--paper) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.topbar-inner{max-width:1440px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:20px}.age-now{display:flex;align-items:baseline;gap:var(--s2);flex:1;min-width:0}.age-now b{font:700 2.4rem/1 var(--font-display);font-variant-numeric:tabular-nums}.age-now>span{font:600 1rem var(--font-serif)}.age-now small{margin-left:var(--s2);color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.tools{display:flex;gap:var(--s2)}.topbar .fret{opacity:.4}.dash{max-width:1440px;padding-top:20px;display:grid;gap:var(--s4);grid-template-columns:300px minmax(0,1fr) 330px;grid-template-areas:"prof main side";align-items:start}.col-prof{grid-area:prof}.col-main{grid-area:main}.col-side{grid-area:side}.col-prof,.col-main,.col-side{display:flex;flex-direction:column;gap:var(--s4)}.profile{overflow:hidden}.profile-head{display:flex;gap:14px;align-items:center;margin-top:var(--s4)}.profile-head h2{font:700 1.45rem/1.15 var(--font-display);margin:0 0 2px}.title-badge{color:var(--cinnabar);font:600 .98rem var(--font-serif);margin:0}.stats{display:grid;gap:10px}.stats.risk{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}.stat{display:grid;grid-template-columns:6.8em minmax(0,1fr) 2em;gap:10px;align-items:center;font-size:.88rem}.stat .val{text-align:right;font:500 .85rem var(--font-mono)}.k-sucKhoe{--stat: oklch(var(--stat-l) .12 160)}.k-tamTrang{--stat: oklch(var(--stat-l) .13 88)}.k-taiTri{--stat: oklch(var(--stat-l) .13 250)}.k-dungMao{--stat: oklch(var(--stat-l) .13 330)}.k-tamCo{--stat: var(--ink-soft)}.k-nghe{--stat: oklch(var(--stat-l) .15 50)}.k-anSung{--stat: oklch(var(--stat-l) .17 15)}.k-danhVong{--stat: oklch(var(--stat-l) .11 200)}.k-hiemNghi{--stat: var(--ink-soft)}.stat .fill{background:var(--stat, var(--cinnabar))}.stat.low .fill{background:var(--blood)}.radar-chart{display:grid;justify-items:center}.radar-chart svg{display:block;width:100%;max-width:300px;height:auto;overflow:visible}.radar-ring{fill:none;stroke:var(--line);stroke-width:1}.radar-ring.outer{stroke:color-mix(in oklch,var(--gold) 65%,transparent);stroke-width:2}.radar-spoke{stroke:var(--line);stroke-width:1}.radar-glyph{font:700 30px var(--font-cjk);fill:var(--cinnabar);opacity:.12;text-anchor:middle;dominant-baseline:central}.radar-prev{fill:none;stroke:var(--ink-soft);stroke-width:1.5;stroke-dasharray:4 3;stroke-linejoin:round;opacity:.8}.radar-shape{fill:color-mix(in oklch,var(--cinnabar) 24%,transparent);stroke:var(--cinnabar);stroke-width:2;stroke-linejoin:round}.radar-dot{fill:var(--stat);stroke:var(--card);stroke-width:1.5}.radar-badge circle{fill:var(--card);stroke:var(--stat);stroke-width:2}.radar-badge text{font:700 11px var(--font-mono);fill:var(--ink);text-anchor:middle;dominant-baseline:central}.radar-badge.low circle{fill:var(--blood);stroke:var(--blood)}.radar-badge.low text{fill:var(--cinnabar-ink)}.radar-legend{list-style:none;padding:0;margin:var(--s3) 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px var(--s4);font-size:.86rem}.radar-legend li{display:flex;align-items:center;gap:6px;min-width:0}.radar-legend .sw{flex:none;width:10px;height:10px;border-radius:50%;background:var(--stat)}.radar-legend .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft)}.radar-legend b{font:600 .85rem var(--font-mono)}.radar-legend small{font:700 .75rem var(--font-mono);animation:val-flash 1.4s ease-out .3s backwards}.radar-legend .up{color:var(--jade)}.radar-legend .down,.radar-legend li.low b{color:var(--blood)}.stat.low .val{color:var(--blood);font-weight:700}.card.turn{--pad: 24px;border-top:3px solid var(--cinnabar)}.turn h2{font:700 1.45rem/1.3 var(--font-serif)}.rich p{font:1.04rem/1.8 var(--font-serif);max-width:62ch;margin-bottom:.85em;text-wrap:pretty;-webkit-hyphens:manual;hyphens:manual}.rich p:last-child{margin-bottom:0}.rich q.say{quotes:"“" "”";font-style:italic;color:var(--ink)}.rich q.say:before,.rich q.say:after{color:var(--cinnabar);font-style:normal}.decision .rich>p:first-child:first-letter{float:left;font:700 3.1em/.9 var(--font-display);color:var(--cinnabar);margin:.08em .1em 0 0}.chosen{color:var(--ink-soft);font-style:italic}.chosen:before{content:"→ ";font-style:normal;color:var(--cinnabar)}.hand-hint{margin:var(--s5) 0 0;font:600 .75rem var(--font-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.choice-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:14px;margin-top:var(--s3)}.choice{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s2);min-height:200px;padding:44px 16px 36px;text-align:center;border:1px solid color-mix(in oklch,var(--gold) 45%,var(--line));border-radius:14px;background:radial-gradient(120% 70% at 50% 0%,var(--tint),var(--card) 70%);color:var(--ink);font:inherit;cursor:pointer;box-shadow:inset 0 0 0 5px var(--card),inset 0 0 0 6px color-mix(in oklch,var(--gold) 35%,transparent),var(--shadow);transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .24s,border-color var(--t-fast);animation:card-deal .46s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--i, 0) * 90ms)}.choice-no{position:absolute;top:12px;left:12px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--cinnabar);color:var(--cinnabar);font:700 .85rem var(--font-serif);transition:background-color var(--t-fast),color var(--t-fast)}.choice:after{content:attr(data-no);position:absolute;right:16px;bottom:10px;transform:rotate(180deg);font:700 .85rem var(--font-serif);color:var(--cinnabar);opacity:.55}.choice-text{display:flex;flex-direction:column;gap:6px}.choice strong{font:600 1.02rem/1.45 var(--font-serif)}.choice small{color:var(--ink-soft);font-size:.82rem}@media (hover: hover){.choice:hover{transform:translateY(-8px) rotate(-1deg);border-color:var(--cinnabar);box-shadow:inset 0 0 0 5px var(--card),inset 0 0 0 6px color-mix(in oklch,var(--cinnabar) 45%,transparent),0 24px 38px -20px var(--cinnabar)}.choice:nth-child(2n):hover{transform:translateY(-8px) rotate(1deg)}.choice:hover .choice-no{background:var(--cinnabar);color:var(--cinnabar-ink)}}.choice:active{transform:scale(.98);border-color:var(--cinnabar)}.choice-list.drawing{pointer-events:none}.choice-list.drawing .choice:not(.picked){animation:card-away .42s ease-in forwards}.choice-list.drawing .choice.picked{z-index:1;border-color:var(--cinnabar);animation:card-picked .56s cubic-bezier(.2,.8,.2,1) forwards}@keyframes card-deal{0%{opacity:0;transform:translateY(26px) rotate(-4deg) scale(.94)}to{opacity:1;transform:none}}@keyframes card-away{to{opacity:0;transform:translateY(22px) scale(.92);filter:blur(2px)}}@keyframes card-picked{0%{transform:none}45%{transform:translateY(-16px) scale(1.05);box-shadow:inset 0 0 0 5px var(--card),inset 0 0 0 6px var(--cinnabar),0 0 0 4px color-mix(in oklch,var(--cinnabar) 30%,transparent),0 30px 50px -18px var(--cinnabar)}to{transform:translateY(-30px) scale(.9);opacity:0;box-shadow:0 0 60px 10px color-mix(in oklch,var(--cinnabar) 50%,transparent)}}@media (max-width: 560px){.choice-list{grid-template-columns:minmax(0,1fr);gap:10px}.choice{min-height:0;flex-direction:row;justify-content:flex-start;text-align:left;padding:16px 40px 16px 54px}.choice-no{top:50%;translate:0 -50%;left:14px}.choice:after{display:none}}html:has(.reveal){overflow:hidden}.reveal{--tone: var(--cinnabar);position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;overflow-y:auto;display:grid;place-items:center;padding:32px 16px}.reveal.tone-good{--tone: var(--jade)}.reveal.tone-bad{--tone: var(--amber)}.reveal.tone-danger{--tone: var(--blood)}.reveal.tone-milestone{--tone: var(--gold)}.reveal.tone-death{--tone: var(--ink-soft)}.reveal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in oklch,var(--paper) 45%,oklch(0 0 0 / .6));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in .32s ease-out both}.reveal-stage{position:relative;width:min(460px,100%);perspective:1600px;animation:card-rise .56s cubic-bezier(.2,.8,.2,1) both}.reveal-stage:before{content:"";position:absolute;top:-40px;right:-40px;bottom:-40px;left:-40px;border-radius:48px;background:radial-gradient(closest-side,color-mix(in oklch,var(--tone) 60%,transparent),transparent);filter:blur(24px);opacity:.4;pointer-events:none;animation:tone-burst 1.5s ease-out 1.75s both}.flip{outline:none;cursor:pointer;animation:suspense 1s ease-in-out .52s both}.reveal.revealed .flip{cursor:default}.flip-inner{display:grid;min-height:360px;transform-style:preserve-3d;transform:rotateY(180deg);animation:card-flip .72s cubic-bezier(.3,.7,.2,1) 1.45s both}.face{grid-area:1 / 1;position:relative;border-radius:18px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 40px 80px -30px #000000b3}.face.back{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s4);padding:var(--s6);text-align:center;color:var(--cinnabar-ink);background:radial-gradient(circle at 50% 38%,color-mix(in oklch,var(--cinnabar) 82%,white),var(--cinnabar) 55%,color-mix(in oklch,var(--cinnabar) 70%,black));border:1px solid color-mix(in oklch,var(--cinnabar) 60%,black)}.back-pattern{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gold);opacity:.22;-webkit-mask:var(--fret) 0 0 / 24px 12px repeat;mask:var(--fret) 0 0 / 24px 12px repeat}.face.back:before{content:"";position:absolute;top:-60%;right:-60%;bottom:-60%;left:-60%;background:linear-gradient(105deg,transparent 42%,oklch(1 0 0 / .3) 50%,transparent 58%);transform:translate(80%);animation:sheen 1.1s ease-in-out .35s both}.face.back .seal{--size: 104px;position:relative;background:var(--cinnabar-ink);color:var(--cinnabar);box-shadow:inset 0 0 0 3px var(--cinnabar-ink),inset 0 0 0 6px var(--cinnabar),0 0 0 6px color-mix(in oklch,var(--gold) 45%,transparent);animation:seal-pulse .9s ease-in-out .45s 2 alternate both}.back-wait{position:relative;margin:0;font:italic 1.05rem var(--font-serif);animation:breathe 1.1s ease-in-out infinite alternate}.back-hint{position:relative;opacity:.75;font-size:.78rem;letter-spacing:.06em}.face.front{display:flex;flex-direction:column;transform:rotateY(180deg);background:var(--card);border:1px solid var(--line)}.face.front .band{background:linear-gradient(180deg,color-mix(in oklch,var(--tone) 85%,white),var(--tone))}.reveal.tone-milestone .face.front .band{color:#1d140d}.reveal.tone-death .face.front .band{background:var(--ink);color:var(--paper)}.front-body{flex:1;display:flex;flex-direction:column;padding:var(--s5) 28px 28px}.front-body>.btn{margin-top:auto}.front-body>.rich{margin-bottom:var(--s5)}.front-body h2{font:700 1.6rem/1.25 var(--font-display);margin:var(--s2) 0 var(--s4)}.front-body .chosen{margin:0}.front-body>*{animation:rise-in .42s cubic-bezier(.2,.8,.2,1) both}.front-body>:nth-child(1){animation-delay:1.95s}.front-body>:nth-child(2){animation-delay:2.03s}.front-body>:nth-child(3){animation-delay:2.11s}.front-body>:nth-child(4){animation-delay:2.2s}.front-body>:nth-child(5){animation-delay:2.3s}@property --fx{syntax: "<integer>"; initial-value: 0; inherits: false;}.fx-list{list-style:none;padding:0;margin:0 0 var(--s5);display:flex;flex-wrap:wrap;gap:var(--s2)}.front-body>.fx-list{animation:none}.fx{--c: var(--jade);display:inline-flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;border:1px solid color-mix(in oklch,var(--c) 55%,transparent);border-radius:999px;background:color-mix(in oklch,var(--c) 14%,var(--card));animation:fx-pop .52s cubic-bezier(.3,1.6,.5,1) backwards;animation-delay:calc(2.25s + var(--i) * .14s)}.fx.bad{--c: var(--blood)}.fx-label{font:600 .88rem var(--font-ui);color:var(--ink)}.fx-num{--fx: var(--to);counter-reset:fx var(--fx);min-width:2.6em;padding:2px 8px;border-radius:999px;background:var(--c);color:var(--cinnabar-ink);font:700 .95rem var(--font-mono);text-align:center;animation:fx-count .9s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(2.35s + var(--i) * .14s)}.fx-num:before{content:attr(data-sign) counter(fx)}@keyframes fx-pop{0%{opacity:0;transform:translateY(10px) scale(.6)}}@keyframes fx-count{0%{--fx: 0}}.reveal.skip *,.reveal.skip *:before,.reveal.skip *:after{animation-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important}@keyframes fade-in{0%{opacity:0}}@keyframes card-rise{0%{opacity:0;transform:translateY(60px) scale(.86) rotate(-3deg)}}@keyframes suspense{0%,to{transform:none}20%{transform:rotate(-1.6deg) translateY(-3px)}40%{transform:rotate(1.4deg)}60%{transform:rotate(-1deg) translateY(-2px)}80%{transform:rotate(.6deg)}}@keyframes card-flip{0%{transform:rotateY(0)}55%{transform:rotateY(110deg) scale(1.06)}to{transform:rotateY(180deg)}}@keyframes sheen{0%{transform:translate(-80%)}to{transform:translate(80%)}}@keyframes seal-pulse{to{transform:scale(1.07);box-shadow:inset 0 0 0 3px var(--cinnabar-ink),inset 0 0 0 6px var(--cinnabar),0 0 0 12px color-mix(in oklch,var(--gold) 25%,transparent)}}@keyframes breathe{0%{opacity:.55}to{opacity:1}}@keyframes tone-burst{0%{opacity:0;transform:scale(.6)}30%{opacity:1;transform:scale(1.12)}to{opacity:.4;transform:none}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}}.note{margin-top:var(--s3);font-size:.88rem;color:var(--ink-soft)}.note summary{cursor:pointer;color:var(--cinnabar);font-weight:600;min-height:44px;display:flex;align-items:center}.focus-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--s2)}.focus{display:flex;flex-direction:column;gap:2px;text-align:left;padding:var(--s3);min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font:inherit;cursor:pointer;transition:border-color var(--t-fast),background-color var(--t-fast)}.focus strong{font-family:var(--font-serif)}.focus small{color:var(--ink-soft);font-size:.8rem}.focus:hover{border-color:var(--cinnabar)}.focus.on{border-color:var(--cinnabar);background:var(--tint);box-shadow:inset 3px 0 0 var(--cinnabar)}.action-box{margin-top:var(--s5);padding-top:var(--s4);border-top:1px dashed var(--line)}.action-box h3{margin-top:0;font-size:1rem}.target-pick{margin:var(--s4) 0 var(--s2)}.target-pick .label{margin-bottom:var(--s2)}.target-pick .muted{margin:0 0 var(--s2)}.target-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--s2)}.target{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;min-height:44px;padding:10px 12px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font:inherit;cursor:pointer;transition:border-color var(--t-fast),background-color var(--t-fast)}.target strong{flex-basis:100%;font:600 .98rem/1.3 var(--font-serif)}.target small{flex-basis:100%;color:var(--ink-soft);font-size:.8rem}.target .chip{min-height:24px;padding:1px 8px;font-size:.75rem;margin-top:4px}.target.on{border-color:var(--cinnabar);background:var(--tint);box-shadow:inset 3px 0 0 var(--cinnabar)}.target:active{transform:scale(.98)}@media (hover: hover){.target:hover{border-color:var(--cinnabar)}}.target-grid.collapsed>.target:nth-child(n+9):not(.on){display:none}.target-pick>.more{width:100%;min-height:44px;margin-top:var(--s2)}@media (max-width: 560px){.target-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.target{padding:8px 10px}.target strong{font-size:.92rem}}.hint{font-size:.88rem;color:var(--ink-soft);background:var(--paper-2);padding:var(--s2) var(--s3);border-radius:8px;margin-top:var(--s3)}.this-year{margin-bottom:var(--s5);padding-bottom:var(--s4);border-bottom:1px dashed var(--line)}.this-year .rich p{font-size:.95rem}.this-year.clamp .this-year-body{max-height:11.5em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}.more-toggle{display:inline-flex;align-items:center;min-height:44px;font-weight:600;text-decoration:none}.turn{scroll-margin-top:84px}.recap-year+.recap-year{margin-top:var(--s4);padding-top:var(--s3);border-top:1px dashed var(--line)}.recap-age{margin:0 0 var(--s2);font:600 .8rem var(--font-mono);color:var(--cinnabar);letter-spacing:.06em;text-transform:uppercase}.recap-entry{padding:var(--s2) 0 var(--s2) var(--s3);border-left:3px solid var(--line);margin-bottom:var(--s3);animation:rise-in .42s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--e, 0) * .14s)}.recap-entry.tone-good{border-left-color:var(--jade)}.recap-entry.tone-bad{border-left-color:var(--amber)}.recap-entry.tone-danger,.recap-entry.tone-death{border-left-color:var(--blood)}.recap-entry.tone-milestone{border-left-color:var(--gold)}.recap-entry .fx-list,.recap-routine .fx-list{margin:var(--s2) 0 0}.recap-routine{display:flex;flex-wrap:wrap;align-items:center;gap:6px var(--s3);color:var(--ink-soft);font-size:.9rem;animation:rise-in .42s ease-out backwards;animation-delay:calc(var(--e, 0) * .14s)}.recap-routine .rich p{font:.9rem/1.5 var(--font-ui);margin:0}.recap .fx{animation-delay:calc(var(--e, 0) * .14s + .25s + var(--i) * .11s)}.recap .fx-num{animation-delay:calc(var(--e, 0) * .14s + .33s + var(--i) * .11s)}.this-year:not(.clamp) .more-toggle{display:none}.log .year{display:grid;grid-template-columns:4.6rem minmax(0,1fr);gap:var(--s3);padding:var(--s3) 0;border-top:1px dashed var(--line)}.log .year:first-child{border-top:0;padding-top:0}.year-age{font:500 .8rem var(--font-mono);color:var(--ink-soft);padding-top:4px}.log .rich p{font-size:.95rem}.entry{padding-left:var(--s3);border-left:3px solid var(--line);margin-bottom:var(--s2)}.entry:last-child{margin-bottom:0}.entry.tone-good{border-left-color:var(--jade)}.entry.tone-bad{border-left-color:var(--amber)}.entry.tone-danger,.entry.tone-death{border-left-color:var(--blood)}.entry.tone-milestone{border-left-color:var(--gold)}.log .more{margin-top:var(--s3);width:100%}.entry.fresh{position:relative;border-radius:0 8px 8px 0;animation:log-in .46s cubic-bezier(.2,.7,.2,1) both,log-glow 1.8s ease-out both;animation-delay:calc(var(--stagger, 0) * .11s),calc(var(--stagger, 0) * .11s)}.entry.fresh:before{content:"";position:absolute;left:-3px;top:0;width:3px;height:100%;background:var(--cinnabar);transform-origin:top;animation:log-ink .52s cubic-bezier(.3,.6,.2,1) both,log-ink-fade 1.4s ease-in .7s forwards;animation-delay:calc(var(--stagger, 0) * .11s),calc(var(--stagger, 0) * .11s + .7s)}.year.fresh .year-age{animation:log-age 1.8s ease-out both}@keyframes log-in{0%{opacity:0;transform:translateY(-8px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}@keyframes log-glow{0%,35%{background:color-mix(in oklch,var(--cinnabar) 14%,transparent)}to{background:transparent}}@keyframes log-ink{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes log-ink-fade{to{opacity:0}}@keyframes log-age{0%{opacity:0;transform:translate(-6px);color:var(--cinnabar)}20%,55%{opacity:1;transform:none;color:var(--cinnabar)}to{color:var(--ink-soft)}}.npcs{list-style:none;padding:0;margin:0}.npcs.collapsed>li:nth-child(n+9){display:none}.card>.more{width:100%;min-height:44px;margin-top:var(--s2)}.npc{padding:10px 0;border-bottom:1px dashed var(--line)}.npc:last-child{border-bottom:0}.npc.gone{opacity:.6}.npc-name{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2)}.npc-name strong{font:600 .95rem var(--font-serif)}.npc-name small{color:var(--ink-soft);white-space:nowrap}.npc.ally strong{color:var(--jade)}.npc-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.82rem;margin-top:2px;color:var(--ink-soft)}.npc-meta .chip{min-height:24px;font-size:.75rem;padding:1px 8px}.aff.bad{color:var(--blood);font-weight:600}.news{margin-top:var(--s3);padding-top:var(--s2);border-top:1px dashed var(--line)}.news p{font-size:.88rem;margin-bottom:4px}.life-map{display:grid;grid-template-columns:repeat(auto-fill,16px);gap:4px;margin:var(--s2) 0 var(--s3)}.cell{display:inline-block;width:16px;height:16px;border-radius:3px;background:color-mix(in oklch,var(--ink) 12%,transparent)}.life-map .cell{cursor:pointer}.life-map .cell:last-child,.life-map .cell.picked{outline:2px solid var(--cinnabar);outline-offset:1px}.life-map:has(.picked) .cell:last-child:not(.picked){outline:0}.map-caption{margin:0 0 var(--s3);min-height:1.6em;font:italic .92rem var(--font-serif);color:var(--ink)}.cell.tone-good{background:var(--jade)}.cell.tone-bad{background:var(--amber)}.cell.tone-danger{background:var(--blood)}.cell.tone-milestone{background:var(--gold)}.cell.tone-death{background:var(--ink)}.legend{list-style:none;padding:0;margin:0 0 var(--s2);display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.8rem;color:var(--ink-soft)}.legend li{display:inline-flex;align-items:center;gap:6px}.legend .cell{width:12px;height:12px}.reflections p{font-size:.95rem}@media (max-width: 1180px){.dash{grid-template-columns:300px minmax(0,1fr);grid-template-areas:"prof main" "side main"}}@media (max-width: 960px){.hero{grid-template-columns:minmax(0,1fr);gap:var(--s5);padding-top:var(--s4)}.home-grid{grid-template-columns:minmax(0,1fr)}.topbar .brand-name{display:none}}@media (max-width: 820px){.dash{display:flex;flex-direction:column;align-items:stretch;padding-bottom:calc(104px + env(safe-area-inset-bottom))}.col-prof,.col-main,.col-side{display:contents}.dash .profile,.dash .status,.dash .log-card,.dash .col-side>*{display:none}.profile .mrz{display:none}.fields.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.fields.compact .field-row{display:block}.age-now small{display:none}}@media (max-width: 560px){.page{padding-left:14px;padding-right:14px}.card,.setup,.census,.card.turn{--pad: 16px}.doc-body,.stele-body{padding:22px 18px 24px}.seal.stamp{--size: 60px;top:var(--s4);right:var(--s4)}.doc .display{padding-right:64px}.census-rows li{grid-template-columns:6em minmax(0,1fr) 3.4em}.census-rows.collapsed li:nth-child(n+5){display:none}.census>.census-more{display:inline-flex;margin-top:var(--s3)}.counters dd{font-size:2rem}.dock-inner{flex-wrap:nowrap;gap:var(--s2);padding:8px}.dock-summary{flex:none;min-width:0}.dock-summary>span:not(.seal){display:none}.dock-actions{flex:1}.dock-actions .btn{flex:1;padding:10px 8px}.topbar-inner{gap:var(--s3);padding:calc(8px + env(safe-area-inset-top)) 14px 8px}.topbar .brand{display:none}.topbar .btn.small{min-height:44px}.age-now b{font-size:2rem}.log .year{grid-template-columns:minmax(0,1fr);gap:4px}.stat{grid-template-columns:6.4em minmax(0,1fr) 2em}.dynasty-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.dynasty{align-items:center;text-align:center;padding:12px 6px}.dynasty .seal{margin-bottom:6px}.dynasty strong{font-size:.95rem}.dynasty>span:not(.seal){font-size:.75rem}.dynasty small{display:none}.dynasty.on:after{top:8px;right:8px;width:8px;height:8px}.doc-body>.btn.big{position:sticky;bottom:calc(12px + env(safe-area-inset-bottom));z-index:2}.cell{width:20px;height:20px}.life-map{grid-template-columns:repeat(auto-fill,20px)}}.chapter-moments{list-style:none;padding:0;margin:var(--s3) 0;display:grid;gap:var(--s2)}.chapter-moments li{border-left:3px solid var(--gold);padding-left:var(--s3)}.chapter-moments .rich p{font-size:.95rem;margin:0}.card.chapter{border-top:4px solid var(--gold)}.memoir-list details{border-bottom:1px dashed var(--line);padding:var(--s2) 0}.memoir-list summary{cursor:pointer;list-style:none}.memoir-list summary::-webkit-details-marker{display:none}.memoir-list summary strong{font-family:var(--font-serif)}.memoir-list details[open] summary{margin-bottom:var(--s2);color:var(--cinnabar)}.keep-entry{display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;border-color:color-mix(in oklch,var(--cinnabar) 45%,var(--line))}.keep-entry:hover{border-color:var(--cinnabar)}.keep{min-height:100vh;background:var(--paper)}.keep-bar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:10px 20px;background:var(--card);border-bottom:1px solid var(--line);color:var(--cinnabar)}.keep-page{max-width:1180px}.keep-pick{max-width:640px}.keep-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4);margin-top:var(--s4)}.keep-card{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}.keep-card.wide{grid-column:span 2}.keep-art{position:relative;height:170px;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,var(--tint),var(--paper-2));border-bottom:1px solid var(--line)}.keep-art:after{content:"";position:absolute;left:18px;right:18px;bottom:8px;height:10px;background:var(--gold);opacity:.4;-webkit-mask:var(--fret) left center / 20px 10px repeat-x;mask:var(--fret) left center / 20px 10px repeat-x}.keep-chip-icon{display:inline-flex}.keep-card.wide .keep-art{height:210px}.keep-svg{display:block;width:72%;max-width:300px}.keep-svg svg{width:100%;height:auto;display:block}.keep-chip{position:absolute;top:12px;left:12px;display:inline-flex;gap:6px;align-items:center;padding:4px 10px;border-radius:999px;background:color-mix(in oklch,var(--ink) 80%,transparent);color:var(--paper);font:600 .78rem var(--font-ui)}.keep-chip.free{background:color-mix(in oklch,var(--jade) 25%,var(--card));color:var(--jade);border:1px solid var(--jade)}.keep-body{padding:var(--s4) var(--s5) var(--s5);display:flex;flex-direction:column;gap:var(--s2);flex:1}.keep-body h3{margin:0;font-size:1.25rem}.keep-body>p{color:var(--ink-soft);font-size:.92rem;margin:0 0 var(--s2)}.keep-body .row{margin-top:var(--s2)}.keep-sep{border:0;border-top:1px dashed var(--line);margin:var(--s6) 0 var(--s2)}.keep-body small{display:block;margin-top:4px}.keep-body .btn{align-self:flex-start}.film-out video{width:100%;max-height:360px;border-radius:8px;background:#000}.film-progress{display:grid;gap:6px}.film-progress progress{width:100%;accent-color:var(--cinnabar)}.poster-row{display:flex;gap:6px}.poster img{width:100%;border-radius:4px;border:1px solid var(--line);display:block}.poster{flex:1}.hall{list-style:none;padding:0;margin:0;display:grid;gap:4px;max-height:220px;overflow:auto}.hall .linkish.on{font-weight:700;text-decoration:none}.linkish{background:none;border:0;padding:0;color:var(--cinnabar);font:inherit;cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:3px}@media (max-width: 960px){.keep-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.keep-grid{grid-template-columns:minmax(0,1fr)}.keep-card.wide{grid-column:auto}}.bubbles,.sheet{display:none}@media (max-width: 820px){html:has(.sheet){overflow:hidden}.bubbles{display:flex;position:fixed;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:30;max-width:560px;margin:0 auto;padding:8px 4px 6px;overflow-x:auto;scrollbar-width:none;border:1px solid color-mix(in oklch,var(--gold) 35%,var(--line));border-radius:22px;background:color-mix(in oklch,var(--card) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 18px 40px -16px #0009}.bubbles::-webkit-scrollbar{display:none}.play .go-bar{--go-bottom: 104px}.bubble{position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;min-height:44px;padding:0 1px;border:0;background:none;color:var(--ink-soft);font:500 .75rem var(--font-ui);cursor:pointer}.bubble-label{display:block;max-width:100%;text-align:center;line-height:1.15;min-height:2.3em;overflow-wrap:anywhere}.bubble-glyph{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 35% 30%,color-mix(in oklch,var(--cinnabar) 82%,white),var(--cinnabar) 70%);color:var(--cinnabar-ink);font:700 1.15rem/1 var(--font-cjk);box-shadow:inset 0 0 0 2px var(--cinnabar),inset 0 0 0 3.5px color-mix(in oklch,var(--cinnabar-ink) 60%,transparent),0 6px 14px -8px var(--cinnabar);transition:transform .16s}.bubble:active .bubble-glyph{transform:scale(.88)}.bubble.has-new:after{content:"";position:absolute;top:-1px;left:calc(50% + 11px);width:11px;height:11px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 2px var(--card);animation:badge-pulse 1.8s ease-in-out infinite}.bubble.has-new .bubble-label{color:var(--ink);font-weight:600}.screen-enter .bubble-glyph{animation:bubble-pop .46s cubic-bezier(.3,1.5,.5,1) backwards;animation-delay:calc(var(--i) * 45ms + .25s)}.sheet{display:grid;position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;place-items:end center;padding:calc(12px + env(safe-area-inset-top)) 10px calc(10px + env(safe-area-inset-bottom))}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.sheet.anim-up .sheet-backdrop{animation:fade-in .24s ease-out backwards}.sheet-stage{position:relative;width:100%;min-width:0;max-width:520px;display:flex;flex-direction:column;gap:var(--s2);outline:none}.sheet .sheet-card{display:block;min-width:0;margin:0;max-height:calc(100dvh - 150px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain;border-radius:18px;box-shadow:inset 0 0 0 4px var(--card),inset 0 0 0 5px color-mix(in oklch,var(--gold) 40%,transparent),0 30px 60px -20px #000c}.sheet .profile .mrz{display:block}.sheet-dots{display:flex;justify-content:center;gap:6px}.sheet-dots i{width:6px;height:6px;border-radius:50%;background:color-mix(in oklch,var(--paper) 55%,transparent);transition:width .2s}.sheet-dots i.on{width:18px;border-radius:3px;background:var(--gold)}.sheet-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--s2)}.sheet-nav .btn.ghost{background:color-mix(in oklch,var(--card) 92%,transparent);padding:10px 8px;font-size:.88rem}.sheet-nav .btn.primary{min-width:88px}.sheet.anim-up .sheet-stage{animation:sheet-up .42s cubic-bezier(.2,.8,.2,1) backwards}.sheet.anim-right .sheet-card{animation:sheet-from-right .34s cubic-bezier(.2,.8,.2,1) backwards}.sheet.anim-left .sheet-card{animation:sheet-from-left .34s cubic-bezier(.2,.8,.2,1) backwards}}@keyframes badge-pulse{50%{transform:scale(1.3)}}@keyframes bubble-pop{0%{opacity:0;transform:translateY(14px) scale(.4)}}@keyframes sheet-up{0%{opacity:0;transform:translateY(70px) scale(.92) rotate(-2deg)}}@keyframes sheet-from-right{0%{opacity:0;transform:translate(45%) rotate(5deg)}}@keyframes sheet-from-left{0%{opacity:0;transform:translate(-45%) rotate(-5deg)}}button,.opt,.check,summary,.life-map{touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media (max-width: 560px){.dock-inner:has(.error){flex-wrap:wrap}}.fate-progress{margin:var(--s3) 0 var(--s2)}.fate-progress .fill{background:linear-gradient(90deg,var(--gold),var(--cinnabar))}.locked-caption{margin:var(--s4) 0 var(--s2)}.fate-tiers{list-style:none;padding:0;margin:0;display:grid;gap:var(--s2)}.fate-tiers li{display:grid;grid-template-columns:6.2em minmax(0,1fr) 4.5em;gap:var(--s3);align-items:center}.fate-tiers .stars{font-size:.95rem;letter-spacing:.08em;color:color-mix(in oklch,var(--ink-soft) 45%,transparent);white-space:nowrap}.fate-tiers .stars b{font-weight:400;color:var(--gold)}.fate-tiers .r5 .stars b{color:var(--cinnabar);text-shadow:0 0 8px color-mix(in oklch,var(--cinnabar) 50%,transparent)}.fate-tiers .fill{background:linear-gradient(90deg,var(--gold),var(--cinnabar))}.fate-tiers .tier-count{text-align:right;font:500 .85rem var(--font-mono);color:var(--ink-soft)}.screen-enter{animation:screen-in .38s cubic-bezier(.2,.8,.2,1) backwards}.stat{position:relative}.fill.grow{animation:fill-grow .8s cubic-bezier(.2,.8,.2,1) .12s backwards}.stat .delta{position:absolute;right:2.4em;top:-2px;font:700 .78rem var(--font-mono);pointer-events:none;animation:delta-float 1.8s ease-out .2s forwards}.stat.up .delta{color:var(--jade)}.stat.down .delta{color:var(--blood)}.stat.up .val,.stat.down .val{animation:val-flash 1.4s ease-out .2s backwards}.age-now b.tick{display:inline-block;animation:age-tick .56s cubic-bezier(.2,.8,.2,1) backwards}.cell.new{animation:cell-pop .64s cubic-bezier(.3,1.6,.5,1) .25s backwards}.doc .seal.stamp{animation:stamp-down .52s cubic-bezier(.2,1.3,.4,1) .5s backwards}.stele .seal.big{animation:stamp-down .56s cubic-bezier(.2,1.3,.4,1) .65s backwards}.stele{animation:stele-rise .7s cubic-bezier(.2,.8,.2,1) backwards}@keyframes screen-in{0%{opacity:0;transform:translateY(10px)}}@keyframes fill-grow{0%{width:var(--from)}}@keyframes delta-float{0%{opacity:0;transform:translateY(4px)}15%{opacity:1;transform:none}70%{opacity:1}to{opacity:0;transform:translateY(-10px)}}@keyframes val-flash{0%{color:var(--cinnabar);transform:scale(1.25)}}@keyframes age-tick{0%{opacity:0;transform:translateY(55%);color:var(--cinnabar)}}@keyframes cell-pop{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes stamp-down{0%{opacity:0;transform:scale(2.3) rotate(0)}}@keyframes stele-rise{0%{opacity:0;transform:translateY(24px)}}@media (max-height: 480px){.reveal{place-items:start center;padding:12px}.flip-inner{min-height:0}.face.back{gap:var(--s2);padding:var(--s4)}.face.back .seal{--size: 64px}.front-body{padding:var(--s3) var(--s5) var(--s4)}.front-body h2{font-size:1.3rem;margin-bottom:var(--s2)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}.dynasty:hover{transform:none}}.childhood{margin-top:1.2rem}.childhood-list{list-style:none;padding:0;margin:.4rem 0 0;display:grid;gap:.35rem}.childhood-list summary{cursor:pointer}.childhood-list summary .mono{color:var(--muted, inherit);margin-right:.4rem}.childhood-list details p{margin:.35rem 0 .2rem 1.2rem}
