@font-face {
  font-family: Instrument;
  src: url('/assets/instrument-sans.ttf') format('truetype');
  font-weight: 400 700;
  font-display: swap;
}
:root {
  --paper: #f6f7f4;
  --ink: #111c24;
  --blue: #234af5;
  --muted: #43545e;
  --rule: #bbc4c9;
  --serif: "STIX Two Text", Georgia, "Times New Roman", serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 16px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.52 Instrument, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
h1,h2,h3,p,dl,dd,blockquote { margin: 0; }
h1,h2,h3 { font-weight: 590; letter-spacing: -.055em; line-height: 1.02; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 4px; }
button,summary { cursor: pointer; }
:focus-visible { outline: 3px solid #bf830d; outline-offset: 4px; }
[hidden] { display: none !important; }
.skip,.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip:focus { width: auto; height: auto; clip-path: none; top: 8px; left: 10px; z-index: 5; background: white; padding: 8px; }
.shell { width: min(1390px,calc(100% - clamp(38px,9vw,145px))); margin-inline: auto; }
.mast,footer,.brand,.mast nav,.kicker,.cta,.access { display: flex; align-items: center; }
.mast { height: 80px; border-bottom: 1px solid var(--ink); gap: 22px; }
.brand { font-size: 27px; font-weight: 680; letter-spacing: -.065em; gap: 10px; }
.mast nav { margin-left: auto; gap: 28px; }
.mast nav a,.booking-link,.plain { font-size: 14px; font-weight: 590; }
.booking-link { border-left: 1px solid var(--rule); padding-left: 22px; }
.booking-link span,em { color: var(--blue); }
em { font-style: normal; }
.hero { display: grid; grid-template-columns: 1.12fr 1fr; gap: 4.5%; align-items: center; padding-block: clamp(35px,4.7vw,65px); }
.hero-scene { position: relative; aspect-ratio: 1.16; width: 100%; }
.kicker,.eyebrow,.doc-type { font-weight: 610; font-size: 12px; letter-spacing: .035em; }
.kicker { color: var(--muted); gap: 8px; margin-bottom: 22px; }
.kicker span { background: var(--blue); width: 19px; height: 2px; }
.eyebrow,.doc-type { font-size: 11px; text-transform: uppercase; letter-spacing: .115em; }
.eyebrow { color: #2948a9; margin-bottom: 16px; }
h1 { font-size: clamp(63px,6.8vw,99px); line-height: .95; text-wrap: balance; }
h1 em { display: block; }
.intro,.story-guide>p:not(.eyebrow),.hub-intro>p:not(.eyebrow),.country>div>p:not(.eyebrow) { color: var(--muted); font-size: clamp(16px,1.3vw,19px); line-height: 1.5; }
.intro { max-width: 46ch; margin-top: 24px; }
.aus-promise { margin-top: 18px; font-weight: 625; font-size: 15px; }
.early-offer { margin: 23px 0 10px; display: grid; gap: 8px; justify-items: start; }
.early-offer p,.access>div>p { font-size: 14px; color: var(--muted); }
.cta { display: inline-flex; gap: 18px; padding: 13px 20px; color: white; background: var(--blue);  font-weight: 600; font-size: 15px; }
.cta:hover { background: #1738c8; text-decoration: none; }
.plain { display: inline-block; text-decoration: underline; text-underline-offset: 4px; }
.tour-link { margin-top: 3px; font-size: 13px; }
h2 { font-size: clamp(38px,4.25vw,65px); }
h3 { font-size: clamp(22px,2.2vw,36px); }

.morning-story { background: #e8edf1; border-block: 1px solid #c6d0d6; }
.morning-spread,.hub,.country { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(30px,7vw,105px); padding-block: clamp(45px,6.6vw,96px); align-items: start; }
.story-guide { padding-top: clamp(0px,1.5vw,20px); }
.story-guide>p:not(.eyebrow),.hub-intro>p:not(.eyebrow) { max-width: 38ch; margin-top: 19px; }
.story-links { margin-top: 25px; display: flex; flex-wrap: wrap; gap: 10px 21px; }
.story-links a { color: #29488f; }

.report-source { margin-top: 11px; color: #486073; font-size: 12px; }
.hub-intro>p.hub-origin { font-size: 15px; }
.desk-access { margin-top: 22px; font-size: 14px; max-width: 42ch; color: var(--muted); }
.desk-access summary,.dispatch summary { color: #233d72; text-underline-offset: 4px; text-decoration: underline; font-weight: 580; padding-block: 8px; }
.desk-access p+p { margin-top: 10px; }
.dispatch-caption { font-size: 12px; color: #53616b; padding-bottom: 10px; border-bottom: 1px solid #83929a; }
.dispatch { padding: 20px 0 14px; border-bottom: 1px solid #b9c5cc; }
.dispatch h3 { color: #244790; font: 620 13px/1.4 Instrument,Arial,sans-serif; letter-spacing: 0; margin-bottom: 8px; }
.dispatch .message { font-size: clamp(17px,1.5vw,22px); line-height: 1.45; letter-spacing: -.02em; color: #1c2c36; }
.dispatch details { font-size: 14px; margin-top: 6px; }
.dispatch-detail { color: #40515b; padding-block: 4px 10px; }
.dispatch-detail dl>div { margin-top: 9px; }
.dispatch-detail dt { font-weight: 640; color: #263848; }
.dispatch-detail dd { max-width: 62ch; }
.pricing { background:#12191c; color:#f8faf9; }
.price-layout {
  display:grid; grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  grid-template-areas:"intro rates" "question rates";
  align-items:start; gap:clamp(19px,2vw,30px) clamp(35px,7vw,105px);
  padding-block:clamp(40px,5.5vw,82px);
}
.price-intro { grid-area:intro; }
.price-intro h2 { max-width:15ch; text-wrap:balance; }
.price-intro p { max-width:48ch; margin-top:18px; font-size:clamp(16px,1.28vw,19px); line-height:1.48; color:#eef0ee; }
.price-intro .price-terms { margin-top:12px; font-size:clamp(14px,1.08vw,16px); color:#bfc9c8; }
.price-rates { grid-area:rates; align-self:start; }
.price-rates .eyebrow { margin:0 0 11px; font:550 11px/1.4 ui-monospace,Consolas,monospace; letter-spacing:.06em; color:#c5d1ff; }
.rate-menu { border-block:1px solid #879391; }
.rate-menu>div {
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  gap:5px 12px; align-items:baseline; padding-block:clamp(14px,2vw,28px);
}
.rate-menu>div+div { border-top:1px solid #4b5a5a; }
.rate-menu dt { font-size:clamp(22px,2.2vw,35px); font-weight:560; letter-spacing:-.045em; line-height:1.1; }
.rate-price { font-size:clamp(33px,3.6vw,58px); font-weight:565; letter-spacing:-.065em; line-height:1; white-space:nowrap; font-variant-numeric:tabular-nums; }
.rate-price span { color:#d1d8d6; font-size:clamp(13px,1.1vw,16px); font-weight:460; letter-spacing:0; }
.rate-use { grid-column:1/-1; font-size:clamp(14px,1.08vw,16px); color:#c2ceca; }
.price-question { grid-area:question; border-block:1px solid #5a6969; }
.price-question summary {
  display:flex; align-items:center; justify-content:space-between; gap:12px; list-style:none;
  min-height:48px; padding:10px 0; color:#eef2ff; font-weight:590; letter-spacing:-.018em;
}
.price-question summary:hover { color:#c5d1ff; }
.price-question summary::-webkit-details-marker { display:none; }
.price-question summary::after {
  content:""; width:8px; height:8px; flex:none; margin:0 4px 4px 0;
  border:solid #bac9ff; border-width:0 1.5px 1.5px 0; transform:rotate(45deg);
}
.price-question[open] summary::after { transform:rotate(225deg); margin-bottom:-4px; }
.price-question p { font-size:15px; max-width:53ch; color:#e1e7e5; margin-bottom:15px; line-height:1.5; }
.price-question .price-sum { color:#c2ceca; }
.price-sum strong { color:#fff; font-weight:620; white-space:nowrap; }
@media(max-width:720px) {
  .price-layout { grid-template-columns:minmax(0,1fr); grid-template-areas:"intro" "rates" "question"; gap:24px; }
  .price-intro h2 { max-width:17ch; }
  .price-intro p,.price-intro .price-terms { margin-top:12px; }
  .rate-menu>div { padding-block:13px; gap:6px 12px; }
  .price-question { border-top:0; margin-top:-13px; }
}
.pack-links { display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:9px; }
.pack-links a { padding:4px 0; color:#24458f; font-size:14px; font-weight:560; text-decoration:underline; text-underline-offset:4px; }
.hub-intro>a.plain { margin-top:16px; }
.country>div>p+p { margin-top: 15px; }
.access { border-top: 1px solid var(--rule); justify-content: space-between; gap: 25px; padding-block: 45px; }
.access h2 { font-size: clamp(30px,3.2vw,48px); }
.access>div>p { margin-top: 8px; }
footer { justify-content: space-between; border-top: 1px solid var(--ink); padding-block: 20px 30px; font-size: 13px; }
footer .brand { font-size: 19px; }
@media (max-width: 960px) {
  .hero { grid-template-columns: 1.06fr 1fr; padding-block: 34px; }
  .hero h1 { font-size: clamp(46px,6vw,60px); }
  .hero .intro { font-size: 16px; }
  .early-offer { margin-top: 16px; }
  .aus-promise { margin-top: 11px; }
  .morning-spread,.hub,.country { gap: 5%; }
}
@media (max-width: 780px) {
  .mast nav { gap: 14px; }
  .mast { height: 65px; }
  .brand { font-size: 23px; }
}
@media (max-width: 650px) {
  .mast nav { display: none; }
  .booking-link { margin-left: auto; border: 0; padding: 0; font-size: 13px; }
  .brand img { width: 29px; height: 29px; }
  .hero,.morning-spread,.hub,.country { grid-template-columns: 1fr; gap: 22px; }
  .hero { padding: 29px 0 20px; }
  .hero h1 { font-size: clamp(45px,12vw,72px); }
  .hero-scene { max-height: 330px; }
  .kicker { margin-bottom: 16px; font-size: 11px; }
  .intro { margin-top: 17px; }
  .early-offer p { font-size: 13px; }
  .story-guide { padding-top: 0; }
  .morning-spread { gap: 12px; }
  .access { flex-direction: column; align-items: start; }
  footer .brand { gap: 5px; font-size: 16px; }
  footer>a:last-child { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Public pages use the same paper, ink and cobalt rules as Hamilton's desk. */
:root{--paper:#f7f8f4;--ink:#11191b;--muted:#424d50;--rule:#adb5b0}
body{border-top:3px solid var(--blue)}
:where(button,input,textarea,select,dialog){border-radius:0}
.mast{height:74px;border-bottom:1px solid #252d2e}
.mast .brand,footer .brand{letter-spacing:-.052em}
.mast nav{gap:0;border-inline-start:1px solid #c0c7c1}
.mast nav a{padding:7px clamp(10px,1.4vw,24px);border-inline-end:1px solid #c0c7c1}
.booking-link{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--ink);font-size:13px}
.booking-link:hover{background:#161d21;color:white;text-decoration:none}.booking-link:hover span{color:white}
.kicker,.eyebrow,.doc-type,.dispatch-caption{
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-weight:530;font-size:10px;letter-spacing:.085em;text-transform:uppercase}
.kicker{gap:10px;color:#38454a}
.kicker span{width:19px;height:4px;background:var(--blue)}
.hero{grid-template-columns:1.07fr 1fr;gap:5.7%;padding-block:clamp(39px,5vw,77px)}

.hero .intro{max-width:49ch}
.early-offer{margin-top:22px}
.cta{justify-content:space-between;min-height:46px;border:1px solid var(--blue);padding:12px 16px}
.cta span{padding-left:12px;border-left:1px solid #8fa4ff;line-height:1.1}
.aus-promise{letter-spacing:-.02em}
.morning-story{background:#ecefe9;border-block:1px solid #919b95}
.story-guide,.hub-intro,.country>div:first-child{border-top:2px solid var(--ink);padding-top:12px}

.eyebrow{color:var(--ink);margin-bottom:17px}
.dispatches{border-top:2px solid #232a2c}
.dispatch-caption{padding:9px 0;color:#4c575a}
.dispatch{border-color:var(--rule)}
.dispatch h3{font:580 12px/1.4 ui-monospace,Consolas,monospace;letter-spacing:.02em}
.access{border-top:2px solid var(--ink)}
footer.shell{border-color:#7b8582}
@media(max-width:960px){.mast{gap:15px}}
@media(max-width:650px){.mast{height:61px;gap:8px}.booking-link{padding:6px 8px}.hero{grid-template-columns:1fr;gap:17px;padding-block:30px 20px}.kicker{font-size:9px}.story-guide{padding-top:10px}.morning-spread{gap:23px}}

/* Two fitted lines share the same normal-width Instrument Sans cut as the
   section headings. The longest role determines a safe width in every column. */
.hero-copy{container-type:inline-size}
.hero .hero-copy h1{
  font-size:min(clamp(45px,6.8vw,99px),13.08cqw);
  font-weight:590;font-variation-settings:normal;letter-spacing:-.055em;line-height:.95;
  text-wrap:initial;
}
.hero .role-title,.hero .role-line,.hero h1 em{display:block}
.hero .role-line{white-space:nowrap}
.role-stack{display:inline-grid;grid-template:1fr / 1fr;vertical-align:baseline}
.role-stack [data-role-word]{
  grid-area:1 / 1;opacity:0;transform:translateY(.12em);
  pointer-events:none;transition:opacity 260ms ease,transform 380ms cubic-bezier(.2,.67,.28,1);
}
.role-stack [data-role-word].current-role{opacity:1;transform:translateY(0)}
.role-stack [data-role-word].previous-role{opacity:0;transform:translateY(-.12em)}
.role-title[data-still] [data-role-word]{transition:none}
@media(prefers-reduced-motion:reduce){
  .role-stack [data-role-word],.role-stack [data-role-word].previous-role{transform:none;transition:opacity 190ms ease}
}

@media (max-width: 365px) {
  .mast .brand { font-size:20px; gap:6px; white-space:nowrap; }
  .mast .brand img { width:25px; height:25px; }
  .mast .booking-link { font-size:12px; gap:5px; white-space:nowrap; }
  .early-offer .cta { gap:10px; padding-inline:12px; }
}

/* Public reading surfaces. The live workspace lives inside the demo. */
.hero-feel { margin-top:24px; font-size:clamp(21px,2.1vw,31px); font-weight:600; letter-spacing:-.045em; line-height:1.15; }
.hero .intro { margin-top:8px; }
.aus-promise [role="img"] { margin-left:3px; }
.story-guide>p:not(.eyebrow)+p { margin-top:12px; }
.brief-exhibit { min-width:0; }
.example-switcher { display:flex; gap:6px; align-items:center; min-width:0; margin-bottom:8px; }
.brief-tabs {
  display:flex; flex:1; min-width:0; gap:3px; overflow-x:auto;
  overscroll-behavior-x:contain; scrollbar-width:none;
}
.brief-tabs::-webkit-scrollbar { display:none; }
.example-switcher:has(.tab-pagers:not([hidden]) .tabs-forward:enabled) .brief-tabs { mask-image:linear-gradient(to right,#000 calc(100% - 10px),transparent); }
.brief-tabs button,.tab-pagers button { color:var(--muted); background:transparent; border:0; }
.brief-tabs button {
  flex:none; padding:8px 10px; min-height:38px; font:580 13px/1.4 Instrument,Arial,sans-serif;
  border-bottom:2px solid transparent; white-space:nowrap; letter-spacing:-.015em;
}
.brief-tabs button:hover { color:var(--ink); background:#e0e6e1; }
.brief-tabs button[aria-selected="true"] { color:#173bb7; background:#e1e7fc; border-bottom-color:var(--blue); }
.brief-tabs button:focus-visible { outline-offset:-3px; }
.tab-pagers { display:flex; flex:none; border-left:1px solid #acb7af; padding-left:4px; }
.tab-pagers button { display:grid; place-items:center; width:33px; height:38px; }
.tab-pagers button::after {
  content:""; width:8px; height:8px; border:solid currentColor; border-width:1.5px 1.5px 0 0;
  transform:rotate(45deg); margin-right:3px;
}
.tab-pagers .tabs-back::after { transform:rotate(-135deg); margin-right:0; margin-left:3px; }
.tab-pagers button:hover:enabled { color:var(--blue); background:#e0e6e1; }
.tab-pagers button:disabled { color:#a5afaa; cursor:default; }
.example-chat { border:1px solid #929f98; background:#fff; }
.chat-sender {
  display:flex; align-items:center; gap:9px; padding:12px clamp(13px,2.2vw,30px) 4px;
  background:#f9faf7;
}
.chat-sender img { display:block; width:30px; height:30px; flex:none; }
.chat-sender strong { font-size:19px; font-weight:640; line-height:1.2; letter-spacing:-.045em; }
.chat-sender span { margin-left:auto; color:#56625d; font:520 10px/1.35 ui-monospace,Consolas,monospace; letter-spacing:.03em; }
.example-panel {
  --panel-inset:clamp(13px,2.2vw,30px);
  padding:0 var(--panel-inset) clamp(19px,2.7vw,38px);
  max-height:min(72svh,780px); overflow-y:auto; scrollbar-color:#98a39f #f5f6f3;
}
.example-intro {
  margin:0 calc(-1 * var(--panel-inset)) clamp(13px,2vw,24px);
  padding:4px var(--panel-inset) 13px; border-bottom:1px solid #bac4bd;
  background:#f9faf7; color:#465451; font-size:clamp(14px,1.1vw,16px); line-height:1.45;
}
.message-time { margin-bottom:14px; text-align:center; color:#62706c; font:500 11px/1.4 Instrument,Arial,sans-serif; }
.incoming-message {
  width:fit-content; max-width:min(94%,54ch); padding:clamp(11px,1.2vw,17px) clamp(12px,1.45vw,20px);
  background:#eef1f4; color:#1e2c37; font:450 clamp(15px,1.28vw,18px)/1.47 Instrument,Arial,sans-serif;
  letter-spacing:-.012em; overflow-wrap:break-word;
}
.incoming-message p+p { margin-top:.7em; }
.source-cite { white-space:nowrap; color:#1b40b6; text-decoration:underline; text-decoration-color:#869ddc; text-underline-offset:.16em; text-decoration-thickness:1px; font-weight:570; }
.source-cite svg { display:inline-block; width:.92em; height:.92em; vertical-align:-.1em; margin-right:.17em; }
.pack-message { max-width:100%; font-size:clamp(15px,1.1vw,17px); }
.pack-message .source-cite { white-space:normal; }
.pack-message .cite-start { white-space:nowrap; }
.pack-message code { display:inline-block; background:#e0e6e9; padding:0 .25em; font-size:.83em; }
.pack-message ul { margin:.35em 0 .85em; padding-left:1.25em; }
.pack-message li+li { margin-top:.45em; }
.faq-list a { color:#2345a0; font-weight:590; text-decoration:underline; text-underline-offset:3px; }
@media(max-width:650px) {
  .example-switcher { margin-bottom:6px; gap:3px; }
  .brief-tabs { gap:1px; }
  .brief-tabs button { min-height:40px; padding-inline:8px; }
  .tab-pagers { padding-left:2px; }
  .tab-pagers button { width:29px; height:40px; }
  .message-time { margin-bottom:10px; }
}
.faq-list summary { padding:8px 0; cursor:pointer; }
.faq { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(30px,7vw,105px); padding-block:clamp(44px,5.6vw,82px); }
.faq-list { border-top:2px solid var(--ink); }
.faq-list details { padding:6px 0; border-bottom:1px solid var(--rule); }
.faq-list summary { display:flex; align-items:baseline; justify-content:space-between; gap:15px; font:600 clamp(16px,1.4vw,21px)/1.35 Instrument,Arial,sans-serif; letter-spacing:-.028em; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; color:#2041a1; font:500 18px/1 ui-monospace,monospace; }
.faq-list details[open] summary::after { content:'−'; }
.faq-list p { margin:2px 0 10px; color:var(--muted); max-width:64ch; }
.country { border-top:1px solid var(--rule); }
.site-footer { display:block; padding:0; border-top:2px solid var(--ink); background:#eaf0e9; }
.footer-grid { display:grid; grid-template-columns:1.3fr 1fr .85fr; gap:22px; padding-block:30px 40px; }
.site-footer h2 { margin-bottom:9px; color:#405057; font:590 10px/1.4 ui-monospace,Consolas,monospace; text-transform:uppercase; letter-spacing:.08em; }
.site-footer p,.site-footer address,.site-footer a { font-size:14px; }
.site-footer address { margin-top:7px; font-style:normal; }
.site-footer a { text-decoration:underline; text-underline-offset:3px; }
.site-footer .brand { gap:8px; font-size:22px; }
.footer-product>p { margin-top:6px; }
@media(max-width:960px){.faq{gap:5%;}}
@media(max-width:650px){.hero-feel{margin-top:17px;}.faq{grid-template-columns:1fr;gap:18px;}.footer-grid{grid-template-columns:1fr 1fr;gap:23px 12px;}.footer-product{grid-column:1/-1;}}
@media(max-width:370px){.footer-grid{grid-template-columns:1fr;}.footer-product{grid-column:auto;}}
