/* Responsibility for Ocean Plastic — shared design system */


:root{
  --bg:#050f1a; --surf:#071e30; --border:#0d3356;
  --teal:#3dcfaa; --coral:#e05a3a; --amber:#c87f0a;
  --text:#f5f9fc; --sec:#aed0e2; --muted:#6e9bb5;
  --serif:'DM Serif Display',Georgia,serif;
  --mono:'JetBrains Mono',monospace;
  --body:'Source Serif 4',Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--body);font-size:17px;font-weight:400;line-height:1.7;overflow-x:hidden}

/* ── NAV ── */
nav{position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:16px 48px;background:rgba(5,15,26,.95);backdrop-filter:blur(12px);border-bottom:0.5px solid var(--border)}
.logo{font-family:var(--mono);font-size:15px;color:var(--teal);letter-spacing:.04em;text-decoration:none}
.nav-links{display:flex;gap:32px}
.nav-links a{font-family:var(--mono);font-size:13px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding-bottom:3px;transition:color .2s}
.nav-links a.active,.nav-links a:hover{color:var(--teal);border-bottom:1px solid var(--teal)}

/* ── PROGRESS BAR ── */
#progress{position:fixed;top:0;left:0;height:2px;background:var(--teal);z-index:200;transition:width .1s linear;width:0%}

/* ── REVEAL ── */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}
.reveal.visible{opacity:1;transform:none}

/* ── HERO ── */
.hero{position:relative;min-height:92vh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:url('../img/hero-plastic.jpg') center/cover no-repeat;filter:brightness(.28) saturate(.5)}
.hero-fade{position:absolute;inset:0;background:linear-gradient(to top,#050f1a 28%,transparent 75%)}
.hero-content{position:relative;z-index:2;padding:0 48px 72px;max-width:1100px;margin:0 auto;width:100%}
.kicker{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.kicker-line{width:40px;height:1px;background:var(--teal);opacity:.7}
.kicker-text{font-family:var(--mono);font-size:12px;color:var(--teal);letter-spacing:.24em;text-transform:uppercase}
h1{font-family:var(--serif);font-size:clamp(40px,5.5vw,70px);font-weight:400;line-height:1.05;color:var(--text);max-width:700px;margin-bottom:24px}
h1 em{color:var(--teal);font-style:italic}
.hero-deck{font-size:20px;color:var(--sec);line-height:1.8;max-width:520px;font-weight:300}
.scroll-cue{position:relative;z-index:2;padding:18px 48px;border-top:0.5px solid var(--border);max-width:1100px;margin:0 auto;width:100%}
.scroll-cue span{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.18em;text-transform:uppercase;animation:bob 2.2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

/* ── ACT DIVIDER ── */
.act-divider{border-top:0.5px solid var(--border);max-width:1100px;margin:0 auto;padding:52px 48px 0}
.act-number{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.22em;text-transform:uppercase;margin-bottom:12px}
.act-title{font-family:var(--serif);font-size:clamp(30px,4vw,46px);font-weight:400;line-height:1.1;color:var(--text);margin-bottom:10px}
.act-title em{font-style:italic;color:var(--teal)}
.act-title.coral-em em{color:var(--coral)}
.act-title.amber-em em{color:var(--amber)}
.act-sub{font-size:18px;color:var(--sec);line-height:1.75;max-width:560px;margin-bottom:52px;font-weight:300}

/* ── GENERIC CONTENT BLOCK ── */
.block{max-width:1100px;margin:0 auto;padding:0 48px 56px}
.block+.block{border-top:0.5px solid var(--border);padding-top:56px}
.sec-eye{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:28px}
.block-h{font-family:var(--serif);font-size:clamp(22px,2.5vw,30px);font-weight:400;color:var(--text);line-height:1.2;margin-bottom:10px}
.block-h em{color:var(--teal);font-style:italic}
.block-intro{font-size:17px;color:var(--sec);line-height:1.8;max-width:560px;font-style:italic;margin-bottom:28px}

/* ── TWO AND THREE COLS ── */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px}

/* ── PHOTO CARD ── */
.photo-card{border-radius:2px;overflow:hidden}
.photo-card img{width:100%;height:260px;object-fit:cover;display:block;filter:brightness(.65) saturate(.6);transition:filter .4s}
.photo-card:hover img{filter:brightness(.75) saturate(.7)}
.photo-cap{padding:10px 14px;background:var(--surf);border:0.5px solid var(--border);border-top:none}
.photo-cap p{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.05em;line-height:1.55}
.photo-cap span{color:var(--teal)}
.photo-cap span.w{color:var(--coral)}

/* ── PHOTO FULL BLEED ── */
.photo-full{position:relative;height:400px;overflow:hidden}
.photo-full img{width:100%;height:100%;object-fit:cover;filter:brightness(.42) saturate(.5)}
.photo-full .ov{position:absolute;inset:0;background:linear-gradient(to right,rgba(5,15,26,.88) 38%,transparent 72%)}
.photo-full .ptext{position:absolute;bottom:44px;left:48px;max-width:460px}
.photo-full .ptext h3{font-family:var(--serif);font-size:clamp(20px,2.5vw,30px);color:var(--text);font-weight:400;margin-bottom:10px;line-height:1.2}
.photo-full .ptext p{font-size:16px;color:var(--sec);line-height:1.65}
.photo-credit{position:absolute;bottom:12px;right:18px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.08em}

/* ── FLOW ROW ── */
.flow-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:0;margin-bottom:10px}
.fn{padding:10px 18px 10px 0;font-family:var(--mono);font-size:14px;color:var(--sec);border-bottom:1.5px solid var(--border);line-height:1.4}
.fn sub{display:block;font-size:12px;opacity:.65;margin-top:3px;letter-spacing:.04em}
.fn.t{border-bottom-color:var(--teal);color:var(--teal)}
.fn.w{border-bottom-color:var(--coral);color:var(--coral)}
.fn.a{border-bottom-color:var(--amber);color:var(--amber)}
.fa{font-family:var(--mono);font-size:15px;color:var(--border);padding:0 8px 12px}
.flow-src{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.05em;margin-top:8px}

/* ── STAT CARDS ── */
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);border-top:0.5px solid var(--border);border-bottom:0.5px solid var(--border);margin-bottom:48px}
.sc{padding:24px 0 24px 24px;border-right:0.5px solid var(--border)}
.sc:first-child{padding-left:0}
.sc:last-child{border-right:none}
.sc .n{font-family:var(--serif);font-size:38px;color:var(--text);line-height:1;margin-bottom:7px}
.sc .n.t{color:var(--teal)}.sc .n.w{color:var(--coral)}.sc .n.a{color:var(--amber)}
.sc .l{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;line-height:1.5;max-width:160px}

