:root{
  --bg:#f7f3ee;--panel:#fffdf9;--ink:#1f1a17;--muted:#756b64;--line:#e8dfd6;
  --accent:#7a4b36;--accent2:#e7c8b5;--soft:#f1e7de;--shadow:0 18px 60px rgba(53,36,27,.10);
}
*{box-sizing:border-box} body{margin:0;background:radial-gradient(circle at top,#fffaf5 0,#f7f3ee 46%,#f3eee8 100%);color:var(--ink);font-family:"DM Sans",sans-serif;min-height:100vh}
button,input,select,textarea{font:inherit}.app-shell{width:min(980px,92vw);margin:0 auto;min-height:calc(100vh - 70px)}
.topbar{height:76px;display:flex;align-items:center;justify-content:space-between}.brand{border:0;background:none;display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;color:var(--ink);cursor:pointer}.brand-mark{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:var(--ink);color:#fff}.beta{font-size:12px;color:var(--muted);border:1px solid var(--line);padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.5)}
.screen{display:none}.screen.active{display:block}.hero-screen{padding:72px 0 60px;text-align:center}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:700;color:var(--accent);margin-bottom:16px}.hero-screen h1,.form-head h2,.section-title-row h2,.taste-card h2,.loading-screen h2{font-family:"Playfair Display",serif;margin:0}.hero-screen h1{font-size:clamp(52px,8vw,96px);line-height:.95;letter-spacing:-.04em;max-width:760px;margin:0 auto}.hero-copy{font-size:20px;line-height:1.55;color:var(--muted);max-width:680px;margin:26px auto}.hero-pills,.preview-tags,.taste-tags{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.hero-pills span,.preview-tags span,.taste-tags span{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:9px 12px;font-size:13px}.primary{border:0;background:var(--ink);color:#fff;border-radius:16px;padding:15px 20px;font-weight:700;cursor:pointer;box-shadow:0 8px 26px rgba(31,26,23,.14)}.primary:hover{transform:translateY(-1px)}.primary.big{margin-top:28px;padding:18px 24px;font-size:17px}.primary.full{width:100%;margin-top:8px}.micro{font-size:12px;color:var(--muted)}
.preview-card{margin:52px auto 0;max-width:560px;text-align:left;background:rgba(255,253,249,.8);border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}.preview-badge{font-size:12px;color:var(--muted);margin-bottom:8px}.preview-title{font-family:"Playfair Display",serif;font-size:30px}.preview-tags{justify-content:flex-start;margin:18px 0}.preview-match{padding-top:18px;border-top:1px solid var(--line);color:var(--muted)}.preview-match b{font-size:28px;color:var(--ink)}
#formScreen{max-width:720px;margin:0 auto;padding:24px 0 70px}.progress{height:5px;background:#ece4dd;border-radius:999px;overflow:hidden;margin-bottom:28px}.progress span{display:block;width:56%;height:100%;background:var(--accent);border-radius:inherit}.back-link{border:0;background:none;color:var(--muted);padding:0;cursor:pointer;margin-bottom:28px}.form-head{margin-bottom:28px}.form-head h2{font-size:42px;letter-spacing:-.02em}.form-head p{color:var(--muted)}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:1fr 1fr}.field{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:700;margin-bottom:16px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.78);padding:14px;color:var(--ink);outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#b99179;box-shadow:0 0 0 4px rgba(185,145,121,.12)}
.loading-screen{text-align:center;padding:150px 0}.orb{width:82px;height:82px;border-radius:28px;background:var(--ink);color:#fff;display:grid;place-items:center;margin:0 auto 24px;font-size:32px;animation:float 2s ease-in-out infinite}.loading-screen h2{font-size:42px}.loading-screen p{color:var(--muted)}.loader{height:6px;width:min(420px,80vw);margin:30px auto;background:#e8dfd6;border-radius:999px;overflow:hidden}.loader span{display:block;height:100%;width:35%;background:var(--accent);border-radius:999px;animation:load 2.2s ease-in-out infinite}@keyframes load{0%{transform:translateX(-120%)}100%{transform:translateX(380%)}}@keyframes float{50%{transform:translateY(-8px) rotate(4deg)}}
#resultsScreen{padding:20px 0 70px}.results-top{display:flex;justify-content:space-between;align-items:center}.ghost{background:var(--panel);border:1px solid var(--line);color:var(--ink);padding:10px 14px;border-radius:12px;cursor:pointer}.taste-card{background:linear-gradient(145deg,#2a211d,#4d3528);color:#fff;border-radius:30px;padding:34px;margin:12px 0 44px;box-shadow:var(--shadow)}.taste-card .eyebrow{color:#f0cdb9}.taste-card h2{font-size:48px}.taste-card p{color:#eadfd8;max-width:640px;font-size:17px;line-height:1.55}.taste-tags{justify-content:flex-start}.taste-tags span{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.16)}.section-title-row{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:20px}.section-title-row h2{font-size:38px}.budget-chip{border:1px solid var(--line);background:var(--panel);padding:9px 12px;border-radius:999px;color:var(--muted);font-size:13px;white-space:nowrap}.gift-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gift-card{background:var(--panel);border:1px solid var(--line);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;min-height:390px}.gift-art{height:150px;display:grid;place-items:center;font-size:52px;background:linear-gradient(135deg,#efe3d7,#f9f3ed)}.gift-body{padding:18px;display:flex;flex-direction:column;flex:1}.match-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.match{font-weight:800;color:var(--accent)}.price{color:var(--muted);font-size:13px}.gift-card h3{font-size:19px;margin:14px 0 8px}.gift-card p{color:var(--muted);line-height:1.45;font-size:14px;margin:0 0 16px}.reason-list{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}.reason-list span{font-size:11px;background:var(--soft);padding:6px 8px;border-radius:999px}.gift-card .ghost{margin-top:auto;width:100%}.feedback-card{margin-top:34px;background:rgba(255,255,255,.65);border:1px solid var(--line);border-radius:22px;padding:24px}.feedback-card p{color:var(--muted)}.feedback-actions{display:flex;gap:10px;flex-wrap:wrap}.hidden{display:none}footer{text-align:center;padding:22px;color:var(--muted);font-size:12px}
@media(max-width:780px){.hero-screen{padding-top:44px}.grid.two,.gift-grid{grid-template-columns:1fr}.form-head h2,.taste-card h2,.section-title-row h2{font-size:34px}.section-title-row{align-items:flex-start;flex-direction:column}.hero-copy{font-size:17px}.taste-card{padding:26px}.gift-card{min-height:0}.gift-art{height:120px}}

/* v0.2 — theme + DNA Pick */
body, .preview-card, .gift-card, .feedback-card, .ghost, .field input, .field select, .field textarea,
.hero-pills span, .preview-tags span, .taste-tags span, .budget-chip, .beta, .theme-toggle, .dna-pick-card {
  transition: background-color .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.top-actions{display:flex;align-items:center;gap:9px}
.theme-toggle{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.55);color:var(--ink);display:grid;place-items:center;cursor:pointer;font-size:18px;line-height:1}
.theme-toggle:hover{transform:translateY(-1px)}
.dna-pick-wrap{margin-bottom:42px}.dna-title-row{margin-bottom:16px}.dna-badge{font-size:12px;font-weight:700;color:var(--accent);background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:8px 11px;white-space:nowrap}
.dna-pick-card{position:relative;overflow:hidden;display:grid;grid-template-columns:180px 1fr;background:linear-gradient(135deg,rgba(255,253,249,.96),rgba(241,231,222,.96));border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}
.dna-pick-card:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:-110px;top:-130px;background:radial-gradient(circle,rgba(122,75,54,.17),transparent 68%);pointer-events:none}
.dna-art{display:grid;place-items:center;min-height:245px;font-size:68px;background:linear-gradient(145deg,var(--soft),rgba(255,255,255,.35));border-right:1px solid var(--line)}
.dna-body{padding:26px 28px;position:relative;z-index:1}.dna-kicker{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.dna-score{font-family:"Playfair Display",serif;font-size:38px;color:var(--ink);margin-left:auto;letter-spacing:-.03em}.dna-head{display:flex;align-items:flex-start;gap:18px}.dna-pick-card h3{font-family:"Playfair Display",serif;font-size:30px;line-height:1.05;margin:10px 0 10px}.dna-pick-card p{color:var(--muted);line-height:1.55;margin:0 0 18px}.trait-blend{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.trait-blend span{font-size:12px;background:var(--panel);border:1px solid var(--line);padding:7px 9px;border-radius:999px}.dna-foot{display:flex;align-items:center;justify-content:space-between;gap:14px}.dna-note{font-size:12px;color:var(--muted)}.dna-pick-card .ghost{min-width:150px}

body.dark{
  --bg:#11100f;--panel:#1b1917;--ink:#f5efe9;--muted:#aaa098;--line:#342f2b;
  --accent:#e0ad8d;--accent2:#5b4032;--soft:#29231f;--shadow:0 18px 60px rgba(0,0,0,.34);
  background:radial-gradient(circle at top,#201a17 0,#141210 48%,#0f0e0d 100%);
}
body.dark .brand-mark{background:#f4eee8;color:#181513}
body.dark .primary{background:#f4eee8;color:#181513;box-shadow:0 8px 26px rgba(0,0,0,.34)}
body.dark .beta,body.dark .theme-toggle{background:rgba(27,25,23,.72)}
body.dark .preview-card{background:rgba(27,25,23,.82)}
body.dark .field input,body.dark .field select,body.dark .field textarea{background:rgba(27,25,23,.86);color:var(--ink);color-scheme:dark}
body.dark .progress,body.dark .loader{background:#2c2825}
body.dark .taste-card{background:linear-gradient(145deg,#181412,#35251e)}
body.dark .taste-card p{color:#d6cbc3}
body.dark .gift-art{background:linear-gradient(135deg,#29231f,#1d1a18)}
body.dark .feedback-card{background:rgba(27,25,23,.68)}
body.dark .dna-pick-card{background:linear-gradient(135deg,rgba(30,27,25,.97),rgba(39,32,28,.97))}
body.dark .dna-art{background:linear-gradient(145deg,#2b2420,#1b1917)}
body.dark .dna-pick-card:after{background:radial-gradient(circle,rgba(224,173,141,.16),transparent 68%)}

@media(max-width:780px){.topbar{height:70px}.beta{display:none}.dna-pick-card{grid-template-columns:1fr}.dna-art{min-height:130px;border-right:0;border-bottom:1px solid var(--line)}.dna-body{padding:22px}.dna-head{align-items:center}.dna-score{font-size:31px}.dna-pick-card h3{font-size:26px}.dna-foot{align-items:stretch;flex-direction:column}.dna-pick-card .ghost{width:100%}}

/* v0.3 — AI experience */
.ai-mini{display:inline-flex;align-items:center;margin-left:6px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--soft);padding:4px 7px;border-radius:999px;vertical-align:middle}
.field-help{font-size:11px;font-weight:500;color:var(--muted);line-height:1.45;margin-top:-2px}
.taste-headline{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.taste-headline .eyebrow{margin-bottom:0}
.ai-status{font-size:11px;font-weight:800;letter-spacing:.04em;color:#e6d9d0;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);padding:7px 10px;border-radius:999px}
.ai-status.live{color:#fff;background:rgba(255,255,255,.15)}

/* v0.3.2 — grounded recommendation explanations */
.why-block{margin:4px 0 16px;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.32)}
.why-block>span,.why-mini>span,.matches-label{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:6px}
.why-block p{margin:0;color:var(--ink);font-size:14px;line-height:1.5}
.why-mini{margin:2px 0 14px}.why-mini p{margin:0!important;color:var(--muted)!important;line-height:1.48!important;font-size:14px!important}
.matches-label{margin-top:2px;margin-bottom:7px;color:var(--muted)}
body.dark .why-block{background:rgba(255,255,255,.035)}

/* v0.4 — real product catalog */
.real-badge{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--accent);background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:6px 8px}
.catalog-row{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:11px}
.product-brand{font-size:11px;text-transform:uppercase;letter-spacing:.11em;font-weight:800;color:var(--muted);margin-top:3px}
.price-row{display:flex;align-items:baseline;gap:7px;margin:2px 0 13px}.price-row strong{font-family:"Playfair Display",serif;font-size:24px}.price-row span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.reference-price{display:block;font-weight:800;font-size:14px;color:var(--ink)}.price-note{display:block;font-size:10px;color:var(--muted);margin-top:3px}
.real-product-card .gift-art{font-size:58px}.real-product-card .dna-kicker{color:var(--accent)}
body.dark .real-badge{background:#29231f}
@media(max-width:780px){.reference-price,.price-note{text-align:left}}

/* v0.5 — Deal Finder */
.compare-btn{white-space:nowrap}.dna-foot .primary.compare-btn{padding:11px 15px;border-radius:13px;border:0}.deal-panel{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}.deal-panel.compact{margin-top:13px}.deal-loading{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;padding:11px 0}.deal-loading span{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:dealspin .7s linear infinite}@keyframes dealspin{to{transform:rotate(360deg)}}
.sandbox-note{font-size:9px;letter-spacing:.11em;text-transform:uppercase;font-weight:900;color:#a45e39;background:#fff0e6;border:1px solid #efd2c1;border-radius:9px;padding:7px 9px;margin-bottom:10px}.deal-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:9px}.deal-head>div{display:flex;flex-direction:column;gap:2px}.deal-head span{font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);font-weight:800}.deal-head b{font-size:14px}.deal-head small{font-size:9px;color:var(--muted)}.affiliate-ready{color:#487653!important}
.offer-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,.8fr) auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}.offer-merchant{display:flex;gap:9px;align-items:center;min-width:0}.merchant-mark{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;background:var(--ink);color:var(--bg);font-weight:900;font-size:18px}.offer-merchant>div,.offer-meta{display:flex;flex-direction:column;min-width:0}.offer-merchant b{font-size:12px}.offer-merchant small,.offer-meta small{font-size:9px;color:var(--muted);line-height:1.3}.offer-meta b{font-family:"Playfair Display",serif;font-size:17px}.offer-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--ink);font-size:10px;font-weight:800;text-decoration:none;background:var(--panel)}.offer-link:hover{border-color:var(--accent)}.compare-foot{font-size:9px;color:var(--muted);line-height:1.45;border-top:1px dashed var(--line);padding-top:9px;margin-top:2px}.deal-empty{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:13px;background:var(--soft);border:1px solid var(--line)}.deal-empty>div{display:flex;flex-direction:column;gap:3px}.deal-empty b{font-size:11px}.deal-empty span{font-size:9px;color:var(--muted);line-height:1.35}.deal-empty a{font-size:10px;font-weight:800;color:var(--accent);white-space:nowrap}.deal-empty.error{border-color:#d9b0a0}.gift-card .deal-panel{margin-top:13px}.gift-card .offer-row{grid-template-columns:1fr auto}.gift-card .offer-meta{grid-column:1}.gift-card .offer-link{grid-column:2;grid-row:1 / span 2}.gift-card .deal-head{align-items:flex-start;flex-direction:column}.gift-card .deal-empty{align-items:flex-start;flex-direction:column}.gift-card .deal-empty a{white-space:normal}
body.dark .sandbox-note{background:#34241d;border-color:#5d3e30;color:#e6ad8d}body.dark .merchant-mark{background:#f4eee8;color:#181513}
@media(max-width:780px){.offer-row{grid-template-columns:1fr auto}.offer-meta{grid-column:1}.offer-link{grid-column:2;grid-row:1 / span 2}.deal-head{align-items:flex-start;flex-direction:column}.deal-empty{align-items:flex-start;flex-direction:column}.dna-foot .primary.compare-btn{width:100%}}


/* v0.5.2 — Amazon affiliate disclosure + CTA */
.product-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.affiliate-cta{display:flex;flex-direction:column;align-items:center;gap:3px}
.amazon-affiliate-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;background:#ffd814;color:#111;border:1px solid #f0c400;border-radius:13px;padding:11px 15px;font-size:12px;font-weight:800;white-space:nowrap;box-shadow:0 5px 16px rgba(0,0,0,.08)}
.amazon-affiliate-link:hover{background:#f7ca00;transform:translateY(-1px)}
.paid-link{font-size:9px;color:var(--muted);line-height:1}
.affiliate-cta.compact{width:100%;align-items:stretch;margin-bottom:8px}.affiliate-cta.compact .amazon-affiliate-link{width:100%}.affiliate-cta.compact .paid-link{text-align:center}
.amazon-disclosure{font-weight:700;color:var(--ink);margin-bottom:6px}
body.dark .amazon-affiliate-link{background:#ffd814;color:#111;border-color:#f0c400}
@media(max-width:780px){.product-actions{align-items:stretch;flex-direction:column}.product-actions .affiliate-cta,.product-actions .amazon-affiliate-link,.product-actions .compare-btn{width:100%}}


/* v0.6.2 feedback loop */
.match-feedback{margin:18px 0 4px;padding:13px 14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.035);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.match-feedback>span{font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--muted)}
.match-feedback-actions{display:flex;gap:7px}
.mini-feedback,.feedback-reasons button{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:999px;padding:7px 10px;font:inherit;font-size:12px;cursor:pointer;transition:.16s ease}
.mini-feedback:hover,.feedback-reasons button:hover,.mini-feedback.selected,.feedback-reasons button.selected{transform:translateY(-1px);border-color:var(--accent);background:var(--soft)}
.feedback-reasons{width:100%;display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-top:3px}
.feedback-reasons[hidden]{display:none}
.feedback-reasons>span{font-size:11px;color:var(--muted);margin-right:2px}
.feedback-saved{width:100%;font-size:11px;color:var(--muted)}
.feedback-saved[hidden]{display:none}
.feedback.selected{border-color:var(--accent);background:var(--soft)}
@media(max-width:700px){.match-feedback{align-items:flex-start}.match-feedback>span{width:100%}}


/* v0.7.0 — Surprise Mode */
.mode-nav{display:flex;align-items:center;gap:6px;padding:4px;border:1px solid var(--line);background:rgba(255,255,255,.42);border-radius:999px}
.mode-link{border:0;background:transparent;color:var(--muted);padding:8px 11px;border-radius:999px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}
.mode-link:hover{background:var(--panel);color:var(--ink)}.surprise-nav span{color:var(--accent)}
.hero-actions{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin-top:28px}.hero-actions .primary.big{margin-top:0}.ghost.big{padding:17px 20px;border-radius:16px;font-weight:800;background:rgba(255,255,255,.58)}
.surprise-cta{position:relative;overflow:hidden}.surprise-cta:after{content:"";position:absolute;inset:-2px;background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.6),transparent 75%);transform:translateX(-120%);animation:surpriseSweep 4.6s ease-in-out infinite;pointer-events:none}@keyframes surpriseSweep{0%,62%{transform:translateX(-120%)}82%,100%{transform:translateX(120%)}}
.preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:900px;margin:52px auto 0}.preview-grid .preview-card{margin:0;max-width:none}.surprise-preview{font:inherit;text-align:left;background:linear-gradient(145deg,rgba(41,32,28,.97),rgba(76,51,39,.97));color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:28px;box-shadow:var(--shadow);cursor:pointer;position:relative;overflow:hidden}.surprise-preview:after{content:"";position:absolute;width:190px;height:190px;border-radius:50%;right:-80px;top:-90px;background:radial-gradient(circle,rgba(255,214,180,.18),transparent 70%)}.surprise-preview .preview-badge{color:#e8d3c5}.surprise-preview .preview-title{position:relative;z-index:1}.surprise-preview p{color:#ddd0c8;line-height:1.5;font-size:13px;position:relative;z-index:1}.surprise-preview-top{display:flex;justify-content:space-between;align-items:center}.tiny-pill{font-size:9px;font-weight:900;letter-spacing:.13em;padding:5px 8px;border-radius:999px;background:#fff;color:#2a211d}.mini-box-row{display:flex;gap:8px;margin:16px 0}.mini-box-row span{width:42px;height:48px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);font-family:"Playfair Display",serif;font-size:22px}.preview-link{font-size:12px;font-weight:800;color:#f3cfb8}
.taste-surprise-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16)}.taste-surprise-cta>div{display:flex;flex-direction:column;gap:3px}.taste-surprise-cta b{font-size:13px}.taste-surprise-cta span{font-size:11px;color:#d9cbc2}.surprise-inline-btn{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.11);color:#fff;padding:10px 13px;border-radius:12px;font-weight:800;cursor:pointer;white-space:nowrap}
.surprise-setup-screen{max-width:820px;margin:0 auto;padding:24px 0 78px}.surprise-hero-copy{text-align:center;max-width:760px;margin:0 auto 28px}.surprise-hero-copy h2,.surprise-drop-head h2,.surprise-reveal h2{font-family:"Playfair Display",serif;letter-spacing:-.025em}.surprise-hero-copy h2{font-size:clamp(38px,6vw,58px);line-height:1.02;margin:0}.surprise-hero-copy p{font-size:16px;color:var(--muted);line-height:1.6;max-width:680px;margin:18px auto}.rarity-legend{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:0 auto 24px}.rarity-legend span{font-size:10px;font-weight:900;letter-spacing:.04em;border:1px solid var(--line);border-radius:999px;padding:7px 9px;background:var(--panel)}.rarity-legend b{margin-left:3px;opacity:.65}.rarity-common{color:#716a64}.rarity-rare{color:#3073a8}.rarity-epic{color:#7f4daf}.rarity-legendary{color:#a46d10}.rarity-impossible{color:#b03d62}.surprise-form-card{background:rgba(255,253,249,.75);border:1px solid var(--line);border-radius:26px;padding:26px;box-shadow:var(--shadow)}.optional{font-size:10px;color:var(--muted);font-weight:500}.surprise-more{border-top:1px solid var(--line);padding-top:14px;margin-top:6px}.surprise-more summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--ink);padding:5px 0 14px}.surprise-more summary span{font-weight:500;color:var(--muted);margin-left:5px}.surprise-more-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.surprise-generate{margin-top:18px!important}.center{text-align:center}
.mystery-orb{width:90px;height:90px;border-radius:30px;background:linear-gradient(145deg,#2b211d,#654634);color:#fff;display:grid;place-items:center;margin:0 auto 22px;box-shadow:0 20px 55px rgba(60,38,27,.18);animation:float 2s ease-in-out infinite}.mystery-orb span{font-family:"Playfair Display",serif;font-size:42px}.surprise-loading .eyebrow{margin-top:5px}
.surprise-screen{padding:20px 0 80px}.surprise-drop-head{text-align:center;padding:36px 12px 24px}.surprise-drop-head h2{font-size:clamp(40px,7vw,68px);margin:0}.surprise-drop-head>p{color:var(--muted);font-size:16px}.surprise-taste-tags{margin-top:16px}.mystery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:880px;margin:18px auto}.mystery-box{min-height:290px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,var(--panel),var(--soft));color:var(--ink);box-shadow:var(--shadow);cursor:pointer;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;transition:transform .25s ease,opacity .25s ease,border-color .25s ease,filter .25s ease}.mystery-box:hover:not(:disabled){transform:translateY(-6px) rotate(-.5deg);border-color:var(--accent)}.mystery-box:nth-child(2):hover:not(:disabled){transform:translateY(-6px) rotate(.5deg)}.box-shine{position:absolute;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(122,75,54,.12),transparent 70%);top:-65px;right:-55px}.mystery-question{font-family:"Playfair Display",serif;font-size:90px;line-height:1;color:var(--accent);text-shadow:0 12px 30px rgba(122,75,54,.14)}.mystery-label{font-size:13px;font-weight:900;letter-spacing:.18em}.mystery-box small{font-size:11px;color:var(--muted)}.mystery-box.locked{opacity:.38;filter:grayscale(.7);transform:scale(.97)}.mystery-box.locked:after{content:"LOCKED";position:absolute;inset:auto 18px 18px;border-top:1px solid var(--line);padding-top:9px;font-size:9px;letter-spacing:.16em;font-weight:900;color:var(--muted)}.mystery-box.opened{transform:translateY(-6px);border-width:2px}.revealed-box-icon{font-size:72px;line-height:1}.mystery-note{text-align:center;color:var(--muted);font-size:12px;margin:10px auto 30px}
.surprise-reveal{position:relative;overflow:hidden;margin:26px auto 36px;max-width:900px;border:1px solid var(--line);border-radius:30px;padding:28px;background:linear-gradient(145deg,var(--panel),var(--soft));box-shadow:var(--shadow);scroll-margin-top:24px}.surprise-reveal[hidden]{display:none}.reveal-glow{position:absolute;width:380px;height:380px;border-radius:50%;right:-180px;top:-220px;background:radial-gradient(circle,rgba(122,75,54,.16),transparent 70%);pointer-events:none}.reveal-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative}.rarity-badge{font-size:10px;font-weight:900;letter-spacing:.13em;border-radius:999px;padding:8px 10px;border:1px solid currentColor;background:rgba(255,255,255,.32)}.rarity-badge.rarity-common{color:#716a64}.rarity-badge.rarity-rare{color:#3073a8}.rarity-badge.rarity-epic{color:#7f4daf}.rarity-badge.rarity-legendary{color:#a46d10}.rarity-badge.rarity-impossible{color:#b03d62;background:linear-gradient(90deg,rgba(176,61,98,.09),rgba(127,77,175,.11),rgba(48,115,168,.08))}.reveal-main{display:grid;grid-template-columns:150px 1fr;gap:24px;align-items:center;margin-top:20px;position:relative}.reveal-art{height:150px;border-radius:24px;background:rgba(255,255,255,.36);border:1px solid var(--line);display:grid;place-items:center;font-size:70px}.reveal-copy h2{font-size:36px;line-height:1.05;margin:8px 0 15px}.reveal-copy .why-block{margin-bottom:12px}.reveal-copy .trait-blend{margin-bottom:13px}.reveal-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid var(--line);padding-top:18px;margin-top:16px}.reroll-btn{font-weight:800;white-space:nowrap}.reroll-spent{font-size:11px;color:var(--muted)}.reveal-rare{border-color:rgba(48,115,168,.38)}.reveal-epic{border-color:rgba(127,77,175,.42)}.reveal-legendary{border-color:rgba(164,109,16,.48);box-shadow:0 22px 70px rgba(164,109,16,.14)}.reveal-impossible{border-color:rgba(176,61,98,.55);box-shadow:0 24px 80px rgba(127,77,175,.18)}
.rarity-explainer{max-width:900px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:25px;padding:24px;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.38)}.rarity-explainer .eyebrow{margin-bottom:7px}.rarity-explainer h3{font-family:"Playfair Display",serif;font-size:26px;margin:0 0 8px}.rarity-explainer p{color:var(--muted);font-size:12px;line-height:1.55;margin:0}.rarity-odds{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rarity-odds span{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.rarity-odds b{margin-left:auto;color:var(--ink)}.dot{width:9px;height:9px;border-radius:50%;background:#777}.dot.common{background:#8b837c}.dot.rare{background:#4e91c5}.dot.epic{background:#9563c4}.dot.legendary{background:#c58a25}.dot.impossible{background:linear-gradient(135deg,#b03d62,#7f4daf,#3073a8)}
body.dark .mode-nav{background:rgba(27,25,23,.55)}body.dark .ghost.big{background:rgba(27,25,23,.72)}body.dark .surprise-form-card{background:rgba(27,25,23,.76)}body.dark .mystery-box{background:linear-gradient(145deg,#211c19,#322821)}body.dark .surprise-reveal{background:linear-gradient(145deg,#1e1a18,#332820)}body.dark .reveal-art{background:rgba(255,255,255,.035)}body.dark .rarity-explainer{background:rgba(27,25,23,.58)}body.dark .rarity-badge{background:rgba(255,255,255,.035)}
@media(max-width:900px){.mode-nav{display:none}.preview-grid{grid-template-columns:1fr;max-width:600px}.topbar{gap:10px}}
@media(max-width:780px){.preview-grid{margin-top:34px}.taste-surprise-cta{align-items:stretch;flex-direction:column}.surprise-inline-btn{width:100%}.surprise-form-card{padding:20px}.surprise-more-fields{grid-template-columns:1fr}.mystery-grid{grid-template-columns:1fr;max-width:420px}.mystery-box{min-height:190px}.mystery-question{font-size:68px}.reveal-main{grid-template-columns:1fr}.reveal-art{height:120px}.reveal-actions{align-items:stretch;flex-direction:column}.reveal-actions .product-actions,.reveal-actions .reroll-btn{width:100%}.rarity-explainer{grid-template-columns:1fr}.surprise-drop-head{padding-top:24px}}
@media(max-width:520px){.rarity-odds{grid-template-columns:1fr}.reveal-topline{align-items:flex-start;flex-direction:column}.surprise-hero-copy h2{font-size:38px}.top-actions .beta{display:none}}
@media(prefers-reduced-motion:reduce){.surprise-cta:after,.mystery-orb{animation:none}.mystery-box,.surprise-cta{transition:none}}
.opening-spinner{width:42px;height:42px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:dealspin .7s linear infinite}

/* v0.7.1 — weekly Surprise Drops + quality-gated rarity */
.rarity-teaser{max-width:760px;margin:0 auto 24px;display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}.rarity-teaser span{font-size:10px;font-weight:900;letter-spacing:.08em;border:1px solid var(--line);border-radius:999px;padding:7px 10px;background:var(--panel)}.rarity-teaser i{font-style:normal;color:var(--muted);font-size:11px}.rarity-teaser small{width:100%;text-align:center;color:var(--muted);font-size:10px;margin-top:2px}
.weekly-lock-card{max-width:820px;margin:0 auto 18px;padding:20px 22px;border:1px solid rgba(164,109,16,.35);border-radius:22px;background:linear-gradient(135deg,rgba(164,109,16,.08),rgba(127,77,175,.06));display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:var(--shadow)}.weekly-lock-card[hidden]{display:none}.weekly-lock-card h3{font-family:"Playfair Display",serif;font-size:25px;margin:4px 0 4px}.weekly-lock-card p{font-size:12px;line-height:1.55;color:var(--muted);margin:0;max-width:590px}.weekly-lock-card>strong{font-family:"Playfair Display",serif;font-size:24px;white-space:nowrap;color:var(--accent)}
.weekly-status{max-width:560px;margin:4px auto 26px;border:1px solid var(--line);background:rgba(255,255,255,.26);border-radius:18px;padding:13px 16px;display:grid;grid-template-columns:1fr auto;gap:3px 14px;align-items:center}.weekly-status span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--muted)}.weekly-status strong{grid-row:1/3;grid-column:2;font-family:"Playfair Display",serif;font-size:20px}.weekly-status small{font-size:10px;color:var(--muted)}
.rarity-proof{position:relative;margin:14px 0 2px;padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.24);display:flex;gap:9px;align-items:center;flex-wrap:wrap}.rarity-proof b{font-size:11px;letter-spacing:.03em}.rarity-proof span{font-size:10px;color:var(--muted)}
.weekly-next{margin-top:18px;border-top:1px solid var(--line);padding-top:16px;display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center}.weekly-next span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--muted)}.weekly-next strong{grid-column:2;grid-row:1/3;font-family:"Playfair Display",serif;font-size:21px}.weekly-next small{font-size:10px;color:var(--muted);line-height:1.45}
.rarity-tier-list{display:grid;gap:8px}.rarity-tier-list>span{display:grid;grid-template-columns:12px 92px 1fr;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}.rarity-tier-list>span:last-child{border-bottom:0}.rarity-tier-list b{font-size:11px}.rarity-tier-list small{font-size:10px;color:var(--muted);line-height:1.35}
body.dark .weekly-lock-card{background:linear-gradient(135deg,rgba(164,109,16,.10),rgba(127,77,175,.08))}body.dark .weekly-status,body.dark .rarity-proof{background:rgba(255,255,255,.025)}
@media(max-width:780px){.weekly-lock-card{align-items:flex-start;flex-direction:column;gap:12px}.weekly-status{grid-template-columns:1fr}.weekly-status strong{grid-column:1;grid-row:auto}.weekly-next{grid-template-columns:1fr}.weekly-next strong{grid-column:1;grid-row:auto}.rarity-tier-list>span{grid-template-columns:12px 80px 1fr}}

/* v0.8.0 — My People + per-person Drop schedules */
.people-screen{padding:22px 0 80px}.people-head{max-width:760px;margin:28px auto 30px;text-align:center}.people-head h2{font-family:"Playfair Display",serif;font-size:clamp(38px,6vw,58px);line-height:1.04;margin:6px 0 12px}.people-head p{max-width:650px;margin:0 auto;color:var(--muted);line-height:1.6}.people-add-btn{padding:11px 17px}.people-loading,.people-error{max-width:760px;margin:30px auto;padding:20px;text-align:center;color:var(--muted);border:1px solid var(--line);border-radius:18px;background:var(--panel)}.people-empty{max-width:620px;margin:44px auto;padding:42px 24px;text-align:center;border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,var(--panel),var(--soft));box-shadow:var(--shadow)}.people-empty[hidden],.people-loading[hidden]{display:none}.people-empty-icon{width:72px;height:72px;margin:0 auto 12px;border-radius:22px;display:grid;place-items:center;background:var(--soft);border:1px solid var(--line);font-size:36px;color:var(--accent)}.people-empty h3{font-family:"Playfair Display",serif;font-size:30px;margin:0 0 8px}.people-empty p{color:var(--muted);margin:0 auto 18px;max-width:430px;line-height:1.55}.people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:980px;margin:0 auto}.person-card{border:1px solid var(--line);border-radius:25px;padding:20px;background:linear-gradient(145deg,var(--panel),var(--soft));box-shadow:var(--shadow)}.person-card-top{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center}.person-avatar{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;font-family:"Playfair Display",serif;font-size:25px;background:rgba(122,75,54,.1);border:1px solid var(--line);color:var(--accent)}.person-card-top>div:nth-child(2)>span{font-size:9px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--muted)}.person-card h3{font-family:"Playfair Display",serif;font-size:26px;margin:2px 0 0}.person-status{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;padding:7px 9px;border-radius:999px;border:1px solid var(--line)}.person-status.ready{color:#547344;background:rgba(84,115,68,.08)}.person-status.locked{color:var(--accent);background:rgba(122,75,54,.07)}.person-tags{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}.person-tags span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;padding:6px 8px;border-radius:999px;background:rgba(255,255,255,.3);border:1px solid var(--line);color:var(--muted)}.person-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0}.person-meta span{display:flex;flex-direction:column;gap:3px;min-width:0}.person-meta small{font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.person-meta b{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-next{padding:13px 0 3px;font-size:12px;color:var(--muted)}.person-next b{color:var(--ink)}.person-actions{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;margin-top:12px}.person-actions button{min-height:40px}.person-delete{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:11px;padding:8px}.person-delete:hover{color:#a94444}.people-local-note{max-width:760px;margin:24px auto 0;text-align:center;font-size:10px;color:var(--muted);line-height:1.5}.save-person-toggle{min-height:83px;border:1px solid var(--line);border-radius:16px;padding:14px 15px;display:flex;align-items:flex-start;gap:11px;background:rgba(255,255,255,.18);cursor:pointer}.save-person-toggle input{margin-top:3px;width:17px;height:17px;accent-color:var(--accent)}.save-person-toggle span{display:flex;flex-direction:column;gap:4px}.save-person-toggle b{font-size:12px}.save-person-toggle small{font-size:10px;color:var(--muted);line-height:1.4}.save-person-toggle:has(input:disabled){opacity:.72;cursor:default}.surprise-form-actions{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-top:4px}.surprise-form-actions .surprise-generate{width:100%}.surprise-form-actions .ghost[hidden]{display:none}body.dark .person-tags span,body.dark .save-person-toggle{background:rgba(255,255,255,.025)}
@media(max-width:820px){.people-grid{grid-template-columns:1fr;max-width:580px}.person-meta{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:560px){.person-card-top{grid-template-columns:46px 1fr}.person-avatar{width:46px;height:46px}.person-status{grid-column:1/3;justify-self:start}.person-meta{grid-template-columns:1fr}.person-actions{grid-template-columns:1fr 1fr}.person-actions .person-drop{grid-column:1/3}.surprise-form-actions{grid-template-columns:1fr}}

/* v0.8.1 — optional rarity sound + dream-tier Impossible reveal */
.sound-toggle{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.55);color:var(--ink);display:grid;place-items:center;cursor:pointer;font-size:16px;line-height:1;transition:transform .16s ease,border-color .16s ease,background .16s ease}.sound-toggle:hover{transform:translateY(-1px);border-color:var(--accent)}.sound-toggle[aria-pressed="true"]{background:var(--soft);border-color:rgba(122,75,54,.35)}body.dark .sound-toggle{background:rgba(27,25,23,.72)}
.rarity-open-rare{animation:rareOpen .42s ease}.rarity-open-epic{animation:epicOpen .62s ease}.rarity-open-legendary{animation:legendaryOpen .9s ease;box-shadow:0 20px 70px rgba(164,109,16,.22)}
@keyframes rareOpen{0%{transform:translateY(-6px) scale(1)}45%{transform:translateY(-8px) scale(1.035)}100%{transform:translateY(-6px) scale(1)}}
@keyframes epicOpen{0%,100%{transform:translateY(-6px) rotate(0)}25%{transform:translateY(-7px) rotate(-1.1deg) scale(1.025)}60%{transform:translateY(-9px) rotate(1deg) scale(1.04)}}
@keyframes legendaryOpen{0%,100%{transform:translateY(-6px) scale(1)}22%{transform:translateY(-8px) scale(1.025)}48%{transform:translateY(-10px) scale(1.06)}70%{transform:translateY(-8px) scale(1.03)}}
.impossible-explore{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.impossible-lock{font-weight:900;letter-spacing:.03em}.impossible-crown{position:relative;z-index:2;margin:0 auto 14px;width:max-content;max-width:100%;padding:9px 13px;border:1px solid rgba(176,61,98,.3);border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.16em;background:rgba(176,61,98,.06)}
.reveal-impossible{isolation:isolate;background:radial-gradient(circle at 12% 4%,rgba(176,61,98,.15),transparent 34%),radial-gradient(circle at 91% 10%,rgba(127,77,175,.15),transparent 33%),linear-gradient(145deg,var(--panel),var(--soft));box-shadow:0 28px 90px rgba(127,77,175,.2),0 0 0 1px rgba(176,61,98,.18) inset}.reveal-impossible .reveal-glow{opacity:1;background:radial-gradient(circle,rgba(255,255,255,.28),rgba(176,61,98,.1),transparent 70%);animation:impossibleGlow 3.6s ease-in-out infinite}.reveal-impossible .reveal-art{box-shadow:0 0 45px rgba(127,77,175,.17);animation:impossibleArtFloat 3.4s ease-in-out infinite}
@keyframes impossibleGlow{0%,100%{transform:scale(.9);opacity:.55}50%{transform:scale(1.14);opacity:1}}@keyframes impossibleArtFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-7px) rotate(1deg)}}
.impossible-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 45%,#2a1724 0,#100d12 42%,#050506 82%);color:#fff;opacity:0;animation:impossibleIn .28s ease forwards}.impossible-overlay:before,.impossible-overlay:after{content:"";position:absolute;inset:-25%;pointer-events:none}.impossible-overlay:before{background:conic-gradient(from 0deg,transparent 0 8%,rgba(255,255,255,.035) 9%,transparent 10% 22%,rgba(176,61,98,.08) 23%,transparent 24% 40%,rgba(127,77,175,.08) 41%,transparent 42% 100%);animation:impossibleSpin 8s linear infinite}.impossible-overlay:after{background:radial-gradient(circle,rgba(255,255,255,.2) 0 1px,transparent 1.5px);background-size:42px 42px;opacity:.15;animation:impossibleStars 3s linear infinite}.impossible-stars{position:absolute;inset:0;background:radial-gradient(circle at 15% 20%,rgba(255,255,255,.9) 0 1px,transparent 2px),radial-gradient(circle at 77% 32%,rgba(255,255,255,.75) 0 1px,transparent 2px),radial-gradient(circle at 32% 78%,rgba(255,255,255,.6) 0 1px,transparent 2px),radial-gradient(circle at 88% 75%,rgba(255,255,255,.85) 0 1px,transparent 2px);opacity:.42}.impossible-sequence{position:relative;z-index:2;text-align:center;max-width:900px;padding:28px}.impossible-kicker{display:block;font-size:10px;letter-spacing:.34em;font-weight:900;opacity:.55;margin-bottom:20px}.impossible-sequence strong{display:block;font-family:"Playfair Display",serif;font-size:clamp(42px,10vw,112px);line-height:.95;letter-spacing:-.035em;text-shadow:0 0 35px rgba(255,255,255,.14);transition:transform .22s ease,filter .22s ease}.impossible-sequence small{display:block;margin:22px auto 0;max-width:700px;font-size:11px;line-height:1.6;letter-spacing:.08em;text-transform:uppercase;opacity:.66}.impossible-overlay.phase-signal .impossible-sequence strong{animation:signalJolt .42s steps(2,end)}.impossible-overlay.phase-odds .impossible-sequence strong{letter-spacing:.02em;text-shadow:0 0 45px rgba(176,61,98,.38)}.impossible-overlay.phase-impossible{animation:impossibleFlash .72s ease}.impossible-overlay.phase-impossible .impossible-sequence strong{font-size:clamp(56px,13vw,150px);text-shadow:0 0 28px rgba(255,255,255,.28),0 0 80px rgba(176,61,98,.5);animation:impossibleWord .82s cubic-bezier(.15,.7,.15,1)}.impossible-overlay.phase-product .impossible-sequence strong{font-size:clamp(34px,7vw,78px);max-width:980px}.impossible-overlay.leaving{animation:impossibleOut .5s ease forwards}.impossible-box{box-shadow:0 0 0 2px rgba(176,61,98,.35),0 18px 80px rgba(127,77,175,.28)!important}
@keyframes impossibleIn{to{opacity:1}}@keyframes impossibleOut{to{opacity:0;transform:scale(1.025)}}@keyframes impossibleSpin{to{transform:rotate(360deg)}}@keyframes impossibleStars{to{transform:translateY(42px)}}@keyframes signalJolt{0%{transform:translateX(0)}25%{transform:translateX(-7px)}50%{transform:translateX(8px)}75%{transform:translateX(-3px)}100%{transform:translateX(0)}}@keyframes impossibleFlash{0%{filter:brightness(1)}16%{filter:brightness(2.6)}100%{filter:brightness(1)}}@keyframes impossibleWord{0%{transform:scale(.72);filter:blur(9px);opacity:.1}50%{transform:scale(1.08);filter:blur(0);opacity:1}100%{transform:scale(1)}}
body.impossible-event-active{overflow:hidden}
@media(max-width:780px){.impossible-sequence{padding:20px}.impossible-crown{white-space:normal;text-align:center}.reveal-impossible .product-actions,.impossible-explore{width:100%}}
@media(prefers-reduced-motion:reduce){.rarity-open-rare,.rarity-open-epic,.rarity-open-legendary,.reveal-impossible .reveal-glow,.reveal-impossible .reveal-art,.impossible-overlay,.impossible-overlay:before,.impossible-overlay:after,.impossible-overlay.phase-signal .impossible-sequence strong,.impossible-overlay.phase-impossible,.impossible-overlay.phase-impossible .impossible-sequence strong,.impossible-overlay.leaving{animation:none!important;transition:none!important}.impossible-overlay{opacity:1}.impossible-overlay.leaving{opacity:0}}

/* v0.9.0 — account sync */
.account-button{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:9px 12px;border-radius:12px;font-weight:800;font-size:12px;cursor:pointer;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-button:hover{transform:translateY(-1px);border-color:var(--accent)}
.people-sync-banner{max-width:760px;margin:24px auto 0;padding:14px 15px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,var(--panel),var(--soft));display:flex;align-items:center;justify-content:space-between;gap:14px}.people-sync-banner>div{display:flex;flex-direction:column;gap:4px}.people-sync-banner b{font-size:12px}.people-sync-banner span{font-size:10px;color:var(--muted);line-height:1.45}.people-sync-banner.synced{border-color:rgba(84,115,68,.3);box-shadow:0 10px 30px rgba(84,115,68,.08)}
.auth-modal[hidden]{display:none}.auth-modal{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:20px}.auth-backdrop{position:absolute;inset:0;background:rgba(10,8,7,.72);backdrop-filter:none}.auth-card{position:relative;z-index:1;width:min(520px,100%);max-height:min(760px,92vh);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:26px;padding:30px;box-shadow:0 28px 100px rgba(0,0,0,.28);contain:layout paint;transform:translateZ(0)}.auth-card h2{font-family:"Playfair Display",serif;font-size:36px;line-height:1.05;margin:0 42px 10px 0}.auth-card>div>p{color:var(--muted);line-height:1.55}.auth-close{position:absolute;right:18px;top:16px;width:36px;height:36px;border-radius:12px;border:1px solid var(--line);background:var(--soft);color:var(--ink);font-size:23px;line-height:1;cursor:pointer}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--soft);padding:5px;border-radius:14px;margin:22px 0 18px}.auth-tab{border:0;border-radius:10px;padding:10px;background:transparent;color:var(--muted);font-weight:800;cursor:pointer}.auth-tab.active{background:var(--panel);color:var(--ink);box-shadow:0 3px 12px rgba(31,26,23,.08)}.auth-form .field{margin-bottom:13px}.auth-message{min-height:20px;font-size:12px;margin:12px 0 0}.auth-message.error{color:#a94444}.auth-message.success{color:#547344}.auth-fineprint{font-size:10px!important;line-height:1.55!important;margin:16px 0 0!important;padding-top:14px;border-top:1px solid var(--line)}.auth-synced-check{padding:14px;border-radius:14px;background:rgba(84,115,68,.08);border:1px solid rgba(84,115,68,.22);color:#547344;font-size:12px;font-weight:800;margin:22px 0}.ghost.full{width:100%}
body.dark .account-button{background:rgba(27,25,23,.72)}body.dark .auth-tab.active{box-shadow:0 3px 12px rgba(0,0,0,.25)}body.dark .auth-synced-check{color:#a8d095}
@media(max-width:850px){.topbar{height:auto;min-height:76px;gap:10px;flex-wrap:wrap;padding:12px 0}.mode-nav{order:3;width:100%;justify-content:center}.top-actions{margin-left:auto}.beta{display:none}.account-button{max-width:115px}.people-sync-banner{align-items:flex-start;flex-direction:column}.people-sync-banner .ghost{width:100%}}
@media(max-width:560px){.auth-card{padding:24px 18px;border-radius:22px}.auth-card h2{font-size:31px}.top-actions{gap:6px}.account-button{padding:9px 10px}.sound-toggle,.theme-toggle{width:36px;height:36px}}

/* v0.9.1 — verified accounts + profile */
.verification-step{text-align:center;padding:10px 0 2px}.verification-icon{width:58px;height:58px;margin:0 auto 16px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,var(--soft),var(--panel));border:1px solid var(--line);font-size:26px}.verification-step h2{margin-right:0}.verification-step>p{color:var(--muted);line-height:1.55}.verification-code{width:100%;box-sizing:border-box;margin:8px 0 12px;border:1px solid var(--line);background:var(--soft);color:var(--ink);border-radius:16px;padding:17px 18px;text-align:center;font-size:30px;font-weight:900;letter-spacing:.28em;font-variant-numeric:tabular-nums;outline:none}.verification-code:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(241,167,127,.12)}.verification-actions{display:flex;justify-content:center;gap:18px;margin-top:10px}.text-button{border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:800;cursor:pointer;padding:6px}.text-button:hover{color:var(--ink)}.text-button:disabled{opacity:.45;cursor:not-allowed}
.profile-head{display:flex;align-items:center;gap:15px;margin-bottom:20px}.profile-head h2{margin:2px 0 5px}.profile-head p{margin:0;color:var(--muted);font-size:11px}.profile-avatar{width:58px;height:58px;flex:0 0 58px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#f8efe7,#dca786);border:1px solid rgba(241,167,127,.45);color:#2c1c14;font-family:"Playfair Display",serif;font-weight:900;font-size:22px}.verified-pill{display:inline-flex;align-items:center;margin-left:5px;padding:3px 6px;border-radius:999px;background:rgba(84,115,68,.1);color:#547344;font-size:9px;font-weight:900}.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0 16px}.profile-stats>div{padding:12px 10px;background:var(--soft);border:1px solid var(--line);border-radius:14px;min-width:0}.profile-stats span{display:block;color:var(--muted);font-size:9px;margin-bottom:5px}.profile-stats strong{display:block;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collection-card{border:1px solid var(--line);border-radius:18px;padding:15px;background:linear-gradient(145deg,var(--panel),var(--soft));margin-bottom:16px}.collection-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.collection-head>span{font-weight:900;font-size:12px}.collection-head small{color:var(--muted);font-size:9px}.collection-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.collection-grid>span{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 5px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.collection-grid b{font-size:17px}.collection-grid small{font-size:8px;color:var(--muted)}.collection-common b{color:#85817d}.collection-rare b{color:#4d8bbd}.collection-epic b{color:#8d5fb0}.collection-legendary b{color:#b87b16}.collection-impossible b{color:#b03d62}.best-drop-card{margin-top:10px;padding:11px 12px;border-radius:12px;border:1px solid rgba(176,61,98,.24);background:rgba(176,61,98,.06);font-size:10px;line-height:1.5}.profile-edit{padding-top:2px}.profile-edit .field{margin-bottom:10px}.profile-edit input{width:100%;box-sizing:border-box}.profile-edit .auth-message{margin-bottom:4px}
body.dark .profile-avatar{background:linear-gradient(145deg,#3a2c25,#7c4d39);color:#fff4eb}
@media(max-width:560px){.profile-stats{grid-template-columns:repeat(2,1fr)}.collection-grid{grid-template-columns:repeat(3,1fr)}.collection-grid>span:nth-child(4),.collection-grid>span:nth-child(5){grid-column:auto}.verification-actions{flex-direction:column;gap:2px}.verification-code{font-size:26px}}


/* v0.9.2 — verified account gate */
body.auth-gated{overflow:hidden}
body.auth-gated .site-header,body.auth-gated main,body.auth-gated footer{filter:blur(10px);opacity:.28;pointer-events:none;user-select:none}
body.auth-gated .auth-modal{display:grid!important}
body.auth-gated .auth-backdrop{background:rgba(12,9,7,.82);backdrop-filter:blur(8px)}
body.auth-gated .auth-card{box-shadow:0 28px 90px rgba(0,0,0,.48)}
body.auth-gated .auth-close{display:none!important}
.profile-username{font-weight:800;color:var(--accent)}


/* v0.9.3 Google Sign-In */
.google-auth-block{margin:4px 0 12px}.google-signin-host{min-height:44px;display:flex;justify-content:center;align-items:center;overflow:hidden;border-radius:12px}.google-auth-status{text-align:center;margin-top:7px;min-height:0}.auth-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.12em;margin:12px 0 16px}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--line);flex:1}.auth-divider span{white-space:nowrap}.google-finish-step .google-step-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;margin-bottom:14px;background:#fff;color:#202124;border:1px solid #dadce0;font-weight:900;font-size:22px;font-family:Arial,sans-serif}.google-finish-step h2{margin-right:0}.google-finish-step>p{color:var(--muted);line-height:1.55}.google-back{margin-top:12px}.google-signin-host iframe{max-width:100%!important}
body.dark .google-finish-step .google-step-icon{box-shadow:0 6px 20px rgba(0,0,0,.28)}

/* v0.9.3.1 — settings + language */
.auth-locale-row{display:flex;justify-content:flex-end;margin:-4px 42px 10px 0}.auth-locale-row label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px;font-weight:800}.auth-locale-row select,.settings-row select{border:1px solid var(--line);background:var(--soft);color:var(--ink);border-radius:10px;padding:8px 10px;font:inherit;font-weight:800;cursor:pointer}.profile-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--soft);padding:5px;border-radius:14px;margin-bottom:18px}.profile-tab{border:0;border-radius:10px;padding:10px;background:transparent;color:var(--muted);font-weight:900;cursor:pointer}.profile-tab.active{background:var(--panel);color:var(--ink);box-shadow:0 3px 12px rgba(31,26,23,.08)}body.dark .profile-tab.active{box-shadow:0 3px 12px rgba(0,0,0,.25)}.settings-head h2{margin:4px 0 8px!important}.settings-head p{color:var(--muted);line-height:1.55;margin:0 0 16px}.settings-list{display:grid;gap:10px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--soft)}.settings-row>span{display:flex;flex-direction:column;gap:3px;min-width:0}.settings-row b{font-size:12px}.settings-row small{color:var(--muted);font-size:9px;line-height:1.4}.settings-row select{min-width:118px;background:var(--panel)}.settings-switch{min-width:64px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:8px 12px;font-weight:900;cursor:pointer}.settings-switch[aria-pressed="true"]{background:rgba(84,115,68,.12);border-color:rgba(84,115,68,.35);color:#547344}.settings-note{margin:12px 0 18px;padding:12px 13px;border-radius:13px;border:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:9px;line-height:1.55}.profile-signout{margin-top:16px}@media(max-width:560px){.auth-locale-row{margin-right:40px}.settings-row{align-items:flex-start;flex-direction:column}.settings-row select,.settings-switch{width:100%}}

/* v0.9.4 — Global GiftDNA: onboarding, regional preferences, mobile app shell */
.register-wizard{display:grid;gap:15px}.register-progress{height:5px;border-radius:999px;background:var(--soft);overflow:hidden;margin:2px 0 6px}.register-progress span{display:block;height:100%;width:33.333%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#d68a63);transition:width .25s ease}.register-step{display:grid;gap:13px}.register-step[hidden]{display:none}.register-step h3{font-family:"Playfair Display",serif;font-size:27px;line-height:1.05;margin:0}.step-kicker{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);font-weight:900}.region-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.region-card-grid label{position:relative;cursor:pointer}.region-card-grid input{position:absolute;opacity:0;pointer-events:none}.region-card-grid label>span{min-height:56px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:9px;align-items:center;border:1px solid var(--line);background:var(--soft);border-radius:14px;padding:11px 12px;transition:.17s ease}.region-card-grid label>span:first-letter{font-size:18px}.region-card-grid b{font-size:11px;align-self:end}.region-card-grid small{grid-column:2;color:var(--muted);font-size:9px;align-self:start}.region-card-grid input:checked+span{border-color:var(--accent);background:rgba(241,167,127,.10);box-shadow:0 0 0 2px rgba(241,167,127,.12)}.region-card-grid input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.wizard-actions{display:grid;grid-template-columns:.65fr 1fr;gap:9px;margin-top:3px}.wizard-actions>*{width:100%}.region-summary{display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:14px;border:1px solid var(--line);background:var(--soft)}.region-summary>span{font-size:25px}.region-summary>div{display:flex;flex-direction:column;gap:2px}.region-summary b{font-size:12px}.region-summary small{font-size:9px;color:var(--muted)}
.auth-form select,.register-wizard select,.google-finish-step select{width:100%;box-sizing:border-box;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:12px 13px;font:inherit}.register-wizard .field{margin:0}.register-wizard .field-help{display:block;margin-top:6px}
.settings-section{padding:3px 0 18px;margin-bottom:15px;border-bottom:1px solid var(--line)}.settings-section:last-of-type{border-bottom:0}.settings-section>h3{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 9px}.compact-settings .settings-row{padding:12px 14px}.compact-settings .settings-row>strong,.settings-row>strong{font-size:11px;text-align:right;overflow-wrap:anywhere}.privacy-summary{padding:14px;border-radius:15px;border:1px solid var(--line);background:var(--soft);color:var(--muted);font-size:10px;line-height:1.6}.settings-switch.on{background:rgba(84,115,68,.12);border-color:rgba(84,115,68,.35);color:#547344}
.saved-person-gift .profile-detail-field{display:none}.saved-person-gift .form-head p:after{content:" TasteDNA details are already filled from My People."}.saved-person-gift .form-head .eyebrow{color:var(--accent)}
.person-actions{display:flex;flex-wrap:wrap;gap:8px}.person-actions .person-gift{flex:1 1 145px}.person-actions .person-drop{flex:1 1 145px}.person-actions .person-edit,.person-actions .person-delete{flex:0 0 auto}
.mobile-bottom-nav{display:none}
@media(max-width:760px){
  body{padding-bottom:76px}.app-shell{padding-bottom:22px}.mode-nav{display:none}.beta{display:none}.topbar{position:sticky;top:0;z-index:35;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);padding-top:10px;padding-bottom:10px}.top-actions{margin-left:auto}.hero-screen{padding-top:42px}.preview-grid{grid-template-columns:1fr}.hero-actions{align-items:stretch}.hero-actions>*{width:100%}.auth-modal{padding:0;align-items:end}.auth-card{width:100%;max-height:94dvh;border-radius:24px 24px 0 0;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.region-card-grid{grid-template-columns:1fr 1fr}.profile-stats{grid-template-columns:1fr 1fr}.collection-grid{grid-template-columns:repeat(5,minmax(50px,1fr));overflow-x:auto}.mobile-bottom-nav{position:fixed;z-index:9000;left:10px;right:10px;bottom:calc(9px + env(safe-area-inset-bottom));height:58px;display:grid;grid-template-columns:repeat(6,1fr);align-items:stretch;padding:4px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--panel) 93%,transparent);backdrop-filter:blur(16px);box-shadow:0 14px 40px rgba(0,0,0,.15)}.mobile-bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:0;border-radius:13px;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.mobile-bottom-nav button span{font-size:17px;line-height:1}.mobile-bottom-nav button small{font-size:8px;font-weight:800}.mobile-bottom-nav button.active{color:var(--ink);background:var(--soft)}body.auth-gated .mobile-bottom-nav{filter:blur(10px);opacity:.28;pointer-events:none}.settings-row{gap:10px}.settings-row>strong{text-align:left}.person-actions .person-edit,.person-actions .person-delete{flex:1 1 80px}
}
@media(max-width:440px){.region-card-grid{grid-template-columns:1fr}.wizard-actions{grid-template-columns:1fr 1.35fr}.auth-locale-row{justify-content:flex-start;margin:0 0 10px}.collection-grid{grid-template-columns:repeat(5,64px)}}

/* v0.9.5.6 — Relationship Memory */
.hero-actions .surprise-cta{opacity:.72;transform:scale(.96);transform-origin:left center}.hero-actions .surprise-cta:hover{opacity:1}.upcoming-memory{max-width:980px;margin:30px auto 24px;padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--panel)}.upcoming-memory-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:14px}.upcoming-memory-head h2{margin:3px 0 0;font-size:26px}.upcoming-memory-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.upcoming-card{padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--soft);display:grid;gap:8px}.upcoming-card.urgent{border-color:rgba(214,138,99,.48);background:rgba(214,138,99,.08)}.upcoming-card-top{display:flex;justify-content:space-between;gap:12px;align-items:start}.upcoming-card h3{font-size:14px;margin:0}.upcoming-card p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.upcoming-card .days-left{white-space:nowrap;font-size:9px;font-weight:900;color:var(--accent);text-transform:uppercase;letter-spacing:.07em}.upcoming-card .primary{padding:9px 10px;font-size:10px}.memory-date-editor{margin:4px 0 18px;padding:16px;border:1px solid var(--line);border-radius:17px;background:var(--soft)}.memory-date-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:12px}.memory-date-head h3{margin:3px 0 0;font-size:17px}.memory-date-head h3 small{font-family:"DM Sans",sans-serif;font-size:9px;color:var(--muted);font-weight:700}.memory-date-note{max-width:280px;color:var(--muted);font-size:9px;line-height:1.45;text-align:right}.special-dates-editor{display:grid;gap:8px;margin:8px 0}.special-date-row{display:grid;grid-template-columns:1.15fr 1fr .8fr auto;gap:8px;align-items:end;padding:10px;border-radius:13px;border:1px solid var(--line);background:var(--panel)}.special-date-row .field{margin:0}.special-date-row .remove-special-date{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:10px 8px;font-weight:800}.special-date-row .remove-special-date:hover{color:#b34e4e}.add-special-date{margin-top:4px}.person-memory-progress{margin:10px 0 0;display:grid;gap:6px}.person-memory-progress>div{height:6px;border-radius:999px;background:var(--soft);overflow:hidden}.person-memory-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#d68a63)}.person-memory-progress span{font-size:9px;color:var(--muted);font-weight:800}.person-dates{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.person-date-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--soft);padding:6px 8px;border-radius:999px;font-size:9px}.person-date-chip strong{font-size:9px}.person-learning{margin:8px 0 0;padding:9px 10px;border-radius:12px;background:rgba(214,138,99,.07);border:1px solid rgba(214,138,99,.16);font-size:9px;line-height:1.45;color:var(--muted)}.person-learning b{color:var(--ink)}.saved-person-gift .form-head:after{content:"GiftDNA will use this person's saved recommendation feedback too.";display:block;margin-top:7px;color:var(--muted);font-size:10px}.feedback-saved.learning{color:var(--accent);font-weight:800}.real-product-card .why-mini p,.real-product-card .why-block p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.gift-card .matches-label{margin-top:9px}.gift-card .match-feedback{margin-top:10px}.settings-row>strong{max-width:180px}
@media(max-width:760px){.upcoming-memory-list{grid-template-columns:1fr}.upcoming-memory-head,.memory-date-head{align-items:flex-start;flex-direction:column}.memory-date-note{text-align:left;max-width:none}.special-date-row{grid-template-columns:1fr 1fr}.special-date-row .remove-special-date{grid-column:1/-1;text-align:left}.hero-actions .surprise-cta{transform:none;opacity:.7}}
@media(max-width:460px){.special-date-row{grid-template-columns:1fr}.special-date-row .remove-special-date{grid-column:auto}.upcoming-memory{padding:14px}}
.person-learning .person-reset-learning{display:block;margin-top:7px;padding:0;color:var(--accent);font-size:9px;font-weight:900}
.saved-gift-note{display:none}.saved-person-gift .saved-gift-note{display:block}

/* v0.9.5.6 — seamless remembered-session bootstrap.
   Prevents the sign-in modal from flashing before cached auth state is restored. */
body.auth-booting{min-height:100vh}
body.auth-booting .app-shell,body.auth-booting footer,body.auth-booting .mobile-bottom-nav,body.auth-booting .auth-modal{visibility:hidden!important}
body.auth-restoring .auth-modal[hidden]{display:none!important}


/* v0.9.5.6 — Gift Calendar + separate Drop schedule */
.calendar-screen{max-width:1180px;margin:0 auto;padding-top:26px}
.calendar-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:18px 0 18px}
.calendar-head h2{font-family:"Playfair Display",serif;font-size:42px;line-height:1.04;margin:5px 0 8px}
.calendar-head p{max-width:720px;margin:0;color:var(--muted);font-size:12px;line-height:1.6}
.calendar-year-controls{display:flex;align-items:center;gap:8px;padding:7px;border:1px solid var(--line);border-radius:15px;background:var(--panel);white-space:nowrap}
.calendar-year-controls .ghost{padding:8px 12px}
.calendar-year-controls strong{min-width:62px;text-align:center;font-family:"Playfair Display",serif;font-size:20px}
.calendar-date-editor{margin:0 0 18px;padding:18px;border:1px solid rgba(214,138,99,.32);border-radius:20px;background:linear-gradient(135deg,rgba(214,138,99,.08),var(--panel));box-shadow:var(--shadow)}
.calendar-date-editor[hidden]{display:none}
.calendar-editor-head,.drop-schedule-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:12px}
.calendar-editor-head h3,.drop-schedule-head h3{margin:3px 0 0;font-size:20px}
.calendar-editor-actions{display:flex;gap:9px;align-items:center;margin-top:12px}
.ghost.danger{color:#b34e4e;border-color:rgba(179,78,78,.28)}
.ghost.danger:hover{background:rgba(179,78,78,.08)}
.year-calendar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 30px}
.year-month-card{min-height:180px;border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:14px;box-shadow:0 10px 28px rgba(0,0,0,.035)}
.year-month-card.has-events{border-color:rgba(214,138,99,.28)}
.year-month-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--line)}
.year-month-head h3{margin:0;font-family:"Playfair Display",serif;font-size:21px;text-transform:capitalize}
.year-month-head span{min-width:24px;text-align:center;border-radius:999px;padding:3px 7px;background:var(--soft);font-size:9px;font-weight:900;color:var(--muted)}
.year-month-events{display:grid;gap:7px;padding-top:9px}
.calendar-no-events{padding:22px 6px;text-align:center;color:var(--muted);font-size:9px}
.calendar-event{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:stretch}
.calendar-event-main,.calendar-event-gift{border:1px solid var(--line);background:var(--soft);color:var(--ink);font:inherit;cursor:pointer}
.calendar-event-main{display:grid;grid-template-columns:36px 1fr;gap:9px;align-items:center;text-align:left;border-radius:12px;padding:7px}
.calendar-event-main:hover,.calendar-event-gift:hover{border-color:rgba(214,138,99,.45);background:rgba(214,138,99,.08)}
.calendar-day{display:grid;place-items:center;min-height:34px;border-radius:9px;background:var(--panel);font-family:"Playfair Display",serif;font-size:16px;font-weight:700}
.calendar-event-copy{min-width:0;display:grid;gap:2px}
.calendar-event-copy b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px}
.calendar-event-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:8px}
.calendar-event-gift{border-radius:11px;padding:0 9px;font-size:8px;font-weight:900}
.drop-schedule-editor{margin:4px 0 18px;padding:16px;border:1px solid rgba(127,77,175,.20);border-radius:17px;background:color-mix(in srgb,var(--panel) 82%,rgba(127,77,175,.08))}
.drop-schedule-editor .grid{margin-bottom:0}
.person-status.paused{background:rgba(127,127,127,.10);color:var(--muted);border-color:var(--line)}
.person-drop:disabled{opacity:.45;cursor:not-allowed}
.calendar-custom-label[hidden]{display:none!important}

