@import "https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Playfair+Display:wght@600;700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface:#f6f8f4;--card:#fff;--card-2:#eef3ee;--ink:#14211b;--muted:#5f6e66;--line:#e3eae2;--brand:#1f5b47;--brand-deep:#143e32;--accent:#cff27e;--on-accent:#143e32;--danger:#c4553f;--danger-soft:#f8e6e1;--overlay:#14211b8c;--r-xl:20px;--r-lg:14px;--r-md:10px;--r-full:999px;--gutter:16px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--topbar-h:56px;--nav-h:60px;--font-ui:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Playfair Display", Georgia, "Times New Roman", serif;--ease:cubic-bezier(.2, .8, .2, 1)}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface:#0f1613;--card:#17211c;--card-2:#1f2b25;--ink:#eaf1ec;--muted:#96a59b;--line:#243029;--brand:#3c8a6e;--brand-deep:#0e2b23;--danger:#e07a66;--danger-soft:#3a2320;--overlay:#0009}:root[data-palette=ocean]{--brand:#1d5f8a;--brand-deep:#123f5e;--accent:#9fe1ff;--on-accent:#123f5e}html[data-theme=dark][data-palette=ocean]{--brand:#3c86b8;--brand-deep:#0d2c42}:root[data-palette=teal]{--brand:#137a7a;--brand-deep:#0c5252;--accent:#a8f0e6;--on-accent:#0c5252}html[data-theme=dark][data-palette=teal]{--brand:#3fa8a8;--brand-deep:#083939}:root[data-palette=plum]{--brand:#5b3f8a;--brand-deep:#3b2760;--accent:#e3c7ff;--on-accent:#3b2760}html[data-theme=dark][data-palette=plum]{--brand:#8c6cc4;--brand-deep:#291b43}:root[data-palette=rose]{--brand:#b0416f;--brand-deep:#7a2a4b;--accent:#ffd1e3;--on-accent:#7a2a4b}html[data-theme=dark][data-palette=rose]{--brand:#d9698f;--brand-deep:#551d35}:root[data-palette=coral]{--brand:#c2542e;--brand-deep:#86361b;--accent:#ffd8b0;--on-accent:#86361b}html[data-theme=dark][data-palette=coral]{--brand:#e07a55;--brand-deep:#5e2613}:root[data-palette=graphite]{--brand:#3a4a45;--brand-deep:#232e2a;--accent:#d6e4dd;--on-accent:#232e2a}html[data-theme=dark][data-palette=graphite]{--brand:#7f9891;--brand-deep:#19201d}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;height:100%;font-size:16px}body{background:var(--surface);min-height:100%;color:var(--ink);font:500 15px/1.5 var(--font-ui);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0}body.no-scroll{overflow:hidden}h1,h2,h3,p,figure{margin:0}ul,ol{margin:0;padding:0;list-style:none}button{color:inherit;font:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default}input,textarea{font:inherit;color:inherit}a{color:var(--brand);text-decoration:none}img,svg{max-width:100%;display:block}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.title-page{font:700 28px/34px var(--font-display);letter-spacing:-.01em}.title-section{font:600 22px/28px var(--font-display)}.text-meta{color:var(--muted);font-size:13px;line-height:18px}.text-caption{font-size:12px;font-weight:600;line-height:16px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.app-shell{min-height:100dvh;padding-bottom:calc(var(--nav-h) + var(--safe-bottom) + 16px);background:var(--surface);position:relative}.main-content{padding:4px var(--gutter) 0}.main-content>section+section{margin-top:32px}.page-title{padding:16px 0 20px}.page-title h1{font:700 28px/34px var(--font-display);letter-spacing:-.01em}.page-title p{color:var(--muted);max-width:36ch;margin-top:6px;font-size:15px;line-height:22px}.section-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.section-heading h2{font:600 22px/28px var(--font-display)}.link-btn{min-height:44px;color:var(--brand);align-items:center;gap:4px;font-size:15px;font-weight:700;display:inline-flex}.topbar{z-index:20;min-height:calc(var(--topbar-h) + var(--safe-top));padding:var(--safe-top) calc(8px + var(--tg-controls-inset,0px)) 0 var(--gutter);background:var(--surface);border-bottom:1px solid #0000;align-items:center;gap:12px;transition:border-color .15s;display:flex;position:sticky;top:0}.topbar.is-scrolled{border-bottom-color:var(--line)}html[data-fullscreen] .topbar,html[data-fullscreen] .sheet-head{padding-right:calc(8px + var(--tg-controls-inset,72px))}.brand-mark{background:var(--brand-deep);width:32px;height:32px;color:var(--accent);font:700 18px/1 var(--font-display);border-radius:10px;flex:none;place-items:center;display:grid}.brand{flex-direction:column;flex:1;min-width:0;line-height:1.15;display:flex}.brand b{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:700;overflow:hidden}.brand span{color:var(--muted);font-size:12px;font-weight:500}.icon-btn{border-radius:var(--r-md);width:44px;height:44px;color:var(--brand);flex:none;place-items:center;display:grid;position:relative}.icon-btn svg{width:24px;height:24px}.icon-btn:active{background:var(--card-2)}.icon-btn .dot{background:var(--danger);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:9px;right:10px}.avatar{background:var(--brand);color:#fff;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;margin:0 4px;font-size:13px;font-weight:700;display:grid}.avatar svg{width:20px;height:20px}.bottom-nav{z-index:20;height:calc(var(--nav-h) + var(--safe-bottom));padding:0 8px var(--safe-bottom);background:var(--card);border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{min-height:44px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:600;line-height:1;display:flex;position:relative}.bottom-nav button svg{width:24px;height:24px}.bottom-nav button.active{color:var(--brand)}.bottom-nav button.active:before{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;top:5px}.list{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.list>*+*{border-top:1px solid var(--line)}.list-row{text-align:left;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 14px;display:flex}.list-row:active{background:var(--card-2)}.row-main{flex:1;min-width:0}.row-title{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:600;line-height:22px;display:block;overflow:hidden}.row-title.wrap{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.row-meta{color:var(--muted);align-items:center;gap:6px;margin-top:2px;font-size:13px;line-height:18px;display:flex}.row-meta svg{flex:none;width:16px;height:16px}.chevron{color:var(--muted);flex:none}.row-icon{border-radius:var(--r-md);background:var(--card-2);width:40px;height:40px;color:var(--brand);flex:none;place-items:center;display:grid}.row-icon svg{width:22px;height:22px}.row-side{flex:none;font-size:16px;font-weight:700}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg)}.pressable{transition:transform .12s var(--ease), background-color .12s}.pressable:active{background-color:var(--card-2);transform:scale(.985)}.btn{border-radius:var(--r-md);min-height:48px;transition:transform .12s var(--ease);justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:16px;font-weight:700;line-height:24px;display:inline-flex}.btn svg{width:20px;height:20px}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-secondary{background:var(--card-2);color:var(--brand)}.btn-ghost{color:var(--brand);background:0 0}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-block{width:100%}.btn-lg{min-height:52px}.btn-sm{min-height:44px;padding:0 16px;font-size:15px}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.55;transform:none}.chips{margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);scroll-snap-type:x proximity;scroll-padding-inline:var(--gutter);scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border-radius:var(--r-full);background:var(--card);border:1px solid var(--line);min-height:44px;color:var(--ink);scroll-snap-align:start;flex:none;align-items:center;gap:6px;padding:0 16px;font-size:15px;font-weight:600;display:inline-flex}.chip.active{background:var(--brand);border-color:var(--brand);color:#fff}.segmented{background:var(--card-2);border-radius:var(--r-md);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:2px;padding:2px;display:grid}.segmented button{min-height:44px;color:var(--muted);text-align:center;border-radius:8px;font-size:14px;font-weight:600}.segmented button.active{background:var(--card);color:var(--ink);border:1px solid var(--line)}.field{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);min-height:48px;color:var(--muted);align-items:center;gap:10px;padding:0 14px;display:flex}.field:focus-within{border-color:var(--brand)}.field svg{flex:none;width:20px;height:20px}.field input,.field textarea{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:16px;line-height:24px}.field input::placeholder,.field textarea::placeholder{color:var(--muted)}.field-clear{width:44px;height:44px;color:var(--muted);flex:none;place-items:center;margin-right:-12px;display:grid}.textarea{align-items:flex-start;min-height:120px;padding:12px 14px}.textarea textarea{resize:vertical;min-height:96px}.form-stack{gap:12px;display:grid}.empty-state{text-align:center;justify-items:center;gap:8px;padding:40px 20px;display:grid}.empty-state svg{width:40px;height:40px;color:var(--brand)}.empty-state b{font-size:16px;font-weight:700}.empty-state span{max-width:32ch;color:var(--muted);font-size:15px;line-height:22px}.retry-button{border-radius:var(--r-md);background:var(--card-2);min-height:44px;color:var(--brand);margin-top:8px;padding:0 20px;font-size:15px;font-weight:700}.section-note{color:var(--muted);font-size:13px;line-height:18px}.inline-error{border-radius:var(--r-md);background:var(--danger-soft);color:var(--danger);justify-content:space-between;align-items:center;gap:12px;margin:12px 0 8px;padding:12px 14px;font-size:14px;font-weight:600;display:flex}.inline-error button{min-height:44px;color:var(--danger);font-weight:700}.form-error{border-radius:var(--r-md);background:var(--danger-soft);color:var(--danger);margin:0;padding:12px 14px;font-size:14px;font-weight:600}.home-loading,.content-loading{padding:8px 0}.skeleton{background:var(--card-2);border-radius:var(--r-md);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff73,#0000);animation:1.2s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}html[data-theme=dark] .skeleton:after{background:linear-gradient(90deg,#0000,#ffffff14,#0000)}@keyframes shimmer{to{transform:translate(100%)}}.skeleton-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);gap:14px;padding:12px;display:flex}.skeleton-card .skeleton-cover{flex:none;width:88px;height:120px}.skeleton-lines{flex:1;align-content:start;gap:10px;padding-top:4px;display:grid}.skeleton-lines .skeleton{height:14px}.skeleton-lines .skeleton:first-child{width:80%;height:18px}.skeleton-lines .skeleton:nth-child(2){width:55%}.skeleton-lines .skeleton:nth-child(3){width:40%}.skeleton-stack{gap:12px;display:grid}.skeleton-row{height:60px}.skeleton-block{border-radius:var(--r-xl);height:168px}.sheet{z-index:40;height:var(--tg-viewport-stable-height,100dvh);background:var(--surface);animation:sheet-in .22s var(--ease);flex-direction:column;display:flex;position:fixed;inset:0}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}.sheet-head{min-height:calc(var(--topbar-h) + var(--safe-top));padding:var(--safe-top) calc(8px + var(--tg-controls-inset,0px)) 0 8px;background:var(--surface);border-bottom:1px solid var(--line);flex:none;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:4px;display:grid}.sheet-title{text-align:center;min-width:0}.sheet-title b{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:700;line-height:22px;display:block;overflow:hidden}.sheet-title span{color:var(--muted);font-size:12px;line-height:16px;display:block}.sheet-body{-webkit-overflow-scrolling:touch;min-height:0;padding:20px var(--gutter) calc(32px + var(--safe-bottom));flex:1;overflow-y:auto}.sheet-body>*+*{margin-top:20px}.sheet-foot{padding:10px var(--gutter) calc(10px + var(--safe-bottom));background:var(--card);border-top:1px solid var(--line);flex:none;align-items:center;gap:10px;display:flex}.sheet-body.with-foot{padding-bottom:24px}.action-row{min-height:56px}.tab-fade{animation:.12s ease-out tab-fade}@keyframes tab-fade{0%{opacity:0}}.home>section+section{margin-top:32px}.home>.hero{margin-top:12px}.hero{border-radius:var(--r-xl);color:#fff;background:linear-gradient(135deg, var(--hero-from,var(--brand-deep)), var(--hero-to,var(--brand)));min-height:168px;padding:20px;position:relative;overflow:hidden}:root[data-palette] .hero{background:linear-gradient(135deg, var(--brand-deep), var(--brand))}.hero-ring{border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);pointer-events:none;border-radius:50%;position:absolute}.hero-ring-1{width:180px;height:180px;top:-70px;right:-60px}.hero-ring-2{border-color:color-mix(in srgb, var(--accent) 22%, transparent);width:260px;height:260px;top:-120px;right:-110px}.hero-hello{color:#fffc;font-size:13px;font-weight:600;position:relative}.hero h1{max-width:12ch;font:600 26px/32px var(--font-display);margin:8px 0;position:relative}.hero-lead{color:#ffffffd1;max-width:30ch;font-size:15px;line-height:22px;position:relative}.hero .btn{margin-top:16px;position:relative}.announcement{border-left:4px solid var(--brand);border-radius:0 var(--r-md) var(--r-md) 0;background:var(--card-2);align-items:flex-start;gap:8px;padding:12px 4px 12px 16px;display:flex}.announcement-warning{border-left-color:var(--danger)}.announcement-copy{flex:1;min-width:0;padding-top:6px}.announcement-copy b{font-size:16px;font-weight:700;line-height:22px;display:block}.announcement-copy p{color:var(--muted);margin-top:4px;font-size:15px;line-height:22px}.announcement-copy .link-btn{min-height:44px}.announcement-stack{isolation:isolate;position:relative}.announcement-stack .announcement{z-index:2;animation:announcement-in .24s var(--ease);position:relative}.announcement-stack.depth-2{padding-right:10px}.announcement-stack.depth-3{padding-right:20px}.announcement-stack.depth-2:before,.announcement-stack.depth-3:before,.announcement-stack.depth-3:after{content:"";border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:0 var(--r-md) var(--r-md) 0;background:var(--card);pointer-events:none;z-index:1;position:absolute;inset:10px 0 10px 10px;box-shadow:0 6px 12px -10px #00000080}.announcement-stack.depth-3:before{right:10px}.announcement-stack.depth-3:after{opacity:.7;z-index:0;inset:20px 0 20px 20px}.announcement-stack.depth-2 .announcement,.announcement-stack.depth-3 .announcement{box-shadow:6px 0 14px -10px #00000073}@keyframes announcement-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.announcement-stack .announcement{animation:none}}.continue-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);cursor:pointer;align-items:center;gap:14px;padding:12px;display:flex}.mini-cover{color:#fff;width:64px;height:80px;font:700 16px/1 var(--font-display);border-radius:10px;flex:none;place-items:center;display:grid}.continue-copy{flex:1;min-width:0}.continue-copy b{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:700;line-height:22px;display:block;overflow:hidden}.continue-copy p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:13px;line-height:18px;overflow:hidden}.recent-date{color:var(--muted);flex:none;font-size:13px;font-weight:600;line-height:18px}.carousel{margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter) 4px;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:none;gap:12px;display:flex;overflow-x:auto}.carousel::-webkit-scrollbar{display:none}.carousel-item{width:300px;max-width:calc(100vw - 2 * var(--gutter));scroll-snap-align:start;flex:none}.carousel .content-card{height:100%}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.category-tile{border-radius:var(--r-lg);color:#fff;text-align:left;background:linear-gradient(135deg, var(--brand-deep), var(--brand));flex-direction:column;align-items:flex-start;min-height:112px;padding:14px;display:flex;position:relative}.category-icon{width:28px;height:28px;margin-bottom:auto;display:block}.category-icon svg{width:28px;height:28px}.category-tile strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:12px;font-size:16px;font-weight:700;line-height:20px;display:-webkit-box;overflow:hidden}.category-tile small{color:#fffc;margin-top:4px;font-size:13px;font-weight:600}.category-chevron{color:#ffffffbf;position:absolute;bottom:12px;right:10px}.learning-card{border-radius:var(--r-lg);color:#fff;text-align:left;scroll-snap-align:start;flex-direction:column;flex:none;width:260px;min-height:148px;padding:16px;display:flex}.learning-card strong{font:600 18px/24px var(--font-display)}.learning-card p{color:#ffffffd1;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:8px;font-size:14px;line-height:20px;display:-webkit-box;overflow:hidden}.learning-foot{color:#ffffffd9;justify-content:space-between;align-items:center;margin-top:auto;padding-top:14px;font-size:13px;font-weight:600;display:flex}.learning-cta{border-radius:var(--r-full);background:var(--accent);color:var(--on-accent);padding:8px 12px;font-size:14px;font-weight:700}.promo{border-radius:var(--r-xl);background:linear-gradient(135deg, var(--brand-deep) 0%, var(--brand) 58%, color-mix(in srgb, var(--brand) 82%, #fff) 100%);color:#fff;padding:20px 24px 20px 20px;position:relative;overflow:hidden}.promo>*{z-index:1;position:relative}.promo.has-art:before,.promo.has-art:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.promo.has-art:before{border:26px solid #ffffff16;width:208px;height:208px;top:-64px;right:-48px}.promo.has-art:after{background:radial-gradient(circle at 35% 35%, color-mix(in srgb, var(--accent) 38%, transparent), transparent 70%);width:176px;height:176px;bottom:-78px;left:-36px}.promo-art-2:before{border-width:44px;border-color:#ffffff0f;width:240px;height:240px;top:-110px;right:22%}.promo-art-2:after{width:190px;height:190px;bottom:-48px;left:auto;right:-56px}.promo-art-3:before{border-width:18px;border-color:color-mix(in srgb, var(--accent) 16%, transparent);width:180px;height:180px;top:10px;right:-70px}.promo-art-3:after{background:radial-gradient(circle,#ffffff29,#fff0 68%);width:220px;height:220px;bottom:-120px;left:40%}.promo.has-art{background-image:linear-gradient(115deg, #ffffff12 0%, #fff0 38%), linear-gradient(135deg, var(--brand-deep) 0%, var(--brand) 58%, color-mix(in srgb, var(--brand) 82%, #fff) 100%)}.promo h2{max-width:calc(100% - 64px);font:600 20px/26px var(--font-display)}.promo p{color:#ffffffd1;max-width:34ch;margin-top:8px;font-size:14px;line-height:20px}.promo .btn{color:#fff;background:#ffffff1f;margin-top:16px}.banner-carousel{margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter) 4px;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:none;gap:12px;display:flex;overflow-x:auto}.banner-carousel::-webkit-scrollbar{display:none}.banner-carousel .promo{width:100%;max-width:calc(100vw - 2 * var(--gutter));scroll-snap-align:start;flex:none}.carousel-dots{justify-content:center;gap:6px;margin-top:10px;display:flex}.carousel-dots span{background:var(--line);border-radius:3px;width:6px;height:6px;transition:width .2s,background .2s}.carousel-dots span.active{background:var(--brand);width:18px}.rank{width:24px;color:var(--muted);text-align:center;flex:none;font-size:13px;font-weight:700}.tiny-cover{color:#fff;width:40px;height:48px;font:700 12px/1 var(--font-display);border-radius:8px;flex:none;place-items:center;display:grid}.navy{background:linear-gradient(160deg,#24406b,#16294a)}.coral{background:linear-gradient(160deg,#c9604c,#8f3e31)}.teal{background:linear-gradient(160deg,#1e7a72,#12514c)}.violet{background:linear-gradient(160deg,#6e62a8,#463b78)}.skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.skeleton-tile{border-radius:var(--r-lg);height:112px}.library-controls{gap:10px;margin:8px 0 14px;display:grid}.filter-row{margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);scroll-padding-inline:var(--gutter);scrollbar-width:none;align-items:center;gap:8px;display:flex;overflow-x:auto}.filter-row::-webkit-scrollbar{display:none}.filter-row .chip{min-height:36px;padding:0 12px;font-size:14px}.filter-sep{background:var(--line);flex:none;width:1px;height:20px}.sort-select{border-radius:var(--r-full);border:1px solid var(--line);background:var(--card-2);min-height:36px;color:var(--ink);flex:none;align-items:center;padding:0 28px 0 12px;font-size:14px;font-weight:600;display:inline-flex;position:relative}.sort-select select{appearance:none;min-height:36px;color:inherit;font:inherit;background:0 0;border:0;padding:0}.sort-select svg{pointer-events:none;color:var(--muted);position:absolute;right:9px;transform:rotate(90deg)}.content-list{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.content-list+.load-more{margin-top:16px}.content-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);cursor:pointer;text-align:left;gap:14px;min-width:0;padding:12px 52px 12px 12px;display:flex;position:relative}.cover{color:#fff;border-radius:10px;flex:none;width:88px;height:120px;position:relative;overflow:hidden}.cover span{font:700 20px/1 var(--font-display);position:absolute;bottom:10px;left:10px}.cover i{background:#14211b8c;border-radius:6px;padding:3px 7px;font-size:12px;font-style:normal;font-weight:700;line-height:16px;position:absolute;top:8px;left:8px}.cover b{background:#14211b40;place-items:center;display:grid;position:absolute;inset:0}.cover b svg{box-sizing:content-box;background:#ffffff38;border-radius:50%;width:22px;height:22px;padding:9px}.content-copy{flex-direction:column;flex:1;min-width:0;display:flex}.content-topic{color:var(--brand);font-size:12px;font-weight:600;line-height:16px}.content-copy h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:16px;font-weight:700;line-height:22px;display:-webkit-box;overflow:hidden}.content-copy>p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:13px;line-height:18px;overflow:hidden}.content-tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.content-tags span{border-radius:var(--r-full);background:var(--card-2);color:var(--brand);padding:2px 8px;font-size:12px;font-weight:600;line-height:16px}.content-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:auto;padding-top:10px;font-size:13px;line-height:18px;display:flex}.content-meta span{align-items:center;gap:4px;display:inline-flex}.content-meta svg{width:16px;height:16px}.rating-meta{color:#b7791f;font-weight:700}html[data-theme=dark] .rating-meta{color:#e0b25c}.save-button{border-radius:var(--r-md);width:44px;height:44px;color:var(--muted);place-items:center;display:grid;position:absolute;top:4px;right:4px}.save-button.saved{color:var(--brand)}.save-button.saved svg{fill:currentColor}.save-button:active{background:var(--card-2)}.confirm-text{white-space:nowrap}.reader-head .sheet-right{justify-content:flex-end;min-width:44px;display:flex}.reader{padding-top:16px}.reader-hero{text-align:center;justify-items:center;gap:6px;display:grid}.reader-cover{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--card-2);object-fit:cover;width:168px;height:224px}.reader-cover-fallback{color:#fff;background:linear-gradient(160deg, var(--brand-deep), var(--brand));place-items:center;display:grid;position:relative}.reader-cover-fallback span{font:700 44px/1 var(--font-display)}.reader-cover-fallback i{background:#14211b8c;border-radius:6px;padding:3px 8px;font-size:12px;font-style:normal;font-weight:700;line-height:16px;position:absolute;top:10px;left:10px}.reader-hero h1{max-width:22ch;font:600 24px/30px var(--font-display);letter-spacing:-.01em;overflow-wrap:anywhere;margin-top:10px}.reader-author{color:var(--muted);font-size:15px;line-height:22px}.reader-tags{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:6px;display:flex}.reader-tags span{border-radius:var(--r-full);background:var(--card-2);color:var(--brand);padding:4px 10px;font-size:12px;font-weight:700;line-height:16px;display:inline-block}.reader-tags .reader-category{background:var(--brand);color:#fff}.reader-stats{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;overflow:hidden}.reader-stats>div{text-align:center;align-content:center;gap:2px;min-height:64px;padding:10px 6px;display:grid}.reader-stats>div+div{border-left:1px solid var(--line)}.reader-stats b{overflow-wrap:anywhere;font-size:16px;font-weight:700;line-height:22px}.reader-stats span{color:var(--muted);font-size:12px;line-height:16px}.video-embed{aspect-ratio:16/9;border-radius:var(--r-lg);background:#000;width:100%;position:relative;overflow:hidden}.video-embed iframe,.video-embed video{border:0;width:100%;height:100%;position:absolute;inset:0}.reader-cta{justify-items:center;gap:8px;display:grid}.reader-cta .btn{width:100%}.reader-hint{color:var(--muted);text-align:center;font-size:13px;line-height:18px}.reader-source{justify-content:center;min-height:44px}.reader-source svg{width:18px;height:18px}.reader-stage-empty{border:1px dashed var(--line);border-radius:var(--r-lg);width:100%;color:var(--muted);text-align:center;justify-items:center;gap:10px;padding:32px 16px;display:grid}.reader-stage-empty svg{color:var(--brand)}.reader-stage-empty b{color:var(--ink);font-size:16px;line-height:22px}.reader-stage-empty p{max-width:30ch;font-size:15px;line-height:22px}.reader-text,.reader-body{font-size:16px;line-height:26px}.reader-text+.reader-body,.reader-body p+p{margin-top:12px}.reader-body img{border-radius:var(--r-md);margin:12px 0}.reader-body ul,.reader-body ol{list-style:revert;padding-left:22px}.reader-body h2,.reader-body h3{font:600 20px/26px var(--font-display);margin-top:18px}.reader-actions .row-icon{background:var(--card-2)}.reader-rating{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);text-align:center;padding:20px 16px}.reader-rating b{font-size:15px;font-weight:700;line-height:22px;display:block}.stars{justify-content:center;gap:4px;margin-top:8px;display:flex}.stars button{border-radius:var(--r-md);width:44px;height:44px;color:var(--line);font-size:28px;line-height:1;transition:color .12s}.stars button:active{background:var(--card-2)}.reader-rating.rated .stars button.active,.stars button.active{color:#e0b25c}.reader-rating small{color:var(--muted);margin-top:6px;font-size:13px;display:block}.quiz-question{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);padding:16px}.quiz-question+.quiz-question{margin-top:12px}.quiz-index{color:var(--brand);font-size:12px;font-weight:600;line-height:16px}.quiz-question h2{font:600 18px/26px var(--font-display);margin:6px 0 12px}.quiz-options{gap:8px;display:grid}.quiz-option{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);text-align:left;align-items:center;gap:12px;min-height:52px;padding:10px 12px;font-size:15px;line-height:22px;display:flex}.quiz-option .radio{border:2px solid var(--muted);border-radius:50%;flex:none;width:20px;height:20px}.quiz-option.selected{border-color:var(--brand);background:var(--card-2);font-weight:600}.quiz-option.selected .radio{border-color:var(--brand);background:radial-gradient(circle, var(--brand) 45%, transparent 50%)}.quiz-option:active{background:var(--card-2)}.quiz-result{text-align:center;justify-items:center;gap:8px;padding:24px 8px;display:grid}.quiz-result-mark{background:var(--card-2);width:72px;height:72px;color:var(--brand);font:700 34px/1 var(--font-display);border-radius:50%;place-items:center;display:grid}.quiz-result-mark.is-fail{color:var(--danger);background:var(--danger-soft)}.quiz-result h1{font:700 40px/44px var(--font-display)}.quiz-result b{font-size:16px;font-weight:700}.quiz-result p{max-width:30ch;color:var(--muted);font-size:15px;line-height:22px}.quiz-result .btn{margin-top:12px}.notes-list{margin-top:20px}.note-row{padding:14px}.note-body{white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:22px}.note-actions{gap:4px;margin-top:6px;display:flex}.note-actions .btn-ghost{padding:0 10px}.note-delete{color:var(--danger)}.note-delete.is-armed{background:var(--danger-soft)}.notes-empty{text-align:center;padding:12px 0}.quiz-overlay .sheet-title span{font-size:13px;font-weight:700}.notification-item.unread{background:var(--card-2)}.unread-dot{background:var(--danger);border-radius:50%;flex:none;width:8px;height:8px}.notification-item .row-meta{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.avatar-btn{border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.identity{text-align:center;justify-items:center;gap:4px;display:grid}.identity .avatar{margin-bottom:8px}.identity-name{font:600 22px/28px var(--font-display)}.identity-username{color:var(--muted);font-size:15px;line-height:22px}.identity-meta{color:var(--muted);font-size:13px;line-height:18px}.identity-pills{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.pill{border-radius:var(--r-full);background:var(--card-2);color:var(--brand);margin-top:6px;padding:4px 10px;font-size:12px;font-weight:700;line-height:16px;display:inline-block}.interests .section-note{margin:-4px 0 12px}.interests .save-status{color:var(--muted);font-size:13px;font-weight:600;line-height:18px}.interests .save-status.saved{color:var(--brand)}.interest-chip:disabled{opacity:.55}.interest-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.interest-chip{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);text-align:left;align-items:center;gap:6px;min-height:64px;padding:10px 30px 10px 10px;display:flex;position:relative}.interest-icon{border-radius:var(--r-md);background:var(--card-2);width:28px;height:28px;color:var(--brand);flex:none;place-items:center;display:grid}.interest-icon svg{width:22px;height:22px}.interest-label{overflow-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;font-size:13px;font-weight:600;line-height:17px;display:-webkit-box;overflow:hidden}.interest-check{border:2px solid var(--line);color:#0000;border-radius:50%;place-items:center;width:20px;height:20px;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.interest-chip.selected{border-color:var(--brand);background:var(--card-2)}.interest-chip.selected .interest-check{border-color:var(--brand);background:var(--brand);color:#fff}.interest-chip.selected .interest-icon{background:var(--card)}.profile-version{text-align:center;color:var(--muted);font-size:12px;line-height:16px}.sheet-backdrop{z-index:50;background:var(--overlay);animation:backdrop-in .18s var(--ease);align-items:flex-end;display:flex;position:fixed;inset:0}@keyframes backdrop-in{0%{opacity:0}}.bottom-sheet{width:100%;max-height:85vh;padding:8px var(--gutter) calc(16px + var(--safe-bottom));background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;animation:bottom-sheet-in .24s var(--ease);flex-direction:column;display:flex}@keyframes bottom-sheet-in{0%{transform:translateY(100%)}}.sheet-handle{border-radius:var(--r-full);background:var(--line);flex:none;width:40px;height:4px;margin:4px auto 12px}.bottom-sheet-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.bottom-sheet-body>*+*{margin-top:14px}.bottom-sheet .section-heading{margin-bottom:0}.bottom-sheet .save-status{color:var(--muted);font-size:13px;font-weight:600;line-height:18px}.bottom-sheet .save-status.saved{color:var(--brand)}.bottom-sheet .section-note{margin-top:8px}.appearance-subtitle{font:600 17px/24px var(--font-display)}.palette-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 8px;display:grid}.palette-swatch{justify-items:center;gap:6px;min-height:44px;display:grid}.palette-dot{width:44px;height:44px;box-shadow:0 0 0 1px var(--line);border-radius:50%;place-items:center;display:grid;position:relative}.palette-accent{width:13px;height:13px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;bottom:2px;right:2px}.palette-check{color:#fff}.palette-swatch.selected .palette-dot{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--brand)}.palette-label{color:var(--muted);text-align:center;font-size:12px;font-weight:600;line-height:16px}.palette-swatch.selected .palette-label{color:var(--ink)}.feedback-success{padding:32px 16px}.status-screen{min-height:100dvh;padding:calc(24px + var(--safe-top)) 24px calc(24px + var(--safe-bottom));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.status-screen h1{max-width:16ch;font:600 24px/30px var(--font-display)}.status-screen p{max-width:32ch;color:var(--muted);font-size:15px;line-height:22px}.status-screen .btn{max-width:320px;margin-top:12px}.brand-mark-lg{border-radius:18px;width:64px;height:64px;margin-bottom:8px;font-size:32px}.notes-search{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);width:100%;min-height:48px;color:var(--ink);font:inherit;padding:0 14px;font-size:16px;line-height:24px}.notes-search::placeholder{color:var(--muted)}.notes-search:focus{border-color:var(--brand);outline:0}.notes-group+.notes-group{margin-top:12px}.notes-group-head{background:var(--card-2);min-height:68px;padding:12px 14px}.notes-group-head .row-title{font-size:15px;line-height:20px}.notes-cover{border-radius:var(--r-md);background:var(--card);width:44px;height:58px;color:var(--brand);flex:none;place-items:center;display:grid;overflow:hidden}img.notes-cover{object-fit:cover}.note-item{align-items:flex-start;min-height:56px;padding:12px 14px}.note-item .chevron{margin-top:2px}.note-excerpt{overflow-wrap:break-word;white-space:pre-wrap;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;line-height:21px;display:-webkit-box;overflow:hidden}.note-date{color:var(--muted);margin-top:4px;font-size:12px;line-height:16px;display:block}.note-material-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);text-align:left;align-items:center;gap:12px;width:100%;min-height:68px;padding:12px 14px;display:flex}.note-material-card:active{background:var(--card-2)}.note-full{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);white-space:pre-wrap;overflow-wrap:break-word;padding:14px;font-size:16px;line-height:24px}.notes-empty-state{text-align:center;color:var(--brand);justify-items:center;gap:8px;padding:48px 20px;display:grid}.notes-empty-state b{color:var(--ink);font-size:16px;font-weight:700}.notes-empty-state p{max-width:32ch;color:var(--muted);font-size:15px;line-height:22px}.announcement-list{padding:0}.announcement-row{border-left:4px solid var(--brand);padding:12px 14px 12px 16px}.announcement-row+.announcement-row{border-top:1px solid var(--line)}.announcement-row.announcement-warning{border-left-color:var(--danger)}.announcement-row b{font-size:16px;font-weight:700;line-height:22px;display:block}.announcement-row p{color:var(--muted);margin-top:4px;font-size:15px;line-height:22px}.announcement-row-foot{justify-content:space-between;align-items:center;gap:12px;margin-top:6px;display:flex}.announcement-row-foot .link-btn{min-height:44px}.streak-card{border-radius:var(--r-xl);background:var(--brand-deep);color:#fff;gap:20px;padding:20px;display:grid}.streak-label{color:#fffc;font-size:13px;font-weight:600}.streak-number{font:700 32px/36px var(--font-display);margin-top:4px;display:block}.streak-number small{font:600 15px/22px var(--font-ui);color:#fffc}.streak-copy p{color:#ffffffd1;max-width:30ch;margin-top:8px;font-size:14px;line-height:20px}.activity-strip{grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:6px;height:84px;display:grid}.activity-day{flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.activity-day i{border-radius:var(--r-full);background:#ffffff47;width:8px;display:block}.activity-day.today i{background:var(--accent)}.activity-day span{color:#ffffffb3;font-size:12px;font-weight:600;line-height:16px}.activity-day.today span{color:var(--accent)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.stats-view .streak-card+.stat-grid{margin-top:16px}.stats-view .stat-grid+section{margin-top:32px}.stat-tile{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);padding:14px}.stat-tile b{font-size:24px;font-weight:700;line-height:30px;display:block}.stat-tile span{color:var(--muted);margin-top:4px;font-size:13px;line-height:18px;display:block}.row-icon.is-pass{color:var(--brand)}.row-icon.is-fail{color:var(--danger);background:var(--danger-soft)}.toast-stack{left:var(--gutter);right:var(--gutter);bottom:calc(var(--nav-h) + var(--safe-bottom) + 12px);z-index:60;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed}.toast{pointer-events:auto;background:var(--ink);color:var(--surface);text-align:left;-webkit-line-clamp:2;animation:toast-in .2s var(--ease);border-radius:8px;-webkit-box-orient:vertical;padding:12px 14px;font-size:15px;font-weight:600;line-height:20px;display:-webkit-box;overflow:hidden}.toast-error{background:var(--danger);color:#fff}.toast-success{background:var(--brand);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}@media (width>=480px){.app-shell{border-left:1px solid var(--line);border-right:1px solid var(--line);max-width:430px;margin-left:auto;margin-right:auto}.bottom-nav,.sheet{width:100%;max-width:430px;margin:0;left:50%;right:auto;transform:translate(-50%)}.toast-stack{width:100%;max-width:430px;padding:0 var(--gutter);left:50%;right:auto;transform:translate(-50%)}.sheet-backdrop{justify-content:center}.bottom-sheet{max-width:430px}@keyframes sheet-in{0%{opacity:0;transform:translate(-50%,24px)}to{opacity:1;transform:translate(-50%)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}}
