:root {
  --ink: #0a0d0b;
  --panel: #111512;
  --panel-2: #151914;
  --cream: #e3d1ba;
  --muted: #a8937b;
  --gold: #c58b3c;
  --gold-soft: #d1a05e;
  --line: rgba(197, 139, 60, .38);
  --red: #a31626;
  --red-light: #c52f43;
  --serif: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;
  --sans: "Noto Sans SC", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }
html { background: #050706; scroll-behavior: smooth; }
body { margin: 0; color: var(--cream); background: radial-gradient(circle at 100% 20%, rgba(121,28,25,.14), transparent 28rem), var(--ink); font-family: var(--serif); }
button, input { font: inherit; }
button { color: inherit; }
.hidden { display: none !important; }
#app { min-height: 100vh; }

.site-header { position: sticky; z-index: 20; top: 0; height: 74px; display: flex; align-items: center; gap: 12px; padding: 0 18px; border-bottom: 1px solid var(--line); background: rgba(8,11,9,.96); backdrop-filter: blur(14px); }
.brand-mark { padding-right: 12px; border-right: 1px solid var(--line); color: var(--gold-soft); font: 44px/1 Georgia, serif; }
.brand-name { letter-spacing: .12em; font-size: 19px; }
.history-button { margin-left: auto; border: 0; background: transparent; color: var(--muted); font-size: 15px; cursor: pointer; }

.screen-shell { width: min(100%, 720px); margin: 0 auto; }
.landing { padding: 54px 20px 0; overflow: hidden; }
.eyebrow { color: var(--gold); letter-spacing: .2em; font: 12px/1.5 var(--sans); }
.landing h1 { max-width: 620px; margin: 28px 0 18px; color: #ead9c8; font-size: clamp(42px, 11vw, 70px); font-weight: 400; line-height: 1.22; letter-spacing: .02em; }
.lede { color: var(--muted); font-size: 18px; line-height: 2; }
.hero-actions { display: grid; gap: 14px; margin-top: 30px; }
.primary-button, .outline-button { min-height: 58px; padding: 12px 18px; border-radius: 6px; cursor: pointer; transition: .2s ease; }
.primary-button { border: 1px solid var(--gold); background: linear-gradient(135deg, #990d1d, #b31929); color: #f1ddc6; }
.outline-button { border: 1px solid var(--gold); background: transparent; color: var(--cream); }
.primary-button:disabled { opacity: .38; cursor: not-allowed; }
.hero-actions button { display: flex; align-items: center; justify-content: center; gap: 34px; font-size: 19px; letter-spacing: .08em; }
.feature-row { display: grid; grid-template-columns: repeat(3, 1fr); margin: 42px 0 30px; }
.feature { min-width: 0; padding: 0 8px; text-align: center; color: var(--muted); font-size: 12px; line-height: 1.5; }
.feature + .feature { border-left: 1px solid var(--line); }
.feature-icon { display: grid; place-items: center; width: 46px; height: 46px; margin: 0 auto 12px; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); font-size: 20px; }
.wheel-wrap { margin: 38px auto 34px; }
.wheel { position:relative;width:min(94vw,520px);aspect-ratio:1;margin:auto; }
.wheel svg { display:block;width:100%;height:100%;overflow:visible; }
.wheel-segment { stroke:#c9944a;stroke-width:2.2;cursor:pointer;transition:filter .2s,opacity .2s; }
.wheel-segment:hover,.wheel-segment:focus { filter:brightness(1.18); }
.wheel-pride-cap { fill:#7f202d;stroke:#c9944a;stroke-width:2.4; }
.wheel-outer { fill:none;stroke:#c9944a;stroke-width:3; }
.wheel-inner { stroke:#c9944a;stroke-width:2.5; }
.wheel-inner-soft { stroke:#5f492b;stroke-width:2; }
.wheel-item { cursor:pointer;color:#efd29a; }
.wheel-icon { transform:translateY(-14px);fill:none;stroke:#f0d399;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round; }
.wheel-main { fill:#ead6bd;font:20px var(--serif);text-anchor:middle; }
.wheel-sub { fill:#cbb393;font:11px var(--sans);text-anchor:middle;letter-spacing:.04em; }
.wheel-center text { fill:var(--gold);font:22px var(--serif);text-anchor:middle; }
.wheel-center text:last-child { font-size:13px;fill:#b98f58; }
.wheel-tip, .landing-note { padding: 18px 0; color: var(--gold); text-align: center; font-size: 13px; line-height: 1.7; }
.landing-note { margin: 0 -20px; padding: 24px 26px; border-top: 1px solid var(--line); color: var(--muted); }

.motives-page { min-height:100vh; padding-bottom:34px; background:radial-gradient(circle at 88% 56%,rgba(98,66,35,.12),transparent 28rem),#0b0f0d; }
.motives-header { position:sticky;z-index:30;top:0;height:74px;display:flex;align-items:center;gap:12px;padding:0 18px;border-bottom:1px solid var(--line);background:rgba(9,13,11,.97);color:var(--muted);font-size:17px;letter-spacing:.08em; }
.motives-header .brand-mark { font-size:40px; }
.motives-header .icon-button { margin-left:auto;color:var(--cream); }
.motives-intro { padding:42px 20px 18px; }
.motives-intro h1 { margin:22px 0 18px;color:#ead9c8;font-size:clamp(36px,10vw,52px);font-weight:400;line-height:1.4; }
.motives-intro p { margin:0;color:var(--muted);font-size:15px;line-height:2; }
.motive-index { display:grid;margin:0 16px 34px;border-top:1px solid rgba(197,139,60,.24); }
.motive-index-row { display:grid;grid-template-columns:36px auto 1fr 20px;align-items:center;gap:4px;min-height:52px;padding:0 12px;border:0;border-bottom:1px solid rgba(197,139,60,.24);background:transparent;color:var(--muted);text-align:left;cursor:pointer; }
.motive-index-row span { color:#b69a76;font:12px var(--sans); }
.motive-index-row b { color:#cab8a2;font-size:17px;font-weight:400; }
.motive-index-row small { margin-left:6px;color:#907d68;font-size:11px; }
.motive-index-row i { color:var(--gold);font-style:normal; }
.motive-index-row.active { background:linear-gradient(90deg,rgba(197,139,60,.12),rgba(197,139,60,.05));box-shadow:inset 0 0 22px rgba(197,139,60,.04); }
.motive-index-row.active span,.motive-index-row.active small { color:var(--gold); }
.motive-card { --motive-color:#9a5aad;position:relative;margin:0 16px;padding:24px 20px 18px;border:1px solid var(--line);background:linear-gradient(145deg,color-mix(in srgb,var(--motive-color) 17%,#121512) 0,#111512 43%);box-shadow:inset 0 0 0 9px rgba(5,7,6,.2);overflow:hidden; }
.motive-card::before { content:"";position:absolute;inset:10px;border:1px solid rgba(197,139,60,.18);pointer-events:none; }
.motive-beams { position:absolute;z-index:0;left:30%;right:-10%;top:-70px;height:390px;opacity:.18;background:conic-gradient(from 165deg at 50% 0%,transparent 0 7deg,var(--motive-color) 8deg 13deg,transparent 14deg 22deg,var(--gold) 23deg 29deg,transparent 30deg 42deg,var(--motive-color) 43deg 50deg,transparent 51deg);filter:blur(1px);pointer-events:none; }
.motive-card>*:not(.motive-beams) { position:relative;z-index:1; }
.motive-card-top { display:flex;justify-content:space-between;color:var(--gold);font:12px/1.4 var(--sans);letter-spacing:.18em; }
.motive-card-top span:last-child { color:var(--muted);letter-spacing:.12em; }
.motive-name { display:flex;align-items:center;gap:18px;margin:36px 0 28px; }
.motive-icon { display:grid;place-items:center;flex:0 0 68px;height:68px;border:1px solid var(--motive-color);border-radius:50%;color:#f0cf88;font-size:32px; }
.motive-name small { color:var(--muted);letter-spacing:.1em; }
.motive-name h2 { margin:8px 0 0;color:#ead6be;font-size:38px;font-weight:400; }
.motive-card blockquote { margin:0 0 26px;padding:12px 0 12px 20px;border-left:2px solid var(--motive-color);color:#e4cdb4;font-size:21px;line-height:1.65; }
.motive-sections section { padding:19px 0;border-top:1px solid rgba(197,139,60,.22); }
.motive-sections h3 { display:flex;gap:9px;align-items:center;margin:0 0 12px;color:var(--gold);font-size:13px;font-weight:400; }
.motive-sections h3 span { color:var(--gold); }
.motive-sections p { margin:0;color:var(--muted);font-size:14px;line-height:1.9; }
.motive-card-foot { display:flex;align-items:end;gap:14px;margin-top:24px; }
.motive-dashes { display:flex;flex:1;gap:8px;padding-bottom:8px; }
.motive-dashes span { flex:1;height:2px;background:#3a3125; }
.motive-dashes span.active { background:var(--gold);box-shadow:0 0 8px rgba(197,139,60,.35); }
.motive-card-foot button { padding:7px 0;border:0;border-bottom:1px solid var(--gold);background:transparent;color:var(--gold);font-size:12px;line-height:1.25;text-align:right;cursor:pointer; }
.motives-closing { padding:34px 30px 24px;color:var(--muted);text-align:center;line-height:1.9;font-size:14px; }
.motives-start { display:block;width:calc(100% - 34px);margin:0 auto;font-size:18px;letter-spacing:.06em; }

.modal-backdrop { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(0,0,0,.74); backdrop-filter: blur(2px); }
.code-panel { position: relative; width: min(100%, 600px); padding: 32px 22px 24px; border: 1px solid var(--gold); border-radius: 24px; background: #131715; box-shadow: 0 20px 70px #000; }
.modal-close { position:absolute; right:18px; top:13px; border:0; background:transparent; color:var(--muted); font-size:24px; cursor:pointer; }
.modal-heading { display:flex; gap:16px; align-items:center; }
.key-square { display:grid; place-items:center; flex:0 0 58px; height:58px; border:1px solid var(--gold); background:var(--red); color:#f0c06f; font-size:32px; }
.code-panel h2 { margin:8px 0 0; font-weight:400; font-size:30px; }
.code-panel>p { color:var(--muted); line-height:1.8; }
.field-meta,.field-help { display:flex; justify-content:space-between; margin:20px 0 8px; color:var(--muted); font:13px/1.5 var(--sans); }
.field-meta b { color:var(--cream); }
.code-field { display:flex; align-items:center; min-height:66px; padding:0 16px; border:2px solid var(--red-light); border-radius:16px; color:var(--gold); }
.code-field input { width:100%; border:0; outline:0; padding:0 10px; background:transparent; color:var(--cream); font:22px/1 var(--sans); letter-spacing:.12em; text-transform:uppercase; }
.modal-actions { display:grid; grid-template-columns:.8fr 1.3fr; gap:10px; margin-top:28px; padding-top:22px; border-top:1px solid var(--line); }
.demo-note { margin-bottom:0; text-align:center; font-size:11px; }

.quiz { padding-bottom: 102px; }
.quiz-head { padding: 30px 18px 0; }
.counter-row { display:flex; align-items:baseline; }
.quiz-logo { color:var(--red-light); font:40px/1 Georgia,serif; }
.quiz-name { margin-left:10px; color:var(--muted); }
.question-count { margin-left:auto; color:var(--cream); font:15px/1 var(--sans); }.question-count b{color:var(--red-light);font:42px/1 Georgia,serif;font-weight:400}.question-count em{font-style:normal;color:var(--muted)}
.progress { height:4px; margin:26px 0 22px; background:#363730; border-radius:10px; overflow:hidden; }.progress span{display:block;height:100%;background:var(--red-light);transition:width .3s}
.question-meta { display:flex; flex-wrap:wrap; gap:8px 20px; color:var(--gold); font-size:13px; }.question-meta span+span{padding-left:20px;border-left:1px solid var(--line)}
.story-card { margin: 22px 16px; padding: 26px 18px 22px; border:1px solid var(--line); border-radius:7px; background:#121614; }
.story-card h1 { margin: 6px 0 24px; color:var(--red-light); font-weight:400; font-size:clamp(33px,9vw,48px); text-align:center; line-height:1.35; }
.gold-rule { width:130px; height:1px; margin:-10px auto 24px; background:var(--gold); }
.story { color:#cbb8a3; font-size:16px; line-height:2.05; white-space:pre-line; }
.decision-label { display:flex; align-items:center; gap:12px; margin:28px 0 14px; color:var(--red-light); font-size:13px; }.decision-label::before,.decision-label::after{content:"";flex:1;height:1px;background:var(--red-light)}
.prompt { margin:0 0 22px; color:#e4d2bd; font-size:20px; line-height:1.7; text-align:center; }
.options { display:grid; gap:12px; }
.option { display:grid; grid-template-columns:54px 1fr; min-height:98px; padding:0; border:1px solid #40413a; border-radius:7px; background:#101411; color:#cdbba6; text-align:left; cursor:pointer; overflow:hidden; }
.option-letter { display:grid; place-items:center; border-right:1px solid #40413a; font:38px/1 Georgia,serif; }
.option-text { display:flex; align-items:center; padding:14px; line-height:1.65; }
.option.selected { border-color:var(--gold); background:rgba(121,18,29,.2); color:#eed8bd; box-shadow:0 0 0 1px rgba(197,139,60,.35); }.option.selected .option-letter{color:var(--gold);border-color:var(--gold)}
.quiz-nav { position:fixed; z-index:15; left:0; right:0; bottom:0; display:grid; grid-template-columns:1fr .9fr 1.35fr; gap:8px; padding:10px max(12px,calc((100vw - 720px)/2 + 12px)) calc(10px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgba(8,11,9,.97); }
.quiz-nav button { min-height:62px; border-radius:5px; font-size:15px; }.save-state{display:grid;place-items:center;color:var(--gold);font:12px/1.3 var(--sans)}

.toast { position:fixed; z-index:120; left:50%; top:28px; transform:translateX(-50%); display:flex; gap:10px; align-items:center; width:max-content; max-width:calc(100% - 32px); padding:16px 20px; border-radius:18px; background:#fff; color:#06bfa1; box-shadow:0 12px 40px #000; font:15px/1.4 var(--sans); }

.loading-screen { min-height:calc(100vh - 74px); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:34px 22px; text-align:center; }
.loading-title { font-size:28px; }.loading-title b{color:var(--red-light);font:64px/1 Georgia,serif}.loading-line{width:min(80%,360px);height:1px;background:var(--gold);margin:26px auto;position:relative}.loading-line::after{content:"◆";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:0 14px;background:var(--ink);color:var(--gold)}
.loading-copy { color:var(--cream);font-size:22px;line-height:1.8}.loading-copy small{display:block;color:var(--gold);font-size:16px}.loading-percent{margin:18px 0;color:var(--red-light);font:72px/1 Georgia,serif}.loading-sins{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px}.loading-sins span{padding:8px 10px;border:1px solid var(--line);color:#60564a;transition:.3s}.loading-sins span.lit{color:var(--gold);border-color:var(--gold);box-shadow:0 0 18px rgba(197,139,60,.3)}

.report { padding-bottom:40px; }
.report-header { height:74px; display:flex;align-items:center;padding:0 18px;border-bottom:1px solid var(--line);background:#090c0a;position:sticky;top:0;z-index:20}.report-header .brand-mark{margin:auto}.icon-button{border:0;background:transparent;color:var(--gold);font-size:22px;cursor:pointer}.share-pill{border:1px solid var(--line);border-radius:30px;padding:10px 15px;background:transparent;color:var(--cream)}
.report-hero { display:grid;grid-template-columns:1fr 132px;gap:12px;padding:34px 20px 26px; }.section-kicker{color:var(--gold);letter-spacing:.12em;font-size:14px}.report-hero h1{margin:18px 0 6px;color:#efd4ac;font-size:42px;font-weight:400}.report-subtitle{color:var(--cream);font-size:18px;line-height:1.6}.report-summary{grid-column:1/-1;color:var(--muted);line-height:1.9}.index-ring{display:grid;place-items:center;align-self:center;aspect-ratio:1;border:7px double var(--gold);border-radius:50%;font:48px/1 Georgia,serif;box-shadow:0 0 0 4px rgba(197,139,60,.15)}.index-ring small{font:10px/1.3 var(--sans);display:block;text-align:center}.index-ring div{text-align:center}
.badges{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px}.badge{padding:12px;border:1px solid var(--line);color:var(--gold)}
.report-section{padding:34px 20px;border-top:1px solid var(--line)}.section-title{text-align:center;font-size:27px;font-weight:400;line-height:1.45}.section-title::before,.section-title::after{content:"◇";color:var(--gold);font-size:13px;margin:0 16px}
.radar-wrap{position:relative;max-width:430px;margin:24px auto}.radar-wrap svg{width:100%;height:auto;overflow:visible}.radar-label{font:12px var(--sans);fill:var(--cream)}
.toggle-row{display:grid;grid-template-columns:repeat(3,1fr);padding:5px;border:1px solid var(--line);border-radius:28px;margin:20px 0}.toggle-row button{border:0;background:transparent;color:var(--muted);padding:10px 4px;border-radius:22px}.toggle-row button.active{background:rgba(197,139,60,.18);color:var(--cream)}
.dimension-list{display:grid;gap:0}.dimension{padding:24px 0;border-top:1px solid rgba(197,139,60,.2)}.dimension-head{display:flex;align-items:center;gap:12px}.dot{width:9px;height:9px;border-radius:50%}.dimension-name{font-size:20px}.dimension-tag{margin-left:auto;padding:6px 9px;border:1px solid var(--line);font-size:11px;color:var(--gold)}.dimension-score{font:34px/1 Georgia,serif;color:var(--gold-soft)}.bar{height:6px;margin:12px 0 14px;background:#1b1d18}.bar span{display:block;height:100%}.dimension p{margin:0;color:var(--muted);line-height:1.9;font-size:14px}
.pair-intro{text-align:center;color:var(--muted);line-height:2}.pair-cards{display:grid;gap:18px;margin-top:30px}.pair-card,.insight-card,.virtue-card{padding:26px 22px;border:1px solid rgba(197,139,60,.22);background:#121611}.pair-card small,.insight-card small{color:var(--gold);letter-spacing:.12em}.pair-card h3,.insight-card h3,.virtue-card h3{font-weight:400;font-size:26px}.pair-card p,.insight-card p,.virtue-card p{color:var(--muted);line-height:2}.plus{text-align:center;color:var(--gold);font-size:34px}
.observations{counter-reset:obs;display:grid;gap:0}.observation{display:grid;grid-template-columns:58px 1fr;gap:14px;padding:22px 0;border-bottom:1px solid var(--line)}.observation::before{counter-increment:obs;content:"0" counter(obs);font:34px Georgia,serif;color:#5a4831}.observation b{color:var(--gold);font-weight:400}.observation p{margin:10px 0 0;color:var(--muted);line-height:1.8}
.chapter-cards{display:grid;gap:12px}.chapter-card{padding:18px;border:1px solid var(--line);background:#111411}.chapter-card summary{cursor:pointer;color:var(--cream);font-size:19px}.chapter-card p{color:var(--muted);line-height:1.8}.chapter-answer{padding:10px 0;border-top:1px solid rgba(197,139,60,.15);font-size:13px;line-height:1.7}.chapter-answer b{color:var(--gold)}
.report-actions{display:grid;gap:12px;padding:30px 20px 50px}.report-actions button{min-height:60px;font-size:18px}.closing{padding:44px 20px;text-align:center;border-top:1px solid var(--line);font-size:23px;line-height:1.9}.closing small{display:block;margin-top:18px;color:var(--muted);font-size:13px}

@media (min-width: 721px) { body{background:#050706}.screen-shell{border-left:1px solid rgba(197,139,60,.15);border-right:1px solid rgba(197,139,60,.15)}.pair-cards{grid-template-columns:1fr 1fr}.insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.report-hero{padding-left:34px;padding-right:34px}.report-section{padding-left:34px;padding-right:34px} }
@media (max-width: 430px) { .report-hero{grid-template-columns:1fr 112px}.report-hero h1{font-size:36px;white-space:nowrap}.index-ring{font-size:42px}.badges{font-size:13px}.site-header{padding-left:12px;padding-right:12px}.history-button span{display:none} }
@media (max-width: 380px) { .landing h1{font-size:38px}.story-card{margin-left:10px;margin-right:10px;padding-left:14px;padding-right:14px}.report-hero h1{font-size:33px}.brand-mark{font-size:37px}.brand-name{font-size:16px}.motive-card{margin-left:10px;margin-right:10px;padding-left:16px;padding-right:16px}.motive-index{margin-left:10px;margin-right:10px}.motive-name{gap:12px}.motive-icon{flex-basis:60px;height:60px}.motive-name h2{font-size:34px} }
@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
