/* Guest funnel and free result: type, spacing, color, progress, first tap.
   Loaded last. Presentation only; no copy, scoring, or lock logic lives here. */
:root{--sun:#e9a93b;--sun-soft:#fdf1d6;--sage:#d7e8da;--ink-soft:#2c4338;--stem-font:"Iowan Old Style","Charter","Palatino Linotype",Palatino,Georgia,serif;--ease:cubic-bezier(.2,.7,.2,1)}
html[data-theme="dark"]{--sun:#f0b955;--sun-soft:#2a2414;--sage:#1d2d27;--ink-soft:#cfe0d7}
body{background:radial-gradient(120% 60% at 50% -10%,#eef5ea 0,var(--paper) 55%) fixed,var(--paper)}
html[data-theme="dark"] body{background:var(--paper)}

/* Reflection runner */
.reflection-layout{max-width:1040px;margin-inline:auto}
.reflection-runner{max-width:640px;margin-inline:auto}
.reflection-runner .runner-head{align-items:center;margin-bottom:10px}
.reflection-runner .runner-head .micro{font-variant-numeric:tabular-nums;font-weight:650;color:var(--ink-soft);letter-spacing:.01em}
.reflection-runner .progress-track{display:block!important;height:6px;border-radius:99px;background:var(--line);overflow:hidden;margin:0 0 18px}
.reflection-runner .progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--green),var(--sun));transition:width .45s var(--ease)}
.reflection-runner .task-card{background:transparent;border:0;box-shadow:none;padding:0}
.reflection-milestone{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
.reflection-runner .scenario-question{font-family:var(--stem-font);font-weight:610;font-size:clamp(32px,8vw,48px);line-height:1.12;letter-spacing:-.03em;margin:0 0 12px;text-wrap:balance;color:var(--ink);background:transparent;border:0;box-shadow:none}
.reflection-picture{font-size:15px;line-height:1.45;color:var(--muted);margin:0 0 16px;padding:0;border:0;text-wrap:pretty}
.frequency-choice-list{gap:10px}
.frequency-choice{position:relative;display:flex;align-items:center;gap:14px;min-height:58px;padding:12px 18px 12px 16px;border:1.5px solid var(--line);border-radius:18px;background:var(--white);font-weight:600;font-size:17px;box-shadow:0 1px 0 #182c2208,0 8px 20px -14px #182c2240;transition:transform .16s var(--ease),border-color .16s,background .16s,box-shadow .16s;-webkit-tap-highlight-color:transparent}
/* hover only where a pointer can hover; on touch a stuck hover made the next question look answered */
@media(hover:hover) and (pointer:fine){.frequency-choice:hover{border-color:var(--green);box-shadow:0 10px 24px -14px #24614380}}
.frequency-choice:active:not(:disabled){transform:scale(.985);background:var(--sage);border-color:var(--green)}
.frequency-choice:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.frequency-choice:disabled{opacity:1;cursor:default}
.frequency-choice-list .frequency-choice:disabled:focus,.frequency-choice-list .frequency-choice[aria-pressed="true"]{background:var(--sage);border-color:var(--green)}
/* five-step intensity mark, a visual aid only; labels carry the meaning */
.frequency-choice-list .frequency-choice::before{content:"";flex:none;width:30px;height:12px;border-radius:3px;background:linear-gradient(90deg,var(--green) 0 calc(var(--n)*20% - 2px),transparent 0) ,repeating-linear-gradient(90deg,var(--line) 0 4px,transparent 4px 6px);background-blend-mode:normal;-webkit-mask:repeating-linear-gradient(90deg,#000 0 4px,transparent 4px 6px);mask:repeating-linear-gradient(90deg,#000 0 4px,transparent 4px 6px);opacity:.9}
.frequency-choice-list .frequency-choice:nth-child(1){--n:1}.frequency-choice-list .frequency-choice:nth-child(2){--n:2}.frequency-choice-list .frequency-choice:nth-child(3){--n:3}.frequency-choice-list .frequency-choice:nth-child(4){--n:4}.frequency-choice-list .frequency-choice:nth-child(5){--n:5}
.reflection-utility{margin-top:6px}
.reflection-utility .text-button,.scenario-block .text-button{color:var(--muted);font-size:14px;min-height:44px;padding:0 4px;text-decoration:none;border-radius:10px}
.reflection-utility .text-button:hover{color:var(--ink);text-decoration:underline}
#response-ack{min-height:22px;font-size:13px;font-weight:650;color:var(--green)}
.response-spark{color:var(--sun)}

/* Scenario choices as soft cards */
.scenario-block{border:0;margin:0 0 14px;padding:16px;border-radius:20px;background:var(--white);box-shadow:0 1px 0 #182c2208,0 12px 28px -20px #182c2250;min-inline-size:0}
.scenario-block legend{font-family:var(--stem-font);font-size:19px;font-weight:600;line-height:1.3;padding:0;margin-bottom:10px;float:left;width:100%}
.scenario-block legend+*{clear:both}
.scenario-choice-list{display:grid;gap:8px}
.scenario-choice-list .frequency-choice{min-height:52px;font-weight:550;font-size:16px;box-shadow:none;background:var(--paper)}
.scenario-choice-list .frequency-choice[aria-pressed="true"]{background:var(--sage);border-color:var(--green)}
.scenario-choice-list .frequency-choice[aria-pressed="true"]::after{content:"\2713";margin-left:auto;color:var(--green);font-weight:800}
.reflection-runner h1.scenario-question#reflection-question{outline-offset:6px;border-radius:8px}

/* Companion column: quieter */
.reflection-side{opacity:.95}
.reflection-side .eyebrow{color:var(--muted)}
.companion-caption{font-family:var(--stem-font);font-weight:600}
@media(max-width:800px){.reflection-side{display:none}.reflection-runner{padding-bottom:28px}}

/* Free label result */
.panel{border-radius:26px;border:1px solid var(--line);box-shadow:0 1px 0 #182c2208,0 24px 48px -36px #182c2260}
.panel.label-reveal{position:relative;overflow:hidden;text-align:center;padding:44px clamp(20px,5vw,56px) 36px;background:linear-gradient(180deg,var(--sage) 0,var(--white) 62%);border-color:#c5dbc9}
.panel.label-reveal::before{content:"";position:absolute;inset:-40% -20% auto;height:80%;background:radial-gradient(closest-side,var(--sun-soft),transparent 72%);pointer-events:none}
.panel.label-reveal>*{position:relative}
.panel.label-reveal .eyebrow{justify-content:center;color:var(--green)}
.panel.label-reveal .label-name{font-family:var(--stem-font);font-size:clamp(34px,9vw,60px);line-height:1.05;letter-spacing:-.02em;margin:10px auto 14px;max-width:15ch;text-wrap:balance;animation:label-in .7s var(--ease) both}
.panel.label-reveal>p:not(.micro):not(.response-quality){font-size:18px;color:var(--ink-soft);margin:0 auto 10px}
.panel.label-reveal .micro{max-width:46ch;margin:8px auto 0;color:var(--muted);font-size:13px;line-height:1.5}
.panel.label-reveal .response-quality{max-width:46ch;margin:16px auto 0;padding:12px 14px;border-radius:14px;background:var(--sun-soft);color:var(--ink);font-size:13px;line-height:1.5;text-align:left}
@keyframes label-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.panel.premium-lock{background:linear-gradient(160deg,#1b3a2e,#16251f);color:#f2f7f1;border:0}
.panel.premium-lock .eyebrow{color:var(--sun)}
.panel.premium-lock h2{color:#fff;font-family:var(--stem-font);font-size:clamp(26px,6vw,36px);letter-spacing:-.015em}
.panel.premium-lock p{color:#d5e4da}
.panel.premium-lock .button{background:var(--sun);color:#16251f;border:0;font-weight:700}
.panel.tier-boundary{background:transparent;box-shadow:none;border-style:dashed;padding:20px 22px}
.panel.tier-boundary h2{font-size:17px;margin:0 0 8px}
.panel.tier-boundary p{font-size:13.5px;line-height:1.5;color:var(--muted);margin:0 0 6px}
@media(prefers-reduced-motion:reduce){.panel.label-reveal .label-name,.frequency-choice,.progress-fill{animation:none;transition:none}}
.reduce-motion .panel.label-reveal .label-name,.reduce-motion .frequency-choice,.reduce-motion .progress-fill{animation:none;transition:none}
@media(forced-colors:active){.frequency-choice-list .frequency-choice::before{display:none}}
#reflection-question:focus,.label-name:focus{outline:none}
/* Free result: the name, the one unlock, the waitlist, then one honesty line */
div:has(>.label-reveal){display:flex;flex-direction:column;gap:18px}
div:has(>.label-reveal)>*{margin-top:0;margin-bottom:0}
div:has(>.label-reveal)>.label-reveal,div:has(>.label-reveal)>.identity-card-share{order:0}
div:has(>.label-reveal)>.premium-lock{order:1}
div:has(>.label-reveal)>[data-waitlist="offer"]{order:2}
div:has(>.label-reveal)>.result-honesty{order:3}
div:has(>.label-reveal)>.label-how{order:4}
div:has(>.label-reveal)>:not(.label-reveal):not(.premium-lock):not([data-waitlist="offer"]):not(.result-honesty):not(.label-how):not(.identity-card-share){order:5}
div:has(>.label-reveal)>.label-reveal{margin-top:12px}
.panel.premium-lock .premium-lock-art{opacity:.35}
.consistency-note{margin:0 0 18px;padding:12px 14px;border-radius:14px;background:var(--sage);color:var(--ink-soft);font-size:14px;line-height:1.5}
.consistency-note[data-consistency="mixed"],.consistency-note[data-consistency="uneven"]{background:var(--sun-soft)}

/* Opus funnel polish (2026-10-28) */
/* Runner chrome sits on the same left edge as the stem */
.reflection-runner .runner-head .text-button{padding-left:0}
.reflection-utility .text-button{margin-left:-4px}
/* First question only: the one honesty line a fresh guest sees before the first tap, in place of the stage line */
.reflection-first-note{margin:0 0 10px;font-size:13px;line-height:1.45;color:var(--muted);text-wrap:pretty}
/* Dark: the stem and taps sit on the page, not in a box */
html[data-theme="dark"] .reflection-runner .task-card{background:transparent}
html[data-theme="dark"] .panel.label-reveal{background:linear-gradient(180deg,var(--sage) 0,var(--paper) 70%);border-color:#2b3e37}
html[data-theme="dark"] .panel.premium-lock{background:linear-gradient(160deg,#21463a,#13221c);border:1px solid #2f5244}
html[data-theme="dark"] .panel.premium-lock .button{background:var(--sun);color:#16251f}
/* Short choices: one situation per screen; answered ones step out of the way */
.scenario-block:has([aria-pressed="true"]),.scenario-block:not(:has([aria-pressed="true"]))~.scenario-block{display:none}
.reflection-lead{text-wrap:pretty}
/* Free label: name, one line about it, then the next step */
.panel.label-reveal .label-tagline{font-family:var(--stem-font);font-style:italic;font-size:clamp(19px,4.6vw,23px);line-height:1.3;color:var(--ink-soft);margin:-2px auto 18px;max-width:28ch;text-wrap:balance}
.panel.label-reveal .label-tagline::after{content:"";display:block;width:36px;height:3px;margin:14px auto 0;border-radius:3px;background:var(--sun)}
.panel.label-reveal>p:not(.micro):not(.response-quality):not(.label-tagline){font-size:16px;max-width:40ch;text-wrap:balance}
.panel.label-reveal .micro{text-wrap:pretty}
.panel.label-reveal .label-name.label-tie{font-size:clamp(28px,7.4vw,44px);line-height:1.14;max-width:none}
.label-and{display:block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-style:normal;font-size:.42em;font-weight:500;letter-spacing:.04em;line-height:1.6;color:var(--ink-soft)}
.label-tie-taglines{list-style:none;margin:-2px auto 18px;padding:0;font-family:var(--stem-font);font-style:italic;font-size:clamp(17px,4.4vw,21px);line-height:1.35;color:var(--ink-soft);max-width:none}
.label-tie-taglines li{margin:0 0 6px;text-wrap:balance}
.label-tie-taglines::after{content:"";display:block;width:36px;height:3px;margin:14px auto 0;border-radius:3px;background:var(--sun)}
.label-tie-taglines b{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-style:normal;font-size:.72em;font-weight:650;letter-spacing:.01em;color:var(--ink);margin-right:.3em}
.label-how{max-width:46ch;margin:6px auto 0;font-size:13px;color:var(--muted)}
.label-how summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.label-how summary:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:6px}
.label-how .micro{margin-top:0}
/* Premium lock: a readable measure, no motion or art behind the words */
.panel.premium-lock .premium-lock-copy:before{display:none}
.panel.premium-lock .premium-lock-art{opacity:.18}
.panel.premium-lock h2{text-wrap:balance;max-width:20ch}
.panel.premium-lock .premium-lock-copy>p{max-width:none;margin-inline:0;text-wrap:pretty}
.panel.premium-lock .text-button{color:#e6f0e8;text-decoration:underline;text-underline-offset:3px}
.panel.premium-lock .premium-lock-price{margin:14px 0 4px;color:#fff}
.panel.premium-lock .premium-lock-copy{max-width:640px;margin:0 auto;background:none}
.panel.premium-lock .premium-lock-points{color:#e6f0e8}
.panel.premium-lock .premium-lock-points li::marker{color:var(--sun)}
.panel.premium-lock .button{margin-top:6px}
.panel.premium-lock .button:focus-visible{outline:3px solid #fff;outline-offset:3px}
/* Public home: the promise is the only large type, and the header keeps sign-in and settings. */
body:has(.public-landing) .site-header{justify-content:flex-start;gap:12px}
body:has(.public-landing) .site-header nav{display:none}
body:has(.public-landing) #account-nav{margin-left:auto}
body:has(.public-landing) #account-nav>.button{display:none}
.experience .public-landing{max-width:40rem;padding:clamp(28px,6vh,72px) 0 64px}
.experience .public-landing h1{font-family:var(--stem-font);font-size:clamp(2.05rem,6.2vw,3.35rem);line-height:1.14;letter-spacing:-.03em;font-weight:610;max-width:16em;margin:0 0 28px;text-wrap:balance}
.experience .public-landing .experience-primary{min-height:52px;padding:14px 26px;font-size:17px;justify-content:center;width:fit-content}
.public-trust,.public-waitlist,.public-who{color:var(--ink);font-size:1.0625rem;line-height:1.45;max-width:36em;margin:14px 0 0;text-wrap:pretty}
.public-trust{margin-top:22px}
.public-subhead{color:var(--ink);font-size:1.1875rem;line-height:1.45;max-width:34em;margin:16px 0 28px;text-wrap:pretty}
@media(max-width:640px){.experience .public-landing{padding-top:18px}.experience .public-landing .experience-primary{width:100%}}
@media(prefers-reduced-motion:reduce){.experience .public-landing .experience-primary{transition:none}}
html[data-motion="reduced"] .experience .public-landing .experience-primary,.reduce-motion .experience .public-landing .experience-primary{transition:none}
/* Free result tail: one honesty line under the waitlist. The rest stays in the disclosure. */
.result-honesty{max-width:42ch;margin:2px auto 0;text-align:center;color:var(--muted);font-size:14px;line-height:1.45;text-wrap:pretty}
div:has(>.label-reveal)>.label-how{max-width:40rem;width:100%;margin:0 auto;text-align:center;font-size:15px;color:var(--ink-soft)}
div:has(>.label-reveal)>.label-how summary{font-size:14px;color:var(--muted)}
.label-how-body{text-align:left;margin-top:4px}
.label-how-body>.panel,.label-how-body .result-later{margin-top:14px}
/* Build #102: the card sits right under the result as one quiet row that opens in place. */
.panel.identity-card-share{padding:0;background:var(--white)}
.panel.identity-card-share:not([open]){background:transparent;border-color:transparent;box-shadow:none}
div:has(>.label-reveal)>.identity-card-share:not([open]){margin-top:-12px}
.identity-card-share>summary{display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 24px;cursor:pointer;list-style:none;font-weight:650;font-size:17px;color:var(--green);border-radius:inherit}
.identity-card-share>summary::-webkit-details-marker{display:none}
.identity-card-share>summary::after{content:"";width:9px;height:9px;flex:none;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .18s ease-out}
.identity-card-share[open]>summary::after{transform:translateY(2px) rotate(-135deg)}
.identity-card-share>summary{text-decoration:underline;text-underline-offset:3px}
.identity-card-share[open]>summary{justify-content:space-between;min-height:56px;text-decoration:none}
.identity-card-share>summary:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.identity-card-offer{padding:0 24px 24px}
.identity-card-offer>p{font-size:16px;line-height:1.5;color:var(--ink);max-width:40em;margin:0}
.identity-card-actions .text-button{min-height:44px;padding:0 2px;font-size:16px;font-weight:600;color:var(--green);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.identity-card-actions{gap:4px 20px}
@media (prefers-reduced-motion:reduce){.identity-card-share>summary::after{transition:none}}
.reduce-motion .identity-card-share>summary::after{transition:none}
/* A tie of 3 or more: one compact list at tagline size instead of a headline per name. */
.panel.label-reveal .label-name.label-tie-head{font-size:clamp(26px,6.4vw,38px);line-height:1.18;max-width:22ch;text-wrap:balance}
.label-tie-list{list-style:none;margin:6px auto 16px;padding:0;font-family:var(--stem-font);font-style:italic;font-size:clamp(19px,4.6vw,23px);line-height:1.4;color:var(--ink-soft);max-width:28ch}
.label-tie-list li{margin:0}
.panel.label-reveal[data-label-tie="even"]>.button{margin-top:18px}
/* Build #76: the guest save line reads as one sentence, with the links inline. */
#premium-results>p.premium-status[data-funnel-empty="guest"]{text-align:center;font-size:15px;line-height:1.75;max-width:36ch;margin:24px auto 0}
#premium-results [data-result-save].text-button{display:inline;padding:0;min-height:0;font-size:inherit;font-weight:600;color:var(--green);text-decoration:underline;text-underline-offset:3px}

/* Free account signup. The result sits above the form on a phone. */
.signup-result{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:16px 18px;margin:0 0 18px}
.signup-result .eyebrow{margin:0}
.signup-result-name{font-family:var(--stem-font);font-size:clamp(26px,7vw,34px);line-height:1.15;margin:6px 0 8px;color:var(--ink);text-wrap:balance}
.signup-result-list{margin:0 0 8px;padding-left:1.15em}
.signup-result-list li{margin:2px 0}
.signup-born{display:grid;gap:8px;margin:0 0 12px}
.signup-born label{font-weight:650;color:var(--ink)}
.signup-born select{min-height:44px;width:100%;box-sizing:border-box;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:8px 12px;font:inherit}
.parent-flow .button,.parent-flow input,.parent-flow select{min-height:44px}
.parent-flow .button{width:100%}
.signup-age{border:0;margin:0 0 8px;padding:0}
.signup-age legend{font-weight:650;margin:0 0 8px;color:var(--ink)}
.signup-age .choice-list{display:grid;gap:8px}
.signup-age .choice{min-height:44px;display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--line);border-radius:14px;background:var(--white);color:var(--ink)}
.signup-age input{width:22px;height:22px;margin:0;flex:none;accent-color:var(--green)}
.account-panel .demo-ack{min-height:44px;align-items:center;font-size:16px;line-height:1.4;color:var(--ink);margin:8px 0}
.account-panel .demo-ack input{width:22px;height:22px;margin-top:0}
.account-panel .demo-ack a{color:var(--green);font-weight:650}
#connected-auth[data-kind="signup"] .button[type="submit"]{width:100%;min-height:48px}
#connected-auth[data-kind="signup"] .button[type="submit"][hidden]{display:none}
.account-panel .form-status.is-error{color:#9b2c2c;font-weight:650}
html[data-theme="dark"] .account-panel .form-status.is-error{color:#ffb4b4}
.signup-block{margin:8px 0 16px}
.signup-block p{color:var(--ink)}
@media(max-width:800px){.account-story h1{font-size:32px;letter-spacing:-.4px;line-height:1.15}}
.account-panel :focus-visible{outline:3px solid var(--blue);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.account-panel .button:hover{transform:none}}
html[data-motion="reduced"] .account-panel .button:hover,.reduce-motion .account-panel .button:hover{transform:none}
/* Answering delight (MASTER-PLAN 4.5): the tapped answer settles, the path shows four sets of 12 and the short choices, section breaks are one quiet line. Every answer gets the same treatment. */
.reflection-runner .progress-track{--gap:2px;-webkit-mask:linear-gradient(90deg,#000 calc(23.077% - var(--gap)),transparent 0 calc(23.077% + var(--gap)),#000 0 calc(46.154% - var(--gap)),transparent 0 calc(46.154% + var(--gap)),#000 0 calc(69.231% - var(--gap)),transparent 0 calc(69.231% + var(--gap)),#000 0 calc(92.308% - var(--gap)),transparent 0 calc(92.308% + var(--gap)),#000 0);mask:linear-gradient(90deg,#000 calc(23.077% - var(--gap)),transparent 0 calc(23.077% + var(--gap)),#000 0 calc(46.154% - var(--gap)),transparent 0 calc(46.154% + var(--gap)),#000 0 calc(69.231% - var(--gap)),transparent 0 calc(69.231% + var(--gap)),#000 0 calc(92.308% - var(--gap)),transparent 0 calc(92.308% + var(--gap)),#000 0)}
.frequency-choice-list .frequency-choice.is-chosen{background:var(--sage);border-color:var(--green);animation:choice-settle .12s ease-out}
.frequency-choice-list .frequency-choice.is-chosen::after{content:"\2713"/"";margin-left:auto;color:var(--green);font-weight:800}
@keyframes choice-settle{from{transform:scale(.97)}to{transform:none}}
.section-break{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:10px 14px;border-radius:14px;background:var(--sage);color:var(--green);font-size:16px;font-weight:650;line-height:1.4;animation:section-break-in .24s ease-out both}
.section-break::before{content:"\2726"/"";color:currentColor;flex:none}
@keyframes section-break-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.key-hint{display:none}
@media(min-width:801px) and (hover:hover) and (pointer:fine){.reflection-utility .key-hint{display:inline-flex;align-items:center;margin-left:auto;font-size:13px}}
@media(prefers-reduced-motion:reduce){.frequency-choice-list .frequency-choice.is-chosen,.section-break{animation:none;transform:none}}
html[data-motion="reduced"] .frequency-choice-list .frequency-choice.is-chosen,html[data-motion="reduced"] .section-break,.reduce-motion .frequency-choice-list .frequency-choice.is-chosen,.reduce-motion .section-break{animation:none;transform:none}
