:root{--bg:#0b0b0e;--card:#ffffff09;--card-border:#ffffff12;--text:#f4f2ef;--muted:#f4f2ef85;--faint:#f4f2ef52}*{box-sizing:border-box;margin:0;padding:0}html,body{background:#000;height:100%;overflow:hidden}body{color:var(--text);font-family:Archivo,Helvetica Neue,sans-serif}.stage{--s:min(100vw / 1920, 100vh / 1080);background:#000;position:fixed;inset:0}.canvas{background:var(--bg);background-image:radial-gradient(1100px 600px at 8% -10%,#69cf011a,#0000 65%),radial-gradient(900px 500px at 100% 110%,#69cf010d,#0000 60%);width:100%;height:100%;overflow:hidden}.board{width:100%;height:100%;padding:calc(24 * var(--s)) calc(44 * var(--s)) calc(24 * var(--s));flex-direction:column;display:flex}.topbar{height:calc(54 * var(--s));flex:none;justify-content:space-between;align-items:center;display:flex}.topbar-brand{align-items:center;gap:calc(20 * var(--s));display:flex}.logo{height:calc(28 * var(--s));display:block}.club{gap:calc(2 * var(--s));padding-left:calc(20 * var(--s));border-left:2px solid var(--accent);flex-direction:column;display:flex}.club-name{font-weight:800;font-size:calc(18 * var(--s));letter-spacing:.14em}.club-sub{font-weight:600;font-size:calc(11 * var(--s));letter-spacing:.28em;color:var(--accent)}.topbar-clock{text-align:right}.clock-time{font-weight:800;font-size:calc(32 * var(--s));letter-spacing:.02em;font-variant-numeric:tabular-nums;line-height:1}.sim-tag{font-size:calc(11 * var(--s));letter-spacing:.2em;color:var(--accent);vertical-align:super;margin-left:calc(8 * var(--s));font-weight:700}.clock-date{font-size:calc(14 * var(--s));color:var(--muted);margin-top:calc(3 * var(--s));text-transform:capitalize}.kpi-strip{margin-top:calc(14 * var(--s));gap:calc(20 * var(--s));flex:none;display:flex}.kpi-tile{background:var(--card);border:1px solid var(--card-border);border-radius:calc(18 * var(--s));min-width:0;padding:calc(16 * var(--s)) calc(24 * var(--s));opacity:0;flex:1;transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transform:translateY(20px)}.board.mounted .kpi-tile{opacity:1;transform:none}.board.mounted .kpi-tile:first-child{transition-delay:20ms}.board.mounted .kpi-tile:nth-child(2){transition-delay:80ms}.board.mounted .kpi-tile:nth-child(3){transition-delay:.14s}.board.mounted .kpi-tile:nth-child(4){transition-delay:.2s}.kpi-label{font-size:calc(13 * var(--s));letter-spacing:.18em;color:var(--muted);white-space:nowrap;font-weight:700}.kpi-value{font-family:Archivo Black,Archivo,sans-serif;font-size:calc(46 * var(--s));margin-top:calc(6 * var(--s));letter-spacing:-.01em;font-variant-numeric:tabular-nums;align-items:baseline;gap:calc(6 * var(--s));line-height:1.05;display:flex}.kpi-arrow{font-family:Archivo,sans-serif;font-size:calc(30 * var(--s));font-weight:800}.kpi-sub{font-size:calc(14 * var(--s));color:var(--faint);margin-top:calc(4 * var(--s));white-space:nowrap}.grid{min-height:0;margin-top:calc(18 * var(--s));gap:calc(20 * var(--s));grid-template-columns:calc(500 * var(--s)) minmax(0, 1fr) calc(430 * var(--s));grid-template-rows:minmax(0, 1fr) calc(300 * var(--s));flex:1;grid-template-areas:"now curve side""now heat side";display:grid}.side{gap:calc(20 * var(--s));flex-direction:column;grid-area:side;min-width:0;min-height:0;display:flex}.side>.card{min-height:0;padding:calc(18 * var(--s)) calc(22 * var(--s));flex:1}.card{background:var(--card);border:1px solid var(--card-border);border-radius:calc(22 * var(--s));padding:calc(26 * var(--s)) calc(30 * var(--s));opacity:0;min-width:0;min-height:0;transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);overflow:hidden;transform:translateY(26px)}.board.mounted .card{opacity:1;transform:none}.board.mounted .card:first-child{transition-delay:50ms}.board.mounted .card:nth-child(2){transition-delay:.15s}.board.mounted .card:nth-child(3){transition-delay:.25s}.board.mounted .card:nth-child(4){transition-delay:.35s}.board.mounted .card:nth-child(5){transition-delay:.45s}@media (prefers-reduced-motion:reduce){.card{transition:none}}.card-now{flex-direction:column;grid-area:now;display:flex}.now-live{flex-direction:column;flex:1;min-height:0;display:flex}.now-live-body{justify-content:center;align-items:center;gap:calc(16 * var(--s));flex-direction:column;flex:1;display:flex}.now-next{margin-top:calc(20 * var(--s));padding-top:calc(20 * var(--s));gap:calc(16 * var(--s));border-top:1px solid #ffffff14;flex-direction:column;flex:none;display:flex}.card-curve{flex-direction:column;grid-area:curve;display:flex}.card-heat{grid-area:heat}.card-parts,.card-days,.card-facts{flex-direction:column;display:flex}.card-title{font-size:calc(14 * var(--s));letter-spacing:.24em;color:var(--muted);align-items:center;gap:calc(10 * var(--s));white-space:nowrap;font-weight:700;display:flex}.card-head{justify-content:space-between;align-items:center;gap:calc(20 * var(--s));display:flex}.legend{gap:calc(22 * var(--s));flex:none;display:flex}.live-dot{width:calc(10 * var(--s));height:calc(10 * var(--s));border-radius:50%;animation:1.6s infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}.gauge-wrap{align-self:center;position:relative}.gauge-wrap svg{width:calc(300 * var(--s));height:calc(300 * var(--s));display:block}.gauge-center{justify-content:center;align-items:center;gap:calc(2 * var(--s));flex-direction:column;display:flex;position:absolute;inset:0}.gauge-num{font-family:Archivo Black,Archivo,sans-serif;font-size:calc(80 * var(--s));letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}.gauge-sub{font-size:calc(18 * var(--s));color:var(--muted)}.gauge-closed{font-family:Archivo Black,sans-serif;font-size:calc(44 * var(--s));letter-spacing:.08em;color:var(--faint)}.now-status{text-align:center}.status-chip{padding:calc(7 * var(--s)) calc(22 * var(--s));font-weight:800;font-size:calc(19 * var(--s));letter-spacing:.08em;text-transform:uppercase;border:1.5px solid;border-radius:999px;display:inline-block}.status-msg{margin-top:calc(10 * var(--s));font-size:calc(17 * var(--s));color:var(--muted)}.best-row{align-items:center;gap:calc(18 * var(--s));border-radius:calc(16 * var(--s));padding:calc(16 * var(--s)) calc(22 * var(--s));background:#69cf0117;border:1px solid #69cf0147;display:flex}.best-icon{font-size:calc(30 * var(--s));color:#69cf01;font-weight:800}.best-title{font-size:calc(12 * var(--s));letter-spacing:.22em;color:#69cf01;font-weight:700}.best-time{font-size:calc(27 * var(--s));margin-top:calc(3 * var(--s));font-variant-numeric:tabular-nums;font-weight:800}.best-avg{font-size:calc(16 * var(--s));color:var(--muted);margin-left:calc(8 * var(--s));font-weight:500}.forecast{width:100%}.forecast-title{font-size:calc(12 * var(--s));letter-spacing:.22em;color:var(--muted);font-weight:700}.forecast-bars{gap:calc(12 * var(--s));margin-top:calc(10 * var(--s));align-items:flex-end;display:flex}.fc-col{align-items:center;gap:calc(6 * var(--s));border-radius:calc(12 * var(--s));min-width:0;padding:calc(8 * var(--s)) calc(4 * var(--s));flex-direction:column;flex:1;display:flex}.fc-col.is-best{outline-offset:calc(-1 * var(--s));background:#69cf0117;outline:1px solid #69cf0147}.fc-val{font-size:calc(16 * var(--s));font-variant-numeric:tabular-nums;font-weight:800}.fc-track{width:100%;height:calc(58 * var(--s));justify-content:center;align-items:flex-end;display:flex}.fc-bar{width:calc(26 * var(--s));border-radius:calc(6 * var(--s));transition:height .9s cubic-bezier(.2,.7,.2,1)}.fc-time{font-size:calc(15 * var(--s));color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.fc-status{font-size:calc(12 * var(--s));font-weight:700}.parts{align-items:center;gap:calc(20 * var(--s));min-height:0;margin-top:calc(10 * var(--s));flex:1;display:flex}.parts-donut{width:calc(168 * var(--s));height:calc(168 * var(--s));flex:none;position:relative}.parts-donut svg{width:100%;height:100%;display:block}.parts-center{justify-content:center;align-items:center;gap:calc(2 * var(--s));text-align:center;flex-direction:column;display:flex;position:absolute;inset:0}.parts-center-kicker{font-size:calc(10 * var(--s));letter-spacing:.16em;color:var(--faint);font-weight:700}.parts-center-val{font-size:calc(22 * var(--s));font-weight:800}.parts-center-pct{font-size:calc(16 * var(--s));color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700}.parts-legend{gap:calc(10 * var(--s));flex-direction:column;flex:1;min-width:0;list-style:none;display:flex}.parts-legend li{grid-template-columns:calc(10 * var(--s)) 1fr auto;align-items:baseline;gap:calc(9 * var(--s));display:grid}.parts-dot{width:calc(10 * var(--s));height:calc(10 * var(--s));border-radius:3px;align-self:center}.parts-name{font-size:calc(16 * var(--s));font-weight:700}.parts-desc{font-size:calc(12 * var(--s));color:var(--faint);margin-top:calc(-4 * var(--s));grid-column:2}.parts-pct{font-size:calc(20 * var(--s));font-variant-numeric:tabular-nums;grid-area:1/3/span 2;align-self:center;font-weight:800}.curve-wrap{margin-top:calc(10 * var(--s));outline:none;position:relative}.curve-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:calc(4 * var(--s));border-radius:calc(8 * var(--s))}.curve-svg{width:100%;height:auto;display:block}.chart-tip{z-index:6;pointer-events:none;transform:translate(-50%, calc(-100% - 12 * var(--s)));border-radius:calc(10 * var(--s));padding:calc(9 * var(--s)) calc(13 * var(--s));box-shadow:0 calc(8 * var(--s)) calc(26 * var(--s)) #00000080;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#10120ef5;border:1px solid #ffffff1f;position:absolute}.chart-tip-time{font-size:calc(12 * var(--s));letter-spacing:.04em;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.chart-tip-row{align-items:baseline;gap:calc(8 * var(--s));margin-top:calc(6 * var(--s));display:flex}.chart-tip-key{width:calc(14 * var(--s));height:calc(3 * var(--s));border-radius:2px;flex:none;align-self:center}.chart-tip-val{font-size:calc(18 * var(--s));font-variant-numeric:tabular-nums;font-weight:800}.chart-tip-lbl{font-size:calc(12 * var(--s));color:var(--muted)}.axis-label{fill:var(--faint);font-family:Archivo,sans-serif;font-size:14px;font-weight:500}.best-label{fill:#69cf01;letter-spacing:.2em;font-family:Archivo,sans-serif;font-size:12px;font-weight:700}.now-label{fill:var(--text);letter-spacing:.16em;font-family:Archivo,sans-serif;font-size:13px;font-weight:700}.now-pulse{stroke-width:2px;animation:2s ease-out infinite pulse}@keyframes pulse{0%{r:9;opacity:.9}to{r:26;opacity:0}}.legend-item{align-items:center;gap:calc(8 * var(--s));font-size:calc(14 * var(--s));color:var(--muted);display:flex}.legend-line{width:calc(22 * var(--s));height:calc(4 * var(--s));background:var(--accent);border-radius:2px}.legend-band{width:calc(22 * var(--s));height:calc(12 * var(--s));background:#ffffff1f;border-radius:3px}.heatmap{margin-top:calc(14 * var(--s));position:relative}.heat-grid{align-items:center;gap:calc(3 * var(--s));display:grid}.heat-day{font-size:calc(14 * var(--s));color:var(--muted);text-align:center;font-weight:700}.heat-day.is-today{color:var(--accent)}.heat-cell{height:calc(20 * var(--s));border-radius:calc(4 * var(--s))}.heat-cell.is-today-row{outline-offset:-1.5px;outline:1.5px solid #ffffff38}.heat-cell:hover{z-index:2;outline-offset:-1px;cursor:crosshair;outline:2px solid #fff;position:relative}.heat-hours{height:calc(18 * var(--s));margin-top:calc(5 * var(--s));position:relative}.heat-hours span{top:calc(2 * var(--s));font-size:calc(14 * var(--s));color:#f4f2ef99;font-variant-numeric:tabular-nums;font-weight:600;position:absolute;transform:translate(-50%)}.heat-hours span:after{content:"h";font-size:calc(11 * var(--s));opacity:.6}.heat-legend{align-items:center;gap:calc(16 * var(--s));margin-top:calc(18 * var(--s));padding-left:calc(40 * var(--s));display:flex}.heat-legend-bar{max-width:calc(240 * var(--s));height:calc(10 * var(--s));border-radius:calc(5 * var(--s));background:linear-gradient(90deg,#181c16,#23400f,#477f0a,#69cf01,#aee94e,#e9f7a3);flex:1}.heat-legend-cap{font-size:calc(13 * var(--s));color:var(--faint);white-space:nowrap}.daybars{min-height:0;margin-top:calc(12 * var(--s));flex-direction:column;flex:1;justify-content:space-between;display:flex}.daybar-row{grid-template-columns:calc(88 * var(--s)) 1fr calc(38 * var(--s));align-items:center;gap:calc(12 * var(--s));display:grid}.daybar-label{font-size:calc(15 * var(--s));color:var(--muted);white-space:nowrap;font-weight:600}.daybar-label.is-today{color:var(--text);font-weight:800}.daybar-track{height:calc(12 * var(--s));background:#ffffff0d;border-radius:999px;overflow:hidden}.daybar-fill{border-radius:999px;height:100%}.daybar-val{font-size:calc(15 * var(--s));color:var(--faint);text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.daybar-val.is-today{color:var(--text)}.daybars-note{font-size:calc(12 * var(--s));color:var(--faint);margin-top:calc(6 * var(--s))}.facts{min-height:0;margin-top:calc(10 * var(--s));flex-direction:column;flex:1;display:flex}.fact{opacity:0;flex:1;transition:opacity .45s,transform .45s;transform:translateY(14px)}.fact.is-in{opacity:1;transform:none}.fact-kicker{font-size:calc(13 * var(--s));letter-spacing:.2em;font-weight:800}.fact-value{font-family:Archivo Black,Archivo,sans-serif;font-size:calc(48 * var(--s));margin-top:calc(8 * var(--s));letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1.05}.fact-unit{font-family:Archivo,sans-serif;font-size:calc(22 * var(--s));color:var(--muted);font-weight:600}.fact-caption{font-size:calc(15 * var(--s));color:var(--muted);margin-top:calc(8 * var(--s));text-wrap:pretty;line-height:1.4}.fact-dots{gap:calc(8 * var(--s));display:flex}.fact-dot{width:calc(9 * var(--s));height:calc(9 * var(--s));border-radius:50%;transition:background .3s}.footbar{margin-top:calc(22 * var(--s));font-size:calc(14 * var(--s));color:var(--faint);letter-spacing:.04em;flex:none;justify-content:space-between;display:flex}
