/* Reef Tribe — visual system, 2026-11-12 */
/* Fonts (SIL Open Font License 1.1), self-hosted latin subsets: Montserrat variable 400-800 (body/UI), Marcellus 400 (titles) */
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400 800;font-display:swap;src:url("/fonts/montserrat-latin-var.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Marcellus";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/marcellus-latin-400.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --ink:#071a22;
  --muted:#4d6670;
  --deep:#012230;
  --deeper:#01151e;
  --sea:#0c7f8c;
  --aqua:#2ad4c8;
  --foam:#e8f6f4;
  --sand:#f3eee4;
  --paper:#f7f4ee;
  --coral:#e85d3a;
  --coral-d:#c94a2c;
  --gold:#d4a854;
  --card:#fff;
  --line:#d5e4e2;
  --r:18px;
  --shadow:0 18px 50px rgba(1,21,30,.14);
  --font:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  /* Title font: change this one line to swap the heading/hero/wordmark font */
  --font-title:"Marcellus","Trajan Pro",Georgia,serif;
  --display:var(--font-title);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:18px/1.65 var(--font);color:var(--ink);background:var(--paper);letter-spacing:-.011em}
img{max-width:100%;height:auto;display:block}
a{color:var(--sea)}a:hover{color:var(--coral)}
:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px 12px;z-index:20}

