:root{color-scheme:light;--ink:#161819;--muted:#74797e;--line:#e6e8e9;--soft:#f6f6f6;--selected:#f2f2f2;--accent:#323232;--green:#575757;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,label[for=statement]{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button,input,select,a{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent)}h1:focus,h2:focus{outline:0}h1,h2,h3,p{margin:0}button{color:inherit}h1,h2,h3{font-weight:600}img{max-width:100%;display:block}button{touch-action:manipulation}
.page{padding:64px 24px 48px;min-height:100svh}.home{width:min(580px,100%);margin:auto;min-height:calc(100svh - 112px);display:flex;flex-direction:column;justify-content:center;text-align:center}.home h1{font-size:clamp(2.55rem,6vw,3.8rem);line-height:1.07;letter-spacing:-.055em;text-wrap:balance;margin-bottom:30px}.proof-card{padding:27px 24px;background:var(--soft);border-radius:22px;margin-bottom:22px;text-align:center}.proof-label{font-size:.875rem;color:#62686c}.proof-card strong{display:block;font-size:2.7rem;line-height:1.15;letter-spacing:-.04em;font-weight:600;margin:6px 0}.proof-card small{font-size:.8rem;color:var(--muted)}.hero-cards{height:138px;display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:34px}.hero-cards img{width:164px;height:104px;object-fit:contain;filter:drop-shadow(0 10px 10px #00000016)}.hero-cards img:first-child{transform:rotate(-10deg) translateX(18px)}.hero-cards img:nth-child(2){position:relative;z-index:2;transform:translateY(-9px)}.hero-cards img:last-child{transform:rotate(10deg) translateX(-18px)}
.btn{min-height:56px;border-radius:14px;padding:0 22px;border:1px solid var(--ink);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:background .15s,transform .15s}.btn:hover{transform:translateY(-1px)}.btn-dark{background:var(--ink);color:#fff;width:100%}.btn-dark:hover{background:#303436}.btn-white{background:#fff;color:var(--ink)}.btn-white:hover{background:var(--soft)}.button-arrow{font-size:1.2rem}.progress{position:fixed;left:0;top:0;right:0;height:3px;background:#f0f0f0;z-index:40;opacity:0}.progress.on{opacity:1}.progress-fill{height:100%;background:var(--accent);transition:width .3s}
.wizard{width:min(600px,100%);margin:auto}.step-top{font-size:.8rem;font-weight:500;letter-spacing:.02em;color:var(--muted);display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.question{font-size:clamp(2rem,5vw,2.75rem);letter-spacing:-.045em;line-height:1.13;margin:0 0 32px;text-wrap:balance}.group-title{font-size:1rem;font-weight:600;line-height:1.35;margin:0 0 14px}.group-title small{font-size:.8rem;font-weight:400;color:var(--muted);margin-left:6px}.question-group+.question-group{margin-top:30px}.options{display:grid;gap:12px}.option{width:100%;min-height:78px;background:#fff;border:1px solid var(--line);border-radius:16px;display:grid;grid-template-columns:34px minmax(0,1fr) 20px;align-items:center;gap:15px;padding:19px 20px;text-align:left;transition:background .16s,border-color .16s}.option:hover{background:#fbfbfb;border-color:#b2b2b2}.option.selected{background:var(--selected);border-color:#8d8d8d}.option.no-icon{grid-template-columns:minmax(0,1fr) 20px}.icon{display:flex;align-items:center;justify-content:center;width:34px;min-height:32px;font-size:1.5rem;line-height:1;background:none;border:0}.option-copy{min-width:0}.option-copy strong{display:block;font-size:1rem;font-weight:600;line-height:1.4}.option-copy small{display:block;margin-top:4px;font-size:.875rem;line-height:1.4;color:var(--muted)}.check{width:20px;height:20px;border:1px solid #cfcfcf;border-radius:50%;display:grid;place-items:center;font-size:.75rem;color:transparent;flex-shrink:0}.selected .check{background:var(--accent);border-color:var(--accent);color:#fff}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice-grid .option{min-height:76px;grid-template-columns:30px 1fr 20px;gap:10px;padding:17px}.choice-grid .icon{width:30px}
.fields,.vertical-fields{display:grid;gap:20px}.field label,.wheel-wrap label{display:block;font-size:.875rem;font-weight:500;margin-bottom:9px}.field input,.field select,.search-input{width:100%;height:56px;padding:0 16px;border:1px solid #dfdfdf;background:#fff;color:var(--ink);border-radius:12px}.field select{padding-right:38px}.field input:focus,.field select:focus,.search-input:focus{border-color:var(--accent)}input::placeholder{color:#a5a5a5}input[type=number]{appearance:textfield;-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{appearance:none;margin:0}.reveal{margin-top:27px;padding-top:26px;border-top:1px solid var(--line)}.birthday{display:grid;grid-template-columns:1.6fr .85fr 1.1fr;gap:12px}.birthday .field label{color:var(--muted);font-size:.8rem;margin-bottom:7px}.birthday-heading{font-weight:500;font-size:.875rem;margin-bottom:12px}.helper{font-size:.8rem;color:var(--muted);margin-top:10px;line-height:1.5}.nav{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:32px;padding-top:22px;border-top:1px solid var(--line)}.nav .btn{width:auto;min-width:190px}.back{background:none;border:0;font-weight:500;color:var(--muted);padding:14px 0;font-size:.875rem}.back:hover{color:var(--ink)}.error{display:none;margin-top:18px;color:#a5392c;background:#fdf2ef;padding:12px 16px;border-radius:12px;font-size:.875rem}.error.show{display:block}.conditional{padding:18px;background:var(--soft);border-radius:14px}
.upload{text-align:center;padding:34px 25px;background:var(--soft);border:1px dashed #cccccc;border-radius:20px}.upload-icon{font-size:2rem;display:block;margin-bottom:14px;line-height:1}.upload strong{display:block;font-weight:600;font-size:1.125rem}.upload-formats{color:var(--muted);font-size:.875rem;margin:8px 0 24px}.file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.file-label{display:inline-flex;min-height:48px;align-items:center;justify-content:center;border-radius:12px;background:var(--ink);color:white;padding:0 23px;font-weight:500;cursor:pointer}.file-input:focus-visible+.file-label{outline:2px solid var(--accent);outline-offset:4px}.status{font-size:.8rem;line-height:1.6;color:var(--muted);margin-top:15px}.status.good{color:var(--green)}.status.warn{color:#985927}.small-link{display:inline-block;background:none;border:0;color:var(--muted);font-weight:500;font-size:.875rem;padding:16px 0;text-decoration:underline;text-underline-offset:4px}.spend-grid{display:grid;gap:0}.spend{display:grid;grid-template-columns:minmax(0,1fr) 146px;align-items:center;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.spend-head{display:flex;align-items:center;gap:13px;font-size:.9375rem;font-weight:500}.spend-emoji{display:flex;align-items:center;justify-content:center;width:28px;min-width:28px;font-size:1.35rem;line-height:1}.money{height:52px;padding:0 13px;display:flex;align-items:center;border:1px solid #dfdfdf;border-radius:12px;color:#9c9c9c;background:#fff}.money:focus-within{outline:2px solid var(--accent);outline-offset:3px}.money input{min-width:0;width:100%;padding:0 0 0 9px;border:0;outline:0;background:none;color:var(--ink);font-size:1rem;font-weight:500;height:auto}.money input:focus-visible{outline:0}.total{padding:20px 0 4px;display:flex;justify-content:space-between;align-items:center}.total small{font-size:.875rem;color:var(--muted)}.total strong{font-size:1.5rem;font-weight:600;letter-spacing:-.025em}
.chip-options{display:flex;flex-wrap:wrap;gap:9px}.store-chip,.filter{border:1px solid var(--line);border-radius:10px;background:#fff;min-height:44px;padding:10px 14px;font-size:.875rem;text-align:center;transition:.15s}.store-chip:hover,.filter:hover{border-color:#969696}.store-chip.selected,.filter.selected{background:var(--accent);border-color:var(--accent);color:#fff}.store-chip .small-check{display:none}.store-chip.selected .small-check{display:inline;margin-right:6px}.shopping-note{background:var(--soft);border-radius:14px;padding:14px 16px;margin-top:20px;font-size:.875rem;color:#5d5d5d}.picker-tools{display:grid;gap:16px;margin-bottom:18px}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.filter{padding:8px 14px;min-height:42px}.card-picker{display:grid;gap:10px;max-height:480px;overflow:auto;overscroll-behavior:contain;padding-right:3px}.owned-card{width:100%;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;grid-template-columns:91px minmax(0,1fr) 20px;align-items:center;gap:17px;text-align:left}.owned-card:hover{border-color:#b2b2b2}.owned-card.selected{border-color:#8d8d8d;background:var(--selected)}.owned-card strong{font-weight:500;font-size:.9375rem;display:block;line-height:1.4}.owned-card small{color:var(--muted);font-size:.8rem;display:block;margin-top:3px}.card-image{width:100%;height:auto;aspect-ratio:1.586;object-fit:contain;filter:drop-shadow(0 3px 5px #0000000d)}.card-image-placeholder{height:57px;display:flex;align-items:center;justify-content:center;color:#797979;font-size:.75rem;font-weight:600;background:var(--soft);border-radius:8px;text-align:center;padding:7px}.selected-cards{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.selected-chip{border:0;background:var(--selected);color:var(--accent);padding:8px 11px;border-radius:8px;font-size:.8rem;display:flex;align-items:center;gap:9px}.card-count{font-size:.8rem;color:var(--muted);margin:8px 0 14px}.review{display:grid;gap:0}.review-row{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 0;border-bottom:1px solid var(--line)}.review-row small{display:block;font-size:.8rem;color:var(--muted);margin-bottom:5px}.review-row strong{font-size:.9375rem;font-weight:500}.edit{font-size:.875rem;border:0;background:none;color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.loading{width:min(600px,100%);min-height:calc(100svh - 112px);margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.card-carousel{width:100%;height:232px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;margin-bottom:34px}.carousel-card{width:248px;height:158px;object-fit:contain;position:absolute;opacity:0;transform:translateX(145px) scale(.83) rotate(7deg);transition:transform .48s,opacity .48s;filter:drop-shadow(0 12px 12px #0000001a)}.carousel-card.active{opacity:1;z-index:3;transform:translateX(0) scale(1) rotate(0)}.carousel-card.previous{opacity:.28;z-index:1;transform:translateX(-190px) scale(.8) rotate(-8deg)}.carousel-card.next{opacity:.28;z-index:1;transform:translateX(190px) scale(.8) rotate(8deg)}.loading h1{font-size:2.25rem;line-height:1.15;letter-spacing:-.04em;margin-bottom:14px}.loading-step{color:var(--muted);font-size:.9375rem;min-height:29px}.loading-track{width:160px;height:3px;background:#ebebeb;overflow:hidden;border-radius:3px;margin:28px auto 0}.loading-track span{display:block;height:100%;width:0;background:var(--accent);transition:width .55s}.carousel-name{font-size:.8rem;color:var(--muted);margin-bottom:28px;min-height:20px}
.results{width:min(850px,100%);margin:auto}.result-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:27px}.fresh{font-size:.8rem;color:var(--muted)}.result-hero{padding:32px;background:var(--soft);border-radius:22px;display:flex;justify-content:space-between;align-items:center;gap:30px}.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px}.result-hero h1{font-size:2.6rem;letter-spacing:-.045em;line-height:1.08}.result-value{text-align:right;white-space:nowrap}.result-value strong{display:block;font-size:3.2rem;line-height:1.05;letter-spacing:-.05em;font-weight:600}.result-value small{font-size:.8rem;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 38px;padding:22px 8px;border-bottom:1px solid var(--line)}.metric{padding:0 18px;border-right:1px solid var(--line)}.metric:first-child{padding-left:0}.metric:last-child{border:0}.metric small{display:block;font-size:.8rem;color:var(--muted);margin-bottom:5px}.metric strong{font-size:1.125rem;font-weight:500}.section-title{font-size:1.35rem;letter-spacing:-.025em;margin:32px 0 18px}.recs{display:grid;gap:20px}.rec{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}.rec-header{display:grid;grid-template-columns:150px minmax(0,1fr);gap:25px;align-items:center;padding:26px}.card-role{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:7px}.rec h3{font-size:1.15rem;line-height:1.35;letter-spacing:-.015em;margin-bottom:5px}.issuer{font-size:.8rem;color:var(--muted)}.rec-summary{display:flex;gap:18px;margin-top:12px;font-size:.8rem;color:var(--muted)}.rec-summary strong{color:var(--ink);font-weight:500}.allocation{border-top:1px solid var(--line);padding:6px 26px 10px}.allocation-label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:14px 0 6px}.allocation-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid #efefef}.allocation-row:last-child{border:0}.allocation-category{display:flex;align-items:center;gap:11px;min-width:0}.allocation-category .spend-emoji{font-size:1.2rem;width:26px;min-width:26px}.allocation-category strong{display:block;font-size:.9375rem;font-weight:500}.allocation-category small{font-size:.8rem;display:block;color:var(--muted);margin-top:2px}.allocation-amount{text-align:right;white-space:nowrap;font-size:.875rem}.allocation-amount small{font-size:.75rem;display:block;color:var(--muted);margin-top:2px}.source{display:flex;align-items:center;justify-content:space-between;font-weight:500;font-size:.875rem;text-decoration:none;color:var(--ink);padding:17px 26px;border-top:1px solid var(--line);background:#fbfbfb}.source:hover{background:#f2f2f2}.no-reward{font-size:.875rem;color:var(--muted);background:var(--soft);padding:16px 19px;border-radius:14px;margin-top:16px}.result-actions{display:flex;gap:12px;margin-top:30px}.result-actions .btn{flex:1}.fineprint{font-size:.75rem;color:var(--muted);line-height:1.6;margin-top:24px}.assumptions{margin-top:22px;font-size:.8rem;color:var(--muted)}.assumptions summary{cursor:pointer;padding:10px 0;color:#595959}.assumptions p{margin:7px 0}
@media(max-width:600px){.page{padding:34px 22px 32px}.home{min-height:calc(100svh - 66px)}.home h1{margin-bottom:26px}.hero-cards{height:112px;margin-bottom:24px}.hero-cards img{width:123px;height:80px}.proof-card{padding:23px 20px;margin-bottom:20px}.proof-card strong{font-size:2.4rem}.question{margin-bottom:26px}.step-top{margin-bottom:22px}.option{padding:17px 16px;min-height:78px;gap:12px}.choice-grid .option{padding:16px 12px;gap:8px;grid-template-columns:25px 1fr 17px}.choice-grid .option-copy strong{font-size:.9375rem}.choice-grid .check{width:17px;height:17px}.choice-grid .icon{width:25px;font-size:1.3rem}.nav{position:sticky;bottom:0;background:#fff;z-index:10;margin:28px -22px -32px;padding:18px 22px max(18px,env(safe-area-inset-bottom));gap:24px}.nav .btn{flex:1;min-width:0;max-width:290px}.birthday{grid-template-columns:1.5fr .8fr 1fr;gap:9px}.birthday input,.birthday select{padding-left:12px;padding-right:10px}.spend{grid-template-columns:minmax(0,1fr) 118px;gap:12px}.spend-head{font-size:.875rem;gap:10px}.owned-card{grid-template-columns:77px minmax(0,1fr) 18px;gap:12px;padding:14px}.owned-card strong{font-size:.875rem}.card-picker{max-height:460px}.card-carousel{height:203px;margin-bottom:20px}.carousel-card{width:207px;height:133px}.carousel-card.previous{transform:translateX(-160px) scale(.8) rotate(-8deg)}.carousel-card.next{transform:translateX(160px) scale(.8) rotate(8deg)}.result-top{align-items:flex-start}.fresh{font-size:.75rem;text-align:right;max-width:135px}.result-hero{display:block;padding:25px}.result-hero h1{font-size:2.25rem}.result-value{text-align:left;margin-top:24px}.result-value strong{font-size:3rem}.metrics{gap:12px;padding:21px 0;margin-bottom:28px}.metric{padding:0 8px 0 0}.metric small{font-size:.75rem}.metric strong{font-size:1rem}.rec-header{grid-template-columns:112px minmax(0,1fr);padding:20px;gap:17px}.rec h3{font-size:1rem}.rec-summary{flex-direction:column;gap:3px;margin-top:9px}.allocation{padding:5px 20px 9px}.allocation-category strong{font-size:.875rem}.allocation-category small{font-size:.75rem}.source{padding:16px 20px}.result-actions{flex-direction:column}.card-role{font-size:.75rem}.loading{min-height:calc(100svh - 66px)}}@media(max-width:360px){.page{padding-left:17px;padding-right:17px}.home h1{font-size:2.3rem}.hero-cards img{width:105px}.choice-grid{grid-template-columns:1fr}.nav{margin-inline:-17px;padding-inline:17px}.rec-header{grid-template-columns:95px 1fr;gap:12px}.spend{grid-template-columns:minmax(0,1fr) 105px}.spend-head{gap:7px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{.progress,.result-actions,.back,.source{display:none!important}.page{padding:0}.rec{break-inside:avoid}.result-hero{background:#fff;border-bottom:1px solid #ddd}.metrics{margin-bottom:16px}}
.hero-stage{position:relative;margin:0 0 22px}.home-carousel{height:174px;margin:0;overflow:hidden}.home-carousel .carousel-card{width:202px;height:128px}.home-carousel .carousel-card.previous{opacity:.72;transform:translateX(-146px) scale(.83) rotate(-9deg)}.home-carousel .carousel-card.next{opacity:.72;transform:translateX(146px) scale(.83) rotate(9deg)}.motion-toggle{position:absolute;bottom:0;right:4px;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:14px}.motion-toggle:hover{background:var(--soft)}.birth-section{border:0;margin:0;padding:4px 0 0;min-width:0}.birth-section legend{font-weight:600;font-size:1rem;margin-bottom:15px}.birth-feedback{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:14px;padding:14px 16px;border-radius:12px;background:var(--soft);font-size:.875rem;color:var(--muted);min-height:50px}.birth-feedback strong{color:var(--ink);font-weight:600}.birth-invalid{color:#a5392c}.birthday select{appearance:auto}.picker-caption{display:flex;justify-content:space-between;gap:10px;margin:20px 0 12px;font-size:.8rem;color:var(--muted)}.card-picker{max-height:540px;scrollbar-width:thin;scrollbar-color:#afafaf #f6f6f6}.missing-card{font-size:.875rem;margin:20px 0 0}.missing-card summary{cursor:pointer;color:var(--ink);padding:6px 0}.custom-card-entry{display:flex;gap:10px;margin-top:12px}.custom-card-entry .search-input{min-width:0;flex:1}.custom-card-entry .btn{white-space:nowrap;min-height:52px;padding:0 16px}.loading-phases{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:18px;color:var(--muted);font-size:.8rem}.costco-followup{display:grid;gap:18px;margin-top:22px;padding:22px;background:var(--soft);border-radius:16px}.costco-followup .group-title{margin:0}.costco-quick{display:grid;grid-template-columns:78px minmax(0,1fr) 20px;gap:14px;align-items:center;text-align:left;background:white;border:1px solid var(--line);border-radius:12px;padding:14px;width:100%}.costco-quick strong{display:block;font-size:.875rem;font-weight:500}.costco-quick small{font-size:.8rem;color:var(--muted)}@media(max-width:600px){.home-carousel{height:146px}.home-carousel .carousel-card{width:165px;height:104px}.home-carousel .carousel-card.previous{transform:translateX(-113px) scale(.82) rotate(-9deg)}.home-carousel .carousel-card.next{transform:translateX(113px) scale(.82) rotate(9deg)}.hero-stage{margin-bottom:22px}.birthday{grid-template-columns:1.4fr .85fr 1fr;gap:8px}.birthday select{padding-right:5px}.costco-followup{padding:18px}.card-picker{max-height:500px}.picker-caption{font-size:.75rem}.custom-card-entry{flex-wrap:wrap}.custom-card-entry .search-input{min-width:180px}.birth-feedback{font-size:.8rem}}@media(prefers-reduced-motion:reduce){.motion-toggle{display:none}}
