@import "https://fonts.googleapis.com/css2?family=Bungee:wght@400&family=IBM+Plex+Sans:wght@400;500;700&display=swap";:root{--font-body:"IBM Plex Sans", "Segoe UI", sans-serif;--font-display:"Bungee", "Trebuchet MS", sans-serif;color:#1f2c13;font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.4}*{box-sizing:border-box}body{background:radial-gradient(circle at 12% 10%,#9ebf4f59,#0000 30%),radial-gradient(circle at 85% 15%,#67320f4d,#0000 28%),linear-gradient(#2a3e1e 0%,#1a2617 48%,#0f180d 100%);min-height:100vh;margin:0}#root{min-height:100vh}.page-shell{width:min(1180px,100% - 2rem);margin:0 auto;padding:2.4rem 0 2rem}.hero{background:linear-gradient(130deg,#33ad5f,#f6c945 60%,#f58f2b);border:2px solid #2f4f1f;border-radius:20px;padding:1.5rem 1.6rem;animation:.42s ease-out rise-in;box-shadow:0 16px 34px #0003}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:#203313;margin:0;font-size:.75rem;font-weight:700}h1{font-family:var(--font-display);color:#1f2a11;margin:.2rem 0 .6rem;font-size:clamp(2rem,3vw,3rem);line-height:1}.subtitle{color:#213014;max-width:75ch;margin:0;font-size:1.1rem;font-weight:600}.controls{grid-template-columns:repeat(12,minmax(0,1fr));gap:.8rem;margin-top:1.25rem;display:grid}.quick-buttons{flex-wrap:wrap;grid-column:span 12;gap:.55rem;display:flex}.quick-buttons button{color:#1d2a10;font:inherit;cursor:pointer;background:#f0f8d8;border:2px solid #3c5f24;border-radius:999px;padding:.5rem .9rem;font-size:.95rem;font-weight:700}.quick-buttons button.active{background:#ffd161}.field{grid-column:span 4;gap:.35rem;display:grid}.field span{color:#f5ffe4;font-size:.95rem;font-weight:700}.field input,.field select{color:#223012;width:100%;font:inherit;background:#f7fee4;border:2px solid #5f7a47;border-radius:10px;padding:.8rem .9rem}.toggle{color:#f4f8de;grid-column:span 12;align-items:center;gap:.6rem;font-weight:700;display:flex}.toggle input{width:1.1rem;height:1.1rem}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1rem;display:grid}.summary-card{background:linear-gradient(160deg,#f7ffe7,#d7ecab);border:2px solid #90b75d;border-radius:14px;padding:1rem}.summary-card h2{letter-spacing:.06em;text-transform:uppercase;color:#486329;margin:0;font-size:.9rem}.summary-card strong{color:#233411;margin-top:.45rem;font-size:1.45rem;display:block}.surprise-box{color:#1f2c13;background:#f1fbd8;border:2px dashed #82a550;border-radius:14px;flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:1rem;padding:.9rem;display:flex}.surprise-box button{color:#1a2610;font:inherit;cursor:pointer;background:#ffda72;border:2px solid #3f6327;border-radius:999px;padding:.55rem .95rem;font-weight:700}.surprise-box p{margin:0;font-weight:700}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1rem;display:grid}.damage-card{background:linear-gradient(165deg,#f6ffe7 0%,#e7f5ca 100%);border:2px solid #90b75d;border-radius:14px;padding:.9rem;box-shadow:0 8px 18px #16310b29}.card-image{border-radius:12px;width:100%;max-width:112px;height:auto;margin-bottom:.55rem;display:block}.damage-card h3{color:#1e3111;margin:0;font-size:1.2rem}.card-category{color:#30501b;margin:.4rem 0 0;font-size:.9rem;font-weight:700}.card-stat{color:#1f2c13;margin:.35rem 0 0;font-size:1rem;font-weight:700}.heart-meter{flex-wrap:wrap;align-items:center;gap:.3rem;margin:.45rem 0 0;font-weight:700;display:flex}.heart-icons{color:#c1272d;letter-spacing:.02em;font-size:1rem}.heart-extra{color:#4b662f;font-size:.95rem}.card-source{color:#46612f;margin:.45rem 0 0;font-size:.92rem}.empty-state{text-align:center;background:#f8ffea;border:2px dashed #90b75d;border-radius:12px;grid-column:span 3;margin:0;padding:1rem;font-weight:700}.footnote{color:#dceebf;margin-top:.8rem;font-size:.95rem}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (width<=960px){.page-shell{width:calc(100% - 1rem);padding-top:.8rem}.field{grid-column:span 12}.card-grid{grid-template-columns:1fr}.empty-state{grid-column:span 1}.summary-grid{grid-template-columns:1fr}}
