:root{--paper:#f6f1e7;--paper-raised:#fbf8f1;--paper-sunk:#efe8d9;--ink:#1f1b18;--ink-soft:#5a5148;--muted:#8a8378;--line:#d9d0bf;--seal:#b5301f;--seal-deep:#8f2416;--seal-wash:#f3ddd5;--on-seal:#fff8f0;--scrim:#1f1b1852;--veil:#fbf8f1;--shadow-soft:0 1px 2px #1f1b180f, 0 8px 24px #1f1b181a;--shadow-lift:0 2px 4px #1f1b1814, 0 16px 40px #1f1b1829;--focus:#2b3a67;--paper-glass:#fbf8f1e6;--ink-wash:#1f1b181a;--skin:#f3d3ad;--wx-wood:#2f8f83;--wx-wood-light:#a8d5ba;--wx-wood-dark:#1f5f5b;--wx-wood-accent:#e9f2d0;--wx-fire:#e34a33;--wx-fire-light:#f6a77b;--wx-fire-dark:#8f2a1e;--wx-fire-accent:#ffd9a0;--wx-earth:#c9973f;--wx-earth-light:#e8d3a2;--wx-earth-dark:#7a5a2b;--wx-earth-accent:#f4ead2;--wx-metal:#d8c99a;--wx-metal-light:#f4f0e2;--wx-metal-dark:#8c8570;--wx-metal-accent:#fff;--wx-water:#2b3a67;--wx-water-light:#8fa6c9;--wx-water-dark:#131a2e;--wx-water-accent:#cfe0f2;--font-zh:"PingFang HK", "PingFang TC", "Noto Sans CJK TC", "Microsoft JhengHei", sans-serif;--font-seal:"Songti TC", "Noto Serif CJK TC", "PMingLiU", serif;--font-en:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-ui:var(--font-zh);--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.625rem;--radius-card:12px;--radius-ctl:10px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--tap:44px;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--dur-fast:.12s;--dur-veil:.125s;--dur-sheet:.28s;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.3, 1.3, .5, 1);--z-stage:0;--z-ui:10;--z-sheet:20;--z-toast:30;--z-veil:40;--z-debug:50}html[lang=en]{--font-ui:var(--font-en), var(--font-zh)}@media (prefers-reduced-motion:reduce){:root{--dur-fast:60ms;--dur-veil:40ms;--dur-sheet:80ms;--ease-spring:linear}}html[data-fast]{--dur-fast:0s;--dur-veil:0s;--dur-sheet:0s}*,:before,:after{box-sizing:border-box}html,body{background:var(--paper);height:100%;color:var(--ink);font-family:var(--font-ui);font-size:var(--text-md);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;line-height:1.5;overflow:hidden}#app{height:100dvh;position:fixed;inset:0;overflow:hidden}.stage{width:100%;height:100%;z-index:var(--z-stage);touch-action:none;background:var(--paper);display:block;position:absolute;inset:0}.ui-layer{z-index:var(--z-ui);pointer-events:none;padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);flex-direction:column;display:flex;position:absolute;inset:0}.ui-layer>*{pointer-events:auto}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3) 0 var(--space-4);display:flex}.app-brand{align-items:center;gap:var(--space-2);font-family:var(--font-seal);font-size:var(--text-lg);letter-spacing:.04em;margin:0;font-weight:600;display:flex}.app-brand__seal{background:var(--seal);width:28px;height:28px;color:var(--on-seal);font-size:var(--text-md);border-radius:6px;place-items:center;line-height:1;display:grid;transform:rotate(-4deg)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap);min-width:var(--tap);padding:0 var(--space-4);border:1px solid var(--line);border-radius:var(--radius-ctl);background:var(--paper-raised);color:var(--ink);font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);font-weight:600;line-height:1.2;display:inline-flex}.btn:hover{background:var(--paper-sunk)}.btn:active{transform:translateY(1px)scale(.98)}.btn[disabled]{opacity:.5;cursor:default}.btn--primary{border-color:var(--seal-deep);background:var(--seal);color:var(--on-seal);box-shadow:0 2px 0 var(--seal-deep)}.btn--primary:hover{background:var(--seal-deep)}.btn--primary:active{box-shadow:0 0 0 var(--seal-deep);transform:translateY(2px)}.btn--ghost{color:var(--ink-soft);background:0 0;border-color:#0000}.btn--icon{width:var(--tap);padding:0}.btn--block{width:100%}.icon{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.chip{--dot:var(--muted);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper-raised);min-height:28px;color:var(--ink);font-size:var(--text-sm);white-space:nowrap;align-items:center;gap:6px;padding:2px 10px 2px 8px;line-height:1.3;display:inline-flex}.chip__dot{background:var(--dot);width:10px;height:10px;box-shadow:0 0 0 1px var(--line);border-radius:50%;flex:none}.chip__sub{color:var(--ink-soft)}.chip[data-wx=木]{--dot:var(--wx-wood)}.chip[data-wx=火]{--dot:var(--wx-fire)}.chip[data-wx=土]{--dot:var(--wx-earth)}.chip[data-wx=金]{--dot:var(--wx-metal)}.chip[data-wx=水]{--dot:var(--wx-water)}.chip-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper-raised);box-shadow:var(--shadow-soft);padding:var(--space-4)}.card__title{margin:0 0 var(--space-1);font-family:var(--font-seal);font-size:var(--text-xl);line-height:1.25}.card__body{margin:0 0 var(--space-4);color:var(--ink-soft)}.badge{border-radius:var(--radius-pill);background:var(--seal-wash);color:var(--seal-deep);font-size:var(--text-xs);letter-spacing:.02em;padding:1px 8px;font-weight:600;display:inline-block}.panel-host{width:100%;max-width:30rem;padding:var(--space-3);align-self:center;margin-top:auto}.panel__meta{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--ink-soft);font-size:var(--text-xs);display:flex}.steps{align-items:center;gap:6px;display:flex}.steps__dot{background:var(--line);border-radius:50%;width:8px;height:8px}.steps__dot[data-on]{border-radius:var(--radius-pill);background:var(--seal);width:20px}.panel__actions{gap:var(--space-2);display:grid}.panel__actions--grid{grid-template-columns:1fr 1fr}.panel__actions--grid>.btn--primary{grid-column:1/-1}.panel__foot{margin:var(--space-3) 0 0;color:var(--ink-soft);font-size:var(--text-xs)}.sheet-scrim{z-index:var(--z-sheet);background:var(--scrim);opacity:0;pointer-events:none;transition:opacity var(--dur-sheet) var(--ease-out);position:absolute;inset:0}.sheet-scrim[data-open]{opacity:1;pointer-events:auto}.sheet{z-index:var(--z-sheet);border:1px solid var(--line);border-radius:var(--radius-card) var(--radius-card) 0 0;background:var(--paper-raised);max-height:82dvh;box-shadow:var(--shadow-lift);padding-bottom:var(--safe-b);visibility:hidden;transition:transform var(--dur-sheet) var(--ease-spring), visibility 0s linear var(--dur-sheet);border-bottom:0;flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(105%)}.sheet[data-open]{transform:translateY(var(--drag,0px));visibility:visible;transition:transform var(--dur-sheet) var(--ease-spring)}.sheet[data-dragging]{transition:none}.sheet__handle{cursor:grab;touch-action:none;flex:none;place-items:center;height:24px;display:grid}.sheet__handle:before{content:"";border-radius:var(--radius-pill);background:var(--line);width:40px;height:4px}.sheet__head{justify-content:space-between;align-items:center;gap:var(--space-2);padding:0 var(--space-2) 0 var(--space-4);flex:none;display:flex}.sheet__title{font-family:var(--font-seal);font-size:var(--text-lg);margin:0}.sheet__body{overscroll-behavior:contain;padding:var(--space-2) var(--space-4) var(--space-4);overflow-y:auto}.sheet__body h3{margin:var(--space-4) 0 var(--space-2);font-size:var(--text-sm);color:var(--ink-soft);font-weight:600}.sheet__body p{margin:var(--space-4) 0 0;color:var(--ink-soft);font-size:var(--text-sm)}@media (min-width:900px),(orientation:landscape) and (max-height:520px){.sheet{border:0;border-left:1px solid var(--line);width:min(24rem,92vw);max-height:none;padding-right:var(--safe-r);border-radius:0;top:0;left:auto;transform:translate(105%)}.sheet[data-open]{transform:translate(0)}.sheet__handle{display:none}.sheet__head{padding-top:var(--space-3)}}.toast-host{top:calc(var(--safe-t) + 60px);z-index:var(--z-toast);justify-items:center;gap:var(--space-2);pointer-events:none;display:grid;position:absolute;left:0;right:0}.toast{max-width:min(90vw,24rem);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--ink);color:var(--paper);font-size:var(--text-sm);box-shadow:var(--shadow-soft);opacity:0;transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);transform:translateY(-6px)}.toast[data-on]{opacity:1;transform:none}.veil{z-index:var(--z-veil);background:var(--veil);opacity:0;pointer-events:none;transition:opacity var(--dur-veil) linear;position:absolute;inset:0}.veil[data-on]{opacity:1;pointer-events:auto}.debug-hud{left:calc(var(--safe-l) + var(--space-2));top:calc(var(--safe-t) + 56px);z-index:var(--z-debug);padding:var(--space-2) var(--space-3);border-radius:var(--radius-ctl);background:var(--ink);color:var(--paper);font:var(--text-xs) / 1.45 var(--font-mono);opacity:.88;pointer-events:none;white-space:pre;margin:0;position:absolute}.creator{gap:var(--space-2);padding:var(--space-3);flex-direction:column;display:flex}.creator__age{flex-direction:column;display:flex}.creator__age-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-soft);display:flex}.creator__age-value{font-family:var(--font-seal);font-size:var(--text-md);color:var(--ink);font-variant-numeric:tabular-nums}.creator__slider{width:100%;height:var(--tap);accent-color:var(--seal);cursor:pointer;touch-action:pan-y;margin:0}.creator__row{gap:var(--space-2);align-items:flex-start;display:flex}.creator__row--scroll{scrollbar-width:none;scroll-snap-type:x proximity;margin:0 calc(-1 * var(--space-3));padding:2px var(--space-3);overflow-x:auto}.creator__row--scroll::-webkit-scrollbar{display:none}.creator__pair{gap:var(--space-2);justify-content:space-between;align-items:center;display:flex}.creator__row--dots{flex:none;gap:0;margin-left:-7px}.creator__row--chips{scrollbar-width:none;flex:0 auto;align-items:center;gap:6px;min-width:0;overflow-x:auto}.creator__row--chips::-webkit-scrollbar{display:none}.creator__actions{gap:var(--space-2);align-items:stretch;display:flex}.creator__actions .btn{white-space:nowrap}.swatch{width:56px;color:var(--ink-soft);font:inherit;font-size:var(--text-xs);cursor:pointer;scroll-snap-align:center;background:0 0;border:0;flex-direction:column;flex:none;align-items:center;gap:2px;padding:0;line-height:1.2;display:flex}.swatch__frame{border:2px solid var(--line);border-radius:var(--radius-card);background:var(--paper-sunk);width:56px;height:56px;transition:transform var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);place-items:center;display:grid;overflow:hidden}.swatch__img{object-fit:cover;pointer-events:none;width:100%;height:100%}.swatch__wait{border-radius:var(--radius-pill);background:var(--line);width:18px;height:18px}.swatch__text{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.swatch:active .swatch__frame{transform:scale(.94)}.swatch[data-on]{color:var(--ink)}.swatch[data-on] .swatch__frame{border-color:var(--seal);background:var(--seal-wash);transform:translateY(-2px)}.dot{width:var(--tap);height:var(--tap);border-radius:var(--radius-pill);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.dot__img{border-radius:var(--radius-pill);outline-offset:2px;pointer-events:none;width:30px;height:30px;transition:outline-color var(--dur-fast) var(--ease-out);outline:2px solid #0000}.dot[data-on] .dot__img{outline-color:var(--seal)}.style-chip{min-height:32px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper-raised);color:var(--ink);font:inherit;font-size:var(--text-sm);white-space:nowrap;flex:none;align-items:center;gap:6px;display:inline-flex}.style-chip[data-on]{border-color:var(--seal);background:var(--seal-wash)}.style-chip:disabled{color:var(--ink-soft);background:var(--paper-sunk)}.style-chip__soon{font-size:var(--text-xs)}@media (max-height:640px){.creator{gap:var(--space-1);padding:var(--space-2) var(--space-3)}.swatch,.swatch__frame{width:48px}.swatch__frame{height:48px}.creator__slider{height:36px}}[hidden]{display:none!important}[data-wx=木]{--wx:var(--wx-wood);--wx-soft:var(--wx-wood-light);--wx-deep:var(--wx-wood-dark)}[data-wx=火]{--wx:var(--wx-fire);--wx-soft:var(--wx-fire-light);--wx-deep:var(--wx-fire-dark)}[data-wx=土]{--wx:var(--wx-earth);--wx-soft:var(--wx-earth-light);--wx-deep:var(--wx-earth-dark)}[data-wx=金]{--wx:var(--wx-metal);--wx-soft:var(--wx-metal-light);--wx-deep:var(--wx-metal-dark)}[data-wx=水]{--wx:var(--wx-water);--wx-soft:var(--wx-water-light);--wx-deep:var(--wx-water-dark)}.ui-layer{height:var(--vvh,100%);bottom:auto}#app[data-nogl] .stage{display:none}.stage{transition:opacity var(--dur-sheet) var(--ease-out)}.stage[data-dim]{opacity:.3}.panel-host[data-view]{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:auto;min-height:0;margin-top:0;display:flex;overflow-y:auto}.panel-host[data-view]>*{flex:none;margin-top:auto}.panel-host[data-view=road]{display:none}.panel-host[data-view=chart]{max-width:44rem}.btn--icon{min-width:var(--tap);min-height:var(--tap)}.badge--plain{background:var(--paper-sunk);color:var(--ink-soft);font-weight:500}.bform{gap:var(--space-3);display:grid}.bform .card__title,.bform .card__body{margin-bottom:0}.bform__field{gap:var(--space-1);min-width:0;display:grid}.bform__label{font-size:var(--text-sm);font-weight:600}.bform__hint{color:var(--ink-soft);font-size:var(--text-xs);margin:0}.bform__error{color:var(--seal-deep);font-size:var(--text-sm);margin:0;font-weight:600}.bform__error:before{content:"！"}.bform__row{gap:var(--space-2);grid-template-columns:1fr 1fr;min-width:0;display:grid}.bform__row--date{grid-template-columns:1.3fr 1fr 1fr}.bform__row--time{grid-template-columns:minmax(0,1fr) auto;align-items:center}.bform__manual,.bform__stack{gap:var(--space-1);display:grid}.input{width:100%;min-width:0;min-height:var(--tap);padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-ctl);background:var(--paper);color:var(--ink);font:inherit;font-size:var(--text-md)}select.input{padding-right:var(--space-1)}.input:disabled{opacity:.45}.input[aria-invalid=true],.seg[aria-invalid=true] .seg__face{border-color:var(--seal)}.check{align-items:center;gap:var(--space-2);min-height:var(--tap);font-size:var(--text-sm);cursor:pointer;display:inline-flex}.check input{width:20px;height:20px;accent-color:var(--seal);flex:none;margin:0}.seg{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.seg__opt{cursor:pointer;position:relative}.seg__opt input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.seg__face{justify-content:center;align-items:baseline;gap:var(--space-2);min-height:var(--tap);padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-ctl);background:var(--paper);color:var(--ink-soft);font-size:var(--text-xs);transition:transform var(--dur-fast) var(--ease-spring);display:flex}.seg__face b{color:var(--ink);font-family:var(--font-seal);font-size:var(--text-lg)}.seg__opt input:checked+.seg__face{border-color:var(--seal);background:var(--seal-wash);box-shadow:inset 0 0 0 1px var(--seal);transform:scale(1.02)}.seg__opt input:focus-visible+.seg__face{outline:2px solid var(--focus);outline-offset:2px}.bform__adv{border-top:1px dashed var(--line);padding-top:var(--space-1)}.bform__adv summary{min-height:var(--tap);align-items:center;gap:var(--space-2);color:var(--ink-soft);font-size:var(--text-sm);cursor:pointer;list-style:none;display:flex}.bform__adv summary::-webkit-details-marker{display:none}.bform__adv summary:before{content:"＋";color:var(--seal)}.bform__adv[open] summary:before{content:"－"}.bform__preview{gap:var(--space-1);padding:var(--space-3);border:1px dashed var(--line);border-radius:var(--radius-ctl);background:var(--paper-sunk);display:grid}.bform__preview-line,.bform__preview-detail{font-size:var(--text-sm);margin:0}.bform__preview-detail,.bform__preview[data-state=empty]{color:var(--ink-soft);font-size:var(--text-xs)}.bform__preview-label{margin-right:var(--space-2);color:var(--ink-soft)}.bform__shift{font-variant-numeric:tabular-nums;font-weight:700}.bform__pillars{gap:var(--space-2);margin-bottom:var(--space-1);grid-template-columns:repeat(4,1fr);display:grid}.bform__pillar{padding:var(--space-2) 0;border:1px solid var(--line);background:var(--paper-raised);animation:tile-in var(--dur-sheet) var(--ease-spring) backwards;border-radius:8px;justify-items:center;gap:2px;display:grid}.bform__pillar:nth-child(2){animation-delay:40ms}.bform__pillar:nth-child(3){animation-delay:80ms}.bform__pillar:nth-child(4){animation-delay:.12s}.bform__pillar:nth-child(3){border-color:var(--seal)}.bform__pillar-label{color:var(--ink-soft);font-size:var(--text-xs)}.bform__pillar b{font-family:var(--font-seal);font-size:var(--text-lg);writing-mode:vertical-rl;text-orientation:upright;line-height:1.15}.bform__pillar[data-unknown] b{color:var(--muted)}@keyframes tile-in{0%{opacity:0;transform:translateY(6px)scale(.96)}}.ui-layer>.hud{gap:var(--space-2);min-height:0;padding:var(--space-2) var(--space-3);pointer-events:none;flex:auto;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) auto;display:grid}.hud>*{pointer-events:auto}.hud__plaque{place-self:start;align-items:center;column-gap:var(--space-3);row-gap:var(--space-1);max-width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper-glass);box-shadow:var(--shadow-soft);grid-template-columns:auto auto;display:grid}.hud__age{font-family:var(--font-seal);align-items:baseline;gap:2px;display:flex}.hud__age-num{font-variant-numeric:tabular-nums;text-align:right;min-width:1.2em;font-size:2rem;font-weight:700;line-height:1;display:inline-block}.hud__age-num[data-pop]{animation:hud-pop .26s var(--ease-spring)}.hud__age-unit{color:var(--ink-soft);font-size:var(--text-sm)}.hud__meta{justify-items:start;gap:2px;min-width:0;display:grid}.hud__year{font-size:var(--text-sm);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.hud__year[data-now]:after{content:" ●";color:var(--seal)}.hud__stage{border-radius:var(--radius-pill);background:var(--paper-sunk);color:var(--ink-soft);font-size:var(--text-xs);padding:0 8px}.hud__decade{align-items:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-3);border:1px solid var(--line);border-left:5px solid var(--wx,var(--line));border-radius:var(--radius-ctl);background:var(--paper);color:var(--ink);font:inherit;text-align:left;cursor:pointer;grid-column:1/-1;display:flex}.hud__decade:disabled{cursor:default;color:var(--ink-soft)}.hud__decade[data-future]{border-style:dashed dashed dashed solid}.hud__decade[data-pop]{animation:hud-stamp .42s var(--ease-spring)}.hud__decade-gz{font-family:var(--font-seal);white-space:nowrap;font-weight:700}.hud__decade-sub{color:var(--ink-soft);font-size:var(--text-xs)}@keyframes hud-pop{40%{transform:translateY(-3px)scale(1.18)}}@keyframes hud-stamp{0%{box-shadow:0 0 0 3px var(--seal-wash);transform:scale(1.12)rotate(-2deg)}60%{transform:scale(.98)}}.hud__rail{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper-glass);box-shadow:var(--shadow-soft);place-self:start end;gap:6px;padding:4px;display:grid}.hud__rail .btn{background:0 0;border-color:#0000}.hud[data-band=portrait] .hud__rail>:not([data-tool^=zoom]){display:none}@media (max-height:640px){.hud__rail{grid-template-rows:repeat(4,auto);grid-auto-flow:column}}.hud__bottom{justify-content:space-between;align-self:end;align-items:flex-end;gap:var(--space-2);pointer-events:none;grid-column:1/-1;min-width:0;display:flex}.hud__bottom>*{pointer-events:auto}.hud__doors{gap:var(--space-2);scrollbar-width:none;min-width:0;padding:2px;display:flex;overflow-x:auto}.hud__door,.hud__now{min-height:var(--tap);border-radius:var(--radius-pill);background:var(--paper-glass);box-shadow:var(--shadow-soft);white-space:nowrap;flex:none}.hud__now{border-color:var(--seal);color:var(--seal-deep)}.scrub{--p:0%;height:88px;margin:auto var(--space-5) var(--space-2);touch-action:none;-webkit-user-select:none;user-select:none;flex:none;position:relative}.hud:not([hidden])+.panel-host+.scrub{margin-top:0}.scrub__track{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper-glass);height:22px;box-shadow:var(--shadow-soft);cursor:pointer;position:absolute;top:40px;left:0;right:0;overflow:hidden}.scrub__bands{display:flex;position:absolute;inset:0}.scrub__band{flex:var(--w) 1 0;min-width:0;color:var(--ink-soft);white-space:nowrap;opacity:.9;place-items:center;font-size:11px;line-height:1;display:grid;overflow:hidden}.scrub__band+.scrub__band{border-left:1px solid var(--line)}.scrub__band[data-stage=childhood]{background:var(--wx-wood-accent)}.scrub__band[data-stage=school]{background:var(--wx-wood-light)}.scrub__band[data-stage=launch]{background:var(--wx-fire-accent)}.scrub__band[data-stage=build]{background:var(--wx-earth-light)}.scrub__band[data-stage=midlife]{background:var(--wx-metal-light)}.scrub__band[data-stage=elder]{background:var(--wx-water-accent)}.scrub__fill{width:var(--p);background:var(--ink-wash);pointer-events:none;position:absolute;inset:0 auto 0 0}.scrub__pips{pointer-events:none;position:absolute;inset:0}.scrub__pip{left:var(--p);background:var(--seal);border-radius:50%;width:5px;height:5px;margin-left:-2.5px;position:absolute;top:2px}.scrub__pip[data-future]{box-shadow:inset 0 0 0 1px var(--seal);background:0 0}.scrub__now{left:var(--p);background:var(--seal);pointer-events:none;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.scrub__now span{display:none}.scrub__ticks{height:44px;position:absolute;top:0;left:0;right:0}.scrub__tick{left:var(--p);width:34px;height:44px;color:var(--ink);font-family:var(--font-seal);font-size:var(--text-xs);cursor:pointer;background:0 0;border:0;grid-template-rows:1fr auto;justify-items:center;margin-left:-17px;padding:0;font-weight:600;display:grid;position:absolute;top:0}.scrub__tick-label{background:var(--paper-glass);white-space:nowrap;transition:transform var(--dur-fast) var(--ease-spring);border-radius:6px;align-self:center;padding:1px 4px}.scrub__tick:hover .scrub__tick-label,.scrub__tick:focus-visible .scrub__tick-label{transform:translateY(-2px)scale(1.08)}.scrub__tick-dot{border:2px solid var(--wx-deep,var(--ink));background:var(--paper);border-radius:2px;width:9px;height:9px;margin-bottom:1px;transform:rotate(45deg)}.scrub__tick[data-visited] .scrub__tick-dot{background:var(--wx,var(--ink))}.scrub__tick[data-future]{color:var(--ink-soft)}.scrub__tick[data-future] .scrub__tick-dot{border-style:dotted}@media (max-width:359px){.scrub__tick-label,.scrub__band span{display:none}}html[lang=en] .scrub__band span{display:none}@media (min-width:700px){html[lang=en] .scrub__band span{display:inline}}.scrub__thumb{left:var(--p);cursor:grab;touch-action:none;border-radius:50%;place-items:center;width:44px;height:44px;margin-left:-22px;display:grid;position:absolute;top:29px}.scrub[data-dragging] .scrub__thumb{cursor:grabbing}.scrub__face{background:var(--paper-raised);width:34px;height:34px;box-shadow:0 0 0 2px var(--seal), var(--shadow-soft);transition:transform var(--dur-fast) var(--ease-spring);border-radius:50%}.scrub__thumb:hover .scrub__face,.scrub[data-dragging] .scrub__face{transform:scale(1.14)}.scrub__thumb[data-walking] .scrub__face{animation:.42s ease-in-out infinite head-bob}.scrub__thumb[data-back] .scrub__face{scale:-1 1}.scrub__skin{fill:var(--skin)}.scrub__hair,.scrub__eye{fill:var(--ink)}.scrub__smile{fill:none;stroke:var(--ink);stroke-width:1.4px;stroke-linecap:round}.scrub__bubble{border-radius:var(--radius-pill);background:var(--ink);color:var(--paper);font-size:var(--text-xs);white-space:nowrap;opacity:0;transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);pointer-events:none;padding:1px 8px;position:absolute;bottom:100%;left:50%;transform:translate(-50%,4px)}.scrub[data-dragging] .scrub__bubble,.scrub__thumb:focus-visible .scrub__bubble,.scrub__thumb[data-walking] .scrub__bubble{opacity:1;transform:translate(-50%,-2px)}@keyframes head-bob{50%{transform:translateY(-3px)rotate(4deg)}}.deck{gap:var(--space-2);border-radius:var(--radius-ctl);display:grid}.deck__viewport{touch-action:pan-y;overflow:hidden}.deck__track{transform:translateX(calc(var(--i,0) * -100% + var(--dx,0px)));transition:transform var(--dur-sheet) var(--ease-out);display:flex}.deck__track[data-dragging]{transition:none}.hcard{gap:var(--space-2);min-width:0;padding:var(--space-3);border:1px solid var(--line);border-top:4px solid var(--wx,var(--seal));border-radius:var(--radius-card);background:var(--paper);opacity:.4;transition:opacity var(--dur-sheet) var(--ease-out);flex:0 0 100%;align-content:start;display:grid}.hcard[data-current]{opacity:1}.hcard__kicker{align-items:center;gap:var(--space-2);color:var(--ink-soft);font-size:var(--text-xs);font-variant-numeric:tabular-nums;flex-wrap:wrap;margin:0;display:flex}.hcard__slot{border-radius:var(--radius-pill);background:var(--seal-wash);color:var(--seal-deep);padding:1px 8px;font-weight:600}.hcard__title{font-family:var(--font-seal);font-size:var(--text-lg);margin:0;line-height:1.3}.sheet__body .hcard__body,.sheet__body .hcard__frame,.sheet__body .hcard__echo{margin:0}.hcard__frame{padding-left:var(--space-2);border-left:3px solid var(--line);color:var(--ink-soft);font-size:var(--text-sm)}.hcard__why{align-items:center;gap:var(--space-2);min-height:var(--tap);padding:var(--space-1) 0;border:0;border-top:1px dashed var(--line);color:var(--ink-soft);font:inherit;font-size:var(--text-xs);text-align:left;cursor:pointer;background:0 0;flex-wrap:wrap;display:flex}.hcard__why-label{color:var(--seal-deep);font-weight:700}.hcard__why:hover{color:var(--ink)}.hcard__resrow{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.hcard__res{min-height:var(--tap);justify-content:center}.hcard__res[aria-pressed=true]{border-color:var(--seal);background:var(--seal-wash);color:var(--seal-deep);font-weight:700}.hcard__res[aria-pressed=true]:before{content:"✓"}.hcard__echo{min-height:1.5em;color:var(--ink-soft);font-size:var(--text-sm)}.hcard__echo[data-value="1"]:before{content:"印";width:1.4em;height:1.4em;margin-right:var(--space-2);background:var(--seal);color:var(--on-seal);font-family:var(--font-seal);font-size:var(--text-xs);animation:hud-stamp .42s var(--ease-spring);border-radius:4px;place-items:center;display:inline-grid;transform:rotate(-6deg)}.deck__pager{justify-content:space-between;align-items:center;display:flex}.deck__dots{display:flex}.deck__dot{width:28px;height:var(--tap);cursor:pointer;background:0 0;border:0;padding:0}.deck__dot:before{content:"";border-radius:var(--radius-pill);background:var(--line);width:8px;height:8px;transition:width var(--dur-fast) var(--ease-out);margin:auto;display:block}.deck__dot[aria-selected=true]:before{background:var(--seal);width:20px}.chart-view{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper-raised);box-shadow:var(--shadow-lift);display:grid}.chart-view__head{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.chart-view__head .card__title{margin:0}.ctable-wrap{gap:var(--space-3);min-width:0;display:grid}.ctable__badges{flex-wrap:wrap;gap:6px;display:flex}.ctable__scroll{min-width:0}.ctable{table-layout:fixed;border-collapse:separate;border-spacing:4px;text-align:center;width:100%}.ctable th{color:var(--ink-soft);font-size:var(--text-xs);font-weight:600}.ctable thead td,.ctable tbody th{width:3.4rem}.ctable tbody th{text-align:left;line-height:1.2}.ctable td{padding:var(--space-1) 2px;background:var(--paper);overflow-wrap:anywhere;border-radius:8px}.ctable thead td{background:0 0}.ctable td[data-pos=day]{background:var(--seal-wash)}.ctable__row--god td{font-size:var(--text-sm)}.ctable__dm{color:var(--seal-deep);font-weight:700}.ctable__blank{color:var(--muted)}.glyph{border-bottom:4px solid var(--wx);font-family:var(--font-seal);justify-items:center;padding:2px 6px 0;font-size:1.75rem;font-weight:700;line-height:1.2;display:inline-grid}.glyph__wx{color:var(--ink-soft);font-family:var(--font-ui);font-size:10px;font-weight:500;line-height:1.4}.ctable__hidden{justify-items:center;gap:2px;display:grid}.ctable__hid{border-left:3px solid var(--wx);color:var(--ink-soft);font-size:var(--text-xs);flex-wrap:wrap;justify-content:center;column-gap:4px;padding-left:4px;line-height:1.3;display:inline-flex}.ctable__hid b{color:var(--ink);font-family:var(--font-seal);font-size:var(--text-sm)}.ctable__section{gap:var(--space-2);min-width:0;display:grid}.ctable__section h3{font-size:var(--text-sm);margin:0}.ctable__hint{color:var(--ink-soft);font-size:var(--text-xs);margin:0}.wxbar{border-radius:var(--radius-pill);border:1px solid var(--line);height:12px;display:flex;overflow:hidden}.wxbar__seg{flex:var(--v) 1 0;background:var(--wx)}.ctable__rels{font-size:var(--text-sm);gap:6px;margin:0;padding:0;list-style:none;display:grid}.ctable__rels li{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.ctable__none{color:var(--ink-soft)}.dayun{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}@media (min-width:640px){.dayun{grid-template-columns:repeat(8,minmax(0,1fr))}}.dayun__cell{width:100%;min-height:64px;padding:var(--space-1) 2px;border:1px solid var(--line);border-bottom:4px solid var(--wx);background:var(--paper);color:var(--ink);font:inherit;border-radius:8px;align-content:center;justify-items:center;gap:1px;display:grid}button.dayun__cell{cursor:pointer;transition:transform var(--dur-fast) var(--ease-spring)}button.dayun__cell:hover{transform:translateY(-2px)}.dayun__cell[aria-current=true]{border-color:var(--seal);border-bottom-color:var(--wx);background:var(--seal-wash);box-shadow:inset 0 0 0 1px var(--seal)}.dayun__cell[aria-current=true] .dayun__age:after{content:" ◆";color:var(--seal)}.dayun__gz{font-family:var(--font-seal);font-size:var(--text-lg);font-weight:700;line-height:1.2}.dayun__god,.dayun__age{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:11px;line-height:1.3}@media (max-width:359px){.scrub{margin-left:var(--space-4);margin-right:var(--space-4)}.chart-view{padding:var(--space-3)}.glyph{font-size:1.5rem}.ctable thead td,.ctable tbody th{width:2.6rem}}.hcard__body{white-space:pre-line}.hud__door[data-cards]:after{content:"";opacity:.6;border:1.5px solid;border-radius:2px;width:.55em;height:.75em}.nowcard{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--line);border-top:4px solid var(--seal);border-radius:var(--radius-card);background:var(--paper);display:grid}.nowcard p,.nowcard h4{margin:0}.nowcard__head{align-items:center;gap:var(--space-3);display:flex}.nowcard__headtext{gap:var(--space-1,4px);min-width:0;display:grid}.nowcard__seal{background:var(--seal);width:3.4rem;color:var(--paper);font-family:var(--font-seal);box-shadow:inset 0 0 0 2px var(--seal), inset 0 0 0 3.5px var(--paper), 0 0 0 3px var(--wx-soft,var(--seal-wash));animation:now-stamp .42s var(--ease-out) both;border-radius:8px;flex:none;place-items:center;padding:.3rem 0;font-size:1.45rem;font-weight:700;line-height:1.15;display:grid;transform:rotate(-4deg)}@keyframes now-stamp{0%{opacity:0;transform:rotate(-12deg)scale(1.7)}60%{opacity:1;transform:rotate(-3deg)scale(.94)}to{transform:rotate(-4deg)scale(1)}}.nowcard__here{color:var(--seal-deep);font-size:var(--text-xs);letter-spacing:.08em;font-weight:700}.nowcard__lead{font-family:var(--font-seal);font-size:var(--text-lg);line-height:1.3}.nowcard__note,.nowcard__theme{color:var(--ink-soft);font-size:var(--text-sm)}.nowcard__decade{gap:var(--space-2);padding:var(--space-2) var(--space-3);border-left:3px solid var(--line);justify-items:start;display:grid}.nowcard__decade-title{font-size:var(--text-sm)}.nowcard__hints{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.nowcard__hint{min-height:var(--tap);justify-content:center}html[data-fast] .nowcard__seal{animation:none}@media (prefers-reduced-motion:reduce){.nowcard__seal,.scrub__thumb[data-walking] .scrub__face,.bform__pillar,.hud__age-num[data-pop],.hud__decade[data-pop],.hcard__echo[data-value="1"]:before{animation:none}}html[data-fast] .bform__pillar,html[data-fast] .scrub__thumb[data-walking] .scrub__face{animation:none}.endcard{gap:var(--space-3);padding:var(--space-4) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper);text-align:center;justify-items:center;display:grid}.endcard p{margin:0}.endcard__mist{width:min(100%,16rem);height:2.6rem;position:relative}.endcard__mist span{background:var(--line);opacity:.55;border-radius:999px;height:.7rem;animation:7s ease-in-out infinite alternate end-drift;position:absolute;left:8%;right:8%}.endcard__mist span:first-child{top:0}.endcard__mist span:nth-child(2){opacity:.4;animation-duration:9s;animation-direction:alternate-reverse;top:.95rem;left:0;right:22%}.endcard__mist span:nth-child(3){opacity:.3;animation-duration:11s;top:1.9rem;left:24%;right:0}@keyframes end-drift{0%{transform:translate(-6%)}to{transform:translate(6%)}}.endcard__line{font-family:var(--font-seal);font-size:var(--text-lg);line-height:1.35}.endcard__body{max-width:28rem;color:var(--ink-soft);font-size:var(--text-sm)}.endcard__actions{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}html[data-fast] .endcard__mist span{animation:none}@media (prefers-reduced-motion:reduce){.endcard__mist span{animation:none}}.ui-layer>.gate-chips{pointer-events:none;position:absolute;inset:0;overflow:hidden}.gate-chip{transform:translate(var(--x,0), var(--y,0)) translate(-50%, -100%);border:1px solid var(--line);border-bottom:3px solid var(--seal);border-radius:var(--radius-ctl);background:var(--paper);min-height:2rem;color:var(--ink);font:inherit;font-size:var(--text-xs);white-space:nowrap;cursor:pointer;pointer-events:auto;padding:.2rem .6rem;font-weight:700;position:absolute;top:0;left:0}.gate-chip[data-state=future]{border-bottom-color:var(--line);color:var(--ink-soft)}.gate-chip[data-state=unvisited]{border-bottom-color:var(--ink-soft)}.gate-chip[data-state=current]{box-shadow:0 0 0 3px var(--seal-wash)}