@media(max-width:900px){
  .year-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calendar-head{align-items:flex-start;flex-direction:column}
}
@media(max-width:600px){
  .calendar-screen{padding-top:12px}.calendar-head h2{font-size:34px}
  .year-calendar-grid{grid-template-columns:1fr}
  .calendar-year-controls{width:100%;justify-content:space-between}
  .calendar-editor-head,.drop-schedule-head{align-items:flex-start;flex-direction:column}
  .calendar-editor-actions{flex-direction:column;align-items:stretch}
  .calendar-editor-actions>*{width:100%}
}


/* v0.9.5.6 — Feedback Intelligence */
.feedback-question{display:grid;gap:2px;flex:1 1 250px;min-width:0}
.feedback-question>span{font-size:12px;font-weight:850;letter-spacing:.01em;color:var(--ink)}
.feedback-question>small{font-size:10px;line-height:1.4;color:var(--muted)}
.match-feedback-actions{margin-left:auto}
.mini-feedback.yes.selected{border-color:rgba(84,115,68,.48);background:rgba(84,115,68,.11)}
.mini-feedback.no.selected{border-color:rgba(179,78,78,.42);background:rgba(179,78,78,.08)}
.feedback-reasons{padding-top:10px;margin-top:2px;border-top:1px solid var(--line)}
.feedback-reasons>span{flex:0 0 100%;font-weight:800;color:var(--ink);font-size:10px}
.feedback-reasons button{padding:7px 9px}
.feedback-saved{padding-top:2px;line-height:1.45}
@media(max-width:700px){.feedback-question{flex-basis:100%}.match-feedback-actions{margin-left:0}.feedback-reasons{align-items:flex-start}.feedback-reasons button{flex:1 1 calc(50% - 7px);text-align:center}}

