:root{
  --page-gutter:clamp(20px,3.2vw,56px);
  --desktop-header:76px;
  --ui-fast:120ms;
  --ui-smooth:220ms;
  --ui-page:280ms;
  --ui-ease:cubic-bezier(.2,.8,.2,1);
  --ui-exit:cubic-bezier(.4,0,1,1);
  --ui-reveal:cubic-bezier(.16,1,.3,1);
}

.head-links .admin-center-link{color:var(--red)}
.head-links .head-button{min-height:38px;padding:0 14px;border:1px solid var(--black);background:var(--white);color:var(--black);font-size:.78rem;line-height:1;text-decoration:none;transition:background-color var(--ui-fast) ease,color var(--ui-fast) ease,border-color var(--ui-fast) ease,transform var(--ui-fast) ease}
.head-links button.head-button{border:1px solid var(--black);padding:0 14px;background:var(--white)}
.head-links .head-button-primary,.head-links button.head-button-primary{background:var(--black);color:var(--white)}
.head-links .head-button:active{transform:scale(.97)}
@media(hover:hover) and (pointer:fine){.head-links .head-button:hover{background:var(--black);color:var(--white)}.head-links .head-button-primary:hover,.head-links button.head-button-primary:hover{border-color:var(--red);background:var(--red)}}
@media(max-width:520px){
  .head-links .admin-center-link{font-size:0}
  .head-links .admin-center-link::after{content:"ADMIN";font-size:.68rem;letter-spacing:.04em}
  .head-links{gap:7px}
  .head-links .head-button,.head-links button.head-button{min-height:36px;padding-inline:11px;font-size:.7rem}
}

@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .page-login .brand-mark,.page-login .hero h1,.page-login .hero p,.page-login .actions{animation:none!important}
  .plan-item[open] .plan-item-panel,.plan-item.is-open .plan-item-panel{animation:none!important}
  .plan-item.is-entering,.plan-item.is-status-moving{animation:none!important;transition:none!important}
  .catalog-loading-line i{animation:none!important;transform:none;width:100%}
}

@keyframes panel-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes login-brand-in{from{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(-4px)}to{opacity:1;clip-path:inset(0);transform:none}}
@keyframes login-copy-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