/* Header */
header.site{position:sticky;top:0;z-index:40;background:var(--deeper);color:#fff;transition:background .35s,box-shadow .35s}
header.site .bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;min-height:68px;gap:8px}
.brand{color:#fff;text-decoration:none;font-weight:400;font-family:var(--font-title);font-size:1.12rem!important;display:flex;gap:10px;align-items:center;letter-spacing:-.02em;font-size:.98rem}
.logo{width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffd2c4,var(--coral) 42%,#7a1f12);box-shadow:0 0 0 2px #ffffff22}
.menu{background:none;border:1px solid #ffffff55;color:#fff;border-radius:999px;padding:7px 14px;font:inherit;font-size:.9rem}
nav#nav{width:100%;display:none}nav#nav.open{display:block}
nav ul{list-style:none;margin:0;padding:0 0 12px}
nav#nav a{display:block;color:#e8f4f6;text-decoration:none;padding:10px 4px;font-size:.92rem;font-weight:500}
nav a[aria-current]{color:var(--gold);font-weight:650}
body.home header.site{position:fixed;left:0;right:0;background:transparent;box-shadow:none}
body.home header.site.scrolled,header.site.scrolled{background:rgba(1,21,30,.92);backdrop-filter:saturate(1.2) blur(10px);box-shadow:0 8px 30px rgba(0,0,0,.2)}
@media(min-width:960px){
  .menu{display:none}
  nav#nav{display:block;width:auto}
  nav#nav ul{display:flex;gap:4px;padding:0}
  nav#nav a{padding:8px 11px;border-radius:999px}
  nav#nav a:hover{background:#ffffff18;color:#fff}
}

/* Layout */
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
section.wrap{padding-top:56px;padding-bottom:12px}
.prose{max-width:800px}
h1,h2,h3{line-height:1.18;color:var(--deep);letter-spacing:.005em;font-family:var(--font-title);font-weight:400;font-synthesis:none}
.brand,.stat b,.card h3,.gp-card h3{font-weight:400;font-synthesis:none}
h1{font-size:clamp(2.1rem,5.4vw,3.6rem);margin:.15em 0 .35em}
h2{font-size:clamp(1.5rem,3vw,2.05rem);margin:1.4em 0 .45em}
h3{font-size:1.15rem}
.lede{font-size:clamp(1.08rem,2vw,1.28rem);color:var(--muted);max-width:40rem}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:600;color:var(--sea)}
.eyebrow a{color:inherit}

/* Buttons */
.btn{display:inline-block;background:var(--coral);color:#fff;text-decoration:none;padding:13px 22px;border-radius:999px;font-weight:600;margin:8px 8px 0 0;box-shadow:0 8px 20px rgba(232,93,58,.28);transition:transform .2s,filter .2s,box-shadow .2s}
.btn:hover{color:#fff;filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 14px 28px rgba(232,93,58,.32)}
.btn.ghost{background:transparent;border:1.5px solid #fff;box-shadow:none;color:#fff}
.btn.ghost:hover{background:#fff;color:var(--deep)}
.btn.ink{background:var(--deep);box-shadow:none}

/* Full-bleed hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--deeper)}
.hero-bg{position:absolute;inset:0}
.hero-bg img,.hero-bg picture, .hero-bg picture img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);animation:drift 28s ease-in-out alternate infinite}
@keyframes drift{from{transform:scale(1.02) translateY(0)}to{transform:scale(1.1) translateY(-1.5%)}}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,18,28,.28) 0%,rgba(1,18,28,.15) 32%,rgba(1,18,28,.55) 68%,rgba(1,12,18,.88) 100%)}
.hero .wrap{position:relative;z-index:2;padding:0 22px 88px;max-width:1180px}
.hero h1{color:#fff;font-size:clamp(2.6rem,8vw,5.4rem);line-height:.95;max-width:16ch;text-shadow:0 8px 40px rgba(0,0,0,.35);margin:.15em 0 .3em}
.hero .lede{color:#eef6f6;opacity:.95;font-size:clamp(1.12rem,2.2vw,1.4rem);max-width:32rem;text-shadow:0 4px 20px rgba(0,0,0,.4)}
.hero .eyebrow{color:var(--gold)}
.hero-credit{position:absolute;right:18px;bottom:14px;z-index:3;font-size:.72rem;color:#ffffffcc;margin:0;max-width:46%}
.hero-credit a{color:#fff}

/* Stats */
.stats{display:grid;grid-template-columns:1fr;gap:0;background:var(--deep);color:#fff;margin-top:-36px;position:relative;z-index:3;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.stat{padding:26px 24px;border-top:1px solid #ffffff18}
.stat b{display:block;font-family:var(--display);font-size:clamp(1.8rem,4vw,2.6rem);color:var(--gold);letter-spacing:-.03em;line-height:1}
.stat span{display:block;margin-top:8px;color:#d5e8ea;font-size:.92rem;line-height:1.45}
.stat cite{display:block;margin-top:8px;font-style:normal;font-size:.75rem;color:#8fb4b8}
.stat cite a{color:#c7e4e6}
@media(min-width:800px){
  .stats{grid-template-columns:repeat(4,1fr);margin-top:-48px}
  .stat{border-top:0;border-left:1px solid #ffffff18}
  .stat:first-child{border-left:0}
}

/* Pillar image cards */
.grid{list-style:none;padding:0;display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:640px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1020px){.grid{grid-template-columns:repeat(5,1fr);gap:14px}}
.card{display:block;position:relative;height:100%;min-height:260px;border-radius:20px;overflow:hidden;text-decoration:none;color:#fff;box-shadow:0 10px 30px rgba(1,21,30,.12);background:var(--deep)}
.card img,.card picture,.card picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.card:hover img,.card:hover picture img{transform:scale(1.07)}
.card .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,20,28,.05) 10%,rgba(1,14,22,.82) 100%)}
.card .body{position:absolute;left:0;right:0;bottom:0;padding:16px 16px 18px;z-index:1}
.card h3{margin:.15em 0 .3em;font-size:1.12rem;color:#fff;font-family:var(--display)}
.card p{margin:0;color:#dbe9ea;font-size:.88rem;line-height:1.4}
.num{display:inline-block;color:var(--gold);font-weight:700;font-size:.78rem;letter-spacing:.08em}

/* Hub banner */
.hub-hero{position:relative;min-height:52svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--deeper)}
.hub-hero .bg{position:absolute;inset:0}
.hub-hero .bg img,.hub-hero .bg picture img{width:100%;height:100%;object-fit:cover}
.hub-hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,18,28,.25),rgba(1,12,18,.78) 80%)}
.hub-hero .wrap{position:relative;z-index:1;padding:120px 22px 40px}
.hub-hero h1,.hub-hero .lede,.hub-hero .eyebrow{color:#fff}
.hub-hero .lede{color:#e6f2f2;opacity:.95}
.hub-hero .credit{position:absolute;right:16px;bottom:10px;z-index:2;font-size:.7rem;color:#ffffffc4;margin:0}
.hub-hero .credit a{color:#fff}

/* Verbs */
.verbs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.verb{display:inline-block;border:1px solid #ffffff44;color:#fff;text-decoration:none;border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.verb:hover{background:#fff;color:var(--deep)}
.verbs.on-light .verb{border-color:var(--line);color:var(--deep)}
.verbs.on-light .verb:hover{background:var(--deep);color:#fff}

/* Misc content */
.jobs li{margin:.5em 0}
.loop{background:var(--foam);border-radius:var(--r);padding:18px;overflow-x:auto;font-size:.84rem;border:1px solid var(--line)}
.vgrid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.feature .video{max-width:820px}
.video{margin:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:0 8px 24px rgba(1,21,30,.06)}
.embed{position:relative;aspect-ratio:16/9;background:#022}.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
figcaption{padding:14px 16px;display:flex;flex-direction:column;gap:4px;font-size:.93rem}
.meta{color:var(--muted);font-size:.85rem}
.books{list-style:none;padding:0;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.book{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--coral);border-radius:var(--r);padding:16px;box-shadow:0 6px 18px rgba(1,21,30,.04)}
.book h3{margin:0 0 4px;font-size:1.08rem}.book p{margin:.3em 0;font-size:.93rem}
.tag{font-size:.82rem;color:var(--muted)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.chip{font:inherit;font-size:.85rem;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 13px;cursor:pointer;color:var(--ink);transition:background .15s,color .15s,border-color .15s}
.chip[aria-pressed=true]{background:var(--deep);color:#fff;border-color:var(--deep)}
.count{color:var(--muted);font-size:.9rem}
.sources li,.topics li{margin:.4em 0}
.small{color:var(--muted);font-size:.9rem}
.pager{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:28px 0}
.pager a{text-decoration:none;font-weight:600}
.research ul{list-style:none;padding:0}
.research li{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:12px 0}
.oa{display:inline-block;background:#e3f7e8;color:#17663a;font-size:.75rem;font-weight:700;border-radius:6px;padding:1px 7px;margin-left:6px}
.credit-list{list-style:none;padding:0;display:grid;gap:18px}
.credit-list li{display:grid;grid-template-columns:160px 1fr;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;padding:0 16px 0 0}
.credit-list img{width:160px;height:110px;object-fit:cover}
.plan,.path,.faq{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;margin:16px 0 28px;box-shadow:0 8px 24px rgba(1,21,30,.04)}
.plan h3,.path h3{margin-top:.2em}
.faq details{border-top:1px solid var(--line);padding:10px 0}
.faq details:first-of-type{border-top:0}
.faq summary{cursor:pointer;font-weight:600;color:var(--deep)}
.faq details p{margin:.5em 0 .2em;color:var(--ink)}
.note-box{background:var(--foam);border-left:4px solid var(--sea);padding:14px 16px;border-radius:0 var(--r) var(--r) 0;margin:1em 0}
.products{display:grid;gap:16px}
@media(min-width:800px){.products{grid-template-columns:1fr 1fr}}
.product{background:var(--sand);border-radius:var(--r);padding:18px 20px;border:1px solid var(--line)}

/* Footer */
footer.site{background:var(--deeper);color:#c5dbe0;margin-top:64px;padding:40px 0 32px}
footer a{color:#fff}
footer .note{font-size:.88rem;color:#9cb8be}
.fnav{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:14px;font-size:.9rem}
.legal{font-size:.8rem;color:#8aa3a8;margin-top:18px}
[hidden]{display:none!important}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .hero-bg img,.hero-bg picture img{transform:none}
  .card:hover img,.card:hover picture img{transform:none}
  .btn:hover{transform:none}
}

/* Reef hero: one photo, colour returns as you scroll (CSS filter from --p) */
.reef-hero{--p:1;display:block;min-height:0;height:100vh;height:100svh;overflow:visible}
.js .reef-hero{--p:0;height:190vh;height:190svh}
.reef-hero .hero-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;align-items:flex-end}
.reef-hero .hero-bg .layer,.reef-hero .hero-bg .layer img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:none;transform:none}
.reef-hero .layer-healthy img{filter:grayscale(calc(1 - var(--p))) saturate(calc(.5 + var(--p)*.5)) brightness(calc(1.18 - var(--p)*.18));will-change:filter}
.reef-hero .layer-bleached{display:none}
.reef-hero .hero-bg::after{background:linear-gradient(180deg,rgba(1,18,28,.32) 0%,rgba(1,18,28,.2) 30%,rgba(1,18,28,.6) 62%,rgba(1,12,18,.9) 100%);z-index:1}
.reef-hero .wrap{width:100%}
.reef-hero h1,.reef-hero .lede{text-shadow:0 2px 6px rgba(0,0,0,.55),0 8px 30px rgba(0,0,0,.45)}
.reef-meter{display:flex;align-items:center;gap:10px;margin-top:18px;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#e9f3f3;max-width:340px}
.reef-meter .bar{flex:1;height:6px;border-radius:99px;background:linear-gradient(90deg,#d9dde0,#8fd3c8 50%,#ff8a5c);position:relative;overflow:hidden}
.reef-meter .bar i{position:absolute;inset:0;background:rgba(1,18,28,.65);transform-origin:right;transform:scaleX(calc(1 - var(--p)))}
.reef-meter .rs-b{opacity:calc(1 - var(--p) * .6)}.reef-meter .rs-h{opacity:calc(.4 + var(--p) * .6)}
.scroll-hint{font-size:.85rem;color:#ffffffd0;margin:.6em 0 0;opacity:calc(1 - var(--p) * 2.5)}
html:not(.js) .scroll-hint{display:none}
.reef-hero .hero-credit{z-index:3}
@media(max-width:640px){.reef-hero .hero-credit{max-width:none;left:18px;right:18px;text-align:right;font-size:.66rem}.reef-hero .wrap{padding-bottom:110px}}
@media(prefers-reduced-motion:reduce){
  .js .reef-hero,.reef-hero{--p:1;height:100vh;height:100svh}
  .reef-hero .hero-stage{position:relative}
  .scroll-hint{display:none}
}

/* Zone label */
.zlabel{display:block;font-size:.42em;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-family:var(--font);font-weight:700;margin-bottom:.35em}

/* Sample game plan cards */
.gameplan{margin-top:40px}
.gp-grid{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:860px){.gp-grid{grid-template-columns:repeat(3,1fr)}}
.gp-card{position:relative;background:#fff;border-radius:20px;padding:22px 20px 18px;box-shadow:0 10px 30px rgba(1,21,30,.08);border-top:5px solid var(--coral)}
.gp-card:nth-child(2){border-top-color:var(--gold)}.gp-card:nth-child(3){border-top-color:#1aa39a}
.gp-num{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--deep);color:#fff;font-weight:700;font-size:.95rem}
.gp-card h3{margin:.5em 0 .4em;font-size:1.15rem;font-family:var(--display)}
.gp-card p{margin:.2em 0 .6em;font-size:.94rem;line-height:1.5}
.gp-label{font-size:.72rem!important;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#5b7a80;margin:.8em 0 .2em!important}
.gp-takes{margin:0;display:grid;gap:6px}
.gp-takes div{display:grid;grid-template-columns:96px 1fr;gap:8px;font-size:.86rem;border-top:1px solid #e3eeee;padding-top:6px}
.gp-takes dt{font-weight:600;color:var(--deep)}.gp-takes dd{margin:0;color:#3d5a60}

/* Roadmap timeline */
.roadmap{margin-top:44px}
.roadmap>p{max-width:46rem}
.rm-list{list-style:none;padding:0;margin:20px 0 0;position:relative}
.rm-list::before{content:"";position:absolute;left:13px;top:6px;bottom:6px;width:3px;border-radius:3px;background:linear-gradient(180deg,#cfd6d9,#8fd3c8 50%,var(--coral))}
.rm-stage{position:relative;padding-left:44px;margin-bottom:18px}
.rm-dot{position:absolute;left:4px;top:18px;width:21px;height:21px;border-radius:50%;background:#fff;border:4px solid #cfd6d9}
.rm-intermediate .rm-dot{border-color:#1aa39a}.rm-advanced .rm-dot{border-color:var(--coral)}
.rm-card{background:#fff;border-radius:18px;padding:16px 18px;box-shadow:0 8px 24px rgba(1,21,30,.07)}
.rm-card p{margin:.3em 0 .6em;line-height:1.6;font-size:.97rem}
.rm-level{font-weight:700;font-size:.8rem!important;letter-spacing:.08em;text-transform:uppercase;color:var(--deep)}
.rm-check{background:#f1f8f7;border-radius:12px;padding:10px 12px;font-size:.9rem!important}
@media(min-width:900px){.rm-list::before{left:19px}.rm-stage{padding-left:60px}.rm-dot{left:9px}}
