:root {
  --ink: #38292b;
  --ink-soft: #6a5053;
  --wine: #963e52;
  --wine-deep: #642c3d;
  --support: #3d7567;
  --support-deep: #28584f;
  --coral: #e97869;
  --coral-soft: #f4aaa0;
  --rose: #f9e5e1;
  --rose-2: #fff2ed;
  --cream: #fffaf2;
  --paper: #fffefa;
  --gold: #bd7d32;
  --warm-sun: #edb65f;
  --warm-honey: #ffe1a9;
  --warm-blush: #f7cbc5;
  --warm-mint: #dcece5;
  --warm-shadow: 0 24px 64px rgba(91, 43, 50, .12);
  --warm-shadow-hover: 0 30px 78px rgba(91, 43, 50, .17);
  --warm-ease: cubic-bezier(.2, .78, .2, 1);
}

html { background: #fff8ef; }

body {
  background:
    radial-gradient(circle at 8% 7%, rgba(237, 182, 95, .12), transparent 25rem),
    radial-gradient(circle at 94% 20%, rgba(233, 120, 105, .1), transparent 28rem),
    var(--cream);
}

::selection { color: #fff; background: var(--wine); }

.topbar {
  overflow: hidden;
  background: linear-gradient(115deg, #5a2938 0%, #82364a 48%, #6b3041 100%);
  box-shadow: inset 0 -1px rgba(255, 255, 255, .1);
}

.topbar::after {
  position: absolute;
  inset: 0 auto 0 -28%;
  width: 26%;
  background: linear-gradient(100deg, transparent, rgba(255, 240, 210, .12), transparent);
  content: "";
  pointer-events: none;
  transform: skewX(-18deg);
  animation: warm-topbar-sheen 12s ease-in-out infinite;
}

@keyframes warm-topbar-sheen {
  0%, 74% { translate: 0 0; }
  100% { translate: 520% 0; }
}

.site-header {
  background: linear-gradient(110deg, rgba(255, 253, 248, .95), rgba(255, 246, 237, .92));
  border-bottom-color: rgba(145, 65, 79, .13);
  box-shadow: 0 7px 28px rgba(86, 46, 51, .045);
}

.site-header.is-scrolled {
  background: rgba(255, 251, 245, .985);
  box-shadow: 0 13px 40px rgba(86, 46, 51, .12);
}

.brand-mark {
  position: relative;
  overflow: visible;
  border-color: rgba(150, 62, 82, .2);
  box-shadow: 0 7px 24px rgba(130, 54, 74, .12);
}

.brand-mark::after {
  position: absolute;
  inset: -.3rem;
  border: 1px solid rgba(233, 120, 105, .22);
  border-radius: 50%;
  content: "";
  pointer-events: none;
  animation: warm-brand-ring 4.8s ease-in-out infinite;
}

.brand-mark img {
  border-radius: 50%;
  transition: scale .45s var(--warm-ease), rotate .45s var(--warm-ease);
}

.brand:hover .brand-mark img { rotate: -2deg; scale: 1.045; }

@keyframes warm-brand-ring {
  0%, 100% { opacity: .35; scale: .94; }
  50% { opacity: .85; scale: 1.05; }
}

.brand-text strong { color: #4b3035; letter-spacing: .01em; }

.nav-links > a {
  position: relative;
  transition: color .25s ease, background .25s ease, translate .25s var(--warm-ease);
}

.nav-links > a:hover { translate: 0 -1px; }

.nav-links > a.header-call {
  background: linear-gradient(135deg, var(--wine), #b24f5d);
  border: 1px solid rgba(255, 255, 255, .18);
  box-shadow: 0 9px 24px rgba(111, 32, 51, .2);
}

.access-btn {
  background: rgba(255, 255, 255, .72);
  border-color: rgba(105, 55, 62, .16);
  transition: background .25s ease, color .25s ease, border-color .25s ease, translate .25s ease;
}

.access-btn:hover:not(:disabled) { border-color: rgba(150, 62, 82, .35); translate: 0 -1px; }
.access-btn[aria-pressed="true"] { background: linear-gradient(135deg, var(--support), #51897a); }

.hero,
.page-hero {
  isolation: isolate;
  background:
    radial-gradient(circle at 78% 18%, rgba(255, 218, 151, .38), transparent 22rem),
    radial-gradient(circle at 10% 80%, rgba(244, 170, 160, .2), transparent 27rem),
    linear-gradient(138deg, #fffdf8 0%, #fff3e8 56%, #fce8e5 100%) !important;
}

.hero::before,
.page-hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(105deg, transparent 18%, rgba(255, 255, 255, .36) 42%, transparent 67%),
    repeating-linear-gradient(115deg, transparent 0 76px, rgba(255, 255, 255, .07) 77px 78px);
  content: "";
  pointer-events: none;
  background-size: 180% 100%, auto;
  animation: warm-hero-light 18s ease-in-out infinite alternate;
}

@keyframes warm-hero-light {
  to { background-position: 100% 0, 0 0; }
}

.hero h1,
.page-hero h1 {
  color: #4b3036;
  text-shadow: 0 2px rgba(255, 255, 255, .62);
}

.hero-slogan span {
  color: transparent;
  background: linear-gradient(105deg, var(--wine-deep), var(--coral), var(--wine));
  background-clip: text;
  -webkit-background-clip: text;
}

.eyebrow { color: #8d3c4e; }
.eyebrow::before {
  background: linear-gradient(90deg, var(--coral), var(--warm-sun));
  box-shadow: 0 0 10px rgba(233, 120, 105, .2);
  transform-origin: left;
  animation: warm-eyebrow-breathe 5.5s ease-in-out infinite;
}

@keyframes warm-eyebrow-breathe {
  0%, 100% { scale: .82 1; opacity: .7; }
  50% { scale: 1.08 1; opacity: 1; }
}

.hero-art,
.page-mark,
.needs-logo,
.identity-logo {
  animation: warm-art-float 8s ease-in-out infinite;
}

@keyframes warm-art-float {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -.45rem; }
}

.hero-card,
.page-mark,
.needs-logo,
.identity-logo {
  border-color: rgba(150, 62, 82, .16);
  box-shadow: 0 28px 70px rgba(107, 50, 59, .14), 0 0 0 .5rem rgba(255, 255, 255, .35);
}

.page-mark {
  background: linear-gradient(145deg, rgba(255,255,255,.92), rgba(255,246,238,.82));
  animation: warm-art-float 8s ease-in-out infinite, warm-frame-morph 13s ease-in-out infinite alternate;
}

@keyframes warm-frame-morph {
  to { border-radius: 52% 48% 42% 58% / 49% 57% 43% 51%; }
}

.hero-note {
  background: linear-gradient(135deg, #673043, #954156);
  box-shadow: 0 18px 45px rgba(76, 31, 39, .25);
  animation: warm-note-sway 7s ease-in-out infinite;
}

@keyframes warm-note-sway {
  0%, 100% { translate: 0 0; rotate: 0deg; }
  50% { translate: 0 -.25rem; rotate: -.5deg; }
}

.btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: .85rem;
  box-shadow: 0 9px 24px rgba(95, 47, 54, .1);
  transition: translate .28s var(--warm-ease), box-shadow .28s ease, filter .28s ease;
}

.btn::after {
  position: absolute;
  z-index: -1;
  inset: 0 auto 0 -45%;
  width: 34%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent);
  content: "";
  pointer-events: none;
  transform: skewX(-18deg);
  transition: translate .55s var(--warm-ease);
}

.btn:hover { filter: saturate(1.04); translate: 0 -3px; box-shadow: 0 16px 34px rgba(95, 47, 54, .17); }
.btn:hover::after { translate: 450% 0; }
.btn:active { translate: 0 0; }

.btn-primary,
.btn-help { background: linear-gradient(135deg, var(--wine), #b65360); }
.btn-support { background: linear-gradient(135deg, var(--support), #4d8979); }
.btn-secondary { background: linear-gradient(145deg, #fffefa, #fff4e9); }

.trust-strip,
.perspective-control,
.planner-shell,
.handoff-sheet,
.ai-assistant,
.ai-side-card {
  border-color: rgba(131, 66, 75, .15);
  box-shadow: var(--warm-shadow);
}

.perspective-control,
.planner-shell,
.ai-assistant,
.handoff-sheet {
  background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,249,241,.9));
  backdrop-filter: blur(18px);
}

.perspective-tab,
.stage-tab,
.ai-choice,
.impact-preset,
.map-region-button {
  transition: translate .28s var(--warm-ease), box-shadow .28s ease, background .28s ease, border-color .28s ease;
}

.perspective-tab:hover,
.stage-tab:hover,
.ai-choice:hover,
.impact-preset:hover,
.map-region-button:hover {
  translate: 0 -2px;
  box-shadow: 0 12px 28px rgba(91, 43, 50, .1);
}

.section.alt,
.guide-preview-section,
.ai-home-section {
  background:
    radial-gradient(circle at 92% 15%, rgba(237, 182, 95, .13), transparent 24rem),
    linear-gradient(145deg, #fffdf8, #fff4e9);
}

.section.rose,
.story-section,
.needs {
  background:
    radial-gradient(circle at 8% 75%, rgba(255,255,255,.48), transparent 23rem),
    linear-gradient(145deg, #fce9e5, #fff5ed);
}

.section-sunlit,
.resources,
.transparency,
.hope-section {
  background:
    radial-gradient(circle at 86% 20%, rgba(244, 183, 91, .17), transparent 25rem),
    linear-gradient(145deg, #fffaf0, #fffefa);
}

.impact {
  background:
    radial-gradient(circle at 86% 15%, rgba(245, 185, 102, .16), transparent 24rem),
    linear-gradient(135deg, #603143, #7d3c50 55%, #58323d) !important;
}

.process {
  background:
    radial-gradient(circle at 10% 90%, rgba(237, 182, 95, .12), transparent 22rem),
    linear-gradient(135deg, #244f49, #386e62 55%, #294a45) !important;
}

.closing,
.cta-band {
  background:
    radial-gradient(circle at 84% 16%, rgba(255, 224, 169, .13), transparent 22rem),
    linear-gradient(125deg, #6a3042, #944257 55%, #713548) !important;
}

:where(.card, .trust-card, .metric, .resource-card, .film-card, .step-item, .guide-stage-card, .signal-card, .report-row, .identity-list, .production-script) {
  border-color: rgba(117, 59, 68, .14);
  box-shadow: 0 13px 38px rgba(82, 45, 50, .075);
}

:where(.card, .trust-card, .metric, .resource-card, .film-card, .step-item, .guide-stage-card, .signal-card, .report-row) {
  background: linear-gradient(148deg, rgba(255,255,255,.96), rgba(255,249,241,.9));
}

.film-card { overflow: hidden; }
.film-card .film-poster { position: relative; }
.film-card .film-poster::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.13) 45%, transparent 65%);
  background-size: 240% 100%;
  content: "";
  pointer-events: none;
  animation: warm-film-light 10s ease-in-out infinite;
}

@keyframes warm-film-light {
  0%, 65% { background-position: 180% 0; }
  100% { background-position: -80% 0; }
}

.warm-spotlight-card {
  --spot-x: 50%;
  --spot-y: 50%;
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.warm-spotlight-card::after {
  position: absolute;
  z-index: 0;
  inset: 0;
  background: radial-gradient(circle 11rem at var(--spot-x) var(--spot-y), rgba(255, 214, 142, .28), transparent 72%);
  content: "";
  opacity: 0;
  pointer-events: none;
  transition: opacity .32s ease;
}

.warm-spotlight-card:hover::after { opacity: 1; }
.warm-spotlight-card:focus-within::after { opacity: .75; }

.warm-spotlight-card > * { position: relative; z-index: 1; }

.metric-value,
.resource-number,
.ai-capability-number {
  text-shadow: 0 5px 16px rgba(150, 62, 82, .1);
}

.notice {
  background: linear-gradient(145deg, #fff8f4, #fffdf9);
  border-color: rgba(150, 62, 82, .2);
  box-shadow: 0 14px 36px rgba(98, 48, 56, .08);
}

.notice.safe { background: linear-gradient(145deg, #f0f8f4, #fffdf9); }

.faq-list details,
.ai-disclosure,
.production-script {
  overflow: clip;
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(255,248,239,.9));
  border-color: rgba(118, 59, 68, .15);
  box-shadow: 0 11px 30px rgba(82, 45, 50, .07);
  transition: border-color .3s ease, box-shadow .3s ease, translate .3s var(--warm-ease);
}

.faq-list details:hover,
.ai-disclosure:hover,
.production-script:hover { border-color: rgba(233, 120, 105, .35); translate: 0 -2px; }

.faq-list details[open],
.ai-disclosure[open],
.production-script[open] {
  border-color: rgba(150, 62, 82, .25);
  box-shadow: 0 18px 44px rgba(82, 45, 50, .11);
}

.faq-list summary,
.ai-disclosure summary,
.production-script > summary { position: relative; padding-right: 3.2rem; }

.faq-list summary::after,
.ai-disclosure summary::after,
.production-script > summary::after {
  position: absolute;
  right: 1rem;
  top: 50%;
  display: grid;
  width: 1.7rem;
  height: 1.7rem;
  place-items: center;
  color: var(--wine);
  background: var(--rose-2);
  border-radius: 50%;
  content: "+";
  font-family: system-ui, sans-serif;
  font-size: 1.1rem;
  line-height: 1;
  translate: 0 -50%;
  transition: rotate .3s var(--warm-ease), background .3s ease;
}

.faq-list details[open] summary::after,
.ai-disclosure[open] summary::after,
.production-script[open] > summary::after { background: var(--warm-honey); rotate: 45deg; }

.story-article { position: relative; }
.story-article::before {
  position: absolute;
  left: max(1rem, calc((100% - var(--max)) / 2));
  top: 5rem;
  width: 3px;
  height: 4rem;
  background: linear-gradient(var(--coral), var(--warm-sun));
  border-radius: 99px;
  content: "";
  opacity: .6;
}

.article-body blockquote {
  position: relative;
  background: linear-gradient(145deg, #fff0e9, #fff8ef);
  border-left-color: var(--coral);
  box-shadow: inset 0 0 0 1px rgba(150, 62, 82, .08), 0 14px 34px rgba(91, 43, 50, .07);
}

.article-body blockquote::before {
  position: absolute;
  left: .8rem;
  top: -.45rem;
  color: rgba(150, 62, 82, .18);
  content: "“";
  font-family: Georgia, serif;
  font-size: 4rem;
  line-height: 1;
}

.ai-workspace {
  background:
    radial-gradient(circle at 88% 12%, rgba(243, 183, 94, .28), transparent 22rem),
    radial-gradient(circle at 8% 75%, rgba(61, 117, 103, .14), transparent 28rem),
    linear-gradient(145deg, #fffdf9 0%, #fff3e5 52%, #fbe7e5 100%);
}

.ai-assistant { box-shadow: 0 32px 90px rgba(83, 43, 50, .15); }
.ai-message.assistant { background: linear-gradient(145deg, #fff7ed, #fff2e5); }
.ai-message.user { background: linear-gradient(135deg, var(--support), #4a8174); }

.ai-assistant-float {
  background: linear-gradient(145deg, rgba(255,253,247,.98), rgba(255,240,228,.96));
  border-color: rgba(150, 62, 82, .22);
  box-shadow: 0 18px 50px rgba(76, 36, 43, .21), 0 0 0 .35rem rgba(255,255,255,.35);
}

.ai-assistant-float::before {
  position: absolute;
  inset: -.4rem;
  border: 1px solid rgba(233, 120, 105, .13);
  border-radius: 1.25rem;
  content: "";
  pointer-events: none;
  animation: warm-assistant-ring 4s ease-in-out infinite;
}

@keyframes warm-assistant-ring {
  0%, 100% { opacity: .25; scale: .96; }
  50% { opacity: .8; scale: 1.035; }
}

.site-footer,
footer:not(.gratitude-dialog) {
  background:
    radial-gradient(circle at 12% 15%, rgba(233, 120, 105, .09), transparent 22rem),
    linear-gradient(135deg, #312329, #493038 55%, #302329) !important;
}

.footer-brand img { box-shadow: 0 0 0 .35rem rgba(255,255,255,.06), 0 10px 28px rgba(0,0,0,.18); }
.footer-links a { transition: color .25s ease, translate .25s ease; }
.footer-links a:hover { color: #ffe1a9; translate: .18rem 0; }

input[type="range"] { accent-color: var(--wine); }

.access-btn.ai-warm-toggle {
  min-width: 5.7rem;
  padding-inline: .62rem;
  color: #6d3342;
  background: linear-gradient(135deg, rgba(255, 248, 236, .96), rgba(255, 228, 216, .9));
  border-color: rgba(150, 62, 82, .22);
  white-space: nowrap;
}

.access-btn.ai-warm-toggle[aria-pressed="true"] {
  color: #fff;
  background: linear-gradient(135deg, #9b3f54, #d66f68);
  border-color: #9b3f54;
  box-shadow: 0 7px 18px rgba(118, 44, 62, .2);
}

.ai-warm-banner[hidden] { display: none !important; }

.ai-warm-banner {
  position: relative;
  z-index: 6;
  padding: .82rem 0;
  color: #53343b;
  background:
    radial-gradient(circle at 14% 20%, rgba(255, 255, 255, .72), transparent 12rem),
    linear-gradient(108deg, #fff4dc, #ffe9df 48%, #f8e1e5);
  border-bottom: 1px solid rgba(150, 62, 82, .14);
  box-shadow: inset 0 1px rgba(255, 255, 255, .72), 0 8px 26px rgba(92, 45, 53, .07);
}

.ai-warm-banner-inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .9rem;
}

.ai-warm-banner-mark {
  display: grid;
  width: 2.65rem;
  height: 2.65rem;
  place-items: center;
  color: #fff;
  background: linear-gradient(145deg, #ef8b76, #a64258);
  border-radius: .92rem;
  box-shadow: 0 8px 22px rgba(132, 51, 69, .2), 0 0 0 .35rem rgba(255, 255, 255, .38);
  font-family: Georgia, serif;
  font-size: 1.45rem;
}

.ai-warm-banner-copy {
  display: grid;
  gap: .15rem;
  line-height: 1.55;
}

.ai-warm-banner-copy strong {
  color: #6c3041;
  font-family: "Noto Serif TC", serif;
  font-size: 1rem;
}

.ai-warm-banner-copy span { color: #685054; font-size: .86rem; }

.ai-warm-banner-actions {
  display: flex;
  align-items: center;
  gap: .45rem;
}

.ai-warm-banner-link,
.ai-warm-banner-close {
  min-height: 2.45rem;
  padding: .58rem .82rem;
  border-radius: .72rem;
  font-size: .8rem;
  font-weight: 850;
  text-decoration: none;
  white-space: nowrap;
}

.ai-warm-banner-link {
  display: inline-flex;
  align-items: center;
  color: #fff;
  background: linear-gradient(135deg, #963e52, #bd5661);
  box-shadow: 0 8px 20px rgba(122, 43, 61, .18);
}

.ai-warm-banner-link:hover { color: #fff; background: #7d3145; }

.ai-warm-banner-close {
  color: #68434b;
  background: rgba(255, 255, 255, .67);
  border: 1px solid rgba(119, 68, 76, .18);
  cursor: pointer;
}

.ai-warm-banner-close:hover { background: #fff; border-color: rgba(150, 62, 82, .35); }

body.ai-warm-mode {
  --cream: #fff8ed;
  --paper: #fffdf8;
  background:
    radial-gradient(circle at 7% 8%, rgba(246, 190, 102, .2), transparent 28rem),
    radial-gradient(circle at 92% 24%, rgba(236, 132, 119, .16), transparent 30rem),
    #fff8ed;
}

body.ai-warm-mode .site-header {
  background: linear-gradient(110deg, rgba(255, 252, 244, .98), rgba(255, 238, 228, .96));
  border-bottom-color: rgba(150, 62, 82, .2);
}

body.ai-warm-mode :where(.card, .trust-card, .metric, .resource-card, .film-card, .step-item, .guide-stage-card, .signal-card, .report-row, .trust-item, .need-item, .ai-capability-card) {
  border-color: rgba(163, 79, 91, .18);
  box-shadow: 0 22px 56px rgba(103, 48, 57, .1);
}

body.ai-warm-mode .ai-assistant-float {
  border-color: rgba(150, 62, 82, .38);
  box-shadow: 0 20px 58px rgba(91, 36, 48, .25), 0 0 0 .45rem rgba(255, 230, 215, .34);
}

body.ai-warm-mode .ai-assistant-float-heart {
  background: linear-gradient(145deg, #f08b72, #9f3d55);
  box-shadow: 0 0 0 .42rem rgba(238, 137, 115, .13);
}

body.high-contrast {
  --cream: #fff;
  --paper: #fff;
  background: #fff;
}

body.high-contrast :where(.hero, .page-hero, .section.alt, .section.rose, .guide-preview-section, .story-section, .needs, .resources, .transparency, .hope-section, .section-sunlit) {
  background: #fff !important;
}

body.high-contrast :where(.card, .trust-card, .metric, .resource-card, .film-card, .step-item, .guide-stage-card, .signal-card, .report-row, .perspective-control, .planner-shell, .ai-assistant, .ai-side-card) {
  background: #fff;
  box-shadow: none;
}

body.high-contrast .hero-slogan span { color: #480014; background: none; }

body.high-contrast.ai-warm-mode .ai-warm-banner {
  color: #000;
  background: #fff;
  border-block: 2px solid #000;
  box-shadow: none;
}

body.high-contrast.ai-warm-mode .ai-warm-banner-copy strong,
body.high-contrast.ai-warm-mode .ai-warm-banner-copy span { color: #000; }

body.senior-friendly {
  --font-size: 21.25px;
  --ink: #000;
  --ink-soft: #171717;
  --cream: #fff;
  --paper: #fff;
  line-height: 1.9;
  letter-spacing: .012em;
}

body.senior-friendly :where(button, .btn, .button, summary, input, select, textarea) { min-height: 56px; }
body.senior-friendly :where(a:not(.btn):not(.button):not(.brand)) { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .2em; }

body.motion-paused .topbar::after,
body.motion-paused .brand-mark::after,
body.motion-paused .hero::before,
body.motion-paused .page-hero::before,
body.motion-paused .hero-art,
body.motion-paused .page-mark,
body.motion-paused .needs-logo,
body.motion-paused .identity-logo,
body.motion-paused .hero-note,
body.motion-paused .eyebrow::before,
body.motion-paused .film-card .film-poster::after,
body.motion-paused .ai-assistant-float::before { animation: none !important; }

@media (max-width: 920px) {
  .nav-links { background: rgba(255, 252, 247, .98); backdrop-filter: blur(18px); }
  .nav-links > a[aria-current="page"]::after { display: none; }
  .story-article::before { display: none; }
  .access-btn.ai-warm-toggle { min-width: 6.2rem; }
}

@media (max-width: 640px) {
  .hero,
  .page-hero { background-position: center !important; }
  .hero-art,
  .page-mark,
  .needs-logo,
  .identity-logo { animation-duration: 10s; }
  .btn { border-radius: .8rem; }
  .ai-assistant-float::before { inset: -.25rem; }
  .warm-spotlight-card::after { display: none; }
  .access-tools .ai-warm-toggle { display: none; }
  .mobile-actions.has-ai-warm-action { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mobile-actions.has-ai-warm-action a:nth-child(2) { background: var(--wine); }
  .mobile-actions .ai-warm-mobile {
    min-width: 0;
    min-height: 4rem;
    padding: .35rem;
    color: #5d2c39;
    background: linear-gradient(145deg, #ffe7b8, #ffcfc6);
    border: 0;
    cursor: pointer;
    font-size: .78rem;
    font-weight: 900;
  }
  .mobile-actions .ai-warm-mobile[aria-pressed="true"] {
    color: #fff;
    background: linear-gradient(135deg, #9b3f54, #d66f68);
  }
  .ai-warm-banner { padding: .82rem 0 1rem; }
  .ai-warm-banner-inner { grid-template-columns: auto minmax(0, 1fr); gap: .72rem; }
  .ai-warm-banner-actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto; }
  .ai-warm-banner-link,
  .ai-warm-banner-close { justify-content: center; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .topbar::after,
  .brand-mark::after,
  .hero::before,
  .page-hero::before,
  .hero-art,
  .page-mark,
  .needs-logo,
  .identity-logo,
  .hero-note,
  .eyebrow::before,
  .film-card .film-poster::after,
  .ai-assistant-float::before,
  .ai-warm-banner-mark { animation: none !important; }
  .btn::after { display: none; }
}

@media print {
  .topbar::after,
  .hero::before,
  .page-hero::before,
  .brand-mark::after,
  .ai-assistant-float::before,
  .film-card .film-poster::after,
  .story-article::before { display: none !important; }
  body { background: #fff !important; }
}
