meshgolf-header,meshgolf-footer{display:block}.site-skip{position:absolute;left:-9999px;top:0;z-index:9;display:inline-flex;align-items:center;min-height:48px;padding:12px 20px;border-radius:0 0 14px 0;color:#003820;background:#7ce5aa;text-decoration:none;font:800 14px/1 "Nunito Sans",sans-serif}.site-skip:focus{left:0}.site-skip:focus-visible{outline:3px solid #ffde78;outline-offset:-3px}.site-header{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:64px;padding:10px max(20px,calc((100vw - 1000px)/2));border-bottom:1px solid #d4ffe31f;background:#002015f2}.site-header--home{position:relative;max-width:1072px;margin:0 auto;padding:0;min-height:44px;border:0;background:transparent}.site-wordmark{display:flex;align-items:center;gap:9px;color:#f2fbf3;text-decoration:none}.site-wordmark img{width:35px;height:35px;border-radius:11px;object-fit:cover}.site-wordmark span{font:600 24px/1 Fredoka,ui-sans-serif,sans-serif;letter-spacing:-.045em}.site-header__links{display:flex;align-items:center;gap:4px}.site-header__links a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:48px;padding:0 6px;color:#b9d0c0;text-decoration:none;font-size:0.8125rem;font-weight:800}.site-header__links a:hover,.site-header__links a[aria-current="page"]{color:#7ce5aa}.site-header__links a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}.site-header__tools{display:flex;align-items:center;gap:14px;color:#b9d0c0;font-size:0.625rem;font-weight:800;letter-spacing:.1em}.language-picker{display:flex;gap:2px;padding:3px;border:1px solid #b9fbd22b;border-radius:12px;background:#062c1d}.language-picker button{min-width:48px;min-height:48px;padding:6px 7px;border:0;border-radius:8px;color:#b9d0c0;background:transparent;font:800 10px/1 "Nunito Sans",sans-serif;cursor:pointer}.language-picker button[aria-pressed="true"]{color:#003820;background:#7ce5aa}.site-footer{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin-top:72px;padding:30px max(20px,calc((100vw - 1000px)/2));border-top:1px solid #d4ffe31f;color:#b9d0c0;font-size:0.6875rem;font-weight:800;letter-spacing:.11em}.site-footer--home{max-width:1072px;margin:72px auto 0;padding:0;border:0}.site-footer span{padding:0 8px;color:#7ce5aa}.site-footer nav{display:flex;gap:4px}.site-footer nav a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:48px;padding:0 6px}.site-footer a{color:#f2fbf3;text-decoration:none}.site-footer a:hover{color:#7ce5aa}.site-header a:focus-visible,.site-footer a:focus-visible,.language-picker button:focus-visible{outline:3px solid #ffde78;outline-offset:3px}::selection{background:#7ce5aa;color:#002015}@media(max-width:760px){.site-header{position:relative;display:grid;grid-template-columns:1fr auto;padding:12px 20px}.site-header--home{padding:0}.site-header__links{grid-column:1/-1;order:3;justify-content:flex-start;flex-wrap:wrap;gap:8px;padding-top:8px}.site-header__links a{flex:0 0 auto;white-space:nowrap}.site-header__tools>span{display:none}.site-footer,.site-footer--home{gap:4px;margin-top:48px;padding:24px 20px;line-height:1.8}.site-footer--home{padding:0}.site-footer nav{position:static;width:100%;flex-wrap:wrap;justify-content:flex-start;gap:4px 14px;padding:0;border:0;background:transparent}.site-footer nav a{flex:0 0 auto;white-space:nowrap;padding-top:8px}}
@media(prefers-color-scheme:light){.site-skip{color:#ffffff;background:#006d45}.site-skip:focus-visible{outline-color:#815e00}.site-header{border-bottom-color:#1b1a1714;background:#f1efeaf2}.site-header--home{background:transparent}.site-wordmark{color:#1b1a17}.site-header__links a{color:#55534d}.site-header__links a:hover,.site-header__links a[aria-current="page"]{color:#006d45}.site-header__tools{color:#55534d}.language-picker{border-color:#1b1a1726;background:#ffffff}.language-picker button{color:#55534d}.language-picker button[aria-pressed="true"]{color:#ffffff;background:#006d45}.site-footer{border-top-color:#1b1a1714;color:#55534d}.site-footer span{color:#006d45}.site-footer a{color:#1b1a17}.site-footer a:hover{color:#006d45}.site-header a:focus-visible,.site-footer a:focus-visible,.language-picker button:focus-visible{outline-color:#815e00}::selection{background:#006d45;color:#f1efea}}
[id="site-content"]:focus{outline:none}
/* Scorecard: a golfer reads a card by shape. A ring means under par and a square
   means over, one edge per stroke, so the round stays legible in bright sun and
   for a player who cannot separate the colours. Colour only reinforces it. */
.scorecard{min-width:0}
.scorecard__scroll{overflow-x:auto;max-width:100%;border-radius:14px;-webkit-overflow-scrolling:touch}
.scorecard table{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;width:max-content;table-layout:fixed}
.scorecard th,.scorecard td{width:38px;height:34px;text-align:center;font-size:0.8125rem;background:var(--raised);border-bottom:1px solid #0002;border-right:1px solid #0002}
.scorecard thead th{font-weight:800;font-size:0.75rem;background:var(--surface)}
.scorecard .scorecard__label{width:76px;text-align:left;padding-left:11px;font-size:0.6875rem;font-weight:700;color:var(--muted);position:sticky;left:0;z-index:2;background:var(--raised)}
.scorecard thead .scorecard__label{background:var(--surface);color:var(--ink)}
.scorecard .scorecard__total{width:50px;font-weight:800;background:var(--surface)}
.scorecard .scorecard__scores td{padding:0}
.mark{--mark-ink:var(--mint);width:38px;height:34px;margin:0 auto;display:grid;place-items:center;position:relative;font-weight:800;font-size:0.875rem;color:var(--ink)}
.mark::before,.mark::after{content:"";position:absolute;border:1.5px solid var(--mark-ink)}
.mark--par::before,.mark--par::after,.mark--unknown::before,.mark--unknown::after{display:none}
.mark--birdie::before{inset:4px 5px;border-radius:50%}
.mark--birdie::after{display:none}
.mark--eagle::before{inset:1px 2px;border-radius:50%;border-width:1px}
.mark--eagle::after{inset:5px 6px;border-radius:50%}
.mark--bogey::before{inset:4px 5px;border-radius:4px}
.mark--bogey::after{display:none}
.mark--double::before{inset:1px 2px;border-radius:5px;border-width:1px}
.mark--double::after{inset:5px 6px;border-radius:3px}
.mark--bogey,.mark--double{--mark-ink:var(--coral)}

/* Team identity. Red and blue are the only colours MeshGolf borrows from outside
   its own palette, and tokens.json scopes them to identity indicators: side
   chips, hole markers, bar segments. Never chrome, text, or buttons. Every badge
   carries its side's initial, so a match reads with colour stripped out. */
/* Team colour variables come from the generated site/tokens.css. */
/* The initial inverts with the scheme. The dark-scheme fills are light
   colours, so white on them is 2.79:1 and 2.46:1 -- far under AA. Dark ink
   on those same fills is 6.17:1 and 7.00:1. */
.side-badge{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;color:var(--team-ink);font-weight:800;font-size:0.875rem;flex:none}
.side-badge--a{background:var(--team-red)}
.side-badge--b{background:var(--team-blue)}
.hole-markers{display:flex;gap:5px;align-items:center}
.hole-marker{width:13px;height:13px;flex:none;border-radius:50%}
.hole-marker--won{background:var(--team-red)}
.hole-marker--lost{border:2.5px solid var(--team-red);background:transparent}
.hole-marker--halved{height:6px;border-radius:3px;background:var(--team-red)}
.hole-marker--none{background:var(--muted);opacity:.32;width:6px;height:6px}
.hole-markers--b .hole-marker--won{background:var(--team-blue)}
.hole-markers--b .hole-marker--lost{border-color:var(--team-blue)}
.hole-markers--b .hole-marker--halved{background:var(--team-blue)}

/* Shared motion: no delayed navigation or hidden scroll-reveal content. */
:root { --motion-fast:120ms; --motion-view:190ms; --motion-ease:cubic-bezier(.2,.8,.2,1); }
@view-transition { navigation:auto; }
meshgolf-header { view-transition-name:site-header; }
::view-transition-old(root) { animation:meshgolf-leave var(--motion-fast) ease both; }
::view-transition-new(root) { animation:meshgolf-enter var(--motion-view) var(--motion-ease) both; }
::view-transition-group(site-header) { animation-duration:var(--motion-view); }
@keyframes meshgolf-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes meshgolf-leave { to { opacity:0; } }
main { animation:meshgolf-enter var(--motion-view) var(--motion-ease); }
button, .site-header a, .site-footer a, summary, .download {
  transition:background-color var(--motion-view), color var(--motion-view), border-color var(--motion-view), transform var(--motion-fast) var(--motion-ease), box-shadow var(--motion-view);
}
button:active:not(:disabled), summary:active, .download:active { transform:translateY(1px) scale(.985); }
:where(button,a,summary):focus-visible { outline-offset:4px; }
@media (prefers-reduced-motion:reduce) {
  @view-transition { navigation:none; }
  *, *::before, *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation:none !important; }
}
details { box-sizing:border-box; }
.profile-stats dd, .scorecard .mark, .scorecard__total { font-variant-numeric:tabular-nums; }
