@font-face { font-family: ReportNeue; src: url("fonts/PPNeueMontreal-Variable.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
:root { --report-paper:#f5f2ec; --report-cream:#e8dfcf; --report-clay:#5a241e; --report-clay-deep:#321714; --report-ink:#21161d; --report-violet:#7650d6; --report-line:rgba(54,27,25,.18); --report-radius:28px; }
body.report-story-page { color:var(--report-ink); background:#fff; }
.report-story { overflow:clip; font-family:ReportNeue,Arial,sans-serif; }
.report-story h1,.report-story h2,.report-story h3,.report-story p,.report-story figure { margin:0; }

.annual-hero { --story-progress:0; position:relative; min-height:calc(100vh - 120px); margin:120px 40px 0; overflow:hidden; display:grid; place-items:center; border-radius:24px 24px 24px 0; color:#fff; background:var(--report-clay); isolation:isolate; }
.annual-hero__media { position:absolute; inset:-4%; width:108%; height:108%; object-fit:cover; filter:saturate(.78) contrast(1.04); transform:scale(calc(1.03 + var(--story-progress) * .07)); transition:transform .08s linear; z-index:-3; }
.annual-hero__wash { position:absolute; inset:0; background:linear-gradient(180deg,rgba(46,19,18,.48),rgba(79,29,25,.82)),radial-gradient(circle at 50% 38%,rgba(165,104,83,.1),transparent 52%); mix-blend-mode:multiply; z-index:-2; }
.annual-hero__copy { max-width:1040px; padding:84px 32px 120px; text-align:center; transform:translateY(calc(var(--story-progress) * -36px)); opacity:calc(1 - var(--story-progress) * .65); }
.annual-hero__copy p,.annual-eyebrow,.annual-section-head>p { margin-bottom:28px; font:500 13px/1.2 "SimplonMono",monospace; letter-spacing:.12em; text-transform:uppercase; }
.annual-hero__copy h1 { font-size:clamp(72px,8.5vw,154px); line-height:.82; letter-spacing:-.075em; font-weight:760; }
.annual-hero__copy h1 strong { color:var(--report-cream); font-weight:inherit; }
.annual-hero__copy>span { display:block; max-width:560px; margin:42px auto 0; font-size:21px; line-height:1.35; }
.annual-scroll { position:absolute; left:50%; bottom:28px; min-height:54px; display:flex; align-items:center; gap:18px; padding:8px 9px 8px 22px; border:1px solid rgba(255,255,255,.35); border-radius:30px; color:#fff; transform:translateX(-50%); background:rgba(35,17,17,.28); backdrop-filter:blur(12px); }
.annual-scroll i { width:38px; height:38px; border-radius:50%; background:radial-gradient(circle,#fff 1.3px,transparent 1.8px) 0 0/6px 6px; }

.annual-statement,.annual-included,.annual-sample,.annual-flow,.annual-faq { padding:150px max(40px,calc((100vw - 1540px)/2)); }
.annual-statement { background:var(--report-paper); }
.annual-statement>h2,.annual-section-head h2 { max-width:1240px; font-size:clamp(54px,6.4vw,112px); line-height:.92; letter-spacing:-.065em; font-weight:440; }
.annual-statement>h2 em,.annual-section-head h2 em { color:var(--report-violet); font-weight:inherit; }
.annual-statement__grid { margin-top:92px; display:grid; grid-template-columns:.55fr 1.45fr; gap:32px; align-items:end; }
.annual-statement__grid>p { max-width:420px; padding-bottom:12px; font-size:22px; line-height:1.42; color:#695d69; }
.annual-statement__grid figure { height:min(62vw,760px); overflow:hidden; border-radius:var(--report-radius); background:#d9c9ee; }
.annual-statement__grid img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1); }
.annual-statement__grid figure:hover img { transform:scale(1.025); }

.annual-included { background:#fff; }
.annual-section-head { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr); column-gap:48px; align-items:end; }
.annual-section-head>p { grid-column:1/-1; }
.annual-section-head>span { max-width:430px; padding-bottom:8px; font-size:20px; line-height:1.42; color:#716572; }
.annual-included__grid { margin-top:78px; display:grid; grid-template-columns:1.25fr .75fr; gap:24px; }
.annual-report-card { position:relative; min-height:680px; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; padding:52px; border-radius:var(--report-radius); background:#d7c9ef; isolation:isolate; }
.annual-report-card--matching { background:#efd4c5; }
.annual-report-card__copy { position:relative; z-index:2; max-width:570px; }
.annual-report-card small { font:500 12px/1.2 "SimplonMono",monospace; letter-spacing:.1em; text-transform:uppercase; }
.annual-report-card h3 { margin-top:22px; font-size:clamp(52px,5vw,88px); line-height:.9; letter-spacing:-.06em; font-weight:500; }
.annual-report-card p { max-width:510px; margin-top:24px; font-size:20px; line-height:1.4; }
.annual-report-card a { width:fit-content; min-height:56px; margin-top:34px; display:inline-flex; align-items:center; gap:18px; padding:0 20px 0 24px; border:1px solid rgba(34,19,30,.3); border-radius:30px; color:inherit; background:rgba(255,255,255,.28); }
.annual-report-card a span { font-size:22px; }
.annual-report-card>img { position:absolute; right:-8%; bottom:-9%; width:min(49%,470px); filter:drop-shadow(0 34px 35px rgba(30,14,25,.22)); transform:rotate(-5deg); transition:transform .7s cubic-bezier(.16,1,.3,1); z-index:1; }
.annual-report-card--matching>img { width:min(62%,430px); right:-13%; transform:rotate(6deg); }
.annual-report-card:hover>img { transform:rotate(-2deg) translateY(-10px) scale(1.04); }
.annual-report-card--matching:hover>img { transform:rotate(3deg) translateY(-10px) scale(1.04); }

.annual-proof { min-height:74vh; padding:80px max(40px,calc((100vw - 1540px)/2)); display:grid; grid-template-columns:repeat(3,1fr); gap:16px; align-items:center; color:#fff; background:var(--report-clay); }
.annual-proof>div { min-height:420px; overflow:hidden; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.2); border-radius:50%; text-align:center; isolation:isolate; }
.annual-proof img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.2; filter:grayscale(.35) saturate(.7); z-index:-2; }
.annual-proof>div::after { content:""; position:absolute; inset:0; background:rgba(64,25,22,.54); z-index:-1; }
.annual-proof strong { font-size:clamp(94px,10vw,172px); line-height:.75; letter-spacing:-.08em; font-weight:650; }
.annual-proof span { max-width:220px; margin-top:34px; font:500 13px/1.35 "SimplonMono",monospace; letter-spacing:.08em; text-transform:uppercase; }

.annual-catalog { padding:150px max(40px,calc((100vw - 1540px)/2)); color:#fff; background:#2d1715; }
.annual-catalog .annual-section-head--dark { grid-template-columns:minmax(0,1.2fr) minmax(300px,.48fr); row-gap:24px; align-items:end; padding-bottom:56px; border-bottom:1px solid rgba(255,255,255,.18); }
.annual-catalog .annual-section-head--dark>p { margin-bottom:10px; }
.annual-catalog .annual-section-head--dark h2 { max-width:900px; font-size:clamp(58px,5.6vw,94px); line-height:.94; }
.annual-catalog .annual-section-head--dark h2 em { color:#d6c2ff; }
.annual-section-head--dark>span { max-width:360px; padding:0 0 8px; color:rgba(255,255,255,.72); }
.annual-catalog .annual-status { position:relative; z-index:1; margin:28px 0 18px; padding:17px 20px; border:1px solid rgba(255,255,255,.16); border-radius:16px; font:500 11px/1.45 "SimplonMono",monospace; letter-spacing:.075em; text-transform:uppercase; color:#f0e8f5; background:rgba(255,255,255,.055); }
.annual-catalog .catalog-tools { margin:0 0 34px; display:flex; flex-wrap:wrap; gap:8px; }
.annual-catalog .catalog-tools button { min-height:48px; padding:0 22px; border:1px solid rgba(255,255,255,.25); border-radius:25px; color:#fff; background:rgba(255,255,255,.07); }
.annual-catalog .catalog-tools button[aria-pressed="true"] { color:var(--report-clay-deep); background:var(--report-cream); }
.annual-catalog .catalog-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:16px; }
.annual-catalog .catalog-card { --card-surface:#e9dfcf; position:relative; grid-column:span 4; min-height:360px; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start; padding:34px; border:0; border-radius:30px 30px 30px 0; color:#21161d; background:var(--card-surface); transition:transform .35s cubic-bezier(.16,1,.3,1),filter .25s ease; isolation:isolate; }
.annual-catalog .catalog-card:nth-child(1),.annual-catalog .catalog-card:nth-child(2) { grid-column:span 6; min-height:430px; padding:42px; }
.annual-catalog .catalog-card:nth-child(4n+2) { --card-surface:#d8c9ef; }
.annual-catalog .catalog-card:nth-child(4n+3) { --card-surface:#efd2c2; }
.annual-catalog .catalog-card:nth-child(4n) { --card-surface:#c9d9d8; }
.annual-catalog .catalog-card::after { content:var(--catalog-index); position:absolute; right:-.02em; bottom:-.24em; z-index:-1; color:rgba(33,22,29,.075); font-size:190px; font-weight:720; line-height:1; letter-spacing:-.1em; }
.annual-catalog .catalog-card:nth-child(-n+2)::after { font-size:250px; }
.annual-catalog .catalog-card:hover { transform:translateY(-5px); filter:brightness(1.025); }
.annual-catalog .catalog-card small { font:600 11px/1 "SimplonMono",monospace; letter-spacing:.11em; text-transform:uppercase; color:#5f4d5b; }
.annual-catalog .catalog-card h3 { max-width:12ch; margin-top:28px; font-size:40px; line-height:.95; letter-spacing:-.05em; font-weight:500; }
.annual-catalog .catalog-card:nth-child(-n+2) h3 { margin-top:38px; font-size:clamp(46px,4.1vw,68px); }
.annual-catalog .catalog-card p { max-width:38ch; margin-top:18px; font-size:17px; line-height:1.45; color:#544751; }
.annual-catalog .catalog-card a { width:100%; min-height:56px; margin-top:auto; display:flex; align-items:center; justify-content:center; padding:0 18px; border:1px solid rgba(33,22,29,.24); border-radius:29px; color:#171116; background:rgba(255,255,255,.55); font-weight:520; text-align:center; }
.annual-catalog .catalog-card a:hover,.annual-catalog .catalog-card a:focus-visible { color:#fff; background:#21161d; outline:none; }
.annual-catalog .catalog-card a:focus-visible { box-shadow:0 0 0 3px var(--card-surface),0 0 0 5px #21161d; }
.annual-catalog .catalog-card a[data-paid-state="paused"]::after { content:" · paid paused"; color:#5c4d58; }
.annual-catalog .catalog-card a[data-paid-state="paused"]:hover::after,.annual-catalog .catalog-card a[data-paid-state="paused"]:focus-visible::after { color:#ddd1dc; }

.annual-sample { background:var(--report-paper); }
.annual-sample__stage { margin-top:78px; display:grid; grid-template-columns:.72fr 1.28fr; gap:24px; align-items:stretch; }
.annual-sample__cover { min-height:760px; overflow:hidden; position:relative; display:grid; place-items:center; border-radius:var(--report-radius); background:#6d3eb9 url("assets/grahaguru/account-editorial.png") center/cover no-repeat; }
.annual-sample__cover::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(52,22,63,.08),rgba(52,22,63,.46)); }
.annual-sample__cover img { position:relative; width:min(58%,420px); filter:drop-shadow(0 40px 45px rgba(36,18,46,.36)); transform:rotate(-5deg); z-index:1; }
.annual-sample__cover figcaption { position:absolute; left:28px; bottom:26px; font:500 11px/1 "SimplonMono",monospace; letter-spacing:.1em; text-transform:uppercase; color:#fff; z-index:2; }
.annual-sample .report-sandbox { min-height:760px; overflow:hidden; border:1px solid var(--report-line); border-radius:var(--report-radius); background:#fff; box-shadow:0 30px 70px rgba(57,39,60,.1); }
.annual-sample .report-sandbox iframe { width:100%; height:100%; border:0; background:#fff; }

.annual-flow { background:#fff; }
.annual-flow__grid { margin-top:70px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.annual-flow__grid article { min-height:390px; display:flex; flex-direction:column; padding:32px; border:1px solid var(--report-line); border-radius:var(--report-radius); }
.annual-flow__grid article>span { font:500 12px/1 "SimplonMono",monospace; color:var(--report-violet); }
.annual-flow__grid h3 { margin-top:auto; font-size:38px; line-height:.98; letter-spacing:-.04em; font-weight:450; }
.annual-flow__grid p { margin-top:22px; font-size:17px; line-height:1.45; color:#716572; }

.annual-faq { background:var(--report-cream); }
.annual-faq .faq-list { margin-top:62px; border-top:1px solid var(--report-line); }
.annual-faq .faq-item { border-bottom:1px solid var(--report-line); }
.annual-faq .faq-item button { width:100%; min-height:104px; display:flex; align-items:center; justify-content:space-between; padding:0; border:0; color:inherit; background:transparent; font:450 30px/1.1 ReportNeue,Arial,sans-serif; text-align:left; }
.annual-faq .faq-plus { font-size:40px; font-weight:250; transition:transform .3s ease; }
.annual-faq .faq-item.is-open .faq-plus { transform:rotate(45deg); }
.annual-faq .faq-answer { display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s ease; }
.annual-faq .faq-item.is-open .faq-answer { grid-template-rows:1fr; }
.annual-faq .faq-answer>div { overflow:hidden; }
.annual-faq .faq-answer p { max-width:760px; padding:0 0 34px; font-size:18px; line-height:1.5; color:#6d6069; }

.annual-final { position:relative; min-height:90vh; overflow:hidden; display:grid; place-items:center; color:#fff; background:var(--report-clay); isolation:isolate; }
.annual-final>video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(.75); z-index:-3; }
.annual-final>div { position:absolute; inset:0; background:rgba(52,20,18,.72); z-index:-2; }
.annual-final>section { max-width:1120px; padding:100px 28px; text-align:center; }
.annual-final p { font:500 13px/1.2 "SimplonMono",monospace; letter-spacing:.1em; text-transform:uppercase; }
.annual-final h2 { margin-top:30px; font-size:clamp(62px,7.4vw,128px); line-height:.86; letter-spacing:-.07em; font-weight:620; }
.annual-primary,.annual-secondary { min-height:60px; margin-top:44px; display:inline-flex; align-items:center; gap:28px; padding:0 24px; border:1px solid rgba(255,255,255,.4); border-radius:31px; color:#fff; }
.annual-primary { color:var(--report-clay); background:var(--report-paper); }
.annual-secondary { margin-left:8px; }

.report-reveal { opacity:1; transform:translateY(34px); transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1); }
.report-reveal.is-visible { opacity:1; transform:none; }

@media (max-width:900px) {
  .annual-hero { min-height:690px; margin:80px 16px 0; border-radius:24px 24px 24px 0; }
  .annual-hero__copy { padding-inline:22px; }
  .annual-hero__copy h1 { font-size:clamp(64px,20vw,92px); }
  .annual-hero__copy>span { font-size:18px; }
  .annual-scroll { width:calc(100% - 32px); justify-content:space-between; }
  .annual-statement,.annual-included,.annual-sample,.annual-flow,.annual-faq,.annual-catalog { padding:92px 18px; }
  .annual-statement>h2,.annual-section-head h2 { font-size:clamp(52px,15vw,76px); }
  .annual-statement__grid,.annual-section-head,.annual-included__grid,.annual-sample__stage,.annual-flow__grid { grid-template-columns:1fr; }
  .annual-statement__grid { margin-top:54px; }
  .annual-statement__grid figure { height:520px; order:-1; }
  .annual-section-head>span { margin-top:28px; }
  .annual-included__grid { margin-top:48px; }
  .annual-report-card { min-height:570px; padding:34px 28px; }
  .annual-report-card h3 { font-size:58px; }
  .annual-report-card>img { width:62%; }
  .annual-proof { min-height:0; padding:80px 18px; grid-template-columns:1fr; }
  .annual-proof>div { min-height:354px; }
  .annual-catalog .annual-section-head--dark { grid-template-columns:1fr; row-gap:0; padding-bottom:38px; }
  .annual-catalog .annual-section-head--dark h2 { font-size:clamp(52px,14vw,72px); }
  .annual-catalog .annual-section-head--dark>span { margin-top:26px; }
  .annual-catalog .annual-status { margin-top:22px; }
  .annual-catalog .catalog-grid { grid-template-columns:1fr; }
  .annual-catalog .catalog-card,.annual-catalog .catalog-card:nth-child(1),.annual-catalog .catalog-card:nth-child(2) { grid-column:auto; min-height:340px; padding:30px; }
  .annual-catalog .catalog-card:nth-child(-n+2) h3 { margin-top:28px; font-size:44px; }
  .annual-sample__cover,.annual-sample .report-sandbox { min-height:680px; }
  .annual-flow__grid article { min-height:320px; }
  .annual-faq .faq-item button { min-height:92px; font-size:24px; }
  .annual-final { min-height:760px; }
  .annual-final h2 { font-size:64px; }
  .annual-primary,.annual-secondary { width:100%; justify-content:center; margin:12px 0 0; }
  .annual-primary { margin-top:34px; }
}

@media (prefers-reduced-motion:reduce) {
  .annual-hero__media,.annual-hero__copy,.annual-statement__grid img,.annual-report-card>img,.annual-catalog .catalog-card,.report-reveal { transition:none!important; transform:none!important; }
}
