:root{--brand:var(--color-primary);--brand-strong:var(--color-primary);--brand-soft:var(--color-primary-wash);--brand-focus:var(--color-primary-soft);--surface-page:var(--color-page);--surface-wash:var(--color-neutral-badge);--surface-card:var(--color-surface);--ink:var(--color-ink);--muted:var(--color-muted);--faint:var(--color-faint);--line:var(--color-line);--line-strong:var(--color-line-strong);--field-line:var(--color-line);--error:var(--color-danger);--error-soft:var(--color-danger-wash);--error-line:var(--color-danger);--success:#3f6f56;--success-strong:#2f5d49;--success-soft:#ecf4ef;--success-line:#c5dcce}*{box-sizing:border-box}html{background:var(--surface-page);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic UI,ui-sans-serif,system-ui,sans-serif;line-height:1.8}body{background:var(--surface-page);min-height:100vh;margin:0}::selection{background:var(--brand-soft)}button,input,select,textarea{font:inherit}button,a{color:inherit}.flow-shell{min-height:100vh;padding:48px 20px 72px}.flow-container{width:100%;max-width:1080px;margin:0 auto}.flow-container--narrow{max-width:720px}.flow-minimal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;margin-bottom:34px;padding-bottom:18px;display:flex}.flow-wordmark{gap:2px;text-decoration:none;display:grid}.flow-wordmark strong{color:var(--ink);font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic UI,sans-serif;font-size:1.08rem;font-weight:700;line-height:1.25}.flow-wordmark span{color:var(--faint);font-size:.75rem;line-height:1.4}.flow-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.text-link{color:var(--muted);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:4px;font-size:.9rem;transition:color .16s,text-decoration-color .16s}.text-link:hover{color:var(--ink);text-decoration-color:var(--ink)}.text-link:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.flow-progress{background:var(--surface-wash);border:1px solid var(--line);height:8px;margin:-18px 0 48px;overflow:hidden}.flow-progress__bar{background:var(--brand);height:100%;width:var(--progress,0%);display:block}.flow-header{justify-items:start;gap:14px;max-width:780px;margin-bottom:32px;display:grid}.flow-kicker{color:var(--faint);font-size:.78rem;font-weight:700;line-height:1.5;display:inline-flex}.flow-kicker:before{background:var(--ink);content:"";width:34px;height:1px;margin:.72em 10px 0 0;display:inline-block}.flow-header h1,.auth-title,.entry-title{color:var(--ink);margin:0;font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic UI,sans-serif;font-weight:700}.flow-header h1{font-size:44px;line-height:1.28}.flow-header p{color:var(--muted);max-width:640px;margin:0;font-size:1rem}.auth-title,.entry-title{font-size:38px;line-height:1.36}.auth-lead,.entry-lead{color:var(--muted);max-width:38em;margin:0;font-size:1rem;line-height:1.8}.flow-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:28px;display:grid}.flow-panel{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-card);padding:36px}.flow-panel--compact{padding:32px}.flow-side{background:var(--surface-wash);border:1px solid var(--line);border-radius:var(--radius-card);color:var(--ink);padding:28px;position:sticky;top:24px}.flow-side h2,.flow-panel h2,.flow-panel h3{margin:0;line-height:1.35}.flow-side h2,.flow-panel h2,.flow-panel h3,.field-section h2,.result-stack h2{font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic UI,sans-serif;font-weight:700}.flow-side h2{font-size:1.05rem}.flow-side p,.flow-side li{color:var(--muted)}.flow-side ul{gap:10px;margin:18px 0 0;padding-left:1.2rem;display:grid}.flow-side ol{counter-reset:flow-steps;gap:0;margin:18px 0 0;padding:0;list-style:none;display:grid}.flow-side ol li{border-top:1px solid var(--line);counter-increment:flow-steps;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:12px;padding:14px 0;display:grid}.flow-side ol li:before{color:#fff;content:counter(flow-steps);background:#16212f;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.8rem;font-weight:700;line-height:1;display:flex}.flow-side ol li:first-child{border-top:none}.flow-form{gap:24px;display:grid}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.field-section{border-top:1px solid var(--line);grid-column:1/-1;gap:2px;margin-top:8px;padding-top:22px;display:grid}.field-section:first-child{border-top:none;margin-top:0;padding-top:0}.field-section h2{font-size:1.08rem}.field-section p{color:var(--muted);margin:0;font-size:.9rem}.field{gap:8px;min-width:0;display:grid}.field--full{grid-column:1/-1}.field label,.field legend{color:var(--ink);flex-wrap:wrap;align-items:center;gap:8px;font-size:.95rem;font-weight:700;display:flex}.badge{background:var(--surface-wash);color:var(--faint);border-radius:4px;padding:2px 6px;font-size:.72rem;font-weight:700;line-height:1.5}.badge--req{background:var(--error-soft);color:var(--error)}.badge--opt{background:var(--surface-wash);color:var(--faint);font-weight:400}.field small,.field-help{color:var(--faint);font-size:.85rem;line-height:1.6}.field-error{color:var(--error);font-size:.85rem;font-weight:700;line-height:1.6}.field input,.field select,.field textarea{border:1px solid var(--field-line);border-radius:var(--radius-field);color:var(--ink);background:#fff;width:100%;min-height:50px;padding:12px 14px;transition:border-color .16s,box-shadow .16s}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--faint)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-focus);outline:none}.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--error)}.field input::placeholder,.field textarea::placeholder{color:var(--faint)}.field textarea{resize:vertical;min-height:140px}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.choice{border:1px solid var(--field-line);border-radius:var(--radius-field);cursor:pointer;background:#fff;align-items:center;gap:10px;min-height:50px;padding:12px 14px;transition:border-color .16s;display:flex}.choice:hover{border-color:var(--ink)}.choice input{accent-color:var(--brand);width:18px;height:18px;min-height:auto}.checkbox-field{align-items:flex-start;gap:8px;display:grid}.checkbox-field label{align-items:flex-start;gap:10px;display:flex}.checkbox-field input{accent-color:var(--brand);flex:none;width:18px;height:18px;margin-top:.36em}.checkbox-field span{color:var(--muted);min-width:0;line-height:1.8}.flow-actions{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:12px;display:flex}.primary-button,.secondary-button{border-radius:var(--radius-pill);cursor:pointer;text-align:center;justify-content:center;align-items:center;min-height:48px;padding:12px 24px;font-weight:700;line-height:1.4;text-decoration:none;transition:background-color .16s,border-color .16s,color .16s,filter .16s,opacity .16s;display:inline-flex}.primary-button{background:var(--brand);border:1px solid var(--brand);color:#fff}.primary-button:hover:not(:disabled){filter:brightness(.94)}.secondary-button{border:1px solid var(--line);color:var(--ink);background:#fff}.secondary-button:hover{border-color:var(--line-strong);color:var(--ink)}.primary-button:focus-visible,.secondary-button:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.primary-button:disabled,.secondary-button:disabled{cursor:wait;opacity:.62}.form-footnote{color:var(--faint);margin:0;font-size:.88rem}.notice,.error-box,.success-box,.status-box{border-radius:var(--radius-field);padding:14px 16px;font-size:.92rem;line-height:1.7}.notice,.status-box{background:var(--surface-wash);border:1px solid var(--line);color:var(--muted)}.error-box{background:var(--error-soft);border:1px solid var(--error-line);color:var(--error)}.success-box,.status-box--success{background:var(--success-soft);border:1px solid var(--success-line);color:var(--success-strong);font-weight:700}.hidden{display:none!important}.result-stack{gap:18px;display:grid}.result-stack h2{font-size:1.6rem}.summary-list{background:var(--surface-wash);border:1px solid var(--line);border-radius:var(--radius-field);gap:10px;margin:0;padding:18px;display:grid}.summary-list div{grid-template-columns:150px minmax(0,1fr);gap:4px;display:grid}.summary-list dt{color:var(--faint);font-weight:700}.summary-list dd{overflow-wrap:anywhere;min-width:0;margin:0}.honeypot{width:1px;height:1px;position:absolute;top:auto;left:-10000px;overflow:hidden}.entry-stack,.auth-stack{gap:32px;display:grid}.entry-actions{gap:14px;display:grid}.entry-choice{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-card);color:var(--ink);cursor:pointer;text-align:left;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;width:100%;min-height:104px;padding:22px 24px;text-decoration:none;transition:border-color .16s,background-color .16s;display:grid}.entry-choice:hover,.entry-choice:focus-visible{border-color:var(--ink)}.entry-choice:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.entry-choice strong{margin-bottom:4px;font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic UI,sans-serif;font-size:1.35rem;line-height:1.35;display:block}.entry-choice span{color:var(--muted);min-width:0;line-height:1.7;display:block}.entry-choice__arrow{color:var(--faint);font-size:1.4rem}.auth-meta{color:var(--faint);margin:0;font-size:.86rem}.auth-foot-links{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px 16px;padding-top:20px;display:flex}@media (width<=860px){.flow-layout{grid-template-columns:1fr}.flow-side{order:-1;position:static}}@media (width<=640px){.flow-shell{padding:24px 16px 48px}.flow-minimal-header{align-items:flex-start;gap:14px;margin-bottom:28px;display:grid}.flow-header-actions{justify-content:flex-start}.flow-progress{margin-bottom:36px}.flow-header h1,.auth-title,.entry-title{font-size:34px}.flow-panel,.flow-panel--compact,.flow-side{padding:24px 20px}.field-grid,.choice-grid,.summary-list div{grid-template-columns:1fr}.entry-choice{grid-template-columns:1fr;align-items:start;gap:12px;padding:20px}.entry-choice__arrow{justify-self:end}.flow-actions .primary-button,.flow-actions .secondary-button{width:100%}}
