:root {
  color-scheme: light;
  --ink: #17191a;
  --red: #98101e;
  background: #fff;
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: #fff; }
a { color: inherit; }
a:focus-visible { outline: 3px solid var(--red); outline-offset: 7px; }
.skip-link { position: fixed; z-index: 10; top: 12px; left: 12px; padding: 12px 18px; background: #fff; transform: translateY(-180%); }
.skip-link:focus { transform: none; }
.question-track { position: relative; height: 100vh; }
.question-stage { position: sticky; top: 0; width: 100%; height: 100vh; height: 100dvh; overflow: hidden; isolation: isolate; background: #fff; }
.question-stage canvas { display: block; width: 100%; height: 100%; }
.question-copy {
  position: absolute; z-index: 2; top: max(13%, env(safe-area-inset-top)); left: max(7%, env(safe-area-inset-left));
  display: flex; flex-direction: row-reverse; align-items: flex-start; gap: .14em;
  margin: 0; color: #101010; font-size: clamp(22px, min(8.3vw, 4.05dvh), 80px);
  font-weight: 800; line-height: 1.19; letter-spacing: .035em;
  -webkit-text-stroke: 2.3px #fff; paint-order: stroke fill; text-shadow: 0 0 4px #fff;
}
.question-copy span { writing-mode: vertical-rl; text-orientation: mixed; white-space: nowrap; }
.motion-enabled .question-copy { opacity: 0; transform: translate3d(0,18px,0); }
.scroll-cue { position: absolute; right: max(7%, env(safe-area-inset-right)); bottom: max(4%, env(safe-area-inset-bottom)); display: none; align-items: center; gap: 12px; font-size: 9px; letter-spacing: .18em; color: #777; }
.motion-enabled .scroll-cue { display: flex; }
.scroll-cue i { display: block; width: 1px; height: 28px; background: #a6a6a6; }
.approach { padding: clamp(100px, 18vh, 220px) max(7vw, 24px) clamp(100px, 15vh, 180px); max-width: 1320px; margin: auto; }
.wordmark { margin: 0 0 54px; font-size: 13px; font-weight: 650; letter-spacing: .28em; }
.approach h2 { margin: 0; font-size: clamp(28px, 4vw, 54px); letter-spacing: .03em; line-height: 1.8; font-weight: 600; }
.promise { max-width: 620px; margin: 44px 0 60px; font-size: clamp(15px, 1.4vw, 18px); line-height: 2.3; }
.entry-links { display: flex; flex-wrap: wrap; align-items: center; gap: 32px 48px; }
.entry-links a { display: inline-flex; align-items: center; justify-content: space-between; gap: 38px; text-decoration: none; }
.entry-main { padding: 24px 28px; min-height: 72px; background: var(--ink); color: #fff; font-size: 16px; }
.entry-main:hover { background: #333739; }
.entry-secondary { padding: 14px 0; font-size: 14px; border-bottom: 1px solid #aaa; }
.consultation { max-width: 1320px; margin: auto; padding: 72px max(7vw,24px); border-top: 1px solid #ddd; scroll-margin-top: 28px; }
.section-index { font-size: 10px; letter-spacing: .16em; color: #65696b; margin: 0 0 28px; }
.consultation h2 { margin: 0 0 26px; font-size: clamp(25px,3vw,36px); font-weight: 600; }
.consultation > p:not(.section-index) { max-width: 620px; line-height: 2.2; font-size: 15px; }
.consultation .local-note { color: #777; font-size: 12px; margin-top: 30px; }
footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px; margin-top: 50px; padding: 36px max(7vw,24px); border-top: 1px solid #ddd; font-size: 10px; letter-spacing: .06em; }
@media (min-aspect-ratio: 1/1) {
  .question-copy { left: 8%; top: max(12%, env(safe-area-inset-top)); font-size: clamp(20px, min(4.1vw, 5.6dvh), 58px); }
}
@media (prefers-reduced-motion: reduce) {
  .question-track { height: 100vh !important; height: 100dvh !important; }
  .question-stage { position: relative; }
  .motion-enabled .question-copy { opacity: 1 !important; transform: none !important; }
  .scroll-cue { display: none !important; }
}
