:root{color:#372d3d;background:#f8f1eb;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;--purple: #70519c;--purple-dark: #563a80;--clay: #be7d69;--paper: #fffdfb;--muted: #766d78;--line: #e9dfdf;--soft-purple: #f1ebf8;--soft-clay: #f8ebe6}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}main{min-height:100vh;background:radial-gradient(circle at 95% 8%,rgba(177,145,212,.22),transparent 26rem),radial-gradient(circle at 0 42%,rgba(220,166,143,.18),transparent 22rem),#f8f1eb;padding:20px 16px 40px}.brand,.app-shell,footer{width:min(100%,520px);margin-inline:auto}.brand{display:flex;align-items:center;gap:9px;font-size:13px;color:#685d6b;margin-bottom:18px}.brand-mark{letter-spacing:.18em;font-weight:800;color:var(--purple)}.app-shell{min-height:72vh}footer{margin-top:24px;text-align:center;color:#8c8188;font-size:11px}.hero,.panel,.question-page,.report-hero,.report-section{background:#fffdfbeb;border:1px solid rgba(255,255,255,.8);border-radius:28px;box-shadow:0 18px 56px #48314917}.hero,.panel,.question-page{padding:28px 22px}.hero{padding-top:42px}.eyebrow{margin:0 0 12px;color:var(--purple);font-size:12px;font-weight:750;letter-spacing:.08em}h1{margin:0;font-size:clamp(27px,8vw,39px);line-height:1.18;letter-spacing:-.035em}h2{font-size:24px;margin:0 0 20px}.lead,.muted{color:var(--muted);line-height:1.75}.lead{font-size:15px;margin:20px 0}.feature-row{display:flex;gap:8px;margin:22px 0}.feature-row span{padding:8px 11px;border-radius:999px;color:#6c5377;background:var(--soft-purple);font-size:12px}.privacy-notice{margin:22px 0 16px;padding:16px;border:1px solid #ddd0e7;border-radius:16px;background:#f6f0fa;text-align:left}.privacy-notice strong{color:var(--purple-dark);font-size:14px}.privacy-notice p{margin:8px 0 0;color:#685d6b;font-size:12px;line-height:1.65}.consent{background:#f8f3f1;border:1px solid var(--line);border-radius:16px;padding:14px;margin:22px 0 16px}.consent label{display:flex;gap:10px;align-items:flex-start;color:#655b63;font-size:12px;line-height:1.65}.consent input{margin-top:3px;accent-color:var(--purple)}.button-stack{display:grid;gap:10px}.primary,.secondary{min-height:50px;border-radius:14px;padding:0 18px;font-weight:750;border:0}.primary{color:#fff;background:linear-gradient(135deg,var(--purple),#8a69b5);box-shadow:0 9px 22px #70519c38}.secondary{color:var(--purple-dark);background:var(--soft-purple)}.safety-copy{font-size:11px;line-height:1.65;color:#8a6b66;margin:18px 2px 0}.back{border:0;background:transparent;color:var(--muted);padding:0;margin-bottom:28px}.role-picker h1{margin-bottom:12px}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.role-grid button{background:linear-gradient(145deg,#fff,#f5eff9);border:1px solid #eadff0;border-radius:18px;min-height:130px;color:#4d3b58}.role-grid span{display:block;margin:0 auto 10px;width:42px;height:42px;line-height:42px;border-radius:50%;background:#eadff5;color:var(--purple);font-size:19px}.role-grid strong{display:block}.role-picker.compact{margin-top:24px}.role-picker.compact .eyebrow,.role-picker.compact .muted{display:none}.field-label{display:block;font-size:12px;margin:28px 0 8px;color:var(--muted)}.access-gate{text-align:center;padding-top:40px}.access-mark{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 22px;border-radius:22px;background:linear-gradient(145deg,var(--purple),#9a77bd);color:#fff;font-size:14px;font-weight:850;letter-spacing:.16em;box-shadow:0 12px 28px #70519c38}.access-gate form{display:grid;text-align:left;margin-top:24px}.access-gate input{width:100%;height:54px;margin-bottom:12px;border:1px solid #dfd2df;border-radius:14px;background:#fff;padding:0 16px}.access-gate input:focus{outline:3px solid rgba(112,81,156,.16);border-color:var(--purple)}.code-input{width:100%;height:58px;border:1px solid #dfd2df;background:#fff;border-radius:14px;padding:0 16px;text-align:center;letter-spacing:.18em;font-size:22px;text-transform:uppercase}.code-input:focus{outline:3px solid rgba(112,81,156,.16);border-color:var(--purple)}.ready{text-align:center}.pair-code{margin:24px 0;padding:18px;border:1px dashed #b49bc8;background:var(--soft-purple);border-radius:16px;color:var(--purple-dark);letter-spacing:.2em;font-size:27px;font-weight:800}.notice{display:flex;flex-direction:column;gap:6px;text-align:left;margin:22px 0;padding:16px;border-radius:15px;background:var(--soft-clay);color:#775a55;font-size:12px}.notice strong{font-size:14px}.question-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.progress,.score-track,.dimension-track{overflow:hidden;border-radius:999px;background:#eee6ef}.progress{height:6px;margin:12px 0 32px}.progress i,.score-track i,.dimension-track i{display:block;height:100%;background:linear-gradient(90deg,var(--clay),var(--purple));border-radius:inherit;transition:width .25s ease}.question-page h1{font-size:25px;min-height:88px}.answers{display:grid;gap:9px;margin:25px 0}.answers label{display:flex;align-items:center;gap:12px;min-height:50px;padding:8px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;color:#665b68}.answers label.selected{border-color:#9f82bb;background:var(--soft-purple);color:var(--purple-dark);font-weight:700}.answers input{position:static;width:21px;height:21px;opacity:1;accent-color:var(--purple)}.answer-dot{display:none}.critical-toggle{display:flex;gap:10px;align-items:flex-start;padding:13px;border-radius:13px;background:#fff4ef;color:#785e58;font-size:12px;line-height:1.5}.critical-toggle input{accent-color:var(--clay);margin-top:2px}.question-actions{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin-top:20px}.question-page small{display:block;text-align:center;min-height:16px;margin-top:12px;color:#8d8189}.question-page small.save-error{color:#a64e3e}.waiting{text-align:center}.waiting-orbit{position:relative;width:86px;height:60px;margin:5px auto 28px}.waiting-orbit span{position:absolute;width:54px;height:54px;border-radius:50%;background:#70519c38}.waiting-orbit span:first-child{left:5px}.waiting-orbit span:last-child{right:5px;background:#be7d6947}.waiting small{display:block;margin-top:16px;color:var(--muted)}.waiting-pair-code{display:grid;gap:9px;margin:20px 0;padding:16px;border:1px dashed #b49bc8;border-radius:16px;background:var(--soft-purple)}.waiting-pair-code>span{color:var(--muted);font-size:11px}.waiting-pair-code>strong{color:var(--purple-dark);font-size:25px;letter-spacing:.18em}.waiting-pair-code .secondary{width:100%;min-height:44px}.waiting-pair-code small{margin-top:0;color:#9b4939}.missing-pair-code{margin:20px 0;padding:16px;border-radius:16px;background:var(--soft-purple)}.missing-pair-code p{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.6}.missing-pair-code .secondary{width:100%}.personal-safety{margin:16px 0 0;border:1px solid #e2b6a9;border-radius:16px;background:#fff6f1;color:#6f4740;text-align:left}.personal-safety summary{padding:14px 16px;cursor:pointer;color:#80564e;font-size:13px;font-weight:750}.personal-safety-content{padding:4px 20px 20px}.personal-safety h2{margin-bottom:10px;font-size:21px}.personal-safety p{font-size:13px;line-height:1.65}.resource-list{display:grid;gap:8px;margin:14px 0}.resource-list a{display:grid;gap:4px;padding:12px;border-radius:12px;background:#fff;color:#754d45;text-decoration:none}.resource-list span{color:#826b67;font-size:11px;line-height:1.5}.personal-safety small{color:#8c736e}.report{display:grid;gap:16px}.report-hero,.report-section{padding:28px 22px}.score-line{display:flex;align-items:flex-end;gap:16px}.score-line>strong{color:var(--purple);font-size:72px;line-height:.9;letter-spacing:-.07em}.score-line span{color:var(--muted);font-size:11px}.score-line h1{margin-top:4px;font-size:20px;letter-spacing:0}.score-track{height:8px;margin:22px 0}.report-hero>p:last-child{color:var(--muted);line-height:1.7}.risk-note,.conflicts{display:grid;gap:7px;margin-top:20px;padding:16px;border-radius:15px;background:#fff0e9;color:#774d43;font-size:13px}.dimension-list{display:grid;gap:18px}.dimension>div:first-child{display:flex;justify-content:space-between;font-size:13px}.dimension b{color:var(--purple)}.dimension-track{height:6px;margin-top:8px}.dimension p{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.conflicts h3{margin:0;font-size:15px}.conflicts p{margin:0;line-height:1.5}.section-intro{margin:-8px 0 22px;color:var(--muted);font-size:13px;line-height:1.7}.top-match-section{background:linear-gradient(145deg,#fffdfb,#f4f5ed)}.top-match-list,.strength-list{display:grid;gap:16px}.top-match-dimension{padding:18px;border:1px solid #dde2cf;border-radius:20px;background:#ffffffe0}.top-match-heading{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.top-match-heading .rank{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#68775a;color:#fff;font-size:13px;font-weight:800}.top-match-heading span{color:#78806d;font-size:10px;letter-spacing:.08em}.top-match-heading h3{margin:3px 0 0;font-size:18px}.top-match-heading>strong{color:#68775a;font-size:30px}.top-match-summary{margin:12px 0 16px;color:var(--muted);font-size:12px;line-height:1.65}.strength-card{padding:16px;border-radius:16px;background:#f7f8f2}.strength-card h4{margin:0 0 12px;font-size:15px}.shared-strength,.protective-value,.maintenance{padding:12px;border-radius:12px;background:#fff}.shared-strength strong,.protective-value strong,.maintenance strong{color:#67725a;font-size:11px}.shared-strength p,.protective-value p,.maintenance p,.contribution-grid p{margin:6px 0 0;color:#5f655a;font-size:12px;line-height:1.6}.contribution-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:9px 0}.contribution-grid>div{padding:12px;border:1px solid #dfe4d5;border-radius:12px;background:#ffffffbf}.contribution-grid span{color:#68775a;font-size:10px;font-weight:750}.contribution-grid.single{grid-template-columns:1fr}.contribution-grid.single>div{background:#f0f3e8}.deduction-note{margin:8px 0 4px;padding:12px;border-radius:12px;background:#fbf4e6;border:1px solid #ecdcbc}.deduction-note strong{color:#9a7b3b;font-size:11px;font-weight:750}.deduction-note p{margin:6px 0 0;color:#7a6a4a;font-size:12px;line-height:1.6}.protective-value{margin-bottom:9px;background:#f0f3e8}.maintenance{background:#eee8f5}.maintenance strong{color:var(--purple)}.no-strength{padding:14px;border-radius:12px;background:#f1f3ec;color:var(--muted);font-size:12px;line-height:1.6}.priority-dimensions,.divergence-list{display:grid;gap:16px}.priority-dimension{padding:18px;border:1px solid #eadfe9;border-radius:20px;background:#fff}.priority-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.priority-heading span{color:#8a758c;font-size:10px;letter-spacing:.08em}.priority-heading h3{margin:3px 0 0;font-size:18px}.priority-heading>strong{color:var(--purple);font-size:30px}.priority-summary{margin:12px 0 16px;color:var(--muted);font-size:12px;line-height:1.65}.divergence-card{padding:16px;border-radius:16px;background:linear-gradient(145deg,#faf6fb,#fff9f6)}.divergence-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.divergence-title h4{margin:0;font-size:15px;line-height:1.45}.severity{flex:0 0 auto;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:750}.severity.confirm{color:#65547c;background:#eee7f6}.severity.discuss{color:#8b5c35;background:#faead9}.severity.resolve_first{color:#91483c;background:#f9dfd9}.stance-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0}.stance-grid>div{padding:12px;border:1px solid #eadfe9;border-radius:12px;background:#fffc}.stance-grid span{color:var(--purple);font-size:10px;font-weight:750}.stance-grid p,.impact p,.discussion p{margin:6px 0 0;color:#645a66;font-size:12px;line-height:1.6}.impact,.discussion{margin-top:10px;padding-top:10px;border-top:1px solid #eadfe9}.impact strong,.discussion strong{color:#6a5b6c;font-size:11px}.discussion{padding:12px;border:0;border-radius:12px;background:#f3ecf8}.no-divergence{padding:14px;border-radius:12px;background:#f4f0f5;color:var(--muted);font-size:12px;line-height:1.6}.tasks{background:linear-gradient(145deg,#fffdfb,#f7f0fb)}.task{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.task span{display:grid;place-items:center;flex:0 0 31px;height:31px;border-radius:50%;color:#fff;background:var(--purple);font-size:12px}.task strong{font-size:14px;line-height:1.5}.privacy-panel{padding:15px 4px;color:var(--muted);text-align:center;font-size:11px;line-height:1.6}.text-button{border:0;background:transparent;color:#905d54;text-decoration:underline;font-size:11px}.error{margin-bottom:12px;padding:12px 14px;border-radius:12px;background:#fff0eb;color:#9b4939;font-size:13px}.demo-banner{margin-bottom:12px;padding:11px 14px;border:1px solid #d9c8e6;border-radius:12px;background:#f4eef9;color:var(--purple-dark);text-align:center;font-size:12px;font-weight:700}.center-state{display:grid;place-items:center;min-height:60vh;color:var(--muted)}@media(max-width:360px){main{padding-inline:10px}.hero,.panel,.question-page,.report-hero,.report-section{border-radius:22px;padding-inline:17px}.feature-row span{padding-inline:8px}.stance-grid,.contribution-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}.auto-advance-hint{display:block;margin-top:6px;color:#8a8f98;font-size:12px}.badge-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 50% 30%,#281846d1,#0a0a14f0);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:badge-overlay-in .35s ease both}@keyframes badge-overlay-in{0%{opacity:0}to{opacity:1}}.badge-reveal{position:relative;width:100%;max-width:360px;text-align:center;padding:36px 28px 30px;border-radius:24px;background:linear-gradient(160deg,#ffffff1f,#ffffff0a);border:1px solid rgba(255,255,255,.18);color:#fff;box-shadow:0 20px 60px #00000073;animation:badge-pop .6s cubic-bezier(.18,.89,.32,1.28) both}@keyframes badge-pop{0%{opacity:0;transform:scale(.7) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.badge-medal{width:132px;height:132px;margin:0 auto 18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(from 180deg,#ffd76f,#ff8bd0,#8f7bff,#6fd6ff,#ffd76f);box-shadow:0 0 0 6px #ffffff1f,0 12px 30px #8f7bff80;animation:badge-glow 2.4s ease-in-out infinite}.badge-medal-inner{width:104px;height:104px;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:2px;background:#18122be6;box-shadow:inset 0 1px 6px #00000059}.badge-reveal.gentle .badge-medal{background:conic-gradient(from 180deg,#cfd6e6,#aeb6c8,#cfd6e6);box-shadow:0 0 0 6px #ffffff14,0 12px 24px #0006;animation:none}@keyframes badge-glow{0%,to{box-shadow:0 0 0 6px #ffffff1f,0 12px 30px #8f7bff80}50%{box-shadow:0 0 0 10px #ffffff2e,0 16px 44px #ff8bd099}}.badge-medal-score{font-size:48px;font-weight:800;color:#fff;line-height:1;letter-spacing:-1px}.badge-medal-unit{font-size:15px;font-weight:600;color:#ffffffbf;align-self:flex-end;padding-bottom:30px}.badge-title{margin:6px 0 8px;font-size:30px;letter-spacing:4px}.badge-subtitle{margin:0 0 22px;color:#ffffffd1;font-size:14px;line-height:1.6}.badge-reveal .primary{width:100%}.badge-sparkles{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:24px}.badge-sparkles span{position:absolute;top:40px;left:50%;width:8px;height:8px;border-radius:50%;background:#ffd76f;opacity:0;animation:badge-spark 1.4s ease-out infinite}.badge-sparkles span:nth-child(1){--tx: -110px;--ty: -60px;background:#ff8bd0;animation-delay:.05s}.badge-sparkles span:nth-child(2){--tx: 120px;--ty: -40px;background:#6fd6ff;animation-delay:.2s}.badge-sparkles span:nth-child(3){--tx: -90px;--ty: 80px;background:#ffd76f;animation-delay:.35s}.badge-sparkles span:nth-child(4){--tx: 100px;--ty: 90px;background:#8f7bff;animation-delay:.5s}.badge-sparkles span:nth-child(5){--tx: -140px;--ty: 20px;background:#6fd6ff;animation-delay:.65s}.badge-sparkles span:nth-child(6){--tx: 140px;--ty: 30px;background:#ff8bd0;animation-delay:.8s}@keyframes badge-spark{0%{opacity:0;transform:translate(0) scale(.4)}30%{opacity:1}to{opacity:0;transform:translate(var(--tx),var(--ty)) scale(1)}}@media(prefers-reduced-motion:reduce){.badge-reveal,.badge-overlay,.badge-medal{animation:none!important}.badge-sparkles{display:none}}.share-cta{display:inline-flex;align-items:center;gap:6px;margin-top:14px;padding:10px 20px;border:none;border-radius:999px;background:linear-gradient(135deg,#7c5cff,#b06cff);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 6px 18px #7c5cff59}.share-cta:hover{filter:brightness(1.05)}.share-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:#0a0a1499;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:badge-overlay-in .25s ease both}.share-sheet{position:relative;width:100%;max-width:420px;max-height:90vh;overflow-y:auto;padding:26px 22px 30px;border-radius:22px 22px 0 0;background:#1b1430;color:#fff;box-shadow:0 -12px 40px #00000080;animation:sheet-up .3s cubic-bezier(.18,.89,.32,1.1) both}@media(min-width:520px){.share-overlay{align-items:center}.share-sheet{border-radius:22px}}@keyframes sheet-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.share-close{position:absolute;top:12px;right:14px;width:32px;height:32px;border:none;border-radius:50%;background:#ffffff1a;color:#fff;font-size:20px;line-height:1;cursor:pointer}.share-tabs{display:flex;gap:8px;margin:4px 0 18px;padding:4px;border-radius:12px;background:#ffffff14}.share-tabs button{flex:1;padding:10px;border:none;border-radius:9px;background:transparent;color:#ffffffb3;font-size:14px;font-weight:600;cursor:pointer}.share-tabs button.active{background:#7c5cff;color:#fff}.share-panel{display:flex;flex-direction:column;gap:12px}.share-panel>p{margin:0;color:#ffffffd1;font-size:14px;line-height:1.6}.share-link{padding:12px 14px;border-radius:10px;background:#ffffff14;color:#ffffffe6;font-size:13px;word-break:break-all}.share-panel .primary,.share-panel .secondary{width:100%}.share-hint{color:#ffffff8c!important;font-size:12px!important}.share-poster{width:100%;max-width:300px;margin:0 auto;border-radius:14px;box-shadow:0 10px 30px #00000073}