/* ── INSIGHT TRIO ── */
.insights{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;margin-top:44px}
.ins{padding-top:18px;border-top:1px solid var(--border)}
.ins.t{border-top-color:var(--teal);border-top-width:1.5px}
.ins.w{border-top-color:var(--coral);border-top-width:1.5px}
.ins.a{border-top-color:var(--amber);border-top-width:1.5px}
.ins .n{font-family:var(--serif);font-size:36px;color:var(--text);line-height:1;margin-bottom:8px}
.ins .n.t{color:var(--teal)}.ins .n.w{color:var(--coral)}.ins .n.a{color:var(--amber)}
.ins-lbl{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;color:var(--teal)}
.ins p{font-size:16px;color:var(--sec);line-height:1.7}

/* ── CALLOUT ── */
.callout{border-left:1.5px solid var(--teal);padding:14px 20px;margin:20px 0}
.callout.w{border-color:var(--coral)}
.callout.a{border-color:var(--amber)}
.callout .big{font-family:var(--serif);font-size:44px;color:var(--teal);line-height:1;margin-bottom:6px}
.callout.w .big{color:var(--coral)}
.callout.a .big{color:var(--amber)}
.callout p{font-size:16px;color:var(--sec);line-height:1.6}

/* ── PULL QUOTE ── */
.pull{max-width:1100px;margin:0 auto;padding:52px 48px;border-top:0.5px solid var(--border);display:grid;grid-template-columns:2px 1fr;gap:28px;align-items:start}
.pull-bar{background:var(--teal);width:2px;min-height:100%}
.pull-bar.w{background:var(--coral)}
.pull-bar.a{background:var(--amber)}
.pull-q{font-family:var(--serif);font-size:clamp(19px,2.2vw,26px);color:var(--text);line-height:1.45;font-style:italic}
.pull-q em{color:var(--teal);font-style:normal}
.pull-q.w em{color:var(--coral)}
.pull-attr{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:14px}

