[id] { scroll-margin-top:var(--space-6); }


@media (min-width: 1024px) {
  [id] { scroll-margin-top:calc(var(--section-strip-h) + var(--space-6)); }
}


.hero-opening {
  position:relative;
  background-color:var(--ground);
  border-bottom:1px solid var(--line-alpha-50);
  padding-top:var(--space-6);
}


@media (min-width: 768px) {
  .hero-opening { padding-top:var(--space-10); }
}


@media (min-width: 1024px) {
  .hero-opening { padding-top:var(--space-12); }
}


.hero-head-grid {
  display:flex;
  flex-direction:column;
  gap:var(--space-6);
  padding-bottom:var(--space-8);

}


@media (min-width: 960px) {
  .hero-head-grid { padding-bottom:var(--space-10); }
}


.hero-copy-col {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-5);
}


.hero-headline-row {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--space-5);
  align-items:end;
  width:100%;
}


@media (min-width: 960px) {
  .hero-headline-row {
    grid-template-columns:minmax(0, 1.45fr) minmax(0, 0.75fr);
    gap:var(--space-8);
  }
}


.hero-headline {
  font-family:var(--zodu-1e8);
  font-size:clamp(2.15rem, 1.4rem + 3.2vw, 4.1rem);
  font-weight:700;
  line-height:1.06;
  letter-spacing:-0.025em;
  color:var(--ink);
  text-align:left;
  margin:0;
  text-wrap:normal;
  max-width:none;
}


.hero-lede-split {
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
  padding-top:var(--space-4);
  border-top:1px solid var(--line-alpha-50);
}


@media (min-width: 640px) {
  .hero-lede-split {
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-6);
  }

}


.hero-lede-text {
  font-size:var(--text-md);
  line-height:1.55;
  color:var(--ink-soft);
  max-width:52ch;
  min-width:0;
}


.hero-facts-inline {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-3) var(--space-6);
  font-family:var(--zodu-722);
  font-size:var(--text-xs);
  color:var(--ink-soft);
  font-variant-numeric:tabular-nums lining-nums;
  flex-shrink:1;
  min-width:0;
  max-width:100%;
}


.hero-facts-inline span {
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--space-2);
  min-width:0;
  max-width:100%;
}


.hero-model-col {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
}


.model-stage-frame {
  position:relative;
  width:100%;
  aspect-ratio:4 / 3;
  background:radial-gradient(circle at 50% 50%, #205C5A 0%, #133A39 100%);
  border:2px solid var(--line);
  border-radius:var(--radius-sm);
  overflow:hidden;
  box-shadow:inset 0 2px 8px rgba(0,0,0,0.4), var(--shadow-md);
}


.model-stage-frame [data-model-still] {
  position:relative;
  z-index:2;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}


.model-stage-frame [data-model-canvas] {
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  display:block;
  touch-action:pan-y;
  cursor:grab;
  outline:none;
}


.model-stage-frame [data-model-canvas]:active { cursor:grabbing; }


.model-stage-frame [data-model-canvas]:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:-2px;
}


.model-stage-frame[data-model-live] [data-model-canvas] { z-index:3; }


.model-stage-frame[data-model-live] [data-model-still] {
  visibility:hidden;
  pointer-events:none;
}


.model-stage-caption {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-2);
  font-size:var(--text-xs);
  color:var(--ink-soft);
}


.model-stage-caption .font-mono { color:var(--accent); }


.hero-photo-stage {
  position:relative;
  width:100%;
  border-top:1px solid var(--line-alpha-50);
  background-color:var(--surface);
  overflow:hidden;
}


.hero-photo-media {
  width:100%;
  height:auto;
  aspect-ratio:3 / 2;
  object-fit:cover;
  object-position:left bottom;
  display:block;
}


@media (min-width: 768px) {
  .hero-photo-media {
    width:100%;
    height:auto;
    aspect-ratio:3 / 2;
    object-position:left bottom;
  }
}


.hero-action-corner {
  padding:var(--space-4);
  background-color:var(--surface);
  border-top:1px solid var(--line-alpha-50);
  display:flex;
  justify-content:flex-end;
}


