
:root{
 --bg:#FBF9F4; --bg2:#FFFFFF; --panel:#FFFFFF; --cream:#F3EFE6;
 --teal:#0E4D50; --teal2:#116466; --aqua:#1F9C94; --aquaText:#0E7068;
 --gold:#B8842B; --goldBright:#F5C542; --ink:#1B2127; --mut:#5C6670; --slate:#6B7480;
 --line:rgba(20,30,35,.12); --footbg:#122A28; --radius:16px; --maxw:1180px;
 --disp:'Fraunces',Georgia,serif; --body:'Inter',system-ui,sans-serif; --mono:'IBM Plex Mono',monospace;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
a{color:var(--aquaText);text-decoration:none} a:hover{color:var(--gold)}
a:focus-visible,button:focus-visible,input:focus-visible,.btn:focus-visible,.chip:focus-visible,.menu-btn:focus-visible{outline:3px solid #0E7068;outline-offset:2px;border-radius:6px}
h1,h2,h3,h4{font-family:var(--disp);font-weight:600;line-height:1.12;letter-spacing:-.01em;margin:0;color:var(--ink)}
.skip{position:absolute;left:-999px} .skip:focus{left:12px;top:12px;background:var(--gold);color:#fff;padding:8px 12px;border-radius:8px;z-index:200}
.mono{font-family:var(--mono)}
.nav{position:sticky;top:0;z-index:100;background:rgba(251,249,244,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:68px;gap:18px}
.brand{font-family:var(--disp);font-weight:700;font-size:24px;color:var(--ink);letter-spacing:-.02em}
.brand span{color:var(--aqua)}
.nav-links{display:flex;gap:26px} .nav-links a{color:var(--mut);font-size:15px;font-weight:500} .nav-links a:hover,.nav-links a.on{color:var(--ink)}
.nav-right{display:flex;align-items:center;gap:14px}
.nav-search{color:var(--mut);font-size:15px}
.btn{display:inline-block;background:var(--aqua);color:#04302d;font-weight:600;padding:12px 22px;border-radius:999px;border:0;cursor:pointer;font-family:var(--body);font-size:15px;transition:transform .15s,box-shadow .15s}
.btn:hover{color:#04302d;transform:translateY(-1px);box-shadow:0 8px 22px rgba(31,156,148,.30)}
.btn-sm{padding:9px 16px;font-size:14px}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink)} .btn-ghost:hover{border-color:var(--aqua);color:var(--ink);box-shadow:none}
.btn-gold{background:var(--gold);color:#fff}
.menu-btn{display:none;background:transparent;border:1px solid var(--line);color:var(--ink);padding:8px 12px;border-radius:10px;font-family:var(--body);cursor:pointer}
.mobile{display:none;flex-direction:column;padding:10px 24px 18px;border-bottom:1px solid var(--line);background:var(--bg2)}
.mobile a{padding:11px 0;color:var(--ink);border-bottom:1px solid var(--line)}
.crisis-link{color:var(--gold)!important}
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(1100px 520px at 78% -8%,rgba(31,156,148,.12),transparent 60%),radial-gradient(700px 400px at 6% 110%,rgba(17,100,102,.10),transparent 60%)}
.hero-in{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding:84px 0 76px}
.eyebrow{font-family:var(--mono);font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--aquaText);margin-bottom:20px}
.hero h1{font-size:clamp(38px,5.4vw,68px);font-weight:600}
.hero h1 em{font-style:italic;color:var(--gold)}
.hero p.sub{color:var(--mut);font-size:19px;max-width:36ch;margin:22px 0 30px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.constel{width:100%;height:auto}
.node circle{fill:#fff;stroke:var(--aqua);stroke-width:1.6}
.node.gold circle{stroke:var(--gold)}
.node text{fill:var(--ink);font-family:var(--mono);font-size:11px}
.edge{stroke:rgba(17,100,102,.30);stroke-width:1}
@media (prefers-reduced-motion:no-preference){ .pulse{animation:pulse 4.2s ease-in-out infinite} @keyframes pulse{0%,100%{opacity:.6}50%{opacity:1}} }
section{padding:74px 0;border-bottom:1px solid var(--line)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:34px}
.sec-head h2{font-size:clamp(26px,3.2vw,38px)}
.sec-head p{color:var(--mut);margin:8px 0 0;max-width:52ch}
.lead{color:var(--mut);max-width:60ch}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--aquaText);margin-bottom:14px}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(3,1fr)} .g4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius);padding:24px;transition:transform .18s,border-color .18s,box-shadow .18s;display:block}
.card:hover{transform:translateY(-3px);border-color:rgba(31,156,148,.55);box-shadow:0 14px 34px rgba(20,30,35,.10)}
.card h3{font-size:21px;margin-bottom:8px;color:var(--ink)}
.card p{color:var(--mut);font-size:15px;margin:0}
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--aquaText);border:1px solid rgba(17,100,102,.3);padding:4px 10px;border-radius:999px;background:rgba(31,156,148,.07)}
.badge.gold{color:#8A6310;background:rgba(184,132,43,.12);border-color:rgba(184,132,43,.32)}
.meta-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.count{font-family:var(--mono);color:var(--slate);font-size:13px}
.feature{background:linear-gradient(135deg,#EAF3F1,#FFFFFF);border:1px solid #BFE0DA;border-radius:22px;padding:38px}
.feature .id{font-family:var(--mono);color:var(--aquaText);font-size:13px;letter-spacing:.08em}
.feature h2{font-size:clamp(28px,4vw,44px);margin:10px 0 6px}
.feature .def{font-size:20px;color:#2c3840;margin:10px 0 4px}
.feature .insight{font-family:var(--disp);font-style:italic;color:var(--gold);font-size:20px;margin:14px 0 22px;border-left:3px solid var(--gold);padding-left:16px}
.crumb{font-family:var(--mono);font-size:12.5px;color:var(--slate);padding:26px 0 0}
.crumb a{color:var(--slate)} .crumb a:hover{color:var(--aquaText)}
.concept-head{padding:14px 0 8px}
.concept-head h1{font-size:clamp(32px,5vw,54px)}
.concept-body{display:grid;grid-template-columns:1fr 300px;gap:48px;align-items:start;padding:30px 0 70px}
@media(max-width:900px){.concept-body{grid-template-columns:1fr}}
.field{margin:0 0 26px}
.field h3{font-family:var(--mono);font-weight:600;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--aquaText);margin-bottom:8px}
.field p{margin:0;color:#2c3840}
.pull{font-family:var(--disp);font-style:italic;font-size:24px;color:var(--gold);border-left:3px solid var(--gold);padding:6px 0 6px 20px;margin:6px 0 26px}
.fw-flow{font-family:var(--mono);font-size:14px;color:var(--aquaText);background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.side{position:sticky;top:90px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.side h4{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin:0 0 8px}
.side .kv{font-size:14px;color:var(--mut);margin:0 0 14px}
.side a.rel{display:block;padding:7px 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:15px}
.side a.rel:hover{color:var(--aquaText)}
.disc{background:#F1EFE8;border:1px solid rgba(107,116,128,.3);border-left:3px solid var(--slate);border-radius:12px;padding:14px 18px;margin:22px 0;color:#48525c;font-size:14.5px}
.disc p{margin:0}
.disc-x{background:#FBF3DE;border:1px solid rgba(184,132,43,.35);border-left:3px solid var(--gold)} .disc-x strong{color:#8A6310;display:block;margin-bottom:4px;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:12px}
.boundary{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:6px 0 0}
.prose{max-width:760px;padding:30px 0 80px} .prose h2{font-size:28px;margin:34px 0 12px} .prose h3{font-size:20px;margin:26px 0 8px} .prose p,.prose li{color:#2c3840} .prose ul{padding-left:20px} .prose li{margin:6px 0}
.crisis-hero{background:linear-gradient(135deg,#FBF3DE,#FFFFFF);border:1px solid rgba(184,132,43,.4);border-radius:20px;padding:40px;margin:34px 0}
.crisis-hero h1{font-size:40px;color:#8A6310}
.crisis-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px}
.tel{font-size:22px;font-family:var(--mono)}
.search-box{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:14px;color:var(--ink);font-size:18px;padding:16px 18px;font-family:var(--body)}
.search-box:focus{outline:2px solid var(--aqua)}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}
.chip{font-family:var(--mono);font-size:12.5px;color:var(--mut);border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer;background:transparent}
.chip.on{color:#04302d;background:var(--aqua);border-color:var(--aqua)}
#results .card{margin-bottom:12px}
.news{background:linear-gradient(135deg,#EAF3F1,#FFFFFF);border:1px solid #BFE0DA;border-radius:22px;padding:40px;text-align:center}
.news form{display:flex;gap:10px;max-width:460px;margin:20px auto 0}
.news input{flex:1;background:var(--bg2);border:1px solid var(--line);border-radius:999px;color:var(--ink);padding:13px 18px;font-family:var(--body)}
.foot{background:var(--footbg);border-top:1px solid var(--line);padding:56px 0 40px;margin-top:0}
.foot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.foot h4{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--goldBright);margin:0 0 14px}
.foot a{display:block;color:#C2D6D1;font-size:14.5px;padding:5px 0} .foot a:hover{color:#fff}
.foot-disc{color:#A7C0BA;font-size:13px;border-top:1px solid rgba(255,255,255,.12);margin-top:34px;padding-top:22px;max-width:90ch}
.foot-by{color:#A7C0BA;font-size:13px;max-width:90ch}
@media(max-width:980px){.hero-in{grid-template-columns:1fr;gap:30px;padding:54px 0} .g4{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(2,1fr)} .foot-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.nav-links,.nav-search,.nav-right .btn{display:none} .menu-btn{display:block} .g2,.g3,.g4{grid-template-columns:1fr} .sec-head{flex-direction:column;align-items:flex-start}}
/* --- interactive hero constellation --- */
.hero:before{background:radial-gradient(1100px 560px at 80% -10%,rgba(31,156,148,.16),transparent 60%),radial-gradient(760px 440px at 4% 112%,rgba(17,100,102,.12),transparent 60%)}
.constel{width:100%;height:auto;overflow:visible}
.constel a{outline:none}
.node{cursor:pointer}
.node .dot{fill:#fff;stroke:var(--aqua);stroke-width:1.7;transition:r .2s ease,stroke-width .2s ease}
.node.gold .dot{stroke:var(--gold);fill:#FFF8EA;stroke-width:2.2}
.node .halo{opacity:0;transition:opacity .25s ease}
.node.gold .halo{opacity:.85}
.node text{fill:var(--ink);font-family:var(--mono);font-size:11.5px;transition:fill .2s ease;paint-order:stroke;stroke:var(--bg);stroke-width:3px}
.node.gold text{fill:#8A6310;font-weight:600}
.node:hover .dot,.node:focus .dot{r:11;stroke-width:2.6}
.node:hover .halo,.node:focus .halo{opacity:1}
.node:hover text,.node:focus text{fill:var(--aquaText)}
.edge{stroke:rgba(17,100,102,.26);stroke-width:1}
.edge-pulse{stroke:var(--aqua);stroke-width:2.2;stroke-linecap:round;opacity:.6}
@media (prefers-reduced-motion:no-preference){
 .edge-pulse{stroke-dasharray:7 150;animation:flow 3.8s linear infinite}
 @keyframes flow{from{stroke-dashoffset:157}to{stroke-dashoffset:0}}
 .node.gold .halo{animation:halopulse 4.6s ease-in-out infinite}
 @keyframes halopulse{0%,100%{opacity:.55}50%{opacity:1}}
}
/* --- standout interactive daily concept card --- */
.feature{position:relative;overflow:hidden;background:linear-gradient(135deg,#E9F4F1 0%,#FFFFFF 70%);border:1px solid #BCDFD9;border-radius:26px;padding:40px 38px;box-shadow:0 30px 70px -34px rgba(14,77,80,.5)}
.feature:before{content:"";position:absolute;top:-40%;right:-10%;width:60%;height:180%;background:radial-gradient(closest-side,rgba(245,197,66,.22),transparent);pointer-events:none}
.feature:after{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,var(--aqua),var(--gold))}
.feature>*{position:relative}
.live{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--aquaText)}
.live-dot{width:9px;height:9px;border-radius:50%;background:#17a39a;flex:0 0 auto}
@media (prefers-reduced-motion:no-preference){.live-dot{animation:ping 2.2s ease-out infinite} @keyframes ping{0%{box-shadow:0 0 0 0 rgba(23,163,154,.5)}70%,100%{box-shadow:0 0 0 13px rgba(23,163,154,0)}}}
.feature .id{font-family:var(--mono);color:var(--slate);font-size:12.5px;letter-spacing:.06em;margin:16px 0 2px}
.feature h2{font-size:clamp(28px,4.2vw,48px);margin:6px 0 8px;transition:opacity .26s ease}
.feature .def{font-size:20px;color:#2c3840;margin:8px 0 0;max-width:60ch;transition:opacity .26s ease}
.feature .insight{font-family:var(--disp);font-style:italic;color:var(--gold);font-size:21px;border-left:3px solid var(--gold);padding-left:18px;margin:18px 0 2px}
.feature .insight.collapsible{max-height:0;opacity:0;margin:0;padding-top:0;padding-bottom:0;overflow:hidden;transition:max-height .5s ease,opacity .35s ease,margin .35s ease}
.feature .insight.collapsible.show{max-height:260px;opacity:1;margin:18px 0 2px}
.feature.swap h2,.feature.swap .def{opacity:0}
.feat-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.feat-actions .btn-ghost{background:rgba(255,255,255,.65)}
/* --- progressive scroll-reveal (only when JS + motion allowed) --- */
.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none}}
