/* Arthur: a documentary expedition through an actual Louisiana landscape. */
:root{--gut:clamp(22px,4.4vw,64px);--display:var(--text);--mono:var(--text)}
.expedition{background:var(--bone);color:var(--cypress);padding:46px var(--gut) 0}
.expedition__head{display:grid;grid-template-columns:1.4fr .9fr;gap:56px;max-width:1240px;margin:0 auto 30px;align-items:end}
.expedition h1{font:500 clamp(36px,4.3vw,62px)/1.08 var(--text);letter-spacing:-.04em;text-transform:none;margin:14px 0 0;max-width:20ch}
.expedition .eyebrow{font-family:var(--text);letter-spacing:0;text-transform:none;color:#3c4c3d;font-size:14px}
.expedition__head p:not(.eyebrow){font-size:16px;line-height:1.6;margin:0 0 22px}.expedition .actions{gap:12px;flex-wrap:wrap}.expedition .btn{font-family:var(--text);font-size:15px;text-transform:none;letter-spacing:0}.expedition .btn-ghost{color:var(--cypress);border-color:var(--cypress)}
.landscape-plate{max-width:1370px;margin:0 auto}.landscape-plate img{width:100%;height:380px;object-fit:cover;object-position:50% 55%}.landscape-plate figcaption{display:flex;justify-content:space-between;gap:20px;font-size:13px;color:#3c4c3d;padding:14px 0 20px;line-height:1.4}
.top{position:sticky;background:var(--bone);color:var(--cypress);border-color:#c2c9b7}.top a,.top button{color:var(--cypress)}.top .btn-go{background:var(--defender);color:var(--cypress)}
.eyebrow,.mono{font-family:var(--text);letter-spacing:.01em;text-transform:none}h2{font-family:var(--text);font-size:clamp(30px,3.8vw,52px);text-transform:none;line-height:1.12;font-weight:500;letter-spacing:-.03em}h3{font-family:var(--text);text-transform:none}
.proof{padding-block:18px}.proof li{font-family:var(--text)}.band{padding-block:72px}.grain::after{display:none}
.light{background:var(--bone);color:var(--cypress)}.closing h2{font-size:clamp(32px,4vw,54px)}
.phero{min-height:0;background:var(--bone);color:var(--cypress);padding:44px var(--gut)}.phero::before{display:none}.phero h1{font-size:clamp(36px,4.7vw,64px);color:var(--cypress);text-transform:none}.phero .lede,.phero .eyebrow{color:#3c4c3d}
.js-motion .line>span,.js-motion [data-reveal],.js .rv{opacity:1;transform:none;clip-path:none}
@media(max-width:860px){.expedition{padding-top:30px}.expedition__head{grid-template-columns:1fr;gap:22px}.expedition h1{font-size:40px}.landscape-plate img{height:300px;object-position:40% 50%}.landscape-plate figcaption{display:block;font-size:12px}.landscape-plate figcaption span{display:block;margin-top:5px}.expedition .actions{flex-direction:column;align-items:stretch}.band{padding-block:48px}}
@media(max-width:360px){.expedition h1{font-size:35px}.landscape-plate img{height:255px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.top.solid{background:var(--bone);color:var(--cypress);backdrop-filter:none;box-shadow:0 1px 0 #c9c6b8}
.top .mark span{color:#3c4c3d}.expedition .btn-ghost{background:transparent}

.expedition.hero{min-height:0;display:block;overflow:visible;isolation:auto;background:var(--bone);color:var(--cypress);padding:46px var(--gut) 0}.expedition.hero::before,.expedition.hero::after{display:none}
@media(max-width:860px){.expedition.hero{padding-top:30px}}
.phero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:center}
.phero .inner{padding:0;order:0}.phero .bg{position:relative;inset:auto;width:100%;order:1;background:#0e1712}
.phero .bg::after{display:none}.phero .bg img{height:350px;object-fit:cover}.phero .btn-ghost{color:var(--cypress);border-color:var(--cypress)}
.phero.map .map-lg{display:block;height:auto}.phero.map .map-sm{display:none}
@media(max-width:860px){.phero{grid-template-columns:1fr;gap:28px;padding:32px var(--gut)}.phero .bg img{height:250px}.phero.map .map-lg{display:none}.phero.map .map-sm{display:block;height:auto}}

/* Keep the route diagram in document flow, after the practical directions. */
.phero.map .inner{padding:0}.phero.map .bg svg{position:relative;inset:auto;width:100%;height:auto}.phero.map .bg .map-lg{display:block}.phero.map .bg .map-sm{display:none}
@media(max-width:860px){.phero.map .bg .map-lg{display:none}.phero.map .bg .map-sm{display:block;position:relative;inset:auto;width:100%;height:auto}}

/* Independent structure and accessibility review repair. */
.expedition.hero{padding:0 0 36px}.landscape-plate{max-width:none}
.landscape-plate img{height:380px;object-position:50% 55%}.landscape-plate figcaption{padding:12px var(--gut) 20px}
.expedition__head{margin:12px auto 0;padding:0 var(--gut);gap:50px;align-items:start;max-width:1370px}
.expedition__head .eyebrow{display:none}.expedition h1{font-size:clamp(36px,3.8vw,54px);margin:0}
.expedition .actions .btn-ghost{border:0;padding:12px 0;text-decoration:underline;text-underline-offset:4px}
.wake,.boat-scroll{overflow:auto}
@media(max-width:860px){
  .expedition.hero{padding-top:0}.landscape-plate img{height:255px;object-position:40% 55%}
  .landscape-plate figcaption{font-size:11px;padding-bottom:12px}.landscape-plate figcaption span:last-child{display:none}
  .expedition__head{display:block;margin-top:8px}.expedition h1{font-size:35px;max-width:22ch;margin-bottom:18px}
  .expedition__head p:not(.eyebrow){font-size:14px;margin-bottom:14px}.expedition .actions{flex-direction:row;align-items:center;gap:14px}.expedition .btn{font-size:13px;padding:13px}
}
@media(max-width:360px){.landscape-plate img{height:220px}.expedition h1{font-size:31px}}

a[data-primary-action]::before,a[data-primary-action]::after,a[data-primary-action] span,a[data-primary-action] svg{pointer-events:none}

/* Expedition contact choices remain in page flow, clear of focused content. */
.callbar,.callbar.show{position:static;inset:auto;transform:none;padding:16px;backdrop-filter:none}
html{scroll-padding-top:84px}

/* Operator palette correction: less white, same site character. */
:root{--bone:#c5c1a3;--muted-bone:#b4b397}

/* Scoped in-flow preview credit: truthful, readable and clear of content. */
.run .steps li{opacity:1;padding:14px 12px;border-left:3px solid transparent}.run .steps li.on{border-left-color:var(--defender);background:#203c2b}.run .steps strong{font:500 23px/1.2 var(--text);text-transform:none}.run .steps span{color:#d8e0ce}
.run canvas,canvas[data-hold]{pointer-events:none}.seg span{transition:none}.seg input:not(:checked)+span small{color:var(--muted-bone)}.seg input:checked+span,.seg input:checked+span small{color:#292609}
.run .intro{pointer-events:auto}
.closing{min-height:0;background:var(--moss-deep);padding-block:48px}.closing .bg{display:none}.closing .inner{position:relative;padding-block:0}.closing::before,.closing::after{display:none}.closing .lede{color:#e2e9d9}
.crew li{grid-template-columns:44px minmax(0,1fr) minmax(0,1.5fr) 180px;gap:24px;padding-block:32px}.crew .idx{grid-column:1;font-size:12px;letter-spacing:0}.crew .who,.crew li:nth-child(even) .who{grid-column:2;order:0}.crew li>p{grid-column:3;font-size:16px;line-height:1.6}.crew h3{font:500 26px/1.2 var(--text);text-transform:none}.crew .role{font:400 14px/1.5 var(--text);letter-spacing:0;text-transform:none}.crew .ph{grid-column:4;margin:0;width:180px}.crew .ph img{width:180px;height:230px;object-fit:contain;object-position:center}
.phero.map{display:flex;flex-direction:column}.phero.map .inner{max-width:860px}.phero.map .bg{margin-top:32px}.phero.map .bg svg text{font-family:var(--text);font-size:18px;letter-spacing:0;fill:#d8e0ce}
@media(max-width:860px){.crew li{grid-template-columns:44px minmax(0,1fr);gap:18px}.crew li>p{grid-column:1/-1}.crew .ph{grid-column:2}.phero.map .bg svg text{font-size:14px}.closing{padding-block:32px}}
/* Character fix 2026-10-03: one crew grid for every row, one reading sequence on phones. */
.crew li,.crew li.has-ph{grid-template-columns:96px minmax(0,1fr) minmax(0,1.5fr) 180px;gap:24px;align-items:start}
.crew .idx{white-space:nowrap}
.crew .ph{aspect-ratio:auto;background:none;overflow:visible}
.crew .ph img{width:180px;height:auto;aspect-ratio:625/960;object-fit:cover;transform:none}
/* Plan: the route diagram is a cropped strip below the directions, so the address and map links open the page. */
.phero.map{padding-block:36px 32px}.phero.map .bg{margin-top:24px;width:100%}
.phero.map .bg .map-lg{max-height:58vh}
/* Home sunset run on phones: the headline sits on its own dark ground, away from the sun. */
@media(max-width:860px){
  .crew li,.crew li.has-ph{grid-template-columns:minmax(0,1fr);gap:10px;padding-block:32px}
  .crew .ph,.crew .idx,.crew .who,.crew li:nth-child(even) .who,.crew li>p{grid-column:1;order:0}
  .crew .ph{order:-1;width:min(100%,240px);max-width:none;margin:0 0 8px}
  .crew .ph img{width:100%}
  .crew .who h3{font-size:26px}.crew li>p{max-width:62ch}
  .run .intro{background:rgba(10,9,16,.86);border-radius:12px;padding:16px 18px 18px}
  .run .intro h2{text-shadow:none}
  .phero.map{padding-block:28px}
  .phero.map .bg{margin-top:20px}
}
aside[data-octopuss-disclosure][data-octopuss-disclosure-version$="-footer"]{background:#c5c1a3!important;color:#182126!important;line-height:1.5!important;letter-spacing:0!important;border-top:1px solid rgba(24,33,38,.2);padding:14px 16px!important}
aside[data-octopuss-disclosure][data-octopuss-disclosure-version$="-footer"] a{color:inherit!important;min-height:24px;text-decoration:underline!important;text-underline-offset:3px}

/* Character fix p2, 2026-10-03 */
/* Opening headline: "can't go." always travels together, so no lone "go." on phones. */
.expedition h1 .nw{white-space:nowrap}
/* Fare selector: the gauge lives inside the form. Desktop keeps gauge left, controls right;
   phones read controls, then the needle with the price, then the minimum and the booking action. */
.tach{display:block}
.tach .picker{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);column-gap:56px;align-items:start}
.tach .picker>.gauge{grid-column:1;grid-row:1 / span 4;align-self:center}
.tach .picker>fieldset,.tach .picker>.readline{grid-column:2}
@media(max-width:860px){
  .tach .picker{grid-template-columns:minmax(0,1fr)}
  .tach .picker>.gauge,.tach .picker>fieldset,.tach .picker>.readline{grid-column:1;grid-row:auto}
  .tach .picker fieldset{margin-bottom:16px}
  .tach .picker>.gauge{max-width:232px;margin:6px auto 0}
  .tach .gauge .price{font-size:46px}
  .tach .gauge .unit{font-size:11px;letter-spacing:.06em}
  .tach .readline{margin-top:0;padding-top:14px;border-top:0;text-align:center}
  .tach .readline .what{font-size:21px;margin-bottom:6px}
  .tach .readline .line{font-size:15px}
  .tach .readline .actions{margin-top:12px;justify-content:center}
  .tach .readline .btn{width:100%}
}
@media(max-width:360px){.tach .picker>.gauge{max-width:204px}.tach .gauge .price{font-size:40px}}
/* Home crew: Woody is introduced in text, with no portrait implied. */
.timeline li.no-face .who{min-height:0}
/* Captains roster at desktop: a tighter, centred row so the short biographies sit beside the name and portrait. */
@media(min-width:861px){
  .crew{max-width:1080px}
  .crew li,.crew li.has-ph{grid-template-columns:88px minmax(0,.85fr) minmax(0,1.15fr) 150px;gap:28px;padding-block:24px;align-items:center}
  .crew .idx{padding-top:0}
  .crew li>p{font-size:17px;max-width:46ch}
  .crew .ph,.crew .ph img{width:150px}
}
/* Bottom bar on phones: one booking call plus one distinct route. */
.callbar .btn-go{flex:1.25}
@media(max-width:480px){.callbar .n{display:none}.callbar .btn{padding:0 12px;font-size:15px}}

/* Character fix p3, 2026-10-03 */
/* Focus: a dark cypress ring with a clear gap on linen, yellow (defender) only on dark grounds and the drawer. */
:focus-visible{outline:3px solid var(--cypress);outline-offset:4px}
.band:not(.light) :focus-visible,.run :focus-visible,.closing :focus-visible,.foot :focus-visible,.wild-sec :focus-visible,
.boats :focus-visible,.film :focus-visible,.drawer :focus-visible,.callbar :focus-visible,.split :focus-visible,
.dash-strip :focus-visible,.pband :focus-visible{outline-color:var(--defender);outline-offset:4px}
.light .btn-go:focus-visible,.expedition .btn-go:focus-visible,.top .btn-go:focus-visible,.phero .btn-go:focus-visible,.proof :focus-visible{outline-color:var(--cypress)}

/* Home family timeline: portraits large enough to read, Arthur cropped to the man rather than the whole gator scene. */
@media(min-width:861px){.timeline .face{width:104px;height:132px}}
.timeline .face{background:none}
.timeline .face-arthur img{object-position:46% 12%;transform:scale(1.75);transform-origin:46% 16%}
/* One "The crew" label for the shared rows; each captain's name is the row heading. */
.timeline .yr-label{font:600 13px/1.4 var(--text);letter-spacing:.08em;text-transform:uppercase;color:#3c4c3d;padding-top:14px}
.timeline h3{font:500 28px/1.15 var(--text);letter-spacing:-.02em;text-transform:none}
@media(max-width:860px){
  .timeline .face-arthur img{transform:scale(1.35);transform-origin:46% 14%}
  .timeline .yr-label{padding-top:0}
  .timeline .yr-label:empty{display:none}
  .timeline h3{font-size:26px}
}

/* Fare selector on phones: a short introduction and a compact result so choice, fare, minimum and booking read together. */
@media(max-width:860px){
  #pick .log-head{margin-bottom:22px}
  #pick .log-head .more{display:none}
  .tach .picker fieldset{margin-bottom:10px}
  .tach .picker legend{margin-bottom:6px}
  .tach .seg span{min-height:44px;padding:6px 12px}
  .tach .picker>.gauge{max-width:176px;margin:2px auto 0}
  .tach .gauge .price{font-size:40px}
  .tach .gauge .unit{font-size:10px}
  .tach .readline{padding-top:4px}
  .tach .readline .what{font-size:19px;margin-bottom:2px}
  .tach .readline .line{font-size:14px;line-height:1.4;margin-bottom:4px}
  .tach .readline .actions{margin-top:10px}
}
@media(max-width:360px){.tach .picker>.gauge{max-width:160px}.tach .gauge .price{font-size:36px}}

/* Plan: street, town and state/ZIP on their own lines, in reading type. */
.addr{font:500 clamp(28px,3.4vw,44px)/1.15 var(--text);letter-spacing:-.02em;text-transform:none}
.addr span{display:block;white-space:nowrap}

/* Review quote: sentence case at a reading measure, balanced lines. */
.quote blockquote{font:500 clamp(26px,2.8vw,38px)/1.22 var(--text);letter-spacing:-.02em;text-transform:none;max-width:28ch;text-wrap:balance}

/* Inner pages carry the home page's documentary details: the same calm headline and a field caption under the plate. */
.phero h1{font-weight:500;font-size:clamp(36px,3.8vw,54px);line-height:1.08;letter-spacing:-.04em}
.phero .bg:has(.plate-cap){background:none}
.phero .bg .plate-cap{display:flex;justify-content:space-between;gap:20px;margin:0;padding:12px 0 0;font-size:13px;line-height:1.4;color:#3c4c3d}
@media(max-width:860px){.phero h1{font-size:35px}.phero .bg .plate-cap{display:block;font-size:12px}.phero .bg .plate-cap span:last-child{display:block;margin-top:4px}}
@media(max-width:360px){.phero h1{font-size:31px}}

/* Character fix p4, 2026-10-03 */
/* Fare selector: both boat options (and every chip in a row) share one height. */
.seg label{display:flex}
.seg label>span{flex:1 1 auto;min-width:0}
/* Fare selector, phones: the written result (fare, minimum, booking) follows Seats directly; the gauge confirms it afterwards. */
.tach .fare{display:none}
@media(max-width:860px){
  .tach .picker>.readline{order:1;padding-top:14px;border-top:1px solid rgba(237,230,214,.18)}
  .tach .picker>.gauge{order:2;max-width:160px;margin:20px auto 0}
  .tach .fare{display:flex;justify-content:center;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:4px 0 6px}
  .tach .fare-p{font:900 44px/1 var(--display);font-variant-numeric:tabular-nums;color:var(--defender)}
  .tach .fare-u{font:500 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-bone)}
  .tach .gauge .price{font-size:30px}
  .tach .gauge .unit{font-size:9px}
}
@media(max-width:360px){.tach .picker>.gauge{max-width:148px}.tach .gauge .price{font-size:28px}}
/* Home crew, phones: a small documentary plate at the file's own ratio beside the name, biography directly below. */
@media(max-width:860px){
  .timeline .who{flex-direction:row;align-items:flex-end;gap:16px}
  .timeline .face{width:128px;height:auto;aspect-ratio:625/960;flex:none}
  .timeline .face img{transform:none}
  .timeline .face-arthur img{transform:scale(1.35);transform-origin:46% 14%}
  .timeline h3{font-size:22px;line-height:1.2}
}
@media(max-width:360px){.timeline .face{width:112px}.timeline h3{font-size:20px}}
/* Closing booking: one primary call action with the number inside it; toll free as a quiet alternative. */
.closing .call-main{display:inline-flex;flex-direction:column;align-items:flex-start;gap:6px;margin:28px 0 14px;padding:18px 32px 20px;border-radius:18px;background:var(--defender);color:var(--cypress);text-decoration:none;transition:background .16s}
.closing .call-main:hover{background:#FFD659}
.closing .call-main:active{transform:scale(.98)}
.closing .call-label{font:500 13px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.closing .call-num{font:600 clamp(30px,3.4vw,44px)/1 var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.closing .call-alt{margin:0 0 28px;font-size:16px;color:#e2e9d9}
.closing .call-alt a{color:inherit;font-weight:600;text-underline-offset:3px;white-space:nowrap}
.closing .call-alt a:hover{color:var(--defender)}
@media(max-width:860px){.closing .call-main{display:flex;width:100%;max-width:360px;padding:16px 22px 18px}.closing .call-num{font-size:30px}}
@media(max-width:360px){.closing .call-num{font-size:27px}}
@media(prefers-reduced-motion:reduce){.closing .call-main{transition:none}.closing .call-main:active{transform:none}}

/* Character fix p5, 2026-10-03 */
/* Portraits: clean rectangular crops inside the files' baked torn-paper frame.
   Clean area of each 625x960 file: x 72-558, y 62-888 (486x826). Never displayed above natural width. */
.crew .ph,.timeline .face{position:relative;overflow:hidden;aspect-ratio:486/826;background:none}
.crew .ph img,.timeline .face img{position:absolute;max-width:none;width:128.6%;height:auto;aspect-ratio:625/960;left:-14.8%;top:-7.5%;transform:none;object-fit:fill}
/* Home: Arthur's file is a wide gator scene, so his plate crops to the man (x 140-440, y 60-570), same plate ratio. */
.timeline .face-arthur img{width:208.3%;left:-46.7%;top:-11.8%;transform:none}
.timeline .face{height:auto}
@media(min-width:861px){.timeline .face{width:104px}}
/* Home crew: names top-aligned beside their plates; biographies follow directly below. */
.timeline .who{align-items:flex-start}
.timeline .who h3{margin:0;padding-top:2px}
/* Captains, day job: the chosen direction's calm heading, with "for a living." kept together. */
.bigline{font:500 clamp(32px,3.3vw,48px)/1.1 var(--text);letter-spacing:-.03em;text-transform:none;max-width:none;text-wrap:balance}
.bigline .nw{white-space:nowrap}
@media(max-width:860px){.bigline{font-size:32px}}
@media(max-width:360px){.bigline{font-size:26px}}
/* Plan: the route sketch carries a field caption like the home landscape plate. */
.phero.map .bg:has(.plate-cap){background:none}
.phero.map .bg svg.map-lg,.phero.map .bg svg.map-sm{background:#0e1712}

/* Character fix p6, 2026-10-03 */
/* Fare selector, phones: fare, minimum and the booking call sit together straight after Seats;
   the one-line description and the gauge follow. */
@media(max-width:860px){
  .tach .picker fieldset{margin-bottom:8px}
  .tach .readline{display:flex;flex-direction:column;align-items:center;padding-top:10px}
  .tach .readline .what{order:0;font-size:16px;margin:0}
  .tach .readline .fare{order:1;margin:2px 0}
  .tach .readline .min{order:2;margin:0}
  .tach .readline .actions{order:3;width:100%;margin-top:10px}
  .tach .readline .line{order:4;margin:12px 0 0;color:var(--muted-bone)}
  .tach .picker>.gauge{margin-top:16px}
}

/* Captains roster: each portrait plate sits beside its own name, role and biography.
   Desktop: two plates per row; phones: portrait beside name and role, biography directly below. */
ol.crew>li.reveal-row{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"idx" "who" "bio";gap:8px 24px;align-items:start;padding-block:28px}
ol.crew>li.has-ph{grid-template-columns:150px minmax(0,1fr);grid-template-areas:"ph idx" "ph who" "ph bio";grid-template-rows:auto auto 1fr}
.crew li>.plate{grid-area:ph;margin:0;width:150px}
.crew li>.idx{grid-area:idx;padding-top:0}
.crew li.reveal-row>.who{grid-area:who}
.crew li>p{grid-area:bio;max-width:46ch;font-size:16px;line-height:1.6}
.crew .plate .ph{width:100%;margin:0;max-width:none}
.crew .plate .ph img{width:128.6%}
.crew .plate figcaption{font-size:12px;line-height:1.4;color:#3c4c3d;padding-top:8px}
.crew li.reveal-row>.who h3{margin:0}
.crew li>.who .role{margin-top:6px}
@media(min-width:1000px){
  ol.crew{max-width:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:56px;border-top:1px solid rgba(14,23,18,.18)}
  ol.crew>li.reveal-row{border-top:0;border-bottom:1px solid rgba(14,23,18,.18)}
}
@media(min-width:861px) and (max-width:999px){ol.crew{max-width:760px}}
@media(max-width:860px){
  ol.crew>li.reveal-row{gap:6px 16px;padding-block:24px}
  ol.crew>li.has-ph{grid-template-columns:112px minmax(0,1fr);grid-template-areas:"ph idx" "ph who" "bio bio";grid-template-rows:auto 1fr auto}
  .crew li>.plate{width:112px}
  .crew .plate figcaption{display:none}
  .crew li>p{margin-top:10px}
  .crew li.reveal-row>.who h3{font-size:24px;line-height:1.15}
}
@media(max-width:360px){
  ol.crew>li.has-ph{grid-template-columns:96px minmax(0,1fr)}
  .crew li>.plate{width:96px}
  .crew li.reveal-row>.who h3{font-size:21px}
}

/* Closing booking: the call action beside phone hours, reservations, ride hours and the dock. */
.closing .book{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px 72px;align-items:center}
.closing .book .call-main{margin-bottom:12px}
.closing .book .call-alt{margin-bottom:0}
.closing .book-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin:0;border-top:1px solid rgba(226,233,217,.22)}
.closing .book-facts>div{padding:18px 0;border-bottom:1px solid rgba(226,233,217,.22)}
.closing .book-facts dt{font:600 12px/1.4 var(--text);letter-spacing:.08em;text-transform:uppercase;color:var(--defender);margin-bottom:6px}
.closing .book-facts dd{margin:0;font-size:16px;line-height:1.55;color:#e2e9d9}
.closing .book-facts dd a{color:inherit;text-underline-offset:3px}
.closing .book-facts dd a:hover{color:var(--defender)}
.closing .book-facts .links{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:6px}
.closing .book-facts .links a{min-height:24px;display:inline-flex;align-items:center}
@media(max-width:860px){
  .closing .book{grid-template-columns:minmax(0,1fr);gap:28px}
  .closing .book-facts{grid-template-columns:minmax(0,1fr)}
  .closing .book-facts>div{padding:14px 0}
}

/* Character fix p7, 2026-10-03 */
/* Captains roster: Woody's photo-free entry reads as one compact group at the top of its cell,
   so number, name, role and biography sit as close together as Jeremy's beside it. */
ol.crew>li.reveal-row:not(.has-ph){grid-template-rows:auto auto auto;align-content:start}
@media(min-width:861px){ol.crew>li.reveal-row:not(.has-ph){gap:8px 24px}}

/* Footer after a closing booking block: brand, email and socials only; phones, hours and the dock live in the block above. */
.foot--slim{padding:48px 0 28px}
.foot--slim .slim{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:24px 64px;align-items:start}
.foot--slim .big{font-size:36px;margin:0}
.foot--slim h4{margin-bottom:10px}
.foot--slim p{margin:0}
.foot--slim .socials{display:flex;flex-wrap:wrap;gap:2px 20px;line-height:1.6;max-width:420px}
.foot--slim .socials a,.foot--slim p a{min-height:24px;display:inline-flex;align-items:center}
.foot--slim .base{margin-top:36px;padding-top:18px}
@media(max-width:860px){
  .foot--slim{padding:32px 0 20px}
  .foot--slim .slim{grid-template-columns:minmax(0,1fr);gap:20px}
  .foot--slim .big{font-size:30px}
  .foot--slim .base{margin-top:24px;gap:6px}
}

/* Focused improvement: the closing booking list on phones is a tighter, quieter reference list. */
@media(max-width:860px){
  .closing .book{gap:22px}
  .closing .book-facts>div{padding:11px 0}
  .closing .book-facts dt{margin-bottom:3px}
  .closing .book-facts dd{font-size:15px;line-height:1.5}
}

/* Character fix p8, 2026-10-03 */
/* Captain portraits: 4:5 crops centred on each captain's face inside the supplied originals.
   Tight crop (300x375 of the 625x960 file) for the small home and phone plates; wider crop
   (400x500) on the captains page at desktop, keeping the alligator as context. Never above natural width. */
.crew .ph,.timeline .face{aspect-ratio:4/5}
.timeline .face img[src*="capt-"],.crew .ph img[src*="capt-"]{width:208.33%;height:auto;aspect-ratio:625/960;left:var(--tx);top:var(--ty)}
img[src*="capt-arthur"]{--tx:-45%;--ty:-18.67%;--wx:-25%;--wy:-12%}
img[src*="capt-chad"]{--tx:-93.33%;--ty:-21.33%;--wx:-45%;--wy:-12%}
img[src*="capt-jeremy"]{--tx:-15%;--ty:-18.67%;--wx:-12.5%;--wy:-14%}
@media(min-width:861px){
  .timeline .face{width:120px}
  .crew .ph img[src*="capt-"]{width:156.25%;left:var(--wx);top:var(--wy)}
  ol.crew>li.has-ph{grid-template-columns:168px minmax(0,1fr)}
  .crew li>.plate{width:168px}
}
/* Captains roster: Woody's text-only entry. Beside Jeremy's shorter plate it starts on Jeremy's
   text line and runs as a wider single block, so the cell reads as filled rather than waiting for a photo. */
@media(min-width:1000px){
  ol.crew>li.reveal-row:not(.has-ph){align-content:start;padding-left:24px;border-left:1px solid rgba(14,23,18,.3)}
  ol.crew>li.reveal-row:not(.has-ph)>p{max-width:34ch;font-size:19px;line-height:1.5}
}
/* Fare selector, phones: a clear gap before each group label. */
@media(max-width:860px){
  .tach .picker fieldset{margin-bottom:0}
  .tach .picker fieldset+fieldset{margin-top:20px}
  .tach .picker legend{margin-bottom:8px}
  .tach .picker>.readline{margin-top:20px}
}
/* Film to sunset: a slimmer credit strip and less empty sky before the itinerary. */
.film.band.tight{padding-bottom:40px}
.film .cap{margin-top:12px;padding-top:10px}
@media(max-width:860px){
  .film.band.tight{padding-bottom:24px}
  .film .cap{margin-top:10px;padding-top:8px;gap:2px}
  .js-motion .run .overlay{align-items:stretch;padding-top:76px}
  .js-motion .run .overlay .wrap{align-content:space-between}
}

/* Character fix p9, 2026-10-04 */
/* Proof strip: complete statements everywhere. Wraps instead of clipping below 1100px;
   on phones a static two-column list (no marquee), so every credential and its note read in full. */
@media(max-width:1100px){
  .proof ul{flex-wrap:wrap;justify-content:flex-start;gap:14px 32px}
  .proof li{white-space:normal;min-height:0}
}
@media(max-width:860px){
  .proof{padding-block:20px}
  .proof ul{animation:none;width:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
  .proof .dup{display:none}
  .proof li{display:block;font-size:16px;line-height:1.25;padding-right:0}
  .proof li:nth-child(5){grid-column:1 / -1}
  .proof li small{margin-top:5px;line-height:1.35}
}
/* Captains roster: Woody's text-only entry drops the isolated rule and sits on the same text
   column as the neighbouring profiles, at the same type size and spacing. */
ol.crew>li.reveal-row:not(.has-ph){border-left:0;padding-left:0;gap:8px 24px;align-content:start}
ol.crew>li.reveal-row:not(.has-ph)>p{max-width:46ch;font-size:16px;line-height:1.6}
@media(min-width:861px){
  ol.crew>li.reveal-row:not(.has-ph){padding-left:192px}
  ol.crew>li.reveal-row{padding-block:28px}
}
@media(max-width:860px) and (prefers-reduced-motion:reduce){.proof ul{gap:16px 20px!important}}
@media(max-width:860px){ol.crew>li.reveal-row:not(.has-ph){padding-left:0}ol.crew>li.reveal-row:not(.has-ph)>p{margin-top:10px}}

/* Character fix p10, 2026-10-04 */
/* Proof strip, desktop: the five statements sit side by side as a static row and wrap inside
   their own column, so every claim and its note can be read in full at 1440. */
@media(min-width:861px){
  .proof ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px 28px;width:auto;animation:none}
  .proof .dup{display:none}
  .proof li{display:block;white-space:normal;min-height:0;font-size:19px;line-height:1.2;text-wrap:balance}
  .proof li small{margin-top:6px;line-height:1.35;text-wrap:pretty}
}
@media(min-width:861px) and (max-width:1100px){
  .proof ul{grid-template-columns:repeat(3,minmax(0,1fr))}
  .proof li{font-size:17px}
}
/* Plan route caption: the short label keeps its line; the directions take the remaining width. */
@media(min-width:861px){
  .phero .bg .plate-cap span:first-child{flex:0 0 auto;white-space:nowrap}
  .phero .bg .plate-cap span:last-child{flex:1 1 auto;min-width:0;text-align:right}
}
/* Home fare selector, phones: tighter groups so the fare, minimum and booking call
   are on screen together after a choice. */
@media(max-width:860px){
  .tach .picker fieldset+fieldset{margin-top:10px}
  .tach .picker legend{margin-bottom:5px}
  .tach .picker .seg{gap:6px}
  .tach .picker>.readline{margin-top:10px;padding-top:10px}
  .tach .seg span{min-height:44px;padding-block:5px}
}
/* Captains roster, desktop: Woody's biography is set as a field note across the full cell,
   in the text face at a larger size, so the entry is composed without a portrait column. */
@media(min-width:861px){
  ol.crew>li.reveal-row:not(.has-ph){padding-left:0;grid-template-columns:minmax(0,1fr);grid-template-areas:"idx" "who" "bio";border-left:0}
  ol.crew>li.reveal-row:not(.has-ph)>p{max-width:24ch;font-size:clamp(22px,1.9vw,28px);line-height:1.3;letter-spacing:-.01em;color:var(--cypress);margin-top:14px;padding-top:16px;border-top:1px solid rgba(14,23,18,.3)}
}
/* Tours opening: the held sunset scene carries a field caption like the other openings. */
.phero .bg:has(>canvas[data-hold]){background:none}
.phero .bg>canvas[data-hold]{height:350px;background:#0e1712}
@media(max-width:860px){.phero .bg>canvas[data-hold]{height:250px}}
@media(min-width:861px) and (prefers-reduced-motion:reduce){.proof ul{gap:20px 28px!important}}
