.landing{width:min(1248px,100% - 80px);margin-inline:auto}.landing-nav{justify-content:space-between;align-items:center;gap:24px;height:80px;display:flex}.landing-nav__links{align-items:center;gap:32px;display:flex}.landing-nav__links a{min-height:44px;color:var(--ink-soft);align-items:center;font-size:13px;text-decoration:none;display:flex}.landing-nav__links a:hover{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.landing-nav__links .landing-nav__login{color:var(--ink);font-weight:500}.landing-hero{grid-template-columns:minmax(0,1fr) minmax(0,.85fr);align-items:center;gap:clamp(64px,8vw,120px);padding:64px 0 88px;display:grid}.landing h1{font-family:var(--display);letter-spacing:-.055em;margin:0 0 28px;font-size:clamp(58px,6.6vw,96px);font-weight:480;line-height:1}.landing-hero__lede{max-width:410px;color:var(--ink-soft);margin:0;font-size:17px;line-height:1.65}.landing-hero__actions{flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:32px;display:flex}.landing-text-link{min-height:44px;color:var(--ink-soft);align-items:center;gap:12px;font-size:13px;text-decoration:none;display:inline-flex}.landing-text-link:hover{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.landing .web-button__island,.landing-text-link>span{transition:transform .22s var(--ease)}.landing .web-button:hover .web-button__island{transform:translate(3px)}.landing-text-link:hover>span{transform:translateY(3px)}.landing-hero__note{max-width:340px;color:var(--muted);margin:16px 0 0;font-size:12px;line-height:1.6}.landing-hero__demo{justify-self:end;width:100%;min-width:0;max-width:520px}.landing-demo__board{margin:0}.landing-demo__top{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px 17px;font-size:12px;display:flex}.landing-demo__top>span:first-child{align-items:center;gap:8px;display:flex}.landing-demo__top i{background:var(--paper-light);border:1px solid var(--ink-soft);border-radius:50%;flex-shrink:0;width:10px;height:10px}.landing-demo__bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:20px 0 0 17px;display:flex}.landing-demo__status{align-items:center;gap:10px;min-width:0;display:flex}.landing-demo__status p{margin:0}.landing-demo__status strong,.landing-demo__status span{display:block}.landing-demo__status strong{font-size:13px;font-weight:500}.landing-demo__status span{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.5}.landing-demo__button{min-height:44px;color:var(--ink);background:var(--paper-deep);cursor:pointer;border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;transition:background-color .18s,transform .18s;display:inline-flex}.landing-demo__button:hover{background:var(--line)}.landing-demo__button:active{transform:scale(.98)}.landing-section{padding-block:88px;scroll-margin-top:40px}.landing-section h2{font-family:var(--display);letter-spacing:-.045em;text-wrap:balance;margin:0;font-size:clamp(36px,3.7vw,52px);font-weight:460;line-height:1.12}.landing-section__intro{max-width:560px;margin-bottom:48px}.landing-section__intro>p,.landing-section__copy>p,.landing-league__copy>p{max-width:440px;color:var(--ink-soft);margin:24px 0 0;font-size:16px;line-height:1.7}.landing-section__copy>p+p,.landing-league__copy>p+p{margin-top:16px}.landing-method{padding-top:56px}.landing-method ol{grid-template-columns:repeat(3,minmax(0,1fr));gap:56px;margin:0;padding:0;list-style:none;display:grid}.landing-method__number{color:var(--ink-soft);font-family:var(--mono);margin-bottom:22px;font-size:12px;display:block}.landing-method h3{letter-spacing:-.015em;margin:0;font-size:17px;font-weight:500;line-height:1.45}.landing-method li p{max-width:340px;color:var(--ink-soft);margin:12px 0 0;font-size:14px;line-height:1.75}.landing-adaptive,.landing-progress{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(56px,7vw,104px);display:grid}.landing-adaptive>*,.landing-progress>*{min-width:0}.landing-focus{background:var(--yellow-soft);border-radius:8px;padding:36px 40px 32px}.landing-focus__label{color:var(--ink-soft);margin:0 0 24px;font-size:13px}.landing-focus__tabs{gap:8px;display:flex}.landing-focus__tabs button{min-height:44px;color:var(--ink-soft);background:0 0;border:0;border-radius:6px;padding:10px 16px;font-size:13px;font-weight:500;transition:background-color .18s,color .18s}.landing-focus__tabs button:hover{color:var(--ink);background:#fffefa80}.landing-focus__tabs button[aria-selected=true]{color:var(--paper-light);background:var(--ink)}.landing-focus__panels{display:grid}.landing-focus__panel{grid-area:1/1;min-width:0}.landing-focus__panel[data-inactive=true]{visibility:hidden;pointer-events:none}.landing-focus__content{padding-top:32px}.landing-focus__icon{color:var(--yellow);margin-bottom:24px;display:block}.landing-focus__content h3{max-width:320px;font-family:var(--display);letter-spacing:-.035em;margin:0;font-size:29px;font-weight:460;line-height:1.15}.landing-focus__content p{color:var(--ink-soft);margin:16px 0 0;font-size:14px;line-height:1.7}.landing-focus__content .landing-focus__practice{color:var(--ink);align-items:flex-start;gap:12px;margin-top:28px;font-size:12px;display:flex}.landing-focus__practice svg{flex-shrink:0;margin-top:1px}.landing-focus__fallback details{margin-top:20px}.landing-focus__fallback summary{cursor:pointer;padding-block:12px;font-size:14px}.landing-focus__fallback h3{margin-block:12px;font-size:18px;font-weight:500}.landing-focus__fallback p{color:var(--ink-soft);font-size:14px;line-height:1.7}.landing-progress__details{gap:24px;margin:32px 0 0;display:grid}.landing-progress__details dt{font-size:14px;font-weight:500}.landing-progress__details dd{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.7}.landing-progress-preview{padding-block:16px}.landing-progress-preview__label{flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin:0 0 32px;font-size:14px;font-weight:500;display:flex}.landing-progress-preview__label span{color:var(--muted);font-size:11px;font-weight:400}.landing-progress-preview .web-pattern-chart{margin:0}.landing-progress-preview .web-chart-legend{margin-bottom:12px}.landing-progress-preview__caption{max-width:370px;color:var(--muted);margin:20px 0 0;font-size:13px;line-height:1.7}.landing-league{background:var(--paper-deep);border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);align-items:center;gap:64px;margin-block:48px;padding:64px;display:grid}.landing-league__copy .landing-label{margin:0 0 20px;font-size:12px;font-weight:500}.landing-league__visual{flex-direction:column;align-items:center;gap:24px;min-width:0;margin:0;display:flex}.landing-league__trophies{aspect-ratio:1;width:280px;max-width:100%;display:grid}.landing-league__trophy{opacity:0;width:100%;height:auto;transition:opacity .5s var(--ease), transform .65s cubic-bezier(.16, 1, .3, 1);grid-area:1/1;display:block;transform:translateY(14px)scale(.95)}.landing-league__trophy[data-active=true]{opacity:1;transform:translateY(0)scale(1)}.landing-league__visual figcaption{color:var(--ink-soft);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:11px;line-height:1.8;display:flex}.landing-league__visual figcaption strong{color:var(--ink);font-weight:600}.landing-league__step{transition:color .35s var(--ease);align-items:center;gap:8px;display:inline-flex}.landing-league__step[data-active=true]{color:var(--ink)}.landing-league__arrow{color:var(--muted)}.landing-faq{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);align-items:start;gap:80px;display:grid}.landing-faq details{border-bottom:1px solid var(--line)}.landing-faq details:first-child summary{padding-top:4px}.landing-faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:24px;min-height:64px;padding-block:22px;font-size:15px;font-weight:500;line-height:1.5;list-style:none;display:flex}.landing-faq summary::-webkit-details-marker{display:none}.landing-faq summary:focus-visible{outline:2px solid var(--yellow);outline-offset:4px;border-radius:2px}.landing-faq__toggle{width:14px;height:14px;color:var(--muted);flex:0 0 14px;position:relative}.landing-faq__toggle:before,.landing-faq__toggle:after{content:"";width:12px;height:1px;transition:transform .22s var(--ease);background:currentColor;position:absolute;top:6px;left:1px}.landing-faq__toggle:after{transform:rotate(90deg)}.landing-faq details[open] .landing-faq__toggle:after{transform:rotate(0)}.landing-faq details p{max-width:510px;color:var(--ink-soft);margin:0;padding:0 32px 24px 0;font-size:14px;line-height:1.75}.landing-start{text-align:center;padding-block:96px 112px}.landing-start h2{font-size:clamp(40px,4.6vw,64px)}.landing-start p{max-width:440px;color:var(--ink-soft);margin:24px auto 32px;font-size:16px;line-height:1.7}.landing-footer{justify-content:space-between;align-items:center;gap:24px;min-height:112px;padding-block:24px;display:flex}.landing-footer .web-brand__mark{border-radius:8px;width:28px;height:28px}.landing-footer .web-brand__name{font-size:16px}.landing-footer p{color:var(--muted);margin:0;font-size:11px;line-height:1.6}.landing-footer p a{text-underline-offset:3px}@media (prefers-reduced-motion:no-preference){.landing-hero__copy>*{animation:.8s cubic-bezier(.16,1,.3,1) both landing-enter}.landing-hero__lede{animation-delay:90ms}.landing-hero__actions{animation-delay:.18s}.landing-hero__note{animation-delay:.23s}.landing-hero__demo{animation:1s cubic-bezier(.16,1,.3,1) .16s both landing-enter}.landing [data-entered=true]{animation:landing-enter .8s calc(var(--reveal-order,0) * 80ms) both cubic-bezier(.16, 1, .3, 1)}.landing-focus__panel[data-inactive=false] .landing-focus__content{animation:.38s cubic-bezier(.16,1,.3,1) both landing-enter}.landing-focus__panel[data-inactive=false] .landing-focus__icon{animation:.55s cubic-bezier(.16,1,.3,1) both landing-icon-in}.landing-demo--revealed .landing-demo__status p{animation:landing-enter .3s both var(--ease)}.landing-league__visual[data-entered=true] .landing-league__trophies{animation:1.1s cubic-bezier(.16,1,.3,1) both landing-trophy-in}.landing-faq details[open] p{animation:landing-enter .3s both var(--ease)}}@keyframes landing-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes landing-icon-in{0%{opacity:0;transform:translateY(8px)rotate(-9deg)}to{opacity:1;transform:translateY(0)rotate(0)}}@keyframes landing-trophy-in{0%{opacity:0;transform:translateY(24px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.landing *,.landing :before,.landing :after{transition:none!important;animation:none!important}}@media (max-width:1100px) and (min-width:801px){.landing-adaptive,.landing-progress{gap:48px}.landing-focus{padding:28px}.landing-league{gap:40px;padding:48px}.landing-league__trophies{width:230px}}@media (max-width:800px){.landing{width:calc(100% - 48px)}.landing-nav{height:72px}.landing-nav__links{gap:24px}.landing-nav__links .landing-nav__section{display:none}.landing-hero{grid-template-columns:minmax(0,1fr);gap:48px;padding:48px 0 56px}.landing h1{font-size:clamp(52px,10vw,76px)}.landing-hero__lede{max-width:450px;font-size:16px}.landing-hero__demo{justify-self:center;max-width:520px}.landing-section{padding-block:56px;scroll-margin-top:24px}.landing-section h2{font-size:clamp(36px,6vw,44px)}.landing-section__intro{margin-bottom:36px}.landing-method ol{gap:28px}.landing-method h3{font-size:16px}.landing-adaptive,.landing-progress{grid-template-columns:minmax(0,1fr);gap:36px}.landing-section__copy>p,.landing-league__copy>p{max-width:520px}.landing-focus{max-width:560px}.landing-progress__visual{grid-row:2;width:100%;max-width:560px}.landing-league{grid-template-columns:minmax(0,1fr);gap:40px;margin-block:32px;padding:40px}.landing-league__trophies{width:200px}.landing-faq{grid-template-columns:minmax(0,1fr);gap:36px}.landing-faq h2 br{display:none}.landing-start{padding-block:64px 80px}.landing-start h2{font-size:clamp(38px,6.5vw,54px)}}@media (max-width:520px){.landing{width:calc(100% - 40px)}.landing-hero{padding-top:40px}.landing h1{margin-bottom:24px;font-size:clamp(48px,12vw,62px)}.landing-hero__actions{gap:12px 20px}.landing-hero__note{font-size:11px}.landing-demo__top{gap:6px;font-size:11px}.landing-demo__bottom{padding-top:16px}.landing-demo__button{width:100%}.landing-section{padding-block:44px}.landing-section h2{font-size:clamp(32px,8.3vw,40px)}.landing-section__intro>p,.landing-section__copy>p,.landing-league__copy>p{font-size:15px}.landing-method ol{grid-template-columns:minmax(0,1fr);gap:32px}.landing-method li{grid-template-columns:24px minmax(0,1fr);gap:8px 16px;display:grid}.landing-method__number{grid-row:1/3;margin:3px 0 0}.landing-method li p{grid-column:2;margin:0}.landing-focus{padding:24px}.landing-focus__label{font-size:12px}.landing-focus__tabs{gap:4px}.landing-focus__tabs button{flex:1;padding-inline:10px;font-size:12px}.landing-focus__content h3{font-size:28px}.landing-progress-preview__label{margin-bottom:24px}.landing-progress-preview .web-chart-legend{font-size:10px}.landing-league{gap:32px;margin-block:24px;padding:32px 24px}.landing-league h2 br{display:none}.landing-league__visual figcaption{gap:6px;font-size:10px}.landing-faq summary{gap:20px;font-size:14px}.landing-faq details p{padding-right:20px}.landing-start{padding-block:56px 64px}.landing-start h2{font-size:clamp(34px,8.7vw,44px)}.landing-start h2 br{display:none}.landing-start p{font-size:15px}.landing-footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:16px}}
.chess-mascot{--mascot-size:80px;width:var(--mascot-size);height:var(--mascot-size);flex:0 0 var(--mascot-size);vertical-align:middle;display:inline-block;position:relative}.chess-mascot--tiny{--mascot-size:40px}.chess-mascot--hero{--mascot-size:176px}.chess-mascot__motion,.chess-mascot__crop{width:100%;height:100%;display:block}.chess-mascot__motion{transform-origin:50% 88%;animation:1.6s ease-in-out 2 nico-greet}.chess-mascot__crop{position:relative;overflow:hidden}.chess-mascot .chess-mascot__atlas{width:200%;max-width:none;height:200%;position:absolute;top:0;left:0}.chess-mascot[data-mood=think] .chess-mascot__atlas{left:-100%}.chess-mascot[data-mood=celebrate] .chess-mascot__atlas{top:-100%}.chess-mascot[data-mood=encourage] .chess-mascot__atlas{top:-100%;left:-100%}.chess-mascot[data-mood=think] .chess-mascot__motion{animation-name:nico-think}.chess-mascot[data-mood=celebrate] .chess-mascot__motion{animation:.9s ease-in-out 3 nico-hop}.chess-mascot[data-mood=encourage] .chess-mascot__motion{animation-name:nico-nod}.chess-mascot.chess-mascot--still .chess-mascot__motion{animation:none}.web-trainer__message .chess-mascot{--mascot-size:36px}.web-result-summary .chess-mascot{--mascot-size:104px}.web-auth__form-content>.chess-mascot{--mascot-size:112px}.web-credential-card>.chess-mascot{--mascot-size:72px}.landing-demo__status .chess-mascot{--mascot-size:56px}@keyframes nico-greet{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)translateY(-2px)}65%{transform:rotate(4deg)}}@keyframes nico-think{0%,to{transform:rotate(0)}50%{transform:rotate(-4deg)}}@keyframes nico-hop{0%,to{transform:translateY(0)scale(1)}25%{transform:translateY(2px)scale(1.03,.96)}55%{transform:translateY(-8px)scale(.98,1.02)}}@keyframes nico-nod{0%,to{transform:rotate(0)}35%{transform:rotate(4deg)translateY(2px)}70%{transform:rotate(-2deg)}}@media (max-width:700px){.chess-mascot--hero{--mascot-size:136px}.web-result-summary .chess-mascot{--mascot-size:72px}.web-auth__form-content>.chess-mascot{--mascot-size:96px}}@media (prefers-reduced-motion:reduce){.chess-mascot[data-mood] .chess-mascot__motion{animation:none;transform:none}}