/* v0.9.5.8 — Recommendation Quality */
.dna-score{display:flex;flex-direction:column;align-items:flex-end;line-height:.92}.dna-score strong{font-family:"Playfair Display",serif;font-size:38px;font-weight:700}.dna-score small{font-family:"DM Sans",sans-serif;font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-top:6px;white-space:nowrap}
.fit-signals{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 16px}.fit-signals span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--soft);border-radius:999px;padding:7px 9px;font-size:10px;color:var(--muted)}.fit-signals span i{font-style:normal}.fit-signals span b{color:var(--ink);font-size:10px}.fit-signals span em{font-style:normal;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}.fit-signals.compact{margin:4px 0 13px;gap:6px}.fit-signals.compact span{padding:6px 7px;font-size:9px}.fit-signals.compact span b{font-size:9px}.gift-card .match{font-size:10px;white-space:nowrap}
.offer-product{display:flex;gap:10px;align-items:center;min-width:0}.offer-product>div:last-child{display:flex;flex-direction:column;min-width:0}.offer-product b{font-size:11px;line-height:1.32;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.offer-product small{font-size:9px;color:var(--muted);line-height:1.3;margin-top:3px}.offer-thumb{width:48px;height:48px;flex:0 0 48px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--soft);display:grid;place-items:center}.offer-thumb img{width:100%;height:100%;object-fit:contain;display:block}.offer-thumb .merchant-mark{width:31px;height:31px}
.gift-card .offer-product{grid-column:1 / -1}.gift-card .offer-meta{grid-column:1}.gift-card .offer-link{grid-column:2;grid-row:2}.gift-card .offer-row{align-items:center}
@media(max-width:780px){.dna-score strong{font-size:31px}.dna-score small{font-size:8px}.fit-signals{margin-top:12px}.offer-row{grid-template-columns:1fr auto}.offer-product{grid-column:1 / -1}.offer-meta{grid-column:1}.offer-link{grid-column:2;grid-row:2}.gift-card .offer-product{grid-column:1 / -1}}


