:root{--font-display:"Bricolage Grotesque", Georgia, serif;--font-body:"Source Sans 3", "Segoe UI", sans-serif;--ink:#14231a;--ink-soft:#2a3d31;--muted:#5a6f62;--court:#2d6a4f;--accent:#e9c46a;--accent-deep:#b08900;color:var(--ink);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#d7e8df;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh}button,input,select{font:inherit}.page{width:min(720px,100%);margin:0 auto;padding:2.5rem 1.25rem 4rem;animation:.7s ease-out both rise;position:relative}.atmosphere{z-index:-1;background:radial-gradient(80% 50% at 10% 0,#e9c46a47,#0000 55%),radial-gradient(70% 45% at 90% 15%,#52b78838,#0000 50%),linear-gradient(165deg,#e8f2ea 0%,#d7e8df 42%,#c5dce8 100%);position:fixed;inset:0}.atmosphere:after{content:"";opacity:.09;background-image:linear-gradient(90deg,#1b4332 1px,#0000 1px),linear-gradient(#1b4332 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0%,#0000 70%);mask-image:linear-gradient(#000 0%,#0000 70%)}.brand{margin-bottom:2.75rem;animation:.8s ease-out 80ms both rise}.brand-mark{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);margin:0 0 .35rem;font-size:clamp(2.6rem,8vw,3.75rem);font-weight:700;line-height:.95}.brand h1{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink-soft);margin:0 0 .75rem;font-size:clamp(1.15rem,3.5vw,1.45rem);font-weight:500}.lede{max-width:36ch;color:var(--muted);margin:0;font-size:1.05rem;line-height:1.45}.section{margin-bottom:2.75rem;animation:.7s ease-out both rise}.section:first-of-type{animation-delay:.14s}.section:nth-of-type(2){animation-delay:.22s}.section:nth-of-type(3){animation-delay:.3s}.section-head{border-bottom:2px solid #1b43321f;margin-bottom:1.15rem;padding-bottom:.65rem}.section-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 .25rem;font-size:1.35rem;font-weight:700}.section-head p{color:var(--muted);margin:0;font-size:.95rem}.log-form{gap:1.25rem;display:grid}.field{gap:.35rem;display:grid}.field span{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:600}.field input,.field select{width:100%;color:var(--ink);font:inherit;background:#ffffffb8;border:1.5px solid #1b43322e;border-radius:10px;padding:.7rem .8rem;font-size:1rem;transition:border-color .15s,box-shadow .15s,background .15s}.field input:focus,.field select:focus{border-color:var(--court);background:#fff;outline:none;box-shadow:0 0 0 3px #2d6a4f2e}.date-field{max-width:16rem}.teams{gap:.75rem;display:grid}@media (width>=640px){.teams{grid-template-columns:1fr auto 1fr;align-items:start;gap:1rem}}.team{border:none;gap:.75rem;margin:0;padding:0;display:grid}.team legend{font-family:var(--font-display);padding:0 0 .5rem;font-size:1.05rem;font-weight:700}.vs{text-align:center;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep);align-self:center;margin:0;font-size:.95rem;font-weight:700}.score-field input{font-variant-numeric:tabular-nums;font-weight:600}.error,.saved{margin:0;font-size:.95rem;font-weight:500}.error{color:#9b2226}.error.banner{background:#9b222614;border-radius:10px;margin:0 0 1.5rem;padding:.75rem .9rem}.cta:disabled{opacity:.55;cursor:not-allowed;transform:none}.saved{color:var(--court);animation:.25s ease-out fade-in}.cta{background:var(--ink);color:#f4faf6;font-family:var(--font-display);letter-spacing:-.01em;cursor:pointer;border:none;border-radius:999px;justify-self:start;padding:.85rem 1.4rem;font-size:1rem;font-weight:700;transition:transform .15s,background .15s}.cta:hover{background:var(--court);transform:translateY(-1px)}.cta:active{transform:translateY(0)}.empty{color:var(--muted);margin:0}.game-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.game-row{border-bottom:1px solid #1b43321f;gap:.35rem;padding:.95rem 0;animation:.35s ease-out both fade-in;display:grid}.game-row time{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:600}.matchup{grid-template-columns:1fr auto 1fr;align-items:baseline;gap:.65rem;font-size:1.02rem;display:grid}.matchup>:first-child{text-align:left}.matchup>:last-child{text-align:right}.matchup .score{font-variant-numeric:tabular-nums;font-weight:700;font-family:var(--font-display);color:var(--ink)}.winner{color:var(--court);font-weight:600}.stats-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.stats-table th,.stats-table td{text-align:left;border-bottom:1px solid #1b43321f;padding:.7rem .4rem}.stats-table thead th{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:600}.stats-table tbody th{color:var(--ink);font-weight:600}.stats-table td{text-align:right;width:3.25rem;color:var(--ink-soft)}.stats-table thead th:not(:first-child){text-align:right}.footer{color:var(--muted);border-top:1px solid #1b43321a;margin-top:1rem;padding-top:1rem;font-size:.85rem}.footer p{margin:0}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.page,.brand,.section,.game-row,.saved,.cta{transition:none!important;animation:none!important}}
