:root{--bg:#040806;--bg-2:#0a120d;--fg:#cfe9d6;--fg-2:#8fb89b;--fg-3:#4f7a5b;--green:#5cff8c;--green-dim:#1f7a41;--amber:#ffb454;--rule:#163020;--display:"Martian Mono", "Geist Mono", ui-monospace, Menlo, monospace;--mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--measure:72ch;--gutter:16px;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{background:var(--bg);color:var(--fg);font-family:var(--mono);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:.98rem;line-height:1.7}#field{z-index:0;pointer-events:none;position:fixed;inset:0}.vignette{z-index:1;pointer-events:none;background:radial-gradient(at 50% 30%,#04080600 45%,#040806bf 100%);position:fixed;inset:0}.page{z-index:2;max-width:84rem;padding:0 var(--gutter);margin:0 auto;position:relative}a{color:var(--green);border-bottom:1px solid var(--green-dim);text-decoration:none}a:hover{border-bottom-color:var(--green);text-shadow:0 0 12px #5cff8c73}p{margin:0 0 1em}p:last-child{margin-bottom:0}::selection{background:var(--green);color:var(--bg)}.label{letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);font-size:.74rem}.label:before{content:"> ";color:var(--green-dim)}.num{font-family:var(--display);color:var(--amber);letter-spacing:.08em;font-size:.78rem}.masthead{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;padding:1.3rem 0;display:flex}.wordmark{font-family:var(--display);letter-spacing:.02em;color:var(--fg);border:0;font-size:1rem;font-weight:600}.wordmark .cur{color:var(--green)}.wordmark:hover{text-shadow:none;color:var(--green)}.masthead nav{gap:1.5rem;display:flex}.masthead nav a{letter-spacing:.12em;text-transform:uppercase;color:var(--fg-2);border:0;font-size:.74rem}.masthead nav a:before{content:"/";color:var(--fg-3);margin-right:.15em}.masthead nav a:hover{color:var(--green)}.hero{border-bottom:1px solid var(--rule);padding:5rem 0 3.5rem}.hero .label{margin-bottom:1.4rem;display:block}.hero h1{font-family:var(--display);letter-spacing:-.015em;text-wrap:balance;text-shadow:0 0 24px #5cff8c2e;max-width:24ch;margin:0 0 1.8rem;font-size:clamp(1.6rem,4.4vw,3.15rem);font-weight:500;line-height:1.18}.hero h1 em{color:var(--green);font-style:normal}.cursor{background:var(--green);vertical-align:-.12em;width:.55em;height:1em;margin-left:.15em;animation:1.1s step-end infinite blink;display:inline-block;box-shadow:0 0 10px #5cff8c99}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}}.hero .cols{grid-template-columns:minmax(0, var(--measure)) minmax(18rem, 26rem);align-items:end;gap:2.5rem 4rem;display:grid}.hero .lead{color:var(--fg-2);font-size:1.05rem}.ledger{margin:0;padding:0;font-size:.88rem;list-style:none}.ledger li{border-bottom:1px solid var(--rule);grid-template-columns:auto 1fr auto;align-items:baseline;gap:.7rem;padding:.5rem 0;display:grid}.ledger li:first-child{border-top:1px solid var(--rule)}.ledger .k{letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);font-size:.72rem}.ledger .dots{border-bottom:1px dotted var(--rule);transform:translateY(-.4em)}.ledger .v{text-align:right;color:var(--fg)}.section{border-bottom:1px solid var(--rule);padding:4rem 0}.section-head{align-items:baseline;gap:1rem;margin-bottom:2.2rem;display:flex}.section-head h2{font-family:var(--display);letter-spacing:0;color:var(--fg);margin:0;font-size:clamp(1.2rem,2.4vw,1.6rem);font-weight:500}.section-head h2:after{content:"_";color:var(--green)}.prose{max-width:var(--measure)}.prose p{color:var(--fg-2);font-size:1rem}.prose p+p{margin-top:1.1em}.chapter{grid-template-columns:10rem minmax(0, var(--measure));border-top:1px solid var(--rule);gap:.5rem 3rem;padding:2.4rem 0;display:grid}.chapter:first-of-type{border-top:0;padding-top:0}.chapter .years{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);padding-top:.35rem;font-size:.74rem}.chapter .years b{font-family:var(--display);color:var(--amber);letter-spacing:.02em;text-transform:none;margin-bottom:.25rem;font-size:.95rem;font-weight:500;display:block}.chapter h3{font-family:var(--display);text-wrap:balance;color:var(--fg);margin:0 0 .4rem;font-size:1.2rem;font-weight:500;line-height:1.35}.chapter .role{letter-spacing:.12em;text-transform:uppercase;color:var(--green-dim);margin-bottom:1rem;font-size:.72rem}.chapter .body p{color:var(--fg-2)}.chapter .tools{color:var(--fg-3);margin-top:1rem;font-size:.76rem;line-height:1.8}.chapter .tools:before{content:"$ tools: ";color:var(--green-dim)}.caps{border-top:1px solid var(--rule);border-left:1px solid var(--rule);grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));display:grid}.cap{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);background:#0a120d59;padding:1.5rem 1.4rem 1.6rem}.cap h3{font-family:var(--display);color:var(--fg);margin:0 0 .7rem;font-size:.98rem;font-weight:500}.cap h3:before{content:"▮ ";color:var(--green);vertical-align:.1em;font-size:.7em}.cap p{color:var(--fg-2);font-size:.9rem}.cap .tools{color:var(--fg-3);margin-top:.9rem;font-size:.74rem;line-height:1.8}.contact{padding:4.5rem 0 5rem}.contact h2{font-family:var(--display);text-wrap:balance;text-shadow:0 0 24px #5cff8c26;max-width:26ch;margin:0 0 1.2rem;font-size:clamp(1.4rem,3.4vw,2.2rem);font-weight:500;line-height:1.25}.contact p{max-width:var(--measure);color:var(--fg-2)}.contact .links{flex-wrap:wrap;gap:1.6rem;margin-top:1.6rem;display:flex}.contact .links a{letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--green-dim);padding:.55em 1em;font-size:.78rem}.contact .links a:hover{border-color:var(--green);background:#5cff8c0f}footer{border-top:1px solid var(--rule);letter-spacing:.06em;color:var(--fg-3);flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1.4rem 0 2.6rem;font-size:.72rem;display:flex}footer a{color:var(--fg-2);border:0}@media (width<=720px){.hero{padding:3rem 0 2.5rem}.hero .cols{grid-template-columns:1fr;gap:2rem}.chapter{grid-template-columns:1fr;gap:.4rem;padding:2rem 0}.chapter .years b{margin-right:.7rem;display:inline}.section{padding:3rem 0}.masthead nav{gap:.9rem}.masthead nav a:before{content:none}}.postlist{max-width:var(--measure);margin:0;padding:0;list-style:none}.postlist li{border-top:1px solid var(--rule);padding:1.3rem 0}.postlist li:last-child{border-bottom:1px solid var(--rule)}.postlist li>a{font-family:var(--display);color:var(--fg);border:0;font-size:1.05rem;font-weight:500}.postlist li>a:hover{color:var(--green)}.postlist .meta,.post .meta{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);margin:.35rem 0 .5rem;font-size:.74rem;display:block}.postlist p{color:var(--fg-2);font-size:.92rem}.feed{margin-top:1.5rem;font-size:.78rem}.post{padding:4rem 0 5rem}.post-layout{grid-template-columns:minmax(0,1fr);gap:2.5rem 4rem;display:grid}.post-rail{display:none}@media (width>=1100px){.post-layout{grid-template-columns:13rem minmax(0,1fr)}.post-rail{color:var(--fg-3);align-self:start;font-size:.78rem;display:block;position:sticky;top:2rem}}.post-rail .k{letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin:1.4rem 0 .4rem;font-size:.68rem;display:block}.post-rail .k:first-child{margin-top:0}.post-rail ol{margin:0;padding:0;list-style:none}.post-rail li{margin:.35rem 0;line-height:1.4}.post-rail li.d2{padding-left:.9rem}.post-rail a{color:var(--fg-2);border:0}.post-rail a:hover{color:var(--green)}.post-rail .tag{color:var(--amber);margin:0 .4rem .3rem 0;display:inline-block}.post header,.post-foot,.post-body>:not(.dg):not(.tradeoffs):not(.stats):not(pre):not(table){max-width:var(--measure)}.post-body.prose,.post-body>.dg,.post-body>.tradeoffs,.post-body>.stats,.post-body>pre,.post-body>table{max-width:none}.post header{margin-bottom:2.4rem}.post .label{margin-bottom:1rem;display:block}.post h1{font-family:var(--display);text-wrap:balance;text-shadow:0 0 24px #5cff8c26;margin:0;font-size:clamp(1.4rem,3.4vw,2.1rem);font-weight:500;line-height:1.25}.post-body h2{font-family:var(--display);color:var(--fg);margin:2.2rem 0 .8rem;font-size:1.1rem;font-weight:500}.post-body h2:before{content:"## ";color:var(--green-dim)}.post-body h3{font-family:var(--display);margin:1.8rem 0 .6rem;font-size:.98rem;font-weight:500}.post-body ul,.post-body ol{color:var(--fg-2);padding-left:1.4em}.post-body li{margin:.3em 0}.post-body code{color:var(--green);background:#5cff8c0f;border-radius:2px;padding:.05em .35em;font-size:.9em}.post-body pre{border:1px solid var(--rule);padding:1rem 1.2rem;font-size:.85rem;line-height:1.6;overflow-x:auto;background:var(--bg-2)!important}.post-body pre code{color:var(--fg);background:0 0;padding:0}.post-body blockquote{border-left:2px solid var(--green-dim);color:var(--fg-2);margin:1.4em 0;padding-left:1em}.post-body img{border:1px solid var(--rule);max-width:100%;height:auto}.post-foot{margin-top:3rem;font-size:.8rem}.latest{max-width:var(--measure);margin:0;padding:0;list-style:none}.latest li{border-top:1px solid var(--rule);grid-template-columns:7rem 1fr;align-items:baseline;gap:1.5rem;padding:.9rem 0;display:grid}.latest li:last-child{border-bottom:1px solid var(--rule)}.latest .d{letter-spacing:.1em;color:var(--amber);font-size:.74rem;font-family:var(--display)}.latest a{color:var(--fg);border:0}.latest a:hover{color:var(--green)}.latest .all{margin-top:1.2rem;font-size:.78rem}@media (width<=720px){.latest li{grid-template-columns:1fr;gap:.2rem}}.fold summary{cursor:pointer;padding-right:5.5rem;list-style:none;position:relative}.fold summary::-webkit-details-marker{display:none}.fold summary:after{content:"[+] expand";letter-spacing:.1em;text-transform:uppercase;color:var(--green-dim);font-size:.72rem;position:absolute;top:.2rem;right:0}.fold[open] summary:after{content:"[-] collapse"}.fold summary:hover h3{color:var(--green)}.fold summary h3{display:inline-block}.fold summary .role{margin-bottom:0}.fold[open] summary .role{margin-bottom:1rem}@media (width<=720px){.fold summary{padding-right:0}.fold summary:after{margin-top:.4rem;display:block;position:static}}@media (hover:hover) and (pointer:fine){.hl p{--wipe:0%;background-image:linear-gradient(#5cff8c17,#5cff8c17);background-repeat:no-repeat;background-size:var(--wipe) 100%;border-left:2px solid #0000;margin-left:-.5em;margin-right:-.5em;padding:.15em .5em;transition:background-size .38s cubic-bezier(.2,.8,.2,1),color .25s ease-out,border-color .25s ease-out;position:relative}.hl:hover p{color:var(--fg-3)}.hl p:hover{--wipe:100%;color:var(--fg);border-left-color:var(--green)}.hl p:hover strong,.hl p:hover code{text-shadow:0 0 10px #5cff8c59}.hl p:not(:hover){background-position:100%}}@media (prefers-reduced-motion:reduce){.hl p{transition:none}}@font-face{font-family:Excalifont;src:url(/fonts/excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2)format("woff2");font-display:swap;unicode-range:U+20-7E,U+A0-A3,U+A5-A6,U+A8-AB,U+AD-B1,U+B4,U+B6-B8,U+BA-FF,U+131,U+152-153,U+2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+2013-2014,U+2018-201A,U+201C-201E,U+2020,U+2022,U+2024-2026,U+2030,U+2039-203A,U+20AC,U+2122,U+2212}@font-face{font-family:Excalifont;src:url(/fonts/excalifont/Excalifont-Regular-be310b9bcd4f1a43f571c46df7809174.woff2)format("woff2");font-display:swap;unicode-range:U+100-130,U+132-137,U+139-149,U+14C-151,U+154-17E,U+192,U+1FC-1FF,U+218-21B,U+237,U+1E80-1E85,U+1EF2-1EF3,U+2113}@font-face{font-family:Excalifont;src:url(/fonts/excalifont/Excalifont-Regular-b9dcf9d2e50a1eaf42fc664b50a3fd0d.woff2)format("woff2");font-display:swap;unicode-range:U+400-45F,U+490-491,U+2116}@font-face{font-family:Excalifont;src:url(/fonts/excalifont/Excalifont-Regular-41b173a47b57366892116a575a43e2b6.woff2)format("woff2");font-display:swap;unicode-range:U+37E,U+384-38A,U+38C,U+38E-393,U+395-3A1,U+3A3-3A8,U+3AA-3CF,U+3D7}@font-face{font-family:Excalifont;src:url(/fonts/excalifont/Excalifont-Regular-3f2c5db56cc93c5a6873b1361d730c16.woff2)format("woff2");font-display:swap;unicode-range:U+2C7,U+2D8-2D9,U+2DB,U+2DD,U+302,U+306-307,U+30A-30C,U+326-328,U+212E,U+2211,U+FB01-FB02}@font-face{font-family:Excalifont;src:url(/fonts/excalifont/Excalifont-Regular-349fac6ca4700ffec595a7150a0d1e1d.woff2)format("woff2");font-display:swap;unicode-range:U+462-463,U+472-475,U+4D8-4D9,U+4E2-4E3,U+4E6-4E9,U+4EE-4EF}@font-face{font-family:Excalifont;src:url(/fonts/excalifont/Excalifont-Regular-623ccf21b21ef6b3a0d87738f77eb071.woff2)format("woff2");font-display:swap;unicode-range:U+300-301,U+303}:root{--hand:"Excalifont", "Segoe Print", "Bradley Hand", "Comic Sans MS", cursive}.dg{margin:2rem 0}.dg-svg{border:1px solid var(--rule);background:var(--bg-2);width:100%;max-width:70rem;height:auto;display:block}.dg-text{font-family:var(--hand);font-size:17px}.dg-sub{font-family:var(--mono);fill:var(--fg-3);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.dg-label{font-family:var(--hand);fill:var(--fg-2);font-size:14px}.dg-label-bg{fill:var(--bg-2)}.dg-plate{fill:var(--bg-2);opacity:.85}.dg figcaption{letter-spacing:.04em;color:var(--fg-3);margin-top:.7rem;font-size:.78rem}.dg figcaption:before{content:"fig · ";color:var(--amber)}.tradeoffs{border:1px solid var(--rule);background:#0a120d80;margin:2rem 0}.to-head{border-bottom:1px solid var(--rule);font-family:var(--display);padding:.7rem 1rem;font-size:.9rem}.to-cols{grid-template-columns:1fr 1fr;display:grid}.to-cols ul{color:var(--fg-2);margin:0;padding:.9rem 1rem 1rem 1.9rem;font-size:.9rem}.to-cols li{margin:.35em 0}.to-pros{border-right:1px solid var(--rule)}.to-pros li::marker{content:"+ ";color:var(--green)}.to-cons li::marker{content:"− ";color:var(--amber)}@media (width<=640px){.to-cols{grid-template-columns:1fr}.to-pros{border-right:0;border-bottom:1px solid var(--rule)}}.callout{border-left:2px solid var(--green);background:#5cff8c0d;margin:1.8rem 0;padding:.9rem 1.1rem 1rem}.callout.amber{border-left-color:var(--amber);background:#ffb4540d}.co-label{letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-bottom:.4rem;font-size:.72rem;display:block}.callout.amber .co-label{color:var(--amber)}.co-body p{color:var(--fg-2);font-size:.95rem}.stats{border:1px solid var(--rule);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:0;margin:2rem 0;display:grid}.stats>div{border-right:1px solid var(--rule);padding:1rem 1.1rem}.stats>div:last-child{border-right:0}.stats dt{letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);font-size:.7rem}.stats dd{font-family:var(--display);color:var(--green);margin:.25rem 0 0;font-size:1.5rem}@media (width>=1100px){.postlist{grid-template-columns:1fr 1fr;gap:0 4rem;max-width:none;display:grid}.postlist li:nth-child(2){border-top:1px solid var(--rule)}.postlist li:last-child{border-bottom:0}.postlist li:nth-last-child(2):nth-child(odd){border-bottom:1px solid var(--rule)}}.icon{vertical-align:-.15em;color:var(--green);margin-right:.15em}.ledger-hero{max-width:34rem;margin-top:.5rem}.contact .muted{color:var(--fg-3);margin-bottom:1.6rem}.cform{max-width:var(--measure);margin:0 0 1.8rem}.cform label{margin-bottom:1rem;display:block}.cform .k{letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin-bottom:.35rem;font-size:.7rem;display:block}.cform .k:before{content:"> ";color:var(--green-dim)}.cform input,.cform textarea{box-sizing:border-box;width:100%;color:var(--fg);border:1px solid var(--rule);font:inherit;background:#0a120db3;border-radius:2px;padding:.6rem .75rem;font-size:.95rem}.cform input:focus,.cform textarea:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 2px #5cff8c1f}.cf-row{grid-template-columns:1fr 1fr;gap:0 1.2rem;display:grid}.hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.cf-foot{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:.4rem;display:flex}.cform button{font:inherit;letter-spacing:.12em;text-transform:uppercase;color:var(--bg);background:var(--green);cursor:pointer;border:0;border-radius:2px;align-items:center;gap:.5em;padding:.7em 1.3em;font-size:.8rem;display:inline-flex}.cform button .icon{color:var(--bg)}.cform button:hover{filter:brightness(1.08);box-shadow:0 0 18px #5cff8c59}.cform button:disabled{opacity:.5;cursor:default}.cf-status{color:var(--fg-2);min-height:1.4em;margin-top:.9rem;font-size:.9rem}@media (width<=640px){.cf-row{grid-template-columns:1fr}}.inbox-del{font:inherit;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--rule);color:var(--fg-3);cursor:pointer;background:0 0;margin-top:.4rem;padding:.3em .8em;font-size:.72rem}.inbox-del:hover{border-color:var(--amber);color:var(--amber)}.post-body table{border-collapse:collapse;width:100%;margin:1.8rem 0;font-size:.9rem}.post-body th,.post-body td{text-align:left;vertical-align:top;border:1px solid var(--rule);color:var(--fg-2);padding:.55rem .7rem}.post-body th{color:var(--fg);font-weight:500;font-family:var(--display);background:#0a120d99;font-size:.8rem}.post-body td:first-child{color:var(--fg)}.post-body pre{margin:1.4rem 0}.post-body pre code{font-size:.84rem}.cdialog{background:var(--bg);color:var(--fg);border:1px solid var(--green-dim);width:min(44rem, calc(100vw - 2 * var(--gutter)));border-radius:4px;padding:0;box-shadow:0 0 0 1px #5cff8c14,0 30px 80px #0009,0 0 60px #5cff8c14}.cdialog::backdrop{backdrop-filter:blur(3px);background:#040806b8}.cdialog[open]{animation:.18s ease-out cd-in}@keyframes cd-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.cdialog[open]{animation:none}}.cdialog .cform{max-width:none;margin:0;padding:1.2rem 1.5rem 1.4rem}.cd-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;margin:0 0 1.2rem;padding-bottom:.8rem;display:flex}.cd-title{font-family:var(--display);color:var(--fg);font-size:.95rem}.cd-title .cursor{width:.5em;height:.95em}.cd-close{font:inherit;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);cursor:pointer;background:0 0;border:0;font-size:.74rem}.cd-close:hover{color:var(--amber)}.btn-primary{font:inherit;letter-spacing:.12em;text-transform:uppercase;color:var(--bg);background:var(--green);cursor:pointer;border:0;border-radius:2px;align-items:center;gap:.5em;padding:.6em 1.1em;font-size:.78rem;display:inline-flex}.btn-primary .icon{color:var(--bg);margin:0}.btn-primary:hover{filter:brightness(1.08);box-shadow:0 0 18px #5cff8c59}.contact .links{align-items:center}.cform .cd-close{color:var(--fg-3);box-shadow:none;background:0 0;padding:.2em .4em}.cform .cd-close:hover{color:var(--amber);box-shadow:none;filter:none}.track .t-summary{border:1px solid var(--rule);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));margin:1rem 0 2rem;display:grid}.track .t-summary>div{border-right:1px solid var(--rule);padding:.8rem 1rem}.track .t-summary>div:last-child{border-right:0}.track .t-summary .k{letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);font-size:.68rem;display:block}.track .t-summary b{font-family:var(--display);color:var(--green);font-size:1.1rem;font-weight:500}.track input,.track select,.track textarea{color:var(--fg);border:1px solid var(--rule);font:inherit;background:#0a120db3;border-radius:2px;padding:.3rem .45rem;font-size:.85rem}.track input[type=date]{color-scheme:dark}.t-list{gap:1rem;display:grid}.t-cert{border:1px solid var(--rule);border-left:3px solid var(--fg-3);background:#0a120d80;padding:1rem 1.2rem}.t-cert.s-studying{border-left-color:var(--green-dim)}.t-cert.s-booked{border-left-color:var(--amber)}.t-cert.s-passed{border-left-color:var(--green)}.t-cert.late{border-left-color:#e0644a}.t-cert header{grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;display:grid}.t-cert h3{font-family:var(--display);margin:0;font-size:1rem;font-weight:500}.t-phase,.t-win{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);font-size:.7rem}.t-cert.late .t-win{color:#e0644a}.t-why{color:var(--fg-2);margin:.4rem 0 .7rem;font-size:.85rem}.t-row{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);flex-wrap:wrap;gap:.6rem 1.4rem;font-size:.72rem;display:flex}.t-row label{align-items:center;gap:.5rem;display:inline-flex}.t-row input[type=range]{accent-color:var(--green);padding:0}.t-pct{color:var(--fg);min-width:2.5em}.t-bar{background:var(--rule);height:3px;margin:.8rem 0}.t-bar i{background:var(--green);height:100%;display:block;box-shadow:0 0 8px #5cff8c80}.t-cert textarea{box-sizing:border-box;resize:vertical;width:100%}.t-cert footer{letter-spacing:0;color:var(--fg-3);border:0;margin-top:.5rem;padding:0;font-size:.78rem;display:block}.t-log{margin-top:2.5rem}.t-log h3{font-family:var(--display);font-size:1rem;font-weight:500}.t-logform{flex-wrap:wrap;gap:.5rem;margin:.8rem 0;display:flex}.t-logform input[name=note]{flex:1;min-width:12rem}.t-logform button{font:inherit;letter-spacing:.1em;text-transform:uppercase;background:var(--green);color:var(--bg);cursor:pointer;border:0;padding:.35rem .9rem;font-size:.75rem}.t-log ol{color:var(--fg-2);padding:0;font-size:.85rem;list-style:none}.t-log li{border-bottom:1px solid var(--rule);padding:.3rem 0}.t-log .d{color:var(--amber);margin-right:.6rem}@media (width<=720px){.t-cert header{grid-template-columns:1fr;gap:.2rem}}.t-courses{margin-top:2.5rem}.t-courses h3{font-family:var(--display);font-size:1rem;font-weight:500}.t-courses h3 .muted{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);margin-left:.8rem;font-size:.72rem}.t-course{border-bottom:1px solid var(--rule);border-left:3px solid var(--fg-3);grid-template-columns:minmax(0,1fr) auto;gap:.4rem 1.2rem;padding:.8rem 0 .8rem .9rem;display:grid}.t-course.s-in-progress{border-left-color:var(--green-dim)}.t-course.s-done{border-left-color:var(--green)}.t-cmain{flex-direction:column;gap:.15rem;display:flex}.t-prov{letter-spacing:.12em;text-transform:uppercase;color:var(--amber);font-size:.68rem}.t-cmain a{color:var(--fg);border:0;font-size:.92rem}.t-cmain a:hover{color:var(--green)}.t-fits{color:var(--fg-3);font-size:.8rem}.t-cctl{align-items:center;gap:.6rem;font-size:.75rem;display:flex}.t-cctl input[type=range]{accent-color:var(--green);width:7rem;padding:0}.t-cnotes{box-sizing:border-box;grid-column:1/-1;width:100%}@media (width<=720px){.t-course{grid-template-columns:1fr}.t-cctl{flex-wrap:wrap}}.cv{max-width:54rem;padding:3.5rem 0 5rem}.cv-head .label{margin-bottom:.8rem;display:block}.cv-head h1{font-family:var(--display);text-shadow:0 0 24px #5cff8c2e;margin:0 0 .6rem;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:500}.cv-body>p:first-child{letter-spacing:.04em;color:var(--fg-3);margin-bottom:1.6rem;font-size:.85rem}.cv-body>p:first-child a{color:var(--fg-2);border-bottom-color:var(--rule)}.cv-body>p{color:var(--fg-2);max-width:var(--measure)}.cv-body h2{font-family:var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--amber);border-bottom:1px solid var(--rule);margin:2.6rem 0 1rem;padding-bottom:.4rem;font-size:.9rem;font-weight:500}.cv-body h3{font-family:var(--display);color:var(--fg);flex-wrap:nowrap;justify-content:space-between;align-items:baseline;gap:1.5rem;margin:1.6rem 0 .5rem;font-size:.98rem;font-weight:500;display:flex}.cv-body h3 .r{flex:auto;min-width:0}.cv-body h3 .d{font-family:var(--mono);letter-spacing:.06em;color:var(--fg-3);white-space:nowrap;flex:none;font-size:.78rem}.cv-body ul{margin:0;padding-left:1.2em}.cv-body li{color:var(--fg-2);margin:.3rem 0;font-size:.92rem;line-height:1.6}.cv-body li::marker{color:var(--green-dim)}.cv-body li strong{color:var(--fg);font-weight:500}@media (width<=720px){.cv-body h3{flex-flow:column wrap;gap:.2rem}}.cv-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 2rem;display:flex}.cv-head .label{flex-basis:100%}.cv-head h1{margin-bottom:0}.cv-dl{border:0;text-decoration:none}.cv-body{margin-top:1.2rem}.cv-body h4{font-family:var(--mono);color:var(--fg-2);justify-content:space-between;align-items:baseline;gap:1.5rem;margin:1.1rem 0 .4rem;font-size:.86rem;font-weight:500;display:flex}.cv-body h4 .r{flex:auto;min-width:0}.cv-body h4 .d{letter-spacing:.06em;color:var(--fg-3);white-space:nowrap;flex:none;font-size:.74rem}.cv-body h4:before{content:"↳ ";color:var(--green-dim)}@media (width<=720px){.cv-body h4{flex-direction:column;gap:.15rem}}.about-cv{border:0;margin-top:1.4rem;text-decoration:none}.chapter .years .org-link{color:var(--fg-2);border-bottom:1px solid var(--rule)}.chapter .years .org-link:hover{color:var(--green);border-bottom-color:var(--green)}.react{border-top:1px solid var(--rule);margin-top:3rem;padding-top:1.4rem}.react-q{letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin-bottom:.8rem;font-size:.72rem;display:block}.react-q:before{content:"$ ";color:var(--green-dim)}.react-row{flex-wrap:wrap;gap:.7rem;display:flex}.react-btn{font:inherit;color:var(--fg-2);border:1px solid var(--rule);cursor:pointer;background:#0a120d99;border-radius:2px;align-items:center;gap:.35em;padding:.45em .95em;font-size:.88rem;transition:border-color .2s,color .2s,box-shadow .3s;display:inline-flex}.react-btn .p{color:var(--green-dim)}.react-btn .c{color:var(--amber)}.react-btn .ok{margin:0 0 0 .2em;display:none}.react-btn:hover{border-color:var(--green-dim);color:var(--fg)}.react-btn.on{border-color:var(--green);color:var(--green);cursor:default}.react-btn.on .p{color:var(--green)}.react-btn.on .ok{display:inline-block}.react-btn.pulse{box-shadow:0 0 0 1px var(--green), 0 0 18px #5cff8c73}.react-links{flex-wrap:wrap;gap:1.4rem;margin-top:1.1rem;font-size:.8rem;display:flex}.react-links a{color:var(--fg-2);border-bottom:1px solid var(--rule)}.react-links a:before{content:"→ ";color:var(--green-dim)}.react-links a:hover{color:var(--green)}@media (prefers-reduced-motion:reduce){.react-btn{transition:none}}