/* v0.9.5.9 — TasteDNA explainability */
.person-learning-toggle{width:100%;margin:10px 0 0;border:1px solid var(--line);border-radius:13px;background:var(--panel);color:var(--ink);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;font:inherit;font-size:10px;font-weight:900;cursor:pointer;text-align:left}
.person-learning-toggle>span:last-child{font-size:15px;color:var(--muted);transition:transform .18s ease}
.person-learning-toggle[aria-expanded="true"]>span:last-child{transform:rotate(180deg)}
.taste-learning-panel{margin:8px 0 14px;padding:13px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--soft) 72%,var(--panel));display:grid;gap:14px}
.taste-learning-panel[hidden]{display:none}
.taste-learning-head span{font-family:"Playfair Display",serif;font-size:18px;font-weight:800}
.taste-learning-head p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.5}
.taste-learning-section{display:grid;gap:8px}
.taste-learning-section h4{margin:0;font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted)}
.taste-trait-list{display:grid;gap:7px}
.taste-trait-row{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:9px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.taste-trait-row.dismissed{opacity:.65;border-style:dashed}
.taste-trait-row.confirmed{border-color:rgba(84,115,68,.36)}
.taste-trait-copy{min-width:0}
.taste-trait-copy>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.taste-trait-copy b{font-size:11px}
.taste-trait-copy span{font-size:8px;font-weight:900;color:var(--accent)}
.taste-trait-copy em{font-style:normal;font-size:7px;text-transform:uppercase;letter-spacing:.08em;padding:3px 5px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.taste-trait-copy small{display:block;margin-top:4px;font-size:8px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
.taste-trait-actions{display:flex;gap:5px;align-items:center}
.taste-trait-actions button{border:1px solid var(--line);background:var(--soft);color:var(--muted);border-radius:999px;padding:6px 7px;font:inherit;font-size:8px;font-weight:900;cursor:pointer;white-space:nowrap}
.taste-trait-actions button.selected{background:rgba(84,115,68,.12);border-color:rgba(84,115,68,.34);color:#547344}
.taste-trait-actions button.selected.danger{background:rgba(169,68,68,.08);border-color:rgba(169,68,68,.28);color:#a94444}
.learning-memory-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.learning-memory-group{border:1px solid var(--line);border-radius:11px;background:var(--panel);padding:8px;min-width:0}
.learning-memory-group>b{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.learning-memory-group>div{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.learning-memory-group span{font-size:8px;line-height:1.25;border:1px solid var(--line);border-radius:999px;padding:4px 6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.learning-empty{margin:0;color:var(--muted);font-size:9px;line-height:1.5}
body.dark .taste-learning-panel{background:rgba(255,255,255,.018)}
@media(max-width:560px){.taste-trait-row{grid-template-columns:1fr}.taste-trait-actions{justify-content:flex-start}.learning-memory-grid{grid-template-columns:1fr}}


/* v0.9.6.0 — Personalized Home + multi-retailer comparison */
.home-personalized{max-width:980px;margin:34px auto 12px;text-align:left;padding:22px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,var(--panel),var(--soft));box-shadow:0 18px 60px rgba(0,0,0,.05)}
.home-personalized-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:16px}
.home-personalized-head .eyebrow{margin-bottom:5px}.home-personalized-head h2{font-family:"Playfair Display",serif;font-size:30px;margin:0}.home-personalized-head p{margin:5px 0 0;color:var(--muted);font-size:11px}
.home-personalized-grid{display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:12px}
.home-memory-card{min-height:172px;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--panel);display:flex;flex-direction:column;gap:10px}
.home-card-kicker{font-size:9px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--accent)}
.home-memory-card h3{font-size:18px;margin:0}.home-memory-card p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.5}
.home-memory-card .primary,.home-memory-card .ghost{margin-top:auto;padding:10px 12px;font-size:10px;width:100%}
.home-people-summary{display:grid;gap:8px}.home-person-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.home-person-row:last-child{border-bottom:0}
.home-person-row>button{border:0;background:transparent;color:var(--ink);cursor:pointer;font:inherit;text-align:left;padding:0;min-width:0}.home-person-row b{display:block;font-size:11px}.home-person-row small{display:block;font-size:9px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.home-person-progress{font-size:9px;font-weight:900;color:var(--accent);white-space:nowrap}.home-empty-inline{font-size:10px;color:var(--muted);line-height:1.5}
.home-drop-status{display:grid;gap:4px}.home-drop-status strong{font-family:"Playfair Display",serif;font-size:24px}.home-drop-status span{font-size:10px;color:var(--muted);line-height:1.45}
.retailer-compare-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.retailer-compare-head>div{display:grid;gap:3px}.retailer-compare-head b{font-size:11px}.retailer-compare-head span{font-size:9px;color:var(--muted);line-height:1.35}.retailer-count{white-space:nowrap;border:1px solid var(--line);background:var(--soft);padding:5px 7px;border-radius:999px;font-size:8px;font-weight:900;color:var(--accent)}
.offer-provider{display:inline-flex;align-items:center;gap:5px;font-size:8px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);margin-bottom:3px}.offer-best{display:inline-flex;margin-left:5px;padding:2px 5px;border-radius:999px;background:rgba(84,115,68,.13);color:#557344;font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.offer-match{display:inline-flex;margin-left:5px;padding:2px 5px;border-radius:999px;border:1px solid var(--line);background:var(--soft);color:var(--muted);font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.offer-match.match-exact{background:rgba(84,115,68,.11);color:#557344}.offer-match.match-strong{background:rgba(197,132,75,.10);color:var(--accent)}
.retailer-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.retailer-links a{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:var(--soft);border-radius:10px;padding:7px 9px;color:var(--ink);font-size:9px;font-weight:850;text-decoration:none}.retailer-links a:hover{border-color:var(--accent)}
.compare-disclaimer{margin-top:9px;color:var(--muted);font-size:8px;line-height:1.45}
@media(max-width:850px){.home-personalized-grid{grid-template-columns:1fr}.home-memory-card{min-height:0}.home-personalized-head{align-items:flex-start;flex-direction:column}}


/* v0.9.6.4 — purchase memory + expandable recommendation set */
.past-gifts-panel{margin:12px 0;border:1px solid var(--line);border-radius:14px;background:var(--soft);overflow:hidden}
.past-gifts-panel summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;cursor:pointer;font-size:10px;font-weight:900;list-style:none}
.past-gifts-panel summary::-webkit-details-marker{display:none}.past-gifts-panel summary b{min-width:24px;text-align:center;padding:3px 7px;border-radius:999px;background:var(--panel);border:1px solid var(--line)}
.past-gift-list{display:grid;border-top:1px solid var(--line)}.past-gift-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line)}
.past-gift-row:last-child{border-bottom:0}.past-gift-row>div{display:grid;gap:2px;min-width:0}.past-gift-row b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.past-gift-row small,.past-gifts-panel>small,.past-gifts-empty{font-size:9px;color:var(--muted);line-height:1.45}
.past-gifts-panel>small,.past-gifts-empty{display:block;padding:0 12px 11px;margin:0}.past-gift-remove{border:0;background:transparent;color:var(--muted);font-size:9px;font-weight:800;cursor:pointer}.past-gift-remove:hover{color:#b34e4e}
.bought-gift-btn{margin-top:7px}.bought-gift-btn.saved{border-color:rgba(87,145,91,.35);color:#5b955d;background:rgba(87,145,91,.08)}
.more-gift-ideas-wrap{display:flex;justify-content:center;margin:18px 0 8px}.more-gift-ideas{min-width:220px}
@media(max-width:720px){.past-gift-row{align-items:flex-start}.product-actions .bought-gift-btn{width:100%}}


/* v0.9.7.3 — current-search focus and retailer-neutral CTA */
.session-focus-note{display:none;margin:0 0 18px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.025);gap:6px;flex-direction:column}
.saved-person-gift .session-focus-note{display:flex}
.session-focus-note b{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.session-focus-note span{font-size:13px;line-height:1.5;color:var(--muted)}
.current-focus-box{margin-top:14px;padding:14px 16px;border:1px solid rgba(255,170,124,.22);border-radius:16px;background:rgba(255,150,95,.045)}
.current-focus-label{display:block;margin-bottom:9px;font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--accent)}
.current-focus-tags span{border-color:rgba(255,170,124,.3);background:rgba(255,170,124,.06)}
.product-actions .compare-btn.primary{min-width:190px}


/* v0.9.7.3 — Curated Trending Gifts */
.trends-screen{max-width:1180px;margin:0 auto;padding-top:34px}.trends-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg,var(--panel),var(--soft));margin:18px 0 24px}.trends-hero h2{font-family:"Playfair Display",serif;font-size:clamp(38px,6vw,68px);line-height:.98;margin:8px 0 14px}.trends-hero p{max-width:760px;color:var(--muted);font-size:17px;line-height:1.6}.trend-fire{font-size:72px;filter:drop-shadow(0 12px 24px rgba(0,0,0,.18))}.trends-state{padding:24px;border:1px dashed var(--line);border-radius:18px;color:var(--muted);text-align:center}.trends-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.trend-card{background:var(--panel);border:1px solid var(--line);border-radius:24px;overflow:hidden;min-width:0}.trend-media{height:230px;background:var(--soft);position:relative;overflow:hidden}.trend-media img{width:100%;height:100%;object-fit:cover;display:block}.trend-image-fallback{height:100%;display:grid;place-items:center;font-size:68px}.trend-featured{position:absolute;left:14px;top:14px;background:var(--ink);color:var(--bg);border-radius:999px;padding:7px 10px;font-size:10px;font-weight:900;letter-spacing:.1em}.trend-body{padding:18px}.trend-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;text-transform:uppercase;letter-spacing:.09em;font-size:10px;color:var(--muted)}.trend-card-top b{color:var(--accent)}.trend-card h3{font-family:"Playfair Display",serif;font-size:26px;line-height:1.05;margin:12px 0}.trend-reason{color:var(--muted);line-height:1.5}.trend-reason small{display:block;color:var(--accent);font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.trend-source{display:inline-block;color:var(--muted);font-size:11px;margin:4px 0 10px;text-decoration:none}.trend-tags{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 14px}.trend-tags span{border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-size:10px}.trend-retailers{display:grid;gap:7px;margin:12px 0}.trend-retailer-link{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px 11px;color:var(--ink);text-decoration:none;background:var(--soft)}.trend-retailer-link span{color:var(--muted);font-size:10px}.trend-compare{width:100%;margin-top:8px}.trend-deal{margin-top:10px}.trend-deal[hidden]{display:none}@media(max-width:920px){.trends-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.trends-screen{padding-top:14px}.trends-hero{padding:20px;align-items:flex-start}.trend-fire{font-size:44px}.trends-grid{grid-template-columns:1fr}.trend-media{height:210px}}

/* v0.9.7.3 — navigation clarity + reliable screen state */
.mode-link{position:relative;transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}
.mode-link.active{
  color:var(--ink);
  background:var(--panel);
  box-shadow:0 0 0 1px var(--line),0 0 18px color-mix(in srgb,var(--accent) 18%,transparent);
}
.mode-link.active::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:2px;
  width:16px;
  height:2px;
  border-radius:999px;
  transform:translateX(-50%);
  background:var(--accent);
  box-shadow:0 0 10px color-mix(in srgb,var(--accent) 55%,transparent);
}
.back-link{text-decoration:none;display:inline-flex;align-items:center}
body.dark .mode-link.active{background:rgba(255,255,255,.06)}


