/* Hygge Collective shop styles. Tokens live in brand.css (Lenke design system). */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--hygge-page);
  color: var(--hygge-navy);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  overflow-x: hidden;
}
[hidden] { display: none !important; }
img, svg { max-width: 100%; }
img { display: block; height: auto; }
a { color: var(--hygge-teal); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--hygge-forest); }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 400; line-height: 1.15; margin: 0 0 .5em; letter-spacing: -.005em; }
h1 { font-size: clamp(2.3rem, 6vw, 3.9rem); }
h2 { font-size: clamp(1.75rem, 3.6vw, 2.5rem); }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1em; }
.muted { color: rgba(27,48,59,.72); }
.wrap { width: 100%; max-width: 1140px; margin: 0 auto; padding: 0 16px; }
@media (min-width: 720px) { .wrap { padding: 0 32px; } }
.narrow { max-width: 760px; }

.skip { position: absolute; left: -999px; top: 8px; background: #fff; padding: 8px 14px; border-radius: 999px; z-index: 50; }
.skip:focus { left: 16px; }

/* Eyebrow + script */
.eyebrow {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 12px; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--hygge-teal);
  margin-bottom: 12px;
}
.script { font-family: var(--font-script); font-weight: 500; color: var(--hygge-clay-ink); font-size: 1.35rem; line-height: 1.2; }

