*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --cream:#FDF8F0;--pale:#FFFCF7;--ink:#1A1208;--ink-mid:#5C4A2A;--ink-light:#9C8060;
  --pink:#F7C5D0;--pink-deep:#D4567A;--green:#C8E6C2;--green-deep:#3A7D44;
  --yellow:#FDE68A;--teal:#B2E5DE;--purple:#DDD5F5;--peach:#FECBA1;
  --font-display:'Fraunces',serif;--font-body:'DM Sans',sans-serif;
  --r:999px;--rc:24px;
}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.6;overflow-x:hidden}

/* NAV */
nav{position:sticky;top:0;z-index:200;background:rgba(253,248,240,.92);backdrop-filter:blur(12px);border-bottom:1.5px solid rgba(26,18,8,.07);display:flex;align-items:center;justify-content:space-between;padding:0 4vw;height:64px;flex-wrap:nowrap;gap:12px}
.nav-logo{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-decoration:none}
.nav-logo img{height:34px;width:auto;display:block}
.nav-tagline{font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-light);font-weight:600;white-space:nowrap}
.nav-links{display:flex;gap:1.4rem;list-style:none;align-items:center;flex-wrap:nowrap;white-space:nowrap}
.nav-links a{color:var(--ink-mid);text-decoration:none;font-size:15px;font-weight:500;transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--ink)}
.nav-links a.active{font-weight:600}
.nav-cta{background:var(--ink);color:var(--cream)!important;padding:10px 22px;border-radius:var(--r);transition:background .2s!important}
.nav-cta:hover{background:var(--pink-deep)!important}

/* BUTTONS */
.btn-primary{background:var(--ink);color:var(--cream);padding:15px 34px;border-radius:var(--r);font-size:16px;font-weight:500;text-decoration:none;transition:background .2s,transform .15s;display:inline-block;border:none;cursor:pointer;font-family:var(--font-body)}
.btn-primary:hover{background:var(--pink-deep);transform:translateY(-2px)}
.btn-secondary{background:transparent;color:var(--ink);padding:15px 34px;border-radius:var(--r);font-size:16px;font-weight:500;text-decoration:none;border:1.5px solid rgba(26,18,8,.22);transition:border-color .2s,transform .15s;display:inline-block}
.btn-secondary:hover{border-color:var(--ink);transform:translateY(-2px)}

/* SECTION SHARED */
section{padding:90px 5vw;position:relative;z-index:1}
.section-label{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-light);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.section-label::before{content:'';display:block;width:24px;height:2px;background:currentColor}
.section-title{font-family:var(--font-display);font-size:clamp(34px,5vw,58px);font-weight:700;line-height:1.05;letter-spacing:-1.5px;color:var(--ink);margin-bottom:18px}
.section-title em{font-style:italic;font-weight:300;color:var(--ink-mid)}

/* PAGE HERO (sub pages) */
.page-hero{padding:80px 5vw 50px;text-align:center;position:relative;overflow:hidden}
.page-hero .section-label{justify-content:center}
.page-hero p.lead{font-size:17px;color:var(--ink-mid);max-width:560px;margin:0 auto}

/* REVEAL */
.reveal{opacity:0;transform:translateY(32px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}

/* TICKER */
.ticker{background:var(--pink-deep);color:#fff;padding:13px 0;overflow:hidden;white-space:nowrap;position:relative;z-index:1}
.ticker-inner{display:inline-flex;animation:ticker 22s linear infinite}
.ticker-item{font-family:var(--font-display);font-size:19px;font-style:italic;font-weight:300;padding:0 36px}
.ticker-dot{color:rgba(255,255,255,.5);font-style:normal}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* FOOTER */
footer{background:var(--ink);color:var(--cream);padding:30px 5vw 18px;position:relative;z-index:1}
.footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:24px;margin-bottom:18px;align-items:start}
.footer-logo{display:inline-block;background:var(--cream);padding:7px 14px;border-radius:12px}
.footer-logo img{height:28px;width:auto;display:block}
.footer-tagline{font-size:8px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mid);font-weight:600;margin-top:2px;display:block}
.footer-brand p{font-size:12px;color:rgba(255,255,255,.4);margin-top:8px;line-height:1.5}
.footer-col h4{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:10px}
.footer-col ul{list-style:none}
.footer-col ul li{margin-bottom:6px}
.footer-col ul a{text-decoration:none;font-size:13.5px;color:rgba(255,255,255,.55);transition:color .2s}
.footer-col ul a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:16px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:rgba(255,255,255,.3);flex-wrap:wrap;gap:8px}

/* 3D corner swirl */
#froyo-canvas{position:fixed;bottom:36px;right:36px;width:180px;height:180px;z-index:50;pointer-events:none;opacity:0;transition:opacity .7s ease;border-radius:50%}
#froyo-canvas.vis{opacity:1}

@media(max-width:900px){
  .footer-top{grid-template-columns:1fr 1fr 1fr}
  .footer-brand{grid-column:1/-1}
  .nav-links{display:none}
  #froyo-canvas{width:120px;height:120px;bottom:16px;right:16px}
}
