/* Shared editorial pages; the approved hero scene keeps its own composition. */
:root { --site-bg:#091b2d; --site-text:#f0f7fc; --site-muted:#afc5d7; --site-line:#c6e3f122; --site-accent:#a9dcfa; }
.site-home, .site-page { background:var(--site-bg); color:var(--site-text); font-family:Montserrat,Arial,sans-serif; }
.site-home .site-chapter .wrap, .site-home .faq.wrap, .site-home .site-footer .wrap, .site-page .wrap { width:min(1260px,89.5%); }
.site-home .site-chapter .eyebrow, .site-home .faq .eyebrow, .site-page .eyebrow { color:var(--site-accent); font-size:11px; letter-spacing:.16em; }
.site-home .skip, .site-page .skip { z-index:100; color:#102b43; }
.site-nav { z-index:50; color:#f0f7fc; }
.site-home > .topbar.site-nav { position:fixed; z-index:50; transition:background .2s,box-shadow .2s; }
.site-home > .site-nav .wrap { width:89.5%; max-width:none; }
.site-home > .site-nav .topbar-inner { min-height:0; height:clamp(62px,8svh,86px); padding:0; gap:20px; }
.site-home > .site-nav .top-nav { position:absolute; left:50%; transform:translateX(-50%); justify-content:center; gap:clamp(28px,3.2vw,60px); white-space:nowrap; font-size:clamp(15px,1.3vw,23px); font-weight:550; }
.site-nav.is-scrolled, .site-nav:not(.topbar) { background:#071a2ff2; backdrop-filter:blur(20px); box-shadow:0 1px 0 #d0e9ff19; }
.site-nav:not(.topbar) { position:sticky; top:0; }
.site-nav .topbar-inner { position:relative; height:86px; }
.site-nav .app-brand { width:58px; height:58px; flex:none; display:grid; place-items:center; }
.site-nav .app-brand img { width:54px; height:54px; filter:drop-shadow(0 3px 7px #0004); }
.site-nav:not(.topbar) .top-nav { position:absolute; left:50%; transform:translateX(-50%); gap:clamp(24px,3vw,48px); font-size:15px; }
.site-nav .top-nav a { text-decoration:none; position:relative; }
.site-nav .top-nav a::after { content:""; position:absolute; height:2px; background:#a9dcfa; bottom:1px; inset-inline:0; transform:scaleX(0); transition:transform .2s; }
.site-nav .top-nav a:hover::after, .site-nav .top-nav a[aria-current="page"]::after { transform:scaleX(1); }
.site-nav:not(.topbar) .top-install { display:inline-flex; justify-content:center; align-items:center; border:1px solid #daeefba8; border-radius:14px; padding:10px 22px; font-size:14px; min-height:42px; }
.site-nav .top-install:hover { background:#dcefff15; }
.site-link { color:#b4e3ff; display:inline-flex; align-items:center; gap:16px; min-height:46px; font-size:14px; font-weight:650; text-decoration:underline; text-underline-offset:6px; text-decoration-color:#afd9f755; }
.site-link:hover { color:#fff; text-decoration-color:currentColor; }
.site-link .icon { width:18px; height:18px; }
.site-button { display:inline-flex; justify-content:center; align-items:center; gap:20px; min-height:52px; padding:15px 24px; border:1px solid #b4ddfa66; border-radius:14px; font:600 14px/1.4 Montserrat,Arial,sans-serif; color:#f5fbff; background:linear-gradient(140deg,#d7eeff22,#b6dfff08); }
.site-button:hover { background:#caeaff27; }
.site-button:disabled { cursor:default; color:#abc0d2; background:#e4f4ff0c; border-color:#c9e2f92a; }
.site-button.primary { color:#0a2944; background:#cceaff; border-color:#cceaff; }
.site-button.primary:hover { background:#e6f5ff; }
.site-home :focus-visible, .site-page :focus-visible { outline-color:#addfff; }
.site-chapter { position:relative; isolation:isolate; overflow:clip; min-height:min(890px,100svh); display:grid; align-items:center; padding:110px 0; border-top:1px solid var(--site-line); background:radial-gradient(ellipse at 80% 60%,#245b7d32,transparent 56%),linear-gradient(160deg,#142f46,#091b2d 65%); }
.site-chapter:nth-of-type(even) { background:radial-gradient(ellipse at 12% 55%,#2b618937,transparent 55%),#0b2034; }
.chapter-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(50px,8vw,130px); }
.chapter-copy { max-width:560px; }
.chapter-no { display:flex; align-items:center; gap:16px; color:#9dc9e5; font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; margin-bottom:32px; }
.chapter-no::before { content:""; width:38px; height:1px; background:#8eb3cc80; }
.chapter-copy h2 { font-size:clamp(35px,4.2vw,61px); line-height:1.12; font-weight:650; letter-spacing:-.05em; margin:0; }
.chapter-copy > p:not(.chapter-no) { margin:24px 0; max-width:43ch; color:var(--site-muted); font-size:17px; line-height:1.8; }
.chapter-steps { display:flex; gap:22px; margin:32px 0 22px; padding:22px 0; border-block:1px solid var(--site-line); color:#d7e8f4; font-size:12px; line-height:1.7; }
.chapter-steps span { display:block; margin-bottom:4px; font-size:11px; color:#80a9c4; letter-spacing:.08em; }
.editorial-phone { width:min(100%,258px); margin:auto; border:7px solid #182d40; border-radius:37px; box-shadow:0 0 0 1px #b8d4e25c,22px 35px 70px #0006; background:#132a40; overflow:hidden; transform:rotate(-5deg); }
.editorial-phone img { width:100%; height:auto; }
.screen-scene { position:relative; display:grid; place-items:center; padding:35px 0; }
.screen-scene::before { content:""; position:absolute; z-index:-1; width:110%; height:80%; border:1px solid #badfff18; border-radius:50%; transform:rotate(-30deg); }
.screen-scene::after { content:""; position:absolute; z-index:-1; width:72%; height:72%; border:1px solid #badfff14; border-radius:50%; transform:rotate(30deg); }
.scene-note { position:absolute; right:-12px; bottom:9%; max-width:188px; border-left:2px solid #9fd8f7; padding:13px 17px; background:#112e48f2; box-shadow:0 10px 35px #06132066; color:#d4e6f1; font-size:12px; line-height:1.6; }
.scene-note b { display:block; color:#fff; font-size:14px; margin-bottom:4px; }
.chapter-experience .editorial-phone { transform:rotate(5deg); width:242px; }
.chapter-experience .scene-note { left:-8px; right:auto; bottom:14%; }
.chapter-project { min-height:660px; background:linear-gradient(90deg,#071a2ff5,#071a2fa8),url('/assets/perron-q400-integrated-v11.webp') center 48%/cover; }
.chapter-project:nth-of-type(even) { background:linear-gradient(90deg,#071a2ff5,#071a2fa8),url('/assets/perron-q400-integrated-v11.webp') center 48%/cover; }
.project-emblem { display:grid; place-items:center; }
.project-emblem img { width:min(75%,310px); opacity:.9; filter:drop-shadow(0 25px 40px #0005); }
.site-home .faq { padding-block:110px; gap:7%; scroll-margin-top:100px; }
.site-home .faq .eyebrow { margin-bottom:20px; }
.site-home .faq h2 { font-size:clamp(31px,3.2vw,47px); font-weight:650; }
.site-home .questions { border-color:var(--site-line); }
.site-home .questions details { border-color:var(--site-line); }
.site-home .questions summary { min-height:76px; font-size:15px; font-weight:550; }
.site-home .questions summary::after { color:#aedcf6; }
.site-home .questions p { color:var(--site-muted); font-size:14px; }
.site-home .questions a { color:#cbeaff; text-decoration:underline; text-underline-offset:3px; }
.site-footer { border-top:1px solid var(--site-line); background:#061627; padding-block:38px; color:#9eb5c9; font-size:12px; }
.site-footer .wrap { display:flex; flex-wrap:wrap; align-items:center; gap:22px; }
.site-footer .footer-sign { display:flex; align-items:center; gap:15px; margin-right:auto; line-height:1.7; }
.footer-sign img { width:38px; height:38px; }
.footer-sign strong { display:block; font-size:14px; color:#d5e9f7; font-weight:600; }
.site-footer nav { display:flex; flex-wrap:wrap; gap:24px; }
.site-footer a:hover { color:white; }
.page-intro { position:relative; padding:85px 0 65px; background:radial-gradient(ellipse at 75% 15%,#2b679d38,transparent 70%); }
.page-intro h1 { max-width:17ch; margin:20px 0 22px; font-size:clamp(40px,5.4vw,76px); line-height:1.09; letter-spacing:-.055em; font-weight:650; }
.page-intro .page-lede { max-width:660px; color:var(--site-muted); font-size:18px; line-height:1.8; }
.page-intro.centered { text-align:center; }
.page-intro.centered h1, .page-intro.centered .page-lede { margin-inline:auto; }
.page-back { display:inline-flex; gap:8px; align-items:center; margin-bottom:34px; color:#9bbdd5; font-size:12px; min-height:30px; }
.page-back:hover { color:white; }
.page-back .icon { width:15px; height:15px; }
.page-rule { border:0; border-top:1px solid var(--site-line); margin:0; }
.feature-directory { display:grid; grid-template-columns:230px minmax(0,1fr); gap:80px; padding-block:55px 110px; }
.feature-index { align-self:start; position:sticky; top:125px; }
.feature-index p { color:#6c95b3; text-transform:uppercase; font-size:10px; letter-spacing:.12em; margin-bottom:14px; }
.feature-index a { display:flex; gap:14px; padding:10px 0; color:#afc9dc; font-size:13px; line-height:1.5; }
.feature-index a span { color:#648ba9; font-size:11px; min-width:19px; }
.feature-index a:hover { color:#fff; }
.feature-article { padding:45px 0 54px; border-bottom:1px solid var(--site-line); scroll-margin-top:105px; }
.feature-article:first-child { padding-top:0; }
.feature-article .eyebrow { margin-bottom:16px; }
.feature-article h2 { font-size:clamp(28px,3vw,42px); font-weight:600; margin:0 0 19px; letter-spacing:-.04em; }
.feature-article .feature-purpose { font-size:17px; color:#c1d6e5; line-height:1.8; max-width:65ch; }
.feature-article ul { margin:20px 0 0; padding-left:19px; color:#95b3ca; font-size:14px; line-height:1.9; }
.feature-article li { padding-left:5px; margin:6px 0; }
.feature-article li::marker { color:#75b6e3; }
.feature-article .site-link { margin-top:18px; }
.feature-article .module-note { font-size:12px; color:#8fa9bd; line-height:1.7; margin-top:20px; max-width:66ch; }
.feature-calculators { margin-top:24px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.feature-calculators div { border-top:2px solid #6ba2ca66; padding-top:17px; }
.feature-calculators h3 { font-size:15px; font-weight:600; margin-bottom:10px; }
.feature-calculators p { color:#96b1c6; line-height:1.75; font-size:13px; }
.page-next { padding:50px 0 70px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:25px; }
.page-next p { font-size:22px; font-weight:550; letter-spacing:-.02em; }
.release-intro { padding:30px 0 24px; }
.release-intro .page-back { margin-bottom:16px; }
.release-intro h1 { max-width:none; font-size:clamp(32px,3.3vw,46px); margin:14px auto 15px; }
.release-intro .page-lede { font-size:14px; }
.release-current { width:min(790px,89.5%); margin:0 auto 85px; padding:30px 36px 26px; text-align:center; position:relative; border:1px solid #b4dfff35; border-radius:28px; background:radial-gradient(ellipse at 50% 0%,#317bb945,transparent 70%),#102b45; box-shadow:0 30px 80px #0003; }
.release-current .release-label { color:#b8e2ff; font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
.release-current .release-number { font-size:clamp(100px,16vw,150px); font-weight:650; letter-spacing:-.08em; line-height:1.1; color:transparent; background:linear-gradient(180deg,#f0faff,#91d5ff); background-clip:text; -webkit-background-clip:text; margin:10px 0; }
.release-current h2 { margin:0; font-size:25px; font-weight:600; letter-spacing:-.035em; }
.release-current > p:not(.release-label):not(.release-number) { color:#acc8dc; max-width:490px; line-height:1.75; margin:12px auto 18px; font-size:14px; }
.release-current .release-tags { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin:18px 0 22px; padding:0; list-style:none; color:#bfd8e9; font-size:12px; }
.release-tags li + li::before { content:"·"; margin-right:12px; color:#7099b8; }
.release-current .release-availability { color:#a8c6da; font-size:12px; margin-top:13px; }
.release-current .site-link { display:flex; width:max-content; max-width:100%; min-height:38px; margin:12px auto 0; font-size:12px; }
.release-archive { max-width:1000px; padding-bottom:90px; }
.release-archive h2 { margin:0 0 16px; font-size:33px; font-weight:600; }
.archive-caption { color:var(--site-muted); font-size:14px; line-height:1.8; max-width:620px; }
.release-row { margin-top:30px; border-block:1px solid var(--site-line); padding:30px 0; display:grid; grid-template-columns:64px 1fr auto; align-items:center; gap:25px; }
.release-row img { width:60px; height:60px; }
.release-row h3 { font-size:20px; margin-bottom:8px; font-weight:600; }
.release-row p { color:#8faec5; font-size:12px; line-height:1.7; }
.release-row .site-link { font-size:13px; }
.install-notes { padding:25px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:45px; }
.install-notes h3 { font-size:15px; font-weight:600; margin:12px 0; }
.install-notes p { color:#95b2c8; font-size:13px; line-height:1.85; }
.q400-access { max-width:1000px; display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; margin-bottom:80px; padding:35px 0; border-block:1px solid var(--site-line); }
.q400-access h2 { margin-top:18px; font-size:32px; font-weight:600; line-height:1.2; }
.q400-access p:not(.eyebrow) { font-size:14px; line-height:1.85; color:var(--site-muted); }
.q400-access .access-state { display:inline-block; margin:20px 0 12px; padding:8px 12px; border:1px solid #afdfff33; border-radius:7px; color:#bde5ff; font-size:11px; }
.q400-access p.access-note { font-size:12px; color:#8daac0; }
.about-intro .wrap { display:grid; grid-template-columns:1.25fr .75fr; align-items:center; gap:70px; }
.about-intro .project-emblem img { width:min(100%,280px); }
.about-story { max-width:900px; padding:40px 0 90px; }
.story-entry { display:grid; grid-template-columns:70px 1fr; gap:30px; padding:45px 0; border-bottom:1px solid var(--site-line); }
.story-entry > span { color:#6fa3c5; font-size:12px; padding-top:7px; }
.story-entry h2 { margin:0 0 21px; font-size:31px; font-weight:600; letter-spacing:-.035em; }
.story-entry p { font-size:16px; color:#aac3d6; line-height:1.9; }
.story-entry p + p { margin-top:17px; }
.author-signature { display:flex; gap:20px; align-items:center; margin-top:45px; }
.author-signature img { width:52px; height:52px; }
.author-signature strong { font-size:17px; font-weight:600; }
.author-signature p { margin-top:6px; font-size:12px; color:#8eaec5; }
.legacy-detail .detail-header .topbar-inner { height:86px; }
.legacy-detail { font-family:Montserrat,Arial,sans-serif; }
.credits-content { max-width:950px; }
.credits-content h1 { margin-top:18px; font-size:clamp(34px,5vw,65px); letter-spacing:-.05em; font-weight:600; }
.credits-content h2 { font-size:30px; margin-top:45px; margin-bottom:20px; }
.credits-content p { margin:16px 0; font-size:15px; line-height:1.8; color:var(--site-muted); }
.credits-content .text-link { color:var(--site-accent); }
@media(min-width:1700px) { .site-chapter { min-height:900px; } }
@media(max-width:1100px) {
  .chapter-grid { gap:55px; }
  .feature-directory { grid-template-columns:190px minmax(0,1fr); gap:45px; }
  .site-nav:not(.topbar) .top-nav { gap:24px; font-size:14px; }
  .scene-note { right:-4px; }
}
@media(max-width:760px) {
  .site-home .site-chapter .wrap, .site-home .faq.wrap, .site-home .site-footer .wrap, .site-page .wrap, .site-home > .site-nav .wrap { width:calc(100% - 40px); }
  .site-nav .topbar-inner, .site-home > .site-nav .topbar-inner { height:101px; min-height:0; display:grid; grid-template-columns:1fr auto; padding:8px 0 5px; gap:0 12px; }
  .site-nav .app-brand { width:42px; height:42px; }
  .site-nav .app-brand img { width:40px; height:40px; }
  .site-nav:not(.topbar) .top-nav, .site-home > .site-nav .top-nav { position:static; transform:none; grid-row:2; grid-column:1/-1; width:100%; justify-content:space-between; gap:12px; font-size:12px; }
  .site-nav .top-nav a { min-height:38px; }
  .site-nav:not(.topbar) .top-install { padding:7px 15px; font-size:12px; min-height:34px; grid-column:2; grid-row:1; justify-self:end; }
  .site-chapter { padding:70px 0; min-height:0; }
  .chapter-grid { grid-template-columns:1fr; gap:35px; }
  .chapter-copy { max-width:none; }
  .chapter-copy h2 { font-size:clamp(31px,8.8vw,45px); }
  .chapter-copy > p:not(.chapter-no) { font-size:15px; margin:20px 0; }
  .chapter-no { margin-bottom:24px; font-size:10px; }
  .chapter-steps { gap:20px; font-size:11px; margin-top:24px; }
  .screen-scene { padding:28px 25px; width:min(100%,420px); margin:auto; }
  .editorial-phone, .chapter-experience .editorial-phone { width:206px; border-radius:30px; border-width:6px; }
  .scene-note { right:0; max-width:160px; font-size:10px; padding:10px 13px; }
  .scene-note b { font-size:12px; }
  .chapter-experience .chapter-copy { grid-row:1; }
  .chapter-experience .scene-note { left:0; }
  .chapter-project .chapter-grid { gap:20px; }
  .project-emblem img { max-width:180px; }
  .chapter-project .project-emblem { margin-top:20px; }
  .site-home .faq { padding-block:70px; grid-template-columns:1fr; gap:30px; }
  .site-home .questions summary { font-size:13px; line-height:1.7; min-height:70px; }
  .site-home .questions p { font-size:13px; }
  .site-footer .wrap { display:block; }
  .site-footer nav { margin-top:25px; gap:20px; font-size:11px; }
  .page-intro { padding:45px 0 40px; }
  .page-intro h1 { font-size:clamp(36px,10vw,48px); }
  .page-intro .page-lede { font-size:15px; }
  .release-intro { padding:24px 0; }
  .release-intro h1 { font-size:31px; }
  .release-intro .page-lede { font-size:13px; }
  .page-back { margin-bottom:25px; }
  .feature-directory { display:block; padding-top:0; padding-bottom:40px; }
  .feature-index { position:static; padding:5px 0 25px; margin-bottom:10px; border-bottom:1px solid var(--site-line); display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
  .feature-index p { grid-column:1/-1; }
  .feature-index a { font-size:11px; gap:8px; }
  .feature-article { padding:35px 0; scroll-margin-top:120px; }
  .feature-article:first-child { padding-top:25px; }
  .feature-article h2 { font-size:28px; }
  .feature-article .feature-purpose { font-size:15px; }
  .feature-article ul { font-size:13px; }
  .feature-calculators { grid-template-columns:1fr; }
  .page-next { padding:30px 0 60px; }
  .page-next p { font-size:19px; line-height:1.6; }
  .release-current { width:calc(100% - 40px); padding:32px 20px; margin-bottom:55px; border-radius:20px; }
  .release-current .release-number { font-size:130px; }
  .release-row { grid-template-columns:42px 1fr; gap:17px; }
  .release-row img { width:42px; height:42px; }
  .release-row .site-link { grid-column:2; font-size:12px; }
  .install-notes { grid-template-columns:1fr; gap:15px; }
  .q400-access { grid-template-columns:1fr; gap:20px; margin-bottom:55px; }
  .q400-access h2 { font-size:28px; }
  .release-archive { padding-bottom:60px; }
  .release-archive h2 { font-size:28px; }
  .about-intro .wrap { grid-template-columns:1fr; gap:25px; }
  .about-intro .project-emblem { display:none; }
  .story-entry { grid-template-columns:1fr; gap:15px; padding:30px 0; }
  .story-entry h2 { font-size:27px; }
  .story-entry p { font-size:14px; }
  .about-story { padding-top:0; padding-bottom:60px; }
}
@media(prefers-reduced-motion:reduce) { .site-nav, .site-nav .top-nav a::after { transition:none; } }
