:root{--paper:#f4f1e8;--paper-2:#efebe0;--ink:#1c1b17;--ink-soft:#5e5a4f;--ink-faint:#8a857739;--line:#1c1b1714;--line-strong:#1c1b1726;--accent:#d4421c;--accent-ink:#fff;--card:#f8f6ef;--serif:var(--font-newsreader), Georgia, "Times New Roman", serif;--mono:var(--font-jetbrains), ui-monospace, "SF Mono", Menlo, monospace;--maxw:1120px;--gut:64px;--ease:cubic-bezier(.22, 1, .36, 1)}[data-theme=dark]{--paper:#16150f;--paper-2:#1c1b14;--ink:#ece7d8;--ink-soft:#98927f;--ink-faint:#98927f33;--line:#ece7d812;--line-strong:#ece7d822;--accent:#e8623c;--accent-ink:#16150f;--card:#1b1a13}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background-color .5s var(--ease), color .5s var(--ease);font-size:18px;line-height:1.5;overflow-x:hidden}::selection{background:var(--accent);color:var(--accent-ink)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input{font:inherit}body:after{content:"";pointer-events:none;z-index:9000;opacity:.03;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}[data-theme=dark] body:after{mix-blend-mode:screen;opacity:.04}.wrap{max-width:var(--maxw);padding:0 var(--gut);margin:0 auto}.mono{font-family:var(--mono)}.narrow{max-width:760px}#progress{background:var(--accent);z-index:1000;width:0%;height:2px;transition:width .1s linear;position:fixed;top:0;left:0}header{z-index:800;background:color-mix(in srgb, var(--paper) 86%, transparent);-webkit-backdrop-filter:saturate(1.2)blur(14px);border-bottom:1px solid var(--line);transition:background-color .5s var(--ease), border-color .5s var(--ease);position:sticky;top:0}.nav{justify-content:space-between;align-items:center;height:74px;display:flex}.brand{font-family:var(--serif);letter-spacing:-.01em;white-space:nowrap;align-items:baseline;gap:.1px;font-size:22px;font-weight:500;display:flex}.brand .dot{color:var(--accent)}.nav-right{align-items:center;gap:30px;display:flex}.nav-links{gap:26px;display:flex}.nav-links a{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);transition:color .3s var(--ease);padding:4px 0;font-size:12px;position:relative}.nav-links a:after{content:"";background:var(--ink);width:0;height:1px;transition:width .35s var(--ease);position:absolute;bottom:0;left:0}.nav-links a:hover,.nav-links a.active{color:var(--ink)}.nav-links a:hover:after,.nav-links a.active:after{width:100%}.nav-links a.active:after{background:var(--accent)}.nav-sep{background:var(--line-strong);width:1px;height:18px}.ctrl{align-items:center;gap:16px;display:flex}.lang{font-family:var(--mono);letter-spacing:.08em;align-items:center;gap:6px;font-size:12px;display:flex}.lang button{color:var(--ink-soft);transition:color .3s var(--ease);padding:2px}.lang button.on{color:var(--ink);font-weight:500}.lang button:hover{color:var(--ink)}.lang .slash{color:var(--line-strong)}.theme-btn{width:34px;height:34px;color:var(--ink-soft);transition:color .3s var(--ease), border-color .3s var(--ease), transform .5s var(--ease);border:1px solid #0000;border-radius:50%;place-items:center;display:grid}.theme-btn:hover{color:var(--ink);border-color:var(--line-strong)}.theme-btn svg{width:17px;height:17px}.theme-btn .sun,[data-theme=dark] .theme-btn .moon{display:none}[data-theme=dark] .theme-btn .sun{display:block}.hero{padding:116px 0 120px}.hero-inner{max-width:760px}.avatar{border:1px solid var(--line-strong);background:radial-gradient(120% 120% at 30% 25%, color-mix(in srgb, var(--accent) 8%, var(--card)) 0%, var(--card) 60%);width:76px;height:76px;font-family:var(--mono);letter-spacing:.08em;color:var(--ink-soft);box-shadow:0 1px 0 var(--line-strong), 0 16px 40px -28px #1c1b1755;border-radius:50%;place-items:center;margin-bottom:40px;font-size:16px;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.eyebrow{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);white-space:nowrap;align-items:center;gap:9px;margin-bottom:26px;font-size:12px;display:flex}.eyebrow .plus{color:var(--ink-faint)}.hero h1{font-family:var(--serif);letter-spacing:-.025em;text-wrap:balance;margin-bottom:34px;font-size:clamp(44px,6.2vw,82px);font-weight:400;line-height:1.04}.hero-lede{color:var(--ink-soft);max-width:560px;margin-bottom:48px;font-size:clamp(19px,2.1vw,23px);font-weight:300;line-height:1.55}.hero-lede em{color:var(--ink);font-style:italic;font-weight:400}.hero-lede .word{color:var(--ink);font-weight:400}.page-hero{border-bottom:1px solid var(--line);padding:92px 0 72px}.page-hero .eyebrow{margin-bottom:22px}.page-hero h1{font-family:var(--serif);letter-spacing:-.03em;text-wrap:balance;margin-bottom:30px;font-size:clamp(46px,6vw,86px);font-weight:400;line-height:1.02}.page-hero .lede{color:var(--ink-soft);max-width:620px;font-size:clamp(19px,2.1vw,23px);font-weight:300;line-height:1.55}.page-hero .lede em{color:var(--ink);font-style:italic}.crumb{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);transition:color .3s var(--ease), gap .3s var(--ease);align-items:center;gap:9px;margin-bottom:40px;font-size:12px;display:inline-flex}.crumb:hover{color:var(--accent);gap:13px}.crumb svg{width:13px;height:13px}.form{border:1px solid var(--ink);background:var(--card);max-width:470px;transition:border-color .3s var(--ease), box-shadow .4s var(--ease);border-radius:2px;display:flex;overflow:hidden}.form:focus-within{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);border-color:var(--accent)}.form input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;height:56px;padding:0 22px;font-size:16px}.form input::placeholder{color:var(--ink-soft);opacity:.7}.form button{background:var(--accent);color:var(--accent-ink);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;transition:background-color .3s var(--ease);align-items:center;gap:9px;padding:0 28px;font-size:13px;font-weight:500;display:flex}.form button:hover{background:color-mix(in srgb, var(--accent) 84%, #000)}.form button svg{width:13px;height:13px;transition:transform .35s var(--ease)}.form button:hover svg{transform:translate(2px,-2px)}.form-note{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-soft);margin-top:18px;font-size:11.5px}.form.sent button{background:var(--ink)}section.block{padding:18px 0 0}.sec-head{border-top:1px solid var(--line-strong);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;justify-content:space-between;align-items:baseline;padding:20px 0 14px;font-size:12px;display:flex}.sec-head.no-rule{border-top:none}.sec-head .label{color:var(--ink);white-space:nowrap;gap:16px;display:flex}.sec-head .label .num{color:var(--accent)}.sec-head .meta{color:var(--ink-soft);letter-spacing:.12em;white-space:nowrap;font-size:11px}.sec-head .meta a{transition:color .3s var(--ease)}.sec-head .meta a:hover{color:var(--ink)}.proj-list{margin-bottom:76px}.proj{border-top:1px solid var(--line);grid-template-columns:56px 1fr 40px;align-items:start;gap:8px;padding:36px 0;display:grid;position:relative}.proj:first-child{border-top:none}.proj:before{content:"";background:var(--card);opacity:0;z-index:-1;transition:opacity .4s var(--ease);border-radius:4px;position:absolute;inset:0 -64px}.proj:hover:before{opacity:1}.proj .idx{font-family:var(--mono);color:var(--ink-soft);padding-top:12px;font-size:12px}.proj .body{max-width:640px}.proj-title-row{flex-wrap:wrap;align-items:baseline;gap:14px;margin-bottom:14px;display:flex}.proj h3{font-family:var(--serif);letter-spacing:-.015em;white-space:nowrap;font-size:clamp(26px,3vw,34px);font-weight:400;line-height:1.1}.status{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;border-radius:2px;align-items:center;gap:6px;padding:4px 8px;font-size:10.5px;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.status.live{color:var(--accent);background:color-mix(in srgb, var(--accent) 9%, transparent)}.status.live:before{animation:pulse 2.4s var(--ease) infinite}.status.building{color:#b8870b;background:#b8870b14}[data-theme=dark] .status.building{color:#e0a93a;background:#e0a93a1a}.status.study{color:var(--ink-soft);background:var(--ink-faint)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.proj .year{font-family:var(--mono);color:var(--ink-soft);letter-spacing:.06em;white-space:nowrap;font-size:12px}.proj .year .sl{color:var(--line-strong);margin:0 6px}.proj p{color:var(--ink-soft);font-size:18px;font-weight:300;line-height:1.55}.proj .arrow{color:var(--ink-soft);transition:transform .4s var(--ease), color .4s var(--ease);justify-self:end;padding-top:10px}.proj:hover .arrow{color:var(--accent);transform:translate(3px,-3px)}.proj .arrow svg{width:17px;height:17px}.tags{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.tag{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--line-strong);transition:border-color .3s var(--ease), color .3s var(--ease);white-space:nowrap;border-radius:2px;padding:5px 10px;font-size:11px}.proj:hover .tag{border-color:color-mix(in srgb, var(--accent) 40%, var(--line-strong))}.blog-list{margin-bottom:76px}.post{border-top:1px solid var(--line);transition:opacity .3s var(--ease);grid-template-columns:180px 1fr;gap:24px;padding:32px 0;display:grid}.post:first-child{border-top:none}.post .date{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-soft);text-transform:uppercase;padding-top:8px;font-size:12px}.post .pbody{max-width:640px}.post h4{font-family:var(--serif);letter-spacing:-.012em;transition:color .3s var(--ease);align-items:center;gap:12px;margin-bottom:12px;font-size:clamp(22px,2.4vw,28px);font-weight:400;line-height:1.2;display:inline-flex}.post:hover h4{color:var(--accent)}.post h4 .pa{opacity:0;transition:opacity .35s var(--ease), transform .35s var(--ease);display:inline-flex;transform:translate(-6px)}.post:hover h4 .pa{opacity:1;transform:translate(0)}.post h4 .pa svg{width:15px;height:15px}.post p{color:var(--ink-soft);font-size:17px;font-weight:300;line-height:1.55}.post .ptag{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-top:12px;font-size:11px;display:inline-block}.feature{border-top:1px solid var(--line-strong);grid-template-columns:1.1fr 1fr;align-items:end;gap:56px;padding:52px 0 56px;display:grid}.feature .ftext{max-width:560px}.feature .fmeta{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);gap:16px;margin-bottom:22px;font-size:12px;display:flex}.feature .fmeta .fcat{color:var(--accent)}.feature h2{font-family:var(--serif);letter-spacing:-.022em;text-wrap:balance;margin-bottom:22px;font-size:clamp(34px,4vw,50px);font-weight:400;line-height:1.06}.feature p{color:var(--ink-soft);margin-bottom:30px;font-size:19px;font-weight:300;line-height:1.55}.feature .read{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--ink);transition:color .3s var(--ease), border-color .3s var(--ease), gap .3s var(--ease);align-items:center;gap:9px;padding-bottom:4px;font-size:12px;display:inline-flex}.feature .read:hover{color:var(--accent);border-color:var(--accent);gap:13px}.feature .read svg{width:13px;height:13px}.read{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);transition:color .3s var(--ease), gap .3s var(--ease);align-items:center;gap:9px;font-size:12px;display:inline-flex}.read:hover{color:var(--accent);gap:13px}.read svg{width:13px;height:13px}.article{padding:80px 0 40px}.article-wrap{max-width:720px;padding:0 var(--gut);margin:0 auto}.article-meta{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);flex-wrap:wrap;gap:18px;margin-bottom:28px;font-size:12px;display:flex}.article-meta .cat{color:var(--accent)}.article h1{font-family:var(--serif);letter-spacing:-.03em;text-wrap:balance;margin-bottom:28px;font-size:clamp(40px,5.4vw,68px);font-weight:400;line-height:1.05}.article-lede{color:var(--ink-soft);border-bottom:1px solid var(--line-strong);margin-bottom:50px;padding-bottom:44px;font-size:clamp(21px,2.4vw,26px);font-style:italic;font-weight:300;line-height:1.5}.byline{align-items:center;gap:14px;margin-bottom:6px;display:flex}.byline .av{border:1px solid var(--line-strong);background:var(--card);width:40px;height:40px;font-family:var(--mono);color:var(--ink-soft);border-radius:50%;flex:none;place-items:center;font-size:12px;display:grid}.byline .who{font-family:var(--serif);color:var(--ink);font-size:17px}.byline .role{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:11px}.prose{color:var(--ink);font-size:20px;font-weight:400;line-height:1.66}.prose>*+*{margin-top:28px}.prose p{color:color-mix(in srgb, var(--ink) 88%, var(--paper))}.prose h2{font-family:var(--serif);letter-spacing:-.018em;margin-top:56px;margin-bottom:-4px;font-size:clamp(28px,3.2vw,36px);font-weight:500;line-height:1.12}.prose h3{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-top:44px;font-size:13px;font-weight:500}.prose a{color:var(--accent);border-bottom:1px solid color-mix(in srgb, var(--accent) 40%, transparent);transition:border-color .3s var(--ease)}.prose a:hover{border-color:var(--accent)}.prose strong{font-weight:600}.prose em{font-style:italic}.prose ul,.prose ol{padding-left:26px}.prose li{margin-top:12px;padding-left:6px}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:2px solid var(--accent);font-family:var(--serif);color:var(--ink);letter-spacing:-.01em;margin:44px 0;padding:4px 0 4px 32px;font-size:clamp(24px,3vw,30px);font-style:italic;line-height:1.36}.prose code{font-family:var(--mono);background:var(--card);border:1px solid var(--line);border-radius:3px;padding:2px 6px;font-size:.82em}.prose hr{border:none;border-top:1px solid var(--line-strong);margin:56px 0}.prose figure{margin:44px 0}.prose figcaption{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-soft);text-align:center;margin-top:12px;font-size:12px}.article-foot{max-width:720px;padding:40px var(--gut) 0;border-top:1px solid var(--line-strong);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin:64px auto 0;display:flex}.article-foot .share{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);gap:22px;font-size:12px;display:flex}.article-foot .share a{transition:color .3s var(--ease)}.article-foot .share a:hover{color:var(--accent)}.cursos{padding-bottom:30px}.cursos-head{max-width:640px;margin:26px 0 50px}.cursos-head h2{font-family:var(--serif);letter-spacing:-.022em;text-wrap:balance;margin-bottom:24px;font-size:clamp(34px,4.4vw,52px);font-weight:400;line-height:1.08}.cursos-head p{color:var(--ink-soft);max-width:520px;font-size:20px;font-weight:300;line-height:1.5}.course-grid{border:1px solid var(--line-strong);border-radius:3px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.course{transition:background-color .4s var(--ease);padding:44px 40px 48px;position:relative}.course+.course{border-left:1px solid var(--line-strong)}.course:hover{background:var(--card)}.course .rom{font-family:var(--mono);color:var(--ink-soft);letter-spacing:.1em;margin-bottom:38px;font-size:13px;display:block}.course h3{font-family:var(--serif);letter-spacing:-.015em;margin-bottom:16px;font-size:clamp(24px,2.8vw,30px);font-weight:400;line-height:1.15}.course p{color:var(--ink-soft);max-width:380px;margin-bottom:30px;font-size:17px;font-weight:300;line-height:1.55}.course .clink{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--line-strong);transition:color .3s var(--ease), border-color .3s var(--ease), gap .3s var(--ease);align-items:center;gap:9px;padding-bottom:4px;font-size:12px;display:inline-flex}.course .clink:hover{color:var(--accent);border-color:var(--accent);gap:13px}.course .clink svg{width:13px;height:13px}.course-detail{border-top:1px solid var(--line);grid-template-columns:64px 1fr;gap:8px;padding:54px 0;display:grid}.course-detail:first-of-type{border-top:none}.course-detail .cnum{font-family:var(--mono);color:var(--accent);letter-spacing:.06em;padding-top:10px;font-size:13px}.course-detail .cmain{grid-template-columns:1.2fr 1fr;gap:56px;display:grid}.course-detail .cinfo{max-width:520px}.course-detail h2{font-family:var(--serif);letter-spacing:-.02em;margin-bottom:8px;font-size:clamp(30px,3.6vw,42px);font-weight:400;line-height:1.08}.course-detail .csub{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:26px;font-size:12px}.course-detail .cinfo>p{color:var(--ink-soft);margin-bottom:30px;font-size:19px;font-weight:300;line-height:1.56}.course-detail .meta-row{border-top:1px solid var(--line);flex-wrap:wrap;gap:36px;padding-top:26px;display:flex}.course-detail .mitem .mk{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;font-size:11px;display:block}.course-detail .mitem .mv{font-family:var(--serif);color:var(--ink);font-size:22px}.course-detail .mitem .mv.mono{font-family:var(--mono);font-size:18px}.curriculum .ctitle{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:20px;font-size:11px}.curriculum ol{list-style:none}.curriculum li{border-top:1px solid var(--line);grid-template-columns:28px 1fr;align-items:baseline;gap:14px;padding:16px 0;display:grid}.curriculum li:first-child{border-top:none}.curriculum li .ln{font-family:var(--mono);color:var(--ink-faint);font-size:12px}.curriculum li .lt{font-family:var(--serif);color:var(--ink);font-size:19px;line-height:1.3}.curriculum li .ld{font-family:var(--serif);color:var(--ink-soft);margin-top:4px;font-size:16px;font-weight:300;line-height:1.45}.cta-row{flex-wrap:wrap;align-items:center;gap:28px;margin-top:38px;display:flex}.btn-primary{background:var(--accent);color:var(--accent-ink);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;transition:background-color .3s var(--ease);border-radius:2px;align-items:center;gap:10px;padding:16px 30px;font-size:13px;font-weight:500;display:inline-flex}.btn-primary:hover{background:color-mix(in srgb, var(--accent) 84%, #000)}.btn-primary svg{width:14px;height:14px;transition:transform .35s var(--ease)}.btn-primary:hover svg{transform:translate(2px,-2px)}.cta-note{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-soft);font-size:12px}.cta-strip{border-top:1px solid var(--line);margin-top:20px;padding:80px 0 96px}.cta-strip .inner{max-width:720px}.cta-strip h2{font-family:var(--serif);letter-spacing:-.022em;text-wrap:balance;margin-bottom:22px;font-size:clamp(32px,4vw,48px);font-weight:400;line-height:1.08}.cta-strip p{color:var(--ink-soft);max-width:520px;margin-bottom:40px;font-size:19px;font-weight:300;line-height:1.5}.detail-hero{padding:92px 0 0}.detail-hero .topmeta{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:26px;display:flex}.detail-hero .topmeta .year{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-soft);font-size:12px}.detail-hero h1{font-family:var(--serif);letter-spacing:-.03em;text-wrap:balance;margin-bottom:30px;font-size:clamp(46px,6.4vw,92px);font-weight:400;line-height:1}.detail-hero .lede{color:var(--ink-soft);max-width:660px;font-size:clamp(20px,2.3vw,26px);font-weight:300;line-height:1.5}.detail-hero .lede em{color:var(--ink);font-style:italic}.specs{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);flex-wrap:wrap;gap:56px;margin:56px 0 0;padding:30px 0;display:flex}.spec .sk{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;font-size:11px;display:block}.spec .sv{font-family:var(--serif);color:var(--ink);font-size:22px;line-height:1.2}.spec .sv.mono{font-family:var(--mono);letter-spacing:.02em;font-size:17px}.detail-body{grid-template-columns:1fr 300px;align-items:start;gap:80px;padding:72px 0 20px;display:grid}.detail-body .main{max-width:680px}.detail-aside{position:sticky;top:110px}.detail-aside .ablock{border-bottom:1px solid var(--line);margin-bottom:30px;padding:0 0 30px}.detail-aside .ablock:last-child{border-bottom:none;margin-bottom:0}.detail-aside .at{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:16px;font-size:11px}.detail-aside .stack-list{flex-wrap:wrap;gap:8px;display:flex}.detail-aside .metric{margin-bottom:22px}.detail-aside .metric:last-child{margin-bottom:0}.detail-aside .metric .mnum{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);margin-bottom:6px;font-size:38px;font-weight:500;line-height:1;display:block}.detail-aside .metric .mlab{font-family:var(--serif);color:var(--ink-soft);font-size:16px;font-weight:300;line-height:1.35}.feat-head{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:8px 0 20px;font-size:11px}.pager{border-top:1px solid var(--line-strong);background:var(--line-strong);grid-template-columns:1fr 1fr;gap:1px;margin-top:80px;display:grid}.pager a{background:var(--paper);padding:40px var(--gut);transition:background-color .4s var(--ease);flex-direction:column;gap:12px;display:flex}.pager a:hover{background:var(--card)}.pager a.next{text-align:right;align-items:flex-end}.pager .pk{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:8px;font-size:11px;display:inline-flex}.pager .pk svg{width:13px;height:13px}.pager .pt{font-family:var(--serif);letter-spacing:-.015em;color:var(--ink);transition:color .3s var(--ease);font-size:clamp(22px,2.6vw,30px)}.pager a:hover .pt{color:var(--accent)}.enroll{background:var(--card);border:1px solid var(--line-strong);border-radius:3px;padding:30px 28px}.enroll .eprice{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);font-size:42px;font-weight:500;line-height:1}.enroll .eunit{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-top:10px;font-size:11px}.enroll .btn-primary{justify-content:center;width:100%;margin-top:24px}.enroll .enote{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-soft);text-align:center;margin-top:14px;font-size:11px}.enroll .einc{border-top:1px solid var(--line);gap:14px;margin-top:26px;padding-top:24px;display:grid}.enroll .einc .et{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:2px;font-size:11px}.enroll .einc .ei{font-family:var(--serif);color:var(--ink-soft);align-items:flex-start;gap:11px;font-size:16px;font-weight:300;line-height:1.4;display:flex}.enroll .einc .ei svg{width:15px;height:15px;color:var(--accent);flex:none;margin-top:4px}footer{border-top:1px solid var(--line-strong);margin-top:100px}.foot{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);justify-content:space-between;align-items:center;padding:30px 0;font-size:12px;display:flex}.foot-links{gap:30px;display:flex}.foot-links a{transition:color .3s var(--ease);position:relative}.foot-links a:hover{color:var(--accent)}.foot-right{align-items:center;gap:8px;display:flex}.foot-right .heart{color:var(--accent)}.totop{z-index:700;background:var(--ink);width:46px;height:46px;color:var(--paper);opacity:0;pointer-events:none;transition:opacity .4s var(--ease), transform .4s var(--ease), background-color .4s var(--ease);border-radius:50%;place-items:center;display:grid;position:fixed;bottom:26px;left:26px;transform:translateY(12px)scale(.85)}.totop.show{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.totop:hover{background:var(--accent);color:var(--accent-ink)}.totop svg{width:16px;height:16px}.js .rv{opacity:0;transition:opacity .8s var(--ease), transform .8s var(--ease);transform:translateY(22px)}.js .rv.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.js .rv{transition:none;opacity:1!important;transform:none!important}}@media (max-width:860px){.feature{grid-template-columns:1fr;align-items:start;gap:30px}.course-detail .cmain{grid-template-columns:1fr;gap:38px}.detail-body{grid-template-columns:1fr;gap:48px}.detail-aside{position:static}.pager{grid-template-columns:1fr}.pager a.next{text-align:left;align-items:flex-start}}@media (max-width:760px){:root{--gut:24px}.nav-links,.nav-sep{display:none}.hero{padding:72px 0 80px}.page-hero{padding:60px 0 50px}.form{flex-direction:column;max-width:100%}.form button{justify-content:center;height:54px}.proj{grid-template-columns:32px 1fr 28px;gap:6px}.proj:before{left:-16px;right:-16px}.proj .idx{padding-top:9px}.post{grid-template-columns:1fr;gap:8px}.post .date{padding-top:0}.course-grid{grid-template-columns:1fr}.course+.course{border-left:none;border-top:1px solid var(--line-strong)}.course-detail{grid-template-columns:1fr;gap:18px}.course-detail .cnum{padding-top:0}.foot{flex-direction:column;align-items:flex-start;gap:18px}.prose{font-size:18px}.prose blockquote{padding-left:22px}}
@font-face{font-family:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(../media/ca8956476e4b15e1-s.0spvl5h7nh4kj.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(../media/0ada71b763703d9d-s.0bgqpv90abx9d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(../media/2b7d3311b69a4dca-s.p.1elj1f4z6aq4a.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6632a144c419935f-s.08di4g7n39o46.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/7b27d9904b50e540-s.3szkwhi_rfrst.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d38f3bca7db33566-s.p.0op912u62qdhl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Fallback;src:local(Times New Roman);ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.0%;size-adjust:105.48%}.newsreader_a8f6f5e-module__vuDVhG__className{font-family:Newsreader,Newsreader Fallback}.newsreader_a8f6f5e-module__vuDVhG__variable{--font-newsreader:"Newsreader", "Newsreader Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_9ccab311-module__bf8DeW__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_9ccab311-module__bf8DeW__variable{--font-jetbrains:"JetBrains Mono", "JetBrains Mono Fallback"}
