/* Registered device art and timelines remain in their existing stylesheets. */
html { -webkit-touch-callout:none; }
*,*::before,*::after { -webkit-user-select:none; user-select:none; }
::selection { background:transparent; color:inherit; text-shadow:none; }
img,svg,canvas { -webkit-user-drag:none; }

.content-wide,.nav-inner { max-width:var(--content-max); padding-inline:var(--page-gutter); }
.content-narrow { padding-inline:var(--page-gutter); }
.section-pad { padding-block:var(--section-spacing); }
.hero-description { margin-top:var(--title-to-subtitle); }
.hero-actions { margin-top:var(--copy-to-actions); }
.feature-grid { gap:var(--column-gutter); }
:where(a,button,input,summary,[tabindex]):focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.merch-section :where(a,button):focus-visible { outline-color:#fff; }
.segmented-control,.appearance-view.segmented-control {
  margin-inline:auto; min-inline-size:0; flex-wrap:wrap; max-width:100%;}
#appearance .appearance-float-stage { width:110%; margin-inline:-5%; }
#appearance .appearance-next { margin-top:20px;}
.navigation .nav-links { align-items:center; flex-wrap:nowrap; }
.navigation .nav-links a { display:inline-flex; align-items:center; min-height:44px; white-space:nowrap; }
.segmented-control .segment,.viewer-controls .segmented-control .segment { cursor:pointer;}
.segmented-control label { flex:0 0 auto;}
.segmented-control:disabled,.segmented-control .segment:disabled { cursor:default;}
.viewer-controls { gap:12px; }
.personal-section { padding-block:var(--personal-section-spacing); }
.personal-heading { margin:0; font-size:var(--personal-title-size); line-height:var(--personal-title-line); letter-spacing:var(--personal-title-tracking); font-weight:600; }
.personal-body { margin:0; color:var(--secondary); font-size:var(--personal-body-size); line-height:var(--personal-body-line); letter-spacing:-.15px; }
.personal-story { display:flex; flex-direction:column; gap:var(--heading-stack); min-width:0; }
.personal-links { display:flex; flex-wrap:wrap; align-items:center; gap:0 var(--cause-links-gap); }
.giving-layout { display:grid; grid-template-columns:minmax(0,590fr) minmax(0,330fr); align-items:center; gap:var(--giving-layout-gap); }
.contribution-card { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:var(--card-padding); background:var(--giving-surface); border:1px solid var(--giving-border); border-radius:var(--card-radius); }
.contribution-card .personal-label { color:var(--giving-accent);}
.contribution-card .contribution-value { margin:0; color:var(--ink); font-size:var(--contribution-size); line-height:var(--contribution-line); letter-spacing:-.28px; font-weight:600; }
.contribution-scope { color:var(--ink); }
.personal-caption { margin:0; color:var(--secondary);}
.rad-supporter { width:140px; height:64px; object-fit:contain; }
.giving-section .personal-story { gap:24px; }
.giving-section .personal-body { font-size:17px; line-height:25.5px; }
.giving-section .contribution-scope { font-size:16px; line-height:22.4px; }
.contribution-card .personal-label { color:var(--ink);}
.pricing-giving { margin:24px 0 28px; display:flex; align-items:center; gap:20px; padding:20px; color:var(--ink); background:var(--giving-surface); border:1px solid var(--giving-border); border-radius:16px; text-decoration:none; min-height:44px; }
.pricing-giving .giving-character { display:block; width:40px; height:40px; flex:none; }
.giving-note-copy { display:block; font-size:14px; line-height:19px; }
.giving-note-link { display:block; margin-top:6px; color:var(--giving-accent); font-size:13px; line-height:18px; }
.pricing-giving:hover .giving-note-link { text-decoration:underline; }
.pricing-giving:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
@media(max-width:650px) {
  .giving-section .personal-body { font-size:16px; line-height:24px; }
  .giving-section .contribution-scope { font-size:16px; line-height:22.4px; }
}
.cinematic-cta .cta-copy > p.final-giving { max-width:480px; margin:8px auto 0; font-size:13px; line-height:18px; }
.cta-copy .final-giving a { color:var(--link-blue); text-decoration:underline; text-underline-offset:3px; }
.merch-section { color:var(--text-on-ink); background:var(--ink); }
.merch-section .personal-body{ color:var(--muted-on-ink); }.merch-section .personal-caption,.merch-section .personal-label { color:var(--muted-on-ink);}
.merch-content { display:flex; flex-direction:column; gap:var(--merch-content-gap); }
.merch-hero { display:grid; grid-template-columns:minmax(0,374fr) minmax(0,570fr); gap:var(--merch-hero-gap); align-items:center; }
.merch-story { gap:var(--merch-story-gap); align-items:flex-start; }
.merch-header-photo { display:block; width:100%; height:336px; object-fit:cover; border-radius:var(--card-radius); }
.merch-title-mobile { display:none; }
.merch-products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--product-grid-gap); }
.merch-product { display:flex; gap:var(--product-content-gap); align-items:flex-start; color:inherit; min-width:0; border-radius:12px; }
.merch-product img { display:block; flex:none; width:96px; height:96px; object-fit:cover; border-radius:12px; }
.merch-product-copy { min-width:0; display:flex; flex-direction:column; gap:var(--product-caption-gap); }
.merch-product h3 { margin:0; font-size:17px; line-height:22.95px; letter-spacing:-.15px; font-weight:400; }
.merch-product:hover h3 { text-decoration:underline; text-underline-offset:4px; }
.footer-personal { display:flex; flex-wrap:wrap; gap:24px; margin-bottom:24px; }
.footer-personal a { display:inline-flex; align-items:center; min-height:44px; color:var(--ink); font-size:15px; }
.support-page { padding:96px 0; min-height:70vh; }
.support-page .personal-story { max-width:680px; margin-inline:auto; }
.support-page h1 { font-size:48px; line-height:52px; letter-spacing:-.28px; }
.policy-copy h2 { margin:32px 0 12px; font-size:24px; line-height:29px; letter-spacing:-.2px; }
.policy-copy p:not(.ui-label):not(.ui-caption),.policy-copy li { font-size:17px; line-height:25.5px; color:var(--secondary); }
.policy-copy ul { padding-left:22px; }
.policy-example { padding:24px; border-radius:24px; background:var(--wash); margin:24px 0; }
.policy-example label { display:block; margin-bottom:8px; }
.policy-example input { display:block; width:100%; max-width:200px; padding:12px; min-height:44px; border:1px solid var(--control-border); border-radius:12px; font:inherit; background:white; }
.policy-example output { display:block; margin-top:16px; font-size:24px; font-weight:600; }
.collection-intro { max-width:620px; margin-bottom:32px; }
.collection-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.collection-card { display:flex; flex-direction:column; gap:12px; padding:24px; border-radius:24px; background:var(--wash); scroll-margin-top:80px; }
.collection-card img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:12px; }
.collection-card h2 { margin:0; font-size:24px; }
.collection-card p { margin:0; font-size:15px; line-height:22px; }
#use-cases .scenario-card { flex-basis:clamp(360px,27vw,400px); }
#use-cases .scenario-card img { aspect-ratio:4 / 5; object-fit:contain; background:var(--wash); border:1px solid var(--line); }
#personalise .section-top { display:flex; flex-direction:column; align-items:center; gap:var(--title-to-subtitle); text-align:center; }
#personalise .section-top > div { width:100%; }
#personalise .section-top .section-description { flex:none; width:100%; max-width:560px; margin:0; }
.cta-copy .header-logo { display:flex; justify-content:center; width:fit-content; gap:10px; margin:0 auto 24px; }
.cta-copy .header-logo-mark img { width:32px; height:32px; }
.cta-copy .header-logo-wordmark img { width:117px; height:32px; }
/* Giving and the little club form a distinct, blue community chapter. */
#giving { background:#005ac6; color:#fff; }
#giving .personal-label{ color:#fff;}#giving .personal-heading,#giving .personal-body{ color:#fff; }
#giving :where(a,button):focus-visible { outline-color:#fff; }
#giving .contribution-card { background:#fff; border:0; color:var(--ink); }
#giving .contribution-card .personal-label{ color:var(--ink);}#giving .contribution-card .personal-body { color:var(--ink); }
.merch-banner { display:grid; grid-template-columns:1fr 1fr; padding:0; background:#eaf3ff; color:var(--ink); }
.merch-banner-photo { grid-area:1 / 2; display:block; width:100%; height:100%; }
.merch-banner-photo img { display:block; width:100%; height:100%; min-height:440px; object-fit:cover; object-position:center; }
.merch-banner::before { content:none; }
.merch-banner-content { grid-area:1 / 1; width:100%; display:flex; align-items:center; padding:56px max(32px,calc((100vw - 1160px) / 2)); padding-right:40px; }
.merch-banner-copy { max-width:440px; align-items:flex-start; }
.merch-banner .personal-label{ color:var(--ink);}.merch-banner .personal-heading { color:var(--ink); }
.merch-banner .personal-body { color:var(--secondary); }
.merch-banner :where(a,button):focus-visible { outline-color:var(--blue); }
.cinematic-cta { display:grid; isolation:isolate; background:#15211f; }
.cinematic-cta::before { content:""; position:absolute; inset:0 0 auto; height:clamp(320px,26vw,460px); z-index:1; background:linear-gradient(180deg,rgba(14,24,22,.88),rgba(14,24,22,.76) 65%,transparent); pointer-events:none; }
.cinematic-cta .cta-photo { grid-area:1 / 1; display:block; width:100%; margin:0; }
.cinematic-cta[data-photo-checkpoint] .cta-photo img { display:block; width:100%; height:auto; aspect-ratio:auto; object-fit:contain; border-radius:0; }
.cinematic-cta .cta-copy { grid-area:1 / 1; align-self:start; z-index:2; width:calc(100% - 80px); max-width:840px; margin:0 auto; padding:24px 0 0; color:#fff; }
.cinematic-cta .cta-copy .header-logo { margin-bottom:12px; }
.cinematic-cta .cta-logo img { filter:brightness(0) invert(1); }
.cinematic-cta .cta-copy .cta-description { margin:12px 0 0; font-size:16px; line-height:24px; }
.cinematic-cta .cta-actions { display:flex; align-items:center; justify-content:center; gap:20px; margin-top:16px; }
.cinematic-cta .cta-actions .button { flex-shrink:0;}
.cinematic-cta .cta-actions .offer-note { max-width:230px; margin:0; color:#fff;}
.cinematic-cta .cta-actions .final-giving { max-width:280px; margin:0; color:#fff; font-size:12px; line-height:16px; }
.cinematic-cta .cta-actions .final-giving a { color:inherit; }
@media(min-width:900px) and (max-width:1199px) {
  .cinematic-cta .cta-copy { padding-top:8px; }
  .cinematic-cta .cta-copy .header-logo { margin-bottom:4px; }
  .cinematic-cta .cta-copy .header-logo-mark img { width:26px; height:26px; }
  .cinematic-cta .cta-copy .header-logo-wordmark img { width:95px; height:26px; }
  .cinematic-cta .cta-heading { font-size:clamp(32px,3.35vw,40px); }
  .cinematic-cta .cta-copy .cta-description { margin-top:6px; }
  .cinematic-cta .cta-actions { margin-top:8px; }
}
@media(max-width:899px) {
  .merch-banner { grid-template-columns:1fr; background:#eaf3ff; color:var(--ink); }
  .merch-banner-photo { grid-area:1 / 1; }
  .merch-banner-photo img { aspect-ratio:4 / 3; height:auto; min-height:0; object-fit:cover; }
  .merch-banner::before { display:none; }
  .merch-banner-content { grid-area:2 / 1; align-items:flex-start; padding:32px 28px 40px; background:#eaf3ff; }
  .merch-banner-copy { max-width:420px; gap:12px; }
  .merch-banner .personal-label{ color:var(--ink);}.merch-banner .personal-heading { color:var(--ink); }
  .merch-banner .personal-body { color:var(--secondary); }
  .merch-banner :where(a,button):focus-visible { outline-color:var(--blue); }
  .cinematic-cta::before { height:440px; }
  .cinematic-cta .cta-copy { width:calc(100% - 2 * var(--page-gutter)); }
  .cinematic-cta .cta-actions { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:12px 16px; max-width:460px; margin:16px auto 0; }
  .cinematic-cta .cta-actions .offer-note { max-width:none;}
  .cinematic-cta .cta-actions .final-giving { grid-column:1 / -1; max-width:none; }
}
@media(min-width:651px) and (max-width:1000px) {
  .giving-layout { gap:32px; grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr); }
  .merch-hero { gap:28px; grid-template-columns:1fr 1.2fr; }
  .merch-product { flex-direction:column; }
  .collection-grid { gap:16px; }
  .collection-card { padding:16px; }
}
@media(max-width:650px) {
  .navigation .nav-inner { gap:8px; }
  .navigation .nav-links { display:flex; gap:0; margin:0 0 0 auto; }
  .navigation .nav-links a:not(.nav-merch) { display:none; }
  #use-cases .scenario-card { flex-basis:calc(100vw - 72px); }
  .cta-copy .header-logo-mark img { width:26px; height:26px; }
  .cta-copy .header-logo-wordmark img { width:95px; height:26px; }
  .giving-layout { display:flex; flex-direction:column; align-items:stretch; gap:var(--giving-layout-gap); }
  .merch-hero { display:flex; flex-direction:column; align-items:stretch; gap:var(--merch-hero-gap); }
  .merch-header-photo { height:auto; aspect-ratio:1.5; }
  .desktop-scope-break { display:none; }
  .merch-title-desktop { display:none; }.merch-title-mobile { display:block; }
  .merch-products { gap:var(--product-grid-gap); }
  .merch-product { flex-direction:column; gap:var(--product-content-gap); }
  .merch-product img { width:100%; height:auto; aspect-ratio:1; }
  .merch-product h3 { font-size:13px; line-height:18px; letter-spacing:0; }
  .merch-product-copy>.personal-caption { display:none;}
  .support-page { padding:64px 0; }
  .support-page h1 { font-size:34px; line-height:37.4px; }
  .collection-grid { grid-template-columns:1fr; }
  .viewer-controls { flex-wrap:wrap; }
}

/* TinyBook large section headings: retain each role's existing responsive size.
   Line height is a direct ratio, matching the shared Figma text styles. */
:root :is(.hero h1, .palm-copy .section-heading, .section-heading, .scenario-heading, .faq-heading, .cta-heading,
          .personal-heading, .guide-hero h1, .guide-content h2, .support-page h1) {
  font-family:var(--type-display-family);
  font-weight:var(--type-display-weight);
  font-variation-settings:"wght" var(--type-display-weight);
  line-height:1.04;
  letter-spacing:var(--type-display-tracking);
  font-synthesis:none;
}
