/* Ogre Story Time: landing page
   Late-night palette from the club-mic brand kit. Fonts are self-hosted. */

@font-face{font-family:"Bowlby One";src:url("../fonts/bowlby-one-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"DM Sans";src:url("../fonts/dm-sans-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"DM Sans";src:url("../fonts/dm-sans-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"DM Sans";src:url("../fonts/dm-sans-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --ink:#070914;
  --navy:#141733;
  --navy-2:#1C2050;
  --navy-3:#232860;
  --navy-4:#2E3478;
  --cream:#F6E7B4;
  --gold:#F6C453;
  --amber:#FFB627;
  --coral:#FF5A4E;
  --display:"Bowlby One","Arial Black",Impact,sans-serif;
  --body:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--navy);color:var(--cream);font-family:var(--body);font-size:18px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,p,figure,blockquote,ol{margin:0}
a{color:var(--gold)}
a:hover{color:var(--amber)}
a:focus-visible{outline:3px solid var(--cream);outline-offset:3px}
svg{display:block}

.wrap{max-width:1160px;margin:0 auto;padding:0 24px}

/* Shared bits */
.label{font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.title{margin:12px 0 20px;font-family:var(--display);font-weight:400;font-size:clamp(32px,5vw,48px);line-height:1.08;color:var(--cream)}
.title--spaced{margin-bottom:48px}
.body-lg{max-width:520px;font-size:20px;line-height:1.55;color:var(--cream)}
.section{padding:96px 0;background:var(--navy)}
.section--navy2{background:var(--navy-2)}

.cta{display:inline-flex;align-items:center;gap:12px;min-height:58px;padding:0 30px;background:var(--amber);color:var(--navy);border:4px solid var(--ink);border-radius:14px;box-shadow:6px 6px 0 var(--coral);font-family:var(--display);font-size:20px;letter-spacing:1px;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease}
.cta:hover{color:var(--navy);transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--cream)}
.cta:focus-visible{outline:4px solid var(--cream);outline-offset:4px}
.cta--dark{background:var(--navy);color:var(--cream);box-shadow:6px 6px 0 var(--ink)}
.cta--dark:hover{color:var(--cream);box-shadow:8px 8px 0 var(--ink)}
.cta--dark:focus-visible{outline-color:var(--navy)}

/* Hero */
.hero{position:relative;background:var(--navy)}
.stars{position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;overflow:hidden}
.star{position:absolute}
.star--gold{color:var(--gold)}
.star--cream{color:var(--cream)}
.s1{left:2.5%;top:30%;width:26px;height:26px}
.s2{left:44%;top:9%;width:16px;height:16px;animation-delay:.8s}
.s3{left:92%;top:12%;width:30px;height:30px;animation-delay:1.4s}
.s4{left:3%;top:62%;width:18px;height:18px;animation-delay:2s}
.s5{left:48%;top:86%;width:22px;height:22px;animation-delay:.3s}
.s6{left:96%;top:58%;width:20px;height:20px;animation-delay:1.1s}
.s7{left:84%;top:90%;width:14px;height:14px;animation-delay:2.4s}

.nav{position:relative;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding-top:20px}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--display);font-size:18px;letter-spacing:1.5px;color:var(--cream);text-decoration:none}
.brand:hover{color:var(--cream)}
.brand svg{width:38px;height:52px}
.brand__text{display:flex;flex-direction:column;gap:0;line-height:1.15}
.brand__sub{font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.btn-ghost{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:3px solid var(--gold);border-radius:12px;color:var(--gold);font-size:16px;font-weight:700;text-decoration:none;transition:background .12s ease,color .12s ease}
.btn-ghost:hover{background:var(--gold);color:var(--navy)}

.hero__grid{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:center;padding-top:56px;padding-bottom:88px}
.hero h1{font-family:var(--display);font-weight:400;line-height:.98;letter-spacing:2px;color:var(--cream)}
.hero h1 .ogre{display:block;font-size:clamp(72px,14vw,104px);text-shadow:5px 5px 0 var(--coral)}
.hero h1 .story{display:block;font-size:clamp(36px,7.5vw,60px);text-shadow:4px 4px 0 var(--coral)}
.tagline{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:26px 0 24px;font-family:var(--display);font-size:22px;letter-spacing:3px;color:var(--gold)}
.tagline::before,.tagline::after{content:"";width:36px;height:4px;background:var(--gold);border-radius:2px}
.lede{max-width:520px;margin-bottom:32px;font-size:20px;line-height:1.55;color:var(--cream)}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:18px 24px}
.cta-note{font-size:16px;font-weight:700;color:var(--gold)}

/* Hero art */
.stage{position:relative;width:100%;max-width:480px;aspect-ratio:1/1;margin:0 auto}
.halo{position:absolute;left:50%;top:50%;aspect-ratio:1/1;border-radius:50%;transform:translate(-50%,-50%)}
.halo--1{width:100%;background:var(--navy-2)}
.halo--2{width:70%;background:var(--navy-3)}
.halo--3{width:42%;background:var(--navy-4)}
.stage__mic{position:absolute;left:0;top:0;width:100%;height:100%}
.sign{position:absolute;top:3%;right:0;transform:rotate(6deg);background:var(--amber);color:var(--navy);border:4px solid var(--ink);border-radius:10px;padding:8px 18px;font-family:var(--display);font-size:24px;letter-spacing:1px;box-shadow:0 0 28px rgba(255,182,39,.55)}
.bubble-joke{position:absolute;left:0;bottom:9%;transform:rotate(-5deg);background:var(--cream);color:var(--navy);border:4px solid var(--ink);border-radius:18px;padding:10px 16px;font-family:var(--display);font-size:18px;letter-spacing:.5px}
.bubble-joke::after{content:"";position:absolute;right:28px;bottom:-14px;width:20px;height:20px;background:var(--cream);border-right:4px solid var(--ink);border-bottom:4px solid var(--ink);transform:rotate(45deg)}

