
:root{
  --text:#f6fcff;
  --muted:#d7eef7;
  --line:rgba(210,240,255,.35);
  --glass:rgba(10,24,34,.36);
  --glass-strong:rgba(6,18,30,.50);
  --blue:#8be8ff;
  --blue2:#5bd1ff;
  --gold:#ffe684;
  --green:#9bf7b0;
  --shadow:0 24px 90px rgba(0,0,0,.34);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Trebuchet MS','Arial Rounded MT Bold','Segoe UI',system-ui,sans-serif;
  color:var(--text);
  background:#07111a;
  overflow-x:hidden;
}

img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button{font:inherit}

#particles{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  z-index:1;
  pointer-events:none;
}

.snap-container{
  position:relative;
  z-index:2;
  height:100vh;
  overflow-y:auto;
  scroll-snap-type:y mandatory;
}

.panel{
  position:relative;
  min-height:100vh;
  scroll-snap-align:start;
  overflow:hidden;
  background:#07111a;
  isolation:isolate;
}

.bg{
  position:absolute;
  inset:0;
  background-size:100% 100%;
  background-repeat:no-repeat;
  background-position:center center;
  transform:scale(1);
  will-change:transform;
  animation:bgPulse 16s ease-in-out infinite alternate;
}
.bg::before{
  content:"";
  position:absolute;
  inset:0;
  background:inherit;
  background-size:cover;
  background-position:center;
  filter:blur(28px) brightness(.78);
  transform:scale(1.08);
  opacity:.55;
  z-index:-1;
}
@keyframes bgFloat{
  from{transform:translateY(0)}
  to{transform:translateY(-8px)}
}

.veil{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 18%, rgba(223,244,255,.16), rgba(223,244,255,0) 26%),
    linear-gradient(180deg, rgba(5,14,23,.18), rgba(5,14,23,.36) 55%, rgba(5,14,23,.48));
}
.story-veil{
  background:
    linear-gradient(90deg, rgba(5,18,25,.16) 0%, rgba(5,18,25,.46) 48%, rgba(5,18,25,.20) 100%);
}
.world-veil{
  background:
    linear-gradient(180deg, rgba(4,16,25,.18), rgba(4,16,25,.28)),
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.18), rgba(255,255,255,0) 22%);
}
.game-veil{
  background:
    linear-gradient(90deg, rgba(4,13,20,.32), rgba(4,13,20,.22) 40%, rgba(4,13,20,.42)),
    radial-gradient(circle at 50% 70%, rgba(145,238,255,.08), rgba(145,238,255,0) 28%);
}
.join-veil{
  background:
    linear-gradient(180deg, rgba(5,14,23,.38), rgba(5,14,23,.54));
}

.mist{
  position:absolute;
  left:-10%;
  width:120%;
  height:20vh;
  pointer-events:none;
  opacity:.75;
  filter:blur(10px);
  background:radial-gradient(circle at 50% 50%, rgba(228,243,255,.85), rgba(228,243,255,.18) 46%, rgba(228,243,255,0) 70%);
  z-index:2;
  animation:mistDrift 16s ease-in-out infinite alternate;
}
.mist-top{top:-7vh}
.mist-bottom{bottom:-8vh; animation-duration:22s}
@keyframes mistDrift{
  from{transform:translateX(-1.5%)}
  to{transform:translateX(2%) translateY(1vh)}
}

.panel-inner{
  position:relative;
  z-index:4;
  min-height:100vh;
  width:min(1320px, calc(100% - 40px));
  margin:0 auto;
  padding:110px 0 44px;
  display:grid;
  align-items:center;
}

.topbar{
  position:fixed;
  left:50%;
  top:16px;
  transform:translateX(-50%);
  width:min(1120px, calc(100% - 20px));
  z-index:20;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:12px 18px;
  border-radius:999px;
}
.glass{
  background:var(--glass);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}

.brand{display:flex;align-items:center;gap:12px}
.brand img{width:50px;height:50px;object-fit:contain;filter:drop-shadow(0 0 18px rgba(139,232,255,.45))}
.brand strong{display:block;font-weight:800;letter-spacing:.03em}
.brand span{color:var(--muted)}

