/* Somatic Healing Insights Quiz — builds on site.css tokens */
#qz { --qz-line: rgba(14,26,51,0.1); --qz-radius: 14px; }
#qz em { font-style: italic; color: var(--teal-deep); }
.qz-screen { display: none; }
.qz-screen.is-active { display: block; animation: qzIn .45s cubic-bezier(.2,.7,.2,1); }
@keyframes qzIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* buttons */
.qz-btn { display: inline-flex; align-items: center; gap: 10px; background: var(--ink); color: #fff; border: 0; border-radius: 999px; padding: 16px 30px; font: 600 15.5px/1 'Inter', sans-serif; cursor: pointer; transition: transform .15s, opacity .15s, background .15s; }
.qz-btn:hover:not(:disabled) { transform: translateY(-2px); }
.qz-btn:disabled { opacity: .3; cursor: not-allowed; }
.qz-btn-light { background: #fff; color: var(--ink); }
.qz-btn-ghost { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.4); }
.qz-btn-ghost:hover { box-shadow: inset 0 0 0 1.5px #fff; }
.qz-back { background: none; border: 0; color: var(--ink-soft); font: 500 14.5px 'Inter', sans-serif; cursor: pointer; padding: 10px 4px; }
.qz-back:hover { color: var(--ink); }

/* intro */
.qz-intro { position: relative; overflow: hidden; padding: 110px 0 96px; background: linear-gradient(180deg, #fff 0%, var(--foam) 100%); }
.qz-wave { position: absolute; right: -8%; top: 50%; transform: translateY(-50%); width: 64%; opacity: .75; pointer-events: none; mix-blend-mode: multiply; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 38%); mask-image: linear-gradient(90deg, transparent 0%, #000 38%); }
.qz-intro-inner { position: relative; z-index: 1; }
.qz-intro h1 { font-size: 60px; letter-spacing: -1px; max-width: 760px; margin: 14px 0 22px; }
.qz-intro .lede { font-size: 19px; color: var(--ink-soft); max-width: 600px; line-height: 1.7; }
.qz-facts { list-style: none; display: flex; gap: 36px; margin: 36px 0 40px; flex-wrap: wrap; }
.qz-facts li { display: flex; flex-direction: column; }
.qz-facts strong { font-family: 'Fraunces', serif; font-size: 30px; font-weight: 500; color: var(--cobalt); line-height: 1.1; }
.qz-facts span { font-size: 13.5px; color: var(--ink-soft); }
.qz-fine { font-size: 13px; color: var(--ink-soft); max-width: 620px; margin-top: 28px; line-height: 1.6; }

/* progress */
.qz-progress { position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,.92); backdrop-filter: blur(8px); border-bottom: 1px solid var(--qz-line); }
.qz-progress .wrap { display: flex; align-items: center; gap: 18px; padding-top: 14px; padding-bottom: 14px; }
.qz-progress-bar { flex: 1; height: 6px; background: var(--bone-deep); border-radius: 99px; overflow: hidden; }
.qz-progress-bar i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--teal-soft), var(--cobalt)); border-radius: 99px; transition: width .5s cubic-bezier(.2,.7,.2,1); }
.qz-progress span { font: 500 12.5px 'JetBrains Mono', monospace; color: var(--ink-soft); white-space: nowrap; }

/* question screens */
.qz-narrow { max-width: 760px; }
.qz-screen:not(.qz-intro):not(.qz-results) { padding: 64px 0 96px; }
.qz-step-label { font: 500 12.5px 'JetBrains Mono', monospace; letter-spacing: .08em; text-transform: uppercase; color: var(--cobalt); margin-bottom: 12px; }
.qz-screen h2 { font-size: 38px; letter-spacing: -.4px; margin-bottom: 12px; }
.qz-sub { color: var(--ink-soft); font-size: 17px; max-width: 620px; margin-bottom: 34px; }
.qz-scale-legend { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--ink-soft); margin: 0 0 10px; }
.qz-q { background: #fff; border: 1px solid var(--qz-line); border-radius: var(--qz-radius); padding: 24px 26px 22px; margin-bottom: 14px; transition: border-color .2s, box-shadow .2s, opacity .3s; }
.qz-q.is-answered { border-color: rgba(31,92,92,.28); }
.qz-q.is-current { box-shadow: 0 10px 34px -18px rgba(10,90,249,.45); border-color: rgba(10,90,249,.35); }
.qz-q p { font-size: 17.5px; line-height: 1.5; margin-bottom: 18px; color: var(--ink); }
.qz-q p small { font: 500 12px 'JetBrains Mono', monospace; color: var(--ink-soft); margin-right: 8px; }
.qz-scale { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.qz-scale button { border: 1.5px solid var(--qz-line); background: var(--bone-deep); border-radius: 10px; padding: 12px 4px 10px; cursor: pointer; font: 600 16px 'Inter', sans-serif; color: var(--ink); display: flex; flex-direction: column; align-items: center; gap: 3px; transition: all .15s; }
.qz-scale button span { font-size: 11px; font-weight: 500; color: var(--ink-soft); }
.qz-scale button:hover { border-color: var(--cobalt-soft); background: #fff; }
.qz-scale button[aria-checked="true"] { background: var(--ink); color: #fff; border-color: var(--ink); transform: scale(1.03); }
.qz-scale button[aria-checked="true"] span { color: rgba(255,255,255,.75); }
.qz-scale button:focus-visible, .qz-story-grid button:focus-visible, .qz-btn:focus-visible { outline: 3px solid var(--cobalt-soft); outline-offset: 2px; }
.qz-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 34px; }
.qz-section-note { background: var(--foam); border-radius: 10px; padding: 14px 18px; font-size: 14px; color: var(--ink-soft); margin-bottom: 22px; }

/* story pick */
.qz-story-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.qz-story-grid button { text-align: left; background: #fff; border: 1.5px solid var(--qz-line); border-radius: var(--qz-radius); padding: 20px 20px 18px; cursor: pointer; transition: all .15s; font-family: 'Inter', sans-serif; }
.qz-story-grid button b { display: block; font: 500 21px 'Fraunces', serif; color: var(--ink); margin-bottom: 4px; }
.qz-story-grid button span { font-size: 13.5px; color: var(--ink-soft); }
.qz-story-grid button:hover { border-color: var(--cobalt-soft); transform: translateY(-2px); }
.qz-story-grid button[aria-checked="true"] { background: var(--ink); border-color: var(--ink); }
.qz-story-grid button[aria-checked="true"] b, .qz-story-grid button[aria-checked="true"] span { color: #fff; }
.qz-story-wide { grid-column: 1 / -1; }

/* gate */
.qz-gate-card { border: 1px solid var(--qz-line); box-shadow: 0 30px 60px -40px rgba(14,26,51,.35); margin-top: 8px; }
.qz-sent-note { margin-top: 22px; font-size: 14.5px; color: rgba(255,255,255,.75); }
.qz-sent-note:empty { display: none; }

/* results */
.qz-results { padding: 72px 0 40px; background: linear-gradient(180deg, var(--foam) 0, #fff 520px); }
.qz-res-head { max-width: 780px; margin-bottom: 40px; }
.qz-res-head h1 { font-size: 52px; letter-spacing: -.8px; margin: 12px 0 18px; }
.qz-res-intro { font-size: 17.5px; color: var(--ink-soft); line-height: 1.75; }
.qz-res-top { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: center; margin-bottom: 30px; }
.qz-radar-card { background: #fff; border: 1px solid var(--qz-line); border-radius: 20px; padding: 18px 16px 16px; box-shadow: 0 30px 60px -40px rgba(14,26,51,.35); }
.qz-radar-card svg { width: 100%; height: auto; display: block; }
.qz-radar-card figcaption { font-size: 12.5px; color: var(--ink-soft); text-align: center; padding: 6px 10px 0; }
.qz-key i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--teal-deep); margin: 0 5px 0 8px; vertical-align: 0; }
#radar .grid { fill: none; stroke: rgba(14,26,51,.1); }
#radar .axis { stroke: rgba(14,26,51,.12); }
#radar .shape { fill: rgba(10,90,249,.16); stroke: var(--cobalt); stroke-width: 2.5; stroke-linejoin: round; transform-origin: 260px 245px; animation: qzGrow 1.1s cubic-bezier(.2,.7,.2,1) both .15s; }
#radar .pt { fill: #fff; stroke: var(--cobalt); stroke-width: 2.5; }
#radar .pt.clarity { stroke: var(--teal-deep); fill: var(--teal-deep); }
#radar .lbl { font: 600 12.5px 'Inter', sans-serif; fill: var(--ink); }
#radar .val { font: 500 11.5px 'JetBrains Mono', monospace; fill: var(--ink-soft); }
@keyframes qzGrow { from { transform: scale(0); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.qz-range { background: var(--ink); color: #fff; border-radius: 18px; padding: 24px 26px; margin-bottom: 22px; }
.qz-range span { font: 500 12px 'JetBrains Mono', monospace; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.qz-range strong { display: block; font: 500 32px 'Fraunces', serif; margin: 6px 0 14px; }
.qz-meter { height: 8px; border-radius: 99px; background: linear-gradient(90deg, #6fb7a8, #e8c46a 55%, #e0876a); position: relative; }
.qz-meter i { position: absolute; top: 50%; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--ink); transform: translate(-50%,-50%); left: 0; transition: left 1.2s cubic-bezier(.2,.7,.2,1) .3s; box-shadow: 0 0 0 3px rgba(255,255,255,.35); }
.qz-range small { display: block; margin-top: 12px; font-size: 12.5px; opacity: .7; }
.qz-summary { font-size: 17px; line-height: 1.75; color: var(--ink-soft); }
.qz-compare { margin-top: 18px; padding: 14px 18px; border-left: 3px solid var(--ochre); background: #fff8ea; border-radius: 0 10px 10px 0; font-size: 14.5px; color: var(--ink-soft); }
.qz-compare:empty { display: none; }
.qz-block { margin: 54px 0; }
.qz-block > h2 { font-size: 30px; margin-bottom: 20px; display: flex; align-items: center; gap: 12px; }
.qz-bars { display: grid; gap: 14px; }
.qz-bar { display: grid; grid-template-columns: 260px 1fr 70px; gap: 18px; align-items: center; }
.qz-bar b { font-weight: 600; font-size: 15px; }
.qz-bar b small { display: block; font-weight: 400; font-size: 12.5px; color: var(--ink-soft); }
.qz-bar .track { height: 12px; background: var(--bone-deep); border-radius: 99px; overflow: hidden; }
.qz-bar .track i { display: block; height: 100%; width: 0; border-radius: 99px; background: var(--cobalt); transition: width 1s cubic-bezier(.2,.7,.2,1); }
.qz-bar.clarity .track i { background: var(--teal-deep); }
.qz-bar em { font: 500 13.5px 'JetBrains Mono', monospace !important; color: var(--ink) !important; text-align: right; }
.qz-two { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 54px 0; }
.qz-two .qz-block { margin: 0; }
.qz-card-soft { background: #fff; border: 1px solid var(--qz-line); border-radius: 18px; padding: 30px 30px 14px; }
.qz-card-soft h2 { font-size: 26px !important; }
.qz-dot { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
.qz-dot.ok { background: #6fb7a8; } .qz-dot.edge { background: #e0876a; }
.qz-item { margin-bottom: 18px; }
.qz-item b { display: block; font-size: 15.5px; margin-bottom: 3px; }
.qz-item b small { font: 500 12px 'JetBrains Mono', monospace; color: var(--ink-soft); margin-left: 6px; }
.qz-item p, .qz-block > div > p, .qz-story p { color: var(--ink-soft); font-size: 16px; line-height: 1.75; margin-bottom: 14px; max-width: 780px; }
.qz-block ul.qz-list { margin: 0 0 16px 20px; color: var(--ink-soft); line-height: 1.9; }
.qz-callout { font-family: 'Fraunces', serif; font-size: 18px; color: var(--teal-deep) !important; }
.qz-story { background: var(--foam); border-radius: 22px; padding: 44px 46px 30px; }
.qz-story blockquote { font: italic 500 24px/1.45 'Fraunces', serif; color: var(--ink); border-left: 3px solid var(--cobalt); padding: 4px 0 4px 22px; margin: 6px 0 22px; max-width: 720px; }
.qz-practices { list-style: none; counter-reset: p; display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.qz-practices li { counter-increment: p; background: #fff; border: 1px solid var(--qz-line); border-radius: 16px; padding: 24px 26px; }
.qz-practices li::before { content: counter(p, decimal-leading-zero); font: 500 12px 'JetBrains Mono', monospace; color: var(--cobalt); display: block; margin-bottom: 10px; }
.qz-practices b { display: block; font: 500 20px 'Fraunces', serif; margin-bottom: 8px; }
.qz-practices p { color: var(--ink-soft); font-size: 15px; line-height: 1.7; }
.qz-next { background: var(--ink); color: #fff; border-radius: 24px; padding: 52px 52px 44px; margin: 64px 0 30px; position: relative; overflow: hidden; }
.qz-next h2 { color: #fff; font-size: 34px; margin-bottom: 16px; }
.qz-next > p { color: rgba(255,255,255,.8); font-size: 16.5px; line-height: 1.75; max-width: 760px; }
.qz-next a:not(.qz-btn) { color: #fff; border-bottom: 1px solid rgba(255,255,255,.4); }
.qz-cta-row { display: flex; gap: 12px; flex-wrap: wrap; margin: 30px 0 34px; }
.qz-paths { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.qz-paths div { border: 1px solid rgba(255,255,255,.16); border-radius: 14px; padding: 20px 22px; }
.qz-paths b { display: block; font: 500 19px 'Fraunces', serif; margin-bottom: 6px; }
.qz-paths span { font-size: 14.5px; color: rgba(255,255,255,.72); line-height: 1.6; }
.qz-send, .qz-sent { background: #fff; color: var(--ink); border-radius: 18px; padding: 30px; margin-top: 26px; }
.qz-send h3, .qz-sent h3 { font-size: 24px; margin-bottom: 8px; }
.qz-send > p, .qz-sent p { color: var(--ink-soft); font-size: 15px; margin-bottom: 18px; }
.qz-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 16px; }
.qz-fields label { font-size: 13.5px; font-weight: 600; display: flex; flex-direction: column; gap: 6px; }
.qz-fields input { font: 400 15.5px 'Inter', sans-serif; padding: 12px 14px; border: 1.5px solid var(--qz-line); border-radius: 10px; }
.qz-fields input:focus { outline: none; border-color: var(--cobalt); }
.qz-fields .opt { font-weight: 400; color: var(--ink-soft); }
.qz-full { grid-column: 1 / -1; }
.qz-consent { display: flex; gap: 10px; font-size: 13.5px; color: var(--ink-soft); line-height: 1.55; margin-bottom: 18px; align-items: flex-start; }
.qz-consent input { margin-top: 3px; accent-color: var(--ink); }
.qz-consent a { color: var(--cobalt) !important; border: 0 !important; }
.qz-err { color: #b3402a; font-size: 13.5px; margin-bottom: 12px; }
.qz-sign { margin-top: 40px; color: rgba(255,255,255,.75); font-size: 15.5px; line-height: 1.6; }
.qz-sign span { font: italic 500 22px 'Fraunces', serif; color: #fff; }
.qz-crisis { max-width: 820px; }
.qz-restart { margin: 20px 0 60px; }

@media (max-width: 900px) {
  .qz-intro { padding: 72px 0 64px; }
  .qz-intro h1, .qz-res-head h1 { font-size: 40px; }
  .qz-wave { width: 110%; right: -40%; opacity: .25; }
  .qz-res-top, .qz-two, .qz-practices, .qz-paths { grid-template-columns: 1fr; }
  .qz-bar { grid-template-columns: 1fr 60px; }
  .qz-bar b { grid-column: 1 / -1; }
  .qz-story-grid { grid-template-columns: 1fr 1fr; }
  .qz-next { padding: 38px 24px 32px; }
  .qz-story { padding: 30px 24px 18px; }
}
@media (max-width: 560px) {
  .wrap { padding: 0 16px; }
  .qz-screen h2 { font-size: 30px; }
  .qz-q { padding: 18px 16px; }
  .qz-scale { gap: 5px; }
  .qz-scale button { padding: 10px 2px 8px; }
  .qz-scale button span { display: none; }
  .qz-fields { grid-template-columns: 1fr; }
  .qz-story-grid { grid-template-columns: 1fr; }
  .qz-cta-row .qz-btn { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .qz-screen.is-active, #radar .shape { animation: none; }
  .qz-bar .track i, .qz-meter i, .qz-progress-bar i { transition: none; }
}
@media print {
  .site-nav, footer, .qz-progress, .qz-cta-row, .qz-send, .qz-sent, .qz-restart, #chat-launcher, [class*="chat"] { display: none !important; }
  .qz-results { background: #fff; padding-top: 0; }
  .qz-next { background: #fff; color: var(--ink); border: 1px solid var(--qz-line); }
  .qz-next h2, .qz-next > p, .qz-sign, .qz-sign span, .qz-paths span { color: var(--ink) !important; }
  .qz-block, .qz-story, .qz-practices li { break-inside: avoid; }
}
