:root {
  --ink: #f4f0e7;
  --muted: #b9c0c5;
  --gold: #c8a652;
  --gold-soft: rgba(200, 166, 82, .46);
  --navy: #071523;
  --surface: rgba(5, 17, 29, .92);
  --surface-soft: rgba(8, 22, 36, .76);
  --line: rgba(221, 225, 222, .16);
  --header-h: 76px;
  --world-x: -100vw;
  font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif;
}

/* Ordered selection picker */
.selection-picker-field { min-width: 0; color: rgba(255,255,255,.68); font-size: 12px; letter-spacing: .08em; }
.selection-picker-trigger { display: flex; width: 100%; min-height: 46px; align-items: center; justify-content: space-between; margin-top: 9px; padding: 13px 14px; border: 1px solid rgba(255,255,255,.18); border-radius: 0; background: rgba(1,9,17,.48); color: #fff; font: inherit; letter-spacing: inherit; text-align: left; cursor: pointer; }
.selection-picker-trigger:hover { border-color: rgba(200,166,82,.56); }
.selection-picker-trigger:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.selection-picker-trigger[aria-invalid="true"] { border-color: #d69a78; }
.selection-picker-trigger[aria-disabled="true"] { color: rgba(255,255,255,.42); cursor: not-allowed; }
.selection-picker-source { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; border: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; pointer-events: none !important; white-space: nowrap !important; }
.selection-picker { position: fixed; z-index: 120; border: 0; background: rgba(5,15,27,.98); box-shadow: 0 18px 42px rgba(0,0,0,.34); }
.selection-picker[hidden] { display: none; }
.selection-picker__clear { width: 100%; min-height: 34px; border: 0; border-bottom: 1px solid rgba(255,255,255,.1); background: transparent; color: rgba(255,255,255,.66); font: 11px/1 system-ui,sans-serif; letter-spacing: .12em; cursor: pointer; }
.selection-picker__clear:hover,.selection-picker__clear:focus-visible { color: var(--gold); }
.selection-picker__list { height: calc(var(--selection-picker-row-height) * var(--selection-picker-visible-rows)); box-sizing: border-box; overflow-y: auto; overscroll-behavior: contain; padding-block: calc(var(--selection-picker-row-height) * ((var(--selection-picker-visible-rows) - 1) / 2)); outline: 0; scrollbar-width: thin; scrollbar-color: rgba(200,166,82,.45) transparent; scroll-snap-type: y mandatory; touch-action: pan-y; mask-image: linear-gradient(to bottom,transparent,rgba(0,0,0,.36) 20%,#000 36%,#000 64%,rgba(0,0,0,.36) 80%,transparent); -webkit-mask-image: linear-gradient(to bottom,transparent,rgba(0,0,0,.36) 20%,#000 36%,#000 64%,rgba(0,0,0,.36) 80%,transparent); }
.selection-picker__list:focus-visible { outline: 2px solid rgba(218,186,104,.92); outline-offset: -2px; }
.selection-picker__focus { position: absolute; z-index: 1; top: calc(var(--selection-picker-clear-height,0px) + (var(--selection-picker-row-height) * ((var(--selection-picker-visible-rows) - 1) / 2)) + 5px); right: 10px; left: 10px; height: calc(var(--selection-picker-row-height) - 10px); border-top: 1px solid rgba(200,166,82,.35); border-bottom: 1px solid rgba(200,166,82,.35); pointer-events: none; }
.selection-picker__option { position: relative; display: flex; min-height: var(--selection-picker-row-height); align-items: center; justify-content: center; padding-inline: 36px; color: rgba(255,255,255,.32); font-size: 15px; letter-spacing: .1em; scroll-snap-align: center; cursor: pointer; user-select: none; }
.selection-picker__option[data-distance="1"] { color: rgba(255,255,255,.64); }
.selection-picker__option[data-distance="2"] { color: rgba(255,255,255,.38); }
.selection-picker__option[data-distance]:not([data-distance="0"]):not([data-distance="1"]):not([data-distance="2"]) { opacity: .08; }
.selection-picker__option.is-active { color: #fff; font-size: 17px; }
.selection-picker__option.is-selected::before { position: absolute; left: 16px; color: var(--gold); content: "◆"; font-size: 9px; }
.selection-picker__option[data-keyboard-focus="true"] { outline: 2px solid rgba(218,186,104,.92); outline-offset: -3px; }
.selection-picker__context { position: absolute; right: 14px; color: var(--gold); font-size: 10px; letter-spacing: .08em; }
@media (max-width: 640px) {
  body.is-selection-picker-open { overflow: hidden; }
  .selection-picker { right: 8px; bottom: max(8px, env(safe-area-inset-bottom)); left: 8px; width: auto !important; max-height: min(42dvh,340px); }
  .selection-picker__option { min-height: var(--selection-picker-row-height); font-size: 16px; }
  .selection-picker__clear { min-height: 44px; }
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: #06121f; color: var(--ink); }
body { overflow: hidden; }
body.is-page-transitioning { cursor: progress; }
body.is-page-transitioning .edge-entry { pointer-events: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
.concept-note { position: fixed; right: 20px; bottom: 15px; z-index: 40; color: rgba(255,255,255,.42); font: 10px/1.2 system-ui, sans-serif; letter-spacing: .12em; pointer-events: none; }
.site-header { position: fixed; inset: 0 0 auto; height: var(--header-h); z-index: 30; display: grid; grid-template-columns: minmax(170px,1fr) auto minmax(170px,1fr); align-items: center; padding: 0 clamp(20px,3.4vw,64px); background: linear-gradient(180deg,rgba(4,15,28,.96),rgba(5,17,30,.78)); border-bottom: 1px solid rgba(200,166,82,.18); backdrop-filter: blur(12px); }
.brand-mini { display: flex; align-items: center; gap: 12px; width: fit-content; padding: 0; border: 0; background: none; cursor: pointer; }
.brand-mini img { width: 42px; height: 42px; object-fit: contain; }
.brand-mini span { display: grid; gap: 2px; text-align: left; }
.brand-mini strong { font-size: 22px; font-weight: 400; letter-spacing: .18em; }
.brand-mini small { color: var(--gold); font: 9px/1 system-ui,sans-serif; letter-spacing: .34em; }
.site-nav { display: flex; align-self: stretch; gap: clamp(16px,2.6vw,44px); }
.site-nav button { position: relative; min-width: 44px; min-height: 44px; padding: 3px 0 0; border: 0; background: none; color: rgba(245,243,238,.72); font-size: 14px; font-weight: 400; letter-spacing: .08em; cursor: pointer; transition: color .14s ease, opacity .14s ease; }
.site-nav button::after { content: ""; position: absolute; left: 50%; bottom: 13px; width: 0; height: 2px; background: var(--gold); transform: translateX(-50%); }
.site-nav button:hover, .site-nav button:focus-visible, .site-nav button.is-active, .site-nav button[aria-current="page"] { color: #fff; }
.site-nav button:focus-visible { outline: 1px solid var(--gold); outline-offset: 4px; }
.site-nav button.is-active, .site-nav button[aria-current="page"] { font-weight: 500; }
.site-nav button.is-active::after, .site-nav button[aria-current="page"]::after { width: 24px; }
.account-link { position: relative; align-self: stretch; justify-self: end; display: flex; align-items: center; gap: 9px; padding: 0; border: 0; background: none; color: rgba(245,243,238,.72); cursor: pointer; transition: color .14s ease, opacity .14s ease; }
.account-link span { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--gold-soft); border-radius: 50%; color: var(--gold); }
.account-link::after { content: ""; position: absolute; left: 50%; bottom: 13px; width: 0; height: 2px; background: var(--gold); transform: translateX(-50%); }
.account-link:hover, .account-link.is-active, .account-link[aria-current="page"] { color: #fff; }
.account-link:hover span, .account-link.is-active span, .account-link[aria-current="page"] span { border-color: var(--gold); color: var(--gold); }
.account-link.is-active, .account-link[aria-current="page"] { font-weight: 500; }
.account-link.is-active::after, .account-link[aria-current="page"]::after { width: 24px; }
.account-link:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.brand-mini:focus-visible, .return-marker:focus-visible, .edge-entry:focus-visible { outline: 1px solid var(--gold); outline-offset: 5px; }
.viewport { position: fixed; inset: 0; overflow: hidden; transform-origin: 50% 50%; will-change: transform,opacity; }
.scene-stage { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; background: #071523; }
.scene-atmosphere-track { position: absolute; inset: 0 auto 0 0; z-index: 0; width: 300vw; transform: translate3d(var(--world-x),0,0); will-change: transform; }
.atmosphere-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% center; }
.atmosphere-sun { position: absolute; left: 50%; top: max(70.124vh,calc(50vh + 10.061vw)); width: max(72.153vh,36.077vw); height: auto; transform: translate(-50%,-54.615%); pointer-events: none; }
.atmosphere-night { opacity: 1; filter: brightness(.25) saturate(.62) hue-rotate(7deg) contrast(1.04); }
.atmosphere-day { opacity: 0; will-change: opacity; }
.scene-ornaments { position: absolute; inset: 0; z-index: 1; overflow: hidden; }
.scene-ornament { position: absolute; bottom: 0; width: min(96vw,190vh,1900px); height: auto; aspect-ratio: 2 / 1; object-fit: contain; opacity: 0; filter: brightness(.66) saturate(.74) contrast(1.05); will-change: transform,opacity; }
.ornament-cliff { left: -8vw; object-position: left bottom; }
.ornament-building { right: -8vw; object-position: right bottom; }
.scene-vignette { position: absolute; inset: 0; z-index: 2; background: linear-gradient(180deg,rgba(2,10,20,.24) 0%,transparent 34%,rgba(1,8,14,.30) 100%); }
.scene-world { position: absolute; inset: 0 auto 0 0; z-index: 1; width: 300vw; transform: translate3d(var(--world-x),0,0); will-change: transform; }
.scene-panel { position: absolute; top: 0; bottom: 0; width: 100vw; overflow: hidden; isolation: isolate; }
.scene-panel::before { content:""; position: absolute; inset: 0; z-index: 0; pointer-events:none; }
.scene-bazi::before { background: linear-gradient(90deg,rgba(3,13,24,.48),rgba(3,13,24,.15) 46%,transparent 72%); }
.scene-jinkou::before { background: linear-gradient(270deg,rgba(3,13,24,.50),rgba(3,13,24,.16) 48%,transparent 72%); }
.scene-bazi { left: 0; }
.scene-home { left: 100vw; }
.scene-jinkou { left: 200vw; }
.home-scroll { position: absolute; inset: var(--header-h) 0 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: transparent transparent; pointer-events: none; }
.scene-home.is-scroll-ready .home-scroll { pointer-events: auto; scrollbar-color: var(--gold-soft) transparent; }
.home-scroll::-webkit-scrollbar { width: 10px; }
.home-scroll::-webkit-scrollbar-thumb { background: transparent; }
.scene-home.is-scroll-ready .home-scroll::-webkit-scrollbar-thumb { background: var(--gold-soft); }
.home-hero { position: relative; min-height: calc(100dvh - var(--header-h)); overflow: hidden; }
.home-brand { position: absolute; left: 50%; top: 39%; width: min(42vw,620px); aspect-ratio: 1; transform: translate(-50%,-50%); display: grid; place-items: center; }
.luopan { position: absolute; width: 70%; height: 70%; opacity: .29; filter: sepia(.25) saturate(.88) brightness(1.14); }
.brand-copy { position: relative; z-index: 1; display: grid; justify-items: center; text-shadow: 0 2px 24px rgba(0,0,0,.52); }
.brand-copy h1 { margin: 0; font-size: clamp(56px,6.3vw,104px); font-weight: 300; letter-spacing: .18em; transform: translateX(.09em); }
.roman { margin: 10px 0 19px; color: #e5c36a; font: 10px/1 system-ui,sans-serif; letter-spacing: .62em; transform: translateX(.31em); }
.brand-rule { display: flex; align-items: center; gap: 10px; color: var(--gold); }
.brand-rule i { width: 58px; height: 1px; background: linear-gradient(90deg,transparent,var(--gold-soft)); }
.brand-rule i:last-child { transform: scaleX(-1); }
.brand-rule b { font-size: 11px; font-weight: 400; }
.slogan { margin: 18px 0 0; font-size: clamp(14px,1.25vw,20px); letter-spacing: .25em; }
.edge-entry { position: absolute; top: 53%; z-index: 3; display: flex; align-items: center; gap: 16px; width: clamp(240px,25vw,460px); min-height: 92px; padding: 18px clamp(24px,3vw,58px); border: 0; background: linear-gradient(90deg,rgba(3,14,25,.44),rgba(3,14,25,.09),transparent); cursor: pointer; text-shadow: 0 2px 10px rgba(0,0,0,.75); }
.edge-entry::before { content:""; position:absolute; inset:0; border-top:1px solid transparent; border-bottom:1px solid transparent; transition: background .28s ease,border-color .28s ease; }
.edge-entry:hover::before, .edge-entry:focus-visible::before { background: rgba(4,18,31,.23); border-color: rgba(200,166,82,.23); }
.edge-left { left: 0; justify-content: flex-start; }
.edge-right { right: 0; justify-content: flex-end; background: linear-gradient(270deg,rgba(3,14,25,.44),rgba(3,14,25,.09),transparent); }
.edge-name { font-size: clamp(17px,1.55vw,25px); letter-spacing: .16em; white-space: nowrap; }
.edge-entry i { color: var(--gold); font-style: normal; transform: translateX(0); transition: transform .28s ease; }
.edge-left:hover i { transform: translateX(-7px); }
.edge-right:hover i { transform: translateX(7px); }
.home-hint { position: absolute; left: 50%; bottom: 42px; margin: 0; transform: translateX(-50%); color: rgba(255,255,255,.58); font-size: 11px; letter-spacing: .18em; }
.home-section { position: relative; min-height: calc(100dvh - var(--header-h)); display: grid; align-content: center; gap: 42px; padding: clamp(72px,9vw,140px) max(6vw,24px); background: linear-gradient(180deg,rgba(4,15,27,.76),rgba(4,15,27,.94)); border-top: 1px solid rgba(200,166,82,.18); }
.home-section:nth-of-type(3) { background: linear-gradient(180deg,rgba(4,15,27,.90),rgba(3,12,22,.98)); }
.home-section-head { width: min(1120px,88vw); margin: 0 auto; }
.home-section-head h2 { max-width: 18em; margin: 0; font-size: clamp(34px,4.2vw,64px); font-weight: 300; letter-spacing: .08em; line-height: 1.35; }
.home-section-head p { max-width: 48em; margin: 18px 0 0; color: rgba(255,255,255,.58); font-size: 14px; line-height: 1.8; letter-spacing: .08em; }
.method-compare,.result-guide-grid { width: min(1120px,88vw); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.method-compare article,.result-guide-grid > * { min-height: 260px; padding: clamp(28px,3.6vw,52px); background: rgba(4,16,29,.88); }
.method-compare small,.result-guide-grid small { color: var(--gold); font: 10px/1.4 system-ui,sans-serif; letter-spacing: .22em; }
.method-compare h3,.result-guide-grid h3 { margin: 24px 0 12px; font-size: clamp(22px,2.2vw,32px); font-weight: 400; letter-spacing: .08em; }
.method-compare p,.result-guide-grid p { max-width: 34em; margin: 0; color: rgba(255,255,255,.58); font-size: 13px; line-height: 1.9; letter-spacing: .06em; }
.method-compare button { margin-top: 30px; padding: 12px 17px; border: 1px solid rgba(200,166,82,.34); background: rgba(200,166,82,.10); color: #fff; cursor: pointer; letter-spacing: .1em; }
.result-guide-grid { grid-template-columns: 1fr 1fr; }
.result-guide-grid aside { grid-column: 1 / -1; min-height: auto; display: grid; grid-template-columns: 180px 1fr; align-items: baseline; gap: 28px; border-top: 1px solid var(--line); }
.result-guide-grid aside h3 { margin: 0; color: #f1dfb0; font-size: 17px; }
.page-return { width: min(1120px,88vw); margin: 34px auto 0; display: flex; justify-content: center; }
.return-marker { display: flex; gap: 10px; align-items: center; padding: 11px 17px; border: 1px solid rgba(200,166,82,.26); background: rgba(4,16,29,.72); color: rgba(255,255,255,.72); letter-spacing: .14em; cursor: pointer; backdrop-filter: blur(8px); }
.return-marker span { color: var(--gold); }
.inner-scroll { position: absolute; inset: var(--header-h) 0 0; z-index: 1; overflow-y: scroll; overscroll-behavior: contain; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: transparent transparent; padding: clamp(48px,7vh,96px) clamp(24px,5vw,96px) 58px; pointer-events: none; }
.scene-panel.is-scroll-ready .inner-scroll { scrollbar-color: var(--gold-soft) transparent; pointer-events: auto; }
.inner-scroll::-webkit-scrollbar, .depth-scroll::-webkit-scrollbar { width: 10px; }
.inner-scroll::-webkit-scrollbar-thumb, .depth-scroll::-webkit-scrollbar-thumb { background: transparent; border-radius: 0; }
.scene-panel.is-scroll-ready .inner-scroll::-webkit-scrollbar-thumb, .depth-page.is-scroll-ready .depth-scroll::-webkit-scrollbar-thumb { background: var(--gold-soft); }
.inner-heading { width: min(1120px,88vw); margin: 0 auto 26px; text-shadow: 0 2px 20px rgba(0,0,0,.64); }
.inner-heading.align-right { text-align: right; }
.inner-heading p { margin: 0 0 9px; color: var(--gold); font: 10px/1.4 system-ui,sans-serif; letter-spacing: .34em; }
.inner-heading h1 { margin: 0; font-size: clamp(36px,4vw,62px); font-weight: 300; letter-spacing: .13em; }
.inner-heading span { display: block; margin-top: 9px; color: rgba(255,255,255,.72); font-size: 13px; letter-spacing: .15em; }
.reading-surface { width: min(1120px,88vw); margin: 0 auto; padding: clamp(24px,3vw,44px); background: linear-gradient(145deg,rgba(4,16,29,.94),rgba(7,22,36,.90)); border: 1px solid rgba(214,220,218,.16); box-shadow: 0 28px 80px rgba(0,0,0,.28); backdrop-filter: blur(10px); }
.scene-bazi .reading-surface { border-left: 2px solid rgba(200,166,82,.62); }
.scene-jinkou .reading-surface { border-right: 2px solid rgba(200,166,82,.62); }
.surface-head, .section-label, .form-tail { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.surface-head small { color: var(--gold); font: 9px/1 system-ui,sans-serif; letter-spacing: .3em; }
.surface-head h2, .section-label h2 { margin: 8px 0 0; font-size: 22px; font-weight: 400; letter-spacing: .14em; }
.surface-head p, .section-label span { margin: 0; color: rgba(255,255,255,.52); font-size: 11px; letter-spacing: .12em; }
.field-grid { display: grid; gap: 16px; margin-top: 22px; }
.two-up { grid-template-columns: 1fr 1.2fr; }
.birth-grid { grid-template-columns: .8fr repeat(3,1fr) 1.2fr 1fr; }
.location-grid { grid-template-columns: repeat(3,1fr); }
label, legend { color: rgba(255,255,255,.68); font-size: 12px; letter-spacing: .08em; }
input, select, textarea { width: 100%; margin-top: 9px; padding: 13px 14px; border: 1px solid rgba(255,255,255,.18); border-radius: 0; outline: 1px solid transparent; background: rgba(1,9,17,.48); color: #fff; transition: border-color .2s ease,background .2s ease; }
input::placeholder, textarea::placeholder { color: rgba(255,255,255,.48); opacity: 1; }
input:focus, select:focus, textarea:focus { border-color: rgba(200,166,82,.72); background: rgba(2,12,22,.74); }
textarea { resize: vertical; line-height: 1.7; }
fieldset { margin: 0; padding: 0; border: 0; }
.segmented { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.segmented legend { grid-column: 1 / -1; }
.segmented label { position: relative; display: grid; place-items: center; min-height: 45px; border: 1px solid var(--line); color: rgba(255,255,255,.72); cursor: pointer; }
.segmented input, .choice-card input { position: absolute; opacity: 0; pointer-events: none; }
.segmented label:has(input:checked) { border-color: var(--gold-soft); background: rgba(200,166,82,.09); color: #fff; }
.segmented label:has(input:focus-visible) { outline: 1px solid var(--gold); outline-offset: 3px; }
.surface-divider { height: 1px; margin: 28px 0; background: linear-gradient(90deg,transparent,var(--line) 8%,var(--line) 92%,transparent); }
.form-tail { align-items: center; margin-top: 30px; }
.form-tail p { margin: 0; color: rgba(255,255,255,.5); font-size: 11px; }
.dot { display: inline-block; width: 5px; height: 5px; margin-right: 9px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 12px var(--gold); }
.form-tail button { min-width: 170px; padding: 14px 22px; border: 1px solid var(--gold-soft); background: rgba(200,166,82,.12); color: #fff; cursor: pointer; letter-spacing: .12em; }
.form-tail button span { float: right; color: var(--gold); }
.guide-summary { margin: -10px 0 28px; border-bottom: 1px solid var(--line); }
.guide-summary summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 0 18px; list-style: none; cursor: pointer; }
.guide-summary summary::-webkit-details-marker { display:none; }
.guide-summary summary span { display: flex; align-items: baseline; gap: 14px; }
.guide-summary b { font-size: 17px; font-weight: 400; letter-spacing: .13em; }
.guide-summary small { color: rgba(255,255,255,.46); }
.guide-summary i { color: var(--gold); font-size: 11px; font-style: normal; letter-spacing: .12em; }
.guide-summary .guide-action .guide-action-close { display: none; }
.guide-summary[open] .guide-action .guide-action-open { display: none; }
.guide-summary[open] .guide-action .guide-action-close { display: inline; }
.guide-body { padding: 2px 0 19px; color: rgba(255,255,255,.68); font-size: 13px; line-height: 1.9; }
.guide-body p { margin: 8px 0; }
.question-field { display: block; margin-top: 22px; }
.warning-note { margin: 11px 0 0; color: #f1e7d1; font-size: 12px; font-weight: 700; text-emphasis: filled dot var(--gold); text-emphasis-position: under; line-height: 2; }
.time-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; }
.time-choice.single-choice { grid-template-columns: minmax(0,560px); }
.choice-card { position: relative; display: grid; gap: 6px; min-height: 76px; padding: 17px 18px; border: 1px solid var(--line); cursor: pointer; }
.choice-card b { color: #fff; font-size: 14px; font-weight: 400; }
.choice-card small { color: rgba(255,255,255,.46); }
.choice-card.is-selected, .choice-card:has(input:checked) { border-color: var(--gold-soft); background: rgba(200,166,82,.07); }
.cast-preview { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin-top: 18px; background: var(--line); }
.cast-preview span { display: flex; justify-content: space-between; padding: 13px 14px; background: rgba(3,13,24,.86); color: rgba(255,255,255,.66); font-size: 12px; }
.cast-preview i { color: rgba(255,255,255,.34); font-style: normal; }
.result-surface { position: relative; overflow: hidden; margin-top: 24px; }
.result-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.result-head small { color: var(--gold); font: 9px/1 system-ui,sans-serif; letter-spacing: .3em; }
.result-head h2 { margin: 9px 0 0; font-size: 28px; font-weight: 400; letter-spacing: .16em; }
.result-status { padding: 8px 11px; border: 1px solid rgba(200,166,82,.28); color: rgba(236,211,151,.82); font: 10px/1.4 system-ui,sans-serif; letter-spacing: .11em; }
.result-scope-note { margin: 18px 0 24px; color: rgba(255,255,255,.58); font-size: 12px; line-height: 1.8; letter-spacing: .06em; }
.matrix-scroll, .fortune-strip, .flow-year-timeline { overflow-x: auto; scrollbar-width: thin; scrollbar-color: var(--gold-soft) transparent; }
.matrix-scroll:focus-visible { outline: 1px solid var(--gold-soft); outline-offset: 4px; }
.pillar-matrix { display: grid; grid-template-columns: 104px repeat(4,minmax(144px,1fr)); min-width: 720px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.pillar-matrix > * { min-height: 48px; display: grid; place-items: center; padding: 10px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.pillar-matrix > b { background: rgba(200,166,82,.07); color: #f3e8ce; font-weight: 400; letter-spacing: .12em; }
.pillar-matrix > span { color: rgba(255,255,255,.62); font-size: 11px; letter-spacing: .12em; }
.pillar-matrix > i { color: rgba(255,255,255,.42); font-style: normal; }
.pillar-matrix .matrix-corner { color: var(--gold); font: 9px/1 system-ui,sans-serif; letter-spacing: .22em; }
.pillar-matrix [data-shensha-pillar] { display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 0; text-align: center; overflow-wrap: anywhere; }
.pillar-matrix .matrix-spacer { background: rgba(200,166,82,.035); }
.pillar-matrix .stem-branch { min-height: 84px; align-content: center; gap: 7px; }
.pillar-matrix .stem-branch b,
.pillar-matrix .stem-branch em { font-size: 20px; font-weight: 400; line-height: 1.2; }
.pillar-matrix .stem-branch b { color: #f2e6ca; }
.pillar-matrix .stem-branch em { color: rgba(255,255,255,.66); font-style: normal; }
.result-section, .badong-section { margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--line); }
.qiyun-inline { display: flex; align-items: baseline; gap: 14px; margin: 14px 0 18px; color: rgba(255,255,255,.48); font-size: 10px; letter-spacing: .08em; }
.qiyun-inline small { color: var(--gold); letter-spacing: .16em; }
.qiyun-inline b,.qiyun-inline strong { color: rgba(255,255,255,.72); font-size: 11px; font-weight: 400; }
.qiyun-inline span { margin-left: auto; }
.fact-line { display: flex; justify-content: space-between; gap: 20px; margin-top: 18px; padding: 16px 18px; border: 1px solid var(--line); color: rgba(255,255,255,.56); }
.fact-line b { color: rgba(255,255,255,.76); font-weight: 400; }
.fortune-strip { display: grid; grid-template-columns: 84px repeat(10,minmax(112px,1fr)); min-width: 1204px; margin-top: 18px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.fortune-strip > * { min-height: 52px; display: grid; place-items: center; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fortune-strip span { color: var(--gold); font-size: 11px; letter-spacing: .14em; }
.fortune-strip i { color: rgba(255,255,255,.42); font-style: normal; }
.result-actions { display: flex; justify-content: center; margin-top: 32px; }
.result-actions button { padding: 12px 20px; border: 1px solid rgba(200,166,82,.32); background: rgba(3,14,25,.56); color: rgba(255,255,255,.76); cursor: pointer; letter-spacing: .12em; }
.hexagram-pair { display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch; gap: 18px; }
.hexagram-pair article { min-height: 160px; display: grid; align-content: center; justify-items: center; padding: 24px; border: 1px solid var(--line); background: rgba(2,12,22,.34); text-align: center; }
.hexagram-pair small, .qike-pillar-grid small, .void-facts small { color: var(--gold); font: 9px/1 system-ui,sans-serif; letter-spacing: .24em; }
.hexagram-pair h3 { margin: 13px 0 10px; font-size: 28px; font-weight: 400; letter-spacing: .18em; }
.hexagram-pair p { margin: 0; color: rgba(255,255,255,.44); font-size: 11px; letter-spacing: .08em; }
.moving-line { align-self: center; display: grid; gap: 8px; justify-items: center; color: var(--gold); }
.moving-line i { color: rgba(255,255,255,.42); font: 9px/1 system-ui,sans-serif; font-style: normal; letter-spacing: .14em; }
.moving-line b { font-size: 22px; font-weight: 300; }
.qike-fact-layout { display: grid; grid-template-columns: minmax(0,65fr) minmax(230px,35fr); gap: 18px; margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--line); }
.qike-pillar-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: 18px; background: var(--line); }
.qike-pillar-grid article { min-height: 136px; display: grid; align-content: center; justify-items: center; gap: 12px; padding: 16px; background: rgba(3,13,24,.84); }
.qike-pillar-grid b { font-size: clamp(22px,2.1vw,30px); font-weight: 300; white-space: nowrap; }
.qike-pillar-grid span, .void-facts span { color: rgba(255,255,255,.42); font-size: 10px; letter-spacing: .07em; }
.void-facts { align-self: end; display: grid; grid-template-columns: 1fr 1fr; min-height: 136px; border: 1px solid var(--line); background: rgba(9,23,37,.88); }
.void-facts > div { display: grid; align-content: center; gap: 11px; min-width: 0; padding: 20px; background: transparent; }
.void-facts > div + div { border-left: 1px solid var(--line); }
.void-facts b { font-size: 24px; font-weight: 300; }
.badong-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: 18px; background: var(--line); }
.badong-grid span { display: flex; justify-content: space-between; padding: 15px 16px; background: rgba(3,13,24,.84); color: rgba(255,255,255,.68); font-size: 12px; }
.badong-grid i { color: rgba(255,255,255,.38); font-style: normal; }
.depth-page { position: fixed; inset: 0; z-index: 20; visibility: hidden; opacity: 0; pointer-events: none; overflow: hidden; background: #06121f; color: var(--ink); transform-origin: 50% 42%; will-change: transform,opacity; }
.depth-page.is-active { pointer-events: auto; }
.depth-scroll { position: absolute; inset: var(--header-h) 0 0; overflow-y: scroll; overscroll-behavior: contain; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: transparent transparent; pointer-events: none; }
.depth-page.is-scroll-ready .depth-scroll { scrollbar-color: var(--gold-soft) transparent; pointer-events: auto; }
.depth-hero { min-height: min(68vh,720px); display: grid; place-content: center; justify-items: center; padding: 90px 24px 64px; text-align: center; }
.eyebrow { color: var(--gold); font: 10px/1.4 system-ui,sans-serif; letter-spacing: .36em; }
.card-head small { color: var(--gold); font: 9px/1.4 system-ui,sans-serif; letter-spacing: .28em; }
.not-found-page { min-height: 100dvh; overflow: auto; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 50% 12%,rgba(200,166,82,.11),transparent 34%),#06121f; font-family: system-ui,sans-serif; }
.not-found-shell { width: min(560px,100%); padding: clamp(36px,7vw,72px); border: 1px solid var(--line); background: rgba(5,17,29,.92); text-align: center; box-shadow: 0 28px 80px rgba(0,0,0,.28); }
.not-found-shell h1 { margin: 20px 0 14px; font-size: clamp(38px,7vw,64px); font-weight: 300; letter-spacing: .08em; }
.not-found-copy { margin: 0; color: rgba(255,255,255,.58); line-height: 1.8; }
.not-found-home { display: inline-flex; align-items: center; justify-content: center; min-width: 132px; min-height: 44px; margin-top: 32px; padding: 10px 22px; border: 1px solid var(--gold-soft); color: var(--ink); text-decoration: none; letter-spacing: .12em; }
.not-found-home:hover, .not-found-home:focus-visible { border-color: var(--gold); color: #fff; }
.not-found-home:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
.account-view { background: linear-gradient(135deg,#081624,#030c15); }
.account-view::before { content:""; position: fixed; inset: var(--header-h) 0 0; pointer-events:none; background: radial-gradient(circle at 78% 8%,rgba(200,166,82,.09),transparent 32%); }
.account-shell { position: relative; width: min(1120px,88vw); margin: 0 auto; padding: clamp(70px,9vh,110px) 0 64px; }
.account-identity { padding-bottom: 34px; border-bottom: 1px solid var(--line); }
.identity-row { display: flex; justify-content: space-between; gap: 30px; align-items:end; }
.identity-row h1 { margin: 12px 0 8px; font-size: clamp(42px,5vw,72px); font-weight: 300; letter-spacing:.16em; }
.identity-row p { margin: 0; color: rgba(255,255,255,.54); letter-spacing:.08em; }
.identity-row > span { color: var(--gold); font: 10px/1.4 system-ui,sans-serif; letter-spacing:.16em; }
.account-auth { margin-top: 34px; border: 1px solid var(--line); background: rgba(5,17,29,.92); }
.account-auth-status { margin: 0; padding: 14px 20px; border-bottom: 1px solid var(--line); color: rgba(255,255,255,.58); font-size: 12px; }
.account-phone-unavailable { margin: 0; padding: 14px 20px; border-top: 1px solid var(--line); color: rgba(255,255,255,.48); font-size: 12px; }
.account-auth-forms { display: grid; grid-template-columns: 1fr 1fr; }
.account-auth-form { display: grid; gap: 16px; padding: 28px; }
.account-auth-form + .account-auth-form { border-left: 1px solid var(--line); }
.account-auth-form label { display: grid; gap: 8px; color: rgba(255,255,255,.58); font-size: 12px; letter-spacing: .08em; }
.account-auth-form input { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid var(--line); background: rgba(0,0,0,.18); color: white; font: inherit; }
.account-auth-form button, .account-authenticated button { justify-self: start; padding: 11px 18px; border: 1px solid rgba(200,166,82,.5); background: transparent; color: var(--gold); cursor: pointer; }
.account-authenticated { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px; }
.account-authenticated > div { display: grid; gap: 7px; }
.account-authenticated small { color: var(--gold); letter-spacing: .2em; }
.account-authenticated strong { font-size: 20px; font-weight: 400; }
.account-authenticated span { color: rgba(255,255,255,.48); font-size: 11px; overflow-wrap: anywhere; }
.account-auth [hidden] { display: none !important; }
.account-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 34px; background: var(--line); border: 1px solid var(--line); }
.account-card { min-height: 210px; padding: 30px; background: rgba(5,17,29,.92); }
.account-card.span-two { grid-column: 1 / -1; }
.card-head { display:flex; gap:16px; align-items:baseline; padding-bottom:20px; border-bottom:1px solid var(--line); }
.card-head h2 { margin:0; font-size:22px; font-weight:400; letter-spacing:.13em; }
.account-card > p { color:rgba(255,255,255,.53); font-size:13px; line-height:1.8; }
.metric { display:block; margin:22px 0 8px; color:var(--gold); font-size:58px; font-weight:300; }
.account-actions { display:flex; gap:12px; margin-top:24px; }
.account-actions button, .text-action { padding:11px 16px; border:1px solid var(--line); background:transparent; color:rgba(255,255,255,.76); cursor:pointer; }
.text-action { padding-inline:0; border:0; color:var(--gold); }
.preference-row { display:flex; justify-content:space-between; gap:24px; padding:18px 0; border-bottom:1px solid var(--line); color:rgba(255,255,255,.58); }
.preference-row b { color:rgba(255,255,255,.82); font-weight:400; }
.depth-page .page-return { margin-bottom: 42px; }
.review-controls { position: fixed; right: 18px; bottom: 17px; z-index: 35; display: flex; align-items: center; gap: 4px; padding: 5px; background: rgba(3,14,25,.84); border: 1px solid rgba(255,255,255,.13); backdrop-filter: blur(12px); font: 11px/1 system-ui,sans-serif; }
.review-controls span { padding: 0 9px; color: rgba(255,255,255,.48); }
.review-controls button, .review-controls a { padding: 8px 11px; border: 0; background: none; color: rgba(255,255,255,.62); text-decoration: none; cursor: pointer; }
.review-controls button.is-active { background: rgba(200,166,82,.16); color: #fff; }
.review-controls a { border-left: 1px solid var(--line); color: var(--gold); }
.passive-toast { position: fixed; left: 50%; top: 92px; z-index: 50; transform: translate(-50%,-12px); padding: 10px 16px; background: rgba(4,16,29,.92); border: 1px solid var(--line); color: rgba(255,255,255,.76); font-size: 12px; opacity: 0; pointer-events: none; }
@media (560px <= width < 960px) {
  :root { --header-h: 72px; }
  .site-header { grid-template-columns: 104px minmax(0,1fr) 100px; column-gap: 12px; padding: 0 clamp(20px,calc(3.54vw - 2px),32px); background: #06121f; backdrop-filter: none; }
  .brand-mini { min-width: 104px; min-height: 44px; gap: 8px; }
  .brand-mini img { width: 28px; height: 34px; }
  .brand-mini span { display: grid; gap: 0; }
  .brand-mini strong { color: var(--ink); font-size: 18px; font-weight: 500; line-height: 20px; letter-spacing: .08em; }
  .brand-mini small { font: 500 8px/10px system-ui,sans-serif; letter-spacing: .22em; }
  .site-nav { display: grid; width: 100%; min-width: 0; grid-template-columns: repeat(4,minmax(0,1fr)); align-items: stretch; gap: 0; }
  .site-nav button { min-width: 64px; min-height: 44px; padding: 0; font-size: 14px; white-space: nowrap; }
  .site-nav button::after { bottom: 10px; }
  .account-link { width: 100px; min-height: 44px; justify-content: flex-end; overflow: visible; white-space: nowrap; }
  .account-link span { display: grid; }
  .account-link::after { bottom: 10px; }
}
@media (max-width: 980px) {
  .home-brand { top: 40%; width: min(70vw,560px); }
  .edge-entry { top: 57%; width: 36vw; padding-inline: 22px; }
  .birth-grid { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 640px) {
  .concept-note { display:none; }
  body.is-page-transitioning .inner-scroll select:not(.selection-picker-source), body.is-page-transitioning .inner-scroll .selection-picker-trigger { pointer-events: auto; }
  .home-brand { top: 38%; width: 92vw; }
  .luopan { width: 74%; height: 74%; }
  .brand-copy h1 { font-size: 54px; }
  .edge-entry { top: auto; bottom: 122px; width: 48%; min-height: 84px; gap: 7px; padding: 14px 12px; }
  .edge-name { font-size: 15px; }
  .home-hint { bottom: 84px; width: 100%; text-align:center; font-size: 9px; }
  .home-section { min-height: auto; padding: 72px 14px; }
  .home-section-head,.method-compare,.result-guide-grid { width: 100%; }
  .method-compare,.result-guide-grid { grid-template-columns: 1fr; }
  .method-compare article,.result-guide-grid > * { min-height: 210px; padding: 28px 22px; }
  .result-guide-grid aside { grid-column: auto; grid-template-columns: 1fr; gap: 8px; }
  .inner-scroll { padding: 38px 14px 120px; }
  .inner-heading, .reading-surface { width: 100%; }
  .inner-heading { margin-bottom: 18px; }
  .inner-heading.align-right { text-align:left; }
  .inner-heading h1 { font-size: 36px; }
  .reading-surface { padding: 22px 17px; backdrop-filter: none; }
  .surface-head, .section-label, .form-tail { align-items:flex-start; flex-direction:column; gap: 8px; }
  .two-up, .birth-grid, .location-grid, .time-choice { grid-template-columns: 1fr; }
  .birth-grid { grid-template-columns: 1fr 1fr; }
  .location-grid { grid-template-columns: 1fr; }
  .cast-preview { grid-template-columns: 1fr 1fr; }
  .result-head, .fact-line { align-items:flex-start; flex-direction:column; }
  .result-status { align-self:flex-start; }
  .hexagram-pair { grid-template-columns: 1fr; }
  .moving-line { grid-auto-flow:column; justify-content:center; }
  .moving-line b { transform: rotate(90deg); }
  .qike-fact-layout { grid-template-columns: 1fr; }
  .qike-pillar-grid, .badong-grid { grid-template-columns: 1fr 1fr; }
  .void-facts { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .form-tail button { width:100%; }
  .guide-summary summary span { display:grid; gap:4px; }
  .review-controls { left: 50%; right: auto; bottom: 12px; width: calc(100% - 28px); justify-content:center; transform: translateX(-50%); }
  .review-controls span { display:none; }
  .account-grid, .account-auth-forms { grid-template-columns: 1fr; }
  .account-auth-form + .account-auth-form { border-left: 0; border-top: 1px solid var(--line); }
  .account-card { min-height: 150px; padding: 22px 18px; }
  .account-card.span-two { grid-column: auto; }
  .identity-row, .preference-row { align-items:flex-start; flex-direction:column; }
  .account-shell, .page-return { width: calc(100% - 28px); }
}
@media (width < 560px) {
  :root { --header-h: 104px; }
  .site-header { grid-template-columns: minmax(104px,1fr) auto; grid-template-rows: 56px 48px; grid-template-areas: "brand account" "nav nav"; column-gap: 0; padding: 0; background: #06121f; backdrop-filter: none; }
  .brand-mini { grid-area: brand; min-width: 104px; min-height: 44px; gap: 8px; margin-left: clamp(12px,calc(5.7vw - 6px),16px); }
  .brand-mini img { width: 28px; height: 34px; }
  .brand-mini span { display: grid; gap: 0; }
  .brand-mini strong { color: var(--ink); font-size: 18px; font-weight: 500; line-height: 20px; letter-spacing: .08em; }
  .brand-mini small { font: 500 8px/10px system-ui,sans-serif; letter-spacing: .22em; }
  .site-nav { grid-area: nav; display: grid; width: 100%; grid-template-columns: repeat(3,minmax(0,1fr)); align-self: stretch; justify-self: stretch; align-items: stretch; gap: 0; padding: 0 clamp(8px,calc(5.7vw - 10px),12px); border-top: 1px solid rgba(245,243,238,.1); }
  .site-nav button { display: grid; width: 100%; min-width: 0; min-height: 48px; padding: 0; place-items: center; font-size: 13px; line-height: 1; white-space: nowrap; }
  .site-nav button::after { bottom: 3px; }
  .account-link { grid-area: account; align-self: center; width: auto; height: 44px; min-height: 44px; margin-right: clamp(12px,calc(5.7vw - 6px),16px); justify-content: flex-end; white-space: nowrap; }
  .account-link span { display: grid; }
  .account-link::after { bottom: 0; }
}
@media (max-width: 700px) {
  .matrix-scroll { overflow-x: hidden; }
  .pillar-matrix { grid-template-columns: 54px repeat(4,minmax(0,1fr)); min-width: 0; }
  .pillar-matrix > * { min-width: 0; min-height: 44px; padding: 7px 3px; }
  .pillar-matrix > b,.pillar-matrix > span { font-size: 10px; letter-spacing: .03em; text-align: center; }
  .pillar-matrix > i { font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; text-align: center; }
  .pillar-matrix .stem-branch { min-height: 72px; gap: 5px; }
  .pillar-matrix .stem-branch b,.pillar-matrix .stem-branch em { font-size: 20px; }
  .pillar-matrix .formal-placeholder { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* W06v2 current beta content framework correction */
.birth-rule-note { margin: 13px 0 0; color: rgba(255,255,255,.56); font-size: 11px; line-height: 1.7; letter-spacing: .08em; }
.form-tail-centered { justify-content: center; align-items: center; }
.form-tail-centered button { min-width: 220px; }

.guide-summary { width: min(760px,100%); margin: -10px auto 34px; border: 1px solid rgba(200,166,82,.24); background: rgba(3,14,25,.38); }
.guide-summary summary { position: relative; justify-content: center; min-height: 92px; padding: 16px 22px 38px; text-align: center; }
.guide-summary summary > span { justify-content: center; }
.guide-summary .guide-action { position: absolute; left: 50%; bottom: 12px; width: max-content; transform: translateX(-50%); }
.guide-summary .guide-action span { display: inline-block; }
.guide-summary summary:focus-visible { outline: 1px solid var(--gold); outline-offset: 4px; }
.guide-body { padding: 0 22px 20px; }
.restored-session-notice { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 22px; margin: -12px 0 30px; padding: 20px 22px; border: 1px solid rgba(200,166,82,.38); background: rgba(16,29,39,.82); }
.restored-session-notice[hidden] { display: none; }
.restored-session-notice small { color: var(--gold); font-size: 9px; letter-spacing: .18em; }
.restored-session-notice h2 { margin: 7px 0 5px; color: rgba(255,255,255,.88); font-size: 18px; font-weight: 400; }
.restored-session-notice p { margin: 0; color: rgba(255,255,255,.56); font-size: 11px; }
.restored-session-notice time { color: #f1dfb0; }
.restored-session-actions { display: flex; gap: 9px; }
.restored-session-actions button { min-width: 112px; padding: 11px 14px; border: 1px solid rgba(200,166,82,.34); background: rgba(3,14,25,.72); color: rgba(255,255,255,.78); cursor: pointer; }
.restored-session-actions button:last-child { background: rgba(200,166,82,.16); color: #fff6df; }
.restored-session-actions button:focus-visible { outline: 1px solid var(--gold); outline-offset: 3px; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.question-head h2 { margin-top: 0; }
.question-field textarea { margin-top: 0; }
.time-choice-candidate { grid-template-columns: minmax(220px,.62fr) minmax(0,1.38fr); align-items: stretch; }
.manual-time-candidate { padding: 14px 16px; border: 1px solid rgba(255,255,255,.12); background: rgba(1,9,17,.24); }
.manual-time-candidate legend { padding: 0 6px; color: rgba(255,255,255,.42); font-size: 10px; }
.manual-time-candidate > div { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }
.manual-time-candidate label { color: rgba(255,255,255,.36); font-size: 10px; }
.manual-time-candidate select { margin-top: 6px; padding: 9px 8px; color: rgba(255,255,255,.34); }

.cast-status-line { display: flex; justify-content: space-between; gap: 20px; margin: 18px 0 10px; color: rgba(255,255,255,.54); font-size: 11px; letter-spacing: .08em; }
.cast-status-line span { color: var(--gold); }
.cast-status-line b { font-weight: 400; }
.cast-matrix { border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.cast-round { position: relative; display: grid; grid-template-columns: repeat(4,minmax(108px,1fr)); min-width: 720px; padding-left: 180px; background: rgba(1,9,17,.25); }
.cast-round legend { position: absolute; width: 180px; height: 100%; display: flex; align-items: center; padding: 0 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: rgba(255,255,255,.70); }
.cast-round label { min-height: 82px; display: grid; place-content: center; gap: 7px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: center; cursor: pointer; transition: background .18s ease,color .18s ease,box-shadow .18s ease; }
.cast-round input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
.cast-round label b { font-size: 17px; font-weight: 400; letter-spacing: .08em; }
.cast-round label small { color: rgba(255,255,255,.38); font-size: 10px; }
.cast-round label:has(input:focus-visible) { outline: 1px solid var(--gold); outline-offset: -3px; }
.cast-round label:has(input:checked) { background: rgba(200,166,82,.10); box-shadow: inset 0 -2px 0 var(--gold); color: #fff; }
.cast-round label:has(input:checked) small { color: var(--gold); }
.cast-round.is-complete legend { color: #f2dfad; }
.cast-actions { display: flex; justify-content: center; gap: 12px; margin-top: 24px; }
.cast-actions button { min-width: 150px; padding: 13px 18px; border: 1px solid rgba(200,166,82,.34); background: rgba(3,14,25,.62); color: rgba(255,255,255,.76); cursor: pointer; letter-spacing: .1em; }
.cast-actions button:last-child { min-width: 250px; background: rgba(200,166,82,.17); color: #fff6df; }
.cast-actions button:disabled { border-color: rgba(255,255,255,.10); background: rgba(255,255,255,.025); color: rgba(255,255,255,.28); cursor: not-allowed; }
.cast-actions button:focus-visible,.option-control:focus-visible,.interpretation-confirm button:focus-visible { outline: 1px solid var(--gold); outline-offset: 3px; }
.pre-result-note { margin: 14px 0 0; color: rgba(255,255,255,.44); font-size: 10px; text-align: right; letter-spacing: .08em; }

.qike-fact-layout + .hexagram-pair { margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--line); }
.void-facts { grid-template-columns: 1fr 1fr; }
.relation-section,.interpretation-flow { margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--line); }
.relation-map { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: 18px; background: var(--line); }
.relation-map article { min-height: 156px; display: grid; align-content: center; gap: 10px; padding: 18px; background: rgba(3,13,24,.84); }
.relation-map small { color: var(--gold); font-size: 10px; letter-spacing: .18em; }
.relation-map article > div { display: grid; grid-template-columns: 48px 1fr; align-items: center; gap: 10px; padding-top: 9px; border-top: 1px solid rgba(255,255,255,.10); }
.relation-map b { color: rgba(255,255,255,.66); font-size: 15px; font-weight: 300; text-align: right; }
.relation-map span { color: rgba(255,255,255,.42); font-size: 10px; }
.relation-tabs { display: flex; justify-content: center; gap: 28px; margin-top: 18px; border-bottom: 1px solid var(--line); }
.relation-tabs button { position: relative; min-width: 96px; padding: 10px 14px 13px; border: 0; background: transparent; color: rgba(255,255,255,.48); cursor: pointer; }
.relation-tabs button::after { content: ""; position: absolute; left: 50%; bottom: -1px; width: 0; height: 2px; background: var(--gold); transform: translateX(-50%); transition: width .2s ease; }
.relation-tabs button.is-active,.relation-tabs button[aria-selected="true"] { color: #fff; }
.relation-tabs button.is-active::after,.relation-tabs button[aria-selected="true"]::after { width: 34px; }
.relation-tabs button:focus-visible { outline: 1px solid var(--gold); outline-offset: 3px; }
.relation-list { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 1px; margin-top: 16px; background: var(--line); }
.relation-list[hidden] { display: none; }
.relation-list > span { min-height: 72px; display: grid; align-content: center; gap: 6px; padding: 14px 16px; background: rgba(3,13,24,.84); }
.relation-list b { color: rgba(255,255,255,.68); font-size: 12px; font-weight: 400; }
.relation-list i { color: rgba(255,255,255,.38); font-size: 10px; font-style: normal; }
.content-placeholder { display: grid; gap: 8px; margin-top: 18px; padding: 20px; border: 1px solid var(--line); background: rgba(2,12,22,.30); }
.content-placeholder b { color: rgba(255,255,255,.74); font-weight: 400; }
.content-placeholder span { color: rgba(255,255,255,.44); font-size: 11px; line-height: 1.8; }
.content-placeholder.long-copy { min-height: 150px; align-content: start; }
.selection-block + .selection-block { margin-top: 26px; }
.option-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 16px; }
.option-grid-two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.option-control { min-height: 46px; padding: 10px 14px; border: 1px solid var(--line); background: rgba(2,12,22,.32); color: rgba(255,255,255,.65); cursor: pointer; letter-spacing: .07em; }
.option-control.is-selected,.option-control[aria-pressed="true"] { border-color: var(--gold-soft); background: rgba(200,166,82,.10); color: #fff; box-shadow: inset 0 -2px 0 var(--gold); }
.option-control:disabled { color: rgba(255,255,255,.25); cursor: not-allowed; }
.interpretation-confirm { display: flex; align-items: center; justify-content: center; gap: 24px; margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--line); }
.interpretation-confirm p { margin: 0; color: rgba(255,255,255,.48); font-size: 11px; }
.interpretation-confirm button { min-width: 180px; padding: 13px 18px; border: 1px solid var(--gold-soft); background: rgba(200,166,82,.15); color: #fff6df; cursor: pointer; letter-spacing: .11em; }
.paid-placeholder { margin-top: 24px; padding: 28px; border: 1px solid rgba(200,166,82,.28); background: linear-gradient(135deg,rgba(200,166,82,.07),rgba(2,12,22,.26)); }
.paid-placeholder small { color: var(--gold); letter-spacing: .22em; }
.paid-placeholder h3 { margin: 12px 0 8px; font-size: 20px; font-weight: 400; letter-spacing: .12em; }
.paid-placeholder p { margin: 0; color: rgba(255,255,255,.48); font-size: 11px; line-height: 1.8; }

@media (prefers-reduced-motion: no-preference) {
  .guide-summary:not([open]) { animation: guideBreath 4.8s ease-in-out infinite; }
  .guide-summary:not([open]) .guide-action-open { animation: guideHint 2.8s ease-in-out infinite; }
  @keyframes guideBreath { 0%,100% { border-color: rgba(200,166,82,.24); box-shadow: 0 0 0 rgba(200,166,82,0); } 50% { border-color: rgba(218,186,104,.40); box-shadow: 0 0 24px rgba(200,166,82,.055); } }
  @keyframes guideHint { 0%,72%,100% { opacity: .58; transform: translateY(0); } 82% { opacity: 1; transform: translateY(2px); } }
}
@media (max-width: 980px) {
  .cast-matrix { overflow-x: auto; scrollbar-width: thin; scrollbar-color: var(--gold-soft) transparent; }
  .option-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 640px) {
  .guide-summary summary { justify-content: center; text-align: center; }
  .guide-summary summary > span { justify-content: center; }
  .restored-session-notice { grid-template-columns: 1fr; padding: 17px; }
  .restored-session-actions { align-items: stretch; flex-direction: column; }
  .restored-session-actions button { width: 100%; }
  .time-choice-candidate { grid-template-columns: 1fr; }
  .manual-time-candidate > div { grid-template-columns: 1fr 1fr; }
  .cast-round { grid-template-columns: repeat(4,minmax(96px,1fr)); min-width: 550px; padding-left: 130px; }
  .cast-round legend { width: 130px; }
  .cast-actions,.interpretation-confirm { align-items: stretch; flex-direction: column; }
  .cast-actions button,.cast-actions button:last-child,.interpretation-confirm button { width: 100%; min-width: 0; }
  .relation-map,.option-grid { grid-template-columns: 1fr 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .guide-summary:not([open]) { animation: none !important; }
  .guide-summary:not([open]) .guide-action-open { animation: none !important; }
}

/* Authorized Formal binding, accessibility, and Local Beta deltas. */
.form-note { margin: 14px 0 0; color: rgba(255,255,255,.54); font-size: 11px; line-height: 1.7; letter-spacing: .07em; }
.empty { padding: 22px; border: 1px solid var(--line); background: rgba(2,12,22,.32); color: rgba(255,255,255,.62); line-height: 1.8; }
.empty.error,.jinkou-error { border-color: rgba(210,132,105,.42); color: #f1d0c2; }
.empty small { display: block; margin-top: 8px; color: rgba(255,255,255,.42); }
.fact-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; margin: 26px 0; background: var(--line); }
.fact-summary article { min-height: 128px; display: grid; align-content: center; gap: 9px; padding: 18px; background: rgba(3,13,24,.84); }
.fact-summary small { color: var(--gold); font: 9px/1.3 system-ui,sans-serif; letter-spacing: .17em; }
.fact-summary strong { font-size: 15px; font-weight: 400; line-height: 1.55; }
.fact-summary span { color: rgba(255,255,255,.46); font-size: 10px; line-height: 1.65; }
.fortune-strip article { min-height: 78px; display: grid; place-content: center; gap: 7px; padding: 9px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: center; }
.fortune-strip .dayun-card { position: relative; min-height: 100px; padding-top: 25px; }
.fortune-strip article small,.fortune-strip article span { color: rgba(255,255,255,.42); font-size: 9px; }
.fortune-strip article strong { color: #f3e8ce; font-size: 18px; font-weight: 400; }
.fortune-strip article b { color: rgba(255,255,255,.72); font-size: 14px; font-weight: 400; }
.fortune-strip article .dayun-years { color: #ead7a6; font-size: 12px; letter-spacing: .02em; white-space: nowrap; }
.dayun-timeline-shell,.flow-year-timeline-shell { position: relative; min-width: 0; max-width: 100%; overflow: hidden; }
.dayun-timeline-shell::before,.dayun-timeline-shell::after,.flow-year-timeline-shell::before,.flow-year-timeline-shell::after { content: ""; position: absolute; z-index: 2; top: 18px; bottom: 0; width: 80px; pointer-events: none; }
.dayun-timeline-shell::before,.flow-year-timeline-shell::before { left: 0; background: linear-gradient(90deg,#071522,transparent); }
.dayun-timeline-shell::after,.flow-year-timeline-shell::after { right: 0; background: linear-gradient(-90deg,#071522,transparent); }
[data-horizontal-timeline] { width: 100%; min-width: 0; cursor: grab; touch-action: pan-x; overscroll-behavior-inline: contain; }
[data-horizontal-timeline].is-dragging { cursor: grabbing; user-select: none; }
[data-horizontal-timeline]:focus-visible { outline: 1px solid var(--gold-soft); outline-offset: -1px; }
.flow-year-timeline { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(112px,132px); gap: 8px; margin-top: 18px; padding: 1px 80px 10px; scroll-snap-type: x proximity; }
.flow-year-card { position: relative; min-height: 110px; display: grid; align-content: center; justify-items: center; gap: 8px; padding: 11px 10px; border: 1px solid var(--line); background: rgba(3,13,24,.84); text-align: center; scroll-snap-align: center; }
.flow-year-card small { color: var(--gold); font-size: 10px; letter-spacing: .12em; }
.flow-year-card strong { color: #f3e8ce; font-size: 21px; font-weight: 400; letter-spacing: .1em; }
.flow-year-card span { color: rgba(255,255,255,.50); font-size: 9px; line-height: 1.55; white-space: nowrap; }
.flow-year-card em,.dayun-card em { position: absolute; top: 7px; right: 7px; color: #f0dda6; font-size: 8px; font-style: normal; letter-spacing: .08em; }
.flow-year-card.is-current,.dayun-card.is-current { border-color: rgba(224,196,119,.72); background: linear-gradient(180deg,rgba(200,166,82,.13),rgba(3,13,24,.90)); box-shadow: inset 0 0 0 1px rgba(200,166,82,.12); }
.flow-year-range-notice { margin: 14px 0 0; padding: 10px 12px; border-left: 2px solid rgba(200,166,82,.46); background: rgba(200,166,82,.06); color: rgba(255,255,255,.58); font-size: 11px; line-height: 1.7; }
.pillar-matrix .formal-placeholder { color: rgba(255,255,255,.30); font-size: 10px; letter-spacing: .06em; }
.pillar-matrix .stem-branch .element-wood { color: #8fb39b; }
.pillar-matrix .stem-branch .element-fire { color: #c98172; }
.pillar-matrix .stem-branch .element-earth { color: #c4aa78; }
.pillar-matrix .stem-branch .element-metal { color: #d6d3c6; }
.pillar-matrix .stem-branch .element-water { color: #7fa7bb; }
.l1-section { display: grid; grid-template-columns: 1fr; gap: 1px; background: transparent; }
.l1-section .section-label { grid-column: 1/-1; padding: 0 0 18px; background: var(--surface); }
.l1-section article { min-height: 0; padding: 22px; border: 1px solid var(--line); background: rgba(3,13,24,.88); }
.l1-section h3 { margin: 0 0 12px; color: #f1dfb0; font-size: 16px; font-weight: 400; }
.l1-section p,.l1-section li { color: rgba(255,255,255,.58); font-size: 12px; line-height: 1.85; }
.warning-card { grid-column: 1/-1; }
.geju-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--line); }
.geju-grid article { min-height: 132px; }
.geju-grid article:only-child { grid-column: 1/-1; }
.result-information-stack { gap: 12px; }
.current-time-card { grid-template-columns: 1fr auto; align-items: center; cursor: default; }
.current-time-card > div { display: grid; gap: 7px; }
.current-time-card span { color: var(--gold); font-size: 10px; }
.current-time-card button { min-width: 118px; padding: 11px 14px; border: 1px solid var(--gold-soft); background: rgba(200,166,82,.12); cursor: pointer; }
.current-time-card button:disabled { color: rgba(255,255,255,.34); cursor: not-allowed; }
.manual-cast[data-cast-state="inactive"] .cast-matrix { opacity: .55; }
.hexagram-lines { width: min(100%,260px); display: grid; gap: 8px; margin: 14px auto; }
.hexagram-line { display: grid; grid-template-columns: 38px 1fr 72px; align-items: center; gap: 8px; color: rgba(255,255,255,.46); font-size: 9px; }
.yao-line { display: flex; justify-content: center; gap: 8px; }
.yao-line .solid,.yao-line .broken { display: block; height: 5px; background: #e8d89f; }
.yao-line .solid { width: 88px; }
.yao-line .broken { width: 38px; }
.hexagram-line.moving .yao-line .solid,.hexagram-line.moving .yao-line .broken { background: var(--gold); }
.logic-tags,.moving-line-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 10px; }
.logic-tag { padding: 6px 8px; border: 1px solid var(--line); color: rgba(255,255,255,.55); font-size: 9px; }
.hexagram-name { color: #f3e8ce !important; font-size: 18px !important; }
.method-note { color: rgba(255,255,255,.42) !important; font-size: 10px !important; }
.hexagram-pair article { align-content: start; justify-items: stretch; }
.hexagram-with-rail { position: relative; width: 100%; display: grid; grid-template-columns: minmax(170px,.9fr) minmax(150px,1.1fr); align-items: center; gap: 14px; text-align: left; }
.hexagram-core { min-width: 0; text-align: center; }
.four-image-rail { display: grid; align-content: center; gap: 7px; min-width: 0; padding-left: 13px; border-left: 1px solid rgba(200,166,82,.22); }
.four-image-item { min-height: 52px; display: grid; grid-template-columns: minmax(34px,auto) 28px minmax(24px,1fr) auto; align-items: center; gap: 7px; padding: 7px 9px; border: 1px solid rgba(255,255,255,.10); background: rgba(3,13,24,.72); }
.four-image-item small { color: var(--gold); font-size: 8px; letter-spacing: .08em; }
.four-image-item .trigram-glyph { color: #e1ce91; font: 23px/1 serif; text-align: center; }
.four-image-item strong { color: rgba(255,255,255,.78); font-size: 11px; font-weight: 400; }
.four-image-item i { color: rgba(255,255,255,.48); font-size: 9px; font-style: normal; }
.relation-annotated-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; }
.relation-annotated-pair > article { min-width: 0; padding: 18px; border: 1px solid var(--line); background: rgba(2,12,22,.38); }
.relation-annotated-pair > article > small { color: var(--gold); font-size: 8px; letter-spacing: .18em; }
.relation-annotated-pair > article > h3 { margin: 8px 0 16px; color: #f1dfb0; font-size: 17px; font-weight: 400; }
.hexagram-with-rail.is-relation-annotated { min-height: 320px; grid-template-columns: minmax(130px,.72fr) minmax(92px,.48fr) minmax(148px,.8fr); padding: 10px; border: 1px solid rgba(200,166,82,.18); background: radial-gradient(circle at 60% 50%,rgba(200,166,82,.055),transparent 52%); }
.is-relation-annotated .hexagram-core { grid-column: 1; grid-row: 1; }
.is-relation-annotated .four-image-rail { grid-column: 3; grid-row: 1; }
.relation-label-lane { position: relative; z-index: 3; grid-column: 2; grid-row: 1; display: grid; align-content: center; gap: 10px; }
.relation-lane-label { display: grid; gap: 3px; padding: 6px 5px; border: 1px solid rgba(255,255,255,.11); border-left-width: 2px; background: rgba(7,21,34,.94); color: rgba(255,255,255,.76); font-size: 9px; line-height: 1.35; text-align: center; }
.relation-lane-label b { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 3px; font-weight: 400; }
.relation-lane-label em { color: var(--gold); font-style: normal; }
.relation-lane-label i { color: rgba(255,255,255,.42); font-size: 8px; font-style: normal; }
.relation-label-lane .relation-sheng { border-left-color: #8fb39b; }
.relation-label-lane .relation-ke { border-left-color: #c98172; }
.relation-label-lane .relation-bihe { border-left-color: #d6c48f; }
.relationship-overlay { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.relationship-overlay marker path { fill: rgba(226,207,151,.82); }
.relation-path { fill: none; stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.relation-sheng { stroke: #8fb39b; }
.relation-ke { stroke: #c98172; }
.relation-bihe { stroke: #d6c48f; stroke-dasharray: 3 2; }
.relation-text-fallback { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 1px; margin-top: 12px; background: var(--line); }
.relation-text-fallback { gap: 8px; background: transparent; }
.relation-text-fallback > span { min-height: 72px; display: grid; align-content: center; gap: 6px; padding: 14px 16px; border: 1px solid var(--line); background: rgba(3,13,24,.84); }
.relation-text-fallback b { color: rgba(255,255,255,.68); font-size: 12px; font-weight: 400; }
.relation-text-fallback i { color: rgba(255,255,255,.38); font-size: 10px; font-style: normal; }
button:disabled { cursor: not-allowed; opacity: .48; }
.standard-report-action { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 24px; margin-top: 30px; padding: 24px; border: 1px solid rgba(200,166,82,.28); background: linear-gradient(135deg,rgba(200,166,82,.08),rgba(2,12,22,.34)); }
.standard-report-action small { color: var(--gold); font-size: 9px; letter-spacing: .18em; }
.standard-report-action h2 { margin: 7px 0; font-size: 18px; font-weight: 400; }
.standard-report-action p { margin: 0; color: rgba(255,255,255,.52); font-size: 11px; line-height: 1.7; }
.standard-report-action button,.history-card button,.feedback-form button { padding: 12px 16px; border: 1px solid var(--gold-soft); background: rgba(200,166,82,.13); color: #fff6df; cursor: pointer; }
.standard-report-result { grid-column: 1 / -1; display: grid; gap: 14px; min-width: 0; padding-top: 22px; border-top: 1px solid rgba(200,166,82,.22); }
.standard-report-result[hidden] { display: none; }
.standard-report-result > header { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; }
.standard-report-result > header h3 { margin: 0; color: #fff6df; font-size: 18px; font-weight: 400; }
.standard-report-result > header span { color: var(--gold); font-size: 9px; letter-spacing: .12em; }
.standard-report-result article { padding: 16px; border: 1px solid rgba(255,255,255,.08); background: rgba(2,12,22,.28); }
.standard-report-result article h4 { margin: 0 0 9px; color: rgba(255,255,255,.72); font-size: 12px; font-weight: 500; }
.standard-report-result article p { margin: 7px 0 0; color: rgba(255,255,255,.72); font-size: 12px; line-height: 1.85; overflow-wrap: anywhere; }
.history-card { align-content: start; }
.history-list { display: grid; gap: 8px; margin-top: 16px; }
.history-item { width: 100%; text-align: left; }
.history-detail { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.history-detail > p { color: rgba(255,255,255,.48); font-size: 10px; }
.history-detail pre { max-height: 360px; overflow: auto; padding: 14px; border: 1px solid var(--line); background: rgba(2,12,22,.58); color: rgba(255,255,255,.72); font: 10px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.feedback-form { display: grid; gap: 10px; margin-top: 16px; }
.feedback-form label { display: grid; gap: 8px; color: rgba(255,255,255,.58); font-size: 11px; }
.feedback-form textarea { resize: vertical; padding: 12px; border: 1px solid var(--line); background: rgba(2,12,22,.52); color: #fff; }
.feedback-form p { margin: 0; color: rgba(255,255,255,.52); font-size: 10px; }
.data-source-notice a { color: #ead7a6; text-underline-offset: 3px; }
.data-source-notice a:focus-visible { outline: 1px solid var(--gold); outline-offset: 3px; }

@media (max-width: 980px) {
  .fact-summary { grid-template-columns: repeat(2,1fr); }
  .relation-annotated-pair { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .standard-report-action { grid-template-columns: 1fr; }
  .standard-report-action button { width: 100%; }
  .standard-report-result > header { align-items: flex-start; flex-direction: column; }
  .fact-summary,.l1-section,.geju-grid { grid-template-columns: 1fr; }
  .current-time-card { grid-template-columns: 1fr; }
  .l1-section .section-label,.warning-card { grid-column: auto; }
  .hexagram-with-rail { grid-template-columns: minmax(126px,.8fr) minmax(138px,1.2fr); gap: 7px; }
  .hexagram-with-rail.is-relation-annotated { min-height: 0; grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto; gap: 14px; padding: 14px 10px 10px; }
  .is-relation-annotated .hexagram-core { grid-column: 1; grid-row: 1; }
  .is-relation-annotated .four-image-rail { display: none; }
  .four-image-rail { gap: 5px; padding-left: 7px; }
  .four-image-item { min-height: 52px; grid-template-columns: 24px minmax(28px,1fr) auto; gap: 4px; padding: 5px; }
  .four-image-item small { grid-column: 1 / -1; }
  .four-image-item .trigram-glyph { font-size: 19px; }
  .relation-annotated-pair > article { padding: 13px; }
  .relation-label-lane { position: static; z-index: 3; grid-column: 1; grid-row: 2; grid-template-columns: 1fr; gap: 7px; padding-top: 12px; border-top: 1px solid rgba(200,166,82,.18); }
  .relationship-overlay { display: none; }
  .relation-lane-label { padding: 9px 10px; font-size: 10px; text-align: left; }
  .relation-lane-label b { grid-template-columns: minmax(54px,1fr) 20px minmax(54px,1fr); }
  .relation-lane-label b span:last-child { text-align: right; }
  .relation-lane-label i { font-size: 9px; text-align: center; }
  .relation-context .relation-text-fallback { display: none; }
}
@media (max-width: 640px) {
  .cast-matrix { overflow-x: hidden; }
  .cast-round { grid-template-columns: repeat(4,minmax(0,1fr)); min-width: 0; padding-left: 56px; }
  .cast-round legend { width: 56px; padding: 0 5px; font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
  .cast-round label { min-width: 0; min-height: 64px; gap: 4px; padding: 6px 2px; }
  .cast-round label b { font-size: 15px; }
  .dayun-timeline-shell::before,.dayun-timeline-shell::after,.flow-year-timeline-shell::before,.flow-year-timeline-shell::after { width: 48px; }
  .flow-year-timeline { padding-inline: 48px; }
}