.nav{display:flex;gap:22px;align-items:center}
.nav a{font-weight:700;color:#eef9ff}
.nav a:hover{opacity:.8}

.hero-layout{grid-template-columns:1fr 1fr;gap:24px}
.split{grid-template-columns:.95fr 1.05fr;gap:28px}
.split.reverse{grid-template-columns:.95fr 1.05fr}
.world-layout{grid-template-columns:1fr;justify-items:center}
.game-layout{grid-template-columns:.9fr 1.1fr;gap:28px}
.join-layout{grid-template-columns:1fr;justify-items:center}

.card{
  background:rgba(6,18,30,.36);
  border:1px solid rgba(220,242,255,.25);
  box-shadow:var(--shadow);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-radius:30px;
  padding:28px;
}
.left-block{max-width:560px}
.center-card{max-width:780px;text-align:center}
.top-center{max-width:760px;text-align:center;margin-top:30px}
.game-copy{max-width:560px}

.eyebrow{
  display:inline-flex;
  padding:10px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.24);
  color:#f6fdff;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-size:.79rem;
}

.magic-title,.magic-subtitle{
  font-family:Cinzel, serif;
  line-height:.95;
  margin:18px 0 12px;
  letter-spacing:.04em;
  color:#f4fdff;
  text-shadow:
    0 1px 0 #dff6ff,
    0 2px 0 #cdeeff,
    0 3px 0 rgba(80,170,210,.65),
    0 10px 25px rgba(95,223,255,.30),
    0 0 24px rgba(168,236,255,.28);
}
.magic-title{
  font-size:clamp(3.2rem, 8vw, 6.6rem);
  background:linear-gradient(180deg,#ffffff 0%, #dff7ff 28%, #99e4ff 68%, #e9fdff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 12px 20px rgba(95,223,255,.16));
}
.magic-subtitle{
  font-size:clamp(2rem,4.6vw,4rem);
}

.tagline{
  font-family:Philosopher, serif;
  font-size:clamp(1.2rem,2.4vw,2rem);
  color:#fff4c6;
  text-shadow:0 2px 12px rgba(255,232,152,.20);
  margin:0 0 12px;
}
.lead,.copy p{
  font-size:clamp(1rem,1.4vw,1.2rem);
  line-height:1.75;
  color:#f2fbff;
}

.cta-row,.game-buttons,.social-row,.chips{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}
.cta-row{margin:18px 0}
.chips{margin-top:18px}
.chips span{
  padding:11px 16px;
  border-radius:999px;
  background:rgba(9,27,42,.46);
  border:1px solid rgba(255,255,255,.18);
  font-weight:700;
}

.button{
  border:0;
  border-radius:999px;
  padding:14px 22px;
  cursor:pointer;
  font-weight:800;
  transition:transform .18s ease, opacity .18s ease, box-shadow .18s ease;
}
.button:hover{transform:translateY(-2px)}
.button.primary{
  background:linear-gradient(135deg,#dffcff,#92e7ff 48%, #7af4dc);
  color:#06263d;
  box-shadow:0 18px 40px rgba(115,226,255,.26);
}
.button.secondary,.button.ghost{
  background:rgba(255,255,255,.12);
  color:white;
  border:1px solid rgba(255,255,255,.24);
}
.button.small{padding:10px 16px}

.contract{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  padding:14px 16px;
  background:rgba(7,20,31,.56);
  border:1px solid rgba(220,242,255,.22);
  border-radius:22px;
}
.contract code{
  font-size:.96rem;
  word-break:break-all;
  color:#def8ff;
}

.art{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:420px;
}
.character{
  position:relative;
  z-index:2;
  width:min(520px, 80%);
  object-fit:contain;
  filter:drop-shadow(0 20px 34px rgba(0,0,0,.22));
}
.hero-art .character{width:min(500px, 78%)}
.world-character{justify-self:end; align-self:end; margin-right:2vw; margin-bottom:5vh}
.world-character .character{width:min(420px, 36vw)}
.character-glow{
  position:absolute;
  width:min(520px, 68vw);
  aspect-ratio:1/1;
  border-radius:50%;
  background:radial-gradient(circle, rgba(181,241,255,.42), rgba(181,241,255,.16) 36%, rgba(181,241,255,0) 70%);
  filter:blur(8px);
}
.character-glow.soft{background:radial-gradient(circle, rgba(255,245,180,.18), rgba(181,241,255,.18) 36%, rgba(181,241,255,0) 70%)}

.main-float{animation:floatA 5.2s ease-in-out infinite}
.side-float{animation:floatB 6s ease-in-out infinite}
.wave-float{animation:floatC 4.6s ease-in-out infinite}
@keyframes floatA{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes floatB{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1deg)}}
@keyframes floatC{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px) rotate(1deg)}}