@media (min-width: 768px) {
  .hero-action-corner {
    position:absolute;
    top:var(--space-6);
    right:var(--space-8);
    padding:var(--space-3);
    border-top:0;
    border:1px solid var(--line-alpha-50);
    border-radius:var(--radius-sm);
    background-color:var(--ground);
    background-color:var(--ground-alpha-90);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);

    box-shadow:var(--shadow-md);
    z-index:5;
  }
}


.page-opening {
  background-color:var(--ground);
  padding-top:var(--space-10);
  padding-bottom:var(--space-10);
  border-bottom:1px solid var(--line-alpha-50);
}


@media (min-width: 1024px) {
  .page-opening {
    padding-top:var(--space-16);
    padding-bottom:var(--space-12);
  }
}


.page-opening-inner {
  display:flex;
  flex-direction:column;
  gap:var(--space-5);
}


.page-opening-title {
  font-family:var(--zodu-1e8);
  font-size:clamp(1.75rem, 1.35rem + 2vw, 3rem);
  font-weight:700;
  line-height:1.15;
  letter-spacing:-0.02em;
  color:var(--ink);
  max-width:28ch;
  text-align:left;
  margin-left:0;
  margin-right:auto;
  text-wrap:balance;
}


.page-opening-lede {
  font-size:var(--text-md);
  line-height:1.6;
  color:var(--ink-soft);
  max-width:65ch;
}


.page-opening-meta {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-4) var(--space-8);
  padding-top:var(--space-4);
  border-top:1px solid var(--line-alpha-30);
  font-family:var(--zodu-722);
  font-size:var(--text-xs);
  color:var(--ink-soft);
  font-variant-numeric:tabular-nums lining-nums;
}


.panel-viewport {
  min-height:78vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
}


.statement-stack {
  display:flex;
  flex-direction:column;
  gap:var(--space-6);
}


.statement-rule-divider {
  width:100%;
  height:1px;
  background-color:var(--line-alpha-50);
}


.statement-facts-bar {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--space-4);
  padding-top:var(--space-6);
  border-top:1px solid var(--line-alpha-30);
}


@media (min-width: 640px) {
  .statement-facts-bar { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}


@media (min-width: 1024px) {
  .statement-facts-bar { grid-template-columns:repeat(4, minmax(0, 1fr)); }
}


.fact-cell {
  min-width:0;
  padding-right:var(--space-4);
  border-left:2px solid var(--line);
  padding-left:var(--space-4);
  display:flex;
  flex-direction:column;
  gap:var(--space-1);
}


.fact-cell-figure {
  font-family:var(--zodu-722);
  font-size:var(--text-xl);
  font-weight:600;
  color:var(--ink);
  font-variant-numeric:tabular-nums lining-nums;
}


.fact-cell-desc {
  font-size:var(--text-sm);
  color:var(--ink-soft);
  line-height:1.45;
}


.bleed-break {
  position:relative;
  width:100%;
  background-color:var(--surface);
  border-top:1px solid var(--line-alpha-30);
  border-bottom:1px solid var(--line-alpha-30);
  overflow:hidden;
}


.bleed-break img {
  width:100%;
  height:auto;
  aspect-ratio:3 / 2;
  object-fit:cover;
  display:block;
}


.bleed-break .focal-center { object-position:center center; }


.bleed-break .focal-left-bottom { object-position:left bottom; }


.bleed-break .focal-right-center { object-position:right center; }


.bleed-caption-bar {
  padding:var(--space-3) var(--space-4);
  background-color:var(--surface);
  border-top:1px solid var(--line-alpha-30);
  font-size:var(--text-xs);
  color:var(--ink-soft);
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:var(--space-2);
}


@media (min-width: 768px) {
  .bleed-caption-bar { padding:var(--space-3) var(--space-8); }
}


.journey-grid {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--space-8);
  margin-top:var(--space-8);
  align-items:start;
}


@media (min-width: 900px) {
  .journey-grid {
    grid-template-columns:minmax(0, 260px) minmax(0, 1fr);
    gap:var(--space-12);
  }
}


.journey-svg-rail {
  position:relative;
  padding:var(--space-4);
  background-color:var(--surface);
  border:1px solid var(--line-alpha-50);
  border-radius:var(--radius-sm);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--space-3);
}


@media (min-width: 900px) {
  .journey-svg-rail {
    position:sticky;
    top:calc(var(--section-strip-h) + var(--space-6));
  }
}


