@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/press-start-2p-latin.woff2) format("woff2")}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/vt323-latin.woff2) format("woff2")}html{height:100%;scrollbar-gutter:stable}html:not(.page-scrollable){overflow:hidden}html:not(.page-scrollable) body{overflow:hidden;height:100%}html.page-scrollable{height:auto;min-height:100%}html.page-scrollable body{height:auto;min-height:100%;overflow-x:clip}body{height:100%;margin:0;padding:0;background:#000;color:#fff}.content{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:100%;box-sizing:border-box;z-index:1;text-align:center;font-size:clamp(1.5rem,3vw,3rem);position:relative}p,h1{color:#fff;text-align:center;font-size:clamp(1rem,2vw,2rem)}p{margin:0}#app{text-align:center;color:#fff;box-sizing:border-box}html:not(.page-scrollable) #app{display:flex;flex-direction:column;height:100%;overflow:hidden}html:not(.page-scrollable) #app .app-root{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.app-main{flex:1 1 auto;min-height:0;width:100%;display:flex;flex-direction:column}html:not(.page-scrollable) #app .app-main{overflow:hidden;justify-content:center;align-items:center;padding:2rem}html.page-scrollable #app{height:auto;min-height:100%;overflow:visible}html.page-scrollable #app .app-main{overflow:visible;justify-content:flex-start;align-items:stretch;padding:0;min-height:auto}@media (max-width: 640px){html:not(.page-scrollable) #app .app-main{padding:.75rem}}.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}.site-nav-overlay{--nav-origin-y: 2.1rem;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:5rem 1.5rem 2.5rem;overflow-y:auto}.site-nav-overlay:before{content:"";position:fixed;top:var(--nav-origin-y);left:50%;width:300vmax;height:300vmax;margin:-150vmax 0 0 -150vmax;border-radius:50%;background:#000;transform:scale(1);transform-origin:center center;z-index:-1}.site-nav-overlay__panel{display:flex;justify-content:center;width:auto;max-width:32rem}.nav-overlay-enter-active:before,.nav-overlay-leave-active:before{transition:transform .42s ease-out;will-change:transform}.nav-overlay-enter-from:before,.nav-overlay-leave-to:before{transform:scale(0)}.nav-overlay-enter-active .site-nav-overlay__panel,.nav-overlay-leave-active .site-nav-overlay__panel{transition:transform .3s ease-out,opacity .28s ease-out .07s}.nav-overlay-enter-from .site-nav-overlay__panel,.nav-overlay-leave-to .site-nav-overlay__panel{transform:translateY(-14px) scale(.98);opacity:0}@media (prefers-reduced-motion: reduce){.site-nav-overlay:before{transform:scale(1)}.nav-overlay-enter-active:before,.nav-overlay-leave-active:before,.nav-overlay-enter-active .site-nav-overlay__panel,.nav-overlay-leave-active .site-nav-overlay__panel{transition:none}}.site-chrome-links{display:flex;flex-direction:column;align-items:center;row-gap:clamp(1rem,4.5vh,2.25rem);position:relative;z-index:3}.site-chrome-link{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;color:#ffffffe0;font-size:clamp(.95rem,3.2vw,1.5rem);line-height:1.2;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:.5rem 1rem;transition:color .2s steps(4,end),transform .2s steps(4,end),text-shadow .2s steps(4,end)}.site-chrome-link.router-link-active{color:#ffbd2e;text-shadow:0 0 8px rgba(255,189,46,.55)}.site-chrome-link:hover,.site-chrome-link:focus-visible{color:#ffbd2e;transform:translateY(-3px);text-shadow:0 0 10px rgba(255,189,46,.8)}.site-chrome-link:focus-visible{outline:2px solid rgba(255,255,255,.8);outline-offset:2px}.site-chrome-links .site-chrome-link{animation:chromeLinkFloat 4s ease-in-out infinite}.site-chrome-links .site-chrome-link:nth-child(2){animation-duration:4.6s;animation-delay:-1.5s}.site-chrome-links .site-chrome-link:nth-child(3){animation-duration:3.6s;animation-delay:-.8s}.site-chrome-links .site-chrome-link:nth-child(4){animation-duration:4.3s;animation-delay:-2.2s}@keyframes chromeLinkFloat{0%,to{translate:0 0}25%{translate:1.5px -2px}50%{translate:0 -4px}75%{translate:-1.5px -2px}}@media (prefers-reduced-motion: reduce){.site-chrome-links .site-chrome-link{animation:none}}@media (max-width: 640px){.site-nav-overlay{--nav-origin-y: 1.85rem;padding:4.5rem 1.25rem 2rem}.site-chrome-link{font-size:clamp(1rem,6vw,1.35rem)}}button{padding:10px 20px;font-size:clamp(.875rem,1.5vw,1rem);background:#00000059;border:1px solid rgba(255,255,255,.1);border-radius:3px;color:#ffffffe0;cursor:pointer;transition:color .3s ease,border-color .3s ease,box-shadow .3s ease,background .3s ease,transform .3s ease}button:hover,button:focus-visible{outline:none;color:#ffbd2e;border-color:#ffbd2e80;box-shadow:0 0 28px #ffbd2e2e,0 0 0 1px #ffbd2e47 inset;transform:translateY(-4px)}button:active{transform:translateY(-1px);box-shadow:0 0 16px #ffbd2e1f,0 0 0 1px #ffbd2e38 inset}@media (prefers-reduced-motion: reduce){button,button:hover,button:focus-visible,button:active{transform:none}}@keyframes item-in{to{opacity:1;transform:translate(0)}}.sport-page{--muted: rgba(255, 255, 255, .62);--faint: rgba(255, 255, 255, .72);--chip-foreground: rgba(255, 255, 255, .86);--bar-dimmed: rgba(255, 255, 255, .2);--chest: #3b9eff;--back: #ff7c38;--triceps: #b56bff;--biceps: #2fcc8b;--shoulders: #ff4f8b;--legs: #f5c842;--abs: #35d4ff;--waist: #9eff6b;--forearms: #ffb347;--hard: #ff5050;--drop-tint: #ebff6b;--font: Press Start 2P, ui-monospace, monospace;--surface-bg: rgba(255, 255, 255, .04);--surface-shadow: 3px 3px 0 rgba(0, 0, 0, .25);--focus-ring: 2px solid rgba(255, 255, 255, .8);max-width:84rem;margin:0 auto;padding:2.5rem 1.5rem 5.5rem;font-family:var(--font);font-size:clamp(.44rem,1.1vw,.52rem);line-height:1.65;letter-spacing:.04em;text-transform:uppercase;text-align:left}.sport-page [data-muscle=chest]{--muscle: var(--chest)}.sport-page [data-muscle=back]{--muscle: var(--back)}.sport-page [data-muscle=triceps]{--muscle: var(--triceps)}.sport-page [data-muscle=biceps]{--muscle: var(--biceps)}.sport-page [data-muscle=shoulders]{--muscle: var(--shoulders)}.sport-page [data-muscle=legs]{--muscle: var(--legs)}.sport-page [data-muscle=abs]{--muscle: var(--abs)}.sport-page [data-muscle=waist]{--muscle: var(--waist)}.sport-page [data-muscle=forearms]{--muscle: var(--forearms)}.sport-page *,.sport-page *:before,.sport-page *:after{box-sizing:border-box;margin:0;padding:0}.sport-page :is(.session-head,.exercise,.show-all-btn):focus-visible{outline:var(--focus-ring);outline-offset:2px}.sport-page .page-title{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:clamp(.5rem,1.5vw,1rem);margin-bottom:1.75rem}.sport-page .page-title__icon-slot{display:flex;align-items:center;justify-content:center;width:clamp(5.75rem,16vw,9.5rem);height:clamp(4rem,12vw,6.75rem)}.sport-page .page-title__icon-slot--left{justify-self:center;transform:translate(clamp(-.35rem,-1.2vw,-.15rem))}.sport-page .page-title__icon-slot--left .page-title__icon{transform:rotate(-8deg) rotateY(14deg);transform-origin:center}.sport-page .page-title__icon-slot--right{justify-self:center;transform:translate(clamp(.15rem,1.2vw,.35rem))}.sport-page .page-title__icon-slot--right .page-title__icon{transform:rotate(16deg) rotateY(-28deg);transform-origin:center}.sport-page .page-title__icon,.sport-page .page-footer__icon{display:block;width:auto;object-fit:contain;object-position:center;image-rendering:pixelated}.sport-page .page-title__icon{max-width:100%;max-height:100%;height:auto}.sport-page .page-title h1{grid-column:2;justify-self:center;font-size:clamp(.72rem,2.4vw,1.1rem);line-height:1.6;text-align:center;text-shadow:2px 2px 0 rgba(0,0,0,.45)}.sport-page .page-footer{display:flex;justify-content:center;align-items:center;margin-top:clamp(2rem,5vw,3.25rem)}.sport-page .page-footer__icon{height:clamp(5rem,14vw,8.5rem)}.sport-page hr{height:1px;border:none;background:#ffffff26}.sport-page .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.sport-page .legend{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 14px;margin-bottom:2rem;padding:1rem .75rem;border:1px solid rgba(255,255,255,.1);border-radius:3px;background:var(--surface-bg);box-shadow:var(--surface-shadow);color:var(--faint);font-size:clamp(.44rem,1.1vw,.54rem)}.sport-page .legend span{display:flex;align-items:center;gap:6px}.sport-page .dot{width:8px;height:8px;flex-shrink:0;background:var(--muscle)}.sport-page .card{--accent: var(--bar-dimmed);position:relative;display:flex;flex-direction:column;gap:0;overflow:hidden;padding:22px 20px;border:1px solid rgba(255,255,255,.1);border-radius:3px;background:var(--surface-bg);box-shadow:var(--surface-shadow)}.sport-page .card.is-open{gap:20px;border-color:#ffffff38;background:#ffffff0d}.sport-page .card.is-open:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--accent)}.sport-page .card[data-accent=chest]{--accent: var(--chest)}.sport-page .card[data-accent=back]{--accent: var(--back)}.sport-page .card[data-accent=triceps]{--accent: var(--triceps)}.sport-page .card[data-accent=legs]{--accent: var(--legs)}.sport-page .session-head{display:flex;flex-direction:column;gap:10px;cursor:pointer}.sport-page .session-head>:first-child{min-width:0}.sport-page .day-name{font-size:clamp(.78rem,2vw,1rem);line-height:1.5}.sport-page .session-kind{margin-top:4px;color:var(--accent);font-size:clamp(.58rem,1.4vw,.72rem);letter-spacing:.06em}.sport-page .chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,auto);gap:4px;width:100%}.sport-page .chip{display:flex;align-items:center;justify-content:center;min-height:2.1em;padding:6px 4px;border:1px solid var(--muscle);background:#00000080;color:var(--muscle);text-align:center;font-size:clamp(.44rem,1.15vw,.56rem);letter-spacing:.02em;line-height:1.4}.sport-page .exercise-list{display:flex;flex-direction:column;gap:14px}.sport-page .exercise{display:flex;flex-direction:column;gap:6px;cursor:pointer;padding:14px;border:1px solid rgba(255,255,255,.1);border-radius:3px;border-left:4px solid var(--muscle);background:#ffffff08}.sport-page .exercise:hover,.sport-page .exercise.is-open{border-color:#ffffff38;background:#ffffff0d}.sport-page .exercise-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px}.sport-page .exercise-name{display:flex;align-items:center;min-width:0;min-height:3.4em;font-size:clamp(.5rem,1.25vw,.6rem);line-height:1.7;text-wrap:balance}.sport-page .meta-list{display:none}.sport-page .exercise.is-open .meta-list{display:grid;grid-template-columns:max-content 1fr;column-gap:12px;row-gap:6px;margin-top:8px;color:var(--muted);font-size:clamp(.48rem,1.15vw,.58rem);line-height:1.85}.sport-page .meta-term{color:var(--chip-foreground);font-weight:600}.sport-page .meta-term:before{content:"-";margin-right:.45em;color:var(--muted)}.sport-page .meta-text{min-width:0}.sport-page .badges{display:grid;flex:0 0 auto;grid-template-columns:repeat(2,max-content);grid-auto-flow:row dense;justify-content:end;gap:5px 7px;margin-left:auto}.sport-page .badge{display:inline-flex;align-items:center;justify-content:center;min-height:1.65em;padding:4px 7px;border:1px solid currentColor;white-space:nowrap;text-align:center;font-size:clamp(.36rem,.9vw,.44rem);letter-spacing:.02em;line-height:1.45;text-shadow:1px 1px 0 rgba(0,0,0,.65)}.sport-page .badge.easy,.sport-page .badge.medium,.sport-page .badge.hard,.sport-page .badge.rest,.sport-page .badge.warmup-time{min-width:5rem}.sport-page .badge.easy,.sport-page .badge.medium,.sport-page .badge.hard{grid-column:1;order:2}.sport-page .badge.rest,.sport-page .badge.warmup-time{grid-column:2;order:2}.sport-page .badge.chest{--badge-color: var(--chest)}.sport-page .badge.waist{--badge-color: var(--waist)}.sport-page .badge.forearm{--badge-color: var(--forearms)}.sport-page .badge.triceps{--badge-color: var(--triceps)}.sport-page .badge.shoulders{--badge-color: var(--shoulders)}.sport-page .badge.back{--badge-color: var(--back)}.sport-page .badge.biceps{--badge-color: var(--biceps)}.sport-page .badge.legs{--badge-color: var(--legs)}.sport-page .badge.chest,.sport-page .badge.waist,.sport-page .badge.forearm,.sport-page .badge.triceps,.sport-page .badge.shoulders,.sport-page .badge.back,.sport-page .badge.biceps,.sport-page .badge.legs,.sport-page .badge.drop-set,.sport-page .badges--warmup .badge.warm-up{grid-column:1/-1;justify-self:stretch;width:100%}.sport-page .badge.chest,.sport-page .badge.waist,.sport-page .badge.forearm,.sport-page .badge.triceps,.sport-page .badge.shoulders,.sport-page .badge.back,.sport-page .badge.biceps,.sport-page .badge.legs{order:1;padding:5px 8px;font-size:clamp(.44rem,1.1vw,.54rem);line-height:1.5;background:#0000009e;color:#fff;border-color:var(--badge-color)}.sport-page .badge.drop-set{order:3;background:#ebff6b4d;color:#f8ffd0;border-color:var(--drop-tint)}.sport-page .badge.easy,.sport-page .badge.warmup-time{background:#2fcc8b57;color:#e8fff5;border-color:var(--biceps)}.sport-page .badge.medium{background:#f5c84257;color:#fff8dc;border-color:var(--legs)}.sport-page .badge.hard{background:#ff505057;color:#ffe8e8;border-color:var(--hard)}.sport-page .badge.rest{background:#ff7c3857;color:#fff0e6;border-color:var(--back)}.sport-page .badge.warm-up{order:1;padding:5px 8px;background:#ff4f8b66;color:#fff;border-color:#ff8fbb;font-size:clamp(.42rem,1.05vw,.5rem);line-height:1.5}.sport-page .superset{overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:3px;border-left:4px solid var(--muscle);background:#ffffff08}.sport-page .superset-head{display:flex;align-items:center;min-height:2.25em;padding:8px 10px;background:#00000059;color:var(--muscle);font-size:clamp(.34rem,.85vw,.4rem);letter-spacing:.06em;border-bottom:1px solid rgba(255,255,255,.1)}.sport-page .superset .exercise{border:none;border-left:none;background:transparent}.sport-page .superset .exercise:hover,.sport-page .superset .exercise.is-open{background:#ffffff0a}.sport-page .superset .exercise+.exercise{border-top:1px solid rgba(255,255,255,.1)}.sport-page .superset-step{display:inline-flex;align-items:center;justify-content:center;min-width:1.25em;margin-right:6px;color:var(--muscle);font-size:clamp(.3rem,.75vw,.36rem)}.sport-page .show-all-btn{position:fixed;right:18px;bottom:18px;z-index:20;display:inline-flex;align-items:center;justify-content:center;min-height:2.75em;padding:12px 16px;font-family:var(--font);font-size:clamp(.42rem,1.05vw,.52rem);letter-spacing:.04em;text-transform:uppercase;background:#00000059;border:1px solid rgba(255,255,255,.1);border-radius:3px;color:#ffffffe0;cursor:pointer;transition:color .3s ease,border-color .3s ease,box-shadow .3s ease,background .3s ease,transform .3s ease}.sport-page .show-all-btn:hover,.sport-page .show-all-btn:focus-visible{outline:none;color:#ffbd2e;border-color:#ffbd2e80;box-shadow:0 0 28px #ffbd2e2e,0 0 0 1px #ffbd2e47 inset;transform:translateY(-2px)}.sport-page .show-all-btn:active{transform:translateY(-.5px);box-shadow:0 0 16px #ffbd2e1f,0 0 0 1px #ffbd2e38 inset}@media (prefers-reduced-motion: reduce){.sport-page .show-all-btn,.sport-page .show-all-btn:hover,.sport-page .show-all-btn:focus-visible,.sport-page .show-all-btn:active{transform:none}}@media (max-width: 900px){.sport-page .grid{grid-template-columns:1fr}}@media (max-width: 640px){.sport-page{padding:1.25rem .85rem 4.5rem;font-size:clamp(.5rem,1.9vw,.56rem)}.sport-page .grid{gap:14px}.sport-page .card{padding:18px 14px}.sport-page .legend{font-size:clamp(.5rem,1.9vw,.56rem)}}@media (max-width: 480px){.sport-page .page-title{column-gap:.4rem}.sport-page .page-title__icon-slot--left,.sport-page .page-title__icon-slot--right{width:clamp(4.75rem,30vw,7.5rem);height:clamp(3.35rem,20vw,5.5rem)}.sport-page .page-title h1{font-size:clamp(.58rem,3.2vw,.72rem)}.sport-page .page-footer__icon{height:clamp(4.25rem,24vw,6.5rem)}.sport-page .chips{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}.sport-page .exercise-row{grid-template-columns:minmax(0,1fr)}.sport-page .exercise-name{min-height:0}.sport-page .badges{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;margin-left:0}.sport-page .badge.easy,.sport-page .badge.medium,.sport-page .badge.hard,.sport-page .badge.rest,.sport-page .badge.warmup-time{min-width:0}}.text-mint,.text-purple,.text-red,.text-yellow,.text-azure,.text-blue,.text-green{text-shadow:0 0 3px currentColor}.text-green{color:#0f0}.text-blue{color:#0cf}.text-azure{color:#007fff}.text-yellow{color:#ffbd2e}.text-red{color:#ff5f56}.text-purple{color:#a200ff}.text-mint{color:#3eb489}.terminal-link{color:#0f0;text-decoration:none;border-bottom:1px dotted #00ff00;transition:color .2s ease,border-color .2s ease}.terminal-link:hover{color:#0cf;border-bottom-color:#0cf;text-shadow:0 0 5px currentColor}.terminal-link:focus-visible{outline:2px solid #00ccff;outline-offset:2px}.terminal-link:active{color:#ff5f56}.terminal-line{display:flex;align-items:baseline;margin-bottom:.35rem;line-height:1.25;text-align:start}.terminal-line.current-line{margin-bottom:0}.terminal-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;box-sizing:border-box;padding-top:1.6rem}.terminal-window{--phosphor: #33ff66;position:relative;width:100%;height:100%;max-width:74rem;max-height:47rem;background:#080c08eb;border:1px solid rgba(255,255,255,.1);border-radius:3px;overflow:hidden;font-family:VT323,ui-monospace,Cascadia Mono,DejaVu Sans Mono,monospace;font-size:1.4rem;box-shadow:0 1.5rem 4rem #0000008c,0 0 0 1px #00000073}.terminal-window:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;background:repeating-linear-gradient(to bottom,rgba(0,0,0,.18) 0,rgba(0,0,0,.18) 1px,transparent 1px,transparent 3px)}.terminal-header{background:#64646480;border-bottom:1px solid rgba(255,255,255,.1);padding:.5rem 1rem;display:flex;align-items:center;gap:1rem}.terminal-buttons{display:flex;gap:.5rem}.terminal-buttons .btn{width:12px;height:12px;border-radius:50%;border:1px solid #444}.terminal-buttons .btn.red{background:#ff5f56}.terminal-buttons .btn.yellow{background:#ffbd2e}.terminal-buttons .btn.green{background:#27ca3f}.terminal-title{color:#d3d3d3;font-size:.95rem;letter-spacing:.5px;opacity:.85}.terminal-body{height:calc(100% - 60px);padding:1rem;overflow-y:auto;overflow-x:hidden;text-shadow:0 0 2px currentColor}.terminal-body::-webkit-scrollbar{width:8px}.terminal-body::-webkit-scrollbar-track{background:#111}.terminal-body::-webkit-scrollbar-thumb{background:#d3d3d3;border-radius:4px}.terminal-banner{color:#d3d3d3;opacity:.75;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.2;margin:0 0 .8rem;text-align:start}.welcome-text{color:#0cf;min-width:0;overflow-wrap:anywhere}.input-container{position:relative;flex:1;min-width:0}.input-mirror{color:#fff;white-space:pre-wrap;overflow-wrap:anywhere}.terminal-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;background:transparent;border:none;outline:none;resize:none;overflow:hidden;color:transparent;caret-color:transparent;font-family:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;overflow-wrap:anywhere;z-index:1}.custom-cursor{background:var(--phosphor);color:#000;animation:terminal-blink 1.1s steps(1) infinite}.input-ghost{color:#ffffff52;text-shadow:none}@keyframes terminal-blink{0%,50%{opacity:1}51%,to{opacity:0}}@media (prefers-reduced-motion: reduce){.custom-cursor{animation:none}}@media (max-width: 1024px){.terminal-line{margin-bottom:.2rem;line-height:1.15}.terminal-window{font-size:1.05rem}.terminal-body{padding:.5rem}.terminal-title{font-size:.75rem}}@media (max-width: 640px){.terminal-container{padding-top:6rem;padding-bottom:1rem}.terminal-window{font-size:1rem;max-width:none;max-height:none}.terminal-body{padding:.5rem .6rem}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:"Press Start 2P",ui-monospace,monospace;-webkit-font-smoothing:antialiased}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}h1,h2,h3,h4,h5,h6{margin-bottom:.5rem}