.story-points{
  display:grid;
  gap:12px;
  margin-top:18px;
}
.story-points div{
  display:grid;
  gap:4px;
  padding:14px 16px;
  border-radius:18px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15);
}
.story-points strong{font-family:Philosopher, serif; font-size:1.1rem; color:#fff3b2}

.game-card{
  padding:18px;
  border-radius:28px;
  background:rgba(6,18,30,.34);
}
.game-area{
  position:relative;
  height:min(68vh, 650px);
  min-height:420px;
  border-radius:22px;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0)),
    radial-gradient(circle at 50% 0%, rgba(193,243,255,.20), rgba(193,243,255,0) 40%);
  border:1px solid rgba(255,255,255,.18);
  touch-action:none;
}
.game-hud{
  position:absolute;
  top:12px;
  left:12px;
  z-index:3;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(6,18,30,.55);
  font-size:.88rem;
  border:1px solid rgba(255,255,255,.18);
}
#player{
  position:absolute;
  bottom:14px;
  left:50%;
  transform:translateX(-50%);
  width:170px;
  z-index:2;
  user-select:none;
  -webkit-user-drag:none;
  touch-action:none;
}
.fall-item{
  position:absolute;
  width:56px;
  height:56px;
  object-fit:contain;
  pointer-events:none;
  filter:drop-shadow(0 8px 16px rgba(255,255,255,.18));
}
.game-ui{
  display:flex;
  gap:16px;
  margin:18px 0;
  padding:14px 16px;
  border-radius:22px;
}
.game-ui > div{
  flex:1;
  display:grid;
  gap:4px;
}
.game-ui span{color:var(--muted);font-size:.92rem}
.game-ui strong{font-size:1.6rem}

.social-row{justify-content:center;margin:24px 0}
.social{
  min-width:190px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:18px 22px;
  border-radius:22px;
}
.social img{width:44px;height:44px;object-fit:contain}
.bottom-contract{justify-content:center}

.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal.visible{
  opacity:1;
  transform:translateY(0);
}

@media (max-width: 980px){
  .nav{display:none}
  .hero-layout,.split,.split.reverse,.game-layout{grid-template-columns:1fr}
  .world-character{justify-self:center;align-self:center;margin:0}
  .panel-inner{padding-top:100px}
  .hero-art .character,.character{width:min(420px,82vw)}
  .card{padding:22px}
  .game-area{height:58vh}
}

@media (max-width: 640px){
  .topbar{padding:10px 14px}
  .brand img{width:40px;height:40px}
  .card{border-radius:24px}
  .magic-title{font-size:clamp(3rem, 18vw, 5.4rem)}
  .magic-subtitle{font-size:clamp(1.7rem, 9vw, 3rem)}
  .contract{align-items:flex-start}
  #player{width:134px}
  .game-area{min-height:360px}
}


.copy, .card{overflow:hidden}
.contract code{
  overflow-wrap:anywhere;
  font-size:.88rem;
}
.hero-layout .copy.card{
  align-self:center;
  margin-left: clamp(0px, 2vw, 18px);
}
.hero-layout .art{
  justify-content:flex-end;
  padding-right: clamp(0px, 2vw, 18px);
}
.hero-art .character{width:min(440px, 70%)}
.game-over-banner{
  position:absolute;
  inset:auto 16px 16px 16px;
  z-index:4;
  padding:14px 16px;
  border-radius:18px;
  background:rgba(8,20,32,.78);
  border:1px solid rgba(255,255,255,.22);
  text-align:center;
  font-weight:800;
  box-shadow:var(--shadow);
}
@media (max-width: 980px){
  .bg{
  position:absolute;
  inset:0;
  background-size:100% 100%;
  background-repeat:no-repeat;
  background-position:center center;
  transform:scale(1);
  will-change:transform;
  animation:bgPulse 16s ease-in-out infinite alternate;
}
  .bg::before{display:none}
  .left-block{max-width:100%}
  .hero-layout .art{justify-content:center;padding-right:0}
  .hero-art .character{width:min(420px,82vw)}
}