/* v0.9.7.7 — instant Trends navigation + visible live-price winner */
.trend-price-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 10px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,var(--soft),transparent)}
.trend-price-main{display:grid;gap:2px;min-width:0}.trend-price-main span{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:850}.trend-price-main strong{font-family:"Playfair Display",serif;font-size:18px;line-height:1.1;color:var(--ink)}
.trend-price-note{max-width:52%;text-align:right;color:var(--muted);font-size:9px;line-height:1.35}.trend-price-summary.best{border-color:rgba(84,115,68,.38);background:rgba(84,115,68,.07)}.trend-price-summary.best .trend-price-note{color:#547344;font-weight:850}.trend-price-summary.unavailable{opacity:.74}
body.dark .trend-price-summary.best{border-color:rgba(147,223,170,.28);background:rgba(147,223,170,.055)}body.dark .trend-price-summary.best .trend-price-note{color:#a6ddb4}
@media(max-width:620px){.trend-price-summary{align-items:flex-start}.trend-price-note{max-width:48%}}

/* GiftDNA brand icon patch */
.brand{display:flex;align-items:center;gap:10px;line-height:1}
.brand-mark-logo{width:42px!important;height:42px!important;min-width:42px;min-height:42px;display:flex!important;align-items:center;justify-content:center;background:transparent!important;color:transparent!important;overflow:visible;border-radius:10px;box-shadow:none;flex:0 0 42px;}
.brand-mark-logo img{width:42px;height:42px;display:block;object-fit:contain;object-position:center center;filter:drop-shadow(0 3px 9px rgba(201,123,72,.18));transform:translateY(0);}
@media(max-width:720px){.brand-mark-logo{width:38px!important;height:38px!important;min-width:38px;min-height:38px;flex-basis:38px;}.brand-mark-logo img{width:38px;height:38px;}}
body.dark .brand-mark-logo{background:transparent!important;color:transparent!important;}


/* Play Store compliance: privacy links + account deletion */
.settings-policy-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.settings-policy-links a,.footer-policy-links a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.account-danger-zone{border:1px solid rgba(190,67,67,.28);border-radius:18px;padding:16px;background:rgba(190,67,67,.035)}
.danger-row{align-items:center}
.danger-action{border:1px solid rgba(202,75,75,.45);background:rgba(202,75,75,.12);color:#d86565;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer}
.danger-action:hover{background:rgba(202,75,75,.18)}
.danger-action:disabled{opacity:.45;cursor:not-allowed}
.delete-account-modal[hidden]{display:none!important}
.delete-account-modal{position:fixed;inset:0;z-index:180;display:grid;place-items:center;padding:20px}
.delete-account-backdrop{position:absolute;inset:0;background:rgba(8,7,6,.72);backdrop-filter:blur(7px)}
.delete-account-card{position:relative;width:min(540px,100%);max-height:min(760px,90vh);overflow:auto;border:1px solid var(--border);border-radius:24px;background:var(--card);box-shadow:0 28px 90px rgba(0,0,0,.34);padding:26px}
.delete-account-card h2{margin:7px 0 10px}
.delete-account-card p{line-height:1.55}
.delete-account-kicker{text-transform:uppercase;letter-spacing:.13em;font-size:.73rem;font-weight:900;color:#d86565}
.delete-account-warning{border-left:3px solid #d86565;padding-left:12px}
.delete-account-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.footer-policy-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:7px}
@media(max-width:620px){
  .danger-row{align-items:flex-start;gap:12px}
  .danger-row .danger-action{width:100%}
  .delete-account-actions{flex-direction:column-reverse}
  .delete-account-actions button{width:100%}
}

/* v0.9.8.4 mobile header full-bleed fit */
@media(max-width:768px){.app-shell{width:100%;max-width:none;padding-inline:16px}.topbar{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));border-bottom:1px solid var(--line);border-radius:0}.hero-screen{padding-top:34px}}


/* v0.9.8.5 — mobile polish + Play-ready responsive pass */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{overflow-x:hidden}
button,a,input,select,textarea{touch-action:manipulation}
button,a{-webkit-tap-highlight-color:transparent}

@media(max-width:768px){
  body{padding-bottom:calc(86px + env(safe-area-inset-bottom))}
  .app-shell{width:100%;max-width:none;padding-inline:16px;padding-bottom:28px}
  .topbar{
    min-height:68px;height:auto;flex-wrap:nowrap;gap:8px;
    margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
    padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));
    padding-top:max(10px,env(safe-area-inset-top));padding-bottom:10px;
    border-bottom:1px solid var(--line);border-radius:0;
    background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)
  }
  .brand{min-width:0;flex:0 1 auto;font-size:17px;gap:8px;white-space:nowrap}
  .brand>span:last-child{overflow:hidden;text-overflow:ellipsis}
  .brand-mark-logo,.brand-mark-logo img{width:36px!important;height:36px!important;min-width:36px;min-height:36px}
  .brand-mark-logo{flex-basis:36px}
  .top-actions{min-width:0;margin-left:auto;gap:6px;flex:0 1 auto}
  .account-button{min-width:0;max-width:112px;min-height:42px;padding:9px 11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sound-toggle,.theme-toggle{width:42px;height:42px;min-width:42px;min-height:42px;border-radius:13px}

  .screen{scroll-margin-top:80px}
  .hero-screen{padding-top:34px;padding-bottom:44px}
  .hero-screen h1{font-size:clamp(46px,14vw,66px);line-height:.97;letter-spacing:-.045em}
  .eyebrow{font-size:11px;line-height:1.45;letter-spacing:.15em;margin-bottom:13px}
  .hero-copy{font-size:17px;line-height:1.55;margin:22px auto;max-width:620px}
  .hero-pills{gap:8px}
  .hero-pills span{font-size:12px;line-height:1.25;padding:9px 11px}
  .hero-actions{gap:10px}
  .primary,.ghost{min-height:44px}
  .primary.big,.ghost.big{min-height:52px;margin-top:18px;padding:15px 18px;font-size:16px}
  .micro{line-height:1.5}

  #formScreen,#resultsScreen,.people-screen,.calendar-screen,.trends-screen,.surprise-screen,.surprise-setup-screen{padding-bottom:96px}
  #formScreen{padding-top:18px}
  .form-head h2,.taste-card h2,.section-title-row h2{font-size:clamp(30px,9vw,38px)}
  .field{font-size:13px}
  .field input,.field select,.field textarea,.auth-form input,.auth-form select,.register-wizard input,.register-wizard select,.google-finish-step select{font-size:16px;min-height:48px}
  .field textarea{min-height:120px;resize:vertical}
  .grid.two{grid-template-columns:1fr}
  .progress{margin-bottom:22px}
  .back-link{min-height:44px;margin-bottom:18px;padding:8px 0}
  .results-top{gap:10px;align-items:center}
  .results-top>.primary,.results-top>.ghost{min-height:44px}

  .preview-card,.surprise-preview,.taste-card,.feedback-card,.person-card,.trends-hero,.trend-card,.calendar-date-editor,.year-month-card,.home-personalized,.upcoming-memory,.surprise-form-card,.surprise-reveal{border-radius:20px}
  .preview-card,.surprise-preview{padding:20px}
  .preview-title{font-size:27px}

  .people-screen{padding-top:14px}
  .people-head{margin:22px auto 24px}
  .people-head h2{font-size:clamp(34px,10vw,46px)}
  .people-head p{font-size:14px;line-height:1.55}
  .people-grid{gap:14px}
  .person-card{padding:16px}
  .person-card h3{font-size:24px}
  .person-tags{margin:14px 0}
  .person-tags span{font-size:11px;padding:7px 9px}
  .person-meta{gap:10px}
  .person-meta small{font-size:9px}
  .person-meta b{font-size:12px}
  .person-actions{gap:8px}
  .person-actions button,.person-learning-toggle,.past-gifts-toggle,.calendar-event-main,.calendar-event-gift{min-height:44px}

  .calendar-head{gap:16px;margin-top:16px}
  .calendar-head h2{font-size:clamp(32px,9vw,40px)}
  .calendar-head p{font-size:13px}
  .calendar-year-controls{min-height:48px}
  .year-calendar-grid{gap:12px}
  .year-month-card{padding:14px}
  .calendar-event-main{grid-template-columns:40px 1fr;padding:8px}
  .calendar-day{min-height:38px}

  .trends-hero{padding:18px;margin:16px 0 20px}
  .trends-hero h2{font-size:clamp(36px,11vw,52px)}
  .trends-hero p{font-size:14px;line-height:1.55}
  .trend-fire{font-size:40px}
  .trend-body{padding:16px}
  .trend-card h3{font-size:24px}
  .trend-retailer-link{min-height:46px}

  .surprise-form-card{padding:18px}
  .surprise-drop-head{padding:22px 8px 18px}
  .surprise-drop-head h2{font-size:clamp(38px,11vw,54px)}
  .mystery-grid{gap:14px}
  .mystery-box{min-height:175px;border-radius:22px}
  .surprise-reveal{padding:20px}
  .reveal-copy h2{font-size:32px}

  .auth-modal{padding:0;align-items:end}
  .auth-card{
    width:100%;max-height:calc(100dvh - max(12px,env(safe-area-inset-top)));
    overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
    border-radius:24px 24px 0 0;padding:22px 18px calc(24px + env(safe-area-inset-bottom))
  }
  .auth-close{min-width:44px;min-height:44px}
  .profile-tabs{position:sticky;top:0;z-index:2}
  .settings-row{gap:10px;padding:13px}
  .settings-row select,.settings-switch{min-height:44px}

  .delete-account-modal{padding:max(14px,env(safe-area-inset-top)) 14px calc(14px + env(safe-area-inset-bottom))}
  .delete-account-card{max-height:calc(100dvh - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:20px;border-radius:20px}

  .mobile-bottom-nav{
    left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));
    bottom:calc(8px + env(safe-area-inset-bottom));height:64px;min-height:64px;padding:5px;
    border-radius:20px;background:color-mix(in srgb,var(--panel) 96%,transparent);
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    box-shadow:0 12px 34px rgba(0,0,0,.14)
  }
  .mobile-bottom-nav button{min-width:0;min-height:52px;padding:3px 1px;gap:2px}
  .mobile-bottom-nav button span{font-size:18px}
  .mobile-bottom-nav button small{font-size:9px;line-height:1.05;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mobile-bottom-nav button.active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line) 80%,transparent)}

  footer{padding:18px 12px 22px;line-height:1.5}
}

