:root {
  --paper:#f5f3e8;
  --poster:#eeedcf;
  --ink:#303321;
  --muted:#61634c;
  --line:#30332130;
  --closing:#e8e7c6;
  --serif:'Cormorant Garamond',Georgia,serif;
  --brand:'Instrument Serif',Georgia,serif;
  --sans:'DM Sans',Arial,sans-serif;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23grain)' opacity='.44' d='M0 0h180v180H0z'/%3E%3C/svg%3E");
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:2rem; }
body { margin:0; background:var(--paper); color:var(--ink); font:1rem/1.65 var(--sans); -webkit-font-smoothing:antialiased; position:relative; isolation:isolate; }
/* Grain sits beneath the content, so letterforms remain crisp. */
body::before { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background-image:var(--grain); opacity:.18; }
a { color:inherit; text-decoration:none; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
a:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { text-wrap:balance; font-weight:500; }
p { text-wrap:pretty; }
.skip-link { position:absolute; left:20px; top:-90px; background:var(--paper); padding:15px; z-index:10; }
.skip-link:focus { top:10px; }
.header { max-width:1560px; margin:auto; padding:30px 4%; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.wordmark { font:3.7rem/.8 var(--brand); letter-spacing:-.055em; display:flex; align-items:flex-end; padding-bottom:5px; }
.wordmark span { font:500 .75rem/1 var(--sans); letter-spacing:0; margin:0 0 2px 13px; }
.header nav { display:flex; gap:32px; align-items:center; font-size:.875rem; }
.header nav>a { min-height:44px; display:inline-flex; align-items:center; }
.pill { display:inline-flex; align-items:center; justify-content:center; gap:28px; border:1px solid var(--ink); border-radius:30px; min-height:46px; padding:10px 22px; font-size:.875rem; transition:background .2s,color .2s; }
.pill:hover { background:var(--ink); color:var(--paper); }
.paper-surface { position:relative; isolation:isolate; border:1px solid var(--line); border-radius:5px; background:var(--poster); }
.paper-surface::before { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background-image:var(--grain); opacity:.24; border-radius:inherit; }
.poster { margin:0 18px; padding:48px 30px 42px; display:flex; flex-direction:column; align-items:center; }
.poster h1 { font:500 clamp(3.75rem,7.4vw,6.8rem)/1.02 var(--serif); letter-spacing:-.045em; text-align:center; }
.poster h1 span { white-space:nowrap; }
.edge-caption { position:absolute; top:50%; color:var(--muted); font-size:.75rem; line-height:1.4; letter-spacing:.035em; white-space:nowrap; writing-mode:vertical-rl; transform:translateY(-50%); pointer-events:none; }
.edge-caption-left { left:26px; transform:translateY(-50%) rotate(180deg); }
.edge-caption-right { right:26px; }
.coin-wrap { width:min(30vw,400px); margin:24px auto 26px; perspective:1000px; }
.coin { width:100%; height:auto; aspect-ratio:1; object-fit:contain; display:block; filter:drop-shadow(0 14px 12px #35342522); transform:rotate(-7deg); }
.coin-wrap { position:relative; margin-bottom:50px; }
.coin-trigger { display:block; width:100%; border:0; padding:0; background:transparent; border-radius:50%; cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.coin-trigger:focus-visible { outline:2px solid var(--ink); outline-offset:9px; }
.coin-hint { position:absolute; top:calc(100% + 5px); left:50%; transform:translateX(-50%); min-height:44px; padding:8px 14px; border:0; border-radius:5px; background:transparent; white-space:nowrap; color:var(--muted); font:italic 500 1.1rem/1.3 var(--serif); cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.coin-hint span { display:inline-block; text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:4px; animation:rain-nudge 4.8s ease-in-out 1.2s 1; }
.coin-hint:hover { color:var(--ink); }
.coin-hint:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.coin-hint[data-used="true"] span { animation:none; }
/* Move only the lettering, leaving a steady touch target. The nudge ends on its own. */
@keyframes rain-nudge {
  0%,12%,24%,64%,76%,88%,100% { transform:translateY(0); }
  18%,70% { transform:translateY(-5px); }
  82% { transform:translateY(-2px); }
}
.coin-rain { position:fixed; inset:0; overflow:hidden; pointer-events:none; z-index:100; contain:strict; }
.rain-coin { position:absolute; top:0; left:0; display:block; object-fit:contain; will-change:transform,opacity; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.hero-copy { max-width:470px; text-align:center; }
.hero-copy p { font-size:1.0625rem; line-height:1.7; }
.text-link { display:inline-flex; gap:20px; align-items:center; border-bottom:1px solid var(--line); min-height:46px; padding:8px 0; margin-top:15px; font-size:.875rem; line-height:1.5; }
.text-link:hover { border-color:var(--ink); }
.arrow-icon { width:1.15rem; height:1.15rem; display:block; flex-shrink:0; }
.section-pad { width:min(100%,1380px); margin:auto; padding:100px 7.5%; }
.philosophy-content { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:70px; align-items:center; }
.section-kicker { font-size:.875rem; margin-bottom:24px; color:var(--muted); }
.philosophy h2 { font:500 clamp(2.8rem,4.7vw,4.1rem)/1.1 var(--serif); letter-spacing:-.035em; }
.philosophy-copy { max-width:43ch; justify-self:end; font-size:1.0625rem; line-height:1.85; }
.approach { padding-top:4px; padding-bottom:96px; }
.approach-heading { border-top:1px solid var(--line); padding-top:42px; margin-bottom:42px; }
.approach h2 { font:500 clamp(2.25rem,3.6vw,3.25rem)/1.15 var(--serif); letter-spacing:-.035em; text-align:left; text-wrap:initial; }
.approach-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; }
.step { font:italic 500 1.5rem/1.3 var(--serif); color:var(--muted); }
.approach h3 { font:500 clamp(1.6rem,2.4vw,1.95rem)/1.2 var(--serif); letter-spacing:-.025em; text-align:left; text-wrap:initial; margin:15px 0 12px; }
.approach article p { font-size:1rem; line-height:1.75; max-width:30ch; }
.closing { margin:0 18px; padding:62px 24px 66px; background:var(--closing); text-align:center; }
.closing-prelude { font-size:.875rem; color:var(--muted); }
.closing h2 { font:500 clamp(3.5rem,7.2vw,6.6rem)/1.02 var(--serif); letter-spacing:-.045em; margin:22px 0 30px; }
.closing-link { background:#f4f2d4; min-height:48px; }
.footer { max-width:1560px; margin:auto; padding:22px 4%; display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:.75rem; color:var(--muted); }
.footer a { min-height:44px; display:inline-flex; align-items:center; gap:12px; }
@media(min-width:1600px) { .poster { padding-top:60px; padding-bottom:48px; } }
@media(max-width:1000px) {
  .philosophy-content { gap:40px; }.section-pad { padding-inline:6%; }
  .approach-grid { gap:30px; }.coin-wrap { width:360px; max-width:65%; }
}
@media(max-width:760px) {
  .edge-caption { display:none; }
  html { scroll-padding-top:24px; }
  .header { padding:24px; }.wordmark { font-size:3.35rem; }
  .header nav { gap:20px; }.header nav>a:first-child { display:none; }
  .pill { gap:18px; padding:9px 18px; }
  .poster { margin:0 10px; padding:34px 24px 30px; }
  .poster h1 { font-size:clamp(3.35rem,11vw,5rem); line-height:1; letter-spacing:-.04em; }
  .poster h1 span { display:block; }
  .coin-wrap { width:clamp(230px,65vw,320px); max-width:95%; margin:28px auto 52px; }
  .hero-copy { max-width:33ch; }.hero-copy p { font-size:1rem; line-height:1.75; }
  .text-link { margin-top:14px; }
  .section-pad { padding:62px 26px; }
  .philosophy-content { grid-template-columns:1fr; gap:26px; }
  .section-kicker { margin-bottom:18px; }
  .philosophy h2 { font-size:clamp(2.55rem,8.2vw,3.7rem); line-height:1.1; }
  .philosophy-copy { justify-self:start; max-width:43ch; font-size:1rem; line-height:1.8; }
  .approach { padding-top:0; }.approach-heading { padding-top:30px; margin-bottom:30px; }
  .approach h2 { font-size:2.4rem; max-width:14ch; }
  .approach-grid { grid-template-columns:1fr; gap:28px; }
  .approach-grid article { display:grid; grid-template-columns:64px minmax(0,1fr); gap:8px 18px; }
  .step { grid-column:1; grid-row:1/3; padding-top:3px; font-size:1.3rem; }
  .approach h3 { grid-column:2; margin:0; font-size:1.8rem; }
  .approach article p { grid-column:2; max-width:38ch; font-size:1rem; }
  .closing { margin:0 10px; padding:42px 22px 44px; }
  .closing h2 { font-size:clamp(3.15rem,10.3vw,4.9rem); line-height:1.03; }
  .footer { padding:14px 24px; }
}
@media(max-width:360px) {
  .header { padding:22px 20px; }.wordmark { font-size:3rem; }.wordmark span { margin-left:9px; }
  .poster { padding-inline:18px; }.poster h1 { font-size:3.15rem; }
  .coin-wrap { width:230px; }.section-pad { padding-inline:22px; }
  .approach-grid article { grid-template-columns:1fr; gap:0; }
  .step { grid-column:1; grid-row:auto; margin-bottom:9px; }
  .approach h3,.approach article p { grid-column:1; }.approach h3 { margin-bottom:9px; }
  .closing-link { padding-inline:16px; gap:16px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }*,*:before,*:after { transition:none!important; animation:none!important; }
}
