:root{--bg:#FBF8F3;--ink:#1d2b2a;--muted:#55635f;--teal:#0F5E5C;--teal2:#0b4442;--coral:#F2786B;--sun:#FFD25A;--card:#fff;--line:#e6dfd3;--soft:#F1ECE2;}
html{font-size:var(--fs,18px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Atkinson Hyperlegible',system-ui,sans-serif;
 background-image:radial-gradient(circle at 10% 0%,rgba(242,120,107,.12),transparent 40%),radial-gradient(circle at 95% 20%,rgba(15,94,92,.10),transparent 40%),radial-gradient(rgba(15,94,92,.07) 1px,transparent 1px);
 background-size:auto,auto,22px 22px;min-height:100vh}
.display{font-family:'Fraunces',Georgia,serif;letter-spacing:-.02em}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 2px 0 var(--line)}
.btn{min-height:44px;padding:.55rem 1.1rem;border-radius:12px;font-weight:700;border:2px solid transparent;cursor:pointer;transition:transform .15s,background .15s}
.btn:active{transform:translateY(1px)}
.btn-p{background:var(--teal);color:#fff}.btn-p:hover{background:var(--teal2)}
.btn-c{background:var(--coral);color:#2a0f0b}
.btn-g{background:transparent;border-color:var(--teal);color:var(--teal)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.inp{min-height:44px;width:100%;border:2px solid var(--line);border-radius:12px;padding:.5rem .8rem;background:#fff;color:var(--ink)}
.chip{min-height:40px;padding:.35rem .9rem;border-radius:999px;border:2px solid var(--teal);color:var(--teal);font-weight:700;background:#fff;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--teal);color:#fff}
.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:700;padding:.15rem .6rem;border-radius:999px}
.muted{color:var(--muted)}
*:focus-visible{outline:3px solid var(--sun)!important;outline-offset:2px;box-shadow:0 0 0 6px rgba(0,0,0,.6)}
.skip-link{position:absolute;left:-999px;top:8px;background:var(--sun);color:#000;padding:.6rem 1rem;z-index:100;border-radius:8px;font-weight:700}
.skip-link:focus{left:8px}
.rise{animation:rise .5s both}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.toast{animation:rise .35s both}
.confetti{position:fixed;top:-10px;width:10px;height:14px;z-index:90;animation:fall 2.2s linear forwards;pointer-events:none}
@keyframes fall{to{transform:translateY(105vh) rotate(720deg)}}
.reduce *,.reduce *::before{animation:none!important;transition:none!important}
/* High contrast */
.hc{--bg:#000;--ink:#fff;--muted:#fff;--teal:#FFE600;--teal2:#fff;--coral:#FFE600;--card:#000;--line:#fff;--soft:#111}
.hc body,.hc{background:#000}
.hc .btn-p,.hc .btn-c{color:#000}
.hc .inp,.hc .chip{background:#000;color:#fff;border-color:#fff}
.hc .chip[aria-pressed="true"]{background:#FFE600;color:#000}
.hc .card{border-width:2px}
.hc .badge{background:#000!important;color:#fff!important;border:2px solid #fff}
.hc *:focus-visible{outline-color:#00FFFF!important}
table{border-collapse:collapse;width:100%}
th,td{text-align:left;padding:.55rem;border-bottom:1px solid var(--line)}