/* Adapted from J.D. Partridge's Heidelberg companion landing page. */
:root {
        --ink: #101c1c;
        --night: #102728;
        --slate: #264447;
        --paper: #faf2df;
        --soft-paper: #eee0c2;
        --gold: #60b5a9;
        --gold-bright: #a6dfd1;
        --brick: #2b695f;
        --sage: #6a9385;
        --white: #fffaf0;
        --muted: rgba(255, 250, 240, 0.74);
        --line: rgba(255, 250, 240, 0.18);
        --shadow: 0 24px 80px rgba(0, 0, 0, 0.34);
        --radius: 8px;
        font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      }

      * {
        box-sizing: border-box;
      }

      html {
        scroll-behavior: smooth;
      }

      body {
        margin: 0;
        color: var(--white);
        background:
          linear-gradient(180deg, rgba(16, 39, 40, 0.98), rgba(16, 28, 28, 1) 42%, #122726 100%);
        letter-spacing: 0;
      }

      img {
        display: block;
        max-width: 100%;
      }

      a {
        color: inherit;
      }

      .site-header {
        position: fixed;
        inset: 0 0 auto 0;
        z-index: 20;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
        padding: 18px clamp(18px, 5vw, 64px);
        color: var(--white);
        background: linear-gradient(180deg, rgba(10, 24, 24, 0.76), rgba(10, 24, 24, 0));
        transition: background 220ms ease, border-color 220ms ease;
      }

      .site-header.is-scrolled {
        background: rgba(13, 30, 30, 0.86);
        border-bottom: 1px solid rgba(255, 250, 240, 0.11);
        backdrop-filter: blur(16px);
      }

      .brand {
        display: inline-flex;
        align-items: center;
        gap: 12px;
        text-decoration: none;
        font-weight: 780;
        letter-spacing: 0;
      }

      .brand-mark {
        display: grid;
        place-items: center;
        width: 38px;
        height: 38px;
        color: #1a130c;
        background: linear-gradient(135deg, var(--gold-bright), var(--soft-paper));
        border-radius: 8px;
        overflow: hidden;
        box-shadow: 0 12px 30px rgba(96, 181, 169, 0.32);
      }

      .brand-mark img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

      .nav-links {
        display: flex;
        align-items: center;
        gap: clamp(12px, 2vw, 26px);
        color: rgba(255, 250, 240, 0.78);
        font-size: 0.92rem;
      }

      .nav-links a {
        text-decoration: none;
      }

      .nav-links a:hover {
        color: var(--gold-bright);
      }

      .hero {
        position: relative;
        min-height: min(760px, 92vh);
        display: grid;
        align-items: end;
        padding: 132px clamp(18px, 5vw, 72px) 42px;
        isolation: isolate;
        overflow: hidden;
      }

      .hero::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -2;
        background-image:
          linear-gradient(90deg, rgba(10, 24, 24, 0.92) 0%, rgba(10, 24, 24, 0.74) 34%, rgba(10, 24, 24, 0.30) 72%, rgba(10, 24, 24, 0.64) 100%),
          linear-gradient(180deg, rgba(10, 24, 24, 0.10), rgba(10, 24, 24, 0.96)),
          url("assets/westminster-study.webp");
        background-size: cover;
        background-position: center;
        transform: scale(1.02);
      }

      .hero::after {
        content: "";
        position: absolute;
        inset: auto 0 0;
        z-index: -1;
        height: 34%;
        background: linear-gradient(180deg, rgba(16, 39, 40, 0), rgba(16, 39, 40, 1));
      }

      .hero-inner {
        width: min(1200px, 100%);
        margin: 0 auto;
      }

      .eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        margin: 0 0 18px;
        color: var(--gold-bright);
        font-size: 0.82rem;
        font-weight: 790;
        text-transform: uppercase;
        letter-spacing: 0.12em;
      }

      .eyebrow::before {
        content: "";
        width: 44px;
        height: 1px;
        background: currentColor;
      }

      h1,
      h2,
      h3,
      p {
        margin-top: 0;
      }

      h1 {
        max-width: 820px;
        margin-bottom: 20px;
        font-family: Georgia, "Times New Roman", serif;
        font-size: clamp(3.3rem, 9.8vw, 8.4rem);
        line-height: 0.88;
        letter-spacing: 0;
      }

      .hero-copy {
        max-width: 680px;
        color: var(--muted);
        font-size: clamp(1.06rem, 2.1vw, 1.34rem);
        line-height: 1.65;
      }

      .cta-row {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 14px;
        margin-top: 34px;
      }

      .button {
        display: inline-flex;
        min-height: 52px;
        align-items: center;
        justify-content: center;
        gap: 10px;
        padding: 0 20px;
        border: 1px solid rgba(255, 250, 240, 0.2);
        border-radius: 8px;
        text-decoration: none;
        font-weight: 780;
        color: var(--white);
        background: rgba(255, 250, 240, 0.08);
        box-shadow: 0 14px 34px rgba(0, 0, 0, 0.22);
        transition: transform 160ms ease, background 160ms ease, border-color 160ms ease;
      }

      .button.has-icon {
        min-height: 64px;
        justify-content: flex-start;
        padding: 8px 19px 8px 9px;
      }

      .button-icon {
        position: relative;
        display: grid;
        place-items: center;
        flex: 0 0 auto;
        width: 46px;
        height: 46px;
        border-radius: 12px;
        background: linear-gradient(145deg, #f8d67d, #bd812f);
        box-shadow:
          inset 0 1px 2px rgba(255, 250, 240, 0.44),
          inset 0 -9px 18px rgba(96, 56, 14, 0.25),
          0 14px 24px rgba(0, 0, 0, 0.22);
        --icon-fill: #111a27;
        --icon-cut: #d39a39;
      }

      .button.primary .button-icon,
      .path-card .button .button-icon {
        background: linear-gradient(145deg, #263343, #0f1724);
        box-shadow:
          inset 0 1px 2px rgba(255, 250, 240, 0.16),
          inset 0 -10px 18px rgba(0, 0, 0, 0.3),
          0 14px 28px rgba(14, 17, 24, 0.28);
        --icon-fill: #f4d17b;
        --icon-cut: #101724;
      }

      .button-text {
        line-height: 1.05;
      }

      .button-svg {
        width: 33px;
        height: 33px;
        overflow: visible;
        filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.24));
      }

      .browser-svg {
        width: 36px;
        height: 36px;
      }

      .store-main,
      .browser-stroke {
        fill: none;
        stroke: var(--icon-fill);
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 5.2;
      }

      .store-wing,
      .store-center,
      .browser-dot {
        fill: var(--icon-fill);
      }

      .store-cut {
        fill: var(--icon-cut);
      }

      .browser-window {
        fill: color-mix(in srgb, var(--icon-fill) 12%, transparent);
        stroke: var(--icon-fill);
        stroke-linejoin: round;
        stroke-width: 4.4;
      }

      .browser-bar {
        stroke: var(--icon-fill);
        stroke-linecap: round;
        stroke-width: 4.4;
      }

      .web-button .button-icon,
      .path-card .web-button .button-icon {
        background: transparent;
        box-shadow: none;
      }

      .web-art-img {
        display: block;
        width: 42px;
        height: 40px;
        background: url("assets/browser-badge.webp") center / contain no-repeat;
        filter:
          drop-shadow(0 5px 7px rgba(0, 0, 0, 0.22))
          drop-shadow(0 1px 1px rgba(255, 250, 240, 0.1));
      }

      .button:hover {
        transform: translateY(-2px);
        background: rgba(255, 250, 240, 0.14);
        border-color: rgba(255, 250, 240, 0.38);
      }

      .button.primary {
        color: #21170d;
        background: linear-gradient(135deg, var(--gold-bright), var(--gold));
        border-color: transparent;
      }

      .play-button {
        min-width: 244px;
        min-height: 68px;
        color: var(--white);
        background:
          linear-gradient(180deg, rgba(38, 51, 63, 0.98), rgba(15, 23, 36, 0.98)),
          #111a27;
        border: 1px solid rgba(166, 223, 209, 0.58);
        box-shadow:
          inset 0 1px 0 rgba(255, 250, 240, 0.14),
          inset 0 -12px 24px rgba(0, 0, 0, 0.22),
          0 18px 38px rgba(0, 0, 0, 0.34),
          0 0 0 1px rgba(96, 181, 169, 0.12);
      }

      .button.primary.play-button {
        color: var(--white);
        background:
          linear-gradient(180deg, rgba(38, 51, 63, 0.98), rgba(15, 23, 36, 0.98)),
          #111a27;
        border-color: rgba(166, 223, 209, 0.58);
      }

      .path-card .play-button {
        color: var(--white);
        background:
          linear-gradient(180deg, rgba(38, 51, 63, 0.98), rgba(15, 23, 36, 0.98)),
          #111a27;
        border-color: rgba(43, 105, 95, 0.2);
      }

      .play-button .button-icon,
      .button.primary.play-button .button-icon,
      .path-card .play-button .button-icon {
        width: 70px;
        height: 52px;
        border-radius: 4px;
        background: transparent;
        box-shadow: none;
        --icon-fill: var(--gold-bright);
        --icon-cut: #101010;
      }

      .play-button .button-icon {
        margin-left: -3px;
        margin-right: -2px;
      }

      .play-button .button-svg {
        width: 34px;
        height: 34px;
        filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.35));
      }

      .store-art-img {
        display: block;
        width: 66px;
        height: 52px;
        background: url("assets/play-badge.webp") center / contain no-repeat;
        filter:
          drop-shadow(0 5px 7px rgba(0, 0, 0, 0.24))
          drop-shadow(0 1px 1px rgba(255, 250, 240, 0.1));
      }

      .play-button .store-main {
        display: none;
      }

      .play-button .store-wing {
        fill: #f5d88c;
      }

      .play-button .store-cut {
        fill: #a6dfd1;
      }

      .play-button .store-top {
        fill: #60b5a9;
      }

      .play-button .store-bottom {
        fill: #2b695f;
      }

      .store-copy {
        display: grid;
        gap: 1px;
        text-align: left;
        line-height: 1;
      }

      .store-kicker {
        color: rgba(255, 250, 240, 0.82);
        font-size: 0.63rem;
        font-weight: 680;
        letter-spacing: 0.05em;
        text-transform: uppercase;
      }

      .store-name {
        color: var(--white);
        font-size: 1.28rem;
        font-weight: 760;
        letter-spacing: 0;
      }

      .trust-strip {
        width: min(1200px, calc(100% - 36px));
        margin: -24px auto 0;
        position: relative;
        z-index: 3;
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        border: 1px solid var(--line);
        border-radius: var(--radius);
        background: rgba(16, 39, 40, 0.82);
        box-shadow: var(--shadow);
        backdrop-filter: blur(20px);
      }

      .trust-item {
        padding: 22px;
        border-right: 1px solid var(--line);
      }

      .trust-item:last-child {
        border-right: 0;
      }

      .trust-item strong {
        display: block;
        margin-bottom: 6px;
        color: var(--gold-bright);
        font-size: 1.02rem;
      }

      .trust-item span {
        color: rgba(255, 250, 240, 0.68);
        font-size: 0.92rem;
        line-height: 1.45;
      }

      section {
        padding: clamp(72px, 10vw, 128px) clamp(18px, 5vw, 72px);
      }

      #features,
      #study-flow,
      #install {
        scroll-margin-top: 86px;
      }

      .section-inner {
        width: min(1200px, 100%);
        margin: 0 auto;
      }

      .split {
        display: grid;
        grid-template-columns: minmax(0, 0.92fr) minmax(320px, 1.08fr);
        gap: clamp(34px, 6vw, 76px);
        align-items: center;
      }

      .feature-showcase {
        display: grid;
        gap: clamp(26px, 4vw, 42px);
      }

      .feature-showcase > .reveal:first-child {
        max-width: 840px;
      }

      .section-kicker {
        color: var(--gold-bright);
        font-size: 0.78rem;
        font-weight: 820;
        letter-spacing: 0.14em;
        text-transform: uppercase;
      }

      h2 {
        margin: 12px 0 18px;
        font-family: Georgia, "Times New Roman", serif;
        font-size: clamp(2.1rem, 5vw, 4.7rem);
        line-height: 0.98;
        letter-spacing: 0;
      }

      .lead {
        color: rgba(255, 250, 240, 0.72);
        font-size: 1.08rem;
        line-height: 1.75;
      }

      .visual-panel {
        position: relative;
        overflow: hidden;
        border: 1px solid rgba(255, 250, 240, 0.16);
        border-radius: var(--radius);
        background: rgba(255, 250, 240, 0.06);
        box-shadow: var(--shadow);
      }

      .visual-panel img {
        width: 100%;
        min-height: 420px;
        object-fit: cover;
      }

      .visual-panel.promo-visual {
        background:
          linear-gradient(135deg, rgba(166, 223, 209, 0.12), rgba(43, 105, 95, 0.08)),
          rgba(255, 250, 240, 0.04);
      }

      .visual-panel.promo-visual img {
        display: block;
        min-height: 0;
        aspect-ratio: 1280 / 619;
        object-fit: contain;
        object-position: center;
      }

      .feature-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 16px;
        margin-top: 34px;
      }

      .feature-card {
        min-height: 218px;
        padding: 22px;
        border: 1px solid rgba(255, 250, 240, 0.14);
        border-radius: var(--radius);
        background:
          linear-gradient(180deg, rgba(255, 250, 240, 0.09), rgba(255, 250, 240, 0.035)),
          rgba(255, 250, 240, 0.02);
      }

      .feature-icon {
        display: grid;
        place-items: center;
        width: 42px;
        height: 42px;
        margin-bottom: 20px;
        color: #1d160e;
        background: var(--gold-bright);
        border-radius: 8px;
        font-weight: 900;
      }

      .feature-card h3 {
        margin-bottom: 10px;
        font-size: 1.05rem;
      }

      .feature-card p {
        margin: 0;
        color: rgba(255, 250, 240, 0.65);
        line-height: 1.55;
        font-size: 0.95rem;
      }

      .banner {
        position: relative;
        overflow: hidden;
        padding: 0;
        background: var(--paper);
        color: var(--ink);
      }

      .banner-grid {
        display: grid;
        grid-template-columns: 0.9fr 1.1fr;
        min-height: 560px;
      }

      .banner-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

      .banner-copy {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: clamp(36px, 6vw, 74px);
      }

      .banner-copy .section-kicker {
        color: var(--brick);
      }

      .banner-copy .lead {
        color: rgba(16, 28, 28, 0.72);
      }

      .pathways {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 18px;
        margin-top: 34px;
      }

      .path-card {
        padding: 28px;
        border: 1px solid rgba(16, 28, 28, 0.16);
        border-radius: var(--radius);
        background: rgba(255, 255, 255, 0.42);
      }

      .path-card h3 {
        color: var(--ink);
        margin-bottom: 10px;
        font-size: 1.28rem;
      }

      .path-card p {
        color: rgba(16, 28, 28, 0.68);
        line-height: 1.55;
      }

      .path-card .button {
        margin-top: 8px;
        color: var(--white);
        background: var(--night);
        border-color: transparent;
        box-shadow: none;
      }

      .quote-section {
        padding-top: 42px;
      }

      .quote-panel {
        display: grid;
        grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
        gap: clamp(24px, 5vw, 64px);
        align-items: center;
      }

      .quote {
        font-family: Georgia, "Times New Roman", serif;
        color: var(--paper);
        font-size: clamp(1.9rem, 4.8vw, 4.5rem);
        line-height: 1.02;
      }

      .proof-list {
        display: grid;
        gap: 14px;
      }

      .quote-support {
        display: grid;
        grid-template-columns: minmax(180px, 0.58fr) minmax(0, 1fr);
        gap: 18px;
        align-items: stretch;
      }

      .commentary-art {
        min-height: 100%;
        margin: 0;
        overflow: hidden;
        border: 1px solid rgba(166, 223, 209, 0.22);
        border-radius: var(--radius);
        background: rgba(255, 250, 240, 0.05);
        box-shadow: 0 18px 54px rgba(0, 0, 0, 0.28);
      }

      .commentary-art img {
        display: block;
        width: 100%;
        height: 100%;
        min-height: 430px;
        object-fit: cover;
      }

      .commentary-art figcaption {
        padding: 12px 14px 14px;
        color: rgba(255, 250, 240, 0.72);
        background: rgba(10, 24, 24, 0.86);
        font-size: 0.82rem;
        line-height: 1.35;
      }

      .proof {
        display: grid;
        grid-template-columns: 74px 1fr;
        gap: 14px;
        align-items: start;
        padding: 18px;
        border: 1px solid rgba(255, 250, 240, 0.13);
        border-radius: var(--radius);
        background: rgba(255, 250, 240, 0.055);
      }

      .proof b {
        display: inline-flex;
        min-height: 34px;
        align-items: center;
        justify-content: center;
        padding: 0 10px;
        color: #1a130c;
        background: linear-gradient(135deg, var(--gold-bright), var(--gold));
        border-radius: 8px;
        font-size: 0.72rem;
        font-weight: 900;
        letter-spacing: 0.06em;
        text-transform: uppercase;
      }

      .proof p {
        margin: 4px 0 0;
        color: rgba(255, 250, 240, 0.64);
        line-height: 1.5;
      }

      .final-cta {
        text-align: center;
        background:
          linear-gradient(180deg, rgba(16, 39, 40, 0), rgba(16, 39, 40, 0.7)),
          radial-gradient(circle at 50% 0%, rgba(96, 181, 169, 0.18), rgba(96, 181, 169, 0) 38%);
      }

      .final-cta h2 {
        margin-inline: auto;
        max-width: 900px;
      }

      .final-cta .lead {
        max-width: 720px;
        margin-inline: auto;
      }

      .support-action {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 48px;
        margin-top: 16px;
        padding: 0 22px;
        border: 1px solid rgba(245, 180, 74, 0.58);
        border-radius: 999px;
        color: #ffe5ad;
        background: rgba(245, 180, 74, 0.08);
        box-shadow: 0 16px 34px rgba(0, 0, 0, 0.22);
        font-weight: 900;
        text-decoration: none;
        transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
      }

      .support-action:hover {
        transform: translateY(-1px);
        border-color: rgba(245, 180, 74, 0.86);
        background: rgba(245, 180, 74, 0.14);
      }

      footer {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 14px;
        padding: 28px clamp(18px, 5vw, 72px);
        color: rgba(255, 250, 240, 0.54);
        border-top: 1px solid rgba(255, 250, 240, 0.11);
        background: #12100e;
        font-size: 0.92rem;
      }

      footer a {
        text-decoration: none;
        color: rgba(255, 250, 240, 0.74);
      }

      .reveal {
        opacity: 0;
        transform: translateY(18px);
        transition: opacity 650ms ease, transform 650ms ease;
      }

      .reveal.is-visible {
        opacity: 1;
        transform: translateY(0);
      }

      @media (max-width: 900px) {
        .nav-links {
          display: none;
        }

        .hero {
          min-height: 92vh;
          padding-top: 110px;
        }

        .trust-strip,
        .feature-grid,
        .split,
        .banner-grid,
        .pathways,
        .quote-panel,
        .quote-support {
          grid-template-columns: 1fr;
        }

        .trust-item {
          border-right: 0;
          border-bottom: 1px solid var(--line);
        }

        .trust-item:last-child {
          border-bottom: 0;
        }

        .visual-panel img {
          min-height: auto;
        }

        .commentary-art img {
          max-height: 480px;
          min-height: 0;
        }
      }

      @media(max-width:700px){.hero{min-height:auto;padding:104px 16px 36px}.hero-inner{max-width:100%;min-width:0}h1{max-width:100%;font-size:clamp(2.55rem,12vw,3.85rem);line-height:.96;overflow-wrap:break-word}.hero-copy{font-size:1.05rem;line-height:1.55;overflow-wrap:break-word}.eyebrow{font-size:.74rem;overflow-wrap:anywhere}.cta-row{width:100%;gap:12px}.button{width:100%;max-width:100%;min-width:0;padding-inline:14px}.play-button{min-width:0}.store-name{font-size:clamp(1rem,8vw,1.28rem);white-space:nowrap}}@media (max-width: 560px) {
        .site-header {
          padding-inline: 16px;
        }

        .brand span:last-child {
          max-width: 180px;
          line-height: 1.1;
        }

        h1 {
          font-size: clamp(3rem, 16vw, 4.6rem);
        }

        .button {
          width: 100%;
        }

        .feature-card,
        .path-card {
          min-height: auto;
        }
      }

      @media(max-width:700px){h1{font-size:clamp(2.25rem,9.5vw,3rem)!important;line-height:1!important}.hero-copy{font-size:1rem}.store-name{font-size:1.08rem}}@media (prefers-reduced-motion: reduce) {
        *,
        *::before,
        *::after {
          scroll-behavior: auto !important;
          transition: none !important;
        }

        .reveal {
          opacity: 1;
          transform: none;
        }
      }

