:root{--ink:#172421;--paper:#f7f8f4;--lime:#d4fa42;--muted:#64716a;--line:#dce1d8;--green:#173d32}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.6}button,input,select{font:inherit}button,a,input,select{outline-offset:5px}button{cursor:pointer}a{color:inherit}header{height:100px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-size:25px;font-weight:950;letter-spacing:-1.6px;line-height:1}.brand span{display:block;font-size:10px;letter-spacing:4.1px;margin-top:8px}nav{display:flex;align-items:center;gap:35px}nav a{text-decoration:none;font-size:13px}.btn{border:0;background:var(--lime);color:var(--ink);padding:17px 25px;border-radius:5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:35px}.btn:hover{background:#c3eb30}.btn:disabled{opacity:.6;cursor:wait}.btn.dark{background:var(--ink);color:white}.btn.small{padding:11px 19px;gap:14px}.text-btn{border:0;background:none;padding:10px 0;color:inherit;font-size:13px;text-align:left}.hero{display:grid;grid-template-columns:1.12fr 1fr;gap:7%;padding:65px 6% 55px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;display:flex;gap:9px;align-items:center}.eyebrow i{height:7px;width:7px;border-radius:50%;background:#71942c}h1{font-size:clamp(65px,6.6vw,105px);line-height:.99;letter-spacing:-6px;margin:30px 0}h1 em{font-style:normal;color:#6e862b}.hero p{max-width:455px;color:var(--muted);font-size:16px}.hero-actions{display:flex;gap:23px;align-items:center;margin:30px 0 42px}.hero-foot{border-top:1px solid var(--line);padding-top:23px;display:flex;gap:30px;font-size:9px;letter-spacing:1px;font-weight:700}.sport-art{position:relative;border-radius:9px;overflow:hidden;min-height:570px;background:var(--green);color:white}.court{position:absolute;border:2px solid #698a69;width:75%;height:70%;right:-8%;top:6%;transform:rotate(-24deg);background:linear-gradient(140deg,transparent,#214e3c)}.center-line{position:absolute;top:50%;width:100%;border-top:2px solid #698a69}.attack{position:absolute;width:100%;border-top:1px solid #698a69}.attack.one{top:28%}.attack.two{top:72%}.ball{position:absolute;border:2px solid var(--lime);background:var(--lime);color:var(--green);width:150px;height:150px;border-radius:50%;top:38%;left:15%;font-size:105px;line-height:135px;text-align:center;box-shadow:22px 26px 0 #102b2560;transform:rotate(24deg)}.art-top{position:absolute;top:35px;left:30px;font-size:11px;font-weight:700;letter-spacing:2px;line-height:1.4}.art-label{position:absolute;bottom:65px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:end;font-size:29px;line-height:1.05;font-weight:800;letter-spacing:-1px}.art-label b{font-size:85px;color:var(--lime);line-height:1}.art-tag{position:absolute;bottom:24px;left:30px;font-size:9px;letter-spacing:1.7px;color:#bfccb9}.strip{display:flex;align-items:center;gap:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 6%}.strip span{font-size:17px;font-weight:700}.strip p{color:var(--muted);margin:0;flex:1}.strip b{font-size:25px}.section{padding:85px 6%}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px}.section-heading p{color:var(--muted);max-width:300px}h2{font-size:46px;line-height:1.05;letter-spacing:-2px;margin:20px 0}h3{font-size:21px;letter-spacing:-.6px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:35px}.steps article{border-top:1px solid var(--line);padding-top:20px}.steps article>span{color:#6e862b;font-size:12px}.steps p{color:var(--muted);max-width:300px}.method{background:var(--ink);color:white;margin:0 6% 65px;padding:45px;border-radius:8px}.method p{max-width:650px;color:#bdc9c1}.method a{font-size:13px;color:var(--lime)}footer{padding:25px 6%;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}footer b{letter-spacing:1px}dialog{border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);max-width:520px;width:calc(100% - 30px);padding:40px;max-height:90vh}dialog::backdrop{background:#10221ac0;backdrop-filter:blur(5px)}.close{position:absolute;right:16px;top:10px;font-size:28px;border:0;background:none;color:var(--ink)}dialog h2{font-size:32px}.form{display:grid;gap:15px}.form label{font-size:12px;font-weight:700;display:grid;gap:6px}.form input,.form select{width:100%;background:white;border:1px solid #cbd4c8;padding:12px;border-radius:5px;min-height:48px}.form input:focus,.form select:focus{outline:2px solid #749832}.form .check{display:flex;align-items:start;gap:10px;line-height:1.5;font-weight:400}.check input{width:17px;min-height:17px;margin-top:3px}.form .pair{display:grid;grid-template-columns:1fr 1fr;gap:15px}.muted{color:var(--muted)}.error{color:#a02d25;font-size:13px}.dashboard{padding:45px 6% 80px;min-height:75vh}.dash-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:35px}.dash-head h1{font-size:53px;letter-spacing:-2.5px;margin:15px 0}.dash-head p{margin:0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:25px 0}.stat{border:1px solid var(--line);background:white;border-radius:7px;padding:20px}.stat b{display:block;font-size:28px;line-height:1.4}.stat span{font-size:12px;color:var(--muted)}.notice{background:#eaf0df;border-left:3px solid #75952e;padding:16px 20px;border-radius:3px;font-size:13px;margin:20px 0}.week{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:25px}.session{background:white;border:1px solid var(--line);border-radius:8px;overflow:hidden}.session-head{padding:23px;border-bottom:1px solid var(--line)}.session-head .eyebrow{color:#6b812c}.session h3{margin:12px 0}.session .body{padding:22px}.exercise{border-top:1px solid var(--line);padding:15px 0}.exercise summary{cursor:pointer;font-weight:700;font-size:14px}.exercise summary span{display:block;font-size:12px;color:var(--muted);font-weight:400}.exercise p{font-size:12px;color:var(--muted)}.exercise small{font-size:10px;color:#687f35}.session .btn{width:100%;gap:10px}.tag{font-size:10px;border:1px solid var(--line);padding:4px 8px;border-radius:4px}.subheading{display:flex;align-items:center;justify-content:space-between;margin-top:45px}.subheading h2{font-size:29px;letter-spacing:-1px}.notes{font-size:13px;color:var(--muted);line-height:1.7}.notes li{margin:10px 0}.profile-panel{max-width:780px;margin:auto;padding:40px 6% 70px}.profile-panel h1{font-size:48px;letter-spacing:-2px}.form-section{border-top:1px solid var(--line);padding-top:20px;margin-top:5px}.form-section h3{margin:5px 0 15px}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:15px}.progress{height:5px;background:var(--line);border-radius:5px;margin-bottom:30px}.progress-fill{height:5px;background:#748d28;border-radius:5px}.empty{border:1px dashed #b9c7ae;padding:35px;text-align:center;border-radius:8px}.complete{border-color:#7d9c42}.complete .session-head{background:#f0f6e8}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90%;background:var(--ink);color:white;padding:12px 22px;border-radius:6px;display:none;z-index:10}#toast.visible{display:block}.print-only{display:none}@media(max-width:850px){header{height:82px;padding:0 5%}nav{gap:15px}nav a{display:none}.hero{padding:40px 5%;gap:30px}.hero-actions{flex-direction:column;align-items:start;gap:10px}h1{font-size:65px;letter-spacing:-4px}.sport-art{min-height:480px}.art-label{font-size:24px}.hero-foot{gap:15px;font-size:8px}.week{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:15px}.section{padding:55px 5%}.strip{font-size:12px}.strip p{display:none}.strip b{margin-left:auto}.steps{gap:20px}.section-heading p{max-width:220px}.method{padding:30px}.dash-head{align-items:start}.dash-head h1{font-size:40px}}@media(max-width:600px){.hero{grid-template-columns:1fr}.hero-copy h1{font-size:clamp(49px,14.6vw,70px);letter-spacing:-3px}.sport-art{min-height:370px}.court{height:120%;width:65%;top:-25%}.ball{width:120px;height:120px;line-height:110px;font-size:90px}.art-label{font-size:26px}.hero-actions{flex-direction:row;align-items:center;gap:18px}.hero-actions .btn{padding:14px 17px;gap:10px}.hero-actions .text-btn{font-size:11px;max-width:100px}.section-heading{display:block}.section-heading p{max-width:none}h2{font-size:36px}.steps{grid-template-columns:1fr;gap:20px}.steps p{max-width:none}.method{margin:0 5% 40px}.method h2{font-size:35px}footer{flex-direction:column;align-items:start;gap:8px}.dash-head{flex-direction:column}.dashboard{padding:30px 5%}.stat b{font-size:21px}.stat span{font-size:10px}.form .pair{grid-template-columns:1fr 1fr;gap:10px}.profile-panel{padding:25px 5% 50px}dialog{padding:30px 24px}.subheading{gap:10px}.subheading .btn{padding:10px;font-size:12px}.brand{font-size:22px}.brand span{font-size:9px;letter-spacing:3.5px}}@media print{header,footer,.btn,.text-btn,.sport-art,#toast,dialog{display:none!important}.dashboard{padding:0}.week{display:block}.session{break-inside:avoid;margin:15px 0}.exercise p{display:block}.stats{margin:10px 0}body{background:white;color:black}.notes{font-size:11px}}
