:root {
  --c-bg: #ffffff;
  --c-tint: #f6f4ee;
  --c-ink: #333333;
  --c-ink-sub: #6e6a64;
  --c-line: #e3e0d8;
  --c-accent: #233557;
  --c-accent-2: #bd481e;
  --c-veil: rgba(35, 53, 87, 0.45);
  --c-mv-dot: rgba(255, 255, 255, 0.45);
  --fs-1: 10px;
  --fs-2: 12px;
  --fs-3: 14px;
  --fs-4: 15px;
  --fs-5: 17px;
  --fs-6: 20px;
  --fs-7: 24px;
  --fs-8: 32px;
  --fs-9: 44px;
  --fs-10: 64px;
  --fs-11: 88px;
  --ff-sans: "Noto Sans JP", "Noto Sans CJK JP", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
  --ff-serif: "Noto Serif JP", "Noto Serif CJK JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --fw-regular: 400;
  --fw-medium: 500;
  --lh-1: 1;
  --lh-2: 1.6;
  --lh-3: 1.9;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --bd: 1px;
  --bd-2: 2px;
  --r-pill: 999px;
  --z-1: 2;
  --z-2: 10;
  --z-4: 30;
  --z-5: 200;
  --t-1: 0.25s;
  
  --t-3: 1.2s;
  --t-4: 7s;
  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --h-header: 109px;
  --h-header-sp: 64px;
  --h-logo: 56px;
  --h-logo-sp: 40px;
  --h-anchor-nav: 0px;
  --h-anchor-nav-on: 60px;
  --anchor-gap: 48px;
  --anchor-gap-sp: 32px;
  --op: 0.55;
  --scale: 1.05;
  --fade-stop: 55%;
  --w-slide-sp: 82%;
  --turn-x: 45deg;
  --h-view: 100svh;
  --h-hist-pin: calc(var(--h-view) - var(--h-header) - var(--h-anchor-nav));
  --h-hist-pin-sp: calc(var(--h-view) - var(--h-header-sp) - var(--h-anchor-nav));
  --hist-run: 0px;
  --hist-fill: 0;
  --ext-stroke: 1.3;
  --ext-gap: 0.2em;
  --ext-shift: 0.12em;
  --ls-1: 0.02em;
  --em-1: 9em;
  --em-2: 10.8em;
  --w-view: 100vw;
  --w-box: 100cqi;
  --z-back: -1;
  --cut-1: 75%;
  --cut-2: 90%;
  --m-mn: #e8833a;
  --m-ht: #2c4470;
  --m-ev: #2c4470;
  --m-tn: #e2c89a;
  --m-green: #8fbf6a;
  --m-road: #a7adb4;
  --m-alley: #c3c7cc;
  --m-zebra: #f7f7f5;
  --m-park: #e8833a;
  --m-park-f: #a8561c;
  --m-e-a: #7f8fa3;
  --m-glass: #f6d9a0;
  --m3-go-size: 44px;
  --m3-go-icon: 16px;
  --m3-go-gap: 8px;
  --m3-go-ink: currentColor;
  --m3-btn-size: 36px;
  --m3-btn-gap: 6px;
  --m3-btn-inset: 14px;
  --m3-btn-font: 18px;
  --m3-btn-bg: rgba(255, 255, 255, 0.95);
  --m3-btn-line: rgba(0, 0, 0, 0.12);
  --m3-btn-ink: #2b3340;
  --m3-tree: #8fae7a;
  --m3-trunk: #8a7a62;
  --m3-hilite: #c9a24a;
  --m3-frame: #b08d3c;
  --m3-btn-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  --m3-btn-z: 5;
  --m3-btn-outline: 2px;
  --m-city: #e6e1d8;
  --m-e-top: #c9cdd1;
  --m-ground: #e4ddd0;
  --m-mull: #4d525a;
  --m-rail: #7d7a74;
  --m-rail-bed: #c9c2b6;
  --m-slab: #e9ebed;
  --m-stage-a: #f7f4ee;
  --m-stage-b: #ece6db;
  --m-w-a: #a5abb2;
  --m-w-top: #cfd3d7;
  --m-win: #2e343d;
  --m-label: rgba(255, 255, 255, 0.95);
  --m-label-shadow: rgba(0, 0, 0, 0.12);
  --m-label-soft: rgba(255, 255, 255, 0.7);
  --m3-nomap-fs: 14px;
  --m3-nomap-lh: 1.9;
  --m3-nomap-pad: 24px;
}
@media (max-width: 768px) { :root { --anchor-gap: var(--anchor-gap-sp); } }
:root:has(.anchor-nav) { --h-anchor-nav: var(--h-anchor-nav-on); }
