/* ============================================================
   Julie & Ebby's Antarctica Adventure — Countdown site styles
   ============================================================ */

@font-face{
  font-family:'Baloo 2'; font-style:normal; font-weight:500; font-display:swap;
  src: url('fonts/baloo2-500.woff2') format('woff2');
}
@font-face{
  font-family:'Baloo 2'; font-style:normal; font-weight:700; font-display:swap;
  src: url('fonts/baloo2-700.woff2') format('woff2');
}
@font-face{
  font-family:'Baloo 2'; font-style:normal; font-weight:800; font-display:swap;
  src: url('fonts/baloo2-800.woff2') format('woff2');
}
@font-face{
  font-family:'Pacifico'; font-style:normal; font-weight:400; font-display:swap;
  src: url('fonts/pacifico-400.woff2') format('woff2');
}
@font-face{
  font-family:'Nunito'; font-style:normal; font-weight:400; font-display:swap;
  src: url('fonts/nunito-400.woff2') format('woff2');
}
@font-face{
  font-family:'Nunito'; font-style:normal; font-weight:600; font-display:swap;
  src: url('fonts/nunito-600.woff2') format('woff2');
}
@font-face{
  font-family:'Nunito'; font-style:normal; font-weight:700; font-display:swap;
  src: url('fonts/nunito-700.woff2') format('woff2');
}
@font-face{
  font-family:'Nunito'; font-style:normal; font-weight:800; font-display:swap;
  src: url('fonts/nunito-800.woff2') format('woff2');
}

