@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-display: "Bricolage Grotesque Variable", "Bricolage Grotesque", ui-rounded, system-ui, sans-serif;--font-body: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;--font-deco: var(--font-display);--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs: .8125rem;--fs-sm: .9375rem;--fs-md: 1.0625rem;--fs-lg: 1.25rem;--fs-xl: 1.625rem;--fs-2xl: 2.125rem;--fs-3xl: clamp(2.4rem, 9vw, 3.6rem);--lh-tight: 1.1;--lh-body: 1.5;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--r-sm: 10px;--r-md: 16px;--r-lg: 22px;--r-pill: 999px;--border-w: 2px;--c-bg: #f3eadb;--c-bg-pattern: rgba(29, 42, 38, .06);--c-surface: #fffaf1;--c-surface-2: #eadfca;--c-ink: #1d2a26;--c-ink-muted: #4c5853;--c-line: #1d2a26;--c-accent: #b8401b;--c-accent-ink: #ffffff;--c-accent-2: #f2a93b;--c-accent-2-ink: #1d2a26;--c-success: #2c7a4b;--c-success-bg: #dff0e3;--c-warn: #8a5a00;--c-warn-bg: #fbecc8;--c-danger: #b42318;--c-danger-bg: #fbe1dc;--c-info: #245a8c;--c-info-bg: #dde9f5;--c-focus: #1f6feb;--shadow-hard: 3px 3px 0 0 var(--c-line);--shadow-hard-sm: 2px 2px 0 0 var(--c-line);--shadow-soft: 0 10px 30px -12px rgba(0, 0, 0, .35);--nav-h: 68px;--topbar-h: 56px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--content-max: 640px;--ease-out: cubic-bezier(.2, .8, .2, 1);--t-fast: .12s;--t-med: .22s;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100dvh;font-family:var(--font-body);font-size:var(--fs-md);line-height:var(--lh-body);color:var(--c-ink);background-color:var(--c-bg);-webkit-font-smoothing:antialiased}.app-root{min-height:100dvh;color:var(--c-ink);background-color:var(--c-bg);background-image:radial-gradient(var(--c-bg-pattern) 1px,transparent 1.2px),radial-gradient(var(--c-bg-pattern) 1px,transparent 1.2px);background-size:22px 22px,22px 22px;background-position:0 0,11px 11px;font-family:var(--font-body)}h1,h2,h3,h4{font-family:var(--font-display);line-height:var(--lh-tight);margin:0;letter-spacing:-.01em;font-weight:750}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}p{margin:0}a{color:inherit;text-decoration-thickness:2px;text-underline-offset:3px}img,video{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px;border-radius:6px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--s-2);top:-60px;z-index:100;padding:var(--s-2) var(--s-4);background:var(--c-surface);border:var(--border-w) solid var(--c-line);border-radius:var(--r-sm)}.skip-link:focus{top:var(--s-2)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}[data-theme=halloween]{--c-bg: #15111b;--c-bg-pattern: rgba(255, 122, 26, .07);--c-surface: #211a2a;--c-surface-2: #2d2338;--c-ink: #f7efe4;--c-ink-muted: #cbbfd3;--c-line: #f7efe4;--c-accent: #ff7a1a;--c-accent-ink: #15111b;--c-accent-2: #a6e35f;--c-accent-2-ink: #15111b;--c-success: #a6e35f;--c-success-bg: #24331b;--c-warn: #ffc069;--c-warn-bg: #3a2a12;--c-danger: #ff8a7a;--c-danger-bg: #3d1a1a;--c-info: #9cc7ff;--c-info-bg: #1b2840;--c-focus: #ffd166;--font-deco: "Creepster", var(--font-display);--shadow-hard: 3px 3px 0 0 #ff7a1a;--shadow-hard-sm: 2px 2px 0 0 #ff7a1a;color-scheme:dark}[data-theme=birthday]{--c-bg: #fff2f7;--c-bg-pattern: rgba(214, 47, 127, .1);--c-surface: #ffffff;--c-surface-2: #ffe1ee;--c-ink: #2b1b3d;--c-ink-muted: #5b4a6b;--c-line: #2b1b3d;--c-accent: #c0266f;--c-accent-ink: #ffffff;--c-accent-2: #ffc93c;--c-accent-2-ink: #2b1b3d;--font-deco: "Bungee", var(--font-display);--r-md: 18px;--r-lg: 26px}[data-theme=hens]{--c-bg: #fbf2ed;--c-bg-pattern: rgba(162, 59, 94, .07);--c-surface: #fffdfb;--c-surface-2: #f6e3dc;--c-ink: #3a2430;--c-ink-muted: #6b5360;--c-line: #a23b5e;--c-accent: #9c3559;--c-accent-ink: #ffffff;--c-accent-2: #e9b9a7;--c-accent-2-ink: #3a2430;--font-deco: "DM Serif Display", Georgia, serif;--font-display: "DM Serif Display", Georgia, serif;--border-w: 1.5px;--shadow-hard: 0 6px 18px -8px rgba(162, 59, 94, .45);--shadow-hard-sm: 0 3px 10px -6px rgba(162, 59, 94, .5);--r-md: 20px;--r-lg: 28px}[data-theme=christmas]{--c-bg: #10392d;--c-bg-pattern: rgba(255, 255, 255, .07);--c-surface: #174636;--c-surface-2: #1e5442;--c-ink: #fff8ec;--c-ink-muted: #cfe0d6;--c-line: #f2c14e;--c-accent: #e23a4e;--c-accent-ink: #ffffff;--c-accent-2: #f2c14e;--c-accent-2-ink: #10392d;--c-success: #9be3b5;--c-success-bg: #1d4d3a;--c-warn: #ffd98a;--c-warn-bg: #4a3a12;--c-danger: #ffb3ad;--c-danger-bg: #4d1f22;--c-info: #b9dcff;--c-info-bg: #1b3a4e;--c-focus: #ffe08a;--font-deco: "Berkshire Swash", Georgia, serif;color-scheme:dark}[data-theme=classic]{--c-bg: #eaf0e1;--c-bg-pattern: rgba(18, 50, 42, .06);--c-surface: #fffef8;--c-surface-2: #dce7cf;--c-ink: #12322a;--c-ink-muted: #46605a;--c-line: #12322a;--c-accent: #1d6644;--c-accent-ink: #ffffff;--c-accent-2: #f2d16b;--c-accent-2-ink: #12322a;--font-deco: "Fraunces Variable", Georgia, serif;--font-display: "Fraunces Variable", Georgia, serif;--r-md: 12px;--r-lg: 16px}[data-theme=retro]{--c-bg: #ffe6bd;--c-bg-pattern: rgba(42, 30, 92, .08);--c-surface: #fff6e4;--c-surface-2: #ffd8a0;--c-ink: #2a1e5c;--c-ink-muted: #54487f;--c-line: #2a1e5c;--c-accent: #c2311c;--c-accent-ink: #ffffff;--c-accent-2: #1fa39a;--c-accent-2-ink: #10142b;--font-deco: "Righteous", var(--font-display);--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--shadow-hard: 4px 4px 0 0 var(--c-accent-2);--shadow-hard-sm: 3px 3px 0 0 var(--c-accent-2)}[data-theme=custom][data-base=dark]{color-scheme:dark}.motif{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}.motif svg{position:absolute}.hero-band{position:relative;overflow:hidden;isolation:isolate;border-radius:var(--r-lg);border:var(--border-w) solid var(--c-line);background:var(--c-surface);box-shadow:var(--shadow-hard)}.hero-band>*:not(.motif){position:relative;z-index:1}.deco-title{font-family:var(--font-deco);font-weight:400;letter-spacing:.01em;line-height:1.05}[data-theme=classic] .deco-title,[data-theme=hens] .deco-title{font-weight:600;letter-spacing:-.01em}.scorecard-golf{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}.scorecard-golf th,.scorecard-golf td{border:1px solid var(--c-line);padding:6px 4px;text-align:center;min-width:34px}.scorecard-golf th[scope=row]{text-align:left;padding-left:8px;background:var(--c-surface-2);font-family:var(--font-display);white-space:nowrap}.scorecard-golf thead th{background:var(--c-accent);color:var(--c-accent-ink)}.scorecard-golf .is-current{outline:3px solid var(--c-accent-2);outline-offset:-3px}.scorecard-golf .golf-under{color:var(--c-success);font-weight:800;text-decoration:underline;text-decoration-style:double}.scorecard-golf .golf-pickup{color:var(--c-danger);font-style:italic}.page{width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--s-4) var(--s-4) calc(var(--nav-h) + var(--safe-bottom) + var(--s-8))}.page--wide{max-width:960px}.page--no-nav{padding-bottom:calc(var(--safe-bottom) + var(--s-10))}.stack{display:flex;flex-direction:column;gap:var(--s-4)}.stack-sm{display:flex;flex-direction:column;gap:var(--s-2)}.stack-lg{display:flex;flex-direction:column;gap:var(--s-6)}.row{display:flex;align-items:center;gap:var(--s-3)}.row-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.grow{flex:1 1 auto;min-width:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--s-3)}@media(min-width:760px){.md-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4)}}.muted{color:var(--c-ink-muted)}.small{font-size:var(--fs-sm)}.xsmall{font-size:var(--fs-xs)}.center{text-align:center}.mono{font-family:var(--font-mono)}.num{font-variant-numeric:tabular-nums}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.divider{height:0;border:0;border-top:var(--border-w) dashed color-mix(in srgb,var(--c-line) 35%,transparent);margin:var(--s-2) 0}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-2);font-family:var(--font-display);font-size:var(--fs-lg)}.eyebrow{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--c-ink-muted)}.topbar{position:sticky;top:0;z-index:20;padding-top:var(--safe-top);background:color-mix(in srgb,var(--c-bg) 88%,transparent);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);border-bottom:var(--border-w) solid color-mix(in srgb,var(--c-line) 18%,transparent)}.topbar__inner{max-width:var(--content-max);margin:0 auto;height:var(--topbar-h);display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-3)}.topbar__title{flex:1;min-width:0;font-family:var(--font-display);font-weight:750;font-size:var(--fs-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page--wide+.topbar__inner,.topbar--wide .topbar__inner{max-width:960px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:0 var(--s-2) var(--safe-bottom);background:var(--c-surface);border-top:var(--border-w) solid var(--c-line)}.bottom-nav ul{list-style:none;margin:0 auto;padding:0;max-width:var(--content-max);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;height:var(--nav-h)}.bottom-nav a{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;font-size:var(--fs-xs);font-weight:700;color:var(--c-ink-muted);position:relative;border-radius:var(--r-sm)}.bottom-nav a[aria-current=page]{color:var(--c-ink)}.bottom-nav a[aria-current=page]:before{content:"";position:absolute;top:6px;width:44px;height:30px;border-radius:var(--r-pill);background:var(--c-accent-2);z-index:-1}.bottom-nav a[aria-current=page] svg{color:var(--c-accent-2-ink)}.bottom-nav .nav-dot{position:absolute;top:8px;right:calc(50% - 22px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--c-accent);color:var(--c-accent-ink);font-size:11px;line-height:18px;text-align:center}.btn{--btn-bg: var(--c-surface);--btn-fg: var(--c-ink);display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:48px;padding:0 var(--s-5);border-radius:var(--r-pill);border:var(--border-w) solid var(--c-line);background:var(--btn-bg);color:var(--btn-fg);font-weight:700;font-size:var(--fs-md);text-decoration:none;cursor:pointer;box-shadow:var(--shadow-hard-sm);transition:transform var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out),background var(--t-fast);user-select:none;white-space:nowrap}.btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:0 0 0 0 var(--c-line)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;box-shadow:none}.btn--primary{--btn-bg: var(--c-accent);--btn-fg: var(--c-accent-ink)}.btn--secondary{--btn-bg: var(--c-accent-2);--btn-fg: var(--c-accent-2-ink)}.btn--ghost{box-shadow:none;border-color:transparent;background:transparent}.btn--ghost:hover{background:color-mix(in srgb,var(--c-ink) 7%,transparent)}.btn--danger{--btn-bg: var(--c-danger-bg);--btn-fg: var(--c-danger);border-color:var(--c-danger);box-shadow:none}.btn--lg{min-height:58px;font-size:var(--fs-lg);padding:0 var(--s-6)}.btn--sm{min-height:40px;padding:0 var(--s-3);font-size:var(--fs-sm)}.btn--block{width:100%}.btn--icon{width:44px;min-height:44px;padding:0;border-radius:50%}.btn--icon.btn--sm{width:40px;min-height:40px}.btn .spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{position:relative;background:var(--c-surface);border:var(--border-w) solid var(--c-line);border-radius:var(--r-md);padding:var(--s-4);box-shadow:var(--shadow-hard)}.card--flat{box-shadow:none}.card--muted{background:var(--c-surface-2);box-shadow:none;border-color:transparent}.card--accent{background:var(--c-accent);color:var(--c-accent-ink)}.card--accent .muted{color:color-mix(in srgb,var(--c-accent-ink) 82%,transparent)}.card--tight{padding:var(--s-3)}.card-link{display:block;text-decoration:none;color:inherit}.card-link:active .card{transform:translate(2px,2px);box-shadow:none}.card__ribbon{position:absolute;top:-2px;right:var(--s-4);padding:2px var(--s-2) 4px;background:var(--c-accent-2);color:var(--c-accent-2-ink);border:var(--border-w) solid var(--c-line);border-top:0;border-radius:0 0 8px 8px;font-size:var(--fs-xs);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.mat{display:grid;place-items:center;text-align:center;aspect-ratio:1;border-radius:50%;border:var(--border-w) solid var(--c-line);background:var(--c-surface);box-shadow:var(--shadow-hard-sm);font-family:var(--font-display)}.badge{display:inline-flex;align-items:center;gap:4px;min-height:26px;padding:2px 10px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:700;background:var(--c-surface-2);color:var(--c-ink);border:1px solid color-mix(in srgb,var(--c-line) 30%,transparent);white-space:nowrap}.badge--accent{background:var(--c-accent);color:var(--c-accent-ink);border-color:transparent}.badge--brass{background:var(--c-accent-2);color:var(--c-accent-2-ink);border-color:transparent}.badge--success{background:var(--c-success-bg);color:var(--c-success);border-color:currentColor}.badge--warn{background:var(--c-warn-bg);color:var(--c-warn);border-color:currentColor}.badge--danger{background:var(--c-danger-bg);color:var(--c-danger);border-color:currentColor}.badge--info{background:var(--c-info-bg);color:var(--c-info);border-color:currentColor}.badge--live:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.25}}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-weight:700;font-size:var(--fs-sm)}.field__hint{font-size:var(--fs-xs);color:var(--c-ink-muted)}.field__error{font-size:var(--fs-sm);color:var(--c-danger);font-weight:700}.input,.textarea,.select{width:100%;min-height:50px;padding:12px 14px;font-size:var(--fs-md);border-radius:var(--r-sm);border:var(--border-w) solid color-mix(in srgb,var(--c-line) 55%,transparent);background:var(--c-surface);color:var(--c-ink);transition:border-color var(--t-fast)}.input:focus,.textarea:focus,.select:focus{border-color:var(--c-line);outline:3px solid color-mix(in srgb,var(--c-focus) 45%,transparent);outline-offset:0}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--c-danger)}.textarea{min-height:96px;resize:vertical}.input--code{font-family:var(--font-mono);font-size:1.5rem;letter-spacing:.18em;text-transform:uppercase;text-align:center}fieldset{border:0;margin:0;padding:0;min-width:0}legend{padding:0;font-weight:700;font-size:var(--fs-sm);margin-bottom:6px}.toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:52px;padding:var(--s-2) 0;cursor:pointer}.toggle__text{display:flex;flex-direction:column;gap:2px}.toggle input{appearance:none;-webkit-appearance:none;margin:0;flex:0 0 auto;width:52px;height:32px;border-radius:16px;position:relative;cursor:pointer;background:color-mix(in srgb,var(--c-ink) 22%,var(--c-surface));border:var(--border-w) solid var(--c-line);transition:background var(--t-med) var(--ease-out)}.toggle input:after{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:var(--c-surface);border:var(--border-w) solid var(--c-line);transition:transform var(--t-med) var(--ease-out)}.toggle input:checked{background:var(--c-accent)}.toggle input:checked:after{transform:translate(20px)}.toggle input:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.seg{display:flex;flex-wrap:wrap;gap:var(--s-2)}.seg label{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--s-4);border-radius:var(--r-pill);border:var(--border-w) solid color-mix(in srgb,var(--c-line) 45%,transparent);background:var(--c-surface);font-weight:700;font-size:var(--fs-sm);cursor:pointer}.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.seg label:has(input:checked){background:var(--c-ink);color:var(--c-bg);border-color:var(--c-ink)}.seg label:has(input:focus-visible){outline:3px solid var(--c-focus);outline-offset:2px}.option-card{position:relative;display:block;cursor:pointer}.option-card input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.option-card .card{transition:transform var(--t-fast),box-shadow var(--t-fast)}.option-card input:checked+.card{outline:4px solid var(--c-accent);outline-offset:2px}.option-card input:focus-visible+.card{outline:3px solid var(--c-focus);outline-offset:3px}.avatar{--size: 40px;width:var(--size);height:var(--size);flex:0 0 var(--size);display:inline-grid;place-items:center;border-radius:50%;border:var(--border-w) solid var(--c-line);color:#1d1d1d;font-weight:800}.avatar--sm{--size: 30px}.avatar--lg{--size: 64px}.avatar-pick{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--s-2)}.avatar-pick label{position:relative;display:grid;place-items:center;aspect-ratio:1;border-radius:50%;cursor:pointer;border:var(--border-w) solid transparent}.avatar-pick input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.avatar-pick label:has(input:checked){border-color:var(--c-line);box-shadow:var(--shadow-hard-sm)}.avatar-pick label:has(input:focus-visible){outline:3px solid var(--c-focus)}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.list-row{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3);background:var(--c-surface);border-radius:var(--r-sm);border:1px solid color-mix(in srgb,var(--c-line) 22%,transparent)}.list-row--me{border:var(--border-w) solid var(--c-accent)}.rank{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:12px;font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);background:var(--c-surface-2)}.rank--1{background:var(--c-accent-2);color:var(--c-accent-2-ink)}.rank-move{font-size:var(--fs-xs);font-weight:800}.rank-move--up{color:var(--c-success)}.rank-move--down{color:var(--c-danger)}.score-big{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:800;font-variant-numeric:tabular-nums}.progress{height:12px;border-radius:6px;background:var(--c-surface-2);border:1px solid color-mix(in srgb,var(--c-line) 35%,transparent);overflow:hidden}.progress>span{display:block;height:100%;background:var(--c-accent);border-radius:6px;transition:width var(--t-med) var(--ease-out)}.route{display:flex;gap:6px;align-items:center;overflow-x:auto;padding:4px 2px;scrollbar-width:none}.route::-webkit-scrollbar{display:none}.route__stop{flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:var(--fs-sm);border:var(--border-w) solid var(--c-line);background:var(--c-surface)}.route__stop--done{background:var(--c-ink);color:var(--c-bg)}.route__stop--active{background:var(--c-accent);color:var(--c-accent-ink);transform:scale(1.15)}.route__stop--skipped{border-style:dashed;color:var(--c-ink-muted);background:transparent;text-decoration:line-through}.route__line{flex:0 0 14px;height:2px;background:var(--c-line);opacity:.4}.timeline{list-style:none;margin:0;padding:0 0 0 var(--s-6);position:relative}.timeline:before{content:"";position:absolute;left:11px;top:6px;bottom:6px;border-left:var(--border-w) dashed color-mix(in srgb,var(--c-line) 45%,transparent)}.timeline>li{position:relative;padding-bottom:var(--s-4)}.timeline>li:before{content:"";position:absolute;left:calc(-1 * var(--s-6) + 4px);top:18px;width:16px;height:16px;border-radius:50%;border:var(--border-w) solid var(--c-line);background:var(--c-surface)}.timeline>li[data-state=active]:before{background:var(--c-accent)}.timeline>li[data-state=done]:before{background:var(--c-ink)}.timeline>li[data-state=skipped]:before{border-style:dashed}.media-tile{position:relative;border-radius:var(--r-sm);overflow:hidden;background:var(--c-surface-2);aspect-ratio:1;border:1px solid color-mix(in srgb,var(--c-line) 25%,transparent)}.media-tile img,.media-tile video{width:100%;height:100%;object-fit:cover}.media-tile__badge{position:absolute;left:6px;bottom:6px}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-2);min-height:140px;padding:var(--s-4);text-align:center;border:var(--border-w) dashed color-mix(in srgb,var(--c-line) 55%,transparent);border-radius:var(--r-md);background:var(--c-surface)}dialog.sheet{width:100%;max-width:var(--content-max);max-height:min(92dvh,900px);margin:auto auto 0;padding:0;border:var(--border-w) solid var(--c-line);border-bottom:0;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--c-bg);color:var(--c-ink);overflow:hidden}dialog.sheet[open]{display:flex;flex-direction:column;animation:sheet-in var(--t-med) var(--ease-out)}dialog.sheet::backdrop{background:#0a0c0c8c}@keyframes sheet-in{0%{transform:translateY(30px);opacity:.4}}.sheet__head{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-3) var(--s-2) var(--s-4);border-bottom:1px solid color-mix(in srgb,var(--c-line) 20%,transparent)}.sheet__head h2{font-size:var(--fs-lg);flex:1}.sheet__body{overflow-y:auto;padding:var(--s-4);padding-bottom:calc(var(--s-6) + var(--safe-bottom));overscroll-behavior:contain}.sheet__grip{width:44px;height:5px;border-radius:3px;background:color-mix(in srgb,var(--c-ink) 30%,transparent);margin:8px auto 0}@media(min-width:700px){dialog.sheet{margin:auto;border-radius:var(--r-lg);border-bottom:var(--border-w) solid var(--c-line)}}dialog.confirm{width:min(92vw,420px);padding:var(--s-5);border:var(--border-w) solid var(--c-line);border-radius:var(--r-lg);background:var(--c-surface);color:var(--c-ink);box-shadow:var(--shadow-hard)}dialog.confirm::backdrop{background:#0a0c0c8c}.toasts{position:fixed;left:0;right:0;z-index:60;bottom:calc(var(--nav-h) + var(--safe-bottom) + var(--s-3));display:flex;flex-direction:column;align-items:center;gap:var(--s-2);pointer-events:none;padding:0 var(--s-3)}.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--s-2);max-width:520px;width:100%;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--c-ink);color:var(--c-bg);box-shadow:var(--shadow-soft);font-weight:700;animation:toast-in var(--t-med) var(--ease-out)}.toast--error{background:var(--c-danger);color:#fff}.toast--success{background:var(--c-success);color:#fff}@keyframes toast-in{0%{transform:translateY(12px);opacity:0}}.banner{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);border:var(--border-w) solid currentColor;font-size:var(--fs-sm)}.banner--info{background:var(--c-info-bg);color:var(--c-info)}.banner--warn{background:var(--c-warn-bg);color:var(--c-warn)}.banner--danger{background:var(--c-danger-bg);color:var(--c-danger)}.banner--success{background:var(--c-success-bg);color:var(--c-success)}.banner>svg{flex:0 0 auto;margin-top:2px}.banner strong{display:block}.net-banner{position:sticky;top:calc(var(--topbar-h) + var(--safe-top));z-index:19;display:flex;align-items:center;justify-content:center;gap:var(--s-2);padding:6px var(--s-3);font-size:var(--fs-sm);font-weight:700;background:var(--c-warn-bg);color:var(--c-warn);border-bottom:1px solid currentColor}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s-3);padding:var(--s-8) var(--s-4);border:var(--border-w) dashed color-mix(in srgb,var(--c-line) 40%,transparent);border-radius:var(--r-md)}.empty__icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--c-accent-2);color:var(--c-accent-2-ink);border:var(--border-w) solid var(--c-line)}.skeleton{border-radius:var(--r-md);background:linear-gradient(90deg,var(--c-surface-2) 25%,color-mix(in srgb,var(--c-surface-2) 60%,var(--c-surface)) 50%,var(--c-surface-2) 75%);background-size:300% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.center-screen{min-height:70dvh;display:grid;place-items:center;padding:var(--s-6);text-align:center}.sortable-item{touch-action:auto;transition:transform var(--t-fast)}.sortable-item.is-dragging{z-index:5;opacity:.92;transform:scale(1.02)}.drag-handle{touch-action:none;cursor:grab;display:grid;place-items:center;width:40px;min-height:44px;color:var(--c-ink-muted);border-radius:var(--r-sm);background:transparent;border:0}.drag-handle:active{cursor:grabbing}.steps{display:flex;gap:6px}.steps span{flex:1;height:6px;border-radius:3px;background:var(--c-surface-2)}.steps span[data-done=true]{background:var(--c-accent)}.sticky-actions{position:sticky;bottom:0;z-index:10;margin:var(--s-4) calc(-1 * var(--s-4)) 0;padding:var(--s-3) var(--s-4) calc(var(--s-3) + var(--safe-bottom));background:color-mix(in srgb,var(--c-bg) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid color-mix(in srgb,var(--c-line) 20%,transparent);display:flex;gap:var(--s-3)}.with-nav .sticky-actions{bottom:calc(var(--nav-h) + var(--safe-bottom));padding-bottom:var(--s-3)}.theme-swatch{position:relative;height:112px;border-radius:var(--r-md);overflow:hidden;border:var(--border-w) solid var(--c-line);display:flex;align-items:flex-end;padding:var(--s-3);background:var(--c-bg);color:var(--c-ink)}.theme-swatch__name{position:relative;z-index:1;font-family:var(--font-deco);font-size:1.35rem;line-height:1}.code-chip{font-family:var(--font-mono);font-weight:800;letter-spacing:.14em;font-size:1.6rem}.qr-box{background:#fff;padding:14px;border-radius:var(--r-md);border:var(--border-w) solid var(--c-line);display:inline-block}.qr-box img,.qr-box canvas{width:240px;height:240px;image-rendering:pixelated}.landing-hero{padding:var(--s-6) var(--s-5)}.landing-hero h1{font-size:var(--fs-3xl);font-family:var(--font-display);line-height:.95;letter-spacing:-.03em}.landing-hero .hl{background:var(--c-accent-2);padding:0 .15em;border-radius:.15em;box-decoration-break:clone;-webkit-box-decoration-break:clone}.how-steps{counter-reset:step;list-style:none;padding:0;margin:0;display:grid;gap:var(--s-3)}.how-steps li{counter-increment:step;display:grid;grid-template-columns:44px 1fr;gap:var(--s-3);align-items:start}.how-steps li:before{content:counter(step);width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--c-ink);color:var(--c-bg);font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg)}@media(min-width:900px){.admin-layout{display:grid;grid-template-columns:220px 1fr;gap:var(--s-6);align-items:start}.admin-side{position:sticky;top:calc(var(--topbar-h) + var(--s-4))}}.admin-side nav{display:flex;flex-direction:column;gap:4px}.admin-side a{display:flex;align-items:center;gap:var(--s-2);padding:10px 12px;border-radius:var(--r-sm);text-decoration:none;font-weight:700;color:var(--c-ink-muted)}.admin-side a[aria-current=page]{background:var(--c-surface);color:var(--c-ink);border:var(--border-w) solid var(--c-line)}@media(max-width:899px){.admin-side{display:none}}.row>svg,.row-wrap>svg,.banner>svg,.list-row>svg{flex-shrink:0}.route-map{width:100%;border-radius:var(--r-md);border:var(--border-w) solid var(--c-line);overflow:hidden;background:var(--c-surface-2);z-index:0;position:relative}.route-map .leaflet-control-attribution{font-size:11px}.route-map.map--dark .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.6)}.map-stop-wrap{background:none;border:0}.map-stop{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;font:800 15px/1 var(--font-display);color:var(--c-ink);background:var(--c-surface);border:3px solid var(--c-line);box-shadow:2px 2px #00000059}.map-stop--done{background:var(--c-ink);color:var(--c-bg)}.map-stop--active{background:var(--c-accent);color:var(--c-accent-ink);transform:scale(1.18);box-shadow:0 0 0 6px color-mix(in srgb,var(--c-accent) 35%,transparent)}.map-stop--skipped{border-style:dashed;color:var(--c-ink-muted);opacity:.8}.map-tip{font-family:var(--font-body);font-size:13px}.leg{display:flex;align-items:center;gap:6px;padding:2px 0 2px 18px;font-size:var(--fs-xs);color:var(--c-ink-muted)}.timeline>li.leg:before{display:none}.home-map{position:relative;display:block}.home-map .route-map{pointer-events:none}.home-map__cta{position:absolute;right:10px;bottom:28px;z-index:500}
