:root{--navy: #0b2545;--navy-2: #13315c;--ice: #e8f4fd;--ice-2: #cfe8fb;--blue: #1b74d1;--orange: #c2410c;--orange-bright: #ff7a1a;--text: #0b2545;--muted: #3f5674;--white: #ffffff;--surface: #ffffff;--rink-line: #9fcbf2;--link: #1b74d1;--accent-text: #c2410c;--danger-text: #b42318;--danger-bg: #fef2f2;--warn-text: #7c2d12;--warm-bg: #fff3e8;--warm-1: #fff1df;--warm-2: #ffe3c4;--warm-soft: #fff7ed;--sun-bg: #fffbea;--sun-text: #7a4b00;--green-bg: #e3f7e9;--green-text: #14532d;--sky-bg: #f0f9ff;--pucky-line: #0b2545;--on-navy-soft: #cfe8fb;color-scheme:light;--danger: #b42318;--radius: 20px;--shadow: 0 6px 18px rgba(11, 37, 69, .1);--nav-h: 72px;font-family:Nunito,ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--ice);-webkit-text-size-adjust:100%}html[data-theme=dark]{--ice: #0b1a2e;--ice-2: #1e4170;--text: #e8f4fd;--muted: #b9cbe0;--surface: #13315c;--rink-line: #3d6aa3;--link: #8cc8ff;--accent-text: #ffb27a;--danger-text: #fca5a5;--danger-bg: #3b1414;--warn-text: #fdba74;--warm-bg: #3a2614;--warm-1: #3d2a17;--warm-2: #4a2f12;--warm-soft: #33230f;--sun-bg: #3a3210;--sun-text: #fcd34d;--green-bg: #12351f;--green-text: #86efac;--sky-bg: #16365e;--pucky-line: #cfe8fb;--shadow: 0 6px 18px rgba(0, 0, 0, .35);color-scheme:dark}@media(prefers-color-scheme:dark){html:not([data-theme=light]){--ice: #0b1a2e;--ice-2: #1e4170;--text: #e8f4fd;--muted: #b9cbe0;--surface: #13315c;--rink-line: #3d6aa3;--link: #8cc8ff;--accent-text: #ffb27a;--danger-text: #fca5a5;--danger-bg: #3b1414;--warn-text: #fdba74;--warm-bg: #3a2614;--warm-1: #3d2a17;--warm-2: #4a2f12;--warm-soft: #33230f;--sun-bg: #3a3210;--sun-text: #fcd34d;--green-bg: #12351f;--green-text: #86efac;--sky-bg: #16365e;--pucky-line: #cfe8fb;--shadow: 0 6px 18px rgba(0, 0, 0, .35);color-scheme:dark}}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(180deg,var(--ice-2) 0%,var(--ice) 240px)}h1,h2{margin:0 0 12px;line-height:1.2}h1{font-size:1.7rem}h2{font-size:1.15rem}p{line-height:1.45}:focus-visible{outline:3px solid var(--orange-bright);outline-offset:2px}.top-bar{background:var(--navy);color:var(--white);padding:calc(10px + env(safe-area-inset-top)) 16px 10px;text-align:center}.offline-chip{margin:8px auto 0;width:fit-content;max-width:calc(100% - 32px);padding:6px 14px;border-radius:999px;background:var(--warm-bg);color:var(--text);border:2px solid var(--orange-bright);font-weight:800;font-size:.95rem;text-align:center}.insecure-banner{max-width:720px;margin:8px auto 0;padding:10px 14px;border-radius:14px;background:var(--warm-bg);color:var(--text);border:2px solid var(--orange-bright);font-size:.95rem}.insecure-banner p{margin:0 0 8px}.app-link{overflow-wrap:anywhere}.insecure-actions{display:flex;flex-wrap:wrap;gap:8px}.insecure-actions a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;text-align:center}.brand{font-weight:800;font-size:1.15rem;letter-spacing:.3px}.content{max-width:720px;margin:0 auto;padding:16px 16px calc(var(--nav-h) + 24px + env(safe-area-inset-bottom))}.page{display:flex;flex-direction:column;gap:16px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.eyebrow{font-size:.95rem;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.greeting{font-size:1.8rem;margin:4px 0 0;overflow-wrap:anywhere}.mantra-card{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);color:var(--white)}.mantra-card .eyebrow{color:var(--on-navy-soft)}.mantra{font-size:1.35rem;font-weight:800;margin:0}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-card{border-radius:var(--radius);padding:16px;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon value" "icon unit" "label label";align-items:center;column-gap:10px;background:var(--surface);box-shadow:var(--shadow);border-bottom:6px solid var(--blue)}.stat-orange{border-bottom-color:var(--orange-bright)}.stat-icon{grid-area:icon;font-size:2.2rem}.stat-value{grid-area:value;font-size:2.2rem;font-weight:900;line-height:1}.stat-unit{grid-area:unit;color:var(--muted);font-weight:700}.stat-label{grid-area:label;margin-top:6px;font-weight:800}.streak-msg{margin:-4px 4px 0;font-weight:700;color:var(--text)}.week-strip{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}.week-strip .dot{display:grid;place-items:center;margin:0 auto;width:36px;height:36px;border-radius:50%;border:3px solid var(--ice-2);font-weight:900;color:var(--white)}.week-strip .done .dot{background:var(--orange-bright);border-color:var(--orange-bright);color:var(--text)}.week-strip .today .dot{border-color:var(--text)}.week-strip .day{display:block;font-size:.85rem;font-weight:700;color:var(--muted);margin-top:4px}.btn{font:inherit;font-weight:800;border:none;border-radius:999px;cursor:pointer;min-height:48px;padding:10px 18px;transition:transform .08s ease}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--orange);color:var(--white);box-shadow:0 6px #8a2e08}.btn-big{width:100%;min-height:64px;font-size:1.3rem}.btn-cta{font-size:1.45rem}.btn-ghost{background:var(--ice);color:var(--text)}.btn-ghost.selected{background:var(--navy);color:var(--white)}.btn-small{min-height:44px;min-width:44px;padding:6px 12px}.btn-danger{background:var(--danger);color:var(--white)}.btn-round{width:60px;height:60px;border-radius:50%;font-size:2rem;background:var(--navy);color:var(--white);padding:0}fieldset{border:none;padding:0;margin:0 0 18px}legend,.field label,.first-run label{font-weight:800;font-size:1.1rem;margin-bottom:10px;display:block}.chip-group{margin-bottom:14px}.chip-group-title{font-size:.95rem;font-weight:800;color:var(--text);margin:0 0 8px}.game-note{margin:4px 0 0;padding:10px 14px;border-radius:14px;background:var(--ice);font-weight:700}.category-breakdown{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.category-breakdown .cat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:14px;background:var(--ice);font-size:.9rem}.category-breakdown .cat strong{font-size:1.05rem}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:48px;max-width:100%;padding:8px 16px;border-radius:999px;background:var(--ice);border:3px solid transparent;font-weight:700;white-space:normal;text-align:start;cursor:pointer}.chip.selected{background:var(--navy);color:var(--white)}.chip input,.feeling input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.chip:has(input:focus-visible),.feeling:has(input:focus-visible){outline:3px solid var(--orange-bright);outline-offset:2px}.stepper{display:flex;align-items:center;justify-content:center;gap:14px}.minutes-input{width:110px;font:inherit;font-size:2.2rem;font-weight:900;text-align:center;border:3px solid var(--ice-2);border-radius:16px;padding:6px;color:var(--text)}.quick-picks{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:12px}.feelings{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}.feeling{position:relative;display:flex;flex-direction:column;align-items:center;padding:8px 0;border-radius:16px;border:3px solid transparent;background:var(--ice);cursor:pointer}.feeling.selected{border-color:var(--orange-bright);background:var(--warm-bg)}.feeling-emoji{font-size:2rem}.feeling-label{font-size:.95rem;font-weight:700;line-height:1.15;letter-spacing:-.2px;text-align:center}textarea,.first-run input{width:100%;font:inherit;font-size:1.1rem;padding:12px 14px;border-radius:14px;border:3px solid var(--ice-2);color:var(--text)}.hint{color:var(--muted);font-size:.92rem;margin:6px 0 0}.error{color:var(--danger-text);font-weight:700;padding-left:18px}p.error{padding-left:0}.saved-msg:not(:empty){background:var(--green-bg);color:var(--green-text);font-weight:800;padding:10px 14px;border-radius:14px;margin-bottom:12px}.history-list{list-style:none;padding:0;margin:0}.history-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:2px solid var(--ice)}.history-emoji{font-size:1.6rem}.history-main{flex:1;min-width:0}.history-sub{color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}.confirm{display:flex;gap:6px}.empty-hint{text-align:center;color:var(--muted);font-weight:700}.privacy-note{text-align:center;color:var(--muted);font-size:.9rem;margin:0}.first-run,.loading{min-height:100vh;display:grid;place-items:center;padding:20px}.welcome-card{max-width:440px;width:100%;text-align:center}.welcome-card form{text-align:left;margin-top:16px}.welcome-card .btn{margin-top:16px}.big-emoji{font-size:3.5rem}.soon-badge{display:inline-block;background:var(--warm-bg);color:var(--accent-text);font-weight:900;padding:6px 14px;border-radius:999px;margin:0}.soon-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.soon-list li{display:flex;gap:12px;align-items:flex-start;font-size:1.05rem}.soon-list li>span{font-size:1.8rem}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;background:var(--surface);box-shadow:0 -4px 16px #0b25451f;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav ul{list-style:none;margin:0 auto;padding:0;max-width:720px;display:grid;grid-template-columns:repeat(5,1fr)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:var(--nav-h);text-decoration:none;color:var(--muted);font-weight:800;font-size:.95rem;border-top:4px solid transparent}.bottom-nav a.active{color:var(--text);border-top-color:var(--orange-bright);background:var(--ice)}.nav-icon{font-size:1.5rem}@media(min-width:768px){h1{font-size:2rem}.greeting{font-size:2.2rem}.content{padding-top:28px}.nav-label{font-size:1rem}}@media(min-width:1024px){.content{max-width:960px}.home-page{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"greet greet" "mantra mantra" "stats week" "msg msg" "cta cta" "empty empty" "privacy privacy";gap:20px}.home-page>.greeting{grid-area:greet}.home-page>.mantra-card{grid-area:mantra}.home-page>.stats{grid-area:stats}.home-page>.week-card{grid-area:week}.home-page>.streak-msg{grid-area:msg;margin:0 4px}.home-page>.btn-cta{grid-area:cta;max-width:480px;justify-self:center}.home-page>.empty-hint{grid-area:empty}.home-page>.privacy-note{grid-area:privacy}.mantra{font-size:1.6rem}.log-page{display:grid;grid-template-columns:3fr 2fr;align-items:start}.log-page>h1{grid-column:1 / -1}}.game-note p{margin:0 0 10px}.intro{margin:-8px 4px 0;font-weight:700;color:var(--text)}.shortcut-tile{display:flex;align-items:center;gap:14px;width:100%;min-height:72px;border:3px solid var(--ice-2);font:inherit;text-align:left;color:var(--text);cursor:pointer;background:linear-gradient(135deg,var(--warm-soft) 0%,var(--surface) 70%)}.shortcut-tile:hover{border-color:var(--orange-bright)}.tile-emoji{font-size:2.4rem}.tile-text{display:flex;flex-direction:column;flex:1;font-size:1.15rem}.tile-text .hint{margin:2px 0 0}.tile-arrow{font-size:2rem;font-weight:900;color:var(--accent-text)}.section-title{margin:4px 4px 10px}.takeaway-card{background:linear-gradient(135deg,var(--warm-1) 0%,var(--warm-2) 100%);border-bottom:6px solid var(--orange-bright)}.takeaway-headline{font-size:1.5rem;font-weight:900;margin:0 0 6px}.takeaway-line{margin:4px 0;font-weight:700;font-size:1.05rem}.trend-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.totals-card{grid-column:1 / -1}.trend-card h3{margin:0;font-size:1.05rem}.trend-avg{font-size:1.9rem;font-weight:900;margin:4px 0 6px}.trend-of{font-size:.9rem;font-weight:700;color:var(--muted)}.trend-chart{width:100%;height:auto;max-height:110px;display:block}.trend-chart .grid{stroke:var(--ice-2);stroke-width:1}.trend-orange .bar{fill:#ffc49a}.trend-orange .bar.latest{fill:var(--orange-bright)}.trend-blue .bar{fill:#9fcbf2}.trend-blue .bar.latest{fill:var(--blue)}.totals{list-style:none;padding:0;margin:8px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}.totals li{background:var(--ice);border-radius:14px;padding:10px 4px;display:flex;flex-direction:column;font-weight:700}.totals strong{font-size:1.7rem;font-weight:900}.focus-card{border-bottom:6px solid #22a06b}.focus-main{font-size:1.4rem;font-weight:900;margin:0}.game-item{flex-direction:column;align-items:stretch}.game-row{display:flex;align-items:center;gap:10px}.game-detail{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:10px 0 0;padding:12px 14px;background:var(--ice);border-radius:14px}.game-detail dt{font-weight:800}.game-detail dd{margin:0;overflow-wrap:anywhere}.game-form{display:flex;flex-direction:column;gap:16px}.form-step h2{display:flex;align-items:center;gap:8px}.step-num{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--orange);color:var(--white);font-size:1rem;font-weight:900}.hint-inline{color:var(--muted);font-weight:700;font-size:.9rem}.chip-dim{opacity:.5}.field{margin-bottom:14px}.field input[type=text],.field input[type=date]{width:100%;min-height:48px;font:inherit;font-size:1.1rem;padding:10px 14px;border-radius:14px;border:3px solid var(--ice-2);color:var(--text);background:var(--surface)}.inline-field{margin-top:12px}.inline-field label{font-size:1rem}.emoji-slider{margin-bottom:18px}.slider-label,.counter-label{display:block;font-weight:800;font-size:1.1rem;margin-bottom:6px}.slider-face{display:flex;align-items:center;justify-content:center;gap:10px}.slider-emoji{font-size:3rem}.slider-word{font-weight:900;font-size:1.2rem}.emoji-slider input[type=range]{width:100%;height:48px;accent-color:var(--orange);cursor:pointer}.emoji-slider input[type=range]::-webkit-slider-thumb{width:36px;height:36px}.slider-ticks{display:flex;justify-content:space-between}.tick{min-width:44px;min-height:44px;font-size:1.5rem;background:none;border:3px solid transparent;border-radius:50%;cursor:pointer;opacity:.6}.tick.selected{opacity:1;border-color:var(--orange-bright);background:var(--warm-bg)}.counter{margin-top:12px;text-align:center}.counter-input{width:90px}.quick-left{justify-content:flex-start;margin:0 0 6px}.stats-grid{display:grid;grid-template-columns:1fr;gap:4px}.form-actions{display:flex;flex-direction:column;gap:10px}.game-link-card .btn{width:100%}@media(min-width:768px){.stats-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.home-page{grid-template-areas:"greet greet" "mantra mantra" "stats week" "msg msg" "cta tile" "empty empty" "privacy privacy"}.home-page>.btn-cta{max-width:none;justify-self:stretch;align-self:center}.home-page>.shortcut-tile{grid-area:tile}.insights-page{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);grid-template-areas:"title add" "status status" "takeaway focus" "trends trends" "list list";align-items:start;gap:20px}.insights-page>h1{grid-area:title}.insights-page>.saved-msg{grid-area:status}.insights-page>.saved-msg:empty{display:none}.insights-page>.add-game{grid-area:add}.insights-page>.takeaway-card{grid-area:takeaway}.insights-page>.focus-card{grid-area:focus}.insights-page>.trends{grid-area:trends}.insights-page>.games-history{grid-area:list}.trend-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.totals-card{grid-column:auto}.game-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.game-form>.form-actions,.game-form>.error{grid-column:1 / -1}.form-actions{flex-direction:row;justify-content:center}.form-actions .btn-big{max-width:420px}}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .btn{transition:none}}.fitness-page>.saved-msg:empty{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.game-cta{margin:0 0 8px;padding:16px;border-radius:18px;background:linear-gradient(135deg,var(--warm-1) 0%,var(--warm-2) 100%);border:3px solid var(--orange-bright)}.game-cta-title{font-size:1.2rem}.game-cta p{margin:0 0 12px;font-weight:700}.goal-row{display:flex;align-items:center;gap:16px}.goal-ring{width:112px;height:112px;flex:none}.ring-bg{fill:none;stroke:var(--ice-2);stroke-width:14}.ring-fg{fill:none;stroke:var(--orange);stroke-width:14;stroke-linecap:round;transition:stroke-dasharray .6s ease}.goal-ring.met .ring-fg{stroke:#15803d}.ring-num{font-size:30px;font-weight:900;fill:var(--text)}.ring-label{font-size:15px;font-weight:800;fill:var(--muted)}.goal-text{flex:1;min-width:0}.goal-msg{margin:0;font-weight:800;font-size:1.1rem}.target-stepper{display:flex;align-items:center;gap:8px;white-space:nowrap;margin-top:10px}.btn-round-sm{flex:none;width:48px;height:48px;font-size:1.5rem}.wod-card{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);color:var(--white)}.wod-card .eyebrow,.wod-card .hint{color:#d6e6f7}.wod-name{font-size:1.6rem;font-weight:900;margin:0}.wod-reason{font-weight:700;margin:8px 0 14px}.wod-actions{display:flex;flex-wrap:wrap;gap:10px}.wod-actions .btn-primary{flex:1 1 200px;font-size:1.15rem}.safety-note{background:var(--sun-bg);border-left:8px solid #f5b400}.safety-title{font-size:1.05rem;margin-bottom:6px}.safety-note ul{margin:0;padding-left:20px;line-height:1.45}.credit{font-style:italic}.filters{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.chip-sm{min-height:44px;padding:6px 12px;font-size:.95rem}.workout-list,.exercise-list,.bench-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.workout-tile{display:flex;align-items:center;gap:14px;width:100%;min-height:72px;border:3px solid var(--ice-2);font:inherit;text-align:left;color:var(--text);cursor:pointer}.workout-tile:hover{border-color:var(--orange-bright)}.blurb{font-size:1.1rem;font-weight:700;margin:0}.gear{margin:0}.exercise-card{display:flex;gap:14px;align-items:flex-start}.exercise-card .exercise-visual{width:104px;min-width:104px;align-self:flex-start}.exercise-body{flex:1;min-width:0}.exercise-body h3{margin:0 0 2px;font-size:1.15rem}.dose{margin:0;color:var(--muted);font-weight:700}.steps{margin:8px 0;padding-left:20px;line-height:1.4}.why,.tip{margin:4px 0 0;font-size:.95rem}.tip{color:var(--sun-text)}.exercise-visual{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--ice);border-radius:16px;padding:6px}.hockey-fig{width:72px;height:86px;color:var(--text);overflow:visible}.hockey-fig .hf-limb,.hockey-fig .hf-skate,.hockey-fig .hf-stick{stroke:currentColor;stroke-width:4.5;stroke-linecap:round;fill:none}.hockey-fig .hf-thigh,.hockey-fig .hf-shin{stroke-width:5}.hockey-fig .hf-jersey{fill:var(--orange);stroke:currentColor;stroke-width:2}.hockey-fig .hf-shorts{fill:currentColor;opacity:.75}.hockey-fig .hf-head{fill:var(--skin, #ffd6a5);stroke:currentColor;stroke-width:2}.hockey-fig .hf-helmet{fill:currentColor;stroke:none}.hockey-fig .hf-shadow{fill:currentColor;opacity:.12}.hockey-fig .hf-floor{stroke:var(--ice-2);stroke-width:3}.hockey-fig .hf-leg-l{transform-origin:46px 58px;transform-box:fill-box}.hockey-fig .hf-leg-r{transform-origin:54px 58px;transform-box:fill-box}.hockey-fig .hf-arm-l{transform-origin:40px 36px;transform-box:fill-box}.hockey-fig .hf-arm-r{transform-origin:60px 36px;transform-box:fill-box}.hockey-fig .hf-torso{transform-origin:50px 54px;transform-box:fill-box}.hockey-fig .hf-player{transform-origin:50px 112px;transform-box:fill-box}.ev-lg .hockey-fig{width:120px;height:144px}.exercise-gif{display:block;width:96px;height:96px;object-fit:contain;border-radius:14px;background:#eef3f8}.ev-sm .exercise-gif{width:72px;height:72px}.ev-lg{flex-direction:column;align-items:center;justify-content:center;width:100%;margin-inline:auto}.ev-lg .exercise-gif{width:min(100%,280px);height:auto;aspect-ratio:1;object-fit:contain;margin:8px auto 0;border-radius:18px;border:3px solid var(--rink-line)}.timer-card .exercise-visual{background:transparent;padding:0;width:100%}.hockey-fig:not(.ev-anim-skate) .hf-stick-skate{opacity:0}.ev-anim-march .hf-leg-l{animation:hf-leg-swing-l .72s cubic-bezier(.45,0,.55,1) infinite}.ev-anim-march .hf-leg-r{animation:hf-leg-swing-r .72s cubic-bezier(.45,0,.55,1) infinite}.ev-anim-march .hf-torso{animation:hf-torso-bob .72s ease-in-out infinite}.ev-anim-squat .hf-leg-l{animation:hf-squat-leg-l 1.05s cubic-bezier(.42,0,.2,1) infinite}.ev-anim-squat .hf-leg-r{animation:hf-squat-leg-r 1.05s cubic-bezier(.42,0,.2,1) infinite}.ev-anim-squat .hf-torso{animation:hf-squat-torso 1.05s cubic-bezier(.42,0,.2,1) infinite}.ev-anim-lunge .hf-leg-l{animation:hf-lunge-front 1.15s ease-in-out infinite}.ev-anim-lunge .hf-leg-r{animation:hf-lunge-back 1.15s ease-in-out infinite}.ev-anim-lunge .hf-torso{animation:hf-lunge-torso 1.15s ease-in-out infinite}.ev-anim-jump .hf-player{animation:hf-hop .55s cubic-bezier(.34,1.2,.64,1) infinite}.ev-anim-jump .hf-arm-l{animation:hf-jack-arm-l .55s ease-in-out infinite}.ev-anim-jump .hf-arm-r{animation:hf-jack-arm-r .55s ease-in-out infinite}.ev-anim-jump .hf-leg-l{animation:hf-jack-leg-l .55s ease-in-out infinite}.ev-anim-jump .hf-leg-r{animation:hf-jack-leg-r .55s ease-in-out infinite}.ev-anim-balance .hf-leg-r{animation:hf-balance-lift 1.25s ease-in-out infinite}.ev-anim-balance .hf-arm-l,.ev-anim-balance .hf-arm-r{animation:hf-balance-arms 1.25s ease-in-out infinite}.ev-anim-balance .hf-torso{animation:hf-balance-tilt 1.25s ease-in-out infinite}.ev-anim-plank .hf-player{transform:translate(6px,22px) rotate(-90deg)}.ev-anim-plank .hf-torso,.ev-anim-plank .hf-leg-l,.ev-anim-plank .hf-leg-r{animation:hf-plank-hold 1.6s ease-in-out infinite}.ev-anim-stretch .hf-arm-l{animation:hf-reach-up-l 1.4s ease-in-out infinite}.ev-anim-stretch .hf-arm-r{animation:hf-reach-up-r 1.4s ease-in-out infinite}.ev-anim-stretch .hf-torso{animation:hf-fold 1.4s ease-in-out infinite}.ev-anim-skate .hf-player{animation:hf-stride-slide .95s cubic-bezier(.45,0,.55,1) infinite}.ev-anim-skate .hf-leg-l{animation:hf-stride-push .95s ease-in-out infinite}.ev-anim-skate .hf-leg-r{animation:hf-stride-recover .95s ease-in-out infinite}.ev-anim-skate .hf-stick-skate{opacity:1;animation:hf-stick-pump .95s ease-in-out infinite;transform-origin:62px 38px}.ev-anim-goalie .hf-player{animation:hf-goalie-low 1.1s ease-in-out infinite}.ev-anim-goalie .hf-leg-l,.ev-anim-goalie .hf-leg-r{animation:hf-goalie-shuffle 1.1s ease-in-out infinite}.ev-anim-goalie .hf-arm-l,.ev-anim-goalie .hf-arm-r{animation:hf-goalie-glove 1.1s ease-in-out infinite}.ev-anim-arms .hf-arm-l{animation:hf-circle-l 1.25s linear infinite}.ev-anim-arms .hf-arm-r{animation:hf-circle-r 1.25s linear infinite}.ev-anim-default .hf-torso{animation:hf-ready-breathe 2s ease-in-out infinite}@keyframes hf-leg-swing-l{0%,to{transform:rotate(-14deg)}50%{transform:rotate(10deg)}}@keyframes hf-leg-swing-r{0%,to{transform:rotate(10deg)}50%{transform:rotate(-14deg)}}@keyframes hf-torso-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes hf-squat-leg-l{0%,to{transform:rotate(0)}45%,55%{transform:rotate(38deg)}}@keyframes hf-squat-leg-r{0%,to{transform:rotate(0)}45%,55%{transform:rotate(-38deg)}}@keyframes hf-squat-torso{0%,to{transform:translateY(0)}45%,55%{transform:translateY(7px)}}@keyframes hf-lunge-front{0%,to{transform:rotate(0)}50%{transform:rotate(42deg)}}@keyframes hf-lunge-back{0%,to{transform:rotate(0)}50%{transform:rotate(-18deg)}}@keyframes hf-lunge-torso{0%,to{transform:translate(0)}50%{transform:translate(3px,4px)}}@keyframes hf-hop{0%,to{transform:translateY(0)}35%{transform:translateY(-14px)}}@keyframes hf-jack-arm-l{0%,to{transform:rotate(0)}50%{transform:rotate(-58deg)}}@keyframes hf-jack-arm-r{0%,to{transform:rotate(0)}50%{transform:rotate(58deg)}}@keyframes hf-jack-leg-l{0%,to{transform:rotate(0)}50%{transform:rotate(-22deg)}}@keyframes hf-jack-leg-r{0%,to{transform:rotate(0)}50%{transform:rotate(22deg)}}@keyframes hf-balance-lift{0%,to{transform:rotate(-52deg)}50%{transform:rotate(-48deg)}}@keyframes hf-balance-arms{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}@keyframes hf-balance-tilt{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes hf-plank-hold{0%,to{transform:translateY(0)}50%{transform:translateY(2px)}}@keyframes hf-reach-up-l{0%,to{transform:rotate(-20deg)}50%{transform:rotate(-95deg)}}@keyframes hf-reach-up-r{0%,to{transform:rotate(20deg)}50%{transform:rotate(95deg)}}@keyframes hf-fold{0%,to{transform:rotate(0)}50%{transform:rotate(12deg)}}@keyframes hf-stride-slide{0%,to{transform:translate(-4px)}50%{transform:translate(6px)}}@keyframes hf-stride-push{0%,to{transform:rotate(0)}50%{transform:rotate(28deg)}}@keyframes hf-stride-recover{0%,to{transform:rotate(0)}50%{transform:rotate(-12deg)}}@keyframes hf-stick-pump{0%,to{transform:rotate(0)}50%{transform:rotate(-8deg)}}@keyframes hf-goalie-low{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes hf-goalie-shuffle{0%,to{transform:rotate(8deg)}50%{transform:rotate(-8deg)}}@keyframes hf-goalie-glove{0%,to{transform:rotate(0)}50%{transform:rotate(6deg)}}@keyframes hf-circle-l{to{transform:rotate(360deg)}}@keyframes hf-circle-r{to{transform:rotate(-360deg)}}@keyframes hf-ready-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@media(prefers-reduced-motion:reduce){.hockey-fig .hf-leg-l,.hockey-fig .hf-leg-r,.hockey-fig .hf-arm-l,.hockey-fig .hf-arm-r,.hockey-fig .hf-torso,.hockey-fig .hf-player,.hockey-fig .hf-stick-skate{animation:none!important}}html[data-motion=reduce] .hockey-fig .hf-leg-l,html[data-motion=reduce] .hockey-fig .hf-leg-r,html[data-motion=reduce] .hockey-fig .hf-arm-l,html[data-motion=reduce] .hockey-fig .hf-arm-r,html[data-motion=reduce] .hockey-fig .hf-torso,html[data-motion=reduce] .hockey-fig .hf-player,html[data-motion=reduce] .hockey-fig .hf-stick-skate{animation:none!important}.custom-workout-page .exercise-pick-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.exercise-pick{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:2px solid var(--ice-2);border-radius:14px;padding:8px;background:var(--card);cursor:pointer}.coach-tips .tip-list{margin:0 0 10px;padding-left:1.1rem}.coach-tips .tip-coach{color:var(--text)}.coach-tips .tip-safety{color:var(--sun-text)}.cw-item-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.cw-item-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.custom-workout-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.detail-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}.exit-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.ev-lg{gap:12px;padding:8px 0 0;margin:8px auto 0}.frames{display:flex;gap:2px;font-size:1.1rem}.ev-lg .frames{font-size:1.8rem;flex-direction:column}.frame{animation:frame-pop 1.8s ease-in-out infinite}@keyframes frame-pop{0%,to{transform:scale(1)}15%{transform:scale(1.3)}30%{transform:scale(1)}}.player-head{display:flex;align-items:center;gap:10px}.player-title{font-size:1.3rem;margin:0}.player-progress{height:12px;background:var(--ice-2);border-radius:999px;overflow:hidden}.player-progress span{display:block;height:100%;background:var(--orange)}.timer-card{text-align:center;border:5px solid var(--orange-bright)}.timer-card.rest{border-color:#38bdf8;background:var(--sky-bg)}.timer-card.cue{animation:cue-flash .6s ease-out}@keyframes cue-flash{0%{box-shadow:0 0 0 12px #ff7a1a8c}to{box-shadow:var(--shadow)}}.seg-kind{margin:0;font-weight:800;color:var(--muted)}.seg-label{font-size:1.7rem;margin:4px 0 0}.seg-detail{margin:2px 0 0;font-weight:800;color:var(--accent-text)}.big-timer{font-size:5.5rem;font-weight:900;line-height:1.05;font-variant-numeric:tabular-nums;margin:6px 0}.timer-card.ending .big-timer{color:var(--accent-text)}.seg-target,.seg-step{margin:4px 0 0;font-weight:700}.player-controls{display:flex;align-items:center;justify-content:center;gap:16px}.btn-ctrl{width:64px;height:64px;font-size:1.6rem}.btn-play{min-width:160px;min-height:72px;font-size:1.4rem}.player-extras{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.celebrate-card{text-align:center;background:linear-gradient(135deg,var(--warm-1) 0%,var(--warm-2) 100%)}.celebrate-emoji{font-size:3rem;margin:0}.celebrate-line{font-size:1.1rem;font-weight:700}.how{margin:-6px 0 12px}.bench-card h3{margin:0 0 6px}.bench-nums{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0}.bench-msg{font-weight:800;margin:6px 0}.bench-msg.new-best{color:var(--green-text)}.line-chart{width:100%;max-width:320px;height:auto;display:block}.line-chart .axis{stroke:var(--ice-2);stroke-width:2}.line-chart .line{fill:none;stroke:var(--blue);stroke-width:4;stroke-linejoin:round}.line-chart .dot{fill:var(--blue)}.line-chart .dot.latest{fill:var(--orange)}.selfcheck-page .minutes-input{width:140px}@media(min-width:1024px){.home-page{grid-template-areas:"greet greet" "mantra mantra" "stats week" "msg msg" "cta cta" "tile fit" "empty empty" "privacy privacy"}.home-page>.btn-cta{max-width:480px;justify-self:center}.home-page>.fitness-tile{grid-area:fit}.fitness-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"title status" "goal wod" "safety check" "drills goalie" "mine mine" "library history";align-items:start;gap:20px}.fitness-page>h1{grid-area:title}.fitness-page>.saved-msg{grid-area:status;margin:0;align-self:center}.fitness-page>h1{margin:0}.fitness-page>.saved-msg:empty{display:none}.fitness-page>.goal-card{grid-area:goal;align-self:stretch}.fitness-page>.wod-card{grid-area:wod;align-self:stretch}.fitness-page>.safety-note{grid-area:safety;align-self:stretch}.fitness-page>.selfcheck-tile{grid-area:check;align-self:stretch}.fitness-page>.drills-tile{grid-area:drills;align-self:stretch;height:100%}.fitness-page>.goalie-tile{grid-area:goalie;align-self:stretch;height:100%}.fitness-page>.my-workouts{grid-area:mine}.fitness-page>.library{grid-area:library}.fitness-page>.history{grid-area:history}.exercise-list,.bench-list{grid-template-columns:repeat(2,minmax(0,1fr))}.player-page{max-width:640px;margin:0 auto;width:100%}}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .frame,html:not([data-motion=full]) .timer-card.cue{animation:none}html:not([data-motion=full]) .ring-fg{transition:none}}.jump-chips{display:flex;flex-wrap:wrap;gap:8px}.jump-chips .btn{flex:1 1 auto}.mindset-page section[id]{scroll-margin-top:16px}.checkin-card{border-bottom:6px solid #22a06b}.checkin-intro{margin:-4px 0 14px}.checkin-result{display:flex;flex-direction:column;gap:10px}.checkin-summary{display:flex;flex-wrap:wrap;gap:8px;margin:0}.checkin-summary span{background:var(--ice);border-radius:999px;padding:6px 12px;font-weight:800}.checkin-headline{font-size:1.35rem;font-weight:900;margin:0}.checkin-tip{margin:0;padding:12px 14px;border-radius:14px;background:var(--warm-bg);font-weight:700;font-size:1.1rem}.support-line{margin:0;color:var(--muted);font-weight:700}.support-line.support-strong{color:var(--text);background:var(--sky-bg);padding:10px 14px;border-radius:14px}.wins-card{border-bottom:6px solid var(--orange-bright)}.win-of-week{background:linear-gradient(135deg,var(--warm-1) 0%,var(--warm-2) 100%);border-radius:16px;padding:12px 14px;margin:10px 0 14px}.win-of-week .eyebrow{margin:0 0 4px;color:var(--accent-text);font-weight:900}.win-of-week-text{margin:0;font-size:1.2rem;font-weight:900;overflow-wrap:anywhere}.win-text{font-weight:700;overflow-wrap:anywhere}.list-title{font-size:1.05rem;margin:18px 0 6px}.mantra-picker .mantra-box{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);color:var(--white);border-radius:16px;padding:14px 16px}.mantra-picker .mantra-box .eyebrow{color:var(--on-navy-soft);margin:0 0 6px}.mantra-controls{display:flex;gap:8px;margin-top:12px}.mantra-controls .btn{flex:1;padding:10px 8px}.fav-toggle.selected{background:var(--warm-bg);color:var(--text);box-shadow:inset 0 0 0 3px var(--orange-bright)}.fav-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.fav-list li{display:flex;align-items:center;gap:10px;justify-content:space-between;background:var(--ice);border-radius:14px;padding:6px 6px 6px 14px;font-weight:700}.fav-list .btn{background:var(--surface)}.shout-card{border-bottom:6px solid var(--blue)}.tally{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;text-align:center}.tally-box{background:var(--ice);border-radius:14px;padding:10px 4px;display:flex;flex-direction:column;font-weight:700;font-size:.9rem}.tally-box strong{font-size:1.8rem;font-weight:900}.tally-msg{font-weight:800;margin:10px 0 0}.badge-count{font-weight:800;margin:-6px 4px 0}.badge-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.badge-tile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:12px 8px;border-radius:16px;background:var(--ice);border:3px dashed var(--ice-2)}.badge-tile.earned{background:linear-gradient(160deg,var(--sun-bg) 0%,var(--warm-2) 100%);border:3px solid var(--orange-bright)}.badge-emoji{font-size:2.4rem;line-height:1.1}.badge-tile.locked .badge-emoji{filter:grayscale(1);opacity:.55}.badge-name{font-size:1rem}.badge-desc{font-size:.85rem;color:var(--muted)}.badge-earned{font-weight:800;color:var(--green-text);font-size:.9rem}.badge-progress{width:100%;height:12px;accent-color:var(--blue)}.badge-progress-text{font-weight:800;font-size:.9rem}.badge-strip-list{list-style:none;padding:0;margin:0 0 10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.badge-strip-list li{display:flex;flex-direction:column;align-items:center;text-align:center;background:linear-gradient(160deg,var(--sun-bg) 0%,var(--warm-2) 100%);border-radius:14px;padding:8px 4px;font-weight:800;font-size:.8rem}.strip-emoji{font-size:1.8rem}.strip-name{overflow-wrap:anywhere}.badge-strip .btn{width:100%}.celebration-backdrop{position:fixed;inset:0;z-index:50;background:#0b25458c;display:grid;place-items:center;padding:16px}.celebration{position:relative;max-width:420px;width:100%;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:hidden;display:flex;flex-direction:column;text-align:center;border:4px solid var(--orange-bright);animation:pop-in .35s ease-out}.celebration-list{overflow-y:auto;min-height:0;flex:1 1 auto}.celebration>.form-actions,.celebration>h2,.celebration>.celebration-line,.celebration>.pucky{flex:none}.celebration h2{font-size:1.5rem;margin-top:28px}.celebration-list{list-style:none;padding:0;margin:0 0 8px;display:grid;gap:8px;text-align:left}.celebration-list li{display:flex;align-items:center;gap:12px;background:linear-gradient(160deg,var(--sun-bg) 0%,var(--warm-2) 100%);border-radius:14px;padding:10px 12px}.celebration-emoji{font-size:2.4rem}.celebration-desc{display:block;margin:0}.celebration-line{font-weight:800}.confetti{position:absolute;inset:0 0 auto;height:40px;pointer-events:none}.confetti span{position:absolute;top:4px;font-size:1.3rem;animation:confetti-bounce 1.2s ease-in-out infinite alternate}@keyframes pop-in{0%{transform:scale(.85)}to{transform:scale(1)}}@keyframes confetti-bounce{0%{transform:translateY(0) rotate(-10deg)}to{transform:translateY(8px) rotate(10deg)}}@media(min-width:768px){.badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.home-page{grid-template-areas:"greet greet" "mantra mantra" "stats week" "msg msg" "cta cta" "tile fit" "mind strip" "empty empty" "privacy privacy"}.home-page>.mindset-tile{grid-area:mind;align-self:start}.home-page>.badge-strip{grid-area:strip}.mindset-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"title badges" "intro badges" "checkin wins" "mantra shout" "privacy privacy";align-items:start;gap:20px}.mindset-page>h1{grid-area:title;margin:0}.mindset-page>.intro{grid-area:intro;margin:0}.mindset-page>.jump-chips{display:none}.mindset-page>.badges-tile{grid-area:badges}.mindset-page>.checkin-card{grid-area:checkin}.mindset-page>.wins-card{grid-area:wins}.mindset-page>.mantra-picker{grid-area:mantra}.mindset-page>.shout-card{grid-area:shout}.mindset-page>.privacy-note{grid-area:privacy}.badges-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px}.badges-page>.back-btn,.badges-page>h1,.badges-page>.intro,.badges-page>.badge-count,.badges-page>.privacy-note{grid-column:1 / -1}.badges-page>h1,.badges-page>.intro,.badges-page>.badge-count{margin:0}.badges-page>.back-btn{justify-self:start}}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .celebration,html:not([data-motion=full]) .confetti span{animation:none}}.team-card{border-top:6px solid var(--blue)}.team-card>h2{margin-bottom:10px}.team-progress .goal-row{align-items:center}.team-ring{width:124px;height:124px}.team-ring .ring-fg{stroke:var(--blue)}.team-ring.met .ring-fg{stroke:#15803d}.team-ring .ring-num{font-size:28px}.team-total{margin:2px 0 8px;font-size:1.05rem;color:var(--muted);font-weight:700}.team-total strong{font-size:1.9rem;color:var(--text);font-weight:900}.team-bar{display:block;height:14px;border-radius:999px;background:var(--ice-2);overflow:hidden}.team-bar>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),#38bdf8);transition:width .6s ease}.team-bar.small{height:10px;margin-top:8px;max-width:260px}.team-days{margin:8px 0 0;font-weight:800;color:var(--text)}.team-streak{margin:14px 0 0;font-weight:800;color:var(--accent-text)}.team-cheer{margin:8px 0 0;padding:10px 14px;border-radius:14px;background:var(--warm-1);font-weight:800;color:var(--text)}.team-notice{margin:0 0 14px;padding:12px 14px;border-radius:14px;background:var(--ice);border-left:6px solid var(--blue)}.team-notice .hint{margin-top:4px}.team-notice.paused{margin:14px 0 0;border-left-color:var(--orange-bright);font-weight:700}.team-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.team-code-big{margin:0;font-size:2.4rem;font-weight:900;letter-spacing:4px;color:var(--text);background:var(--ice);border:3px dashed var(--blue);border-radius:16px;text-align:center;padding:10px 6px;font-variant-numeric:tabular-nums}.team-code-card .btn{margin-top:12px}.switch-row{display:flex;align-items:center;gap:14px;cursor:pointer;min-height:48px}.switch-row input{appearance:none;flex:none;width:56px;height:32px;border-radius:999px;background:#94a3b8;position:relative;cursor:pointer;transition:background .2s}.switch-row input:after{content:"";position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:var(--surface);transition:transform .2s}.switch-row input:checked{background:var(--orange)}.switch-row input:checked:after{transform:translate(24px)}.switch-row input:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.switch-row>span{display:flex;flex-direction:column}.goal-presets{margin-bottom:4px}.goal-presets .btn.selected{background:var(--navy);color:var(--white)}.date-row{display:grid;grid-template-columns:minmax(0,1fr);column-gap:12px}@media(min-width:560px){.date-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.field input.code-input{font-size:1.6rem;font-weight:900;letter-spacing:3px;text-transform:uppercase}.goal-form .field input[type=text]{max-width:220px}.shared-list{margin:0;padding-left:20px;display:grid;gap:8px}.shared-now{border-left:6px solid #15803d}.confirm-dialog{max-width:420px;width:100%}.confirm-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .team-bar>span,html:not([data-motion=full]) .switch-row input,html:not([data-motion=full]) .switch-row input:after{transition:none}}@media(min-width:1024px){.team-page{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);grid-auto-flow:row dense;align-items:start;gap:20px}.team-page>h1,.team-page>.saved-msg,.team-page>.error{grid-column:1 / -1}.team-page>.team-card,.team-page>.game-link-card{grid-column:1}.team-page>.team-code-card,.team-page>.grownup-card{grid-column:2}.team-form-page,.shared-page{max-width:760px}}@media(min-width:1024px){.home-page{grid-template-areas:"greet greet" "mantra mantra" "stats week" "msg msg" "cta cta" "tile fit" "mind strip" "team strip" "empty empty" "privacy privacy"}.home-page>.team-tile{grid-area:team;align-self:start}}.field input[type=time],.field select{width:100%;min-height:48px;font:inherit;font-size:1.1rem;padding:10px 14px;border-radius:14px;border:3px solid var(--ice-2);color:var(--text);background:var(--surface);max-width:100%}.field textarea{width:100%}.field .label{font-weight:800;font-size:1.1rem;margin-bottom:10px;display:block}.field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:12px}.field-row .field-narrow{min-width:0}.hint.block,.block{display:block}.back-btn{align-self:flex-start;justify-self:start}.plan-section .field{margin:12px 0 0}.plan-side,.plan-main{display:contents;flex-direction:column;gap:16px;min-width:0}.section-title{font-size:1.2rem;margin:20px 4px 10px}.coach-tiles{display:grid;gap:12px}.principles{margin:12px 4px 0}.coach-mode-card{border-left:6px solid var(--orange-bright)}.coach-mode-card .btn{margin-top:8px}.coach-phones,.simple-list,.drill-list,.event-list,.potd-blocks,.note-history,.attendance-list,.spot-list,.check-list,.tip-list,.block-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.coach-phones li,.simple-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 12px;border-radius:14px;background:var(--ice);min-width:0}.simple-list li>span:first-child{min-width:0;overflow-wrap:anywhere}.row-actions{display:flex;flex-wrap:wrap;gap:8px}.drill-item{width:100%;text-align:left;display:flex;align-items:center;gap:12px;margin:0}.drill-facts{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:8px}.drill-facts li{background:var(--surface);border-radius:999px;padding:6px 14px;font-weight:800;box-shadow:var(--shadow)}.drill-diagram{margin:0 0 12px}.drill-diagram svg{width:100%;height:auto;display:block;background:#e7f6ff;border-radius:14px;border:3px solid var(--ice-2)}.drill-diagram-thumb{width:112px;flex:0 0 112px;margin:0}.drill-diagram-thumb svg{border-width:2px;border-radius:10px}.drill-diagram-demo svg{box-shadow:var(--shadow)}.demo-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:8px}.demo-controls .hint{margin:0}.diagram-legend{list-style:none;background:#f4fbff;color:#0b2545;border-radius:10px;padding:6px 10px;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.9rem;font-weight:700}.cue-list{margin:0;padding-left:22px;display:grid;gap:6px}.safety-card{border-left:6px solid #15803d}.budget-bar{height:22px;border-radius:999px;background:var(--ice-2);overflow:hidden}.budget-bar>span{display:block;height:100%;background:linear-gradient(90deg,#15803d,#22c55e);border-radius:999px;transition:width .3s}.budget-bar.over>span{background:linear-gradient(90deg,var(--orange),var(--orange-bright))}.budget-text{margin:8px 0 0;font-weight:700}.stepper output{min-width:72px;text-align:center;font-size:1.3rem;font-weight:900}.stepper-small{gap:6px}.stepper-small output{min-width:56px;font-size:1rem}.plan-section h2{font-size:1.15rem}.plan-block{background:var(--ice);border-radius:14px;padding:10px 12px}.plan-block-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;overflow-wrap:anywhere}.plan-block .btn-ghost,.event-row .btn-ghost,.simple-list .btn-ghost,.coach-phones .btn-ghost,.potd-card .btn-ghost{background:var(--surface)}.plan-block .btn-ghost:disabled{opacity:.35}.plan-block-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.link-btn{background:none;border:none;padding:10px 0;min-height:44px;font:inherit;font-weight:800;color:var(--text);text-decoration:underline;cursor:pointer;text-align:left}.check-list li,.tip-list li{display:flex;gap:10px;align-items:flex-start}.tip-list{margin:0 0 14px;padding:12px 14px;background:var(--warm-soft);border-radius:14px;font-weight:700}.share-card{border-left:6px solid var(--blue)}.potd-blocks li{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;background:var(--ice);border-radius:12px}.potd-title{margin-top:0}.event-row{display:grid;gap:8px;padding:10px 12px;background:var(--ice);border-radius:14px}.event-main{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}.event-when{font-weight:800}.event-actions{display:flex;flex-wrap:wrap;gap:8px}.spot-list li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:center;gap:10px}.spot-list label{font-weight:800}.spot-list select{width:100%;min-height:48px;font:inherit;padding:8px 10px;border-radius:14px;border:3px solid var(--ice-2);background:var(--surface);color:var(--text)}.lineup-line{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:2px solid var(--ice)}.shift-table{width:100%;border-collapse:collapse;margin-top:10px}.shift-table th,.shift-table td{text-align:left;padding:8px 10px;border-bottom:2px solid var(--ice)}.big-count{font-size:1.3rem;font-weight:900;margin:0}.attendance-row{display:grid;gap:10px;margin:0}.seg{display:flex;flex-wrap:wrap;gap:8px}.seg .btn{flex:1 1 0}.note-history li p{margin:4px 0;overflow-wrap:anywhere}.next-up-tile{border-left:6px solid var(--blue)}.print-page article{background:var(--surface);padding:16px;border-radius:14px}@media(min-width:768px){.coach-tiles{grid-template-columns:1fr 1fr}.attendance-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}}@media(min-width:1024px){.plan-builder-page{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);grid-template-rows:auto auto auto 1fr;align-items:start;gap:16px 20px}.plan-builder-page>.back-btn,.plan-builder-page>h1{grid-column:1 / -1}.plan-builder-page>.plan-side,.plan-builder-page>.plan-main{display:flex}.plan-builder-page>.plan-main{grid-column:1;grid-row:3 / span 2}.plan-builder-page>.plan-side{grid-column:2;grid-row:3}.plan-builder-page>.plan-side-end{grid-row:4}.coach-page,.drill-library-page,.drill-detail-page,.schedule-page,.roster-page,.dev-notes-page,.attendance-page,.lineup-page{max-width:820px}.home-page>.next-up-tile{grid-area:next;align-self:start}.home-page{grid-template-areas:"greet greet" "mantra mantra" "stats week" "msg msg" "cta cta" "tile fit" "mind strip" "team strip" "next strip" "empty empty" "privacy privacy"}}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .budget-bar>span{transition:none}}@media print{.top-bar,.bottom-nav,.no-print{display:none!important}body,.app-shell,.content{background:#fff!important;padding:0!important}.print-page article{box-shadow:none;padding:0}}.diagram-legend .lg{display:inline-block;width:22px;height:0;vertical-align:middle;border-top:3px solid #0b2545;margin-right:4px}.diagram-legend .lg-back{border-top-style:dotted}.diagram-legend .lg-carry{border-top-style:dashed;border-top-width:4px}.diagram-legend .lg-pass{border-top-style:dashed}.diagram-legend .lg-shot{border-top-width:4px;border-top-color:#c2410c}.diagram-legend .lg-cone{width:0;height:0;border-top:none;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:12px solid #ea580c}.drill-library-page .chips .btn-ghost:not(.selected),.lineup-page .chips .btn-ghost:not(.selected){background:var(--surface)}.drill-list .tile-text strong{font-size:1.1rem}.unpublish-btn{align-self:flex-start;background:var(--surface)}html[data-motion=reduce] *,html[data-motion=reduce] *:before,html[data-motion=reduce] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.top-bar{position:relative}.gear-btn{position:absolute;right:8px;bottom:2px;min-width:48px;min-height:48px;border:0;border-radius:14px;background:transparent;color:var(--white);font-size:1.5rem;cursor:pointer}.gear-btn:hover{background:var(--navy-2)}.gear-btn:focus-visible{outline:3px solid var(--orange-bright);outline-offset:-3px}.onboarding-card{display:flex;flex-direction:column;align-items:center;gap:10px}.onboarding-top{width:100%;display:flex;justify-content:space-between;align-items:center;min-height:44px}.onboarding-step{font-weight:800;color:var(--muted)}.onboarding-art{font-size:4.5rem;line-height:1.1;margin:8px 0}.onboarding-card h1:focus{outline:none}.onboarding-text{font-size:1.1rem;max-width:34ch}.onboarding-dots{display:flex;gap:8px;margin:6px 0}.onboarding-dots span{width:10px;height:10px;border-radius:50%;background:var(--ice-2)}.onboarding-dots span.on{background:var(--orange);width:26px;border-radius:6px}.onboarding-actions{width:100%;display:flex;gap:10px}.onboarding-actions .btn{margin-top:0}.onboarding-actions .btn-primary{flex:1}.settings-page input:not([type=radio]):not([type=file]),.confirm-dialog input{width:100%;font:inherit;font-size:1.05rem;padding:10px 12px;min-height:48px;border-radius:14px;border:3px solid var(--ice-2);color:var(--text)}.inline-form label,.field-label,.target-picker legend{display:block;font-weight:800;margin-bottom:8px}.inline-row{display:flex;gap:8px}.inline-row input{flex:1;min-width:0}.target-picker,.radio-list{border:0;padding:0;margin:0 0 12px;min-width:0}.chip-btn{font:inherit;font-weight:800;color:var(--text);min-width:48px;justify-content:center}.chip-btn:focus-visible{outline:3px solid var(--orange-bright);outline-offset:2px}.settings-sub{font-size:1rem;margin:8px 0 4px}.radio-row{display:flex;align-items:center;gap:12px;min-height:52px;padding:6px 10px;border-radius:14px;cursor:pointer}.radio-row:has(input:checked){background:var(--ice)}.radio-row input{width:24px;height:24px;accent-color:var(--text);flex:none}.radio-row .hint{display:block;margin:2px 0 0}.settings-actions{display:flex;flex-direction:column;gap:10px}.danger-zone{border-top:6px solid var(--danger)}.about-card p{margin:6px 0}.safety-line{font-weight:700}.warning-box{background:var(--warm-soft);border:2px solid #fdba74;color:var(--warn-text);border-radius:14px;padding:10px 12px}.error-box{background:var(--danger-bg);border:2px solid #fca5a5;border-radius:14px;padding:10px 12px}.file-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.file-btn:has(input:focus-visible){outline:3px solid var(--orange-bright);outline-offset:2px}.import-preview{border-top:6px solid var(--blue)}.import-preview h2:focus{outline:none}.count-list{columns:2;margin:8px 0;padding-left:20px}.not-found-card{text-align:center}@media(min-width:1024px){.settings-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.settings-page>.back-btn,.settings-page>h1,.settings-page>.saved-msg{grid-column:1 / -1}}.settings-page>.saved-msg:empty,.backup-page>.saved-msg:empty{display:none}.update-toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--nav-h) + 12px + env(safe-area-inset-bottom));z-index:40;width:min(560px,calc(100% - 24px));display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;background:var(--navy);color:var(--white);font-weight:700;padding:10px 12px 10px 16px;border-radius:18px;box-shadow:0 8px 24px #0b25454d}.update-actions{display:flex;gap:8px;margin-left:auto}.update-toast .btn-ghost{background:transparent;color:var(--white);border-color:var(--white)}.error-toast{background:#7f1d1d}.loading-msg{font-weight:800;font-size:1.15rem}.loading-puck{display:inline-block;animation:puck-wiggle 1s ease-in-out infinite alternate}@keyframes puck-wiggle{0%{transform:rotate(-12deg)}to{transform:rotate(12deg)}}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .loading-puck{animation:none}}main h1[tabindex="-1"]:focus{outline:none}.onboarding-card h1,.onboarding-card .onboarding-text{margin:0}.recovery-card{text-align:center}.recovery-actions{display:grid;gap:12px;margin-top:16px}.recovery-confirm{text-align:left}.erase-list{margin:8px 0;padding-left:22px;line-height:1.5;text-align:left}.erased-card .erase-list{list-style:none;padding-left:0}.check-row{display:flex;gap:10px;align-items:flex-start;margin:12px 0;min-height:44px}.check-row input{width:24px;height:24px;flex:none;margin-top:2px}.check-row .hint{display:block}.install-steps{margin:8px 0;padding-left:22px;line-height:1.5}.install-steps li+li{margin-top:6px}.install-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}a.install-download{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;text-align:center}.legs-faces{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.legs-face{font-size:1.05rem}.readiness-advice p{margin:8px 0}.readiness-actions{display:flex;flex-wrap:wrap;gap:8px}.consent-check{display:flex;align-items:flex-start;gap:12px;min-height:48px;cursor:pointer;margin-bottom:12px}.consent-check input{flex:none;width:28px;height:28px;margin:2px 0 0;accent-color:var(--orange)}.consent-check input:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.pucky{display:block;flex:none;overflow:visible}.pucky-cheer .pucky-body{animation:pucky-bounce 1.6s ease-in-out infinite;transform-origin:60px 100px}.pucky-calm .pucky-body{animation:pucky-breathe 4s ease-in-out infinite;transform-origin:60px 100px}.pucky-thinking .pucky-body{animation:pucky-tilt 3s ease-in-out infinite;transform-origin:60px 100px}.pucky-proud .pucky-sparkle{animation:pucky-twinkle 1.8s ease-in-out infinite;transform-origin:60px 20px}@keyframes pucky-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pucky-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes pucky-tilt{0%,to{transform:rotate(0)}50%{transform:rotate(-4deg)}}@keyframes pucky-twinkle{0%,to{opacity:1}50%{opacity:.5}}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .pucky *{animation:none!important}}html[data-motion=reduce] .pucky *{animation:none!important}.pucky-says{display:flex;align-items:center;gap:12px;margin:8px 0 12px}.pucky-line{margin:0;font-weight:700;color:var(--text)}.pucky-line .empty-hint{margin:0}.celebration-pucky{margin:0 auto 4px}.not-found-card .pucky{margin:0 auto 8px}.rink-level{margin:0 0 6px;font-size:1.1rem}.rink-svg{width:100%;height:auto;display:block}.rink-ice{fill:var(--ice);stroke:var(--rink-line);stroke-width:3}.rink-blue{stroke:var(--blue);stroke-width:3}.rink-red{stroke:#d64545;stroke-width:3}.rink-path{stroke:var(--rink-line);stroke-width:2;stroke-dasharray:4 4}.rink-dot{fill:var(--surface);stroke:var(--muted);stroke-width:2}.rink-dot.reached{fill:var(--orange-bright);stroke:var(--orange)}.rink-puck{fill:var(--text);transition:transform .8s ease-out}.rink-bar{height:12px;border-radius:999px;background:var(--ice-2);overflow:hidden;margin:8px 0 4px}.rink-bar>span{display:block;height:100%;background:var(--orange-bright);border-radius:999px}.rink-levels{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:4px 0;margin:6px 0}.rink-levels li{flex:none;padding:4px 10px;border-radius:999px;border:2px solid var(--ice-2);font-weight:700;font-size:.95rem;color:var(--muted)}.rink-levels li.reached{border-color:var(--orange-bright);color:var(--text)}.rink-how summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:800;color:var(--link)}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .rink-puck{transition:none}}.breathe-box{display:grid;justify-items:center;gap:8px}.breathe-circle{width:140px;height:140px;border-radius:50%;display:grid;place-items:center;background:var(--sky-bg);border:4px solid var(--rink-line);animation:breathe 8s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(.9)}50%{transform:scale(1.08)}}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .breathe-circle{animation:none}}html[data-motion=reduce] .breathe-circle{animation:none}.reset-done{text-align:center}.reset-done .pucky{margin:0 auto}.reset-finish{font-weight:800;font-size:1.1rem}.mantra-quote{font-style:italic;font-weight:700}.support-line{font-weight:700;color:var(--text)}.reset-note{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.reset-note p{margin:2px 0}.drill-cards{list-style:none;padding:0;margin:0;display:grid;gap:10px}.drill-cards .shortcut-tile{width:100%}.skill-filter{border:0;padding:0;margin:8px 0 12px}.safety-rules{font-weight:700}.drill-page .steps{padding-left:22px;line-height:1.5}.focus-drills{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.focus-drills .hint{margin:0;width:100%}.tip-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.tip-list p{margin:2px 0 0}.reset-steps{padding-left:22px;font-weight:700;line-height:1.7}.goalie-page .mantra-card .mantra{margin:4px 0;font-size:1.15rem}.summary-list{padding-left:20px;line-height:1.6;margin:0}.summary-text{width:100%;font:inherit;font-size:.95rem;color:var(--text);background:var(--surface);border:2px solid var(--ice-2);border-radius:12px;padding:10px}@media print{.no-print,.bottom-nav,.top-bar,.pucky-says{display:none!important}}.recharge-row{margin:-4px 0 12px}.recharge-row .hint{margin:4px 0 0}.recharge-row .btn{border:2px solid var(--rink-line)}.next-menu{display:flex;flex-direction:column;gap:8px}.next-menu .eyebrow,.next-menu>.hint{margin:0 4px}@media(min-width:1024px){.home-page{grid-template-areas:"greet greet" "launch launch" "mantra mantra" "ideas ideas" "stats week" "msg msg" "recharge recharge" "map map" "install install" "cta cta" "tile fit" "mind strip" "team strip" "next strip" "empty empty" "summary summary" "privacy privacy"}.home-page>.launch-tile{grid-area:launch}.home-page>.next-menu{grid-area:ideas}.home-page>.recharge-row{grid-area:recharge;margin:0}.home-page>.rink-map{grid-area:map}.home-page>.install-card{grid-area:install}.home-page>.pucky-says{grid-area:empty}.home-page>.summary-tile{grid-area:summary}}.help-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:14px}.help-line{border-top:2px solid var(--rink-line);padding-top:12px}.help-line h3{margin:0 0 4px}.help-line p{margin:0 0 8px}.help-where{font-weight:600;color:var(--muted)}.help-actions{display:flex;flex-wrap:wrap;gap:10px}.help-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;min-width:44px;text-decoration:none;text-align:center;overflow-wrap:anywhere}a.help-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;text-decoration:none;text-align:center}a.help-link-strong{background:var(--orange);color:var(--white);box-shadow:0 6px #8a2e08}.checkin-transparency{margin:0}.help-link-row{margin:8px 0 0}.home-page{gap:10px}.home-page .eyebrow,.week-dots .eyebrow,.next-menu .eyebrow{margin:0}.week-dots .week-strip .dot{width:32px;height:32px}.next-menu .shortcut-tile{padding:10px 12px;min-height:56px}.home-page .stats{gap:8px}.home-page .stat-card{padding:8px 10px;border-bottom-width:4px}.home-page .stat-icon,.home-page .stat-value{font-size:1.35rem}.home-page .stat-label{margin-top:2px}.home-page .week-card .privacy-note{margin:4px 0 0}.progress-page .intro{margin:0}@media(min-width:1024px){.home-page{display:flex;flex-direction:column;width:100%;max-width:640px;margin:0 auto}}
