:root {
  --twilight-1:#6a75a1; --twilight-2:#8d88a7; --twilight-3:#c0a0b1; --twilight-4:#db949a; --twilight-5:#e7b4ac;
  --base-moon:#f3e8dd;
  --text:#231815; --text-light:#58524c; --text-soft:#3d3530;
  --card:linear-gradient(135deg,#f3e8ddfa 0%,#fffffff2 100%);
  --cta:linear-gradient(135deg,#db949a 0%,#e7b4ac 100%);
  --cta-blue:linear-gradient(135deg,#6a75a1 0%,#8d88a7 100%);
  --hero:linear-gradient(135deg,var(--twilight-1) 0%,var(--twilight-2) 25%,var(--twilight-3) 50%,var(--twilight-4) 75%,var(--twilight-5) 100%);
  --hairline:linear-gradient(90deg,#0000,#8d88a7,#0000);
  --radius-pill:50px; --radius-card:20px; --radius-sm:10px;
  --serif:"Noto Serif JP",serif;
  --sans:"Zen Kaku Gothic New",sans-serif;
  --latin:"EB Garamond",serif;
}
* { box-sizing:border-box; min-width:0; }
html { color:var(--text); background:var(--base-moon); word-break:normal; overflow-wrap:anywhere; }
body { margin:0; font:400 16px/1.95 var(--sans); background:radial-gradient(ellipse at 3% 8%,#8d88a726,transparent 36%),radial-gradient(ellipse at 100% 22%,#db949a26,transparent 38%),#f6f1ec; }
h1,h2,h3,p,ol { margin:0; }
h1,h2 { font-family:var(--serif); font-weight:400; letter-spacing:.065em; line-height:1.75; }
h2 { font-size:clamp(23px,4.9vw,30px); }
h3 { font-size:17px; font-weight:500; line-height:1.8; }
.nb { display:inline-block; }
a { color:inherit; text-underline-offset:5px; }
button,input,textarea { font:inherit; }
button,a,input,textarea { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { cursor:wait; opacity:.65; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex="-1"]:focus-visible { outline:3px solid var(--twilight-1); outline-offset:5px; }
[hidden] { display:none !important; }
@supports (word-break:auto-phrase) { h1,h2,h3,.question-label { word-break:auto-phrase; } }
.page-shell { width:100%; max-width:680px; margin-inline:auto; background:var(--base-moon); box-shadow:0 0 70px #6258640c; }
.eyebrow { color:var(--twilight-1); font:400 13px/1.6 var(--latin); letter-spacing:.18em; margin-bottom:17px; }
.hero { position:relative; isolation:isolate; padding:72px 28px 40px; color:white; }
.hero-sky { position:absolute; inset:0; z-index:-2; background:var(--hero); }
.hero-sky::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,#f3e8dd40 72%,var(--base-moon) 100%); }
.moon { width:115px; height:115px; color:var(--base-moon); pointer-events:none; }
.hero > .moon { position:absolute; top:70px; right:26px; z-index:-1; opacity:.78; transform:rotate(-16deg); filter:drop-shadow(0 0 24px #fff4d02e); }
.hero-content { position:relative; padding-top:102px; }
.hero .eyebrow { color:#fff; font-size:12px; margin-bottom:30px; }
.hero-kicker { font-size:13px; letter-spacing:.12em; margin-bottom:15px; }
.hero h1 { font-size:clamp(24px,5.9vw,38px); line-height:1.85; letter-spacing:.045em; font-weight:400; }
.hero-lead { margin:28px 0 32px; font-size:15px; line-height:2; color:var(--text-soft); }
.button { min-height:56px; border:1px solid transparent; border-radius:var(--radius-pill); display:flex; align-items:center; justify-content:center; gap:22px; padding:13px 24px; font-size:16px; font-weight:500; line-height:1.65; letter-spacing:.06em; text-decoration:none; }
.button-primary { background:var(--cta); color:#fff; box-shadow:0 5px 16px #8f58621a; }
.button-primary span { font-family:var(--sans); font-size:19px; font-weight:400; }
.button:hover { filter:brightness(.97); }
.hero .button,.closing .button { width:100%; max-width:400px; margin-inline:auto; }
.cta-note { margin-top:17px; font-size:12px; line-height:1.9; color:var(--text-light); text-align:center; }
.section { position:relative; padding:64px 28px; }
.section + .section::before { content:""; position:absolute; top:0; left:28px; right:28px; height:1px; opacity:.35; background:var(--hairline); }
.section h2 { margin-bottom:28px; }
.prose p + p { margin-top:24px; }
.prose,.glass-card > p:not(.eyebrow),.number-list p { color:var(--text-soft); }
.signature { text-align:right; font-size:13px; margin-top:28px; }
.about { padding-top:46px; }
.ask { background:radial-gradient(ellipse at 100% 40%,#8d88a714,transparent 65%); }
.number-list { list-style:none; padding:0; }
.number-list li { display:grid; grid-template-columns:34px minmax(0,1fr); gap:15px; align-items:start; padding:20px 0; }
.number { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:var(--cta-blue); color:#fff; font:400 14px/1 var(--latin); margin-top:2px; }
.number-list li + li { border-top:1px solid #8d88a724; }
.number-list p { font-size:15px; }
.small-note { font-size:13px; color:var(--text-light); margin-top:19px; }
.voice-card { position:relative; margin-top:28px; padding:28px 25px; background:var(--card); border:1px solid #ffffffb3; border-radius:var(--radius-card); box-shadow:0 12px 32px #62586407; }
.voice-card p { font-family:var(--serif); font-size:16px; line-height:2.2; color:var(--twilight-1); }
.promise { background:radial-gradient(ellipse at 0 30%,#db949a15,transparent 65%); }
.promise-list { margin-top:34px; }
.promise-list li { padding-block:24px; }
.promise-list h3 { margin-bottom:10px; }
.promise-list p { color:var(--text-light); }
.inset-section { padding-block:22px; }
.inset-section + .inset-section::before,.closing::before { display:none; }
.glass-card { padding:32px 25px; background:var(--card); border:1px solid #ffffffc9; border-radius:var(--radius-card); box-shadow:0 14px 40px #63536d09; }
.glass-card h2 { font-size:23px; }
.glass-card > p:not(.eyebrow) { font-size:15px; }
.closing { text-align:center; padding-top:76px; padding-bottom:64px; background:radial-gradient(ellipse at 60% 35%,#c0a0b12e,transparent 68%); }
.closing .moon { width:67px; height:67px; color:var(--twilight-2); opacity:.65; margin-bottom:24px; }
.closing h2 { font-size:24px; margin-bottom:30px; }
.footer { padding:32px 28px; border-top:1px solid #8d88a724; color:var(--text-light); font-size:12px; line-height:1.9; background:#ffffff24; }
.footer .company { font-size:14px; color:var(--text); margin-bottom:12px; }
.footer p + p { margin-top:8px; }
.footer .copyright { font:400 13px/1.6 var(--latin); letter-spacing:.05em; margin-top:26px; }
.reveal.is-pending { opacity:0; transform:translateY(12px); }
.reveal { transition:opacity .6s ease,transform .6s ease; }
.form-shell { min-height:100svh; padding-bottom:0; background:radial-gradient(ellipse at 100% 0,#c0a0b127,transparent 440px),var(--base-moon); }
.status-band { text-align:center; background:var(--cta-blue); color:#fff; font-size:13px; padding:9px 16px; letter-spacing:.07em; }
.restore-notice { padding:10px 24px 0; color:var(--text-light); font-size:12px; text-align:center; }
.form-sticky { position:sticky; top:0; z-index:20; background:var(--base-moon); box-shadow:0 6px 18px #62586414; }
.form-header h1 { font-size:16px; line-height:1.8; padding:22px 28px 24px; }
.form-body { padding:0 24px; }
.progress-area { margin:0; padding:12px 28px 12px; }
.progress-label { font:400 17px/1.4 var(--latin); color:var(--twilight-1); letter-spacing:.12em; margin-bottom:8px; }
.progress-track { height:3px; background:#8d88a724; border-radius:8px; overflow:hidden; }
.progress-track span { display:block; width:14.285714%; height:100%; background:var(--cta-blue); }
.step-heading { padding:5px 4px 28px; }
.step-number { font:400 42px/1.2 var(--latin); color:var(--twilight-1); margin-bottom:12px; }
.step-heading h2 { font-size:27px; margin-bottom:13px; scroll-margin-top:24px; }
.step-lead { font-size:15px; color:var(--text-light); }
.optional-note { margin-top:14px; color:var(--text-light); font-size:13px; }
.question { padding:25px 20px; margin-bottom:18px; background:var(--card); border:1px solid #fff9; border-radius:var(--radius-card); box-shadow:0 8px 25px #64536c05; }
.question-label { display:block; font-size:16px; line-height:1.9; font-weight:500; margin-bottom:16px; }
.question-hint { color:var(--text-light); font-size:13px; margin-top:-7px; margin-bottom:16px; }
.pills,.chips { display:flex; flex-wrap:wrap; gap:10px 8px; }
.pill,.chip { max-width:100%; border:1px solid #8d88a74d; border-radius:var(--radius-pill); color:var(--text-soft); background:#ffffff8c; padding:10px 16px; font-size:16px; line-height:1.65; text-align:left; overflow-wrap:anywhere; }
.pill[aria-pressed="true"] { background:var(--cta-blue); color:#fff; border-color:transparent; }
.chips { margin-top:14px; gap:8px; }
.chip { padding:7px 12px; font-size:16px; }
.chip[aria-pressed="true"] { background:#db949a36; border-color:var(--twilight-4); color:var(--text); }
.pills + textarea { margin-top:18px; }
textarea,input:not([name="website"]) { display:block; width:100%; padding:14px; background:#ffffffa6; color:var(--text); border:1px solid #8d88a74d; border-radius:var(--radius-sm); font-size:16px; line-height:1.85; }
textarea { resize:vertical; min-height:118px; overflow-y:hidden; }
input::placeholder,textarea::placeholder { color:#756e72; opacity:1; }
.honeypot { display:none; }
.form-note,.submit-note,.error-note { margin:20px 4px; font-size:14px; line-height:1.9; }
.form-note { border-left:2px solid var(--twilight-4); padding-left:14px; color:var(--text-soft); }
.submit-note { color:var(--text-light); }
.error-note { color:#873d4d; padding:16px; border-radius:var(--radius-sm); background:#ffffff9c; }
.form-navigation { position:sticky; bottom:0; z-index:20; display:flex; justify-content:space-between; gap:12px; margin:28px -24px 0; padding:12px 24px calc(12px + env(safe-area-inset-bottom)); background:var(--base-moon); box-shadow:0 -6px 18px #62586414; }
.form-navigation .button-primary { flex:1; max-width:none; }
.form-navigation .button-secondary { flex:0 0 auto; }
.button-secondary { border-color:#8d88a759; color:var(--text-light); background:#ffffff73; padding-inline:20px; }
.thanks-shell { min-height:100svh; position:relative; padding:180px 24px 64px; background:linear-gradient(180deg,#0000 0%,var(--base-moon) 85%),var(--hero); }
.thanks-shell > .moon { position:absolute; top:45px; right:50px; width:90px; height:90px; }
.thanks-card { text-align:center; padding:40px 25px; }
.thanks-card h1 { font-size:26px; margin:22px 0; }
.thanks-card > p:not(.eyebrow) { text-align:left; }
.thanks-card .button { margin-top:35px; }
.text-link { display:block; margin-top:23px; font-size:13px; }
.og-page { width:1200px; height:630px; }
.og-card { position:relative; width:1200px; height:630px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--hero); color:#fff; text-align:center; }
.og-card .moon { position:absolute; right:85px; top:48px; width:120px; height:120px; opacity:.8; }
.og-card h1 { font-size:48px; line-height:1.85; position:relative; }
.og-card p { margin-top:40px; font-size:20px; letter-spacing:.08em; }
@media (min-width:600px) {
  .hero { padding:76px 64px 48px; }
  .hero-content { padding-top:110px; }
  .hero > .moon { width:145px; height:145px; right:65px; }
  .hero-lead { max-width:470px; margin:32px 0; font-size:16px; }
  .section { padding:76px 64px; }
  .section + .section::before { left:64px; right:64px; }
  .inset-section { padding-block:24px; }
  .glass-card { padding:38px; }
  .number-list li { gap:20px; }
  .footer { padding:38px 64px; }
  .form-header h1 { padding-inline:48px; }
  .progress-area { padding-inline:48px; }
  .form-body { padding-inline:44px; }
  .form-navigation { margin-inline:-44px; padding-inline:44px; }
  .question { padding:30px; }
  .thanks-shell { padding:200px 56px 80px; }
  .thanks-card { padding:48px 40px; }
}
@media (prefers-reduced-motion:reduce) {
  .reveal { transition:none; }
  .reveal.is-pending { opacity:1; transform:none; }
}