body{background:var(--white,#fff)}
.masthead{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center}
.masthead .header-back{grid-column:1;grid-row:1;justify-self:start;min-height:38px;display:inline-flex;align-items:center;gap:9px;padding:0 14px;border:1px solid var(--black);background:var(--white);color:var(--black);font-size:.78rem;line-height:1;text-decoration:none;transition:background-color var(--ui-fast) ease,color var(--ui-fast) ease,transform var(--ui-fast) ease}
.masthead .header-back span{font-size:1rem;line-height:1;transition:transform var(--ui-fast) ease}
.masthead .header-back b{font-weight:500}
.logo{display:inline-flex;align-items:center;flex:0 0 auto;color:inherit;text-decoration:none}
.masthead .logo{grid-column:2;grid-row:1;justify-self:center}
.masthead .head-links{grid-column:3;grid-row:1;justify-self:end}
.logo img,.brand-mark{display:block;width:104px;height:auto}
@media(min-width:1000px){.logo img,.brand-mark{width:118px}}
@media(hover:hover) and (pointer:fine){.masthead .header-back:hover{background:var(--black);color:var(--white)}.masthead .header-back:hover span{transform:translateX(-3px)}}
@media(max-width:700px){.masthead .header-back{width:40px;min-height:36px;justify-content:center;padding:0}.masthead .header-back b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.page-lessons .head-links .head-profile-link,.page-base .head-links .head-profile-link,.page-orientirs .head-links .head-profile-link{display:none}}
.page-plan{--plan-line:var(--black);--plan-soft-line:#b9b9b4}
.page-plan .filters{border-bottom-color:var(--plan-line)}
.page-plan .filter{border-color:var(--plan-line)}
.page-plan .plan-hero{min-height:0;padding:18px 12px 16px;border-top:0;border-bottom:1px solid var(--plan-line)}
.page-plan .plan-hero-title{min-width:0}
.page-plan .plan-hero h1{overflow:visible;margin-top:6px;font-size:clamp(2.75rem,11.6vw,3.45rem);line-height:.86;letter-spacing:-.075em}
.page-plan .plan-direction-bar{min-height:0;padding:10px 12px 12px;display:block;border-bottom:1px solid var(--plan-line);background:#fff}
.page-plan .plan-direction-bar>span{flex:0 0 auto;color:#777;font-size:.62rem;letter-spacing:.04em;text-transform:uppercase}
.page-plan .plan-direction-bar .filters{min-width:0;margin-top:8px;padding:0;border:0}
.page-plan .section-head{display:none}
.training-planner{scroll-margin-top:74px;border-top:1px solid var(--black);background:#e7e7e4}
.training-planner-head{padding:24px 12px 20px;border-bottom:1px solid var(--black);background:#fff}
.training-planner-head span{display:block;color:var(--red);font-size:.68rem;letter-spacing:.045em;text-transform:uppercase}
.training-planner-head h2{margin:7px 0 0;font-size:2rem;line-height:.92;letter-spacing:-.055em;text-transform:uppercase}
.training-planner-head p{max-width:440px;margin:12px 0 0;color:#666;font-size:.8rem;line-height:1.4}
#trainingPlanner{padding:12px}
.training-builder,.training-active{border:1px solid var(--black);background:#fff;animation:training-panel-in .38s var(--ui-reveal) both}
.training-builder.is-launching{animation:training-panel-out .36s var(--ui-reveal) both;pointer-events:none}
.training-builder-head{min-height:48px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--black);background:var(--black);color:#fff}
.training-builder-head span,.training-builder-head strong{font-size:.67rem;letter-spacing:.04em;text-transform:uppercase}
.training-builder-head strong{color:#aaa}
.training-builder-grid{display:grid;gap:10px;padding:10px;background:#e7e7e4}
.training-step,.training-draft{min-width:0;border:1px solid var(--black);background:#fff}
.training-step>header,.training-draft>header{min-height:66px;padding:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #c6c6c1}
.training-step>header>i{flex:0 0 auto;color:var(--red);font-size:.7rem;font-style:normal}
.training-step>header>div{min-width:0;flex:1}
.training-step>header strong,.training-step>header span{display:block}
.training-step>header strong{font-size:1rem;letter-spacing:-.025em}
.training-step>header span{margin-top:4px;color:#777;font-size:.67rem;line-height:1.3}
.training-template-list{display:grid}
.training-template{min-height:66px;border:0;border-bottom:1px solid #d0d0cb;background:#fff;padding:10px 12px;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:center;text-align:left;cursor:pointer}
.training-template:last-child{border-bottom:0}
.training-template>i{width:27px;height:27px;border:1px solid var(--black);display:grid;place-items:center;color:var(--red);font-size:.9rem;font-style:normal}
.training-template span,.training-template strong,.training-template small{display:block}
.training-template strong{font-size:.8rem}
.training-template small{margin-top:3px;color:#777;font-size:.64rem;line-height:1.25}
.training-template.selected{background:#f1f1ee}
.training-template.selected>i{border-color:var(--red);background:var(--red);color:#fff}
.training-suggestion-list{display:flex;flex-wrap:wrap;gap:7px;padding:12px}
.training-suggestion{min-height:42px;border:1px solid var(--black);background:#fff;padding:8px 10px;display:inline-flex;align-items:center;justify-content:space-between;gap:14px;font:inherit;font-size:.74rem;cursor:pointer}
.training-suggestion i{color:var(--red);font-size:.95rem;font-style:normal}
.training-suggestion.selected{background:var(--black);color:#fff}
.training-suggestion.selected i{color:#fff}
.training-step-empty{margin:0;padding:18px 12px;color:#777;font-size:.7rem;line-height:1.4}
.training-form{padding:12px;display:grid;grid-template-columns:minmax(0,1fr) 94px}
.training-form input{width:100%;min-width:0;min-height:48px;border:1px solid var(--black);border-right:0;border-radius:0;background:#fff;padding:10px 12px;font:inherit;font-size:.78rem;outline:0}
.training-form input:focus{box-shadow:inset 0 0 0 2px var(--red)}
.training-form button{min-height:48px;border:1px solid var(--black);background:var(--black);color:#fff;padding:9px 10px;font:inherit;font-size:.68rem;font-weight:700;text-transform:uppercase;cursor:pointer}
.training-draft{padding:12px;background:#e7e7e4}
.training-draft>header{min-height:0;padding:2px 0 12px;align-items:end;border:0;background:transparent}.training-draft>header>span{color:#777;font-size:.68rem;text-transform:uppercase}.training-draft>header>span small{display:block;margin-top:4px;color:#777;font-size:.6rem;line-height:1.35;letter-spacing:.02em;text-transform:none}.training-draft>header>strong{font-size:1.65rem;line-height:1}
.training-draft-list{width:100%;max-width:760px;list-style:none;margin:0;padding:0;display:grid;gap:9px}
.training-draft-list li{min-height:82px;border:1px solid var(--black);display:grid;grid-template-columns:minmax(0,1fr) 52px;align-items:stretch;position:relative;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.035);transition:border-color var(--ui-fast) ease,box-shadow var(--ui-fast) ease,transform var(--ui-fast) var(--ui-ease)}
.training-draft-list li>span{padding:14px 16px;display:flex;align-items:center;gap:14px;font-size:.88rem}
.training-draft-list li>span i{min-width:24px;color:var(--red);font-size:.7rem;font-style:normal;font-variant-numeric:tabular-nums}
.training-draft-list li>span b{min-width:0;display:block;font-weight:650}.training-draft-list li>span small{display:block;margin-bottom:5px;color:#777;font-size:.6rem;font-weight:400;letter-spacing:.045em;text-transform:uppercase}
.training-draft-remove{border:0;border-left:1px solid #d0d0cb;background:#fff;color:#777;font:inherit;font-size:1.05rem;cursor:pointer}
.training-draft-empty{min-height:104px;padding:20px 12px;display:flex;flex-direction:column;justify-content:center}
.training-draft-empty strong{font-size:.9rem}.training-draft-empty span{max-width:320px;margin-top:5px;color:#777;font-size:.68rem;line-height:1.4}
.training-launch{padding:12px;display:grid;gap:12px;border-top:1px solid var(--black);background:#fff}
.training-launch>div strong,.training-launch>div span{display:block}.training-launch>div strong{font-size:.85rem}.training-launch>div span{margin-top:4px;color:#777;font-size:.65rem}
.training-launch button,.training-active-foot button{min-height:50px;border:1px solid var(--black);background:var(--black);color:#fff;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;font:inherit;font-size:.7rem;font-weight:700;text-transform:uppercase;cursor:pointer}
.training-launch button i{color:var(--red);font-size:1rem;font-style:normal}.training-launch button:disabled{border-color:#bbb;background:#d7d7d4;color:#888;cursor:not-allowed}.training-launch button:disabled i{color:#888}
.training-active-head{display:grid;border-bottom:1px solid var(--black)}
.training-active-head>div:first-child{padding:20px 12px}.training-active-head span{display:block;color:var(--red);font-size:.67rem;text-transform:uppercase;letter-spacing:.04em}.training-active-head h3{margin:7px 0 0;font-size:1.65rem;letter-spacing:-.045em}
.training-clock{padding:15px 12px;background:var(--black);color:#fff}.training-clock span{color:#aaa}.training-clock strong{display:block;margin-top:5px;font-size:2rem;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.045em}
.training-active-progress{padding:14px 12px;border-bottom:1px solid var(--black)}.training-active-progress>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.training-active-progress span{color:#777;font-size:.67rem;text-transform:uppercase}.training-active-progress strong{font-size:.85rem}.training-active-progress>i{height:5px;margin-top:10px;display:block;background:#ddd;overflow:hidden}.training-active-progress>i b{display:block;height:100%;background:var(--red);transition:width .3s ease}
.training-active-list{list-style:none;margin:0;padding:0}.training-active-item{min-height:66px;border-bottom:1px solid #c5c5c1}.training-active-item label{min-height:66px;padding:11px 12px;display:grid;grid-template-columns:25px 27px minmax(0,1fr);gap:11px;align-items:center;cursor:pointer}.training-active-item input{position:absolute;opacity:0;pointer-events:none}
.training-sequence{color:var(--red);font-size:.65rem;font-variant-numeric:tabular-nums}.training-check{width:27px;height:27px;border:1px solid var(--black);display:grid;place-items:center;color:#fff;font-size:.72rem}.training-active-item input:checked+.training-check{border-color:var(--red);background:var(--red)}.training-active-item input:checked~.training-item-copy{color:#777;text-decoration:line-through}.training-item-copy{min-width:0}.training-item-copy small{display:block;margin-bottom:3px;color:#777;font-size:.58rem;letter-spacing:.035em;text-transform:uppercase}.training-text{display:block;min-width:0;font-size:.82rem;line-height:1.3;overflow-wrap:anywhere}
.training-active-foot{padding:12px;display:grid;gap:12px}.training-active-foot p{margin:0;color:#777;font-size:.66rem;line-height:1.4}.training-active-foot button{justify-content:center}
.training-ordering{border:1px solid var(--black);background:#fff;animation:training-panel-in .38s var(--ui-reveal) both}.training-ordering.is-launching{animation:training-panel-out .36s var(--ui-reveal) both;pointer-events:none}
.training-order-head{padding:18px 12px;border-bottom:1px solid var(--black);display:grid;gap:16px}.training-order-head>div>span{color:var(--red);font-size:.65rem;letter-spacing:.045em;text-transform:uppercase}.training-order-head h3{margin:6px 0 0;font-size:2rem;line-height:.92;letter-spacing:-.055em;text-transform:uppercase}.training-order-head p{max-width:560px;margin:10px 0 0;color:#666;font-size:.76rem;line-height:1.4}.training-order-head>strong{font-size:1.55rem;font-variant-numeric:tabular-nums}
.training-order-layout{padding:10px;display:grid;gap:10px;background:#e7e7e4}.training-order-selected,.training-order-pool{min-width:0;border:1px solid var(--black);background:#fff}.training-order-selected>header,.training-order-pool>header{min-height:58px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--black)}.training-order-selected>header span,.training-order-pool>header span{font-size:.7rem;font-weight:700;text-transform:uppercase}.training-order-selected>header strong,.training-order-pool>header strong{color:#777;font-size:.65rem;font-weight:400}
.training-order-sequence{list-style:none;margin:0;padding:10px;display:grid;gap:8px}.training-order-sequence li{min-width:0}.training-order-sequence button{width:100%;min-height:72px;border:1px solid var(--black);background:#fff;padding:0;display:grid;grid-template-columns:46px minmax(0,1fr) 42px;align-items:stretch;text-align:left;font:inherit;cursor:pointer}.training-order-sequence button>i{display:grid;place-items:center;border-right:1px solid #ccc;color:var(--red);font-size:.68rem;font-style:normal}.training-order-sequence button>span{min-width:0;padding:12px;align-self:center}.training-order-sequence button small,.training-order-sequence button strong{display:block}.training-order-sequence button small{margin-bottom:4px;color:#777;font-size:.58rem;font-weight:400;letter-spacing:.04em;text-transform:uppercase}.training-order-sequence button strong{font-size:.82rem}.training-order-sequence button>b{display:grid;place-items:center;border-left:1px solid #ccc;color:#777;font-size:1rem;font-weight:400}
.training-order-empty,.training-order-ready{min-height:180px;padding:24px 16px;display:flex;flex-direction:column;justify-content:center}.training-order-empty strong,.training-order-ready strong{font-size:1.05rem}.training-order-empty span,.training-order-ready span{max-width:340px;margin-top:7px;color:#777;font-size:.7rem;line-height:1.45}.training-order-ready{background:var(--black);color:#fff}.training-order-ready span{order:-1;margin:0 0 7px;color:var(--red);font-size:.62rem;text-transform:uppercase}
.training-order-pool-list{padding:10px;display:grid;gap:8px}.training-order-pool-list>button{width:100%;min-height:72px;border:1px solid var(--black);background:#fff;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;font:inherit;cursor:pointer}.training-order-pool-list>button span{min-width:0}.training-order-pool-list small,.training-order-pool-list strong{display:block}.training-order-pool-list small{margin-bottom:4px;color:#777;font-size:.58rem;font-weight:400;letter-spacing:.04em;text-transform:uppercase}.training-order-pool-list strong{font-size:.82rem}.training-order-pool-list>button>i{flex:0 0 auto;color:var(--red);font-size:.62rem;font-style:normal;font-weight:700;text-transform:uppercase}
.training-order-actions{padding:12px;display:grid;gap:10px;border-top:1px solid var(--black)}.training-order-actions>button{min-height:50px;border:1px solid var(--black);background:#fff;padding:10px 14px;font:inherit;font-size:.68rem;font-weight:700;text-transform:uppercase;cursor:pointer}.training-order-actions>button:last-child{background:var(--black);color:#fff;display:flex;align-items:center;justify-content:space-between}.training-order-actions>button:last-child i{color:var(--red);font-size:1rem;font-style:normal}.training-order-actions>button:disabled{border-color:#bbb;background:#d7d7d4;color:#888;cursor:not-allowed}.training-order-actions>button:disabled i{color:#888}
.training-complete{min-height:240px;padding:28px 20px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:var(--black);color:#fff;animation:training-panel-in .38s var(--ui-reveal) both}
.training-complete span{color:var(--red);font-size:.68rem;text-transform:uppercase;letter-spacing:.045em}.training-complete strong{margin-top:10px;font-size:2.6rem;line-height:.95;letter-spacing:-.055em}.training-complete p{max-width:480px;margin:13px 0 0;color:#aaa;font-size:.78rem;line-height:1.45}.training-complete button{min-height:46px;margin-top:22px;border:1px solid #fff;background:#fff;color:#111;padding:10px 14px;font:inherit;font-size:.7rem;font-weight:700;text-transform:uppercase;cursor:pointer}
@keyframes training-panel-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes training-panel-out{to{opacity:0;transform:translateY(-12px);clip-path:inset(0 0 100% 0)}}
@media(hover:hover) and (pointer:fine){.training-template:hover,.training-suggestion:hover{background:#f1f1ee}.training-suggestion.selected:hover{background:var(--black)}.training-form button:hover,.training-launch button:not(:disabled):hover,.training-active-foot button:hover{border-color:var(--red);background:var(--red)}.training-draft-list li:hover{border-color:#777;box-shadow:0 6px 18px rgba(0,0,0,.08);transform:translateY(-1px)}.training-draft-remove:hover{background:var(--red);color:#fff}.training-order-pool-list>button:hover{background:var(--black);color:#fff}.training-order-sequence button:hover{border-color:var(--red)}.training-order-actions>button:not(:disabled):hover{border-color:var(--red);background:var(--red);color:#fff}}
@media(max-width:640px){.training-draft{padding:10px}.training-draft-list{gap:8px}.training-draft-list li{min-height:76px;grid-template-columns:minmax(0,1fr) 44px}.training-draft-list li>span{padding:12px 10px;gap:8px;font-size:.82rem}.training-draft-list li>span i{min-width:12px}.training-order-head h3{font-size:1.85rem}.training-order-sequence button,.training-order-pool-list>button{min-height:68px}}
html.app-navigating :where(.head-links a,.bottom-nav a){pointer-events:none}

.catalog-loading-state{min-height:calc(100vh - 58px);padding:28px 12px;display:flex;flex-direction:column;justify-content:space-between;background:#fff;overflow:hidden}
.catalog-loading-copy span{display:block;color:var(--red);font-size:.75rem;letter-spacing:.055em;text-transform:uppercase}
.catalog-loading-copy strong{display:block;max-width:620px;margin-top:12px;font-size:clamp(2.8rem,13vw,6rem);line-height:.85;letter-spacing:-.07em;text-transform:uppercase}
.catalog-loading-copy p{max-width:520px;margin:18px 0 0;color:#666;font-size:.875rem;line-height:1.4}
.catalog-loading-line{height:2px;background:#e1e1e1;overflow:hidden}
.catalog-loading-line i{display:block;width:38%;height:100%;background:var(--red);transform:translateX(-110%);animation:catalog-loading-line 1.15s cubic-bezier(.65,0,.35,1) infinite}
.catalog-loading-retry{align-self:flex-start;min-height:44px;margin-top:22px;padding:10px 16px;border:1px solid var(--black);background:#fff;cursor:pointer}
.catalog-pending .app>:not(.masthead):not(.catalog-loading-state){display:none!important}
body:not(.catalog-pending) .catalog-loading-state{display:none}
@keyframes catalog-loading-line{0%{transform:translateX(-110%)}55%{transform:translateX(95%)}100%{transform:translateX(265%)}}
@media(min-width:1000px){.catalog-loading-state{padding:44px var(--page-gutter)}}

:where(.direction,.filter,.text-action,.overview-link,.category,.base-card,.trick,.plan-item-summary,.plan-status-options button,.plan-open-lesson,.library-switch a,.bottom-nav a,.head-links a,.metric,.chat-button,.video-select){transition:background-color var(--ui-fast) ease,color var(--ui-fast) ease,border-color var(--ui-fast) ease,opacity var(--ui-fast) ease}
:where(.direction,.filter,.text-action,.overview-link,.category,.base-card,.trick,.plan-item-summary,.plan-status-options button,.plan-open-lesson,.library-switch a,.bottom-nav a,.head-links a,.metric,.chat-button,.video-select):active{opacity:.64}
.plan-item[open] .plan-item-panel,.plan-item.is-open .plan-item-panel{animation:panel-in var(--ui-smooth) var(--ui-ease) both}
.page-base .viewer,.page-lessons .lesson-view{transition-duration:var(--ui-smooth),0s;transition-timing-function:var(--ui-ease),linear}
.page-base .viewer,.page-lessons .lesson-view{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
.page-profile .overview-track>span,.page-profile .track>span{transform-origin:left center;will-change:width,transform}
.page-lessons .decision-buttons button,.page-base .checklist-item{will-change:transform,background-color}

:where(.category-arrow,.topic-arrow,.trick-arrow,.chat-arrow,.overview-link span:last-child){transition:transform var(--ui-smooth) var(--ui-reveal)}
@media(hover:hover){
  :where(.category,.base-card,.trick,.chat-button,.overview-link):hover :where(.category-arrow,.topic-arrow,.trick-arrow,.chat-arrow,.overview-link span:last-child){transform:translateX(4px)}
}

.page-profile .masthead,
.page-lessons .masthead,
.page-orientirs .masthead,
.page-base .masthead{
  height:calc(58px + var(--safe-top));
  padding-top:var(--safe-top);
}

.page-lessons .catalog-intro-side{margin-top:20px}
.page-lessons .library-switch{display:inline-grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--black)}
.page-lessons .library-switch a{min-height:44px;padding:9px 18px;display:grid;place-items:center;color:inherit;text-decoration:none;font-size:.75rem;text-transform:uppercase}
.page-lessons .library-switch a+a{border-left:1px solid var(--black)}
.page-lessons .library-switch .active{background:var(--black);color:#fff}

.page-profile .chat{margin-inline:0}
.page-profile .chat-button{padding-inline:12px}
.page-profile .metrics{margin-inline:-12px}
.page-profile .metric:first-child{padding-left:12px}
.page-profile .overview-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;border-bottom:1px solid var(--black);background:#fff}
.page-profile .overview-link{min-height:54px;padding:14px 12px;border-bottom:0}
.page-profile .overview-link+.overview-link{border-top:0;border-left:1px solid var(--black)}
.page-profile .profile{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:0;padding:0;border-bottom:1px solid #454545;background:var(--black);color:#fff}
.page-profile .profile-identity{grid-column:1/-1;min-height:82px;padding:17px 12px 20px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center}
.page-profile .profile .avatar{background:#fff;color:var(--black)}
.page-profile .profile-copy strong{font-size:1.1rem;color:#fff}
.page-profile .profile-copy>span,.page-profile .profile-copy #username{color:#aaa}
.page-profile .profile-score{min-height:76px;padding:12px;display:flex;flex-direction:column;justify-content:space-between;border-top:1px solid #454545}
.page-profile .profile-score+.profile-score{border-left:1px solid #454545}
.page-profile .profile-score>span{color:var(--red);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}
.page-profile .profile-score strong{color:#fff;font-size:1.8rem;font-weight:700;line-height:.85;letter-spacing:-.06em}
.page-profile .profile-score small{color:#aaa;font-size:.75rem;line-height:1.2}

@media(max-width:519px){
  .page-profile .metric:nth-child(odd){padding-left:12px}
}

.page-login .page{max-width:none;min-height:100vh;box-shadow:none}
.page-login .brand{display:flex;align-items:center;justify-content:space-between;gap:20px}
.page-login .brand-mark{animation:login-brand-in 480ms var(--ui-reveal) both}
.page-login .brand-context{color:#777;font-size:.75rem;font-weight:400;letter-spacing:.04em;text-transform:uppercase}
.page-login .hero{margin:18px 0 0;padding:28px 0 22px;overflow:hidden}
.page-login .hero h1{margin-top:0;font-size:clamp(2.55rem,13vw,4.2rem);line-height:.82;animation:login-copy-in 520ms var(--ui-reveal) 70ms both}
.page-login .hero p{margin-top:16px;animation:login-copy-in 520ms var(--ui-reveal) 140ms both}
.page-login .actions{padding-top:20px;animation:login-copy-in 520ms var(--ui-reveal) 210ms both}
.page-login .auth-copy{margin-bottom:22px;padding-bottom:20px;border-bottom:1px solid var(--black)}
.page-login .auth-copy span{color:var(--red);font-size:.75rem;text-transform:uppercase;letter-spacing:.055em}
.page-login .auth-copy h2{max-width:420px;margin:8px 0 0;font-size:1.65rem;line-height:.95;letter-spacing:-.055em}
.page-login .auth-copy p{max-width:420px;margin:12px 0 0;color:#666;font-size:.875rem;line-height:1.4}
.page-login .footer{margin-top:auto;border-top:1px solid var(--black)}
.plan-stage-tabs{position:sticky;top:0;z-index:8;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--black);border-bottom:1px solid var(--black);background:#fff}
.plan-stage-tabs button{min-height:58px;border:0;border-right:1px solid var(--black);background:#fff;padding:9px 8px;display:flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-size:.72rem;cursor:pointer}
.plan-stage-tabs button:last-child{border-right:0}
.plan-stage-tabs button strong{min-width:21px;height:21px;padding:0 5px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ececec;color:#666;font-size:.65rem;font-weight:600}
.plan-stage-tabs button.active{background:var(--black);color:#fff}
.plan-stage-tabs button.active strong{background:var(--red);color:#fff}
.plan-board{min-width:0}
.plan-block{border-top:1px solid var(--black)}
.plan-block:last-child{border-bottom:1px solid var(--black)}
.plan-block-head{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:23px 12px 11px}
.plan-block-head span{color:var(--red);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
.plan-block-head h2{margin:6px 0 0;font-size:1.35rem;letter-spacing:-.05em}
.plan-block-head p{max-width:290px;margin:8px 0 0;color:#777;font-size:.72rem;line-height:1.35}
.plan-block-head>strong{color:#777;font-size:.75rem;font-weight:400;line-height:1.2;letter-spacing:0;white-space:nowrap}
.plan-drop-zone{min-width:0}
.plan-drop-label{display:none}
.plan-grid{display:grid;gap:12px;padding:12px;border-top:1px solid var(--black);background:#efefec}
.plan-item{position:relative;overflow:hidden;display:grid;grid-template-rows:1fr;border:1px solid var(--plan-line,var(--black));background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.035);opacity:1;touch-action:pan-y;transition:grid-template-rows .42s var(--ui-reveal),opacity .24s ease,border-color .24s ease,box-shadow var(--ui-fast) ease,transform var(--ui-fast) var(--ui-ease)}
.plan-item-learning{border-left:3px solid var(--black)}
.plan-item-known{border-left:3px solid var(--red)}
.plan-card-face{position:relative;z-index:2;min-height:0;overflow:hidden;background:#fff}
.plan-item-summary{position:relative;z-index:2;min-height:112px;padding:16px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;background:#fff;color:inherit;text-decoration:none;list-style:none;will-change:transform;transition:transform 260ms var(--ui-reveal),background-color var(--ui-fast) ease}
.plan-item-summary.has-sequence{grid-template-columns:26px minmax(0,1fr) auto}
.plan-item-summary::-webkit-details-marker{display:none}
.plan-number{color:var(--red);font-size:.75rem}
.plan-item-copy,.plan-item-copy strong,.plan-item-copy span{display:block}.plan-item-copy{min-width:0;color:inherit;text-decoration:none}
.plan-item-copy strong{margin-top:7px;font-size:1.24rem;letter-spacing:-.04em}
.plan-item-copy span{margin-top:7px;color:#777;font-size:.72rem}
.plan-item-copy .plan-item-kicker{margin-top:0;color:var(--red);font-size:.62rem;letter-spacing:.045em;text-transform:uppercase}
.plan-open-cue{min-width:68px;display:flex;align-items:center;justify-content:flex-end;gap:9px;color:var(--red);font-size:1.05rem;transition:transform var(--ui-fast) ease}
.plan-open-cue small{color:var(--black);font-size:.65rem;font-weight:650;text-transform:uppercase}
.plan-open-cue i{font-style:normal}
.plan-item-summary:hover .plan-open-cue{transform:translateX(3px)}
.plan-status-control{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:7px;border-top:1px solid var(--plan-line,var(--black));background:#f3f3f1}
.plan-status-control button{min-height:42px;border:1px solid var(--plan-soft-line,#b9b9b4);background:#fff;padding:7px 4px;color:#5f5f5f;font:inherit;font-size:.62rem;font-weight:650;line-height:1.05;text-transform:uppercase;letter-spacing:.015em;cursor:pointer;transition:background-color var(--ui-fast) ease,color var(--ui-fast) ease,border-color var(--ui-fast) ease,transform var(--ui-fast) ease}
.plan-status-control button.active{border-color:var(--black);background:var(--black);color:#fff}
.plan-status-control button[data-direct-status="known"].active{border-color:var(--red);background:var(--red)}
.plan-status-control button:active{transform:scale(.97)}
.plan-status-control button:disabled{cursor:wait;opacity:.58}
@media(hover:hover) and (pointer:fine){.plan-status-control button:not(.active):hover{border-color:var(--black);color:var(--black)}}
.plan-item.is-status-moving,.plan-item.is-entering{grid-template-rows:0fr;opacity:0;border-color:transparent;pointer-events:none}
.plan-item-arrow{color:var(--red);font-size:1rem;transition:transform .18s}
.plan-item[open] .plan-item-arrow{transform:rotate(90deg)}
.plan-item-panel{padding:14px 12px 16px;border-top:1px solid var(--plan-line,var(--black));background:var(--grey)}
.plan-item-label{display:block;margin-bottom:9px;color:#777;font-size:.75rem}
.plan-status-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--black)}
.plan-status-options button{min-height:44px;border:0;border-right:1px solid var(--black);background:#fff;padding:8px 6px;font:inherit;font-size:.72rem;cursor:pointer}
.plan-status-options button:nth-child(3){border-right:0}
.plan-status-options button.selected{background:var(--black);color:#fff}
.plan-status-options button[data-status="known"].selected{background:var(--red)}
.plan-status-options .quiet{grid-column:1/-1;border-top:1px solid var(--black);border-right:0;color:#777}
.plan-open-lesson{min-height:46px;margin-top:10px;padding:10px 12px;display:flex;align-items:center;justify-content:center;background:var(--black);color:#fff;font-size:.75rem;text-decoration:none}
.plan-archive>summary{cursor:pointer;list-style:none}
.plan-archive>summary::-webkit-details-marker{display:none}
.plan-archive>summary::after{content:"Открыть";margin-left:auto;color:var(--red);font-size:.75rem;text-transform:uppercase}
.plan-archive[open]>summary::after{content:"Скрыть"}
.plan-empty{min-height:0;padding:18px 12px 24px;color:#777;font-size:.875rem}
.plan-empty p{margin:0;line-height:1.4}
.plan-empty-action{width:100%;min-height:50px;margin-top:16px;padding:11px 14px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--black);background:var(--black);color:#fff;font:inherit;font-size:.78rem;font-weight:650;text-decoration:none;cursor:pointer;transition:background-color var(--ui-fast) ease,border-color var(--ui-fast) ease,transform var(--ui-fast) var(--ui-ease)}
.plan-empty-action i{font-style:normal;font-size:1rem;transition:transform var(--ui-smooth) var(--ui-reveal)}
.plan-empty-action:active{transform:scale(.985)}
.plan-empty-action:focus-visible{outline:2px solid var(--red);outline-offset:3px}
@media(hover:hover) and (pointer:fine){.plan-empty-action:hover{border-color:var(--red);background:var(--red)}.plan-empty-action:hover i{transform:translateX(4px)}}
.plan-empty-focus{display:grid;gap:7px;color:var(--black)}
.plan-empty-focus span{color:#777;font-size:.75rem}
.plan-empty-focus strong{font-size:1.15rem;letter-spacing:-.025em}
.plan-empty-focus .plan-empty-action{margin-top:5px}
.plan-empty-focus .plan-empty-action span{color:inherit;font-size:inherit}

.plan-drop-zone{transition:background-color var(--ui-fast) ease,box-shadow var(--ui-fast) ease}
.plan-drop-zone.drop-active{background:#f7eee9;box-shadow:inset 0 0 0 2px var(--red)}
.plan-item.is-dragging{opacity:.35}
.plan-item.is-holding::after{content:"";position:absolute;z-index:6;left:0;bottom:0;height:3px;background:var(--red);animation:plan-hold-progress 260ms linear both;pointer-events:none}
@keyframes plan-hold-progress{from{width:0}to{width:100%}}
.plan-drag-ghost{position:fixed!important;z-index:120;top:0;left:0;margin:0!important;overflow:hidden;border:1px solid var(--red)!important;background:#fff;box-shadow:0 22px 55px rgba(0,0,0,.22);pointer-events:none;opacity:.97;transform-origin:center;will-change:transform}
.plan-drag-ghost.is-returning{transition:transform 180ms var(--ui-reveal),opacity 180ms ease;opacity:.35}
.plan-drag-active,.plan-drag-active *{cursor:grabbing!important;user-select:none!important}
.plan-item.drop-before,.plan-item.drop-after{position:relative}
.plan-item.drop-before::before,.plan-item.drop-after::after{content:"";position:absolute;z-index:4;left:-1px;right:-1px;height:3px;background:var(--red);pointer-events:none}
.plan-item.drop-before::before{top:-6px}
.plan-item.drop-after::after{bottom:-6px}
.page-plan .toast{display:flex;align-items:center;gap:14px;max-width:calc(100% - 24px);padding:11px 13px;pointer-events:none}
.page-plan .toast.show{pointer-events:auto}
.page-plan .toast button{border:0;border-bottom:1px solid currentColor;background:none;color:inherit;padding:2px 0;font:inherit;font-weight:700;cursor:pointer}
.plan-board-help{display:none}
@media(max-width:999px){
  .plan-column{display:none}
  .plan-column.is-mobile-active{display:block}
  .plan-drop-label{display:none}
  .page-plan .plan-block{border-top:0}
  .page-plan .plan-block-head{min-height:0;padding:14px 12px 13px;border-bottom:1px solid var(--black)}
  .page-plan .plan-block-head p{display:none}
  .page-plan .plan-block-head h2{margin-top:5px;font-size:1.35rem}
  .page-plan .plan-grid{border-top:0}
  .page-plan .plan-stage-tabs{border-top:0}
}
@media(max-width:640px){
  .plan-item-summary{grid-template-columns:minmax(0,1fr) auto;padding-inline:12px}
  .plan-item-summary.has-sequence{grid-template-columns:24px minmax(0,1fr) auto}
  .plan-open-cue{min-width:34px}
  .plan-open-cue small{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media(max-width:380px){.page-plan .plan-hero h1{font-size:2.65rem}.page-plan .filter{padding-inline:10px}}

@media(min-width:720px){
  body{padding:0}
  .app{max-width:none;box-shadow:none}
  .bottom-nav{bottom:0;width:100%}
  .page-profile .category:last-child:nth-child(odd){grid-column:1/-1;border-right:0}
}

@media(min-width:1000px){
  .page-base .masthead{height:var(--desktop-header);padding-top:0}
  .page-profile .app{
    max-width:1920px;
    min-height:calc(100vh - 48px);
    grid-template-columns:minmax(420px,40%) minmax(0,1fr);
  }
  .page-profile .masthead{
    position:sticky;
    top:0;
    z-index:12;
    height:var(--desktop-header);
    padding-inline:var(--page-gutter);
    border-bottom:1px solid var(--black);
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(14px);
  }
  .page-profile .logo{font-size:1.55rem}
  .page-profile .head-links{gap:28px}
  .page-profile .profile{
    padding:14px var(--page-gutter);
    border-top:0;
  }
  .page-profile .direction-panel{
    padding:12px var(--page-gutter);
    border-top:0;
  }
  .page-profile .overview{
    min-height:0;
    padding:32px var(--page-gutter) 0;
  }
  .page-profile .overview h1{
    max-width:8ch;
    margin:10px 0 32px;
    font-size:clamp(4rem,5vw,6.1rem);
  }
  .page-profile .overview-track,
  .page-profile .overview-actions{margin-inline:calc(var(--page-gutter) * -1)}
  .page-profile .overview-link{padding:17px var(--page-gutter);font-size:.88rem}
  .page-profile .metric{min-height:100px}
  .page-profile .metrics{margin-inline:calc(var(--page-gutter) * -1)}
  .page-profile .metric:first-child{padding-left:var(--page-gutter)}
  .page-profile .metric:not(:first-child){padding-left:16px}
  .page-profile .metric strong{font-size:2.7rem}
  .page-profile .metric span{font-size:.75rem}
  .page-profile .section-head{padding:34px var(--page-gutter) 14px}
  .page-profile .section-head h2{font-size:1.65rem}
  .page-profile .legend{padding:0 var(--page-gutter) 16px}
  .page-profile .category{padding:20px var(--page-gutter) 18px}
  .page-profile .category-name{font-size:1.55rem}
  .page-profile .category-summary{margin-top:20px}
  .page-profile .category-summary strong{font-size:3.1rem}
  .page-profile .chat{padding:0}
  .page-profile .chat-button{padding-inline:var(--page-gutter);border-top:0;border-bottom:0}
  .page-profile .chat-copy strong{font-size:1.35rem}

  .page-lessons .app,
  .page-orientirs .app{max-width:none;min-height:100vh;padding-bottom:0}
  .page-lessons .masthead,
  .page-orientirs .masthead{
    position:sticky;
    top:0;
    z-index:12;
    height:var(--desktop-header);
    padding-inline:var(--page-gutter);
    border-bottom:1px solid var(--black);
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(14px);
  }
  .page-lessons .logo,
  .page-orientirs .logo{font-size:1.55rem}
  .page-lessons .head-links,
  .page-orientirs .head-links{gap:28px}

  .page-lessons .catalog-intro{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(280px,420px);
    grid-template-rows:auto auto;
    column-gap:var(--page-gutter);
    align-items:end;
    padding:50px var(--page-gutter) 42px;
    border-top:0;
  }
  .page-lessons .catalog-intro .eyebrow{grid-column:1;grid-row:1}
  .page-lessons .catalog-intro h1{
    grid-column:1;
    grid-row:2;
    font-size:clamp(7rem,11vw,12rem);
  }
  .page-lessons .catalog-intro p{
    max-width:36ch;
    margin:14px 0 0;
    font-size:1rem;
    line-height:1.35;
  }
  .page-lessons .catalog-intro-side{grid-column:2;grid-row:1/3;align-self:end;margin:0 0 8px}
  .page-lessons .catalog-workspace{--catalog-sidebar-width:360px;position:relative;grid-template-columns:var(--catalog-sidebar-width) minmax(0,1fr)}
  .page-lessons .catalog-workspace::before{content:"";position:absolute;z-index:2;top:0;bottom:0;left:var(--catalog-sidebar-width);width:1px;background:var(--black);pointer-events:none}
  .page-lessons .catalog-sidebar{
    position:sticky;
    top:var(--desktop-header);
    align-self:start;
    max-height:calc(100vh - var(--desktop-header));
    overflow:auto;
    border-right:0;
  }
  .page-lessons .direction-panel,
  .page-lessons .tools{padding:26px var(--page-gutter)}
  .page-lessons .catalog-head{padding:34px var(--page-gutter) 16px}
  .page-lessons .catalog-head h2{font-size:1.7rem}
  .page-lessons .trick{min-height:104px;padding:24px var(--page-gutter)}
  .page-lessons .trick strong{font-size:1.35rem}

  .page-lessons .lesson-view{padding:0;background:#fff}
  .page-lessons .lesson-inner{
    max-width:none;
    min-height:100vh;
    padding-bottom:0;
    grid-template-columns:minmax(0,1.55fr) minmax(390px,.75fr);
  }
  .page-lessons .lesson-head{
    min-height:var(--desktop-header);
    padding-inline:var(--page-gutter);
  }
  .page-lessons .lesson-title{
    padding:42px var(--page-gutter) 34px;
    border-bottom:1px solid var(--black);
  }
  .page-lessons .lesson-title h2{font-size:clamp(6rem,10vw,11rem)}
  .page-lessons .media-wrap{padding:34px var(--page-gutter) 50px}
  .page-lessons .lesson-tools{padding:34px 0 50px}
  .page-lessons .decision{padding:0 var(--page-gutter)}
  .page-lessons .videos-head{padding:38px var(--page-gutter) 14px}
  .page-lessons .video-select{grid-template-columns:150px 1fr;padding:16px 14px 16px var(--page-gutter)}

  .page-orientirs .hero{
    display:block;
    padding:20px var(--page-gutter) 18px;
    border-top:0;
  }
  .page-orientirs .hero h1{
    margin-top:8px;
    font-size:clamp(4rem,5.2vw,5.6rem);
    line-height:.82;
  }
  .page-orientirs .plan-direction-bar{min-height:60px;padding:9px var(--page-gutter);display:flex;align-items:center;gap:22px}
  .page-orientirs .plan-direction-bar .filters{margin-top:0;padding:0}
  .page-orientirs .section-head{padding:38px var(--page-gutter) 16px}
  .page-orientirs .section-head h2{font-size:1.7rem}
  .page-orientirs .trick-group{grid-template-columns:minmax(350px,30vw) minmax(0,1fr)}
  .page-orientirs .group-head{padding:28px var(--page-gutter)}
  .page-orientirs .group-title h3{font-size:2.1rem}
  .page-orientirs .video-row{grid-template-columns:minmax(0,1fr) 118px}
  .page-orientirs .video-link{grid-template-columns:220px 1fr;padding:20px 16px 20px var(--page-gutter)}
  .page-orientirs .video-copy strong{font-size:1rem}
  .page-orientirs .empty{margin-inline:var(--page-gutter)}
  .page-plan .filters{border-bottom:0}
  .page-plan .plan-stage-tabs{display:none}
  .page-plan .plan-board{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr) minmax(0,1fr);gap:12px;padding:12px;border-bottom:1px solid var(--black);background:#e7e7e4}
  .page-plan .plan-block{min-width:0;border-top:0;border-right:1px solid var(--black);border-bottom:0;display:grid;grid-template-rows:auto minmax(180px,1fr);align-content:start}
  .page-plan .plan-block{border:1px solid var(--black);background:#fff}
  .page-plan .plan-block:last-child{border-right:1px solid var(--black);border-bottom:1px solid var(--black)}
  .page-plan .plan-block-head{min-height:142px;padding:24px 20px 18px;align-items:end;border-bottom:1px solid var(--black)}
  .page-plan .plan-block[data-plan-stage="learning"] .plan-block-head{background:var(--black);color:#fff}
  .page-plan .plan-block[data-plan-stage="learning"] .plan-block-head p,.page-plan .plan-block[data-plan-stage="learning"] .plan-block-head>strong{color:#aaa}
  .page-plan .plan-block-head h2{font-size:1.7rem}
  .page-plan .plan-drop-zone{min-height:250px;max-height:min(62vh,720px);padding:10px;overflow:auto;overscroll-behavior:contain;background:#efefec;scrollbar-width:thin}
  .page-plan .plan-drop-label{position:sticky;top:0;z-index:5;max-height:0;min-height:0;padding:0 10px;overflow:hidden;opacity:0;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0 dashed #aaa;background:rgba(255,255,255,.96);color:#777;font-size:.68rem;text-transform:uppercase;letter-spacing:.045em;backdrop-filter:blur(8px);transition:max-height 180ms var(--ui-reveal),min-height 180ms var(--ui-reveal),padding 180ms var(--ui-reveal),opacity 140ms ease,margin 180ms var(--ui-reveal)}
  .page-plan .plan-drop-label i{color:var(--red);font-size:1rem;font-style:normal}
  .page-plan .is-plan-dragging .plan-drop-label{max-height:36px;min-height:36px;padding:7px 10px;margin-bottom:8px;border-width:1px;opacity:1}
  .page-plan .plan-drop-zone.drop-active .plan-drop-label{border-color:var(--red);background:var(--red);color:#fff}
  .page-plan .plan-drop-zone.drop-active .plan-drop-label i{color:#fff}
  .page-plan .plan-grid{display:grid;gap:10px;padding:0;overflow:visible;border-top:0;background:transparent}
  .page-plan .plan-item{border:1px solid var(--plan-line);background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.035);cursor:pointer;touch-action:none;transition:grid-template-rows .42s var(--ui-reveal),opacity .24s ease,border-color .24s ease,box-shadow var(--ui-fast) ease}
  .page-plan .plan-item:hover{border-color:#777;box-shadow:0 5px 18px rgba(0,0,0,.08);transform:translateY(-1px)}
  .page-plan .plan-item.is-holding{border-color:var(--red);box-shadow:0 8px 22px rgba(204,56,45,.13);transform:scale(.994)}
  .page-plan .plan-item.is-dragging{transform:none}
  .page-plan .plan-grid>.plan-item:last-child{border-bottom:1px solid var(--plan-line)}
  .page-plan .plan-item-summary{min-height:118px;padding:19px 16px;grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .page-plan .plan-item-summary.has-sequence{grid-template-columns:28px minmax(0,1fr) auto}
  .page-plan .plan-item-copy strong{font-size:1.28rem}
  .page-plan .plan-status-control{padding:8px}
  .page-plan .plan-item-panel{padding:16px}
  .page-plan .plan-status-options,.page-plan .plan-open-lesson{max-width:none}
  .page-plan .plan-empty,.page-plan .plan-empty-focus{min-height:180px;padding:24px;align-content:start}
  .page-plan .plan-empty-focus{display:grid;grid-template-columns:1fr;grid-template-rows:auto;gap:8px}
  .page-plan .plan-empty-focus span,.page-plan .plan-empty-focus strong,.page-plan .plan-empty-focus .plan-empty-action{grid-column:auto;grid-row:auto}
  .page-plan .plan-empty-focus .plan-empty-action{width:100%;margin-top:8px}
  .page-plan .training-planner{border-top:0}
  .page-plan .training-planner-head{padding:28px var(--page-gutter) 24px;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.7fr);gap:var(--page-gutter);align-items:end}
  .page-plan .training-planner-head h2{font-size:2.35rem}
  .page-plan .training-planner-head p{margin:0 0 2px;font-size:.86rem}
  .page-plan #trainingPlanner{padding:12px}
  .page-plan .training-builder-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
  .page-plan .training-step,.page-plan .training-draft{min-height:260px}
  .page-plan .training-draft{grid-column:1/-1;min-height:0;padding:24px;display:grid;grid-template-columns:minmax(190px,.4fr) minmax(420px,760px);gap:32px;justify-content:space-between;align-items:start}
  .page-plan .training-step>header{min-height:82px;padding:16px}
  .page-plan .training-draft>header{min-height:0;padding:5px 0;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:16px}
  .page-plan .training-draft>header>strong{font-size:2.6rem;order:-1}
  .page-plan .training-draft-list{justify-self:end}
  .page-plan .training-step>header strong{font-size:1.15rem}
  .page-plan .training-template{min-height:70px;padding:12px 16px}
  .page-plan .training-suggestion-list{padding:16px}
  .page-plan .training-form{padding:16px;grid-template-columns:minmax(0,1fr) 112px}
  .page-plan .training-launch{padding:16px 18px;grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .page-plan .training-launch button{min-width:280px}
  .page-plan .training-active-head{grid-template-columns:minmax(0,1fr) 310px}
  .page-plan .training-active-head>div:first-child{padding:28px 24px}
  .page-plan .training-active-head h3{font-size:2.2rem}
  .page-plan .training-clock{padding:24px}
  .page-plan .training-clock strong{font-size:2.5rem}
  .page-plan .training-active-progress{padding:18px 24px}
  .page-plan .training-active-list{display:block}
  .page-plan .training-active-item label{padding:14px 24px}
  .page-plan .training-active-foot{padding:18px 24px;grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .page-plan .training-active-foot button{min-width:260px}
  .page-plan .training-order-head{padding:24px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:28px}
  .page-plan .training-order-head h3{font-size:2.45rem}.page-plan .training-order-head>strong{font-size:2rem}
  .page-plan .training-order-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start;padding:12px;gap:12px}
  .page-plan .training-order-selected,.page-plan .training-order-pool{min-height:390px}
  .page-plan .training-order-actions{padding:16px 18px;grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .page-plan .training-order-actions>button:last-child{min-width:280px}
  .page-plan .training-complete{min-height:280px;padding:44px var(--page-gutter)}
  .page-plan .training-complete strong{font-size:3rem}

  .page-login .page{
    min-height:100vh;
    padding:0;
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(430px,.65fr);
    grid-template-rows:var(--desktop-header) minmax(0,1fr) auto;
  }
  .page-login .brand{
    grid-column:1/-1;
    grid-row:1;
    padding:0 var(--page-gutter);
    border-bottom:1px solid var(--black);
    font-size:1.55rem;
  }
  .page-login .hero{
    grid-column:1;
    grid-row:2;
    min-width:0;
    margin:0;
    padding:clamp(48px,6vw,100px) var(--page-gutter);
    display:flex;
    flex-direction:column;
    justify-content:center;
    border:0;
    border-right:1px solid var(--black);
    background:var(--black);
    color:#fff;
  }
  .page-login .hero h1{
    max-width:10ch;
    margin-top:0;
    font-size:clamp(5rem,7vw,8rem);
  }
  .page-login .hero p{max-width:48ch;color:#aaa;font-size:1rem}
  .page-login .actions{
    grid-column:2;
    grid-row:2;
    align-self:center;
    padding:48px var(--page-gutter);
  }
  .page-login .auth-copy{margin-bottom:30px;padding-bottom:28px}
  .page-login .auth-copy h2{font-size:2.4rem}
  .page-login .primary,
  .page-login .dev{min-height:60px;font-size:.875rem}
  .page-login .footer{
    grid-column:1/-1;
    grid-row:3;
    margin-top:0;
    padding:18px var(--page-gutter) max(18px,var(--safe-bottom));
    border-top:1px solid var(--black);
  }
}

@media(min-width:1500px){
  .page-profile .app{grid-template-columns:minmax(620px,40%) minmax(0,1fr)}
  .page-lessons .catalog-workspace{--catalog-sidebar-width:400px;grid-template-columns:var(--catalog-sidebar-width) minmax(0,1fr)}
  .page-lessons .trick-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-lessons .trick:nth-child(odd){border-right:1px solid var(--black)}
  .page-lessons .trick:last-child:nth-child(odd){grid-column:1/-1;border-right:0}
  .page-lessons .empty{grid-column:1/-1}
}

/* Profile v25: one chosen direction, one current trick, one clear hierarchy. */
.page-profile .profile{
  order:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch;
  gap:0;
  padding:0;
  border-top:0;
  border-bottom:1px solid var(--black);
  background:#fff;
  color:var(--black);
}
.page-profile .profile-identity{
  grid-column:1/-1;
  min-height:78px;
  padding:14px 12px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:center;
  border-bottom:1px solid var(--black);
}
.page-profile .profile .avatar{background:var(--black);color:#fff}
.page-profile .profile-copy strong{color:var(--black);font-size:1.1rem}
.page-profile .profile-copy>span,
.page-profile .profile-copy #username{color:#777}
.page-profile .profile-direction{
  min-height:68px;
  padding:12px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.page-profile .profile-direction span{
  color:var(--red);
  font-size:.68rem;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.page-profile .profile-direction strong{
  margin-top:5px;
  font-size:1.05rem;
  letter-spacing:-.035em;
}
.page-profile .profile-direction-list{
  min-width:0;
  margin-top:7px;
  display:flex;
  gap:6px;
  overflow-x:auto;
  scrollbar-width:none;
}
.page-profile .profile-direction-list::-webkit-scrollbar{display:none}
.page-profile .profile-direction-tab{
  min-height:34px;
  padding:7px 11px;
  flex:0 0 auto;
  border:1px solid #aaa;
  background:#fff;
  color:var(--black);
  font:inherit;
  font-size:.7rem;
  text-transform:uppercase;
  white-space:nowrap;
  cursor:pointer;
  transition:background-color var(--ui-fast) ease,color var(--ui-fast) ease,border-color var(--ui-fast) ease;
}
.page-profile .profile-direction-tab.active{border-color:var(--black);background:var(--black);color:#fff}
.page-profile .profile-direction-tab:not(.active):hover{border-color:var(--black)}
.page-profile .profile-change{
  min-width:102px;
  min-height:44px;
  padding:0 12px;
  border:0;
  border-left:1px solid var(--black);
  background:#fff;
  font:inherit;
  font-size:.72rem;
  text-transform:uppercase;
  cursor:pointer;
  transition:background-color var(--ui-fast) ease,color var(--ui-fast) ease;
}
.page-profile .profile-change:hover,
.page-profile .profile-change:focus-visible{background:var(--black);color:#fff}
.page-profile .profile-change:active{opacity:.64}

.page-profile .ride-focus{
  order:2;
  background:var(--black);
  color:#fff;
  border-bottom:1px solid var(--black);
}
.page-profile .focus-main{
  min-height:270px;
  padding:30px 12px 34px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.page-profile .focus-main .eyebrow{color:var(--red)}
.page-profile .focus-main h1{
  max-width:11ch;
  margin:14px 0 26px;
  font-size:clamp(3.2rem,15vw,6rem);
  line-height:.82;
  letter-spacing:-.065em;
  overflow-wrap:anywhere;
  text-transform:uppercase;
}
.page-profile .focus-main h1.is-long{
  font-size:clamp(2.75rem,12vw,4.8rem);
  overflow-wrap:normal;
  word-break:normal;
}
.page-profile .focus-link{
  width:max-content;
  min-height:44px;
  padding:9px 0;
  display:flex;
  align-items:center;
  gap:18px;
  border-bottom:1px solid #fff;
  color:#fff;
  font-size:.76rem;
  text-decoration:none;
  transition:color var(--ui-fast) ease,border-color var(--ui-fast) ease;
}
.page-profile .focus-link span{color:var(--red);font-size:1.1rem}
.page-profile .focus-link:hover,
.page-profile .focus-link:focus-visible{color:var(--red);border-color:var(--red)}
.page-profile .focus-progress{border-top:1px solid #555}
.page-profile .focus-progress .metrics{
  margin:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:0;
}
.page-profile .focus-progress .metric:nth-child(n){
  min-height:98px;
  padding:12px;
  border-top:0;
  border-left:0;
}
.page-profile .focus-progress .metric:nth-child(even){border-left:1px solid #555}
.page-profile .focus-progress .metric:nth-child(n+3){border-top:1px solid #555}
.page-profile .focus-progress .overview-track{margin:0}
.page-profile .focus-progress .overview-actions{margin:0;border-bottom:0}

.page-profile .achievement-strip{
  order:3;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-bottom:1px solid var(--black);
  background:#fff;
}
.page-profile .achievement-heading{
  grid-column:1/-1;
  padding:24px 12px 16px;
}
.page-profile .achievement-heading span,
.page-profile .achievement-value span{
  color:var(--red);
  font-size:.68rem;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.page-profile .achievement-heading h2{
  margin:5px 0 0;
  font-size:1.5rem;
  letter-spacing:-.05em;
}
.page-profile .achievement-strip p{
  grid-column:1/-1;
  margin:0;
  padding:0 12px 22px;
  color:#666;
  font-size:.78rem;
  line-height:1.45;
}
.page-profile .achievement-value{
  min-height:82px;
  padding:12px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border-top:1px solid var(--black);
}
.page-profile .achievement-value+.achievement-value{border-left:1px solid var(--black)}
.page-profile .achievement-value strong{
  font-size:2rem;
  line-height:.85;
  letter-spacing:-.06em;
}

.page-profile .category-panel{order:4;border-left:0}
.page-profile .chat{order:5}
.page-profile .direction-option input{accent-color:var(--red)}

@media(min-width:720px){
  .page-profile .profile{
    grid-template-columns:minmax(320px,.9fr) minmax(300px,1fr) auto;
  }
  .page-profile .profile-identity{
    grid-column:auto;
    min-height:92px;
    padding-inline:var(--page-gutter);
    border-right:1px solid var(--black);
    border-bottom:0;
  }
  .page-profile .profile-direction{padding-inline:var(--page-gutter)}
  .page-profile .profile-change{min-width:140px;padding-inline:24px}
  .page-profile .achievement-strip{
    grid-template-columns:minmax(240px,.8fr) minmax(300px,1.4fr) repeat(2,minmax(130px,.45fr));
  }
  .page-profile .achievement-heading{
    grid-column:auto;
    padding:26px var(--page-gutter);
    border-right:1px solid var(--black);
  }
  .page-profile .achievement-strip p{
    grid-column:auto;
    padding:26px var(--page-gutter);
    display:flex;
    align-items:center;
    border-right:1px solid var(--black);
  }
  .page-profile .achievement-value{
    min-height:108px;
    padding:22px;
    border-top:0;
  }
  .page-profile .category-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-profile .category:nth-child(n){border-right:0}
  .page-profile .category:nth-child(odd){border-right:1px solid var(--black)}
}

@media(min-width:1000px){
  .page-profile .profile{
    grid-template-columns:360px minmax(0,1fr) 160px;
    padding:0;
  }
  .page-profile .profile-identity{
    min-height:104px;
    padding:16px var(--page-gutter);
    border-right:1px solid var(--black);
  }
  .page-profile .profile .avatar{width:52px;height:52px}
  .page-profile .profile-copy strong{font-size:1.35rem}
  .page-profile .profile-direction{padding-inline:var(--page-gutter)}
  .page-profile .profile-direction strong{font-size:1.3rem}
  .page-profile .ride-focus{
    min-height:410px;
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(430px,.65fr);
  }
  .page-profile .focus-main{
    min-height:410px;
    padding:42px var(--page-gutter) 46px;
  }
  .page-profile .focus-main h1{
    margin:18px 0 34px;
    font-size:clamp(5.5rem,9vw,10rem);
  }
  .page-profile .focus-main h1.is-long{font-size:clamp(4.5rem,7vw,8rem)}
  .page-profile .focus-progress{
    min-width:0;
    display:flex;
    flex-direction:column;
    border-top:0;
    border-left:1px solid #555;
  }
  .page-profile .focus-progress .metrics{flex:1}
  .page-profile .focus-progress .metric:nth-child(n){min-height:132px;padding:20px}
  .page-profile .focus-progress .metric strong{font-size:3.2rem}
  .page-profile .focus-progress .overview-actions{margin-top:auto}
  .page-profile .achievement-heading h2{font-size:1.7rem}
  .page-profile .achievement-value strong{font-size:2.4rem}
  .page-profile .category-list{grid-template-columns:repeat(4,minmax(0,1fr))}
  .page-profile .category:nth-child(n){
    min-height:178px;
    padding:24px var(--page-gutter) 22px;
    border-right:1px solid var(--black);
  }
  .page-profile .category:nth-child(4n){border-right:0}
  .page-profile .category:last-child:nth-child(odd){grid-column:auto}
}

/* Profile follows the same full-width editorial rhythm as Learning. */
.page-profile .app{display:flex;flex-direction:column}
.page-profile .masthead{order:0}
.page-profile .profile{order:1;border-top:0}
.page-profile .overview{order:2}
.page-profile .direction-panel{order:3;border-bottom:1px solid var(--black)}
.page-profile .overview-actions{order:4}
.page-profile .category-panel{order:5}
.page-profile .chat{order:6}

@media(min-width:1000px){
  .page-profile .app{
    max-width:none;
    min-height:100vh;
    padding-bottom:0;
  }
  .page-profile .overview{
    min-height:0;
    padding:32px var(--page-gutter) 0;
  }
  .page-profile .overview h1{
    max-width:none;
    margin:10px 0 32px;
    font-size:clamp(7rem,11vw,12rem);
  }
  .page-profile .metrics{
    margin-inline:calc(var(--page-gutter) * -1);
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .page-profile .metric{min-height:112px}
  .page-profile .overview-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin:0;
  }
  .page-profile .overview-link{
    min-height:54px;
    padding:17px var(--page-gutter);
  }
  .page-profile .overview-link+.overview-link{border-top:0;border-left:1px solid var(--black)}
  .page-profile .profile{
    grid-template-columns:360px repeat(2,minmax(0,1fr));
    padding:0;
    border-top:0;
  }
  .page-profile .profile-identity{grid-column:auto;min-height:104px;padding:16px var(--page-gutter);border-right:1px solid var(--black)}
  .page-profile .profile-identity{border-right-color:#454545}
  .page-profile .profile .avatar{width:52px;height:52px}
  .page-profile .profile-copy strong{font-size:1.35rem}
  .page-profile .profile-score{min-height:104px;padding:16px var(--page-gutter);border-top:0}
  .page-profile .profile-score strong{font-size:2rem}
  .page-profile .direction-panel{
    padding:10px var(--page-gutter);
    border-top:1px solid var(--black);
    border-bottom:1px solid var(--black);
    border-left:0;
  }
  .page-profile .category-panel{border-left:0}
  .page-profile .section-head{padding:34px var(--page-gutter) 14px}
  .page-profile .legend{padding:0 var(--page-gutter) 16px}
  .page-profile .category{min-height:164px;padding:22px var(--page-gutter) 20px}
  .page-profile .chat{padding:0 var(--page-gutter)}
}

/* Shared learning catalogue: Base and Tricks keep one visual rhythm. */
.page-base .base-card,
.page-lessons .trick{min-height:104px}
.page-base .base-card:hover,
.page-base .base-card:focus-visible,
.page-lessons .trick:hover,
.page-lessons .trick:focus-visible{background:var(--grey)}
.page-base .base-card{grid-template-columns:104px minmax(0,1fr)}
.page-base .base-cover{min-height:104px;background:#f1f1f1}
.page-base .base-cover.empty{font-size:2rem;letter-spacing:-.06em}
.page-base .base-copy{padding:15px 12px}
.page-base .base-copy strong{font-size:1.14rem}

/* One grid owns every catalogue divider, so rows never lose or double a line. */
.page-lessons .trick-list,
.page-base .base-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr);
  gap:1px!important;
  padding:1px 0!important;
  border:0!important;
  background:var(--black);
}
.page-lessons .trick,
.page-base .base-card,
.page-base .base-card:nth-child(odd),
.page-base .base-card:nth-child(3n){
  border:0!important;
  background:var(--white);
}
.page-lessons .empty,
.page-base .empty-feed{background:var(--white)}

/* Shared invitation at the end of catalogues and opened materials. */
.learning-cta{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  align-items:center;
  gap:clamp(24px,4vw,64px);
  padding:28px var(--page-gutter);
  overflow:hidden;
  border-top:1px solid var(--black);
  background:var(--black);
  color:var(--white);
}
.learning-cta::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--red)}
.learning-cta-copy span{display:block;color:var(--red);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase}
.learning-cta-copy h2{max-width:520px;margin:8px 0 0;font-size:clamp(2.15rem,4.5vw,4.4rem);line-height:.84;letter-spacing:-.06em;text-transform:uppercase}
.learning-cta-action{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,270px);align-items:center;gap:clamp(18px,3vw,40px)}
.learning-cta-action p{margin:0;color:#d0d0d0;font-size:clamp(.9rem,1.2vw,1.05rem);font-weight:600;line-height:1.32}
.learning-cta-action a{min-height:54px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--white);background:var(--white);color:var(--black);font-size:.78rem;font-weight:700;text-decoration:none;transition:background-color var(--ui-fast) ease,color var(--ui-fast) ease,border-color var(--ui-fast) ease,transform var(--ui-fast) ease}
.learning-cta-action a b{color:var(--red);font-size:1.05rem;transition:transform var(--ui-smooth) var(--ui-reveal)}
.learning-cta-action a:active{transform:scale(.985)}
@media(hover:hover) and (pointer:fine){.learning-cta-action a:hover{border-color:var(--red);background:var(--red);color:var(--white)}.learning-cta-action a:hover b{color:var(--white);transform:translateX(4px)}}
@media(max-width:760px){
  .learning-cta{grid-template-columns:1fr;gap:17px;padding:24px 18px calc(24px + var(--safe-bottom,0px))}
  .learning-cta-copy h2{font-size:clamp(2.15rem,10vw,3.2rem)}
  .learning-cta-action{display:block}
  .learning-cta-action p{max-width:520px}
  .learning-cta-action a{margin-top:16px}
}
body.detail-open.page-lessons>.app>.catalog-learning-cta,
body.detail-open.page-base>.app>.catalog-learning-cta{display:none!important}
.page-lessons .lesson-inner>.learning-cta,
.page-base .viewer-inner>.learning-cta{grid-column:1/-1}
.page-lessons .catalog-intro{border-top:0}

@media(min-width:720px){
  .page-base .base-card{grid-template-columns:112px minmax(0,1fr)}
  .page-base .base-cover{min-height:112px}
}

@media(max-width:999px){
  .page-lessons .direction-panel{
    border-bottom:1px solid var(--black);
  }
  .page-lessons .tools{
    border-top:0;
    border-bottom:1px solid var(--black);
  }
  .page-lessons .catalog-head{border-top:0}
}

@media(min-width:1000px){
  .page-base .masthead{border-bottom:1px solid var(--black)}
  .page-base .hero,
  .page-lessons .catalog-intro{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(300px,430px);
    grid-template-rows:auto auto;
    align-items:end;
    column-gap:var(--page-gutter);
    padding:50px var(--page-gutter) 42px;
  }
  .page-base .hero{
    grid-template-rows:auto;
    row-gap:0;
  }
  .page-lessons .catalog-intro{
    grid-template-rows:auto;
    row-gap:0;
  }
  .page-lessons .catalog-intro-main{
    grid-column:1;
    grid-row:1;
  }
  .page-lessons .catalog-intro .eyebrow,
  .page-lessons .catalog-intro h1{
    grid-column:auto;
    grid-row:auto;
  }
  .page-lessons .catalog-intro-side{
    grid-column:2;
    grid-row:1;
  }
  .page-base .hero h1,
  .page-lessons .catalog-intro h1{font-size:clamp(7rem,11vw,12rem)}

  .page-lessons .catalog-workspace{display:block;border-top:0}
  .page-lessons .catalog-workspace::before{display:none}
  .page-lessons .catalog-sidebar{
    position:static;
    max-height:none;
    overflow:visible;
    border:0;
  }
  .page-lessons .direction-panel{
    padding:20px var(--page-gutter);
    border-top:1px solid var(--black);
    border-bottom:1px solid var(--black);
  }
  .page-lessons .tools{
    padding:18px var(--page-gutter);
    display:grid;
    grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);
    gap:32px;
    align-items:start;
    border-top:0;
    border-bottom:1px solid var(--black);
  }
  .page-lessons .filter-group+.filter-group{margin-top:0}
  .page-lessons .filter-row{flex-wrap:wrap}
  .page-lessons .catalog-head,
  .page-base .feed-head{padding:34px var(--page-gutter) 16px}
  .page-lessons .catalog-head h2,
  .page-base .feed-head h2{font-size:1.7rem}

  .page-base .base-grid,
  .page-lessons .trick-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .page-base .base-card,
  .page-base .base-card:nth-child(3n){
    min-height:112px;
    grid-template-columns:112px minmax(0,1fr);
    border-right:0;
  }
  .page-base .base-card:nth-child(odd),
  .page-lessons .trick:nth-child(odd){border-right:0}
  .page-lessons .trick{
    min-height:112px;
    padding:22px var(--page-gutter);
  }
  .page-base .base-cover{min-height:112px}
  .page-base .base-copy{padding:18px}
  .page-base .base-copy strong,
  .page-lessons .trick strong{font-size:1.28rem}
  .page-lessons .trick:last-child:nth-child(odd){grid-column:1/-1}
  .page-lessons .empty{grid-column:1/-1}
}

/* Desktop platform frame: one bounded workspace across learning, base and plan. */
@media(min-width:1000px){
  body.page-lessons,
  body.page-base,
  body.page-orientirs{
    padding:32px;
    background:#deded8;
  }
  .page-lessons .app,
  .page-base .app,
  .page-orientirs .app{
    width:100%;
    max-width:1280px;
    min-height:calc(100dvh - 64px);
    margin-inline:auto;
    border:1px solid var(--black);
    background:var(--white);
    box-shadow:0 20px 64px rgba(0,0,0,.09);
  }
}

/* One platform surface: details replace the catalogue below the shared header. */
body.detail-open{overflow-x:hidden}
body.detail-open .bottom-nav{
  opacity:0;
  transform:translate(-50%,calc(100% + 24px));
  pointer-events:none;
  transition:opacity var(--ui-smooth) ease,transform var(--ui-page) var(--ui-ease);
}
body.detail-open:is(.page-lessons,.page-base) .app{padding-bottom:0}
.page-lessons .app,
.page-base .app{overflow-x:clip}
.page-lessons .lesson-view,
.page-base .viewer{
  position:static!important;
  inset:auto!important;
  z-index:auto!important;
  display:none;
  width:100%!important;
  height:auto;
  min-height:calc(100dvh - var(--platform-header-mobile,58px));
  overflow:visible!important;
  touch-action:auto;
  scrollbar-gutter:auto!important;
  opacity:0;
  transform:none;
  visibility:hidden;
  pointer-events:none;
  transition-property:opacity,visibility;
  transition-delay:0s,var(--ui-page);
  will-change:opacity;
}
.page-lessons .lesson-view.open,
.page-base .viewer.open{
  display:block;
  opacity:1;
  transform:none;
  visibility:visible;
  pointer-events:auto;
  transition-delay:0s;
  animation:detail-content-in var(--ui-page) var(--ui-reveal) both;
}
.page-lessons .lesson-inner,
.page-base .viewer-inner{
  width:100%;
  max-width:none!important;
  min-height:inherit;
  margin:0;
  transform:none;
  transform-origin:top center;
  transition:none;
}
.page-lessons .lesson-view.open .lesson-inner,
.page-base .viewer.open .viewer-inner{transform:none}
.page-lessons .catalog-intro,
.page-lessons .catalog-workspace,
.page-base .hero,
.page-base .base-workspace{
  transform:translateY(0);
  transform-origin:top center;
  transition:opacity 150ms ease,transform var(--ui-page) var(--ui-ease);
}
body.detail-open.page-lessons .catalog-intro,
body.detail-open.page-lessons .catalog-workspace,
body.detail-open.page-base .hero,
body.detail-open.page-base .base-workspace{
  display:none!important;
}
.page-lessons .trick,
.page-base .base-card{
  transform:scale(1);
  transform-origin:center;
  transition:background-color var(--ui-fast) ease,opacity var(--ui-fast) ease,transform 90ms var(--ui-ease);
}
.page-lessons .trick.is-opening,
.page-base .base-card.is-opening{
  background:var(--grey);
  opacity:.9;
  transform:scale(.992);
}
.page-lessons .lesson-inner,
.page-base .viewer-inner{min-height:100%}
.page-lessons .lesson-head,
.page-base .viewer-head{display:none!important}

@keyframes detail-content-in{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}

@media(min-width:1000px){
  .page-lessons .lesson-view,
  .page-base .viewer{
    min-height:calc(100dvh - 64px - var(--desktop-header));
    border:0!important;
    box-shadow:none!important;
  }
  .page-lessons .lesson-inner,
  .page-base .viewer-inner{min-height:100%;box-shadow:none}
}

@media(prefers-reduced-motion:reduce){
  .page-lessons .lesson-view.open,
  .page-base .viewer.open{animation:none}
}
