:root{color-scheme:light;--paper:#f5f1e8;--paper-deep:#ebe4d6;--ink:#162642;--muted:#6c6a65;--red:#b32b2b;--red-soft:#f1d7d2;--line:#d9d0c1;--white:#fffdf8;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;font-family:Georgia,Songti SC,Noto Serif CJK SC,serif}*{box-sizing:border-box}html{background:var(--paper);min-width:320px}body{background:linear-gradient(#ffffff29, #ffffff29), var(--paper);min-width:320px;margin:0}body:before{content:"";pointer-events:none;opacity:.14;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit}code{overflow-wrap:anywhere;word-break:break-word}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--red);outline-offset:3px}button,input,textarea,select{font:inherit}button{color:inherit}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;width:min(100% - 32px,1120px);min-height:72px;margin:0 auto;display:flex}.brand,.site-header nav,.bottom-nav{align-items:center;display:flex}.brand{letter-spacing:.04em;gap:9px;font-size:17px;font-weight:700;text-decoration:none}.brand-mark{color:var(--red);font-size:23px;line-height:1}.site-header nav{gap:22px;font-size:14px}.site-header nav a{color:var(--muted);text-decoration:none}.site-header nav a:hover,.site-header nav a:focus-visible{color:var(--red)}main.page-shell{width:min(100% - 32px,1120px);margin:0 auto;padding:72px 0 112px}.home-shell{align-items:center;min-height:calc(100vh - 72px);display:grid}.home-grid{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:end;gap:72px;display:grid}.home-copy{max-width:650px}.home-copy h1,.editorial-title h1{letter-spacing:-.055em;margin:12px 0 18px;font-size:clamp(2.5rem,7vw,5.4rem);font-weight:600;line-height:1.06}.home-copy .lede{color:#444d5c;max-width:540px;font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.8}.eyebrow{color:var(--red);text-transform:uppercase;letter-spacing:.13em;margin:0;font-size:12px;font-weight:700}.lede{color:var(--muted);line-height:1.75}.accent-line{background:var(--red);width:54px;height:3px;margin:28px 0}.selection-panel,.paper-panel{border:1px solid var(--line);background:#fffdf8c7}.selection-panel{padding:25px}.selection-panel h2{margin:0 0 20px;font-size:18px}.choice-list{gap:10px;display:grid}.choice{border:1px solid var(--line);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:14px;min-height:60px;padding:12px 14px;display:flex;position:relative}.choice input{opacity:0;position:absolute}.choice:has(input:checked){border-color:var(--red);background:var(--red-soft)}.choice-title{font-weight:700;display:block}.choice-meta{color:var(--muted);margin-top:3px;font-size:12px;display:block}.choice-state{color:var(--muted);font-size:13px}.choice:has(input:checked) .choice-state{color:var(--red)}.time-row{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.time-choice{position:relative}.time-choice input{opacity:0;position:absolute}.time-choice label{border:1px solid var(--line);cursor:pointer;padding:9px 12px;font-size:13px;display:block}.time-choice input:checked+label{color:var(--red);border-color:var(--red);background:var(--red-soft)}.form-label{margin-top:22px;font-size:14px;font-weight:700;display:block}.primary-action{border:1px solid var(--red);background:var(--red);width:100%;color:var(--white);cursor:pointer;justify-content:space-between;align-items:center;gap:20px;margin-top:24px;padding:16px 17px;font-weight:700;text-decoration:none;display:flex}.primary-action:hover{background:#8e2025}.primary-action.secondary{border-color:var(--ink);color:var(--ink);background:0 0}.primary-action.secondary:hover{background:var(--paper-deep)}.text-link{color:var(--red);text-underline-offset:4px}.editorial-title{max-width:760px;margin-bottom:48px}.editorial-title h1{font-size:clamp(2.3rem,6vw,4.7rem)}.editorial-title .lede{max-width:660px;font-size:18px;line-height:1.8}.section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:20px;padding-bottom:14px;display:flex}.section-heading h2{margin:0;font-size:22px}.section-heading p{color:var(--muted);margin:0;font-size:14px}.roadmap-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.roadmap-card{border:1px solid var(--line);background:#fffdf899;flex-direction:column;justify-content:space-between;min-height:240px;padding:23px;text-decoration:none;display:flex}.roadmap-card:hover{border-color:var(--red);background:var(--white)}.roadmap-card h2{margin:10px 0;font-size:25px}.roadmap-card p{color:var(--muted);margin:0;line-height:1.65}.roadmap-card footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin-top:28px;padding-top:14px;font-size:13px;display:flex}.roadmap-card.is-disabled{opacity:.68;cursor:default}.roadmap-overview{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:64px;display:grid}.roadmap-intro{max-width:700px}.roadmap-intro h1{letter-spacing:-.05em;margin:12px 0 16px;font-size:clamp(2.4rem,6vw,4.7rem);line-height:1.08}.roadmap-intro>p{color:var(--muted);font-size:18px;line-height:1.8}.facts{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;margin:30px 0 42px;display:grid}.fact{background:var(--paper);padding:15px}.fact strong,.fact span{display:block}.fact strong{font-size:22px}.fact span{color:var(--muted);margin-top:4px;font-size:12px}.stage-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.stage-item{border-bottom:1px solid var(--line);padding:19px 0}.stage-heading{align-items:center;gap:12px;margin-bottom:12px;display:flex}.stage-number{border:1px solid var(--red);width:27px;height:27px;color:var(--red);border-radius:50%;place-items:center;font-size:13px;display:grid}.stage-heading h2{margin:0;font-size:18px}.lesson-list{gap:7px;margin:0;padding:0 0 0 39px;list-style:none;display:grid}.lesson-row{justify-content:space-between;align-items:center;gap:16px;padding:11px 0;display:flex}.lesson-row a{text-decoration:none}.lesson-row a:hover{color:var(--red)}.lesson-row small{color:var(--muted);flex:none;font-size:12px}.roadmap-aside{border-top:2px solid var(--red);padding-top:15px;position:sticky;top:24px}.roadmap-aside h2{margin:0 0 12px;font-size:18px}.roadmap-aside ul{color:var(--muted);padding-left:20px;line-height:1.8}.lesson-shell{max-width:850px;margin:0 auto}.lesson-header{border-bottom:1px solid var(--line);padding-bottom:35px}.lesson-header h1{letter-spacing:-.055em;max-width:780px;margin:12px 0 18px;font-size:clamp(2.4rem,6vw,4.7rem);line-height:1.08}.lesson-meta{color:var(--muted);flex-wrap:wrap;gap:8px 18px;font-size:13px;display:flex}.lesson-meta span+span{position:relative}.lesson-meta span+span:before{content:"·";color:var(--red);position:absolute;left:-11px}.lesson-content{padding:42px 0;font-size:18px;line-height:1.9}.lesson-content h2{margin:52px 0 14px;font-size:26px;line-height:1.3}.lesson-content h2:first-child{margin-top:0}.lesson-content p{margin:0 0 18px}.lesson-content blockquote{border-left:3px solid var(--red);background:#f1d7d280;margin:24px 0;padding:15px 20px}.lesson-content blockquote p{margin:0 0 10px}.lesson-content blockquote p:last-child{margin-bottom:0}.lesson-content code{background:var(--paper-deep);padding:2px 5px;font-size:.85em}.lesson-footer{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:18px;padding-top:20px;display:grid}.lesson-footer .primary-action:last-child{text-align:right}.source-notice{border:1px solid var(--line);background:#fffdf899;margin:28px 0;padding:18px 20px;font-size:14px;line-height:1.7}.source-notice p{margin:0 0 5px}.source-notice a{color:var(--red);margin:8px 18px 0 0;display:inline-block}.practice-card{border:1px solid var(--line);background:#fffdf8b3;padding:23px}.practice-card h2{margin:0 0 15px;font-size:25px}.practice-card>p{line-height:1.8}.criteria{background:var(--paper-deep);margin:20px 0;padding:16px 20px}.criteria h3{margin:0 0 8px;font-size:15px}.criteria ul{color:var(--muted);margin:0;padding-left:20px;line-height:1.8}.note-label{margin:22px 0 8px;font-weight:700;display:block}.note-editor{resize:vertical;border:1px solid var(--line);background:var(--white);width:100%;min-height:220px;color:var(--ink);padding:14px;line-height:1.7}.save-status{min-height:22px;color:var(--muted);margin:8px 0 0;font-size:13px}.inline-error{color:var(--red);margin:12px 0;font-size:14px}.progress-overview{grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:48px;display:grid}.progress-card{border:1px solid var(--line);background:#fffdf8b3;padding:22px}.progress-card h2{margin:0 0 8px;font-size:23px}.progress-card p{color:var(--muted);line-height:1.7}.progress-wrap{margin:20px 0}.progress-label{color:var(--muted);justify-content:space-between;gap:10px;font-size:13px;display:flex}.progress-label strong{color:var(--ink)}.progress-track{background:var(--paper-deep);height:7px;margin-top:8px;overflow:hidden}.progress-track span{background:var(--red);height:100%;display:block}.data-controls{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.data-controls h2{font-size:18px}.control-row{flex-wrap:wrap;gap:10px;margin-top:15px;display:flex}.small-button{border:1px solid var(--ink);cursor:pointer;background:0 0;padding:10px 13px}.small-button:hover{background:var(--paper-deep)}.small-button.danger{color:var(--red);border-color:var(--red)}.recent-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.recent-list li{border-bottom:1px solid var(--line);padding:14px 0}.recent-list a{text-decoration:none}.recent-list a:hover{color:var(--red)}.search-panel{border:1px solid var(--line);background:#fffdf8bf;max-width:800px;padding:28px}.search-panel p{color:var(--muted);line-height:1.7}.offline-notice{border-left:3px solid var(--red);background:var(--red-soft);color:var(--ink);margin:20px 0;padding:12px 14px}.plain-content{max-width:780px;font-size:18px;line-height:1.9}.plain-content h2{margin-top:42px;font-size:25px}.plain-content li{margin:8px 0}.feedback-panel{border:1px solid var(--line);background:#fffdf8b8;max-width:760px;padding:24px}.feedback-panel h2{margin-top:0}.feedback-template{resize:vertical;border:1px solid var(--line);background:var(--white);width:100%;min-height:260px;color:var(--ink);padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.75}.source-table{border-collapse:collapse;width:100%;font-size:14px}.source-table th,.source-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:12px 10px}.source-table th{color:var(--muted);font-weight:400}.empty-state{border:1px dashed var(--line);background:#fffdf873;padding:27px}.empty-state h2{margin:8px 0;font-size:22px}.empty-state p{color:var(--muted);line-height:1.7}.bottom-nav{display:none}@media (width<=800px){.site-header{min-height:62px}.site-header nav{display:none}main.page-shell{padding:46px 0 98px}.home-shell{min-height:auto;display:block}.home-grid,.roadmap-overview,.progress-overview{grid-template-columns:1fr;gap:34px}.home-copy h1,.editorial-title h1,.roadmap-intro h1,.lesson-header h1{font-size:clamp(2.35rem,12vw,4rem)}.roadmap-aside{position:static}.roadmap-grid{grid-template-columns:1fr}.lesson-content{font-size:17px}.facts{grid-template-columns:1fr}.bottom-nav{z-index:5;padding:8px 20px max(8px, env(safe-area-inset-bottom));border-top:1px solid var(--line);backdrop-filter:blur(8px);background:#f5f1e8f2;justify-content:space-around;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{text-align:center;min-width:58px;color:var(--muted);gap:2px;text-decoration:none;display:grid}.bottom-nav span{font-size:17px}.bottom-nav small{font-size:11px}}@media (width>=801px){.home-copy{padding-bottom:40px}}
