/* QuitSoda */
:root{--bg:#f3efe4;--bg-raised:#faf7ee;--ink:#14110c;--muted:#5c574c;--line:#c9c1b0;--focus:#14110c;--danger:#8b1e12;--ok:#1c3d2e;--slip:#8b1e12;--radius:2px;--max:38rem;--pad:clamp(1.25rem,4vw,2rem);--serif:"Iowan Old Style","Palatino Linotype",Palatino,"Times New Roman",Times,serif;--sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:.15em}
:focus{outline:none}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.skip{position:absolute;left:.75rem;top:-3.5rem;z-index:10;background:var(--ink);color:var(--bg);padding:.5rem .75rem;text-decoration:none;font-size:.875rem}.skip:focus{top:.75rem;outline-color:var(--bg)}
.wrap{width:min(100% - 2 * var(--pad),var(--max));margin-inline:auto}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.15rem 1.3rem}
.mark{margin:0;font-family:var(--serif);font-size:clamp(1.7rem,4.8vw,2.25rem);font-weight:700;letter-spacing:-.03em;line-height:1}
.mark a{text-decoration:none}.mark a:hover{text-decoration:underline}
.mark-meta{margin:0;color:var(--muted);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}
.hero{padding-top:clamp(2.25rem,8vw,4.5rem);padding-bottom:2.5rem}
.eyebrow{margin:0 0 1rem;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
h1{margin:0 0 1rem;font-family:var(--serif);font-size:clamp(2.15rem,8.4vw,3.65rem);font-weight:700;line-height:1.08;letter-spacing:-.03em;text-wrap:balance}
.lede{margin:0 0 1.75rem;font-size:clamp(1.0625rem,2.4vw,1.2rem);max-width:32rem}
.signup{display:grid;gap:.75rem;max-width:32rem}
@media(min-width:540px){.signup{grid-template-columns:1fr auto;align-items:end}.signup .hint,.signup .status{grid-column:1/-1}.signup button{min-width:10.5rem}}
.signup.is-success .field,.signup.is-success button,.signup.is-success .hint{display:none}
.field{display:grid;gap:.35rem}.field label{font-size:.8125rem;font-weight:600;letter-spacing:.02em}
.signup input[type=email]{width:100%;min-height:2.85rem;padding:.65rem .8rem;border:1px solid var(--ink);border-radius:var(--radius);background:var(--bg-raised);color:var(--ink);font:inherit;font-size:1rem}
.signup input[type=email]::placeholder{color:#5c574c}.signup input.is-invalid{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}
.signup button{min-height:2.85rem;padding:.7rem 1rem;border:1px solid var(--ink);border-radius:var(--radius);background:var(--ink);color:var(--bg);font:inherit;font-weight:700;cursor:pointer}
.signup button:hover{background:#2a261f}.signup button:disabled{opacity:.55;cursor:not-allowed}
.hint{margin:0;font-size:.8125rem;color:var(--muted)}
.status{margin:0;min-height:1.25em;font-size:.9375rem}.status.is-error{color:var(--danger)}.status.is-ok{color:var(--ok);font-weight:600}
.signup.is-success{grid-template-columns:1fr;border:1px solid var(--ink);background:var(--bg-raised);padding:1rem 1.05rem;max-width:32rem}
.signup.is-success .status.is-ok{color:var(--ink);font-family:var(--serif);font-size:1.15rem;font-weight:700;line-height:1.35}
.proof{padding-bottom:2.25rem}.proof p{margin:0;padding:1.15rem 0 0;border-top:1px solid var(--line);font-family:var(--serif);font-size:1.2rem;line-height:1.45;max-width:34rem}
.days{padding-bottom:2.75rem}.day-strip{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(15,1fr);gap:.28rem}
@media(min-width:540px){.day-strip{grid-template-columns:repeat(30,1fr)}}
.day-strip li{aspect-ratio:1;min-height:.55rem;background:transparent;border:1px solid var(--line)}
.day-strip li.is-start{background:var(--ink);border-color:var(--ink)}
.day-strip li.is-slip{border-color:var(--slip);background:#f3efe4;box-shadow:inset 0 0 0 1px var(--slip)}
.day-caption{margin:.75rem 0 0;font-size:.875rem;color:var(--muted)}.key{font-weight:700;color:var(--ink)}.key-slip{color:var(--slip)}
.offer{padding-bottom:2.5rem}
.offer h2,.again h2{margin:0 0 1.15rem;font-family:var(--serif);font-size:1.5rem;font-weight:700;letter-spacing:-.02em}
.facts{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.facts li{padding:1rem 0;border-bottom:1px solid var(--line)}
.fact-k{margin:0 0 .25rem;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.facts p{margin:0}
.disclose{margin:0;padding:0;color:var(--muted)}
.disclose h2{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.disclose p{margin:0;font-size:.75rem;line-height:1.45;max-width:32rem;color:var(--muted)}
.again{padding-bottom:3.25rem}.again-lede{margin:-.5rem 0 1.15rem;color:var(--muted)}
.site-footer{border-top:1px solid var(--line)}.site-footer .wrap{padding-block:1.15rem 1.6rem;display:grid;gap:.55rem}
.site-footer p{margin:0;font-size:.875rem;color:var(--muted)}
::selection{background:var(--ink);color:var(--bg)}
