:root {
  --andaman-ink: #102e38;
  --andaman-deep: #083f4d;
  --andaman-sea: #168c94;
  --andaman-glass: #73c8bd;
  --andaman-coral: #e96946;
  --andaman-sun: #f2b84b;
  --andaman-sand: #f3e6c9;
  --andaman-paper: #fffaf0;
  --andaman-monsoon: #60778a;
}

body[data-region="andaman"] { background: #f6f0e2; }
.andaman-breadcrumbs { border-bottom-color: rgba(16,46,56,.18); }
.andaman-breadcrumbs a { color: var(--andaman-deep); }
.andaman-meta { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.45rem; }
.andaman-meta span { padding: .52rem .72rem; border: 1px solid currentColor; border-radius: 999px; font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.andaman-kicker { display: block; color: var(--andaman-coral); font-size: .69rem; font-weight: 950; letter-spacing: .13em; text-transform: uppercase; }
.andaman-panel-title { margin: .7rem 0 1rem; color: var(--andaman-ink); font: 500 clamp(2.25rem, 4vw, 4rem)/.92 Georgia, serif; }
.andaman-section-intro { max-width: 46rem; }
.andaman-section-intro p { color: #5b6969; }

/* Region hub — a plotting table rather than a destination-card clone. */
.chart-room-hero { position: relative; display: grid; grid-template-columns: .86fr 1.14fr; min-height: 42rem; overflow: hidden; color: #fff; background: var(--andaman-ink); }
.chart-room-copy { position: relative; z-index: 2; padding: clamp(2.8rem, 6vw, 6rem); align-self: center; }
.chart-room-copy::before { content: "07°–10° N"; position: absolute; top: 2rem; left: clamp(2.8rem, 6vw, 6rem); color: var(--andaman-glass); font-size: .62rem; font-weight: 950; letter-spacing: .2em; }
.chart-room-copy .eyebrow { color: var(--andaman-sun); }
.chart-room-copy h1 { margin: .8rem 0 1rem; color: #fff; font: 500 clamp(4rem, 7vw, 7.2rem)/.78 Georgia, serif; }
.chart-room-copy h1 span { display: block; color: var(--andaman-glass); font-size: .58em; font-style: italic; }
.chart-room-copy p { max-width: 40rem; color: rgba(255,255,255,.73); }
.chart-room-map { position: relative; min-height: 42rem; overflow: hidden; background: #0b5360; }
.chart-room-map > img { width: 100%; height: 100%; object-fit: cover; opacity: .76; filter: saturate(.85) contrast(1.05); }
.chart-room-map::before { content: ""; position: absolute; z-index: 1; inset: 0; background-image: linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px); background-size: 3.5rem 3.5rem; mix-blend-mode: overlay; }
.chart-room-map::after { content: "PHUKET  •  KRABI  •  TRANG  •  SATUN"; position: absolute; z-index: 2; right: 1.2rem; bottom: 1.2rem; padding: .8rem 1rem; border: 1px solid rgba(255,255,255,.5); background: rgba(8,46,56,.78); font-size: .63rem; font-weight: 950; letter-spacing: .12em; }
.chart-bearing { position: absolute; z-index: 3; top: 2rem; right: 2rem; display: grid; place-items: center; width: 7rem; height: 7rem; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; color: #fff; background: conic-gradient(from 25deg, transparent 0 11%, rgba(242,184,75,.72) 11% 13%, transparent 13% 36%, rgba(242,184,75,.72) 36% 38%, transparent 38% 61%, rgba(242,184,75,.72) 61% 63%, transparent 63% 86%, rgba(242,184,75,.72) 86% 88%, transparent 88%); font: 500 2rem/1 Georgia, serif; }
.chart-bearing::after { content: "N"; transform: translateY(-2.2rem); font: 900 .62rem/1 sans-serif; }

.andaman-decision-beacons { display: grid; grid-template-columns: 1.2fr repeat(3, 1fr); gap: .7rem; }
.andaman-decision-beacons article { min-height: 17rem; padding: 1.7rem; border-top: 6px solid var(--andaman-sea); background: #fff; }
.andaman-decision-beacons article:first-child { color: #fff; border-color: var(--andaman-sun); background: var(--andaman-ink); }
.andaman-decision-beacons article:nth-child(3) { border-color: var(--andaman-coral); }
.andaman-decision-beacons article:nth-child(4) { border-color: var(--andaman-monsoon); }
.andaman-decision-beacons h2, .andaman-decision-beacons h3 { color: inherit; font: 500 1.75rem/1 Georgia, serif; }
.andaman-decision-beacons p { color: inherit; opacity: .74; }

.archipelago-plot { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: .9rem; padding: 1rem; background: #dce7df; }
.archipelago-plot::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: radial-gradient(circle at 1px 1px, rgba(16,46,56,.2) 1px, transparent 0); background-size: 1.2rem 1.2rem; }
.archipelago-card { position: relative; z-index: 1; min-height: 24rem; overflow: hidden; color: #fff; background: var(--andaman-deep); box-shadow: 0 18px 40px rgba(16,46,56,.15); }
.archipelago-card:nth-child(2n) { transform: translateY(2rem); }
.archipelago-card:nth-child(3n) { border-radius: 7rem 7rem .5rem .5rem; }
.archipelago-card:nth-child(4n) { clip-path: polygon(0 0, 88% 0, 100% 12%, 100% 100%, 0 100%); }
.archipelago-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.archipelago-card:hover img { transform: scale(1.035); }
.archipelago-copy { position: absolute; inset: auto 0 0; padding: 4rem 1.25rem 1.3rem; background: linear-gradient(transparent, rgba(7,40,49,.95)); }
.archipelago-copy small { color: var(--andaman-sun); font-weight: 950; letter-spacing: .11em; }
.archipelago-copy h3 { margin: .45rem 0; color: #fff; font: 500 1.55rem/1 Georgia, serif; }
.archipelago-copy p { margin: 0 0 .8rem; color: rgba(255,255,255,.76); font-size: .88rem; }
.archipelago-copy strong { color: #fff; font-size: .78rem; }

.current-board { display: grid; grid-template-columns: 1fr 1.2fr; overflow: hidden; color: #fff; background: var(--andaman-deep); }
.current-board > div { padding: clamp(2rem, 5vw, 4rem); }
.current-board > div:last-child { color: var(--andaman-ink); background: var(--andaman-sand); }
.current-board h2, .current-board h3 { color: inherit; font: 500 clamp(1.8rem, 3vw, 3rem)/.95 Georgia, serif; }
.current-board p, .current-board li { color: inherit; opacity: .77; }
.gateway-chain, .return-buffer, .marine-contract, .andaman-itinerary { display: grid; grid-template-columns: repeat(4, 1fr); gap: .7rem; }
.gateway-chain article, .return-buffer article, .marine-contract article, .andaman-itinerary article { min-height: 15rem; padding: 1.5rem; background: #fff; border: 1px solid rgba(16,46,56,.13); }
.gateway-chain article:nth-child(2n), .andaman-itinerary article:nth-child(2n) { background: #e2eee7; }
.gateway-chain h3, .return-buffer h3, .marine-contract h3, .andaman-itinerary h3 { color: var(--andaman-ink); font: 500 1.45rem/1 Georgia, serif; }
.gateway-chain small, .return-buffer small, .marine-contract small, .andaman-itinerary time { color: var(--andaman-coral); font-size: .67rem; font-weight: 950; letter-spacing: .1em; }
.return-buffer article { border: 0; border-left: 5px solid var(--andaman-sea); background: var(--andaman-paper); }
.return-buffer article:last-child { color: #fff; border-color: var(--andaman-sun); background: var(--andaman-ink); }
.return-buffer article:last-child h3 { color: #fff; }
.return-buffer article:last-child p { color: rgba(255,255,255,.72); }
.marine-contract article { min-height: 17rem; border: 0; border-radius: .5rem 4rem .5rem .5rem; background: #dceae5; }
.marine-contract article:nth-child(2) { color: #fff; background: var(--andaman-deep); }
.marine-contract article:nth-child(2) h3 { color: #fff; }
.marine-contract article:nth-child(2) p { color: rgba(255,255,255,.72); }
.marine-contract article:nth-child(3) { background: #f6d8c7; }
.marine-contract article:nth-child(4) { background: var(--andaman-sand); }

/* 01 — Phuket: a port and city-base ledger. */
.port-ledger-hero { display: grid; grid-template-columns: 1.18fr .82fr; min-height: 40rem; color: #2c3434; background: #f0c665; }
.port-ledger-photo { position: relative; margin: 1rem; overflow: hidden; border-radius: .5rem 7rem .5rem .5rem; }
.port-ledger-photo img { width: 100%; height: 100%; object-fit: cover; }
.port-ledger-photo::after { content: "PHUKET TOWN / LAND BEFORE SEA"; position: absolute; left: 1rem; bottom: 1rem; padding: .72rem .9rem; color: #fff; background: rgba(16,46,56,.86); font-size: .64rem; font-weight: 950; letter-spacing: .11em; }
.port-ledger-copy { position: relative; padding: clamp(2.4rem, 5vw, 4.8rem); align-self: center; }
.port-ledger-copy::after { content: "HKT → TOWN → SOUTH"; position: absolute; right: 1.2rem; top: 1.2rem; writing-mode: vertical-rl; color: rgba(16,46,56,.55); font-size: .64rem; font-weight: 950; letter-spacing: .15em; }
.port-ledger-copy h1 { margin: .8rem 0 1rem; color: var(--andaman-ink); font: 500 clamp(3.8rem, 7vw, 6.6rem)/.79 Georgia, serif; }
.port-ledger-copy h1 span { display: block; color: #a44231; font-size: .58em; }
.port-matrix { display: grid; grid-template-columns: .75fr repeat(3, 1fr); border-top: 3px solid var(--andaman-ink); border-bottom: 3px solid var(--andaman-ink); }
.port-matrix article { min-height: 17rem; padding: 1.5rem; border-right: 1px solid rgba(16,46,56,.25); background: #fffaf0; }
.port-matrix article:first-child { color: #fff; background: var(--andaman-ink); }
.port-matrix article:last-child { border-right: 0; }
.port-matrix h2, .port-matrix h3 { color: inherit; font: 500 1.55rem/1 Georgia, serif; }
.port-matrix p { color: inherit; opacity: .75; }

/* 02 — Phang Nga and Ko Yao: perforated tide manifest. */
.tide-manifest-hero { position: relative; min-height: 42rem; display: grid; align-items: end; overflow: hidden; color: #fff; background: var(--andaman-ink); }
.tide-manifest-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tide-manifest-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9,42,51,.96), rgba(9,42,51,.05) 75%); }
.tide-manifest-copy { position: relative; z-index: 2; width: min(48rem, calc(100% - 2rem)); margin: 1rem; padding: clamp(2rem, 5vw, 4rem); border: 1px dashed rgba(255,255,255,.65); background: rgba(9,59,67,.74); backdrop-filter: blur(7px); }
.tide-manifest-copy::before, .tide-manifest-copy::after { content: ""; position: absolute; top: 50%; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--andaman-sand); transform: translateY(-50%); }
.tide-manifest-copy::before { left: -.85rem; }.tide-manifest-copy::after { right: -.85rem; }
.tide-manifest-copy h1 { margin: .8rem 0 1rem; color: #fff; font: 500 clamp(3.6rem, 7vw, 6.4rem)/.8 Georgia, serif; }
.tide-manifest-copy h1 span { display: block; color: var(--andaman-sun); font-size: .6em; }
.tide-table { display: grid; grid-template-columns: .8fr repeat(3, 1fr); overflow: hidden; border-radius: 1rem; box-shadow: 0 20px 55px rgba(16,46,56,.12); }
.tide-table article { min-height: 17rem; padding: 1.5rem; background: #fff; border-right: 1px dashed #9cb8b3; }
.tide-table article:first-child { color: #fff; background: var(--andaman-deep); }
.tide-table article:last-child { border-right: 0; background: #f1d3aa; }
.tide-table h2, .tide-table h3 { color: inherit; font: 500 1.55rem/1 Georgia, serif; }
.tide-table p { color: inherit; opacity: .75; }

/* 03 — Krabi and Railay: a karst elevation profile. */
.karst-profile-hero { display: grid; grid-template-columns: .88fr 1.12fr; min-height: 42rem; color: #fff; background: #223d38; }
.karst-profile-copy { position: relative; padding: clamp(2.6rem, 6vw, 5.5rem); align-self: center; }
.karst-profile-copy::before { content: "SEA LEVEL"; position: absolute; left: 1rem; bottom: 2rem; writing-mode: vertical-rl; color: var(--andaman-glass); font-size: .62rem; font-weight: 950; letter-spacing: .18em; }
.karst-profile-copy h1 { margin: .9rem 0 1rem; color: #fff; font: 500 clamp(4rem, 7vw, 7rem)/.78 Georgia, serif; }
.karst-profile-copy h1 span { display: block; color: var(--andaman-sun); font-size: .55em; }
.karst-profile-copy p { color: rgba(255,255,255,.72); }
.karst-profile-photo { position: relative; margin: 1rem; overflow: hidden; clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%, 0 25%); }
.karst-profile-photo img { width: 100%; height: 100%; object-fit: cover; }
.karst-sequence { display: grid; grid-template-columns: repeat(4, 1fr); align-items: end; min-height: 24rem; gap: .45rem; padding: 1rem; background: #dfe8df; }
.karst-sequence article { min-height: 11rem; padding: 1.35rem; color: #fff; background: #55766a; clip-path: polygon(0 18%, 50% 0, 100% 22%, 100% 100%, 0 100%); }
.karst-sequence article:nth-child(2) { min-height: 16rem; background: #315a55; }
.karst-sequence article:nth-child(3) { min-height: 21rem; background: var(--andaman-deep); }
.karst-sequence article:nth-child(4) { min-height: 14rem; background: var(--andaman-coral); }
.karst-sequence h3 { margin-top: 3rem; color: #fff; font: 500 1.4rem/1 Georgia, serif; }
.karst-sequence p { color: rgba(255,255,255,.74); }

/* 04 — Phi Phi: a capacity and landing clock. */
.landing-clock-hero { display: grid; grid-template-columns: 1.12fr .88fr; min-height: 40rem; color: var(--andaman-ink); background: #f4dfb9; }
.landing-clock-photo { position: relative; margin: 1rem; overflow: hidden; border-radius: 50% 50% 1rem 1rem; }
.landing-clock-photo img { width: 100%; height: 100%; object-fit: cover; }
.landing-clock-copy { position: relative; padding: clamp(2.5rem, 5vw, 4.8rem); align-self: center; }
.landing-clock-copy::before { content: ""; position: absolute; top: 1.5rem; right: 1.5rem; width: 6rem; height: 6rem; border: 1px solid var(--andaman-ink); border-radius: 50%; background: conic-gradient(var(--andaman-coral) 0 2%, transparent 2% 24%, var(--andaman-coral) 24% 26%, transparent 26% 49%, var(--andaman-coral) 49% 51%, transparent 51% 74%, var(--andaman-coral) 74% 76%, transparent 76%); }
.landing-clock-copy h1 { margin: .8rem 0 1rem; color: var(--andaman-ink); font: 500 clamp(3.8rem, 7vw, 6.6rem)/.8 Georgia, serif; }
.landing-clock-copy h1 span { display: block; color: var(--andaman-coral); font-size: .56em; }
.clock-windows { display: grid; grid-template-columns: repeat(4, 1fr); border-radius: 999px; overflow: hidden; background: var(--andaman-ink); }
.clock-windows article { min-height: 16rem; padding: 2rem 1.5rem; color: #fff; border-right: 1px solid rgba(255,255,255,.2); }
.clock-windows article:nth-child(2) { background: var(--andaman-deep); }.clock-windows article:nth-child(3) { background: #537f7a; }.clock-windows article:nth-child(4) { color: var(--andaman-ink); background: var(--andaman-sun); }
.clock-windows h3 { color: inherit; font: 500 1.45rem/1 Georgia, serif; }
.clock-windows p { color: inherit; opacity: .74; }

/* 05 — Ko Lanta: a north-to-south island spine. */
.island-spine-hero { display: grid; grid-template-columns: .9fr 1.1fr; min-height: 41rem; color: #fff; background: #344d3e; }
.island-spine-copy { padding: clamp(2.6rem, 6vw, 5.3rem); align-self: center; }
.island-spine-copy h1 { margin: .8rem 0 1rem; color: #fff; font: 500 clamp(4rem, 7vw, 6.8rem)/.79 Georgia, serif; }
.island-spine-copy h1 span { display: block; color: #efc16a; font-size: .57em; }
.island-spine-copy p { color: rgba(255,255,255,.72); }
.island-spine-photo { position: relative; margin: 1rem; overflow: hidden; border-radius: 10rem 10rem .6rem .6rem; }
.island-spine-photo img { width: 100%; height: 100%; object-fit: cover; }
.lanta-spine { position: relative; padding-left: 5rem; }
.lanta-spine::before { content: ""; position: absolute; left: 2rem; top: 0; bottom: 0; width: 8px; border-radius: 99px; background: linear-gradient(var(--andaman-sun), var(--andaman-sea), #31503f); }
.lanta-spine article { position: relative; display: grid; grid-template-columns: .35fr 1fr; gap: 1rem; padding: 1.6rem; border-bottom: 1px solid rgba(16,46,56,.18); background: rgba(255,255,255,.52); }
.lanta-spine article::before { content: ""; position: absolute; left: -3.45rem; top: 2rem; width: 1rem; height: 1rem; border: 4px solid #f6f0e2; border-radius: 50%; background: var(--andaman-coral); }
.lanta-spine h3 { margin: 0; color: var(--andaman-ink); font: 500 1.6rem/1 Georgia, serif; }

/* 06 — Trang: a ferry constellation. */
.ferry-constellation-hero { position: relative; display: grid; grid-template-columns: 1fr 1fr; min-height: 42rem; overflow: hidden; color: #fff; background: #0e3341; }
.ferry-constellation-hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.25) 1px, transparent 0); background-size: 2rem 2rem; }
.ferry-constellation-copy { position: relative; z-index: 2; padding: clamp(2.7rem, 6vw, 5.5rem); align-self: center; }
.ferry-constellation-copy h1 { margin: .8rem 0 1rem; color: #fff; font: 500 clamp(3.8rem, 7vw, 6.8rem)/.8 Georgia, serif; }
.ferry-constellation-copy h1 span { display: block; color: var(--andaman-glass); font-size: .58em; }
.ferry-constellation-copy p { color: rgba(255,255,255,.72); }
.ferry-constellation-photo { position: relative; z-index: 2; width: min(32rem, calc(100% - 3rem)); aspect-ratio: 1; margin: auto; overflow: hidden; border: .8rem solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: 0 0 0 1px rgba(255,255,255,.4), 0 0 0 3rem rgba(115,200,189,.06); }
.ferry-constellation-photo img { width: 100%; height: 100%; object-fit: cover; }
.ferry-constellation { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; padding: 2rem; color: #fff; background: var(--andaman-ink); }
.ferry-constellation article { position: relative; min-height: 16rem; padding: 1.6rem; border: 1px solid rgba(255,255,255,.22); border-radius: 50% 50% 1rem 1rem; background: rgba(255,255,255,.04); }
.ferry-constellation article::before { content: ""; position: absolute; top: -1.5rem; left: 50%; width: .7rem; height: .7rem; border-radius: 50%; background: var(--andaman-sun); box-shadow: 0 0 0 .4rem rgba(242,184,75,.12); }
.ferry-constellation h3 { color: #fff; font: 500 1.4rem/1 Georgia, serif; }
.ferry-constellation p { color: rgba(255,255,255,.7); }

/* 07 — Ko Lipe and Tarutao: a southern compass. */
.archipelago-compass-hero { display: grid; grid-template-columns: 1fr 1fr; min-height: 42rem; color: #fff; background: #155b63; }
.archipelago-compass-photo { position: relative; display: grid; place-items: center; overflow: hidden; }
.archipelago-compass-photo::before { content: "N"; position: absolute; z-index: 3; top: 1.5rem; color: #fff; font-size: .67rem; font-weight: 950; }
.archipelago-compass-photo img { width: min(34rem, 86%); aspect-ratio: 1; object-fit: cover; border: 1rem solid rgba(255,255,255,.14); border-radius: 50%; box-shadow: 0 0 0 1px rgba(255,255,255,.65), 0 0 0 4rem rgba(255,255,255,.035); }
.archipelago-compass-copy { position: relative; padding: clamp(2.6rem, 6vw, 5.3rem); align-self: center; }
.archipelago-compass-copy h1 { margin: .8rem 0 1rem; color: #fff; font: 500 clamp(3.8rem, 7vw, 6.7rem)/.79 Georgia, serif; }
.archipelago-compass-copy h1 span { display: block; color: var(--andaman-sun); font-size: .56em; }
.archipelago-compass-copy p { color: rgba(255,255,255,.72); }
.compass-rings { display: grid; grid-template-columns: repeat(4, 1fr); gap: .7rem; counter-reset: ring; }
.compass-rings article { counter-increment: ring; min-height: 17rem; padding: 1.6rem; border-radius: 50%; background: #fff; text-align: center; }
.compass-rings article::before { content: "0" counter(ring); display: block; margin: 0 auto 1rem; color: var(--andaman-coral); font-size: .7rem; font-weight: 950; letter-spacing: .12em; }
.compass-rings h3 { color: var(--andaman-ink); font: 500 1.45rem/1 Georgia, serif; }

/* 08 — Similan and Surin: an expedition console. */
.expedition-board-hero { min-height: 42rem; color: #fff; background: var(--andaman-ink); }
.expedition-board-photo { position: relative; height: 24rem; overflow: hidden; }
.expedition-board-photo img { width: 100%; height: 100%; object-fit: cover; }
.expedition-board-photo::after { content: "REMOTE PARK OPERATIONS / NO CASUAL DETOUR"; position: absolute; right: 1rem; bottom: 1rem; padding: .7rem .9rem; color: #fff; border: 1px solid rgba(255,255,255,.5); background: rgba(16,46,56,.8); font-size: .64rem; font-weight: 950; letter-spacing: .11em; }
.expedition-board-copy { display: grid; grid-template-columns: 1.1fr .9fr; gap: 2rem; padding: clamp(2.2rem, 5vw, 4.5rem); }
.expedition-board-copy h1 { margin: .8rem 0 0; color: #fff; font: 500 clamp(3.5rem, 6vw, 6rem)/.8 Georgia, serif; }
.expedition-board-copy h1 span { display: block; color: var(--andaman-glass); font-size: .58em; }
.expedition-board-copy p { color: rgba(255,255,255,.72); }
.expedition-check { display: grid; grid-template-columns: repeat(4, 1fr); gap: .55rem; padding: .7rem; border-radius: 1rem; color: #fff; background: var(--andaman-deep); }
.expedition-check article { min-height: 17rem; padding: 1.5rem; border: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.04); }
.expedition-check h3 { color: #fff; font: 500 1.45rem/1 Georgia, serif; }
.expedition-check p { color: rgba(255,255,255,.7); }
.expedition-check small { color: var(--andaman-sun); font-weight: 950; }

@media (max-width: 1180px) {
  .archipelago-plot { grid-template-columns: repeat(2, 1fr); }
  .andaman-decision-beacons { grid-template-columns: repeat(2, 1fr); }
  .gateway-chain, .return-buffer, .marine-contract, .andaman-itinerary, .port-matrix, .tide-table, .karst-sequence, .clock-windows, .ferry-constellation, .compass-rings, .expedition-check { grid-template-columns: repeat(2, 1fr); }
  .clock-windows { border-radius: 4rem; }
}

@media (max-width: 760px) {
  .chart-room-hero, .port-ledger-hero, .karst-profile-hero, .landing-clock-hero, .island-spine-hero, .ferry-constellation-hero, .archipelago-compass-hero { grid-template-columns: 1fr; }
  .chart-room-hero { min-height: 0; }.chart-room-map { min-height: 23rem; }
  .chart-room-copy h1, .port-ledger-copy h1, .karst-profile-copy h1, .landing-clock-copy h1, .island-spine-copy h1, .ferry-constellation-copy h1, .archipelago-compass-copy h1 { font-size: clamp(3.4rem, 17vw, 5.2rem); }
  .port-ledger-photo, .karst-profile-photo, .landing-clock-photo, .island-spine-photo { min-height: 23rem; grid-row: 1; }
  .port-ledger-copy::after, .karst-profile-copy::before { display: none; }
  .tide-manifest-hero { min-height: 38rem; }
  .tide-manifest-copy { width: calc(100% - 2rem); }
  .ferry-constellation-photo { min-height: 22rem; margin-bottom: 2rem; }
  .archipelago-compass-photo { min-height: 28rem; }
  .expedition-board-photo { height: 18rem; }.expedition-board-copy { grid-template-columns: 1fr; }
  .current-board { grid-template-columns: 1fr; }
  .lanta-spine article { grid-template-columns: 1fr; }
}

@media (max-width: 540px) {
  .archipelago-plot, .andaman-decision-beacons, .gateway-chain, .return-buffer, .marine-contract, .andaman-itinerary, .port-matrix, .tide-table, .karst-sequence, .clock-windows, .ferry-constellation, .compass-rings, .expedition-check { grid-template-columns: 1fr; }
  .archipelago-card:nth-child(2n) { transform: none; }
  .port-matrix article, .tide-table article { border-right: 0; border-bottom: 1px solid rgba(16,46,56,.2); }
  .karst-sequence { align-items: stretch; }.karst-sequence article, .karst-sequence article:nth-child(n) { min-height: 13rem; }
  .clock-windows { border-radius: 2.5rem; }
  .compass-rings article { min-height: 15rem; }
  .lanta-spine { padding-left: 3rem; }.lanta-spine::before { left: 1rem; }.lanta-spine article::before { left: -2.55rem; }
}
