/* Impeccable polish: preserve the approved Kaasi composition and interactions. */
:root{--polish-ease:cubic-bezier(.2,.7,.2,1);--polish-selection-ink:var(--color-paper)}
body:has(.reference-slice) ::selection{background:var(--color-accent);color:var(--polish-selection-ink)}
.first-feature,.own-records,.journal-band,.donate-section{color-scheme:light}
.first-feature :focus-visible,.own-records :focus-visible,.journal-band :focus-visible,.donate-section :focus-visible{outline:2px solid var(--scene-ink);outline-offset:5px}
.below-fold h2{text-wrap:balance}
.scene-mobile-nav button{display:grid;place-items:center;transition:background-color var(--duration),border-color var(--duration)}
.scene-mobile-nav button svg,.faq-band summary svg{display:block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.scene-mobile-nav button:hover{background:var(--scene-light-ink);border-color:var(--scene-muted)}
.scene-position,.blog-swipe-hint,.account-copy strong,.free-price{font-variant-numeric:tabular-nums}
.faq-band summary{align-items:center;line-height:1.5}
.faq-band summary span{display:grid;place-items:center;transition:transform 180ms var(--polish-ease)}
.faq-band details p{margin:0;line-height:1.75}
.faq-band summary:hover{color:var(--color-accent)}
.journal-band .article-grid article:focus-within{outline:2px solid var(--scene-ink);outline-offset:6px;border-radius:var(--radius)}
.journal-band .article-grid article a:focus-visible{outline:none}
.journal-band .article-grid article a:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.journal-band .article-grid h3{text-wrap:pretty}
.maker-links a,.ownership-spread a,.site-footer a,.legal-links a{ text-underline-offset:4px }
.site-footer nav a:hover,.legal-links a:hover{text-decoration:underline;text-decoration-thickness:1px}
.donate-section .account-copy button{display:grid;place-items:center;padding:0;flex:none}
@media(max-width:700px){.journal-band .article-grid{padding:6px 6px 20px;margin-inline:-6px;scroll-padding-inline:6px}.scene-mobile-nav button{touch-action:manipulation}.faq-band summary{padding-block:22px}.faq-band h2{font-size:clamp(36px,10.7vw,42px)}}
@media(prefers-reduced-motion:reduce){.scene-mobile-nav button,.faq-band summary span{transition:none}}

.main-feature-section.motion-offscreen .moving-window .moving-track{animation-play-state:paused!important}

/* Shared motion vocabulary for the approved motion refinements. */
:root{--motion-ease-out:cubic-bezier(0.23,1,0.32,1);--motion-state:200ms;--motion-menu:180ms;--motion-press:120ms;--motion-reduced:80ms}
.feature-scenes figure.is-entering{animation:none}
body:has(.reference-slice) #faq details[open]>p{animation:none}
body.faq-motion-active{overflow-anchor:none}
#faq.faq-keyboard summary span{transition:none}
.main-feature-card:hover{transform:none}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) and (min-width:701px){.main-feature-card:hover{transform:translateY(-4px)}}
@media(prefers-reduced-motion:reduce){.main-feature-card:hover{transform:none}}
.scene-mobile-nav button,.journal-band .stories .section-head>a{transition:transform 80ms var(--motion-ease-out),background-color var(--duration),border-color var(--duration)}
.scene-mobile-nav button.is-pointer-pressed,.journal-band .stories .section-head>a.is-pointer-pressed{transform:scale(.98);transition-duration:var(--motion-press),var(--duration),var(--duration)}
@media(prefers-reduced-motion:reduce){.scene-mobile-nav button.is-pointer-pressed,.journal-band .stories .section-head>a.is-pointer-pressed{transform:none}}

.mast.menu-keyboard .menu-toggle span{transition:none}

/* Controls follow Kaasi's rounded-rectangle shape. */
.motion-toggle,.scene-mobile-nav button,.scene-autoplay{border-radius:var(--radius)}


/* Center the hero label and icon as one group, without inline SVG baseline space. */
.scene-actions .primary,.scene-actions .scene-secondary{display:inline-flex;align-items:center;justify-content:center;line-height:1.25}
.scene-secondary>span{display:flex;align-items:center;justify-content:center;flex:none;line-height:0}
.scene-secondary svg{display:block}


/* JS owns the shared loop offset so touch dragging never fights a CSS animation. */
.moving-window.touch-draggable{touch-action:pan-y pinch-zoom}
.moving-window.touch-draggable .moving-track{animation:none!important}
.moving-window.touch-draggable.is-dragging{user-select:none}
@media(prefers-reduced-motion:reduce){.moving-window.touch-draggable{touch-action:auto}}
