/* ===== TIDEFALL (KELDRUNE design system) ===== */
:root{
  --bg:#050c18;
  --bg-2:#081428;
  --panel:#0b1b33;
  --panel-2:#0e2342;
  --line:#1f3a5e;
  --gold:#f3c770;
  --gold-hi:#ffe3a3;
  --gold-deep:#a8712a;
  --blue:#2f9bff;
  --blue-hi:#7cc8ff;
  --text:#eef4ff;
  --muted:#a3b5cc;
  --dim:#6f86a3;
  --display:'Cinzel',Georgia,'Times New Roman',serif;
  --body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --max:1240px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
h1,h2,h3{font-family:var(--display);font-weight:800;letter-spacing:.02em;margin:0}
.gold{background:linear-gradient(180deg,var(--gold-hi) 10%,var(--gold) 55%,#d18f35 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
:focus-visible{outline:2px solid var(--blue-hi);outline-offset:3px}

/* ---------- eyebrow / ornament ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:.7em;color:var(--blue-hi);font-weight:700;font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.eyebrow em{font-style:normal;color:var(--gold);font-size:.7em}
.ornament{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px auto 20px}
.ornament span{height:1px;width:80px;background:linear-gradient(90deg,transparent,var(--gold-deep))}
.ornament span:last-child{transform:scaleX(-1)}
.ornament i{width:9px;height:9px;transform:rotate(45deg);border:1px solid var(--gold);background:var(--bg);box-shadow:0 0 12px rgba(243,199,112,.5)}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:15px 26px;font-weight:800;font-size:13px;letter-spacing:.14em;text-transform:uppercase;border-radius:4px;transition:transform .2s ease,box-shadow .25s ease,background .25s ease,color .2s}
.btn svg{font-size:16px;transition:transform .2s}
.btn:hover svg{transform:translateX(3px)}
.btn-primary{color:#fff;background:linear-gradient(180deg,#3aa6ff 0%,#1676e6 50%,#0b4fb0 100%);border:1px solid #8fd0ff;box-shadow:0 0 0 1px var(--gold-deep),0 0 0 4px rgba(5,12,24,.9),0 0 0 5px rgba(168,113,42,.6),0 12px 30px -8px rgba(47,155,255,.6),inset 0 1px 0 rgba(255,255,255,.35);text-shadow:0 1px 0 rgba(0,0,0,.35)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--gold),0 0 0 4px rgba(5,12,24,.9),0 0 0 5px rgba(243,199,112,.8),0 16px 40px -6px rgba(47,155,255,.8),inset 0 1px 0 rgba(255,255,255,.45)}
.btn-ghost{color:var(--gold-hi);border:1px solid rgba(243,199,112,.45);background:rgba(8,20,40,.45);backdrop-filter:blur(6px)}
.btn-ghost:hover{border-color:var(--gold);background:rgba(243,199,112,.1);transform:translateY(-2px)}
.btn-sm{padding:11px 18px;font-size:11.5px}

/* ---------- nav ---------- */
.nav{position:fixed;z-index:50;top:0;left:0;right:0;height:76px;display:flex;align-items:center;gap:24px;padding:0 max(24px,calc((100vw - 1400px)/2));transition:background .3s,height .3s,box-shadow .3s,border-color .3s;border-bottom:1px solid transparent}
.nav.scrolled{height:66px;background:rgba(5,12,24,.86);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom-color:rgba(168,113,42,.45);box-shadow:0 10px 30px -10px rgba(0,0,0,.6)}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:900;font-size:22px;letter-spacing:.08em;color:var(--gold)}
.brand img{width:40px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.6))}
.brand span{background:linear-gradient(180deg,var(--gold-hi),var(--gold) 60%,#c98a33);-webkit-background-clip:text;background-clip:text;color:transparent}
.nav nav{display:flex;gap:6px;margin:0 auto}
.nav nav a{position:relative;padding:10px 16px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#c8d6ea;transition:color .2s}
.nav nav a::after{content:"";position:absolute;left:50%;bottom:4px;width:0;height:1px;background:var(--gold);transition:width .25s,left .25s}
.nav nav a:hover{color:var(--gold-hi)}
.nav nav a:hover::after{width:calc(100% - 32px);left:16px}

/* ---------- hero ---------- */
.hero{position:relative;min-height:max(720px,100svh);display:flex;align-items:center;overflow:hidden;isolation:isolate;padding:110px 0 90px}
.hero-bg{position:absolute;inset:-40px;z-index:-3;background:
  radial-gradient(ellipse 45% 55% at 28% 48%,rgba(47,155,255,.35),transparent 70%),
  radial-gradient(ellipse 35% 40% at 75% 20%,rgba(140,80,255,.16),transparent 70%),
  radial-gradient(ellipse 80% 40% at 50% 110%,rgba(47,155,255,.22),transparent 70%),
  linear-gradient(180deg,#071631 0%,#050c18 70%)}
.hero-bg::after{content:"";position:absolute;inset:0;background:
  radial-gradient(ellipse 60% 70% at 30% 50%,transparent 0%,rgba(5,12,24,.35) 60%,rgba(5,12,24,.85) 100%),
  linear-gradient(90deg,rgba(5,12,24,.2) 0%,rgba(5,12,24,.35) 45%,rgba(5,12,24,.88) 75%,rgba(5,12,24,.95) 100%),
  linear-gradient(0deg,var(--bg) 0%,transparent 28%),
  linear-gradient(180deg,rgba(5,12,24,.7) 0%,transparent 18%)}
.hero-rays{position:absolute;z-index:-2;left:30%;top:50%;width:1100px;height:1100px;transform:translate(-50%,-50%);background:
  conic-gradient(from 0deg,transparent 0deg,rgba(124,200,255,.10) 8deg,transparent 18deg,transparent 40deg,rgba(243,199,112,.08) 48deg,transparent 58deg,transparent 90deg,rgba(124,200,255,.08) 98deg,transparent 110deg,transparent 150deg,rgba(243,199,112,.07) 158deg,transparent 168deg,transparent 200deg,rgba(124,200,255,.09) 210deg,transparent 222deg,transparent 260deg,rgba(243,199,112,.08) 270deg,transparent 280deg,transparent 320deg,rgba(124,200,255,.08) 330deg,transparent 342deg);
  -webkit-mask:radial-gradient(circle,#000 0%,transparent 62%);mask:radial-gradient(circle,#000 0%,transparent 62%);animation:spin 90s linear infinite}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}

.hero-inner{width:100%;max-width:1400px;margin:0 auto;padding:0 40px;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.emblem-wrap{position:relative;display:grid;place-items:center}
.emblem-wrap::before{content:"";position:absolute;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(47,155,255,.45) 0%,rgba(140,80,255,.18) 40%,transparent 70%);filter:blur(20px);z-index:-1}
.emblem{width:min(680px,100%);filter:drop-shadow(0 30px 40px rgba(0,0,0,.7)) drop-shadow(0 0 30px rgba(47,155,255,.25));animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

.hero-copy{max-width:560px}
.hero h1{font-size:clamp(44px,5.6vw,80px);line-height:.98;font-weight:900;margin:20px 0 24px;text-transform:uppercase;text-shadow:0 6px 30px rgba(0,0,0,.6)}
.hero h1 .gold{filter:drop-shadow(0 4px 0 rgba(90,45,0,.55))}
.lede{font-size:18.5px;line-height:1.65;color:#d6e2f2;margin:0 0 34px;max-width:500px}
.actions{display:flex;flex-wrap:wrap;gap:18px;align-items:center}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:36px 0 0;padding:0}
.chips li{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#d5e3f5;background:rgba(8,22,44,.65);border:1px solid rgba(124,200,255,.22);border-radius:999px;backdrop-filter:blur(6px)}
.chips svg{color:var(--gold);font-size:15px}

.scroll-cue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);width:26px;height:42px;border:1.5px solid rgba(243,199,112,.55);border-radius:14px}
.scroll-cue span{position:absolute;left:50%;top:8px;width:3px;height:8px;margin-left:-1.5px;border-radius:2px;background:var(--gold);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}

/* embers */
.embers{position:absolute;inset:0;z-index:-1;pointer-events:none}
.embers i{position:absolute;bottom:-10px;width:4px;height:4px;border-radius:50%;background:#ffcf7a;box-shadow:0 0 8px 2px rgba(255,170,60,.8);opacity:0;animation:rise linear infinite}
.embers i:nth-child(odd){background:#9fd6ff;box-shadow:0 0 8px 2px rgba(80,170,255,.8)}
.embers i:nth-child(1){left:6%;animation-duration:11s;animation-delay:0s}
.embers i:nth-child(2){left:14%;animation-duration:14s;animation-delay:3s}
.embers i:nth-child(3){left:22%;animation-duration:9s;animation-delay:6s}
.embers i:nth-child(4){left:31%;animation-duration:13s;animation-delay:1s}
.embers i:nth-child(5){left:39%;animation-duration:10s;animation-delay:4s}
.embers i:nth-child(6){left:47%;animation-duration:15s;animation-delay:7s}
.embers i:nth-child(7){left:56%;animation-duration:12s;animation-delay:2s}
.embers i:nth-child(8){left:64%;animation-duration:9s;animation-delay:5s}
.embers i:nth-child(9){left:72%;animation-duration:14s;animation-delay:8s}
.embers i:nth-child(10){left:80%;animation-duration:11s;animation-delay:2.5s}
.embers i:nth-child(11){left:88%;animation-duration:13s;animation-delay:6.5s}
.embers i:nth-child(12){left:95%;animation-duration:10s;animation-delay:4.5s}
@keyframes rise{0%{transform:translate(0,0) scale(1);opacity:0}10%{opacity:.9}70%{opacity:.6}100%{transform:translate(40px,-95vh) scale(.4);opacity:0}}

/* ---------- sections ---------- */
section{position:relative}
.section-head{text-align:center;max-width:720px;margin:0 auto 56px}
.section-head h2,.battle h2,.community h2{font-size:clamp(32px,4vw,52px);line-height:1.08;text-transform:uppercase}
.section-head h2{margin-top:14px;background:linear-gradient(180deg,var(--gold-hi),var(--gold) 60%,#c98a33);-webkit-background-clip:text;background-clip:text;color:transparent}
.section-head p{color:var(--muted);font-size:17px;margin:0}

/* ---------- features ---------- */
.features{padding:110px 40px 120px;background:
  radial-gradient(ellipse 70% 50% at 50% 0%,rgba(47,155,255,.08),transparent 70%),var(--bg)}
.grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{position:relative;padding:34px 30px 32px;border-radius:6px;background:linear-gradient(160deg,rgba(18,40,74,.9),rgba(8,20,40,.95) 60%);border:1px solid var(--line);overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .35s}
.card::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,var(--gold) 30%,var(--gold-hi) 50%,var(--gold) 70%,transparent)}
.card::after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(47,155,255,.18),transparent 70%);transition:opacity .35s;opacity:.5}
.card:hover{transform:translateY(-6px);border-color:rgba(243,199,112,.45);box-shadow:0 24px 50px -20px rgba(0,0,0,.8),0 0 0 1px rgba(243,199,112,.12),0 0 40px -10px rgba(47,155,255,.35)}
.card:hover::after{opacity:1}
.badge{position:relative;width:58px;height:58px;display:grid;place-items:center;margin-bottom:22px;color:var(--blue-hi);font-size:28px}
.badge::before{content:"";position:absolute;inset:6px;transform:rotate(45deg);border:1px solid var(--gold-deep);background:linear-gradient(135deg,#123058,#0a1a33);box-shadow:inset 0 0 14px rgba(47,155,255,.25),0 0 18px -4px rgba(47,155,255,.4);transition:transform .4s,border-color .3s}
.badge svg{position:relative;filter:drop-shadow(0 0 6px rgba(124,200,255,.5))}
.card:hover .badge::before{transform:rotate(135deg);border-color:var(--gold)}
.num{position:absolute;top:26px;right:28px;font-family:var(--display);font-size:13px;font-weight:700;letter-spacing:.1em;color:rgba(163,181,204,.35)}
.card h3{font-size:19px;color:var(--gold);text-transform:uppercase;margin-bottom:10px}
.card p{margin:0;color:var(--muted);font-size:15px;line-height:1.65}

/* ---------- battle ---------- */
.battle{padding:120px 40px;background:
  linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 20%,var(--bg-2) 80%,var(--bg) 100%)}
.battle::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 50% 60% at 25% 50%,rgba(140,80,255,.12),transparent 70%),radial-gradient(ellipse 40% 50% at 80% 40%,rgba(47,155,255,.1),transparent 70%);pointer-events:none}
.battle-inner{position:relative;max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:72px;align-items:center}
.battle-art{position:relative;margin:0;border-radius:6px;padding:10px;background:linear-gradient(160deg,#2a1d0b,#0b1830 40%,#0b1830 60%,#2a1d0b);border:1px solid var(--gold-deep);box-shadow:0 40px 80px -30px rgba(0,0,0,.9),0 0 60px -20px rgba(140,80,255,.45)}
.battle-art img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 42%;border-radius:3px;border:1px solid rgba(243,199,112,.3)}
.corner{position:absolute;width:22px;height:22px;border:2px solid var(--gold)}
.corner.tl{top:-6px;left:-6px;border-right:0;border-bottom:0}
.corner.tr{top:-6px;right:-6px;border-left:0;border-bottom:0}
.corner.bl{bottom:-6px;left:-6px;border-right:0;border-top:0}
.corner.br{bottom:-6px;right:-6px;border-left:0;border-top:0}
.battle h2{margin:14px 0 22px}
.battle-copy>p{color:#c2d0e2;font-size:17.5px;line-height:1.7;margin:0 0 34px;max-width:540px}

.steps{list-style:none;margin:0 0 40px;padding:0;counter-reset:s;display:grid;gap:12px}
.steps li{counter-increment:s;display:grid;grid-template-columns:44px 90px 1fr;align-items:center;gap:14px;padding:14px 18px;border:1px solid var(--line);border-radius:5px;background:rgba(11,27,51,.6);transition:border-color .25s,background .25s}
.steps li:hover{border-color:rgba(243,199,112,.4);background:rgba(14,35,66,.8)}
.steps li::before{content:counter(s);display:grid;place-items:center;width:34px;height:34px;transform:rotate(45deg);border:1px solid var(--gold-deep);background:#0a1a33;font-family:var(--display);font-weight:800;color:var(--gold)}
.steps li b{font-family:var(--display);font-size:16px;letter-spacing:.06em;color:var(--text);text-transform:uppercase}
.steps li span{color:var(--muted);font-size:14.5px}
/* keep the number upright inside the rotated diamond */
.steps li::before{font-size:0}
.steps li{position:relative}
.steps li::after{content:counter(s);position:absolute;left:18px;top:50%;transform:translateY(-50%);line-height:1;width:34px;text-align:center;font-family:var(--display);font-weight:800;font-size:15px;color:var(--gold)}

.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.stats div{padding:20px 18px;text-align:center;border-radius:5px;background:linear-gradient(180deg,rgba(243,199,112,.08),rgba(243,199,112,0));border:1px solid rgba(243,199,112,.22)}
.stats strong{display:block;font-family:var(--display);font-size:34px;font-weight:900;line-height:1;margin-bottom:8px;background:linear-gradient(180deg,var(--gold-hi),var(--gold) 60%,#c98a33);-webkit-background-clip:text;background-clip:text;color:transparent}
.stats span{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}

/* ---------- community ---------- */
.community-wrap{padding:60px 40px 130px}
.community{position:relative;max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:40px;padding:64px 72px;border-radius:8px;overflow:hidden;background:
  radial-gradient(ellipse 60% 90% at 85% 50%,rgba(47,155,255,.32),transparent 65%),
  linear-gradient(120deg,#0a1830 0%,#0d2448 60%,#0f2c58 100%);border:1px solid rgba(124,200,255,.25);box-shadow:0 40px 80px -40px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.06)}
.community::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(124,200,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(124,200,255,.05) 1px,transparent 1px);background-size:40px 40px;-webkit-mask:linear-gradient(90deg,transparent 30%,#000);mask:linear-gradient(90deg,transparent 30%,#000);pointer-events:none}
.community::after{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,var(--gold) 20%,var(--gold-hi) 50%,var(--gold) 80%,transparent)}
.community-copy{position:relative;z-index:1}
.community h2{margin:14px 0 16px;background:linear-gradient(180deg,var(--gold-hi),var(--gold) 60%,#c98a33);-webkit-background-clip:text;background-clip:text;color:transparent}
.community p{color:#c2d0e2;font-size:17px;line-height:1.7;margin:0 0 32px;max-width:520px}
.crest{position:relative;display:grid;place-items:center;min-height:280px}
.crest img{position:relative;width:min(340px,100%);filter:drop-shadow(0 20px 30px rgba(0,0,0,.6)) drop-shadow(0 0 40px rgba(47,155,255,.45));animation:float 8s ease-in-out infinite reverse}
.crest-ring{position:absolute;width:300px;height:300px;border-radius:50%;border:1px dashed rgba(243,199,112,.35);animation:spin2 60s linear infinite}
.crest-ring::before{content:"";position:absolute;inset:22px;border-radius:50%;border:1px solid rgba(124,200,255,.25);box-shadow:0 0 60px rgba(47,155,255,.35),inset 0 0 40px rgba(47,155,255,.2)}
@keyframes spin2{to{transform:rotate(360deg)}}

/* ---------- footer ---------- */
footer{border-top:1px solid rgba(168,113,42,.45);background:#030912}
.foot-inner{max-width:var(--max);margin:0 auto;padding:34px 40px;display:flex;align-items:center;gap:32px;flex-wrap:wrap}
.foot-brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:900;font-size:18px;letter-spacing:.08em;color:var(--gold)}
.foot-brand img{width:32px}
footer nav{display:flex;gap:24px;margin-right:auto}
footer nav a{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);transition:color .2s}
footer nav a:hover{color:var(--gold-hi)}
.copy{font-size:12px;letter-spacing:.08em;color:var(--dim)}
.copy b{color:#dbe6f5;font-weight:700}

/* ---------- reveal ---------- */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease var(--d,0ms),transform .8s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.js .reveal.in{opacity:1;transform:none}
.js .card.reveal.in{transition:opacity .8s ease var(--d,0ms),transform .35s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .35s}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .hero-inner{gap:20px;padding:0 28px}
  .battle-inner{gap:48px}
  .community{padding:56px 48px}
}
@media (max-width:900px){
  .nav{padding:0 18px}
  .nav nav{display:none}
  .navcta{margin-left:auto}
  .hero{padding:96px 0 80px;min-height:auto}
  .hero-inner{grid-template-columns:1fr;text-align:center;gap:8px;padding:0 20px}
  .emblem{width:min(460px,88%)}
  .hero-copy{margin:0 auto}
  .lede{margin-left:auto;margin-right:auto}
  .actions,.chips{justify-content:center}
  .hero-rays{left:50%;top:32%}
  .hero-bg::after{background:radial-gradient(ellipse 80% 50% at 50% 30%,transparent,rgba(5,12,24,.6) 70%),linear-gradient(0deg,var(--bg) 0%,rgba(5,12,24,.75) 50%,rgba(5,12,24,.35) 100%)}
  .scroll-cue{display:none}
  .features{padding:80px 20px 90px}
  .grid{grid-template-columns:1fr 1fr;gap:16px}
  .battle{padding:80px 20px}
  .battle-inner{grid-template-columns:1fr;gap:48px}
  .battle-art{max-width:480px;margin:0 auto;width:100%}
  .community-wrap{padding:40px 20px 90px}
  .community{grid-template-columns:1fr;text-align:center;padding:48px 28px}
  .community p{margin-left:auto;margin-right:auto}
  .crest{order:-1;min-height:220px}
  .crest img{width:220px}
  .crest-ring{width:230px;height:230px}
  .foot-inner{padding:30px 20px;justify-content:center;text-align:center}
  footer nav{margin:0}
}
@media (max-width:600px){
  .brand{font-size:18px}
  .brand img{width:32px}
  .btn-sm{padding:9px 12px;font-size:10.5px;letter-spacing:.1em}
  .eyebrow{font-size:10.5px;letter-spacing:.16em;gap:.5em}
  .lede{font-size:16.5px}
  .actions{flex-direction:column;align-items:stretch}
  .actions .btn{justify-content:center}
  .grid{grid-template-columns:1fr}
  .card{padding:28px 24px}
  .steps li{grid-template-columns:44px 1fr;row-gap:2px}
  .steps li span{grid-column:2}
  .stats{gap:10px}
  .stats div{padding:16px 8px}
  .stats strong{font-size:26px}
  .stats span{font-size:9.5px;letter-spacing:.1em}
  .foot-inner{flex-direction:column;gap:18px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
}

/* ===================== TIDEFALL ADDITIONS ===================== */
.wave-band{position:absolute;left:0;right:0;bottom:0;width:100%;height:140px;z-index:-1;pointer-events:none;opacity:.55}
.panel-art{position:relative;margin:0;border-radius:6px;padding:48px 24px;background:linear-gradient(160deg,#2a1d0b,#0b1830 40%,#0b1830 60%,#2a1d0b);border:1px solid var(--gold-deep);box-shadow:0 40px 80px -30px rgba(0,0,0,.9),0 0 60px -20px rgba(47,155,255,.45);display:grid;place-items:center;min-height:420px;overflow:hidden}
.panel-art::before{content:"";position:absolute;inset:10px;border:1px solid rgba(243,199,112,.3);border-radius:3px;background:radial-gradient(circle at 50% 45%,rgba(47,155,255,.28),transparent 60%)}
.panel-art img{position:relative;width:min(440px,92%);filter:drop-shadow(0 20px 30px rgba(0,0,0,.6)) drop-shadow(0 0 40px rgba(47,155,255,.45));animation:float 8s ease-in-out infinite}
.crest img{width:min(400px,100%)}
.store{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}
.store .btn[aria-disabled=true]{cursor:default;opacity:.85}
.store .btn small{font-weight:600;letter-spacing:.1em;opacity:.75;font-size:10px}
.brand img{border-radius:50%}
.foot-brand img{border-radius:50%}

/* nav on inner pages: always solid */
.nav.solid{height:66px;background:rgba(5,12,24,.92);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom-color:rgba(168,113,42,.45)}
.navcta{margin-left:auto}
.nav nav a[aria-current=page]{color:var(--gold-hi)}

/* document pages */
.page-head{position:relative;padding:150px 24px 64px;text-align:center;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse 60% 80% at 50% 0%,rgba(47,155,255,.16),transparent 70%),linear-gradient(180deg,#071631,var(--bg))}
.page-head h1{font-size:clamp(34px,5vw,58px);line-height:1.05;text-transform:uppercase;margin-top:14px;background:linear-gradient(180deg,var(--gold-hi),var(--gold) 60%,#c98a33);-webkit-background-clip:text;background-clip:text;color:transparent}
.page-head p{color:var(--muted);margin:0;font-size:16px}
.doc-wrap{padding:20px 24px 110px}
.doc{max-width:860px;margin:0 auto;padding:48px 52px;border-radius:6px;position:relative;background:linear-gradient(160deg,rgba(18,40,74,.75),rgba(8,20,40,.95) 50%);border:1px solid var(--line)}
.doc::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,var(--gold) 30%,var(--gold-hi) 50%,var(--gold) 70%,transparent)}
.doc h2{font-size:20px;text-transform:uppercase;color:var(--gold);margin:40px 0 12px;letter-spacing:.06em}
.doc h2:first-child{margin-top:0}
.doc p,.doc li{color:#c2d0e2;font-size:16px;line-height:1.75}
.doc a{color:var(--blue-hi);text-decoration:underline;text-underline-offset:3px}
.doc a:hover{color:var(--gold-hi)}
.doc ul{padding-left:1.2em}
.doc ul li::marker{color:var(--gold)}
.doc li{margin:6px 0}
.doc strong{color:var(--text)}
.ph{background:rgba(243,199,112,.14);color:var(--gold-hi);padding:1px 7px;border-radius:3px;border:1px solid rgba(243,199,112,.35);font-weight:700;white-space:nowrap;font-size:.92em}
.callout{position:relative;margin:26px 0;padding:18px 22px 18px 56px;border-radius:5px;border:1px solid rgba(124,200,255,.3);background:rgba(47,155,255,.08);color:#d6e2f2}
.callout::before{content:"";position:absolute;left:22px;top:22px;width:12px;height:12px;transform:rotate(45deg);border:1px solid var(--gold);background:var(--bg);box-shadow:0 0 12px rgba(243,199,112,.5)}
.callout.gold{border-color:rgba(243,199,112,.4);background:rgba(243,199,112,.07)}
.data{width:100%;border-collapse:collapse;margin:14px 0;font-size:15px}
.data th,.data td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;color:#c2d0e2}
.data th{font-family:var(--display);color:var(--gold);font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.data td:first-child{color:var(--text);font-weight:600;white-space:nowrap}
.doc .steps li{grid-template-columns:44px 90px 1fr}
.doc .steps li span{color:#c2d0e2;font-size:15.5px}
.faq details{border:1px solid var(--line);border-radius:5px;background:rgba(11,27,51,.6);margin:12px 0;transition:border-color .25s}
.faq details[open],.faq details:hover{border-color:rgba(243,199,112,.4)}
.faq summary{cursor:pointer;list-style:none;padding:18px 52px 18px 22px;position:relative;font-family:var(--display);font-weight:700;font-size:15.5px;letter-spacing:.04em;color:var(--text)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:24px;top:50%;width:9px;height:9px;margin-top:-6px;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(45deg);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.faq details p{margin:0;padding:0 22px 20px}

/* 404 + gateway */
.center-page{position:relative;min-height:100svh;display:grid;place-items:center;text-align:center;padding:120px 24px 80px;overflow:hidden;isolation:isolate}
.center-page .hero-bg{inset:0}
.code{font-family:var(--display);font-weight:900;font-size:clamp(90px,18vw,170px);line-height:1;margin:0;background:linear-gradient(180deg,var(--gold-hi),var(--gold) 55%,#d18f35);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 0 rgba(90,45,0,.5))}
.center-page h1{font-size:clamp(28px,4vw,44px);text-transform:uppercase;margin:6px 0 4px}
.center-page p.sub{color:var(--muted);max-width:520px;margin:0 auto 34px;font-size:17px}
.center-page .actions{justify-content:center}
.center-logo{width:min(420px,86vw);margin:0 auto 10px;filter:drop-shadow(0 20px 30px rgba(0,0,0,.6)) drop-shadow(0 0 40px rgba(47,155,255,.35));animation:float 8s ease-in-out infinite}

.status{display:inline-flex;align-items:center;gap:10px;padding:9px 16px;border-radius:999px;font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#d5e3f5;background:rgba(8,22,44,.7);border:1px solid rgba(124,200,255,.25)}
.status .dot{width:9px;height:9px;border-radius:50%;background:var(--dim)}
.status.up{border-color:rgba(80,220,160,.45)}.status.up .dot{background:#4fe0a0;box-shadow:0 0 10px 2px rgba(79,224,160,.6);animation:pulse 2s ease-in-out infinite}
.status.maint{border-color:rgba(243,199,112,.5)}.status.maint .dot{background:var(--gold);box-shadow:0 0 10px 2px rgba(243,199,112,.6)}
.status.down{border-color:rgba(255,120,110,.5)}.status.down .dot{background:#ff7a6e;box-shadow:0 0 10px 2px rgba(255,122,110,.6)}
@keyframes pulse{50%{opacity:.45}}
.gate-top{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:26px}
.gate-tag{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-hi);border:1px solid rgba(243,199,112,.4);background:rgba(8,20,40,.55)}
.gate-tag svg{color:var(--gold);font-size:14px}
.gate-grid{max-width:980px;margin:44px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;text-align:left}
.gate-grid .card{padding:26px 22px}
.gate-grid .card h3{font-size:15px}
.gate-grid .card p{font-size:14px}
.op-line{margin-top:34px;display:inline-flex;align-items:center;gap:12px;font-family:var(--display);font-weight:700;letter-spacing:.2em;font-size:13px;text-transform:uppercase;color:var(--muted)}
.op-line i{width:8px;height:8px;transform:rotate(45deg);border:1px solid var(--gold);background:var(--bg)}
@media (max-width:900px){
  .doc{padding:34px 24px}
  .gate-grid{grid-template-columns:1fr 1fr}
  .panel-art{min-height:320px}
}
@media (max-width:600px){
  .gate-grid{grid-template-columns:1fr}
  .data td:first-child{white-space:normal}
  .page-head{padding-top:120px}
  .doc .steps li{grid-template-columns:44px 1fr}
  .doc .steps li span{grid-column:2}
}
.wave-band,.wave-band path{stroke:none}
.center-page h1{line-height:1.1}

/* ===================== LIVING OCEAN ===================== */
/* animated tide layers */
.tide{position:absolute;left:0;right:0;bottom:-1px;height:150px;z-index:-1;pointer-events:none;overflow:hidden}
.tide-l{position:absolute;left:0;bottom:0;width:200%;height:100%;stroke:none;animation:tideMove linear infinite}
.tide-l path{stroke:none}
.tide-l.t1{height:150px;fill:rgba(47,155,255,.10);animation-duration:26s}
.tide-l.t2{height:115px;fill:rgba(124,200,255,.08);animation-duration:17s;animation-direction:reverse}
.tide-l.t3{height:80px;fill:var(--bg);animation-duration:11s}
@keyframes tideMove{to{transform:translateX(-50%)}}

/* rising bubbles */
.bubbles{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.bubbles i{position:absolute;bottom:-30px;border-radius:50%;border:1px solid rgba(160,215,255,.55);background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.5),rgba(124,200,255,.08) 60%,transparent 70%);opacity:0;animation:bubble linear infinite}
.bubbles i:nth-child(1){left:4%;width:10px;height:10px;animation-duration:12s}
.bubbles i:nth-child(2){left:11%;width:6px;height:6px;animation-duration:9s;animation-delay:2s}
.bubbles i:nth-child(3){left:18%;width:14px;height:14px;animation-duration:15s;animation-delay:5s}
.bubbles i:nth-child(4){left:26%;width:8px;height:8px;animation-duration:11s;animation-delay:1s}
.bubbles i:nth-child(5){left:33%;width:5px;height:5px;animation-duration:8s;animation-delay:4s}
.bubbles i:nth-child(6){left:41%;width:12px;height:12px;animation-duration:14s;animation-delay:7s}
.bubbles i:nth-child(7){left:52%;width:7px;height:7px;animation-duration:10s;animation-delay:3s}
.bubbles i:nth-child(8){left:60%;width:16px;height:16px;animation-duration:16s;animation-delay:6s}
.bubbles i:nth-child(9){left:68%;width:6px;height:6px;animation-duration:9s;animation-delay:.5s}
.bubbles i:nth-child(10){left:75%;width:11px;height:11px;animation-duration:13s;animation-delay:2.5s}
.bubbles i:nth-child(11){left:82%;width:5px;height:5px;animation-duration:8s;animation-delay:5.5s}
.bubbles i:nth-child(12){left:88%;width:13px;height:13px;animation-duration:15s;animation-delay:1.5s}
.bubbles i:nth-child(13){left:93%;width:7px;height:7px;animation-duration:10s;animation-delay:4.5s}
.bubbles i:nth-child(14){left:97%;width:9px;height:9px;animation-duration:12s;animation-delay:8s}
@keyframes bubble{0%{transform:translate(0,0);opacity:0}10%{opacity:.85}50%{transform:translate(14px,-50vh)}100%{transform:translate(-8px,-100vh);opacity:0}}

/* inner page header: alive */
.page-head{min-height:520px;display:flex;align-items:center;justify-content:center;padding:120px 24px 130px;background:none}
.page-head .hero-bg{inset:0}
.page-head .hero-rays{left:50%;top:42%}
.page-head-inner{position:relative;z-index:1}
.head-crest{position:relative;display:grid;place-items:center;width:260px;height:150px;margin:0 auto 10px}
.head-crest img{position:relative;width:240px;filter:drop-shadow(0 16px 24px rgba(0,0,0,.6)) drop-shadow(0 0 30px rgba(47,155,255,.45));animation:float 7s ease-in-out infinite}
.head-crest .crest-ring{width:190px;height:190px}

/* card row above documents */
.doc-wrap{position:relative;z-index:1;margin-top:-60px}
.glance{max-width:860px;margin:0 auto 26px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.glance .card{padding:26px 22px 24px}
.glance .card h3{font-size:15.5px}
.glance .card p{font-size:14px}
.glance .badge{width:50px;height:50px;font-size:24px;margin-bottom:16px}

/* 404: logo adrift on the tide */
.lost-page{padding-bottom:170px}
.lost-inner{position:relative;z-index:1}
.adrift{position:relative;display:grid;place-items:center;width:340px;height:210px;margin:0 auto 8px}
.adrift img{position:relative;width:300px;filter:drop-shadow(0 20px 30px rgba(0,0,0,.6)) drop-shadow(0 0 40px rgba(47,155,255,.5));animation:adrift 6s ease-in-out infinite;transform-origin:50% 80%}
.adrift .crest-ring{width:250px;height:250px}
@keyframes adrift{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-16px) rotate(4deg)}}
.lost-page .code{margin-top:6px}
.lost-page h1 .gold{filter:drop-shadow(0 4px 0 rgba(90,45,0,.55))}

@media (max-width:900px){
  .glance{grid-template-columns:1fr}
  .page-head{min-height:440px}
}
@media (max-width:600px){
  .head-crest{width:200px;height:120px}.head-crest img{width:190px}.head-crest .crest-ring{width:150px;height:150px}
  .adrift{width:260px;height:170px}.adrift img{width:230px}.adrift .crest-ring{width:190px;height:190px}
}

/* full logo in nav + footer */
.brand img.brand-logo{width:auto;height:52px;border-radius:0;filter:drop-shadow(0 4px 10px rgba(0,0,0,.6)) drop-shadow(0 0 14px rgba(47,155,255,.25))}
.nav.scrolled .brand img.brand-logo,.nav.solid .brand img.brand-logo{height:46px}
.foot-brand img.brand-logo{width:auto;height:46px;border-radius:0}
@media (max-width:600px){.brand img.brand-logo{height:42px}}

/* ===================== MOBILE: SAME LOOK AS DESKTOP ===================== */
.menu-btn{display:none!important}
.menu-extra{display:none!important}
@media (max-width:900px){
  /* desktop-style nav: logo + button on top, the same nav links as a row underneath */
  .nav,.nav.scrolled,.nav.solid{height:auto;flex-wrap:wrap;gap:0 12px;padding:10px 18px 0}
  .nav.solid,.nav.scrolled{background:rgba(5,12,24,.92)}
  .nav .brand{order:1}
  .navcta{order:2;margin-left:auto}
  .nav nav{display:flex;order:3;width:calc(100% + 36px);margin:8px -18px 0;justify-content:center;gap:0;border-top:1px solid rgba(168,113,42,.3);background:rgba(5,12,24,.55)}
  .nav nav a{padding:12px 12px;font-size:11px;letter-spacing:.16em}
  .nav nav a::after{bottom:6px}
  .nav nav a:hover::after,.nav nav a[aria-current=page]::after{width:calc(100% - 24px);left:12px}
  .nav nav a[aria-current=page]::after{content:"";position:absolute;height:1px;background:var(--gold)}

  /* steps: keep the number inside its diamond when text wraps */
  .steps li::before{grid-row:1 / span 2;align-self:center}
}
@media (max-width:600px){
  .brand img.brand-logo{height:44px}
  .navcta{padding:10px 14px;font-size:10px;letter-spacing:.1em}
  .nav nav a{padding:11px 9px;font-size:10px;letter-spacing:.13em}

  /* hero (header is taller now) */
  .hero{padding:150px 0 110px}
  .hero h1{font-size:clamp(38px,11vw,48px);margin:16px 0 18px}
  .emblem{width:min(330px,92%)}
  .lede{font-size:16px;margin-bottom:26px}
  .chips{margin-top:26px}
  .chips li{font-size:10.5px;padding:7px 12px}

  /* sections */
  .features{padding:56px 14px 70px}
  .section-head{margin-bottom:34px}
  .section-head h2,.battle h2,.community h2{font-size:clamp(28px,8.5vw,36px)}
  .battle{padding:56px 14px}
  .battle-inner{gap:34px}
  .panel-art{min-height:240px;padding:28px 16px}
  .panel-art img{width:min(300px,90%)}
  .battle-copy>p{font-size:16px}
  .stats strong{font-size:24px}
  .community-wrap{padding:24px 14px 70px}
  .community{padding:34px 20px}
  .crest{min-height:180px}
  .crest img{width:260px}
  .crest-ring{width:190px;height:190px}
  .store{justify-content:center}
  .store .btn{flex:1 1 140px;justify-content:center}

  /* desktop-style cards, two per row */
  .grid,.glance,.gate-grid{grid-template-columns:1fr 1fr;gap:10px}
  .grid .card,.glance .card,.gate-grid .card{padding:20px 14px 18px}
  .glance .card:last-child:nth-child(odd),.gate-grid .card:last-child:nth-child(odd){grid-column:1 / -1}
  .card .badge{width:44px;height:44px;font-size:20px;margin-bottom:14px}
  .card .num{top:16px;right:14px;font-size:11px}
  .card h3{font-size:13px;line-height:1.3;margin-bottom:6px;letter-spacing:.03em}
  .card p{font-size:12.5px;line-height:1.55}
  .card:hover{transform:none}

  /* inner page headers */
  .page-head{min-height:0;padding:150px 18px 110px}
  .head-crest{width:200px;height:118px;margin-bottom:4px}
  .head-crest img{width:190px}
  .head-crest .crest-ring{width:146px;height:146px}
  .page-head h1{font-size:clamp(28px,9vw,38px)}
  .page-head p{font-size:15px}
  .doc-wrap{padding:0 14px 70px;margin-top:-56px}

  /* documents */
  .doc{padding:26px 18px}
  .doc h2{font-size:17px;margin-top:32px}
  .doc p,.doc li{font-size:15px;line-height:1.7}
  .ph{white-space:normal}
  .callout{padding:16px 16px 16px 44px;font-size:15px}
  .callout::before{left:16px;top:21px;width:10px;height:10px}
  .data{font-size:13.5px}
  .data th,.data td{padding:10px 8px}
  .data td:first-child{white-space:normal;width:32%}
  .doc .steps li{padding:14px 14px;gap:12px}
  .faq summary{padding:16px 44px 16px 16px;font-size:14.5px}
  .faq summary::after{right:18px}
  .faq details p{padding:0 16px 16px}

  /* 404 + gateway */
  .center-page{padding:150px 18px 150px}
  .adrift{width:240px;height:150px}.adrift img{width:220px}.adrift .crest-ring{width:170px;height:170px}
  .code{font-size:clamp(84px,26vw,110px)}
  .center-page p.sub{font-size:15.5px;margin-bottom:26px}
  .center-page .actions{flex-direction:column;align-items:stretch}
  .gate-top{flex-direction:column;align-items:center}
  .center-logo{width:min(300px,82vw)}
  .gate-grid{margin-top:32px}
  .op-line{font-size:11px;letter-spacing:.14em}

  /* footer */
  .foot-inner{padding:28px 18px 34px;gap:16px}
  footer nav{flex-wrap:wrap;justify-content:center;gap:12px 20px}
}
@media (max-width:359px){
  .grid,.glance,.gate-grid{grid-template-columns:1fr}
  .nav nav a{padding:11px 6px;letter-spacing:.08em}
}
