@font-face{font-family:Onest;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/onest-cyr.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/onest-lat.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #201D1A;--cream: #F7F2EB;--card: #FFFFFF;--muted: #8B8378;--line: #EBE3D8;--pink: #F5C9D2;--sand: #F7DCB8;--lilac: #DAD2F5;--leaf: #D8EBDA;--danger: #C4442E;--danger-bg: #FBE9E4}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{font-family:Onest,-apple-system,Segoe UI,sans-serif;background:#e9e1d5;color:var(--ink);line-height:1.5}button{font-family:inherit;cursor:pointer}a{color:var(--ink)}.app{max-width:430px;margin:0 auto;min-height:100dvh;background:var(--cream);position:relative;overflow:clip}@media(min-width:500px){body.student-body{padding:28px 0}.app{min-height:calc(100dvh - 56px);border-radius:36px;box-shadow:0 30px 80px #3c301e47}}.top{padding:calc(env(safe-area-inset-top,0px) + 28px) 22px 10px;display:flex;flex-direction:column;gap:6px}.top .row{display:flex;align-items:center;justify-content:space-between;gap:12px}.back-btn{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:9px 16px 9px 12px;font-size:13.5px;font-weight:600;max-width:85%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ghost-btn{background:none;border:none;color:var(--muted);font-size:13px;font-weight:700;padding:8px 4px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.top h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.15;text-wrap:balance}.top .sub{font-size:13.5px;color:var(--muted)}.body{padding:18px 16px calc(env(safe-area-inset-bottom,0px) + 28px);display:flex;flex-direction:column;gap:14px}.btn-primary{background:var(--ink);color:var(--cream);border:none;border-radius:999px;padding:16px 28px;font-size:15.5px;font-weight:600;width:100%;transition:transform .15s;text-align:center;text-decoration:none;display:inline-block}.btn-primary:active{transform:scale(.985)}.btn-primary[disabled]{opacity:.75;cursor:default}.btn-secondary{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:14px 22px;font-size:14px;font-weight:600}.btn-secondary[disabled]{opacity:.45;cursor:default}.btn-danger{background:none;border:1.5px solid #F0C9B8;color:var(--danger);border-radius:999px;padding:12px 20px;font-size:13.5px;font-weight:600}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2.5px solid var(--ink);outline-offset:2px}.spinner{display:inline-block;width:18px;height:18px;border:2.5px solid rgba(247,242,235,.35);border-top-color:var(--cream);border-radius:999px;animation:rot .7s linear infinite;vertical-align:-4px;margin-right:8px}.spinner.dark{border-color:#201d1a33;border-top-color:var(--ink)}@keyframes rot{to{transform:rotate(360deg)}}.login-hero{padding:calc(env(safe-area-inset-top,0px) + 56px) 26px 10px;display:flex;flex-direction:column;gap:10px}.logo{display:flex;align-items:center;gap:10px;margin-bottom:18px}.logo-mark{width:38px;height:38px;border-radius:12px;background:var(--ink);color:var(--sand);display:grid;place-items:center;font-size:18px}.logo b{font-size:15px;letter-spacing:.02em}.login-hero h1{margin:0;font-size:30px;font-weight:700;letter-spacing:-.02em}.login-hero p{margin:0;font-size:14px;color:var(--muted)}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:13px;font-weight:700;color:var(--ink)}.field input,.field textarea{font-family:inherit;font-size:16px;padding:15px 16px;border:1.5px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);width:100%;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#c0b7aa}.field .note{font-size:12.5px;color:var(--muted)}.error-banner{background:var(--danger-bg);border:1px solid #F0C9B8;color:var(--danger);border-radius:14px;padding:13px 16px;font-size:13.5px;font-weight:500;display:flex;gap:10px;align-items:flex-start}.ok-banner{background:var(--leaf);color:var(--ink);border-radius:14px;padding:13px 16px;font-size:13.5px;font-weight:500}.link-row{text-align:center;font-size:13.5px}.course-card{border-radius:24px;overflow:hidden;border:none;text-align:left;padding:0;width:100%;display:block;text-decoration:none;color:inherit;background:var(--card);transition:transform .15s}.course-card:active{transform:scale(.98)}.cover{height:104px;display:flex;align-items:flex-start;padding:14px 16px}.chip{display:inline-flex;align-items:center;background:#ffffffb3;color:var(--ink);border-radius:999px;padding:5px 13px;font-size:12px;font-weight:600}.course-body{padding:13px 16px 15px;display:flex;align-items:center;gap:10px}.course-body .info{display:flex;flex-direction:column;gap:2px;min-width:0}.course-title{font-size:17px;font-weight:700;letter-spacing:-.01em;line-height:1.25}.course-meta{font-size:12.5px;color:#201d1a99}.go{margin-left:auto;flex:none;width:38px;height:38px;border-radius:999px;background:var(--ink);color:var(--cream);display:grid;place-items:center;font-size:16px;font-weight:700}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:56px 28px 40px}.empty-art{width:96px;height:96px;border-radius:999px;background:var(--leaf);display:grid;place-items:center;font-size:40px;margin-bottom:10px}.empty-art.err{background:var(--danger-bg)}.empty h2{margin:0;font-size:20px;font-weight:700}.empty p{margin:0 0 18px;font-size:14px;color:var(--muted);max-width:30ch}.page-top{padding:calc(env(safe-area-inset-top,0px) + 20px) 16px 0;display:flex;align-items:center}.banner{margin:14px 16px 0;min-height:158px;border-radius:28px;padding:16px 18px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;color:var(--ink)}.banner .banner-text{position:relative;z-index:1;display:flex;flex-direction:column;gap:5px}.banner .eyebrow{color:#201d1a80}.banner h1{margin:0;font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.2;text-wrap:balance}.banner .desc{font-size:13.5px;color:#201d1aa6}.banner.img{color:#fff}.banner.img:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(transparent 25%,#16100a9e)}.banner.img .eyebrow{color:#ffffffbf}.banner.img .desc{color:#ffffffd1}.course-head{padding:16px 20px 0;display:flex;flex-direction:column;gap:5px}.course-head h1{margin:0;font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.course-head .desc{font-size:13.5px;color:var(--muted)}.lesson-row{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px;display:flex;align-items:center;gap:13px;width:100%;text-align:left;text-decoration:none;color:inherit}.lesson-row:active{transform:scale(.985)}.lesson-num{width:40px;height:40px;flex:none;border-radius:14px;background:var(--leaf);color:var(--ink);display:grid;place-items:center;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.lesson-row:nth-child(4n+1) .lesson-num{background:var(--pink)}.lesson-row:nth-child(4n+2) .lesson-num{background:var(--sand)}.lesson-row:nth-child(4n+3) .lesson-num{background:var(--lilac)}.lesson-row .info{display:flex;flex-direction:column;gap:2px;min-width:0}.lesson-row .t{font-size:14.5px;font-weight:600;line-height:1.3}.lesson-row .m{font-size:12px;color:var(--muted)}.lesson-row .arr{margin-left:auto;color:var(--muted);font-size:17px;flex:none}.video-frame{border-radius:20px;overflow:hidden;background:#2e2a33;aspect-ratio:16 / 9;border:none;width:100%}.video-frame iframe{width:100%;height:100%;border:0;display:block}.video-fallback{border-radius:20px;background:linear-gradient(135deg,#2e2a33,#4a4552);aspect-ratio:16 / 9.4;display:grid;place-items:center;position:relative;color:inherit;text-decoration:none}.video-fallback .play{width:60px;height:60px;border-radius:999px;background:#fffffff2;color:var(--ink);display:grid;place-items:center;font-size:22px}.video-fallback .vlabel{position:absolute;left:14px;top:12px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#ffffffb3}.lesson-text{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;font-size:14.5px;color:#4a443c}.lesson-text>:first-child{margin-top:0}.lesson-text>:last-child{margin-bottom:0}.lesson-text h3{margin:14px 0 6px;font-size:16px;color:var(--ink)}.lesson-text p{margin:0 0 10px}.lesson-text ul{margin:0 0 10px;padding-left:20px}.lesson-text li{margin-bottom:5px}.files-cap{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:6px 2px 0}.file-row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;width:100%;text-align:left;text-decoration:none;color:inherit}.file-ico{width:40px;height:40px;flex:none;background:var(--leaf);color:var(--ink);border-radius:12px;display:grid;place-items:center;font-size:10px;font-weight:700;letter-spacing:.04em}.file-row .fname{font-size:14px;font-weight:600;line-height:1.3}.file-row .fsize{font-size:12px;color:var(--muted)}.file-row .dl{margin-left:auto;color:var(--muted);font-size:19px;flex:none}.lesson-nav{display:flex;gap:10px;margin-top:6px}.lesson-nav>*{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-nav .btn-primary{padding:14px 18px;font-size:14px;width:auto}.sk{border-radius:18px;background:linear-gradient(100deg,#ede6dc 40%,#f5efe7,#ede6dc 60%);background-size:200% 100%;animation:shimmer 1.3s infinite linear}@keyframes shimmer{to{background-position:-200% 0}}.sk-header{height:118px;margin:16px 16px 0;border-radius:28px;background:linear-gradient(100deg,#ede6dc 40%,#f5efe7,#ede6dc 60%);background-size:200% 100%;animation:shimmer 1.3s infinite linear}.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);transform:translate(-50%) translateY(20px);background:var(--ink);color:var(--cream);border-radius:999px;padding:13px 22px;font-size:13.5px;font-weight:500;box-shadow:0 12px 32px #201d1a59;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;z-index:50;max-width:88vw;text-align:center}.toast.on{opacity:1;transform:translate(-50%) translateY(0)}body.admin-body{background:var(--cream)}.admin-app{min-height:100dvh;background:var(--cream)}.admin-top{background:var(--ink);color:var(--cream);padding:14px 22px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.admin-top .logo{margin:0}.admin-top .logo-mark{background:var(--sand);color:var(--ink)}.admin-top .ghost-btn{color:#b5ac9e}.admin-nav{display:flex;gap:6px;flex:1;flex-wrap:wrap}.admin-nav a{color:#b5ac9e;text-decoration:none;font-size:14px;font-weight:600;padding:9px 16px;border-radius:999px}.admin-nav a.active{background:#f7dcb82e;color:var(--sand)}.admin-main{max-width:980px;margin:0 auto;padding:26px 18px 60px;display:flex;flex-direction:column;gap:16px}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.admin-head h1{margin:0;font-size:26px;letter-spacing:-.02em}.admin-head .btn-primary,.admin-head .btn-secondary{width:auto;padding:12px 22px;font-size:14px}.panel{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:14px}.panel h2{margin:0;font-size:16.5px}.admin-cols{display:grid;gap:16px;align-items:start}@media(min-width:800px){.admin-cols{grid-template-columns:3fr 2fr}}.trow{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:13px 16px;text-align:left;width:100%;text-decoration:none;color:inherit}.trow.click:hover{border-color:#d0c6b6}.trow .grow{flex:1;min-width:0}.trow .t{font-size:14.5px;font-weight:600}.trow .m{font-size:12.5px;color:var(--muted)}.trow-list{display:flex;flex-direction:column;gap:10px}.trow-list .trow:nth-child(4n+1) .lesson-num{background:var(--pink)}.trow-list .trow:nth-child(4n+2) .lesson-num{background:var(--sand)}.trow-list .trow:nth-child(4n+3) .lesson-num{background:var(--lilac)}.trow-list .trow:nth-child(4n+4) .lesson-num{background:var(--leaf)}.mini-btn{background:var(--card);border:1.5px solid var(--line);color:var(--ink);border-radius:10px;width:34px;height:34px;font-size:15px;display:grid;place-items:center;flex:none}.mini-btn:disabled{opacity:.3;cursor:default}.mini-btn:hover:not(:disabled){border-color:#d0c6b6}.small-btn{background:var(--leaf);color:var(--ink);border:none;border-radius:999px;padding:9px 16px;font-size:13px;font-weight:600;flex:none}.acc-chip{border:1.5px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:600}.acc-chip.on{background:var(--leaf);border-color:#b8d8be;color:var(--ink)}.acc-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.pass-card{background:var(--sand);border-radius:16px;padding:16px 18px;font-size:14px;line-height:1.6}.pass-card code{font-family:inherit;font-weight:700;font-size:16px;background:#ffffffa6;padding:1px 8px;border-radius:6px}.banner-preview{min-height:120px;border-radius:20px;padding:14px 16px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;color:var(--ink);font-weight:700;font-size:17px}.banner-preview.img{color:#fff}.banner-preview.img:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(transparent 25%,#16100a9e)}.banner-preview span{position:relative;z-index:1}.swatches{display:flex;gap:8px;flex-wrap:wrap}.swatch{width:44px;height:44px;border-radius:14px;border:2px solid var(--line);cursor:pointer;padding:0}.swatch.on{border-color:var(--ink)}.check-row{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;cursor:pointer}.check-row input{width:18px;height:18px;accent-color:var(--ink);cursor:pointer}@media(prefers-reduced-motion:reduce){.sk,.sk-header,.spinner{animation-duration:.01s;animation-iteration-count:1}.toast,.course-card,.lesson-row,.btn-primary{transition:none}}
