:root {
  --bg: #e8e6e5;
  --surface: #f3f1f0;
  --surface-hi: #faf8f7;
  --ink: #253042;
  --muted: #697180;
  --rose: #c79aa2;
  --rose-soft: #dfc1c6;
  --rose-pale: #f0e3e5;
  --blue: #9daab4;
  --shadow-dark: rgba(119, 112, 110, .20);
  --shadow-light: rgba(255, 255, 255, .92);
  --serif: "Songti SC", "STSong", "Noto Serif SC", serif;
  --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
}

@property --sweep { syntax: "<angle>"; inherits: false; initial-value: 0deg; }

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
  background: radial-gradient(circle at 50% 0%, #f6f4f3 0, var(--bg) 68%);
  color: var(--ink);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
}
button { font: inherit; }

.app-shell {
  width: min(100%, 430px);
  min-height: 100dvh;
  margin: 0 auto;
  padding: max(18px, env(safe-area-inset-top)) 22px max(18px, env(safe-area-inset-bottom));
  background: linear-gradient(150deg, rgba(250,249,248,.94), rgba(238,236,235,.98));
  overflow: hidden;
  position: relative;
}

@media (min-width: 600px) {
  body { padding: 28px 0; }
  .app-shell {
    min-height: min(850px, calc(100dvh - 56px));
    border-radius: 40px;
    box-shadow: 24px 24px 56px var(--shadow-dark), -18px -18px 46px var(--shadow-light);
  }
}

.screen {
  min-height: calc(100dvh - 36px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  animation: none;
}
@media (min-width: 600px) { .screen { min-height: min(792px, calc(100dvh - 92px)); } }
@keyframes rise { from { opacity: 0; transform: translateY(10px); } }

.topbar { display: flex; align-items: flex-start; justify-content: space-between; min-height: 52px; border-bottom: 1px solid rgba(78,77,81,.12); }
.brand-logo { width: 48px; height: 25px; object-fit: contain; object-position: left center; opacity: .82; filter: saturate(.72) brightness(1.04); }
.micro { font-size: 10px; letter-spacing: .22em; color: var(--muted); text-transform: uppercase; text-align: right; }
.dots { display: flex; justify-content: flex-end; gap: 6px; margin-top: 9px; }
.dots i { width: 7px; height: 7px; border-radius: 50%; background: #d3d0cf; }
.dots i.active { background: var(--rose); box-shadow: 0 2px 5px rgba(160,110,119,.28); }
.progress { height: 5px; margin-top: -1px; border-radius: 6px; background: #d9d6d5; box-shadow: inset 1px 1px 3px rgba(118,113,111,.16); overflow: hidden; }
.progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--rose-soft), var(--rose)); transition: width .35s ease; }

h1, h2, p { margin-top: 0; }
.hero-title, .question-title, .result-title {
  font-family: var(--serif);
  font-weight: 600;
  letter-spacing: -.04em;
}
.hero-title { margin: 43px 0 20px; line-height: 1; }
.hero-title .small-line { display:block; font-size: clamp(25px, 7.3vw, 31px); letter-spacing: .04em; margin-left: 3px; }
.hero-title .large-line { display:block; font-size: clamp(55px, 15.5vw, 68px); line-height: 1.06; margin-top: 8px; white-space: nowrap; }
.hero-title em, .result-title em { color: var(--rose); font-style: normal; }
.lede { color: var(--muted); font-size: 16px; line-height: 1.85; }

