:root{--ink:#0b1f2a;--ink-soft:#163341;--mist:#e8f4f2;--fog:#c5ddd8;--paper:#f4faf8;--signal:#1fa37a;--signal-deep:#147a5a;--warm:#f0e6d8;--line:#0b1f2a1f;--text:#0b1f2a;--muted:#0b1f2a9e;--white:#fff;--font-display:"Syne", sans-serif;--font-body:"Figtree", sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1);--max:1120px;--gutter:clamp(1.25rem, 4vw, 2.5rem)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--text);font-family:var(--font-body);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.6}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none;padding:0}h1,h2,h3,p{margin:0}.site{overflow-x:clip}.nav{z-index:40;padding:1.1rem var(--gutter);pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 0 auto}.nav a,.nav button{pointer-events:auto}.nav-mark{font-family:var(--font-display);letter-spacing:-.04em;color:var(--mist);text-shadow:0 1px 12px #00000059;align-items:center;gap:.55rem;font-size:1.2rem;font-weight:800;display:inline-flex}.nav-logo{object-fit:cover;border-radius:50%;flex-shrink:0;width:2.15rem;height:2.15rem;box-shadow:0 2px 10px #00000040}.nav-links{color:var(--mist);mix-blend-mode:difference;align-items:center;gap:clamp(1rem,3vw,1.75rem);font-size:.95rem;font-weight:500;display:flex}.nav-links a{opacity:.85;transition:opacity .2s}.nav-links a:hover{opacity:1}.nav-cta{border-bottom:1px solid;padding-bottom:.1rem;opacity:1!important}.nav-right{pointer-events:auto;align-items:center;gap:1rem;display:flex}.admin-btn{min-height:2.1rem;color:var(--mist);letter-spacing:.02em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s ease, background .2s ease, transform .2s var(--ease-out);background:#0b1f2a59;border:1px solid #e8f4f259;border-radius:2px;padding:.35rem .75rem;font-size:.85rem;font-weight:600}.admin-btn:hover{border-color:#e8f4f2b3;transform:translateY(-1px)}.admin-btn.is-live{border-color:var(--signal);color:var(--signal)}.admin-dialog{border:1px solid var(--line);background:var(--paper);width:min(92vw,420px);color:var(--ink);border-radius:4px;margin:auto;padding:0;box-shadow:0 24px 60px #0b1f2a47}.admin-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#07151c9e}.admin-form{gap:1rem;padding:1.75rem;display:grid}.admin-form h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:1.8rem}.admin-form-lead,.muted-copy{color:var(--muted)}.field{gap:.45rem;display:grid}.field>span{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.82rem;font-weight:600}.field input[type=text],.field input[type=password],.field input:not([type]),.field input[type=search],.upload-form input[type=text],.drill-search input{border:1px solid var(--line);background:var(--white);width:100%;min-height:2.75rem;color:var(--ink);font:inherit;border-radius:2px;padding:.65rem .8rem}.field input[type=file]{font:inherit;color:var(--ink-soft)}.form-error{color:#b42318;margin:0;font-weight:600}.form-notice{color:var(--signal-deep);margin:0;font-weight:600;line-height:1.45}.difficulty-meter{justify-items:start;gap:.4rem;display:grid}.difficulty-arcs{align-items:flex-end;gap:.35rem;display:flex}.difficulty-arc{width:1.1rem;height:1.7rem;color:inherit;background:0 0;border:0;justify-content:center;align-items:flex-end;padding:0;display:inline-flex}.difficulty-arc>span{transform-origin:bottom;background:0 0;border:2px solid #0b1f2a2e;border-bottom:0;border-radius:999px 999px 0 0;width:100%;display:block}.difficulty-arc:first-child>span{height:.55rem}.difficulty-arc:nth-child(2)>span{height:.8rem}.difficulty-arc:nth-child(3)>span{height:1.05rem}.difficulty-arc:nth-child(4)>span{height:1.3rem}.difficulty-arc:nth-child(5)>span{height:1.55rem}.difficulty-arc.is-active>span{border-color:var(--signal-deep);background:linear-gradient(#1fa37a59,#1fa37ad9);box-shadow:0 0 0 1px #1fa37a26}.difficulty-meter.is-interactive .difficulty-arc{cursor:pointer}.difficulty-meter.is-interactive .difficulty-arc:hover>span{border-color:var(--signal)}.difficulty-caption{color:var(--ink-soft);letter-spacing:.02em;font-size:.82rem;font-weight:600}.page-title-sm{font-size:clamp(2.8rem,8vw,4.8rem)}.drill-dialog{border:1px solid var(--line);background:var(--paper);width:min(92vw,520px);max-height:min(90vh,720px);color:var(--ink);border-radius:4px;margin:auto;padding:0;overflow:auto;box-shadow:0 24px 60px #0b1f2a47}.drill-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#07151c9e}.drill-dialog-form{gap:1rem;padding:1.75rem;display:grid}.drill-dialog-head{justify-content:space-between;align-items:start;gap:1rem;display:flex}.drill-dialog-head h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:1.8rem}.drill-dialog-close{border:1px solid var(--line);width:2.25rem;height:2.25rem;color:var(--ink-soft);border-radius:2px;font-size:1.4rem;line-height:1;transition:border-color .2s,color .2s}.drill-dialog-close:hover{color:var(--ink);border-color:#0b1f2a59}.upload-file-meta{color:var(--muted);font-size:.95rem}.drill-library{background:var(--paper)}.drill-library-head{gap:1.25rem;margin-bottom:1.75rem;display:grid}.drill-library-tools{gap:.85rem;display:grid}@media (width>=720px){.drill-library-head{grid-template-columns:1fr auto;align-items:end}.drill-library-tools{grid-template-columns:auto 16rem;align-items:end}}.drill-list{border-top:1px solid var(--line);gap:0;display:grid}.drill-item{border-bottom:1px solid var(--line);align-items:center;gap:1.25rem;padding:1.5rem 0;display:grid}@media (width>=800px){.drill-item{grid-template-columns:1fr auto}}.drill-item h3{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:.35rem;font-size:1.4rem}.drill-item p{color:var(--muted);margin-bottom:.85rem}.drill-item-actions{flex-wrap:wrap;gap:.75rem;display:flex}.hero{min-height:100svh;color:var(--mist);isolation:isolate;align-items:end;display:grid;position:relative}.hero-visual{z-index:-1;background:radial-gradient(80% 60% at 70% 20%,#1fa37a47,#0000 55%),radial-gradient(55% 45% at 15% 80%,#f0e6d824,#0000 50%),linear-gradient(160deg,#07151c 0%,#0b1f2a 42%,#123646 100%);position:absolute;inset:0;overflow:hidden}.hero-grid{background-image:linear-gradient(#e8f4f20f 1px,#0000 1px),linear-gradient(90deg,#e8f4f20f 1px,#0000 1px);background-size:72px 72px;animation:28s linear infinite grid-drift;position:absolute;inset:-10%;-webkit-mask-image:radial-gradient(70% 60% at 60% 40%,#000 20%,#0000 75%);mask-image:radial-gradient(70% 60% at 60% 40%,#000 20%,#0000 75%)}.hero-orb{filter:blur(2px);animation:orb-float 12s var(--ease-out) infinite alternate;border-radius:50%;position:absolute}.hero-orb-a{background:radial-gradient(circle at 35% 35%,#1fa37a8c,#0000 68%);width:min(48vw,420px);height:min(48vw,420px);top:8%;right:6%}.hero-orb-b{background:radial-gradient(circle,#f0e6d838,#0000 70%);width:min(36vw,280px);height:min(36vw,280px);animation-delay:-4s;bottom:18%;left:8%}.hero-court{opacity:.9;animation:court-in 1.4s var(--ease-out) both;border:1px solid #e8f4f22e;border-radius:2px;position:absolute;inset:18% 8% 22% 38%;transform:perspective(900px)rotateY(-18deg)rotateX(8deg)}.hero-court:before,.hero-court:after{content:"";background:#e8f4f22e;position:absolute}.hero-court:before{width:1px;inset:0 auto 0 50%;transform:translate(-50%)}.hero-court:after{height:1px;inset:50% 0 auto;transform:translateY(-50%)}.hero-content{width:min(100%, var(--max));padding:clamp(6rem, 14vh, 8rem) var(--gutter) clamp(2.5rem, 6vh, 4rem);margin:0 auto}.brand{font-family:var(--font-display);letter-spacing:-.07em;animation:rise 1s var(--ease-out) both;margin-bottom:clamp(1.25rem,3vh,2rem);font-size:clamp(5.5rem,18vw,11rem);font-weight:800;line-height:.85}.brand span{color:var(--signal)}.hero-copy{max-width:28rem;animation:rise 1s var(--ease-out) .12s both}.hero-copy h1{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:.75rem;font-size:clamp(1.55rem,3.4vw,2.15rem);font-weight:700;line-height:1.15}.hero-copy p{color:#e8f4f2b8;max-width:26rem;margin-bottom:1.75rem}.cta-row{flex-wrap:wrap;align-items:center;gap:.85rem 1.25rem;display:flex}.btn{min-height:2.85rem;transition:transform .25s var(--ease-out), background .25s ease, color .25s ease, border-color .25s ease;border-radius:2px;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.25rem;font-size:.98rem;font-weight:600;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--signal);color:var(--ink)}.btn-primary:hover{background:#2bb888}.btn-ghost{color:var(--mist);border:1px solid #e8f4f259}.btn-ghost:hover{border-color:#e8f4f2b3}.btn-dark{background:var(--ink);color:var(--mist)}.btn-dark:hover{background:var(--ink-soft)}.btn-outline{border:1px solid var(--line);color:var(--ink)}.btn-outline:hover{border-color:#0b1f2a59}.section{padding:clamp(4.5rem, 10vh, 7rem) var(--gutter)}.section-inner{width:min(100%, var(--max));margin:0 auto}.section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--signal-deep);margin-bottom:1rem;font-size:.8rem;font-weight:600}.section-title{font-family:var(--font-display);letter-spacing:-.04em;margin-bottom:.85rem;font-size:clamp(2rem,4.5vw,3rem);font-weight:700;line-height:1.1}.section-lead{color:var(--muted);max-width:34rem;font-size:1.1rem}.reveal{opacity:0;transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);transform:translateY(28px)}.reveal.is-visible{opacity:1;transform:none}.work{background:linear-gradient(180deg, var(--paper) 0%, #e7f1ee 100%)}.work-feature{align-items:center;gap:clamp(2rem,5vw,3.5rem);margin-top:clamp(2.5rem,5vw,3.5rem);display:grid}@media (width>=860px){.work-feature{grid-template-columns:1.15fr .85fr}}.work-stage{min-height:clamp(280px,42vw,420px);color:var(--mist);background:radial-gradient(70% 60% at 30% 20%,#1fa37a59,#0000 55%),linear-gradient(145deg,#0b1f2a,#184455 55%,#0f2d38);position:relative;overflow:hidden}.work-stage-grid{opacity:.7;background-image:linear-gradient(#e8f4f212 1px,#0000 1px),linear-gradient(90deg,#e8f4f212 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0}.work-app-icon{aspect-ratio:1;object-fit:cover;width:min(58%,220px);animation:phone-float 7s var(--ease-out) infinite alternate;border-radius:28%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 28px 60px #00000059}.work-phone{aspect-ratio:9/17;width:min(58%,220px);animation:phone-float 7s var(--ease-out) infinite alternate;background:linear-gradient(#e8f4f214,#0000 40%),#102833;border:2px solid #e8f4f259;border-radius:28px;position:absolute;top:12%;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 30px 60px #00000047}.work-phone-bar{background:#e8f4f21f;border-radius:999px;width:38%;height:18px;margin:10px auto 0}.work-phone-screen{gap:.65rem;padding:1.1rem 1rem 1rem;display:grid}.work-phone-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:.95rem;font-weight:700}.work-phone-line{background:#e8f4f21f;border-radius:2px;height:8px}.work-phone-line.short{width:55%}.work-court-mini{aspect-ratio:16/10;background:#1fa37a26;border:1px solid #e8f4f240;margin-top:.4rem;position:relative}.work-court-mini:before,.work-court-mini:after{content:"";background:#e8f4f24d;position:absolute}.work-court-mini:before{width:1px;inset:0 auto 0 50%}.work-court-mini:after{height:1px;inset:50% 0 auto}.work-dot{background:var(--signal);border-radius:50%;width:10px;height:10px;animation:2.4s ease-in-out infinite pulse-dot;position:absolute;top:28%;left:62%;box-shadow:0 0 0 6px #1fa37a33}.work-meta h3{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:.75rem;font-size:clamp(1.75rem,3vw,2.25rem)}.work-meta p{color:var(--muted);max-width:28rem;margin-bottom:1.5rem}.work-tags{color:var(--ink-soft);flex-wrap:wrap;gap:.65rem 1.1rem;margin-bottom:1.75rem;font-size:.92rem;font-weight:500;display:flex}.work-tags span{padding-left:.9rem;position:relative}.work-tags span:before{content:"";background:var(--signal);border-radius:50%;width:.4rem;height:.4rem;position:absolute;top:.55em;left:0}.services{background:linear-gradient(135deg, #f0e6d88c, transparent 40%), var(--mist)}.services-list{border-top:1px solid var(--line);gap:0;margin-top:clamp(2.5rem,5vw,3.5rem);display:grid}.service-item{border-bottom:1px solid var(--line);align-items:baseline;gap:.75rem 2rem;padding:1.6rem 0;display:grid}@media (width>=720px){.service-item{grid-template-columns:8rem 1fr}}.service-item h3{font-family:var(--font-display);letter-spacing:-.03em;font-size:1.35rem}.service-item p{color:var(--muted);max-width:38rem}.about{background:var(--ink);color:var(--mist)}.about .section-label{color:var(--signal)}.about .section-lead{color:#e8f4f2ad}.about-grid{align-items:end;gap:clamp(2rem,5vw,4rem);margin-top:clamp(2.5rem,5vw,3.5rem);display:grid}@media (width>=800px){.about-grid{grid-template-columns:1.2fr .8fr}}.about-copy p+p{margin-top:1rem}.about-copy p{color:#e8f4f2b8;max-width:36rem;font-size:1.12rem}.about-aside{border-top:1px solid #e8f4f22e;padding-top:1.25rem}.about-aside dt{letter-spacing:.12em;text-transform:uppercase;color:#e8f4f280;margin-bottom:.25rem;font-size:.78rem}.about-aside dd{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 1.15rem;font-size:1.25rem;font-weight:700}.about-aside dd:last-child{margin-bottom:0}.contact{background:radial-gradient(ellipse 60% 50% at 85% 0%, #1fa37a29, transparent 55%), linear-gradient(180deg, #eaf5f2, var(--paper))}.contact-panel{gap:1.75rem;margin-top:clamp(2rem,4vw,2.75rem);display:grid}@media (width>=720px){.contact-panel{grid-template-columns:1fr auto;align-items:end}}.contact-email{font-family:var(--font-display);letter-spacing:-.03em;border-bottom:2px solid var(--signal);padding-bottom:.15rem;font-size:clamp(1.5rem,3.5vw,2.25rem);font-weight:700;transition:color .2s;display:inline-block}.contact-email:hover{color:var(--signal-deep)}.contact-note{color:var(--muted);max-width:26rem}.footer{padding:1.5rem var(--gutter) 2rem;color:var(--muted);border-top:1px solid var(--line);background:var(--paper);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;font-size:.92rem;display:flex}.footer-mark{font-family:var(--font-display);color:var(--ink);letter-spacing:-.04em;align-items:center;gap:.45rem;font-weight:800;display:inline-flex}.footer-logo{object-fit:cover;border-radius:50%;width:1.75rem;height:1.75rem}.footer-links{flex-wrap:wrap;gap:.85rem 1.25rem;display:flex}.footer-links a{transition:color .2s}.footer-links a:hover{color:var(--ink)}.text-link{border-bottom:1px solid;padding-bottom:.1rem;font-weight:600;transition:color .2s,border-color .2s}.text-link.light{color:var(--mist);border-color:#e8f4f273}.text-link.light:hover{color:var(--signal);border-color:var(--signal)}.page-hero{padding:clamp(7rem, 16vh, 9rem) var(--gutter) clamp(3rem, 6vh, 4rem);color:var(--mist);background:radial-gradient(55% 50% at 90% 0,#1fa37a2e,#0000 55%),linear-gradient(160deg,#07151c 0%,#0b1f2a 50%,#123646 100%)}.page-hero .section-label{color:var(--signal)}.page-title{font-family:var(--font-display);letter-spacing:-.06em;margin-bottom:1.25rem;font-size:clamp(3.5rem,10vw,6.5rem);font-weight:800;line-height:.9}.page-title span{color:var(--signal)}.page-lead{color:#e8f4f2b8;max-width:32rem;font-size:1.15rem}.section-inner.narrow{max-width:40rem}.prose{gap:1.1rem;margin-top:1.5rem;display:grid}.prose p{color:var(--muted);font-size:1.1rem}.product-hero{min-height:100svh;color:var(--mist);isolation:isolate;align-items:end;display:grid;position:relative;overflow:hidden}.product-hero-visual{z-index:-1;background:radial-gradient(70% 55% at 75% 25%,#1fa37a4d,#0000 55%),linear-gradient(160deg,#07151c 0%,#0b1f2a 45%,#123646 100%);position:absolute;inset:0}.product-hero-stage{opacity:.95;width:min(42vw,360px);min-height:clamp(260px,38vw,380px);animation:rise 1.1s var(--ease-out) .15s both;position:absolute;inset:12% 6% auto auto}.product-hero-content{width:min(100%, var(--max));padding:clamp(6rem, 14vh, 8rem) var(--gutter) clamp(2.5rem, 6vh, 4rem);max-width:36rem;margin:0 auto;margin-left:var(--gutter);animation:rise 1s var(--ease-out) both;margin-right:auto}@media (width>=900px){.product-hero-content{margin-left:max(var(--gutter), calc((100% - var(--max)) / 2))}}.product-icon{object-fit:cover;width:4.5rem;height:4.5rem;animation:rise 1s var(--ease-out) both;border-radius:22%;margin-bottom:1rem;box-shadow:0 16px 36px #00000059}.product-hero-label{color:var(--signal)}.product-brand{font-family:var(--font-display);letter-spacing:-.05em;margin:.35rem 0 1rem;font-size:clamp(3.25rem,9vw,5.75rem);font-weight:800;line-height:.95}.product-tagline{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:.85rem;font-size:clamp(1.35rem,2.8vw,1.75rem);font-weight:700;line-height:1.2}.product-summary{color:#e8f4f2b8;max-width:28rem;margin-bottom:1.75rem}.product-overview{background:var(--paper)}.product-highlights{background:linear-gradient(180deg, #e7f1ee, var(--mist))}.feature-list{border-top:1px solid var(--line);margin-top:clamp(2rem,4vw,3rem)}.feature-item{border-bottom:1px solid var(--line);align-items:start;gap:.75rem 1.75rem;padding:1.6rem 0;display:grid}@media (width>=720px){.feature-item{grid-template-columns:4rem 1fr}}.feature-index{font-family:var(--font-display);color:var(--signal-deep);letter-spacing:-.02em;font-size:1.1rem;font-weight:700}.feature-item h3{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:.4rem;font-size:1.35rem}.feature-item p{color:var(--muted);max-width:38rem}.product-details{background:var(--ink);color:var(--mist)}.product-details .section-label{color:var(--signal)}.detail-list{gap:clamp(1.75rem,4vw,2.5rem);margin-top:clamp(2rem,4vw,3rem);display:grid}@media (width>=800px){.detail-list{grid-template-columns:1fr 1fr}}.detail-item h3{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:.65rem;font-size:1.4rem}.detail-item p{color:#e8f4f2ad;max-width:28rem}.product-facts{background:var(--paper)}.facts-grid{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1.25rem 2rem;margin:1.5rem 0 0;display:grid}.fact dt{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem;font-size:.78rem}.fact dd{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.2rem;font-weight:700}.product-notes{background:#e7f1ee}.product-cta{background:radial-gradient(ellipse 50% 50% at 10% 0%, #1fa37a24, transparent 55%), var(--mist)}@media (width<=800px){.product-hero-stage{width:min(100%,280px);min-height:300px;margin:5.5rem auto 0;position:relative;inset:auto}.product-hero{display:block}.product-hero-visual{flex-direction:column;min-height:auto;padding-bottom:0;display:flex;position:relative}.product-hero-content{background:linear-gradient(#0000,#0b1f2a 18%);max-width:none;margin:0;padding-top:1.5rem;position:relative}}@keyframes rise{0%{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}@keyframes grid-drift{0%{transform:translate(0,0)}to{transform:translate(-36px,-36px)}}@keyframes orb-float{0%{transform:translate(0,0)scale(1)}to{transform:translate(-18px,24px)scale(1.06)}}@keyframes court-in{0%{opacity:0;transform:perspective(900px)rotateY(-28deg)rotateX(14deg)translateY(40px)}to{opacity:.9;transform:perspective(900px)rotateY(-18deg)rotateX(8deg)translateY(0)}}@keyframes phone-float{0%{transform:translate(-50%,-50%)translateY(0)}to{transform:translate(-50%,-50%)translateY(-10px)}}@keyframes pulse-dot{0%,to{transform:scale(1);box-shadow:0 0 0 6px #1fa37a33}50%{transform:scale(1.15);box-shadow:0 0 0 12px #1fa37a14}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-grid,.hero-orb,.hero-court,.work-phone,.work-app-icon,.work-dot,.brand,.hero-copy,.product-hero-stage,.product-hero-content{animation:none!important}.reveal{opacity:1;transition:none;transform:none}.btn:hover{transform:none}}@media (width<=640px){.nav-links a:not(.nav-cta){display:none}.nav-right{gap:.65rem}.hero-court{inset:22% 6% 38% 28%}}
