:root{--paper:#f4eee3;--paper-raised:#fffcf6;--ink:#1e1512;--muted:#8c7c6c;--rule:#e6d8c1;--wine:#6d1424;--wine-deep:#3b0b14;--wine-tint:#f3e3e2;--gold:#a6813c;--gold-deep:#8a6a2c;--gold-tint:#efe3c7;--good:#3f6b4a;--warn:#b3701f;--font-display:"Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-body:-apple-system, BlinkMacSystemFont, "PingFang SC", "Segoe UI", Helvetica, Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius:8px;--shadow-card:0 1px 0 #1e151208, 0 14px 32px #1e151212}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0;font-weight:600;line-height:1.2}h1{font-size:1.75rem}h2{font-size:1.3rem}h3{font-size:1.05rem}p{margin:0}a{color:inherit}button{font-family:var(--font-body);cursor:pointer}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-size:.7rem;font-weight:700}.title-rule{background:var(--gold);width:30px;height:2px;margin:var(--space-3) 0 0;border:none}.wine-name{font-family:var(--font-display);font-style:italic}.app-shell{max-width:640px;min-height:100%;padding:var(--space-5) var(--space-4) var(--space-7);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.card{background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:var(--space-4)}.btn{justify-content:center;align-items:center;gap:var(--space-2);letter-spacing:.01em;border:none;border-radius:999px;padding:13px 22px;font-size:.95rem;font-weight:600;transition:transform .1s,opacity .1s;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--wine);color:#fff8f4}.btn-primary:disabled{background:var(--rule);color:var(--muted);cursor:not-allowed}.btn-secondary{color:var(--wine);border:1px solid var(--wine);background:0 0}.btn-block{width:100%}.field-label{color:var(--muted);margin-bottom:var(--space-1);font-size:.8rem;font-weight:600;display:block}input:not([type=radio]):not([type=checkbox]),textarea,select{width:100%;font-family:var(--font-body);color:var(--ink);background:var(--paper-raised);border:1px solid var(--rule);border-radius:8px;padding:10px 12px;font-size:1rem}input[type=radio],input[type=checkbox]{width:16px;height:16px;accent-color:var(--wine);flex-shrink:0}input:focus,textarea:focus,select:focus{outline:2px solid var(--wine);outline-offset:1px}input[type=range]{appearance:none;border-radius:999px;outline:none;width:100%;height:2px}input[type=range]::-webkit-slider-runnable-track{background:0 0;border-radius:999px;height:2px}input[type=range]::-moz-range-track{background:0 0;border-radius:999px;height:2px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--paper-raised);border:2px solid var(--range-thumb,var(--wine));cursor:pointer;border-radius:50%;width:20px;height:20px;margin-top:-9px;transition:transform .12s;box-shadow:0 1px 4px #1e15124d}input[type=range]::-moz-range-thumb{background:var(--paper-raised);border:2px solid var(--range-thumb,var(--wine));cursor:pointer;border-radius:50%;width:20px;height:20px;box-shadow:0 1px 4px #1e15124d}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.1)}.tabular{font-variant-numeric:tabular-nums}.divider{background:var(--rule);border:none;height:1px;margin:0}.badge{letter-spacing:.03em;border-radius:999px;align-items:center;padding:2px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.badge-wine{background:var(--wine-tint);color:var(--wine-deep)}.badge-gold{background:var(--gold-tint);color:var(--gold-deep)}.badge-muted{background:var(--rule);color:var(--muted)}.scroll-x{overflow-x:auto}.section-title{letter-spacing:.01em;color:var(--gold-deep);font-size:.95rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.22s fadeIn}@media (prefers-reduced-motion:reduce){.fade-in{animation:none}}@keyframes floatUpFade{0%{opacity:0;transform:translateY(0)scale(.5)rotate(0)}15%{opacity:1;transform:translateY(-8px)scale(1.15)rotate(-8deg)}to{opacity:0;transform:translateY(-72px)scale(1)rotate(10deg)}}.emoji-burst{pointer-events:none;will-change:transform, opacity;font-size:1.6rem;line-height:1;animation:1.1s ease-out forwards floatUpFade;position:absolute}@media (prefers-reduced-motion:reduce){.emoji-burst{display:none}}
