@font-face{font-family:Unbounded;font-weight:700;font-display:swap;src:url(/fonts/Unbounded-Bold.ttf)format("truetype")}@font-face{font-family:Montserrat;font-weight:400;font-display:swap;src:url(/fonts/Montserrat-Regular.ttf)format("truetype")}@font-face{font-family:Montserrat;font-weight:500;font-display:swap;src:url(/fonts/Montserrat-Medium.ttf)format("truetype")}@font-face{font-family:Montserrat;font-weight:600;font-display:swap;src:url(/fonts/Montserrat-SemiBold.ttf)format("truetype")}@font-face{font-family:Montserrat;font-weight:700;font-display:swap;src:url(/fonts/Montserrat-Bold.ttf)format("truetype")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--black:#000;--white:#fff;--violet:#a145b0;--accent:#a240b2;--violet-not-active:#61306e;--not-active-text:#766e75;--line-gray:#484848;--text-gray:silver;--gray-b9:#b9b9b9;--peach:#e6826e;--green:#98ee64;--orange:#ee8864;--system-orange:#ff9500;--divider:#ffffff4d;--white-30:#ffffff4d;--card-border:#565656;--font-head:"Unbounded", system-ui, sans-serif;--font-body:"Montserrat", system-ui, sans-serif;--col:430px;--gutter:16px;--tabbar-h:70px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{background:var(--black);color:var(--white);margin:0;padding:0}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;font-size:15px;overflow-x:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default}img{display:block}a{color:inherit}.h1{font-family:var(--font-head);margin:0;font-size:27px;font-weight:700;line-height:1.25}.h2,.h4{font-family:var(--font-head);margin:0;font-size:18px;font-weight:700;line-height:23px}.h3{font-family:var(--font-head);margin:0;font-size:21px;font-weight:700;line-height:27px}.h5{font-family:var(--font-head);margin:0;font-size:16px;font-weight:700;line-height:1.25}.tag-font{font-family:var(--font-head);font-size:12px;font-weight:700}.body{font-family:var(--font-body);margin:0;font-size:15px;font-weight:400;line-height:20px}.sub{font-family:var(--font-body);margin:0;font-size:17px;font-weight:500;line-height:22px}.mon13{font-family:var(--font-body);margin:0;font-size:13px;font-weight:400;line-height:18px}.gray{color:var(--text-gray)}.gray-b9{color:var(--gray-b9)}.center{text-align:center}.pre-line{white-space:pre-line}.app{max-width:var(--col);background:var(--black);height:100dvh;margin:0 auto;position:relative;overflow:hidden}.main{flex-direction:column;height:100dvh;display:flex}.tab-content{min-height:0;padding:calc(var(--safe-top) + 8px) var(--gutter) 0;flex-direction:column;flex:1;display:flex}.screen{height:100dvh;padding:calc(var(--safe-top) + 16px) var(--gutter) calc(var(--safe-bottom) + 16px);flex-direction:column;display:flex;position:relative;overflow:hidden}.scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;min-height:0;overflow:hidden auto}.scroll::-webkit-scrollbar{display:none}.spacer{flex:1}.tabbar{background:var(--black);height:calc(var(--tabbar-h) + var(--safe-bottom));padding:0 18px var(--safe-bottom);border-top:1px solid #333;flex:none;justify-content:space-around;align-items:center;display:flex}.tab{font-family:var(--font-head);color:var(--white);flex-direction:column;flex:1;align-items:center;gap:4px;font-size:14px;font-weight:700;display:flex}.tab.active{color:var(--accent)}.mask-icon{background-color:currentColor;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.btn-primary,.btn-skip{width:100%;height:56px;font-family:var(--font-head);border-radius:13px;flex:none;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.btn-primary{background:var(--violet);color:var(--white)}.btn-primary:disabled{background:var(--violet-not-active);color:var(--not-active-text)}.btn-skip{border:1px solid var(--white-30);color:var(--white);background:0 0}.btn-pill{width:100%;height:56px;font-family:var(--font-head);color:var(--white);border-radius:14px;flex:none;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.btn-pill.violet{background:var(--accent)}.btn-pill.ghost{border:1px solid var(--white-30);background:#ffffff1a}.btn-pill.text{color:#fff9}.back-row{color:var(--text-gray);align-self:flex-start;align-items:center;gap:8px;padding:4px 0;display:inline-flex}.back-row img{object-fit:contain;width:10px;height:18px}.overlay{max-width:var(--col);background:var(--black);z-index:20;margin:0 auto;animation:.35s ease-out fade-in;position:fixed;inset:0}.overlay>.screen{height:100%}.sheet-root{z-index:30;position:fixed;inset:0}.sheet-backdrop{background:#0009;animation:.25s ease-out fade-in;position:absolute;inset:0}.sheet{max-width:var(--col);height:calc(100vh - var(--safe-top) - 40px);height:calc(100dvh - var(--safe-top) - 40px);background:var(--black);padding:0 20px var(--safe-bottom);border-top:1px solid #222;border-radius:16px 16px 0 0;flex-direction:column;margin:0 auto;animation:.3s ease-out slide-up;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.sheet-handle{background:var(--white);border-radius:10px;flex:none;width:111px;height:5px;margin:16px auto 30px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.fade-in{animation:.5s ease-in-out fade-in}.busy{z-index:60;background:#0000001a;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.busy-box{color:#999;text-align:center;background:#111;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:14px;width:150px;height:150px;padding:8px;font-size:15px;display:flex;box-shadow:0 0 10px #00000080}.spinner{border:3px solid #fff3;border-top-color:var(--white);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal-root{z-index:70;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{text-align:center;background:#1c1c1e;border-radius:14px;width:100%;max-width:300px;animation:.2s ease-out fade-in;overflow:hidden}.modal-title{padding:18px 16px 4px;font-size:17px;font-weight:600}.modal-text{color:#d0d0d0;padding:0 16px 18px;font-size:13px;line-height:18px}.modal-actions{border-top:1px solid #3a3a3c;display:flex}.modal-actions button{color:#0a84ff;flex:1;height:46px;font-size:17px}.modal-actions button+button{border-left:1px solid #3a3a3c}.modal-actions button.strong{font-weight:600}.modal-actions button.danger{color:#ff453a}.grad-bg{pointer-events:none;width:100%;position:absolute;bottom:24px;left:0;right:0}.answer{border:1px solid var(--line-gray);background:var(--black);width:100%;height:72px;min-height:56px;color:var(--white);text-align:left;border-radius:13px;flex:none;padding:0 19px}.answer.selected{border-color:var(--accent);color:var(--accent)}.chip{color:var(--peach);border:2px solid var(--peach);font-family:var(--font-head);white-space:nowrap;border-radius:8px;align-items:center;padding:8px;font-size:12px;font-weight:700;display:inline-flex}.chip.big{font-family:var(--font-body);padding:12px;font-size:14px}.chips{flex-wrap:wrap;gap:8px;display:flex}.med-card{border:2px solid var(--white-30);background:var(--black);text-align:left;border-radius:13px;flex-direction:column;flex:none;justify-content:center;gap:34px;width:100%;min-height:275px;padding:24px 16px;display:flex;position:relative}.med-card .img-box{justify-content:center;align-items:center;height:107px;display:flex}.med-card .img-box img{object-fit:contain;max-width:100%;max-height:107px}.med-card .circle{width:24px;height:24px;position:absolute;top:16px;right:16px}.med-card .title{padding-right:32px}.error-box{border:1px solid var(--line-gray);color:var(--text-gray);border-radius:13px;flex-direction:column;align-items:flex-start;gap:12px;padding:16px;display:flex}.link-btn{color:var(--accent);font-family:var(--font-head);font-size:14px;font-weight:700}.login-logo{width:120px;height:auto;margin:40px auto 32px}.input{border:1px solid var(--line-gray);background:var(--black);width:100%;height:56px;color:var(--white);font-family:var(--font-body);border-radius:13px;outline:none;padding:0 19px;font-size:17px;font-weight:500}.input:focus{border-color:var(--accent)}.form-error{color:#ff6b6b;white-space:pre-line;margin-top:12px;font-size:14px;line-height:20px}.plan-header{align-items:center;gap:8px;display:flex}.plan-header .h1{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.streak-badge{align-items:center;font-family:system-ui,-apple-system,sans-serif;font-size:24px;font-weight:700;display:flex}.streak-badge img{object-fit:contain;width:28px;height:28px}.progress{flex-direction:column;gap:8px;padding:4px 0;display:flex}.progress-track{border:1px solid var(--white-30);border-radius:14px;height:12px;position:relative}.progress-fill{background:linear-gradient(135deg,#fe9762,#d470fd);border-radius:12px;height:8px;position:absolute;top:1px;left:1px;box-shadow:inset 0 0 0 1px #ffffff1a}.progress-caption{color:var(--gray-b9);justify-content:space-between;display:flex}.week-pager{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;flex:none;gap:8px;padding:2px 0;display:flex;position:relative;overflow-x:auto}.week-pager::-webkit-scrollbar{display:none}.week-page{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 100%;grid-template-columns:repeat(7,1fr);gap:4px;padding:0 1px;display:grid}.day-cell{height:53px;font-family:var(--font-body);text-align:center;white-space:pre-line;background:var(--black);border:1px solid;border-radius:12px;justify-content:center;align-items:center;font-size:12px;font-weight:700;line-height:15px;display:flex}.day-cell.done{background:0 0}.section-title{font-family:var(--font-head);margin:8px 0;font-size:16px;font-weight:700}.lesson-row{background:var(--black);text-align:left;width:100%;height:84px;font-family:var(--font-body);border:1px solid #8e8e93;border-radius:12px;flex:none;align-items:center;gap:8px;padding:0 16px;font-size:17px;font-weight:500;display:flex}.lesson-row span{flex:1}.lesson-row img{width:24px;height:24px}.rest-card{border:2px solid var(--card-border);background:var(--black);border-radius:8px;flex-direction:column;flex:none;justify-content:center;align-items:center;width:100%;height:56px;display:flex}.rest-card small{font-family:var(--font-body);color:var(--gray-b9);margin-top:4px;font-size:11px;font-weight:500}.all-done{color:var(--green);font-family:var(--font-head);white-space:pre-line;font-size:12px;font-weight:700;line-height:16px}.goal-row{border:1px solid var(--line-gray);background:var(--black);text-align:left;border-radius:13px;flex:none;width:100%;height:70px;padding:0 22px}.empty-day{text-align:center;flex-direction:column;align-items:center;padding-bottom:32px;display:flex}.empty-day img{width:80px;height:80px;margin:40px 0}.countdown{font-variant-numeric:tabular-nums;color:var(--gray-b9)}.mode-toggle{width:100%;height:auto}.cat-head{align-items:center;gap:8px;display:flex}.cat-head .h2{flex:1}.cat-head button{color:var(--text-gray);align-items:center;gap:8px;display:flex}.cat-head img{object-fit:contain;width:10px;height:18px}.hscroll{scrollbar-width:none;overscroll-behavior-x:contain;gap:16px;margin:0 -3px;padding:3px 3px 40px;display:flex;overflow-x:auto}.hscroll::-webkit-scrollbar{display:none}.lib-card{border:2px solid var(--line-gray);background:var(--black);text-align:left;border-radius:12px;flex-direction:column;flex:0 0 180px;width:180px;height:212px;padding:16px;display:flex}.lib-card .img-box{justify-content:center;height:80px;margin-top:16px;display:flex}.lib-card .img-box img{object-fit:contain;max-width:100%;max-height:80px}.lib-card .foot{align-items:flex-end;gap:8px;margin-top:auto;display:flex}.lib-card .foot span{flex:1;padding-right:8px}.lib-card .foot img{object-fit:contain;width:10px;height:18px;margin-bottom:2px}.setting-row{text-align:left;flex:none;align-items:center;gap:8px;width:100%;height:50px;display:flex}.setting-row .h2{flex:1}.setting-row .value{font-family:var(--font-head);color:var(--white-30);font-size:12px;font-weight:700}.setting-row img{object-fit:contain;width:30px;height:30px}.divider{background:var(--divider);flex:none;height:1px;margin:16px 0}.version{color:var(--not-active-text);word-break:break-all;padding:8px 0 16px;font-size:12px}.md{font-family:var(--font-body);color:var(--white);font-size:15px;line-height:21px}.md h1{font-family:var(--font-head);margin:0 0 12px;font-size:27px;font-weight:700;line-height:1.25}.md h2{font-family:var(--font-head);margin:24px 0;font-size:18px;font-weight:700;line-height:23px}.md h3{font-family:var(--font-head);margin:20px 0 12px;font-size:16px;font-weight:700}.md p{margin:0 0 14px}.md ul,.md ol{margin:0 0 14px;padding-left:22px}.md li{margin-bottom:6px}.md img{max-width:100%;height:auto}.md.gray-text p,.md.gray-text li{color:var(--gray-b9)}.player-bar{touch-action:none;cursor:pointer;height:24px;margin:0 24px;position:relative}.player-bar .track{background:var(--white);border-radius:2px;height:4px;position:absolute;top:10px;left:0;right:0}.player-bar .knob{background:var(--accent);border-radius:12px;width:24px;height:24px;position:absolute;top:0}.times{font-variant-numeric:tabular-nums;justify-content:space-between;min-height:20px;margin:24px 24px 0;font-size:15px;display:flex}.controls{justify-content:center;align-items:center;height:72px;margin:8px 0 90px;display:flex;position:relative}.controls .play img{width:72px;height:72px}.controls .skip{font-family:var(--font-body);align-items:center;gap:8px;font-size:22px;font-weight:500;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.controls .skip img{width:18px;height:auto}.controls .skip.left{left:24px}.controls .skip.right{right:24px}.controls .skip.right img{transform:rotate(180deg)}.streak-hero{justify-content:center;align-items:center;margin-bottom:32px;display:flex}.streak-hero img{object-fit:contain;width:65px;height:90px}.streak-hero .num{text-align:center;width:150px;font-family:var(--font-head);margin-left:32px;font-weight:700}.streak-hero .num b{font-size:48px;line-height:1.2;display:block}.streak-hero .num span{font-size:18px;display:block}.streak-hero .num.on{background:linear-gradient(45deg,#b252ca,#f18b5f);color:#0000;-webkit-background-clip:text;background-clip:text}.streak-hero .num.off{color:var(--white-30)}.month{flex-direction:column;gap:12px;padding:16px 0;display:flex}.month-head{align-items:center;display:flex}.month-head .h5{color:var(--gray-b9);flex:1}.month-head button{width:32px;height:32px;color:var(--white);justify-content:center;align-items:center;display:flex}.month-grid{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.month-cell{border:1px solid var(--white-30);height:40px;font-family:var(--font-head);border-radius:8px;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.month-cell.placeholder{border-color:#fff1ec21}.levels{justify-content:center;align-items:flex-end;width:100%;margin-bottom:24px;display:flex}.levels img{object-fit:contain;object-position:bottom}@media (height<=667px){.month-cell{height:35px}}.loading-arc{object-fit:contain;width:auto;max-width:100%;height:266px;animation:1s linear infinite alternate arc-sweep;position:relative;-webkit-mask-image:linear-gradient(90deg,#0000,#000,#0000);mask-image:linear-gradient(90deg,#0000,#000,#0000);-webkit-mask-size:40px 100%;mask-size:40px 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.loading-arc.done{animation:.5s ease-in fade-in;-webkit-mask-image:none;mask-image:none}@keyframes arc-sweep{0%{-webkit-mask-position:calc(50% - 200px) 0;mask-position:calc(50% - 200px) 0}to{-webkit-mask-position:calc(50% + 200px) 0;mask-position:calc(50% + 200px) 0}}.loading-blink{font-family:var(--font-body);color:var(--line-gray);text-align:center;font-size:17px;font-weight:700;animation:.8s ease-in infinite blink;position:relative}.loading-ready{font-family:var(--font-body);text-align:center;padding:5px;font-size:23px;font-weight:700;position:relative}@keyframes blink{0%{opacity:1}to{opacity:0}}.toast{left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 16px);z-index:80;max-width:calc(var(--col) - 32px);width:calc(100% - 32px);color:var(--white);border:1px solid var(--line-gray);background:#1c1c1e;border-radius:13px;margin:0 auto;padding:14px 16px;font-size:14px;line-height:20px;animation:.2s ease-out fade-in;position:fixed}
