:root{
  --navy:#173a63;
  --navy2:#0d2b4f;
  --orange:#ff7a00;
  --orange2:#ff9f1c;
  --cyan:#1fb6d5;
  --sky:#eaf8fc;
  --cream:#fffaf1;
  --white:#ffffff;
  --ink:#19324d;
  --muted:#62758a;
  --line:#d6e3ef;
  --green:#25a66a;
  --shadow:0 12px 34px rgba(19,57,96,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f7fbfe;line-height:1.55}
a{color:var(--navy);font-weight:700}
.header{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--navy2) 0 56%,var(--orange) 56% 74%,var(--cyan) 74% 100%);color:white;padding:26px 28px 56px}
.header:after{content:"";position:absolute;right:-70px;bottom:-100px;width:330px;height:330px;border:45px solid rgba(255,255,255,.16);border-radius:50%}
.header-inner{max-width:1180px;margin:auto;position:relative;z-index:1}.eyebrow{font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;font-weight:900;color:#ffe0bf;margin-bottom:10px}
.header h1{font-size:clamp(2.4rem,6vw,5.6rem);line-height:.92;margin:0;max-width:850px;letter-spacing:-.05em}.header p{max-width:760px;font-size:clamp(1.05rem,2vw,1.35rem);margin:22px 0 0;color:#e8f4ff}.header-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.badge{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);padding:8px 13px;border-radius:999px;font-size:.86rem;font-weight:800}
.topnav{background:white;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topnav-inner{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;gap:20px}.brand{font-weight:900;color:var(--navy);text-decoration:none}.navlinks{display:flex;gap:10px;flex-wrap:wrap}.navlinks a{text-decoration:none;padding:8px 12px;border-radius:10px}.navlinks a:hover{background:var(--sky)}
main{max-width:1180px;margin:auto;padding:34px 24px 70px}.section{background:white;border:1px solid var(--line);border-radius:26px;padding:clamp(24px,4vw,44px);margin:0 0 28px;box-shadow:var(--shadow);position:relative;overflow:hidden}.section-number{font-size:.85rem;font-weight:1000;letter-spacing:.17em;color:var(--orange);text-transform:uppercase;margin-bottom:7px}.section h2{font-size:clamp(1.8rem,4vw,3.25rem);line-height:1.05;margin:0 0 15px;color:var(--navy);letter-spacing:-.035em}.lede{font-size:1.15rem;color:var(--muted);max-width:850px}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{border:1px solid var(--line);border-radius:20px;padding:21px;background:white}.card.orange{background:#fff3e7;border-color:#ffd2aa}.card.blue{background:var(--sky);border-color:#b8e9f3}.card h3{margin:0 0 8px;color:var(--navy);font-size:1.25rem}.callout{border-left:7px solid var(--cyan);background:var(--sky);padding:18px 20px;border-radius:14px;margin:18px 0}.callout.orange{border-color:var(--orange);background:#fff4e8}.big-rule{font-size:clamp(1.3rem,3vw,2rem);font-weight:950;color:var(--navy);line-height:1.25}.steps{counter-reset:item;display:grid;gap:13px;margin-top:18px}.step{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:15px;border-radius:16px;background:#f8fbfd;border:1px solid var(--line)}.step::before{counter-increment:item;content:counter(item);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--orange);color:white;font-weight:1000}.step strong{color:var(--navy)}
.app-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.app-button{display:inline-flex;align-items:center;gap:9px;text-decoration:none;background:var(--navy);color:white;padding:12px 16px;border-radius:13px;box-shadow:0 6px 16px rgba(23,58,99,.15)}.app-button.alt{background:var(--orange)}.app-button:hover{transform:translateY(-1px)}
.compose-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:20px}.compose-card{min-height:150px;padding:18px;border-radius:19px;color:white;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.compose-card:nth-child(1){background:linear-gradient(140deg,#156b8a,#24b8d3)}.compose-card:nth-child(2){background:linear-gradient(140deg,#f26922,#ffae34)}.compose-card:nth-child(3){background:linear-gradient(140deg,#394b78,#7f8cd4)}.compose-card:nth-child(4){background:linear-gradient(140deg,#27835b,#62bd83)}.compose-card .icon{position:absolute;font-size:4.5rem;opacity:.22;right:13px;top:3px}.compose-card h3{margin:0;font-size:1.25rem}.compose-card p{margin:5px 0 0;font-size:.93rem;color:#f7fbff}
.challenge-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px;padding:0;list-style:none;counter-reset:challenge}.challenge-list li{counter-increment:challenge;border:1px solid var(--line);border-radius:15px;background:#fbfdff;padding:13px 15px 13px 51px;position:relative}.challenge-list li:before{content:counter(challenge);position:absolute;left:13px;top:11px;width:28px;height:28px;border-radius:9px;background:var(--orange);color:white;display:grid;place-items:center;font-weight:900;font-size:.82rem}.challenge-list strong{color:var(--navy)}
.reminder{display:flex;gap:14px;align-items:flex-start;background:#fff8ef;border:1px solid #ffd6ae;border-radius:18px;padding:18px;margin-top:18px}.reminder .emoji{font-size:2rem}.checklist{list-style:none;padding:0}.checklist li{margin:10px 0;padding-left:31px;position:relative}.checklist li:before{content:"✓";position:absolute;left:0;top:0;color:var(--green);font-weight:1000;font-size:1.15rem}
.footer{background:var(--navy2);color:#d9e8f6;padding:32px 24px}.footer-inner{max-width:1180px;margin:auto;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.footer a{color:white}.footer strong{color:white}
/* Presentation */
.presentation-body{background:#edf5f8;overflow:hidden}.presentation-wrap{height:100vh;display:grid;grid-template-rows:1fr auto}.slides{position:relative;overflow:hidden;padding:24px}.slide{display:none;height:100%;max-width:1400px;margin:auto;background:white;border-radius:30px;padding:clamp(36px,5vw,70px);box-shadow:0 20px 60px rgba(22,55,92,.16);border-top:14px solid var(--orange);overflow:auto}.slide.active{display:block}.slide .kicker{color:var(--orange);font-weight:1000;letter-spacing:.16em;text-transform:uppercase;font-size:.9rem}.slide h1,.slide h2{color:var(--navy);letter-spacing:-.045em;line-height:.95;margin:12px 0 22px}.slide h1{font-size:clamp(3.2rem,8vw,7rem)}.slide h2{font-size:clamp(2.6rem,6vw,5.2rem)}.slide p,.slide li{font-size:clamp(1.1rem,2.1vw,1.65rem)}.slide ul,.slide ol{max-width:1050px}.slide li{margin:10px 0}.slide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.slide-card{border:2px solid var(--line);border-radius:22px;padding:24px;background:#fbfdff}.slide-card.orange{background:#fff1e4;border-color:#ffcca0}.slide-card.blue{background:#eafaff;border-color:#aee4ef}.slide-card h3{font-size:clamp(1.35rem,2.6vw,2.1rem);color:var(--navy);margin:0 0 8px}.big-question{font-size:clamp(1.6rem,3vw,2.6rem)!important;font-weight:950;color:var(--navy);background:#fff2e5;border-left:9px solid var(--orange);padding:19px 23px;border-radius:15px;margin-top:26px}.present-nav{background:var(--navy2);color:white;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px}.present-nav button,.present-nav a{border:0;background:white;color:var(--navy);font:inherit;font-weight:900;padding:10px 15px;border-radius:12px;text-decoration:none;cursor:pointer}.present-nav .counter{font-weight:900}.present-controls{display:flex;gap:9px;align-items:center}
@media(max-width:820px){.grid-2,.grid-3,.compose-grid,.challenge-list,.slide-grid{grid-template-columns:1fr}.header{background:linear-gradient(145deg,var(--navy2) 0 70%,var(--orange) 70% 84%,var(--cyan) 84% 100%)}.topnav-inner{align-items:flex-start;flex-direction:column}.slide{border-radius:18px}.slides{padding:10px}}
@media print{.topnav,.footer{display:none}.section{box-shadow:none;break-inside:avoid}body{background:white}}


/* Mobile scavenger-hunt checklist */
.mobile-hunt-check,
.mobile-check-help{
  display:none;
}
.mobile-check-label{
  display:block;
}
.challenge-text{
  display:block;
}

/* Opening presentation QR */
.first-slide-layout{
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(260px,.6fr);
  gap:42px;
  align-items:center;
  min-height:100%;
}
.qr-panel{
  background:#f7fbfe;
  border:2px solid var(--line);
  border-radius:28px;
  padding:24px;
  text-align:center;
  box-shadow:0 12px 30px rgba(23,58,99,.10);
}
.qr-panel img{
  display:block;
  width:min(100%,300px);
  aspect-ratio:1;
  object-fit:contain;
  margin:0 auto 16px;
  background:white;
  padding:10px;
  border-radius:18px;
}
.qr-panel h3{
  color:var(--navy);
  font-size:clamp(1.35rem,2.3vw,2rem);
  line-height:1.1;
  margin:0 0 8px;
}
.qr-panel p{
  font-size:clamp(1rem,1.6vw,1.25rem);
  margin:0 0 10px;
  color:var(--muted);
}
.qr-url{
  font-weight:900;
  color:var(--orange);
  overflow-wrap:anywhere;
}

@media(max-width:820px){
  .mobile-check-help{
    display:block;
    margin:12px 0 4px;
    padding:12px 14px;
    border-radius:12px;
    background:var(--sky);
    color:var(--navy);
    font-weight:800;
  }

  .challenge-list{
    gap:9px;
  }

  .challenge-list li{
    padding:0;
    overflow:hidden;
  }

  .challenge-list li:before{
    display:none;
  }

  .mobile-check-label{
    display:grid;
    grid-template-columns:38px 1fr;
    gap:12px;
    align-items:start;
    padding:14px;
    min-height:58px;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }

  .mobile-hunt-check{
    display:block;
    width:28px;
    height:28px;
    margin:1px 0 0;
    accent-color:var(--orange);
    cursor:pointer;
  }

  .challenge-text{
    font-size:1rem;
    line-height:1.4;
  }

  .challenge-list li:has(.mobile-hunt-check:checked){
    background:#edf9f2;
    border-color:#9ed7b8;
  }

  .mobile-hunt-check:checked + .challenge-text{
    color:#587064;
    text-decoration:line-through;
    text-decoration-thickness:1.5px;
  }

  .first-slide-layout{
    grid-template-columns:1fr;
    gap:20px;
  }

  .qr-panel img{
    width:min(72vw,260px);
  }
}