body{
  text-shadow:
    0 1px 0 rgba(255,255,255,.14),
    0 2px 8px rgba(0,0,0,.18);
}

.topbar, .card, .social, .game-ui, .contract, .chips span, .button{
  text-shadow:
    0 1px 0 rgba(255,255,255,.18),
    0 2px 0 rgba(0,0,0,.18),
    0 6px 14px rgba(0,0,0,.16);
}

.brand strong,
.nav a,
.eyebrow,
.button,
.contract span,
.contract code,
.story-points strong,
.story-points span,
.game-hud,
.game-ui strong,
.game-ui span,
.social span,
.chips span,
.copy p,
.tagline{
  position:relative;
  text-shadow:
    0 1px 0 rgba(255,255,255,.28),
    0 2px 0 rgba(75,110,130,.26),
    0 3px 0 rgba(20,40,55,.16),
    0 10px 18px rgba(0,0,0,.16);
}

.magic-title,.magic-subtitle{
  text-shadow:
    0 1px 0 #ffffff,
    0 2px 0 #e6f8ff,
    0 3px 0 #c4ebff,
    0 4px 0 rgba(115,194,228,.90),
    0 5px 0 rgba(87,159,192,.72),
    0 6px 0 rgba(50,108,136,.42),
    0 18px 30px rgba(57,176,226,.28),
    0 0 30px rgba(205,246,255,.22);
}

.tagline{
  font-size:clamp(1.25rem,2.5vw,2.05rem);
  text-shadow:
    0 1px 0 #fffef1,
    0 2px 0 #ffeeb6,
    0 3px 0 rgba(204,181,95,.35),
    0 10px 18px rgba(0,0,0,.18),
    0 0 20px rgba(255,236,150,.22);
}

.copy p{
  font-weight:600;
}

@media (max-width: 980px){
  .bg{
    background-size:cover;
  }
}



/* Rounded icy cartoon style */
:root{
  --icy-outline:#1e3f93;
  --icy-outline-soft:#2e58b7;
  --icy-fill-top:#f4fdff;
  --icy-fill-mid:#c9f2ff;
  --icy-fill-low:#9fdcff;
  --icy-glow:rgba(164,231,255,.42);
}

.brand strong,
.brand span,
.nav a,
.eyebrow,
.button,
.chips span,
.social span,
.contract span,
.contract code,
.game-hud,
.game-ui span,
.game-ui strong,
.story-points strong,
.story-points span,
.tagline,
.copy p{
  font-family:'Trebuchet MS','Arial Rounded MT Bold','Segoe UI',system-ui,sans-serif;
  font-weight:800;
  letter-spacing:.02em;
}

.brand strong,
.nav a,
.eyebrow,
.button,
.chips span,
.social span,
.contract span,
.game-hud,
.story-points strong,
.game-ui span{
  color:#eefcff;
  text-shadow:
    -1px -1px 0 var(--icy-outline),
     1px -1px 0 var(--icy-outline),
    -1px  1px 0 var(--icy-outline),
     1px  1px 0 var(--icy-outline),
     0 3px 0 var(--icy-outline-soft),
     0 8px 18px rgba(0,0,0,.18);
}

.brand span,
.contract code,
.copy p,
.story-points span,
.game-ui strong{
  color:#f5fdff;
  text-shadow:
    0 1px 0 rgba(255,255,255,.35),
    0 2px 0 rgba(67,113,179,.50),
    0 6px 14px rgba(0,0,0,.16);
}