@media(max-width:480px){
  .app-shell{padding-inline:14px}
  .topbar{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
  .brand{font-size:16px;gap:7px}
  .brand-mark-logo,.brand-mark-logo img{width:34px!important;height:34px!important;min-width:34px;min-height:34px}
  .brand-mark-logo{flex-basis:34px}
  .top-actions{gap:5px}
  .account-button{max-width:96px;padding-inline:9px;font-size:14px}
  .sound-toggle,.theme-toggle{width:40px;height:40px;min-width:40px;min-height:40px}
  .hero-screen{padding-top:30px}
  .hero-screen h1{font-size:clamp(44px,14vw,60px)}
  .hero-copy{font-size:16px}
  .hero-pills span{font-size:11px}
  .results-top{align-items:stretch}
  .results-top>.primary{padding-inline:12px}
  .people-add-btn{padding-inline:13px}
  .person-card-top{grid-template-columns:44px minmax(0,1fr)}
  .person-avatar{width:44px;height:44px}
  .trend-price-summary{flex-direction:column;gap:6px}
  .trend-price-note{max-width:none;text-align:left}
  .mobile-bottom-nav{left:6px;right:6px}
}

@media(max-width:360px){
  .topbar{gap:5px}
  .brand>span:last-child{max-width:66px}
  .account-button{max-width:82px;font-size:13px}
  .sound-toggle,.theme-toggle{width:38px;height:38px;min-width:38px;min-height:38px}
  .hero-screen h1{font-size:42px}
  .mobile-bottom-nav button small{font-size:8px}
}

@media(hover:none) and (pointer:coarse){
  .primary:hover,.ghost:hover,.theme-toggle:hover,.mystery-box:hover:not(:disabled){transform:none}
}


/* v0.9.8.6 — compact mobile recommendation results */
@media(max-width:600px){
  #resultsScreen{padding-top:12px;padding-bottom:92px}
  #resultsScreen .taste-card{padding:20px;margin:8px 0 28px}
  #resultsScreen .taste-card h2{font-size:30px}
  #resultsScreen .taste-card p{font-size:14px;line-height:1.48}

  .dna-pick-wrap{margin-bottom:28px}
  .dna-title-row{margin-bottom:11px;gap:9px;align-items:center;flex-direction:row}
  .dna-title-row>div{min-width:0}
  .dna-title-row .eyebrow{font-size:9px;margin-bottom:5px;letter-spacing:.13em}
  .dna-title-row h2{font-size:30px;line-height:1;white-space:nowrap}
  .dna-badge{max-width:46%;white-space:normal;text-align:center;font-size:9px;line-height:1.2;padding:7px 9px}

  .dna-pick-card{border-radius:20px}
  .dna-art{min-height:78px;height:78px;font-size:42px;border-bottom:1px solid var(--line)}
  .real-product-card .dna-art{font-size:44px}
  .dna-body{padding:15px 16px 16px}
  .dna-head{gap:10px;align-items:flex-start}
  .dna-head>div:first-child{min-width:0;flex:1}
  .dna-kicker{font-size:9px;line-height:1.3;letter-spacing:.1em}
  .dna-pick-card h3{font-size:23px;line-height:1.02;margin:7px 0 6px}
  .product-brand{font-size:9px;line-height:1.3;letter-spacing:.09em;overflow-wrap:anywhere}
  .dna-score{flex:0 0 auto;min-width:46px}
  .dna-score strong{font-size:27px}
  .dna-score small{font-size:7px;margin-top:4px}

  .fit-signals{gap:5px;margin:10px 0 11px}
  .fit-signals span{gap:4px;padding:6px 7px;font-size:9px}
  .fit-signals span b{font-size:9px}
  .fit-signals span em{font-size:9px}

  .why-block{margin:2px 0 11px;padding:10px 11px;border-radius:13px}
  .why-block>span,.why-mini>span,.matches-label{font-size:8.5px;letter-spacing:.1em;margin-bottom:5px}
  .why-block p{font-size:12.5px;line-height:1.42}
  .real-product-card .why-block p{-webkit-line-clamp:2}
  .matches-label{margin-top:0;margin-bottom:5px}
  .trait-blend{gap:5px;margin-bottom:12px}
  .trait-blend span{font-size:9px;padding:5px 7px}
  .dna-foot{gap:10px;padding-top:1px}
  .reference-price{font-size:12px}
  .price-note{font-size:8.5px;line-height:1.35}
  .product-actions{gap:7px}
  .product-actions .compare-btn.primary{min-width:0;min-height:44px;padding:11px 13px}

  #resultsScreen>.section-title-row{gap:8px;margin-bottom:13px}
  #resultsScreen>.section-title-row .eyebrow{font-size:9px;margin-bottom:6px}
  #resultsScreen>.section-title-row h2{font-size:27px;line-height:1.04}
  #resultsScreen .budget-chip{font-size:10px;padding:7px 9px;white-space:normal}
  .gift-grid{gap:12px}
  .gift-card{border-radius:18px}
  .gift-art{height:82px;font-size:38px}
  .real-product-card .gift-art{font-size:42px}
  .gift-body{padding:14px}
  .gift-card h3{font-size:18px;line-height:1.12;margin:10px 0 6px}
  .gift-card p,.why-mini p{font-size:12px!important;line-height:1.42!important;margin-bottom:11px}
  .reason-list{gap:5px;margin-bottom:12px}
  .reason-list span{font-size:9px;padding:5px 7px}
  .gift-card .fit-signals.compact{margin:4px 0 10px}
  .gift-card .match-feedback{margin-top:8px}
  .feedback-card{margin-top:24px;padding:18px}
}

@media(max-width:380px){
  .dna-title-row h2{font-size:27px}
  .dna-badge{font-size:8px;padding:6px 7px}
  .dna-pick-card h3{font-size:21px}
  .dna-score strong{font-size:25px}
}


/* v0.9.8.7 — compact Trends region chip on mobile */
@media(max-width:600px){
  .trends-screen>.results-top{align-items:center;gap:12px}
  .trends-screen>.results-top .back-link{margin-bottom:0;min-height:auto;padding:8px 0;line-height:1.2}
  .trends-screen>.results-top #trendsRegion{
    align-self:center;
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    height:auto;
    max-width:52vw;
    padding:8px 11px;
    border-radius:16px;
    font-size:12px;
    line-height:1.1;
    white-space:nowrap;
  }
}
@media(max-width:380px){
  .trends-screen>.results-top #trendsRegion{min-height:36px;padding:7px 9px;font-size:11px;max-width:50vw}
}