/* Header */
.site-header { position: sticky; top: 0; z-index: 20; background: rgba(249,248,245,.92); backdrop-filter: saturate(140%) blur(8px); -webkit-backdrop-filter: saturate(140%) blur(8px); border-bottom: 1px solid rgba(27,48,59,.06); }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 68px; }
.logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--hygge-navy); }
.logo:hover { color: var(--hygge-navy); }
.logo svg { flex: none; }
.logo img { height: 56px; width: auto; }
.site-footer .logo img { height: 64px; }
.logo-text { display: flex; flex-direction: column; line-height: 1; }
.logo-name { font-family: var(--font-display); font-size: 1.22rem; letter-spacing: .01em; }
.logo-tag { font-family: var(--font-script); color: var(--hygge-clay-ink); font-size: .98rem; margin-top: 3px; }
.nav { display: flex; align-items: center; gap: 4px; }
.nav a { color: var(--hygge-navy); text-decoration: none; font-weight: 600; font-size: .95rem; padding: 8px 12px; border-radius: 999px; }
.nav a:hover, .nav a[aria-current="page"] { background: var(--hygge-linen); }
.nav .btn { margin-left: 6px; color: #fff; }
.nav .btn:hover { background: var(--hygge-teal); color: #fff; }
@media (max-width: 640px) {
  .site-header .wrap { flex-wrap: wrap; min-height: auto; padding-top: 8px; padding-bottom: 8px; gap: 4px 16px; }
  .logo img { height: 46px; }
  .nav { width: 100%; justify-content: space-between; overflow-x: auto; gap: 0; }
  .nav a { padding: 8px 7px; font-size: .86rem; white-space: nowrap; }
  .nav .btn { padding: 9px 13px; margin-left: 0; }
  .signup-trees img { height: 84px; }
  .signup-trees img:nth-child(2) { height: 68px; }
  .signup-trees img:nth-child(3) { height: 76px; }
}

/* Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border: 0; border-radius: 999px; cursor: pointer;
  padding: 13px 26px;
  font-family: var(--font-body); font-weight: 700; font-size: 1rem; line-height: 1.2;
  text-decoration: none; color: #fff; background: var(--hygge-teal);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.btn:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 8px 20px -8px rgba(27,48,59,.35); }
.btn:focus-visible, .chip:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, button:focus-visible, .thumb:focus-visible { outline: 2px solid var(--hygge-navy); outline-offset: 3px; box-shadow: 0 0 0 5px rgba(224,193,115,.55); }
.signup :focus-visible, .site-footer :focus-visible { outline-color: var(--hygge-gold); }
.btn-forest { background: var(--hygge-forest); }
.btn-clay { background: var(--hygge-gold); color: var(--hygge-navy); }
.btn-clay:hover { background: #d4b35e; color: var(--hygge-navy); }
.btn-ghost { background: transparent; color: var(--hygge-navy); box-shadow: inset 0 0 0 1.5px rgba(27,48,59,.18); }
.btn-ghost:hover { color: var(--hygge-navy); background: #fff; }
.btn-lg { padding: 16px 32px; font-size: 1.05rem; }
.btn-block { width: 100%; }
.btn.is-pending { background: var(--hygge-linen); color: var(--hygge-navy); box-shadow: inset 0 0 0 1.5px rgba(27,48,59,.18); cursor: default; }
.btn.is-pending:hover { transform: none; box-shadow: inset 0 0 0 1.5px rgba(27,48,59,.18); }
.trust-line { font-size: .85rem; color: rgba(27,48,59,.78); text-align: center; margin: 10px 0 0; }
.btn svg { flex: none; }

/* Cards */
.card { background: var(--hygge-card); border-radius: var(--radius); box-shadow: var(--shadow-card); border: 1px solid rgba(27,48,59,.05); }

/* Sections */
.section { padding: 72px 0; }
.section-sm { padding: 48px 0; }
@media (max-width: 640px) { .section { padding: 52px 0; } }
.section-head { max-width: 640px; margin-bottom: 32px; }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.linen { background: var(--hygge-linen); }
.linen .eyebrow { color: var(--hygge-teal-ink); }

/* Hero */
.hero { padding: 56px 0 24px; position: relative; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 48px; align-items: center; }
.hero h1 { margin-bottom: .35em; font-size: clamp(2.1rem, 5vw, 3.3rem); }
.hero .lede { font-size: 1.15rem; max-width: 34em; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.hero-note { margin-top: 18px; font-size: .92rem; color: rgba(27,48,59,.78); }
.stack { position: relative; aspect-ratio: 1 / .95; max-width: 520px; margin: 0 auto; width: 100%; }
.stack img { position: absolute; width: 58%; border-radius: 10px; box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 18px 40px -18px rgba(27,48,59,.35); background: #fff; }
.stack .s1 { left: 2%; top: 10%; transform: rotate(-6deg); }
.stack .s2 { right: 2%; top: 4%; transform: rotate(5deg); }
.stack .s3 { left: 21%; top: 0; z-index: 2; width: 58%; }
.hero-trees { margin-top: 40px; opacity: .9; }
@media (max-width: 860px) {
  .hero { padding-top: 36px; }
  .hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .stack { max-width: 400px; aspect-ratio: 1 / .86; }
}
@media (max-width: 640px) { .hero-actions .btn { width: 100%; } }

/* Featured product */
.feature { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; }
.feature-media { background: var(--hygge-navy); padding: 36px; display: flex; align-items: center; justify-content: center; }
.feature-media img { width: 100%; max-width: 330px; border-radius: 8px; box-shadow: 0 20px 40px -20px rgba(0,0,0,.6); }
.feature-body { padding: 40px; display: flex; flex-direction: column; justify-content: center; }
.feature-body h3 { font-size: 2rem; margin-bottom: .3em; }
.price { font-family: var(--font-display); font-size: 1.9rem; color: var(--hygge-navy); }
.price-row { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-top: 8px; }
.ticks { list-style: none; padding: 0; margin: 4px 0 22px; display: grid; gap: 8px; }
.ticks li { display: flex; gap: 10px; align-items: flex-start; }
.ticks svg { color: var(--hygge-forest); flex: none; margin-top: 4px; }
@media (max-width: 760px) {
  .feature { grid-template-columns: 1fr; }
  .feature-media { padding: 20px; }
  .feature-media img { max-width: 220px; }
  .feature-body { padding: 26px 22px 30px; }
}

/* What is hygge */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
@media (max-width: 760px) { .split { grid-template-columns: 1fr; gap: 24px; } }
.pron { font-style: italic; color: rgba(27,48,59,.7); }
.quote-card { padding: 30px; }
.quote-card .script { font-size: 1.6rem; margin: 0 0 6px; }

/* Category chips */
.chips { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.chip { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 22px 10px 18px; text-align: center; }
.chip-icon { width: 52px; height: 52px; border-radius: 999px; display: grid; place-items: center; }
.chip-label { font-family: var(--font-display); font-size: 1.15rem; }
.chip-desc { font-size: .85rem; color: rgba(27,48,59,.78); line-height: 1.4; }
@media (max-width: 900px) { .chips { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px) { .chips { grid-template-columns: repeat(2, 1fr); gap: 10px; } }
.c-light { background: rgba(224,193,115,.28); color: var(--hygge-navy); }
.c-nature { background: rgba(55,81,69,.12); color: var(--hygge-forest); }
.c-together { background: rgba(78,120,128,.14); color: var(--hygge-teal); }
.c-kindness { background: rgba(221,175,161,.35); color: var(--hygge-danger); }
.c-make { background: rgba(196,137,106,.18); color: var(--hygge-clay-ink); }
.c-rest { background: rgba(181,201,195,.40); color: var(--hygge-navy); }

/* Coming soon */
.soon-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 860px) { .soon-grid { grid-template-columns: 1fr; } }
.soon { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.soon-art { height: 120px; position: relative; display: flex; align-items: flex-end; }
.soon-art .badge { position: absolute; top: 14px; left: 14px; }
.soon-art .soon-icon { position: absolute; top: 14px; right: 16px; color: rgba(255,255,255,.95); }
.soon-body { padding: 20px 22px 24px; }
.soon-body h3 { margin-bottom: .25em; }
.soon-body p { font-size: .95rem; color: rgba(27,48,59,.78); margin: 0 0 12px; }
.soon-link { font-weight: 700; font-size: .95rem; }
.notify-form { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; max-width: 26rem; }
.notify-form[hidden] { display: none; }
.cta-band .notify-form { margin: 14px auto 0; }
div.door:hover { transform: none; box-shadow: none; }
.notify-form input[type="email"] { flex: 1 1 12rem; min-width: 0; font: inherit; font-size: 1rem; padding: 11px 14px; border-radius: 999px; border: 1.5px solid rgba(27,48,59,.18); background: #fff; color: var(--hygge-navy); }
.notify-form .btn { padding: 11px 20px; font-size: .95rem; }
.notify-form .btn:disabled { opacity: .6; cursor: default; transform: none; }
.notify-msg { flex-basis: 100%; margin: 0; font-size: .9rem; color: var(--hygge-danger); }
.notify-msg:empty { display: none; }
.notify-msg.is-done { color: var(--hygge-forest); font-weight: 600; }
.badge { display: inline-block; font-size: 10.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; padding: 5px 11px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--hygge-navy); }
.badge-teal { background: rgba(78,120,128,.14); color: var(--hygge-teal); }

/* Signup */
.signup { display: grid; grid-template-columns: 1.1fr 1fr; gap: 36px; padding: 40px; align-items: center; background: var(--hygge-forest); color: #fff; border: 0; }
.signup h2 { color: #fff; }
.signup .eyebrow { color: var(--hygge-nordic); }
.signup p { color: rgba(255,255,255,.85); }
.signup .script { color: var(--hygge-gold); }
.signup label { color: #fff; }
.form-row { display: flex; gap: 10px; flex-wrap: wrap; }
.input { flex: 1 1 220px; min-width: 0; border: 0; border-radius: 999px; padding: 14px 20px; font: inherit; font-size: 1rem; background: #fff; color: var(--hygge-navy); }
.form-fine { font-size: .82rem; color: rgba(255,255,255,.7); margin-top: 10px; }
.form-thanks { display: none; background: rgba(255,255,255,.12); border-radius: var(--radius); padding: 18px 20px; font-weight: 600; }
.form-thanks p { color: #fff; margin: 0 0 14px; }
.downloads { display: flex; flex-wrap: wrap; gap: 10px; }
.downloads .btn { background: #fff; color: var(--hygge-forest); }
.downloads .btn:hover { color: var(--hygge-forest); }
.signup.done .form-thanks { display: block; }
.signup.done form { display: none; }
@media (max-width: 760px) { .signup { grid-template-columns: 1fr; padding: 28px 22px; gap: 18px; } }

/* Footer */
.site-footer { margin-top: 40px; color: rgba(255,255,255,.82); }
.site-footer .trees { display: block; line-height: 0; }
.footer-body { background: var(--hygge-navy); padding: 44px 0 28px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; }
.site-footer .logo { color: #fff; }
.site-footer .logo-tag { color: var(--hygge-gold); }
.site-footer h4, .site-footer .footer-h { font-family: var(--font-body); font-size: 12px; line-height: 1.4; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--hygge-nordic); margin-bottom: 12px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer ul a { display: inline-block; padding: 4px 0; }
.site-footer a:hover { color: var(--hygge-gold); }
.social { display: flex; gap: 10px; margin-top: 16px; }
.social a { width: 40px; height: 40px; border-radius: 999px; display: grid; place-items: center; background: rgba(255,255,255,.1); transition: transform .18s, background .18s; }
.social a:hover { transform: translateY(-2px); background: rgba(255,255,255,.18); }
.footer-fine { border-top: 1px solid rgba(255,255,255,.12); margin-top: 32px; padding-top: 18px; font-size: .85rem; color: rgba(255,255,255,.6); display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: space-between; }
@media (max-width: 760px) { .footer-grid { grid-template-columns: 1fr 1fr; } .footer-grid > :first-child { grid-column: 1 / -1; } }

/* Product page */
.crumbs { font-size: .88rem; padding-top: 24px; color: rgba(27,48,59,.78); }
.crumbs a { color: inherit; display: inline-block; padding: 4px 0; }
.product { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; padding: 20px 0 56px; align-items: start; }
.product > * { min-width: 0; }
@media (max-width: 900px) { .product { grid-template-columns: 1fr; gap: 28px; } }
.gallery-main { padding: 18px; background: var(--hygge-linen); border-radius: var(--radius-xl); }
.gallery-main img { width: 100%; max-width: 520px; margin: 0 auto; border-radius: 6px; box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 16px 32px -20px rgba(27,48,59,.45); background: #fff; }
.thumbs { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin-top: 12px; }
.thumb { padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: #fff; cursor: pointer; box-shadow: var(--shadow-card); transition: border-color .15s, transform .15s; }
.thumb:hover { transform: translateY(-2px); }
.thumb[aria-current="true"] { border-color: var(--hygge-teal); }
.thumb img { width: 100%; aspect-ratio: 1275 / 1650; object-fit: cover; }
.gallery-caption { text-align: center; font-size: .9rem; color: rgba(27,48,59,.78); margin: 12px 0 0; min-height: 1.5em; }
.gallery-main img.is-wide { max-width: 100%; }
@media (max-width: 900px) {
  .gallery-main { padding: 12px; }
  .gallery-main img { max-width: 300px; }
  .gallery-main img.is-wide { max-width: 100%; }
  .thumbs { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 2px 6px; }
  .thumb { flex: 0 0 64px; scroll-snap-align: start; }
  .gallery-caption { display: none; }
}
.buy-box { position: sticky; top: 92px; }
.buy-box h1 { font-size: clamp(2.2rem, 5vw, 3.1rem); margin-bottom: .15em; }
.buy-box .script { margin-bottom: 14px; }
.buy-card { padding: 24px; margin: 20px 0; }
.buy-card .btn-block + .btn-block { margin-top: 10px; }
.meta-list { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 10px; font-size: .95rem; }
.meta-list li { display: flex; gap: 10px; align-items: flex-start; }
.meta-list svg { flex: none; color: var(--hygge-teal); margin-top: 3px; }
.made-by { display: flex; align-items: center; gap: 12px; margin: 18px 0 0; padding-top: 16px; border-top: 1px solid rgba(27,48,59,.08); font-size: .92rem; }
.made-by img { width: 40px; height: 40px; flex: none; }
.made-by .script { font-size: 1.15rem; margin: 0; }
.setup-note { font-size: .8rem; color: rgba(27,48,59,.78); text-align: center; margin: 10px 0 0; }
@media (max-width: 900px) { .buy-box { position: static; } }

.inside-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.inside { padding: 20px 22px; display: flex; gap: 14px; align-items: flex-start; }
.inside .num { flex: none; width: 34px; height: 34px; border-radius: 999px; display: grid; place-items: center; background: rgba(78,120,128,.12); color: var(--hygge-teal); font-weight: 800; font-size: .85rem; }
.inside h3 { font-size: 1.1rem; margin-bottom: .2em; }
.inside p { margin: 0; font-size: .92rem; color: rgba(27,48,59,.7); line-height: 1.5; }

.days { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
@media (max-width: 960px) { .days { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 680px) { .days { grid-template-columns: repeat(2, 1fr); gap: 10px; } .days.is-collapsed .day:nth-child(n+9) { display: none; } }
.days-more { display: flex; margin: 18px auto 0; }
@media (min-width: 681px) { .days-more { display: none; } }
.day { padding: 16px 16px 18px; position: relative; }
.day-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.day-num { font-family: var(--font-display); font-size: 1.9rem; line-height: 1; }
.day-icon { width: 32px; height: 32px; border-radius: 999px; display: grid; place-items: center; }
.day-cat { font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.day-title { font-family: var(--font-display); font-size: 1.05rem; line-height: 1.25; margin-top: 2px; }
.legend { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.legend span { font-size: .82rem; font-weight: 700; padding: 5px 12px; border-radius: 999px; }

.formats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
@media (max-width: 860px) { .formats { grid-template-columns: repeat(2, 1fr); } }
.format { padding: 22px; }
.format svg { color: var(--hygge-teal); margin-bottom: 8px; }
.format h3 { font-size: 1.1rem; margin-bottom: .25em; }
.format p { font-size: .92rem; margin: 0; color: rgba(27,48,59,.7); line-height: 1.5; }

.faq { display: grid; gap: 10px; }
.faq details { padding: 0; }
.faq summary { list-style: none; cursor: pointer; padding: 18px 22px; font-weight: 700; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-family: var(--font-display); font-size: 1.5rem; line-height: 1; color: var(--hygge-teal); transition: transform .2s; flex: none; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq .answer { padding: 0 22px 20px; color: rgba(27,48,59,.82); }
.faq .answer p:last-child, .faq .answer ul:last-child { margin-bottom: 0; }
.faq ul { padding-left: 1.2em; margin: 0 0 1em; }

/* About */
.about-hero { padding: 64px 0 24px; }
.values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
@media (max-width: 900px) { .values { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .values { grid-template-columns: 1fr; } }
.value { padding: 24px; }
.value .chip-icon { margin-bottom: 14px; }
.value h3 { margin-bottom: .3em; }
.value p { margin: 0; font-size: .95rem; color: rgba(27,48,59,.72); line-height: 1.55; }
.prose { font-size: 1.08rem; }
.prose h2 { margin-top: 1.4em; }
.prose h3 { margin-top: 1.4em; }
.cta-band { padding: 40px; text-align: center; }
.cta-band p { text-wrap: balance; }
.cta-band .btn + .btn { margin-left: 10px; }
@media (max-width: 640px) { .cta-band .btn { width: 100%; } .cta-band .btn + .btn { margin: 10px 0 0; } }
@media (max-width: 640px) { .cta-band { padding: 28px 20px; } }

/* Woodland clipart */
.chip-art { height: 86px; display: grid; place-items: end center; }
.chip-art img { max-height: 86px; max-width: 100px; width: auto; }
.soon-trees { position: absolute; right: 18px; bottom: 4px; display: flex; align-items: flex-end; gap: 2px; }
.soon-trees img { height: 90px; width: auto; }
.soon-trees img:nth-child(2) { height: 72px; }
.soon-trees img:nth-child(3) { height: 80px; }
.stack img.critter { position: absolute; z-index: 3; width: auto; background: none; box-shadow: none; border-radius: 0; transform: none; filter: drop-shadow(0 8px 14px rgba(27,48,59,.15)); }
.stack .c-fox { right: -2%; bottom: -4%; height: 34%; }
.quote-card { position: relative; }
.quote-owl { float: right; height: 110px; width: auto; margin: -8px -4px 6px 14px; }
.signup-trees { display: flex; align-items: flex-end; gap: 4px; margin-top: 18px; }
.signup-trees img { height: 110px; width: auto; }
.signup-trees img:nth-child(2) { height: 90px; }
.signup-trees img:nth-child(3) { height: 100px; }
.day-art { height: 46px; width: auto; max-width: 64px; object-fit: contain; }
.about-badge { display: block; width: 120px; height: 120px; margin: 0 0 18px; }
.grove { display: flex; align-items: flex-end; gap: 6px; margin-top: 18px; }
.grove img { height: 80px; width: auto; }
.grove img:nth-child(even) { height: 66px; }
.hero-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.hero-tree { height: 96px; width: auto; flex: none; }
.eyebrow-tree { display: block; height: 40px; width: auto; margin-bottom: 10px; }
@media (max-width: 720px) { .stack .c-fox { height: 30%; right: 0; } .quote-owl { height: 80px; } }

/* Launch sale */
.was { color: rgba(27,48,59,.55); font-weight: 400; margin-right: .15em; }
.btn .was { color: inherit; opacity: .7; }
.sale-note { margin: -6px 0 14px; font-size: .9rem; font-weight: 700; color: var(--hygge-clay-ink, #985C3F); }

/* Site structure (Oct 11): home is about hygge and the early years; shop and apps have their own pages */
.badge-forest { background: rgba(55,81,69,.14); color: var(--hygge-forest); }
.scene { position: relative; max-width: 520px; width: 100%; margin: 0 auto; aspect-ratio: 1 / .8; border-radius: 48% 52% 46% 54% / 55% 50% 50% 45%; background: radial-gradient(ellipse at 50% 80%, var(--hygge-linen) 0 60%, rgba(242,240,235,0) 72%), linear-gradient(180deg, rgba(181,201,195,.35), rgba(242,240,235,.6)); display: flex; flex-direction: column; justify-content: flex-end; padding: 0 6% 9%; }
.scene-line { position: absolute; top: 14%; left: 0; right: 0; text-align: center; font-size: clamp(1.3rem, 2.6vw, 1.75rem); margin: 0; }
.scene-row { display: flex; align-items: flex-end; justify-content: center; gap: 2%; }
.scene-row img { width: auto; filter: drop-shadow(0 10px 14px rgba(27,48,59,.14)); }
.scene { container-type: inline-size; }
.scene .s-bear { height: min(190px, 26cqw); }
.scene .s-fox { height: min(210px, 29cqw); }
.scene .s-rabbit { height: min(150px, 21cqw); }
.scene .s-hog { height: min(92px, 13cqw); }
.scene-row .candle { height: min(116px, 16cqw); width: auto; flex-shrink: 0; }
.value-art { height: 76px; width: auto; margin-bottom: 12px; }
.doors { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 860px) { .doors { grid-template-columns: 1fr; } }
.door { display: flex; flex-direction: column; overflow: hidden; text-decoration: none; color: var(--hygge-navy); transition: transform .18s, box-shadow .18s; }
.door:hover { color: var(--hygge-navy); transform: translateY(-3px); box-shadow: 0 14px 30px -18px rgba(27,48,59,.4); }
.door-art { height: 120px; display: flex; align-items: flex-end; justify-content: flex-end; gap: 2px; padding: 0 18px 4px; }
.door-art img { height: 90px; width: auto; } .door-art img:nth-child(2) { height: 72px; } .door-art img:nth-child(3) { height: 80px; }
.door-body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 6px; }
.door-title { font-family: var(--font-display); font-size: 1.45rem; }
.door-text { font-size: .95rem; color: rgba(27,48,59,.78); }
.door-link { font-weight: 700; color: var(--hygge-teal); margin-top: 4px; }
.lines { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
@media (max-width: 900px) { .lines { grid-template-columns: repeat(2, 1fr); gap: 10px; } }
.line { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 22px 12px 20px; text-align: center; text-decoration: none; color: var(--hygge-navy); transition: transform .18s; }
.line:hover { color: var(--hygge-navy); transform: translateY(-3px); }
.line .badge { font-size: 9.5px; padding: 4px 9px; }
.line.is-live { box-shadow: inset 0 0 0 2px rgba(55,81,69,.28); }
.line.is-live:hover { box-shadow: inset 0 0 0 2px var(--hygge-forest); }
.chip-cta { margin-top: 4px; font-weight: 800; font-size: .9rem; color: var(--hygge-forest); text-decoration: underline; text-underline-offset: 3px; }
.line:not(.is-live) .chip-art img { opacity: .7; filter: saturate(.75); }
.line:not(.is-live) .chip-label, .line:not(.is-live) .chip-desc { opacity: .8; }
.jump { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.jump a { font-size: .9rem; font-weight: 700; text-decoration: none; color: var(--hygge-navy); background: #fff; border: 1px solid rgba(27,48,59,.1); border-radius: 999px; padding: 7px 14px; }
.jump a:hover { background: var(--hygge-linen); color: var(--hygge-navy); }
.collections { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
@media (max-width: 760px) { .collections { grid-template-columns: 1fr; } }
.collection { display: flex; gap: 18px; align-items: flex-start; padding: 22px; scroll-margin-top: 96px; }
.collection-art { width: 84px; height: 84px; object-fit: contain; flex: none; }
.collection h3 { margin: 8px 0 .25em; }
.collection p { font-size: .95rem; color: rgba(27,48,59,.78); margin: 0 0 10px; }
#seasonal { scroll-margin-top: 80px; }
.decks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
@media (max-width: 760px) { .decks { grid-template-columns: 1fr; } }
.deck { display: flex; flex-direction: column; overflow: hidden; padding: 0; scroll-margin-top: 96px; }
.deck-media { display: block; background: var(--hygge-linen); }
.deck-media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .4s ease; }
.deck-media:hover img { transform: scale(1.03); }
.deck-body { padding: 24px 26px 28px; display: flex; flex-direction: column; flex: 1; }
.deck-body .badge { align-self: flex-start; margin-bottom: 10px; }
.deck-body h3 { font-size: 1.6rem; margin: 0 0 .15em; }
.deck-body .script { margin: 0 0 10px; }
.deck-body .muted { flex: 1; }
.apps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
@media (max-width: 860px) { .apps { grid-template-columns: 1fr; } }
.app { overflow: hidden; display: flex; flex-direction: column; scroll-margin-top: 96px; }
.app-head { height: 140px; display: grid; place-items: end center; padding-bottom: 6px; }
.app-head img { height: 116px; width: auto; }
.app-body { padding: 22px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.app-name { font-family: var(--font-display); font-size: 2rem; line-height: 1.1; }
.app-sub { font-family: var(--font-script); color: var(--hygge-clay-ink); font-size: 1.2rem; }
.app-body p { color: rgba(27,48,59,.8); margin: 10px 0 12px; }
.app-url { font-size: .85rem; font-weight: 700; color: var(--hygge-teal-ink); margin: auto 0 14px; }
.app .btn { align-self: flex-start; }
.footer-grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; }
@media (max-width: 860px) { .footer-grid { grid-template-columns: 1fr 1fr 1fr; } .footer-grid > :first-child { grid-column: 1 / -1; } }
@media (max-width: 520px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) {
  .scene { padding: 0 4% 10%; }
}

/* ---------- Engagement layer (Oct 12): greeting, candle mode, seasonal sky, today's idea, family jar, Hygge Year ---------- */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.greeting { font-family: var(--font-script); color: var(--hygge-clay-ink); font-size: 1.3rem; margin: 0 0 10px; }
.linkish { background: none; border: 0; padding: 0; font: inherit; color: var(--hygge-teal-ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* Candle in the hero */
.scene { overflow: hidden; }
.candle { height: clamp(70px, 10vw, 96px); width: auto; align-self: flex-end; margin: 0 -2px; overflow: visible; }
.candle .flame { fill: #E0C173; transform-origin: 20px 34px; opacity: 0; transition: opacity .5s; }
.candle .flame-in { fill: #FFF4D6; opacity: 0; transition: opacity .5s; transform-origin: 20px 34px; }
.candle .glow { fill: rgba(224,193,115,.35); opacity: 0; transition: opacity .8s; filter: blur(4px); }
.candle-on .candle .flame, .candle-on .candle .flame-in { opacity: 1; }
.candle-on .candle .glow { opacity: 1; }
.candle-on .candle .flame { animation: flicker 2.6s ease-in-out infinite; }
.candle-on .candle .flame-in { animation: flicker 1.9s ease-in-out infinite reverse; }
@keyframes flicker { 0%,100% { transform: scale(1,1) rotate(0); } 25% { transform: scale(.94,1.06) rotate(-2deg); } 50% { transform: scale(1.04,.96) rotate(1.5deg); } 75% { transform: scale(.97,1.04) rotate(-1deg); } }
.candle-btn { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 3; display: inline-flex; align-items: center; gap: 8px; border: 0; cursor: pointer; border-radius: 999px; padding: 9px 16px; font: 700 .9rem var(--font-body); background: rgba(255,255,255,.9); color: var(--hygge-navy); box-shadow: 0 6px 18px -10px rgba(27,48,59,.45); }
.candle-btn .dot { width: 10px; height: 10px; border-radius: 999px; background: #c9c2b4; transition: background .4s, box-shadow .4s; }
.candle-on .candle-btn .dot { background: #E0C173; box-shadow: 0 0 0 4px rgba(224,193,115,.35), 0 0 14px 4px rgba(224,193,115,.6); }
.candle-float { position: fixed; left: auto; right: 16px; bottom: 16px; transform: none; z-index: 60; }
/* Candle mode: the room dims and warms */
html.candle-on body::after { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 45; background: radial-gradient(ellipse 80% 70% at 50% 35%, rgba(255,196,120,.08), rgba(70,40,15,.22) 70%, rgba(40,22,8,.36)); animation: room 6s ease-in-out infinite; }
html.candle-on .scene { background: radial-gradient(ellipse at 42% 70%, rgba(255,214,150,.65) 0 30%, rgba(242,240,235,.9) 62%, rgba(242,240,235,0) 74%), linear-gradient(180deg, rgba(196,137,106,.25), rgba(242,240,235,.6)); }
@keyframes room { 0%,100% { opacity: 1; } 50% { opacity: .92; } }
@media (prefers-reduced-motion: reduce) { .candle-on .candle .flame, .candle-on .candle .flame-in, html.candle-on body::after { animation: none; } }

/* Seasonal sky (falls gently inside the hero blob) */
.sky { position: absolute; inset: 0; pointer-events: none; }
.sky span { position: absolute; top: -8%; width: 8px; height: 8px; border-radius: 999px; animation: fall linear infinite; transform: scale(var(--s, 1)); }
.sky-snow span { background: #fff; box-shadow: 0 0 5px 1px rgba(78,120,128,.35); }
.sky-leaf span { width: 11px; height: 7px; border-radius: 0 80% 0 80%; background: var(--hygge-clay); opacity: .75; }
.sky-leaf span:nth-child(3n) { background: var(--hygge-gold); }
.sky-leaf span:nth-child(4n) { background: #B9714E; }
.sky-petal span { width: 9px; height: 7px; border-radius: 60% 40% 60% 40%; background: var(--hygge-rose); opacity: .85; }
.sky-firefly span { width: 5px; height: 5px; background: #F4DC8A; box-shadow: 0 0 8px 3px rgba(224,193,115,.6); animation-name: float; }
@keyframes fall { 0% { transform: translate(0,0) rotate(0) scale(var(--s,1)); } 50% { transform: translate(18px,55vh) rotate(160deg) scale(var(--s,1)); } 100% { transform: translate(-10px,110vh) rotate(320deg) scale(var(--s,1)); } }
@keyframes float { 0% { top: 100%; opacity: 0; } 20% { opacity: 1; } 100% { top: 10%; opacity: 0; transform: translateX(20px); } }

/* Today's idea + family jar */
.tonight-wrap { padding-top: 24px; }
.tonight { display: grid; grid-template-columns: 1.15fr .85fr; gap: 20px; align-items: stretch; }
@media (max-width: 900px) { .tonight { grid-template-columns: 1fr; } }
.idea { padding: 30px 32px; background: linear-gradient(160deg, #fff 55%, rgba(224,193,115,.16)); }
.idea-main { display: flex; gap: 18px; align-items: flex-start; justify-content: space-between; min-height: 150px; }
.idea-title { font-size: clamp(1.6rem, 3vw, 2.15rem); margin-bottom: .3em; }
.idea-how { font-size: 1.08rem; margin-bottom: .4em; }
.idea-meta { font-size: .85rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--hygge-clay-ink); margin: 0; }
.idea-art { height: 110px; width: auto; flex: none; filter: drop-shadow(0 8px 12px rgba(27,48,59,.12)); }
.idea.flip .idea-main { animation: flipin .45s ease; }
@keyframes flipin { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.filters { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 14px; }
.filter-label { font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: rgba(27,48,59,.6); width: 56px; }
.filters button { border: 1px solid rgba(27,48,59,.14); background: #fff; color: var(--hygge-navy); border-radius: 999px; padding: 6px 13px; font: 700 .88rem var(--font-body); cursor: pointer; }
.filters button[aria-pressed="true"] { background: var(--hygge-navy); border-color: var(--hygge-navy); color: #fff; }
.idea-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.idea-actions .btn[disabled] { background: var(--hygge-forest); opacity: .85; cursor: default; transform: none; box-shadow: none; }
.idea-fine { font-size: .84rem; color: rgba(27,48,59,.7); margin: 14px 0 0; }
.jar-card { padding: 30px 30px 24px; }
.jar-card h2 { font-size: 1.7rem; }
.jar-row { display: flex; gap: 22px; align-items: flex-end; margin: 6px 0 16px; }
.jar { width: 118px; flex: none; }
.jar-lid { height: 14px; margin: 0 14px; border-radius: 6px 6px 3px 3px; background: var(--hygge-clay); }
.jar-body { position: relative; height: 150px; border: 3px solid rgba(78,120,128,.45); border-top-width: 2px; border-radius: 16px 16px 30px 30px; background: linear-gradient(90deg, rgba(181,201,195,.18), rgba(255,255,255,.6) 40%, rgba(181,201,195,.22)); overflow: hidden; }
.jar-slips span { position: absolute; width: 18px; height: 11px; border-radius: 2px; box-shadow: 0 1px 1px rgba(0,0,0,.12); }
.jar-slips span.drop { animation: drop .7s cubic-bezier(.3,1.4,.6,1); }
@keyframes drop { from { translate: 0 -150px; } to { translate: 0 0; } }
.jar-side { min-width: 0; flex: 1; }
.jar-count { font-family: var(--font-script); color: var(--hygge-clay-ink); font-size: 1.25rem; line-height: 1.25; margin: 0 0 8px; }
.jar-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; font-size: .9rem; }
.jar-list li { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px dashed rgba(27,48,59,.15); padding: 3px 0; }
.jar-list li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jar-list small { color: rgba(27,48,59,.6); flex: none; }
.jar-form { display: flex; gap: 8px; }
.jar-form .input { background: var(--hygge-linen); padding: 12px 18px; }

/* The Hygge Year */
.year-wrap { background: linear-gradient(180deg, var(--hygge-page), rgba(181,201,195,.22)); }
.year { max-width: 880px; margin: 0 auto; }
.year-tabs { display: grid; grid-template-columns: repeat(12, 1fr); gap: 6px; margin-bottom: 18px; }
.month { position: relative; border: 0; background: #fff; border-radius: 999px; aspect-ratio: 1; cursor: pointer; font: 800 .8rem var(--font-body); letter-spacing: .04em; color: var(--hygge-navy); box-shadow: var(--shadow-card); transition: transform .15s, background .2s; }
.month:hover { transform: translateY(-2px); }
.month[aria-pressed="true"] { background: var(--hygge-navy); color: #fff; }
.month.is-now::after { content: ""; position: absolute; left: 50%; bottom: -9px; width: 6px; height: 6px; margin-left: -3px; border-radius: 999px; background: var(--hygge-gold); }
@media (max-width: 640px) { .year-tabs { grid-template-columns: repeat(6, 1fr); row-gap: 14px; } }
.year-panel { padding: 30px 34px; }
.year-panel h3 { font-size: 1.8rem; }
.year-panel.flip { animation: flipin .4s ease; }
.year-try { background: var(--hygge-linen); border-radius: 14px; padding: 12px 16px; }
.year-try .script { font-size: 1.2rem; margin-right: 4px; }
.year-link { font-weight: 700; }

/* A note for the grown-ups */
.grownups { padding-top: 24px; }
.promises { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.promises li { display: flex; gap: 14px; align-items: flex-start; background: #fff; border-radius: var(--radius); padding: 16px 18px; box-shadow: var(--shadow-card); }
.promises b { display: block; font-family: var(--font-display); font-weight: 400; font-size: 1.15rem; }
.promises span { font-size: .93rem; color: rgba(27,48,59,.75); }
.p-icon { flex: none; width: 38px; height: 38px; border-radius: 999px; display: grid; place-items: center; background: rgba(224,193,115,.3); color: var(--hygge-clay-ink); font-size: 1.1rem; }

/* Gentle reveal as sections scroll into view */
.reveal { opacity: 0; transform: translateY(14px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } .sky { display: none; } }
.scene { padding-bottom: 66px; }
@media (max-width: 520px) { .scene { padding-bottom: 60px; } }
.scene { overflow: visible; }
.sky { border-radius: inherit; overflow: hidden; }
.tonight > * { min-width: 0; }
@media (max-width: 520px) { .idea, .jar-card { padding: 24px 20px; } .idea-art { height: 80px; } .jar { width: 96px; } .jar-body { height: 124px; } .filter-label { width: 100%; } }
.candle { height: clamp(80px, 12vw, 116px); }
.jar-list li { min-width: 0; } .jar-list li span { min-width: 0; flex: 1; }
.candle-btn { white-space: nowrap; }

/* What hygge means (Katie's definition, Oct 12) */
.meaning-head { display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: center; margin-bottom: 32px; }
@media (max-width: 860px) { .meaning-head { grid-template-columns: 1fr; gap: 20px; } }
.definition { margin: 0; padding: 30px; background: linear-gradient(160deg, #fff 50%, rgba(221,175,161,.18)); }
.definition .script { font-size: 1.55rem; line-height: 1.3; margin: 0; }
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
@media (max-width: 860px) { .pillars { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .pillars { grid-template-columns: 1fr; } }
.pillar { padding: 22px 24px; }
.pillar .chip-icon { margin-bottom: 12px; }
.pillar h3 { font-size: 1.25rem; margin-bottom: .25em; }
.pillar p { margin: 0; font-size: .95rem; color: rgba(27,48,59,.75); line-height: 1.55; }
.meaning-note { max-width: 760px; margin: 28px auto 0; text-align: center; color: rgba(27,48,59,.8); }
.meaning-note a { font-weight: 700; white-space: nowrap; }
.longread { font-size: 1.1rem; }
.longread h2 { margin-top: 1.6em; font-size: 1.8rem; }
.longread .lead-def { font-family: var(--font-script); color: var(--hygge-clay-ink); font-size: 1.7rem; line-height: 1.3; margin: 1.2em 0; }
.contrast { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 1.2em 0; }
@media (max-width: 640px) { .contrast { grid-template-columns: 1fr; } }
.contrast div { padding: 20px 22px; }
.contrast h3 { font-size: 1.1rem; margin-bottom: .4em; }
.contrast ul { margin: 0; padding-left: 1.1em; font-size: .98rem; color: rgba(27,48,59,.8); }
.longread .pillars { margin: 1em 0 1.4em; }

/* ---------- Seasonal hero (Oct 15): animals and set dressing change with the season (assets/seasons.js) ---------- */
.scene-row { position: relative; z-index: 1; }
.scene .scene-line { z-index: 2; }
/* Winter: cool sky and a bank of snow under the animals */
html:not(.candle-on) .scene.season-winter, html:not(.candle-on) .scene.season-december { background: radial-gradient(ellipse at 50% 82%, #F7F7F4 0 55%, rgba(247,247,244,0) 72%), linear-gradient(180deg, rgba(158,186,196,.5), rgba(226,234,236,.7)); }
.drift { position: absolute; z-index: -1; left: -6%; right: -6%; bottom: -16px; height: 46px; border-radius: 50%; background: radial-gradient(ellipse at 50% 30%, #fff 0 55%, #EEF2F3 75%, rgba(238,242,243,0) 100%); }
.drift::before, .drift::after { content: ""; position: absolute; top: -10px; width: 34%; height: 40px; border-radius: 50%; background: inherit; }
.drift::before { left: 6%; } .drift::after { right: 4%; }
/* Spring: a little forest grows up behind the animals */
.forest { position: absolute; left: 50%; width: 62%; margin-left: -31%; bottom: 46px; pointer-events: none; display: flex; justify-content: center; }
.forest img { width: 100%; height: auto; transform: scale(.6, 0); transform-origin: 50% 100%; opacity: .42; filter: saturate(.75) blur(.4px); animation: tree-grow 2.2s cubic-bezier(.2,.8,.3,1.05) .2s forwards; }
html.candle-on .forest img { opacity: .3; }
@media (max-width: 520px) { .forest { width: 54%; margin-left: -27%; bottom: 42px; } }
@keyframes tree-grow { to { transform: none; } }
/* Summer: a sunny sky by day; lighting the fireflies turns the hero and the whole page into a summer night */
.scene.season-summer { background: radial-gradient(ellipse at 50% 85%, rgba(255,248,230,.9) 0 30%, rgba(255,248,230,0) 66%), linear-gradient(180deg, rgba(150,196,214,.6) 0%, rgba(206,226,224,.55) 45%, rgba(248,236,206,.6)); transition: background .8s; }
.sun { position: absolute; top: 31%; right: 13%; width: 11%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, #FFE9A8 0 52%, #F4CF6B 70%, rgba(244,207,107,0) 72%); box-shadow: 0 0 0 10px rgba(255,226,140,.25), 0 0 46px 18px rgba(255,214,120,.45); transition: opacity .8s, transform .8s; }
.season-summer .scene-line { left: 16%; right: 16%; top: 9%; transition: color .8s; }
.season-summer .sky span { display: none; }
html.fireflies-on .scene.season-summer { background: radial-gradient(ellipse at 50% 92%, rgba(255,214,150,.3) 0 26%, rgba(242,240,235,0) 60%), linear-gradient(180deg, rgba(22,34,58,.94) 0%, rgba(34,52,78,.9) 40%, rgba(60,74,96,.82) 70%, rgba(110,112,120,.6)); }
html.fireflies-on .season-summer .sun { opacity: 0; transform: translateY(40%); }
html.fireflies-on .season-summer .scene-line { color: #FBF3E4; text-shadow: 0 1px 10px rgba(10,16,30,.5); }
html.fireflies-on .season-summer .sky span { display: block; }
.sky-firefly span { width: 6px; height: 6px; background: #FFE9A8; box-shadow: 0 0 10px 4px rgba(240,205,110,.7); animation-name: float, blink; animation-timing-function: linear, ease-in-out; }
.fireflies-on [data-fireflies] .dot { background: #FFE9A8; box-shadow: 0 0 0 4px rgba(240,205,110,.35), 0 0 14px 4px rgba(240,205,110,.7); }
/* Firefly night across the whole page, like candle mode */
html.fireflies-on body::before { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 45; background: radial-gradient(ellipse 90% 80% at 50% 30%, rgba(30,44,80,.16), rgba(16,24,48,.42)); }
.page-fireflies { position: fixed; inset: 0; pointer-events: none; z-index: 46; overflow: hidden; }
.page-fireflies span { position: absolute; width: 6px; height: 6px; border-radius: 999px; background: #FFE9A8; box-shadow: 0 0 12px 5px rgba(240,205,110,.6); animation: wander linear infinite, blink ease-in-out infinite; }
@keyframes wander { 0% { transform: translate(0, 0); } 25% { transform: translate(24px, -30px); } 50% { transform: translate(-10px, -56px); } 75% { transform: translate(-30px, -22px); } 100% { transform: translate(0, 0); } }
@keyframes blink { 0%, 100% { opacity: .15; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .page-fireflies span { animation: none; opacity: .85; } .scene.season-summer, .sun { transition: none; } }
@media (prefers-reduced-motion: reduce) {
  .forest img { animation: none; transform: none; }
}
.scene-line .nowrap { white-space: nowrap; }
