@font-face {
  font-family: Instrument;
  src: url('./assets/instrument-serif.woff2') format('woff2');
  font-display: swap;
}
@font-face {
  font-family: Instrument;
  src: url('./assets/instrument-serif-italic.woff2') format('woff2');
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: Hanken;
  src: url('./assets/hanken-grotesk-var.woff2') format('woff2');
  font-weight: 100 900;
  font-display: swap;
}
:root {
  color-scheme: light;
  --paper: #f7f6ef;
  --white: #fffef8;
  --ink: #20392e;
  --muted: #536456;
  --line: #ccd2c3;
  --pine: #183d32;
  --pale: #e8eddc;
  --accent: #e1edaa;
  --rust: #86502e;
  --serif: Instrument, Georgia, serif;
  --sans: Hanken, Arial, sans-serif;
  --pad: clamp(22px, 5.5vw, 88px);
}
* { box-sizing: border-box; }
html { scroll-padding-top: 108px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 18px/1.5 var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button { font: inherit; cursor: pointer; }
a, button, summary { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #ac662e; outline-offset: 5px; }
:where(h1,h2,#main)[tabindex="-1"]:focus { outline: none; }
.shell, .wrap { width: min(calc(100% - var(--pad) - var(--pad)), 1300px); margin-inline: auto; }
.skip-link { position: fixed; left: -9999px; top: 6px; z-index: 20; padding: 12px 18px; background: white; }
.skip-link:focus { left: 8px; }
.mast { position: sticky; top: 0; z-index: 8; background: rgba(247,246,239,.98); border-bottom: 1px solid var(--line); }
.mast-inner { min-height: 77px; display: grid; grid-template-columns: 1fr auto 1fr; gap: 20px; align-items: center; }
.signature { display: inline-flex; justify-self: start; align-items: baseline; color: var(--pine); font: 400 36px/.95 var(--serif); text-decoration: none; letter-spacing: -.065em; white-space: nowrap; }
.signature i { font-weight: 400; }
.signature-dot { width: 11px; height: 11px; border-radius: 50%; background: #6c824e; align-self: center; margin: 4px 9px 0 0; }
.main-nav { display: flex; align-items: center; gap: 4px; }
.main-nav a { padding: 9px 16px; border-radius: 24px; text-decoration: none; color: var(--muted); font-size: 15px; font-weight: 650; }
.main-nav a:hover { background: #e9eddf; color: var(--pine); }
.main-nav a[aria-current="page"] { color: var(--white); background: var(--pine); }
.download { justify-self: end; text-decoration: none; font-size: 15px; font-weight: 700; display: flex; gap: 8px; align-items: center; min-height: 44px; }
.download:hover, .footer-inner>a:last-child:hover { text-decoration: underline; text-underline-offset: 4px; }
.download-line { font-size: 20px; line-height: .9; }
h1, h2, h3, h4, p, figure, ol, dl, dd { margin: 0; }
h1, h2, h3, .review-link strong { font-family: var(--serif); font-weight: 400; }
h1, h2 { letter-spacing: -.037em; line-height: .97; }
h1 em, h2 em { font-weight: 400; color: #56704f; }
h3 { font-size: clamp(32px, 3vw, 45px); line-height: 1.04; letter-spacing: -.025em; }
.kicker { font-size: 12px; font-weight: 750; letter-spacing: .105em; line-height: 1.4; text-transform: uppercase; color: var(--muted); }
.mini-rule { display: inline-block; width: 31px; height: 1px; background: var(--rust); vertical-align: middle; margin: -3px 8px 0 0; }
.cover { display: grid; grid-template-columns: .95fr 1.13fr; gap: clamp(28px, 4.6vw, 76px); align-items: center; padding: clamp(36px, 4.2vw, 68px) 0 30px; }
.cover h1 { font-size: clamp(74px, 7.9vw, 126px); margin: 19px 0 21px; }
.cover-letter { max-width: 41ch; font-size: clamp(18px, 1.5vw, 23px); line-height: 1.46; color: #374d3d; }
.byline { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 11px; margin-top: 23px; font-size: 14px; color: var(--muted); }
.byline strong { color: var(--ink); }
.byline span+span::before { content: ''; display: inline-block; width: 3px; height: 3px; border-radius: 50%; background: #88907b; vertical-align: middle; margin-right: 11px; }
.cover-photo { position: relative; min-height: 340px; height: clamp(350px, 30.8vw, 492px); overflow: hidden; background: #c9d1c0; border-radius: 5px 50px 5px 5px; }
.cover-photo>img { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; display: block; }
.route-ticket { position: absolute; left: clamp(16px,2.4vw,35px); bottom: clamp(16px,2vw,31px); padding: 13px 17px 15px; color: #263d30; background: #f8f6e9; box-shadow: 0 5px 22px #11271c33; min-width: 188px; display: grid; gap: 2px; text-decoration: none; border-radius: 2px; transform: rotate(-2deg); transition: transform .18s; }
.route-ticket:hover { transform: rotate(0); }
.ticket-top { display: flex; align-items: center; gap: 6px; border-bottom: 1px dashed #abb7a1; padding-bottom: 6px; margin-bottom: 5px; font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .07em; }
.ticket-mark { width: 7px; height: 7px; border: 2px solid #617952; border-radius: 50%; }
.ticket-top i { margin-left: auto; font-size: 15px; font-style: normal; }
.route-ticket b { font: normal 33px/1.03 var(--serif); }
.route-ticket>span:last-child { font-size: 13px; color: #4f6052; }
.review-links { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.review-link { display: grid; grid-template-columns: auto 1fr auto; gap: 17px; align-items: center; padding: 21px 25px; border-radius: 4px; text-decoration: none; transition: background .18s; }
.rupert-link { background: #e3e9d7; }
.bruce-link { background: #e7e8df; }
.rupert-link:hover { background: #d6dfc6; }
.bruce-link:hover { background: #d9dfd3; }
.review-initial { border: 1px solid #95a58d; border-radius: 50%; height: 42px; width: 42px; display: grid; place-items: center; font: italic 22px/1 var(--serif); }
.review-link span { display: block; font-size: 13px; font-weight: 700; color: #4b654c; }
.review-link strong { display: block; font-size: clamp(23px, 2.15vw, 34px); letter-spacing: -.022em; line-height: 1.14; margin-top: 2px; }
.review-link>i { align-self: center; font: normal 24px/1 var(--sans); transition: transform .18s; }
.review-link:hover>i { transform: translate(2px,-2px); }
.scope-strip { padding: clamp(31px, 3vw, 48px) 0; display: grid; grid-template-columns: .85fr 1.1fr 1.08fr 1.04fr; }
.scope-strip>div, .scope-strip>a { min-width: 0; display: grid; gap: 3px; padding-left: clamp(21px,3.6vw,58px); border-left: 1px solid var(--line); }
.scope-strip>div:first-child { border: 0; padding-left: 0; }
.scope-strip strong { font: 400 clamp(38px,3.8vw,62px)/1.05 var(--serif); letter-spacing: -.035em; white-space: nowrap; }
.scope-strip i { font-size: .7em; }
.scope-strip span { font-size: 14px; color: var(--muted); }
.scope-strip a { text-decoration: none; }
.scope-strip a:hover span { text-decoration: underline; text-underline-offset: 3px; }
.overview-decision { background: var(--pine); color: var(--white); }
.gate-layout { padding-block: clamp(45px, 5vw, 80px); display: grid; grid-template-columns: 1fr 1fr; gap: 45px; align-items: center; }
.gate-layout h2 { margin-top: 13px; font-size: clamp(49px, 5vw, 80px); }
.gate-layout h2 em { color: var(--accent); }
.gate-layout .kicker { color: #c7d8b6; }
.gate-layout>div>p:not(.kicker) { max-width: 52ch; font-size: 19px; }
.text-link { display: inline-flex; align-items: center; gap: 11px; min-height: 44px; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; font-size: 15px; font-weight: 700; }
.gate-layout .text-link { color: var(--accent); margin-top: 10px; }
.chapter-inner { padding-block: clamp(35px, 4.6vw, 75px) clamp(50px, 6vw, 94px); }
.chapter-head { margin-bottom: clamp(25px, 3vw, 44px); }
.chapter-head h2 { margin: 13px 0 14px; font-size: clamp(55px, 6.4vw, 95px); }
.chapter-head .intro { max-width: 68ch; font-size: clamp(18px, 1.42vw, 22px); color: #415848; }
.walkthrough { display: grid; grid-template-columns: .85fr 1.15fr; border-radius: 5px; background: #e6ecdd; overflow: hidden; }
.order-product { position: relative; min-height: 352px; isolation: isolate; background: #66593b; color: white; }
.product-photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 62% 48%; }
.order-product::after { content: ''; z-index: -1; position: absolute; inset: 0; background: linear-gradient(to top,rgba(27,32,18,.9),transparent 63%); }
.order-caption { position: absolute; inset: auto clamp(18px,2.9vw,42px) clamp(20px,2.7vw,38px); }
.order-caption .kicker { color: #e0e7c8; }
.order-caption h3 { margin: 8px 0 4px; font-size: clamp(39px,4vw,58px); }
.order-caption>p:last-child { font-size: 16px; }
.order-controls { padding: clamp(21px,2.8vw,43px); }
.choice-group { padding: 0; border: 0; margin: 0 0 18px; min-width: 0; }
.choice-group legend { padding: 0; font-size: 18px; font-weight: 700; margin-bottom: 7px; }
.choice-buttons { display: flex; flex-wrap: wrap; gap: 7px; }
.choice-buttons button { background: transparent; color: var(--pine); font-size: 15px; font-weight: 650; min-height: 44px; padding: 7px 15px; border: 1px solid #899c83; border-radius: 24px; }
.choice-buttons button:hover { background: #d5dec9; }
.choice-buttons button[aria-pressed="true"] { background: var(--pine); color: white; border-color: var(--pine); }
.control-note { margin-top: 7px; font-size: 14px; color: var(--muted); }
.order-result { border-top: 1px solid #b3c2aa; padding-top: 15px; }
.order-result>p+p { margin-top: 6px; font-size: 17px; min-height: 4.5em; }
.chapter-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,.85fr); gap: clamp(25px,5.5vw,85px); align-items: start; margin-top: clamp(35px,4.4vw,70px); }
.chapter-grid .chapter-section, .chapter-grid .handover { margin: 0; }
.chapter-section { margin-top: clamp(35px,4.2vw,70px); }
.chapter-section>h3 { margin-bottom: 18px; }
.handover { padding: clamp(23px,2.5vw,36px); background: #ede9da; border-top: 3px solid #b99464; border-radius: 2px; }
.handover .kicker { color: #785834; }
.handover p+p { margin-top: 10px; font-size: 17px; }
.bruce-handover { margin-top: 28px; }
.chapter-actions { margin-top: 26px; display: flex; gap: 21px; align-items: center; flex-wrap: wrap; }
.btn { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; border-radius: 30px; background: var(--pine); padding: 12px 18px; min-height: 46px; color: white; font-weight: 700; font-size: 15px; text-decoration: none; }
.btn:hover { background: #2a5541; }
.disclosures details, .compact-detail { border-bottom: 1px solid var(--line); }
.disclosures details:first-child, .compact-detail { border-top: 1px solid var(--line); }
details summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 16px 2px 16px 0; min-height: 52px; cursor: pointer; font-weight: 680; }
details summary::-webkit-details-marker { display: none; }
details summary::after { content: '+'; display: grid; place-items: center; font-size: 19px; color: var(--pine); border-radius: 50%; background: #e4e9d9; width: 26px; height: 26px; flex-shrink: 0; font-weight: 500; }
details[open]>summary::after { content: '−'; }
details summary:hover { color: #50704b; }
.detail-body { padding: 0 0 19px; max-width: 70ch; }
.detail-body p, .compact-detail p { color: #46584a; font-size: 16px; }
.detail-body p+p { margin-top: 10px; }
.route-list { margin-block: 14px; }
.route-list>div { display: grid; grid-template-columns: minmax(88px,.65fr) 2fr; padding: 7px 0; border-top: 1px solid var(--line); gap: 15px; font-size: 16px; }
.route-list dt, .ownership dt { font-weight: 700; }
.evidence-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.evidence-item { padding: clamp(24px,3vw,44px); background: var(--pale); border-radius: 4px; }
.evidence-item h3 { margin: 18px 0 10px; }
.evidence-item p:not(.kicker) { max-width: 50ch; font-size: 17px; }
.evidence-item .kicker::before { content: ''; width: 8px; height: 8px; display: inline-block; background: #708444; border-radius: 50%; margin: 0 8px 1px 0; }
.evidence-item+ .evidence-item { background: var(--pine); color: var(--white); }
.evidence-item+ .evidence-item .kicker { color: var(--accent); }
.evidence-item+ .evidence-item .kicker::before { background: #dfbd78; }
.ownership>div { padding-block: 11px; border-top: 1px solid var(--line); }
.ownership dd { font-size: 16px; margin-top: 3px; color: var(--muted); }
.investment-grid { display: grid; grid-template-columns: .9fr 1fr; align-items: start; column-gap: clamp(28px,5vw,80px); }
.total-card { padding: clamp(26px,3.3vw,51px); border-radius: 5px 36px 5px 5px; background: var(--pine); color: var(--white); }
.total-card .kicker, .tax { color: #d1ddc5; }
.total-amount { font: 400 clamp(66px,7vw,108px)/1 var(--serif); letter-spacing: -.04em; margin: 20px 0 2px; }
.tax { font-size: 15px; }
.payment-heading { margin: 24px 0 10px; font: 650 17px/1.4 var(--sans); }
.payment-schedule>div { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 18px; padding: 12px 0; border-top: 1px solid #6a8673; }
.payment-schedule dt { color: #e1e8d7; font-size: 16px; }
.payment-schedule dd { font-size: 20px; line-height: 1.2; font-weight: 650; font-variant-numeric: tabular-nums; }
.breakdown { padding-top: 9px; }
.breakdown h3 { margin-bottom: 16px; }
.breakdown-note { margin-bottom: 16px; color: var(--muted); }
.breakdown dl>div { display: flex; justify-content: space-between; gap: 20px; align-items: baseline; border-top: 1px solid var(--line); padding-block: 13px; font-size: 17px; }
.breakdown dd { white-space: nowrap; font-weight: 750; font-variant-numeric: tabular-nums; }
.compact-detail summary { font-size: 15px; }
.compact-detail p { padding-bottom: 15px; }
.section-heading h3 { margin: 8px 0; }
.section-heading>p:not(.kicker) { max-width: 68ch; color: var(--muted); }
.schedule { padding: 0; list-style: none; margin-top: 26px; display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
.schedule li { padding: 16px 0; border-top: 2px solid #a6b597; }
.schedule strong { font-size: 13px; color: #4e654e; }
.schedule h4 { font: 400 clamp(25px,2.4vw,35px)/1.07 var(--serif); margin: 9px 0; }
.schedule p { font-size: 16px; color: var(--muted); }
.decision-band { margin-top: 38px; padding: clamp(23px,3vw,43px); background: var(--pale); display: flex; align-items: center; justify-content: space-between; gap: 28px; border-radius: 4px; }
.decision-band h3 { margin: 10px 0; }
.decision-band>div { max-width: 65ch; }
.decision-band>div>p:last-child { font-size: 17px; }
.decision-band .btn { white-space: nowrap; }
.page-footer { border-top: 1px solid var(--line); }
.footer-inner { display: flex; align-items: center; gap: 20px; padding-block: 23px; }
.footer-inner .signature { font-size: 29px; }
.footer-inner p { font-size: 14px; color: var(--muted); }
.footer-inner>a:last-child { margin-left: auto; font-weight: 650; font-size: 14px; text-decoration: none; }
@media (max-width: 940px) {
  :root { --pad: clamp(20px,4vw,42px); }
  .mast-inner { gap: 12px; }
  .cover { gap: 25px; }
  .cover h1 { font-size: clamp(68px,8.4vw,85px); }
  .cover-photo { min-height: 325px; height: 35vw; }
  .review-link { padding: 17px; gap: 12px; }
  .main-nav a { padding-inline: 12px; }
  .chapter-grid { gap: 30px; }
  .schedule { grid-template-columns: repeat(2,1fr); gap: 7px 24px; }
}
@media (max-width: 700px) {
  :root { --pad: 20px; }
  body { font-size: 17px; }
  html { scroll-padding-top: 113px; }
  .mast-inner { grid-template-columns: 1fr 1fr; gap: 0 10px; min-height: 0; }
  .mast-inner .signature { margin-top: 11px; margin-bottom: 4px; font-size: 30px; }
  .mast-inner .download { grid-column: 2; grid-row: 1; align-self: center; font-size: 14px; margin-top: 4px; }
  .main-nav { grid-column: 1/-1; grid-row: 2; justify-self: stretch; padding: 2px 0 6px; gap: 0; justify-content: space-between; }
  .main-nav a { min-height: 42px; display: grid; place-items: center; padding: 8px clamp(9px,3vw,18px); font-size: 14px; }
  .wide-label { display: none; }
  .overview>.shell { display: grid; }
  .cover { display: contents; }
  .cover-copy { grid-row: 1; margin-top: 29px; }
  .cover h1 { margin: 13px 0; font-size: clamp(72px,14vw,90px); }
  .cover h1 br { display: none; }
  .cover h1 em::before { content: ' '; }
  .cover-letter { font-size: 18px; max-width: 50ch; }
  .byline { font-size: 13px; margin-top: 14px; }
  .review-links { grid-row: 2; grid-template-columns: 1fr; gap: 7px; margin: 21px 0 15px; }
  .review-link { padding: 12px 15px; gap: 12px; }
  .review-link strong { font-size: 23px; }
  .review-link span { font-size: 12px; }
  .review-initial { width: 36px; height: 36px; font-size: 19px; }
  .cover-photo { grid-row: 3; min-height: 0; height: clamp(196px, 49vw, 280px); border-top-right-radius: 31px; }
  .route-ticket { min-width: 150px; padding: 8px 12px; bottom: 13px; left: 15px; }
  .route-ticket b { font-size: 24px; }
  .ticket-top { font-size: 9px; padding-bottom: 2px; margin-bottom: 2px; }
  .route-ticket>span:last-child { font-size: 12px; }
  .scope-strip { grid-row: 4; grid-template-columns: 1fr 1fr; padding: 10px 0 20px; }
  .scope-strip>div,.scope-strip>a { padding: 13px 0 12px 18px; }
  .scope-strip>div:nth-child(odd) { border-left: 0; padding-left: 0; }
  .scope-strip>div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .scope-strip strong { font-size: 40px; }
  .scope-strip span { font-size: 13px; }
  .gate-layout,.investment-grid,.chapter-grid { grid-template-columns: 1fr; gap: 22px; }
  .gate-layout { padding-block: 34px; }
  .gate-layout h2 br { display: none; }
  .gate-layout h2 em::before { content: ' '; }
  .gate-layout>div>p:not(.kicker) { font-size: 17px; }
  .chapter-head h2 { font-size: clamp(47px,10.5vw,65px); }
  .chapter-head .intro { font-size: 18px; }
  .walkthrough { grid-template-columns: 1fr; }
  .order-product { min-height: 0; height: clamp(188px,43vw,255px); }
  .order-controls { padding: 21px; }
  .evidence-pair { gap: 10px; grid-template-columns: 1fr; }
  .evidence-item h3 { margin: 10px 0 7px; }
  .evidence-item { padding: 19px 21px; }
  .investment-grid { gap: 25px; }
  .decision-band { flex-direction: column; align-items: flex-start; }
  .chapter-actions { gap: 12px 18px; }
  .footer-inner { flex-wrap: wrap; gap: 7px 16px; }
  .footer-inner p { order: 3; width: 100%; font-size: 13px; }
}
@media (max-width: 370px) {
  :root { --pad: 15px; }
  .choice-buttons button { padding-inline: 10px; font-size: 14px; }
  .schedule { grid-template-columns: 1fr; }
  .review-link strong { font-size: 21px; }
}
@media (prefers-reduced-motion: no-preference) {
  .view.is-entering { animation: enter-view .22s ease-out both; }
  @keyframes enter-view { from { opacity: .4; transform: translateY(4px); } to { opacity: 1; transform: none; } }
}
@media print {
  .mast,.page-footer,.review-links,.chapter-actions,.route-ticket,.decision-band .btn { display: none; }
  body { font-size: 12pt; background: white; }
  .view[data-view][hidden] { display: block !important; }
  .chapter { break-before: page; }
  .cover-photo { height: 140px; min-height: 0; }
  .choice-buttons button[aria-pressed="false"] { display: none; }
}