/* v0.9.9.6 — profile/settings header + dense mobile Trends catalog */
.profile-tabs{margin-right:52px;min-height:44px;align-items:stretch}
.auth-close{top:22px;right:18px;z-index:5}
.settings-back{display:none!important}
.trend-details-toggle{display:none}
@media(max-width:620px){
  .auth-card{padding-top:20px}
  .profile-tabs{position:sticky;top:0;z-index:4;margin:0 52px 18px 0;min-height:44px}
  .auth-close{position:absolute;top:20px;right:18px;width:44px;height:44px;border-radius:13px}
  .settings-head{padding-top:2px}
  .trends-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .trend-card{border-radius:16px;align-self:start}
  .trend-media{height:112px}
  .trend-featured{left:8px;top:8px;padding:5px 7px;font-size:8px}
  .trend-body{padding:10px}
  .trend-card-top{font-size:8px;gap:5px;min-height:18px}
  .trend-card-top b{display:none}
  .trend-card h3{font-size:15px;line-height:1.12;margin:6px 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:34px}
  .trend-details-toggle{display:flex;width:100%;min-height:34px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--ink);font:800 10px/1.1 inherit;cursor:pointer;padding:7px 8px}
  .trend-details{display:none}
  .trend-card.expanded{grid-column:1/-1;border-radius:20px}
  .trend-card.expanded .trend-media{height:190px}
  .trend-card.expanded .trend-body{padding:14px}
  .trend-card.expanded .trend-card-top{font-size:10px}
  .trend-card.expanded .trend-card-top b{display:block}
  .trend-card.expanded h3{font-size:22px;min-height:0;-webkit-line-clamp:unset;overflow:visible;margin:8px 0 10px}
  .trend-card.expanded .trend-details{display:block}
  .trend-card.expanded .trend-details-toggle{margin-bottom:10px}
  .trend-card.expanded .trend-reason{font-size:12px;line-height:1.45}
  .trend-card.expanded .trend-tags span:nth-child(n+4){display:inline-flex}
}