.journey-svg {
  width:100%;
  max-width:220px;
  height:auto;
  display:block;
}


.diagram-track {
  fill:none;
  stroke:var(--line);
  stroke-opacity:0.35;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}


.diagram-path {
  fill:none;
  stroke:var(--accent);
  stroke-width:3.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:stroke-dashoffset var(--dur-fast) var(--ease-standard);
}


.diagram-node {
  fill:var(--surface);
  stroke:var(--line);
  stroke-width:2.5;
  transition:fill var(--dur-mid) var(--ease-out-quad),
              stroke var(--dur-mid) var(--ease-out-quad),
              transform var(--dur-mid) var(--ease-out-quad);
}


.diagram-node.is-reached,
.diagram-node[data-reached='true'] {
  fill:var(--accent);
  stroke:var(--ink);
}


.diagram-node-label {
  fill:var(--ink-soft);
  font-family:var(--zodu-722);
  font-size:11px;
  transition:fill var(--dur-mid) var(--ease-out-quad);
}


.diagram-node-label.is-reached,
.diagram-node-label[data-reached='true'] {
  fill:var(--ink);
  font-weight:600;
}


.journey-steps {
  display:flex;
  flex-direction:column;
  gap:0;
  border-top:1px solid var(--line-alpha-50);
}


.journey-step {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--space-3);
  padding:var(--space-6) var(--space-4);
  border-bottom:1px solid var(--line-alpha-50);
  border-left:3px solid transparent;
  transition:border-color var(--dur-mid) var(--ease-out-quad),
              background-color var(--dur-mid) var(--ease-out-quad);
}


@media (min-width: 640px) {
  .journey-step {
    grid-template-columns:minmax(0, 140px) minmax(0, 1fr);
    gap:var(--space-6);
    padding:var(--space-6);
  }
}


.journey-step.is-active,
.journey-step[data-step-active='true'] {
  border-left-color:var(--accent);
  background-color:var(--surface);
}


.journey-step-timing {
  font-family:var(--zodu-722);
  font-size:var(--text-xs);
  color:var(--accent);
  font-variant-numeric:tabular-nums lining-nums;
  padding-top:3px;
}


.journey-step-body {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
}


.journey-step-title {
  font-family:var(--zodu-1e8);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--ink);
}


.journey-step-copy {
  font-size:var(--text-base);
  color:var(--ink-soft);
  line-height:1.6;
  max-width:65ch;
}


.fit-tool {
  margin-top:var(--space-8);
  background-color:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:var(--space-5);
  box-shadow:var(--shadow-md);
}


@media (min-width: 768px) {
  .fit-tool { padding:var(--space-8); }
}


.fit-tool-grid {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--space-8);
}


@media (min-width: 960px) {
  .fit-tool-grid {
    grid-template-columns:minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap:var(--space-10);
    align-items:start;
  }
}


.fit-tool-controls {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-6);
}


.fit-fieldset {
  border:0;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
}


.fit-legend {
  font-family:var(--zodu-1e8);
  font-size:var(--text-base);
  font-weight:600;
  color:var(--ink);
  margin-bottom:var(--space-1);
}


.fit-pill-group {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-2);
}


.fit-pill-label {
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:var(--touch-target);
  padding:var(--space-2) var(--space-4);
  background-color:var(--surface-2);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  font-size:var(--text-sm);
  color:var(--ink);
  cursor:pointer;
  transition:background-color var(--dur-fast) var(--ease-out-quad),
              border-color var(--dur-fast) var(--ease-out-quad),
              color var(--dur-fast) var(--ease-out-quad),
              transform var(--dur-fast) var(--ease-out-quad);
}


.fit-pill-label:hover {
  border-color:var(--ink-soft);
  background-color:var(--surface);
  transform:translateY(-1px);
}


.fit-pill-label:active { transform:translateY(0); }


.fit-pill-label:has(input:focus-visible) {
  outline:2px solid var(--accent);
  outline-offset:2px;
}


.fit-pill-label:has(input:checked) {
  background-color:var(--accent);
  border-color:var(--accent);
  color:var(--accent-ink);
  font-weight:600;
}


.fit-pill-label input {
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
  pointer-events:none;
}


