:root{--rm-bg:var(--theme-bg);--rm-surface:var(--theme-surface);--rm-border:var(--theme-border);--rm-text:var(--theme-text);--rm-text-muted:var(--theme-text-muted);--rm-accent:var(--theme-accent);--rm-accent-light:var(--theme-accent-light);--rm-success:var(--theme-success);--rm-success-light:var(--theme-success-light);--rm-warning:var(--theme-warning);--rm-error:var(--theme-error);--rm-shadow:var(--theme-shadow);--rm-shadow-lg:var(--theme-shadow-lg)}.paper-library-page{--library-bg:#f4f4ef;--library-paper:#fbfbf7;--library-ink:#111814;--library-muted:#606963;--library-line:#d5d9d3;--library-accent:#24d86a;--library-accent-dark:#0a6e37;background:var(--library-bg);min-height:100vh;color:var(--library-ink)}@media (max-width:1024px){.paper-library-page{padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))}}:root[data-theme=dark] .paper-library-page{--library-bg:#0b0e0c;--library-paper:#111512;--library-ink:#eef3ef;--library-muted:#939d96;--library-line:#29302b}@media (prefers-color-scheme:dark){:root:not([data-theme]) .paper-library-page{--library-bg:#0b0e0c;--library-paper:#111512;--library-ink:#eef3ef;--library-muted:#939d96;--library-line:#29302b}}.paper-library-page :focus-visible{outline:2px solid var(--library-accent-dark);outline-offset:3px}.paper-library-main{border-left:1px solid var(--library-line);border-right:1px solid var(--library-line);width:min(1240px,100% - 48px);margin:0 auto}.paper-library-hero{border-bottom:1px solid var(--library-line);grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);align-items:center;gap:80px;min-height:490px;padding:92px clamp(36px,6vw,88px) 76px;display:grid;position:relative;overflow:hidden}.paper-library-grid{opacity:.48;background-image:linear-gradient(var(--library-line)1px,transparent 1px),linear-gradient(90deg,var(--library-line)1px,transparent 1px);pointer-events:none;background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000 0% 55%,#0000 100%);mask-image:linear-gradient(90deg,#000 0% 55%,#0000 100%)}.paper-library-hero-copy,.paper-library-summary{z-index:1;position:relative}.library-kicker,.library-section-label{font-family:var(--font-geist-mono),monospace;letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:700}.library-kicker{color:var(--library-muted);align-items:center;gap:10px;margin:0 0 26px;display:flex}.library-kicker>span{background:var(--library-accent);width:7px;height:7px;box-shadow:0 0 0 4px color-mix(in srgb,var(--library-accent)16%,transparent);border-radius:50%}.paper-library-hero h2{color:var(--library-ink);letter-spacing:-.06em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(3.4rem,6vw,5.8rem);font-weight:400;line-height:.94}.paper-library-hero h2 em{color:var(--library-muted);font-weight:400}.paper-library-hero-copy>p:last-child{max-width:620px;color:var(--library-muted);margin:30px 0 0;font-size:15px;line-height:1.72}.paper-library-summary{border-top:1px solid var(--library-line)}.paper-library-summary>div{border-bottom:1px solid var(--library-line);grid-template-columns:minmax(100px,.8fr) 1.2fr;align-items:baseline;gap:20px;padding:23px 0;display:grid}.paper-library-summary strong{color:var(--library-ink);letter-spacing:-.035em;font-family:Georgia,Times New Roman,serif;font-size:26px;font-weight:400}.paper-library-summary span{color:var(--library-muted);font-family:var(--font-geist-mono),monospace;letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:700}.paper-library-index{padding:104px clamp(36px,6vw,88px) 120px}.paper-index-heading{justify-content:space-between;align-items:flex-end;gap:36px;margin-bottom:44px;display:flex}.library-section-label{color:var(--library-accent-dark);margin:0 0 14px}.paper-index-heading h2,.paper-library-access h2{color:var(--library-ink);letter-spacing:-.05em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.4rem,4vw,3.7rem);font-weight:400;line-height:1}.paper-search{border-bottom:1px solid var(--library-line);width:min(360px,100%);min-height:44px;color:var(--library-muted);align-items:center;gap:10px;padding:0 14px;display:flex}.paper-search>span{font-family:Georgia,Times New Roman,serif;font-size:24px}.paper-search input{width:100%;color:var(--library-ink);font-family:var(--font-geist-mono),monospace;background:0 0;border:0;outline:0;font-size:11px}.paper-search input::placeholder{color:var(--library-muted)}.paper-library-controls{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:34px;display:flex}.paper-type-filters{flex-wrap:wrap;flex:auto;gap:8px;display:flex}.paper-type-filters button,.paper-sort-controls button{border:1px solid var(--library-line);min-height:34px;color:var(--library-muted);font-family:var(--font-geist-mono),monospace;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:0;flex:none;padding:0 12px;font-size:9px;font-weight:700}.paper-type-filters button:hover,.paper-type-filters button.is-active,.paper-sort-controls button:hover,.paper-sort-controls button.is-active{border-color:var(--library-ink);background:var(--library-ink);color:var(--library-bg)}.paper-sort-controls{flex:none;align-items:center;gap:8px;display:flex}.paper-sort-controls>span{color:var(--library-muted);font-family:var(--font-geist-mono),monospace;letter-spacing:.1em;font-size:8px;font-weight:700}.paper-index-column-head,.paper-index-row{grid-template-columns:110px minmax(260px,1.45fr) minmax(170px,.8fr) minmax(175px,.7fr);align-items:center;gap:24px;display:grid}.paper-index-column-head{border-top:1px solid var(--library-line);min-height:38px;color:var(--library-muted);font-family:var(--font-geist-mono),monospace;letter-spacing:.1em;padding:0 14px;font-size:8px;font-weight:700}.paper-index-list{border-bottom:1px solid var(--library-line)}.paper-index-row{border:0;border-top:1px solid var(--library-line);width:100%;min-height:100px;color:var(--library-ink);text-align:left;background:0 0;padding:18px 14px;transition:background .15s,color .15s}.paper-index-row:hover{background:var(--library-paper)}.paper-index-order{align-items:baseline;gap:14px;display:flex}.paper-index-order b{color:var(--library-accent-dark);font-family:var(--font-geist-mono),monospace;font-size:10px}.paper-index-order i,.paper-index-title small{color:var(--library-muted);font-family:var(--font-geist-mono),monospace;letter-spacing:.04em;text-transform:uppercase;font-size:9px;font-style:normal}.paper-dependency-count{color:var(--library-accent-dark)}.paper-index-title{flex-direction:column;gap:7px;min-width:0;display:flex}.paper-index-title strong{color:var(--library-ink);letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.25rem,2vw,1.65rem);font-weight:400;line-height:1.12;overflow:hidden}.paper-index-title strong a{color:inherit;text-decoration:none}.paper-index-title strong a:hover{color:var(--library-accent-dark)}.paper-index-types{flex-wrap:wrap;gap:6px;display:flex}.paper-index-types i{border:1px solid var(--library-line);color:var(--library-muted);font-family:var(--font-geist-mono),monospace;letter-spacing:.06em;text-transform:uppercase;padding:4px 7px;font-size:8px;font-style:normal}.paper-index-access{appearance:none;color:var(--library-muted);font-family:var(--font-geist-mono),monospace;letter-spacing:.04em;text-transform:uppercase;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:8px 1fr auto;align-items:center;gap:10px;font-size:9px;font-weight:700;display:grid}.paper-index-access>i{background:var(--library-muted);border-radius:50%;width:7px;height:7px}.paper-index-access.is-locked>i{background:#d3a32d}.paper-index-access.has-progress>i{background:var(--library-accent)}.paper-index-access>b{color:var(--library-ink);font-size:14px}.paper-index-empty{border-top:1px solid var(--library-line);min-height:220px;color:var(--library-muted);font-family:var(--font-geist-mono),monospace;place-items:center;font-size:11px;display:grid}.paper-library-access{border-top:1px solid var(--library-line);grid-template-columns:1.15fr .85fr auto;align-items:center;gap:50px;padding:74px clamp(36px,6vw,88px);display:grid}.paper-library-access h2{font-size:clamp(2rem,3vw,3rem)}.paper-library-access>p{color:var(--library-muted);margin:0;font-size:13px;line-height:1.65}.paper-library-access>a{background:var(--library-ink);min-height:46px;color:var(--library-bg);font-family:var(--font-geist-mono),monospace;letter-spacing:.06em;text-transform:uppercase;justify-content:center;align-items:center;gap:16px;padding:0 18px;font-size:9px;font-weight:700;text-decoration:none;display:inline-flex}.paper-library-access>a:hover{background:var(--library-accent-dark);color:#fff}@media (max-width:900px){.paper-library-hero{grid-template-columns:1fr;gap:54px}.paper-library-summary{grid-template-columns:repeat(3,1fr);display:grid}.paper-library-summary>div{border-right:1px solid var(--library-line);grid-template-columns:1fr;gap:7px;padding:18px}.paper-index-column-head,.paper-index-row{grid-template-columns:70px minmax(170px,1fr) minmax(110px,.65fr) minmax(115px,.6fr);gap:14px}.paper-library-controls{flex-direction:column;align-items:stretch;gap:18px}.paper-sort-controls{align-self:flex-start}.paper-library-access{grid-template-columns:1fr;gap:24px}.paper-library-access>a{justify-self:start}}@media (max-width:640px){.paper-library-main{width:calc(100% - 28px);padding-bottom:72px}.paper-library-hero{gap:44px;min-height:auto;padding:72px 22px 56px}.paper-library-grid{background-size:48px 48px}.paper-library-hero h2{font-size:clamp(3rem,15vw,4.4rem)}.paper-library-summary{grid-template-columns:1fr}.paper-library-summary>div{border-right:0;grid-template-columns:115px 1fr;padding:16px 0}.paper-library-index{padding:72px 22px 82px}.paper-index-heading{flex-direction:column;align-items:stretch;gap:28px}.paper-search{width:100%}.paper-index-column-head{display:none}.paper-index-row{grid-template-rows:auto auto;grid-template-columns:54px minmax(0,1fr) 20px;gap:12px;min-height:92px;padding:16px 0}.paper-index-order{flex-direction:column;grid-area:1/1/span 2;align-items:flex-start;gap:4px}.paper-index-title{grid-area:1/2}.paper-index-title strong{white-space:normal;font-size:18px}.paper-index-title small{line-height:1.45}.paper-index-access{grid-area:1/3/span 2;display:block}.paper-index-types{grid-area:2/2;display:flex}.paper-index-access>i,.paper-index-access>span{display:none}.paper-library-access{padding:68px 22px}.paper-library-access>a{width:100%}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes flow{to{stroke-dashoffset:-20px}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes rotate{to{transform:rotate(360deg)}}.learning-container{background:var(--rm-bg);color:var(--rm-text);width:100%;height:100vh;min-height:640px;display:flex;overflow:hidden}.intro-overlay{background:var(--rm-bg);z-index:100;flex-direction:column;justify-content:center;align-items:center;transition:opacity .32s;display:flex;position:fixed;inset:0;overflow:hidden}.intro-overlay.hidden{opacity:0;pointer-events:none}.intro-simple{z-index:1;text-align:center;flex-direction:column;gap:14px;width:min(1000px,92vw);padding:24px;display:flex;position:relative}.intro-title{color:var(--rm-text);letter-spacing:.08em;font-size:clamp(2.5rem,6vw,3.8rem);font-weight:600}.intro-subtitle{color:var(--rm-text-muted);letter-spacing:.03em;font-size:1rem}.intro-progress{flex-direction:column;gap:10px;margin-top:8px;display:flex}.intro-progress-label{color:var(--rm-text);letter-spacing:.05em;justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.intro-progress-track{background:var(--rm-border);border-radius:999px;width:100%;height:10px;position:relative;overflow:hidden}.intro-progress-bar{background:linear-gradient(90deg,var(--rm-accent),var(--rm-success));height:100%;transition:width .25s}.intro-status-line{color:var(--rm-text-muted);letter-spacing:.03em;margin-top:4px;font-size:.85rem}.learning-header{z-index:200;background:0 0;justify-content:space-between;align-items:center;padding:16px 16px 0;display:flex;position:relative}.breadcrumb{color:var(--rm-text-muted);align-items:center;gap:8px;font-size:14px;display:flex}.breadcrumb-link{cursor:pointer;transition:color .2s}.breadcrumb-link:hover{color:var(--rm-accent)}.breadcrumb span:last-child{color:var(--rm-text);font-weight:500}.header-right{align-items:center;gap:20px;display:flex}.node-group{cursor:pointer;transition:all .3s}.link{transition:all .5s}.link.highlighted{stroke:var(--rm-accent);stroke-width:2px;opacity:1;stroke-dasharray:6 4;animation:1s linear infinite flow}.link-dot{fill:var(--rm-border);pointer-events:none;opacity:.8;transition:all .3s}.link-dot.highlighted{fill:var(--rm-accent);r:2.8px;opacity:1;filter:drop-shadow(0 0 3px var(--rm-accent))}.node-group.highlighted .node-rect{stroke:var(--rm-accent);stroke-width:2px}.node-group.highlighted>text{fill:var(--rm-accent);font-weight:700}.milestone-title-group.active text{fill:var(--rm-accent)}.learning-graph.has-highlight .node-group:not(.highlighted):not(.active){opacity:.3}.learning-graph.has-highlight .link:not(.highlighted){opacity:.15}.main-wrapper{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.learning-toolbar{border-bottom:1px solid var(--rm-border);background:color-mix(in srgb,var(--rm-surface)84%,transparent);-webkit-backdrop-filter:blur(10px);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.learning-view-switch{flex-shrink:0;align-items:center;gap:2px;padding:0;display:inline-flex}.learning-view-switch-desktop{align-items:center;display:flex}.learning-view-switch-mobile{display:none}.learning-view-btn{min-width:auto;color:var(--rm-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;padding:4px 8px;font-size:13px;font-weight:600;line-height:1.2;transition:color .2s,opacity .2s;display:inline-flex}.learning-view-btn:hover{color:var(--rm-text)}.learning-view-btn.active{color:var(--rm-accent)}.learning-view-btn+.learning-view-btn:before{content:"/";color:var(--rm-text-muted);margin-right:8px}.learning-type-strip{scrollbar-width:thin;align-items:center;gap:8px;min-width:0;display:flex;overflow-x:auto}.learning-type-chip{border:1px solid var(--rm-border);background:color-mix(in srgb,var(--rm-surface)88%,transparent);color:var(--rm-text-muted);white-space:nowrap;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;transition:border-color .2s,color .2s,background .2s}.learning-type-chip.active{border-color:var(--rm-accent);color:var(--rm-accent);background:color-mix(in srgb,var(--rm-accent)10%,var(--rm-surface))}.chart-container{background:var(--rm-bg);flex:1;position:relative;overflow:visible}.chart-container.pending{opacity:0}.chart-container.ready{opacity:1;transition:opacity .2s}.node-tooltip{background:var(--rm-surface);border:1px solid var(--rm-border);color:var(--rm-text);white-space:nowrap;pointer-events:none;box-shadow:var(--rm-shadow-lg);z-index:30;border-radius:8px;padding:6px 10px;font-size:12px;line-height:1.4;position:absolute;transform:translate(-50%,-130%)}@media (max-width:768px){.learning-container{height:auto;min-height:100vh;padding-bottom:calc(60px + env(safe-area-inset-bottom,0px));overflow:auto}.main-wrapper{min-height:480px}.learning-toolbar{z-index:70;flex-direction:column;align-items:stretch;padding:10px 12px;position:sticky;top:0}.learning-view-switch-desktop{display:none}.learning-view-switch-mobile{justify-content:center;padding:6px 12px 8px;display:flex}.learning-view-switch{justify-content:center;width:auto}.learning-view-btn{justify-content:center;padding:4px 6px}.learning-type-strip{padding-bottom:2px}.chart-container{min-height:460px}.learning-legend{flex-wrap:wrap;justify-content:center;gap:8px;padding:6px 10px;font-size:11px;bottom:calc(80px + env(safe-area-inset-bottom,0px))!important;z-index:60!important;pointer-events:none!important;position:fixed!important;left:8px!important;right:8px!important}.legend-item{gap:4px}.zoom-controls{gap:4px;bottom:calc(136px + env(safe-area-inset-bottom,0px))!important;z-index:60!important;flex-direction:row!important;position:fixed!important;right:8px!important}.zoom-btn{width:36px;height:36px}.year-selector{flex-flow:wrap;gap:4px;max-width:calc(100vw - 100px);z-index:60!important;position:fixed!important;inset:60px 8px auto auto!important}.year-btn{padding:3px 8px;font-size:11px}}.milestone-detail-overlay{z-index:99;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.milestone-detail-card{background:var(--rm-surface);border:1px solid var(--rm-border);z-index:100;width:480px;max-width:calc(100vw - 48px);max-height:calc(100vh - 100px);box-shadow:var(--rm-shadow-lg);border-radius:12px;flex-direction:column;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.milestone-detail-header{border-bottom:1px solid var(--rm-border);justify-content:space-between;align-items:center;padding:16px;display:flex}.milestone-detail-header h3{color:var(--rm-text);margin:0;font-size:16px;font-weight:600}.milestone-detail-header button{color:var(--rm-text-muted);cursor:pointer;background:0 0;border:none;padding:4px;transition:color .2s}.milestone-detail-header button:hover{color:var(--rm-text)}.milestone-detail-meta{border-bottom:1px solid var(--rm-border);flex-wrap:wrap;gap:8px;padding:12px 16px;display:flex}.milestone-type-badge{color:var(--rm-accent);background:var(--rm-accent-light);border:1px solid var(--rm-accent);border-radius:4px;padding:2px 8px;font-size:11px;line-height:1.2;display:inline-block}.milestone-detail-meta .milestone-date{color:var(--rm-text-muted);background:var(--rm-surface);border:1px solid var(--rm-border);border-radius:4px;margin-bottom:0;padding:2px 8px;font-size:11px;line-height:1.2;animation:none;display:inline-block}.milestone-free-badge{color:var(--rm-success);background:var(--rm-success-light);border:1px solid var(--rm-success);border-radius:4px;padding:2px 8px;font-size:11px;line-height:1.2;display:inline-block}.milestone-source-link{color:var(--rm-accent);background:var(--rm-accent-light);border:1px solid var(--rm-accent);border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;line-height:1.2;text-decoration:none;transition:all .2s;display:inline-flex}.milestone-source-link:hover{background:var(--rm-accent);color:#fff}.milestone-detail-desc{color:var(--rm-text);overscroll-behavior:contain;flex:1;min-height:0;padding:16px;font-size:14px;line-height:1.7;overflow-y:auto}.milestone-detail-desc .markdown-content{color:var(--rm-text);font-size:14px}.milestone-detail-desc .markdown-content *{color:inherit}.milestone-detail-desc .markdown-content p{margin:0 0 12px}.milestone-detail-desc .markdown-content p:last-child{margin-bottom:0}.node-rect{transition:all .3s}.node-group:hover .node-rect{fill:var(--rm-accent-light);stroke:var(--rm-accent)}.node-group.active .node-rect{fill:var(--rm-accent-light);stroke:var(--rm-accent);stroke-width:2px}.milestone-title-group{transition:all .2s}.milestone-title-group:hover text{fill:var(--rm-accent)}.milestone-video-foreign{overflow:visible}.milestone-video-card{cursor:pointer;position:relative;overflow:visible}.milestone-video-frame{border:1px solid var(--rm-border);background:var(--rm-surface);width:100%;height:100%;box-shadow:0 8px 16px var(--rm-shadow);border-radius:8px;position:relative;overflow:hidden}.milestone-video-card:before{content:"";border-left:14px solid var(--rm-border);border-top:9px solid #0000;border-bottom:9px solid #0000;position:absolute;top:50%;right:-14px;transform:translateY(-50%)}.milestone-video-card:after{content:"";border-left:13px solid var(--rm-surface);border-top:8px solid #0000;border-bottom:8px solid #0000;position:absolute;top:50%;right:-13px;transform:translateY(-50%)}.milestone-video-cover,.milestone-video-iframe{width:100%;height:100%;position:absolute;inset:0}.milestone-video-cover{background-position:50%;background-size:cover;transition:opacity .2s}.milestone-video-cover.placeholder{background:linear-gradient(135deg,var(--rm-border),var(--rm-surface))}.milestone-video-play{pointer-events:none;opacity:.95;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.milestone-video-play:before{content:"";background:#11182799;border:1px solid #fff9;border-radius:999px;width:36px;height:36px;box-shadow:0 6px 12px #00000059}.milestone-video-play:after{content:"";border-top:7px solid #0000;border-bottom:7px solid #0000;border-left:12px solid #fffffff2;margin-left:2px;position:absolute}.milestone-video-iframe{opacity:0;pointer-events:none;border:0;transition:opacity .2s}.milestone-video-card.is-playing .milestone-video-cover,.milestone-video-card.is-playing .milestone-video-play{opacity:0}.milestone-video-card.is-playing .milestone-video-iframe{opacity:1}.node-group.node-locked .node-rect{fill:var(--rm-surface);stroke:var(--rm-border);opacity:.6}.node-group.node-locked:hover .node-rect{fill:var(--rm-surface);stroke:var(--rm-border)}.node-group.node-not-started .node-status-dot{fill:var(--rm-text-muted)}.node-group.node-in-progress .node-status-dot{fill:var(--rm-warning)}.node-group.node-completed .node-status-dot{fill:var(--rm-success)}.node-group.node-completed .node-rect{stroke:var(--rm-success)}.learning-legend{background:var(--rm-surface);border:1px solid var(--rm-border);z-index:20;color:var(--rm-text);opacity:.8;border-radius:8px;gap:16px;padding:8px 12px;font-size:12px;display:flex;position:absolute;bottom:16px;right:16px}.legend-item{align-items:center;gap:6px;display:flex}.legend-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.zoom-controls{z-index:20;opacity:.8;flex-direction:row;gap:4px;display:flex;position:absolute;bottom:60px;right:16px}.zoom-btn{background:var(--rm-surface);border:1px solid var(--rm-border);width:32px;height:32px;color:var(--rm-text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:transform .15s,box-shadow .15s,background .15s;display:flex}.zoom-btn:hover{background:var(--rm-accent-light);transform:scale(1.05);box-shadow:0 2px 8px #00000026}.zoom-btn:active{transform:scale(.95)}.year-selector{z-index:20;opacity:.8;flex-direction:column;gap:4px;display:flex;position:absolute;top:16px;right:16px}.year-btn{color:var(--rm-text);cursor:pointer;background:0 0;border:1px solid;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600;transition:transform .15s,box-shadow .15s}.year-btn:hover{transform:scale(1.05);box-shadow:0 2px 8px #00000026}.legend-lock{flex-shrink:0}.legend-not-started{background:var(--rm-text-muted)}.legend-in-progress{background:var(--rm-warning)}.legend-completed{background:var(--rm-success)}.legend-help-btn{background:var(--rm-accent);color:#fff;cursor:pointer;width:18px;height:18px;box-shadow:0 0 0 2px var(--rm-accent-light);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-right:8px;transition:all .2s;display:flex}.legend-help-btn:hover{box-shadow:0 0 0 3px var(--rm-accent-light);transform:scale(1.1)}.legend-help-btn i{font-size:11px}@media (max-width:768px){.legend-help-btn{pointer-events:auto}.milestone-detail-card{top:auto;bottom:calc(60px + env(safe-area-inset-bottom,0px));border-radius:16px 16px 0 0;width:100%;max-width:100%;max-height:calc(85vh - 60px);animation:.3s ease-out slideUp;left:0;right:0;transform:none}.milestone-detail-header,.milestone-detail-desc{padding:12px 16px}}@keyframes guideEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes highlightPulse{0%,to{box-shadow:0 0 0 4px rgba(var(--rm-accent-rgb,59,130,246),.3)}50%{box-shadow:0 0 0 8px rgba(var(--rm-accent-rgb,59,130,246),.15)}}.learning-guide-overlay{z-index:80;pointer-events:none;background:#00000080;position:fixed;inset:0}.learning-guide-highlight{border:2px solid var(--rm-accent);pointer-events:none;z-index:81;border-radius:8px;animation:2s ease-in-out infinite highlightPulse;position:fixed}.learning-guide-tooltip{z-index:85;background:var(--rm-surface);border:1px solid var(--rm-accent);pointer-events:auto;border-radius:12px;padding:16px;animation:.3s ease-out guideEnter;position:fixed;box-shadow:0 8px 32px #0000004d}.learning-guide-tooltip:before{content:"";border:8px solid #0000;width:0;height:0;position:absolute}.learning-guide-tooltip.arrow-left:before{border-right-color:var(--rm-accent);top:50%;left:-16px;transform:translateY(-50%)}.learning-guide-tooltip.arrow-right:before{border-left-color:var(--rm-accent);top:50%;right:-16px;transform:translateY(-50%)}.learning-guide-tooltip.arrow-top:before{border-bottom-color:var(--rm-accent);top:-16px;left:50%;transform:translate(-50%)}.learning-guide-tooltip.arrow-bottom:before{border-top-color:var(--rm-accent);bottom:-16px;left:50%;transform:translate(-50%)}.learning-guide-title{color:var(--rm-text);margin-bottom:8px;font-size:16px;font-weight:600}.learning-guide-content{color:var(--rm-text-muted);margin-bottom:16px;font-size:14px;line-height:1.6}.learning-guide-footer{justify-content:space-between;align-items:center;display:flex}.learning-guide-step{color:var(--rm-text-muted);font-size:12px}.learning-guide-actions{gap:8px;display:flex}.learning-guide-skip{color:var(--rm-text-muted);cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:13px;transition:color .2s}.learning-guide-skip:hover{color:var(--rm-text)}.learning-guide-next{background:var(--rm-accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 16px;font-size:13px;font-weight:500;transition:opacity .2s}.learning-guide-next:hover{opacity:.9}@media (max-width:768px){.learning-guide-tooltip{max-width:none;bottom:calc(80px + env(safe-area-inset-bottom,0px))!important;width:auto!important;position:fixed!important;top:auto!important;left:16px!important;right:16px!important}.learning-guide-tooltip:before{display:none}}.milestone-type-filter{z-index:20;flex-direction:column;gap:4px;display:flex;position:absolute;top:16px;left:16px}.milestone-type-toggle{display:none}.milestone-type-buttons{flex-direction:column;gap:4px;display:flex}.milestone-type-btn{color:var(--rm-text);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600;transition:transform .15s,box-shadow .15s}.milestone-type-btn:hover{transform:scale(1.05);box-shadow:0 2px 8px #00000026}.milestone-type-btn.active{border-color:var(--rm-accent);color:var(--rm-accent);background:color-mix(in srgb,var(--rm-accent)8%,var(--rm-surface))}@media (max-width:768px){.milestone-type-filter{gap:6px;top:60px;left:8px}.milestone-type-toggle{background:color-mix(in srgb,var(--rm-surface)90%,transparent);-webkit-backdrop-filter:blur(6px);border:1px solid var(--rm-border);min-width:80px;color:var(--rm-text);cursor:pointer;border-radius:20px;justify-content:space-between;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.milestone-type-toggle:active{transform:scale(.98)}.milestone-type-buttons{gap:4px;display:none}.milestone-type-filter.expanded .milestone-type-buttons{display:flex}.milestone-type-btn{padding:3px 8px;font-size:11px}}.learning-view-toggle{border:1px solid var(--rm-border);min-width:112px;height:36px;color:var(--rm-text-muted);white-space:nowrap;cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:0 12px;font-size:13px;font-weight:600;line-height:1;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s;display:inline-grid;position:relative;overflow:hidden}.learning-view-toggle__content-stack{place-items:center;transition:opacity .18s;display:grid}.learning-view-toggle__content{opacity:0;pointer-events:none;grid-area:1/1;justify-content:center;align-items:center;gap:8px;transition:opacity .18s;display:inline-flex}.learning-view-toggle__content.is-active{opacity:1}.learning-view-toggle__spinner{opacity:0;pointer-events:none;border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;transition:opacity .18s;animation:.7s linear infinite rotate;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.learning-view-toggle svg{flex-shrink:0}.learning-view-toggle:hover{background:var(--rm-accent-light);border-color:var(--rm-accent);color:var(--rm-accent)}.learning-view-toggle.is-switching{cursor:wait}.learning-view-toggle.is-switching .learning-view-toggle__content-stack{opacity:.6}.learning-view-toggle.is-switching .learning-view-toggle__spinner{opacity:1}.learning-view-toggle:disabled{pointer-events:none}.learning-view-toggle--floating{display:none}@media (max-width:768px){.learning-view-toggle--navbar{display:none}.learning-view-toggle--floating{z-index:60;background:var(--rm-surface);display:inline-grid;position:fixed;top:60px;right:8px;box-shadow:0 8px 24px #0f172a29}.learning-view-toggle{min-width:36px;padding:0 8px}.learning-view-toggle__content span{display:none}.year-selector{top:108px!important}}
