:root { --ink:#101718; --ink-soft:#1b282a; --paper:#f5f1e8; --cream:#fffdf8; --lime:#d8ef58; --lime-deep:#b7d531; --muted:#62706d; --line:rgba(16,23,24,.14); --radius:24px; }
* { box-sizing:border-box; }
html { background:var(--paper); }
body { min-width:320px; margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans",sans-serif; }
button,input,select { font:inherit; }
.page-shell { display:grid; grid-template-columns:minmax(280px,.75fr) minmax(520px,1.25fr); min-height:100vh; }
.intro { display:flex; flex-direction:column; justify-content:center; padding:clamp(40px,8vw,112px); color:var(--cream); background:var(--ink); }
.home-link { align-self:flex-start; display:inline-flex; gap:9px; align-items:center; padding:9px 13px; border:1px solid rgba(255,255,255,.24); border-radius:999px; color:inherit; font-family:"Space Grotesk",sans-serif; font-size:.82rem; font-weight:700; letter-spacing:.04em; text-decoration:none; }
.home-link span { color:var(--lime); }
.eyebrow { margin:0 0 14px; color:var(--lime-deep); font-family:"Space Grotesk",sans-serif; font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.intro .eyebrow { margin-top:auto; }
h1,h2 { font-family:"Space Grotesk",sans-serif; letter-spacing:-.055em; }
h1 { max-width:580px; margin:0; font-size:clamp(3.2rem,6.2vw,6rem); line-height:.94; }
h2 { margin:0; font-size:clamp(1.7rem,3vw,2.4rem); line-height:1; }
.intro-copy { max-width:500px; margin:28px 0 0; color:#d2dbd5; font-size:1.13rem; line-height:1.6; }
.note { max-width:470px; margin:28px 0 0; color:#aab7b1; font-size:.82rem; line-height:1.55; }
.calculator-card { align-self:center; width:min(100%,760px); margin:clamp(22px,5vw,76px) auto; padding:clamp(26px,5vw,52px); border:1px solid var(--line); border-radius:var(--radius); background:var(--cream); box-shadow:0 24px 70px rgba(21,35,30,.12); }
.card-heading,.result-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:32px; }
.card-heading .eyebrow,.result-heading .eyebrow { margin-bottom:8px; color:var(--muted); }
.step { display:grid; place-items:center; flex:0 0 40px; width:40px; height:40px; border-radius:50%; color:var(--ink); background:var(--lime); font-family:"Space Grotesk",sans-serif; font-size:.85rem; font-weight:700; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.field { display:grid; gap:8px; color:var(--ink-soft); font-size:.87rem; font-weight:700; }
.field-wide { grid-column:span 2; }
input,select { width:100%; min-height:52px; padding:0 14px; border:1px solid var(--line); border-radius:12px; outline:0; color:var(--ink); background:#fff; font-size:1rem; transition:border-color .2s ease,box-shadow .2s ease; }
input::placeholder { color:#9ca6a2; }
input:focus,select:focus { border-color:var(--ink); box-shadow:0 0 0 3px rgba(216,239,88,.62); }
.split-inputs { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.unit-input { position:relative; display:block; }
.unit-input input { padding-right:72px; }
.unit-input > span { position:absolute; top:50%; right:14px; color:var(--muted); font-size:.82rem; font-weight:700; pointer-events:none; transform:translateY(-50%); }
.calculate-button { display:flex; align-items:center; justify-content:space-between; width:100%; margin-top:28px; padding:17px 20px; border:0; border-radius:14px; cursor:pointer; color:var(--ink); background:var(--lime); font-family:"Space Grotesk",sans-serif; font-size:1rem; font-weight:700; transition:background .2s ease,transform .2s ease; }
.calculate-button:hover { background:#e5f77b; transform:translateY(-1px); }
.calculate-button:focus-visible,.home-link:focus-visible { outline:3px solid var(--lime); outline-offset:3px; }
.form-error { margin:14px 0 0; color:#a72d22; font-size:.9rem; font-weight:600; }
.result { margin-top:42px; padding-top:36px; border-top:1px solid var(--line); }
.calorie-result { display:grid; grid-template-columns:auto 1fr auto; align-items:baseline; gap:12px; padding:24px; border-radius:18px; color:var(--cream); background:var(--ink); }
.calorie-result span,.calorie-result small { color:#c4d0c9; font-size:.85rem; font-weight:700; }
.calorie-result strong { text-align:right; color:var(--lime); font-family:"Space Grotesk",sans-serif; font-size:clamp(2.1rem,5vw,3.3rem); line-height:.9; letter-spacing:-.06em; }
.macro-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:12px; }
.macro-grid article { padding:18px; border:1px solid var(--line); border-radius:15px; background:#fff; }
.macro-grid span { display:block; color:var(--muted); font-size:.78rem; font-weight:700; }
.macro-grid strong { display:block; margin-top:7px; font-family:"Space Grotesk",sans-serif; font-size:1.5rem; letter-spacing:-.04em; }
.details { margin-top:18px; color:var(--muted); font-size:.9rem; }
.details summary { cursor:pointer; color:var(--ink); font-weight:700; }
.details p { margin:10px 0 0; }
@media (max-width:900px) { .page-shell { grid-template-columns:1fr; } .intro { min-height:480px; } .intro .eyebrow { margin-top:100px; } .calculator-card { margin:0 auto 48px; } }
@media (max-width:560px) { .intro { min-height:410px; padding:32px 24px; } h1 { font-size:3.35rem; } .intro-copy { font-size:1rem; } .calculator-card { margin:0 14px 32px; padding:25px 20px; } .form-grid { grid-template-columns:1fr; } .field-wide { grid-column:auto; } .macro-grid { grid-template-columns:1fr; } .calorie-result { grid-template-columns:1fr auto; } .calorie-result span { grid-column:span 2; } .calorie-result strong { text-align:left; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; } }