.fit-range-row {
  display:flex;
  align-items:center;
  gap:var(--space-4);
}


.fit-range-input {
  flex:1 1 auto;
  min-width:0;
  accent-color:var(--accent);
  min-height:var(--touch-target);
  cursor:pointer;
}


.fit-range-input:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:4px;
}


.fit-range-readout {
  font-family:var(--zodu-722);
  font-size:var(--text-sm);
  font-weight:600;
  color:var(--accent);
  min-width:6.5ch;
  text-align:right;
  font-variant-numeric:tabular-nums lining-nums;
}


.fit-tool-result {
  min-width:0;
  background-color:var(--ground);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:var(--space-6);
  display:flex;
  flex-direction:column;
  gap:var(--space-5);
}


.fit-result-header {
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
  padding-bottom:var(--space-4);
  border-bottom:1px solid var(--line-alpha-50);
}


.fit-result-caption {
  font-size:var(--text-xs);
  color:var(--ink-soft);
}


.fit-output-figure {
  font-family:var(--zodu-722);
  font-size:clamp(2rem, 1.6rem + 1.5vw, 2.75rem);
  font-weight:600;
  color:var(--accent);
  line-height:1.1;
  font-variant-numeric:tabular-nums lining-nums;
}


.fit-output-note {
  font-family:var(--zodu-1e8);
  font-size:var(--text-base);
  font-weight:600;
  color:var(--ink);
  line-height:1.4;
}


.fit-output-status {
  padding:var(--space-3) var(--space-4);
  background-color:var(--surface);
  border-left:3px solid var(--accent);
  font-size:var(--text-sm);
  color:var(--ink);
  line-height:1.5;
}


.fit-breakdown {
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
  padding-top:var(--space-3);
  border-top:1px solid var(--line-alpha-30);
}


.fit-breakdown-row {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:var(--space-4);
  font-size:var(--text-sm);
  color:var(--ink-soft);
}


.fit-breakdown-row strong {
  font-family:var(--zodu-722);
  color:var(--ink);
  font-variant-numeric:tabular-nums lining-nums;
  white-space:nowrap;
}


.fit-disclaimer {
  font-size:var(--text-xs);
  color:var(--ink-soft);
  line-height:1.5;
  padding-top:var(--space-3);
  border-top:1px solid var(--line-alpha-30);
}


.protocol-list {
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--line);
  margin-top:var(--space-8);
}


.protocol-row {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--space-4);
  padding:var(--space-6) 0;
  border-bottom:1px solid var(--line-alpha-50);
}


@media (min-width: 768px) {
  .protocol-row {
    grid-template-columns:minmax(0, 220px) minmax(0, 1fr);
    gap:var(--space-8);
  }
}


.protocol-spec-col {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-1);
}


.protocol-spec-fig {
  font-family:var(--zodu-722);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--accent);
  font-variant-numeric:tabular-nums lining-nums;
}


.protocol-spec-note {
  font-size:var(--text-xs);
  color:var(--ink-soft);
}


.protocol-body-col {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
}


.protocol-title {
  font-family:var(--zodu-1e8);
  font-size:var(--text-xl);
  font-weight:600;
  color:var(--ink);
}


.protocol-text {
  font-size:var(--text-base);
  color:var(--ink-soft);
  line-height:1.65;
  max-width:65ch;
}


.protocol-details-dl {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-3) var(--space-8);
  margin-top:var(--space-2);
}


.protocol-details-item {
  display:flex;
  flex-direction:column;
  gap:2px;
}


.protocol-details-item dt {
  font-size:var(--text-xs);
  color:var(--ink-soft);
}


.protocol-details-item dd {
  font-family:var(--zodu-722);
  font-size:var(--text-sm);
  color:var(--ink);
  font-variant-numeric:tabular-nums lining-nums;
}


.rates-ledger {
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--line);
  margin-top:var(--space-8);
}


.rate-row {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--space-3);
  padding:var(--space-5) var(--space-4);
  border-bottom:1px solid var(--line-alpha-50);
  align-items:start;
  transition:background-color var(--dur-fast) var(--ease-out-quad);
}


@media (min-width: 768px) {
  .rate-row {
    grid-template-columns:minmax(0, 1.3fr) minmax(0, 1.5fr) auto;
    gap:var(--space-8);
    padding:var(--space-6) var(--space-5);
  }
}