:root{
  --navy-deep:   #070c1f;
  --navy-mid:    #101a3d;
  --navy-card:   #16234f;
  --aurora-teal: #4ee6b0;
  --aurora-green:#7ef2a0;
  --aurora-purple:#8b6bf0;
  --ice-blue:    #a9c9f5;
  --pink:        #ff8caa;
  --pink-deep:   #e8557f;
  --white:       #ffffff;
  --star:        rgba(255,255,255,.9);

  --font-display: 'Baloo 2', sans-serif;
  --font-script:  'Pacifico', cursive;
  --font-body:    'Nunito', sans-serif;

  --radius-lg: 28px;
  --radius-md: 20px;
  --radius-sm: 14px;

  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

*{ box-sizing: border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--white);
  background: var(--navy-deep);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

.sr-only{
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ---------- App shell ---------- */
#app{
  position:relative;
  max-width: 520px;
  margin: 0 auto;
  min-height: 100dvh;
  min-height: 100vh;
  isolation: isolate;
}

/* ---------- Night sky / aurora background (shared) ---------- */
.sky{
  position: fixed;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(ellipse at 50% 0%, #1a2a5e 0%, var(--navy-mid) 45%, var(--navy-deep) 100%);
  overflow: hidden;
}
.sky::before{ /* stars */
  content:"";
  position:absolute; inset:-10% -10%;
  background-image:
    radial-gradient(1.5px 1.5px at 10% 20%, var(--star), transparent 60%),
    radial-gradient(1.5px 1.5px at 80% 10%, var(--star), transparent 60%),
    radial-gradient(1px 1px at 60% 30%, var(--star), transparent 60%),
    radial-gradient(1.5px 1.5px at 30% 45%, var(--star), transparent 60%),
    radial-gradient(1px 1px at 90% 60%, var(--star), transparent 60%),
    radial-gradient(1.5px 1.5px at 15% 70%, var(--star), transparent 60%),
    radial-gradient(1px 1px at 45% 15%, var(--star), transparent 60%),
    radial-gradient(1.5px 1.5px at 70% 80%, var(--star), transparent 60%),
    radial-gradient(1px 1px at 25% 90%, var(--star), transparent 60%),
    radial-gradient(1.5px 1.5px at 95% 35%, var(--star), transparent 60%);
  background-repeat: repeat;
  background-size: 340px 420px;
  opacity:.8;
  animation: twinkle 6s ease-in-out infinite alternate;
}
.sky::after{ /* aurora ribbons */
  content:"";
  position:absolute;
  left:-20%; right:-20%; top:-15%; height:70%;
  background:
    conic-gradient(from 200deg at 30% 40%, transparent 0deg, var(--aurora-green) 40deg, transparent 90deg),
    conic-gradient(from 140deg at 75% 20%, transparent 0deg, var(--aurora-teal) 50deg, transparent 110deg),
    conic-gradient(from 260deg at 55% 10%, transparent 0deg, var(--aurora-purple) 60deg, transparent 120deg);
  filter: blur(30px);
  opacity:.5;
  mix-blend-mode: screen;
  animation: aurora-drift 16s ease-in-out infinite alternate;
}
@keyframes twinkle{ from{ opacity:.55; } to{ opacity:.95; } }
@keyframes aurora-drift{
  from{ transform: translateX(-3%) translateY(0) scale(1); }
  to{   transform: translateX(3%) translateY(2%) scale(1.06); }
}
@media (prefers-reduced-motion: reduce){
  .sky::before, .sky::after{ animation: none; }
}

.mountains{
  position:absolute; left:0; right:0; bottom:0; height:120px;
  background:
    linear-gradient(115deg, transparent 48%, rgba(169,201,245,.18) 49%, transparent 51%),
    linear-gradient(65deg, transparent 48%, rgba(169,201,245,.14) 49%, transparent 51%);
  background-size: 220px 100%, 300px 100%;
  background-position: 0 100%, 120px 100%;
  background-repeat: repeat-x;
  opacity:.5;
}

/* ---------- Screens ---------- */
.screen{
  position:relative;
  min-height:100dvh;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  padding: calc(20px + var(--safe-top)) 20px calc(24px + var(--safe-bottom));
  opacity:1;
  transform:none;
  transition: opacity .45s ease, transform .45s ease;
}
.screen[hidden]{ display:none; }
.screen.entering{ animation: screen-in .5s ease both; }
@keyframes screen-in{
  from{ opacity:0; transform: translateY(14px); }
  to{ opacity:1; transform:none; }
}
@media (prefers-reduced-motion: reduce){
  .screen.entering{ animation:none; }
}

/* ---------- Title screen ---------- */
#title-screen{
  align-items:center;
  text-align:center;
  justify-content: flex-start;
  gap: 4px;
}
.eyebrow-icons{
  width:100%;
  display:flex; justify-content:space-between; align-items:center;
  font-size:20px; opacity:.8; margin-bottom: 6px;
}
.title-block{ margin-top: 10px; }
.title-block h1{
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(30px, 8.4vw, 42px);
  line-height: 1.05;
  margin: 0;
  letter-spacing: .5px;
}
.title-block h1 .accent{ color: var(--pink); }
.title-block .script{
  display:block;
  font-family: var(--font-script);
  font-weight:400;
  font-size: clamp(30px, 9vw, 46px);
  color: var(--ice-blue);
  margin-top: 2px;
}
.divider{
  display:flex; align-items:center; gap:10px;
  color: var(--pink);
  margin: 14px 0 10px;
  width: 70%;
}
.divider .line{ flex:1; height:1px; background: rgba(255,140,170,.5); }

.tagline{
  font-family: var(--font-body);
  font-weight:700;
  font-size: 13.5px;
  letter-spacing:.5px;
  text-transform:uppercase;
  color: var(--white);
  opacity:.92;
  margin: 0 0 14px;
  line-height:1.5;
}
.pill{
  display:inline-flex; align-items:center; gap:8px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(6px);
  padding: 9px 16px;
  border-radius: 999px;
  font-size: 13.5px;
  font-weight:700;
  margin-bottom: 20px;
}

.hero-wrap{
  width:100%;
  border-radius: var(--radius-lg);
  overflow:hidden;
  margin: 4px 0 22px;
  box-shadow: 0 18px 40px rgba(0,0,0,.45);
  position:relative;
}
.hero-wrap img, .hero-wrap video{
  display:block; width:100%; height:auto;
}
.hero-wrap::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 60%, rgba(7,12,31,.55) 100%);
}

#title-screen .spacer{ flex:1; }

.cta-btn{
  appearance:none; border:none; cursor:pointer;
  width:100%;
  display:flex; align-items:center; justify-content:center; gap:10px;
  font-family: var(--font-display);
  font-weight:700;
  font-size: 17px;
  color:#fff;
  background: linear-gradient(135deg, var(--pink) 0%, var(--pink-deep) 100%);
  padding: 17px 22px;
  border-radius: 999px;
  box-shadow: 0 14px 28px rgba(232,85,127,.4), inset 0 1px 0 rgba(255,255,255,.35);
  transition: transform .15s ease, box-shadow .15s ease;
}
.cta-btn:active{ transform: scale(.97); box-shadow: 0 8px 18px rgba(232,85,127,.35); }
.cta-btn .chev{ font-size:18px; transition: transform .2s ease; }
.cta-btn:hover .chev{ transform: translateX(3px); }

