html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
* { box-sizing:border-box; }
html[lang="ja"] :is(h1,h2,h3) { word-break:keep-all; overflow-wrap:anywhere; }
body { margin:0; background:var(--modo-paper); color:var(--modo-ink); font-family:Inter,"Noto Sans JP",system-ui,sans-serif; }
button,input,select { font:inherit; }
main { min-height:100vh; }
.hero { padding:clamp(70px,11vw,150px) 5vw 70px; border-bottom:1px solid var(--modo-line); }
.kicker { margin:0 0 14px; color:var(--modo-violet); font-size: .875rem; font-weight: 650; letter-spacing:.14em; }
h1 { max-width:980px; margin:0; font-size: clamp(3.3rem, 8.5vw, var(--modo-text-3xl)); line-height:1.05; letter-spacing:-.075em; }
.lead { max-width:850px; margin:38px 0 0; font-size: clamp(1.05rem, 2vw, var(--modo-text-l)); line-height:1.9; font-weight: 500; }
.boundary { max-width:980px; display:grid; gap:8px; margin-top:36px; padding:22px; border:0; background: color-mix(in srgb, var(--modo-good) 12%, var(--modo-paper)); box-shadow:none; }

html[lang="ja"] .boundary strong { word-break: keep-all; overflow-wrap: break-word; }
.boundary strong { font-size: var(--modo-text-m); }
.boundary span { line-height:1.7; font-size: 1rem; font-weight: 500; }
.mode-grid { display:grid; grid-template-columns:1fr 1fr; }
.mode-card { min-width:0; padding:clamp(34px,5vw,72px); border-bottom:1px solid var(--modo-line); }
.mode-card:first-child { border:0; }
.mode-card h2,.privacy-section h2 { margin:0; font-size: clamp(2rem, 4vw, var(--modo-text-3xl)); line-height:1; letter-spacing:-.055em; }
.mode-card>p:not(.kicker),.receipt p { color:var(--modo-muted); line-height:1.8; font-weight: 500; }
form { display:grid; gap:18px; margin-top:30px; }
label { display:grid; gap:8px; font-size: .875rem; font-weight: 650; }
input,select { width:100%; min-height:52px; padding:0 12px; border:0; border-radius:16px; background:var(--modo-panel); }
.check { grid-template-columns:22px 1fr; align-items:start; line-height:1.65; }
.check input { width:20px; min-height:20px; margin-top:2px; }
.button { min-height:50px; padding:10px 16px; border:0; background:var(--modo-panel); color:var(--modo-ink); font-weight: 650; cursor:pointer; box-shadow:none; }

.button:disabled { opacity:1; border-color:var(--modo-line); background:var(--modo-line); color:var(--modo-ink-soft); cursor:not-allowed; box-shadow:none; }
.primary { background: color-mix(in srgb, var(--modo-good) 12%, var(--modo-paper)); }
.secondary { background:var(--modo-violet-pale); }
.danger { background:var(--modo-coral); }
.status { min-height:28px; margin:18px 0 0; color:var(--modo-danger)!important; }
.details,.receipt,.workspace-view { margin-top:22px; padding:20px; border:0; background:var(--modo-panel); }
.details { display:grid; gap:7px; }
.details[hidden],.receipt[hidden],.workspace-view[hidden] { display:none; }
.details span { color:var(--modo-muted); font-size: .875rem; font-weight: 500; }
.workspace-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:0; }
.workspace-summary article { min-height:110px; display:grid; grid-template-rows:1fr auto; align-items:end; gap:6px; padding:14px; border:0; }
.workspace-summary article:last-child { border-right:0; }
.workspace-summary strong { font-size: var(--modo-text-2xl); }
.workspace-summary span { color:var(--modo-muted); font-size: .875rem; font-weight: 600; }
.aggregate-gate { margin-top:18px; padding:16px; background: color-mix(in srgb, var(--modo-good) 12%, var(--modo-paper)); font-weight: 600; line-height:1.7; }
.domain-list { display:grid; margin-top:18px; border-top:1px solid var(--modo-line); }
.domain-list article { display:grid; grid-template-columns:1fr auto; gap:16px; padding:12px 0; border-bottom:1px solid var(--modo-line); }
.domain-list span { color:var(--modo-muted); font-size: .875rem; font-weight: 500; }
.workspace-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }

.workspace-actions .button { flex:1 1 240px; }
html[lang="ja"] .workspace-actions .button { word-break: keep-all; }
.pilot-progress { margin-top:22px; padding:18px; border:0; background:var(--modo-violet-pale); }
.pilot-progress h4 { margin:0; font-size: var(--modo-text-m); }
.pilot-progress>p { color:var(--modo-muted); font-size: .875rem; font-weight: 500; line-height:1.65; }
.pilot-progress ol { display:grid; gap:8px; margin:18px 0; padding:0; list-style:none; }
.pilot-progress li { min-width:0; display:grid; grid-template-columns:24px minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px 0; border-top:1px solid rgb(20 18 26 / .25); }
.pilot-progress li span { font-weight: 650; }
.pilot-progress li strong { font-size: .875rem; }
.pilot-progress li small { color:var(--modo-muted); font-weight: 600; }
.pilot-progress li .button { min-height:44px; box-shadow:none; font-size: .875rem; }
.pilot-progress li.is-complete span {  color:#456400; }
.intent-actions { display:grid; gap:10px; margin-top:18px; padding-top:16px; border-top:1px solid var(--modo-line); }
.intent-actions>strong { font-size: .875rem; }
.intent-actions>div { display:flex; flex-wrap:wrap; gap:8px; }
.intent-actions .button { min-height:44px; flex:1 1 120px; box-shadow:none; font-size: .875rem; }
.incident-button { min-height:44px; margin-top:18px; border:0; border-bottom:1px solid currentColor; background:transparent; color:var(--modo-danger); font-size: .875rem; font-weight: 650; cursor:pointer; }
.incident-button:disabled { color:var(--modo-muted); cursor:default; }
.privacy-section { padding:80px 5vw; }
.privacy-section h2 { max-width:900px; }
.privacy-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:48px; border:0; }

