:root{--accent:#363636;--selected:#f3f3f3;--muted:#696969}
.orr-wordmark{position:fixed;top:18px;left:20px;z-index:35;display:flex;align-items:center;justify-content:flex-start;gap:8px;margin:0;color:#000;font-size:1rem;font-weight:600;line-height:1;letter-spacing:.04em;text-decoration:none}.orr-brand-name{font-weight:600;white-space:nowrap}.orr-logo{display:block;flex:none;width:48px;aspect-ratio:96/43}.orr-logo img{display:block;width:100%;height:auto}.home .hero-stage{margin-top:8px}
.goal-options .icon{font-size:1.75rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:none;border:0}.option-copy strong{line-height:1.35}.option-copy small{line-height:1.5}.options .option[data-value=none]{border-color:#e8c4c0;color:#9b352a;background:#fffafa}.options .option[data-value=none].selected{border-color:#a8392b;background:#fff0ed}.danger-pill{background:#fff0ed!important;color:#9b352a!important;border:1px solid #f0cec8!important;border-radius:999px!important;padding:12px 20px!important;text-decoration:none!important;font-weight:600;display:inline-block}
.brand-logo{width:38px;height:30px;object-fit:contain;flex:none;border:0;background:none}.store-chip{gap:10px;display:inline-flex;align-items:center;justify-content:flex-start}.store-chip .small-check{order:3}.select-brand{max-width:48px;min-width:40px}.select-brand .brand-logo{width:40px;height:29px}.store-chip:has(.brand-logo){min-height:62px}.store-chip>span:not(.small-check){flex:1;text-align:left}.chip-options{gap:10px}
.income-fields>.field{margin-bottom:22px}.income-total{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--line);font-size:.9375rem;margin-bottom:20px}.income-total strong{white-space:nowrap}.mini-label{display:block;text-transform:uppercase;font-size:.75rem;letter-spacing:.12em;font-weight:650;color:var(--muted)}
.inline-total{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;background:#f4f4f4;border-radius:16px;margin:12px 0 22px}.inline-total label{margin:0;font-size:1rem;font-weight:600}.inline-total label small{display:block;font-weight:400;color:var(--muted);font-size:.875rem;margin-top:4px}.inline-total .money{max-width:180px;width:43%;background:white;flex:none}.inline-total input{font-weight:650;text-align:right}.segmented{display:flex;gap:6px;padding:5px;background:#f1f1f1;border-radius:14px;margin:14px 0}.segmented button{border:0;background:none;flex:1;padding:12px 16px;border-radius:10px;font-size:1rem;font-weight:600}.segmented button[aria-pressed=true],.segmented button.selected{background:#363636;color:white}.housing-question{margin-bottom:30px}.housing-question h2{font-size:1.15rem}.small.segmented{margin:0}.small.segmented button{font-size:.875rem;padding:8px 12px}
.estimate-card{background:#f3f3f3;border-radius:24px;padding:34px 28px;text-align:center}.estimate-card>strong{display:block;font-size:clamp(2rem,7vw,3rem);letter-spacing:-.06em;margin:16px 0 8px}.estimate-card>span:not(.mini-label){font-size:.9375rem}.estimate-card p{font-size:.875rem;line-height:1.6;color:#5f5f5f;margin:22px 0 0}.income-estimate{position:relative;isolation:isolate;overflow:hidden;border:1px solid #e7e7e7;background:linear-gradient(145deg,#f4f4f4 0%,#f9f9f9 72%);box-shadow:inset 0 1px 0 #fff9;transform-origin:center;animation:estimate-card-in .55s cubic-bezier(.16,1,.3,1) both}.income-estimate:before{content:'';position:absolute;z-index:-1;width:280px;height:280px;right:-125px;top:-165px;border-radius:50%;background:radial-gradient(circle,#d8d8d880 0%,#d8d8d800 70%)}.income-estimate .estimate-range{line-height:1.02;font-variant-numeric:tabular-nums}.estimate-visual{margin:30px 0 4px;text-align:left;transform-origin:center;animation:estimate-visual-in .75s .1s cubic-bezier(.16,1,.3,1) both}.estimate-track{position:relative;height:10px;margin:0 9px 15px;border-radius:999px;background:transparent}.estimate-track:before{content:"";position:absolute;inset:0;border-radius:inherit;background:#e0e0e0;transform-origin:center;animation:estimate-range-reveal .85s .1s cubic-bezier(.16,1,.3,1) both}.estimate-fill{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,#a6a6a6,#686868);transform-origin:center;animation:estimate-range-reveal .85s .1s cubic-bezier(.16,1,.3,1) both}.estimate-point{position:absolute;top:50%;width:20px;height:20px;border:5px solid #fff;border-radius:50%;background:#676767;box-shadow:0 2px 8px #36363633;transform:translate(-50%,-50%);animation:estimate-point-expand .85s .1s cubic-bezier(.16,1,.3,1) both}.estimate-point-low{--estimate-end:0%;left:0}.estimate-point-high{--estimate-end:100%;left:100%}.estimate-axis{display:flex;justify-content:space-between;gap:24px;color:#424242}.estimate-axis>strong:last-child{text-align:right}.estimate-axis strong{display:block;font-size:1rem;font-variant-numeric:tabular-nums}.estimate-number{display:inline-grid;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.estimate-number:before{content:attr(data-final);visibility:hidden;grid-area:1/1}.estimate-number>[data-estimate-value]{grid-area:1/1}.estimate-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.checkpoint-copy{font-size:1.15rem;line-height:1.6;margin:24px 0;animation:estimate-copy-in .45s .35s ease-out both}.income-fields .helper{margin-top:12px}
.draft-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.draft-fields>.field{margin:0}.draft-fields label small{color:var(--muted);font-weight:400}.draft-fields input{width:100%;min-height:54px;border:1px solid #dfdfdf;border-radius:12px;padding:14px;font:inherit;background:#fff}.draft-fields .field:has([data-draft=street]),.draft-fields .field:has([data-draft=email]),.draft-location{grid-column:1/-1}.draft-location{display:flex;align-items:center;justify-content:space-between;font-size:.9375rem}.lead-copy{font-size:1rem;line-height:1.6;margin-bottom:20px}.profile-save-state{display:flex;align-items:center;gap:10px;margin:0 0 24px;padding:11px 14px;border:1px solid #e5e5e5;border-radius:12px;background:#f9f9f9;color:#5d5d5d;font-size:.875rem}.profile-save-dot{width:9px;height:9px;flex:none;border-radius:50%;background:#ababab;box-shadow:0 0 0 4px #ababab1a}.profile-save-dot[data-state=loading],.profile-save-dot[data-state=saving]{background:#c38b2d;box-shadow:0 0 0 4px #c38b2d1c}.profile-save-dot[data-state=saved]{background:#767676;box-shadow:0 0 0 4px #7676761c}.profile-save-dot[data-state=error]{background:#b64b3f;box-shadow:0 0 0 4px #b64b3f1c}[data-profile-status][data-state=error]{color:#963b31}.profile-privacy{margin-top:16px;padding:4px 18px;border-radius:15px;background:#f9f9f9;font-size:.875rem}.profile-privacy summary{cursor:pointer;padding:14px 0;font-weight:600}.profile-privacy p{color:var(--muted);line-height:1.6;margin:0 0 8px}.profile-privacy .danger-pill{margin:5px 0 16px}[data-profile-delete][hidden]{display:none!important}
.review-pills{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}.review-pills span{padding:8px 12px;background:#f3f3f3;border-radius:99px;font-size:.875rem}.breakdown-heading{display:flex;align-items:center;gap:12px;justify-content:space-between;margin:28px 0 18px}.breakdown-heading h2{font-size:1.125rem;margin:0}.spend-breakdown{border-bottom:1px solid #e7e7e7;padding:2px 0}.spend-breakdown>summary{cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:19px 0;font-size:1rem}.spend-breakdown>summary:after{content:'+';color:var(--muted)}.spend-breakdown[open]>summary:after{content:'−'}.spend-breakdown>summary>span{flex:1}.breakdown-content{padding:0 0 20px}.breakdown-content .inline-total{margin:0 0 12px}.breakdown-row{display:flex;justify-content:space-between;gap:20px;padding:8px 4px;font-size:.9375rem;color:#5c5c5c}.breakdown-row>span:last-child{white-space:nowrap}.summary-total{display:flex;justify-content:space-between;align-items:center;padding:24px 0;font-size:1.125rem}.summary-total strong{font-size:1.75rem;letter-spacing:-.04em}
.scan-loading{max-width:660px;margin:auto;overflow:hidden}.scan-loading h1{font-size:clamp(2rem,7vw,3rem);margin:18px 0 32px}.scan-window{width:100%;overflow:hidden;padding:28px 0 22px}.scan-rail{display:flex;gap:14px;align-items:center;transition:transform .65s cubic-bezier(.25,.8,.25,1);padding-left:calc(50% - 76px)}.scan-card{width:152px;flex:none;padding:10px 7px;border:2px solid transparent;border-radius:17px;transition:background .5s,border-color .5s,transform .5s}.scan-card img{width:134px;height:86px;object-fit:contain;filter:drop-shadow(0 5px 4px #0002)}.candidate-label{display:block;font-size:.75rem;line-height:1.35;min-height:33px;margin-top:10px;color:#696969}.scan-card.possible{border-color:#d0d0d0;background:#f6f6f6}.scan-card.needs-review{border-color:#e7d8b0;background:#fcfcfc}.scan-card.chosen{border-color:#6d6d6d;background:#f2f2f2;transform:translateY(-10px)}.scan-count{font-size:1.125rem}.scan-count strong{font-size:1.65rem}.scan-loading #scan-status{min-height:44px;color:var(--muted);font-size:1rem}.scan-loading .loading-track span{width:65%;animation:scan-wait 2s ease-in-out infinite}.scan-loading>.helper{max-width:440px;margin:20px auto;line-height:1.6}
.rank-pill{display:inline-flex;align-items:center;font-size:.8125rem;font-weight:650;background:#f2f2f2;color:#4d4d4d;border-radius:99px;padding:6px 12px;margin-bottom:18px}.contribution-meter{height:8px;overflow:hidden;background:#ececec;border-radius:99px;margin:12px 0 7px}.contribution-meter>span{display:block;height:100%;background:#6e6e6e;border-radius:99px}.contribution-meter.negative>span{background:#bc5347}.contribution-meter-label{font-size:.8125rem;color:#696969;margin-bottom:20px}.card-more{border-top:1px solid #e7e7e7;margin-top:20px;padding-top:16px}.card-more summary{cursor:pointer;font-size:.9375rem;font-weight:600}.issuer-button{display:flex;justify-content:center;align-items:center;min-height:50px;border-radius:12px;color:white!important;background:#363636;text-decoration:none!important;font-weight:600;font-size:1rem;margin-top:20px}.results .rec-top{align-items:center}.results .rec-top .card-image{width:156px;height:100px;object-fit:contain}.results .rec h2{font-size:1.35rem}.results .allocation-list{background:#f6f6f6;border-radius:14px;padding:3px 15px}.results .allocation{padding:14px 0}.results .card-return{font-size:1.9rem}.results .card-return small{display:block;font-size:.875rem;margin-top:3px;color:var(--muted)}.live-offer{margin-top:12px}.live-offer>button{font-size:.875rem;color:#5d5d5d;background:none;text-decoration:underline}.live-offer:before{content:'Optional AI check · requires bot verification';display:block;color:#797979;font-size:.75rem;margin-bottom:7px}.results .accuracy-summary{padding:20px}.results .metrics{margin-bottom:24px}
@keyframes estimate-card-in{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes estimate-visual-in{from{opacity:0;transform:scale(.45,.65)}to{opacity:1;transform:scale(1)}}@keyframes estimate-copy-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes estimate-range-reveal{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes estimate-point-expand{from{left:50%;opacity:0;transform:translate(-50%,-50%) scale(.45)}to{left:var(--estimate-end);opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes scan-wait{0%,100%{transform:translateX(-80%)}50%{transform:translateX(135%)}}
@media(max-width:600px){.page{padding-top:60px}.orr-wordmark{top:13px;left:14px;gap:7px;font-size:.9375rem}.orr-logo{width:44px}.draft-fields{grid-template-columns:1fr}.draft-fields>.field,.draft-location{grid-column:auto}.inline-total{padding:15px;gap:12px}.inline-total .money{max-width:145px}.breakdown-heading{display:block}.breakdown-heading .segmented{width:200px;margin-top:14px}.results .rec-top .card-image{width:116px;height:74px}.results .rec h2{font-size:1.1rem}.brand-logo{width:32px;height:26px}.chip-options{grid-template-columns:1fr 1fr}.store-chip{padding:12px;font-size:.875rem}.estimate-card{padding:28px 20px}.estimate-axis{gap:14px}}
@media(prefers-reduced-motion:reduce){.scan-rail{transition:none}.scan-loading .loading-track span{animation:none;width:100%}.scan-card{transition:none}.income-estimate,.estimate-visual,.estimate-track:before,.estimate-fill,.estimate-point,.checkpoint-copy{animation:none}.estimate-point{transform:translate(-50%,-50%) scale(1)}}
.results .rank-pill{margin:22px 24px 0}.results .contribution-meter,.results .contribution-meter-label{margin-left:24px;margin-right:24px}.results .allocation-list{margin-inline:24px}.results .card-more{margin:20px 24px 0;padding:16px 0 0}.results .card-more .card-note{padding:12px 0}.results .issuer-button{margin:20px 24px 12px}.results .live-offer{padding:0 24px 20px}.results .rec-top{padding-top:18px}.goal-options .option{grid-template-columns:44px minmax(0,1fr) 20px}
@media print{.wizard,.orr-wordmark,.live-offer,.issuer-button,.card-more{display:none!important}.contribution-meter{print-color-adjust:exact}.rec{break-inside:avoid}}
.brand-logo.brand-reverse{background:#272727;border-radius:5px;padding:4px;box-sizing:content-box}

.database-link{display:block;margin:20px auto 0;font-size:14px;color:#565656;text-underline-offset:4px;}

.database-comparison{margin:24px 0;padding:24px;border:1px solid #e3e3e3;border-radius:16px;background:#f9f9f9}.database-comparison h2{margin:8px 0;font-size:22px}.database-comparison p{font-size:14px;line-height:1.6}.database-comparison a{font-size:14px;color:#575757;text-underline-offset:3px}

.spending-split{font-size:1rem;margin-top:22px}.spending-split summary{font-size:1rem}.split-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 4px}.split-mode.segmented{width:132px;flex:none;margin:0;padding:4px;border-radius:12px}.split-mode.segmented button{padding:8px 18px;min-height:40px}.split-mode button:disabled{opacity:.4;cursor:not-allowed}.split-monthly{font-size:.875rem;text-align:right}.split-row{grid-template-columns:minmax(0,1fr) 146px}.split-merchant{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.split-merchant label{font-size:1rem;line-height:1.4;overflow-wrap:anywhere;cursor:pointer}.split-fixed{border:1px solid #e2e2e2;border-radius:99px;padding:7px 11px;min-height:36px;background:#f7f7f7;color:#727272;font:inherit;font-size:.8125rem;flex:none}.split-fixed[aria-pressed=true]{border-color:#cecece;background:#f1f1f1;color:#4c4c4c}.split-fixed:hover{border-color:#8a8a8a}.spending-split .split-status{margin:16px 0 4px;color:#4d4d4d;font-size:.875rem;font-weight:500;line-height:1.5}.spending-split .split-invalid{color:#9b352a}.spending-split .money:has([aria-invalid=true]){border-color:#d6a39c}.spending-split .helper{font-size:.875rem;margin:4px 0 0;line-height:1.5}
@media(max-width:600px){.split-row{grid-template-columns:minmax(0,1fr) 126px;gap:12px}.split-merchant{align-items:flex-start;flex-direction:column;gap:6px}.split-merchant label{font-size:.9375rem}.split-fixed{min-height:34px;padding:5px 10px}.split-monthly{font-size:.8125rem}.split-mode.segmented{width:120px}.split-mode.segmented button{padding-inline:15px}}

@media(max-width:640px){.income-total{flex-direction:column;gap:6px}.income-total strong{white-space:normal}}

/* Reveal one small spending section at a time. */
.spending-intro{color:var(--muted);font-size:1rem;line-height:1.5;margin:-12px 0 24px}.spending-progress{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px;color:var(--muted);font-size:.8125rem}.spending-progress-track{display:block;width:120px;height:5px;flex:none;background:#ececec;border-radius:99px;overflow:hidden}.spending-progress-track>span{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .3s ease}.spending-section{border:1px solid #e5e5e5;border-radius:18px;margin:12px 0;overflow:hidden;animation:spending-section-in .3s ease both}.spending-section>summary{display:flex;align-items:center;gap:12px;list-style:none;cursor:pointer;padding:18px 20px;font-size:.9375rem;font-weight:600;line-height:1.4}.spending-section>summary::-webkit-details-marker{display:none}.spending-section-name{flex:1}.spending-check{display:flex;width:27px;height:27px;align-items:center;justify-content:center;flex:none;border-radius:50%;background:#f2f2f2;color:var(--muted);font-size:.8125rem}.spending-check.is-done{color:#4d4d4d;background:#f0f0f0}.spending-subtotal{color:var(--muted);font-size:.8125rem;font-weight:400;white-space:nowrap}.spending-edit{font-size:.8125rem;color:var(--accent);text-decoration:underline;text-underline-offset:3px}.spending-section[open] .spending-edit{display:none}.spending-section-body{padding:0 20px 20px}.spending-section-body .housing-question{margin-bottom:0}.spending-section-body .housing-question .helper{font-size:.8125rem;line-height:1.5}.spending-section-body>.helper{font-size:.8125rem;line-height:1.5;margin:16px 0 0}.spending-section-body .spend-row{display:grid;align-items:center;gap:18px;border-bottom:1px solid var(--line);padding:14px 0;grid-template-columns:minmax(0,1fr) 140px}.spending-section-body .spend-row:last-of-type{border-bottom:0}.spending-section-body .spend-row label{display:flex;align-items:center;gap:10px;min-width:0;font-size:.9375rem;line-height:1.4}.spending-section-body .emoji{font-size:1.25rem;flex:none}.spending-section-body .money input{min-width:0}.spending-status{color:var(--accent);font-size:.875rem;line-height:1.5;margin:18px 0 0}.spending-status:empty{display:none}.spending-total{margin-top:20px;padding-top:16px}.spending-section summary:focus-visible{outline:2px solid var(--accent);outline-offset:-4px;border-radius:16px}@keyframes spending-section-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.spending-section>summary{padding:16px;gap:9px}.spending-section-body{padding:0 16px 16px}.spending-section-body .spend-row{grid-template-columns:minmax(0,1fr) 112px;gap:12px}.spending-section-body .spend-row label{font-size:.875rem}.spending-section-body .spend-row .emoji{display:none}.spending-section-body .segmented button{padding-inline:8px}.spending-subtotal{font-size:.75rem}.spending-progress{gap:12px}.spending-progress-track{width:96px}.spending-intro{margin-top:-8px}}
@media(prefers-reduced-motion:reduce){.spending-section{animation:none}.spending-progress-track>span{transition:none}}

/* Follow-ups describe an existing total; group updates retain focus and page context. */
.category-reuse{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid #e8e8e8}.category-reuse h2{font-size:19px;margin:0;flex:1}.category-reuse>span{font-weight:600;font-variant-numeric:tabular-nums}.category-reuse small,.amount-source{display:block;font-size:12px;font-weight:400;color:#666;margin-top:4px}.question-group h3{font-size:16px;line-height:1.4;margin:18px 0 6px}.question-group>.helper{margin:6px 0 16px;line-height:1.55}.flow-note{padding:16px;border:1px solid #d2d2d2;border-radius:12px;line-height:1.6;background:#f7f7f7}.flow-assumptions{margin:24px 0;line-height:1.65}.flow-assumptions .edit{display:inline;padding:3px 6px}.costco-followup{padding-top:24px}.question-group .chip-options{gap:8px}.store-chip{min-height:44px}.store-chip:focus-visible,.edit:focus-visible,summary:focus-visible{outline:2px solid #222;outline-offset:3px}.spending-section-body .spend-row label{line-height:1.4}.money input[aria-invalid=true]{outline:2px solid #b42318}.profile-conflict-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:560px){.category-reuse{gap:8px}.category-reuse h2{flex-basis:50%}.category-reuse small{max-width:170px}.question-group{margin-bottom:24px}.spending-section-body .spend-row{gap:8px}.money input{min-width:0}}

/* Save and conflict controls wrap without crowding small screens. */
.profile-save-state{flex-wrap:wrap;line-height:1.5}.profile-save-state>[data-profile-status]{flex:1 1 220px;min-width:0}.profile-save-state .small-link{margin:0;padding:8px 0;min-height:44px}.profile-save-compact{margin:20px 0 0;background:transparent;border:0;padding:0;font-size:.8125rem}[data-profile-retry][hidden],[data-profile-conflict][hidden]{display:none!important}

/* Compact question rhythm: controls remain comfortable to touch. */
.progress.on~.page{padding-top:26px}
.wizard .step-top{margin-bottom:16px}
.wizard .question{font-size:clamp(1.8rem,4.5vw,2.3rem);line-height:1.16;margin-bottom:22px}
.wizard .lead-copy{line-height:1.5;margin-bottom:16px}
.wizard .options{gap:9px}
.wizard .option{min-height:64px;padding:14px 16px}
.wizard .option-copy small{line-height:1.4}
.wizard .options+.field,.wizard .choice-grid+.field{margin-top:20px}
.wizard .fields,.wizard .vertical-fields{gap:16px}
.wizard .field label{margin-bottom:6px;line-height:1.4}
.wizard .field+.field{margin-top:16px}
.wizard .fields>.field+.field,.wizard .birthday>.field+.field,.wizard .vertical-fields>.field+.field{margin-top:0}
.wizard .field input,.wizard .field select,.wizard .select-trigger{min-height:48px;height:48px}
.wizard .select-trigger{padding:11px 13px;line-height:1.35}
.wizard .helper{line-height:1.45}
.wizard .question-group{margin:0 0 20px}
.wizard .question-group+.question-group{margin-top:20px}
.wizard .question-group h2{font-size:1.125rem;line-height:1.3;margin:0 0 10px}
.wizard .question-group h3{margin:14px 0 6px}
.wizard .question-group>.helper{margin:6px 0 12px}
.wizard .question-group .field{margin-top:16px}
.wizard .question-group .field:first-child{margin-top:0}
.wizard .category-reuse{padding-bottom:10px;margin-bottom:12px;gap:8px}
.wizard .category-reuse h2{margin:0}
.wizard .category-reuse .edit,.wizard .progressive-summary .edit{min-height:44px;padding:8px 4px;flex:none}
.wizard .costco-followup{display:block;padding:18px;margin:20px 0;background:#f6f6f6}
.wizard .costco-followup>h2{margin:0 0 8px}
.wizard .costco-followup>.helper{margin:6px 0 0}
.wizard .costco-followup>.field{margin:16px 0 0}
.wizard .costco-followup>.field:first-child{margin-top:0}
.wizard .costco-followup>.field+.helper{margin-top:6px}
.wizard .costco-followup>.costco-quick{margin-top:12px}
.wizard .income-fields>.field{margin-bottom:14px}
.wizard .income-fields .helper{margin-top:7px}
.wizard .income-total{padding:12px 0;margin:4px 0 16px}
.wizard .wallet-control{padding:18px;margin:18px 0}
.wizard .wallet-control input{margin:16px 0 8px}
.wizard .nav{margin-top:24px;padding-top:16px}
.wizard .nav .btn{min-height:48px}
.wizard .back{min-height:44px;padding-block:10px}
.wizard .profile-save-compact{margin-top:12px;font-size:.75rem;line-height:1.4;gap:4px 10px}
.wizard .profile-save-compact .small-link{padding:4px 0;font-size:.75rem}
.wizard .assumptions{margin-top:16px}
.wizard .assumptions>summary{min-height:44px;display:flex;align-items:center;padding:8px 0}
.wizard .inline-total{padding:14px 16px;margin:10px 0 16px;gap:12px}
.wizard .inline-total .money{width:160px;max-width:48%;height:48px}
.wizard .inline-total .money input{height:44px;min-height:44px}
.wizard .segmented{margin:10px 0;padding:4px;gap:4px}
.wizard .segmented button{min-height:44px;padding:9px 12px}
.wizard .spending-intro{margin:0 0 16px}
.wizard .spending-progress{margin-bottom:14px}
.wizard .spending-section{margin:9px 0;border-radius:14px}
.wizard .spending-section>summary{padding:13px 16px;min-height:54px}
.wizard .spending-section-body{padding:0 16px 14px}
.wizard .spending-section-body .spend-row{grid-template-columns:minmax(0,1fr) 154px;padding:11px 0;gap:14px}
.wizard .spending-section-body .spend-row label{display:grid;grid-template-columns:24px minmax(0,1fr);gap:2px 8px;align-items:center;margin:0}
.wizard .spending-section-body .spend-row label .amount-source{grid-column:2;margin:0;line-height:1.3;font-size:.75rem}
.wizard .spending-section-body .money{height:48px;padding-inline:10px}
.wizard .spending-section-body .money input{height:44px;min-height:44px;font-size:16px;padding-left:6px}
.wizard .spending-section-body>.helper{margin-top:10px}
.wizard .spending-status{margin-top:12px}
.wizard .spending-total{margin-top:14px;padding-top:12px}
.wizard .split-fixed{min-height:44px;padding:8px 10px}
.wizard .chip-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.wizard .store-chip,.wizard .store-chip:has(.brand-logo){min-height:54px;padding:10px;gap:8px;line-height:1.3;border-radius:11px}
.wizard .store-chip .brand-logo{width:30px;height:28px;object-fit:contain}
.wizard .store-chip.selected .brand-logo{background:white;border-radius:4px;padding:2px}
.wizard .store-chip .small-check{margin:0;flex:none}
.wizard .store-chip>span:not(.small-check){min-width:0;overflow-wrap:normal}
/* A confirmed section becomes a compact summary above the next question. */
.progressive-sections{display:grid;gap:12px}
.progressive-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;background:#f6f6f6;border:1px solid #e7e7e7;border-radius:13px}
.progressive-summary h2,.wizard .progressive-summary h2{font-size:.9375rem;margin:0 0 3px;line-height:1.3}
.progressive-summary p{font-size:.8125rem;color:var(--muted);line-height:1.35;margin:0}
.progressive-summary>div{min-width:0;flex:1}
.progressive-summary button{min-height:44px;padding:8px 4px;flex:none;border:0;background:none;color:var(--accent);font-size:.875rem;text-decoration:underline;text-underline-offset:3px}
.progressive-section{padding:16px 0 0}
.progressive-section:first-child{padding-top:0}
.wizard .progressive-section>h2{font-size:1.125rem;line-height:1.3;margin:0 0 12px}
.progressive-section>.section-position{font-size:.75rem;line-height:1.4;color:var(--muted);margin:0 0 6px}
.wizard .optional-refinement>summary{gap:8px;flex-wrap:wrap}
.wizard .optional-refinement>summary small{font-size:.75rem;color:var(--muted)}
.wizard .progressive-section.question-group{margin:0}
.progressive-section>.field:first-child{margin-top:0}
.section-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:16px}
.section-actions button{min-height:44px;padding:10px 18px;border:1px solid var(--accent);border-radius:11px;background:var(--accent);color:#fff;font-weight:600;font-size:.9375rem}
@media(max-width:640px){
 .progress.on~.page{padding-top:20px}
 .wizard .question{font-size:1.8rem;margin-bottom:18px}
 .wizard .step-top{font-size:.8125rem;margin-bottom:14px}
 .wizard .option{padding:12px 14px;min-height:60px;gap:10px}
 .wizard .option-copy strong{font-size:.9375rem}
 .wizard .option-copy small{font-size:.8125rem}
 .wizard .choice-grid .option{min-height:60px;padding:12px}
 .wizard .goal-options .option{grid-template-columns:36px minmax(0,1fr) 20px}
 .wizard .goal-options .icon{width:36px;height:36px;font-size:1.5rem}
 .wizard .strategy-option{grid-template-columns:80px minmax(0,1fr) 20px}
 .wizard .strategy-option .wallet-fan{width:80px;transform:scale(.78)}
 .wizard .strategy-option .option-copy strong{font-size:1.25rem}
 .wizard .question-group{margin-bottom:18px}
 .wizard .costco-followup{padding:15px;margin:18px 0}
 .wizard .costco-followup>.field{margin-top:14px}
 .wizard .costco-followup>.helper{font-size:.8125rem}
 .wizard .chip-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .wizard .store-chip,.wizard .store-chip:has(.brand-logo){min-height:54px;padding:9px 8px;font-size:.8125rem;gap:7px}
 .wizard .store-chip .brand-logo{width:27px;height:26px}
 .wizard .spending-section-body .spend-row{grid-template-columns:minmax(0,1fr) 146px;gap:10px}
 .wizard .spending-section-body .spend-row label{display:block;font-size:.875rem;line-height:1.35}
 .wizard .spending-section-body .spend-row label .amount-source{margin-top:3px}
 .wizard .spending-section-body .emoji{display:none}
 .wizard .nav{margin:20px -22px -32px;padding:12px 22px max(12px,env(safe-area-inset-bottom));gap:18px}
 .wizard .nav .btn{min-height:48px;font-size:.9375rem}
 .wizard .profile-save-compact{margin-top:12px}
 .wizard .inline-total{padding:12px}
 .wizard .inline-total label{font-size:.9375rem}
 .wizard .inline-total label small{font-size:.75rem;line-height:1.35}
 .progressive-summary{padding:10px 12px;gap:8px}
 .progressive-sections{gap:9px}
 .progressive-section{padding-top:12px}
}
@media(max-width:360px){
 .wizard .nav{margin-inline:-17px;padding-inline:17px}
 .wizard .spending-section-body{padding-inline:12px}
 .wizard .spending-section-body .spend-row{grid-template-columns:minmax(0,1fr) 140px;gap:8px}
 .wizard .store-chip,.wizard .store-chip:has(.brand-logo){gap:5px;padding-inline:7px;font-size:.75rem}
 .wizard .store-chip .brand-logo{width:23px;height:24px}
}

.wizard .subquestion{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.wizard .subquestion>.field{margin:0}
.wizard .application-section{margin:20px 0 12px;font-size:1.0625rem}
.wizard .draft-fields{gap:14px 18px}
.wizard .draft-fields>.field{margin:0}
.wizard .draft-fields input{min-height:48px;height:48px;padding:10px 12px}
.wizard .review-category{padding:10px 0;border-bottom:1px solid var(--line)}
.wizard .review-category>.inline-total{margin:0;background:transparent;padding:8px 0}
.wizard .review-split{margin:2px 0 8px;color:var(--muted);font-size:.875rem}
.wizard .review-split>summary{cursor:pointer;min-height:44px;padding:10px 0}
.wizard .review-split .breakdown-row{padding:6px 0}
.scan-rail{transition:none;padding-left:0}
.scan-loading .loading-track #scan-progress{animation:none;transform:none;transition:width .2s linear}
@media(max-width:640px){.wizard .subquestion{margin-top:18px;padding-top:16px}.wizard .draft-fields{gap:14px}.wizard .review-category>.inline-total{gap:12px}.wizard .review-category .money{width:146px;max-width:48%}}
/* Keep the mobile wordmark from covering fields as a long form scrolls. */
@media(max-width:600px){.orr-wordmark{position:absolute}}

/* Independent card reels: soft edge masks, a crisp green match frame. */
.scan-loading{max-width:1000px;width:100%;padding-top:32px;padding-bottom:32px;min-height:0}
.scan-loading h1{margin:16px 0 30px}
.plan-reels{display:grid;grid-template-columns:repeat(var(--reels),minmax(0,1fr));gap:14px;width:100%;max-width:calc(var(--reels)*180px);margin:0 auto 28px}
.plan-reel{min-width:0;--card-height:94px;--slot-height:118px}
.reel-window{height:330px;position:relative;overflow:hidden;border:1px solid #e1e1e1;border-radius:28px;background:#f8f8f8;isolation:isolate}
.reel-window:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;background:linear-gradient(#f8f8f8 0%,#f8f8f800 30%,#f8f8f800 70%,#f8f8f8 100%)}
.reel-strip{position:absolute;top:calc(50% - var(--slot-height)/2);width:100%;will-change:transform;transition:opacity .4s ease;}
.reel-card{height:var(--slot-height);display:flex;align-items:center;justify-content:center;padding:12px;box-sizing:border-box}
.reel-card img,.reel-card .card-image{width:100%;max-width:150px;height:var(--card-height);object-fit:contain;border-radius:8px}
.reel-placeholder{width:100%;height:var(--card-height);border-radius:10px;background:#d6d6d6}
.reel-selection{position:absolute;z-index:4;left:6px;right:6px;height:var(--slot-height);top:50%;transform:translateY(-50%);border:2px solid transparent;border-radius:16px;transition:border-color .35s,box-shadow .35s}

.is-obscured .reel-strip{opacity:0}
.is-matched .reel-selection{border-color:#787878;box-shadow:0 0 0 4px #7878780d}
.scan-loading .loading-track{max-width:300px;margin-inline:auto}
@media(min-width:701px){.plan-reels:has(.plan-reel:nth-child(5)){gap:10px}.plan-reels:has(.plan-reel:nth-child(5)) .plan-reel{--card-height:76px;--slot-height:100px}}
@media(max-width:700px){.plan-reels{gap:10px;max-width:480px;grid-template-columns:repeat(3,minmax(0,1fr))}.plan-reels:not(:has(.plan-reel:nth-child(3))){grid-template-columns:repeat(var(--reels),minmax(0,1fr));max-width:340px}.plan-reel{--card-height:65px;--slot-height:88px}.reel-window{height:230px;border-radius:22px}.plan-reels:has(.plan-reel:nth-child(4)) .reel-window{height:155px}.plan-reels:has(.plan-reel:nth-child(4)){row-gap:16px}.reel-card{padding:8px}.scan-loading h1{font-size:clamp(1.8rem,7vw,2.6rem)}.scan-loading{padding-top:18px}.reel-selection{left:3px;right:3px;border-radius:12px}}
@media(prefers-reduced-motion:reduce){.reel-strip,.reel-selection{transition:none}.reel-strip{will-change:auto}}

/* A clipped card silhouette keeps the hidden match recognizable as a card. */
.plan-reel{animation:reel-arrive .38s ease both}
.reel-selection{left:50%;right:auto;width:calc(100% - 20px);max-width:150px;height:auto;aspect-ratio:1.586;transform:translate(-50%,-50%);border-radius:12px;transition:border-color .3s,box-shadow .3s,background .3s}
.reel-result-art{position:absolute;inset:4px;border-radius:7px;overflow:hidden;opacity:0;background:#767676;transition:opacity .4s ease;box-shadow:0 3px 8px #26262626}
.reel-result-art img,.reel-result-art .card-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(15px);transform:scale(1.35)}
.reel-result-art .reel-placeholder{display:block;height:100%;background:linear-gradient(135deg,#454545,#bbbbbb)}
.is-obscured .reel-result-art{opacity:1}
.is-matched .reel-selection{background:#f5f5f5;box-shadow:0 0 0 3px #78787812}
.reel-check{position:absolute;z-index:2;left:50%;top:50%;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#6a6a6a;color:white;border:2px solid #fcfcfc;box-shadow:0 3px 9px #3030302e;opacity:0;transform:translate(-50%,-50%) scale(.78);transition:opacity .22s ease,transform .32s cubic-bezier(.2,.8,.2,1)}
.reel-check svg{width:23px;height:23px}
.is-matched .reel-check{opacity:1;transform:translate(-50%,-50%) scale(1)}
.is-matched .reel-strip{will-change:auto}
.plan-reels.is-empty{opacity:0;transition:opacity .5s}
@keyframes reel-arrive{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
@media(max-width:700px){.reel-selection{left:50%;right:auto;border-radius:10px}.reel-check{width:28px;height:28px}.reel-check svg{width:19px;height:19px}}

/* Stable digits make progress easy to follow as the wheels turn. */
.scan-count{font-variant-numeric:tabular-nums;margin:0 auto 14px;line-height:1.25}
.scan-count strong{font-size:clamp(2rem,6vw,2.6rem);font-weight:650;letter-spacing:-.04em;color:#6a6a6a}
.scan-count-total{font-size:clamp(1.3rem,4vw,1.65rem);color:var(--muted)}
.scan-count-label{display:block;font-size:.9rem;margin-top:7px;color:var(--muted)}
.scan-loading .loading-track #scan-progress{width:0;transition:none}

/* Keep result and assumption edits comfortable to tap. */
.flow-assumptions .edit,.results .edit,.wizard .edit{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 10px;box-sizing:border-box}.split-mode.segmented button,.split-fixed{min-height:44px}

/* Compact, inline questionnaire follow-ups. */
.inline-followup{margin:32px 0 28px;padding-top:24px;border-top:1px solid #e5e5e5;animation:orr-followup-in .2s ease-out}
.inline-followup h3,.inline-followup .personal-heading h2{font-size:19px;line-height:1.4;margin:0 0 18px}
.inline-followup .personal-heading{margin:26px 0 14px}.inline-followup .personal-heading:first-child{margin-top:0}
.inline-followup .chip-options,.inline-followup .personal-tiles{gap:10px}.inline-followup .helper,.inline-followup .personal-hint{font-size:13px;line-height:1.55;margin-top:16px}
.spending-section-body>.spend-row{margin-top:24px}.spending-section-body>.spend-row:first-child{margin-top:0}
.spending-section-body{padding-top:24px;padding-bottom:28px}.income-fields>.inline-followup{margin-top:36px}
.personal-tiles{grid-template-columns:repeat(auto-fit,minmax(124px,1fr));gap:12px}.personal-tile{min-height:92px;padding:16px 12px;line-height:1.4}.personal-logo img{max-width:80px;max-height:34px;object-fit:contain}
.personal-section{margin-top:32px}.personal-heading{margin-bottom:18px}.range-question{display:grid;gap:16px;margin:24px 0;font-size:16px}.range-question input{width:100%;accent-color:#4e4e4e;min-height:40px}
.upload{padding:54px 24px;border:2px dashed #d5d5d5;border-radius:24px;text-align:center}.upload.dragging{background:#f4f4f4;border-color:#4e4e4e}.upload strong{display:block;margin:16px 0 10px;font-size:23px}.upload .helper{margin:10px 0 24px}
.question-group+.question-group,.personal-heading:not(:first-child){margin-top:32px}.wizard .reveal{margin-top:32px}
@keyframes orr-followup-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:600px){.inline-followup{margin-top:28px;padding-top:24px}.personal-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.question{font-size:30px;line-height:1.2}.personal-tile{min-width:0}.spending-section-body{padding-left:16px;padding-right:16px}}
@media(prefers-reduced-motion:reduce){.inline-followup{animation:none}}
