:root {
    --ink: #172038;
    --muted: #667086;
    --line: #dfe3ef;
    --paper: #fbfaf6;
    --white: #ffffff;
    --indigo: #5b5bd6;
    --indigo-dark: #3f3e9f;
    --indigo-soft: #efefff;
    --important: #b7597c;
    --important-soft: #fff0f5;
    --strength: #2f7f76;
    --strength-soft: #eaf8f4;
    --like: #b77724;
    --like-soft: #fff5df;
    --danger: #ad3f52;
    --shadow-sm: 0 10px 34px rgba(31, 38, 74, 0.08);
    --shadow-lg: 0 28px 80px rgba(31, 38, 74, 0.18);
    --radius-lg: 28px;
    --radius-md: 18px;
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body {
    min-height: 100vh;
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    line-height: 1.65;
}
button, textarea { font: inherit; }
button { color: inherit; }
button:focus-visible, a:focus-visible, summary:focus-visible, textarea:focus-visible {
    outline: 3px solid rgba(91, 91, 214, 0.34);
    outline-offset: 3px;
}
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 200; padding: 8px 12px; color: #fff; background: var(--indigo-dark); border-radius: 8px; transform: translateY(-150%); }
.skip-link:focus { transform: none; }

.sky { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.glow { position: absolute; width: 480px; height: 480px; border-radius: 50%; filter: blur(18px); opacity: .42; }
.glow-a { top: -240px; right: -110px; background: radial-gradient(circle, #cdd0ff, transparent 68%); }
.glow-b { bottom: -270px; left: -170px; background: radial-gradient(circle, #ffe0bd, transparent 68%); }
.star { position: absolute; width: 4px; height: 4px; background: var(--indigo); border-radius: 50%; opacity: .28; box-shadow: 0 0 12px rgba(91,91,214,.5); }
.star-a { top: 16%; left: 7%; }.star-b { top: 10%; right: 18%; }.star-c { top: 62%; right: 8%; }.star-d { bottom: 12%; left: 16%; }

.app-header { position: sticky; top: 0; z-index: 40; border-bottom: 1px solid rgba(223, 227, 239, .8); background: rgba(251,250,246,.86); backdrop-filter: blur(16px); }
.header-inner { display: flex; align-items: center; gap: 28px; width: min(1180px, calc(100% - 40px)); min-height: 76px; margin: 0 auto; }
.brand { display: inline-flex; align-items: center; gap: 11px; color: inherit; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 36px; height: 36px; color: #fff; background: linear-gradient(145deg, #7776ed, #4544b1); border-radius: 12px; box-shadow: 0 8px 18px rgba(76,75,178,.24); }
.brand strong, .brand small { display: block; line-height: 1.2; }
.brand strong { font-size: 15px; letter-spacing: .08em; }
.brand small { margin-top: 3px; color: var(--muted); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.header-progress { flex: 1; max-width: 460px; margin: 0 auto; }
.progress-copy { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 7px; color: var(--muted); font-size: 11px; }
.progress-copy span:first-child { color: var(--ink); font-weight: 750; }
.progress-track { height: 4px; overflow: hidden; background: #e6e6ee; border-radius: 999px; }
.progress-track span { display: block; width: 25%; height: 100%; background: linear-gradient(90deg, var(--indigo), #8f73de); border-radius: inherit; transition: width 240ms ease; }
.quiet-button, .text-button, .icon-button { border: 0; background: none; cursor: pointer; }
.quiet-button { padding: 8px 10px; color: var(--muted); font-size: 11px; }
.quiet-button:hover, .text-button:hover { color: var(--indigo-dark); }

.main-shell { width: min(1120px, calc(100% - 40px)); min-height: calc(100vh - 150px); margin: 0 auto; }
.step { padding: 78px 0 54px; animation: reveal 300ms ease both; }
@keyframes reveal { from { opacity: 0; transform: translateY(10px); } }

.hero-grid { display: grid; grid-template-columns: minmax(0, 1.22fr) minmax(360px, .78fr); gap: 64px; align-items: center; }
.eyebrow, .card-kicker, .step-number, .result-overline { margin: 0; color: var(--indigo-dark); font-size: 11px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.eyebrow span { margin-right: 6px; }
.hero-copy h1 { max-width: 760px; margin: 18px 0 22px; font-family: ui-serif, Georgia, "Songti SC", serif; font-size: clamp(42px, 5.3vw, 68px); font-weight: 650; letter-spacing: -.045em; line-height: 1.08; }
.hero-copy h1 em { color: var(--indigo); font-style: normal; }
.hero-lead { max-width: 700px; margin: 0 0 30px; color: #4f586d; font-size: 17px; line-height: 1.9; }
.trust-line { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 18px 0 0; color: var(--muted); font-size: 11px; }
.trust-line span::before { content: "✓"; margin-right: 6px; color: var(--strength); font-weight: 800; }

.primary-button, .secondary-button { min-height: 46px; padding: 11px 20px; border-radius: 13px; font-weight: 750; cursor: pointer; transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease; }
.primary-button { color: #fff; background: linear-gradient(145deg, #6665dd, #4a49b3); border: 1px solid #4a49b3; box-shadow: 0 10px 24px rgba(76,75,178,.2); }
.primary-button:hover { transform: translateY(-1px); box-shadow: 0 13px 28px rgba(76,75,178,.26); }
.primary-button.large { min-height: 54px; padding-inline: 25px; }
.primary-button:disabled { opacity: .56; cursor: wait; transform: none; }
.secondary-button { color: var(--ink); background: #fff; border: 1px solid var(--line); }
.secondary-button:hover { border-color: #b8bbd8; background: #fafaff; }
.text-button { padding: 8px; color: var(--muted); font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.text-button.danger:hover { color: var(--danger); }

.method-card { min-height: 445px; padding: 28px; background: rgba(255,255,255,.72); border: 1px solid rgba(214,216,234,.9); border-radius: 32px; box-shadow: var(--shadow-sm); }
.method-card > p:last-child { margin: 26px 0 0; color: var(--muted); font-size: 12px; text-align: center; }
.orbit-visual { position: relative; width: min(100%, 330px); aspect-ratio: 1; margin: 0 auto; }
.orbit-line { position: absolute; inset: 17%; border: 1px solid #cfd1e8; border-radius: 50%; transform: rotate(-16deg); }
.orbit-line::after { content: ""; position: absolute; inset: 18%; border: 1px dashed #dcddeb; border-radius: 50%; }
.orbit-core { position: absolute; top: 50%; left: 50%; display: grid; place-items: center; width: 104px; height: 104px; color: #fff; background: radial-gradient(circle at 36% 30%, #8f8ef4, #4d4bae 72%); border: 10px solid rgba(239,239,255,.9); border-radius: 50%; font-family: ui-serif, Georgia, "Songti SC", serif; font-size: 17px; text-align: center; transform: translate(-50%, -50%); box-shadow: 0 15px 34px rgba(76,75,178,.25); }
.orbit-node { position: absolute; display: grid; place-items: center; width: 86px; height: 86px; background: #fff; border: 1px solid var(--line); border-radius: 50%; text-align: center; box-shadow: 0 8px 24px rgba(31,38,74,.1); }
.orbit-node b, .orbit-node small { display: block; line-height: 1.25; }
.orbit-node small { color: var(--muted); font-size: 9px; }
.node-important { top: 6%; left: 3%; color: var(--important); }.node-strength { top: 19%; right: -1%; color: var(--strength); }.node-like { bottom: 0; left: 21%; color: var(--like); }

.intro-notes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 62px; }
.intro-notes article { position: relative; padding: 23px 23px 22px; background: rgba(255,255,255,.68); border: 1px solid var(--line); border-radius: var(--radius-md); }
.intro-notes article > span { color: #a5a9bb; font-size: 10px; font-weight: 800; letter-spacing: .15em; }
.intro-notes h2 { margin: 8px 0 5px; font-size: 16px; }
.intro-notes p { margin: 0; color: var(--muted); font-size: 12px; }
.disclosure { margin-top: 16px; padding: 15px 20px; background: rgba(255,255,255,.58); border: 1px solid var(--line); border-radius: 15px; }
.disclosure summary { cursor: pointer; color: var(--muted); font-size: 12px; font-weight: 700; }
.disclosure-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 14px; color: var(--muted); font-size: 11px; }
.disclosure-grid p { margin: 0; }

.question-step { min-height: calc(100vh - 126px); padding-top: clamp(52px, 8vw, 96px); }
.question-shell { width: min(790px, 100%); margin: 0 auto; }
.question-heading { margin-bottom: 30px; }
.dimension-name { margin: 12px 0 7px; color: var(--muted); font-size: 13px; font-weight: 700; }
.question-heading h1 { margin: 0; font-family: ui-serif, Georgia, "Songti SC", serif; font-size: clamp(28px, 4vw, 42px); font-weight: 650; letter-spacing: -.025em; line-height: 1.4; }
.question-heading > p:last-child { max-width: 700px; margin: 18px 0 0; color: var(--muted); font-size: 14px; }
.answer-field { display: block; padding: 5px; background: #fff; border: 1px solid #d8dbea; border-radius: 21px; box-shadow: var(--shadow-sm); transition: border 160ms ease, box-shadow 160ms ease; }
.answer-field:focus-within { border-color: #a6a8e6; box-shadow: 0 15px 42px rgba(70,70,150,.12); }
.answer-field textarea { display: block; width: 100%; min-height: 250px; padding: 22px 22px 8px; resize: vertical; color: var(--ink); background: transparent; border: 0; outline: 0; font-size: 16px; line-height: 1.9; }
.answer-field textarea::placeholder { color: #a9adba; }
.answer-footer { display: flex; justify-content: space-between; gap: 14px; padding: 10px 17px 12px; color: #9297a8; font-size: 10px; }
.step-actions { display: flex; justify-content: space-between; gap: 14px; margin-top: 22px; }

.analysis-step { display: grid; place-items: center; min-height: calc(100vh - 126px); }
.analysis-card { width: min(650px, 100%); padding: 44px; text-align: center; background: rgba(255,255,255,.74); border: 1px solid var(--line); border-radius: 30px; box-shadow: var(--shadow-lg); }
.analysis-card h1 { margin: 14px 0 15px; font-family: ui-serif, Georgia, "Songti SC", serif; font-size: clamp(29px, 4vw, 41px); font-weight: 650; line-height: 1.35; }
.analysis-card > p:not(.step-number) { margin: 0 auto; max-width: 550px; color: var(--muted); font-size: 13px; }
.constellation-loader { position: relative; width: 126px; height: 86px; margin: 0 auto 22px; }
.constellation-loader span { position: absolute; width: 15px; height: 15px; background: var(--indigo); border: 4px solid var(--indigo-soft); border-radius: 50%; box-shadow: 0 0 16px rgba(91,91,214,.4); animation: pulse 1.6s ease-in-out infinite; }
.constellation-loader span:nth-child(1) { top: 52px; left: 0; }.constellation-loader span:nth-child(2) { top: 6px; left: 54px; animation-delay: .22s; }.constellation-loader span:nth-child(3) { top: 46px; right: 0; animation-delay: .44s; }
.constellation-loader i, .constellation-loader i::after { position: absolute; height: 1px; background: #a8aae0; transform-origin: left center; }
.constellation-loader i { top: 59px; left: 13px; width: 65px; transform: rotate(-39deg); }.constellation-loader i::after { content: ""; left: 61px; width: 65px; transform: rotate(70deg); }
@keyframes pulse { 50% { transform: scale(1.25); opacity: .7; } }
.analysis-points { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 25px 0 17px; }
.analysis-points span { padding: 6px 10px; color: var(--indigo-dark); background: var(--indigo-soft); border-radius: 999px; font-size: 10px; font-weight: 750; }

.result-step { width: min(980px, 100%); margin: 0 auto; padding-top: 56px; }
.result-hero { position: relative; padding: clamp(34px, 6vw, 64px); overflow: hidden; color: #f7f6ff; background: radial-gradient(circle at 80% 15%, rgba(157,137,245,.55), transparent 28%), linear-gradient(145deg, #26255f, #49469c 55%, #6253a5); border-radius: 34px; box-shadow: var(--shadow-lg); }
.result-hero::after { content: "✦"; position: absolute; right: 7%; bottom: -50px; color: rgba(255,255,255,.08); font-size: 220px; line-height: 1; }
.result-overline { color: #d8d5ff; }
.result-kicker { margin: 27px 0 8px; color: rgba(255,255,255,.7); font-size: 13px; font-weight: 700; }
.result-hero h1 { position: relative; z-index: 1; max-width: 790px; margin: 0; font-family: ui-serif, Georgia, "Songti SC", serif; font-size: clamp(29px, 4.6vw, 50px); font-weight: 650; letter-spacing: -.025em; line-height: 1.5; }
.latent-insight { position: relative; z-index: 1; display: grid; grid-template-columns: auto 1fr; gap: 17px; align-items: start; max-width: 780px; margin-top: 34px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.18); }
.latent-insight span { padding: 5px 9px; color: #37326e; background: #e7ddff; border-radius: 999px; font-size: 10px; font-weight: 800; }
.latent-insight p { margin: 1px 0 0; color: #e9e7ff; font-size: 14px; }
.takeaway-section, .inner-standards { margin-top: 52px; }
.section-heading { margin-bottom: 18px; }
.section-heading h2 { margin: 7px 0 0; font-size: 24px; }
.takeaway-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.takeaway-card { display: grid; grid-template-columns: auto 1fr; gap: 15px; padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow-sm); }
.takeaway-card.share { background: linear-gradient(145deg, #f4f1ff, #fff); border-color: #d9d5f5; }
.takeaway-icon { display: grid; place-items: center; width: 44px; height: 44px; color: var(--indigo-dark); background: var(--indigo-soft); border-radius: 13px; font-size: 20px; }
.takeaway-card h3 { margin: 0; font-size: 17px; }.takeaway-card p { margin: 5px 0 20px; color: var(--muted); font-size: 12px; }.takeaway-card button { grid-column: 1 / -1; width: 100%; }
.standards-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.standard-card { min-height: 190px; padding: 23px; background: #fff; border: 1px solid var(--line); border-radius: 21px; }
.standard-card.motive { background: linear-gradient(160deg, var(--indigo-soft), #fff 72%); }.standard-card.like { background: linear-gradient(160deg, var(--like-soft), #fff 72%); }.standard-card.strength { background: linear-gradient(160deg, var(--strength-soft), #fff 72%); }.standard-card.important { background: linear-gradient(160deg, var(--important-soft), #fff 72%); }
.standard-card span { color: var(--muted); font-size: 11px; font-weight: 700; }.standard-card h3 { margin: 17px 0 11px; font-family: ui-serif, Georgia, "Songti SC", serif; font-size: 20px; line-height: 1.55; }.standard-card p { margin: 0; color: #9398a8; font-size: 10px; }
.result-details { margin-top: 38px; background: #fff; border: 1px solid var(--line); border-radius: 23px; overflow: hidden; }
.result-details details + details { border-top: 1px solid var(--line); }
.result-details summary { display: flex; justify-content: space-between; gap: 16px; padding: 21px 24px; cursor: pointer; list-style: none; font-weight: 800; }
.result-details summary::-webkit-details-marker { display: none; }.result-details summary::after { content: "+"; margin-left: auto; color: var(--muted); }.result-details details[open] summary::after { content: "−"; }
.result-details summary small { margin-left: auto; color: var(--muted); font-size: 11px; font-weight: 500; }
.evidence-list, .boundary-content { padding: 0 24px 24px; }
.pattern-explanation { margin: 0; padding: 0 24px 18px; color: #3c4559; font-family: ui-serif, Georgia, "Songti SC", serif; font-size: 16px; line-height: 1.8; }
.evidence-item { display: grid; grid-template-columns: 92px 1fr; gap: 16px; padding: 17px 0; border-top: 1px dashed #e5e7ef; }
.evidence-item:first-child { border-top: 0; }
.evidence-item span { color: var(--indigo-dark); font-size: 11px; font-weight: 800; }.evidence-item blockquote { margin: 0; color: #3c4559; font-size: 13px; }.evidence-item p { margin: 6px 0 0; color: var(--muted); font-size: 11px; }
.boundary-content p { margin: 0; color: var(--muted); font-size: 13px; }.boundary-content p + p { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line); }
.result-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; margin-top: 26px; }

footer { padding: 26px 20px 34px; color: #8992a3; font-size: 11px; text-align: center; }
footer a { color: inherit; text-decoration: none; transition: color 160ms ease; }
footer a:hover { color: var(--indigo-dark); }
footer a:focus-visible { border-radius: 4px; outline: 2px solid var(--indigo); outline-offset: 4px; }

.artifact-dialog { width: min(1000px, calc(100% - 28px)); max-height: calc(100vh - 28px); padding: 0; overflow: auto; color: var(--ink); background: #f5f4f0; border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow-lg); }
.artifact-dialog::backdrop { background: rgba(18,22,42,.64); backdrop-filter: blur(7px); }
.dialog-toolbar { position: sticky; top: 0; z-index: 4; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 22px; background: rgba(250,249,246,.94); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.dialog-toolbar h2 { margin: 3px 0 0; font-size: 18px; }
.icon-button { display: grid; place-items: center; width: 38px; height: 38px; color: var(--muted); border-radius: 50%; font-size: 24px; }
.icon-button:hover { color: var(--ink); background: #e8e8ef; }
.dialog-actions { position: sticky; bottom: 0; z-index: 4; display: flex; justify-content: flex-end; gap: 12px; padding: 16px 22px; background: rgba(250,249,246,.94); border-top: 1px solid var(--line); backdrop-filter: blur(12px); }
.report-preview { display: grid; gap: 18px; padding: 24px; }
.report-page { display: flex; flex-direction: column; width: min(760px, 100%); min-height: 900px; margin: 0 auto; padding: 52px 54px 42px; background: #fff; box-shadow: var(--shadow-sm); }
.report-brand { color: var(--indigo-dark); font-size: 11px; font-weight: 800; letter-spacing: .12em; }.report-page h2 { margin: 10px 0 18px; font-family: ui-serif, Georgia, "Songti SC", serif; font-size: 32px; line-height: 1.38; }.report-page h3 { margin: 22px 0 7px; font-size: 16px; }.report-page p { margin-block: 8px; color: #596174; font-size: 13px; line-height: 1.65; }.report-standards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }.report-standards div { padding: 14px; background: #f6f5fb; border-radius: 12px; }.report-standards span { color: var(--muted); font-size: 10px; }.report-standards strong { display: block; margin-top: 6px; font-size: 12px; line-height: 1.55; }.report-evidence { padding: 11px 0; border-top: 1px solid var(--line); }.report-evidence blockquote { margin: 4px 0; color: #30394d; font-size: 12px; line-height: 1.6; }.report-boundary, .report-guide { margin-top: 18px; padding: 14px 17px; background: #f6f5fb; border-radius: 12px; }.report-boundary h3, .report-guide h3 { margin-top: 0; }.report-uncertainty { padding-top: 8px; border-top: 1px dashed var(--line); }.report-footer { margin-top: auto !important; padding-top: 14px; color: #9398a6 !important; border-top: 1px solid var(--line); font-size: 9px !important; }

.card-dialog { width: min(720px, calc(100% - 28px)); }.north-star-wrap { padding: 24px; }.north-star-card { --north-card-fit: 1; position: relative; display: flex; flex-direction: column; width: min(520px, 100%); aspect-ratio: 3 / 4; margin: 0 auto; padding: 42px 38px 28px; overflow: hidden; color: #f8f7ff; background: radial-gradient(circle at 78% 9%, rgba(190,170,255,.65), transparent 27%), radial-gradient(circle at 10% 82%, rgba(210,144,185,.25), transparent 32%), linear-gradient(155deg, #24235e, #4d4692 58%, #6c4d82); box-shadow: var(--shadow-lg); }.card-dialog .north-star-card { width: min(520px, 100%, max(240px, calc((100vh - 270px) * .75))); }
.north-star-card > * { flex-shrink: 0; }.north-star-card::before { content: "✦"; position: absolute; top: 35px; right: 38px; color: #ece8ff; font-size: calc(40px * var(--north-card-fit)); }.north-card-brand { color: #d8d4ff; font-size: calc(12px * var(--north-card-fit)); font-weight: 800; letter-spacing: .1em; }.north-card-title { margin-top: calc(50px * var(--north-card-fit)); color: #c9c5ff; font-size: calc(15px * var(--north-card-fit)); font-weight: 700; }.north-card-direction { margin: calc(14px * var(--north-card-fit)) 0 0; font-family: ui-serif, Georgia, "Songti SC", serif; font-size: calc(31px * var(--north-card-fit)); font-weight: 650; letter-spacing: -.02em; line-height: 1.45; }.north-card-insight { margin-top: calc(28px * var(--north-card-fit)); padding-top: calc(20px * var(--north-card-fit)); color: #e5e2ff; border-top: 1px solid rgba(255,255,255,.18); font-size: calc(14px * var(--north-card-fit)); line-height: 1.55; }.north-card-insight span { display: block; margin-bottom: calc(5px * var(--north-card-fit)); color: #bdb7f2; font-size: .72em; font-weight: 800; }.north-card-standards { display: grid; gap: calc(12px * var(--north-card-fit)); margin-top: calc(22px * var(--north-card-fit)); }.north-card-standard { display: grid; grid-template-columns: 22% 1fr; gap: 4%; align-items: baseline; line-height: 1.48; }.north-card-standard span { color: #bdb8e7; font-size: calc(10px * var(--north-card-fit)); }.north-card-standard strong { font-size: calc(13px * var(--north-card-fit)); }.north-card-footer { display: block; align-self: stretch; margin-top: auto; padding-top: calc(20px * var(--north-card-fit)); color: #d8d4ff; font-size: calc(11px * var(--north-card-fit)); text-align: right; text-decoration: none; letter-spacing: .04em; }.north-card-tight .north-card-standard { grid-template-columns: 19% 1fr; }.card-privacy { margin: 0 24px 22px; color: var(--muted); font-size: 11px; text-align: center; }
.north-star-card.exporting { width: 1080px; height: 1440px; padding: 88px 80px 62px; box-shadow: none; }.north-star-card.exporting::before { top: 75px; right: 80px; font-size: calc(78px * var(--north-card-fit)); }.north-star-card.exporting .north-card-brand { font-size: calc(25px * var(--north-card-fit)); }.north-star-card.exporting .north-card-title { margin-top: calc(105px * var(--north-card-fit)); font-size: calc(31px * var(--north-card-fit)); }.north-star-card.exporting .north-card-direction { margin-top: calc(24px * var(--north-card-fit)); font-size: calc(58px * var(--north-card-fit)); line-height: 1.42; }.north-star-card.exporting .north-card-insight { margin-top: calc(46px * var(--north-card-fit)); padding-top: calc(30px * var(--north-card-fit)); font-size: calc(27px * var(--north-card-fit)); }.north-star-card.exporting .north-card-standards { gap: calc(22px * var(--north-card-fit)); margin-top: calc(34px * var(--north-card-fit)); }.north-star-card.exporting .north-card-standard span { font-size: calc(21px * var(--north-card-fit)); }.north-star-card.exporting .north-card-standard strong { font-size: calc(27px * var(--north-card-fit)); }.north-star-card.exporting .north-card-footer { padding-top: calc(28px * var(--north-card-fit)); font-size: calc(23px * var(--north-card-fit)); }
.edit-dialog { width: min(580px, calc(100% - 28px)); }.edit-dialog > p { margin: 0; padding: 22px 22px 0; color: var(--muted); font-size: 13px; }.edit-options { display: grid; gap: 10px; padding: 20px 22px 24px; }.edit-options button { display: flex; justify-content: space-between; gap: 16px; padding: 17px 18px; text-align: left; background: #fff; border: 1px solid var(--line); border-radius: 13px; cursor: pointer; }.edit-options button:hover { border-color: #acaee0; background: #fafaff; }.edit-options span { color: var(--muted); font-size: 11px; }

.toast-region { position: fixed; right: 20px; bottom: 20px; z-index: 120; width: min(360px, calc(100% - 40px)); }.toast { margin-top: 10px; padding: 13px 15px; color: #fff; background: #293246; border-radius: 12px; box-shadow: var(--shadow-lg); font-size: 13px; animation: reveal 180ms ease both; }.toast.error { background: #8d3548; }
#print-root { display: none; }

@media (max-width: 860px) {
    .hero-grid { grid-template-columns: 1fr; gap: 36px; }.method-card { min-height: 390px; }.orbit-visual { max-width: 300px; }.intro-notes { grid-template-columns: 1fr; }.disclosure-grid { grid-template-columns: 1fr; }.standards-grid { grid-template-columns: 1fr; }.standard-card { min-height: auto; }.report-page { min-height: 0; padding: 40px 34px; }.report-standards { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .header-inner { width: min(100% - 24px, 1180px); min-height: 66px; gap: 12px; }.brand-mark { width: 32px; height: 32px; }.brand small { display: none; }.header-progress { max-width: none; }.quiet-button { width: 32px; height: 32px; padding: 0; overflow: hidden; color: transparent; }.quiet-button::after { content: "×"; display: block; color: var(--muted); font-size: 21px; }
    .main-shell { width: min(100% - 28px, 1120px); }.step { padding-top: 46px; }.hero-copy h1 { font-size: 40px; }.hero-lead { font-size: 15px; }.method-card { padding: 20px; }.intro-notes { margin-top: 36px; }
    .question-step { padding-top: 44px; }.question-heading h1 { font-size: 29px; }.answer-field textarea { min-height: 230px; padding: 18px 17px 7px; font-size: 15px; }.answer-footer span:first-child { max-width: 68%; }.step-actions { position: sticky; bottom: 10px; z-index: 10; padding: 8px; background: rgba(251,250,246,.9); border-radius: 16px; backdrop-filter: blur(10px); }.step-actions .primary-button { flex: 1; }
    .analysis-card { padding: 34px 22px; }.result-step { padding-top: 26px; }.result-hero { padding: 32px 24px; border-radius: 25px; }.latent-insight { grid-template-columns: 1fr; }.takeaway-section, .inner-standards { margin-top: 39px; }.takeaway-grid { grid-template-columns: 1fr; }.result-details summary { align-items: center; padding: 18px; }.result-details summary small { display: none; }.evidence-list, .boundary-content { padding-inline: 18px; }.pattern-explanation { padding-inline: 18px; }.evidence-item { grid-template-columns: 1fr; gap: 4px; }.dialog-actions { display: grid; grid-template-columns: 1fr; }.dialog-actions button { width: 100%; }.report-preview, .north-star-wrap { padding: 12px; }.report-page { padding: 32px 24px; }.edit-options button { display: grid; gap: 3px; }
}

@media screen and (min-width: 700px) and (max-height: 900px) {
    .report-preview { gap: 12px; }
    .report-preview .report-page { zoom: .58; }
}

@media print {
    @page { size: A4; margin: 0; }
    body.printing-report { background: #fff; }
    body.printing-report > *:not(#print-root) { display: none !important; }
    body.printing-report #print-root { display: block; }
    body.printing-report .report-preview { display: block; padding: 0; }
    body.printing-report .report-page { width: 210mm; height: 297mm; min-height: 297mm; padding: 15mm 16mm 13mm; margin: 0; overflow: hidden; box-shadow: none; page-break-after: always; break-after: page; }
    body.printing-report .report-page:last-child { page-break-after: auto; break-after: auto; }
    body.printing-report .report-page h2 { margin-bottom: 4mm; font-size: 20pt; }
    body.printing-report .report-page h3 { margin: 5mm 0 2mm; font-size: 11.5pt; }
    body.printing-report .report-page p { margin-block: 2mm; font-size: 9pt; line-height: 1.55; }
    body.printing-report .report-standards div { padding: 3.2mm; }
    body.printing-report .report-standards strong { font-size: 8.5pt; line-height: 1.45; }
    body.printing-report .report-evidence { padding: 3mm 0; }
    body.printing-report .report-evidence blockquote { font-size: 8.7pt; line-height: 1.5; }
    body.printing-report .report-boundary, body.printing-report .report-guide { margin-top: 4mm; padding: 3mm 4mm; }
    body.printing-report .report-footer { padding-top: 3mm; font-size: 7pt !important; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
