/* Shared reading and interaction rules. Brand tokens remain in the design system. */
:root { color-scheme: dark; }
html { scroll-padding-top: 88px; }
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #E8FFF0 !important; outline-offset: 4px; }
main:focus { outline: none; }
a { text-underline-offset: .2em; }
.fs-skip { position: fixed; top: 8px; left: 16px; padding: 12px 20px; color: #06120A; background: #E8FFF0; z-index: 1000; transform: translateY(-180%); font: 600 16px/1.5 system-ui; }
.fs-skip:focus { transform: translateY(0); }
.fs-burger { background: transparent; border: 0; padding: 10px; }
.fs-navtrigger { min-height: 44px; }
.fs-field { border-color: #679A76 !important; }
.fs-field-error { color: #FFBABA; font: 15px/1.5 var(--fs-font-body); margin: 8px 0 0; }
.fs-field-error:empty { display: none; }
#fl-status { color: #E8FFF0; font: 16px/1.6 var(--fs-font-body); }
#fl-status:empty { margin: 0; }
.fs-form-privacy { color: #BFDAC9; font: 14px/1.6 var(--fs-font-body); }
.fs-form-privacy a, .fs-reading-block a, .fs-article-guide a { color: #8DEEAB; }
footer nav { flex-wrap: wrap; }
footer nav a { display: inline-flex; min-height: 32px; align-items: center; }
footer > div > div { min-width: 0; }
footer span { overflow-wrap: anywhere; }
.fs-reading-block { max-width: 960px; padding: 48px 24px; margin: auto; font: 18px/1.65 var(--fs-font-body); }
.fs-reading-block h2 { font: 600 clamp(1.8rem,3vw,2.5rem)/1.2 var(--fs-font-display); }
.fs-project { min-width: 0; display:flex; flex-direction:column; padding:28px; border:1px solid #467657; border-radius:14px; background:#0E1F16; scroll-margin-top:88px; }
.fs-project h2 { font:600 28px/1.2 var(--fs-font-display); margin:0 0 12px; }
.fs-project p { font:17px/1.6 var(--fs-font-body); color:#C5E5D0; margin:0 0 24px; }
.fs-project .fs-project-status { font:600 13px/1.5 var(--fs-font-body); color:#8DEEAB; }
.fs-project a { margin-top:auto; padding:12px 0; color:#8DEEAB; font:600 16px/1.5 var(--fs-font-body); }
.fs-article-guide { background:#0E1F16; border-left:3px solid #34D67A; padding:22px; margin:28px 0; font:17px/1.65 var(--fs-font-body); }
.fs-article-guide p { font-size:17px !important; line-height:1.65 !important; margin:0 0 16px !important; }
.fs-article-guide ul { padding-left:22px; margin-bottom:0; }
.fs-article-guide li { margin:8px 0; }
h1, h2, h3 { overflow-wrap: break-word; }
/* Original hero timing remains authored in HeroBars and each page. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
/* Give text a predictable backdrop above the decorative hero bars. */
.fs-hero-copy { background: #030805; border-radius: 16px; padding: 24px; }
@media (max-width: 600px) {
  .fs-form-row { grid-template-columns: 1fr !important; }
  #free-look-form { padding: 22px !important; }
  main > section:first-child { min-height: 0 !important; padding-top: 76px !important; padding-bottom: 60px !important; }
  .fs-hero-copy { padding: 16px 0; }
  h1 { font-size: clamp(2rem, 8vw, 3rem) !important; line-height:1.12 !important; }
  .fs-project { padding:24px; }
}

header { background:#000 !important; }
#contact { background:#04100A !important; }
#free-look-form { background:#0E1F16 !important; }
img { max-width:100%; }
@media(max-width:600px) { .fs-hero-hud { display:none !important; } }

/* Dismiss the card visually while retaining its layout footprint and page heading. */
.fs-hero-copy:has(.fs-hero-dismiss) { cursor:pointer; }
.fs-hero-dismissed { background:transparent !important; pointer-events:none; }
.fs-hero-dismissed > * { visibility:hidden; }
.fs-hero-dismissed h1 { visibility:visible; position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.fs-hero-dismiss, .fs-hero-motion, .fs-contact-close { color:#E8FFF0; background:#06120A; border:1px solid #679A76; border-radius:6px; padding:10px 14px; font:500 14px/1.5 var(--fs-font-body); cursor:pointer; }
.fs-hero-dismiss { display:block; margin:0 0 20px auto; }
.fs-hero-motion { position:absolute; bottom:12px; right:24px; z-index:3; }
.fs-motion-paused *, .fs-motion-paused *::before, .fs-motion-paused *::after { animation-play-state:paused !important; }
.fs-contact-open { overflow:hidden; }
.fs-contact-dialog { color:#F2FFF6; background:#04100A; border:1px solid #679A76; border-radius:14px; padding:0; width:min(760px,calc(100% - 24px)); max-height:calc(100dvh - 24px); }
.fs-contact-dialog::backdrop { background:rgba(0,0,0,.75); }
.fs-contact-close { display:block; position:sticky; top:12px; margin:12px 16px 0 auto; z-index:2; }
.fs-contact-dialog #contact { border:0 !important; }
.fs-contact-dialog #contact > div { padding:24px !important; }
@media(prefers-reduced-motion:reduce) { .fs-hero-motion { display:none; } }

header [style*="animation:"] { animation-duration:3s !important; animation-iteration-count:1 !important; }