.rate-row:hover { background-color:var(--surface); }


.rate-subject {
  min-width:0;
  font-family:var(--zodu-1e8);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--ink);
}


.rate-detail {
  min-width:0;
  font-size:var(--text-sm);
  color:var(--ink-soft);
  line-height:1.55;
  max-width:55ch;
}


.rate-price {
  font-family:var(--zodu-722);
  font-size:var(--text-md);
  font-weight:600;
  color:var(--accent);
  white-space:nowrap;
  font-variant-numeric:tabular-nums lining-nums;
}


.rate-modifiers-list {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--space-4);
  margin-top:var(--space-6);
}


@media (min-width: 640px) {
  .rate-modifiers-list { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}


@media (min-width: 1024px) {
  .rate-modifiers-list { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}


.rate-modifier-item {
  min-width:0;
  padding:var(--space-4) var(--space-5);
  background-color:var(--surface);
  border:1px solid var(--line-alpha-50);
  border-radius:var(--radius-sm);
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
}


.rate-modifier-name {
  font-family:var(--zodu-1e8);
  font-size:var(--text-base);
  font-weight:600;
  color:var(--ink);
}


.rate-modifier-desc {
  font-size:var(--text-sm);
  color:var(--ink-soft);
  line-height:1.5;
}


.inquiry-grid {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--space-8);
  margin-top:var(--space-8);
}


@media (min-width: 960px) {
  .inquiry-grid {
    grid-template-columns:minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap:var(--space-12);
    align-items:start;
  }
}


.campus-address-panel {
  min-width:0;
  background-color:var(--ground);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:var(--space-6);
  display:flex;
  flex-direction:column;
  gap:var(--space-5);
}


.campus-fact-row {
  display:flex;
  align-items:flex-start;
  gap:var(--space-3);
  padding-bottom:var(--space-4);
  border-bottom:1px solid var(--line-alpha-30);
}


.campus-fact-row:last-child {
  padding-bottom:0;
  border-bottom:0;
}


.campus-fact-label {
  font-size:var(--text-xs);
  color:var(--ink-soft);
  display:block;
  margin-bottom:2px;
}


.campus-fact-value {
  font-size:var(--text-base);
  color:var(--ink);
  word-break:break-word;
}


.campus-fact-value a {
  color:var(--ink);
  text-decoration:underline;
  text-decoration-color:var(--line);
  text-underline-offset:3px;
  transition:color var(--dur-fast) var(--ease-out-quad),
              text-decoration-color var(--dur-fast) var(--ease-out-quad);
}


.campus-fact-value a:hover {
  color:var(--accent);
  text-decoration-color:var(--accent);
}


.campus-fact-value a:active { color:var(--accent-hover); }


.campus-fact-value a:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:2px;
}


.inquiry-form-panel {
  min-width:0;
  background-color:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:var(--space-6);
}


@media (min-width: 768px) {
  .inquiry-form-panel { padding:var(--space-8); }
}


.honeypot-field {
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}


.faq-list {
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--line);
  margin-top:var(--space-8);
}


.faq-item { border-bottom:1px solid var(--line-alpha-50); }


.faq-trigger {
  width:100%;
  min-height:var(--touch-target);
  padding:var(--space-5) var(--space-2);
  background:none;
  border:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-4);
  text-align:left;
  font-family:var(--zodu-1e8);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--ink);
  cursor:pointer;
  transition:color var(--dur-fast) var(--ease-out-quad),
              background-color var(--dur-fast) var(--ease-out-quad);
}


.faq-trigger:hover {
  color:var(--accent);
  background-color:var(--surface);
}


.faq-trigger:active { color:var(--accent-hover); }


.faq-trigger:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:-2px;
}


.faq-trigger .icon {
  transition:transform var(--dur-mid) var(--ease-out-quad);
  color:var(--accent);
}


.faq-trigger[aria-expanded='true'] .icon { transform:rotate(180deg); }


.faq-panel { padding:0 var(--space-2) var(--space-6); }


.faq-panel[hidden] { display:none; }


.faq-panel p {
  font-size:var(--text-base);
  color:var(--ink-soft);
  line-height:1.65;
  max-width:65ch;
}