.magic-title,.magic-subtitle{
  font-family:'Trebuchet MS','Arial Rounded MT Bold','Segoe UI',system-ui,sans-serif;
  font-weight:900;
  letter-spacing:.04em;
  background:linear-gradient(180deg,var(--icy-fill-top) 0%, var(--icy-fill-mid) 34%, var(--icy-fill-low) 75%, #d9fbff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  text-shadow:none;
  filter:
    drop-shadow(0 1px 0 rgba(255,255,255,.65))
    drop-shadow(0 2px 0 rgba(52,104,178,.90))
    drop-shadow(0 4px 0 rgba(28,70,144,.75))
    drop-shadow(0 10px 18px rgba(0,0,0,.20))
    drop-shadow(0 0 18px var(--icy-glow));
  -webkit-text-stroke: 3px rgba(23,57,126,.9);
  paint-order: stroke fill;
}

.magic-title{
  letter-spacing:.03em;
}

.tagline{
  color:#f4feff;
  font-size:clamp(1.15rem,2.2vw,1.9rem);
  text-shadow:
    -1px -1px 0 rgba(28,70,144,.9),
     1px -1px 0 rgba(28,70,144,.9),
    -1px  1px 0 rgba(28,70,144,.9),
     1px  1px 0 rgba(28,70,144,.9),
     0 4px 0 rgba(67,113,179,.45),
     0 8px 18px rgba(0,0,0,.18);
}

.button.primary{
  background:linear-gradient(180deg,#f4feff 0%, #a6eeff 50%, #74d8ff 100%);
  color:#143f89;
  border:2px solid rgba(255,255,255,.5);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.8),
    0 10px 24px rgba(90,212,255,.26);
}
.button.secondary,.button.ghost{
  background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(135,203,255,.14));
  border:2px solid rgba(180,228,255,.34);
}

.eyebrow,
.chips span,
.social,
.contract,
.game-ui,
.story-points div{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    0 14px 28px rgba(0,0,0,.18);
}

/* Restore smooth section blending */




/* Hero cleanup + glossy motion update */
.hero .left-block{
  padding-top: 18px;
}

.hero-links{
  align-items:center;
}

.icon-button{
  gap:12px;
  display:inline-flex;
  align-items:center;
}
.icon-button img{
  width:26px;
  height:26px;
  object-fit:contain;
  filter: drop-shadow(0 0 10px rgba(173,236,255,.35));
}

/* Floating top-left mascot */
.brand img{
  animation: brandFloat 4.8s ease-in-out infinite;
  transform-origin:center;
}
@keyframes brandFloat{
  0%,100%{transform:translateY(0) rotate(0deg) scale(1)}
  25%{transform:translateY(-3px) rotate(-3deg) scale(1.03)}
  50%{transform:translateY(-6px) rotate(2deg) scale(1.04)}
  75%{transform:translateY(-2px) rotate(-1deg) scale(1.02)}
}

/* Shimmer / reflective text */
.magic-title,
.magic-subtitle,
.tagline,
.brand strong,
.brand span,
.nav a,
.button,
.contract span,
.contract code,
.social span,
.game-ui span,
.game-ui strong,
.story-points strong,
.story-points span,
.copy p{
  position: relative;
  overflow: visible;
}

.magic-title::after,
.magic-subtitle::after,
.tagline::after,
.brand strong::after,
.nav a::after,
.button::after{
  content:"";
  position:absolute;
  top:-15%;
  left:-35%;
  width:28%;
  height:130%;
  transform:skewX(-20deg);
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.12) 35%, rgba(255,255,255,.62) 50%, rgba(255,255,255,.12) 65%, rgba(255,255,255,0) 100%);
  filter: blur(1px);
  pointer-events:none;
  animation: shimmerSweep 5.4s ease-in-out infinite;
}

.magic-subtitle::after{ animation-duration: 6.2s; }
.tagline::after{ animation-duration: 7.2s; }
.brand strong::after{ animation-duration: 6.8s; }
.nav a::after{ animation-duration: 8s; }
.button::after{ animation-duration: 5.8s; }

@keyframes shimmerSweep{
  0%{ left:-42%; opacity:0; }
  10%{ opacity:.15; }
  35%{ opacity:.8; }
  55%{ opacity:.35; }
  100%{ left:120%; opacity:0; }
}

/* Make hero text fit better */
.magic-title{
  max-width:100%;
  line-height:.88;
}
.left-block .lead{
  max-width: 60ch;
}
.left-block .contract{
  max-width: 100%;
}

/* Remove top black strip overlays */
.topbar::before,
.card::before,
.panel::before,
.panel::after{
  content:none !important;
  display:none !important;
}

/* Keep text shimmer only */
.magic-title::after,
.magic-subtitle::after,
.tagline::after,
.brand strong::after,
.nav a::after,
.button::after{
  content:"";
  position:absolute;
  top:-15%;
  left:-35%;
  width:28%;
  height:130%;
  transform:skewX(-20deg);
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.12) 35%, rgba(255,255,255,.62) 50%, rgba(255,255,255,.12) 65%, rgba(255,255,255,0) 100%);
  filter: blur(1px);
  pointer-events:none;
  animation: shimmerSweep 5.4s ease-in-out infinite;
}