/* ---------- Day screen ---------- */
#day-screen{ gap: 0; }
.day-topbar{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom: 14px;
}
.back-btn{
  appearance:none; border:none; cursor:pointer;
  background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);
  color:#fff; width:38px; height:38px; border-radius:50%;
  font-size:16px; display:flex; align-items:center; justify-content:center;
}
.brand-mini{
  font-family: var(--font-display); font-weight:700; font-size:14px;
  color: var(--ice-blue); opacity:.9;
}

.progress-wrap{ margin: 2px 0 18px; }
.progress-track{
  position:relative;
  height:10px; border-radius: 999px;
  background: rgba(255,255,255,.12);
  overflow:visible;
}
.progress-fill{
  height:100%; border-radius:999px;
  background: linear-gradient(90deg, var(--ice-blue), var(--pink));
  transition: width .6s ease;
}
.progress-marker{
  position:absolute; top:50%; font-size:20px;
  transform: translate(-50%,-50%);
  transition: left .6s ease;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.5));
}
.progress-caption{
  display:flex; justify-content:space-between;
  font-size:11.5px; font-weight:700; letter-spacing:.4px;
  text-transform:uppercase; opacity:.65; margin-top:8px;
}

.day-pill{
  align-self:center;
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.2);
  padding: 7px 18px;
  border-radius: 999px;
  font-family: var(--font-body);
  font-weight:800;
  font-size: 13px;
  letter-spacing:.5px;
  text-transform:uppercase;
  margin: 0 auto 6px;
}
.day-number{
  text-align:center;
  font-family: var(--font-display);
  font-weight:800;
  color: var(--pink);
  font-size: clamp(58px, 20vw, 92px);
  line-height:1;
  margin: 2px 0 0;
  text-shadow: 0 6px 30px rgba(255,140,170,.35);
}
.day-number .unit{
  display:block;
  font-size: clamp(18px, 6vw, 24px);
  color:#fff;
  letter-spacing:2px;
  margin-top: -4px;
}

.scene-card{
  margin: 18px 0;
  border-radius: var(--radius-lg);
  overflow:hidden;
  box-shadow: 0 16px 34px rgba(0,0,0,.4);
  border: 1px solid rgba(255,255,255,.1);
  min-height: 150px;
}
.scene-card img{ display:block; width:100%; height:auto; }

.scene-generated{
  position:relative;
  min-height: 190px;
  display:flex; align-items:center; justify-content:center; gap:22px;
  background:
    radial-gradient(ellipse at 50% 0%, #24356e 0%, var(--navy-mid) 60%, var(--navy-card) 100%);
  overflow:hidden;
}
.scene-generated::before{
  content:"";
  position:absolute; inset:-30%;
  background: conic-gradient(from 180deg at 50% 0%, transparent, var(--aurora-teal), transparent 40%, var(--aurora-purple), transparent 70%);
  filter: blur(26px);
  opacity:.45;
  mix-blend-mode: screen;
}
.scene-generated .critter{
  font-size: 46px;
  filter: drop-shadow(0 6px 10px rgba(0,0,0,.4));
  position:relative;
  animation: bob 3.2s ease-in-out infinite;
}
.scene-generated .critter.two{ animation-delay: -1.6s; }
.scene-generated .item-icon{
  font-size: 40px;
  position:relative;
  filter: drop-shadow(0 6px 10px rgba(0,0,0,.4));
}
@keyframes bob{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(-8px); }
}
@media (prefers-reduced-motion: reduce){
  .scene-generated .critter{ animation:none; }
}

.message-card{
  text-align:center;
  margin-bottom: 16px;
}
.message-card h2{
  font-family: var(--font-display);
  font-size: 21px;
  margin: 0 0 6px;
}
.message-card p{
  font-size:15px;
  line-height:1.5;
  color: var(--ice-blue);
  margin:0;
}

.fact-card{
  margin-top: auto;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--radius-md);
  padding: 16px 18px;
  backdrop-filter: blur(6px);
}
.fact-card .fact-label{
  display:flex; align-items:center; gap:8px;
  font-family: var(--font-display);
  font-weight:700;
  font-size: 13px;
  letter-spacing:.4px;
  text-transform:uppercase;
  color: var(--aurora-teal);
  margin-bottom:8px;
}
.fact-card p{
  margin:0; font-size:14.5px; line-height:1.55; color:#fff; opacity:.95;
}

footer.credit{
  text-align:center;
  font-size:11px;
  opacity:.4;
  margin-top:18px;
  letter-spacing:.3px;
}

/* small screens */
@media (max-width:360px){
  .title-block h1{ font-size: 28px; }
  .title-block .script{ font-size: 30px; }
}
