:root{--green-900:#1f3d2b;--green-700:#2f6b3f;--green-500:#4c9a5b;--green-100:#e6f2e4;--soil:#6b4a2f;--sun:#e8a93b;--cream:#fbf8f1;--ink:#1d261f;--muted:#5b685f;--radius:14px;--max:1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--cream);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6}a{color:var(--green-700)}h1,h2,h3{color:var(--green-900);margin:0 0 .5em;line-height:1.15}h1{font-size:clamp(2.2rem,5vw,3.6rem)}h2{font-size:clamp(1.6rem,3vw,2.2rem)}p{margin:0 0 1em}.container{max-width:var(--max);margin:0 auto;padding:0 20px}.section{padding:64px 0}.section.alt{background:var(--green-100)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--green-700);font-size:.8rem;font-weight:700}.btn{border:2px solid var(--green-700);background:var(--green-700);color:#fff;border-radius:999px;padding:12px 22px;font-weight:600;text-decoration:none;display:inline-block}.btn:hover{background:var(--green-900);border-color:var(--green-900)}.btn.ghost{color:var(--green-700);background:0 0}.btn.ghost:hover{background:var(--green-100)}.header{z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fbf8f1f2;border-bottom:1px solid #e3dccb;position:sticky;top:0}.header .container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;min-height:64px;display:flex}.brand{color:var(--green-900);font-size:1.15rem;font-weight:800;text-decoration:none}.nav{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.nav a{color:var(--ink);font-weight:500;text-decoration:none}.nav a:hover{color:var(--green-700)}.hero{background:var(--green-900);color:#fff;align-items:center;min-height:560px;padding:96px 0;display:flex;position:relative;overflow:hidden}.hero-img{object-fit:cover;object-position:70% center}.hero-overlay{background:linear-gradient(90deg,#193424f0 0%,#193424cc 38%,#19342440 72%,#1934240d 100%);position:absolute;inset:0}.hero-content{z-index:1;width:100%;position:relative}@media (max-width:720px){.hero{min-height:520px;padding:72px 0}.hero-overlay{background:linear-gradient(#193424e0 0%,#193424c7 100%)}}.hero h1{color:#fff}.hero p{color:#e6f2e4;max-width:640px;font-size:1.15rem}.hero .actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.hero .btn{background:var(--sun);border-color:var(--sun);color:var(--green-900)}.hero .btn.ghost{color:#fff;background:0 0;border-color:#fff}.grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;display:grid}.card{border-radius:var(--radius);background:#fff;border:1px solid #e3dccb;padding:24px}.card h3{margin-bottom:.4em}.card .tag{background:var(--green-100);color:var(--green-700);border-radius:999px;margin-bottom:10px;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-block}.steps{counter-reset:step;gap:16px;display:grid}.steps li{border-radius:var(--radius);background:#fff;border:1px solid #e3dccb;padding:18px 18px 18px 64px;list-style:none;position:relative}.steps li:before{counter-increment:step;content:counter(step);background:var(--green-700);color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;font-weight:700;display:grid;position:absolute;top:16px;left:18px}.steps{margin:0;padding:0}.price{color:var(--green-900);font-size:2rem;font-weight:800}.notice{border-radius:var(--radius);color:#5c4a12;background:#fff7e3;border:1px solid #f0dca2;padding:16px 20px}.footer{background:var(--green-900);color:#cfe3d1;margin-top:0;padding:40px 0}.footer a{color:#fff}.footer .cols{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;display:grid}.page-head{padding:56px 0 24px}.card.has-img{height:100%;padding:0;transition:transform .15s,box-shadow .15s;overflow:hidden}.card.has-img:hover{transform:translateY(-3px);box-shadow:0 10px 24px #1f3d2b26}.card-img{aspect-ratio:4/3;background:var(--green-100);position:relative;overflow:hidden}.card-img img{object-fit:cover;transform:scale(1.1)}.card-body{padding:20px 24px 24px}.form{gap:16px;max-width:420px;margin-top:24px;display:grid}.form label{color:var(--green-900);gap:6px;font-weight:600;display:grid}.form input{font:inherit;color:var(--ink);background:#fff;border:1px solid #cfc7b2;border-radius:10px;padding:12px 14px}.form input:focus{outline:2px solid var(--green-500);border-color:var(--green-500)}.form button.btn{cursor:pointer;font:inherit;font-weight:600}.form button.btn:disabled{opacity:.6;cursor:wait}.form-error{color:#a12626;background:#fdecec;border:1px solid #f3c1c1;border-radius:10px;margin:0;padding:10px 14px}.form-ok{color:var(--green-900);background:var(--green-100);border-radius:10px;margin:0;padding:10px 14px}.search{flex-wrap:wrap;gap:12px;margin:24px 0 8px;display:flex}.search input{font:inherit;color:var(--ink);background:#fff;border:1px solid #cfc7b2;border-radius:10px;min-width:220px;padding:12px 14px}.search input:focus{outline:2px solid var(--green-500);border-color:var(--green-500)}.search button{cursor:pointer;font:inherit;font-weight:600}.form textarea{font:inherit;color:var(--ink);resize:vertical;background:#fff;border:1px solid #cfc7b2;border-radius:10px;min-height:110px;padding:12px 14px}.form textarea:focus{outline:2px solid var(--green-500);border-color:var(--green-500)}.form label.check{align-items:flex-start;gap:10px;font-weight:500;display:flex}.form label.check input{margin-top:5px}.hint{color:var(--muted);font-size:.9rem;font-weight:400}button.btn{cursor:pointer;font:inherit;font-weight:600}button.btn:disabled{opacity:.6;cursor:wait}.medal{text-align:center;flex-direction:column;align-items:center;display:inline-flex}.medal-disc{--size:96px;width:var(--size);height:var(--size);font-size:calc(var(--size) * .46);border:calc(var(--size) * .06) solid #e7b73c;background:radial-gradient(circle at 30% 25%,#3f8a58,#1f3d2b 75%);border-radius:50%;place-items:center;display:grid;box-shadow:0 0 0 3px #fff3c4,0 6px 16px #00000040,inset 0 2px 6px #ffffff59}.medal-ribbon{letter-spacing:.04em;color:#4a3500;background:linear-gradient(#ffe48a,#e7b73c);border-radius:4px;margin-top:-10px;padding:3px 14px;font-size:.78rem;font-weight:800;position:relative;box-shadow:0 2px 5px #0003}.medal.big .medal-disc{--size:150px}.medal.big .medal-ribbon{padding:5px 20px;font-size:1rem}.celebrate{z-index:100;background:#14281cd1;place-items:center;animation:.3s fadeIn;display:grid;position:fixed;inset:0;overflow:hidden}.celebrate-card{z-index:2;text-align:center;color:#fff;max-width:420px;padding:24px;position:relative}.celebrate-card h2{color:#ffe48a;margin-bottom:.2em;font-size:2rem;animation:.6s cubic-bezier(.2,1.6,.4,1) .5s both pop}.celebrate-card p{color:#fff;animation:.6s .9s both fadeIn}.celebrate-card .medal{margin:8px 0 22px;animation:.9s cubic-bezier(.2,1.5,.4,1) .1s both medalIn}.celebrate-card .btn{color:#3a2a00;background:#e7b73c;border-color:#e7b73c;animation:.6s 1.2s both fadeIn}.star{z-index:1;color:#ffe48a;pointer-events:none;animation:linear infinite fall;position:absolute;top:-40px}.star.s2{color:#fff}.star.s3{color:#8fd19e}@keyframes fall{0%{opacity:0;transform:translateY(-40px)rotate(0)}10%{opacity:1}to{opacity:.9;transform:translateY(110vh)rotate(540deg)}}@keyframes medalIn{0%{opacity:0;transform:scale(0)rotate(-200deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes pop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.star{display:none}.celebrate-card *{animation:none!important}}.medal.locked{filter:grayscale();opacity:.4}.dash{grid-template-columns:250px 1fr;max-width:1400px;min-height:80vh;margin:0 auto;display:grid}.dash-side{background:#f3efe3;border-right:1px solid #e3dccb;flex-direction:column;justify-content:space-between;gap:24px;padding:20px 14px;display:flex}.dash-side nav{gap:4px;display:grid}.dash-link{color:var(--green-900);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:.95rem;font-weight:600;text-decoration:none;display:flex}.dash-link:hover{background:var(--green-100)}.dash-link.active{background:var(--green-700);color:#fff}.dash-link.soon{opacity:.55;cursor:default}.dash-link.soon:hover{background:0 0}.dash-link em{background:#e3dccb;border-radius:999px;margin-left:auto;padding:1px 7px;font-size:.65rem;font-style:normal;font-weight:700}.dash-ico{text-align:center;width:22px}.dash-quote{color:var(--green-900);padding:0 8px 12px;font-family:Georgia,serif;font-size:1.05rem;font-style:italic;line-height:1.5}.dash-main{min-width:0;padding:20px 24px 48px}.dash-hero{color:#fff;background:linear-gradient(90deg,#14281cd9 10%,#14281c59 70%),url(/images/grow.jpg) 50%/cover;border-radius:16px;align-items:center;min-height:260px;padding:36px 40px;display:flex}.dash-hero h1{color:#fff;font-size:2.2rem;line-height:1.15}.dash-hero h1 span{font-size:3.4rem;font-weight:800}.dash-hero p{color:#fff;max-width:440px;margin-top:12px}.quick{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:18px 0;display:grid}.quick-card{color:inherit;background:#fff;border:1px solid #e3dccb;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;display:flex}.quick-card:hover{box-shadow:0 8px 20px #1f3d2b1f}.quick-card.off{opacity:.6}.quick-card strong{display:block}.quick-card small{color:#6b6b5a}.quick-ico{background:var(--green-100);border-radius:12px;flex:none;place-items:center;width:48px;height:48px;font-size:1.6rem;display:grid}.panels{gap:18px;margin-bottom:18px;display:grid}.panels.three{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}.panel{background:#fff;border:1px solid #e3dccb;border-radius:14px;padding:20px}.panel-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.panel-head h2{margin:0;font-size:1.1rem}.panel-head a{font-size:.85rem}.panel .tag{color:#6b4c00;white-space:nowrap;background:#fbeccd;border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:700}.who{align-items:center;gap:14px;margin-bottom:14px;display:flex}.avatar{background:var(--green-700);color:#fff;border-radius:50%;flex:none;place-items:center;width:64px;height:64px;font-size:1.6rem;font-weight:800;display:grid}.rings{flex-wrap:wrap;justify-content:space-around;gap:8px;display:flex}.ring-wrap{text-align:center;font-size:.8rem}.ring{--pct:0;--c:#2f6b43;background:conic-gradient(var(--c) calc(var(--pct) * 1%), #e6e0d0 0);border-radius:50%;place-items:center;width:78px;height:78px;margin:0 auto 6px;display:grid;position:relative}.ring:before{content:"";background:#fff;border-radius:50%;position:absolute;inset:9px}.ring span{font-size:.95rem;font-weight:800;position:relative}.bar{background:#e6e0d0;border-radius:999px;height:8px;margin:10px 0 6px;overflow:hidden}.bar div{background:var(--green-700);height:100%}.soon-panel{opacity:.8;background:#faf7ee}.soon-icon{margin:6px 0;font-size:2.2rem}.quote-panel{background:var(--green-900);color:#fff}.quote-panel h2,.quote-panel p{color:#fff}.quote-panel .btn{color:#3a2a00;background:#e7b73c;border-color:#e7b73c;margin-top:8px}@media (max-width:900px){.dash{grid-template-columns:1fr}.dash-side{border-bottom:1px solid #e3dccb;border-right:0}.dash-side nav{gap:6px;display:flex;overflow-x:auto}.dash-link{white-space:nowrap}.dash-quote{display:none}.dash-main{padding:14px}.dash-hero{padding:24px}.dash-hero h1 span{font-size:2.6rem}.panel.wide{grid-column:auto!important}}.level-head{border-left:8px solid;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.level-head h3{margin:0;font-size:1.3rem}.level-head p{margin:2px 0 0;font-size:.9rem}.level-count{background:#fff;border-radius:999px;padding:4px 12px;font-size:.85rem;font-weight:700}.level-basic{background:#e8f3ea;border-color:#2f6b43}.level-specialty{background:#fdf1d3;border-color:#e7b73c}.level-mastery{background:#efe6f6;border-color:#7a4aa3}.topic-head{border-bottom:2px solid #e3dccb;margin:0;padding-bottom:4px;font-size:1rem}.badge-row{grid-template-columns:repeat(7,minmax(0,1fr));gap:22px 10px;margin-top:14px;display:grid}.badge-cell{text-align:center;min-width:0}.badge-cell .medal{width:100%}.badge-cell .medal-disc{--size:76px}.badge-cell .medal-ribbon{overflow-wrap:anywhere;max-width:100%;padding:3px 8px;font-size:.62rem;line-height:1.2}@media (max-width:1100px){.badge-row{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (max-width:700px){.badge-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