.hero-object { flex:1; min-height:204px; margin:12px 0 18px; display:flex; align-items:center; justify-content:center; }
.orbit-hero { width:310px; height:205px; position:relative; filter:drop-shadow(14px 18px 18px rgba(117,108,106,.13)); }
.orbit { position:absolute; top:20px; width:166px; height:166px; border-radius:50%; background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(224,220,219,.73)); box-shadow:inset 7px 7px 14px rgba(127,117,115,.12),inset -8px -8px 17px #fff,8px 10px 20px rgba(115,109,107,.12); }
.orbit::before { content:""; position:absolute; inset:17px; border:1px solid rgba(111,102,105,.15); border-radius:50%; }
.orbit::after { content:""; position:absolute; width:8px; height:8px; border-radius:50%; background:var(--rose); box-shadow:0 0 0 7px rgba(199,154,162,.13); }
.orbit-a { left:7px; }
.orbit-b { right:7px; }
.orbit-a::after { left:24px; top:44px; }
.orbit-b::after { right:22px; bottom:47px; background:#98a6b1; box-shadow:0 0 0 7px rgba(152,166,177,.13); }
.orbit span { position:absolute; font-family:var(--serif); font-size:18px; color:var(--muted); letter-spacing:.08em; }
.orbit-a span { left:27px; bottom:42px; }
.orbit-b span { right:26px; top:41px; }
.orbit-core { position:absolute; left:50%; top:102px; transform:translate(-50%,-50%); width:86px; height:86px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; background:linear-gradient(145deg,#f7edef,#dcbcc1); box-shadow:9px 10px 20px rgba(138,104,109,.18),-7px -7px 15px #fff,inset 1px 1px 3px rgba(255,255,255,.8); z-index:2; }
.orbit-core b { font-family:var(--serif); font-size:25px; font-weight:500; }
.orbit-core small { margin-top:3px; font-size:8px; letter-spacing:.05em; color:var(--muted); white-space:nowrap; }
.orbit-note { position:absolute; bottom:2px; font-size:9px; letter-spacing:.16em; color:var(--muted); }
.note-a { left:26px; }.note-b { right:25px; }

.primary-btn, .soft-btn {
  border: 0; color: var(--ink); cursor: pointer; border-radius: 28px; min-height: 58px;
  background: linear-gradient(145deg, #faf8f7, #e7e4e3);
  box-shadow: 10px 10px 22px rgba(122,116,113,.18), -9px -9px 20px #fff;
}
.primary-btn { width: 100%; color: #fff; font-family: var(--serif); font-size: 22px; background: linear-gradient(145deg, #d7a6ad, #bd7f89); box-shadow: 10px 12px 24px rgba(164,113,122,.25), -9px -9px 20px #fff, inset 1px 1px 2px rgba(255,255,255,.52); }
.primary-btn:active, .soft-btn:active, .choice:active { transform: translateY(1px) scale(.995); }
.meta { text-align: center; color: var(--muted); font-size: 13px; margin: 19px 0 4px; }

.question-wrap { display: flex; flex: 1; flex-direction: column; padding-top: 34px; }
.question-title { font-size: clamp(25px, 7vw, 31px); line-height: 1.42; margin: 0 0 24px; letter-spacing:-.025em; }
.question-title .q-line { display:block; white-space:nowrap; }
.question-title.compact { font-size:clamp(21px,5.9vw,25px); line-height:1.55; }
.question-title.small { font-family:var(--sans); font-size:12px; letter-spacing:.16em; color:var(--muted); font-weight:500; margin-bottom:16px; }
.background-card { padding:22px 22px 20px; border-radius:28px; margin-bottom:18px; background:linear-gradient(145deg,#f9f7f6,#e7e4e3); box-shadow:9px 9px 19px rgba(124,117,114,.15),-8px -8px 17px #fff; }
.background-card .number { color:var(--rose); font-family:var(--serif); font-size:13px; }
.background-card h2 { font-family:var(--serif); font-size:25px; font-weight:500; line-height:1.25; margin:8px 0 0; }
.choice-list { display: grid; gap: 11px; }
.choice {
  border: 0; min-height: 57px; border-radius: 20px; padding: 0 20px; text-align: left; color: var(--ink); cursor: pointer;
  background: linear-gradient(145deg, #f9f7f6, #e8e5e4);
  box-shadow: 8px 8px 17px rgba(124,117,114,.16), -7px -7px 16px #fff;
  display: flex; align-items: center; gap: 15px;
}
.choice .radio { width: 24px; height: 24px; border-radius: 50%; box-shadow: inset 3px 3px 7px rgba(126,119,116,.14), inset -3px -3px 7px #fff; flex: 0 0 auto; }
.choice.selected { background: linear-gradient(145deg, #f7ecee, #ece3e4); }
.choice.selected .radio::after { content: ""; display: block; width: 14px; height: 14px; margin: 5px; border-radius: 50%; background: var(--rose); box-shadow: 0 0 0 4px rgba(199,141,150,.13); }

.scale-panel { margin-top: auto; margin-bottom: auto; padding: 34px 4px 24px; }
.scale-label { min-height: 28px; text-align: center; color: var(--ink); font-size: 15px; margin-bottom: 24px; }
.scale { display: flex; align-items: center; justify-content: space-between; padding: 0 5px; }
.scale button { border: 0; border-radius: 50%; cursor: pointer; background: linear-gradient(145deg,#faf8f7,#e5e2e1); box-shadow: 5px 5px 10px rgba(122,116,113,.19), -5px -5px 10px #fff; position: relative; }
.scale button:nth-child(1) { width: 32px; height: 32px; }
.scale button:nth-child(2) { width: 39px; height: 39px; }
.scale button:nth-child(3) { width: 46px; height: 46px; }
.scale button:nth-child(4) { width: 53px; height: 53px; }
.scale button:nth-child(5) { width: 60px; height: 60px; }
.scale button.selected { background: linear-gradient(145deg, #edcfd3, #c99099); box-shadow: 0 0 0 8px rgba(213,168,175,.18), 7px 7px 15px rgba(138,104,109,.19), -6px -6px 13px #fff; }
.scale-ends { display: flex; justify-content: space-between; margin-top: 21px; font-size: 13px; color: var(--muted); }
.nav-row { display: flex; justify-content: space-between; margin-top: auto; padding-top: 16px; }
.nav-circle { width: 56px; height: 56px; border: 0; border-radius: 50%; cursor: pointer; color: var(--ink); background: linear-gradient(145deg,#faf8f7,#e3e0df); box-shadow: 8px 8px 17px rgba(124,117,114,.17), -7px -7px 16px #fff; font-size: 27px; display:grid; place-items:center; padding:0 0 4px; line-height:1; }
.nav-circle.next { color: white; background: linear-gradient(145deg, #d8a7ae, #bc7e88); }
.nav-circle:disabled { opacity: .35; cursor: default; }

.result-screen { padding-bottom: 68px; }
.result-card { display: none; flex: 1; flex-direction: column; padding-top: 25px; min-height:0; }
.result-card.active { display: flex; animation: rise .35s ease both; }
.result-kicker { font-size:10px; letter-spacing:.22em; color:var(--muted); margin-bottom:13px; }
.result-title { font-size: clamp(31px, 8.5vw, 37px); line-height: 1.18; margin-bottom: 12px; letter-spacing:-.055em; font-weight:500; }
.result-title .nowrap { white-space:nowrap; }
.result-title .title-light { font-size:.64em; color:var(--muted); letter-spacing:.04em; font-weight:400; }
.result-title em { display:inline-block; font-size:1.15em; margin-top:3px; }
.result-copy { color: var(--muted); line-height: 1.65; font-size: 13px; }
.result-caption { color:var(--muted); font-size:12px; line-height:1.6; margin:12px 5px 0; }
.score-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 12px; margin: 13px 0 13px; }
.score { min-height: 135px; border-radius: 29px; display: flex; flex-direction: column; justify-content: center; align-items: center; background: linear-gradient(145deg,#f9f7f6,#e5e2e1); box-shadow: 9px 9px 18px rgba(123,116,113,.15), -8px -8px 17px #fff, inset 2px 2px 4px rgba(255,255,255,.7); }
.score strong { font-family: var(--serif); font-weight: 400; font-size: 52px; color: var(--rose); }
.score.small strong { color: var(--ink); font-size: 40px; }
.score span { font-size: 13px; color: var(--muted); }
.quadrant { border-radius: 27px; padding: 15px 17px; min-height: 151px; background: linear-gradient(145deg,#f8f6f5,#e7e4e3); box-shadow: 9px 9px 18px rgba(123,116,113,.15), -8px -8px 17px #fff; }
.quad-grid { height: 91px; width: 91px; margin: 0 auto; border-radius: 18px; position: relative; box-shadow: inset 4px 4px 9px rgba(126,119,116,.13), inset -4px -4px 9px #fff; }
.quad-grid::before,.quad-grid::after { content:""; position:absolute; background:rgba(80,85,94,.23); }
.quad-grid::before { width:1px; height:100%; left:50%; }
.quad-grid::after { height:1px; width:100%; top:50%; }
.user-dot { position:absolute; width:16px; height:16px; border-radius:50%; background:var(--rose); box-shadow:0 0 0 5px rgba(199,141,150,.13); transform:translate(-50%,50%); }
.soft-link { border: 0; background: none; color: var(--ink); padding: 12px; text-decoration: underline; text-decoration-color: var(--rose-soft); text-underline-offset: 5px; cursor:pointer; }

/* A single visual language for the report: orbit, signal, cycle and coordinates. */
.profile-orbits { height:275px; position:relative; margin:2px 0 2px; }
.score-orbit { position:absolute; width:196px; height:196px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(from 210deg,var(--tone) var(--value),rgba(214,210,209,.48) 0); filter:drop-shadow(8px 10px 12px rgba(116,107,105,.12)); }
.score-orbit::before { content:""; position:absolute; inset:10px; border-radius:50%; background:linear-gradient(145deg,#f7f5f4,#e6e3e2); box-shadow:inset 5px 5px 10px rgba(124,116,114,.1),inset -6px -6px 12px #fff; }
.score-orbit span { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; }
.score-orbit b { font-family:var(--serif); font-size:47px; line-height:.9; font-weight:400; }
.score-orbit small { font-size:10px; letter-spacing:.15em; margin-top:9px; color:var(--muted); }
.score-orbit.anxiety { --tone:#d1a1a9; left:3px; top:12px; }
.score-orbit.avoidance { --tone:#a8b2ba; right:3px; top:66px; }
.score-orbit.avoidance b { color:#5f6974; }
.profile-mark { position:absolute; left:50%; top:131px; transform:translate(-50%,-50%); z-index:3; width:60px; height:60px; border-radius:50%; display:grid; place-content:center; text-align:center; font-size:10px; letter-spacing:.12em; background:#eee9e8; box-shadow:6px 7px 14px rgba(114,106,104,.19),-5px -5px 12px #fff; }
.profile-mark small { font-size:6px; color:var(--muted); }
.profile-bottom { border-top:1px solid rgba(74,74,79,.12); padding-top:13px; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.profile-bottom p { margin:0; max-width:235px; color:var(--muted); font-size:11px; line-height:1.55; }
.profile-bottom .soft-link { flex:0 0 auto; padding:2px 0; font-size:10px; white-space:nowrap; }

.signal-map { height:335px; position:relative; margin-top:3px; border-radius:38px; background:linear-gradient(145deg,rgba(249,247,246,.92),rgba(228,225,224,.9)); box-shadow:10px 12px 23px rgba(122,115,112,.14),-9px -9px 20px #fff,inset 1px 1px 2px rgba(255,255,255,.8); overflow:hidden; }
.signal-map::before,.signal-map::after { content:""; position:absolute; border:1px solid rgba(116,106,108,.13); border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); }
.signal-map::before { width:238px; height:238px; }.signal-map::after { width:164px; height:164px; }
.signal-center { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:92px; height:92px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; z-index:3; background:linear-gradient(145deg,#f5e6e8,#d8b0b6); box-shadow:8px 9px 18px rgba(142,108,113,.19),-7px -7px 16px #fff; }
.signal-center i { width:8px; height:8px; border-radius:50%; background:#fff; margin-bottom:5px; box-shadow:0 0 0 6px rgba(255,255,255,.25); }.signal-center b { font-family:var(--serif); font-size:23px; }.signal-center small { font-size:8px; color:var(--muted); }
.signal-line { position:absolute; height:1px; left:50%; top:50%; transform-origin:left center; background:linear-gradient(90deg,var(--rose),transparent); z-index:2; }
.line-a { width:calc(var(--signal-a) * 1.35); transform:rotate(-38deg); }.line-b { width:calc(var(--signal-b) * 1.25); transform:rotate(140deg); background:linear-gradient(90deg,#9ba9b4,transparent); }
.signal-line::after { content:""; position:absolute; right:0; top:-5px; width:11px; height:11px; border-radius:50%; background:currentColor; box-shadow:0 0 0 6px rgba(201,157,165,.14); }
.line-a { color:var(--rose); }.line-b { color:#9ba9b4; }
.signal-label { position:absolute; z-index:4; max-width:168px; }.signal-label small { display:block; font-size:8px; letter-spacing:.18em; color:var(--muted); margin-bottom:5px; }.signal-label strong { font-family:var(--serif); font-size:16px; font-weight:500; line-height:1.25; }
.label-a { right:18px; top:30px; text-align:right; }.label-b { left:20px; bottom:27px; max-width:175px; }

.cycle-visual { height:340px; position:relative; margin-top:2px; }
.cycle-visual svg { position:absolute; width:280px; height:280px; left:50%; top:50%; transform:translate(-50%,-50%) rotate(-45deg); overflow:visible; }
.cycle-visual svg circle { fill:none; stroke:rgba(107,103,105,.1); stroke-width:25; }
.cycle-visual svg path { fill:none; stroke:rgba(190,143,151,.56); stroke-width:2; stroke-linecap:round; stroke-dasharray:7 7; }
.cycle-core { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:102px; height:102px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; background:linear-gradient(145deg,#f8f6f5,#e6e2e1); box-shadow:inset 5px 5px 10px rgba(126,117,114,.11),inset -6px -6px 12px #fff; }
.cycle-core small { font-size:9px; letter-spacing:.16em; color:var(--muted); }.cycle-core b { font-family:var(--serif); font-size:24px; font-weight:500; color:var(--rose); }
.cycle-node { position:absolute; width:112px; min-height:58px; border-radius:20px; padding:9px 10px; display:flex; align-items:center; gap:7px; background:linear-gradient(145deg,#faf8f7,#e8e4e3); box-shadow:7px 8px 15px rgba(122,115,112,.14),-6px -6px 13px #fff; }
.cycle-node i { font-style:normal; font-family:var(--serif); font-size:12px; color:var(--rose); }.cycle-node span { font-size:11px; line-height:1.35; }
.cycle-node.n1 { left:50%; top:3px; transform:translateX(-50%); }.cycle-node.n2 { right:0; top:50%; transform:translateY(-50%); }.cycle-node.n3 { left:50%; bottom:3px; transform:translateX(-50%); }.cycle-node.n4 { left:0; top:50%; transform:translateY(-50%); }

.context-map { height:305px; position:relative; margin:10px 18px 4px 24px; border-left:1px solid rgba(70,75,83,.32); border-bottom:1px solid rgba(70,75,83,.32); background:radial-gradient(circle at 80% 78%,rgba(216,174,181,.28),transparent 35%),radial-gradient(circle at 22% 22%,rgba(169,181,190,.18),transparent 34%); }
.context-cross::before,.context-cross::after { content:""; position:absolute; background:rgba(77,82,89,.1); }.context-cross::before { left:50%; top:0; width:1px; height:100%; }.context-cross::after { top:50%; left:0; height:1px; width:100%; }
.axis-name { position:absolute; font-size:8px; letter-spacing:.13em; color:var(--muted); white-space:nowrap; }.axis-name.y { left:-9px; top:0; transform:translateX(-100%); writing-mode:vertical-rl; }.axis-name.x { right:0; bottom:-19px; }
.context-zone { position:absolute; font-family:var(--serif); color:rgba(86,91,99,.32); font-size:16px; }.z1{right:15px;top:14px}.z2{left:14px;top:14px}.z3{left:14px;bottom:14px}
.context-dot { position:absolute; transform:translate(-50%,50%); display:flex; align-items:center; gap:8px; white-space:nowrap; }.context-dot i { width:17px; height:17px; border-radius:50%; background:var(--rose); box-shadow:0 0 0 9px rgba(199,154,162,.15),0 4px 9px rgba(130,93,101,.22); }.context-dot b { font-size:11px; font-weight:500; }
.context-summary { display:flex; align-items:baseline; justify-content:center; gap:7px; margin:12px 0 0; }.context-summary strong { font-family:var(--serif); font-size:19px; font-weight:500; }.context-summary span { font-size:9px;color:var(--muted);}.context-summary i { width:1px;height:18px;background:rgba(70,75,83,.16);margin:0 8px; }

.observe-visual { flex:1; display:grid; grid-template-columns:1fr 35px 1fr; align-items:center; min-height:320px; margin:0 -4px; }
.observe-card { height:235px; border-radius:70px 70px 28px 28px; padding:26px 16px 20px; position:relative; overflow:hidden; display:flex; flex-direction:column; background:linear-gradient(145deg,#f9f7f6,#e7e3e2); box-shadow:9px 11px 20px rgba(122,115,112,.15),-8px -8px 18px #fff; }
.observe-card.feeling { border-radius:28px 28px 70px 70px; justify-content:flex-end; background:linear-gradient(145deg,#f4e9eb,#e2cdd0); }
.observe-card > span { font-family:var(--serif); font-size:13px; color:var(--rose); }.observe-card small { font-size:8px; letter-spacing:.1em; color:var(--muted); margin:12px 0 8px; }.observe-card strong { font-family:var(--serif); font-size:19px; line-height:1.35; font-weight:500; }
.observe-card i { position:absolute; width:70px; height:70px; border-radius:50%; border:1px solid rgba(100,100,106,.12); right:-15px; bottom:-17px; }
.observe-card.feeling i { right:auto; left:-14px; top:-16px; bottom:auto; }
.observe-bridge { height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; }.observe-bridge span { flex:1; width:1px; background:linear-gradient(transparent,rgba(79,83,90,.2)); }.observe-bridge span:last-child { background:linear-gradient(rgba(79,83,90,.2),transparent); }.observe-bridge b { writing-mode:vertical-rl; font-family:var(--serif); font-size:12px; letter-spacing:.2em; font-weight:400; color:var(--muted); }
.restart-link { align-self:center; border:0; background:transparent; margin-top:10px; padding:7px 14px; font-size:11px; text-decoration:underline; text-underline-offset:5px; text-decoration-color:var(--rose); color:var(--ink); }
.context-ring { position:relative; }

/* Refined cover: a frosted jewellery-like object rather than two flat circles. */
.orbit-hero::before { content:""; position:absolute; left:23px; right:23px; top:7px; bottom:6px; border-radius:50px; background:linear-gradient(135deg,rgba(255,255,255,.48),rgba(237,230,230,.18)); border:1px solid rgba(255,255,255,.7); box-shadow:inset 1px 1px 0 #fff,0 25px 44px rgba(116,105,104,.12); backdrop-filter:blur(8px); transform:rotate(-3deg); }
.orbit-hero::after { content:"✦"; position:absolute; right:34px; top:7px; font-size:18px; color:#d7b0b6; text-shadow:0 0 12px rgba(210,161,170,.42); }
.orbit { backdrop-filter:blur(5px); border:1px solid rgba(255,255,255,.72); }
.orbit-a { transform:rotate(-8deg); }.orbit-b { transform:rotate(8deg); }
.orbit-core { border:1px solid rgba(255,255,255,.75); }

/* Result 01 — clear type first, data second. */
.type-lockup { margin-top:19px; position:relative; }
.type-lockup small { display:block; font-size:12px; letter-spacing:.08em; color:var(--muted); }
.type-lockup h1 { font-family:var(--serif); font-weight:500; font-size:clamp(57px,16vw,69px); line-height:1; letter-spacing:-.08em; margin:10px 0 0; color:var(--rose); text-shadow:0 9px 22px rgba(180,132,141,.13); white-space:nowrap; }
.type-lockup > span { display:block; margin:5px 0 0 3px; font-size:9px; letter-spacing:.18em; color:var(--muted); }
.type-intro { margin:10px 0 4px; max-width:330px; color:var(--muted); font-size:12px; line-height:1.55; }
.profile-dashboard { height:270px; position:relative; margin-top:2px; }
.profile-dashboard .profile-orbits { position:absolute; left:-9px; top:5px; width:270px; height:250px; margin:0; }
.profile-dashboard .score-orbit { width:165px; height:165px; border:1px solid rgba(255,255,255,.78); box-shadow:0 19px 30px rgba(112,103,102,.12),inset 0 0 0 1px rgba(255,255,255,.48); }
.profile-dashboard .score-orbit::before { inset:12px; box-shadow:inset 9px 9px 18px rgba(120,111,109,.13),inset -11px -11px 20px #fff,0 4px 9px rgba(116,108,105,.08); }
.profile-dashboard .score-orbit::after { content:""; position:absolute; inset:25px; border-radius:50%; background:radial-gradient(circle at 34% 26%,rgba(255,255,255,.95),rgba(255,255,255,0) 34%); z-index:1; pointer-events:none; }
.profile-dashboard .score-orbit.anxiety { left:0; top:4px; transform:perspective(500px) rotateX(8deg) rotateY(8deg); }
.profile-dashboard .score-orbit.avoidance { right:0; top:76px; transform:perspective(500px) rotateX(-7deg) rotateY(-9deg); }
.profile-dashboard .score-orbit b { font-size:39px; }.profile-dashboard .score-orbit small { letter-spacing:.08em; }
.mini-quadrant { position:absolute; right:0; top:49px; width:126px; height:126px; border-radius:25px; background:linear-gradient(145deg,#f8f6f5,#e6e3e2); box-shadow:8px 9px 18px rgba(120,113,110,.15),-7px -7px 16px #fff,inset 1px 1px 3px rgba(255,255,255,.8); overflow:hidden; }
.mini-quadrant .quad-v,.mini-quadrant .quad-h { position:absolute; background:rgba(75,79,87,.16); }.mini-quadrant .quad-v{width:1px;height:100%;left:50%;}.mini-quadrant .quad-h{height:1px;width:100%;top:50%;}
.quad-label { position:absolute; font-size:7px; color:rgba(74,79,87,.48); }.quad-label.secure{left:9px;bottom:8px}.quad-label.anxious{right:9px;bottom:8px}.quad-label.avoidant{left:9px;top:8px}.quad-label.mixed{right:9px;top:8px}
.mini-quadrant .user-dot { position:absolute; width:13px; height:13px; border-radius:50%; background:var(--rose); transform:translate(-50%,50%); box-shadow:0 0 0 6px rgba(199,154,162,.16),0 4px 8px rgba(130,93,101,.2); z-index:3; }
.dimension-link { align-self:flex-end; margin-top:-25px; padding:5px 0; font-size:10px; white-space:nowrap; }

/* Result 02 — explicit trigger ranking. */
.trigger-rank { margin-top:18px; display:grid; gap:17px; }
.trigger-row > div:first-child { display:flex; align-items:baseline; gap:9px; margin-bottom:8px; }
.trigger-row i { font-family:var(--serif); font-style:normal; color:var(--rose); font-size:11px; }.trigger-row strong{font-family:var(--serif);font-size:17px;font-weight:500}.trigger-row span{margin-left:auto;font-size:8px;letter-spacing:.14em;color:var(--rose)}
.trigger-track { height:13px; border-radius:20px; background:#dfdcdb; box-shadow:inset 3px 3px 7px rgba(117,110,108,.14),inset -3px -3px 7px #fff; overflow:hidden; }.trigger-track b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e5c8cd,#cfa0a8);box-shadow:inset 1px 1px 2px rgba(255,255,255,.65)}
.trigger-row:not(.primary){opacity:.62}.trigger-row.primary .trigger-track{height:18px}.trigger-row.primary strong{font-size:21px}
.plain-explain { margin-top:25px; padding:19px 20px; border-radius:25px; background:linear-gradient(145deg,#faf8f7,#e8e5e4); box-shadow:8px 9px 18px rgba(120,113,110,.14),-7px -7px 16px #fff; }.plain-explain strong{display:block;font-family:var(--serif);font-size:16px;font-weight:500;line-height:1.4}.plain-explain p{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.55}

/* Result 03 — how the user reaches for support. */
.need-visual { height:160px; display:flex; align-items:center; justify-content:center; margin:15px 0 4px; }
.need-person { width:72px;height:72px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#f7e9eb,#dbbac0);box-shadow:8px 9px 18px rgba(139,105,111,.18),-7px -7px 15px #fff;z-index:2}.need-person.ta{background:linear-gradient(145deg,#f8f7f6,#dfe3e5)}.need-person i{width:13px;height:13px;border-radius:50%;border:1px solid rgba(74,79,87,.32);position:relative;margin-bottom:5px}.need-person i::after{content:"";position:absolute;left:50%;top:14px;width:22px;height:10px;border:1px solid rgba(74,79,87,.25);border-bottom:0;border-radius:15px 15px 0 0;transform:translateX(-50%)}.need-person b{font-family:var(--serif);font-size:13px;margin-top:8px;font-weight:500}
.need-path { width:150px;height:50px;position:relative;display:flex;align-items:center;justify-content:space-around}.need-path::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,var(--rose),#9ba9b4)}.need-path span{width:9px;height:9px;border-radius:50%;background:#e7d0d4;box-shadow:0 0 0 5px rgba(199,154,162,.1);z-index:1}.need-path.avoidant span:nth-child(2),.need-path.mixed span:nth-child(2){transform:translateY(18px)}.need-path.mixed::after{content:"↔";position:absolute;left:50%;top:-5px;transform:translateX(-50%);font-size:16px;color:var(--muted)}
.need-card { padding:18px 20px;border-radius:26px;background:linear-gradient(145deg,#faf8f7,#e7e4e3);box-shadow:8px 9px 18px rgba(120,113,110,.14),-7px -7px 16px #fff}.need-card small{font-size:8px;letter-spacing:.17em;color:var(--muted)}.need-card h2{font-family:var(--serif);font-size:20px;line-height:1.25;font-weight:500;margin:8px 0}.need-card p{font-size:11px;line-height:1.55;color:var(--muted);margin:0}.need-tags{display:flex;gap:7px;margin-top:13px;overflow:hidden}.need-tags span{font-size:9px;white-space:nowrap;padding:7px 9px;border:1px solid rgba(91,94,101,.13);border-radius:20px;color:var(--muted)}

/* Result 05 — direct relationship evidence, no ambiguous quadrant. */
.context-balance { display:grid;grid-template-columns:1fr 1.05fr;gap:15px;align-items:center;margin:19px 0 7px}.context-ring{width:158px;height:158px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(from 210deg,var(--rose) var(--uncertainty),rgba(218,214,213,.52) 0);box-shadow:0 16px 28px rgba(117,108,106,.13)}.context-ring::before{content:"";position:absolute;width:132px;height:132px;border-radius:50%;background:linear-gradient(145deg,#f8f6f5,#e5e2e1);box-shadow:inset 6px 6px 13px rgba(123,115,113,.11),inset -7px -7px 14px #fff}.context-ring>div{position:relative;text-align:center;display:flex;flex-direction:column}.context-ring b{font-family:var(--serif);font-size:39px;font-weight:400}.context-ring small{font-size:8px;color:var(--muted);letter-spacing:.08em}.context-facts{display:grid;gap:18px}.context-facts>div{display:flex;flex-direction:column}.context-facts small{font-size:8px;letter-spacing:.13em;color:var(--muted)}.context-facts strong{font-family:var(--serif);font-size:19px;font-weight:500;margin:4px 0 8px}.fact-dots{display:flex;gap:5px}.fact-dots i{width:9px;height:9px;border-radius:50%;background:#d6d3d2;box-shadow:inset 1px 1px 2px rgba(107,101,99,.12)}.fact-dots i.on{background:var(--rose)}.context-copy{margin-top:14px}
/* V5 cover object: asymmetrical pearls without labels. */
.orbit-hero { height:210px; }
.orbit-hero::before { left:18px; right:18px; top:11px; bottom:8px; border-radius:62px 44px 70px 48px; transform:rotate(-2deg); }
.pearl { position:absolute; z-index:1; background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(225,219,219,.78)); border:1px solid rgba(255,255,255,.86); box-shadow:inset 9px 10px 19px rgba(130,117,116,.11),inset -12px -12px 23px rgba(255,255,255,.95),12px 20px 27px rgba(117,107,106,.14); }
.pearl::before { content:""; position:absolute; inset:17px; border-radius:inherit; border:1px solid rgba(126,112,114,.1); background:radial-gradient(circle at 31% 24%,rgba(255,255,255,.9),transparent 38%); }
.pearl i { position:absolute; width:9px; height:9px; border-radius:50%; background:var(--rose); box-shadow:0 0 0 7px rgba(199,154,162,.12); }
.pearl-a { width:177px; height:155px; left:12px; top:25px; border-radius:55% 45% 59% 41% / 45% 58% 42% 55%; transform:rotate(-9deg); }
.pearl-a i { left:23px; top:46px; }.pearl-b { width:175px; height:160px; right:8px; top:29px; border-radius:43% 57% 42% 58% / 59% 44% 56% 41%; transform:rotate(8deg); }
.pearl-b i { right:23px; bottom:43px; background:#9ba8b2; box-shadow:0 0 0 7px rgba(155,168,178,.12); }
.pearl-link { position:absolute; z-index:3; left:50%; top:106px; width:72px; height:72px; border-radius:46% 54% 48% 52% / 56% 45% 55% 44%; transform:translate(-50%,-50%) rotate(12deg); background:linear-gradient(145deg,#f4e3e6,#dab8be); border:1px solid rgba(255,255,255,.78); box-shadow:8px 10px 18px rgba(137,103,109,.18),-7px -7px 16px #fff,inset 2px 2px 5px rgba(255,255,255,.55); }
.pearl-link i { position:absolute; inset:20px; border-radius:50%; border:1px solid rgba(255,255,255,.8); }.glint{position:absolute;z-index:4;color:#d2a4ac;text-shadow:0 0 12px rgba(203,151,160,.42)}.g1{right:21px;top:11px;font-size:18px}.g2{left:42px;bottom:7px;font-size:13px}

.brand-logo { animation:none!important; transform:none!important; }
.score-orbit { --sweep:0deg; background:conic-gradient(from 210deg,var(--tone) var(--sweep),rgba(214,210,209,.48) 0); pointer-events:none; }
.profile-dashboard .score-orbit.anxiety { animation:ringFillA 1.15s cubic-bezier(.2,.75,.2,1) forwards; }.profile-dashboard .score-orbit.avoidance { animation:ringFillB 1.15s .12s cubic-bezier(.2,.75,.2,1) forwards; }
@keyframes ringFillA{from{--sweep:0deg;transform:perspective(500px) rotateX(8deg) rotateY(8deg) translateY(8px) scale(.96);opacity:.45}to{--sweep:var(--value);transform:perspective(500px) rotateX(8deg) rotateY(8deg);opacity:1}}
@keyframes ringFillB{from{--sweep:0deg;transform:perspective(500px) rotateX(-7deg) rotateY(-9deg) translateY(8px) scale(.96);opacity:.45}to{--sweep:var(--value);transform:perspective(500px) rotateX(-7deg) rotateY(-9deg);opacity:1}}
.mini-quadrant{pointer-events:none}.dimension-link{position:relative;z-index:8;margin-top:-6px;padding:10px 0;cursor:pointer}

.need-sequence{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:26px 0 24px}.need-step{min-height:120px;border-radius:42px 42px 24px 24px;position:relative;padding:22px 12px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(145deg,#faf8f7,#e8e4e3);box-shadow:8px 10px 18px rgba(122,114,112,.14),-7px -7px 15px #fff}.need-step:nth-child(2){transform:translateY(10px);background:linear-gradient(145deg,#f7ecee,#e7d6d9)}.need-step:nth-child(3){border-radius:24px 24px 42px 42px}.need-step i{position:absolute;top:14px;font-family:var(--serif);font-style:normal;font-size:10px;color:var(--rose)}.need-step strong{font-family:var(--serif);font-size:15px;line-height:1.35;font-weight:500}.need-step span{position:absolute;right:-14px;font-size:17px;color:var(--rose);z-index:4}.need-card{text-align:center}.need-card p{max-width:295px;margin:0 auto}.need-tags{justify-content:center}.need-tags span{text-align:center}

.reality-check{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:24px 0 17px}.reality-item{min-height:205px;border-radius:30px;padding:19px 17px;background:linear-gradient(145deg,#faf8f7,#e7e4e3);box-shadow:8px 10px 19px rgba(122,114,112,.14),-7px -7px 16px #fff}.reality-item small{display:block;min-height:30px;font-size:9px;line-height:1.45;letter-spacing:.05em;color:var(--muted)}.reality-item strong{display:block;font-family:var(--serif);font-size:23px;font-weight:500;margin:9px 0 15px}.reality-item p{font-size:10px;line-height:1.55;color:var(--muted);margin:15px 0 0}.reality-scale{height:12px;border-radius:20px;background:#ddd9d8;box-shadow:inset 3px 3px 6px rgba(118,110,108,.14),inset -3px -3px 6px #fff;overflow:hidden}.reality-scale .fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e7cdd1,#ca969f)}.reality-scale.blue .fill{background:linear-gradient(90deg,#d5dde1,#98a8b3)}.context-verdict{text-align:center;padding:18px 20px;border-top:1px solid rgba(78,80,87,.12)}.context-verdict>span{font-size:8px;letter-spacing:.16em;color:var(--muted)}.context-verdict strong{display:block;font-family:var(--serif);font-size:18px;font-weight:500;margin:7px 0}.context-verdict p{font-size:10px;line-height:1.55;color:var(--muted);margin:0 auto;max-width:310px}

.observe-visual{flex:none;height:305px;min-height:0;margin:14px -4px 5px}.observe-bridge{height:220px;align-self:center}.observe-page .result-caption{text-align:center;margin:12px auto 0;max-width:320px}.observe-page .restart-link{margin-top:7px}
@media (prefers-reduced-motion:reduce){.result-card.active,.score-orbit{animation:none!important}.score-orbit{--sweep:var(--value)}}
.need-step:nth-child(2){z-index:2}

.insight { border-radius: 27px; padding: 21px; margin: 10px 0; background: linear-gradient(145deg,#f8f6f5,#e6e3e2); box-shadow: 9px 9px 18px rgba(123,116,113,.15), -8px -8px 17px #fff; }
.insight .number { color: var(--rose); font-family: var(--serif); font-size: 17px; }
.insight h3 { font-family: var(--serif); font-size: 22px; margin: 7px 0; font-weight:500; }
.flow { display: grid; gap: 13px; margin: 9px 0 13px; }
.flow-step { min-height: 56px; border-radius: 23px; padding: 0 18px; display:flex; align-items:center; justify-content:center; text-align:center; font-size:14px; background:linear-gradient(145deg,#f9f7f6,#e5e2e1); box-shadow:7px 7px 15px rgba(124,117,114,.15),-6px -6px 14px #fff; position:relative; }
.flow-step:not(:last-child)::after { content:"↓"; position:absolute; bottom:-19px; color:var(--rose); z-index:2; }
.context-meters { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:10px 0; }
.meter { border-radius:27px; padding:18px 13px; text-align:center; background:linear-gradient(145deg,#f9f7f6,#e5e2e1); box-shadow:8px 8px 17px rgba(124,117,114,.15),-7px -7px 15px #fff; }
.meter strong { display:block; font-family:var(--serif); font-size:34px; font-weight:400; color:var(--rose); }
.prompt-box { margin: 10px 0; border-radius:27px; padding:21px; background:linear-gradient(145deg,#f9f7f6,#e5e2e1); box-shadow:8px 8px 17px rgba(124,117,114,.15),-7px -7px 15px #fff; }
.prompt-box span { color:var(--rose); font-family:var(--serif); }
.prompt-box h3 { font-family:var(--serif); font-size:21px; margin:8px 0 0; font-weight:500; }
.result-nav { position:absolute; left:22px; right:22px; bottom:max(18px, env(safe-area-inset-bottom)); display:flex; align-items:center; justify-content:space-between; }
.pager { display:flex; gap:7px; }
.pager button { width:8px; height:8px; padding:0; border:0; border-radius:50%; background:#cbc8c7; cursor:pointer; }
.pager button.active { background:var(--rose); }
.mini-nav { border:0; background:transparent; color:var(--ink); font-size:20px; padding:10px; cursor:pointer; }
.sheet { position:absolute; inset:0; display:flex; align-items:flex-end; background:rgba(47,48,52,.18); z-index:10; }
.sheet-card { width:100%; border-radius:34px 34px 0 0; padding:30px 25px max(34px, env(safe-area-inset-bottom)); background:var(--surface); box-shadow:0 -16px 40px rgba(72,67,65,.18); }
.sheet-card h3 { font-family:var(--serif); font-size:28px; margin:0 0 16px; }
.sheet-card p { color:var(--muted); line-height:1.7; }
.sheet-card button { width:100%; margin-top:10px; }

@media (max-height: 720px) {
  .hero-title { margin-top: 30px; font-size: 42px; }
  .hero-object { min-height: 125px; margin: 10px 0; }
  .orbit-hero { transform:scale(.82); }
  .question-wrap { padding-top: 24px; }
  .question-title { font-size: 29px; margin-bottom: 18px; }
  .question-title.compact { font-size:23px; }
  .choice { min-height: 57px; }
  .result-card { padding-top: 16px; }
  .result-kicker { margin-bottom:8px; }
  .result-title { font-size: 28px; margin-bottom:10px; line-height:1.2; }
  .result-copy { font-size:12px; line-height:1.5; }
  .score-grid { margin:8px 0 9px; }
  .score { min-height: 104px; }
  .score strong { font-size:43px; }
  .score.small strong { font-size:34px; }
  .quadrant { min-height:118px; padding:11px 15px; }
  .quad-grid { width:68px; height:68px; border-radius:14px; }
  .insight { padding:16px 18px; margin:7px 0; }
  .insight h3 { font-size:19px; }
  .flow { gap:10px; margin:6px 0 10px; }
  .flow-step { min-height:46px; }
  .context-meters { margin:7px 0; }
  .meter { padding:14px 10px; }
  .meter strong { font-size:29px; }
  .prompt-box { margin:7px 0; padding:16px 18px; }
  .prompt-box h3 { font-size:18px; }
  .profile-orbits { transform:scale(.84); transform-origin:top center; height:224px; }
  .signal-map { height:270px; }.cycle-visual { height:285px; transform:scale(.88); transform-origin:top center; }
  .context-map { height:245px; }.observe-visual { min-height:255px; }.observe-card { height:200px; }
}

/* V6: content moves; the brand header stays still. */
.question-wrap { animation:contentIn .3s cubic-bezier(.22,.8,.25,1) both; }
@keyframes contentIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
.choice-list .choice { animation:optionIn .28s both; }.choice-list .choice:nth-child(2){animation-delay:.035s}.choice-list .choice:nth-child(3){animation-delay:.07s}.choice-list .choice:nth-child(4){animation-delay:.105s}
@keyframes optionIn { from{opacity:0;transform:translateY(6px)} }

/* Less symmetrical cover: two independent glass stones, no frame. */
.orbit-hero::before { display:none; }
.pearl-a { width:168px;height:151px;left:25px;top:44px;border-radius:64% 36% 55% 45% / 42% 61% 39% 58%;background:linear-gradient(145deg,rgba(248,230,234,.94),rgba(216,185,191,.72));transform:rotate(-16deg); }
.pearl-b { width:158px;height:177px;right:20px;top:5px;border-radius:40% 60% 48% 52% / 63% 39% 61% 37%;background:linear-gradient(145deg,rgba(252,252,251,.96),rgba(211,216,219,.76));transform:rotate(14deg); }
.pearl-link { width:61px;height:67px;top:105px;left:52%;background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(230,207,211,.8)); }

/* Result cover now gives the scores room to breathe. */
.profile-dashboard.profile-only { height:286px; }
.profile-dashboard.profile-only .profile-orbits { left:50%; transform:translateX(-50%); width:320px; }
.profile-dashboard.profile-only .score-orbit.anxiety { left:2px; }.profile-dashboard.profile-only .score-orbit.avoidance { right:1px; }
.profile-page .dimension-link { align-self:center; margin-top:-17px; }

/* Dedicated, explicit two-dimensional map. */
.dimension-defs { display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:10px 0 13px; }
.dimension-defs>div { min-height:92px;border-radius:23px;padding:14px 13px;display:flex;gap:10px;background:linear-gradient(145deg,#faf8f7,#e8e5e4);box-shadow:7px 8px 16px rgba(120,113,110,.13),-6px -6px 14px #fff; }
.dimension-defs i { width:27px;height:27px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-style:normal;font-size:12px;color:var(--rose);background:#eee2e4; }.dimension-defs>div:nth-child(2) i{color:#71808c;background:#e1e6e9}
.dimension-defs p{margin:0}.dimension-defs strong{display:block;font-family:var(--serif);font-size:13px;font-weight:500}.dimension-defs span{display:block;margin-top:5px;font-size:8px;line-height:1.45;color:var(--muted)}
.full-quadrant { width:280px;height:282px;position:relative;align-self:center;margin:3px auto 0;border-radius:27px;background:linear-gradient(145deg,#f9f7f6,#e5e2e1);box-shadow:9px 11px 21px rgba(119,112,110,.15),-8px -8px 18px #fff,inset 1px 1px 3px rgba(255,255,255,.75); }
.full-quadrant::before { content:"";position:absolute;inset:17px;border-radius:18px;background:linear-gradient(90deg,rgba(166,177,185,.08) 50%,rgba(205,160,168,.08) 50%),linear-gradient(rgba(166,177,185,.08) 50%,rgba(205,160,168,.08) 50%); }
.fq-v,.fq-h{position:absolute;background:rgba(65,71,80,.22);z-index:1}.fq-v{left:50%;top:17px;bottom:17px;width:1px}.fq-h{top:50%;left:17px;right:17px;height:1px}
.axis-y,.axis-x{position:absolute;font-size:7px;letter-spacing:.08em;color:var(--muted);white-space:nowrap}.axis-y{left:-2px;top:50%;transform:translate(-100%,-50%) rotate(-90deg)}.axis-x{left:50%;bottom:-16px;transform:translateX(-50%)}
.fq-zone{position:absolute;width:50%;height:50%;padding:18px 15px;display:flex;flex-direction:column;z-index:2}.fq-zone b{font-family:var(--serif);font-size:14px;font-weight:500}.fq-zone small{font-size:7px;color:var(--muted);margin-top:3px}.fq-zone.avoidant{left:0;top:0}.fq-zone.mixed{right:0;top:0;text-align:right;align-items:flex-end}.fq-zone.secure{left:0;bottom:0;justify-content:flex-end}.fq-zone.anxious{right:0;bottom:0;text-align:right;align-items:flex-end;justify-content:flex-end}
.fq-dot{position:absolute;transform:translate(-50%,50%);z-index:5;display:flex;align-items:center;gap:8px;white-space:nowrap}.fq-dot i{width:15px;height:15px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 8px rgba(199,154,162,.16),0 5px 10px rgba(124,86,94,.2);animation:dotPulse .8s 1s both}.fq-dot b{font-size:8px;font-weight:500;color:var(--ink)}
@keyframes dotPulse{0%{transform:scale(.4);opacity:0}65%{transform:scale(1.3)}100%{transform:scale(1);opacity:1}}

/* Consistent ranking and centered sequence arrows. */
.trigger-row.primary strong,.trigger-row strong{font-size:17px}.trigger-row.primary .trigger-track,.trigger-track{height:14px}.trigger-row:not(.primary){opacity:.68}
.need-step:nth-child(2){transform:none;z-index:2}.need-step span{top:50%;transform:translateY(-50%);right:-15px}

/* Personalized observation prompts. */
.observe-questions{display:grid;gap:12px;margin:28px 0 17px}.observe-question{min-height:92px;border-radius:27px;padding:17px 20px;display:grid;grid-template-columns:30px 1fr;align-items:center;gap:8px;background:linear-gradient(145deg,#faf8f7,#e7e4e3);box-shadow:8px 9px 18px rgba(120,113,110,.14),-7px -7px 16px #fff}.observe-question:nth-child(2){background:linear-gradient(145deg,#f7edef,#e5d7d9)}.observe-question i{font-family:var(--serif);font-style:normal;font-size:12px;color:var(--rose)}.observe-question strong{font-family:var(--serif);font-size:16px;line-height:1.45;font-weight:500}.observe-page .result-caption{text-align:center;margin:2px auto 0}

@media (prefers-reduced-motion:reduce){.question-wrap,.choice{animation:none!important}}
.fq-dot b{position:absolute;right:21px;bottom:16px}.fq-dot i{flex:0 0 auto}

/* V7 cover typography and FIND IP portrait. */
.hero-title { margin-top:32px; margin-bottom:13px; }
.hero-title .small-line { font-family:var(--sans);font-size:16px;letter-spacing:.28em;font-weight:500;color:var(--muted);margin-left:4px; }
.hero-title .title-mark { position:relative;display:flex;align-items:baseline;width:max-content;margin-top:3px;line-height:.95;letter-spacing:0; }
.hero-title .title-mark i { position:relative;display:inline-block;font-family:var(--serif);font-style:normal;font-weight:400;color:#c9959e;text-shadow:0 10px 26px rgba(181,131,141,.13); }
.hero-title .title-mark i:nth-child(1){font-size:61px;transform:translateY(2px) rotate(-2deg)}
.hero-title .title-mark i:nth-child(2){font-size:70px;margin-left:-5px;transform:translateY(-2px)}
.hero-title .title-mark i:nth-child(3){font-size:57px;margin-left:2px;color:#bfc3c8;transform:translateY(1px)}
.hero-title .title-mark i:nth-child(4){font-size:68px;margin-left:-5px;transform:translateY(-3px) rotate(2deg)}
.hero-title .title-mark::after { content:"";position:absolute;left:8px;right:4px;bottom:-7px;height:9px;border-bottom:1px solid rgba(197,143,153,.48);border-radius:50%;transform:rotate(-2deg); }
.lede { font-size:13px;line-height:1.65;max-width:335px; }
.hero-object.ip-object { min-height:234px;margin:8px 0 11px; }
.ip-hero { width:100%;height:234px;position:relative;display:grid;place-items:center; }
.ip-frame { width:282px;height:224px;position:relative;overflow:hidden;border-radius:48% 48% 34px 34px / 40% 40% 26px 26px;background:#f3e8e5;border:1px solid rgba(255,255,255,.9);box-shadow:13px 18px 31px rgba(131,111,107,.17),-9px -9px 22px rgba(255,255,255,.94),inset 1px 1px 2px #fff; }
.ip-frame::after { content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.18),transparent 38%,rgba(232,194,199,.08));box-shadow:inset 0 0 26px rgba(255,255,255,.28);pointer-events:none; }
.ip-frame img { width:100%;height:100%;object-fit:cover;object-position:center 31%;filter:saturate(.82) contrast(.96) brightness(1.02);transform:scale(1.02); }
.ip-spark { position:absolute;z-index:2;color:#d2a0a9;text-shadow:0 0 14px rgba(204,151,161,.45); }.ip-spark.s1{right:31px;top:17px;font-size:18px}.ip-spark.s2{left:34px;bottom:20px;color:#dac789;font-size:14px}.ip-spark.s3{left:26px;top:55px;color:#aab7c1;font-size:19px}
.ip-frame img { animation:ipReveal .7s cubic-bezier(.2,.75,.2,1) both; }
@keyframes ipReveal { from{opacity:0;transform:scale(1.07) translateY(7px)} to{opacity:1;transform:scale(1.02)} }
@media(max-height:720px){.hero-title{margin-top:22px}.hero-title .title-mark i:nth-child(1){font-size:52px}.hero-title .title-mark i:nth-child(2){font-size:59px}.hero-title .title-mark i:nth-child(3){font-size:49px}.hero-title .title-mark i:nth-child(4){font-size:58px}.hero-object.ip-object{min-height:180px}.ip-hero{height:180px}.ip-frame{width:245px;height:178px}}

/* V8 cover — free-space editorial portrait, no image container. */
.hero-title { margin:31px 0 11px; position:relative; width:max-content; }
.hero-title .small-line { font-family:var(--sans);font-size:13px;line-height:1;letter-spacing:.38em;font-weight:500;color:#777e89;margin:0 0 11px 3px; }
.hero-title .title-elegant { display:block;position:relative;font-family:"Songti SC","STSong","Noto Serif SC",serif;font-style:normal;font-size:clamp(57px,15vw,66px);font-weight:500;line-height:.94;letter-spacing:-.095em;white-space:nowrap;color:#bd8993;text-shadow:0 12px 28px rgba(176,123,134,.11); }
.hero-title .title-elegant::after { content:"ATTACHMENT";position:absolute;left:calc(100% + 14px);bottom:5px;font-family:var(--sans);font-size:7px;font-weight:500;letter-spacing:.2em;color:#9aa0a9;writing-mode:vertical-rl; }
.lede { max-width:326px;font-size:12px;line-height:1.7;letter-spacing:.01em;margin-bottom:0; }
.hero-object.ip-object { min-height:270px;margin:-2px -14px 3px;overflow:visible; }
.ip-hero.ip-free { width:100%;height:278px;position:relative;display:grid;place-items:center;isolation:isolate; }
.ip-free .ip-aura { position:absolute;width:246px;height:176px;left:50%;top:54%;transform:translate(-50%,-50%) rotate(-8deg);border-radius:50%;background:radial-gradient(ellipse,rgba(238,210,207,.55) 0,rgba(241,226,222,.24) 46%,transparent 72%);filter:blur(12px);z-index:-1; }
.ip-free img { width:270px;height:270px;object-fit:contain;filter:saturate(.78) contrast(.96) brightness(1.025) drop-shadow(0 20px 18px rgba(134,104,103,.13));transform:translate(5px,2px);animation:ipFloatIn .75s cubic-bezier(.2,.75,.2,1) both; }
.ip-free::after { content:"";position:absolute;left:50%;bottom:11px;width:196px;height:20px;transform:translateX(-50%);border-radius:50%;background:rgba(129,109,105,.11);filter:blur(12px);z-index:-1; }
.ip-free .ip-spark { text-shadow:0 0 18px currentColor;opacity:.7; }
.ip-free .ip-spark.s1 { right:45px;top:46px;font-size:14px;color:#d0a2aa; }
.ip-free .ip-spark.s2 { left:34px;bottom:62px;font-size:12px;color:#d6bd72; }
.ip-free .ip-spark.s3 { left:48px;top:61px;font-size:15px;color:#aeb9c2; }
@keyframes ipFloatIn { from{opacity:0;transform:translate(5px,12px) scale(.96)} to{opacity:1;transform:translate(5px,2px) scale(1)} }
@media(max-height:720px){.hero-title{margin-top:21px}.hero-title .title-elegant{font-size:54px}.hero-object.ip-object{min-height:205px;margin-top:-8px}.ip-hero.ip-free{height:210px}.ip-free img{width:218px;height:218px}.ip-free .ip-aura{width:210px;height:140px}.lede{font-size:11px;line-height:1.55}.meta{margin-top:11px}}

/* V9 home only — quiet tactile instrument, matching the report UI. */
.home-editorial{flex:1;display:flex;flex-direction:column;min-height:0;padding-top:26px}
.home-copy{position:relative;z-index:2}
.home-index{display:block;font-size:7px;letter-spacing:.24em;color:#9a9da3;margin-bottom:17px}
.home-editorial .hero-title{margin:0 0 13px;width:max-content}
.home-editorial .hero-title .small-line{font-family:var(--sans);font-size:14px;line-height:1;letter-spacing:.32em;font-weight:400;color:#6f7580;margin:0 0 12px 2px}
.home-editorial .hero-title .title-elegant{font-family:var(--serif);font-size:clamp(55px,14.8vw,65px);font-weight:400;line-height:.95;letter-spacing:-.085em;color:#bd8f98;text-shadow:none}
.home-editorial .hero-title .title-elegant::after{display:none}
.home-editorial .lede{font-size:11px;line-height:1.72;letter-spacing:.015em;color:#777e89;margin:0}
.attachment-console{width:286px;height:262px;position:relative;align-self:center;margin:12px 0 10px;border-radius:42px;background:linear-gradient(145deg,#faf9f8 0%,#ece9e7 66%,#e6e2e0 100%);border:1px solid rgba(255,255,255,.82);box-shadow:16px 20px 33px rgba(117,108,105,.17),-11px -11px 23px rgba(255,255,255,.95),inset 1px 1px 3px rgba(255,255,255,.9)}
.attachment-console::before{content:"";position:absolute;inset:10px;border-radius:34px;border:1px solid rgba(255,255,255,.74);box-shadow:inset 5px 5px 13px rgba(127,117,114,.055),inset -6px -6px 13px rgba(255,255,255,.76)}
.console-glow{position:absolute;width:136px;height:136px;left:75px;top:30px;border-radius:50%;background:rgba(225,190,195,.22);filter:blur(22px)}
.console-dial{position:absolute;width:154px;height:154px;left:66px;top:25px;border-radius:50%;background:linear-gradient(145deg,#faf9f8,#e5e1df);box-shadow:9px 11px 22px rgba(118,108,105,.17),-8px -8px 18px #fff,inset 5px 5px 11px rgba(128,117,114,.075),inset -6px -6px 12px rgba(255,255,255,.88)}
.console-dial::before{content:"";position:absolute;inset:14px;border-radius:50%;border:1px solid rgba(92,94,100,.08)}
.dial-arc{position:absolute;inset:7px;border-radius:50%;background:conic-gradient(from 218deg,#d7aab2 0 113deg,transparent 113deg 360deg);filter:drop-shadow(0 4px 6px rgba(164,111,121,.14))}
.dial-arc::after{content:"";position:absolute;inset:8px;border-radius:50%;background:linear-gradient(145deg,#f8f6f5,#e7e3e1)}
.dial-dot{position:absolute;z-index:2;width:15px;height:15px;border-radius:50%;right:23px;top:26px;background:#f6ece7;border:1px solid rgba(255,255,255,.9);box-shadow:4px 5px 10px rgba(133,105,105,.16),-3px -3px 8px #fff,0 0 16px rgba(216,165,174,.28)}
.dial-copy{position:absolute;z-index:3;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.dial-copy small{font-size:6px;letter-spacing:.2em;color:#9a9da3}.dial-copy strong{font-family:var(--serif);font-size:45px;line-height:1;font-weight:300;color:#4e5561;margin:4px 0 0}.dial-copy span{font-size:8px;color:#a08a8e;letter-spacing:.08em}
.console-switch{position:absolute;left:38px;right:38px;bottom:37px;height:48px;border-radius:19px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(145deg,#faf9f8,#e6e2e0);box-shadow:7px 9px 17px rgba(116,108,105,.13),-6px -6px 14px #fff,inset 1px 1px 2px rgba(255,255,255,.9);font-family:var(--serif);font-size:11px;color:#878c95}
.console-switch i{width:46px;height:22px;border-radius:20px;position:relative;background:#ded9d7;box-shadow:inset 3px 3px 6px rgba(117,108,105,.12),inset -3px -3px 6px #fff}
.console-switch i::after{content:"";position:absolute;width:18px;height:18px;left:3px;top:2px;border-radius:50%;background:linear-gradient(145deg,#eccdd1,#c9949e);box-shadow:2px 3px 6px rgba(139,93,101,.22),-2px -2px 5px #fff}
.console-switch .active{color:#bd8b95}
.console-note{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:11px;align-items:center;font-size:6px;letter-spacing:.17em;color:#a2a4a9}.console-note b{font-family:var(--serif);font-size:10px;font-weight:400;color:#c49aa2}
.home-editorial+.primary-btn{min-height:54px;font-size:18px;background:linear-gradient(145deg,#d7abb2,#bd858f);box-shadow:9px 11px 22px rgba(158,108,117,.22),-8px -8px 18px #fff,inset 1px 1px 2px rgba(255,255,255,.48)}
.home-editorial~.meta{font-size:10px;letter-spacing:.04em;margin:13px 0 1px}
@media(max-height:720px){.home-editorial{padding-top:18px}.home-index{margin-bottom:11px}.home-editorial .hero-title .title-elegant{font-size:51px}.home-editorial .hero-title .small-line{font-size:12px;margin-bottom:9px}.attachment-console{width:252px;height:204px;margin:7px 0}.console-dial{width:116px;height:116px;left:68px;top:15px}.dial-copy strong{font-size:34px}.console-switch{left:29px;right:29px;bottom:27px;height:40px}.console-note{bottom:8px}.home-editorial+.primary-btn{min-height:49px}.home-editorial~.meta{margin-top:9px}}

/* V10 home — strong editorial heading with two tactile dimensions. */
.home-v10{padding-top:38px}
.home-v10 .hero-title{margin:0 0 20px}
.home-v10 .hero-title .small-line{font-family:var(--serif);font-size:clamp(44px,11.7vw,51px);line-height:1.04;letter-spacing:-.07em;font-weight:600;color:#263447;margin:0 0 8px}
.home-v10 .hero-title .title-elegant{font-family:var(--serif);font-size:clamp(58px,15.2vw,67px);line-height:.98;letter-spacing:-.085em;font-weight:600;color:#cc6f82;text-shadow:0 8px 20px rgba(179,89,107,.08)}
.home-v10 .lede{font-size:15px;line-height:1.72;letter-spacing:.01em;color:#607084;margin:0}
.twin-dials{width:380px;height:274px;position:relative;align-self:center;margin:16px -8px 10px;filter:drop-shadow(0 18px 18px rgba(111,104,102,.11))}
.twin-dial{position:absolute;width:235px;height:235px;top:13px;border-radius:50%;background:linear-gradient(145deg,#f9f8f7,#e5e2e0);border:1px solid rgba(255,255,255,.88);box-shadow:inset 7px 8px 17px rgba(118,109,106,.10),inset -9px -9px 19px #fff,9px 12px 23px rgba(119,111,108,.13),-7px -7px 18px rgba(255,255,255,.9)}
.twin-dial::before{content:"";position:absolute;inset:26px;border-radius:50%;background:linear-gradient(145deg,#f5f3f2,#e8e5e3);border:1px solid rgba(255,255,255,.9);box-shadow:inset 5px 6px 12px rgba(120,111,108,.08),inset -6px -6px 13px #fff,5px 7px 14px rgba(119,111,108,.09)}
.twin-dial::after{content:"";position:absolute;inset:38px;border-radius:50%;border:1px solid rgba(102,108,116,.08)}
.dial-a{left:0;z-index:1}.dial-b{right:0;top:35px;z-index:2}
.twin-arc{position:absolute;z-index:3;left:47px;right:47px;top:14px;height:22px;border-radius:18px;background:linear-gradient(180deg,#e89bad,#c96f83);box-shadow:0 5px 10px rgba(166,81,99,.2),inset 0 2px 3px rgba(255,255,255,.55);transform:rotate(8deg)}
.dial-b .twin-arc{left:72px;right:24px;top:21px;background:linear-gradient(180deg,#b8c6ce,#91a3ae);box-shadow:0 5px 10px rgba(91,111,123,.18),inset 0 2px 3px rgba(255,255,255,.55);transform:rotate(17deg)}
.twin-knob{position:absolute;z-index:5;width:23px;height:23px;border-radius:50%;right:43px;top:26px;background:linear-gradient(145deg,#fff8f7,#e7cdd1);border:1px solid rgba(255,255,255,.9);box-shadow:4px 6px 10px rgba(137,94,101,.2),-3px -3px 8px #fff}
.dial-b .twin-knob{right:20px;top:45px;background:linear-gradient(145deg,#f7fbfc,#cbd6dc);box-shadow:4px 6px 10px rgba(84,102,113,.18),-3px -3px 8px #fff}
.tick{position:absolute;z-index:4;width:4px;height:4px;border-radius:50%;background:#aeb2b8;opacity:.72}.tick.t1{left:43px;top:63px}.tick.t2{left:28px;top:108px}.tick.t3{left:42px;bottom:58px}.dial-b .tick.t1{left:57px;top:44px}.dial-b .tick.t2{left:31px;top:96px}.dial-b .tick.t3{left:48px;bottom:45px}
.dial-join{position:absolute;z-index:6;width:17px;height:17px;border-radius:50%;left:182px;top:75px;background:linear-gradient(145deg,#fff8f7,#e4bdc4);box-shadow:4px 5px 10px rgba(139,90,99,.17),-3px -3px 7px #fff}
.home-v10+.primary-btn{min-height:68px;border-radius:36px;position:relative;font-size:23px;font-weight:400;background:linear-gradient(145deg,#df879a,#bd536c);box-shadow:0 14px 27px rgba(154,65,84,.25),inset 1px 2px 3px rgba(255,255,255,.42)}
.home-v10+.primary-btn span{display:block;text-align:center}.home-v10+.primary-btn b{position:absolute;right:28px;top:50%;transform:translateY(-53%);font-family:var(--sans);font-size:35px;line-height:1;font-weight:200}
.home-v10~.meta{font-size:13px;letter-spacing:.05em;margin:17px 0 2px;color:#607084}
@media(max-height:720px){.home-v10{padding-top:24px}.home-v10 .hero-title{margin-bottom:14px}.home-v10 .hero-title .small-line{font-size:37px;margin-bottom:5px}.home-v10 .hero-title .title-elegant{font-size:50px}.home-v10 .lede{font-size:12px;line-height:1.6}.twin-dials{width:310px;height:202px;margin:8px auto 7px;transform:scale(.86);transform-origin:top center}.home-v10+.primary-btn{min-height:55px;font-size:20px}.home-v10~.meta{margin-top:10px;font-size:11px}}

/* V11 home — true circular tracks and softer FIND rose. */
.home-v10 .hero-title .title-elegant{color:#c79aa2;text-shadow:0 8px 20px rgba(181,131,141,.08)}
.twin-arc{inset:10px;border-radius:50%;background:conic-gradient(from 302deg,#e3c2c7 0 82deg,transparent 82deg 360deg);box-shadow:none;filter:drop-shadow(0 5px 6px rgba(160,112,121,.15));transform:none;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 20px),#000 calc(100% - 19px));mask:radial-gradient(farthest-side,transparent calc(100% - 20px),#000 calc(100% - 19px))}
.dial-b .twin-arc{inset:10px;background:conic-gradient(from 322deg,#c2ccd2 0 74deg,transparent 74deg 360deg);box-shadow:none;transform:none;filter:drop-shadow(0 5px 6px rgba(110,126,136,.13))}
.twin-knob{left:calc(50% - 11.5px);right:auto;top:calc(50% - 11.5px);transform:rotate(32deg) translateY(-103px);animation:roseOrbit 5.8s ease-in-out infinite alternate;background:linear-gradient(145deg,#fff,#efdde0)}
.dial-b .twin-knob{left:calc(50% - 11.5px);right:auto;top:calc(50% - 11.5px);transform:rotate(49deg) translateY(-103px);animation:blueOrbit 6.4s .45s ease-in-out infinite alternate;background:linear-gradient(145deg,#fbfdfe,#d6dfe4)}
@keyframes roseOrbit{0%{transform:rotate(24deg) translateY(-103px)}100%{transform:rotate(58deg) translateY(-103px)}}
@keyframes blueOrbit{0%{transform:rotate(40deg) translateY(-103px)}100%{transform:rotate(70deg) translateY(-103px)}}
.dial-join{background:linear-gradient(145deg,#fff,#ead5d9)}
.home-v10+.primary-btn{background:linear-gradient(145deg,#dbb2b8,#c6909a);box-shadow:0 14px 27px rgba(155,112,120,.2),inset 1px 2px 3px rgba(255,255,255,.48)}
@media(prefers-reduced-motion:reduce){.twin-knob,.dial-b .twin-knob{animation:none!important}}

/* V12 home — separate SVG instruments with unmistakable circular motion. */
.dimension-rings{width:100%;height:240px;display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:center;margin:19px 0 11px;padding:0 2px}
.dimension-ring{min-width:0;display:flex;flex-direction:column;align-items:center;gap:7px}
.dimension-ring svg{display:block;width:166px;height:166px;overflow:visible;border-radius:50%;background:linear-gradient(145deg,#faf9f8,#e7e4e2);border:1px solid rgba(255,255,255,.92);box-shadow:inset 6px 7px 15px rgba(116,108,105,.09),inset -8px -8px 17px #fff,9px 12px 22px rgba(116,108,105,.14),-7px -7px 17px rgba(255,255,255,.94)}
.dimension-ring span{font-family:var(--serif);font-size:12px;letter-spacing:.12em;color:#858b94}
.ring-groove{fill:none;stroke:#dcd9d7;stroke-width:15;filter:drop-shadow(1px 2px 2px rgba(105,98,96,.12))}
.ring-progress{fill:none;stroke-width:13;stroke-linecap:round;stroke-dasharray:26 74;transform-origin:80px 80px;animation:ringArcRun 2.35s linear infinite;filter:drop-shadow(0 4px 4px rgba(138,92,101,.2))}
.blue-ring .ring-progress{animation-duration:2.75s;animation-delay:-.8s;filter:drop-shadow(0 4px 4px rgba(82,104,116,.18))}
.ring-runner{transform-origin:80px 80px;animation:ringDotRun 2.35s linear infinite}
.ring-runner circle{fill:#f8eaed;stroke:rgba(255,255,255,.96);stroke-width:2;filter:drop-shadow(0 4px 5px rgba(126,84,93,.28))}
.blue-ring .ring-runner{animation-duration:2.75s;animation-delay:-.8s}.blue-ring .ring-runner circle{fill:#e4edf1;filter:drop-shadow(0 4px 5px rgba(73,96,108,.25))}
.ring-inner{fill:url(#softCenter);fill:#f0eeec;stroke:rgba(255,255,255,.88);stroke-width:1;filter:drop-shadow(0 3px 5px rgba(115,108,105,.08))}
@keyframes ringArcRun{to{stroke-dashoffset:-100}}
@keyframes ringDotRun{to{transform:rotate(360deg)}}
@media(max-height:720px){.dimension-rings{height:180px;gap:18px;margin:8px 0 5px}.dimension-ring svg{width:137px;height:137px}.dimension-ring span{font-size:10px}}
@media(prefers-reduced-motion:reduce){.ring-progress,.ring-runner{animation:none!important}.ring-progress{stroke-dashoffset:-10}.ring-runner{transform:rotate(36deg)}}

/* V13 home — lower the instruments into the visual center. */
.dimension-rings{transform:translateY(68px)}
@media(max-height:720px){.dimension-rings{transform:translateY(28px)}}

/* V14 home rhythm, persistent brand, and centered sequence arrows. */
.dimension-rings{grid-template-columns:repeat(2,174px);justify-content:center;gap:18px;animation:homeRingsIn .72s .18s cubic-bezier(.2,.78,.2,1) both}
.dimension-ring svg{width:174px;height:174px}
.home-v10 .home-copy{animation:homeCopyIn .58s cubic-bezier(.2,.78,.2,1) both}
.home-v10+.primary-btn{transform:translateY(-28px);animation:homeButtonIn .58s .35s cubic-bezier(.2,.78,.2,1) both}
.home-v10~.meta{transform:translateY(-28px);animation:homeMetaIn .45s .48s ease both}
@keyframes homeCopyIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes homeRingsIn{from{opacity:0;transform:translateY(86px) scale(.94)}to{opacity:1;transform:translateY(68px) scale(1)}}
@keyframes homeButtonIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(-28px)}}
@keyframes homeMetaIn{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(-28px)}}
.brand-logo{animation:none!important;transition:none!important}
.need-step span{left:calc(100% + 5px);right:auto;top:50%;width:20px;text-align:center;transform:translate(-50%,-50%)}
@media(max-height:720px){.dimension-rings{grid-template-columns:repeat(2,145px);gap:15px}.dimension-ring svg{width:145px;height:145px}.home-v10+.primary-btn,.home-v10~.meta{transform:translateY(-14px)}@keyframes homeRingsIn{from{opacity:0;transform:translateY(42px) scale(.94)}to{opacity:1;transform:translateY(28px) scale(1)}}@keyframes homeButtonIn{from{opacity:0;transform:translateY(0)}to{opacity:1;transform:translateY(-14px)}}@keyframes homeMetaIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(-14px)}}}
@media(prefers-reduced-motion:reduce){.home-v10 .home-copy,.dimension-rings,.home-v10+.primary-btn,.home-v10~.meta{animation:none!important}}

/* V15 result 05–06 alignment — fixed title block and no vertical page jump. */
.result-card.active{animation:resultFade .24s ease both}
@keyframes resultFade{from{opacity:0}to{opacity:1}}
.cycle-page .result-title .title-light{display:block}
.cycle-page .result-title,.context-page .result-title{min-height:83px;margin-bottom:12px}
.cycle-page .cycle-visual,.context-page .reality-check{margin-top:10px}
.result-screen{height:calc(100dvh - 36px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:hidden}
.context-page .reality-item{min-height:188px;padding:16px 15px}
.context-page .reality-check{margin-bottom:10px}
.context-page .context-verdict{padding:13px 17px}
@media(max-height:720px){.cycle-page .result-title,.context-page .result-title{min-height:72px}.cycle-page .cycle-visual,.context-page .reality-check{margin-top:6px}}
@media(min-width:600px){.result-screen{height:min(792px,calc(100dvh - 92px))}}

/* V16 mobile type normalization and result-page motion language. */
.quiz-screen .question-title,
.quiz-screen .question-title.compact{
  font-size:19px;
  line-height:1.52;
  letter-spacing:-.018em;
  margin-bottom:20px;
}
.quiz-screen .question-title .q-line{max-width:100%;white-space:normal}
.dimension-ring span{transform:translateY(-5px)}
.profile-page{padding-top:10px}
.profile-page .type-lockup{margin-top:0}

.result-card.active{animation:resultPageIn .5s cubic-bezier(.2,.78,.2,1) both}
@keyframes resultPageIn{from{opacity:0;transform:translateY(10px) scale(.992)}to{opacity:1;transform:none}}

.dimensions-page.active .dimension-defs>div{animation:resultTileIn .55s cubic-bezier(.2,.78,.2,1) both}
.dimensions-page.active .dimension-defs>div:nth-child(2){animation-delay:.08s}
.dimensions-page.active .full-quadrant{animation:quadrantIn .68s .12s cubic-bezier(.2,.78,.2,1) both}
.dimensions-page.active .fq-v{animation:lineDown .6s .36s ease both;transform-origin:top}
.dimensions-page.active .fq-h{animation:lineAcross .6s .36s ease both;transform-origin:left}
@keyframes quadrantIn{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}
@keyframes lineDown{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes lineAcross{from{transform:scaleX(0)}to{transform:scaleX(1)}}

.trigger-page.active .trigger-row{animation:resultTileIn .5s both}
.trigger-page.active .trigger-row:nth-child(2){animation-delay:.07s}
.trigger-page.active .trigger-row:nth-child(3){animation-delay:.14s}
.trigger-page.active .trigger-track b{transform-origin:left;animation:barGrow .8s .2s cubic-bezier(.2,.78,.2,1) both}
.trigger-page.active .plain-explain{animation:resultTileIn .55s .23s both}
@keyframes barGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}

.need-page.active .need-step{animation:resultTileIn .52s cubic-bezier(.2,.78,.2,1) both}
.need-page.active .need-step:nth-child(2){animation-delay:.08s}
.need-page.active .need-step:nth-child(3){animation-delay:.16s}
.need-page.active .need-card{animation:resultTileIn .55s .22s both}
.need-page.active .need-tags{animation:softReveal .45s .32s both}

.cycle-page.active .cycle-visual svg{animation:cycleDrawIn .75s .08s cubic-bezier(.2,.78,.2,1) both}
.cycle-page.active .cycle-core{animation:cycleCoreIn .5s .32s cubic-bezier(.2,.78,.2,1) both}
.cycle-page.active .cycle-node{animation:nodeIn .42s cubic-bezier(.2,.82,.2,1) both}
.cycle-page.active .cycle-node.n1{animation-delay:.22s}.cycle-page.active .cycle-node.n2{animation-delay:.3s}.cycle-page.active .cycle-node.n3{animation-delay:.38s}.cycle-page.active .cycle-node.n4{animation-delay:.46s}
@keyframes cycleDrawIn{from{opacity:0;transform:translate(-50%,-50%) rotate(-57deg) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) rotate(-45deg) scale(1)}}
@keyframes nodeIn{from{opacity:0;filter:blur(3px)}to{opacity:1;filter:blur(0)}}

.context-page.active .reality-item{animation:resultTileIn .55s cubic-bezier(.2,.78,.2,1) both}
.context-page.active .reality-item:nth-child(2){animation-delay:.09s}
.context-page.active .reality-scale .fill{transform-origin:left;animation:barGrow .8s .22s cubic-bezier(.2,.78,.2,1) both}
.context-page.active .context-verdict{animation:softReveal .5s .28s both}

.observe-page.active .observe-question{animation:resultTileIn .5s cubic-bezier(.2,.78,.2,1) both}
.observe-page.active .observe-question:nth-child(2){animation-delay:.08s}
.observe-page.active .observe-question:nth-child(3){animation-delay:.16s}
.observe-page.active .result-caption,.observe-page.active .restart-link{animation:softReveal .45s .25s both}

@keyframes resultTileIn{from{opacity:0;transform:translateY(13px) scale(.97)}to{opacity:1;transform:none}}
@keyframes softReveal{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes cycleCoreIn{from{opacity:0;transform:translate(-50%,-50%) scale(.88)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}

/* Lift the primary action into the home composition. */
.home-v10+.primary-btn{transform:translateY(-50px);animation-name:homeButtonLift}
.home-v10~.meta{transform:translateY(-44px);animation-name:homeMetaLift}
@keyframes homeButtonLift{from{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(-50px)}}
@keyframes homeMetaLift{from{opacity:0;transform:translateY(-32px)}to{opacity:1;transform:translateY(-44px)}}

@media(max-width:350px){
  .quiz-screen .question-title,.quiz-screen .question-title.compact{font-size:18px}
  .quiz-screen .question-wrap{padding-top:20px}
}
@media(max-height:720px){
  .home-v10+.primary-btn{transform:translateY(-32px);animation-name:homeButtonLiftShort}
  .home-v10~.meta{transform:translateY(-28px);animation-name:homeMetaLiftShort}
  @keyframes homeButtonLiftShort{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(-32px)}}
  @keyframes homeMetaLiftShort{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(-28px)}}
}
@media(prefers-reduced-motion:reduce){
  .result-card.active,.result-card.active *{animation:none!important}
}