/* Ticker */
.marquee{overflow:hidden;padding:20px 0;background:var(--navy)}
.marquee__band{margin:0 -3%;transform:rotate(-1.4deg);background:var(--coral);border-top:4px solid var(--ink);border-bottom:4px solid var(--ink);overflow:hidden}
.marquee__track{display:flex;width:max-content;animation:ticker 32s linear infinite}
.marquee__set{display:flex;align-items:center;gap:28px;padding:14px;white-space:nowrap;font-family:var(--display);font-size:24px;letter-spacing:2px;color:var(--ink)}
.marquee__set i{display:block;width:12px;height:12px;background:var(--ink);transform:rotate(45deg)}

/* What is this + Story Facts */
.what{display:flex;flex-wrap:wrap;align-items:center;gap:56px}
.what__copy{flex:1 1 420px;min-width:0}
.what__copy .body-lg + .body-lg{margin-top:16px}
.facts{flex:0 1 380px;width:100%;min-width:0;background:var(--cream);color:var(--ink);border:6px solid var(--ink);border-radius:6px;padding:16px 20px 18px;transform:rotate(1.5deg);box-shadow:10px 10px 0 var(--coral)}
.facts__title{font-family:var(--display);font-size:44px;line-height:1}
.facts__row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--ink);font-size:17px;line-height:1.4}
.facts__row--serving{padding:8px 0;border-bottom-width:8px;font-weight:700}
.facts__row--last{border-bottom-width:4px}
.facts__amount{padding:6px 0;border-bottom:4px solid var(--ink);font-size:14px;font-weight:700}
.facts__foot{padding-top:8px;font-size:13px;line-height:1.4}

/* Things said at family dinners */
.says{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:48px 32px}
.say:nth-child(1){transform:rotate(-2deg)}
.say:nth-child(2){transform:rotate(1.5deg)}
.say:nth-child(3){transform:rotate(-1deg)}
.bubble{position:relative;background:var(--cream);color:var(--navy);border:4px solid var(--ink);border-radius:22px;padding:26px 26px 28px;font-family:var(--display);font-size:24px;line-height:1.25}
.bubble::after{content:"";position:absolute;left:40px;bottom:-14px;width:20px;height:20px;background:var(--cream);border-right:4px solid var(--ink);border-bottom:4px solid var(--ink);transform:rotate(45deg)}
.say figcaption{margin:26px 0 0 12px;font-size:16px;font-weight:700;color:var(--gold)}
.says__foot{margin-top:44px;font-size:14px}

/* Final call to action */
.final{position:relative;overflow:hidden;padding:96px 0;background:var(--amber);color:var(--navy)}
.final__mic{position:absolute;right:6%;bottom:-70px;width:210px;aspect-ratio:360/490;transform:rotate(14deg)}
.final__inner{position:relative}
.final__title{max-width:720px;margin-bottom:20px;font-family:var(--display);font-weight:400;font-size:clamp(34px,5.6vw,56px);line-height:1.05;color:var(--navy)}
.final__text{max-width:560px;margin-bottom:36px;font-size:20px;line-height:1.55;color:var(--navy)}

/* Footer */
.footer{padding:48px 0;background:var(--ink)}
.footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px}
.footer__brand{display:flex;align-items:center;gap:14px}
.footer__brand svg{width:42px;height:57px}
.footer__name{font-family:var(--display);font-size:20px;letter-spacing:1.5px;color:var(--cream)}
.footer__tag{margin-top:4px;font-size:15px;font-weight:700;color:var(--gold)}
.footer__pun{flex:1 1 320px;max-width:460px;font-size:16px;line-height:1.5;color:var(--cream)}
.footer__copy{font-size:14px;color:var(--cream)}

/* Motion */
@keyframes wobble{0%,100%{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}
@keyframes flicker{0%,18%,22%,25%,53%,57%,100%{opacity:1}20%,24%,55%{opacity:.35}}
@keyframes twinkle{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(.6)}}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.wobble{animation:wobble 4.5s ease-in-out infinite;transform-origin:50% 85%}
.flicker{animation:flicker 3.2s linear infinite}
.twinkle{animation:twinkle 3s ease-in-out infinite}

/* Tablet and down: single column hero */
@media (max-width:900px){
  .hero__grid{grid-template-columns:minmax(0,1fr);gap:56px;padding-bottom:72px}
  .stage{max-width:420px}
  .section,.final{padding:72px 0}
}

/* Phone */
@media (max-width:640px){
  body{font-size:17px}
  .wrap{padding:0 20px}
  .section,.final{padding:64px 0}
  .brand{font-size:16px}
  .btn-ghost,.s1,.s2{display:none}
  .facts__title{font-size:36px}
  .tagline{font-size:18px;letter-spacing:2px}
  .tagline::before,.tagline::after{display:none}
  .brand__sub{font-size:10px;letter-spacing:.08em}
  .lede,.body-lg,.final__text{font-size:18px}
  .cta{width:100%;justify-content:center;padding:0 20px;font-size:18px}
  .sign{font-size:18px;padding:6px 14px}
  .bubble-joke{font-size:15px}
  .marquee__set{font-size:20px}
  .facts{transform:none;box-shadow:8px 8px 0 var(--coral)}
  .title--spaced{margin-bottom:40px}
  .say:nth-child(n){transform:none}
  .final__mic{display:none}
  .footer__inner{flex-direction:column;align-items:flex-start}
  .footer__pun{flex:none;max-width:none}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .wobble,.flicker,.twinkle,.marquee__track{animation:none}
  .cta,.btn-ghost{transition:none}
}
