/* One final shared layer for all public documents and app views. */
:root body.fable-page[data-site-identity] {
  --si-paper:#fff; --si-bg:#f5f7fb; --si-ink:#172a43; --si-muted:#52647a; --si-rule:#dbe3ee;
  --si-blue:#175cdb; --si-soft:#eaf1ff; --si-coral:#a64120; --si-coral-soft:#fff0e7;
  --si-hero:#173653; --si-hero-ink:#fff; --si-hero-muted:#ceddea; --si-highlight:#ffd2aa;
  --mm-bg:var(--si-bg); --mm-paper:var(--si-paper); --mm-ink:var(--si-ink); --mm-muted:var(--si-muted); --mm-line:var(--si-rule); --mm-blue:var(--si-blue); --mm-soft:var(--si-soft);
  --content-page:var(--si-bg); --content-ink:var(--si-ink); --content-muted:var(--si-muted); --content-surface:var(--si-paper); --content-surface-soft:var(--si-soft); --content-line:var(--si-rule); --content-water:var(--si-blue); --content-radius:18px;
  --content-caution:var(--si-coral-soft); --content-caution-ink:var(--si-coral); --fable-canvas:var(--si-bg);
  color:var(--si-ink); background:var(--si-bg); font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif; font-size:16px; line-height:1.65;
}
:root[data-fable-scheme="dark"] body.fable-page[data-site-identity] {
  --si-paper:#182a40; --si-bg:#0d1b2c; --si-ink:#eff5ff; --si-muted:#b6c9df; --si-rule:#39516d;
  --si-blue:#9ac3ff; --si-soft:#213957; --si-coral:#ffcfad; --si-coral-soft:#412c27;
  --si-hero:#1b405b; --si-hero-muted:#d1e1eb; --si-highlight:#ffd2aa;
}
:root body.fable-page[data-site-identity] :is(.fable-shell,.app-shell) { width:min(1184px,100%); max-width:1184px; padding-inline:clamp(16px,3vw,32px); margin-inline:auto; }
:root body.fable-page[data-site-identity] .site-header { display:flex; flex-wrap:nowrap; align-items:center; gap:8px; min-height:76px; padding:8px 0; margin:0 0 8px; border:0; border-radius:0; box-shadow:none; overflow:visible; background:transparent; }
:root body.fable-page[data-site-identity] .site-header .site-brand { display:flex; flex:1 1 auto; min-width:0; align-items:center; gap:9px; padding:0; margin:0; text-decoration:none; white-space:normal; color:var(--si-ink); }
:root body.fable-page[data-site-identity] .site-brand::before { display:none; }
:root body.fable-page[data-site-identity] .site-brand > img { width:30px; height:30px; flex:0 0 30px; border-radius:9px; }
:root body.fable-page[data-site-identity] .site-brand .si-brand-copy { display:flex; flex-direction:column; gap:1px; min-width:0; margin:0; }
:root body.fable-page[data-site-identity] .si-brand-copy .brand-name { color:var(--si-ink); font-family:inherit; font-size:24px; line-height:1.1; font-weight:800; letter-spacing:-.02em; }
:root body.fable-page[data-site-identity] .si-brand-copy small { display:block; font-family:inherit; font-size:12px; font-weight:500; line-height:1.4; letter-spacing:0; color:var(--si-muted); }
:root body.fable-page[data-site-identity] .site-header :is(.site-menu,.fable-display-settings) { margin:0; flex:0 0 auto; border:0; }
:root body.fable-page[data-site-identity] .site-header :is(.site-menu,.fable-display-settings)>summary { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px; font-size:14px; color:var(--si-ink); border:1px solid var(--si-rule); border-radius:12px; background:var(--si-paper); }
:root body.fable-page[data-site-identity] :is(.site-menu-links,.fable-port-links) { background:var(--si-paper); border-color:var(--si-rule); }
:root body.fable-page[data-site-identity] .journey-context { border:0; margin:0 0 12px; min-height:40px; gap:8px 16px; }
:root body.fable-page[data-site-identity] .journey-tabs { background:var(--si-paper); border-color:var(--si-rule); }
:root body.fable-page[data-site-identity] .journey-tabs a[aria-current="page"] { box-shadow:inset 0 -3px var(--si-blue); background:var(--si-soft); }
/* The tide name and squid interpretation, rather than an arbitrary chart cursor, lead the page. */
:root body.fable-page[data-site-identity] [data-minimal-modern] { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
:root body.fable-page[data-site-identity] [data-minimal-modern] > * { grid-column:auto; grid-row:auto; }
:root body.fable-page[data-site-identity] .hp-canvas-date { margin:0; min-height:40px; }
:root body.fable-page[data-site-identity] .hp-heading { margin:0; padding:4px 0; }
:root body.fable-page[data-site-identity] .hp-heading :is(h1,h2) { font-size:clamp(1.5rem,3vw,2.25rem); }
:root body.fable-page[data-site-identity] .si-tide-hero { position:relative; min-width:0; padding:18px; overflow:hidden; color:var(--si-hero-ink); background:var(--si-hero); border-radius:22px; border:1px solid transparent; }
:root body.fable-page[data-site-identity] .si-tide-hero > header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
:root body.fable-page[data-site-identity] .si-tide-hero > header h2 { margin:0; padding:0; color:var(--si-hero-ink); font-size:14px; font-weight:600; letter-spacing:0; }
:root body.fable-page[data-site-identity] .si-tide-hero > header > span { color:var(--si-hero-muted); font-size:13px; }
:root body.fable-page[data-site-identity] .si-tide-main { position:relative; display:flex; align-items:center; gap:20px; padding:10px 0 14px; }
:root body.fable-page[data-site-identity] .si-mul { display:flex; align-items:baseline; gap:4px; flex:0 0 auto; color:var(--si-highlight); font-size:20px; line-height:1.1; white-space:nowrap; }
:root body.fable-page[data-site-identity] .si-mul b { font-family:inherit; font-weight:800; font-size:clamp(48px,12vw,70px); line-height:1.1; letter-spacing:-.025em; }
:root body.fable-page[data-site-identity] .si-interpretation { position:relative; min-width:0; z-index:1; }
:root body.fable-page[data-site-identity] .si-interpretation p { margin:0 0 3px; color:var(--si-hero-muted); font-size:14px; }
:root body.fable-page[data-site-identity] .si-interpretation h3 { margin:0; color:var(--si-hero-ink); font-size:19px; line-height:1.35; letter-spacing:-.025em; font-weight:700; word-break:keep-all; }
:root body.fable-page[data-site-identity] .si-squid { position:absolute; width:66px; height:66px; right:-6px; bottom:4px; color:var(--si-highlight); opacity:.15; pointer-events:none; }
:root body.fable-page[data-site-identity] .si-tide-facts { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:12px; margin:0; padding-top:12px; border-top:1px solid #ffffff38; }
:root body.fable-page[data-site-identity] .si-tide-facts > div { min-width:0; }
:root body.fable-page[data-site-identity] .si-tide-facts dt { color:var(--si-hero-muted); font-size:13px; line-height:1.45; }
:root body.fable-page[data-site-identity] .si-tide-facts dd { margin:3px 0; font-size:17px; font-weight:700; line-height:1.3; color:var(--si-hero-ink); font-variant-numeric:tabular-nums; }
:root body.fable-page[data-site-identity] .si-tide-facts dd small { display:inline; margin-left:3px; color:inherit; font-size:13px; }
:root body.fable-page[data-site-identity] .si-tide-facts > div > small { display:block; color:var(--si-hero-muted); font-size:12px; line-height:1.55; word-break:keep-all; }
:root body.fable-page[data-site-identity] .si-tide-hero .si-hero-note { margin:12px 0 0; padding:0; color:var(--si-hero-muted); font-size:12px; line-height:1.55; }
:root body.fable-page[data-site-identity] .si-tide-hero.is-general { --si-highlight:#c2deff; }
:root body.fable-page[data-site-identity] .mm-tide-core { padding:16px; background:var(--si-paper); border-color:var(--si-rule); border-radius:20px; }
:root body.fable-page[data-site-identity] .hp-answer-heading h3 { color:var(--si-ink); font-weight:700; }
:root body.fable-page[data-site-identity] .hp-tide-answer time { font-size:clamp(24px,5vw,30px); }
:root body.fable-page[data-site-identity] .hp-tide-answer .hp-events small { color:var(--si-muted); }
:root body.fable-page[data-site-identity] .hp-canvas-more { padding:0; }
/* Editorial pages share a recognisable reading layout instead of older boxed themes. */
:root body.fable-page[data-site-identity] .page-head { max-width:none; margin:16px 0 20px; padding:0; border:0; background:transparent; box-shadow:none; }
:root body.fable-page[data-site-identity] .page-head h1 { max-width:30ch; margin:0; color:var(--si-ink); font-size:clamp(28px,3.4vw,40px); font-weight:800; line-height:1.3; letter-spacing:-.025em; text-wrap:pretty; }
:root body.fable-page[data-site-identity] .si-kicker { margin:0 0 8px; color:var(--si-coral); font-size:13px; line-height:1.5; font-weight:700; letter-spacing:0; }
:root body.fable-page[data-site-identity] .si-editorial-lead { max-width:58ch; margin:12px 0 0; color:var(--si-muted); font-size:16px; line-height:1.7; word-break:keep-all; }
:root body.fable-page[data-site-identity] .si-view-lead { margin:8px 0 0; color:var(--si-muted); font-size:14px; line-height:1.6; }
:root body.fable-page[data-site-identity] .reading-toc { margin:16px 0 24px; padding:12px 0; border:0; border-top:1px solid var(--si-rule); border-bottom:1px solid var(--si-rule); border-radius:0; background:transparent; gap:4px 20px; }
:root body.fable-page[data-site-identity] .reading-toc a { font-size:14px; font-weight:600; color:var(--si-blue); }
:root body.fable-page[data-site-identity] .fable-shell > :is(.answer,.observed-alternative,.tackle-reading) { margin:16px 0 24px; padding:22px; border:1px solid var(--si-rule); border-left:4px solid var(--si-coral); border-radius:4px 18px 18px 4px; background:var(--si-paper); box-shadow:none; }
:root body.fable-page[data-site-identity] .fable-shell > :is(.answer,.observed-alternative,.tackle-reading) > h2 { margin:0 0 12px; font-size:22px; line-height:1.4; color:var(--si-ink); }
:root body.fable-page[data-site-identity] .fable-shell > :is(.answer,.observed-alternative,.tackle-reading) > p { color:var(--si-muted); font-size:16px; line-height:1.75; }
:root body.fable-page[data-site-identity] .fable-shell > figure { margin:24px 0; padding:20px; border:1px solid var(--si-rule); border-radius:18px; background:var(--si-paper); }
:root body.fable-page[data-site-identity] .fable-shell > figure figcaption { color:var(--si-ink); font-size:20px; font-weight:700; line-height:1.4; }
:root body.fable-page[data-site-identity] .fable-shell > figure .visual-overline { font-size:13px; color:var(--si-coral); }
:root body.fable-page[data-site-identity] .fable-shell > section:not(.answer):not(.hero):not(.rig-learning):not(.view):not(.observed-alternative):not(.tackle-reading) { margin-block:24px; padding:20px 0; border:0; border-top:1px solid var(--si-rule); border-radius:0; background:transparent; box-shadow:none; }
:root body.fable-page[data-site-identity] .fable-shell > section > h2 { color:var(--si-ink); font-size:24px; line-height:1.35; }
:root body.fable-page[data-site-identity] .fable-shell .related { margin-top:24px; padding:20px; border:1px solid var(--si-rule); border-radius:18px; background:var(--si-paper); }
:root body.fable-page[data-site-identity] .fable-shell .related a { min-height:44px; font-size:15px; }
:root body.fable-page[data-site-identity] .fable-shell .answer .answer-action { min-height:48px; border-radius:12px; background:var(--si-blue); color:var(--mm-on-blue); }
:root body.fable-page[data-site-identity] .port-list-row { border-color:var(--si-rule); background:var(--si-paper); }
:root body.fable-page[data-site-identity] .ports-view .port-row-head strong { font-size:20px; font-weight:700; }
:root body.fable-page[data-site-identity] .ports-view .port-row-summary { font-size:16px; line-height:1.6; }
:root body.fable-page[data-site-identity] .calendar-header h1 { margin:0; font-size:30px; line-height:1.25; }
:root body.fable-page[data-site-identity] .calendar-view .calendar-mul { color:var(--si-blue); font-size:15px; font-weight:700; }
:root body.fable-page[data-site-identity] .calendar-view .calendar-day { gap:5px; }
:root body.fable-page[data-site-identity] .candidate-table tbody tr:first-child td strong { color:var(--si-blue); font-size:20px; line-height:1.4; }
:root body.fable-page[data-site-identity] .selected-day-summary { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
:root body.fable-page[data-site-identity] .si-selected-mul { color:var(--si-coral); font-size:26px; line-height:1.2; font-weight:800; }
:root body.fable-page[data-site-identity] .selected-day-summary > span { font-size:14px; color:var(--si-muted); }
:root body.fable-page[data-site-identity] .mm-rig-heading > h2 { font-size:26px; line-height:1.35; }
@media (min-width:960px) {
  :root body.fable-page[data-site-identity] [data-minimal-modern] { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:20px 24px; align-items:start; }
  :root body.fable-page[data-site-identity] [data-minimal-modern] > .hp-canvas-date { grid-column:1/-1; }
  :root body.fable-page[data-site-identity] [data-minimal-modern] > .si-tide-hero { grid-column:1; grid-row:2; padding:26px; }
  :root body.fable-page[data-site-identity] [data-minimal-modern] > .mm-tide-core { grid-column:2; grid-row:2/7; padding:24px; }
  :root body.fable-page[data-site-identity] [data-minimal-modern] > :is(.mm-almanac,.sea-overview-empty,.sea-overview,.hp-canvas-more) { grid-column:1; }
  :root body.fable-page[data-site-identity] .si-tide-main { min-height:132px; gap:28px; }
  :root body.fable-page[data-site-identity] .si-interpretation h3 { font-size:25px; }
  :root body.fable-page[data-site-identity] .si-mul b { font-size:88px; }
  :root body.fable-page[data-site-identity] .si-squid { width:96px; height:96px; }
  :root body.fable-page[data-site-identity] .journey-tabs { background:transparent; }
  :root body.fable-page[data-site-identity] .fable-content .fable-shell { max-width:1040px; }
  :root body.fable-page[data-site-identity] .fable-shell > .si-editorial-head { padding-block:24px 12px; }
  :root body.fable-page[data-site-identity] .fable-shell > :is(.answer,.observed-alternative,.tackle-reading) { padding:28px; }
}
@media (max-width:359px) {
  :root body.fable-page[data-site-identity] .site-brand { gap:6px; }
  :root body.fable-page[data-site-identity] .site-brand > img { width:26px; height:26px; flex-basis:26px; }
  :root body.fable-page[data-site-identity] .si-brand-copy .brand-name { font-size:21px; }
  :root body.fable-page[data-site-identity] .si-brand-copy small { font-size:11px; max-width:125px; }
  :root body.fable-page[data-site-identity] .si-tide-hero { padding:16px; }
  :root body.fable-page[data-site-identity] .si-tide-main { gap:14px; }
  :root body.fable-page[data-site-identity] .si-interpretation h3 { font-size:17px; }
  :root body.fable-page[data-site-identity] .si-tide-facts { gap:8px; }
  :root body.fable-page[data-site-identity] .si-tide-facts dd { font-size:15px; }
  :root body.fable-page[data-site-identity] .fable-shell > :is(.answer,.observed-alternative,.tackle-reading), :root body.fable-page[data-site-identity] .fable-shell > figure { padding:16px; }
}
@media (prefers-reduced-motion:reduce) { :root body.fable-page[data-site-identity] .si-tide-hero { animation:none; transition:none; } }
@media (forced-colors:active) { :root body.fable-page[data-site-identity] .si-tide-hero { background:Canvas; color:CanvasText; border-color:CanvasText; --si-hero-ink:CanvasText; --si-hero-muted:CanvasText; --si-highlight:CanvasText; } }

:root body.fable-page[data-site-identity] .site-menu-links .brand-tag { display:block; padding:8px 12px; font-size:12px; color:var(--si-muted); }

:root body.fable-page[data-site-identity] .si-brand-copy .brand-name { display:block; margin:0; padding:0; }

:root body.fable-page[data-site-identity] [data-minimal-modern] { margin-inline:0; padding-inline:0; }