.trend-filter-bar{display:grid;grid-template-columns:auto repeat(5,minmax(120px,1fr)) auto;gap:10px;align-items:end;margin:0 0 18px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.trend-filter-heading{font-weight:900;align-self:center;padding:0 4px}.trend-filter-bar label{display:grid;gap:5px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.trend-filter-bar select{width:100%;border:1px solid var(--line);background:var(--soft);color:var(--ink);border-radius:12px;padding:10px 11px}.trend-filter-bar .ghost{height:40px}.trends-filter-empty{grid-column:1/-1;padding:28px;border:1px dashed var(--line);border-radius:18px;color:var(--muted);text-align:center}.trend-reference-price{display:inline-flex;margin:0 0 8px;color:var(--muted);font-size:11px;font-weight:800}.trend-sponsored{position:absolute;right:12px;bottom:12px;background:rgba(20,17,15,.88);color:#fff;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.trend-sponsor-link{display:flex;justify-content:center;text-decoration:none;margin-top:8px}@media(max-width:900px){.trend-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.trend-filter-heading{grid-column:1/-1}.trend-filter-bar .ghost{width:100%}}@media(max-width:520px){.trend-filter-bar{grid-template-columns:1fr 1fr;gap:8px;padding:10px}.trend-filter-bar label{font-size:9px}.trend-filter-bar select{padding:9px 8px;font-size:12px}}

.giftdna-choice{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 12px;padding:12px 14px;border:1px solid rgba(197,132,75,.35);border-radius:16px;background:linear-gradient(135deg,rgba(197,132,75,.13),rgba(255,255,255,.025))}.giftdna-choice>div:first-child{display:grid;gap:3px}.giftdna-choice span{font-size:8px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.giftdna-choice b{font-size:14px}.giftdna-choice small{font-size:9px;color:var(--muted);line-height:1.35}.giftdna-choice-price{display:grid;justify-items:end;gap:4px;min-width:150px}.giftdna-choice-price strong{font-size:19px}.giftdna-choice-price a{display:inline-flex;padding:7px 10px;border-radius:10px;background:var(--text);color:var(--bg);font-size:9px;font-weight:900;text-decoration:none}.giftdna-choice-price small{text-align:right}@media(max-width:680px){.giftdna-choice{align-items:stretch;flex-direction:column}.giftdna-choice-price{justify-items:start;min-width:0}.giftdna-choice-price small{text-align:left}}

/* v0.9.11.3 — launch Trends catalog polish
   Keep GiftDNA's dark visual language while making product photography read like a clean retail catalog. */
@media (min-width:1100px){
  .trends-screen{max-width:1360px}
  .trends-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
}
@media (min-width:621px){
  .trend-card{border-radius:20px;display:flex;flex-direction:column;min-height:100%}
  .trend-media{height:215px;background:#f7f5f2;padding:10px}
  .trend-media img{width:100%;height:100%;object-fit:contain;object-position:center;border-radius:12px}
  .trend-body{padding:15px 16px 16px;display:flex;flex-direction:column;flex:1}
  .trend-card h3{font-size:22px;line-height:1.08;margin:9px 0 8px}
  .trend-details{display:flex;flex-direction:column;flex:1}
  .trend-reason{font-size:13px;line-height:1.45;margin:6px 0 8px}
  .trend-reason small{font-size:9px;margin-bottom:4px}
  .trend-tags{margin:7px 0 10px}
  .trend-tags span{padding:4px 7px;font-size:9px}
  .trend-retailers{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:auto;margin-bottom:0}
  .trend-retailer-link{min-height:40px;padding:9px 10px;justify-content:center;text-align:center;background:transparent}
  .trend-retailer-link b{font-size:11px}
  .trend-retailer-link span{display:none}
  .trend-featured{left:12px;top:12px;background:rgba(247,245,242,.94);color:#1f1915;border:1px solid rgba(31,25,21,.08);box-shadow:0 4px 14px rgba(0,0,0,.08)}
  .trend-sponsored{right:12px;bottom:12px}
}
@media (min-width:621px) and (max-width:1099px){
  .trends-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:620px){
  .trend-media{background:#f7f5f2;padding:7px}
  .trend-media img{object-fit:contain;object-position:center;border-radius:9px}
  .trend-card.expanded .trend-media{height:210px}
}
