:root {
  color-scheme: light;
  --paper: #f5f4ee;
  --white: #fffefa;
  --ink: #233b31;
  --muted: #515d52;
  --line: #d8ddd1;
  --green: #244f3e;
  --mint: #d3e4bf;
  --body-text: #454e45;
  --soft-surface: #e9eddf;
  --on-accent: #fffefa;
  --focus: #a65825;
  --forest: #244f3e;
  --forest-ink: #fffefa;
  --forest-muted: #dbe5d7;
  --forest-accent: #d3e4bf;
  --particle-gold: #9a7838;
  --particle-opacity: .06;
  --serif: Georgia, 'Times New Roman', serif;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #111e18;
  --white: #192b22;
  --ink: #e9f0e7;
  --muted: #b9c5b7;
  --line: #465d4e;
  --green: #b8dbbc;
  --mint: #355842;
  --body-text: #cdd6c9;
  --soft-surface: #20352b;
  --on-accent: #142b1f;
  --focus: #edbb83;
  --forest: #1b3c2e;
  --particle-gold: #d8b778;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 24px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.65 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
/* The decorative layer stays below the content and never captures input. */
body { isolation: isolate; }
.ambient-background { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.particle {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--size, 5px);
  height: var(--size, 5px);
  border-radius: 50%;
  background: var(--green);
  opacity: var(--particle-opacity);
  animation: particle-drift var(--duration, 28s) ease-in-out var(--delay, 0s) infinite alternate;
}
.particle:nth-child(3n) { background: var(--particle-gold); }
.particle:nth-child(4n) { background: transparent; border: 1px solid var(--green); --size: 10px; }
.particle:nth-child(1) { --x: 3%; --y: 12%; --duration: 26s; --delay: -7s; }
.particle:nth-child(2) { --x: 16%; --y: 6%; --duration: 34s; --delay: -19s; }
.particle:nth-child(3) { --x: 29%; --y: 24%; --duration: 30s; --delay: -3s; }
.particle:nth-child(4) { --x: 45%; --y: 8%; --duration: 36s; --delay: -15s; }
.particle:nth-child(5) { --x: 62%; --y: 16%; --duration: 24s; --delay: -8s; }
.particle:nth-child(6) { --x: 81%; --y: 7%; --duration: 32s; --delay: -24s; }
.particle:nth-child(7) { --x: 97%; --y: 29%; --duration: 29s; --delay: -11s; }
.particle:nth-child(8) { --x: 8%; --y: 42%; --duration: 38s; --delay: -21s; }
.particle:nth-child(9) { --x: 22%; --y: 55%; --duration: 27s; --delay: -5s; }
.particle:nth-child(10) { --x: 39%; --y: 40%; --duration: 33s; --delay: -17s; }
.particle:nth-child(11) { --x: 57%; --y: 54%; --duration: 25s; --delay: -9s; }
.particle:nth-child(12) { --x: 74%; --y: 45%; --duration: 35s; --delay: -13s; }
.particle:nth-child(13) { --x: 91%; --y: 64%; --duration: 31s; --delay: -22s; }
.particle:nth-child(14) { --x: 4%; --y: 81%; --duration: 23s; --delay: -4s; }
.particle:nth-child(15) { --x: 32%; --y: 92%; --duration: 37s; --delay: -18s; }
.particle:nth-child(16) { --x: 52%; --y: 76%; --duration: 28s; --delay: -12s; }
.particle:nth-child(17) { --x: 71%; --y: 91%; --duration: 34s; --delay: -6s; }
.particle:nth-child(18) { --x: 96%; --y: 89%; --duration: 30s; --delay: -20s; }
@keyframes particle-drift {
  from { transform: translate3d(-14px, 28px, 0); }
  to { transform: translate3d(18px, -42px, 0); }
}
a { color: inherit; text-underline-offset: 5px; }
a:focus-visible { outline: 3px solid var(--focus); outline-offset: 5px; border-radius: 3px; }
::selection { background: var(--mint); color: var(--ink); }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { line-height: 1.15; font-weight: 400; }
svg { display: block; }
.site-header, main, .site-footer { width: min(1160px, calc(100% - 80px)); margin-inline: auto; }
.site-header { min-height: 108px; display: flex; align-items: center; justify-content: space-between; gap: 32px; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: 12px; font-size: 19px; font-weight: 600; line-height: 1.2; text-decoration: none; }
.brand-sub { display: block; margin-top: 5px; font-size: 12px; letter-spacing: .23em; font-weight: 500; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--green); border-radius: 50%; }
.brand-mark svg { width: 25px; height: 25px; }
.site-header nav { display: flex; gap: 24px; }
.site-header nav a { display: flex; min-height: 44px; align-items: center; font-size: 14px; text-decoration: none; border-bottom: 2px solid transparent; }
.site-header nav a[aria-current] { border-color: var(--green); font-weight: 600; }
.site-header nav a:hover { color: var(--green); border-color: var(--green); }
.theme-switch { display: inline-flex; align-items: center; flex-shrink: 0; gap: 10px; min-height: 44px; padding: 6px 0; border: 0; background: transparent; color: var(--muted); font: inherit; font-size: 12px; cursor: pointer; }
.theme-switch[hidden] { display: none; }
.theme-track { display: block; width: 50px; height: 28px; padding: 3px; border-radius: 20px; background: var(--green); }
.theme-thumb { display: block; width: 22px; height: 22px; border-radius: 50%; background: var(--on-accent); transition: transform .18s ease; }
.theme-switch[aria-checked="true"] .theme-thumb { transform: translateX(22px); }
.theme-switch[aria-checked="false"] .theme-light, .theme-switch[aria-checked="true"] .theme-dark { color: var(--ink); font-weight: 650; }
.theme-switch:focus-visible { outline: 3px solid var(--focus); outline-offset: 5px; border-radius: 5px; }
.theme-switch:hover .theme-track { box-shadow: 0 0 0 3px var(--line); }
.skip-link { position: absolute; top: -100px; left: 20px; padding: 12px 24px; background: var(--white); z-index: 10; }
.skip-link:focus { top: 12px; }
.eyebrow { font-size: 12px; font-weight: 650; letter-spacing: .16em; line-height: 1.6; }
.hero { display: grid; grid-template-columns: 1.25fr 1fr; gap: 80px; padding: 80px 0 88px; align-items: center; }
.hero-copy > .eyebrow { display: flex; align-items: center; gap: 12px; }
.small-line { width: 28px; height: 1px; background: var(--green); }
.hero h1 { font-family: var(--serif); font-size: clamp(52px, 6.2vw, 82px); letter-spacing: -.055em; margin: 25px 0; line-height: 1.04; }
.hero h1 em { color: var(--green); font-weight: 400; }
.hero-description { max-width: 420px; font-size: 17px; color: var(--muted); line-height: 1.8; }
.primary-link { margin-top: 32px; display: inline-flex; min-height: 52px; align-items: center; gap: 34px; padding: 12px 23px; color: var(--on-accent); background: var(--green); border: 1px solid var(--green); border-radius: 5px; text-decoration: none; font-size: 14px; font-weight: 500; transition: background .18s ease; }
.primary-link:hover { background: var(--ink); }
.hero-caption { color: var(--muted); font-size: 12px; margin-top: 20px; }
.local-card { position: relative; overflow: hidden; background: var(--forest); color: var(--forest-ink); padding: 32px; border-radius: 10px; }
.card-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.card-top .eyebrow { font-size: 12px; color: var(--forest-accent); }
.outlined-tag { border: 1px solid #779283; padding: 4px 10px; border-radius: 20px; font-size: 12px; letter-spacing: .12em; }
.local-illustration { height: 194px; display: grid; place-items: center; position: relative; }
.orbit { position: absolute; border: 1px solid #62806d; border-radius: 50%; }
.orbit-one { width: 152px; height: 152px; }
.orbit-two { width: 212px; height: 212px; opacity: .45; }
.device { position: relative; display: grid; place-items: center; width: 98px; height: 98px; border-radius: 24px; background: var(--forest-accent); color: var(--forest); transform: rotate(-8deg); box-shadow: 8px 10px 0 #193d30; }
.device svg { width: 64px; height: 64px; transform: rotate(8deg); }
.local-card h2 { position: relative; font: 36px/1.2 var(--serif); letter-spacing: -.025em; margin: 8px 0 12px; }
.local-card > p { color: var(--forest-muted); font-size: 14px; max-width: 330px; }
.card-bottom { display: flex; justify-content: space-between; gap: 8px; padding-top: 20px; margin-top: 25px; border-top: 1px solid #62806d; color: var(--forest-accent); font-size: 12px; letter-spacing: .04em; }
.documents { border-top: 1px solid var(--line); padding: 48px 0 64px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 28px; }
.section-heading h2 { font: 36px/1.2 var(--serif); letter-spacing: -.025em; margin-top: 12px; }
.section-heading > p { font-size: 13px; color: var(--muted); padding-bottom: 4px; }
.document-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.document-card { display: flex; flex-direction: column; background: var(--white); padding: 32px; border: 1px solid var(--line); border-radius: 8px; text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease; }
.document-card:hover { border-color: var(--green); box-shadow: 0 5px 20px #233b310a; }
.document-card-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.document-label { color: var(--muted); font-size: 12px; letter-spacing: .14em; font-weight: 600; }
.arrow { display: grid; place-items: center; border: 1px solid var(--line); width: 36px; height: 36px; border-radius: 50%; font-size: 20px; }
.document-card h3 { font: 34px/1.18 var(--serif); letter-spacing: -.03em; margin: 24px 0 14px; }
.document-card > p { color: var(--muted); max-width: 350px; font-size: 14px; margin-bottom: 28px; }
.text-link { margin-top: auto; font-size: 13px; font-weight: 600; display: flex; gap: 14px; align-items: center; }
.document-card:hover .text-link { text-decoration: underline; text-underline-offset: 5px; }
.contact-strip { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 32px; background: var(--soft-surface); border-radius: 8px; }
.contact-strip h2 { font-size: 20px; font-weight: 500; margin: 10px 0 6px; }
.contact-strip p:not(.eyebrow) { font-size: 13px; color: var(--muted); }
.contact-strip > a { font-size: 14px; overflow-wrap: anywhere; padding-block: 12px; }
.contact-strip > a span { margin-left: 16px; }
.site-note { color: var(--muted); font-size: 12px; margin: 24px 0 56px; text-align: center; }
.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid var(--line); padding-block: 28px; color: var(--muted); font-size: 12px; }
.site-footer a { display: inline-flex; gap: 12px; padding-block: 12px; }
.footer-dot { padding-inline: 10px; }
.document-heading { padding: 64px 0 42px; border-bottom: 1px solid var(--line); }
.document-heading h1 { font: clamp(42px, 5vw, 64px)/1.12 var(--serif); letter-spacing: -.045em; margin: 18px 0; }
.document-intro { font-size: 18px; color: var(--muted); max-width: 620px; }
.version { color: var(--muted); margin-top: 22px; font-size: 12px; }
.version span { padding-inline: 12px; }
.document-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 72px; padding: 48px 0 72px; }
.contents { align-self: start; position: sticky; top: 28px; }
.contents ol { list-style: none; padding: 0; margin: 16px 0 32px; }
.contents li a { display: flex; gap: 14px; padding: 12px 0; min-height: 44px; font-size: 13px; line-height: 1.6; text-decoration: none; color: var(--muted); }
.contents li a:hover { text-decoration: underline; color: var(--green); }
.contents li span { font-size: 12px; padding-top: 2px; color: var(--green); font-variant-numeric: tabular-nums; }
.contact-note { border-top: 1px solid var(--line); padding-top: 22px; }
.contact-note p { font-size: 13px; margin-top: 10px; }
.contact-note a { display: inline-block; font-size: 12px; padding-block: 12px; overflow-wrap: anywhere; }
.legal-section { scroll-margin-top: 28px; padding: 0 0 32px; margin-bottom: 32px; border-bottom: 1px solid var(--line); }
.legal-section h2 { display: flex; align-items: baseline; gap: 18px; font: 28px/1.25 var(--serif); margin-bottom: 22px; letter-spacing: -.02em; }
.section-number { font: 12px/1.5 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: var(--muted); }
.legal-section p { color: var(--body-text); max-width: 70ch; margin-top: 16px; font-size: 16px; line-height: 1.85; overflow-wrap: anywhere; }
.legal-section a { color: var(--green); }
.legal-list { padding-left: 22px; color: var(--body-text); line-height: 1.85; }
.legal-list li + li { margin-top: 16px; }
.back-link { display: inline-flex; align-items: center; gap: 24px; min-height: 44px; font-size: 14px; }
@media (min-width: 801px) and (max-height: 650px) { .contents { position: static; } }
@media (max-width: 1000px) {
  .hero { gap: 40px; }
  .document-layout { gap: 40px; grid-template-columns: 210px minmax(0, 1fr); }
}
@media (max-width: 800px) {
  .site-header, main, .site-footer { width: calc(100% - 40px); }
  .site-header { flex-wrap: wrap; gap: 12px 24px; padding-block: 18px; }
  .hero { gap: 32px; padding-block: 48px; grid-template-columns: 1fr; }
  .hero h1 { font-size: clamp(52px, 10vw, 78px); }
  .local-card { max-width: 560px; width: 100%; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: 12px; }
  .document-cards { gap: 16px; }
  .document-card { padding: 24px; }
  .document-card h3 { font-size: 29px; }
  .contact-strip { flex-direction: column; align-items: start; gap: 12px; }
  .document-layout { grid-template-columns: 1fr; gap: 36px; padding-top: 28px; }
  .contents { position: static; padding: 24px; background: var(--soft-surface); border-radius: 8px; }
  .contents ol { margin-bottom: 0; }
  .contact-note { display: none; }
  .document-heading { padding-top: 40px; }
  .site-footer { flex-wrap: wrap; gap: 10px 24px; }
}
@media (max-width: 500px) {
  .site-header { padding: 22px 0 12px; flex-direction: column; align-items: start; gap: 16px; }
  .site-header nav { width: 100%; justify-content: space-between; gap: 12px; }
  .hero-caption { max-width: 240px; line-height: 1.9; }
  .local-card { padding: 24px; }
  .document-cards { grid-template-columns: 1fr; }
  .section-heading h2 { font-size: 31px; }
  .contact-strip { padding: 24px; }
  .contact-strip > a { font-size: 13px; }
  .contact-strip > a span { margin-left: 4px; }
  .site-footer { align-items: start; flex-direction: column; }
  .document-intro { font-size: 16px; }
  .version span { padding-inline: 5px; }
  .legal-section h2 { font-size: 26px; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
  .particle { animation: none; }
}
@media print {
  :root, :root[data-theme="dark"] { color-scheme: light; --paper: #ffffff; --white: #ffffff; --ink: #233b31; --muted: #515d52; --body-text: #454e45; --green: #244f3e; --soft-surface: #e9eddf; --line: #d8ddd1; --on-accent: #fffefa; }
  body { background: white; color: black; }
  .site-header, .site-footer, .contents, .back-link, .skip-link, .ambient-background { display: none; }
  main { width: 100%; }
  .document-heading { padding-top: 0; }
  .document-layout { display: block; }
  .legal-section { break-inside: avoid; }
}
