:root{--navy:#0A1628;--indigo:#1E1B4B;--blue:#1D4ED8;--sky:#38BDF8;--gold:#C9A84C;--ink:#0D1B2E;--muted:#5B6781;--line:#E6EAF2;}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#fff}
body{background:#fff;color:var(--ink);font-family:'Manrope',system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,.font-display{font-family:'Fraunces',Georgia,serif;letter-spacing:-.015em}
::selection{background:var(--navy);color:#fff}
.grad-text{background:linear-gradient(100deg,#0A1628 0%,#1D4ED8 55%,#38BDF8 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-blue{background:linear-gradient(135deg,#0A1628 0%,#1E3A8A 50%,#1D4ED8 100%)}
.eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--blue)}
.eyebrow::before{content:"";display:inline-block;width:28px;height:2px;background:var(--gold);vertical-align:middle;margin-right:10px}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:all .35s}
.nav .bar{margin:12px auto;max-width:1200px;border-radius:999px;padding:10px 14px 10px 22px;display:flex;align-items:center;justify-content:space-between;
background:rgba(255,255,255,.55);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid rgba(255,255,255,.7);box-shadow:0 8px 30px rgba(10,22,40,.08)}
.nav.scrolled .bar{background:rgba(255,255,255,.85);box-shadow:0 10px 40px rgba(10,22,40,.12)}
.nav a.link{font-size:.88rem;font-weight:600;color:#26354f;padding:8px 12px;border-radius:999px;transition:.2s}
.nav a.link:hover,.nav a.link.active{background:rgba(29,78,216,.09);color:var(--blue)}
.logo-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:#fff;font-family:'Fraunces',serif;font-weight:700;background:linear-gradient(135deg,#0A1628,#1D4ED8);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
#menu{display:none}
#menu.open{display:flex}

/* GLASS BUTTONS */
.btn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:999px;font-weight:700;font-size:.92rem;overflow:hidden;transition:transform .25s,box-shadow .25s;cursor:pointer;border:1px solid transparent;isolation:isolate}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s;z-index:-1}
.btn:hover::after{transform:translateX(120%)}
.btn:hover{transform:translateY(-2px)}
.btn-glass-dark{color:#fff;background:linear-gradient(135deg,rgba(10,22,40,.82),rgba(29,78,216,.78));backdrop-filter:blur(10px);border-color:rgba(255,255,255,.28);box-shadow:0 12px 30px rgba(29,78,216,.30),inset 0 1px 0 rgba(255,255,255,.35)}
.btn-glass-light{color:#fff;background:rgba(255,255,255,.14);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);border-color:rgba(255,255,255,.45);box-shadow:0 10px 30px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.5)}
.btn-glass-clear{color:var(--navy);background:rgba(255,255,255,.6);backdrop-filter:blur(14px);border-color:rgba(10,22,40,.12);box-shadow:0 8px 24px rgba(10,22,40,.08),inset 0 1px 0 #fff}
.btn-gold{color:#1b1405;background:linear-gradient(135deg,#E8CB7A,#C9A84C);box-shadow:0 12px 28px rgba(201,168,76,.35),inset 0 1px 0 rgba(255,255,255,.6)}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;color:#fff}
.hero-bg{position:absolute;inset:-8% 0;background-size:cover;background-position:center;will-change:transform}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(105deg,rgba(10,22,40,.92) 0%,rgba(10,22,40,.72) 45%,rgba(29,78,216,.35) 100%)}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:160px;z-index:2;background:linear-gradient(to top,#fff,rgba(255,255,255,0))}
.hero>.in{position:relative;z-index:3}
.page-hero{position:relative;padding:170px 0 110px;overflow:hidden;color:#fff}
.page-hero .hero-bg{inset:-15% 0}
.page-hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(110deg,rgba(10,22,40,.93),rgba(30,58,138,.72))}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;z-index:2;background:linear-gradient(to top,#fff,rgba(255,255,255,0))}
.page-hero>.in{position:relative;z-index:3}
.legal-hero{padding:150px 0 50px;background:linear-gradient(180deg,#F4F7FD,#fff);border-bottom:1px solid var(--line)}

/* GLASS CARDS */
.glass{background:rgba(255,255,255,.12);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid rgba(255,255,255,.35);box-shadow:0 20px 50px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.45);border-radius:24px}
.glass-form{background:rgba(255,255,255,.16);backdrop-filter:blur(22px) saturate(170%);-webkit-backdrop-filter:blur(22px) saturate(170%);border:1px solid rgba(255,255,255,.4);box-shadow:0 30px 70px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.55);border-radius:28px}
.field{width:100%;padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.4);color:#fff;font-size:.92rem;outline:none;transition:.25s;backdrop-filter:blur(8px)}
.field::placeholder{color:rgba(255,255,255,.65)}
.field:focus{background:rgba(255,255,255,.28);border-color:#fff;box-shadow:0 0 0 4px rgba(56,189,248,.25)}
.field option{color:#0A1628}
.lbl{display:block;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-bottom:7px}
.hp-field{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
#formStatus{font-weight:600;border:1px solid transparent}
#formStatus.hidden{display:none}
#formStatus.status-pending{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.4);color:#fff}
#formStatus.status-ok{background:rgba(16,185,129,.18);border-color:rgba(16,185,129,.45);color:#d1fae5}
#formStatus.status-error{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.45);color:#fecaca}
.card{background:#fff;border:1px solid var(--line);border-radius:22px;transition:transform .35s,box-shadow .35s,border-color .35s}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(10,22,40,.10);border-color:#cfd9ee}
.icon-chip{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;color:var(--blue);background:linear-gradient(135deg,#EAF1FF,#fff);border:1px solid #D7E3FB}
.tilt{transition:transform .2s;transform-style:preserve-3d}

/* SECTIONS */
.dots{background-image:radial-gradient(#cfd9ee 1.1px,transparent 1.2px);background-size:26px 26px}
.band{position:relative;overflow:hidden;color:#fff}
.band .hero-bg{inset:-20% 0}
.band::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(120deg,rgba(10,22,40,.92),rgba(29,78,216,.7))}
.band>.in{position:relative;z-index:2}
.marquee{overflow:hidden;border-block:1px solid var(--line);background:#fff}
.marquee .track{display:flex;gap:56px;width:max-content;padding:18px 0;animation:slide 38s linear infinite;font-weight:700;color:#3b4a66;white-space:nowrap}
.marquee .track span::before{content:"✦";color:var(--gold);margin-right:14px}
@keyframes slide{to{transform:translateX(-50%)}}
.float{animation:float 7s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-14px)}}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.35;pointer-events:none}
.scroll-line{width:1px;height:54px;background:linear-gradient(#fff,transparent);animation:sl 2s infinite}
@keyframes sl{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:60;background:linear-gradient(90deg,var(--blue),var(--sky),var(--gold))}

/* reveal */
.js .reveal{opacity:0;transform:translateY(36px)}
.js .reveal.in{opacity:1;transform:none;transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}

/* HEATMAP */
.hm{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.hm .cell{border-radius:14px;padding:14px;color:#fff;min-height:92px;display:flex;flex-direction:column;justify-content:space-between;transform:scale(.9);opacity:0;transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .5s,box-shadow .2s;cursor:default}
.hm.show .cell{transform:none;opacity:1}
.hm .cell:hover{transform:scale(1.04);box-shadow:0 14px 30px rgba(10,22,40,.25)}
.hm .cell b{font-size:1.35rem;font-family:'Fraunces',serif}
.hm .cell small{font-size:.74rem;line-height:1.2;font-weight:600;opacity:.95}
.c-ex{background:linear-gradient(135deg,#0A5C30,#15924E)}
.c-gd{background:linear-gradient(135deg,#0E5C7A,#1490C0)}
.c-av{background:linear-gradient(135deg,#C47A00,#E39A1A)}
.c-wk{background:linear-gradient(135deg,#9A2020,#C83838)}
.tab{padding:10px 20px;border-radius:999px;font-weight:700;font-size:.86rem;border:1px solid var(--line);background:#fff;color:#3b4a66;transition:.25s;cursor:pointer}
.tab.on{background:linear-gradient(135deg,#0A1628,#1D4ED8);color:#fff;border-color:transparent;box-shadow:0 10px 24px rgba(29,78,216,.3)}
.bar-track{height:10px;border-radius:99px;background:#EEF2FA;overflow:hidden}
.bar-fill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#1D4ED8,#38BDF8);transition:width 1.4s cubic-bezier(.2,.8,.2,1)}

/* PORTAL */
.hand{font-family:'Caveat',cursive;font-size:1.35rem;line-height:1.5;color:#1c2f7a}
.paper{background:repeating-linear-gradient(#fff,#fff 31px,#dbe6fb 32px);border:1px solid var(--line);border-radius:16px;padding:18px 22px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:800;padding:5px 12px;border-radius:99px}
.chip.ok{background:#E3F6EB;color:#0A5C30}.chip.pt{background:#FFF3DA;color:#9a6200}.chip.no{background:#FDE7E7;color:#9A2020}
.qbtn{width:100%;text-align:left;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:#fff;transition:.25s;cursor:pointer}
.qbtn:hover{border-color:#b9cdf5}
.qbtn.on{border-color:var(--blue);background:#F3F7FF;box-shadow:0 8px 22px rgba(29,78,216,.12)}

/* REPORT PAGES STACK */
.rp{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 40px rgba(10,22,40,.08);transition:.4s}
.rp:hover{transform:translateY(-8px) rotate(-.4deg);box-shadow:0 30px 60px rgba(10,22,40,.15)}

/* FAQ */
details.faq{border:1px solid var(--line);border-radius:18px;padding:18px 22px;background:#fff;transition:.25s}
details.faq[open]{border-color:#b9cdf5;box-shadow:0 12px 30px rgba(29,78,216,.08)}
details.faq summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:16px}
details.faq summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--blue);transition:.25s}
details.faq[open] summary::after{transform:rotate(45deg)}
.prose h2{font-size:1.5rem;margin:2.2rem 0 .7rem}.prose p,.prose li{color:#3b4a66;line-height:1.8}.prose ul{list-style:disc;padding-left:1.3rem;margin:.6rem 0}
.prose a{color:var(--blue);text-decoration:underline}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,40px);opacity:0;z-index:80;transition:.5s;padding:14px 22px;border-radius:999px;color:#fff;background:rgba(10,22,40,.9);backdrop-filter:blur(10px)}
.toast.show{transform:translate(-50%,0);opacity:1}
#cookie{position:fixed;left:18px;right:18px;bottom:18px;max-width:560px;z-index:70;transform:translateY(160%);transition:transform .7s cubic-bezier(.2,.8,.2,1);background:rgba(255,255,255,.75);backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(255,255,255,.8);box-shadow:0 20px 60px rgba(10,22,40,.2);border-radius:22px;padding:18px 20px}
#cookie.show{transform:none}
@media(max-width:900px){.nav .links{display:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}
