/* Shared SVG controls and tuned phone layout */
.svg-icon{width:1em;height:1em;display:inline-block;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.14em}
.arrow .svg-icon,.underlined-link>.svg-icon{width:17px;height:17px}
.play-icon .svg-icon{width:13px;height:13px}
.program-arrow .svg-icon,.discipline-arrow .svg-icon{width:19px;height:19px}
.round-button{display:grid;place-items:center;padding:0}
.round-button .svg-icon,.lightbox-prev .svg-icon,.lightbox-next .svg-icon{width:19px;height:19px}
.ticker-track b .svg-icon{width:15px;height:15px;stroke-width:1.35}
.compass-rose .svg-icon{width:100%;height:100%;stroke-width:.8}
.discipline-watermark .svg-icon{width:1em;height:1em;stroke-width:.6}
.search-field>span .svg-icon,.search-fab>span .svg-icon{width:23px;height:23px}
.search-fab>span{display:grid;place-items:center}
.gallery-caption .svg-icon{width:14px;height:14px;vertical-align:-.2em}
.theme-symbol{display:grid;place-items:center}.theme-symbol .svg-icon{width:20px;height:20px}

/* First-visit welcome and voluntary anonymous-counting choice */
.welcome-dialog{width:min(900px,calc(100% - 28px));max-width:900px;max-height:calc(100svh - 28px);padding:0;border:1px solid rgba(209,232,223,.28);border-radius:28px;background:#0b2028;color:#f1f4ed;box-shadow:0 35px 120px rgba(0,0,0,.58);overflow:auto}
.welcome-dialog::backdrop{background:rgba(1,9,14,.76);backdrop-filter:blur(9px)}
.welcome-card{display:grid;grid-template-columns:.8fr 1.2fr;min-height:520px}
.welcome-art{position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 52% 40%,rgba(143,197,184,.2),transparent 48%),linear-gradient(150deg,#143943,#07171f)}
.welcome-art::after{position:absolute;inset:auto 0 0;height:30%;content:"";opacity:.4;background:repeating-radial-gradient(ellipse at 50% 115%,transparent 0 18px,rgba(190,220,211,.22) 19px 20px,transparent 21px 37px)}
.welcome-art svg{width:min(200px,64%);fill:none;stroke:#b9dacf;stroke-width:.8;filter:drop-shadow(0 0 26px rgba(168,217,202,.22));animation:welcome-drift 12s ease-in-out infinite}
.welcome-art>span{position:absolute;z-index:1;left:25px;bottom:20px;color:#a9c0be;font-size:8px;letter-spacing:.2em}
.welcome-copy{align-self:center;padding:clamp(26px,5vw,58px)}
.welcome-kicker{margin:0 0 18px;color:#e4a58b;font-size:9px;letter-spacing:.2em}
.welcome-copy h2{margin:0;color:#f4f2e9;font:400 clamp(38px,6vw,65px)/.98 var(--display,Georgia,serif);letter-spacing:-.05em}
.welcome-lead{margin:20px 0 14px;color:#e0e8df;font-size:15px;line-height:1.65}
.welcome-analytics{margin:0;color:#a6b9b9;font-size:11px;line-height:1.65}
.welcome-actions{display:grid;gap:9px;margin-top:23px}
.welcome-actions button{min-height:46px;padding:0 15px;border:1px solid rgba(194,220,211,.28);border-radius:12px;background:rgba(255,255,255,.04);color:#e4ece5;font-size:11px;text-align:left;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.welcome-actions button:hover{transform:translateY(-1px);border-color:#b4d9ce;background:rgba(168,217,202,.1)}
.welcome-actions .welcome-accept{border-color:#c3ddd1;background:#c3ddd1;color:#102b31;font-weight:650}
.welcome-actions .welcome-accept:hover{background:#e2eee7}
.welcome-privacy{display:inline-block;margin-top:15px;color:#a8c3bd;font-size:10px;text-decoration:underline;text-underline-offset:4px}
@keyframes welcome-drift{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(3deg) translateY(-6px)}}
#analytics-manage{border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer}

@media(max-width:760px){
 .welcome-dialog{width:min(520px,calc(100% - 22px));max-height:calc(100svh - 22px);border-radius:22px}
 .welcome-card{grid-template-columns:1fr;min-height:0}
 .welcome-art{min-height:128px}
 .welcome-art svg{width:94px}
 .welcome-art>span{left:15px;bottom:12px;font-size:7px}
 .welcome-copy{padding:22px 21px 24px}
 .welcome-kicker{margin-bottom:12px;font-size:8px}
 .welcome-copy h2{font-size:clamp(37px,11vw,51px)}
 .welcome-lead{margin:13px 0 9px;font-size:13px;line-height:1.5}
 .welcome-analytics{font-size:10px;line-height:1.5}
 .welcome-actions{gap:7px;margin-top:15px}
 .welcome-actions button{min-height:43px;font-size:10px}
 .welcome-privacy{margin-top:11px;font-size:9px}
}

@media(max-width:600px){
 html{overflow-x:clip}
 body{overflow-x:clip}
 .topbar{padding-inline:16px}
 .brand{gap:8px;min-width:0}
 .brand-name{font-size:11px;letter-spacing:.09em}
 .brand-name span{font-size:6px;letter-spacing:.13em}
 .top-actions{gap:9px}
 .icon-button{width:30px;height:34px}
 .menu-button{padding:8px 0}
 .hero{height: min(92svh,820px);min-height:560px;max-height:none}
 .hero-meta{top:82px;left:18px;right:18px;flex-wrap:wrap;gap:7px;font-size:6.5px;letter-spacing:.08em;line-height:1.5}
 .hero-content{width:100%;max-width:none;padding:0 18px 112px}
 .hero .eyebrow{gap:8px;margin-bottom:18px;font-size:7px;letter-spacing:.13em}
 .hero .eyebrow-line{width:22px}
 .hero h1{width:max-content;max-width:100%;font-size:clamp(52px,18.5vw,82px);letter-spacing:-.095em;line-height:.88;white-space:normal;overflow-wrap:normal;margin-bottom:20px}
 .hero-lead{max-width:34ch;font-size:13px;line-height:1.55}
 .hero-cta{flex-wrap:wrap;gap:12px 17px;margin-top:22px}
 .hero-cta .button{min-height:43px;gap:12px;padding-inline:13px;font-size:9px}
 .hero-link{font-size:9px}
 .play-icon{width:24px;height:24px}
 .hero-bottom{left:18px;right:18px;bottom:16px}
 .scroll-label{gap:8px;font-size:6px;letter-spacing:.1em}
 .scroll-stem{height:20px}
 .hero-coordinate{display:none}
 .hero-index{right:18px;bottom:74px;font-size:7px}
 .ticker{height:38px}
 .ticker-track{gap:22px;font-size:7px;letter-spacing:.18em}
 .ticker-track b{display:grid;place-items:center}
 .section-pad{padding:63px 18px}
 .section-kicker{font-size:7px;letter-spacing:.13em}
 .display-title{font-size:clamp(43px,12.5vw,64px);line-height:.98;overflow-wrap:normal}
 .intro-grid,.academy-heading,.crews-head,.story-grid{gap:20px;margin-top:28px}
 .intro-grid{margin-bottom:28px}
 .intro-grid .display-title{max-width:100%}
 .large-copy{font-size:14px;line-height:1.65}
 .intro-image-wrap{height:clamp(250px,82vw,370px)}
 .facts{padding-block:58px}
 .facts-head{margin:27px 0 25px}
 .facts-head h2{font-size:clamp(43px,13vw,58px);line-height:.98}
 .facts-head p{font-size:12px;line-height:1.55}
 .fact-num{font-size:56px}
 .academy-heading{margin-bottom:24px}
 .academy-aside{max-width:none}
 .academy-aside p{font-size:12px;line-height:1.6}
 .discipline-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .discipline-card{height:clamp(205px,64vw,255px);min-width:0;padding:12px;border-radius:17px}
 .discipline-text{left:12px;right:12px;bottom:14px}
 .discipline-text h3{font-size:clamp(18px,5.8vw,23px);line-height:1.02}
 .discipline-text p{max-width:25ch;font-size:8px;line-height:1.45}
 .discipline-arrow{right:10px;bottom:10px}
 .discipline-arrow .svg-icon{width:15px;height:15px}
 .discipline-topline{font-size:6px;letter-spacing:.1em}
 .discipline-watermark{right:0;font-size:clamp(105px,35vw,155px)}
 .discipline-icon{width:22px;height:22px;display:grid;place-items:center}
 .discipline-icon .svg-icon{width:21px;height:21px}
 .crews-head{margin-bottom:22px}
 .crews-intro p{font-size:12px;line-height:1.55}
 .slider-controls{gap:8px}
 .round-button{width:42px;height:42px}
 .crew-track{gap:10px;padding-right:18px;padding-bottom:12px;scroll-padding-left:0}
 .crew-card{flex-basis:min(78vw,310px)}
 .crew-image{height:clamp(180px,58vw,225px);border-radius:16px}
 .crew-card h3{font-size:21px;margin:12px 0 5px}
 .crew-card p{font-size:9px}
 .small-source{font-size:7px;line-height:1.55}
 .story-grid{margin-top:28px}
 .story-lead{font-size:13px;line-height:1.6;margin:16px 0}
 .timeline-item{grid-template-columns:58px minmax(0,1fr);gap:10px;padding:17px 0}
 .timeline-item h3{font-size:12px}
 .timeline-item p{font-size:9px;line-height:1.55}
 .programs-head,.gallery-heading{margin:28px 0}
 .programs-head p,.gallery-heading p{font-size:12px;line-height:1.6}
 .program-row{grid-template-columns:24px minmax(0,1fr) 18px;gap:8px;min-height:68px}
 .program-name{font-size:14px;line-height:1.2}
 .program-arrow .svg-icon{width:15px;height:15px}
 .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:clamp(155px,57vw,215px) 132px 132px;gap:7px}
 .gallery-caption{font-size:6px;letter-spacing:.09em}
 .gallery-caption .svg-icon{width:12px;height:12px}
 .closing-visual{height:min(560px,125vw);min-height:390px}
 .closing-copy{left:18px;right:18px}
 .closing-copy h2{font-size:clamp(49px,15vw,68px);line-height:.95}
 .closing-copy .button{max-width:100%;font-size:9px}
 .illustration-note{max-width:44%;font-size:5px;line-height:1.4}
 .footer{padding:32px 18px 18px}
 .footer-top{grid-template-columns:1fr auto;gap:14px;padding-bottom:22px}
 .footer-top>p{font-size:9px;line-height:1.55}
 .footer-bottom nav{display:flex;flex-wrap:wrap;gap:10px 13px}
 .footer-bottom nav a{font-size:7px}
 .menu-overlay{grid-template-rows:66px 1fr}
 .menu-links a{padding:10px 0}
 .menu-links a b{font-size:clamp(20px,6vw,24px)}
 .search-fab{right:11px;bottom:11px;width:40px;height:40px}
 .search-dialog{width:calc(100% - 20px);max-height:calc(100svh - 24px);padding:28px 17px}
 .lightbox{width:calc(100% - 16px);max-width:none;padding:38px 31px 16px}
 .lightbox>img{max-height:75svh}
 .lightbox-prev .svg-icon,.lightbox-next .svg-icon{width:16px;height:16px}
}

@media(max-width:380px){
 .topbar{padding-inline:13px}
 .brand-name{font-size:10px}
 .top-actions{gap:6px}
 .hero{min-height:540px}
 .hero h1{font-size:clamp(48px,17vw,65px)}
 .hero-lead{font-size:12px}
 .hero-content{padding-inline:15px;padding-bottom:103px}
 .section-pad{padding-inline:15px}
 .discipline-grid{grid-template-columns:1fr}
 .discipline-card{height:205px}
 .discipline-text h3{font-size:23px}
 .crew-card{flex-basis:82vw}
 .facts-head h2{font-size:42px}
 .gallery-grid{grid-template-rows:155px 120px 120px}
}

@media(prefers-reduced-motion:reduce){.welcome-art svg{animation:none}.welcome-actions button{transition:none}}

/* Refined first visit panel and consistent inline SVG geometry. */
.svg-icon{width:1.15em;height:1.15em;stroke-width:1.8;vertical-align:-.18em;shape-rendering:geometricPrecision}
.svg-arrow-left,.svg-arrow-right,.svg-arrow-up,.svg-arrow-diagonal{stroke-width:1.9}
.round-button,.to-top,.lightbox-prev,.lightbox-next{display:grid;place-items:center}
.round-button .svg-icon,.to-top .svg-icon,.lightbox-prev .svg-icon,.lightbox-next .svg-icon{width:20px;height:20px;vertical-align:0}
.welcome-dialog{width:min(790px,calc(100% - 30px));border-radius:30px;background:#0b2028;color:#f4f2e9}
.welcome-card{grid-template-columns:.72fr 1.28fr;min-height:0}
.welcome-art{min-height:440px;background:radial-gradient(ellipse at 50% 43%,rgba(165,211,198,.22),transparent 45%),linear-gradient(155deg,#17434b 0%,#0d2932 58%,#07171f 100%)}
.welcome-art svg{width:min(172px,58%);stroke-width:1.05}
.welcome-copy{padding:clamp(28px,4.3vw,52px)}
.welcome-kicker{display:flex;align-items:center;gap:9px}
.welcome-kicker::before{content:"";width:23px;height:1px;background:#dc9b7e}
.welcome-copy h2{font-size:clamp(42px,5.5vw,62px);line-height:.96;letter-spacing:-.055em}
.welcome-lead{font-size:14px;line-height:1.6}
.welcome-analytics{padding-top:12px;border-top:1px solid rgba(199,220,211,.17);font-size:11px;line-height:1.6}
.welcome-actions button{font-size:12px;border-radius:14px}
.welcome-actions .welcome-accept{display:flex;justify-content:space-between;align-items:center}
.welcome-actions .welcome-accept::after{content:"";width:8px;height:8px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);margin-right:3px}
.welcome-privacy{font-size:11px}
@media(max-width:760px){
 .welcome-dialog{width:min(490px,calc(100% - 22px));max-height:calc(100svh - 22px);border-radius:23px}
 .welcome-card{grid-template-columns:1fr}
 .welcome-art{min-height:94px;max-height:94px}
 .welcome-art svg{width:66px}
 .welcome-art>span{font-size:7px;left:16px;bottom:10px}
 .welcome-copy{padding:18px 20px 20px}
 .welcome-kicker{font-size:8px;margin-bottom:10px}
 .welcome-copy h2{font-size:clamp(36px,10.8vw,46px);line-height:.99}
 .welcome-lead{font-size:13px;line-height:1.52;margin:12px 0 10px}
 .welcome-analytics{font-size:10px;line-height:1.52;padding-top:10px}
 .welcome-actions{margin-top:13px;gap:7px}
 .welcome-actions button{min-height:43px;font-size:10px}
 .welcome-privacy{font-size:9px;margin-top:10px}
}

.welcome-dialog button:focus-visible,.welcome-dialog a:focus-visible{outline:2px solid #e7a68a;outline-offset:3px}
@media(hover:none),(pointer:coarse){
 .program-row:hover{padding:0;background:transparent;color:inherit}
 .crew-card:hover,.ocean-gallery figure:hover,.ocean-photo:hover{transform:none}
 .ocean-gallery figure:hover img,.ocean-photo:hover img{transform:none;filter:none}
 .gallery-item:hover img{transform:none}
}

.custom-page-public{min-height:calc(100svh - 150px);max-width:1000px;margin:0 auto;padding:160px 36px 80px}
.custom-page-hero{max-width:820px;margin-bottom:50px}
.custom-page-hero h1{margin:24px 0 16px;font:400 clamp(48px,8vw,92px)/.96 var(--display,Georgia,serif);letter-spacing:-.055em;overflow-wrap:anywhere}
.custom-page-date{color:var(--muted);font-size:11px;letter-spacing:.08em}
.custom-page-body{max-width:760px;border-left:1px solid var(--line);padding-left:clamp(20px,4vw,48px)}
.custom-page-body p{margin:0 0 1.4em;color:var(--muted);font-size:clamp(15px,1.4vw,18px);line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}
.custom-page-body p.custom-page-lead{color:var(--text);font-size:clamp(18px,2vw,24px);line-height:1.65}
.custom-page-error{padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.custom-page-home{display:inline-flex;gap:12px;align-items:center;margin-top:42px;color:var(--accent);font-size:12px}
.custom-page-footer{display:flex;justify-content:space-between;gap:20px;padding:24px 5vw;border-top:1px solid var(--line);color:var(--muted);font-size:9px;letter-spacing:.11em}
@media(max-width:600px){.custom-page-public{padding:126px 20px 60px}.custom-page-hero{margin-bottom:33px}.custom-page-hero h1{font-size:clamp(43px,13vw,62px)}.custom-page-body{padding-left:18px}.custom-page-body p{font-size:14px}.custom-page-body p.custom-page-lead{font-size:18px}.custom-page-footer{flex-direction:column;font-size:8px}}

@media(max-width:600px){
 .rank-section{width:calc(100% - 36px);margin:38px auto}
 .rank-ladder{grid-template-columns:minmax(0,1fr);gap:9px}
 .rank-ladder article{min-width:0;min-height:0;padding:18px;border-radius:16px}
 .rank-ladder h3{margin:14px 0 8px;font-size:20px}
 .rank-ladder p{font-size:12px;line-height:1.6}
}

.rank-ladder article,.discipline-text-grid article,.shift-info-grid article,.custom-page-body,.admin-pages-card{border-radius:20px}
@media(hover:hover) and (pointer:fine){
 .rank-ladder article,.discipline-text-grid article,.shift-info-grid article,.legend-tile,.crew-stop,.shift-card{transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .35s}
 .rank-ladder article:hover,.discipline-text-grid article:hover,.shift-info-grid article:hover,.legend-tile:hover,.crew-stop:hover,.shift-card:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(0,0,0,.16);border-color:color-mix(in srgb,var(--accent),transparent 35%)}
}
@media(prefers-reduced-motion:reduce){.rank-ladder article,.discipline-text-grid article,.shift-info-grid article,.legend-tile,.crew-stop,.shift-card{transition:none!important}}
