:root {
  --bg: #f4f7fb;
  --surface: #ffffff;
  --surface-soft: #f8faff;
  --text: #152238;
  --muted: #667085;
  --line: #d9e2ef;
  --brand: #315efb;
  --brand-dark: #2447c6;
  --brand-soft: #eef3ff;
  --success: #067647;
  --success-bg: #ecfdf3;
  --warning: #b54708;
  --warning-bg: #fffaeb;
  --danger: #b42318;
  --danger-bg: #fef3f2;
  --shadow: 0 18px 48px rgba(35, 58, 98, .10);
  --radius: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  background:
    radial-gradient(circle at 8% 0%, rgba(49,94,251,.10), transparent 27rem),
    radial-gradient(circle at 92% 8%, rgba(18,183,106,.09), transparent 25rem),
    var(--bg);
}
button, input { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
[hidden] { display: none !important; }

.shell { width: min(1180px, calc(100% - 32px)); margin: 0 auto; padding: 24px 0 54px; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:20px; }
.brand { display:flex; align-items:center; gap:12px; }
.brand-mark {
  width:46px; height:46px; display:grid; place-items:center; border-radius:15px;
  background:linear-gradient(145deg, var(--brand), #6d8bff); color:#fff; font-weight:900; font-size:21px;
  box-shadow:0 10px 28px rgba(49,94,251,.26);
}
.brand h1 { margin:0 0 3px; font-size:20px; }
.brand p { margin:0; color:var(--muted); font-size:13px; }
.privacy-pill {
  display:flex; align-items:center; gap:8px; padding:9px 13px; border-radius:999px;
  border:1px solid #a6f4c5; background:var(--success-bg); color:var(--success); font-size:13px; font-weight:800;
}

.hero {
  display:grid; grid-template-columns:1.35fr .65fr; gap:28px; align-items:center;
  padding:30px; border:1px solid rgba(255,255,255,.9); border-radius:28px;
  background:linear-gradient(135deg, rgba(255,255,255,.98), rgba(246,249,255,.92)); box-shadow:var(--shadow);
}
.eyebrow, .stage-kicker { color:var(--brand); font-size:13px; font-weight:850; letter-spacing:.02em; }
.hero h2 { margin:10px 0 14px; font-size:clamp(31px,5vw,52px); line-height:1.08; letter-spacing:-.035em; }
.hero h2 span { color:var(--brand); white-space:nowrap; }
.hero p { margin:0; max-width:720px; color:var(--muted); line-height:1.75; font-size:16px; }
.hero-trust { display:grid; gap:10px; padding:20px; border:1px solid #dce6ff; border-radius:20px; background:#fff; }
.hero-trust strong { margin-bottom:2px; font-size:15px; }
.hero-trust span { padding:10px 12px; border-radius:12px; background:var(--surface-soft); color:#344054; font-size:14px; }

.stepper {
  display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:center;
  margin:22px 0; padding:18px 22px; border:1px solid var(--line); border-radius:20px; background:rgba(255,255,255,.88); box-shadow:0 10px 32px rgba(35,58,98,.06);
}
.step { display:flex; align-items:center; gap:11px; color:#98a2b3; min-width:0; }
.step-number { width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center; border-radius:50%; border:1px solid #cfd8e6; background:#fff; font-weight:900; }
.step strong, .step small { display:block; }
.step strong { font-size:14px; margin-bottom:3px; }
.step small { font-size:11px; }
.step.current { color:var(--brand); }
.step.current .step-number { border-color:var(--brand); background:var(--brand); color:#fff; box-shadow:0 7px 18px rgba(49,94,251,.22); }
.step.done { color:var(--success); }
.step.done .step-number { border-color:#75e0a7; background:var(--success-bg); color:var(--success); }
.step-line { width:54px; height:2px; margin:0 12px; background:#e4e9f2; }

.stage { border:1px solid var(--line); border-radius:var(--radius); background:rgba(255,255,255,.94); box-shadow:var(--shadow); }
.upload-stage { padding:34px; }
.stage-heading { text-align:center; max-width:690px; margin:0 auto 24px; }
.stage-heading h3 { margin:8px 0 9px; font-size:27px; }
.stage-heading p { margin:0; color:var(--muted); line-height:1.65; }
.dropzone {
  min-height:250px; display:grid; place-items:center; text-align:center; padding:28px;
  border:2px dashed #aabbd3; border-radius:20px; background:linear-gradient(180deg,#fbfcff,#f4f7fd); transition:.18s ease;
}
.dropzone:hover, .dropzone.drag { border-color:var(--brand); background:var(--brand-soft); transform:translateY(-1px); }
.dropzone input { display:none; }
.upload-icon { width:64px; height:64px; display:grid; place-items:center; margin:0 auto 14px; border-radius:20px; background:#e8efff; color:var(--brand); font-size:30px; font-weight:600; }
.dropzone strong { display:block; font-size:19px; margin-bottom:7px; }
.dropzone span { display:block; color:#475467; font-size:14px; margin-bottom:10px; }
.dropzone small { display:block; color:var(--muted); }
.upload-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; margin-top:18px; }
.upload-actions span { color:var(--muted); font-size:12px; }

.btn { border:0; border-radius:12px; padding:11px 16px; font-weight:850; display:inline-flex; justify-content:center; align-items:center; gap:8px; transition:.16s ease; }
.btn:hover:not(:disabled) { transform:translateY(-1px); }
.btn-primary { background:var(--brand); color:#fff; box-shadow:0 8px 22px rgba(49,94,251,.22); }
.btn-primary:hover:not(:disabled) { background:var(--brand-dark); }
.btn-secondary { background:#fff; color:#344054; border:1px solid var(--line); }
.btn-ghost { background:#f8fafc; color:#475467; border:1px solid #e4e7ec; }
.btn-success { background:var(--success); color:#fff; box-shadow:0 8px 20px rgba(6,118,71,.20); }
.btn-large { width:100%; min-height:48px; font-size:15px; }
.btn-small { padding:8px 11px; border-radius:10px; font-size:13px; }
.text-button { width:100%; margin-top:11px; border:0; background:transparent; color:var(--brand); font-weight:800; padding:8px; }

.workspace-stage { overflow:hidden; }
.selected-file-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px 20px; border-bottom:1px solid #e8edf4; background:#fbfcfe; }
.selected-file-bar > div { display:flex; align-items:center; gap:10px; min-width:0; }
.selected-file-bar strong, .selected-file-bar small { display:block; }
.selected-file-bar strong { max-width:520px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.selected-file-bar small { color:var(--muted); margin-top:2px; font-size:12px; }
.success-dot { width:28px; height:28px; flex:0 0 28px; display:grid; place-items:center; border-radius:50%; background:var(--success-bg); color:var(--success); font-weight:900; }
.workspace-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr); gap:0; }
.image-panel { padding:24px; border-right:1px solid #e8edf4; }
.panel-title { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px; }
.panel-title h3 { margin:6px 0 0; font-size:20px; }
.editor-toolbar { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.tool-toggle { display:flex; border:1px solid var(--line); border-radius:11px; overflow:hidden; background:#fff; }
.tool-toggle button { border:0; padding:8px 11px; background:transparent; color:var(--muted); font-weight:750; }
.tool-toggle button.active { background:#eaf0ff; color:var(--brand); }
.canvas-shell { position:relative; width:100%; min-height:340px; display:grid; place-items:center; overflow:hidden; border:1px solid var(--line); border-radius:18px; background:#e9eef5; }
canvas { display:block; max-width:100%; height:auto; touch-action:none; }
.canvas-hint { margin:10px 2px 0; color:var(--muted); font-size:12px; line-height:1.65; }
.action-panel { padding:24px; background:#fbfcfe; }
.guidance-card { padding:20px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.guidance-card h3 { margin:7px 0 10px; font-size:21px; }
.guidance-card > p { color:var(--muted); line-height:1.65; font-size:14px; }
.plain-note { margin-top:14px; padding:11px 12px; border-radius:12px; background:#f7f9fc; color:var(--muted); font-size:12px; line-height:1.55; }
.status-box { min-height:0; margin-top:12px; padding:0; border-radius:12px; font-size:13px; line-height:1.55; }
.status-box.show { padding:11px 12px; border:1px solid; }
.status-box.info { background:#eff4ff; border-color:#c7d7fe; color:#1849a9; }
.status-box.success { background:var(--success-bg); border-color:#a6f4c5; color:var(--success); }
.status-box.error { background:var(--danger-bg); border-color:#fecdca; color:var(--danger); }

.progress-track { height:10px; margin:17px 0 10px; overflow:hidden; border-radius:999px; background:#e7ecf4; }
.progress-track span { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--brand),#7d98ff); transition:width .25s ease; }
.progress-list { display:grid; gap:9px; margin-top:18px; }
.progress-item { display:flex; gap:9px; align-items:center; color:#98a2b3; font-size:13px; }
.progress-item span { width:20px; font-weight:900; }
.progress-item em { font-style:normal; }
.progress-item.active { color:var(--brand); font-weight:750; }
.progress-item.done { color:var(--success); }
.progress-item.error { color:var(--danger); }

.result-banner { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; padding:13px; border-radius:14px; background:var(--danger-bg); }
.result-banner.medium { background:var(--warning-bg); }
.result-banner.low { background:var(--success-bg); }
.result-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:11px; background:#fff; color:var(--danger); font-weight:900; }
.result-banner.medium .result-icon { color:var(--warning); }
.result-banner.low .result-icon { color:var(--success); }
.result-banner span, .result-banner strong { display:block; }
.result-banner span { color:var(--muted); font-size:11px; }
.result-banner strong { margin-top:2px; font-size:14px; }
.score-number { font-size:26px; font-weight:950; }
.result-summary { margin:14px 0 !important; }
.result-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:14px; }
.result-stats div { padding:11px 8px; border-radius:12px; background:#f7f9fc; text-align:center; }
.result-stats strong, .result-stats span { display:block; }
.result-stats strong { font-size:20px; }
.result-stats span { color:var(--muted); font-size:10px; margin-top:2px; }
.microcopy { margin:8px 0 14px !important; font-size:11px !important; }
.manual-instruction { display:grid; gap:5px; margin:14px 0; padding:12px; border:1px solid #e4e7ec; border-radius:12px; }
.manual-instruction strong { font-size:13px; }
.manual-instruction span { color:var(--muted); font-size:12px; line-height:1.5; }
.result-card .btn + .btn { margin-top:9px; }

.report-section { padding:24px; border-top:1px solid #e8edf4; }
.report-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:15px; }
.report-heading h3 { margin:6px 0 0; font-size:21px; }
.risk-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.risk-item { padding:14px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.risk-top { display:flex; gap:10px; align-items:flex-start; }
.risk-icon { width:31px; height:31px; flex:0 0 31px; display:grid; place-items:center; border-radius:10px; font-weight:900; }
.risk-icon.high { color:var(--danger); background:var(--danger-bg); }
.risk-icon.medium { color:var(--warning); background:var(--warning-bg); }
.risk-icon.low { color:var(--success); background:var(--success-bg); }
.risk-content { min-width:0; flex:1; }
.risk-content strong { font-size:14px; }
.risk-content p { margin:4px 0 0; color:var(--muted); line-height:1.55; font-size:12px; overflow-wrap:anywhere; }
.risk-badge { padding:4px 7px; border-radius:999px; font-size:10px; font-weight:850; }
.risk-badge.high { color:var(--danger); background:var(--danger-bg); }
.risk-badge.medium { color:var(--warning); background:var(--warning-bg); }
.risk-badge.low { color:var(--success); background:var(--success-bg); }
.ocr-panel { margin-top:14px; padding:14px; border:1px solid var(--line); border-radius:14px; background:#f8fafc; }
.ocr-heading { display:flex; justify-content:space-between; gap:12px; margin-bottom:9px; font-size:13px; }
.ocr-heading span { color:var(--muted); }
.ocr-panel pre { max-height:220px; overflow:auto; margin:0; white-space:pre-wrap; color:#475467; font:12px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace; }
.download-success { display:flex; align-items:center; gap:14px; padding:18px 24px; border-top:1px solid #b7ebcd; background:var(--success-bg); }
.download-success .success-check { width:38px; height:38px; flex:0 0 38px; display:grid; place-items:center; border-radius:50%; background:#fff; color:var(--success); font-size:20px; font-weight:900; }
.download-success strong { display:block; }
.download-success p { margin:4px 0 0; color:#475467; font-size:12px; line-height:1.5; }
.download-success .btn { margin-left:auto; }

.privacy-details { margin-top:20px; border:1px solid var(--line); border-radius:16px; background:#fff; color:#475467; }
.privacy-details summary { cursor:pointer; padding:15px 18px; font-weight:800; color:#344054; }
.privacy-details div { padding:0 18px 14px; font-size:13px; line-height:1.65; }
.privacy-details p { margin:8px 0; }
.footer { margin-top:22px; text-align:center; color:var(--muted); font-size:12px; line-height:1.7; }

@media (max-width: 900px) {
  .hero, .workspace-grid { grid-template-columns:1fr; }
  .hero-trust { display:none; }
  .image-panel { border-right:0; border-bottom:1px solid #e8edf4; }
  .risk-list { grid-template-columns:1fr; }
}
@media (max-width: 680px) {
  .shell { width:min(100% - 20px,1180px); padding-top:14px; }
  .privacy-pill { display:none; }
  .hero { padding:23px; border-radius:22px; }
  .hero h2 { font-size:35px; }
  .stepper { grid-template-columns:1fr 1fr 1fr; padding:13px 10px; }
  .step-line { display:none; }
  .step { flex-direction:column; text-align:center; gap:6px; }
  .step small { display:none; }
  .step-number { width:30px; height:30px; flex-basis:30px; }
  .upload-stage { padding:22px 16px; }
  .dropzone { min-height:220px; }
  .selected-file-bar { align-items:flex-start; }
  .selected-file-bar strong { max-width:210px; }
  .image-panel, .action-panel, .report-section { padding:16px; }
  .panel-title { display:block; }
  .editor-toolbar { justify-content:flex-start; margin-top:12px; }
  .canvas-shell { min-height:230px; }
  .result-stats { gap:5px; }
  .download-success { align-items:flex-start; flex-wrap:wrap; padding:16px; }
  .download-success .btn { width:100%; margin-left:0; }
}


/* v0.3 public beta */
.top-actions{display:flex;align-items:center;gap:12px}.privacy-link{font-weight:700;color:#344054;text-decoration:none}.privacy-link:hover{text-decoration:underline}
.beta-notice{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:18px 0 24px;padding:15px 18px;border:1px solid #f7c96b;background:#fffaf0;border-radius:16px}.beta-notice div{display:flex;align-items:center;gap:12px}.beta-notice strong{color:#8a4b00}.beta-notice span{color:#694d28}.beta-notice a{white-space:nowrap;color:#315efb;font-weight:700;text-decoration:none}
.scenario-section{margin:0 0 28px}.scenario-heading h3{margin:6px 0 16px;font-size:24px}.scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.scenario-grid article{background:#fff;border:1px solid #e4e7ec;border-radius:18px;padding:20px;box-shadow:0 8px 28px rgba(16,24,40,.04)}.scenario-grid article>span{font-size:28px}.scenario-grid strong{display:block;margin:12px 0 6px;font-size:17px}.scenario-grid p{margin:0;color:#667085;line-height:1.65}
.feedback-section{margin-top:22px;padding:24px;border:1px solid #d0d5dd;border-radius:20px;background:#fff}.feedback-copy h3{margin:6px 0 8px}.feedback-copy p{margin:0;color:#667085}.feedback-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.feedback-buttons button{border:1px solid #d0d5dd;background:#fff;border-radius:999px;padding:11px 16px;font-weight:700;cursor:pointer}.feedback-buttons button:hover,.feedback-buttons button.selected{border-color:#315efb;background:#eef4ff;color:#2149cf}.feedback-draft{border-top:1px solid #eaecf0;padding-top:18px}.feedback-draft label{display:block;font-weight:700;margin-bottom:8px}.feedback-draft textarea{width:100%;box-sizing:border-box;border:1px solid #d0d5dd;border-radius:12px;padding:12px;font:inherit;resize:vertical}.feedback-actions{display:flex;gap:10px;margin-top:12px}.feedback-draft small{display:block;margin-top:10px;color:#667085}
.public-privacy-card{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-top:24px;padding:20px 22px;border-radius:18px;background:#f8fafc;border:1px solid #e4e7ec}.public-privacy-card p{margin:6px 0 0;color:#667085;line-height:1.6}.public-privacy-card a{white-space:nowrap;color:#315efb;font-weight:700;text-decoration:none}.footer a{color:inherit}
@media(max-width:760px){.top-actions{align-items:flex-end;flex-direction:column;gap:6px}.privacy-link{font-size:13px}.beta-notice,.beta-notice div,.public-privacy-card{align-items:flex-start;flex-direction:column}.scenario-grid{grid-template-columns:1fr}.feedback-actions{flex-direction:column}.feedback-actions .btn{width:100%;justify-content:center}}

.privacy-copy{max-width:820px}.privacy-copy h3{margin:28px 0 8px}.privacy-copy p,.privacy-copy li{color:#475467;line-height:1.8}.privacy-copy ol,.privacy-copy ul{padding-left:24px}

/* v0.3.2 privacy policy */
.policy-page { background: #f3f6fb; }
.policy-shell { width: min(1080px, calc(100% - 32px)); margin: 0 auto; padding: 24px 0 48px; }
.policy-nav { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; color:var(--muted); font-size:13px; }
.policy-back { color:var(--brand); font-weight:800; text-decoration:none; }
.policy-back:hover { text-decoration:underline; }
.policy-card { overflow:hidden; border:1px solid var(--line); border-radius:28px; background:#fff; box-shadow:var(--shadow); }
.policy-hero { padding:52px 56px 34px; text-align:center; border-bottom:1px solid #e9eef5; background:linear-gradient(145deg,#fff,#f7f9ff); }
.policy-badge { display:inline-flex; padding:7px 12px; border-radius:999px; color:var(--brand); background:var(--brand-soft); font-size:13px; font-weight:850; }
.policy-hero h1 { margin:16px 0 10px; font-size:clamp(30px,5vw,44px); line-height:1.15; letter-spacing:-.025em; }
.policy-hero > p { max-width:680px; margin:0 auto; color:var(--muted); font-size:16px; line-height:1.75; }
.policy-meta { display:flex; justify-content:center; flex-wrap:wrap; gap:10px 28px; margin:24px 0 0; }
.policy-meta div { display:flex; gap:8px; }
.policy-meta dt { color:var(--muted); }
.policy-meta dd { margin:0; font-weight:800; }
.policy-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:0; padding:28px 40px; border-bottom:1px solid #e9eef5; background:#fbfcfe; }
.policy-summary > div { display:flex; align-items:flex-start; gap:11px; padding:15px; border:1px solid #cfe9db; border-radius:16px; background:#f2fcf6; }
.policy-summary .policy-summary-warning { border-color:#f3d79d; background:#fff9ec; }
.policy-summary-icon { width:28px; height:28px; flex:0 0 28px; display:grid; place-items:center; border-radius:50%; color:var(--success); background:#fff; font-weight:950; }
.policy-summary-warning .policy-summary-icon { color:var(--warning); }
.policy-summary p { margin:0; color:#475467; font-size:13px; line-height:1.6; }
.policy-summary strong { color:var(--text); }
.policy-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:44px; padding:44px 56px 58px; align-items:start; }
.policy-toc { position:sticky; top:24px; display:grid; gap:9px; padding:18px; border:1px solid #e4e9f1; border-radius:16px; background:#f8fafc; }
.policy-toc strong { margin-bottom:4px; font-size:14px; }
.policy-toc a { color:#5b677a; font-size:12px; line-height:1.45; text-decoration:none; }
.policy-toc a:hover { color:var(--brand); }
.policy-content { min-width:0; max-width:760px; }
.policy-intro { margin:0 0 34px; padding:18px 20px; border-left:4px solid var(--brand); border-radius:0 14px 14px 0; background:#f6f8ff; color:#344054; font-size:16px; line-height:1.8; }
.policy-content section { scroll-margin-top:24px; }
.policy-content section + section { margin-top:40px; padding-top:2px; }
.policy-content h2 { margin:0 0 12px; font-size:22px; line-height:1.35; }
.policy-content p, .policy-content li { color:#475467; font-size:15px; line-height:1.9; }
.policy-content p { margin:0 0 14px; }
.policy-content ul { margin:10px 0 0; padding-left:22px; }
.policy-content li + li { margin-top:6px; }
.policy-table-wrap { margin:18px 0; overflow-x:auto; border:1px solid #e4e9f1; border-radius:15px; }
.policy-table { width:100%; border-collapse:collapse; min-width:650px; }
.policy-table th, .policy-table td { padding:13px 14px; text-align:left; vertical-align:top; border-bottom:1px solid #e9edf3; font-size:13px; line-height:1.65; }
.policy-table th { background:#f7f9fc; color:#344054; }
.policy-table td { color:#536074; }
.policy-table tr:last-child td { border-bottom:0; }
.policy-callout { margin-top:16px; padding:15px 17px; border:1px solid #f0c88a; border-radius:14px; background:#fff9ec; color:#775421; font-size:14px; line-height:1.75; }
.policy-footer { padding:22px 0 0; text-align:center; color:var(--muted); font-size:12px; }
.policy-footer a { color:var(--brand); text-decoration:none; }

@media (max-width: 860px) {
  .policy-summary { grid-template-columns:1fr; padding:22px; }
  .policy-layout { grid-template-columns:1fr; gap:24px; padding:34px 32px 44px; }
  .policy-toc { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .policy-toc strong { grid-column:1/-1; }
}
@media (max-width: 620px) {
  .policy-shell { width:min(100% - 20px,1080px); padding-top:12px; }
  .policy-nav { align-items:flex-start; }
  .policy-card { border-radius:20px; }
  .policy-hero { padding:34px 20px 26px; }
  .policy-hero h1 { font-size:31px; }
  .policy-meta { display:grid; gap:6px; }
  .policy-meta div { justify-content:center; }
  .policy-summary { padding:16px; }
  .policy-layout { padding:28px 20px 36px; }
  .policy-toc { grid-template-columns:1fr; }
  .policy-toc strong { grid-column:auto; }
  .policy-content h2 { font-size:20px; }
  .policy-content p, .policy-content li { font-size:14px; }
}


/* v0.4.2 contextual scene flow */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.scene-picker{margin:0;padding:0;border:0}.scene-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:920px;margin:0 auto}.scene-choice{display:block;position:relative;cursor:pointer}.scene-choice input{position:absolute;opacity:0;pointer-events:none}.scene-choice-body{min-height:112px;display:grid;grid-template-columns:auto 1fr auto;align-items:flex-start;gap:13px;padding:18px;border:1.5px solid #d9e2ef;border-radius:18px;background:#fff;box-shadow:0 7px 24px rgba(35,58,98,.045);transition:.17s ease}.scene-choice:hover .scene-choice-body{border-color:#aebfff;transform:translateY(-1px);box-shadow:0 10px 28px rgba(49,94,251,.10)}.scene-choice input:focus-visible + .scene-choice-body{outline:3px solid rgba(49,94,251,.25);outline-offset:3px}.scene-choice input:checked + .scene-choice-body{border-color:var(--brand);background:linear-gradient(145deg,#fff,#f2f5ff);box-shadow:0 11px 28px rgba(49,94,251,.14)}.scene-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#f2f5fa;font-size:23px}.scene-choice strong,.scene-choice small{display:block}.scene-choice strong{margin:1px 0 7px;font-size:16px;color:var(--text)}.scene-choice small{color:var(--muted);font-size:12px;line-height:1.6}.scene-check{width:25px;height:25px;display:grid;place-items:center;border:1px solid #ccd6e5;border-radius:50%;background:#fff;color:transparent;font-weight:900}.scene-choice input:checked + .scene-choice-body .scene-check{border-color:var(--brand);background:var(--brand);color:#fff}.upload-after-scene{max-width:920px;margin:24px auto 0;padding-top:24px;border-top:1px solid #e8edf4}.scene-summary{display:grid;grid-template-columns:1fr auto;gap:12px 18px;align-items:center;margin-bottom:22px;padding:16px 18px;border:1px solid #cbd8ff;border-radius:17px;background:#f5f7ff}.scene-summary-main{display:flex;align-items:center;gap:12px}.scene-summary-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#fff;font-size:22px}.scene-summary small,.scene-summary strong{display:block}.scene-summary small{color:var(--muted);font-size:11px;margin-bottom:3px}.scene-summary strong{font-size:17px}.text-button-inline{border:0;background:transparent;color:var(--brand);font-weight:800;padding:8px;cursor:pointer}.scene-focus{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;padding-top:12px;border-top:1px solid #dfe6ff}.scene-focus>span{flex:0 0 auto;color:#475467;font-size:12px;font-weight:800;padding-top:5px}.scene-focus-tags{display:flex;flex-wrap:wrap;gap:7px}.scene-focus-tags span{padding:5px 9px;border-radius:999px;background:#fff;border:1px solid #d8e1ff;color:#3650a8;font-size:11px;font-weight:750}.upload-heading-inline{text-align:center;margin:0 auto 16px}.upload-heading-inline h4{margin:0 0 7px;font-size:20px}.upload-heading-inline p{margin:0;color:var(--muted);font-size:13px}.selected-file-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.selected-scene-badge{display:inline-flex;margin-top:6px;padding:4px 8px;border-radius:999px;background:#eef3ff;color:#315efb;font-size:11px;font-weight:800}.scene-guidance{margin:14px 0;padding:15px;border:1px solid #dbe4ff;border-radius:15px;background:#f7f9ff}.scene-guidance-head{display:flex;align-items:center;gap:10px;margin-bottom:9px}.scene-guidance-head>span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#fff;font-size:19px}.scene-guidance-head small,.scene-guidance-head strong{display:block}.scene-guidance-head small{color:var(--muted);font-size:10px}.scene-guidance-head strong{font-size:14px}.scene-guidance>p{margin:0 0 11px;color:#475467;font-size:12px;line-height:1.65}.scene-guidance>div>strong{font-size:12px}.scene-guidance ul{margin:7px 0 0;padding-left:19px;color:#475467;font-size:12px;line-height:1.65}.scene-guidance li+li{margin-top:3px}
@media(max-width:760px){.scene-choice-grid{grid-template-columns:1fr}.scene-choice-body{min-height:auto}.scene-summary{grid-template-columns:1fr}.text-button-inline{justify-self:start;padding-left:0}.scene-focus{display:block}.scene-focus>span{display:block;margin-bottom:8px}.selected-file-bar{flex-direction:column}.selected-file-actions{width:100%;justify-content:flex-start}.selected-file-actions .btn{flex:1}.upload-after-scene{padding-top:20px}}


/* v0.4.2 performance and action feedback */
.cancel-scan-btn{margin-top:14px;width:100%}.editor-toolbar .btn:disabled{opacity:.38}.plain-note.is-ready{color:#067647;background:#ecfdf3}.result-card>#nextImageBtn{margin-top:9px}.status-box.show{animation:status-pop .18s ease-out}@keyframes status-pop{from{transform:translateY(-3px);opacity:.4}to{transform:none;opacity:1}}

/* v0.5 focused premium interface */
:root{
  --bg:#f5f5f2;--surface:#fff;--surface-soft:#f8f8f6;--text:#15171a;--muted:#6f747c;
  --line:#e4e4df;--brand:#2456d6;--brand-dark:#183f9f;--brand-soft:#eef3ff;
  --success:#147a4c;--success-bg:#eef8f2;--warning:#9a5b0a;--warning-bg:#fff7e8;
  --danger:#b2382c;--danger-bg:#fff1ef;--shadow:0 18px 55px rgba(24,29,36,.07);--radius:24px
}
body{background:var(--bg);color:var(--text)}
.shell{width:min(1080px,calc(100% - 36px));padding:0 0 48px}
.topbar{height:72px;margin:0;border-bottom:1px solid rgba(21,23,26,.08)}
.brand{text-decoration:none;color:inherit;display:flex;align-items:center;gap:10px}
.brand-mark{width:36px;height:36px;border-radius:11px;background:#17191d;box-shadow:none;font-size:16px}
.brand strong,.brand small{display:block}.brand strong{font-size:15px;letter-spacing:.01em}.brand small{margin-top:2px;color:var(--muted);font-size:11px}
.top-actions{display:flex;align-items:center;gap:18px}.privacy-link{color:#50545b;text-decoration:none;font-size:13px;font-weight:700}.privacy-link:hover{color:var(--text)}
.local-badge{display:inline-flex;align-items:center;gap:7px;color:#3f6753;font-size:12px}.local-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:#32a66a;box-shadow:0 0 0 4px rgba(50,166,106,.10)}
.hero{display:block;max-width:760px;margin:78px auto 44px;padding:0;text-align:center;border:0;background:none;box-shadow:none}
.eyebrow{display:inline-flex;padding:7px 11px;border:1px solid #dfe4ef;border-radius:999px;background:rgba(255,255,255,.66);color:#505966;font-size:11px;font-weight:750;letter-spacing:.06em}
.hero h1{margin:22px 0 16px;font-size:clamp(38px,6vw,62px);line-height:1.08;letter-spacing:-.045em;font-weight:780}
.hero p{max-width:680px;margin:0 auto;color:var(--muted);font-size:16px;line-height:1.85}
.trust-row{display:flex;justify-content:center;flex-wrap:wrap;gap:20px;margin-top:24px;color:#555b64;font-size:12px}.trust-row span:before{content:"✓";margin-right:6px;color:var(--success);font-weight:900}
.stepper{max-width:700px;margin:0 auto 20px;padding:8px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.72);box-shadow:none}
.step{justify-content:center;gap:8px;padding:7px 10px;color:#8a8f96}.step-number{width:25px;height:25px;flex-basis:25px;border:0;background:#ecece9;font-size:11px}.step strong{font-size:12px;margin:0}.step small{display:none}.step-line{width:28px;margin:0 2px;background:#e4e4df}
.step.current{color:var(--text)}.step.current .step-number{background:#17191d;color:#fff;box-shadow:none}.step.done{color:#4c6c59}.step.done .step-number{background:#e9f4ed;border:0}
.stage{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}
.upload-stage{padding:46px 48px 42px}.stage-heading{max-width:600px;margin-bottom:30px}.stage-heading h2{margin:8px 0 10px;font-size:30px;letter-spacing:-.025em}.stage-heading p{font-size:14px}
.stage-kicker{color:var(--brand);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.scene-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:940px}
.scene-choice-body{min-height:132px;grid-template-columns:42px 1fr 20px;gap:12px;padding:18px;border:1px solid var(--line);border-radius:16px;box-shadow:none;background:#fff}
.scene-choice:hover .scene-choice-body{border-color:#b8c4da;transform:none;box-shadow:none;background:#fafbfc}
.scene-choice input:checked + .scene-choice-body{border-color:#1c2027;background:#f7f8fa;box-shadow:0 0 0 1px #1c2027}
.scene-icon{width:40px;height:40px;border-radius:12px;background:#f0f1ef;color:#353940;font-size:14px;font-weight:850}
.scene-choice strong{font-size:15px;margin:1px 0 8px}.scene-choice small{font-size:11px;line-height:1.55}.scene-check{width:20px;height:20px;border-color:#d8d9d5;font-size:11px}.scene-choice input:checked + .scene-choice-body .scene-check{border-color:#17191d;background:#17191d}
.upload-after-scene{max-width:940px;margin-top:30px;padding-top:30px}.scene-summary{margin-bottom:24px;padding:14px 16px;border-color:#e1e5ec;border-radius:14px;background:#f8f9fb}.scene-summary-icon{width:36px;height:36px;border-radius:10px;font-size:13px;font-weight:850}.scene-summary strong{font-size:15px}.scene-focus{padding-top:10px;border-color:#e7e9ee}.scene-focus-tags span{padding:4px 8px;border-color:#e2e6ef;background:#fff;color:#515b6b;font-size:10px}
.upload-heading-inline{margin-bottom:14px}.upload-heading-inline h3{margin:0 0 6px;font-size:19px}.upload-heading-inline p{font-size:12px}
.dropzone{min-height:200px;padding:28px;border:1.5px dashed #c7c9c6;border-radius:18px;background:#fafaf8}.dropzone:hover,.dropzone.drag{border-color:#596273;background:#f6f7f8;transform:none}.upload-icon{width:48px;height:48px;margin-bottom:13px;border-radius:14px;background:#eceff5;color:#334562;font-size:22px}.dropzone strong{font-size:17px}.dropzone span{font-size:13px}.dropzone small{font-size:11px}
.upload-actions{margin-top:14px}.upload-actions span{font-size:11px}
.btn{border-radius:11px;min-height:42px;padding:10px 15px;font-size:13px;box-shadow:none}.btn:hover:not(:disabled){transform:none}.btn-primary{background:#17191d;box-shadow:none}.btn-primary:hover:not(:disabled){background:#2d3036}.btn-success{background:#176b48;box-shadow:none}.btn-secondary{background:#fff;border-color:#d9dad6}.btn-ghost{background:#f7f7f5;border-color:#e4e4df}.btn-large{min-height:50px;font-size:14px}.text-button{font-size:12px;color:#44566f}
.workspace-stage{border-radius:24px}.selected-file-bar{padding:14px 18px;background:#fafaf8;border-color:var(--line)}.success-dot{background:#edf6f0;color:#24704c}.selected-scene-badge{background:#eff1f4;color:#505967}
.workspace-grid{grid-template-columns:minmax(0,1.55fr) minmax(310px,.65fr)}.image-panel{padding:26px;border-color:var(--line)}.panel-title h2{margin:7px 0 0;font-size:20px}.canvas-shell{min-height:420px;border-color:#e0e1dd;border-radius:16px;background:#eceeec}.action-panel{padding:22px;background:#f8f8f6}.guidance-card{padding:22px;border-color:#e2e2de;border-radius:16px}.guidance-card h2{margin:8px 0 10px;font-size:22px;letter-spacing:-.02em}.guidance-card>p{font-size:13px}.plain-note{background:#f5f5f2;font-size:11px}
.result-banner{padding:12px;background:#fff1ef}.result-banner.medium{background:#fff7e8}.result-banner.low{background:#eef8f2}.result-icon{border-radius:10px}.score-number{font-size:23px}.result-summary{font-size:13px}.result-stats{border-color:#e4e4df;background:#fafaf8}.result-stats div+div{border-color:#e4e4df}
.compact-details{margin:13px 0;padding:0;border:1px solid #e2e4e8;border-radius:13px;background:#fafbfc}.compact-details summary{display:flex;align-items:center;gap:9px;padding:13px 14px;cursor:pointer;list-style:none;font-size:12px}.compact-details summary::-webkit-details-marker{display:none}.compact-details summary:after{content:"＋";margin-left:auto;color:#777}.compact-details[open] summary:after{content:"−"}.compact-details>p,.compact-details>div{margin:0;padding:0 14px 13px}.compact-details>p{font-size:12px;line-height:1.65}.compact-details ul{font-size:12px}
.secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.secondary-actions .btn{width:100%}
.report-section{padding:30px;border-color:var(--line);background:#fff}.report-heading h2{font-size:22px}.risk-list{gap:10px}.risk-item{border-color:#e3e3df;border-radius:14px}.ocr-panel{border-color:#e3e3df;border-radius:14px}
.download-success,.feedback-section{border-color:#dce7df;background:#f6faf7}.feedback-buttons button{border-color:#dcded9;background:#fff;color:#3f444b}.feedback-buttons button:hover{border-color:#9ca3ad;background:#f8f8f6}
.privacy-details{max-width:760px;margin:24px auto 0;border:0;background:transparent}.privacy-details summary{justify-content:center;color:#656a72;font-size:12px}.privacy-details>div{margin-top:12px;border:1px solid var(--line);border-radius:14px;background:#fff}
.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;padding:22px 2px 0;border-top:1px solid rgba(21,23,26,.08);text-align:left;font-size:11px;line-height:1.4}.footer span:last-child{display:flex;gap:16px}.footer a{color:#585d65;text-decoration:none}
@media(max-width:900px){.scene-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-grid{grid-template-columns:1fr}.image-panel{border-right:0;border-bottom:1px solid var(--line)}.action-panel{padding:20px}.hero{margin-top:56px}}
@media(max-width:620px){.shell{width:min(100% - 20px,1080px)}.topbar{height:62px}.local-badge{display:none}.hero{margin:45px auto 32px}.hero h1{font-size:38px}.hero p{font-size:14px}.trust-row{gap:12px}.stepper{grid-template-columns:1fr auto 1fr auto 1fr}.step{padding:6px 3px}.step strong{font-size:10px}.step-line{width:10px}.upload-stage{padding:30px 18px}.stage-heading h2{font-size:25px}.scene-choice-grid{grid-template-columns:1fr}.scene-choice-body{min-height:auto;padding:15px}.workspace-stage{border-radius:18px}.selected-file-bar{align-items:flex-start}.image-panel{padding:16px}.panel-title{display:block}.editor-toolbar{margin-top:12px;justify-content:flex-start}.canvas-shell{min-height:260px}.action-panel{padding:14px}.guidance-card{padding:18px}.report-section{padding:20px 16px}.footer{display:block;text-align:center}.footer span{display:block}.footer span:last-child{justify-content:center;margin-top:10px}.privacy-details{margin-top:18px}}

/* v0.6 — flat, focused interface */
:root{
  --bg:#f7f7f5;--surface:#ffffff;--surface-soft:#f4f4f1;--text:#121416;--muted:#6b7077;
  --line:#dedfda;--line-strong:#c8cac4;--brand:#1f5eff;--brand-dark:#1746bd;--brand-soft:#edf2ff;
  --success:#1f744d;--success-bg:#eef7f2;--warning:#8d5a10;--warning-bg:#fff7e8;
  --danger:#a63a30;--danger-bg:#fff1ef;--shadow:none;--radius:18px
}
body{background:var(--bg);color:var(--text);letter-spacing:0}
.shell{width:min(1040px,calc(100% - 32px));padding:0 0 40px}
.topbar{height:64px;margin:0;border-bottom:1px solid var(--line);background:transparent}
.brand{gap:9px}.brand-mark{width:30px;height:30px;border-radius:9px;background:#121416;color:#fff;font-size:13px;box-shadow:none}
.brand strong{font-size:14px}.brand small{font-size:10px;color:#8a8e94}
.top-actions{gap:16px}.local-badge{font-size:11px;color:#4f6558}.local-badge:before{width:6px;height:6px;box-shadow:none}
.privacy-link{font-size:12px;color:#656970;font-weight:650}
.hero{max-width:680px;margin:68px auto 30px;padding:0;text-align:center;border:0;background:none;box-shadow:none}
.eyebrow{padding:0;border:0;border-radius:0;background:transparent;color:#7b8087;font-size:11px;font-weight:650;letter-spacing:.12em}
.hero h1{margin:16px 0 12px;font-size:clamp(38px,5.8vw,58px);line-height:1.05;letter-spacing:-.052em;font-weight:760}
.hero p{max-width:560px;margin:0 auto;color:var(--muted);font-size:15px;line-height:1.75}
.stepper{max-width:580px;margin:0 auto 26px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.step{justify-content:center;gap:8px;padding:6px 8px;color:#a0a4aa}
.step-number{width:22px;height:22px;flex-basis:22px;border:1px solid var(--line);background:transparent;font-size:10px}
.step strong{font-size:11px;font-weight:700}.step small{display:none}.step-line{width:38px;height:1px;margin:0 2px;background:var(--line)}
.step.current{color:var(--text)}.step.current .step-number{border-color:#121416;background:#121416;color:#fff;box-shadow:none}
.step.done{color:#47705b}.step.done .step-number{border-color:#b9d4c4;background:#eef7f2;color:#1f744d}
.stage{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:none}
.upload-stage{padding:38px 40px 40px}.stage-heading{max-width:620px;margin:0 0 28px;text-align:left}
.stage-kicker{color:#7d8289;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.stage-heading h2{margin:8px 0 7px;font-size:28px;letter-spacing:-.032em}.stage-heading p{font-size:13px;line-height:1.6}
.scene-picker{margin:0;padding:0;border:0}.scene-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:none}
.scene-choice-body{min-height:94px;grid-template-columns:34px 1fr 18px;gap:11px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:none;transition:border-color .14s ease,background .14s ease}
.scene-choice:hover .scene-choice-body{border-color:var(--line-strong);background:#fafaf8;transform:none;box-shadow:none}
.scene-choice input:focus-visible + .scene-choice-body{outline:2px solid rgba(31,94,255,.22);outline-offset:2px}
.scene-choice input:checked + .scene-choice-body{border-color:#202327;background:#f6f6f3;box-shadow:none}
.scene-icon{width:32px;height:32px;border-radius:9px;background:#f0f0ed;color:#34383d;font-size:12px;font-weight:800}
.scene-choice strong{font-size:14px;margin:0 0 5px;line-height:1.35}.scene-choice small{font-size:10.5px;line-height:1.45;color:#7a7f86}
.scene-check{width:18px;height:18px;border:1px solid #d2d4cf;background:#fff;font-size:10px}
.scene-choice input:checked + .scene-choice-body .scene-check{border-color:#17191c;background:#17191c;color:#fff}
.upload-after-scene{max-width:none;margin-top:28px;padding-top:26px;border-top:1px solid var(--line)}
.scene-summary{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:12px;margin-bottom:22px;padding:0;border:0;background:transparent}
.scene-summary-main{gap:9px}.scene-summary-icon{width:30px;height:30px;border-radius:8px;background:#f0f0ed;color:#31353a;font-size:11px}
.scene-summary small{font-size:9px;color:#8a8e94}.scene-summary strong{font-size:13px}.text-button-inline{padding:4px 0;border:0;background:transparent;color:#4d5c73;font-size:11px;font-weight:700}
.scene-focus{display:flex;align-items:center;gap:8px;padding:0;border:0;min-width:0}.scene-focus>span{font-size:10px;color:#8a8e94}.scene-focus-tags{display:flex;flex-wrap:wrap;gap:0;color:#555b63;font-size:10.5px}.scene-focus-tags span{padding:0;border:0;background:transparent;color:inherit;font-size:inherit}.scene-focus-tags span+span:before{content:"·";margin:0 6px;color:#b0b3b7}
.upload-heading-inline{margin-bottom:12px}.upload-heading-inline h3{margin:0 0 5px;font-size:17px}.upload-heading-inline p{font-size:11px;color:#858990}
.dropzone{min-height:170px;padding:24px;border:1px dashed #bfc2bc;border-radius:14px;background:#fafaf8;transition:border-color .14s ease,background .14s ease}
.dropzone:hover,.dropzone.drag{border-color:#616872;background:#f6f6f3;transform:none}.upload-icon{width:38px;height:38px;margin-bottom:10px;border-radius:10px;background:#ededeb;color:#363a40;font-size:20px}
.dropzone strong{font-size:15px;margin-bottom:4px}.dropzone span{font-size:12px;margin-bottom:8px}.dropzone small{font-size:10px;color:#8a8e94}
.upload-actions{justify-content:flex-start;margin-top:12px}.upload-actions span{font-size:10.5px}.upload-actions .btn{min-height:34px;padding:7px 11px}
.btn{min-height:40px;padding:9px 14px;border-radius:9px;font-size:12px;font-weight:720;box-shadow:none;transition:background .14s ease,border-color .14s ease,color .14s ease}
.btn:hover:not(:disabled){transform:none}.btn-primary{background:#151719;color:#fff}.btn-primary:hover:not(:disabled){background:#2b2e32}.btn-secondary{background:#fff;color:#3d4248;border:1px solid var(--line)}.btn-secondary:hover:not(:disabled){border-color:#bfc2bc;background:#fafaf8}
.btn-ghost{background:transparent;color:#666b72;border:1px solid var(--line)}.btn-ghost:hover:not(:disabled){background:#f5f5f2;color:#30343a}.btn-success{background:#1f744d;color:#fff}.btn-large{min-height:46px;font-size:13px}.btn-small{min-height:32px;padding:6px 10px;font-size:11px}
.text-button{margin-top:9px;padding:7px;color:#4c5f7c;font-size:11px;font-weight:700}
.workspace-stage{overflow:hidden;border-radius:var(--radius)}.selected-file-bar{padding:13px 18px;border-bottom:1px solid var(--line);background:#fafaf8}.selected-file-bar strong{font-size:12px}.selected-file-bar small{font-size:10px}.success-dot{width:24px;height:24px;flex-basis:24px;background:#edf6f0;color:#1f744d;font-size:11px}.selected-scene-badge{padding:3px 7px;border-radius:999px;background:#eeeeeb;color:#60656c;font-size:9px}
.workspace-grid{grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:0}.image-panel{padding:24px;border-right:1px solid var(--line)}.panel-title{margin-bottom:12px}.panel-title h2{margin:6px 0 0;font-size:18px;letter-spacing:-.02em}.editor-toolbar{gap:6px}.tool-toggle{border-color:var(--line);border-radius:9px}.tool-toggle button{padding:7px 10px;font-size:11px}.tool-toggle button.active{background:#ededeb;color:#202327}
.canvas-shell{min-height:410px;border:1px solid var(--line);border-radius:13px;background:#eeeeeb}.canvas-hint{margin-top:9px;font-size:10.5px;color:#7b8087}
.action-panel{padding:24px;background:#fff}.guidance-card{padding:0;border:0;border-radius:0;background:transparent}.guidance-card h2{margin:7px 0 8px;font-size:22px;letter-spacing:-.025em}.guidance-card>p{margin:0 0 18px;font-size:12px;line-height:1.65}.plain-note{margin-top:12px;padding:10px 11px;border-radius:9px;background:#f5f5f2;font-size:10.5px;line-height:1.5}.status-box{margin-top:10px;font-size:11px}.status-box.show{padding:9px 10px;border-radius:9px}
.progress-track{height:5px;margin:18px 0 10px;background:#e9e9e5}.progress-track span{background:#1f5eff}.progress-list{gap:8px;margin-top:16px}.progress-item{font-size:11px}.progress-item span{width:16px}.progress-item.active{color:#1f5eff}.cancel-scan-btn{margin-top:16px}
.result-banner{grid-template-columns:auto 1fr auto;gap:10px;padding:0 0 16px;border-radius:0;background:transparent;border-bottom:1px solid var(--line)}.result-banner.medium,.result-banner.low{background:transparent}.result-icon{width:30px;height:30px;border-radius:50%;background:var(--danger-bg);font-size:12px}.result-banner.medium .result-icon{background:var(--warning-bg)}.result-banner.low .result-icon{background:var(--success-bg)}
.result-banner span{font-size:10px}.result-banner strong{font-size:14px}.score-number{font-size:24px}.result-summary{margin:14px 0 12px;font-size:11.5px;line-height:1.6}.result-stats{margin:0 0 14px;border:0;border-radius:0;background:#f7f7f5}.result-stats div{padding:9px 5px}.result-stats div+div{border-color:var(--line)}.result-stats strong{font-size:16px}.result-stats span{font-size:9px}
.microcopy{margin:7px 0 0;font-size:9.5px}.compact-details{margin:14px 0;padding:0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:transparent}.compact-details summary{padding:12px 0;font-size:11px}.compact-details>p,.compact-details>div{padding:0 0 12px}.manual-instruction{margin:12px 0;padding:0;background:transparent;border-radius:0}.manual-instruction strong{font-size:11px}.manual-instruction span{font-size:10px}.secondary-actions{gap:7px;margin-top:7px}
.report-section{padding:26px 24px;border-top:1px solid var(--line);background:#fff}.report-heading h2{font-size:19px}.risk-list{gap:8px}.risk-item{border:1px solid var(--line);border-radius:11px;box-shadow:none}.ocr-panel{border:1px solid var(--line);border-radius:11px}
.download-success,.feedback-section{margin:0;padding:20px 24px;border:0;border-top:1px solid var(--line);border-radius:0;background:#fafaf8}.feedback-section{display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px}.feedback-copy h2{font-size:17px}.feedback-copy p{font-size:10.5px}.feedback-buttons button{border:1px solid var(--line);border-radius:8px;background:#fff;color:#454a50;font-size:11px}.feedback-draft{grid-column:1/-1}
.privacy-details{max-width:720px;margin:20px auto 0;border:0;background:transparent}.privacy-details summary{justify-content:center;color:#7b8087;font-size:10.5px}.privacy-details>div{margin-top:10px;padding:14px 16px;border:1px solid var(--line);border-radius:11px;background:#fff}.privacy-details p{font-size:10.5px}
.footer{margin-top:22px;padding:18px 0 0;border-top:1px solid var(--line);font-size:10px;color:#858990}.footer a{color:#686d74}
.policy-page{background:#f7f7f5}.policy-shell{max-width:1040px}.policy-nav{padding:20px 0}.policy-card{border:1px solid var(--line);border-radius:18px;box-shadow:none}.policy-hero{padding:44px 52px 34px}.policy-badge{background:#f0f0ed;color:#555b62}.policy-summary{margin:0 52px 30px;border:1px solid var(--line);border-radius:12px;background:#fafaf8}.policy-layout{padding:0 52px 52px}.policy-toc{top:20px}.policy-content{max-width:700px}.policy-content h2{font-size:20px}.policy-footer{font-size:10px}
@media(max-width:900px){.scene-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-grid{grid-template-columns:1fr}.image-panel{border-right:0;border-bottom:1px solid var(--line)}.feedback-section{grid-template-columns:1fr}.feedback-buttons{justify-content:flex-start}}
@media(max-width:620px){.shell{width:min(100% - 20px,1040px)}.topbar{height:58px}.brand small,.local-badge{display:none}.hero{margin:44px auto 26px}.hero h1{font-size:38px}.hero p{font-size:13px}.stepper{margin-bottom:18px}.step{padding:4px 2px}.step strong{font-size:9px}.step-line{width:16px}.upload-stage{padding:26px 16px}.stage-heading{margin-bottom:20px}.stage-heading h2{font-size:24px}.scene-choice-grid{grid-template-columns:1fr}.scene-choice-body{min-height:auto;padding:14px}.scene-summary{grid-template-columns:auto 1fr auto}.scene-focus{grid-column:1/-1}.dropzone{min-height:150px}.selected-file-bar{align-items:flex-start}.selected-file-actions{width:auto}.selected-file-actions .btn{flex:none}.image-panel{padding:16px}.panel-title{display:block}.editor-toolbar{margin-top:10px;justify-content:flex-start}.canvas-shell{min-height:250px}.action-panel{padding:18px}.report-section{padding:22px 16px}.download-success,.feedback-section{padding:18px 16px}.footer{display:flex;flex-direction:column;gap:8px;text-align:center}.policy-hero{padding:30px 22px}.policy-summary{margin:0 22px 24px}.policy-layout{padding:0 22px 32px}}

/* v0.6.1 final flattening */
.upload-stage{padding:24px 0 0;border:0;background:transparent}
.upload-stage .stage-heading{margin-bottom:20px}
.upload-after-scene{margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff}
.upload-after-scene .scene-summary{margin-bottom:18px}
@media(max-width:620px){.upload-stage{padding:18px 0 0}.upload-after-scene{padding:16px}}

/* v0.6.1 — restrained blue accents on a flat neutral interface */
:root{
  --brand:#2563eb;
  --brand-dark:#1d4ed8;
  --brand-soft:#eff6ff;
  --brand-line:#bfdbfe;
  --brand-ink:#1e40af;
}

/* Keep the canvas neutral; use blue only for hierarchy and action. */
body{background:#f7f8fa}
.brand-mark{background:var(--brand);color:#fff;box-shadow:none}
.local-badge{border-color:var(--brand-line);background:var(--brand-soft);color:var(--brand-ink)}
.privacy-link,.text-button,.text-button-inline,.footer a,.policy-footer a{color:var(--brand-dark)}

.hero .eyebrow,.stage-kicker{color:var(--brand)}
.hero h1 span{color:var(--brand)}

.step.current{color:var(--brand)}
.step.current .step-number{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:none}
.step.done{color:var(--brand-ink)}
.step.done .step-number{border-color:var(--brand-line);background:var(--brand-soft);color:var(--brand-dark)}

.scene-icon,.scene-summary-icon,.upload-icon{
  background:var(--brand-soft);
  color:var(--brand-dark);
}
.scene-choice:hover .scene-choice-body{
  border-color:var(--brand-line);
  background:#fbfdff;
}
.scene-choice input:checked + .scene-choice-body{
  border-color:var(--brand);
  background:#f8fbff;
  box-shadow:0 0 0 1px rgba(37,99,235,.08);
}
.scene-choice input:checked + .scene-choice-body .scene-icon{
  background:#dbeafe;
  color:var(--brand-ink);
}
.scene-choice input:checked + .scene-choice-body .scene-check{
  border-color:var(--brand);
  background:var(--brand);
  color:#fff;
}
.scene-focus>span{color:var(--brand-dark)}
.scene-focus-tags{color:#3b5ca8}
.selected-scene-badge{background:var(--brand-soft);color:var(--brand-dark)}

.dropzone:hover,.dropzone.drag{
  border-color:var(--brand);
  background:#f8fbff;
}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover:not(:disabled){background:var(--brand-dark)}
.btn-secondary:hover:not(:disabled){border-color:var(--brand-line);background:#f8fbff;color:var(--brand-dark)}
.btn-ghost:hover:not(:disabled){border-color:var(--brand-line);background:var(--brand-soft);color:var(--brand-dark)}
.tool-toggle button.active{background:var(--brand-soft);color:var(--brand-dark)}
.plain-note{background:#f6f9ff;color:#52637f}
.status-box.info{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-ink)}
.progress-track span{background:var(--brand)}
.progress-item.active{color:var(--brand)}

.report-heading .stage-kicker,.feedback-copy .stage-kicker{color:var(--brand)}
.feedback-buttons button:hover{border-color:var(--brand-line);background:var(--brand-soft);color:var(--brand-dark)}
.policy-badge{background:var(--brand-soft);color:var(--brand-dark)}
.policy-content h2{color:#17233a}
.policy-toc a:hover,.policy-toc a[aria-current="true"]{color:var(--brand-dark)}

/* Accessible focus state, consistent with the accent system. */
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,label:focus-within{
  outline:2px solid rgba(37,99,235,.55);
  outline-offset:3px;
}


/* v0.7 — larger type, scene-aware motion, focused result panel */
:root{
  --v07-ease:cubic-bezier(.2,.8,.2,1);
}
.shell{width:min(1240px,calc(100% - 40px));padding-bottom:56px}
.topbar{height:76px}.brand strong{font-size:18px}.brand small{font-size:12px}.brand-mark{width:44px;height:44px;font-size:19px}
.hero{max-width:900px;margin:78px auto 48px}.hero .eyebrow{font-size:15px}.hero h1{font-size:clamp(48px,6.2vw,72px);line-height:1.02;margin:18px 0 18px}.hero p{max-width:760px;font-size:18px;line-height:1.72}
.stepper{max-width:940px;margin:0 auto 38px;padding:16px 20px}.step{gap:12px;padding:8px 12px}.step-number{width:34px;height:34px;flex-basis:34px;font-size:13px}.step strong{font-size:16px;line-height:1.25}.step small{display:block;margin-top:4px;font-size:12px;line-height:1.35}.step-line{width:48px}
.stage-kicker,.eyebrow{font-size:14px}.upload-stage .stage-heading{max-width:780px;margin-bottom:30px}.stage-heading h2{font-size:36px;line-height:1.2;margin:10px 0 12px}.stage-heading p{font-size:17px;line-height:1.7}
.scene-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1180px;gap:16px}.scene-choice-body{min-height:124px;grid-template-columns:46px 1fr 24px;gap:15px;padding:20px;border-radius:16px;transition:transform .22s var(--v07-ease),border-color .22s ease,background .22s ease,box-shadow .22s ease}.scene-icon{width:46px;height:46px;border-radius:14px;font-size:18px;font-weight:850;transition:transform .25s var(--v07-ease),background .2s ease}.scene-choice strong{font-size:18px;line-height:1.35;margin:1px 0 7px}.scene-choice small{font-size:13.5px;line-height:1.55}.scene-check{width:24px;height:24px;font-size:12px;transition:transform .25s var(--v07-ease),background .2s ease}
.scene-choice:hover .scene-choice-body{transform:translateY(-3px);border-color:var(--brand-line);background:#fbfdff;box-shadow:0 12px 30px rgba(37,99,235,.08)}.scene-choice:hover .scene-icon{transform:translateY(-1px) scale(1.04)}
.scene-choice input:checked + .scene-choice-body{animation:sceneSelected .42s var(--v07-ease);transform:translateY(-2px);border-color:var(--brand);background:linear-gradient(145deg,#fff,#f4f8ff);box-shadow:0 14px 36px rgba(37,99,235,.12)}.scene-choice input:checked + .scene-choice-body .scene-icon{transform:scale(1.08)}.scene-choice input:checked + .scene-choice-body .scene-check{transform:scale(1.08)}
@keyframes sceneSelected{0%{transform:scale(.985)}55%{transform:scale(1.012) translateY(-3px)}100%{transform:scale(1) translateY(-2px)}}
.upload-after-scene{max-width:1180px;padding:26px;border-radius:18px}.upload-after-scene.is-revealing{animation:panelReveal .38s var(--v07-ease)}@keyframes panelReveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.scene-summary{padding:18px 20px}.scene-summary-icon{width:46px;height:46px}.scene-summary small{font-size:12px}.scene-summary strong{font-size:19px}.scene-focus>span{font-size:12px}.scene-focus-tags{font-size:13px}.upload-heading-inline h3{font-size:22px}.upload-heading-inline p{font-size:14px}
.scene-playbook{display:grid;grid-template-columns:170px 1fr;gap:16px;align-items:center;margin:0 0 24px;padding:18px 20px;border:1px solid #dbe7fb;border-radius:15px;background:#f8fbff}.scene-playbook-label{font-size:13px;font-weight:800;color:var(--brand-dark)}.scene-playbook-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.scene-playbook-step{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:center;opacity:0;animation:stepReveal .35s var(--v07-ease) forwards;animation-delay:var(--delay)}.scene-playbook-step>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#dbeafe;color:var(--brand-ink);font-size:12px;font-weight:900}.scene-playbook-step strong,.scene-playbook-step small{display:block}.scene-playbook-step strong{font-size:14px;line-height:1.35}.scene-playbook-step small{margin-top:3px;color:#667085;font-size:11.5px;line-height:1.35}@keyframes stepReveal{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
.dropzone{min-height:210px}.dropzone strong{font-size:20px}.dropzone span{font-size:15px}.dropzone small{font-size:13px}.upload-icon{width:60px;height:60px;font-size:28px}
.selected-file-bar{padding:16px 22px}.selected-file-bar strong{font-size:14px}.selected-file-bar small{font-size:12px}.selected-scene-badge{font-size:11px}
.workspace-grid{grid-template-columns:minmax(0,1.7fr) minmax(360px,.62fr)}.image-panel{padding:30px}.panel-title h2{font-size:25px}.canvas-hint{font-size:13px;line-height:1.65}.editor-toolbar .btn-small,.tool-toggle button{font-size:13px}.action-panel{padding:30px}.guidance-card h2{font-size:27px}.guidance-card>p{font-size:15px;line-height:1.7}.plain-note{font-size:12.5px;line-height:1.6}.btn-large{min-height:54px;font-size:16px}.btn{font-size:14px}.text-button{font-size:13px}.progress-item{font-size:13px}.progressText{font-size:14px}
.result-card-v07{display:block}.result-banner-v07{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:0 0 18px;border-bottom:1px solid var(--line);background:transparent}.result-banner-v07.medium,.result-banner-v07.low{background:transparent}.result-heading-copy span,.result-heading-copy strong{display:block}.result-heading-copy span{font-size:12px;font-weight:800}.result-heading-copy strong{margin-top:4px;font-size:18px;line-height:1.35}.result-score{min-width:56px;text-align:right}.result-score strong,.result-score span{display:block}.result-score strong{font-size:30px;line-height:1;font-variant-numeric:tabular-nums}.result-score span{margin-top:5px;color:#8a8f98;font-size:10px}.result-summary{margin:17px 0 16px;font-size:14.5px;line-height:1.72;color:#536074}.result-key-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.result-key-metrics>div{padding:12px 10px;border:1px solid #e5eaf2;border-radius:12px;background:#fafcff}.result-key-metrics span,.result-key-metrics strong{display:block}.result-key-metrics span{color:#7c8594;font-size:10.5px}.result-key-metrics strong{margin-top:5px;font-size:14px}.result-key-metrics b{font-size:19px;font-weight:850}.result-primary-actions{display:grid;gap:10px}.result-primary-actions .btn-success{border:1px solid #a6d9bd;background:#fff;color:#17633f;box-shadow:none}.result-primary-actions .btn-success:hover{background:#f0faf4}.result-primary-actions .btn-success.is-ready{background:var(--success);color:#fff;border-color:var(--success)}.microcopy{margin:9px 0 0;font-size:11.5px;line-height:1.55}.result-details{margin:18px 0 0}.result-details summary{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;padding:14px 0;font-size:13px}.result-details summary>span:first-child{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:var(--brand-soft);color:var(--brand-dark);font-weight:850}.details-arrow{color:#8a8f98;font-size:16px}.result-details[open] .details-arrow{transform:rotate(180deg)}.result-details>p,.result-details>div{font-size:12.5px;line-height:1.65}.result-detail-link{text-align:left;padding:8px 0;margin:2px 0 4px}.secondary-actions-v07{margin-top:12px}.secondary-actions-v07 .btn{min-height:42px;font-size:13px}.status-box.show{font-size:12px;line-height:1.55}
.report-heading h2{font-size:24px}.risk-content strong{font-size:15px}.risk-content p{font-size:12.5px}.feedback-copy h2{font-size:21px}.feedback-copy p{font-size:12px}.privacy-details summary{font-size:12px}.footer{font-size:11px}
@media(max-width:1000px){.scene-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scene-playbook{grid-template-columns:1fr}.workspace-grid{grid-template-columns:1fr}.image-panel{border-right:0;border-bottom:1px solid var(--line)}}
@media(max-width:680px){.shell{width:min(100% - 20px,1240px)}.topbar{height:64px}.hero{margin:48px auto 34px}.hero h1{font-size:43px}.hero p{font-size:16px}.stepper{padding:12px 6px;margin-bottom:26px}.step{padding:5px 2px;gap:7px}.step-number{width:30px;height:30px;flex-basis:30px}.step strong{font-size:12px}.step small{display:none}.step-line{width:12px}.stage-heading h2{font-size:29px}.stage-heading p{font-size:15px}.scene-choice-grid{grid-template-columns:1fr}.scene-choice-body{min-height:auto;padding:17px}.scene-choice strong{font-size:17px}.scene-choice small{font-size:13px}.upload-after-scene{padding:17px}.scene-playbook-steps{grid-template-columns:1fr}.scene-playbook-step{grid-template-columns:30px 1fr}.dropzone{min-height:170px}.image-panel,.action-panel{padding:18px}.panel-title h2{font-size:21px}.guidance-card h2{font-size:24px}.result-key-metrics{grid-template-columns:repeat(3,1fr)}.result-key-metrics>div{padding:10px 6px}.result-key-metrics b{font-size:17px}.result-primary-actions .btn{font-size:15px}.result-banner-v07{grid-template-columns:auto 1fr}.result-score{grid-column:2;text-align:left;display:flex;align-items:baseline;gap:6px}.result-score strong{font-size:24px}.result-score span{margin:0}.secondary-actions-v07{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.scene-choice-body,.scene-icon,.scene-check,.upload-after-scene,.scene-playbook-step{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.result-details summary::after{display:none!important;content:none!important}


/* v0.8 — refined visual system, image-security iconography, unified typography */
:root{
  --font-ui:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --font-body:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --type-xs:12px;--type-sm:14px;--type-md:16px;--type-lg:18px;--type-xl:22px;--type-2xl:30px;--type-3xl:52px;
}
html{font-size:16px}body{font-family:var(--font-body);font-size:var(--type-md);letter-spacing:-.006em}
button,input,textarea{font:inherit}.shell{width:min(1240px,calc(100% - 44px))}
.topbar{height:84px}.brand{gap:14px}.brand-mark{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--brand);color:#fff;box-shadow:0 10px 24px rgba(37,99,235,.16)}
.brand-symbol{width:43px;height:43px;overflow:visible}.brand strong{font-size:24px;line-height:1.12;letter-spacing:-.025em;font-weight:790}.brand small{margin-top:5px;font-size:15px;line-height:1.2;color:#7c8594;font-weight:520}
.top-actions{gap:22px}.local-badge,.privacy-link{font-size:15px;line-height:1;font-weight:720}.local-badge{padding:9px 12px;border-radius:999px}.privacy-link{text-underline-offset:4px}
.hero-v08{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(390px,.75fr);align-items:center;gap:44px;max-width:none;margin:62px auto 42px;padding:18px 8px 12px;text-align:left}
.hero-copy{max-width:700px}.hero-v08 .eyebrow{font-size:14px;letter-spacing:.08em}.hero-v08 h1{margin:19px 0 18px;font-size:clamp(46px,5.3vw,64px);line-height:1.05;letter-spacing:-.045em}.hero-v08 p{max-width:650px;margin:0;color:#667085;font-size:18px;line-height:1.72}
.hero-points{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:24px}.hero-points span{display:inline-flex;align-items:center;gap:8px;color:#344054;font-size:14px;font-weight:680}.hero-points span:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px rgba(37,99,235,.09)}
.hero-visual{display:flex;align-items:center;justify-content:center;min-height:330px}.privacy-illustration{width:min(100%,500px);height:auto;overflow:visible}.hero-risk-chip{animation:heroFloat 5.2s ease-in-out infinite}.hero-risk-two{animation-delay:-2.3s}@keyframes heroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.stepper{max-width:790px;margin-bottom:30px;padding:13px 18px;border-radius:18px}.step{gap:10px;padding:8px 12px}.step-number{width:34px;height:34px;flex-basis:34px;font-size:13px}.step strong{font-size:14px;line-height:1.25}.step small{display:block;margin-top:3px;font-size:12px;line-height:1.25}.step-line{width:42px}
.upload-stage{padding:50px 54px 48px}.upload-stage .stage-heading{max-width:760px;margin-bottom:30px}.stage-kicker,.eyebrow{font-size:13px;font-weight:780;letter-spacing:.09em}.stage-heading h2{margin:10px 0 12px;font-size:32px;line-height:1.24;letter-spacing:-.027em}.stage-heading p{font-size:16px;line-height:1.72}
.scene-choice-grid{gap:17px}.scene-choice-body{min-height:126px;grid-template-columns:50px 1fr 25px;padding:21px;gap:15px}.scene-icon{width:48px;height:48px;border-radius:15px;background:#eff5ff;color:var(--brand);font-size:0}.scene-symbol{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.scene-choice strong{font-size:18px;line-height:1.35}.scene-choice small{font-size:14px;line-height:1.55}.scene-check{margin-top:2px}
.scene-summary-icon,.result-details summary>span:first-child{color:var(--brand);font-size:0}.scene-summary-icon .scene-symbol{width:24px;height:24px}.result-details summary>span:first-child .scene-symbol{width:18px;height:18px}
.selected-scene-badge{gap:7px;align-items:center;font-size:13px}.selected-scene-badge .scene-symbol{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9}
.upload-heading-inline h3{font-size:22px}.upload-heading-inline p{font-size:14px}.dropzone strong{font-size:19px}.dropzone>span:not(.upload-icon){font-size:14px}.dropzone small{font-size:12.5px}.upload-actions span{font-size:13px}
.panel-title h2{font-size:24px}.canvas-hint{font-size:14px}.guidance-card h2{font-size:27px}.guidance-card>p{font-size:16px}.plain-note{font-size:13px}.btn{font-size:15px}.btn-large{font-size:16px}.text-button{font-size:14px}.progress-item{font-size:14px}
.result-heading-copy span{font-size:13px}.result-heading-copy strong{font-size:19px}.result-summary{font-size:15px}.result-key-metrics span{font-size:12px}.result-key-metrics strong{font-size:15px}.result-key-metrics b{font-size:20px}.microcopy{font-size:12px}.result-details summary{font-size:14px}.result-details>p,.result-details>div{font-size:13.5px}.secondary-actions-v07 .btn{font-size:14px}
.report-heading h2{font-size:25px}.risk-content strong{font-size:16px}.risk-content p{font-size:14px}.feedback-copy h2{font-size:23px}.feedback-copy p{font-size:14px}.privacy-details summary,.privacy-details p{font-size:14px}
.footer{font-size:14px;padding-top:22px}.footer>span:last-child{display:inline-flex;gap:18px}.footer a{font-size:14px;font-weight:650}
/* Policy and guide typography follow the same scale */
.policy-nav,.policy-back{font-size:14px}.policy-hero h1{font-family:var(--font-ui);font-size:40px}.policy-hero>p{font-size:17px}.policy-meta,.policy-content,.policy-content p,.policy-content li,.privacy-copy,.privacy-copy p,.privacy-copy li{font-size:16px;line-height:1.8}.policy-content h2,.privacy-copy h3{font-family:var(--font-ui);font-size:22px;letter-spacing:-.02em}.policy-footer{font-size:14px}.policy-toc,.policy-table{font-size:14px}
/* subtle consistency on selected and interactive elements */
.scene-choice:hover .scene-icon{background:#e5efff}.scene-choice input:checked + .scene-choice-body .scene-icon{background:var(--brand);color:#fff}.scene-choice input:checked + .scene-choice-body .scene-check{box-shadow:0 5px 14px rgba(37,99,235,.22)}
@media(max-width:980px){.hero-v08{grid-template-columns:1fr;max-width:800px;text-align:center}.hero-copy{max-width:760px;margin:0 auto}.hero-v08 p{margin:0 auto}.hero-points{justify-content:center}.hero-visual{min-height:270px}.privacy-illustration{width:min(100%,460px)}}
@media(max-width:680px){
  .shell{width:min(100% - 22px,1240px)}.topbar{height:70px}.brand{gap:10px}.brand-mark{width:42px;height:42px;border-radius:13px}.brand-symbol{width:35px;height:35px}.brand strong{font-size:18px}.brand small{display:none}.top-actions{gap:10px;flex-direction:row;align-items:center}.local-badge{display:none}.privacy-link{font-size:14px}
  .hero-v08{margin:34px auto 25px;padding:8px 2px}.hero-v08 h1{font-size:41px}.hero-v08 p{font-size:16px;line-height:1.66}.hero-points{gap:9px 14px;margin-top:20px}.hero-points span{font-size:12.5px}.hero-visual{min-height:220px}.privacy-illustration{max-width:370px}
  .stepper{padding:9px 7px}.step{gap:6px;padding:5px 2px}.step-number{width:29px;height:29px;flex-basis:29px}.step strong{font-size:11.5px}.step small{display:none}.step-line{width:13px}
  .upload-stage{padding:30px 17px}.stage-heading h2{font-size:27px}.stage-heading p{font-size:14.5px}.scene-choice-body{min-height:auto;padding:17px;grid-template-columns:45px 1fr 23px}.scene-icon{width:43px;height:43px}.scene-symbol{width:24px;height:24px}.scene-choice strong{font-size:17px}.scene-choice small{font-size:13px}
  .panel-title h2{font-size:21px}.guidance-card h2{font-size:23px}.guidance-card>p{font-size:14.5px}.footer{font-size:13px}.footer a{font-size:13px}
  .policy-hero h1{font-size:31px}.policy-hero>p,.policy-content,.policy-content p,.policy-content li,.privacy-copy,.privacy-copy p,.privacy-copy li{font-size:15px}.policy-content h2,.privacy-copy h3{font-size:20px}
}
@media(prefers-reduced-motion:reduce){.hero-risk-chip{animation:none!important}}


/* v0.8.4 — priority panel base */
.scene-focus{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:22px;
  align-items:start;
  padding-top:18px;
  border-top:1px solid #dfe7f5;
}
.scene-focus-heading{
  display:grid;
  grid-template-columns:42px 1fr auto;
  gap:11px;
  align-items:center;
  min-height:48px;
}
.scene-focus-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:var(--brand);
  background:#eef4ff;
  border:1px solid #dce8ff;
}
.scene-focus-icon svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.scene-focus-copy{display:block;min-width:0}
.scene-focus-copy small,
.scene-focus-copy strong{display:block}
.scene-focus-copy small{
  margin-bottom:3px;
  color:#8a94a6;
  font-size:11px;
  line-height:1.2;
  font-weight:650;
  letter-spacing:.04em;
}
.scene-focus-copy strong{
  color:#172033;
  font-size:15px;
  line-height:1.25;
  font-weight:780;
  letter-spacing:-.012em;
}
.scene-focus-count{
  align-self:start;
  margin-top:2px;
  padding:4px 7px;
  border-radius:999px;
  color:#4664b5;
  background:#f2f6ff;
  font-size:10px;
  line-height:1;
  font-weight:760;
  white-space:nowrap;
}
.scene-focus-tags{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:9px;
}
.scene-focus-tags .scene-focus-item{
  min-height:46px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px 12px;
  border:1px solid #e0e8f5;
  border-radius:13px;
  background:#fff;
  color:#27344a;
  font-size:13px;
  line-height:1.35;
  font-weight:670;
  box-shadow:0 1px 2px rgba(16,24,40,.025);
}
.scene-focus-item-icon{
  width:21px;
  height:21px;
  flex:0 0 21px;
  display:grid;
  place-items:center;
  color:var(--brand);
}
.scene-focus-item-icon svg{
  width:20px;
  height:20px;
  fill:#eff5ff;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
@media(max-width:760px){
  .scene-focus{grid-template-columns:1fr;gap:13px;padding-top:16px}
  .scene-focus-heading{grid-template-columns:40px 1fr auto}
  .scene-focus-icon{width:40px;height:40px}
  .scene-focus-tags{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .scene-focus-tags .scene-focus-item{min-height:44px;padding:9px 10px;font-size:12.5px}
}
@media(max-width:430px){
  .scene-focus-tags{grid-template-columns:1fr}
}

/* v0.8.4 — adaptive single-line priority chips */
.scene-focus{
  grid-template-columns:minmax(0,1fr);
  gap:14px;
  padding-top:18px;
}
.scene-focus-heading{
  display:flex;
  align-items:center;
  gap:11px;
  min-height:46px;
}
.scene-focus-copy{
  flex:1 1 auto;
}
.scene-focus-count{
  align-self:center;
  margin-top:0;
  padding:5px 9px;
  font-size:11px;
}
.scene-focus-tags{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  width:100%;
}
.scene-focus-tags .scene-focus-item{
  flex:1 1 145px;
  min-width:max-content;
  max-width:220px;
  min-height:42px;
  justify-content:flex-start;
  padding:9px 14px;
  border-color:#dbe6f7;
  border-radius:999px;
  background:#f7faff;
  color:#243149;
  font-size:13.5px;
  line-height:1;
  white-space:nowrap;
  word-break:keep-all;
  box-shadow:none;
}
.scene-focus-item-icon{
  width:20px;
  height:20px;
  flex-basis:20px;
}
.scene-focus-item-icon svg{
  width:19px;
  height:19px;
}
@media(min-width:1100px){
  .scene-focus-tags .scene-focus-item{
    flex-basis:150px;
  }
}
@media(max-width:760px){
  .scene-focus{gap:12px}
  .scene-focus-heading{min-height:42px}
  .scene-focus-tags{gap:8px}
  .scene-focus-tags .scene-focus-item{
    flex:1 1 calc(50% - 4px);
    min-width:0;
    max-width:none;
    padding:9px 11px;
    font-size:12.5px;
    overflow:hidden;
  }
  .scene-focus-tags .scene-focus-item > span:last-child{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
}
@media(max-width:430px){
  .scene-focus-tags{
    grid-template-columns:unset;
  }
  .scene-focus-tags .scene-focus-item{
    flex-basis:100%;
  }
}


/* v0.8.4 — semantic scene risk map */
.scene-focus{
  display:block;
  padding-top:20px;
  border-top:1px solid #dfe7f5;
}
.scene-focus-heading{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:48px;
  margin-bottom:14px;
}
.scene-focus-copy{flex:1 1 auto}
.scene-focus-copy small{
  margin-bottom:4px;
  color:#66748a;
  font-size:11.5px;
  font-weight:720;
  letter-spacing:.045em;
}
.scene-focus-copy strong{
  color:#162036;
  font-size:16px;
  font-weight:800;
}
.scene-focus-count{
  align-self:center;
  margin:0;
  padding:6px 10px;
  color:#2458c6;
  background:#eaf2ff;
  border:1px solid #d7e5ff;
  font-size:11.5px;
  font-weight:800;
}
.scene-focus-tags{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:1px;
  width:100%;
  overflow:hidden;
  border:1px solid #dfe8f5;
  border-radius:18px;
  background:#dfe8f5;
  box-shadow:0 10px 28px rgba(34,67,121,.06);
}
.scene-focus-tags .scene-focus-item{
  min-width:0;
  min-height:132px;
  max-width:none;
  padding:20px 12px 17px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:11px;
  border:0;
  border-radius:0;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
  color:#203049;
  text-align:center;
  white-space:normal;
  box-shadow:none;
  animation:focusItemIn .34s cubic-bezier(.2,.75,.25,1) both;
  animation-delay:var(--focus-delay,0ms);
}
.scene-focus-item-icon{
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#2563eb;
  background:#eaf2ff;
  box-shadow:inset 0 0 0 1px #d8e6ff;
}
.scene-focus-item-icon svg{
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.scene-focus-item-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
}
.scene-focus-item-copy strong{
  color:#17233a;
  font-size:14.5px;
  line-height:1.25;
  font-weight:800;
  white-space:nowrap;
}
.scene-focus-item-copy small{
  max-width:124px;
  color:#78859a;
  font-size:11.5px;
  line-height:1.5;
  font-weight:560;
}
@keyframes focusItemIn{
  from{opacity:0;transform:translateY(7px)}
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:980px){
  .scene-focus-tags{grid-template-columns:repeat(3,minmax(0,1fr))}
  .scene-focus-tags .scene-focus-item{min-height:124px}
}
@media(max-width:620px){
  .scene-focus-heading{align-items:flex-start}
  .scene-focus-tags{grid-template-columns:1fr;border-radius:16px}
  .scene-focus-tags .scene-focus-item{
    min-height:0;
    padding:14px 15px;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    gap:13px;
    text-align:left;
  }
  .scene-focus-item-icon{width:40px;height:40px;flex-basis:40px;border-radius:12px}
  .scene-focus-item-icon svg{width:21px;height:21px}
  .scene-focus-item-copy{align-items:flex-start;gap:2px}
  .scene-focus-item-copy strong{font-size:14px}
  .scene-focus-item-copy small{max-width:none;font-size:11.5px}
}
@media(prefers-reduced-motion:reduce){
  .scene-focus-tags .scene-focus-item{animation:none}
}

/* v0.8.4 — uniform five-point inspection cards */
.scene-focus{
  padding-top:20px;
  border-top:1px solid #e2e8f2;
}
.scene-focus-heading{
  margin-bottom:16px;
}
.scene-focus-copy small{
  color:#748197;
  font-size:12px;
  letter-spacing:.035em;
}
.scene-focus-copy strong{
  font-size:17px;
  letter-spacing:-.012em;
}
.scene-focus-count{
  padding:6px 11px;
  border-radius:999px;
  color:#2458c6;
  background:#edf4ff;
  border:1px solid #d9e7ff;
  font-size:12px;
}
.scene-focus-tags{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.scene-focus-tags .scene-focus-item{
  position:relative;
  min-width:0;
  min-height:150px;
  padding:18px 17px 17px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:18px;
  overflow:hidden;
  border:1px solid #dfe6f0;
  border-radius:18px;
  background:#fff;
  color:#203049;
  text-align:left;
  box-shadow:0 8px 24px rgba(27,54,93,.045);
  animation:focusCardIn .24s ease-out both;
  animation-delay:var(--focus-delay,0ms);
}
.scene-focus-tags .scene-focus-item::before{
  content:"";
  position:absolute;
  top:0;
  left:17px;
  right:17px;
  height:3px;
  border-radius:0 0 999px 999px;
  background:linear-gradient(90deg,#2563eb,#6b9cff);
}
.scene-focus-item-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.scene-focus-item-icon{
  width:44px;
  height:44px;
  flex:0 0 44px;
  border-radius:14px;
  color:#2563eb;
  background:#eef4ff;
  box-shadow:inset 0 0 0 1px #dbe7ff;
}
.scene-focus-item-index{
  color:#a2adbd;
  font-size:12px;
  line-height:1;
  font-weight:800;
  letter-spacing:.06em;
  font-variant-numeric:tabular-nums;
}
.scene-focus-item-copy{
  min-width:0;
  align-items:flex-start;
  gap:6px;
}
.scene-focus-item-copy strong{
  color:#17233a;
  font-size:15.5px;
  line-height:1.25;
  font-weight:820;
  white-space:nowrap;
}
.scene-focus-item-copy small{
  max-width:none;
  color:#748197;
  font-size:12px;
  line-height:1.55;
  font-weight:560;
}
@keyframes focusCardIn{
  from{opacity:0}
  to{opacity:1}
}
@media(max-width:1040px){
  .scene-focus-tags{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
  .scene-focus-tags{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .scene-focus-tags .scene-focus-item{min-height:136px;padding:16px 15px}
}
@media(max-width:470px){
  .scene-focus-tags{grid-template-columns:1fr}
  .scene-focus-tags .scene-focus-item{
    min-height:0;
    padding:14px 15px;
    display:grid;
    grid-template-columns:46px minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
  }
  .scene-focus-tags .scene-focus-item::before{
    top:13px;
    bottom:13px;
    left:0;
    right:auto;
    width:3px;
    height:auto;
    border-radius:0 999px 999px 0;
  }
  .scene-focus-item-top{display:contents}
  .scene-focus-item-icon{width:42px;height:42px;flex-basis:42px}
  .scene-focus-item-copy{grid-column:2;grid-row:1}
  .scene-focus-item-index{grid-column:3;grid-row:1}
  .scene-focus-item-copy strong{font-size:14.5px}
}
@media(prefers-reduced-motion:reduce){
  .scene-focus-tags .scene-focus-item{animation:none}
}

/* v0.9 — shared leading edge and compact five-item inspection rail */
/* Hero copy, scene heading and scene cards now share one leading alignment. */
.hero-v08{
  padding-left:0;
  padding-right:0;
}
.upload-stage{
  padding:50px 0 48px;
}
.upload-stage .stage-heading{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
}
.scene-picker,
.scene-choice-grid{
  width:100%;
  max-width:none;
}
.upload-after-scene{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  padding:20px;
}

/* Keep the five checks in one calm row on ordinary desktop widths. */
.scene-focus-tags{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}
.scene-focus-tags .scene-focus-item{
  min-height:92px;
  padding:14px;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  grid-template-rows:auto;
  align-items:center;
  gap:11px;
  border-radius:15px;
  box-shadow:none;
}
.scene-focus-tags .scene-focus-item::before{
  top:12px;
  bottom:12px;
  left:0;
  right:auto;
  width:3px;
  height:auto;
  border-radius:0 999px 999px 0;
}
.scene-focus-item-top{
  display:contents;
}
.scene-focus-item-icon{
  grid-column:1;
  grid-row:1;
  width:38px;
  height:38px;
  flex-basis:38px;
  border-radius:12px;
}
.scene-focus-item-icon svg{
  width:20px;
  height:20px;
}
.scene-focus-item-copy{
  grid-column:2;
  grid-row:1;
  min-width:0;
  gap:3px;
}
.scene-focus-item-copy strong{
  font-size:14px;
  line-height:1.25;
  white-space:nowrap;
}
.scene-focus-item-copy small{
  max-width:100%;
  overflow:hidden;
  color:#7a8699;
  font-size:11px;
  line-height:1.35;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.scene-focus-item-index{
  grid-column:3;
  grid-row:1;
  align-self:start;
  padding-top:3px;
  font-size:10px;
}

/* Reflow only when the viewport truly cannot support five readable items. */
@media(max-width:900px){
  .scene-focus-tags{grid-template-columns:repeat(2,minmax(0,1fr))}
  .scene-focus-tags .scene-focus-item{min-height:84px}
}
@media(max-width:620px){
  .hero-v08{padding-left:0;padding-right:0}
  .upload-stage{padding:30px 0 36px}
  .upload-after-scene{padding:16px}
  .scene-focus-tags{grid-template-columns:1fr}
  .scene-focus-tags .scene-focus-item{min-height:0}
  .scene-focus-item-copy small{white-space:normal;overflow:visible;text-overflow:clip}
}

/* =========================================================
   v0.9 — Quiet-tech product system
   Removes inherited separators, reduces template-like cards,
   and adds brief, purposeful feedback motion.
   ========================================================= */
:root{
  --bg:#f6f8fb;
  --surface:#ffffff;
  --text:#101828;
  --muted:#657086;
  --line:#e2e8f0;
  --brand:#2463eb;
  --brand-dark:#1749bd;
  --brand-soft:#eef4ff;
  --radius:16px;
  --shadow:0 22px 65px rgba(27,45,82,.075);
  --ease-premium:cubic-bezier(.22,.75,.2,1);
}
body{
  background:
    radial-gradient(900px 520px at 86% -90px,rgba(36,99,235,.105),transparent 68%),
    radial-gradient(720px 460px at -120px 22%,rgba(104,144,238,.065),transparent 70%),
    linear-gradient(180deg,#fafbfd 0%,#f6f8fb 56%,#f8fafc 100%);
}
.shell{width:min(1240px,calc(100% - 48px));padding-top:18px}
.topbar{
  min-height:70px;
  margin-bottom:28px;
  padding:0 2px 16px;
  border-bottom:1px solid rgba(207,216,230,.72);
}
.brand-mark{
  width:44px;height:44px;border-radius:13px;
  background:linear-gradient(145deg,#1f5de7,#3d76f3);
  box-shadow:0 10px 26px rgba(36,99,235,.18);
}
.brand strong{font-size:21px;letter-spacing:-.025em}
.brand small{font-size:13px;color:#7b8495}
.local-badge,.privacy-link{font-size:14px}

/* Editorial hero instead of a framed presentation slide. */
.hero-v08{
  position:relative;
  min-height:390px;
  margin:16px auto 40px;
  padding:42px 0 36px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.hero-v08::before{
  content:"";
  position:absolute;
  inset:12% 2% auto auto;
  width:420px;height:310px;
  border-radius:48% 52% 46% 54%;
  background:radial-gradient(circle at 45% 42%,rgba(36,99,235,.085),rgba(36,99,235,.02) 62%,transparent 72%);
  filter:blur(3px);
  pointer-events:none;
}
.hero-v08 h1{font-size:clamp(48px,5.3vw,72px);line-height:1.08;letter-spacing:-.055em}
.hero-v08 p{max-width:680px;font-size:17px;line-height:1.82}
.hero-points{margin-top:25px;gap:18px}
.hero-points span{font-size:13px;font-weight:720}
.hero-visual{position:relative;min-height:320px}
.hero-risk-chip{animation:none!important}
.hero-visual::after{
  content:"";
  position:absolute;
  left:14%;right:10%;top:45%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(36,99,235,.55),transparent);
  opacity:0;
  transform:translateY(-46px);
  animation:heroScanOnce 1.1s .35s var(--ease-premium) both;
  pointer-events:none;
}
@keyframes heroScanOnce{
  0%{opacity:0;transform:translateY(-62px)}
  18%{opacity:.55}
  82%{opacity:.28}
  100%{opacity:0;transform:translateY(74px)}
}

/* The stepper becomes a quiet navigation rail, not another card. */
.stepper{
  margin:10px auto 56px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  max-width:760px;
}
.step-number{box-shadow:none}
.step-line{height:1px;background:#d9e0ea}

.upload-stage{
  padding:10px 0 56px;
  border:0;
  background:transparent;
  box-shadow:none;
}
.stage-heading{text-align:left;max-width:780px;margin:0 0 30px}
.stage-heading h2{font-size:clamp(32px,3.2vw,44px);letter-spacing:-.035em}
.stage-heading p{font-size:16px;line-height:1.72}

/* Scene choices: calm product tiles with a crisp selected state. */
.scene-choice-grid{gap:14px}
.scene-choice-body{
  min-height:118px;
  padding:20px;
  border:1px solid rgba(214,222,234,.9);
  border-radius:14px;
  background:rgba(255,255,255,.72);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;
  transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s var(--ease-premium);
}
.scene-choice:hover .scene-choice-body{
  transform:translateY(-2px);
  border-color:#cbd8ee;
  background:#fff;
  box-shadow:0 14px 34px rgba(28,52,91,.065);
}
.scene-choice input:checked + .scene-choice-body{
  transform:translateY(-1px);
  border-color:rgba(36,99,235,.72);
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
  box-shadow:0 18px 42px rgba(36,99,235,.105),inset 0 0 0 1px rgba(36,99,235,.08);
  animation:sceneSettle .34s var(--ease-premium);
}
@keyframes sceneSettle{
  0%{transform:translateY(1px) scale(.992)}
  64%{transform:translateY(-2px) scale(1.004)}
  100%{transform:translateY(-1px) scale(1)}
}
.scene-icon{border-radius:12px}
.scene-choice strong{font-size:18px;letter-spacing:-.01em}
.scene-choice small{font-size:13.5px}

.upload-after-scene{
  position:relative;
  padding:24px;
  border:1px solid rgba(214,222,234,.9);
  border-radius:18px;
  background:rgba(255,255,255,.82);
  box-shadow:0 24px 70px rgba(25,47,83,.065);
  backdrop-filter:blur(16px);
}

/* Remove obsolete inherited separators that created the unexplained dots. */
.scene-focus-tags span+span::before,
.scene-focus-tags span+span:before{
  content:none!important;
  display:none!important;
  margin:0!important;
}

/* Risk rail: one continuous product surface rather than five PPT cards. */
.scene-focus{
  position:relative;
  padding:22px 22px 18px;
  overflow:hidden;
  border:1px solid #dfe7f2;
  border-radius:18px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(249,251,255,.96));
  box-shadow:0 14px 38px rgba(32,59,101,.055);
}
.scene-focus::before{
  content:"";
  position:absolute;
  inset:0 auto 0 -38%;
  width:34%;
  background:linear-gradient(100deg,transparent,rgba(76,126,241,.085),transparent);
  transform:skewX(-16deg);
  pointer-events:none;
  opacity:0;
}
.upload-after-scene.is-revealing .scene-focus::before{
  animation:riskSweep .9s .16s var(--ease-premium) both;
}
@keyframes riskSweep{
  0%{left:-38%;opacity:0}
  18%{opacity:1}
  100%{left:112%;opacity:0}
}
.scene-focus-heading{
  min-height:44px;
  margin-bottom:12px;
  padding-bottom:15px;
  border-bottom:1px solid #e7ecf3;
}
.scene-focus-icon{
  width:38px;height:38px;border-radius:11px;
  background:linear-gradient(145deg,#eef4ff,#e6efff);
}
.scene-focus-copy small{font-size:11.5px;color:#8490a3}
.scene-focus-copy strong{font-size:17px;letter-spacing:-.015em}
.scene-focus-count{padding:5px 9px;background:#f1f5fc;border-color:#e0e8f4;color:#4e6594}
.scene-focus-tags{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.scene-focus-tags .scene-focus-item{
  position:relative;
  min-width:0;
  min-height:104px;
  padding:17px 17px 15px;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  grid-template-rows:auto;
  gap:12px;
  align-items:center;
  overflow:visible;
  border:0;
  border-radius:12px;
  background:transparent;
  box-shadow:none;
  animation:riskItemReveal .34s var(--ease-premium) both;
  animation-delay:var(--focus-delay,0ms);
  transition:background .18s ease,transform .18s var(--ease-premium);
}
.scene-focus-tags .scene-focus-item + .scene-focus-item{
  border-left:1px solid #e7ecf3;
  border-radius:0;
}
.scene-focus-tags .scene-focus-item::before{content:none!important;display:none!important}
.scene-focus-tags .scene-focus-item:hover{
  z-index:1;
  transform:translateY(-2px);
  border-radius:12px;
  background:rgba(36,99,235,.045);
}
.scene-focus-item-top{display:contents}
.scene-focus-item-icon{
  grid-column:1;
  width:38px;height:38px;flex-basis:38px;
  border-radius:11px;
  background:#eff4ff;
  box-shadow:inset 0 0 0 1px #dfe9ff;
  transition:transform .18s var(--ease-premium),background .18s ease;
}
.scene-focus-item:hover .scene-focus-item-icon{transform:translateY(-1px) scale(1.035);background:#e8f0ff}
.scene-focus-item-index{display:none}
.scene-focus-item-copy{grid-column:2;min-width:0;gap:4px}
.scene-focus-item-copy strong{font-size:14.5px;line-height:1.25;white-space:nowrap;letter-spacing:-.01em}
.scene-focus-item-copy small{
  display:block;
  max-width:100%;
  overflow:hidden;
  color:#7c8798;
  font-size:11.5px;
  line-height:1.45;
  white-space:nowrap;
  text-overflow:ellipsis;
}
@keyframes riskItemReveal{
  from{opacity:0;transform:translateY(5px)}
  to{opacity:1;transform:none}
}

/* Product surfaces and actions: flatter, less deck-like. */
.workspace-stage,.stage{
  border-color:#e1e7ef;
  border-radius:16px;
  box-shadow:0 24px 70px rgba(25,47,83,.07);
}
.canvas-shell{border-radius:14px}
.guidance-card{border-radius:14px;box-shadow:none}
.btn{border-radius:10px;transition:transform .16s var(--ease-premium),box-shadow .16s ease,background .16s ease}
.btn:hover:not(:disabled){transform:translateY(-1px)}
.btn:active:not(:disabled){transform:translateY(0) scale(.985)}
.btn-primary{background:linear-gradient(180deg,#2d6cf0,#2059d9);box-shadow:0 11px 28px rgba(36,99,235,.2)}
.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#2563eb,#174fc9);box-shadow:0 14px 32px rgba(36,99,235,.24)}

@media(max-width:1050px){
  .scene-focus-tags{grid-template-columns:repeat(3,minmax(0,1fr))}
  .scene-focus-tags .scene-focus-item + .scene-focus-item{border-left:0}
  .scene-focus-tags .scene-focus-item:nth-child(2),
  .scene-focus-tags .scene-focus-item:nth-child(3),
  .scene-focus-tags .scene-focus-item:nth-child(5){border-left:1px solid #e7ecf3}
  .scene-focus-tags .scene-focus-item:nth-child(n+4){border-top:1px solid #e7ecf3}
}
@media(max-width:720px){
  .shell{width:min(100% - 24px,1240px)}
  .hero-v08{min-height:auto;margin-top:26px;padding:28px 0 26px}
  .hero-v08 h1{font-size:44px}
  .hero-visual::after{display:none}
  .stepper{margin-bottom:38px}
  .scene-focus{padding:18px 16px 14px}
  .scene-focus-tags{grid-template-columns:1fr}
  .scene-focus-tags .scene-focus-item,
  .scene-focus-tags .scene-focus-item:nth-child(n){
    min-height:76px;
    border-left:0;
    border-top:1px solid #e7ecf3;
  }
  .scene-focus-tags .scene-focus-item:first-child{border-top:0}
  .scene-focus-item-copy small{white-space:normal;overflow:visible;text-overflow:clip}
}
@media(prefers-reduced-motion:reduce){
  .hero-visual::after,
  .upload-after-scene.is-revealing .scene-focus::before,
  .scene-focus-tags .scene-focus-item,
  .scene-choice input:checked + .scene-choice-body{
    animation:none!important;
  }
  .scene-choice-body,.scene-focus-item,.scene-focus-item-icon,.btn{transition:none!important}
}

/* v0.9.1 — remove the outer scene-stage frame and harden mobile rendering */

/* The scene-selection section should read as page content, not as one oversized card. */
.stage.upload-stage,
.upload-stage.stage{
  padding:10px 0 56px;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.upload-stage .stage-heading,
.upload-stage .scene-picker,
.upload-stage .scene-choice-grid{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

/* Keep scanner decoration behind real content. */
.scene-focus{isolation:isolate}
.scene-focus::before{z-index:0}
.scene-focus-heading,
.scene-focus-tags{position:relative;z-index:1}

/* Avoid display:contents because embedded iOS/WebKit browsers can paint its grid children incorrectly. */
.scene-focus-item-top{
  display:flex!important;
  grid-column:1;
  grid-row:1;
  align-items:center;
  justify-content:center;
  min-width:0;
  position:relative;
  z-index:2;
}
.scene-focus-item-copy{
  grid-column:2;
  grid-row:1;
  min-width:0;
  overflow:visible;
  position:relative;
  z-index:2;
}
.scene-focus-item-copy strong,
.scene-focus-item-copy small{
  position:relative;
  z-index:2;
}

@media(max-width:720px){
  /* WeChat/iOS embedded browsers are more stable without a composited sweep over text. */
  .scene-focus{
    overflow:visible;
    padding:18px 16px 14px;
  }
  .scene-focus::before{display:none!important}
  .upload-after-scene.is-revealing .scene-focus::before{animation:none!important}
  .scene-focus-tags .scene-focus-item,
  .scene-focus-tags .scene-focus-item:nth-child(n){
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    grid-template-rows:auto;
    align-items:center;
    gap:14px;
    min-height:78px;
    padding:15px 4px;
    overflow:visible!important;
    transform:none!important;
    animation:none!important;
  }
  .scene-focus-item-top{
    display:flex!important;
    grid-column:1;
    grid-row:1;
    width:48px;
    min-width:48px;
    overflow:visible;
  }
  .scene-focus-item-icon{
    width:42px;
    height:42px;
    flex:0 0 42px;
  }
  .scene-focus-item-copy{
    display:block;
    grid-column:2;
    grid-row:1;
    width:100%;
    min-width:0;
    padding-left:0;
    overflow:visible!important;
  }
  .scene-focus-item-copy strong{
    display:block;
    margin:0 0 4px;
    padding:0;
    overflow:visible!important;
    white-space:normal;
    word-break:keep-all;
    line-height:1.34;
  }
  .scene-focus-item-copy small{
    display:block;
    margin:0;
    padding:0;
    overflow:visible!important;
    white-space:normal;
    text-overflow:clip;
    line-height:1.5;
  }
}


/* =========================================================
   v1.1 — interactive product experience
   ========================================================= */
:root{--nav-height:78px;--ink:#0e1728;--muted:#6a7488;--soft-blue:#eff5ff;--ease-out:cubic-bezier(.2,.78,.25,1)}
html{scroll-behavior:smooth;scroll-padding-top:112px}
body{background:
  radial-gradient(circle at 85% 3%,rgba(37,99,235,.055),transparent 25%),
  radial-gradient(circle at 2% 42%,rgba(96,165,250,.035),transparent 24%),#f7f8fb}
.shell{position:relative}
.topbar{position:sticky;top:0;z-index:50;height:var(--nav-height);margin:0 -18px 18px;padding:0 18px;background:rgba(247,248,251,.78);backdrop-filter:saturate(170%) blur(18px);-webkit-backdrop-filter:saturate(170%) blur(18px);border-bottom:1px solid rgba(210,218,232,.68);transition:box-shadow .25s ease,background .25s ease}
body.is-scrolled .topbar{background:rgba(255,255,255,.88);box-shadow:0 12px 32px rgba(17,24,39,.055)}
.product-nav{display:flex;align-items:center;gap:5px;margin-left:auto;margin-right:12px;padding:4px;border:1px solid rgba(218,224,234,.86);border-radius:999px;background:rgba(255,255,255,.66)}
.product-nav a{position:relative;padding:8px 13px;border-radius:999px;color:#687386;font-size:13px;font-weight:720;text-decoration:none;transition:color .2s ease,background .2s ease,transform .2s ease}
.product-nav a:hover{color:var(--brand);background:#fff;transform:translateY(-1px)}
.product-nav a.active{color:#fff;background:var(--brand);box-shadow:0 6px 16px rgba(37,99,235,.22)}
.top-actions{gap:12px}.live-dot,.demo-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.1)}
.nav-cta{border:0;border-radius:12px;background:#111827;color:#fff;padding:10px 15px;font-weight:760;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.nav-cta:hover{transform:translateY(-1px);background:#0b1220;box-shadow:0 8px 20px rgba(17,24,39,.16)}

.hero-v08{min-height:600px;grid-template-columns:minmax(0,.92fr) minmax(430px,.88fr);gap:64px;padding-top:42px;padding-bottom:64px}
.hero-v08::before{opacity:.6}.hero-copy{position:relative;z-index:2}.hero-v08 h1{max-width:690px;font-size:clamp(49px,5vw,70px)}
.hero-actions{display:flex;align-items:center;gap:14px;margin-top:30px}.hero-primary{min-width:168px;padding:15px 22px;border-radius:15px;font-size:16px;box-shadow:0 12px 25px rgba(37,99,235,.18)}
.hero-secondary{display:inline-flex;align-items:center;gap:9px;border:0;background:transparent;color:#26344d;padding:12px 8px;font-size:15px;font-weight:760;cursor:pointer}.hero-secondary:hover{color:var(--brand)}
.play-icon{display:grid;place-items:center;width:31px;height:31px;border:1px solid #d8e2f2;border-radius:50%;background:#fff;color:var(--brand);font-size:10px;box-shadow:0 6px 16px rgba(37,99,235,.08)}
.hero-points{margin-top:22px}.hero-points span{font-size:13.5px}
.hero-visual-v10{display:block;min-height:480px}.hero-demo{position:relative;width:min(100%,520px);margin:0 auto;padding:14px;border:1px solid rgba(199,211,229,.8);border-radius:30px;background:rgba(255,255,255,.78);box-shadow:0 30px 80px rgba(36,62,110,.12);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transform:perspective(1100px) rotateY(-2deg) rotateX(1deg);transition:transform .35s var(--ease-out),box-shadow .35s ease}
.hero-demo:hover{transform:perspective(1100px) rotateY(0) rotateX(0) translateY(-4px);box-shadow:0 35px 95px rgba(36,62,110,.16)}
.hero-demo::before{content:"";position:absolute;inset:-22px -28px auto auto;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.14),transparent 68%);z-index:-1}
.hero-demo-head,.hero-demo-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 6px 14px;color:#667085;font-size:12.5px}.hero-demo-head span{display:flex;align-items:center;gap:9px;font-weight:750;color:#344054}.hero-demo-head strong{font-size:12px;color:#5f6d82}.hero-demo-foot{padding:13px 6px 3px}.demo-trust{color:#2563eb;font-weight:720}
.privacy-compare{--reveal:56%;position:relative;height:405px;overflow:hidden;border-radius:22px;background:#eef3fb;box-shadow:inset 0 0 0 1px rgba(203,213,229,.7)}
.compare-layer{position:absolute;inset:0;display:grid;place-items:center;padding:28px}.compare-original{width:var(--reveal);overflow:hidden;border-right:0;background:linear-gradient(145deg,#fff 0%,#f7f9fd 100%);z-index:2}.compare-safe{background:linear-gradient(145deg,#edf5ff 0%,#f8fbff 100%)}
.mock-phone{width:330px;max-width:100%;padding:17px;border-radius:24px;background:#fff;box-shadow:0 20px 45px rgba(42,61,99,.13)}.mock-status{display:flex;justify-content:space-between}.mock-status span:first-child{width:45px}.mock-status span:last-child{width:30px}.mock-status span{height:5px;border-radius:99px;background:#d8deea}.mock-profile{display:flex;align-items:center;gap:11px;margin:17px 0 13px}.mock-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(145deg,#8bb1fb,#d7e6ff)}.mock-avatar.safe{background:linear-gradient(145deg,#d7deea,#eef2f7)}.mock-profile b,.mock-profile small{display:block}.mock-profile b{font-size:13px}.mock-profile small{margin-top:3px;color:#98a2b3;font-size:10.5px}.mock-photo{position:relative;border-radius:18px;overflow:hidden}.mock-photo svg{display:block;width:100%}.mock-lines{display:grid;gap:8px;margin-top:14px}.mock-lines span{height:8px;border-radius:99px;background:#e8edf5}.mock-lines span:nth-child(1){width:82%}.mock-lines span:nth-child(2){width:64%}.mock-lines span:nth-child(3){width:42%}.original-lines span{height:auto;background:transparent;color:#667085;font-size:10.5px}.safe-shield{position:absolute;right:16px;bottom:15px;display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:#2563eb;color:#fff;font-size:23px;font-weight:900;box-shadow:0 12px 25px rgba(37,99,235,.28)}.risk-box{position:absolute;padding:5px 8px;border:1.5px solid;border-radius:8px;background:rgba(255,255,255,.9);font-size:9.5px;font-weight:800;box-shadow:0 4px 12px rgba(15,23,42,.08)}.risk-name{left:18px;top:16px;color:#dc2626;border-color:#fca5a5}.risk-location{left:20px;bottom:14px;color:#d97706;border-color:#fdba74}.risk-code{right:15px;bottom:15px;color:#dc2626;border-color:#fca5a5}
.compare-divider{position:absolute;top:0;bottom:0;left:var(--reveal);z-index:4;width:2px;background:#fff;box-shadow:0 0 0 1px rgba(37,99,235,.22),0 0 22px rgba(37,99,235,.3);pointer-events:none}.compare-divider span{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff;color:#2563eb;font-size:15px;font-weight:900;transform:translate(-50%,-50%);box-shadow:0 8px 24px rgba(37,99,235,.22)}
.compare-range{position:absolute;inset:0;z-index:5;width:100%;height:100%;opacity:0;cursor:ew-resize}.compare-label{position:absolute;top:14px;z-index:3;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.9);font-size:10px;font-weight:800;box-shadow:0 5px 14px rgba(15,23,42,.07)}.label-original{left:14px;color:#dc2626}.label-safe{right:14px;color:#2563eb}

.stepper-v10{position:sticky;top:calc(var(--nav-height) + 10px);z-index:35;max-width:880px;background:rgba(255,255,255,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 13px 30px rgba(30,45,80,.08)}.stepper-label{margin-right:7px;color:#98a2b3;font-size:11px;font-weight:800;letter-spacing:.08em;white-space:nowrap}
.scene-choice-body{position:relative;overflow:hidden}.scene-choice-body::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 34%,rgba(255,255,255,.7) 50%,transparent 66%);transform:translateX(-110%);transition:transform .65s ease;pointer-events:none}.scene-choice:hover .scene-choice-body::before{transform:translateX(110%)}.scene-choice input:checked + .scene-choice-body{box-shadow:0 15px 34px rgba(37,99,235,.12)}.scene-choice input:checked + .scene-choice-body .scene-icon{animation:scenePulse .5s var(--ease-out)}
@keyframes scenePulse{0%{transform:scale(.86)}65%{transform:scale(1.08)}100%{transform:scale(1)}}
.scene-focus-item{cursor:default}.scene-focus-item-icon{transition:transform .25s var(--ease-out),background .25s ease}.scene-focus-item:hover .scene-focus-item-icon{transform:translateY(-2px) rotate(-3deg) scale(1.05)}

.result-score-ring{--score:0;position:relative;width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ring-color,#ef4444) calc(var(--score)*1%),#edf1f6 0);padding:5px}.result-score-ring::before{content:"";position:absolute;inset:6px;border-radius:50%;background:#fff}.result-score-ring>div{position:relative;z-index:1;text-align:center}.result-score-ring strong{display:block;font-size:23px;line-height:1}.result-score-ring span{display:block;margin-top:4px;font-size:9px;color:#7b8495}.result-banner.medium .result-score-ring{--ring-color:#f59e0b}.result-banner.low .result-score-ring{--ring-color:#2563eb}

.reveal-section{opacity:0;transform:translateY(18px);transition:opacity .65s var(--ease-out),transform .65s var(--ease-out)}.reveal-section.is-visible{opacity:1;transform:none}
.back-to-top{position:fixed;right:22px;bottom:24px;z-index:45;width:44px;height:44px;border:1px solid #d9e2ef;border-radius:14px;background:rgba(255,255,255,.9);color:#344054;font-size:20px;cursor:pointer;box-shadow:0 12px 28px rgba(15,23,42,.11);opacity:0;pointer-events:none;transform:translateY(10px);transition:.25s ease}.back-to-top.show{opacity:1;pointer-events:auto;transform:none}.back-to-top:hover{color:#fff;background:#2563eb;border-color:#2563eb;transform:translateY(-2px)}

@media(max-width:1050px){.product-nav{display:none}.hero-v08{grid-template-columns:1fr;min-height:auto}.hero-copy{text-align:center;margin:0 auto}.hero-actions,.hero-points{justify-content:center}.hero-visual-v10{min-height:auto}.hero-demo{max-width:560px;transform:none}.stepper-v10{top:82px}}
@media(max-width:720px){:root{--nav-height:66px}.topbar{height:66px;margin-left:-12px;margin-right:-12px;padding:0 12px}.top-actions .privacy-link,.nav-cta{display:none}.hero-v08{padding-top:20px;gap:28px}.hero-v08 h1{font-size:clamp(39px,12vw,54px)}.hero-v08 p{font-size:15.5px;line-height:1.72}.hero-actions{flex-direction:column;align-items:stretch}.hero-primary{width:100%}.hero-secondary{justify-content:center}.hero-points{gap:9px 14px}.hero-demo{padding:10px;border-radius:22px}.privacy-compare{height:340px;border-radius:17px}.mock-phone{width:285px;padding:14px}.hero-demo-head,.hero-demo-foot{font-size:11.5px}.demo-trust{display:none}.stepper-v10{top:72px;overflow-x:auto;justify-content:flex-start;max-width:none;margin-inline:-5px;padding-inline:10px}.stepper-label{display:none}.step-line{min-width:20px}.step{min-width:max-content}.back-to-top{right:14px;bottom:16px}}
@media(max-width:430px){.privacy-compare{height:308px}.compare-layer{padding:20px}.mock-phone{width:245px}.hero-demo-foot span:first-child{font-size:10.5px}.local-badge{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-demo,.scene-choice-body::before,.scene-icon,.reveal-section,.back-to-top{animation:none!important;transition:none!important}.reveal-section{opacity:1!important;transform:none!important}}

/* v1.1 final layout refinements */
.stepper-v10{display:grid;grid-template-columns:auto minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr);align-items:center;gap:8px;max-width:980px}
.stepper-v10 .step{min-width:0}
.stepper-v10 .step-line{width:100%;min-width:24px}
@media(max-width:720px){
  .hero-v08 h1{font-size:36px;white-space:nowrap;letter-spacing:-.045em}
  .stepper-v10{display:flex;max-width:none}
}
@media(max-width:370px){.hero-v08 h1{font-size:33px}}

/* v1.1 — differentiated actions, video onboarding and borderless live progress */
.hero-subtitle{max-width:none;white-space:nowrap;font-size:15.5px;letter-spacing:-.01em}
.nav-cta-outline{display:inline-flex;align-items:center;gap:7px;background:#fff;color:#1d4ed8;border:1px solid #bfd0f4;box-shadow:none}
.nav-cta-outline:hover{background:#eff5ff;border-color:#8fb0f2;color:#1745b5;transform:translateY(-1px)}
.nav-cta-outline span{font-size:17px;line-height:1;transition:transform .3s var(--ease-out)}
.nav-cta-outline:hover span{transform:rotate(100deg)}
.hero-secondary .play-icon{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e8f0ff;color:#2563eb;font-size:10px;transition:transform .25s ease,background .25s ease}
.hero-secondary:hover .play-icon{transform:scale(1.08);background:#dce8ff}

/* Progress becomes a live rail rather than a floating card. */
.stepper-v11{position:sticky;top:calc(var(--nav-height) + 8px);z-index:35;margin-bottom:46px;padding:11px 0;background:rgba(247,249,252,.88);border:0!important;border-radius:0!important;box-shadow:none!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.stepper-v11::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#d9e2ef 10%,#d9e2ef 90%,transparent)}
.stepper-v11 .stepper-label{display:inline-flex;align-items:center;gap:7px;color:#667085;font-size:12px}
.stepper-v11 .stepper-label i{width:7px;height:7px;border-radius:50%;background:#2563eb;box-shadow:0 0 0 5px rgba(37,99,235,.09)}
.stepper-v11 .step{position:relative;background:transparent;border:0;transition:color .25s ease}
.stepper-v11 .step-number{position:relative;z-index:2;background:#fff;border:1px solid #cfd8e6;color:#7b8495;box-shadow:0 2px 7px rgba(15,23,42,.04);transition:.3s var(--ease-out)}
.stepper-v11 .step.current .step-number{background:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 0 0 7px rgba(37,99,235,.1)}
.stepper-v11 .step.current .step-number::after{content:"";position:absolute;inset:-8px;border:1px solid rgba(37,99,235,.22);border-radius:50%;animation:progressPulse 1.8s ease-out infinite}
.stepper-v11 .step.done .step-number{background:#e7f0ff;border-color:#b8cdf8;color:#1d4ed8}
.stepper-v11 .step-line{height:2px;border-radius:99px;background:#dbe3ee;overflow:hidden;transition:background .45s ease}
.stepper-v11 .step.done + .step-line{background:#2563eb}
.stepper-v11 .step.current strong{color:#1d4ed8}
@keyframes progressPulse{0%{transform:scale(.84);opacity:.7}80%,100%{transform:scale(1.35);opacity:0}}

/* Experience and principle overlays */
body.modal-open{overflow:hidden}
.experience-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px}
.experience-modal[hidden]{display:none!important}
.modal-backdrop{position:absolute;inset:0;border:0;background:rgba(10,18,35,.58);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:default;animation:modalFade .22s ease both}
.experience-dialog{position:relative;z-index:1;width:min(940px,100%);max-height:min(90vh,900px);overflow:auto;border:1px solid rgba(213,223,238,.9);border-radius:26px;background:#fff;box-shadow:0 30px 90px rgba(15,23,42,.22);padding:24px;animation:modalRise .35s var(--ease-out) both}
.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.modal-heading h2{margin:5px 0 0;font-size:27px;letter-spacing:-.035em}
.modal-kicker{color:#2563eb;font-size:12px;font-weight:800;letter-spacing:.08em}
.modal-close{width:40px;height:40px;border:1px solid #dce3ed;border-radius:13px;background:#fff;color:#667085;font-size:26px;line-height:1;cursor:pointer;transition:.2s ease}
.modal-close:hover{background:#f4f7fb;color:#101828;transform:rotate(5deg)}
.demo-video-shell{overflow:hidden;border-radius:20px;background:#0b1220;aspect-ratio:16/9;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.demo-video-shell video{display:block;width:100%;height:100%;object-fit:contain;background:#0b1220}
.demo-chapters{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px}
.demo-chapters button{border:1px solid #dce4ef;border-radius:12px;background:#f8fafc;color:#475467;padding:10px 7px;font-size:12px;font-weight:700;cursor:pointer;transition:.2s ease}
.demo-chapters button:hover,.demo-chapters button.active{border-color:#9ebaf1;background:#edf4ff;color:#1d4ed8;transform:translateY(-1px)}
.modal-footer-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}
.modal-footer-actions small{color:#7b8495}
.modal-footer-actions>a{color:#2563eb;font-weight:700;text-decoration:none}

.principle-dialog{width:min(1030px,100%)}
.principle-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:14px;align-items:center;margin:8px 0 24px}
.principle-flow article{display:flex;gap:14px;min-height:128px;padding:20px;border:1px solid #dde5f0;border-radius:18px;background:#fbfcfe}
.principle-flow article strong{display:block;font-size:18px;margin-bottom:8px}
.principle-flow article p{margin:0;color:#667085;font-size:14px;line-height:1.65}
.principle-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:13px;background:#eaf1ff;color:#1d4ed8;font-size:13px;font-weight:900}
.principle-arrow{color:#9aabc1;font-size:24px}
.principle-visual{position:relative;display:grid;grid-template-columns:1fr 1.25fr 1fr;align-items:center;gap:22px;min-height:190px;padding:28px;border-radius:22px;background:#f5f8fd;overflow:hidden}
.data-source,.data-result{position:relative;z-index:2;min-height:114px;border:1px solid #d9e3f2;border-radius:19px;background:#fff;padding:20px}
.data-source span,.data-result span{display:block;font-weight:800;margin-bottom:16px}
.data-source i{display:block;width:80%;height:10px;margin:10px 0;border-radius:99px;background:#dfe6f0}.data-source i:nth-child(3){width:58%}.data-source i:nth-child(4){width:72%}
.local-engine{position:relative;z-index:2;display:grid;place-items:center;height:128px;border:1px solid #a9c3f6;border-radius:22px;background:#fff;color:#1d4ed8;overflow:hidden}
.local-engine b{position:relative;z-index:3;font-size:21px}.engine-scan{position:absolute;inset:-20% auto -20% -35%;width:36%;background:linear-gradient(90deg,transparent,rgba(37,99,235,.18),transparent);transform:skewX(-14deg);animation:engineScan 2.7s ease-in-out infinite}
.data-result b{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#dcfce9;color:#12805c;font-size:27px}
.principle-visual::before,.principle-visual::after{content:"";position:absolute;top:50%;height:2px;background:linear-gradient(90deg,#b8cae8,#2563eb);width:21%;z-index:1}.principle-visual::before{left:25%}.principle-visual::after{right:25%}
.principle-points{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:16px}.principle-points span{padding:7px 12px;border-radius:999px;background:#eef4ff;color:#315ea9;font-size:12px;font-weight:750}
@keyframes engineScan{0%{left:-35%}55%,100%{left:115%}}
@keyframes modalFade{from{opacity:0}to{opacity:1}}
@keyframes modalRise{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}

/* Additional responsive and interaction polish */
.scene-choice-body{transition:border-color .24s ease,background .24s ease,box-shadow .24s ease,transform .24s var(--ease-out)}
.scene-choice:hover .scene-choice-body{transform:translateY(-3px)}
.scene-choice input:checked + .scene-choice-body{transform:translateY(-2px)}
.dropzone{transition:border-color .25s ease,background .25s ease,transform .25s var(--ease-out)}
.upload-after-scene.is-revealing .dropzone{animation:dropzoneReady .65s var(--ease-out) .18s both}
@keyframes dropzoneReady{0%{transform:translateY(6px);box-shadow:0 0 0 0 rgba(37,99,235,0)}65%{box-shadow:0 0 0 8px rgba(37,99,235,.07)}100%{transform:none;box-shadow:none}}
.btn-primary{position:relative;overflow:hidden}.btn-primary::after{content:"";position:absolute;top:-60%;bottom:-60%;left:-40%;width:24%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transform:skewX(-18deg);transition:left .6s ease}.btn-primary:hover::after{left:120%}

@media(max-width:1100px){.hero-subtitle{white-space:normal}.principle-flow{grid-template-columns:1fr}.principle-arrow{display:none}.principle-flow article{min-height:auto}}
@media(max-width:720px){
  .stepper-v11{top:70px;margin-inline:-10px;padding:9px 10px;background:rgba(247,249,252,.94)}
  .stepper-v11::before{left:10px;right:10px}
  .experience-modal{padding:10px}.experience-dialog{padding:17px;border-radius:21px;max-height:92vh}.modal-heading h2{font-size:21px}.modal-close{width:36px;height:36px}
  .demo-chapters{grid-template-columns:repeat(2,1fr)}.demo-chapters button:last-child{grid-column:1/-1}
  .modal-footer-actions{align-items:stretch;flex-direction:column}.modal-footer-actions .btn{width:100%}.modal-footer-actions small{text-align:center}
  .principle-visual{grid-template-columns:1fr;gap:10px;padding:18px}.principle-visual::before,.principle-visual::after{display:none}.data-source,.data-result{min-height:auto}.local-engine{height:100px}
}
@media(prefers-reduced-motion:reduce){.stepper-v11 .step.current .step-number::after,.engine-scan,.upload-after-scene.is-revealing .dropzone{animation:none!important}.experience-dialog,.modal-backdrop{animation:none!important}}
