:root {
  --orange:#E27B2E; --orange-soft:#E9A567; --navy:#17263F; --navy-deep:#0b1424;
  --teal:#1CA39A; --teal-soft:#3fbfb4;
  --ink:#1c2a40; --muted:#5f6f86; --line:#eae4db; --bg:#faf6f1; --card:#ffffff;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; color:var(--ink); background:var(--card); line-height:1.55; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
a { text-decoration:none; color:inherit; }
.wrap { max-width:1180px; margin:0 auto; padding:0 32px; }
.btn { position:relative; display:inline-block; cursor:pointer; padding:14px 28px; border-radius:11px; font-size:15px; font-weight:700; border:none; font-family:inherit; transition:transform .18s cubic-bezier(.2,.7,.2,1),box-shadow .18s ease; }
.btn-primary { background:var(--orange); color:#fff; box-shadow:0 8px 24px rgba(226,123,46,0.35); }
.btn-primary:hover { box-shadow:0 14px 34px rgba(226,123,46,0.48); }
.btn-ghost { background:transparent; color:#eaf0fa; border:1px solid rgba(226,123,46,0.5); }
.btn-ghost:hover { background:rgba(226,123,46,0.08); }
.btn-outline { background:transparent; color:var(--orange); border:1px solid rgba(226,123,46,0.5); }
.btn-outline:hover { background:rgba(226,123,46,0.06); }
.eyebrow { color:var(--orange); letter-spacing:3px; font-size:12px; font-weight:700; text-transform:uppercase; }
h2.section-title { font-size:clamp(26px,3.4vw,42px); font-weight:800; color:var(--navy); line-height:1.1; margin:12px 0; }

.reveal { opacity:0; transform:translateY(34px); transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity:1; transform:none; }
.reveal.d1 { transition-delay:.09s; } .reveal.d2 { transition-delay:.18s; } .reveal.d3 { transition-delay:.27s; }

/* PRELOADER */
#pre { position:fixed; top:0; right:0; bottom:0; left:0; z-index:200; background:var(--navy-deep); display:flex; flex-direction:column; align-items:center; justify-content:center; transition:opacity .6s ease,visibility .6s; }
#pre.done { opacity:0; visibility:hidden; }
#pre .pl-logo { font-weight:800; font-size:22px; letter-spacing:1px; margin-bottom:22px; }
#pre .pl-logo .r { color:var(--orange); } #pre .pl-logo .o { color:#eaf0fa; }
#pre .bar { width:180px; height:3px; background:rgba(255,255,255,0.12); border-radius:3px; overflow:hidden; }
#pre .bar i { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--orange),var(--teal-soft)); animation:load 1.5s ease forwards; }
@keyframes load { to { width:100%; } }

/* NAV */
header { position:fixed; top:0; left:0; right:0; z-index:60; transition:background .3s,backdrop-filter .3s,box-shadow .3s; }
header.scrolled { background:rgba(11,20,36,0.9); backdrop-filter:blur(12px); box-shadow:0 6px 24px rgba(0,0,0,.25); }
.nav { display:flex; align-items:center; justify-content:space-between; height:74px; }
.logo { font-weight:800; letter-spacing:.5px; font-size:19px; }
.logo .r { color:var(--orange); } .logo .o { color:#ffffff; }
.menu { display:flex; gap:30px; list-style:none; }
.menu a { color:#c4cfdf; font-size:14.5px; font-weight:500; transition:color .15s; }
.menu a:hover { color:#fff; }
.nav .btn-primary { padding:11px 22px; }
@media(max-width:900px){ .menu { display:none; } }

/* HERO */
#ro-hero { position:relative; width:100%; height:100vh; min-height:620px; overflow:hidden; background:var(--navy-deep); }
#ro-canvas { position:absolute; top:0; right:0; bottom:0; left:0; display:block; }
.fade1 { position:absolute; top:0; right:0; bottom:0; left:0; pointer-events:none; background:radial-gradient(120% 90% at 72% 25%, rgba(226,123,46,0.20), transparent 58%); }
.fade2 { position:absolute; top:0; right:0; bottom:0; left:0; pointer-events:none; background:linear-gradient(90deg, rgba(11,20,36,0.9) 0%, rgba(11,20,36,0.45) 45%, transparent 80%); }
.hero-content { position:absolute; top:0; right:0; bottom:0; left:0; display:flex; flex-direction:column; justify-content:center; pointer-events:none; }
.hero-content .wrap { width:100%; }
.hero-eyebrow { color:var(--orange-soft); letter-spacing:4px; font-size:12px; font-weight:600; text-transform:uppercase; margin-bottom:16px; opacity:0; transform:translateY(20px); animation:rise .8s .2s forwards; }
.hero h1 { color:#fff; font-size:clamp(36px,5.2vw,66px); line-height:1.04; font-weight:800; max-width:680px; opacity:0; transform:translateY(24px); animation:rise .9s .35s forwards; }
.hero h1 .accent { color:var(--orange); }
.hero p.sub { color:#b7c3d6; font-size:clamp(15px,1.6vw,20px); max-width:540px; margin:22px 0 32px; opacity:0; transform:translateY(24px); animation:rise .9s .5s forwards; }
.hero .ctas { display:flex; gap:14px; flex-wrap:wrap; pointer-events:auto; opacity:0; transform:translateY(24px); animation:rise .9s .65s forwards; }
@keyframes rise { to { opacity:1; transform:none; } }
.scroll-cue { position:absolute; bottom:22px; left:50%; transform:translateX(-50%); width:24px; height:40px; border:2px solid rgba(226,123,46,.5); border-radius:14px; pointer-events:none; }
.scroll-cue::after { content:""; position:absolute; left:50%; top:8px; width:4px; height:8px; background:var(--orange); border-radius:2px; transform:translateX(-50%); animation:cue 1.6s infinite; }
@keyframes cue { 0%{opacity:0;top:8px;} 30%{opacity:1;} 100%{opacity:0;top:22px;} }

/* TRUSTED */
.trusted { background:var(--navy); padding:34px 0; overflow:hidden; }
.trusted .label { text-align:center; color:#8496b0; letter-spacing:3px; font-size:11px; text-transform:uppercase; margin-bottom:20px; }
.marquee { position:relative; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); }
.marquee-track { display:flex; gap:64px; width:max-content; animation:scrollx 26s linear infinite; }
.marquee:hover .marquee-track { animation-play-state:paused; }
.marquee-track .lg { background:#fff; border-radius:12px; padding:0 24px; height:66px; min-width:130px; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 18px rgba(0,0,0,.18); }
.marquee-track .lg img { max-height:38px; max-width:120px; object-fit:contain; display:block; }
@keyframes scrollx { from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* WHO */
.who { padding:110px 0; }
.who-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:64px; align-items:center; }
.who p { color:var(--muted); font-size:16.5px; margin:16px 0; }
.quote { border-left:3px solid var(--orange); padding-left:18px; font-style:italic; color:var(--navy); font-weight:600; margin:24px 0; }
.who-visual { position:relative; border-radius:18px; overflow:hidden; min-height:400px; background:linear-gradient(160deg,#17263F,#0b1424); display:flex; align-items:center; justify-content:center; }
.who-visual canvas { position:absolute; top:0; right:0; bottom:0; left:0; }
.who-visual .badge { position:relative; text-align:center; color:#fff; padding:30px; z-index:2; }
.who-visual .badge .big { font-size:56px; font-weight:800; color:var(--orange); text-shadow:0 4px 30px rgba(226,123,46,.4); }
.stats { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:70px; text-align:center; }
.stat .num { font-size:clamp(30px,3.4vw,46px); font-weight:800; color:var(--navy); }
.stat .num span { color:var(--orange); }
.stat .lbl { color:var(--muted); font-size:13.5px; margin-top:4px; }
.icf-accred { text-align:center; margin-top:60px; }
.icf-label { color:var(--muted); font-size:12px; letter-spacing:2px; text-transform:uppercase; margin-bottom:22px; }
.icf-badges { display:flex; gap:32px; justify-content:center; align-items:center; flex-wrap:wrap; }
.icf-badge { position:relative; width:132px; height:132px; display:flex; align-items:center; justify-content:center; }
.icf-badge .ph { position:absolute; top:0; right:0; bottom:0; left:0; border:2px dashed var(--line); border-radius:50%; display:flex; align-items:center; justify-content:center; text-align:center; font-weight:800; color:var(--navy); font-size:13px; padding:18px; line-height:1.3; }
.icf-badge img { position:relative; z-index:2; width:132px; height:132px; object-fit:contain; }
@media(max-width:820px){ .who-grid { grid-template-columns:1fr; gap:40px; } .stats { grid-template-columns:repeat(2,1fr); gap:32px 20px; } }

/* SIGNATURE MORPH BAND */
.sig { position:relative; height:560px; background:var(--navy-deep); overflow:hidden; cursor:pointer; }
#sig-canvas { position:absolute; top:0; right:0; bottom:0; left:0; }
.sig .overlay { position:absolute; top:0; right:0; bottom:0; left:0; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; padding-top:64px; text-align:center; pointer-events:none; }
.sig .overlay .eyebrow { color:var(--teal-soft); }
.sig .overlay h2 { color:#fff; font-size:clamp(24px,3.2vw,40px); font-weight:800; margin-top:12px; max-width:640px; }
.sig .overlay p { color:#9fb0c8; margin-top:10px; font-size:15px; }
.sig .tag { position:absolute; bottom:22px; left:0; right:0; text-align:center; color:#5a6b86; font-size:11px; letter-spacing:1px; }

/* STREAMS */
.streams { background:var(--bg); padding:110px 0; }
.streams .head { text-align:center; max-width:680px; margin:0 auto 52px; }
.streams .head p { color:var(--muted); margin-top:12px; }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; perspective:1200px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:18px; overflow:hidden; transition:box-shadow .2s ease,transform .1s ease; transform-style:preserve-3d; will-change:transform; }
.card:hover { box-shadow:0 22px 50px rgba(23,38,63,0.16); }
.card .top { height:190px; display:flex; align-items:flex-end; padding:20px; color:#fff; font-weight:800; font-size:15px; letter-spacing:2px; position:relative; overflow:hidden; }
.card .top canvas.cardviz { position:absolute; top:0; right:0; bottom:0; left:0; width:100%; height:100%; z-index:1; }
.card .top .slabel { position:relative; z-index:3; }
.card .top::after { content:""; position:absolute; top:0; right:0; bottom:0; left:0; z-index:2; pointer-events:none; background:radial-gradient(120% 120% at 80% 0%,rgba(255,255,255,.18),transparent 60%); }
.card .top .cico { position:absolute; top:16px; right:16px; width:40px; height:40px; border-radius:10px; background:rgba(255,255,255,0.16); display:flex; align-items:center; justify-content:center; z-index:2; transition:transform .25s; }
.card:hover .top .cico { transform:scale(1.1) rotate(-4deg); }
.card .top .cico svg { width:22px; height:22px; stroke:#fff; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.card:nth-child(1) .top { background:linear-gradient(150deg,#E27B2E,#c25f18); }
.card:nth-child(2) .top { background:linear-gradient(150deg,#33507f,#17263F); }
.card:nth-child(3) .top { background:linear-gradient(150deg,#1f8078,#0e3b3a); }
.card .body { padding:26px; transform:translateZ(30px); }
.card h3 { font-size:20px; color:var(--navy); margin-bottom:10px; }
.card p { color:var(--muted); font-size:15px; margin-bottom:18px; }
.card .lnk { color:var(--orange); font-weight:700; font-size:14.5px; transition:letter-spacing .2s; }
.card:nth-child(3) .lnk { color:var(--teal); }
.card:hover .lnk { letter-spacing:.5px; }
@media(max-width:820px){ .cards { grid-template-columns:1fr; } }

/* CREDS */
.creds { padding:70px 0; text-align:center; }
.creds .label { color:var(--muted); letter-spacing:3px; font-size:11px; text-transform:uppercase; margin-bottom:22px; }
.creds .row { display:flex; flex-wrap:wrap; justify-content:center; gap:16px 20px; align-items:center; }
.creds .pill { border:1px solid var(--line); border-radius:12px; padding:14px 22px; color:var(--navy); font-weight:700; font-size:14px; transition:transform .18s,border-color .18s; }
.creds .pill:hover { transform:translateY(-3px); border-color:var(--orange); }
.creds .pill span { color:var(--orange); }

/* TESTIMONIALS */
.testi { position:relative; background:var(--navy-deep); padding:110px 0; color:#fff; overflow:hidden; }
.testi canvas { position:absolute; top:0; right:0; bottom:0; left:0; opacity:.55; }
.testi .veil { position:absolute; top:0; right:0; bottom:0; left:0; z-index:1; background:radial-gradient(circle at 50% 44%, rgba(11,20,36,0.25), rgba(11,20,36,0.86) 68%); }
.testi .wrap { position:relative; z-index:2; }
.testi .eyebrow { color:var(--orange-soft); }
.testi h2 { color:#fff; }
.tgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px; }
.quote-card { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); border-radius:16px; padding:28px; transition:transform .2s,border-color .2s,background .2s; }
.quote-card:hover { transform:translateY(-6px); border-color:rgba(226,123,46,.4); background:rgba(255,255,255,0.06); }
.quote-card .mark { color:var(--orange); font-size:44px; line-height:0.6; font-weight:800; }
.quote-card p { color:#cdd8e8; font-size:15px; margin:14px 0 20px; }
.quote-card .who-line { font-weight:700; color:#fff; font-size:15px; }
.quote-card .role { color:#8496b0; font-size:13px; }
@media(max-width:820px){ .tgrid { grid-template-columns:1fr; } }

/* NEWS */
.news { padding:110px 0; }
.news .head { display:flex; justify-content:space-between; align-items:end; margin-bottom:44px; flex-wrap:wrap; gap:16px; }
.ngrid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.post { border:1px solid var(--line); border-radius:16px; overflow:hidden; transition:transform .2s ease,box-shadow .2s; }
.post:hover { transform:translateY(-6px); box-shadow:0 18px 38px rgba(23,38,63,0.12); }
.post .img { height:170px; background:linear-gradient(150deg,#e7ded3,#d3c3b4); position:relative; overflow:hidden; }
.post .img::after { content:""; position:absolute; top:0; right:0; bottom:0; left:0; background:linear-gradient(150deg,rgba(226,123,46,.18),transparent); }
.post .pbody { padding:22px; }
.post .date { color:var(--orange); font-size:12.5px; font-weight:700; letter-spacing:.5px; }
.post h4 { font-size:17px; color:var(--navy); margin:8px 0 10px; line-height:1.3; }
.post p { color:var(--muted); font-size:14px; }
@media(max-width:820px){ .ngrid { grid-template-columns:1fr; } }

/* CTA */
.cta { position:relative; background:linear-gradient(120deg,#17263F,#0b1424); padding:100px 0; text-align:center; color:#fff; overflow:hidden; }
.cta canvas { position:absolute; top:0; right:0; bottom:0; left:0; opacity:.9; }
.cta .wrap { position:relative; z-index:2; }
.cta h2 { font-size:clamp(28px,3.6vw,44px); font-weight:800; max-width:720px; margin:0 auto 16px; }
.cta p { color:#b7c3d6; max-width:560px; margin:0 auto 30px; }

/* FOOTER */
footer { background:#08101d; color:#9fb0c8; padding:64px 0 30px; }
.fgrid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
footer h5 { color:#fff; font-size:14px; letter-spacing:1px; margin-bottom:16px; text-transform:uppercase; }
footer ul { list-style:none; } footer li { margin-bottom:10px; font-size:14px; }
footer a:hover { color:#fff; }
.foot-logo { font-weight:800; font-size:20px; margin-bottom:14px; } .foot-logo .r { color:var(--orange); }
.foot-bottom { border-top:1px solid rgba(255,255,255,0.08); margin-top:44px; padding-top:22px; text-align:center; font-size:13px; color:#6b7d97; }
@media(max-width:820px){ .fgrid { grid-template-columns:1fr 1fr; gap:32px; } }
@media(prefers-reduced-motion:reduce){ .reveal{opacity:1;transform:none;transition:none;} .marquee-track{animation:none;} .hero-eyebrow,.hero h1,.hero p.sub,.hero .ctas{animation:none;opacity:1;transform:none;} }