:root{--sand:#f3ecd9;--sand2:#e9dfc4;--navy:#10253d;--navy2:#1b3a5c;--red:#a8302a;--ink:#1a2430;--line:rgba(16,37,61,.18)}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:'Public Sans',system-ui,sans-serif;color:var(--ink);background:var(--sand);font-size:1.03rem;line-height:1.65;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Alfa Slab One',Georgia,serif;font-weight:400;line-height:1.05;color:var(--navy)}
.mono,.eyebrow{font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;font-weight:500}
.eyebrow{color:var(--red);margin-bottom:.7rem;display:block}
.util{background:var(--navy);color:var(--sand);font-family:'IBM Plex Mono',monospace;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;padding:.45rem 0}
.util a{color:var(--sand);text-decoration:none;border-bottom:1px dotted rgba(243,236,217,.5)}
.util .sep{opacity:.4;margin:0 .6rem}
.site-nav{background:var(--sand);border-bottom:2px solid var(--navy)}
.site-nav .navbar-brand{display:flex;align-items:center;gap:.7rem;font-family:'Alfa Slab One',serif;color:var(--navy);font-size:1.35rem;line-height:1}
.site-nav .navbar-brand img{height:42px;width:auto}
.site-nav .navbar-brand small{display:block;font-family:'IBM Plex Mono',monospace;font-size:.6rem;letter-spacing:.16em;color:var(--red);margin-top:.25rem}
.site-nav .nav-link{font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;font-weight:500;color:var(--navy);padding:.5rem .8rem}
.site-nav .nav-link:hover{color:var(--red)}
.navbar-toggler{border-color:var(--navy)}
.btn-red,.btn-line{border-radius:0;font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;font-weight:500;padding:.8rem 1.4rem;border:2px solid var(--red);transition:.2s}
.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.btn-line{background:transparent;color:var(--navy);border-color:var(--navy)}.btn-line:hover{background:var(--navy);color:var(--sand)}
/* hero */
.hero{position:relative;padding:3rem 0 3.2rem;overflow:hidden}
.hero h1{font-size:clamp(2.7rem,7vw,5.6rem);letter-spacing:-.01em}
.hero h1 span{color:var(--red)}
.hero .lede{font-size:1.2rem;max-width:34rem;margin:1.2rem 0 1.6rem}
.hero-photo{position:relative;border:3px solid var(--navy);box-shadow:10px 10px 0 var(--red);background:#fff}
.hero-photo img{display:block;width:100%;height:clamp(300px,52vh,470px);object-fit:cover;object-position:50% 40%}
.chart-tag{position:absolute;left:-14px;bottom:18px;background:var(--navy);color:var(--sand);padding:.55rem .8rem;font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.4}
.chart-tag b{color:#f2c14e;font-weight:500}
.sound{position:absolute;font-family:'IBM Plex Mono',monospace;color:var(--navy);opacity:.16;font-size:.95rem;pointer-events:none;user-select:none}
.compass{position:absolute;right:-70px;top:-60px;width:260px;opacity:.12;pointer-events:none}
/* ticker facts */
.facts{background:var(--navy);color:var(--sand)}
.facts .f{padding:1.1rem .8rem;border-right:1px solid rgba(243,236,217,.2);text-align:center}
.facts .f:last-child{border-right:0}
.facts b{display:block;font-family:'Alfa Slab One',serif;font-weight:400;font-size:1.5rem;color:#f2c14e}
.facts span{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
section{padding:80px 0}
.sec-title{font-size:clamp(2rem,4.2vw,3.2rem);margin-bottom:1rem}
/* sounding divider */
.sounding{height:34px;background:repeating-linear-gradient(90deg,transparent 0 22px,var(--line) 22px 23px);mask:linear-gradient(#000,#000);border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;overflow:hidden;font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--navy);opacity:.55;white-space:nowrap;line-height:32px;letter-spacing:.9em}
/* rate board */
.board{background:var(--navy);color:var(--sand);padding:2rem 2rem 1.4rem;border:3px solid var(--navy);box-shadow:10px 10px 0 var(--red)}
.board h3{color:#f2c14e;font-size:1.5rem;margin-bottom:.2rem}
.board .grp{font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#f2c14e;margin:1.4rem 0 .3rem;opacity:.85}
.board ul{list-style:none;margin:0;padding:0}
.board li{display:flex;align-items:baseline;gap:.6rem;padding:.42rem 0}
.board li .d{flex:1;border-bottom:1px dotted rgba(243,236,217,.35);transform:translateY(-4px);min-width:12px}
.board li .p{font-family:'IBM Plex Mono',monospace;font-weight:500;color:#fff;white-space:nowrap}
.board li small{display:block;font-size:.78rem;opacity:.65;line-height:1.3}
.board .note{font-size:.82rem;opacity:.7;margin-top:1rem}
.svc-list{columns:2;column-gap:2rem;list-style:none;padding:0;margin:1.4rem 0}
.svc-list li{break-inside:avoid;padding:.5rem 0;border-bottom:1px solid var(--line);font-weight:500}
.svc-list li:before{content:"⚓︎";color:var(--red);margin-right:.6rem}
/* gallery */
.ph{position:relative;border:3px solid var(--navy);background:#fff;overflow:hidden}
.ph img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.ph.tall img{aspect-ratio:4/5}
.gal{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.gal .a{grid-column:span 7}.gal .b{grid-column:span 5}.gal .c{grid-column:span 4}.gal .d{grid-column:span 4}.gal .e{grid-column:span 4}
.gal .ph img{aspect-ratio:3/2;height:100%}
.cap{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin-top:.45rem}
/* history */
.history{background:var(--sand2);border-top:2px solid var(--navy);border-bottom:2px solid var(--navy)}
.tl{list-style:none;margin:0;padding:0;border-left:3px solid var(--navy)}
.tl li{position:relative;padding:0 0 1.4rem 1.6rem}
.tl li:before{content:"";position:absolute;left:-9px;top:.5rem;width:15px;height:15px;background:var(--red);border:3px solid var(--sand2);border-radius:50%;box-sizing:content-box;margin-left:-3px}
.tl .y{font-family:'Alfa Slab One',serif;color:var(--red);font-size:1.4rem;line-height:1.1}
.tl p{margin:.15rem 0 0}
/* crew */
.person{text-align:center}
.person img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 25%;border:3px solid var(--navy);background:#fff}
.person h3{font-family:'Alfa Slab One',serif;font-size:1.15rem;margin:.8rem 0 .1rem}
.person p{font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--red);margin:0}
.person.noimg .blank{aspect-ratio:3/4;border:3px solid var(--navy);background:var(--navy);color:#f2c14e;display:flex;align-items:center;justify-content:center;font-family:'Alfa Slab One',serif;font-size:3rem}
/* area */
.area-links a{display:inline-block;margin:.25rem .3rem .25rem 0;padding:.35rem .7rem;border:1px solid var(--navy);color:var(--navy);text-decoration:none;font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
.area-links a:hover{background:var(--navy);color:var(--sand)}
/* contact */
.contact{background:var(--navy);color:var(--sand)}
.contact h2,.contact h3{color:var(--sand)}
.contact .eyebrow{color:#f2c14e}
.contact a{color:#f2c14e}
.contact .big{font-family:'Alfa Slab One',serif;font-size:clamp(1.7rem,3.4vw,2.4rem);text-decoration:none;color:#fff;display:block;line-height:1.15}
.contact .lbl{font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#f2c14e;margin-top:1.2rem;display:block}
.contact iframe{width:100%;height:100%;min-height:360px;border:3px solid var(--sand)}
footer{background:#0a1827;color:rgba(243,236,217,.75);padding:2.2rem 0 1.2rem;font-size:.9rem}
footer a{color:#f2c14e}
footer img{height:56px;filter:none;background:var(--sand);padding:4px}
@media(max-width:991px){.hero-photo{margin-top:2rem;box-shadow:6px 6px 0 var(--red)}.chart-tag{left:6px}.facts .f{border-right:0;border-bottom:1px solid rgba(243,236,217,.2)}.gal .a,.gal .b,.gal .c,.gal .d,.gal .e{grid-column:span 12}.compass{display:none}}
@media(max-width:575px){section{padding:56px 0}.svc-list{columns:1}.util .hide-sm{display:none}.board{padding:1.4rem 1.1rem;box-shadow:6px 6px 0 var(--red)}.hero{padding-top:2rem}}
