/* VICAR's original type and pink, with continuous media panels. */
html.tidal-site {
  --display:"Fraunces","Iowan Old Style",Georgia,serif;
  --serif:"Instrument Serif","Iowan Old Style",Georgia,serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --maxw:1280px; --gutter:clamp(22px,4.5vw,64px);
  --bone:#F4EFE6; --ink:#F4EFE6; --text:#c5d2df; --navy:#050B14;
  --magenta:#ED008C; --magenta-deep:var(--magenta); --magenta-soft:var(--magenta);
  --statement-size:clamp(18px,1.55vw,22px);
  --glass:rgba(29,60,87,.32); --glass-line:rgba(185,220,239,.2);
  scroll-padding-top:28px; scroll-behavior:smooth;
}
.tidal-site body { background:var(--navy); color:var(--bone); font:400 16px/1.7 var(--display); overflow-x:clip; }
.tidal-site body,.tidal-site :is(.project,.platform,.outreach-card,.person) { cursor:auto; }
.tidal-site :is(button,a,[role="button"],summary) { cursor:pointer; }
.tidal-site :is(button,a,summary):focus-visible { outline:2px solid var(--magenta-soft); outline-offset:5px; }
.tidal-site :is(.hero-grid,.hero-noise,.hero-video-fallback,.section-divider,.bathy,.section-num,.hero h1 .the) { display:none; }
/* Original bathymetric curves reappear at selected transitions without adding space. */
.tidal-site #top + .bathy { display:block; z-index:4; height:48px; margin-top:-48px; background:transparent; pointer-events:none; }
.tidal-site #top + .bathy rect { display:none; }
.tidal-site :is(#projects,#outreach,#publications) + .section-divider { display:block; height:40px; margin-block:-20px; background:transparent; pointer-events:none; }
.tidal-site :is(.bathy,.section-divider) svg g { stroke:var(--magenta); stroke-opacity:.5; }
.tidal-site :is(.bathy,.section-divider) svg path { vector-effect:non-scaling-stroke; }
.tidal-site .reveal { opacity:1; transform:none; transition:none; }
.tidal-site section { padding:62px var(--gutter); background:transparent; color:var(--bone); }
.tidal-site .wrap { width:100%; max-width:var(--maxw); margin:0 auto; }
.tidal-site :is(.section-head,.project,.platform,.person,.post,.repo,.outreach-card) > * { min-width:0; }
.tidal-site .tidal-icon { display:block; width:20px; height:20px; flex:none; filter:invert(1); }

/* One menu button keeps navigation available without a header banner. */
.tidal-site .nav { position:absolute; top:24px; right:var(--gutter); width:auto; z-index:50; background:none; border:0; backdrop-filter:none; }
.tidal-site .nav-inner { width:auto; margin:0; padding:0; }
.tidal-site .nav-toggle { display:flex; align-items:center; justify-content:center; padding:12px; width:46px; height:46px; border:0; border-radius:16px; background:rgba(10,30,48,.35); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.tidal-site .mobile-menu { background:rgba(5,11,20,.96); backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px); }
.tidal-site .mobile-menu a { font:400 clamp(25px,5vh,36px)/1.3 var(--display); letter-spacing:-.03em; }
.tidal-site .mobile-menu a .num { display:none; }
.tidal-site .mobile-close { top:22px; right:22px; width:46px; height:46px; padding:13px; border:0; border-radius:16px; background:var(--glass); }

.tidal-site .hero { min-height:590px; height:68svh; max-height:790px; padding:46px 0 110px; display:flex; align-items:start; background:#09273b; }
.tidal-site .hero-video { opacity:1; filter:saturate(.92) brightness(.94); object-position:center; }
.tidal-site .hero-vignette { background:linear-gradient(180deg,#050b1455 0%,#050b1400 65%,#050B14 100%); }
.tidal-site .hero-inner { position:relative; width:min(calc(100% - 2 * var(--gutter)),var(--maxw)); max-width:none; margin:0 auto; padding:0; }
.tidal-site .hero h1 { font:500 clamp(64px,8.3vw,112px)/.93 var(--display); letter-spacing:-.035em; color:var(--bone); margin:0 0 22px; }
.tidal-site .hero h1 .wordmark { line-height:.95; }
.tidal-site .hero h1 .lab { font:italic 400 1.08em/.85 var(--serif); letter-spacing:-.025em; color:var(--magenta); margin-left:.04em; transform:none; }
.tidal-site .hero-sub { width:100%; max-width:610px; margin:0; padding:0; font:300 clamp(17px,1.65vw,21px)/1.6 var(--display); color:var(--bone); background:none; border:0; border-radius:0; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; }
.tidal-site .hero-sub em { font:italic 400 1.12em/1.4 var(--serif); color:var(--magenta-soft); }
.tidal-site .sponsor-logos { position:absolute; z-index:2; left:50%; right:auto; transform:translateX(-50%); width:max-content; bottom:42px; display:flex; align-items:center; justify-content:center; gap:24px; flex-wrap:nowrap; max-width:calc(100% - 2 * var(--gutter)); margin:0; }
.tidal-site .sponsor-logos:empty { display:none; }
.tidal-site .sponsor-logo { min-width:0; width:64px; height:64px; object-fit:contain; filter:none; opacity:1; }
.tidal-site .sponsor-logo--nasa { width:80px; }
.tidal-site .sponsor-logo--oceankind { width:95px; }
.tidal-site .sponsor-logo--dpnr { border-radius:50%; }
.tidal-site .hero-lab-logo { display:block; width:min(485px,76%); height:auto; max-height:none; object-fit:contain; object-position:left center; }

/* The short mission stays visible; the extended About section opens on request. */
.tidal-site .project-intro { padding:20px var(--gutter) 48px; }
.tidal-site .project-intro .wrap { max-width:var(--maxw); }
.tidal-site .project-intro p { max-width:970px; margin:0 0 17px; font:400 clamp(17px,1.6vw,21px)/1.65 var(--display); color:var(--text); }
.tidal-site .project-intro a { display:inline-block; margin-top:3px; color:var(--magenta-soft); font:400 14px/1.6 var(--mono); text-decoration:none; }
.tidal-site #about { padding-block:44px; background:none; border:0; }
.tidal-site .about-details { width:100%; }
.tidal-site .about-toggle { display:flex; align-items:center; gap:12px; padding:0; border:0; background:none; color:inherit; font:inherit; letter-spacing:inherit; }
.tidal-site .about-chevron { margin-left:8px; width:19px; height:19px; transition:transform .25s ease; }
.tidal-site .about-toggle[aria-expanded="true"] .about-chevron { transform:rotate(90deg); }
.tidal-site .about-detail-content { display:grid; grid-template-columns:1.25fr .8fr; gap:48px; padding:32px 0 8px; align-items:start; }
.tidal-site .about-detail-content[hidden] { display:none; }
.tidal-site .about-prose { columns:auto; }
.tidal-site .about-prose p { font:400 16px/1.8 var(--display); color:var(--text); margin:0 0 22px; }
.tidal-site .about-prose p:first-child::first-letter { float:none; font:inherit; color:inherit; padding:0; }
.tidal-site .about-prose a { color:var(--magenta-soft); }
.tidal-site .about-press { font:400 11px/1.6 var(--mono); text-decoration:none; }
.tidal-site .bleaching-feature { margin:0; }
.tidal-site .bleaching-photo { border-radius:22px; overflow:hidden; aspect-ratio:4/3; }
.tidal-site :is(.lab-photo-caption,.lab-photo-caption .line.dim,.team-photo figcaption) { color:#a3b4c5; font:400 10px/1.7 var(--mono); letter-spacing:0; text-transform:none; border:0; }

/* Every section shares the same outer grid; content widths give each reel its rhythm. */
.tidal-site .section-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:15px; margin:0 0 24px; align-items:center; }
.tidal-site .section-title { margin:0; font:500 clamp(30px,3.4vw,45px)/1.12 var(--display); letter-spacing:-.035em; color:var(--bone); }
.tidal-site .section-title em { font:italic 400 1.08em/1 var(--serif); color:var(--magenta-soft); }
.tidal-site .section-head .section-lede { grid-column:1/-1 !important; max-width:none; font:400 var(--statement-size)/1.7 var(--display); color:var(--text) !important; margin:0; }
.tidal-site #projects { padding-top:14px; padding-bottom:44px; }
.tidal-site #projects .section-title { color:var(--magenta); font-style:normal; letter-spacing:0; }
.tidal-site .reel-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin:40px 0 22px; }
.tidal-site .approaches-head { margin:0 !important; font:500 clamp(30px,3.4vw,45px)/1.12 var(--display); letter-spacing:0; color:var(--magenta-soft) !important; }
.tidal-site .reel-controls { display:flex; gap:2px; align-items:center; justify-self:end; }
.tidal-site .reel-controls button { display:inline-flex; align-items:center; justify-content:center; flex:none; border:0; border-radius:0; background:none; box-shadow:none; backdrop-filter:none; color:var(--bone); transition:opacity .2s,color .2s; }
.tidal-site .reel-controls :is(.reel-previous,.reel-next) { width:32px; height:36px; padding:8px; opacity:.7; }
.tidal-site .reel-controls :is(.reel-previous,.reel-next) .tidal-icon { width:16px; height:16px; }
.tidal-site .reel-controls button:hover { opacity:1; color:var(--magenta-soft); }
.tidal-site .reel-controls button:disabled { opacity:.2; cursor:default; }
.tidal-site .panel-reel { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; gap:0; padding:0; margin:0; scrollbar-width:none; align-items:stretch; background:none; border:0; }
.tidal-site .panel-reel:focus-visible { outline:2px solid var(--magenta-soft); outline-offset:4px; }
.tidal-site .panel-reel > * { flex:0 0 48%; min-width:0; scroll-snap-align:start; }
.tidal-site .project-reel .project { position:relative; display:flex; flex-direction:column; align-items:stretch; gap:0; margin-block:0; margin-left:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:hidden; }
.tidal-site .project-media { order:0; aspect-ratio:16/9; border:0; width:100%; }
.tidal-site .project-video { width:100%; height:100%; object-fit:contain; }
.tidal-site .project-media video { width:100%; height:100%; object-fit:contain; border:0; border-radius:0; }
.tidal-site .project-body { order:1; display:flex; width:100%; gap:14px; padding:22px; color:var(--bone); }
.tidal-ready .project-reel .project-body { position:relative; z-index:1; margin-top:0; min-height:76px; padding:20px 24px; background:none; border:0; box-shadow:none; }
.tidal-site .project-title { font:400 var(--statement-size)/1.3 var(--display); letter-spacing:-.01em; color:var(--bone); margin:0; }
.tidal-site .project-body p { font:400 16px/1.7 var(--display); color:var(--text); }
.tidal-ready .project-reel .project-body p { display:none; }
.tidal-site :is(.project-open,.panel-open) { position:absolute; inset:0; z-index:2; width:100%; height:100%; padding:0; border:0; background:none; border-radius:inherit; color:inherit; }
.tidal-site :is(.project-open,.panel-open):focus-visible { outline:2px solid var(--magenta-soft); outline-offset:-4px; }

/* Tools use larger image-led panels with specifications in their detail view. */
.tidal-site .fleet.panel-reel { gap:0; }
.tidal-site .fleet.panel-reel > .platform { flex-basis:28%; position:relative; padding:0; gap:0; border:0; border-radius:0; overflow:hidden; background:transparent; box-shadow:none; }
.tidal-site .platform-img { width:100%; margin:0; border:0; aspect-ratio:1/1; border-radius:0; overflow:hidden; }
.tidal-site .platform-img :is(img,video) { object-fit:contain; }
.tidal-site .platform h4 { font:400 25px/1.2 var(--display); color:var(--bone); margin:0; padding:20px 48px 23px 22px; }
.tidal-site .platform h4 em { font:inherit; color:inherit; }
.tidal-ready .fleet.panel-reel .platform h4 { position:relative; z-index:1; margin-top:0; min-height:82px; padding-top:20px; }
.tidal-ready .fleet.panel-reel .platform > :is(.platform-head,p,.specs) { display:none; }
.tidal-site .platform-head { display:flex; gap:12px; padding:15px 0; }
.tidal-site :is(.platform-id,.platform-count,.outreach-tag,.person .role) { font:400 10px/1.6 var(--mono); color:var(--magenta-soft); }
.tidal-site .specs { color:var(--text); }

/* Code is a denser text panel; outreach uses a wider photographic frame. */
.tidal-site .repos { margin:0; padding:0; border:0; background:none; box-shadow:none; }
.tidal-site .repo-list.panel-reel { gap:0; border-radius:28px; background:linear-gradient(115deg,#21142c,#0a1b2b); }
.tidal-site .repo-list.panel-reel > .repo { display:flex; flex-direction:column; gap:15px; flex-basis:32%; min-width:0; padding:25px; border:0; border-radius:0; background:none; box-shadow:none; text-decoration:none; }
.tidal-site .repo::before { display:none; }
.tidal-site .repo .name { overflow-wrap:anywhere; font:500 15px/1.5 var(--mono); letter-spacing:0; color:var(--magenta-soft); }
.tidal-site .repo .meta { font:400 12px/1.6 var(--mono); letter-spacing:0; color:#d3ddea; }
.tidal-site .repo .desc { font:400 15px/1.7 var(--display); color:var(--text); }
.tidal-site .repo:hover { background:linear-gradient(135deg,#25142e,#101629); }
.tidal-site .outreach-grid.panel-reel { gap:0; }
.tidal-site .outreach-grid.panel-reel > .outreach-card { flex-basis:62%; padding:0; position:relative; border:0; border-radius:0; background:transparent; overflow:hidden; }
.tidal-site .outreach-img { aspect-ratio:16/9; border:0; border-radius:0; overflow:hidden; }
.tidal-site .outreach-body { padding:22px; }
.tidal-site .outreach-card h4 { font:400 24px/1.25 var(--display); color:var(--bone); }
.tidal-ready .outreach-grid.panel-reel .outreach-body > :is(p,.stat) { display:none; }
.tidal-site .outreach-card p,.tidal-site .outreach-card .stat { color:var(--text); }
.tidal-site .outreach-card .stat { font:400 11px/1.6 var(--mono); }
.tidal-ready .outreach-grid.panel-reel .outreach-body { position:relative; z-index:1; margin-top:0; min-height:105px; padding-top:20px; }

/* Media details remain centered, with their complete original content. */
.tidal-site .project-dialog { width:min(960px,calc(100vw - 48px)); max-width:none; max-height:calc(100dvh - 48px); padding:0; margin:auto; color:var(--bone); background:rgba(8,22,38,.96); border:1px solid #c76c9c38; border-radius:25px; box-shadow:0 30px 100px #0009; backdrop-filter:blur(26px); -webkit-backdrop-filter:blur(26px); overflow:auto; overscroll-behavior:contain; }
.tidal-site .project-dialog::backdrop { background:rgba(0,6,16,.75); backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px); }
.tidal-site .project-dialog [hidden] { display:none; }
.tidal-site .dialog-header { display:flex; align-items:center; gap:24px; justify-content:space-between; padding:22px 26px; position:sticky; top:0; z-index:2; background:#091727f5; border:0; }
.tidal-site .dialog-header h2 { font:500 25px/1.3 var(--display); letter-spacing:-.025em; margin:0; }
.tidal-site .dialog-close { display:flex; align-items:center; justify-content:center; width:44px; height:44px; flex:none; border:0; border-radius:14px; padding:12px; background:#ED008C20; color:white; }
.tidal-site .dialog-video,.tidal-site .dialog-image { display:block; width:100%; max-height:57dvh; object-fit:contain; background:#030811; }
.tidal-site .dialog-video { aspect-ratio:16/9; }
.tidal-site .dialog-description { padding:24px 30px 30px; }
.tidal-site .dialog-description p { max-width:76ch; margin:0 0 18px; color:#d0dcea; font:400 17px/1.75 var(--display); }
.tidal-site .dialog-description p:last-child { margin-bottom:0; }
.tidal-site .dialog-description .specs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 22px; margin-top:20px; padding-top:18px; border-top:1px solid #ED008C40; font:400 12px/1.6 var(--mono); }
.tidal-site .dialog-description :is(.outreach-body,.platform-head) { padding:0; }
.tidal-site .dialog-description :is(.outreach-body h4,.platform-head) { margin-bottom:16px; }

/* People and reading sections interrupt the horizontal rhythm. */
.tidal-site .people { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; background:none; border:0; }
.tidal-site .person { padding:24px; min-width:0; border:0; border-radius:22px; background:#07101b; }
.tidal-site .person:hover { background:#171d30; }
.tidal-site .person-portrait { width:104px; height:104px; border-radius:50%; overflow:hidden; }
.tidal-site .person h4 { font:400 22px/1.25 var(--display); color:var(--bone); }
.tidal-site .person .blurb { color:var(--text); }
.tidal-site .person .links a { color:var(--magenta-soft); }
.tidal-site .people-head .label { color:var(--text); border:0; }
.tidal-site .people-head h3 { font:400 25px/1.3 var(--display); }
.tidal-site .people-head h3 em { font:italic 400 1.1em/1 var(--serif); color:var(--magenta-soft); }
.tidal-site .team-photo { margin:0 0 32px; }
.tidal-site .team-photo img { aspect-ratio:auto; height:auto; object-fit:contain; border-radius:22px; }
.tidal-site .recruiting { padding:24px 0; margin-top:24px; border:0; background:none; }
.tidal-site :is(.recruiting p,.pubs-lede,.contact-prose,.contact-role,.contact-name) { color:var(--text); }
.tidal-site .pubs-block { margin:0; max-width:none; }
.tidal-site .pub-link { color:var(--bone); padding:22px 24px; border:0; border-radius:20px; background:#07101b; }
.tidal-site .pub-label { color:var(--bone); }
.tidal-site .pub-target { color:var(--magenta-soft); }
.tidal-site #pings .post { padding:28px; color:var(--bone); border:0; border-radius:22px; background:#07101b; }
.tidal-site #pings :is(.post .full p,.post .excerpt,.post--empty p,.post .full ul,.post .full ol,.share a,.share button,.share .share-lbl,.post .tags .tg,.tagf) { color:var(--text); }
.tidal-site #pings .post h4 { color:var(--bone); font:500 28px/1.2 var(--display); letter-spacing:-.025em; }
.tidal-site #pings .tagf { border-color:#ED008C44; border-radius:12px; padding:9px 13px; }
.tidal-site #pings .tagf.active { background:var(--magenta); color:white; }
.tidal-site #pings .post .full img { border-radius:15px; }
.tidal-site #pings :is(.post .date,.post .caret) { color:var(--magenta-soft); }
.tidal-site .contact-card { max-width:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; padding:30px; border:0; border-radius:22px; background:#07101b; }
.tidal-site .contact-row { padding:0; margin:0; min-width:0; }
.tidal-site .contact-row--recruit { grid-column:1/-1; max-width:760px; }
.tidal-site .contact-link { color:var(--magenta-soft); overflow-wrap:anywhere; }
.tidal-site section.footer-image { padding:0; }
.tidal-site .footer { padding-inline:var(--gutter); background:#050b14; }
.tidal-site :is(.footer-grid,.footer-bottom) { width:100%; max-width:var(--maxw); margin-inline:auto; }

@media(max-width:1050px) {
  .tidal-site .people { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tidal-site .fleet.panel-reel > .platform { flex-basis:43%; }
  .tidal-site .repo-list.panel-reel > .repo { flex-basis:43%; }
}
@media(max-width:719px) {
  html.tidal-site { --gutter:22px; scroll-padding-top:20px; }
  .tidal-site section { padding-block:42px; }
  .tidal-site .nav { top:20px; }
  .tidal-site .nav-inner { gap:14px; }
  .tidal-site .hero { min-height:535px; height:70svh; max-height:680px; padding:56px 0 100px; }
  .tidal-site .hero-video { object-position:55% center; }
  .tidal-site .hero h1 { font-size:clamp(51px,14vw,84px); margin-bottom:22px; }
  .tidal-site .hero-sub { font-size:17px; line-height:1.5; }
  .tidal-site .sponsor-logos { gap:18px; bottom:28px; }
  .tidal-site .sponsor-logo { width:48px; height:48px; }
  .tidal-site .sponsor-logo--nasa { width:62px; }
  .tidal-site .sponsor-logo--oceankind { width:71px; }
  .tidal-site .hero-lab-logo { width:min(86%,360px); height:auto; max-height:none; }
  .tidal-site #about { padding-block:32px; }
  .tidal-site .project-intro { padding-block:15px 30px; }
  .tidal-site .about-detail-content { grid-template-columns:1fr; gap:28px; padding-top:25px; }
  .tidal-site .about-prose p { font-size:16px; }
  .tidal-site .section-title { font-size:30px; }
  .tidal-site .section-head { margin-bottom:20px; gap:12px; }
  .tidal-site #projects { padding-top:14px; padding-bottom:28px; }
  .tidal-site .reel-controls { gap:0; }
  .tidal-site .reel-controls :is(.reel-previous,.reel-next) { width:29px; }
  .tidal-site .panel-reel { gap:0; }
  .tidal-site .panel-reel > * { flex-basis:87%; }
  .tidal-site .project-reel .project { border-radius:0; }
  .tidal-site .project-media { aspect-ratio:16/9; }
  .tidal-site .project-title { font-size:var(--statement-size); }
  .tidal-ready .project-reel .project-body { min-height:76px; margin-top:0; padding:18px; }
  .tidal-site .reel-heading { margin-top:30px; gap:14px; }
  .tidal-site .approaches-head { font-size:30px; }
  .tidal-site .fleet.panel-reel > .platform { flex-basis:70%; border-radius:0; }
  .tidal-site .platform h4 { font-size:24px; padding:18px 40px 21px 18px; }
  .tidal-site .repo-list.panel-reel > .repo { flex-basis:88%; padding:22px; }
  .tidal-site .repo .name { font-size:13px; }
  .tidal-site .outreach-grid.panel-reel > .outreach-card { flex-basis:91%; }
  .tidal-site .outreach-body { padding:20px; }
  .tidal-site .outreach-card h4 { font-size:23px; }
  .tidal-site .people { gap:15px; }
  .tidal-site .person { padding:17px; border-radius:19px; }
  .tidal-site .person-portrait { width:78px; height:78px; border-radius:50%; }
  .tidal-site .person h4 { font-size:18px; }
  .tidal-site .person .role { font-size:9px; }
  .tidal-site .people-head { align-items:start; gap:20px; }
  .tidal-site .people-head .label { font-size:9px; }
  .tidal-site .team-photo img { aspect-ratio:auto; }
  .tidal-site .contact-card { padding:24px; grid-template-columns:minmax(0,1fr); }
  .tidal-site .contact-row--recruit { grid-column:1; }
  .tidal-site #pings .post { padding:23px; }
  .tidal-site #pings .post .full img { float:none; max-width:100%; width:100%; margin:0 0 18px; }
  .tidal-site .project-dialog { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); border-radius:22px; }
  .tidal-site .dialog-header { padding:16px; gap:15px; }
  .tidal-site .dialog-header h2 { font-size:21px; }
  .tidal-site .dialog-description { padding:21px; }
  .tidal-site .dialog-description p { font-size:16px; }
  .tidal-site .dialog-video,.tidal-site .dialog-image { max-height:43dvh; }
}
@media(max-width:360px) {
  .tidal-site .person { padding:13px; }
  .tidal-site .person-portrait { width:70px; height:70px; }
  .tidal-site .section-title { font-size:27px; }
  .tidal-site .dialog-description .specs { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
  .tidal-site *, .tidal-site *::before,.tidal-site *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

/* Continuous strips have no tile gaps, edge borders, or trailing spacer. */
.tidal-site .panel-reel.is-looping { scroll-snap-type:none; scroll-behavior:auto; }
.tidal-site .panel-reel::-webkit-scrollbar { display:none; }
.tidal-site .panel-reel > * { margin-right:0; border:0; }
.tidal-site .panel-reel :is(.project-media,.platform-img,.outreach-img) { background:#071321; }
.tidal-site .panel-reel :is(.project-media,.platform-img,.outreach-img) :is(img,video) { object-fit:contain; object-position:center; }
.tidal-site #development-reel .project-media { aspect-ratio:4/3; }
.tidal-site .panel-reel { border-radius:28px 28px 0 0; }
.tidal-site .repo-list.panel-reel { border-radius:28px; }
.tidal-site .person-portrait img { object-fit:cover; object-position:center top; border-radius:50%; }
.tidal-site .bleaching-photo { aspect-ratio:auto; }
.tidal-site .bleaching-photo img { height:auto; object-fit:contain; }
@media(max-width:719px) {
  .tidal-site .panel-reel { border-radius:22px 22px 0 0; }
}
.tidal-site .panel-expand { position:absolute; right:18px; bottom:20px; width:29px; height:29px; display:flex; align-items:center; justify-content:center; border-radius:10px; background:#ED008C26; box-shadow:inset 0 1px 0 #ffffff1a; backdrop-filter:blur(12px); }
.tidal-site .panel-expand .tidal-icon { width:16px; height:16px; }
.tidal-site :is(.project-open,.panel-open):hover .panel-expand { background:#ED008C66; }
.tidal-ready .project-reel .project-body { padding-right:60px; }
.tidal-ready .fleet.panel-reel .platform h4 { padding-right:58px; }
.tidal-site .outreach-body { padding-right:60px; }
.tidal-site .hero-video { filter:none; }
/* Equal preview frames keep portrait footage at the same visual scale. */
.tidal-site .hero { justify-content:flex-start; }
.tidal-site .hero-video { opacity:.78; filter:saturate(.92) brightness(.92); }
.tidal-site :is(.project-reel,.fleet.panel-reel) {
  --reel-panel-width:clamp(290px,42vw,520px);
  --reel-media-height:calc(var(--reel-panel-width) / 1.6);
  border-radius:28px 28px 0 0;
}
.tidal-site :is(.project-reel,.fleet.panel-reel) > :is(.project,.platform) { flex:0 0 var(--reel-panel-width); }
.tidal-site :is(.project-reel,#development-reel,.fleet.panel-reel) :is(.project-media,.platform-img) { height:var(--reel-media-height); flex:none; aspect-ratio:auto; }
.tidal-site :is(.project-reel,.fleet.panel-reel) :is(.project-media,.platform-img) :is(img,video) { object-fit:cover; object-position:var(--preview-x,50%) var(--preview-y,50%); }
.tidal-ready .project-reel .project-body,
.tidal-ready .fleet.panel-reel .platform h4 { flex:none; min-height:0; padding:12px 18px 4px; background:transparent; }
.tidal-site .fleet.panel-reel .platform h4 { font:400 var(--statement-size)/1.3 var(--display); }
/* Individual focal points preserve the subject within the preview crop. */
.tidal-site .project-media video[poster$="hydrus-toss-poster.jpg"] { --preview-y:30%; }
.tidal-site .platform-img img[src$="hydrus.jpg"] { --preview-y:35%; }
.tidal-site .platform-img img[src$="bluerov.jpg"] { --preview-y:70%; }
.tidal-site .platform-img img[src$="canon-r5c-housing.png"] { --preview-y:90%; }
.tidal-site .platform-img img[src$="compute-core.jpg"] { --preview-y:55%; }
@media(max-width:719px) {
  .tidal-site :is(.project-reel,.fleet.panel-reel) { --reel-panel-width:82vw; border-radius:22px 22px 0 0; }
  .tidal-ready .project-reel .project-body,
  .tidal-ready .fleet.panel-reel .platform h4 { padding:10px 14px 3px; }
  .tidal-site :is(.project-title,.fleet.panel-reel .platform h4) { font-size:var(--statement-size); }
}
.tidal-site .panel-expand { top:calc(var(--reel-media-height) - 49px); bottom:auto; right:16px; width:33px; height:33px; background:rgba(8,20,36,.78); box-shadow:inset 0 0 0 1px #ffffff2b,0 3px 12px #0004; }
.tidal-site .panel-expand .tidal-icon { width:19px; height:19px; }
.tidal-site .hero-video { opacity:.68; filter:saturate(.92) brightness(.85); }
.tidal-site .panel-reel :is(.project-media,.platform-img,.outreach-img) :is(img,video) { filter:brightness(.94); }
/* Local shading keeps the title readable while the reef remains visible. */
.tidal-site .hero-vignette { background:linear-gradient(90deg,rgba(3,10,20,.64),rgba(3,10,20,.3) 48%,transparent 78%),linear-gradient(180deg,rgba(3,10,20,.12) 45%,#050b14 100%); }
.tidal-site .hero-sub { text-shadow:0 2px 8px #000b; }
@media(max-width:719px) {
  .tidal-site .hero-lab-logo { width:100%; }
  .tidal-site .hero-vignette { background:linear-gradient(180deg,#030a1473 0%,#030a1455 58%,#050b14 100%); }
}
@media(max-height:560px) and (min-width:600px) {
  .tidal-site .hero { height:100svh; min-height:390px; padding-top:26px; padding-bottom:35px; }
  .tidal-site .hero-lab-logo { width:340px; }
  .tidal-site .hero h1 { margin-bottom:14px; }
  .tidal-site .hero-sub { max-width:440px; font-size:17px; }
  .tidal-site .sponsor-logos { bottom:30px; }
}
.tidal-site .nav { right:max(var(--gutter),calc((100vw - var(--maxw)) / 2)); }
.tidal-site .hero-sub em { color:var(--magenta-soft); }
/* Passages build a readable stack as the reader scrolls. */
.tidal-site .project-intro { padding:0 var(--gutter); }
.tidal-site .story-stage { padding-block:26px; }
.tidal-site .project-intro p { max-width:none; font:400 var(--statement-size)/1.5 var(--display); color:var(--bone); margin:0 0 22px; letter-spacing:0; }
.tidal-site .project-intro a { display:inline-block; margin:0; color:var(--bone); }
.tidal-site .project-intro.story-enabled { height:auto; min-height:0; padding-bottom:0; position:relative; }
.tidal-site .story-enabled .story-stage { position:relative; height:auto; display:block; }
.tidal-site .story-enabled .story-passage { color:var(--magenta-soft); opacity:0; transform:translateY(14px); transition:opacity 1.1s cubic-bezier(.22,1,.36,1),transform 1.3s cubic-bezier(.22,1,.36,1),color .9s ease; }
.tidal-site .story-enabled .story-passage:first-child { opacity:1; transform:none; }
.tidal-site .story-enabled .story-passage.is-revealed { opacity:1; visibility:visible; transform:none; }
.tidal-site .story-enabled .story-passage.is-revealed:not(.is-current) { color:var(--bone); }
.tidal-site .story-word.is-keyword { color:var(--magenta-soft); }

/* Separated, stationary code cards vary the rhythm after the media strips. */
.tidal-site .repo-list:not(.panel-reel) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.tidal-site .repo-list:not(.panel-reel) > .repo { display:flex; flex-direction:column; gap:15px; min-width:0; padding:25px; border:0; border-radius:22px; background:linear-gradient(135deg,#190719,#04101a 78%,#07101b); box-shadow:inset 0 1px 0 #e8c5df12; }
.tidal-site .repo-list:not(.panel-reel) > .repo:hover { background:linear-gradient(135deg,#1a0818,#07101b 78%,#09101b); }

/* Outreach is a single photo-and-story slideshow, with complete image framing. */
.tidal-site .outreach-slideshow { --reel-media-height:420px; display:grid; grid-template-columns:minmax(0,1fr); gap:0; border-radius:28px; overflow:hidden; background:linear-gradient(130deg,#04101a,#190719); }
.tidal-site .outreach-slideshow .outreach-card { position:relative; display:grid; grid-area:1/1; grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); border:0; padding:0; margin:0; border-radius:0; background:transparent; opacity:0; transition:opacity .9s ease; }
.tidal-site .outreach-slideshow .outreach-card[hidden] { display:none; }
.tidal-site .outreach-slideshow .outreach-img { height:var(--reel-media-height); aspect-ratio:auto; border:0; border-radius:0; }
.tidal-site .outreach-slideshow .outreach-img img { width:100%; height:100%; object-fit:contain; }
.tidal-site .outreach-slideshow .outreach-body { display:flex; flex-direction:column; justify-content:center; padding:34px; margin:0; }
.tidal-site .outreach-slideshow .outreach-body p { font:400 16px/1.7 var(--display); }
.tidal-site .outreach-slideshow .outreach-card.is-active { opacity:1; z-index:1; }
.tidal-site .outreach-slideshow .outreach-card.is-leaving { z-index:0; pointer-events:none; }
.tidal-site .outreach-slideshow .panel-expand { top:18px; right:calc(35.714% + 18px); }
@media (prefers-reduced-motion:reduce) {
  .tidal-site .outreach-slideshow .outreach-card { transition:none; }
}
@media(max-width:1050px) {
  .tidal-site .repo-list:not(.panel-reel) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tidal-site .outreach-slideshow .outreach-body { padding:24px; }
}
@media(max-width:719px) {
  .tidal-site .story-stage { padding-block:35px; }
  .tidal-site .project-intro p { line-height:1.5; margin-bottom:24px; }
  .tidal-site .repo-list:not(.panel-reel) { grid-template-columns:minmax(0,1fr); gap:15px; }
  .tidal-site .repo-list:not(.panel-reel) > .repo { padding:22px; }
  .tidal-site .outreach-slideshow { --reel-media-height:250px; border-radius:22px; }
  .tidal-site .outreach-slideshow .outreach-card { grid-template-columns:minmax(0,1fr); }
  .tidal-site .outreach-slideshow .outreach-body { padding:24px; }
  .tidal-site .outreach-slideshow .panel-expand { top:201px; right:16px; }
}
@media(max-height:560px) and (min-width:600px) {
  .tidal-site .project-intro p { margin-bottom:16px; }
  .tidal-site .story-stage { padding-block:25px; }
}
@media(prefers-reduced-motion:reduce) {
}
.tidal-site .story-word.is-keyword { color:var(--magenta-soft); }
.tidal-site .outreach-slideshow { touch-action:pan-y; }
.tidal-site .outreach-slideshow > [hidden] { display:none; }
@media(max-width:360px) {
  .tidal-site .project-intro p { line-height:1.5; margin-bottom:20px; }
  .tidal-site .story-stage { padding-block:28px; }
}

.tidal-site .project-media video { display:block; margin:0; max-width:none; }

@media(prefers-reduced-motion:reduce) {
  html.tidal-site { scroll-behavior:auto; }
  .tidal-site .project-intro.story-enabled { height:auto; padding-bottom:0; }
  .tidal-site .story-enabled .story-stage { position:static; height:auto; display:block; }
  .tidal-site .story-enabled .story-passage { opacity:1; visibility:visible; transform:none; transition:none; margin-bottom:20px; }
}

/* A compact navy masthead leaves the video and transparent lab mark in view. */
.tidal-site .hero { height:100svh; height:100dvh; min-height:560px; max-height:none; padding:0; display:block; }
.tidal-site .hero::after { content:none; }
.tidal-site :is(.hero-banner,.hero-inner) { z-index:4; }
.tidal-site .hero-video { position:absolute; inset:0; width:100%; height:100%; object-position:70% top; opacity:1; filter:brightness(.82); }
.tidal-site .hero-banner { position:relative; width:100%; min-height:78px; display:flex; align-items:center; padding:17px calc(max(var(--gutter), (100% - var(--maxw)) / 2) + 64px) 17px max(var(--gutter),calc((100% - var(--maxw)) / 2)); background:var(--navy); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.tidal-site .hero-sub { width:100%; max-width:none; margin:0; font:400 var(--statement-size)/1.5 var(--display); letter-spacing:0; text-shadow:none; text-wrap:balance; }
.tidal-site .hero-sub-ending { white-space:nowrap; }
.tidal-site .hero-sub em { white-space:nowrap; font-size:1em; font-weight:400; }
.tidal-site .hero-sub-focus { font:inherit; font-style:normal; color:var(--magenta); white-space:nowrap; }
@media(max-width:359px) {
  .tidal-site .hero-banner { padding-right:calc(var(--gutter) + 48px); }
}
.tidal-site .nav { top:16px; }
.tidal-site .hero-inner { position:absolute; left:50%; top:53%; bottom:auto; transform:translate(-50%,-50%); width:min(calc((100% - 2 * var(--gutter)) * .9),486px,54dvh); height:auto; max-width:none; margin:0; padding:0; display:block; background:none; backdrop-filter:none; -webkit-backdrop-filter:none; }
.tidal-site .hero h1.hero-logo-title { position:relative; width:100%; margin:0; padding:0; border:0; border-radius:0; background:none; box-shadow:none; }
.tidal-site .hero-lab-logo { width:100%; height:auto; filter:none; opacity:1; }
.tidal-site .logo-water-overlay { position:absolute; inset:0; z-index:1; display:block; width:100%; height:100%; overflow:hidden; pointer-events:none; mix-blend-mode:screen; }
@media(prefers-reduced-motion:reduce) {
  .tidal-site .logo-water-overlay { display:none; }
}
.tidal-site .hero-vignette { display:none; background:none; }
@media(max-width:719px) {
  .tidal-site .hero-banner { min-height:72px; padding-top:14px; padding-bottom:14px; }
  .tidal-site .nav { top:13px; }
  .tidal-site .hero-inner { top:60%; bottom:auto; width:min(calc((100% - 2 * var(--gutter)) * .9),396px); }
  .tidal-site .hero h1.hero-logo-title { width:100%; }
}
@media(max-height:560px) and (min-width:600px) {
  .tidal-site .hero { min-height:390px; }
  .tidal-site .hero-inner { top:53%; bottom:auto; width:min(32.4vw,252px); }
  .tidal-site .hero h1.hero-logo-title { width:100%; }
  .tidal-site .sponsor-logos { gap:16px; bottom:24px; }
  .tidal-site .sponsor-logo { width:49px; height:49px; }
  .tidal-site .sponsor-logo--nasa { width:62px; }
  .tidal-site .sponsor-logo--oceankind { width:71px; }
}
.tidal-site .hero > .sponsor-logos { position:absolute; top:auto; left:auto; right:var(--gutter); bottom:64px; transform:none; justify-content:flex-end; margin:0; }
@media(max-height:560px) and (min-width:600px) {
  .tidal-site .hero-inner { top:50%; }
  .tidal-site .hero > .sponsor-logos { bottom:56px; }
}
/* Repositories stay optional to browse inside a compact inset. */
.tidal-site #repositories .repos { margin-inline:clamp(0px,2vw,26px); padding:18px; border-radius:28px; background:linear-gradient(135deg,#111c2c,#0b1421); box-shadow:inset 0 1px 0 #ffffff12; }
.tidal-site .repo-list:not(.panel-reel) { max-height:430px; overflow-y:auto; padding-right:10px; scrollbar-width:thin; scrollbar-color:#ED008C80 #091422; scrollbar-gutter:stable; }
.tidal-site .repo-list:focus-visible { outline:2px solid var(--magenta-soft); outline-offset:5px; }
@media(max-width:719px) {
  .tidal-site #repositories .repos { margin-inline:0; padding:12px; border-radius:22px; }
  .tidal-site .repo-list:not(.panel-reel) { max-height:360px; gap:12px; padding-right:6px; }
}

/* The combined closing section keeps contact routes beside the lab narrative. */
.tidal-site .about-toggle { text-align:left; }
.tidal-site .about-links { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:24px; }
.tidal-site .about-links a { color:var(--bone); font:400 14px/1.6 var(--mono); text-decoration:none; }
.tidal-site .about-links a:hover { color:var(--magenta); }
.tidal-site .footer { padding-top:22px; padding-bottom:22px; }
.tidal-site .footer-bottom { padding-top:0; border-top:0; }

/* A consistent heading hierarchy with short, descriptive subtitles. */
.tidal-site :is(.section-title,.approaches-head,.section-title em) { color:var(--magenta); font:400 clamp(30px,3.4vw,45px)/1.16 var(--display); font-style:normal; letter-spacing:0; }
.tidal-site #projects .section-title { font-weight:400; }
.tidal-site .approaches-head { font-weight:400; }
.tidal-site :is(.section-head,.reel-heading) { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 16px; align-items:center; }
.tidal-site .reel-controls { grid-column:2; grid-row:1; }
.tidal-site .section-lede { width:100%; max-width:none; margin:0; color:var(--text); font:400 var(--statement-size)/1.7 var(--display); }
.tidal-site .section-head .section-lede,.tidal-site .reel-heading .section-lede { grid-column:1/-1; font-size:var(--statement-size); margin:0; }
.tidal-site .about-details > .section-lede { margin-top:10px; }
.tidal-site .about-detail-content { padding-top:24px; }
/* Color feedback identifies every interactive target, including small icon controls. */
.tidal-site :is(a,button,[role="button"],summary) { transition:color .18s ease,background-color .18s ease,box-shadow .18s ease; }
.tidal-site :is(a,button,[role="button"],summary):is(:hover,:focus-visible) { color:var(--magenta); }
.tidal-site :is(.nav-toggle,.mobile-close,.dialog-close):is(:hover,:focus-visible) { background:var(--magenta); color:var(--bone); }
.tidal-site .nav-toggle:is(:hover,:focus-visible) span { background:var(--bone); }
.tidal-site .reel-controls button:is(:hover,:focus-visible) { background:var(--magenta); border-radius:8px; opacity:1; }
.tidal-site :is(.project-open,.panel-open):is(:hover,:focus-visible) .panel-expand { background:var(--magenta); box-shadow:0 0 0 2px #ED008C44; }
.tidal-site .about-toggle:is(:hover,:focus-visible) { color:var(--bone); }
.tidal-site :is(.repo,.pub-link):is(:hover,:focus-visible) { box-shadow:inset 0 0 0 1px var(--magenta); }
.tidal-site .mobile-menu a:is(:hover,:focus-visible) { color:var(--magenta); }

.tidal-site .project-intro .story-stage > a { display:block; width:max-content; margin-left:auto; text-align:right; }
.tidal-site .project-reel .project-body { justify-content:center; text-align:center; }
.tidal-site :is(.project-title,.fleet.panel-reel .platform h4) { width:100%; text-align:center; text-wrap:balance; }
.tidal-site .pane-title-ending { white-space:nowrap; }

.tidal-site .project-intro p { text-align:center; line-height:1.4; margin-bottom:12px; }
.tidal-site .project-intro .story-stage { padding-block:20px; }

/* Carry the splash masthead across the viewport without moving the menu. */
html.tidal-site { scroll-padding-top:94px; }
.tidal-site .nav { position:fixed; inset:0 0 auto; width:100%; max-width:none; height:78px; margin:0; padding:0; border:0; border-radius:0; transform:none; background:transparent; box-shadow:none; pointer-events:none; }
.tidal-site .nav-inner { position:relative; width:100%; max-width:none; height:100%; margin:0; padding:0; }
.tidal-site .nav-toggle { position:absolute; top:16px; right:max(var(--gutter),calc((100vw - var(--maxw)) / 2)); pointer-events:auto; }
.tidal-site .nav-home { display:none; position:absolute; top:50%; left:max(var(--gutter),calc((100% - var(--maxw)) / 2)); transform:translateY(-50%); border-radius:9px; pointer-events:auto; }
.tidal-site .nav-home img { display:block; width:105px; height:auto; }
.tidal-site .nav.is-scrolled { background:var(--navy); }
.tidal-site .nav.is-scrolled .nav-home { display:block; }
.tidal-site .nav-home:is(:hover,:focus-visible) { box-shadow:0 0 0 2px var(--magenta); }
@media(max-width:719px) {
  html.tidal-site { scroll-padding-top:88px; }
  .tidal-site .nav { height:72px; }
  .tidal-site .nav-toggle { top:13px; }
  .tidal-site .nav-home img { width:84px; }
}

/* Prevent stranded words across responsive text layouts. */
.tidal-site :is(p,li,figcaption,.person .role,.repo .desc) { text-wrap:pretty; }
.tidal-site :is(h1,h2,h3,h4,h5,h6,.mobile-menu a,.project-intro p,.pub-label) { text-wrap:balance; }
.tidal-site .mobile-menu a { display:block; width:100%; max-width:100%; text-align:center; }

/* Software pairs VICARIUS with the existing repository inset. */
.tidal-site .software-layout { --software-media-height:clamp(280px,29vw,380px); --reel-media-height:var(--software-media-height); display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); grid-template-rows:auto auto auto; column-gap:28px; row-gap:0; align-items:start; }
.tidal-site .software-layout > * { min-width:0; }
.tidal-site .software-layout .vicarius-panel { position:relative; display:grid; grid-row:span 3; grid-template-rows:subgrid; grid-template-columns:minmax(0,1fr); align-items:start; gap:0; margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
.tidal-site .software-repositories { display:grid; grid-row:span 3; grid-template-rows:subgrid; grid-template-columns:minmax(0,1fr); }
.tidal-site .software-layout .project-media { grid-row:2; grid-column:1; order:1; height:var(--software-media-height); flex:none; aspect-ratio:auto; overflow:hidden; border-radius:28px; }
.tidal-site .software-layout .project-media video { display:block; margin:0; width:100%; height:100%; object-fit:contain; }
.tidal-site .software-layout .project-body { grid-row:1; order:0; position:relative; display:block; min-height:0; margin:0; padding:0 0 12px; background:transparent; border:0; box-shadow:none; }
.tidal-site .software-layout :is(.project-title,.software-pane-title) { color:var(--bone); font:400 var(--statement-size)/1.3 var(--display); letter-spacing:0; text-align:center; }
.tidal-site #repositories .software-layout .project-title { font-size:var(--statement-size); text-align:center; }
.tidal-site .software-pane-subtitle { margin:4px 0 0; color:var(--text); font:400 var(--statement-size)/1.5 var(--display); text-align:center; }
.tidal-site .software-pane-title { margin:0 0 12px; }
.tidal-site .repositories-description { margin:18px 0 0; font:400 var(--statement-size)/1.7 var(--display); color:var(--text); }
.tidal-site .software-layout .vicarius-summary { grid-row:3; order:2; margin:18px 0 0; font:400 var(--statement-size)/1.7 var(--display); color:var(--text); }
.tidal-site .software-layout .project-open { position:relative; inset:auto; grid-column:1; grid-row:2; align-self:stretch; width:100%; height:100%; }
.tidal-site .software-layout .panel-expand { top:auto; bottom:16px; right:16px; }
.tidal-ready .software-layout .project-body p { display:none; }
.tidal-site #repositories .software-layout .repos { grid-row:2; margin:0; padding:18px; }
.tidal-site .software-repositories .software-pane-title { grid-row:1; }
.tidal-site .software-repositories .repositories-description { grid-row:3; }
.tidal-site .software-layout .repo-list:not(.panel-reel) { grid-template-columns:minmax(0,1fr); height:calc(var(--software-media-height) - 36px); max-height:none; gap:14px; }
.tidal-ready .project-reel .vicarius-summary { display:none; }
@media(max-width:819px) {
  .tidal-site .software-layout { --software-media-height:clamp(170px,52vw,390px); grid-template-columns:minmax(0,1fr); row-gap:0; }
  .tidal-site .software-repositories { margin-top:26px; }
  .tidal-site .software-layout .project-media { border-radius:22px; }
  .tidal-site #repositories .software-layout .repos { padding:12px; }
  .tidal-site .software-layout .repo-list:not(.panel-reel) { height:360px; }
}
@media(max-width:560px) {
  .tidal-site :is(.section-title,.approaches-head,.section-title em) { font-size:clamp(24px,6.4vw,30px); }
  .tidal-site .mobile-menu a { font-size:clamp(23px,6vw,30px); }
  .tidal-site .reel-heading .approaches-head { grid-column:1/-1; }
  .tidal-site .reel-heading:has(.approaches-head) .reel-controls { grid-row:3; margin-top:0; }
  .tidal-site .people { grid-template-columns:minmax(0,1fr); }
  .tidal-site .person { display:grid; grid-template-columns:78px minmax(0,1fr); gap:10px 16px; align-items:start; }
  .tidal-site .person h4 { grid-column:1/-1; grid-row:1; margin:0; }
  .tidal-site .person-portrait { grid-column:1; grid-row:2/span 2; }
  .tidal-site .person :is(.role,.links) { grid-column:2; margin:0; }
}

/* Factual subtitle emphasis uses the lab pink at the surrounding text weight. */
.tidal-site .subtitle-highlight { color:var(--magenta); font-weight:400; }

/* One external lab-links route remains compact in both the page and the menu. */
.tidal-site .about-links .vicar-link-button,
.tidal-site .mobile-menu a.menu-vicar-link { display:inline-flex; align-items:center; justify-content:center; gap:12px; flex:none; width:max-content; max-width:100%; min-height:48px; padding:12px 18px; border:1px solid #ED008C80; border-radius:16px; background:linear-gradient(135deg,#ED008C0F,#1D3C5733); box-shadow:inset 0 1px 0 #FFFFFF12; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); color:var(--bone); font:400 18px/1.35 var(--display); letter-spacing:0; text-align:center; text-decoration:none; }
.tidal-site .mobile-menu a.menu-vicar-link { align-self:center; margin:20px auto 0; }
.tidal-site .about-links .vicar-link-button:is(:hover,:focus-visible),
.tidal-site .mobile-menu a.menu-vicar-link:is(:hover,:focus-visible) { background:var(--magenta); border-color:var(--magenta); color:var(--navy); box-shadow:0 0 0 3px #ED008C22; }
.tidal-site :is(.vicar-link-button,.menu-vicar-link) span { line-height:1; }

.tidal-site #blog.blog-placeholder { padding-top:28px; padding-bottom:36px; }
.tidal-site .blog-placeholder .section-head { margin-bottom:0; }

/* Emma's head and shoulders fill the circle; the supplied photograph stays intact. */
.tidal-site .person-portrait img[src$="/emma-grace-nani.png"] { position:absolute; width:227.1%; max-width:none; height:auto; left:-60.75%; top:-56.07%; object-fit:initial; border-radius:0; }

/* A compact dark shadow separates the original OceanKind artwork from the water. */
.tidal-site .sponsor-logo--oceankind { filter:drop-shadow(0 1px 2px #000D); }
.tidal-site .sponsor-logo--cmes-coral { width:64px; }
.tidal-site .sponsor-logo--cmes { width:70px; }
@media(max-width:719px) {
  .tidal-site .hero > .sponsor-logos { display:grid; grid-template-columns:repeat(3,76px); column-gap:14px; row-gap:10px; justify-items:center; align-items:center; }
  .tidal-site .sponsor-logo { width:56px; height:56px; }
  .tidal-site .sponsor-logo--nasa { width:64px; }
  .tidal-site .sponsor-logo--oceankind { width:76px; }
  .tidal-site .sponsor-logo--cmes-coral { width:56px; }
  .tidal-site .sponsor-logo--cmes { width:64px; }
  .tidal-site .hero-inner { top:auto; bottom:208px; transform:translateX(-50%); }
}
@media(max-height:560px) and (min-width:600px) {
  .tidal-site .hero > .sponsor-logos { display:flex; gap:16px; }
  .tidal-site .sponsor-logo { width:49px; height:49px; }
  .tidal-site .sponsor-logo--nasa { width:62px; }
  .tidal-site .sponsor-logo--oceankind { width:71px; }
  .tidal-site .sponsor-logo--cmes-coral { width:49px; }
  .tidal-site .sponsor-logo--cmes { width:55px; }
  .tidal-site .hero-inner { top:50%; bottom:auto; transform:translate(-50%,-50%); }
}


/* Worktree experiment: crop the video's upper edge and give supporting marks their own strip. */
.tidal-site .hero {
  --splash-full-height:max(560px,100dvh);
  --splash-crop-size:clamp(96px,18dvh,180px);
  height:calc(var(--splash-full-height) - var(--splash-crop-size));
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;
}
.tidal-site .hero-video { height:var(--splash-full-height); top:calc(-1 * var(--splash-crop-size)); bottom:auto; }
.tidal-site .hero-banner { grid-row:1; }
.tidal-site .hero-inner {
  position:relative; grid-row:2; align-self:center; justify-self:center;
  left:auto; top:auto; bottom:auto; transform:none; margin:0;
}
.tidal-site .sponsor-strip { padding:22px var(--gutter); background:var(--navy); }
.tidal-site .sponsor-strip .sponsor-logos {
  position:static; inset:auto; transform:none;
  display:flex; justify-content:center; align-items:center;
  width:max-content; max-width:100%; margin:0 auto; gap:24px;
}
@media(max-width:719px) {
  .tidal-site .sponsor-strip { padding-block:16px; }
  .tidal-site .sponsor-strip .sponsor-logos {
    display:flex; flex-wrap:wrap; width:256px;
    column-gap:14px; row-gap:10px;
  }
}
@media(max-height:560px) and (min-width:600px) {
  .tidal-site .hero { --splash-full-height:max(390px,100dvh); --splash-crop-size:clamp(48px,12dvh,80px); }
  .tidal-site .sponsor-strip { padding-block:16px; }
  .tidal-site .sponsor-strip .sponsor-logos { display:flex; width:max-content; flex-wrap:nowrap; gap:16px; }
}

/* A single contour separates the introduction from the supporting marks. */
.tidal-site .sponsor-strip .sponsor-logo { transform:scale(1.1); }
.tidal-site .supporters-divider { height:36px; pointer-events:none; }
.tidal-site .supporters-divider svg { display:block; width:100%; height:100%; }
.tidal-site .supporters-divider path { stroke:var(--magenta); stroke-opacity:.5; vector-effect:non-scaling-stroke; }

@media(max-width:599px), (max-width:719px) and (min-height:561px) {
  .tidal-site .sponsor-strip .sponsor-logo { order:2; }
  .tidal-site .sponsor-strip .sponsor-logo--nsf { order:0; }
  .tidal-site .sponsor-strip .sponsor-logo--cmes { order:1; }
}


/* The reef fades into the page; the existing contours remain above this layer. */
.tidal-site .hero-vignette {
  display:block; position:absolute; inset:auto 0 0; z-index:2;
  height:clamp(100px,22%,180px); pointer-events:none;
  background:linear-gradient(to bottom,rgba(5,11,20,0) 0%,rgba(5,11,20,.13) 22%,rgba(5,11,20,.5) 53%,rgba(5,11,20,.85) 78%,var(--navy) 100%);
}

/* Repeat one shallow contour at content boundaries, without boxes around the text. */
html.tidal-site {
  --section-contour:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 36' preserveAspectRatio='none'%3E%3Cpath d='M0,22 Q300,5 600,20 T1200,18' fill='none' stroke='%23ED008C' stroke-opacity='.5' stroke-width='1' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");
}
.tidal-site .project-intro .story-stage { padding-block:28px 8px; }
.tidal-site .sponsor-strip { padding-block:24px 18px; }
.tidal-site #projects { padding-top:40px; padding-bottom:56px; }
.tidal-site :is(#tech,#repositories,#outreach,#team,#publications,#about,#blog.blog-placeholder) {
  position:relative; padding-top:64px; padding-bottom:56px;
}
.tidal-site :is(#projects,#outreach,#publications) + .section-divider { display:none; }
.tidal-site :is(#tech,#repositories,#outreach,#team,#publications,#about,#blog.blog-placeholder)::before,
.tidal-site .reel-heading:has(.approaches-head)::before {
  content:""; position:absolute; top:0; left:0; right:0; height:36px;
  background:var(--section-contour) center/100% 100% no-repeat; pointer-events:none;
}
.tidal-site .reel-heading:has(.approaches-head) {
  position:relative; margin-top:36px; padding-top:64px;
}
.tidal-site .reel-heading:has(.approaches-head)::before {
  left:calc((min(var(--maxw),100vw - 2 * var(--gutter)) - 100vw) / 2);
  right:calc((min(var(--maxw),100vw - 2 * var(--gutter)) - 100vw) / 2);
}
.tidal-site :is(.section-head,.reel-heading) { row-gap:16px; margin-bottom:28px; }
@media(max-width:719px) {
  .tidal-site .project-intro .story-stage { padding-block:22px 8px; }
  .tidal-site .sponsor-strip { padding-block:18px 12px; }
  .tidal-site #projects { padding-top:32px; padding-bottom:40px; }
  .tidal-site :is(#tech,#repositories,#outreach,#team,#publications,#about,#blog.blog-placeholder) { padding-top:52px; padding-bottom:40px; }
  .tidal-site .reel-heading:has(.approaches-head) { margin-top:28px; padding-top:52px; }
  .tidal-site :is(.section-head,.reel-heading) { row-gap:14px; margin-bottom:24px; }
}

/* Publication links live in the introductory sentence. */
.tidal-site #publications .section-lede a { color:var(--magenta); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.18em; }
.tidal-site #publications .section-lede a:is(:hover,:focus-visible) { color:var(--bone); }
