:root{
  --brand-red:#d12c25;
  --brand-red-dark:#a61f1a;
  --brand-red-soft:#fff1ef;
  --brand-ink:#101110;
  --brand-muted:#74777d;
  --brand-line:#e6e7e8;
  --brand-paper:#fff;
  --brand-warm:#f3f4f4;
  color:var(--brand-ink);
  background:var(--brand-warm)
}
body{background:var(--brand-warm);min-height:100vh}
.shell{max-width:860px;padding-top:18px;padding-bottom:calc(32px + env(safe-area-inset-bottom))}
.top{position:sticky;top:0;z-index:30;height:68px;margin:0;display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:rgba(255,255,255,.96);border:1px solid var(--brand-line);border-bottom:0;border-radius:24px 24px 0 0;backdrop-filter:blur(14px);color:var(--brand-muted);letter-spacing:.04em}
.brand-lockup{display:flex;align-items:center;gap:11px;min-width:0}
.brand-logo{display:block;width:42px;height:30px;object-fit:contain}
.brand-copy{display:flex;flex-direction:column;gap:1px;min-width:0;line-height:1.15}
.brand-copy b{font-size:14px;color:var(--brand-ink);letter-spacing:.08em;white-space:nowrap}
.brand-copy small{font-size:10px;color:var(--brand-muted);letter-spacing:.08em;white-space:nowrap}
.build-label{font-size:11px;color:#8e9196;letter-spacing:.04em;white-space:nowrap}
.card{background:var(--brand-paper);border:1px solid var(--brand-line);border-radius:0 0 24px 24px;box-shadow:0 18px 55px rgba(16,17,16,.045)}
.pill,.entry-no{color:var(--brand-red);font-weight:700;letter-spacing:.08em}
.btn{background:var(--brand-red);box-shadow:none}
.btn:hover{background:var(--brand-red-dark);box-shadow:0 5px 20px rgba(143,47,36,.16)}
.btn.secondary{background:#eee8e1;color:var(--brand-ink)}
.btn.secondary:hover{background:#e4dbd2}
.progress{background:#ececed;margin-bottom:18px}
.progress i{background:var(--brand-red)}
.question-head{position:sticky;top:68px;z-index:5;background:var(--brand-paper);padding:0 0 18px;margin:0 0 6px;border-bottom:1px solid #f0f0f0}
.question-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}
.question-section{font-size:12px;color:var(--brand-muted);font-weight:650;letter-spacing:.08em}
.question-guide{display:flex;align-items:flex-start;gap:10px;margin-top:14px}
.question-rule{display:inline-flex;flex:0 0 auto;align-items:center;border:1px solid #e5b9b5;border-radius:999px;padding:6px 10px;color:var(--brand-red-dark);background:var(--brand-red-soft);font-size:12px;font-weight:700;line-height:1.25;white-space:nowrap}
.question-percent{font-size:12px;color:var(--brand-muted)}
.question-head h2{font-size:clamp(25px,4.8vw,36px);line-height:1.35;letter-spacing:-.035em;margin:18px 0 0}
.question-head .hint{margin:2px 0 0;color:var(--brand-muted);font-size:14px;line-height:1.65}
.question-body{min-height:260px}
.option{border-color:var(--brand-line);background:#fff;min-height:62px;padding:17px 18px;border-radius:16px;color:var(--brand-ink);font-size:16px}
.option:hover{border-color:#c9cbce;background:#fafafa}
.option.selected{border-color:var(--brand-red);background:var(--brand-red-soft)}
.check{border-color:#bcaea3}
.selected .check{background:var(--brand-red);border-color:var(--brand-red)}
.save-state{height:18px;margin-top:8px;color:#7b7169;font-size:12px;text-align:right}
.actions{border-top:1px solid #eee6df;padding-top:18px}
.rank-row{background:#f3f4f4}
.rank-row.dragging{background:var(--brand-red-soft);box-shadow:0 0 0 2px var(--brand-red)}
.rank-focus{scroll-margin-top:190px;margin-top:20px}
.rank-notice{display:flex;flex-direction:column;gap:5px;padding:14px 16px;border:1px solid #eadfd8;border-radius:14px;background:#f8f5f2;color:#5f5650;font-size:13px;line-height:1.6}
.rank-notice b{color:var(--brand-ink);font-size:14px}.rank-notice.ready{border-color:#e1aaa5;background:var(--brand-red-soft)}.rank-notice.ready b{color:var(--brand-red-dark)}
.stage-orbit{background:linear-gradient(145deg,#fff,#f4f4f4);border-color:#e4e5e6}
.stage-orbit:before{border-color:#ececed}
.stage-orbit span{color:var(--brand-red)}
.stage-track .active{color:var(--brand-red-dark);background:var(--brand-red-soft)}
.stage-shell .card{background:var(--brand-red);border-color:var(--brand-red);color:#fff;box-shadow:0 22px 70px rgba(166,31,26,.2)}
.stage-shell .stage-intro .pill,.stage-shell .stage-intro .subtitle,.stage-shell .stage-scope{color:#fff}.stage-shell .stage-intro .subtitle,.stage-shell .stage-scope{opacity:.82}
.stage-shell .stage-orbit{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.48)}.stage-shell .stage-orbit:before{border-color:rgba(255,255,255,.25)}.stage-shell .stage-orbit span{color:#fff}
.stage-shell .stage-track span{color:rgba(255,255,255,.7);background:rgba(255,255,255,.1)}.stage-shell .stage-track .active{color:var(--brand-red-dark);background:#fff}
.stage-shell .btn{color:var(--brand-red-dark);background:#fff}.stage-shell .btn:hover{color:var(--brand-red-dark);background:#fff7f5}.stage-shell .foot{color:#8f2924}
.success{color:var(--brand-red)}
.onboarding{text-align:left;max-width:620px;margin:0 auto;padding:34px 0 18px}
.onboarding .step{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--brand-muted);letter-spacing:.08em;text-transform:uppercase}
.onboarding .step-dots{display:flex;gap:7px}
.onboarding .step-dots i{width:28px;height:3px;border-radius:4px;background:#ded5cc}
.onboarding .step-dots i.active{background:var(--brand-red)}
.onboarding h1{font-size:clamp(38px,7vw,58px);letter-spacing:-.055em;line-height:1.16;margin:32px 0 22px}
.title-line{white-space:nowrap}
.onboarding .lead{font-size:18px;color:#544d47;line-height:1.9;margin-bottom:26px}
.onboarding-panel{border-left:3px solid var(--brand-red);padding:4px 0 4px 20px;margin:28px 0;color:var(--brand-muted);line-height:1.85;font-size:14px}
.onboarding-actions{display:flex;justify-content:flex-end;margin-top:36px}
.privacy-list{display:grid;gap:12px;margin:24px 0}
.privacy-list div{padding:15px 17px;border:1px solid var(--brand-line);border-radius:14px;background:#fff}
.privacy-list b{display:block;margin-bottom:5px}
.privacy-list p{margin:0;color:var(--brand-muted);font-size:13px;line-height:1.75}
.post-submit{margin:28px 0;text-align:left;border-top:1px solid var(--brand-line);padding-top:24px}
.post-submit h3{font-size:18px;margin:0 0 6px}
.post-submit>p{color:var(--brand-muted);font-size:13px;line-height:1.7}
.post-options{display:grid;gap:9px;margin-top:16px}
.post-option{border:1px solid var(--brand-line);background:#fff;border-radius:13px;padding:14px 16px;text-align:left;color:var(--brand-ink)}
.post-option.selected{border-color:var(--brand-red);background:var(--brand-red-soft);color:var(--brand-red-dark)}
.post-feedback{font-size:12px;color:var(--brand-muted);min-height:18px;margin-top:10px}
.page-slide-forward{animation:pageForward .3s cubic-bezier(.22,.61,.36,1) both}.page-slide-back{animation:pageBack .3s cubic-bezier(.22,.61,.36,1) both}
@keyframes pageForward{from{opacity:.3;transform:translateX(34px)}to{opacity:1;transform:translateX(0)}}
@keyframes pageBack{from{opacity:.3;transform:translateX(-34px)}to{opacity:1;transform:translateX(0)}}
.missing-summary,.submission-error,.review-ready{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;margin:0 0 22px;border-radius:16px}
.missing-summary{border:2px solid var(--brand-red);background:var(--brand-red-soft);color:var(--brand-red-dark)}.missing-summary b,.submission-error b,.review-ready b{display:block;font-size:16px}.missing-summary p,.submission-error p{margin:5px 0 0;font-size:13px;line-height:1.65}.missing-summary .btn{flex:0 0 auto;padding:10px 16px;min-height:42px}
.review-row-missing{background:#fff3f1;box-shadow:inset 4px 0 0 var(--brand-red)}.review-row-missing b{color:var(--brand-red-dark)}.review-row-missing .review-edit{color:var(--brand-red-dark);font-weight:700}
.review-ready{align-items:flex-start;flex-direction:column;gap:4px;border:1px solid #bfdcca;background:#f1faf4;color:#295b3c}.review-ready span{font-size:13px;line-height:1.65}
.submission-error{align-items:flex-start;flex-direction:column;gap:2px;border:2px solid var(--brand-red);background:var(--brand-red-soft);color:var(--brand-red-dark)}.submission-error span{font-size:12px;color:#7b514c}
.state-page,.submit-wait{text-align:center;padding:42px 0 26px}.state-page h1,.submit-wait h1{font-size:clamp(38px,7vw,56px);line-height:1.18;letter-spacing:-.045em}.state-icon{width:64px;height:64px;margin:0 auto 22px;border-radius:50%;display:grid;place-items:center;background:var(--brand-red-soft);color:var(--brand-red);font-size:30px;font-weight:800}.state-icon.success{background:var(--brand-red);color:#fff}
.loading-ring{width:64px;height:64px;margin:0 auto 26px;border:5px solid #eadfd8;border-top-color:var(--brand-red);border-radius:50%;animation:spin .9s linear infinite}.submit-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:520px;margin:30px auto 0}.submit-steps span{padding:12px 8px;border-radius:12px;background:#f6f2ee;color:#655c56;font-size:12px}.submit-steps span:before{content:'✓';display:block;color:var(--brand-red);font-weight:800;margin-bottom:4px}@keyframes spin{to{transform:rotate(360deg)}}
textarea:focus-visible,button:focus-visible{outline-color:#d98c7b}
@media(max-width:600px){
  .shell{padding:0}.top{height:64px;padding:9px 18px;border-radius:0;border-left:0;border-right:0}.brand-logo{width:38px;height:27px}.brand-copy b{font-size:13px}.brand-copy small{font-size:9px}.card{border-radius:0;border-left:0;border-right:0;min-height:calc(100vh - 64px);padding:26px 22px calc(22px + env(safe-area-inset-bottom))}
  .question-head{top:64px;margin:0 -2px;padding-top:2px}.question-head h2{font-size:28px}.question-head .hint{font-size:13px}.question-guide{gap:8px;flex-wrap:wrap}.question-rule{font-size:11px;padding:5px 9px}
  .option{font-size:17px;line-height:1.55;min-height:68px}.options{gap:12px;margin-top:18px}
  .actions{position:sticky;bottom:0;margin:18px -4px 0;padding:14px 4px calc(8px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(255,253,249,.86),var(--brand-paper) 30%)}
  .onboarding{padding:18px 2px}.onboarding h1{font-size:40px}.onboarding h1.intro-title-primary{font-size:35px;white-space:nowrap}.onboarding .lead{font-size:17px}.onboarding-actions .btn{width:100%}.title-line{font-size:.9em}
  .foot{padding:0 18px 18px}.stage-intro{padding-top:28px}
  .stage-shell .card{min-height:calc(100vh - 64px);display:grid;align-items:center}.stage-shell .stage-intro{padding:18px 0}.stage-shell .foot{background:var(--brand-red);margin:0;padding:0 18px 22px;color:rgba(255,255,255,.72)}
  .rank-focus{scroll-margin-top:210px}.missing-summary{align-items:stretch;flex-direction:column}.missing-summary .btn{width:100%}.state-page,.submit-wait{padding:28px 0 18px}.state-page h1,.submit-wait h1{font-size:38px}.submit-steps{gap:6px}.submit-steps span{padding:10px 5px;font-size:11px}
}
