/* =========================================================
   Rocket Meadow Co., Ltd. — Shared stylesheet
   Style: Japanese nature-meets-future, meadow editorial
   Fonts: Fraunces (EN display) / Shippori Mincho (JP display)
          Outfit (EN body) / Zen Kaku Gothic New (JP body)
   ========================================================= */

:root{
  --meadow-50:#f3f9ee; --meadow-100:#e3f0d6; --meadow-200:#c8e2b0; --meadow-300:#a6d180;
  --meadow-400:#82bd55; --meadow-500:#5f9e37; --meadow-600:#497e2b; --meadow-700:#396323;
  --meadow-800:#2f4f20; --meadow-900:#28421c;
  --sky-50:#eef8ff; --sky-100:#dcf1ff; --sky-200:#b3e4ff; --sky-300:#7ad2ff; --sky-400:#3bb9ff;
  --sky-500:#0d9dff; --sky-600:#0080e6; --sky-700:#0067bb;
  --sun-50:#fffbeb; --sun-100:#fff3c4; --sun-200:#ffe58a; --sun-300:#ffd452; --sun-400:#ffc627;
  --sun-500:#f9ad0d; --sun-600:#dd8a08;
  --graphite-50:#f5f6f7; --graphite-100:#e7e9eb; --graphite-200:#cfd3d8; --graphite-300:#a9b0b9;
  --graphite-400:#7c8794; --graphite-500:#5c6774; --graphite-600:#48515c; --graphite-700:#3b424b;
  --graphite-800:#2b3038; --graphite-900:#1c1f24;
  --paper:#fbfaf6;
  --ease-organic: cubic-bezier(.22,1,.36,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html.no-scroll, body.no-scroll{ overflow:hidden; }
body{
  background:var(--paper);
  color:var(--graphite-800);
  font-family:'Outfit','Zen Kaku Gothic New',sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}
::selection{ background:var(--meadow-300); color:var(--graphite-900); }

.font-display{ font-family:'Fraunces','Shippori Mincho',serif; }
.font-jp{ font-family:'Shippori Mincho', serif; }
.jp{ font-family:'Zen Kaku Gothic New','Shippori Mincho',sans-serif; }
em.jp-em, em{ font-style:normal; }

/* Skip link */
.skip-link{ position:absolute; left:-999px; top:0; background:var(--meadow-700); color:#fff; padding:.6rem 1rem; z-index:999; border-radius:0 0 .5rem 0; }
.skip-link:focus{ left:0; }

/* ============ HEADER / NAV ============ */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(251,250,246,.72);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid rgba(43,48,56,.06);
  transition:box-shadow .4s var(--ease-organic), background .4s;
}
.site-header.scrolled{
  box-shadow:0 8px 30px -12px rgba(28,31,36,.18);
  background:rgba(251,250,246,.92);
}
.header-inner{
  max-width:1360px; margin:0 auto; padding:.7rem 1.4rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.logo-lockup{ display:flex; align-items:center; gap:.65rem; text-decoration:none; flex-shrink:0; }
.logo-mark{
  width:42px; height:42px; border-radius:14px; object-fit:cover;
  box-shadow:0 4px 14px -4px rgba(95,158,55,.55);
  transition:transform .5s var(--ease-organic);
}
.logo-lockup:hover .logo-mark{ transform:rotate(-8deg) scale(1.06); }
.logo-text{ display:flex; flex-direction:column; line-height:1.05; }
.logo-en{ font-family:'Fraunces',serif; font-weight:600; font-size:1.08rem; color:var(--graphite-900); letter-spacing:.01em; }
.logo-jp{ font-family:'Shippori Mincho',serif; font-size:.62rem; color:var(--meadow-600); letter-spacing:.14em; }

.main-nav ul{ display:flex; align-items:center; gap:.15rem; list-style:none; margin:0; padding:0; }
.nav-link{
  position:relative; display:flex; flex-direction:column; align-items:center; text-align:center;
  text-decoration:none; color:var(--graphite-700); font-weight:500; font-size:.82rem;
  padding:.5rem .62rem; border-radius:999px; transition:color .3s, background .3s;
  white-space:nowrap;
}
.nav-link em{ font-family:'Shippori Mincho',serif; font-size:.6rem; color:var(--graphite-400); font-weight:400; margin-top:1px; }
.nav-link:hover{ color:var(--meadow-700); background:var(--meadow-50); }
.nav-link:hover em{ color:var(--meadow-500); }
.nav-link.active{ color:var(--meadow-800); background:var(--meadow-100); }
.nav-link.active em{ color:var(--meadow-600); }

.nav-toggle{
  display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px;
  width:42px; height:42px; border-radius:12px; border:1px solid rgba(43,48,56,.12); background:#fff;
  flex-shrink:0; cursor:pointer;
}
.nav-toggle span{ width:20px; height:2px; background:var(--graphite-800); border-radius:2px; transition:transform .35s var(--ease-organic), opacity .3s; }
.nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:980px){
  .main-nav{
    position:fixed; inset:0 0 0 auto; top:0; height:100vh; width:min(86vw,360px);
    background:var(--paper); box-shadow:-18px 0 40px -20px rgba(0,0,0,.25);
    transform:translateX(100%); transition:transform .5s var(--ease-organic);
    padding:6.2rem 1.6rem 2rem; overflow-y:auto; z-index:120;
  }
  .main-nav.open{ transform:translateX(0); }
  .main-nav ul{ flex-direction:column; align-items:stretch; gap:.2rem; }
  .nav-link{ flex-direction:row; justify-content:space-between; align-items:center; text-align:left; padding:.85rem 1rem; border-radius:14px; font-size:.98rem; }
  .nav-link em{ margin-top:0; font-size:.72rem; }
  .nav-toggle{ display:flex; }
}

/* nav scrim */
.nav-scrim{ position:fixed; inset:0; background:rgba(28,31,36,.35); backdrop-filter:blur(2px); z-index:110; opacity:0; pointer-events:none; transition:opacity .4s; }
.nav-scrim.show{ opacity:1; pointer-events:auto; }

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex; align-items:center; gap:.55rem; font-weight:600; font-size:.92rem;
  padding:.85rem 1.7rem; border-radius:100px 100px 100px 22px; text-decoration:none;
  transition:transform .45s var(--ease-organic), box-shadow .45s var(--ease-organic), background .35s;
  cursor:pointer; border:none; position:relative; overflow:hidden;
}
.btn-primary{ background:linear-gradient(135deg,var(--meadow-500),var(--meadow-700)); color:#fff; box-shadow:0 10px 30px -10px rgba(95,158,55,.6); }
.btn-primary:hover{ transform:translateY(-3px) scale(1.02); box-shadow:0 16px 34px -10px rgba(95,158,55,.75); }
.btn-outline{ background:transparent; border:1.5px solid var(--graphite-800); color:var(--graphite-800); border-radius:100px 100px 22px 100px; }
.btn-outline:hover{ background:var(--graphite-900); color:#fff; transform:translateY(-3px); }
.btn-sun{ background:linear-gradient(135deg,var(--sun-400),var(--sun-600)); color:var(--graphite-900); box-shadow:0 10px 26px -10px rgba(249,173,13,.65); }
.btn-sun:hover{ transform:translateY(-3px) scale(1.02); }
.btn-sky{ background:linear-gradient(135deg,var(--sky-400),var(--sky-700)); color:#fff; box-shadow:0 10px 26px -10px rgba(13,157,255,.55); }
.btn-sky:hover{ transform:translateY(-3px) scale(1.02); }
.btn svg{ width:16px; height:16px; transition:transform .4s var(--ease-organic); }
.btn:hover svg{ transform:translate(3px,-3px); }

/* ============ HERO ============ */
.hero{ position:relative; min-height:100vh; display:flex; align-items:flex-end; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; transform:scale(1.08); }
.hero-gradient{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(28,31,36,.05) 0%,rgba(28,31,36,.12) 55%,rgba(28,31,36,.72) 100%); z-index:1; }
.hero-content{ position:relative; z-index:2; max-width:1360px; margin:0 auto; padding:0 1.4rem 6vh; width:100%; color:#fff; }
.hero-eyebrow{ display:inline-flex; align-items:center; gap:.5rem; font-family:'Shippori Mincho',serif; font-size:.92rem; letter-spacing:.18em; padding:.4rem 1rem; border:1px solid rgba(255,255,255,.4); border-radius:999px; backdrop-filter:blur(6px); margin-bottom:1.4rem; }
.hero-title{ font-family:'Fraunces',serif; font-weight:600; font-size:clamp(2.4rem,6.4vw,5.6rem); line-height:1.02; letter-spacing:-.01em; text-shadow:0 6px 30px rgba(0,0,0,.25); }
.hero-sub-jp{ font-family:'Shippori Mincho',serif; font-size:clamp(1rem,1.6vw,1.35rem); margin-top:1.1rem; opacity:.94; }
.hero-sub-en{ font-size:clamp(.95rem,1.4vw,1.15rem); opacity:.85; margin-top:.4rem; max-width:640px; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.2rem; }
.hero-scroll{ position:absolute; bottom:2.4rem; left:50%; transform:translateX(-50%); z-index:2; color:#fff; display:flex; flex-direction:column; align-items:center; gap:.4rem; font-size:.68rem; letter-spacing:.2em; opacity:.85; }
.hero-scroll .dash{ width:1px; height:34px; background:rgba(255,255,255,.7); animation:scrollDash 2.2s infinite var(--ease-organic); }
@keyframes scrollDash{ 0%{ transform:scaleY(0); transform-origin:top; } 50%{ transform:scaleY(1); transform-origin:top; } 51%{ transform-origin:bottom; } 100%{ transform:scaleY(0); transform-origin:bottom; } }

/* parallax layers used within hero / sections */
.parallax-layer{ will-change:transform; }

/* floating particles (pollen / stars) */
.particles{ position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:1; }
.particle{ position:absolute; bottom:-10%; border-radius:50%; background:rgba(255,255,255,.85); opacity:.7; animation:floatUp linear infinite; }
.particles.dark .particle{ background:var(--meadow-300); }
@keyframes floatUp{
  0%{ transform:translateY(0) translateX(0) scale(1); opacity:0; }
  10%{ opacity:.85; }
  50%{ transform:translateY(-52vh) translateX(var(--drift,20px)) scale(1.1); }
  90%{ opacity:.5; }
  100%{ transform:translateY(-105vh) translateX(calc(var(--drift,20px) * -1)) scale(.8); opacity:0; }
}

/* grass divider */
.grass-divider{ display:block; width:100%; height:auto; color:var(--meadow-500); }
.grass-divider .blade{ transform-origin:bottom center; animation:sway 4.5s ease-in-out infinite; }
.grass-divider .blade:nth-child(odd){ animation-delay:.3s; }
.grass-divider .blade:nth-child(3n){ animation-delay:.7s; animation-duration:5.2s; }
@keyframes sway{ 0%,100%{ transform:rotate(-3deg);} 50%{ transform:rotate(3deg);} }

/* ============ SECTIONS / EDITORIAL ============ */
section{ position:relative; }
.section-pad{ padding:clamp(4rem,8vw,7.5rem) 1.4rem; }
.section-inner{ max-width:1280px; margin:0 auto; }
.eyebrow{ font-family:'Shippori Mincho',serif; letter-spacing:.16em; color:var(--meadow-600); font-size:.9rem; display:inline-flex; align-items:center; gap:.6rem; }
.eyebrow::before{ content:''; width:26px; height:1px; background:var(--meadow-500); }
.h2-display{ font-family:'Fraunces',serif; font-weight:600; font-size:clamp(1.9rem,4vw,3.2rem); line-height:1.08; color:var(--graphite-900); }
.h2-jp{ font-family:'Shippori Mincho',serif; color:var(--graphite-500); font-size:clamp(.95rem,1.4vw,1.15rem); margin-top:.5rem; }
.lead{ color:var(--graphite-600); font-size:1.05rem; line-height:1.85; max-width:62ch; }

.reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease-organic), transform .9s var(--ease-organic); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal-scale{ opacity:0; transform:scale(.94); transition:opacity 1s var(--ease-organic), transform 1s var(--ease-organic); }
.reveal-scale.is-visible{ opacity:1; transform:scale(1); }
[data-reveal-delay="1"]{ transition-delay:.12s; }
[data-reveal-delay="2"]{ transition-delay:.24s; }
[data-reveal-delay="3"]{ transition-delay:.36s; }
[data-reveal-delay="4"]{ transition-delay:.48s; }

/* editorial cards */
.card-editorial{
  background:#fff; border-radius:28px 28px 28px 6px; overflow:hidden;
  box-shadow:0 18px 40px -22px rgba(28,31,36,.25); transition:transform .5s var(--ease-organic), box-shadow .5s var(--ease-organic);
  display:flex; flex-direction:column; height:100%;
}
.card-editorial:hover{ transform:translateY(-8px); box-shadow:0 26px 50px -20px rgba(28,31,36,.32); }
.card-editorial .card-media{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.card-editorial .card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease-organic); }
.card-editorial:hover .card-media img{ transform:scale(1.08); }
.card-editorial .card-tag{ position:absolute; top:14px; left:14px; background:rgba(251,250,246,.92); color:var(--meadow-700); font-size:.72rem; font-weight:600; padding:.35rem .75rem; border-radius:999px; backdrop-filter:blur(4px); }
.card-editorial .card-body{ padding:1.5rem 1.5rem 1.7rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.card-editorial h3{ font-family:'Fraunces',serif; font-size:1.28rem; color:var(--graphite-900); }
.card-editorial .card-jp{ font-family:'Shippori Mincho',serif; font-size:.82rem; color:var(--meadow-600); }
.card-editorial p{ color:var(--graphite-500); font-size:.92rem; line-height:1.7; }
.card-editorial .card-link{ margin-top:.4rem; font-weight:600; font-size:.85rem; color:var(--meadow-700); display:inline-flex; align-items:center; gap:.35rem; text-decoration:none; }
.card-editorial .card-link:hover{ gap:.6rem; }

/* stat / feature pill */
.pill-stat{ background:var(--meadow-50); border:1px solid var(--meadow-100); border-radius:20px; padding:1.4rem 1.2rem; text-align:center; }
.pill-stat .num{ font-family:'Fraunces',serif; font-size:2.2rem; color:var(--meadow-700); font-weight:600; }
.pill-stat .lbl{ font-size:.8rem; color:var(--graphite-500); margin-top:.2rem; }

/* masonry gallery */
.masonry{ column-count:1; column-gap:1.1rem; }
@media(min-width:640px){ .masonry{ column-count:2; } }
@media(min-width:1024px){ .masonry{ column-count:3; } }
.masonry-item{ break-inside:avoid; margin-bottom:1.1rem; border-radius:20px; overflow:hidden; position:relative; cursor:pointer; box-shadow:0 12px 30px -18px rgba(28,31,36,.35); }
.masonry-item img{ width:100%; display:block; transition:transform .7s var(--ease-organic); }
.masonry-item:hover img{ transform:scale(1.05); }
.masonry-item .m-caption{ position:absolute; inset:auto 0 0 0; padding:1rem; background:linear-gradient(0deg,rgba(28,31,36,.78),transparent); color:#fff; opacity:0; transform:translateY(10px); transition:.4s var(--ease-organic); }
.masonry-item:hover .m-caption{ opacity:1; transform:translateY(0); }
.masonry-item .m-caption .en{ font-family:'Fraunces',serif; font-size:.95rem; }
.masonry-item .m-caption .jp{ font-family:'Shippori Mincho',serif; font-size:.72rem; opacity:.85; }

/* lightbox */
.lightbox{ position:fixed; inset:0; background:rgba(20,22,26,.94); z-index:200; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .35s; padding:2rem; }
.lightbox.show{ opacity:1; pointer-events:auto; }
.lightbox img{ max-width:min(90vw,1100px); max-height:86vh; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.lightbox-close{ position:absolute; top:1.6rem; right:1.8rem; color:#fff; font-size:1.6rem; background:none; border:none; cursor:pointer; opacity:.8; }
.lightbox-close:hover{ opacity:1; }

/* forms */
.field{ display:flex; flex-direction:column; gap:.4rem; }
.field label{ font-size:.85rem; font-weight:600; color:var(--graphite-700); }
.field label em{ color:var(--graphite-400); font-family:'Shippori Mincho',serif; font-size:.78rem; margin-left:.3rem; }
.field input, .field textarea, .field select{
  border:1.5px solid var(--graphite-200); border-radius:14px; padding:.85rem 1rem; font-family:inherit; font-size:.95rem;
  background:#fff; transition:border-color .3s, box-shadow .3s; color:var(--graphite-800);
}
.field input:focus, .field textarea:focus, .field select:focus{ outline:none; border-color:var(--meadow-500); box-shadow:0 0 0 4px rgba(95,158,55,.15); }
.field.error input, .field.error textarea{ border-color:#d9534f; }
.field .err-msg{ color:#c0392b; font-size:.78rem; display:none; }
.field.error .err-msg{ display:block; }

/* FAQ accordion */
.faq-item{ border-bottom:1px solid var(--graphite-100); }
.faq-q{ display:flex; align-items:center; justify-content:space-between; width:100%; text-align:left; padding:1.4rem .2rem; background:none; border:none; cursor:pointer; gap:1rem; }
.faq-q h3{ font-family:'Fraunces',serif; font-size:1.08rem; color:var(--graphite-900); }
.faq-q .plus{ width:26px; height:26px; border-radius:50%; border:1.5px solid var(--meadow-500); flex-shrink:0; position:relative; transition:transform .4s var(--ease-organic), background .3s; }
.faq-q .plus::before, .faq-q .plus::after{ content:''; position:absolute; background:var(--meadow-600); top:50%; left:50%; transform:translate(-50%,-50%); }
.faq-q .plus::before{ width:11px; height:1.6px; }
.faq-q .plus::after{ width:1.6px; height:11px; transition:opacity .3s; }
.faq-item.open .plus{ background:var(--meadow-500); transform:rotate(180deg); }
.faq-item.open .plus::before, .faq-item.open .plus::after{ background:#fff; }
.faq-item.open .plus::after{ opacity:0; }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .5s var(--ease-organic); }
.faq-a-inner{ padding:0 .2rem 1.5rem; color:var(--graphite-500); line-height:1.8; font-size:.95rem; }

/* toast / non-blocking popups */
.toast-container{ position:fixed; bottom:1.4rem; right:1.4rem; z-index:300; display:flex; flex-direction:column; gap:.7rem; max-width:min(92vw,360px); }
.toast{
  background:var(--graphite-900); color:#fff; padding:.9rem 1.2rem; border-radius:16px 16px 16px 4px;
  box-shadow:0 16px 34px -14px rgba(0,0,0,.5); font-size:.9rem; display:flex; gap:.7rem; align-items:flex-start;
  transform:translateY(20px); opacity:0; animation:toastIn .5s var(--ease-organic) forwards;
}
.toast.success{ background:var(--meadow-700); }
.toast.error{ background:#a5322b; }
.toast .t-icon{ flex-shrink:0; margin-top:1px; }
.toast .t-close{ margin-left:auto; cursor:pointer; opacity:.7; background:none; border:none; color:#fff; font-size:1rem; }
.toast.hide{ animation:toastOut .4s var(--ease-organic) forwards; }
@keyframes toastIn{ to{ transform:translateY(0); opacity:1; } }
@keyframes toastOut{ to{ transform:translateY(10px) scale(.96); opacity:0; } }

/* back to top */
.back-to-top{
  position:fixed; bottom:1.4rem; left:1.4rem; z-index:90; width:46px; height:46px; border-radius:50%;
  background:#fff; border:1px solid var(--graphite-200); box-shadow:0 10px 24px -10px rgba(0,0,0,.25);
  display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--graphite-800);
  opacity:0; pointer-events:none; transform:translateY(10px); transition:opacity .4s,transform .4s;
}
.back-to-top.show{ opacity:1; pointer-events:auto; transform:translateY(0); }
.back-to-top:hover{ background:var(--meadow-600); color:#fff; border-color:var(--meadow-600); }

/* ============ FOOTER ============ */
.site-footer{ background:var(--graphite-900); color:var(--graphite-200); }
.footer-top{ max-width:1360px; margin:0 auto; padding:4.5rem 1.4rem 3rem; display:flex; flex-wrap:wrap; gap:3rem; justify-content:space-between; }
.footer-brand{ max-width:280px; }
.footer-logo{ width:52px; height:52px; border-radius:16px; object-fit:cover; margin-bottom:1rem; }
.footer-tagline{ font-family:'Fraunces',serif; font-size:1.15rem; color:#fff; line-height:1.4; }
.footer-tagline span{ font-family:'Shippori Mincho',serif; font-size:.85rem; color:var(--meadow-300); display:inline-block; margin-top:.3rem; }
.footer-cols{ display:grid; grid-template-columns:repeat(5,minmax(120px,1fr)); gap:2rem; flex:1; }
.footer-col h4{ font-family:'Fraunces',serif; color:#fff; font-size:.98rem; margin-bottom:1rem; }
.footer-col h4 em{ display:block; font-family:'Shippori Mincho',serif; font-size:.72rem; color:var(--meadow-400); font-weight:400; }
.footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.6rem; }
.footer-col a{ color:var(--graphite-300); text-decoration:none; font-size:.86rem; transition:color .3s, padding .3s; display:inline-block; padding-block:4px; min-height:24px; }
.footer-col a:hover{ color:var(--meadow-300); padding-left:4px; }
.footer-col address{ font-style:normal; color:var(--graphite-300); font-size:.86rem; line-height:1.8; margin-bottom:1rem; }
.footer-col address a{ color:var(--sun-300); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.08); padding:1.4rem; display:flex; flex-wrap:wrap; gap:.6rem; justify-content:space-between; max-width:1360px; margin:0 auto; font-size:.78rem; color:var(--graphite-400); }
@media(max-width:900px){ .footer-cols{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .footer-cols{ grid-template-columns:1fr 1fr; gap:1.6rem; } .footer-col h4{ font-size:.9rem; } }

/* misc utilities */
.split-2{ display:grid; grid-template-columns:1fr; gap:3rem; align-items:center; }
@media(min-width:900px){ .split-2{ grid-template-columns:1fr 1fr; gap:4rem; } .split-2.reverse > *:first-child{ order:2; } }
.img-organic{ border-radius:32px 32px 32px 4px; overflow:hidden; box-shadow:0 30px 60px -30px rgba(28,31,36,.4); }
.img-organic img{ width:100%; height:100%; object-fit:cover; display:block; }
.tag-dot{ display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:.4rem; }
.bg-soft-meadow{ background:linear-gradient(180deg,var(--meadow-50) 0%, var(--paper) 100%); }
.bg-soft-sky{ background:linear-gradient(180deg,var(--sky-50) 0%, var(--paper) 100%); }
.bg-graphite{ background:var(--graphite-900); color:#fff; }
.marquee{ display:flex; gap:2.5rem; white-space:nowrap; animation:marquee 30s linear infinite; }
@keyframes marquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
.marquee-wrap{ overflow:hidden; mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }

/* breadcrumb */
.breadcrumb{ font-size:.8rem; color:var(--graphite-400); display:flex; gap:.4rem; flex-wrap:wrap; }
.breadcrumb a{ color:var(--graphite-500); text-decoration:none; }
.breadcrumb a:hover{ color:var(--meadow-600); }

/* 404 */
.page-404{ min-height:100vh; display:flex; align-items:center; justify-content:center; text-align:center; position:relative; overflow:hidden; }