.privacy-margin-layout {
  display:flex;
  flex-direction:column;
  gap:var(--space-10);
  margin-top:var(--space-8);
}


.privacy-row {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--space-4);
  padding-bottom:var(--space-8);
  border-bottom:1px solid var(--line-alpha-30);
  align-items:start;
}


@media (min-width: 768px) {
  .privacy-row {
    grid-template-columns:minmax(0, 65ch) minmax(200px, 1fr);
    gap:var(--space-10);
  }
}


.privacy-main-col {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
}


.privacy-main-col h2 {
  font-size:var(--text-xl);
  color:var(--ink);
  line-height:1.3;
}


.privacy-main-col p,
.privacy-main-col li {
  font-size:var(--text-base);
  color:var(--ink-soft);
  line-height:1.68;
  max-width:65ch;
}


.privacy-main-col ul {
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
  padding-left:var(--space-5);
  list-style:disc;
}


.privacy-main-col a {
  color:#F4C778;
  text-decoration:underline;
  text-underline-offset:3px;
  transition:color var(--dur-fast) var(--ease-out-quad);
}


.privacy-main-col a:hover { color:var(--accent-hover); }


.privacy-main-col a:active { color:var(--accent-active); }


.privacy-main-col a:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:2px;
}


.privacy-margin-note {
  min-width:0;
  background-color:var(--ground);
  border-left:2px solid var(--accent);
  padding:var(--space-4);
  border-radius:0 var(--radius-xs) var(--radius-xs) 0;
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
}


@media (min-width: 768px) {
  .privacy-margin-note {
    background-color:transparent;
    border-left:1px solid var(--line);
    border-top:2px solid var(--accent);
    border-radius:0;
    padding:var(--space-3) 0 0 var(--space-4);
    margin-top:var(--space-2);
  }
}


.margin-note-term {
  font-family:var(--zodu-722);
  font-size:var(--text-xs);
  font-weight:600;
  color:var(--accent);
  letter-spacing:0.03em;
}


.margin-note-body {
  font-size:var(--text-xs);
  color:var(--ink-soft);
  line-height:1.5;
}


.margin-note-clock {
  font-family:var(--zodu-722);
  font-size:var(--text-xs);
  color:var(--ink);
  font-variant-numeric:tabular-nums lining-nums;
}


.dsar-panel {
  margin-top:var(--space-6);
  background-color:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:var(--space-6);
}


.cookies-tabs-shell { margin-top:var(--space-8); }


.cookies-tablist { display:none; }


@media (min-width: 768px) {
  .cookies-tablist {
    display:flex;
    flex-wrap:wrap;
    gap:var(--space-2);
    border-bottom:1px solid var(--line);
    margin-bottom:var(--space-6);
  }
}


.cookies-tab {
  position:relative;
  padding:var(--space-3) var(--space-5);
  min-height:var(--touch-target);
  background:none;
  border:0;
  border-bottom:2px solid transparent;
  font-family:var(--zodu-1e8);
  font-size:var(--text-base);
  font-weight:600;
  color:var(--ink-soft);
  cursor:pointer;
  margin-bottom:-1px;
  transition:color var(--dur-fast) var(--ease-out-quad),
              background-color var(--dur-fast) var(--ease-out-quad),
              border-color var(--dur-fast) var(--ease-out-quad);
}


.cookies-tab:hover {
  color:var(--ink);
  background-color:var(--surface);
}


.cookies-tab:active { color:var(--accent-hover); }


.cookies-tab:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:-2px;
}


.cookies-tab[aria-selected='true'] {
  color:var(--accent);
  border-bottom-color:var(--accent);
  background-color:var(--surface);
}


.cookies-part { border-bottom:1px solid var(--line-alpha-50); }


@media (min-width: 768px) {
  .cookies-part { border-bottom:0; }
}


.cookies-accordion-btn {
  width:100%;
  min-height:var(--touch-target);
  padding:var(--space-4) var(--space-3);
  background-color:var(--surface);
  border:0;
  border-left:3px solid transparent;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-4);
  text-align:left;
  font-family:var(--zodu-1e8);
  font-size:var(--text-lg);
  font-weight:600;
  color:var(--ink);
  cursor:pointer;
  transition:background-color var(--dur-fast) var(--ease-out-quad),
              color var(--dur-fast) var(--ease-out-quad),
              border-color var(--dur-fast) var(--ease-out-quad);
}


