/* ============================================================
     Neko — horizontal-scroll + parallax redesign
     Single font (Cabin Sketch) · hierarchy by size + weight + colour
     Desktop: vertical wheel drives horizontal motion. Mobile: vertical stack.
     ============================================================ */

  :root{
    --bg:#f1e8f5;
    --cream:#f8f1e9;
    --paper:#ffffff;
    --ink:#1f1529;
    --ink-soft:#5d4f6b;
    --navy:#22304f;
    --lav:#e1bee7;
    --lav-soft:#ecd9f2;
    --purple:#8a4fa0;
    --purple-deep:#6e3a84;
    --orange:#ef7d22;
    --yellow:#f6c23f;
    --star:#f5b301;
    --teal:#0e9b86;

    --on-purple:#fdf4ff;
    --line:rgba(31,21,41,.9);
    --line-soft:rgba(31,21,41,.16);
    --shadow:0 18px 50px rgba(110,58,132,.22);
    --shadow-sm:0 8px 22px rgba(110,58,132,.16);

    --font:"Cabin Sketch","Comic Sans MS",cursive;
    --maxw:1180px;

    --band-yellow:#f6c23f;   --band-yellow-ink:#1f1529;
    --band-purple:#8a4fa0;   --band-purple-ink:#fdf4ff;
    --band-ink:#1f1529;      --band-ink-fg:#f6edf9;

    --app-pink:#b24a9c;      /* Neko brand pink (deepened lilac for contrast) */
    --app-red:#b0202f;       /* app "play" red */
    --app-red-bright:#ff6b74;/* red for use on dark panels */
  }
  :root[data-theme="dark"]{
    --bg:#140f1a; --cream:#1a1422; --paper:#221a2d;
    --ink:#f4ebf7; --ink-soft:#c2b2cd; --navy:#9db6ff;
    --lav:#c99bd8; --lav-soft:#2c2138; --purple:#c99bd8; --purple-deep:#b074c6;
    --orange:#ff954a; --yellow:#ffd46b; --star:#ffd14d; --teal:#35d6b4;
    --on-purple:#17111d; --line:rgba(244,235,247,.85); --line-soft:rgba(244,235,247,.18);
    --shadow:0 18px 50px rgba(0,0,0,.5); --shadow-sm:0 8px 22px rgba(0,0,0,.4);
    --band-yellow:#e7b94b; --band-yellow-ink:#17111d;
    --band-purple:#6e3a84; --band-purple-ink:#f6edf9;
    --band-ink:#0c0810; --band-ink-fg:#f6edf9;
  }
  @media (prefers-color-scheme:dark){
    :root:not([data-theme="light"]){
      --bg:#140f1a; --cream:#1a1422; --paper:#221a2d;
      --ink:#f4ebf7; --ink-soft:#c2b2cd; --navy:#9db6ff;
      --lav:#c99bd8; --lav-soft:#2c2138; --purple:#c99bd8; --purple-deep:#b074c6;
      --orange:#ff954a; --yellow:#ffd46b; --star:#ffd14d; --teal:#35d6b4;
      --on-purple:#17111d; --line:rgba(244,235,247,.85); --line-soft:rgba(244,235,247,.18);
      --shadow:0 18px 50px rgba(0,0,0,.5); --shadow-sm:0 8px 22px rgba(0,0,0,.4);
      --band-yellow:#e7b94b; --band-yellow-ink:#17111d;
      --band-purple:#6e3a84; --band-purple-ink:#f6edf9;
      --band-ink:#0c0810; --band-ink-fg:#f6edf9;
    }
  }

  *{box-sizing:border-box}
  html,body{margin:0}
  body{
    font-family:var(--font);font-weight:400;color:var(--ink);background:var(--bg);
    font-size:1.12rem;line-height:1.7;-webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;height:auto}
  a{color:inherit;text-decoration:none}
  html{interpolate-size:allow-keywords}
  @media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;scroll-behavior:auto!important}}

  /* ---------- type hierarchy (one font, differ by size/weight/colour) ---------- */
  .kick{font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:.92rem;color:var(--purple);display:inline-block}
  .xl{font-weight:700;font-size:clamp(3.2rem,8vw,7rem);line-height:.92;letter-spacing:.01em;text-transform:uppercase}
  .lg{font-weight:700;font-size:clamp(2.4rem,5vw,4.4rem);line-height:.96;text-transform:uppercase}
  .md{font-weight:700;font-size:clamp(1.9rem,3.4vw,2.8rem);line-height:1;text-transform:uppercase}
  p{margin:0 0 1rem}
  .lead{font-size:1.28rem;color:var(--ink-soft);line-height:1.6}
  .muted{color:var(--ink-soft)}
  .pink{color:var(--app-pink)}
  .amber{color:var(--orange)}
  .sun{color:var(--yellow)}
  :focus-visible{outline:3px solid var(--purple);outline-offset:3px;border-radius:6px}

  /* ---------- buttons / pills ---------- */
  .btn{
    display:inline-flex;align-items:center;gap:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
    font-size:1.05rem;padding:13px 26px;border-radius:999px;border:2.5px solid var(--line);
    background:var(--ink);color:var(--bg);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease;
  }
  .btn:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}
  .btn--ghost{background:transparent;color:var(--ink)}
  .badge-link{display:inline-block;transition:transform .2s ease}
  .badge-link:hover{transform:translateY(-3px)}
  .badge-link img{height:60px;width:auto}
  .pill{display:inline-flex;align-items:center;gap:8px;border:2.5px solid var(--line);border-radius:999px;padding:7px 16px;font-weight:700;font-size:1rem}
  .pill .star{color:var(--star)}

  /* ---------- header ---------- */
  .site-header{
    position:fixed;top:0;left:0;right:0;z-index:40;height:70px;
    display:flex;align-items:center;gap:18px;padding:0 24px;
    background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:saturate(1.3) blur(10px);
    border-bottom:2.5px solid var(--line);
  }
  .brand{display:flex;align-items:center;gap:10px}
  .brand img{width:40px;height:40px;border-radius:11px;border:2.5px solid var(--line)}
  .brand span{font-weight:700;font-size:2rem;line-height:1}
  .nav{margin-left:auto;display:flex;align-items:center;gap:24px}
  .nav-links{display:flex;gap:22px}
  .nav-links a{font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:1rem;color:var(--ink-soft)}
  .nav-links a:hover{color:var(--ink)}
  .controls{display:flex;align-items:center;gap:8px}
  .icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;cursor:pointer;background:transparent;border:2.5px solid var(--line);color:var(--ink);transition:transform .15s,background .2s}
  .icon-btn:hover{transform:translateY(-1px);background:var(--lav-soft)}
  .icon-btn svg{width:19px;height:19px}
  .lang-wrap{position:relative}
  .lang-select{appearance:none;-webkit-appearance:none;background:transparent;border:2.5px solid var(--line);color:var(--ink);font-family:var(--font);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.95rem;padding:10px 32px 10px 14px;border-radius:999px;cursor:pointer}
  .lang-wrap::after{content:"▾";position:absolute;right:13px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--ink-soft)}
  .theme-icon-moon{display:none}
  :root[data-theme="dark"] .theme-icon-sun{display:none}
  :root[data-theme="dark"] .theme-icon-moon{display:inline}
  @media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .theme-icon-sun{display:none}:root:not([data-theme="light"]) .theme-icon-moon{display:inline}}

  /* ============================================================
     LAYOUT ENGINE
     Default = vertical stack (also the no-JS / mobile experience).
     html.hmode = horizontal scroll hijack (added by JS on wide pointer-fine screens).
     ============================================================ */
  .sizer{display:none}
  .stage{position:relative}
  .track{display:block}
  .panel{position:relative;width:100%;padding:110px 0 70px;overflow:hidden}
  .panel__inner{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}
  .progress,.scroll-hint{display:none}

  /* ---- horizontal mode ---- */
  html.hmode{overflow-x:hidden}
  html.hmode body{overflow-x:hidden}
  html.hmode .sizer{display:block}
  html.hmode .site-header{z-index:60}
  html.hmode .stage{position:fixed;inset:0;overflow:hidden;z-index:1}
  html.hmode .track{position:absolute;top:0;left:0;display:flex;flex-direction:row;height:100vh;will-change:transform}
  html.hmode .panel{height:100vh;min-height:100vh;width:100vw;flex:0 0 auto;padding:84px 0 48px;display:flex;align-items:center;overflow:hidden}
  html.hmode .panel--wide{width:auto}
  html.hmode .panel__inner{max-width:none;padding:0 clamp(40px,6vw,96px)}
  /* keep tall panels from sliding under the fixed header */
  html.hmode .panel--hero .xl{font-size:clamp(2.8rem,6vw,5.6rem)}
  html.hmode .hero-art{min-height:auto}
  html.hmode .hero-mockup{width:clamp(210px,24vw,290px)}
  html.hmode .progress{display:block;position:fixed;left:0;bottom:0;height:5px;width:100%;background:var(--line-soft);z-index:60}
  html.hmode .progress>span{display:block;height:100%;width:0;background:var(--purple);transition:width .08s linear}
  html.hmode .scroll-hint{display:inline-flex;align-items:center;gap:8px;position:fixed;right:22px;bottom:20px;z-index:60;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;color:var(--ink-soft);background:color-mix(in srgb,var(--bg) 70%,transparent);border:2px solid var(--line-soft);border-radius:999px;padding:8px 14px;transition:opacity .4s}
  html.hmode .scroll-hint .ar{animation:nudge 1.3s ease-in-out infinite}
  @keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}

  /* ---------- HERO ---------- */
  .panel--hero{background:radial-gradient(120% 90% at 82% 0%,var(--lav) 0%,transparent 55%),var(--bg)}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
  .hero-eyebrow{margin-bottom:18px}
  .panel--hero .xl .l1{color:var(--ink)}
  .panel--hero .xl .l2{color:var(--purple)}
  .panel--hero .xl .l3{color:var(--orange)}
  .panel--hero .tagline{font-weight:700;font-size:clamp(1.6rem,3.4vw,2.5rem);color:var(--navy);margin:14px 0 8px;line-height:1}
  .panel--hero .lead{max-width:40ch;margin:0 0 24px}
  .hero-cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
  .hero-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
  .hero-meta .pill{font-size:.92rem;padding:6px 14px}
  .hero-art{position:relative;display:flex;justify-content:center;align-items:center;min-height:60vh}
  .hero-blob{position:absolute;width:78%;aspect-ratio:1/1.1;background:var(--purple);border-radius:46% 54% 50% 50%/56% 44% 56% 44%;opacity:.16;filter:blur(4px)}
  .hero-mockup{position:relative;z-index:2;width:290px;max-width:70vw;border-radius:42px;filter:drop-shadow(0 26px 46px rgba(110,58,132,.4))}
  :root[data-theme="dark"] .hero-mockup{filter:drop-shadow(0 26px 46px rgba(0,0,0,.6))}
  .hero-tag{position:absolute;z-index:3;font-weight:700;font-size:1.2rem;background:var(--paper);border:2.5px solid var(--line);border-radius:999px;padding:6px 16px;box-shadow:var(--shadow-sm)}
  .hero-tag--1{top:3%;left:9%;animation:tagVibrate 2.6s ease-in-out infinite}
  .hero-tag--2{top:3%;right:0%;color:var(--purple);animation:tagVibrateR 3s ease-in-out infinite .2s}
  .hero-tag--3{top:20%;right:4%;font-size:1.7rem;padding:5px 12px;animation:tagVibrateR 2.4s ease-in-out infinite .45s}
  .hero-tag--4{top:20%;left:2%;font-size:1.7rem;padding:5px 12px;animation:tagVibrate 2.9s ease-in-out infinite .15s}
  @keyframes tagFloat{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-10px) rotate(3deg)}}
  .float{animation:float 6s ease-in-out infinite}
  @keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
  /* periodic shiver — left-tilt and right-tilt variants */
  @keyframes tagVibrate{
    0%,80%,100%{transform:rotate(-6deg)}
    84%{transform:rotate(-10deg) translate(-1.5px,.5px)}
    88%{transform:rotate(-3deg) translate(1.5px,-.5px)}
    91%{transform:rotate(-9deg) translate(-1.5px,0)}
    94%{transform:rotate(-4deg) translate(1.5px,.5px)}
    97%{transform:rotate(-7deg) translate(-1px,0)}
  }
  @keyframes tagVibrateR{
    0%,80%,100%{transform:rotate(6deg)}
    84%{transform:rotate(10deg) translate(1.5px,.5px)}
    88%{transform:rotate(3deg) translate(-1.5px,-.5px)}
    91%{transform:rotate(9deg) translate(1.5px,0)}
    94%{transform:rotate(4deg) translate(-1.5px,.5px)}
    97%{transform:rotate(7deg) translate(-1px,0)}
  }
  .free-hl{color:var(--orange);font-weight:700;font-size:1.12em}

  /* ---------- STATEMENT ---------- */
  .panel--statement{background:var(--band-yellow);color:var(--band-yellow-ink);text-align:center}
  .panel--statement .panel__inner{display:flex;flex-direction:column;align-items:center;justify-content:center}
  .panel--statement .xl{max-width:15ch;font-size:clamp(2rem,4.4vw,3.9rem);line-height:1.04}
  .panel--statement .sub{font-size:1.25rem;margin-top:22px;opacity:.82}
  .panel--statement .star-row{font-family:var(--font);font-weight:700;font-size:2.5rem;color:var(--band-yellow-ink);letter-spacing:8px;margin-bottom:12px;opacity:1}

  /* ---------- FEATURES (wide) ---------- */
  .panel--features{background:var(--bg)}
  .feat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;width:100%}
  .feat-head{align-self:center;padding-right:6px}
  .feat-head .md{color:var(--ink);margin:10px 0 12px;font-size:clamp(1.7rem,2.6vw,2.4rem)}
  .feat-head p{color:var(--ink-soft);max-width:30ch;font-size:1.02rem}
  .feat-card{
    position:relative;overflow:hidden;
    background:var(--paper);border:2.5px solid var(--line);border-radius:22px;
    padding:18px 20px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;
  }
  /* app paw-print filigree behind the card content */
  .feat-card::before{content:"";position:absolute;inset:0;z-index:0;background:url(../img/paws.png) repeat;background-size:74px auto;opacity:.5;mix-blend-mode:multiply;pointer-events:none}
  .feat-card > *{position:relative;z-index:1}
  :root[data-theme="dark"] .feat-card::before{background-image:url(../img/paws-dark.png);mix-blend-mode:screen;opacity:.4}
  @media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .feat-card::before{background-image:url(../img/paws-dark.png);mix-blend-mode:screen;opacity:.4}}
  .feat-top{display:flex;align-items:center;gap:13px;margin-bottom:11px}
  .feat-ic{flex:0 0 auto;width:50px;height:50px;border-radius:14px;border:2.5px solid var(--line);background:var(--cream);display:grid;place-items:center;margin:0}
  .feat-ic img{width:31px;height:31px;object-fit:contain}
  .feat-card h3{font-weight:700;text-transform:uppercase;font-size:1.26rem;line-height:1.05;margin:0;color:var(--ink)}
  .feat-card p{margin:0;color:var(--ink-soft);font-size:.96rem;line-height:1.5}
  .feat-card .c-food{color:var(--orange)} .feat-card .c-play{color:var(--purple)}
  .feat-card .c-cards{color:var(--navy)} .feat-card .c-kawaii{color:var(--star)} .feat-card .c-always{color:var(--teal)}

  /* ---------- WIDGET ---------- */
  .panel--widget{background:var(--band-purple);color:var(--band-purple-ink)}
  .widget-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
  .panel--widget .kick{color:var(--band-purple-ink);opacity:.85}
  .panel--widget .out-pop{display:inline-block;transform:translateY(-.45em) rotate(-8deg);font-size:1.15em;opacity:1}
  .panel--widget .lg{margin:12px 0 16px}
  .panel--widget p{opacity:.92;max-width:40ch;font-size:1.18rem}
  .panel--widget .btn{background:var(--band-purple-ink);color:var(--band-purple);border-color:var(--band-purple-ink);margin-top:8px}
  .widget-shot{border:3px solid var(--band-purple-ink);border-radius:22px;overflow:hidden;box-shadow:var(--shadow);background:var(--paper)}
  .widget-shot img{width:100%}

  /* ---------- GALLERY (wide) ---------- */
  .panel--gallery{background:var(--cream)}
  .gal-wrap{display:flex;align-items:center;gap:40px}
  .gal-head{flex:0 0 300px}
  .gal-head .md{color:var(--ink);margin:10px 0 14px}
  .gal-head p{color:var(--ink-soft);max-width:30ch}
  .shot{flex:0 0 232px;width:232px;text-align:center;margin:0;position:relative}
  .shot .frame{position:relative;border-radius:30px;overflow:hidden;border:3px solid var(--line);box-shadow:var(--shadow);background:var(--paper)}
  .shot .frame img{width:100%;aspect-ratio:520/1167;object-fit:cover}
  /* whiskers around the punch-hole camera (the "nose") */
  .shot .frame::before{content:"";position:absolute;top:4px;left:50%;transform:translateX(-50%);width:66%;height:34px;z-index:2;pointer-events:none;background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 36'><g fill='none' stroke='%232a2233' stroke-width='2' stroke-linecap='round'><path d='M55 16 C40 13 25 11 8 10'/><path d='M55 18 C40 18 25 18 6 18'/><path d='M55 20 C40 23 25 25 8 26'/><path d='M75 16 C90 13 105 11 122 10'/><path d='M75 18 C90 18 105 18 124 18'/><path d='M75 20 C90 23 105 25 122 26'/></g></svg>") no-repeat center/contain}
  .shot figcaption{margin-top:14px;font-weight:700;font-size:1.22rem;color:var(--ink);line-height:1.12}
  /* cat-ear phone cover */
  .ears{position:absolute;top:0;left:0;right:0;height:0;z-index:4;pointer-events:none}
  .ears::before,.ears::after{content:"";position:absolute;top:-34px;width:48px;height:44px;background:radial-gradient(circle at 50% 74%,var(--app-pink) 0 19%,var(--ink) 20%);clip-path:polygon(50% 0,100% 100%,0 100%)}
  .ears::before{left:26px;transform:rotate(-15deg)}
  .ears::after{right:26px;transform:rotate(15deg)}

  /* ---------- REVIEWS ---------- */
  .panel--reviews{background:var(--band-ink);color:var(--band-ink-fg)}
  .panel--reviews .kick{color:var(--yellow)}
  .panel--reviews .kick .loved{color:var(--app-red-bright)}
  .panel--reviews .lg{margin:12px 0 40px}
  .stats{display:grid;grid-template-columns:repeat(5,1fr);border-top:2.5px solid rgba(255,255,255,.22);border-left:2.5px solid rgba(255,255,255,.22)}
  .stat{padding:28px 18px;border-bottom:2.5px solid rgba(255,255,255,.22);border-right:2.5px solid rgba(255,255,255,.22);display:flex;flex-direction:column;justify-content:flex-start}
  .stats .stat:nth-child(2),.stats .stat:nth-child(3),.stats .stat:nth-child(4){justify-content:center}
  .stat .big{font-weight:700;font-size:clamp(2.4rem,4vw,3.8rem);line-height:.9}
  .stat .st{color:var(--star);letter-spacing:2px;font-size:1.1rem;margin-top:6px}
  .stat .st.hearts{color:var(--app-red-bright)}
  .stat .lbl{margin-top:6px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.86rem;opacity:.74}
  .panel--reviews .pill{border-color:rgba(255,255,255,.5);color:var(--band-ink-fg);margin-top:34px}

  /* ---------- FAQ ---------- */
  .panel--faq{background:var(--bg)}
  .faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:30px 60px;align-items:start}
  .faq-head .md{color:var(--ink);margin:10px 0 12px}
  .faq-head .fq1{color:var(--orange)}
  .faq-head .fq2{color:var(--app-pink)}
  .faq-head .fq3{color:#38c6d9}
  .faq-head p{color:var(--ink-soft);max-width:28ch}
  .faq-list{align-self:center}
  .faq-item{border-top:2.5px solid var(--line)}
  .faq-item:last-child{border-bottom:2.5px solid var(--line)}
  .faq-item summary{cursor:pointer;list-style:none;font-weight:700;text-transform:uppercase;font-size:1.35rem;color:var(--ink);padding:18px 44px 18px 0;position:relative;line-height:1.1}
  .faq-item summary::-webkit-details-marker{display:none}
  .faq-item summary::after{content:"+";position:absolute;right:4px;top:50%;font-weight:700;color:var(--purple);font-size:1.9rem;transform:translateY(-50%) rotate(0deg);transition:transform .34s ease}
  .faq-item[open] summary::after{transform:translateY(-50%) rotate(135deg)}
  .faq-item p{margin:0 0 20px;color:var(--ink-soft);font-size:1.08rem;max-width:62ch}
  /* smooth open/close (Chromium interpolate-size + ::details-content) */
  .faq-item::details-content{block-size:0;overflow:hidden;opacity:0;transition:block-size .38s ease,opacity .34s ease,content-visibility .38s allow-discrete}
  .faq-item[open]::details-content{block-size:auto;opacity:1}

  /* ---------- FINAL CTA ---------- */
  .panel--final{background:var(--band-yellow);color:var(--band-yellow-ink);text-align:center}
  .panel--final .panel__inner{display:flex;flex-direction:column;align-items:center;justify-content:center}
  .panel--final .xl{max-width:14ch;margin:10px 0 12px}
  .panel--final p{font-weight:700;opacity:.82;margin-bottom:26px}

  /* ---------- FOOTER (right-aligned closing panel) ---------- */
  .panel--footer{background:var(--band-ink);color:var(--band-ink-fg)}
  html.hmode .panel--footer{align-items:center}
  .footer-split{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;width:100%}
  .footer-icon{display:flex;justify-content:center;align-items:center}
  .footer-icon img{width:min(230px,66%);height:auto;border-radius:34px;border:3px solid rgba(255,255,255,.4);box-shadow:var(--shadow)}
  .footer-end{max-width:600px;margin-left:auto;text-align:right}
  .footer-end .lg{margin:0 0 20px;color:var(--band-ink-fg)}
  .footer-cols{display:flex;gap:48px;flex-wrap:wrap;justify-content:flex-end;margin-top:28px}
  .footer-col h4{font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.86rem;opacity:.6;margin:0 0 12px}
  .footer-col a{display:block;opacity:.85;margin-bottom:8px}
  .footer-col a:hover{opacity:1;text-decoration:underline}
  .footer-bottom{margin-top:30px;padding-top:18px;border-top:2.5px solid rgba(255,255,255,.18);display:flex;flex-direction:column;gap:6px;align-items:flex-end;font-size:.9rem;opacity:.72}

  /* ---------- reveal (vertical mode only) ---------- */
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
  .reveal.in,html.hmode .reveal{opacity:1;transform:none}

  /* ---------- responsive (vertical) ---------- */
  @media (max-width:980px){
    .hero-grid{grid-template-columns:1fr;text-align:center}
    .hero-eyebrow,.hero-cta,.hero-meta{justify-content:center}
    .hero .lead{margin-inline:auto}
    .hero-art{order:-1;min-height:auto;margin-bottom:10px}
    .widget-grid{grid-template-columns:1fr;text-align:center}
    .panel--widget p{margin-inline:auto}
    .gal-wrap{flex-wrap:wrap;justify-content:center}
    .feat-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
    .feat-head,.gal-head{text-align:center}
    .gal-head{flex-basis:100%}
    .feat-head p,.gal-head p{margin-inline:auto}
    .footer-split{grid-template-columns:1fr;gap:22px}
    .footer-icon img{width:140px}
    .footer-end{margin-inline:auto;text-align:center;max-width:none}
    .footer-cols,.footer-bottom{justify-content:center;align-items:center}
    .faq-grid{grid-template-columns:1fr;gap:20px}
    .stats{grid-template-columns:repeat(2,1fr)}
    .stats .stat:last-child{grid-column:1 / -1}
  }
  @media (max-width:720px){
    .nav-links{display:none}
    .panel{padding:96px 0 60px}
  }
