/* First bright release: only the four public front doors opt in.
   Keep /partners, signed share pages, help and the shared /ui/v1 contract intact. */
:root[data-front-door] {
  color-scheme: light;
  --bg: #fafbf9;
  --panel: #fff;
  --ink: #20323e;
  --muted: #566772;
  --rule: #dce3e4;
  --accent: #0b5c8a;
  --warm: #965d24;
  --head: var(--sans);
  --head-w: 600;
  --tz-bar-h: 72px;
}
.front-door { caret-color: var(--accent); }
.front-door ::selection { background: #c9e0eb; color: #133548; }
.front-door :focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.front-door .skip-link { position: fixed; top: -120px; left: 16px; z-index: 100; padding: 12px 18px; background: #fff; color: var(--accent); }
.front-door .skip-link:focus { top: 12px; }

/* Local token overrides: do not change the hosted shared shell for other apps. */
.front-door tz-bar, .front-door tz-footer {
  --tz-bg: #fafbf9;
  --tz-panel: #fff;
  --tz-text: #20323e;
  --tz-muted: #566772;
  --tz-rule: #dce3e4;
  --tz-warm: #965d24;
  --tz-cool: #0b5c8a;
}
.front-door tz-bar .tz-langs { gap: 0; padding: 2px; background: #fff; border-radius: 10px; }
.front-door tz-bar .tz-langs button { min-height: 44px; min-width: 44px; padding: 7px; border-radius: 7px; }
.front-door tz-bar .tz-mark { font-size: 18px; letter-spacing: -.025em; }
.front-door tz-footer[ip-logo="fixed"] .tz-ip, .front-door .ip-logo { position: static; flex: none; }
.front-door tz-footer .tz-in { gap: 24px; align-items: center; }
.front-door tz-footer a { display: inline-block; padding-block: 8px; }
.front-door .sharer { background: #eef4f6; border-color: var(--rule); }
.front-door .sharer p { color: var(--muted); }
.front-door .sharer a { background: var(--accent); color: #fff; min-height: 44px; display: inline-flex; align-items: center; }

.front-door h1 { font-size: clamp(2.5rem, 5.2vw, 4.2rem); line-height: 1.08; letter-spacing: -.04em; }
.front-door .lead { color: var(--muted); line-height: 1.65; max-width: 40ch; }
.front-door .kick { color: var(--accent); }
.front-door .hero { min-height: 0; align-items: center; background: var(--bg); }
.front-door .hero > img { opacity: .1; }
.front-door .hero::after { background: linear-gradient(90deg, #fafbf9 5%, #fafbf9e6 58%, #fafbf9b3); }
.front-door .hero .hero-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 64px; align-items: center; padding-block: 64px; }
.front-door .hero-copy { padding-block: 12px; }
.front-door .partner-start { background: #edf3f5; border: 1px solid #d6e2e7; border-radius: 12px; padding: 30px; }
.front-door .partner-start h2 { font: 600 clamp(1.6rem, 3vw, 2rem)/1.15 var(--sans); letter-spacing: -.03em; margin: 0; text-wrap: balance; }
.front-door .partner-start p { color: var(--muted); line-height: 1.65; margin: 16px 0 22px; }
.front-door .go { min-height: 48px; border-radius: 8px; background: var(--accent); color: #fff; padding: 12px 20px; }
.front-door .go:hover, .front-door .first:hover .go { background: #08496e; }
.front-door .partner-start .go { display: flex; justify-content: space-between; gap: 16px; }
.front-door .partner-login { display: inline-flex; align-items: center; min-height: 44px; margin-top: 10px; color: var(--accent); text-underline-offset: 4px; }
.front-door .doors { padding-top: 24px; border-top: 1px solid var(--rule); gap: 24px; }
.front-door .door { border-radius: 12px; }
.front-door .door:hover, .front-door .first:hover { border-color: #9ab5c3; }
.front-door .door .body { padding: 24px; gap: 10px; }
.front-door .door h2 { font-size: 26px; letter-spacing: -.025em; }
.front-door .door p, .front-door .first p, .front-door .then li p { color: var(--muted); }
.front-door .door .meta { color: var(--accent); min-height: 28px; }
.front-door .door .meta i { color: var(--accent); }
.front-door .door.quiet { background: #edf3f5; }
.front-door .door.quiet .body { min-height: 220px; }
.front-door .door.quiet .meta, .front-door .door.quiet .meta i { color: var(--accent); }
.front-door .more { padding-block: 28px; }
.front-door .more a { min-height: 44px; background: #fff; border-radius: 8px; padding: 10px 16px; }
.front-door .head { padding-block: 44px 30px; }
.front-door .first .body { padding: 30px; }
.front-door .first h2, .front-door .then h2, .front-door .then li h3 { letter-spacing: -.025em; }
.front-door .then { padding-top: 36px; }
.front-door .then li a { padding-block: 22px; }
.front-door .then li a:hover h3 { color: var(--accent); }
.front-door .then li a:hover i { color: var(--accent); }
.front-door .back { display: inline-flex; align-items: center; min-height: 44px; color: var(--accent); }

@media (max-width: 720px) {
  .front-door .hero .hero-grid { grid-template-columns: 1fr; gap: 24px; padding-block: 32px; }
  .front-door .hero-copy { padding: 0; }
  .front-door .hero .lead { margin-top: 16px; font-size: 17px; }
  .front-door .partner-start { padding: 24px; }
  .front-door .partner-start p { font-size: 15px; margin-block: 12px 18px; }
  .front-door .door.quiet .body { min-height: 180px; }
  .front-door .first .body { padding: 24px 20px; }
  .front-door .head { padding-block: 30px 24px; }
  .front-door .head h1 { font-size: 2.5rem; }
  .front-door tz-footer .tz-in { align-items: flex-start; }
}
@media (max-width: 400px) {
  .front-door tz-bar .tz-in { width: calc(100% - 24px); gap: 8px; }
  .front-door tz-bar .tz-mark { font-size: 14px; }
  .front-door .partner-start { padding: 20px; }
}