.cookies-accordion-btn:hover {
  background-color:var(--surface-2);
  color:var(--accent);
}


.cookies-accordion-btn:active { background-color:var(--surface-2-alpha-90); }


.cookies-accordion-btn:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:-2px;
}


.cookies-accordion-btn[aria-expanded='true'] {
  border-left-color:var(--accent);
  color:var(--accent);
}


.cookies-accordion-btn .icon { transition:transform var(--dur-mid) var(--ease-out-quad); }


.cookies-accordion-btn[aria-expanded='true'] .icon { transform:rotate(180deg); }


@media (min-width: 768px) {
  .cookies-accordion-btn { display:none; }
}


.cookies-tabpanel {
  padding:var(--space-5) var(--space-3);
  display:flex;
  flex-direction:column;
  gap:var(--space-5);
}


@media (min-width: 768px) {
  .cookies-tabpanel { padding:var(--space-4) 0; }
}


.cookies-tabpanel[hidden] { display:none; }


.cookies-tabpanel h2 {
  font-size:var(--text-xl);
  color:var(--ink);
}


.cookies-tabpanel p,
.cookies-tabpanel li {
  font-size:var(--text-base);
  color:var(--ink-soft);
  line-height:1.65;
  max-width:65ch;
}


.cookies-tabpanel a {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:3px;
  transition:color var(--dur-fast) var(--ease-out-quad);
}


.cookies-tabpanel a:hover { color:var(--accent-hover); }


.cookies-tabpanel a:active { color:var(--accent-active); }


.cookies-tabpanel a:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:2px;
}


.cookie-signal-list {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--space-4);
}


@media (min-width: 640px) {
  .cookie-signal-list { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}


.cookie-signal-item {
  min-width:0;
  background-color:var(--surface);
  border:1px solid var(--line-alpha-50);
  border-radius:var(--radius-sm);
  padding:var(--space-4);
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
}


.cookie-signal-key {
  font-family:var(--zodu-722);
  font-size:var(--text-sm);
  font-weight:600;
  color:var(--accent);
}


.cookie-signal-desc {
  font-size:var(--text-sm);
  color:var(--ink-soft);
  line-height:1.5;
}


.terms-statute-section {
  padding-top:var(--space-8);
  padding-bottom:var(--space-8);
  border-bottom:1px solid var(--line-alpha-50);
}


.terms-statute-heading {
  font-family:var(--zodu-1e8);
  font-size:var(--text-xl);
  font-weight:700;
  color:var(--ink);
  padding-bottom:var(--space-4);
  margin-bottom:var(--space-6);
  border-bottom:1px solid var(--line);
}


.terms-statute-columns {
  column-count:1;
  column-gap:var(--space-12);
}


@media (min-width: 768px) {
  .terms-statute-columns {
    column-count:2;
    column-rule:1px solid var(--line-alpha-50);
  }
}


.statute-clause {
  break-inside:avoid;
  page-break-inside:avoid;
  margin-bottom:var(--space-5);
  font-size:var(--text-sm);
  line-height:1.65;
  color:var(--ink-soft);
  max-width:none;
}


.statute-clause a {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:2px;
  transition:color var(--dur-fast) var(--ease-out-quad);
}


.statute-clause a:hover { color:var(--accent-hover); }


.statute-clause a:active { color:var(--accent-active); }


.statute-clause a:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:2px;
}


.statute-runin {
  font-family:var(--zodu-1e8);
  font-variant-caps:all-small-caps;
  letter-spacing:0.06em;
  font-size:var(--text-base);
  font-weight:600;
  color:var(--ink);
  margin-right:var(--space-2);
}


.error-panel {
  min-height:68vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:var(--space-6);
  padding:var(--space-12) 0;
}


.error-code {
  font-family:var(--zodu-722);
  font-size:clamp(3rem, 2.2rem + 4vw, 5.5rem);
  font-weight:600;
  line-height:1;
  color:var(--accent);
  font-variant-numeric:tabular-nums lining-nums;
}


.error-actions {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-4);
  margin-top:var(--space-2);
}
