.tf-form{display:grid;gap:var(--tf-space-4);max-width:28rem}.tf-form[hidden],.tf-gate__step[hidden]{display:none}.tf-form__lead{margin:0}.tf-field{display:grid;gap:var(--tf-space-1)}.tf-field__label{font-weight:var(--tf-weight-bold)}.tf-field__input{width:100%;min-width:0;min-height:2.75rem;padding:var(--tf-space-2) var(--tf-space-3);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);background:var(--tf-surface);color:var(--tf-text);font:inherit}.tf-field__input[aria-invalid=true]{border-color:var(--tf-error)}.tf-field__pw{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--tf-space-2)}.tf-field__toggle,.tf-linkbutton{padding:var(--tf-space-2) var(--tf-space-3);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);background:transparent;color:var(--tf-link);font:inherit;font-weight:var(--tf-weight-medium);cursor:pointer}.tf-linkbutton{padding:0;border:0;text-decoration:underline;text-underline-offset:.15em}.tf-field__hint,.tf-form__terms,.tf-form__alt,.tf-form__forgot{margin:0;color:var(--tf-text-muted);font-size:var(--tf-text-sm)}.tf-form__alt{display:flex;flex-wrap:wrap;gap:var(--tf-space-2) var(--tf-space-6);font-size:var(--tf-text-base)}.tf-field__error{margin:0;color:var(--tf-error);font-size:var(--tf-text-sm);font-weight:var(--tf-weight-bold)}.tf-form__submit{justify-self:start}.tf-form__status{min-height:1.5em;margin:0;color:var(--tf-text-muted)}.tf-form__status[data-kind=error]{color:var(--tf-error);font-weight:var(--tf-weight-bold)}.tf-form__status[data-kind=success]{color:var(--tf-success);font-weight:var(--tf-weight-bold)}.tf-form[data-form=delete] .tf-form__submit{background:var(--tf-error);color:var(--tf-on-primary)}.tf-gate{margin-top:var(--tf-space-4);padding:var(--tf-space-5);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-lg);background:var(--tf-surface);color:var(--tf-text);text-align:left}.tf-gate__title{margin:0 0 var(--tf-space-2);font-size:var(--tf-text-xl)}.tf-gate__lead{margin:0 0 var(--tf-space-4);color:var(--tf-text-muted)}.tf-gate .tf-form{max-width:none}.account-page{max-width:44rem;padding-block:var(--tf-space-8) var(--tf-space-16)}.account-page h2{font-size:var(--tf-text-xl)}tf-player [hidden],.tf-dialog [hidden]{display:none!important}.lp-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.lesson-page{width:100%;max-width:92rem;margin-inline:auto;padding:var(--tf-space-4) var(--tf-space-4) var(--tf-space-12)}.lp-crumbs ol{display:flex;flex-wrap:wrap;gap:var(--tf-space-2);margin:0 0 var(--tf-space-4);padding:0;list-style:none;color:var(--tf-text-muted);font-size:var(--tf-text-sm)}.lp-crumbs li+li:before{content:"›";margin-inline-end:var(--tf-space-2)}tf-player.lp{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 17rem;grid-template-areas:"main zelli";gap:var(--tf-space-6);align-items:start}.lp-main{grid-area:main;min-width:0}.lp-zelli{grid-area:zelli}@media(min-width:1100px){tf-player.lp{grid-template-columns:15rem minmax(0,1fr) 17rem;grid-template-areas:"side main zelli"}}.lp-skip{position:absolute;top:0;left:0;z-index:5;padding:var(--tf-space-2) var(--tf-space-4);border-radius:var(--tf-radius-md);background:var(--tf-primary);color:var(--tf-on-primary)}.lp-skip:not(:focus){width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.lp-side{grid-area:side;display:flex;flex-direction:column;min-width:0;background:var(--tf-surface);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-lg)}@media(min-width:1100px){.lp-side{position:sticky;top:var(--tf-space-4);max-height:calc(100vh - 2rem)}.lp-side__close,.lp-menu{display:none}}@media(max-width:1099.98px){.lp-side{position:fixed;inset:0 auto 0 0;z-index:40;width:min(21rem,88vw);border-radius:0 var(--tf-radius-lg) var(--tf-radius-lg) 0;box-shadow:var(--tf-shadow-lg);transform:translate(-105%);visibility:hidden;transition:transform .2s var(--tf-ease-out),visibility 0s linear .2s}.lp-side.is-open{transform:none;visibility:visible;transition:transform .2s var(--tf-ease-out)}}.lp-side__head{display:flex;align-items:center;justify-content:space-between;padding:var(--tf-space-3) var(--tf-space-4);border-bottom:1px solid var(--tf-border-subtle)}.lp-side__title{margin:0;font-size:var(--tf-text-base)}.lp-side__close{min-width:2.75rem;min-height:2.75rem;border:0;border-radius:var(--tf-radius-md);background:transparent;color:var(--tf-text);font:inherit;cursor:pointer}.lp-side__modules{position:relative;flex:1 1 auto;overflow-y:auto;padding:var(--tf-space-2) var(--tf-space-2) var(--tf-space-4)}.lp-side__foot{padding:var(--tf-space-3);border-top:1px solid var(--tf-border-subtle)}.lp-side__transfer{width:100%;padding-inline:var(--tf-space-3);font-size:var(--tf-text-sm)}.lp-mod+.lp-mod{margin-top:var(--tf-space-4)}.lp-mod__title{margin:var(--tf-space-3) var(--tf-space-2) 0;font-size:var(--tf-text-sm);letter-spacing:0}.lp-mod__summary{margin:0 var(--tf-space-2) var(--tf-space-2);color:var(--tf-text-muted);font-size:var(--tf-text-xs)}.lp-mod__list{margin:0;padding:0;list-style:none}.lp-lesson__link{display:flex;align-items:center;gap:var(--tf-space-2);min-height:2.25rem;padding:var(--tf-space-1) var(--tf-space-2);border-radius:var(--tf-radius-md);color:var(--tf-text);font-size:var(--tf-text-sm);text-decoration:none}.lp-lesson__link:hover{background:var(--tf-surface-2)}.lp-lesson__link[aria-current=page]{background:var(--tf-grid-header-active-bg);color:var(--tf-grid-header-active-text);font-weight:var(--tf-weight-bold)}.lp-lesson[data-status=locked] .lp-lesson__link{color:var(--tf-text-muted)}.lp-lesson[data-status=locked] .lp-lesson__link[aria-current=page]{color:var(--tf-grid-header-active-text)}.lp-lesson__icon{position:relative;flex:none;width:1rem;height:1rem;border:2px solid var(--tf-border);border-radius:50%}.lp-lesson[data-status=in-progress] .lp-lesson__icon{border-color:var(--tf-primary);background:linear-gradient(90deg,var(--tf-primary) 50%,transparent 50%)}.lp-lesson[data-status=done] .lp-lesson__icon{border-color:var(--tf-success);background:var(--tf-success)}.lp-lesson[data-status=done] .lp-lesson__icon:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:7px;border:solid var(--tf-on-primary);border-width:0 2px 2px 0;transform:rotate(45deg)}.lp-lesson[data-status=locked] .lp-lesson__icon{border:0;border-radius:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='3' y='7' width='10' height='8' rx='1.5' fill='%238a8577'/%3E%3Cpath d='M5 7V5a3 3 0 0 1 6 0v2' fill='none' stroke='%238a8577' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat}.lp-lesson__preview{display:none;margin:0 var(--tf-space-2) var(--tf-space-2) 2rem;color:var(--tf-text-muted);font-size:var(--tf-text-xs);line-height:1.4}.lp-lesson[data-status=locked]:not([data-lock=sequence]) .lp-lesson__preview{display:block}.lp-head__top{display:flex;flex-wrap:wrap;align-items:center;gap:var(--tf-space-2) var(--tf-space-4);min-height:2.75rem}.lp-menu{padding-inline:var(--tf-space-4)}.lp-head__module{margin:0;color:var(--tf-text-muted);font-size:var(--tf-text-sm)}.lp-stats{display:flex;gap:var(--tf-space-3);margin:0 0 0 auto;font-size:var(--tf-text-sm);font-weight:var(--tf-weight-medium)}.lp-stats__item{padding:var(--tf-space-1) var(--tf-space-3);border-radius:var(--tf-radius-full);background:var(--tf-warning-bg);color:var(--tf-text);white-space:nowrap}.lp-title{margin:var(--tf-space-3) 0 var(--tf-space-2);font-size:var(--tf-text-3xl)}.lp-intro{max-width:var(--tf-prose-width);margin-bottom:var(--tf-space-4);color:var(--tf-text-muted)}.lp-progress{display:flex;align-items:center;gap:var(--tf-space-3);margin-bottom:var(--tf-space-4)}.lp-progress__track{flex:1 1 auto;height:.5rem;overflow:hidden;border-radius:var(--tf-radius-full);background:var(--tf-surface-2)}.lp-progress__bar{display:block;height:100%;background:var(--tf-primary);transform:scaleX(var(--lp-progress, 0));transform-origin:left center;transition:transform .3s var(--tf-ease-out)}.lp-progress__label{flex:none;margin:0;color:var(--tf-text-muted);font-size:var(--tf-text-sm)}.lp-card{min-height:8.5rem;margin-bottom:var(--tf-space-4);padding:var(--tf-space-4) var(--tf-space-5);border:1px solid var(--tf-border-subtle);border-left:4px solid var(--tf-accent);border-radius:var(--tf-radius-lg);background:var(--tf-surface)}.lp-card:focus{outline:none}.lp-card__title{margin:0 0 var(--tf-space-2);color:var(--tf-text-muted);font-size:var(--tf-text-xs);letter-spacing:.06em;text-transform:uppercase}.lp-card__text p{margin-bottom:var(--tf-space-2)}.lp-card__task{margin:var(--tf-space-3) 0 0;font-size:var(--tf-text-lg)}.lp-card code,.lp-panel code{padding:0 .25em;border-radius:var(--tf-radius-sm);background:var(--tf-surface-2)}.lp-gridwrap{min-width:0}.lp-panel,.lp-success{position:relative;margin-bottom:var(--tf-space-4);padding:var(--tf-space-6);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-lg);background:var(--tf-surface)}.lp-panel:focus{outline:none}.lp-panel__actions{display:flex;flex-wrap:wrap;gap:var(--tf-space-3)}.lp-panel__title,.lp-success__title{margin-top:0}.lp-success{overflow:hidden;border-color:var(--tf-success);background:var(--tf-success-bg)}.lp-success__title:focus{outline:none}.lp-success__earned{font-weight:var(--tf-weight-bold)}.lp-confetti{position:absolute;inset:0;pointer-events:none}.lp-confetti span{position:absolute;top:-1rem;left:50%;width:.5rem;height:.875rem;border-radius:2px;background:var(--tf-accent);opacity:0;animation:lp-confetti 1.6s var(--tf-ease-out) forwards}.lp-confetti span:nth-child(3n+1){background:var(--tf-primary)}.lp-confetti span:nth-child(3n+2){background:var(--tf-petrol-300)}.lp-confetti span:nth-child(1){left:5%;animation-delay:0ms}.lp-confetti span:nth-child(2){left:12%;animation-delay:.12s}.lp-confetti span:nth-child(3){left:19%;animation-delay:60ms}.lp-confetti span:nth-child(4){left:26%;animation-delay:.2s}.lp-confetti span:nth-child(5){left:33%;animation-delay:30ms}.lp-confetti span:nth-child(6){left:40%;animation-delay:.16s}.lp-confetti span:nth-child(7){left:47%;animation-delay:90ms}.lp-confetti span:nth-child(8){left:54%;animation-delay:.24s}.lp-confetti span:nth-child(9){left:61%;animation-delay:10ms}.lp-confetti span:nth-child(10){left:68%;animation-delay:.14s}.lp-confetti span:nth-child(11){left:75%;animation-delay:70ms}.lp-confetti span:nth-child(12){left:82%;animation-delay:.22s}.lp-confetti span:nth-child(13){left:89%;animation-delay:40ms}.lp-confetti span:nth-child(14){left:95%;animation-delay:.18s}@keyframes lp-confetti{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:0;transform:translateY(12rem) rotate(320deg)}}@media(prefers-reduced-motion:reduce){.lp-confetti{display:none}.lp-progress__bar,.lp-side{transition:none}}.lp-zelli{display:flex;flex-direction:column;gap:var(--tf-space-4);padding:var(--tf-space-4);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-lg);background:var(--tf-surface-2)}@media(min-width:768px){.lp-zelli{position:sticky;top:var(--tf-space-4)}.lp-zelli tf-zelli{flex-direction:column}}.lp-zelli__actions{display:flex;flex-wrap:wrap;gap:var(--tf-space-2)}.lp-zelli__actions .button{padding-inline:var(--tf-space-4);font-size:var(--tf-text-sm)}.lp-zelli__actions .button:disabled{cursor:default;opacity:.6}@media(max-width:767.98px){tf-player.lp{grid-template-columns:minmax(0,1fr);grid-template-areas:"main";padding-bottom:12rem}.lp-zelli{position:fixed;inset:auto 0 0;z-index:20;gap:var(--tf-space-2);max-height:45vh;overflow-y:auto;padding:var(--tf-space-3) var(--tf-space-4) calc(var(--tf-space-3) + env(safe-area-inset-bottom));border-width:1px 0 0;border-radius:var(--tf-radius-lg) var(--tf-radius-lg) 0 0;background:var(--tf-surface);box-shadow:var(--tf-shadow-lg)}.lp-zelli tf-zelli{min-height:48px}.lp-zelli .tf-zelli__face{width:48px;height:48px}tf-player.lp:has(.tf-grid__mobile:not([hidden])) .lp-zelli{bottom:3.75rem}.lp-title{font-size:var(--tf-text-2xl)}}.tf-dialog{width:calc(100% - 2rem);max-width:34rem;padding:var(--tf-space-6);border:1px solid var(--tf-border);border-radius:var(--tf-radius-lg);background:var(--tf-surface);color:var(--tf-text);box-shadow:var(--tf-shadow-lg)}.tf-dialog::backdrop{background:#1d1c1973}.tf-dialog__title{margin:0 0 var(--tf-space-4)}.tf-dialog__body h3{margin:var(--tf-space-4) 0 var(--tf-space-2);font-size:var(--tf-text-base)}.tf-dialog__close{margin-top:var(--tf-space-4)}.tf-transfer__label{display:block;margin-bottom:var(--tf-space-1);font-size:var(--tf-text-sm);font-weight:var(--tf-weight-medium)}.tf-transfer__code{display:block;width:100%;margin-bottom:var(--tf-space-2);padding:var(--tf-space-2);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);background:var(--tf-bg);color:var(--tf-text);font-family:var(--tf-font-mono);font-size:var(--tf-text-xs);word-break:break-all}.tf-transfer__status{min-height:1.5em;margin:var(--tf-space-2) 0 0;font-size:var(--tf-text-sm)}.tf-transfer__status[data-state=error]{color:var(--tf-error)}.tf-transfer__status[data-state=ok]{color:var(--tf-success)}