.privacy-grid article { min-height:190px; display:grid; grid-template-rows:1fr auto; align-items:end; gap:10px; padding:22px; border:0; background:var(--modo-panel); }
.privacy-grid article:last-child { border-right:0; }


.privacy-grid strong { white-space:nowrap; line-height:1.2; font-size: clamp(1.2rem, 5vw, var(--modo-text-3xl)); letter-spacing:-.06em; }

.privacy-grid span { min-height:calc(1.5em * 3); color:var(--modo-muted); font-size: .875rem; font-weight: 600; line-height:1.5; }
footer { display:flex; flex-wrap:wrap; gap:22px; padding:30px 5vw; border-top:1px solid var(--modo-line); font-size: .875rem; font-weight: 600; }
footer span { margin-right:auto; }
footer a { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; color:inherit; }


/* The shared page shell stays narrow on desktop as well as phones. */
body { font-size:17px; line-height:1.8; }
h1 { font-size:2.2rem; line-height:1.4; letter-spacing:-.045em; }
h2,h3,p,strong,span { overflow-wrap:anywhere; }
.hero { padding:48px 20px 40px; border-color:var(--modo-line); }
.lead { margin-top:24px; font-size:1.0625rem; }
.boundary { margin-top:28px; padding:20px 0; border-top:2px solid var(--modo-line); background:transparent; }
.boundary span { font-size:1rem; }
.mode-grid { grid-template-columns:minmax(0,1fr); }
.mode-card { padding:40px 20px; }
.mode-card h2,.privacy-section h2 { font-size:1.8rem; line-height:1.45; }
label { font-size:1rem; }
input,select { min-width:0; border:1px solid var(--modo-line); border-radius:16px; font-size:1rem; color:var(--modo-ink); }
.button { max-width:100%; border:1px solid var(--modo-line); border-radius:999px; font-size:1rem; line-height:1.5; }
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible { outline:3px solid var(--modo-violet); outline-offset:3px; }
.details,.receipt,.workspace-view { padding:20px 0; border-top:1px solid var(--modo-line); background:transparent; }
.details span { font-size:.9375rem; }
.workspace-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.workspace-summary article { min-width:0; min-height:0; padding:12px 0; border-bottom:1px solid var(--modo-line); }
.workspace-summary article:last-child { grid-column:1/-1; }
.workspace-summary strong { font-size:2rem; line-height:1.3; }
.workspace-summary span { font-size:.875rem; }
.aggregate-gate { padding:16px 0; border-block:2px solid var(--modo-line); background:transparent; }
.domain-list article { grid-template-columns:minmax(0,1fr); gap:4px; }
.domain-list span { font-size:1rem; }
.pilot-progress { padding:24px 0; border-top:1px solid var(--modo-line); background:transparent; }
.pilot-progress>p,.pilot-progress li strong,.intent-actions>strong { font-size:1rem; }
.pilot-progress li { grid-template-columns:22px minmax(0,1fr); padding:14px 0; }
.pilot-progress li .button,.pilot-progress li small { grid-column:2; justify-self:start; }
.intent-actions>div { flex-direction:column; }
.intent-actions .button { flex:auto; font-size:1rem; }
.incident-button { padding:10px 0; font-size:.9375rem; }
.privacy-section { padding:40px 20px; }
.privacy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; margin-top:28px; }
.privacy-grid article { min-width:0; min-height:0; align-items:start; padding:16px 0; border-top:1px solid var(--modo-line); background:transparent; }
.privacy-grid strong { font-size:1.8rem; line-height:1.4; }
.privacy-grid span { min-height:0; font-size:.9375rem; line-height:1.7; }
footer { flex-direction:column; align-items:flex-start; gap:6px; padding:24px 20px; font-size:.875rem; }
footer span { margin-right:0; }
footer a { justify-content:flex-start; }

/* Comfortable text at 320px; Japanese headings break at natural boundaries. */
body { font-size:17px; font-weight:450; }
html[lang="ja"] :is(h1,h2,h3),html[lang="ja"] .boundary strong { word-break:normal; line-break:strict; overflow-wrap:anywhere; }
h1 { font-size:clamp(28px,8.75vw,32px); font-weight:650; line-height:1.45; letter-spacing:-.025em; }
.hero { padding-top:32px; padding-bottom:32px; }
.lead { margin-top:18px; font-size:17px; font-weight:450; line-height:1.8; }
.mode-card>p:not(.kicker),.receipt p,.boundary span,.pilot-progress>p,.aggregate-gate { font-size:17px; font-weight:450; line-height:1.8; }
.privacy-grid span,.details span { font-size:16px; font-weight:450; }
