html.policy-open { overflow: hidden; }
.policy-document, .policy-body { overflow-wrap: break-word; }
.policy-modal { --policy-ink: #252a3d; color-scheme: light; position: fixed; inset: 0; width: min(44rem, calc(100vw - 2rem)); height: min(44rem, calc(100dvh - 2rem)); max-width: none; max-height: none; margin: auto; padding: 0; border: 0; border-radius: 0; background: #fffaf2; color: var(--policy-ink); overflow: hidden; font-family: Arial, Helvetica, sans-serif; line-height: 1.65; }
.policy-modal[open] { display: flex; flex-direction: column; }
.policy-modal::backdrop { background: rgb(17 24 39 / 38%); }
.policy-modal * { box-sizing: border-box; }
.policy-header { flex-shrink: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding: 2.5rem 3.5rem 1.25rem; }
.policy-modal h2 { margin: 0; color: var(--policy-ink); font: 400 1.8rem/1.25 Georgia, 'Times New Roman', serif; letter-spacing: -.018em; }
.policy-date { margin: .5rem 0 0; color: #65605b; font: 400 .8125rem/1.5 Arial, Helvetica, sans-serif; }
.policy-close { flex-shrink: 0; display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; margin-top: -.5rem; padding: .5rem 0 .5rem .5rem; border: 0; background: transparent; color: var(--policy-ink); font: 700 .833333rem/1.4 Arial, Helvetica, sans-serif; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.policy-close svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.overlay-actions { display: flex; flex-shrink: 0; align-items: center; gap: .35rem; }
.policy-header .overlay-actions { margin-top: -.5rem; }
.policy-header .overlay-actions .policy-close { margin-top: 0; }
.policy-header > div:not(.overlay-actions) { min-width: 0; }
.scroll-top-button { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: #252a3d; cursor: pointer; }
.scroll-top-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.scroll-top-button:disabled { opacity: .3; cursor: default; }
.scroll-top-button:hover:not(:disabled) { color: #795a43; }
.screen-scroll-top { display: none; }
@media (max-width: 900px) {
  .screen-scroll-top { display: inline-flex; position: fixed; right: 1rem; bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 4; background: #fffaf2; border: 1px solid #c9bda7; border-radius: 2px; }
  .screen-scroll-top[hidden] { display: none; }
}
.policy-body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 1rem 3.5rem 3.5rem; scrollbar-gutter: stable; }
.policy-modal :is(a,button,.policy-body):focus-visible { outline: 2px solid var(--policy-ink); outline-offset: 3px; }
.policy-modal :is(h2,.policy-body):focus:not(:focus-visible) { outline: none; }
.policy-modal h3, .policy-document h3 { margin: 1.75rem 0 .6rem; color: #252a3d; font: 400 1.25rem/1.4 Georgia, 'Times New Roman', serif; }
.policy-modal .policy-body p, .policy-document p:not(.policy-date) { margin: 0 0 1rem; color: #514e4b; font: 400 1rem/1.7 Arial, Helvetica, sans-serif; }
.policy-modal a, .policy-page a { color: #252a3d; text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.policy-modal a:hover, .policy-page a:hover { color: #795a43; }
.founder-story .policy-header { justify-content: flex-end; }
.founder-story .founder-story-heading { margin: .75rem 0 1.5rem; max-width: 26rem; font: 400 clamp(1.65rem, 4vw, 2.2rem)/1.25 Georgia, 'Times New Roman', serif; letter-spacing: -.018em; }
.founder-story .founder-story-heading:focus:not(:focus-visible) { outline: none; }
.founder-story .policy-body .founder-story-closing { margin-top: 1.75rem; color: var(--policy-ink); font: 400 1.4rem/1.4 Georgia, 'Times New Roman', serif; }
.founder-story .policy-body .founder-story-signature { margin-top: 1.5rem; margin-bottom: 0; font-size: .875rem; }
.terms-acceptance { display: flex; align-items: flex-start; gap: .75rem; margin: 1.25rem 0; font-size: .875rem; line-height: 1.6; }
.terms-acceptance input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin: .2rem 0 0; accent-color: #252a3d; }
.terms-acceptance label { cursor: pointer; }
.terms-acceptance a, .privacy-note a { text-decoration: underline; text-underline-offset: .2em; }
.policy-page { margin: 0; background: #fffaf2; color: #252a3d; font-family: Arial, Helvetica, sans-serif; line-height: 1.65; }
.policy-page-header, .policy-page-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; padding: 1.5rem max(1.5rem, calc((100% - 44rem) / 2)); }
.policy-page-header { justify-content: space-between; }
.policy-page a.policy-wordmark { font-size: 1.2rem; letter-spacing: .16em; text-decoration: none; }
.policy-document { max-width: 44rem; margin: 1rem auto 3rem; padding: 0 1.5rem; }
.policy-document h1 { margin: 0; font: 400 2rem/1.3 Georgia, serif; }
.policy-document > .policy-date { margin-bottom: 1.75rem; }
@media (max-width: 600px) {
  .policy-header { padding: 1.75rem 1.75rem 1rem; gap: .75rem; }
  .policy-body { padding: .75rem 1.75rem 2.5rem; }
  .policy-modal h2 { font-size: 1.55rem; }
  .policy-close { font-size: .75rem; }
}