/* Westminster identity, complete library, and accessible pending-store states. */
[hidden]{display:none!important}
html{scroll-padding-top:100px}
body{background:linear-gradient(180deg,#102728,#101c1c 55%,#122726)}
button{font:inherit;cursor:pointer}button:disabled{cursor:default}
a:focus-visible,button:focus-visible{outline:3px solid #a6dfd1;outline-offset:5px}
.skip-link{position:fixed;z-index:100;left:16px;top:-100px;padding:14px 20px;background:#faf2df;color:#102728;border-radius:6px}
.skip-link:focus{top:12px}
.brand small{display:block;font-weight:500;font-size:.7rem;letter-spacing:.08em;margin-top:5px}
h1{font-size:clamp(3.2rem,8.1vw,7.7rem);max-width:1100px;line-height:.98}
h1>span{display:block;font-size:.56em;line-height:1.15;margin-top:.13em}
.hero-copy{max-width:650px}
.hero{min-height:min(780px,96vh);padding-bottom:70px}
.availability-note,.free-note{font-size:.87rem;line-height:1.55;color:#d1ded5;margin:15px 0 0}
.free-note{color:#a6dfd1;margin-top:8px}
.button[disabled]{opacity:1;filter:saturate(.35);box-shadow:none;border-color:#a5a897;color:#eeeadf}
.button[disabled]:hover{transform:none;background:#172b30;border-color:#a5a897}
.button.primary.web-button{background:#a6dfd1;color:#102728}
.button.primary.web-button:hover{background:#c1eee3}
.centered{justify-content:center}
figure.visual-panel{margin:0}
.visual-panel.promo-visual img{height:auto;aspect-ratio:2/1;max-height:700px;object-fit:contain}
.art-caption{padding:13px 20px;color:#d1ded5;font-size:.88rem;line-height:1.5}
.banner-copy{min-width:0}.pathways{min-width:0}.path-card{min-width:0;padding:23px}
.path-card .button{width:100%;min-width:0;padding-inline:11px;gap:7px}
.path-card .button-icon,.path-card .play-button .button-icon{width:40px;height:44px;margin:0}
.path-card .store-art-img{width:40px;height:40px}
.path-card .store-name{font-size:1.07rem}
.install-detail{font-size:.86rem;line-height:1.6;color:#40544d;margin:24px 0 0}
.qa-download{margin-top:16px;align-self:flex-start;background:#102728}
.quote-panel{display:block}.quote-section{padding-top:85px}
.quote{max-width:1000px;margin:0 auto;text-align:center;line-height:1.1}
.quote-credit{text-align:center;color:#a6dfd1;font-size:.87rem;margin:22px 0 0}
.quote-support{grid-template-columns:minmax(260px,.88fr) minmax(0,1.12fr);gap:35px;margin-top:50px}
.library-stack{display:grid;gap:14px;overflow:visible;background:none;border:0;box-shadow:none}
.author-volume{border:1px solid #789183;border-left:8px solid #79b6a5;border-radius:4px 9px 9px 4px;padding:24px 26px;background:linear-gradient(105deg,#183a36,#142927);box-shadow:5px 8px 18px #0003}
.author-volume>span{text-transform:uppercase;font-size:.74rem;letter-spacing:.12em;color:#a6dfd1;font-weight:750}
.author-volume h3{font:normal 1.55rem/1.15 Georgia,'Times New Roman',serif;margin:12px 0 14px;color:#faf2df}
.author-volume p{font-size:.89rem;line-height:1.6;color:#d1ded5;margin:0}
.author-volume.wallis{background:linear-gradient(105deg,#3c392b,#252c25);border-left-color:#d1bf8c}
.author-volume.watson{background:linear-gradient(105deg,#223343,#15252b);border-left-color:#8ea4b5}
.source-detail{max-width:850px;margin:36px auto 0;padding-top:25px;border-top:1px solid var(--line);color:#becdc3;font-size:.88rem;line-height:1.7;text-align:center}
.source-detail a{color:#a6dfd1;text-underline-offset:3px}
.support-action{border-color:#6db9a7;color:#bcebdc;background:#71b8a615}
.support-action:hover{border-color:#a6dfd1;background:#71b8a625}
footer{background:#0e2020;color:#c1cec6;line-height:1.7}footer a{color:#d9e4dc}
.reveal{opacity:1;transform:none}.has-reveal .reveal{opacity:0;transform:translateY(18px)}.has-reveal .reveal.is-visible{opacity:1;transform:none}
.policy-main{max-width:960px;padding:148px 24px 70px;margin:auto}
.policy-main>h1{font-size:clamp(3rem,7vw,5rem);line-height:1.1}
.policy-date{color:#c5d5cc;font-size:.95rem;margin:22px 0 32px}
.policy-content{background:#faf2df;color:#172f2e;padding:clamp(25px,5vw,56px);border-radius:9px;border:1px solid #dccdab;margin-bottom:32px}
.policy-content p{line-height:1.85;font-size:1rem;margin:0 0 18px}
.policy-content h2{font-size:1.8rem;line-height:1.2;margin:36px 0 16px}
.policy-content a{color:#1a6657;text-underline-offset:3px}
.policy-content a:focus-visible{outline-color:#1a6657}
@media(min-width:901px) and (max-width:1300px){.pathways{grid-template-columns:1fr}.banner-copy{padding:38px}.banner-image{min-height:800px}}
@media(max-width:900px){.quote-support{grid-template-columns:1fr}.library-stack{grid-template-columns:1fr}.hero{min-height:720px}.banner-image img{max-height:510px}.source-detail{text-align:left}}
@media(max-width:700px){.hero{min-height:auto;padding:125px 20px 55px}.hero h1{font-size:clamp(2.7rem,10.2vw,4.1rem)!important;overflow-wrap:normal}.hero h1>span{font-size:.56em}.hero::before{background-position:65% center}.brand>span:last-child{font-size:.98rem;max-width:none}.brand small{font-size:.66rem}.trust-strip{margin-top:-12px}.trust-item{padding:20px}.visual-panel.promo-visual img{aspect-ratio:2/1}.quote-section{padding-top:65px}.quote-support{gap:28px;margin-top:34px}.author-volume{padding:23px}.proof{grid-template-columns:65px minmax(0,1fr);gap:12px;padding:17px}.proof p{font-size:.94rem}.proof b{font-size:.66rem}.availability-note{font-size:.83rem}.pathways{gap:14px}.banner-copy{padding:37px 22px}.policy-main{padding:125px 18px 55px}.policy-content{padding:27px 22px}.policy-content h2{font-size:1.65rem}.policy-main>h1{font-size:3rem}.policy-page .nav-links{display:flex}.policy-page .nav-links a:first-child{display:none}.policy-page .nav-links{font-size:.76rem}.policy-page .brand-mark{display:none}}
@media(prefers-reduced-motion:reduce){.has-reveal .reveal{opacity:1;transform:none}}

.banner-image img{object-position:70% center}