/* ── CHART ── */
.chart-lbl{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}
.chart-note{font-family:var(--mono);font-size:12px;color:var(--muted);line-height:1.6;margin-top:10px;letter-spacing:.03em}
.leg{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px}
.leg-item{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;color:var(--sec)}
.leg-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}

/* ── COMPARISON BOX ── */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:0.5px solid var(--border);margin-top:12px}
.cmp-cell{background:var(--surf);padding:22px 24px}
.cmp-head{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}
.cmp-head.t{color:var(--teal)}.cmp-head.w{color:var(--coral)}
.cmp-n{font-family:var(--serif);font-size:42px;color:var(--text);line-height:1;margin-bottom:6px}
.cmp-n.t{color:var(--teal)}.cmp-n.w{color:var(--coral)}
.cmp-sub{font-size:16px;color:var(--sec);line-height:1.6}

/* ── GAP MATRIX ── */
.gap-grid{display:grid;grid-template-columns:200px 1fr;gap:64px;align-items:start}
.gap-col-h .gt{font-family:var(--serif);font-size:22px;color:var(--text);margin-bottom:12px}
.gap-col-h p{font-size:16px;color:var(--sec);line-height:1.75;font-style:italic}
.gap-item{display:flex;gap:24px;padding:16px 0;border-bottom:0.5px solid var(--border);align-items:flex-start}
.gap-item:last-child{border-bottom:none}
.gap-code{font-family:var(--mono);font-size:12px;color:var(--coral);min-width:26px;padding-top:3px;letter-spacing:.06em}
.gap-body .gt{font-family:var(--mono);font-size:14px;color:var(--text);margin-bottom:5px;letter-spacing:.02em}
.gap-body .gs{font-size:16px;color:var(--sec);line-height:1.65}

/* ── SPATIAL LIST ── */
.sp-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.sp-item{font-family:var(--mono);font-size:13px;color:var(--sec);border-left:1.5px solid var(--coral);padding:4px 0 4px 14px;line-height:1.4}
.sp-item.t{border-color:var(--teal)}.sp-item.a{border-color:var(--amber)}

/* ── EPISTEMIC MATRIX ── */
.ep-matrix{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border)}
.ep-cell{background:var(--surf);padding:20px 22px}
.ep-cell.t{border-top:1.5px solid var(--teal)}.ep-cell.w{border-top:1.5px solid var(--coral)}.ep-cell.a{border-top:1.5px solid var(--amber)}
.ep-head{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}
.ep-item{font-family:var(--mono);font-size:13px;padding:5px 0;border-bottom:0.5px solid var(--border);line-height:1.4}
.ep-item:last-child{border-bottom:none}
.ep-item.t{color:var(--teal)}.ep-item.w{color:var(--coral)}.ep-item.a{color:var(--amber)}.ep-item.s{color:var(--sec)}

/* ── PAGE FOOTER ── */
.page-footer{border-top:0.5px solid var(--border);max-width:1100px;margin:0 auto;padding:32px 48px 64px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.page-footer p{font-size:15px;color:var(--muted);font-style:italic}
.pill{font-family:var(--mono);font-size:12px;padding:6px 16px;border-radius:20px;border:0.5px solid var(--border);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;display:inline-block;transition:border-color .2s,color .2s}
.pill:hover{border-color:var(--teal);color:var(--teal)}

@media(max-width:800px){
  nav{padding:14px 20px}.nav-links{gap:14px}
  .hero-content,.scroll-cue,.act-divider,.block,.pull,.page-footer{padding-left:20px;padding-right:20px}
  .stat-row{grid-template-columns:1fr 1fr}.sc:nth-child(2){border-right:none}.sc:nth-child(3){border-top:0.5px solid var(--border)}
  .two-col,.three-col,.insights,.compare,.ep-matrix,.gap-grid{grid-template-columns:1fr;gap:28px}
}
