h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.015em}h1,h2,h3,h4{font-weight:700}h1{letter-spacing:-.025em}.prose{font-family:var(--font-sans);font-size:1.125rem;line-height:1.75}.prose h2,.prose h3{font-family:var(--font-display)}code,kbd,pre{font-family:var(--font-mono)}html.theme-switching,html.theme-switching *{transition:background-color .3s ease,color .3s ease,border-color .3s ease,fill .3s ease!important}.logo{display:inline-flex;align-items:center;gap:.6rem}.logo__mark{width:34px;height:34px;flex:none;filter:drop-shadow(0 6px 14px rgb(59 92 255/.35));transition:transform .6s var(--ease)}.brand:hover .logo__mark{transform:rotate(-8deg) scale(1.06)}.logo__word{font-family:var(--font-display);font-size:1.28rem;letter-spacing:-.03em;line-height:1}.logo__a{font-weight:700}.logo__b{font-weight:500;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.header-actions{display:flex;align-items:center;gap:var(--s-2)}.header-cta{display:none!important}@media (min-width:60rem){.header-cta{display:inline-flex!important}}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}.icon-btn:hover{border-color:var(--line-strong);transform:translateY(-1px)}.icon-btn svg{width:20px;height:20px}.theme-toggle .tt-moon,:root[data-theme=dark] .theme-toggle .tt-sun{display:none}:root[data-theme=dark] .theme-toggle .tt-moon{display:inline}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .tt-sun{display:none}:root:not([data-theme=light]) .theme-toggle .tt-moon{display:inline}}.search-trigger{display:inline-flex;align-items:center;gap:var(--s-2);height:40px;padding:0 .7rem;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font:inherit;font-size:.9rem;cursor:pointer}.search-trigger svg{width:18px;height:18px}.search-trigger:hover{border-color:var(--line-strong);color:var(--ink)}.search-trigger__kbd,.search-trigger__text{display:none}@media (min-width:72rem){.search-trigger{min-width:11rem}.search-trigger__text{display:inline;margin-right:auto}.search-trigger__kbd{display:inline}}kbd{font-size:.75em;padding:.1em .45em}.nav-mobile summary{width:40px;height:40px;min-height:40px;padding:0;justify-content:center;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.nav-mobile[open] summary{background:var(--ink);border-color:var(--ink)}.burger{display:grid;grid-gap:5px;gap:5px}.burger i{display:block;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .3s var(--ease)}.nav-mobile[open] .burger i:first-child{transform:translateY(3.5px) rotate(45deg)}.nav-mobile[open] .burger i:last-child{transform:translateY(-3.5px) rotate(-45deg)}.nav-mobile__panel{animation:pop-in .22s var(--ease)}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}}.palette{width:min(42rem,calc(100vw - 2rem));max-height:min(34rem,80vh);margin:10vh auto auto;padding:0;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);box-shadow:0 40px 80px -30px rgb(0 0 0/.5);overflow:hidden}.palette[open]{animation:pop-in .18s var(--ease)}.palette::-webkit-backdrop{background:rgb(8 14 12/.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.palette::backdrop{background:rgb(8 14 12/.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.palette__box{display:grid;grid-template-rows:auto 1fr auto;max-height:inherit}.palette__input{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line)}.palette__input>svg{width:20px;height:20px;color:var(--muted);flex:none}.palette__input input{flex:1 1;border:0;background:transparent;font-size:1.1rem;padding:var(--s-2) 0;outline:none}.palette__list{list-style:none;margin:0;padding:var(--s-2);overflow-y:auto}.palette__item{display:flex;align-items:center;gap:var(--s-3);padding:.6rem .7rem;border-radius:10px;cursor:pointer}.palette__item.is-active{background:var(--surface-2)}.palette__icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--grad);color:#fff;flex:none}.palette__icon svg{width:17px;height:17px}.palette__icon--article{background:linear-gradient(135deg,#6a33cc,#2747d8)}.palette__icon--project{background:linear-gradient(135deg,#b02a69,#b5600f)}.palette__icon--page{background:var(--ink);color:var(--bg)}.palette__title{flex:1 1;font-weight:500}.palette__type{font-size:.78rem;color:var(--muted)}.palette__empty{padding:var(--s-5);color:var(--muted)}.palette__hint{padding:var(--s-2) var(--s-4);border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}.to-top{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:40;display:grid;place-items:center;width:46px;height:46px;border:0;border-radius:14px;background:var(--grad);color:#fff;box-shadow:0 14px 30px -12px rgb(35 67 199/.6);cursor:pointer;opacity:0;transform:translateY(14px) scale(.9);pointer-events:none;transition:opacity .3s var(--ease),transform .3s var(--ease)}.to-top.is-visible{opacity:1;transform:none;pointer-events:auto}.to-top svg{width:20px;height:20px}.topicbar{position:-webkit-sticky;position:sticky;top:4rem;z-index:30;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topicbar__inner{display:flex;gap:var(--s-1);overflow-x:auto;scrollbar-width:none;padding-block:.45rem;-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent)}.topicbar__inner::-webkit-scrollbar{display:none}.topicbar__link{flex:none;display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .8rem;border-radius:999px;color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:500;white-space:nowrap}.topicbar__link:hover{color:var(--ink);background:var(--surface-2)}.topicbar__link[aria-current=page]{color:#fff;background:var(--grad)}.topicbar__link--alt{margin-left:auto;border:1px dashed var(--line-strong)}.topicbar__count{font-size:.72rem;opacity:.75}.path-index{display:grid;grid-gap:var(--s-4);gap:var(--s-4)}@media (min-width:48rem){.path-index{grid-template-columns:repeat(2,1fr)}}@media (min-width:72rem){.path-index{grid-template-columns:repeat(3,1fr)}}.path-card{border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface)}.path-card header{display:grid;grid-gap:var(--s-2);gap:var(--s-2);margin-bottom:var(--s-4)}.path-card__n{font-family:var(--font-mono);font-size:.8rem;color:var(--accent)}.path-card h3{font-size:var(--step-2)}.path-card h3 a{color:var(--ink);text-decoration:none}.path-card h3 a:hover{color:var(--accent)}.path-card ol{margin:0;padding-left:1.3rem;display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.path-card li::marker{color:var(--accent);font-weight:600}.lesson-tag{display:inline-block;padding:.25rem .75rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-size:.85rem}.lesson-tag,.path-nav__title{margin-bottom:var(--s-3);font-weight:600}.path-nav__title{display:flex;align-items:center;gap:var(--s-2)}.path-nav ol{list-style:none;margin:0;padding:0;display:grid;grid-gap:2px;gap:2px;border-left:2px solid var(--line)}.path-nav a{display:flex;gap:var(--s-3);padding:.4rem .6rem;margin-left:-2px;border-left:2px solid transparent;color:var(--muted);text-decoration:none;font-size:.9rem;line-height:1.4}.path-nav a:hover{color:var(--ink)}.path-nav a[aria-current=page]{color:var(--ink);font-weight:600;border-left-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.path-nav__n{flex:none;width:1.3rem;color:var(--accent);font-family:var(--font-mono)}.toc a[aria-current=location]{color:var(--accent);font-weight:600}.prevnext{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;grid-gap:var(--s-3);gap:var(--s-3);max-width:var(--measure);margin-block:var(--s-6)}.prevnext__link{display:grid;grid-gap:2px;gap:2px;padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color .2s var(--ease),transform .2s var(--ease)}.prevnext__link:hover{border-color:var(--accent);transform:translateY(-2px)}.prevnext__link--next{text-align:right}.prevnext__dir{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--accent)}.prevnext__link--next .prevnext__dir{justify-content:flex-end}.prevnext__title{font-size:.9rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.prevnext__pos{align-self:center;font-family:var(--font-mono);font-size:.8rem;color:var(--muted)}@media (max-width:40rem){.prevnext{grid-template-columns:1fr 1fr}.prevnext__pos{display:none}}.article-byline{display:flex;align-items:center;gap:var(--s-3);margin-top:var(--s-5)}.article-byline .post-meta{margin:0}.avatar{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:50%;background:var(--grad);color:#fff;font-weight:700;font-size:.85rem;letter-spacing:.02em}.avatar--lg{width:64px;height:64px;font-size:1.2rem}.author-box{grid-template-columns:auto 1fr;align-items:start;gap:var(--s-5)}.article-head .share{margin-top:var(--s-4)}.engage{display:grid;grid-gap:var(--s-4);gap:var(--s-4);max-width:var(--measure);margin-top:var(--s-7);padding:var(--s-5);border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface)}.reactions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.reactions__prompt{font-weight:600;margin-right:var(--s-2)}.react-btn{display:inline-flex;align-items:center;gap:.45rem;height:40px;padding:0 .9rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--bg);color:var(--ink);font:inherit;cursor:pointer;transition:transform .15s var(--ease),background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}.react-btn svg{width:18px;height:18px}.react-btn:hover{border-color:var(--accent)}.react-btn:active{transform:scale(.94)}.react-btn.is-on{background:var(--grad);border-color:transparent;color:#fff}.react-btn--down.is-on{background:var(--ink);color:var(--bg)}.react-btn.is-on svg{animation:react-pop .35s var(--ease)}@keyframes react-pop{50%{transform:scale(1.35) rotate(-8deg)}}.react-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.reactions__thanks{font-size:.85rem;color:var(--muted)}.share{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.share__label{font-weight:600;margin-right:var(--s-2)}.share-btn{display:inline-flex;align-items:center;gap:.4rem;height:38px;padding:0 .8rem;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--ink);font:inherit;font-size:.88rem;text-decoration:none;cursor:pointer;transition:border-color .2s var(--ease),transform .2s var(--ease),color .2s var(--ease)}.share-btn svg{width:17px;height:17px}.share-btn--icon{width:38px;padding:0;justify-content:center}.share-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.share--compact .share-btn{height:34px;background:transparent}.share--compact .share-btn--icon{width:34px}.quiz{max-width:var(--measure);margin-top:var(--s-8);padding:var(--s-6);border-radius:var(--radius-l);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 6%,var(--surface)),var(--surface))}.quiz__head{display:flex;gap:var(--s-4);align-items:center;margin-bottom:var(--s-5)}.quiz__head h2{font-size:var(--step-2)}.quiz__badge{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--grad);color:#fff;flex:none}.quiz__badge svg{width:24px;height:24px}.quiz__list{margin:0;padding:0;list-style:none;display:grid;grid-gap:var(--s-5);gap:var(--s-5);counter-reset:q}.quiz__q fieldset{border:0;margin:0;padding:0}.quiz__q legend{font-weight:600;margin-bottom:var(--s-3)}.quiz__q legend:before{counter-increment:q;content:counter(q) ". ";color:var(--accent)}.quiz__options{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.quiz__opt{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:.7rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease),transform .15s var(--ease)}.quiz__opt:hover:not(:disabled){border-color:var(--accent);transform:translateX(2px)}.quiz__opt:disabled{cursor:default}.quiz__letter{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--surface-2);font-size:.8rem;font-weight:700;flex:none}.quiz__opt.is-correct{border-color:var(--success);background:color-mix(in srgb,var(--success) 12%,var(--bg))}.quiz__opt.is-correct .quiz__letter{background:var(--success);color:#fff}.quiz__opt.is-wrong{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--bg))}.quiz__opt.is-dim{opacity:.6}.quiz__feedback{margin-top:var(--s-3);font-size:.95rem;padding:var(--s-3) var(--s-4);border-radius:10px;background:var(--surface-2)}.quiz__feedback.ok strong{color:var(--success)}.quiz__feedback.no strong{color:var(--danger)}.quiz>.btn{margin-top:var(--s-5)}.code-block{border-radius:14px}.code-actions{position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:6px}.code-actions .copy-btn{position:static}.code-lang{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:rgb(255 255 255/.55);padding-inline:4px}.try-btn{display:inline-flex;align-items:center;min-height:30px;padding:0 .75rem;border-radius:999px;background:linear-gradient(120deg,#2fbf71,#14b8a6);color:#062016;font-family:var(--font-sans);font-size:.8rem;font-weight:700;text-decoration:none}.try-btn:hover{color:#062016;filter:brightness(1.08)}.prose pre{padding-top:2.75rem}.tool-cover{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;isolation:isolate}.tool-cover svg{display:block;width:100%;height:100%;transition:transform .8s var(--ease)}.tool-cover__icon{position:absolute;left:9%;top:50%;translate:0 -50%;display:grid;place-items:center;width:27%;aspect-ratio:1;border-radius:26%;background:rgb(255 255 255/.14);border:1px solid rgb(255 255 255/.28);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;box-shadow:0 20px 40px -20px rgb(0 0 0/.6)}.tool-cover__icon svg{width:48%;height:48%}.tool-card--cover{grid-template-columns:1fr;padding:var(--s-3);gap:var(--s-3)}.tool-card--cover:hover .tool-cover svg{transform:scale(1.05)}.tool-card__body{display:grid;grid-gap:var(--s-1);gap:var(--s-1);padding:0 var(--s-2) var(--s-2)}.tool-card__cat{font-size:.75rem;font-weight:600;color:var(--accent)}.tool-hero{display:grid;grid-gap:var(--s-6);gap:var(--s-6);align-items:center}.tool-hero>.tool-cover{max-width:30rem;box-shadow:var(--shadow-2)}@media (min-width:60rem){.tool-hero{grid-template-columns:1.3fr 1fr}}.seg button.is-on,.seg button[aria-selected=true]{background:var(--ink);color:var(--bg)}.check{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem}.pg-grid{display:grid;grid-gap:var(--s-3);gap:var(--s-3)}@media (min-width:60rem){.pg-grid--split{grid-template-columns:1fr 1fr}}.pg-editor{position:relative;display:grid;grid-template-columns:auto 1fr;min-height:26rem;border-radius:14px;overflow:hidden;background:var(--code-bg);color:var(--code-ink)}.pg-gutter{padding:14px 8px 14px 12px;color:rgb(255 255 255/.3);text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;display:flex;flex-direction:column}.pg-editor textarea,.pg-gutter{font:.85rem/1.6 var(--font-mono)}.pg-editor textarea{width:100%;min-height:26rem;height:100%;resize:vertical;border:0;outline:none;padding:14px;background:transparent;color:inherit;-moz-tab-size:2;tab-size:2;white-space:pre;caret-color:#c6f36b}.pg-editor:focus-within{box-shadow:inset 0 0 0 2px var(--accent)}.pg-preview{display:grid;grid-template-rows:auto 1fr auto;min-height:26rem;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.pg-preview__bar{display:flex;align-items:center;gap:var(--s-3);padding:8px 12px;background:var(--surface-2);color:var(--muted);font-size:.8rem;font-weight:600}.browser-dots{display:inline-flex;gap:5px}.browser-dots i{width:9px;height:9px;border-radius:50%;background:#ff6b6b}.browser-dots i:nth-child(2){background:#ffd166}.browser-dots i:nth-child(3){background:#06d6a0}.pg-preview iframe{width:100%;height:100%;min-height:18rem;border:0;background:#fff}.pg-console{max-height:9rem;overflow-y:auto;padding:8px 12px;background:var(--code-bg);color:var(--code-ink);font:.8rem/1.5 var(--font-mono)}.pg-log--warn{color:#ffd166}.pg-log--error{color:#ff8f8f}.dropzone{display:grid;place-items:center;grid-gap:var(--s-2);gap:var(--s-2);padding:var(--s-7) var(--s-5);text-align:center;border:2px dashed var(--line-strong);border-radius:var(--radius-l);background:var(--surface-2);transition:border-color .2s var(--ease),background .2s var(--ease)}.dropzone.is-drag{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.pv-grid{display:grid;grid-gap:var(--s-4);gap:var(--s-4);margin-top:var(--s-4)}@media (min-width:60rem){.pv-grid{grid-template-columns:18rem 1fr}}.pv-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px;align-content:start;max-height:34rem;overflow-y:auto}.pv-list li{display:flex;gap:6px}.pv-item{flex:1 1;display:grid;grid-template-columns:auto 1fr;grid-gap:2px var(--s-2);gap:2px var(--s-2);padding:.55rem .7rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-size:.85rem;text-align:left;cursor:pointer;min-width:0}.pv-item.is-on{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.pv-item .muted{grid-column:2;font-size:.75rem}.pv-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-kind{grid-row:span 2;align-self:center;padding:2px 7px;border-radius:6px;font-size:.68rem;font-weight:700;text-transform:uppercase;background:var(--surface-2)}.pv-kind--image{background:#dbeafe;color:#1e3a8a}.pv-kind--video{background:#fce7f3;color:#831843}.pv-kind--audio{background:#ede9fe;color:#4c1d95}.pv-kind--pdf{background:#fee2e2;color:#7f1d1d}.pv-kind--text{background:#dcfce7;color:#14532d}.pv-stage{display:grid;grid-gap:var(--s-4);gap:var(--s-4);min-width:0}.pv-view{display:grid;place-items:center;min-height:22rem;max-height:70vh;border-radius:14px;overflow:auto;background:repeating-conic-gradient(var(--surface-2) 0 25%,var(--surface) 0 50%) 0 0 /20px 20px;border:1px solid var(--line)}.pv-view img,.pv-view video{max-width:100%;max-height:68vh;object-fit:contain}.pv-view audio{width:min(32rem,90%)}.pv-view iframe{width:100%;height:70vh;border:0;background:#fff}.pv-text{width:100%;align-self:stretch;margin:0;padding:var(--s-4);background:var(--code-bg);color:var(--code-ink);font:.8rem/1.55 var(--font-mono);white-space:pre-wrap;word-break:break-word}.pv-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));grid-gap:var(--s-2) var(--s-4);gap:var(--s-2) var(--s-4);margin:0}.pv-meta dt{font-size:.75rem;color:var(--muted)}.pv-meta dd{margin:0;font-weight:500;overflow-wrap:anywhere}.pv-hash{font-size:.78rem}.pv-hash,.resume-tagline{font-family:var(--font-mono)}.resume-tagline{margin-top:var(--s-2);font-size:.85rem;color:var(--accent)}.resume-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.btn-icon{width:1.05em;height:1.05em}.resume-projects{list-style:none;margin:0 0 var(--s-3);padding:0;display:grid;grid-gap:var(--s-2);gap:var(--s-2)}@media (min-width:48rem){.resume-projects{grid-template-columns:1fr 1fr}}.resume-projects li{display:grid;padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:12px;background:var(--surface)}.resume-projects a{font-weight:600;text-decoration:none}@media print{.engage,.palette,.prevnext,.share,.to-top,.topicbar{display:none!important}.resume-projects li{border:0;padding:0}}@media (prefers-reduced-motion:reduce){.nav-mobile__panel,.palette[open],.react-btn.is-on svg{animation:none}}@media (min-width:72rem){.tool-grid--4{grid-template-columns:repeat(4,1fr)}.article-layout{--measure:44rem;grid-template-columns:minmax(0,44rem) 20rem;gap:var(--s-8,4rem)}.article-layout .prose,.article-layout>div{max-width:44rem}.article-aside .toc{position:static;height:100%;align-content:start}.article-aside .toc>nav[aria-label="Table of contents"]{order:3;position:-webkit-sticky;position:sticky;top:8rem;max-height:calc(100vh - 9rem);overflow-y:auto;scrollbar-width:thin}}.prose a.btn,.site-footer a.btn{text-decoration:none}.prose a.btn--primary,.site-footer a.btn--primary{color:var(--accent-ink)}.article-layout>*{min-width:0}@media (max-width:71.99rem){.article-layout{grid-template-columns:minmax(0,1fr)}.article-aside{order:2}}.search-form input{min-width:0}.blog-toolbar{grid-template-columns:minmax(0,1fr)}@media (min-width:60rem){.blog-toolbar{grid-template-columns:minmax(0,1fr) auto}}.h-sm{font-size:var(--step-1,1.25rem);margin:var(--s-5,1.5rem) 0 var(--s-3,.75rem)}.section--tight{padding-block:var(--s-6) 0}.topic-intro{display:grid;grid-gap:var(--s-6);gap:var(--s-6)}.topic-intro h2{font-size:var(--step-2,1.6rem);margin:0 0 var(--s-4)}.topic-intro p{max-width:var(--measure);margin:0 0 var(--s-4)}@media (min-width:60rem){.topic-intro{grid-template-columns:1.3fr 1fr;gap:var(--s-8)}}.skill-dl{display:grid;grid-gap:var(--s-3);gap:var(--s-3);margin:0 0 var(--s-5)}.skill-dl>div{display:grid;grid-gap:var(--s-1);gap:var(--s-1)}.skill-dl dt{font-weight:600}.skill-dl dd{margin:0;color:var(--muted)}@media (min-width:40rem){.skill-dl>div{grid-template-columns:11rem 1fr;gap:var(--s-4)}}@media (pointer:coarse){.icon-btn,.nav-mobile>summary,.search-trigger,.share-btn--icon,.to-top{min-width:48px;min-height:48px}.btn--sm,.eyebrow-link,.faq summary,.react-btn,.seg button,.share-btn,.tag,.topicbar__link{min-height:44px}.eyebrow-link,.tag,.topicbar__link{display:inline-flex;align-items:center}.share{gap:.5rem}.to-top{width:48px;height:48px}.brand{min-height:44px}.topicbar__link{min-width:44px;justify-content:center}}.tool-note{margin:0 0 var(--s-4);padding:var(--s-3) var(--s-4);border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent);border-radius:0 var(--radius-s,8px) var(--radius-s,8px) 0;font-size:var(--step--1)}.hero2{min-height:calc(100svh - 4.1rem);display:grid;align-items:center;padding-block:clamp(2rem,4vh,4rem)}.hero2 h1{margin-top:clamp(.75rem,2vh,1.5rem);font-size:clamp(2.5rem,min(1.4rem + 3.6vw,8.2vh),5rem);line-height:.98}.hero2 .rotator{margin-top:clamp(.75rem,2vh,1.25rem)}.hero2__lede{margin-top:clamp(.5rem,1.4vh,1rem);font-size:clamp(1rem,.9rem + .35vw,1.2rem);max-width:38rem}.hero2 .btn-row{margin-top:clamp(1rem,3vh,2rem)}.hero2 .stats{margin-top:clamp(1.25rem,3.5vh,2.5rem);padding-top:clamp(.75rem,2vh,1.25rem);max-width:40rem}.hero2 .stat__value{font-size:clamp(1.7rem,min(1.3rem + 1.2vw,4.6vh),2.4rem)}.hero2 .stat__label{margin-top:.35rem}@media (min-width:64rem){.hero2 .schematic{max-height:calc(100svh - 12rem);width:auto}}.stat__value{margin:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stack-md{display:grid;grid-gap:var(--s-5);gap:var(--s-5)}.chip-btn{display:inline-flex;align-items:center;gap:.4rem;min-height:36px;padding:.3rem .8rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink);font:500 .875rem/1 var(--font-sans);cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}.chip-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.chip-btn[aria-pressed=true]{background:var(--grad);border-color:transparent;color:#fff}.chip-btn:disabled{opacity:.45;cursor:not-allowed}.chip-btn--icon{min-width:36px;justify-content:center;padding-inline:.55rem}.chip-btn .inline-icon{width:1em;height:1em}.progress-bar{display:block;height:6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));overflow:hidden;position:relative}.progress-bar:after{content:"";position:absolute;inset:0 auto 0 0;width:var(--progress,0);border-radius:inherit;background:var(--grad);transition:width .6s var(--ease)}.path-card{display:flex;flex-direction:column;padding:var(--s-6)}.path-card header{margin-bottom:var(--s-5)}.path-card__top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.path-card__n{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:10px;background:color-mix(in srgb,var(--accent) 10%,transparent);font-weight:600}.path-card__meta{font-size:.8rem;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.path-card[data-started=true] .path-card__meta{color:var(--accent);font-weight:600}.path-card .progress-bar{margin-top:var(--s-2)}.path-card ol.lesson-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:2px;gap:2px}.lesson-list a{display:grid;grid-template-columns:auto 1fr auto;align-items:start;grid-gap:var(--s-3);gap:var(--s-3);padding:.55rem .6rem;margin-inline:-.6rem;border-radius:var(--radius-s);color:var(--ink);text-decoration:none;line-height:1.4;font-size:.95rem;transition:background .2s var(--ease)}.lesson-list a:hover{background:var(--surface-2)}.lesson-list a:hover .lesson-list__title{color:var(--accent)}.lesson-list__n,.path-nav__n{position:relative;display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent);font:600 .75rem/1 var(--font-mono);flex:none}.lesson-list__check,.path-nav__check{display:none;width:.95rem;height:.95rem;stroke-width:2.6}[data-done=true] .lesson-list__n,[data-done=true] .path-nav__n{background:var(--grad);border-color:transparent;color:#fff}[data-done=true] .lesson-list__num,[data-done=true] .path-nav__num{display:none}[data-done=true] .lesson-list__check,[data-done=true] .path-nav__check{display:block}[data-done=true] .lesson-list__title{color:var(--muted)}.lesson-list__time{font-size:.8rem;color:var(--muted);white-space:nowrap;padding-top:.15rem}.path-card__foot{margin-top:auto;padding-top:var(--s-5);display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);font-size:.85rem}.path-card__foot .inline-icon{width:1em;height:1em;vertical-align:-.12em}.path-card__cta{display:inline-flex;align-items:center;gap:.3rem;font-weight:600;text-decoration:none;color:var(--accent)}.path-card__cta:hover{text-decoration:underline}.path-card[data-started=true] .path-card__cta .cta-start,.path-card__cta .cta-continue{display:none}.path-card[data-started=true] .path-card__cta .cta-continue{display:inline}.path-nav__title{flex-wrap:wrap}.path-nav__count{margin-left:auto;font-size:.75rem;font-weight:500;color:var(--muted)}.path-nav .progress-bar{height:4px;margin-bottom:var(--s-3)}.path-nav .path-nav__n{width:1.4rem;height:1.4rem;font-size:.7rem}.continue-card{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:var(--s-4) var(--s-5);gap:var(--s-4) var(--s-5);margin-bottom:var(--s-6);padding:var(--s-5) var(--s-6);border-radius:var(--radius-l);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));background:radial-gradient(600px circle at 0 0,color-mix(in srgb,var(--accent) 10%,transparent),transparent 60%),var(--surface);animation:rise-in .5s var(--ease) both}.continue-card .btn{grid-column:1/-1;justify-self:start}@media (min-width:48rem){.continue-card{grid-template-columns:auto 1fr auto}.continue-card .btn{grid-column:auto}}.continue-card__ring{--size:4.25rem;width:var(--size);height:var(--size);border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) var(--progress,0),color-mix(in srgb,var(--accent) 12%,var(--surface-2)) 0)}.continue-card__ring span{display:grid;place-items:center;width:calc(var(--size) - 12px);height:calc(var(--size) - 12px);border-radius:50%;background:var(--surface);font:700 .9rem/1 var(--font-display);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.continue-card__eyebrow{font-size:.8rem;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.continue-card__title{font:700 var(--step-1) /1.25 var(--font-display);margin:.2rem 0}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}}.article-tools{justify-content:space-between;gap:var(--s-3) var(--s-5);margin-top:var(--s-4)}.article-tools,.reader-tools{display:flex;flex-wrap:wrap;align-items:center}.reader-tools{gap:var(--s-2)}.reader-tools__time{display:inline-flex;align-items:center;gap:.35rem;margin-right:var(--s-2);font-size:.875rem;color:var(--muted)}.reader-tools__time .inline-icon{width:1em;height:1em}.reader-tools__listen,.reader-tools__size{display:inline-flex;gap:var(--s-1)}.reader-tools__size .chip-btn{font-family:var(--font-display);font-weight:700}.takeaways{margin:0 0 var(--s-7);padding:var(--s-5) var(--s-6);border-radius:var(--radius-l);border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent 55%),var(--surface);max-width:var(--measure)}.takeaways__title{display:flex;align-items:center;gap:.5rem;margin:0 0 var(--s-3);font:700 var(--step-0) /1.3 var(--font-display);color:var(--accent)}.takeaways ul{margin:0;padding:0;list-style:none;display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.takeaways li{position:relative;padding-left:1.6rem;line-height:1.55}.takeaways li:before{content:"";position:absolute;left:0;top:.45em;width:.95rem;height:.95rem;border-radius:50%;background:var(--grad);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a11 11 0 1 0 0 22 11 11 0 0 0 0-22zm-1.5 15.5-4.2-4.2 1.4-1.4 2.8 2.8 6-6 1.4 1.4z'/%3E%3C/svg%3E") center /contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a11 11 0 1 0 0 22 11 11 0 0 0 0-22zm-1.5 15.5-4.2-4.2 1.4-1.4 2.8 2.8 6-6 1.4 1.4z'/%3E%3C/svg%3E") center /contain no-repeat}.prose h2,.prose h3{position:relative;scroll-margin-top:8rem}.h-anchor{margin-left:.4em;padding:0 .2em;border-radius:6px;color:var(--accent);text-decoration:none;font-weight:500;opacity:0;transition:opacity .2s var(--ease),background .2s var(--ease)}.h-anchor:focus-visible,.prose h2:hover .h-anchor,.prose h3:hover .h-anchor{opacity:1}.h-anchor:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}@media (pointer:coarse){.h-anchor{opacity:.45}}.complete-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4);margin-top:var(--s-7);padding:var(--s-5) var(--s-6);border-radius:var(--radius-l);border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));background:var(--surface);max-width:var(--measure);transition:border-color .3s var(--ease),background .3s var(--ease)}.complete-card.is-done{border-style:solid;border-color:color-mix(in srgb,var(--success) 55%,var(--line));background:color-mix(in srgb,var(--success) 7%,var(--surface))}.complete-card__title{margin:0 0 .2rem;font:700 var(--step-1) /1.3 var(--font-display)}.complete-card .muted{margin:0;font-size:.9rem}.complete-card__actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.complete-card.is-done .btn[aria-pressed=true]{color:var(--success);border-color:color-mix(in srgb,var(--success) 50%,var(--line))}.toaster{position:fixed;left:50%;bottom:max(1.25rem,env(safe-area-inset-bottom));z-index:90;transform:translateX(-50%);pointer-events:none}.toast{margin:0;padding:.7rem 1.1rem;border-radius:999px;background:var(--ink);color:var(--bg);font-size:.9rem;font-weight:500;box-shadow:var(--shadow-2);white-space:nowrap;animation:toast-in 2.6s var(--ease) both}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.96)}10%,85%{opacity:1;transform:none}to{opacity:0;transform:translateY(6px)}}.shortcuts{width:min(32rem,calc(100vw - 2rem));padding:0;border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-2)}.shortcuts::-webkit-backdrop{background:rgb(10 16 14/.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.shortcuts::backdrop{background:rgb(10 16 14/.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.shortcuts[open]{animation:rise-in .25s var(--ease) both}.shortcuts__panel{padding:var(--s-5) var(--s-6) var(--s-6)}.shortcuts__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-4)}.shortcuts__head h2{display:flex;align-items:center;gap:.5rem;font-size:var(--step-1);margin:0}.shortcuts dl{display:grid;grid-gap:2px;gap:2px;margin:0}.shortcuts dl>div{display:grid;grid-template-columns:9rem 1fr;align-items:center;grid-gap:var(--s-3);gap:var(--s-3);padding:.45rem 0;border-top:1px solid var(--line)}.shortcuts dd{margin:0;color:var(--muted);font-size:.9rem}.shortcuts__then{margin:0 .3rem;font-size:.75rem;color:var(--muted)}kbd{display:inline-block;min-width:1.6rem;padding:.15rem .4rem;border:solid var(--line-strong);border-width:1px 1px 2px;border-radius:6px;background:var(--surface-2);font:600 .75rem/1.2 var(--font-mono);text-align:center;color:var(--ink)}.site-footer__hint kbd{margin:0 .15rem}.tool-hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-4);margin-top:var(--s-3)}.tool-hero__meta .privacy-note{margin:0}.save-btn{display:inline-flex;align-items:center;gap:.4rem;min-height:36px;padding:.3rem .9rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink);font:600 .875rem/1 var(--font-sans);cursor:pointer;transition:all .2s var(--ease)}.save-btn:hover{border-color:#d39b16;color:#a06f00}.save-btn.is-saved{border-color:transparent;background:linear-gradient(135deg,#ffd56b,#f4a623);color:#3d2800}.save-btn.is-saved svg{fill:currentColor}.tool-filter{display:grid;grid-gap:var(--s-3);gap:var(--s-3)}@media (min-width:56rem){.tool-filter{grid-template-columns:minmax(18rem,26rem) 1fr;align-items:center}.tool-filter__empty{grid-column:1/-1}}.tool-filter__search{display:flex;align-items:center;gap:.6rem;min-height:48px;padding:0 1rem;border:1.5px solid var(--line-strong);border-radius:999px;background:var(--surface);transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.tool-filter__search:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 15%,transparent)}.tool-filter__search .inline-icon{width:1.1rem;height:1.1rem;color:var(--muted)}.tool-filter__search input{flex:1 1;min-width:0;border:0;outline:0;background:transparent;font:inherit;color:var(--ink)}.tool-filter__chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}[data-tool-group][hidden],[data-tool-q][hidden]{display:none!important}.my-tools{display:grid;grid-gap:var(--s-4);gap:var(--s-4);padding:var(--s-5);border-radius:var(--radius-l);border:1px solid var(--line);background:var(--surface);animation:rise-in .4s var(--ease) both}@media (min-width:56rem){.my-tools{grid-template-columns:1fr 1fr}}.my-tools__label{display:flex;align-items:center;gap:.4rem;margin:0 0 var(--s-2);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.my-tools__label .inline-icon{width:1em;height:1em}.my-tools__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}.my-tools__item{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .8rem .3rem .3rem;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-size:.9rem;font-weight:500;transition:border-color .2s var(--ease),transform .2s var(--ease)}.my-tools__item:hover{border-color:var(--accent);transform:translateY(-1px)}.my-tools__item .icon-box{width:1.9rem;height:1.9rem;border-radius:50%}.my-tools__item .icon-box svg{width:1rem;height:1rem}@media (pointer:coarse){.chip-btn,.save-btn{min-height:44px}.chip-btn--icon{min-width:44px}}@media print{.article-tools,.complete-card,.continue-card,.h-anchor,.toaster{display:none!important}}@media (prefers-reduced-motion:reduce){.continue-card,.my-tools,.shortcuts[open],.toast{animation:none}.progress-bar:after{transition:none}}.path-card__foot>span{display:inline-flex;align-items:center;gap:.35rem}.resume-hero{padding-block:clamp(2.5rem,2rem + 3vw,4.5rem) clamp(2rem,1.5rem + 2vw,3.5rem)}.resume-hero__grid{display:grid;grid-gap:var(--s-7);gap:var(--s-7);align-items:start}@media (min-width:64rem){.resume-hero__grid{grid-template-columns:minmax(0,1fr) 22rem}}.resume-hero h1{font-size:clamp(2.6rem,1.8rem + 3.4vw,4.6rem);margin-top:var(--s-3)}.resume-hero__headline{margin-top:var(--s-3);font-weight:500;color:var(--ink)}.resume-hero__status{display:inline-flex;align-items:center;gap:.55rem;margin-top:var(--s-4);padding:.3rem .85rem .3rem .65rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--success) 40%,var(--line));background:color-mix(in srgb,var(--success) 8%,var(--surface));font-size:.85rem;font-weight:500}.resume-hero__status .chip__dot{--glow:var(--success)}.resume-chips{list-style:none;margin:var(--s-4) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}.resume-chips li{padding:.3rem .75rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));color:var(--accent);font:600 .8rem/1.2 var(--font-sans)}.resume-hero .resume-contact{list-style:none;padding:0;margin:var(--s-5) 0 0;display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);font-size:.95rem}.resume-hero .resume-contact li{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted)}.resume-hero .resume-contact .inline-icon{width:1rem;height:1rem;color:var(--accent)}.resume-actions{margin-top:var(--s-5)}.glance{position:relative;padding:var(--s-6);border-radius:var(--radius-l);background:var(--hero-bg);color:var(--hero-ink);overflow:hidden;isolation:isolate;box-shadow:var(--shadow-2)}.glance:after{content:"";position:absolute;inset:auto -30% -40% auto;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--glow) 35%,transparent),transparent 70%);z-index:-1}.glance__title{margin:0 0 var(--s-4);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--hero-muted)}.glance__stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--s-4);gap:var(--s-4);margin:0}.glance__stats>div{display:flex;flex-direction:column-reverse;gap:.25rem}.glance__stats dt{font-size:.8rem;color:var(--hero-muted)}.glance__stats dd{margin:0;font:700 2rem/1 var(--font-display);background:linear-gradient(120deg,#fff,var(--glow));-webkit-background-clip:text;background-clip:text;color:transparent}.glance__now{display:grid;grid-gap:.2rem;gap:.2rem;margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid rgb(255 255 255/.12);font-size:.9rem;color:var(--hero-muted)}.glance__now strong{font-size:1rem}.glance__now a,.glance__now strong{color:var(--hero-ink)}.glance__label{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.resume-body{display:grid;grid-gap:clamp(2.5rem,2rem + 2vw,4rem);gap:clamp(2.5rem,2rem + 2vw,4rem);padding-block:clamp(2.5rem,2rem + 2vw,4rem) clamp(3rem,2rem + 3vw,5rem)}.resume-block>h2,.resume-split h2{display:flex;align-items:center;gap:var(--s-3);font-size:var(--step-3);margin-bottom:var(--s-5)}.resume-block>h2:after{content:"";flex:1 1;height:1px;background:var(--line)}.resume-profile{display:grid;grid-gap:var(--s-6);gap:var(--s-6)}@media (min-width:60rem){.resume-profile{grid-template-columns:1.1fr 1fr}}.resume-profile__lead{font-size:var(--step-1);line-height:1.6;color:var(--ink)}.timeline-cv{--rail:1.25rem;list-style:none;margin:0;padding:0;position:relative;display:grid;grid-gap:var(--s-6);gap:var(--s-6)}.timeline-cv:before{content:"";position:absolute;left:calc(var(--rail) / 2 - 1px);top:.6rem;bottom:.6rem;width:2px;background:linear-gradient(var(--accent),color-mix(in srgb,var(--accent) 15%,var(--line)));border-radius:2px}.timeline-cv__item{position:relative;padding-left:calc(var(--rail) + var(--s-5))}.timeline-cv__dot{position:absolute;left:0;top:.3rem;width:var(--rail);height:var(--rail);border-radius:50%;background:var(--surface);border:3px solid var(--accent)}.timeline-cv__item.is-current .timeline-cv__dot{background:var(--accent);box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 18%,transparent);animation:pulse-dot 2.4s var(--ease) infinite}@keyframes pulse-dot{50%{box-shadow:0 0 0 10px color-mix(in srgb,var(--accent) 6%,transparent)}}.timeline-cv__date{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin:0 0 var(--s-2);font:600 .85rem/1.4 var(--font-mono);color:var(--accent)}.timeline-cv__badge{padding:.1rem .55rem;border-radius:999px;background:var(--grad);color:#fff;font:600 .7rem/1.5 var(--font-sans);text-transform:uppercase;letter-spacing:.06em}.timeline-cv__card{padding:var(--s-5) var(--s-6);border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface);transition:border-color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease)}.timeline-cv__card:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));box-shadow:var(--shadow-1)}.timeline-cv__item.is-current .timeline-cv__card{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 6%,transparent),transparent 50%),var(--surface)}.timeline-cv__card h3{font-size:var(--step-1);margin:0}.timeline-cv__org{margin:.25rem 0 0;color:var(--muted);font-weight:500}.timeline-cv__org a{color:var(--ink)}.timeline-cv__summary{margin:var(--s-2) 0 0;font-size:.92rem;color:var(--muted);font-style:italic}.timeline-cv__card ul{margin:var(--s-3) 0 0;padding-left:1.15rem;display:grid;grid-gap:.35rem;gap:.35rem}.timeline-cv__card li::marker{color:var(--accent)}.timeline-cv--compact{gap:var(--s-4)}.timeline-cv--compact .timeline-cv__card{padding:var(--s-4) var(--s-5)}@media (max-width:40rem){.timeline-cv__item{padding-left:calc(var(--rail) + var(--s-3))}.timeline-cv__card{padding:var(--s-4)}}.skill-groups{columns:19rem 3;column-gap:var(--s-4)}.skill-groups>.skill-group{page-break-inside:avoid;break-inside:avoid;margin-bottom:var(--s-4)}.skill-group{padding:var(--s-5);border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface)}.skill-group h3{font-size:.95rem;margin:0 0 var(--s-3);color:var(--accent)}.skill-group ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.skill-group li{padding:.25rem .65rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:.85rem}.resume-project-grid{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--s-3);gap:var(--s-3)}@media (min-width:40rem){.resume-project-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:72rem){.resume-project-grid{grid-template-columns:repeat(3,1fr)}}.resume-project{display:grid;grid-template-columns:1fr auto;grid-gap:.2rem var(--s-3);gap:.2rem var(--s-3);align-items:center;height:100%;padding:var(--s-4) var(--s-5);color:var(--ink);text-decoration:none}.resume-project span{grid-column:1;font-size:.85rem;color:var(--muted)}.resume-project__arrow{grid-row:1/span 2;grid-column:2;width:1.1rem;height:1.1rem;color:var(--accent);transition:transform .25s var(--ease)}.resume-project:hover .resume-project__arrow{transform:translateX(4px)}.resume-split{display:grid;grid-gap:var(--s-7);gap:var(--s-7)}@media (min-width:60rem){.resume-split{grid-template-columns:1fr 1fr}}@media print{.resume-hero__grid{grid-template-columns:1fr}.cta-band,.glance{display:none!important}.timeline-cv:before,.timeline-cv__dot{display:none}.timeline-cv__item{padding-left:0;page-break-inside:avoid;break-inside:avoid}.skill-group,.timeline-cv__card{border:0;padding:0;box-shadow:none;background:none}}.about-hero{position:relative;overflow:hidden;isolation:isolate;background:var(--hero-bg);color:var(--hero-ink);padding-block:clamp(3rem,2rem + 4vw,6rem)}.about-hero .breadcrumbs,.about-hero .breadcrumbs a{color:var(--hero-muted)}.about-hero__grid{display:grid;grid-gap:var(--s-7);gap:var(--s-7);align-items:center}@media (min-width:64rem){.about-hero__grid{grid-template-columns:1.2fr 1fr}}.about-hero h1{color:var(--hero-ink);font-size:clamp(2.5rem,1.6rem + 3.6vw,4.6rem);line-height:1.02;margin-top:var(--s-4)}.about-hero__lede{margin-top:var(--s-5);max-width:38rem;font-size:var(--step-1);line-height:1.6;color:var(--hero-muted)}.about-hero .btn-row{margin-top:var(--s-6)}.about-hero .grad-text{display:inline}.profile-card{position:relative;padding:var(--s-6);border-radius:28px;background:rgb(255 255 255/.05);border:1px solid rgb(255 255 255/.12);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 40px 80px rgb(0 0 0/.35)}.profile-card__top{display:flex;align-items:center;gap:var(--s-4)}.profile-card__avatar{display:grid;place-items:center;width:4.5rem;height:4.5rem;border-radius:22px;background:var(--grad);color:#fff;font:800 1.5rem/1 var(--font-display);box-shadow:0 12px 30px color-mix(in srgb,var(--accent) 40%,transparent)}.profile-card__name{margin:0;font:700 var(--step-1) /1.2 var(--font-display);color:var(--hero-ink)}.profile-card__role{margin:.2rem 0 0;font-size:.9rem;color:var(--hero-muted)}.profile-card__facts{list-style:none;margin:var(--s-5) 0 0;padding:0;display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.profile-card__facts li{display:flex;align-items:center;gap:var(--s-3);font-size:.92rem;color:var(--hero-ink)}.profile-card__facts .inline-icon{width:1.1rem;height:1.1rem;color:var(--glow);flex:none}.profile-card__stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid rgb(255 255 255/.1)}.profile-card__stack span{padding:.25rem .6rem;border-radius:999px;background:rgb(255 255 255/.07);font-size:.78rem;color:var(--hero-ink)}.stat-strip{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1px;gap:1px;border-radius:var(--radius-l);overflow:hidden;border:1px solid var(--line);background:var(--line)}@media (min-width:56rem){.stat-strip{grid-template-columns:repeat(4,1fr)}}.stat-strip>div{padding:var(--s-5) var(--s-6);background:var(--surface);display:grid;grid-gap:.3rem;gap:.3rem}.stat-strip strong{font:800 clamp(1.8rem,1.4rem + 1.4vw,2.6rem) /1 var(--font-display);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.stat-strip span{font-size:.9rem;color:var(--muted)}.value-grid{display:grid;grid-gap:var(--s-4);gap:var(--s-4)}@media (min-width:48rem){.value-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:72rem){.value-grid{grid-template-columns:repeat(3,1fr)}}.value-card{padding:var(--s-6)}.value-card h3{font-size:var(--step-1);margin:var(--s-4) 0 var(--s-2)}.value-card p{color:var(--muted);margin:0}.journey{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--s-4);gap:var(--s-4);counter-reset:j}@media (min-width:64rem){.journey{grid-template-columns:repeat(5,1fr);gap:var(--s-3)}}.journey li{position:relative;padding:var(--s-5);border-radius:var(--radius-l);border:1px solid var(--line);background:var(--surface)}.journey li.is-current{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 9%,transparent),transparent 60%),var(--surface)}.journey__year{font:700 .8rem/1 var(--font-mono);color:var(--accent)}.journey h3{font-size:1rem;margin:var(--s-3) 0 .2rem}.journey p{margin:0;font-size:.85rem;color:var(--muted)}.story{display:grid;grid-gap:var(--s-6);gap:var(--s-6)}@media (min-width:64rem){.story{grid-template-columns:1fr 1.3fr;gap:var(--s-8)}}.story__quote{margin:0;padding:var(--s-6);border-radius:var(--radius-l);background:var(--hero-bg);color:var(--hero-ink);font:600 var(--step-2) /1.3 var(--font-display);align-self:start}.story__quote footer{margin-top:var(--s-4);font:500 .9rem/1.4 var(--font-sans);color:var(--hero-muted)}.faq-list{display:grid;grid-gap:var(--s-3);gap:var(--s-3);max-width:52rem}.faq-list details{border:1px solid var(--line);border-radius:var(--radius-m,14px);background:var(--surface);padding:0 var(--s-5);transition:border-color .2s var(--ease)}.faq-list details[open]{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);min-height:3.5rem;font-weight:600;cursor:pointer;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";font:400 1.5rem/1 var(--font-sans);color:var(--accent);transition:transform .25s var(--ease)}.faq-list details[open] summary:after{transform:rotate(45deg)}.faq-list details p{margin:0 0 var(--s-5);color:var(--muted);line-height:1.65}.contact-hero{padding-block:clamp(2.5rem,2rem + 3vw,4.5rem) var(--s-6)}.contact-layout{display:grid;grid-gap:var(--s-7);gap:var(--s-7);align-items:start}@media (min-width:64rem){.contact-layout{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}}.contact-form-card{padding:clamp(1.25rem,1rem + 1.5vw,2.5rem);border-radius:24px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-1)}.contact-form-card>h2{font-size:var(--step-2);margin:0 0 var(--s-2)}.contact-form-card>p{color:var(--muted);margin:0 0 var(--s-5)}.contact-side{display:grid;grid-gap:var(--s-4);gap:var(--s-4)}.contact-option{display:grid;grid-template-columns:auto 1fr;grid-gap:var(--s-1) var(--s-4);gap:var(--s-1) var(--s-4);align-items:start;padding:var(--s-5);border-radius:var(--radius-l);border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none}.contact-option .icon-box{grid-row:span 2}.contact-option strong{font-size:1rem}.contact-option span:not(.icon-box){font-size:.9rem;color:var(--muted)}a.contact-option:hover strong{color:var(--accent)}.contact-steps{list-style:none;margin:0;padding:var(--s-5);border-radius:var(--radius-l);border:1px dashed color-mix(in srgb,var(--accent) 40%,var(--line));display:grid;grid-gap:var(--s-4);gap:var(--s-4);counter-reset:step}.contact-steps li{display:grid;grid-template-columns:2rem 1fr;grid-gap:var(--s-3);gap:var(--s-3);counter-increment:step;font-size:.92rem}.contact-steps li:before{content:counter(step);display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--grad);color:#fff;font:700 .85rem/1 var(--font-display)}.contact-steps strong{display:block}.contact-steps span{color:var(--muted)}.availability{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-radius:var(--radius-l);background:color-mix(in srgb,var(--success) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--success) 35%,var(--line));font-size:.92rem}.availability .chip__dot{--glow:var(--success);flex:none}.section-sm{padding-block:clamp(2rem,1.5rem + 2vw,3.5rem)}@media (prefers-reduced-motion:reduce){.timeline-cv__item.is-current .timeline-cv__dot{animation:none}}@media (min-width:72rem){.bento>:nth-child(n){grid-column:auto}.bento>:first-child,.bento>:nth-child(4){grid-column:span 2}.bento>:nth-child(8){grid-column:span 3}.bento>:first-child,.bento>:nth-child(4),.bento>:nth-child(8){grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto 1fr auto auto;column-gap:var(--s-6)}.bento>:first-child>:not(.bento__visual),.bento>:nth-child(4)>:not(.bento__visual),.bento>:nth-child(8)>:not(.bento__visual){grid-column:1}.bento>:first-child .bento__visual,.bento>:nth-child(4) .bento__visual,.bento>:nth-child(8) .bento__visual{display:block;grid-column:2;grid-row:1/-1;align-self:center}}.bento__card{grid-template-rows:auto auto 1fr auto auto}.bento__card h3{margin:0}.bento__link{font-size:var(--step--1);margin:0}.bento__link a{display:inline-flex;align-items:center;gap:.3rem;font-weight:600}.bento__link .inline-icon{width:1em;height:1em;transition:transform .25s var(--ease)}.bento__card:hover .bento__link .inline-icon{transform:translateX(3px)}.bento__visual{display:none;margin:0;border-radius:14px;overflow:hidden;background:var(--code-bg,#0e1714);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);box-shadow:0 20px 40px -20px rgb(0 0 0/.45);transform:perspective(900px) rotateY(-4deg) rotateX(2deg);transition:transform .5s var(--ease)}.bento__card:hover .bento__visual{transform:none}.bento__visual figcaption{display:flex;align-items:center;gap:6px;padding:.6rem .8rem;background:rgb(255 255 255/.04);border-bottom:1px solid rgb(255 255 255/.07)}.bento__visual figcaption i{width:9px;height:9px;border-radius:50%;background:#ff5f57}.bento__visual figcaption i:nth-child(2){background:#febc2e}.bento__visual figcaption i:nth-child(3){background:#28c840}.bento__visual figcaption span{margin-left:.5rem;font:500 .72rem/1 var(--font-mono);color:rgb(255 255 255/.55)}.bento__visual pre{margin:0;padding:.9rem 1rem 1.1rem;font:.78rem/1.75 var(--font-mono);color:#d9f2e6;white-space:pre;overflow:hidden;background:none}.bento__visual pre b{display:inline-block;width:1.6rem;color:rgb(255 255 255/.28);font-weight:400;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (min-width:72rem){.post-grid--lead .post-card--lead{grid-row:auto}.post-grid--lead .post-card--lead .post-card__media{aspect-ratio:21/10}.post-grid--lead .post-card--lead h3{font-size:var(--step-3)}}.path-card__art{display:block;margin:calc(-1 * var(--s-6)) calc(-1 * var(--s-6)) var(--s-5);height:7.5rem;overflow:hidden;border-bottom:1px solid var(--line)}.path-card__art .cover{width:100%;height:100%;transition:transform .8s var(--ease)}.path-card:hover .path-card__art .cover{transform:scale(1.05)}.path-card ol.lesson-list{flex:1 1}.cron-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:var(--s-2);gap:var(--s-2);margin-top:var(--s-3)}.cron-fields span{display:grid;grid-gap:.25rem;gap:.25rem;justify-items:center;padding:var(--s-2);border-radius:10px;background:var(--surface-2);font-size:.72rem;text-align:center;color:var(--muted)}.cron-fields code{font:700 1rem/1.2 var(--font-mono);color:var(--accent);background:none;padding:0}.cron-fields .is-bad code{color:var(--danger)}.cron-human{font-size:var(--step-1);font-weight:600}.cron-runs{margin:0;padding-left:1.4rem;display:grid;grid-gap:.4rem;gap:.4rem;font-family:var(--font-mono);font-size:.9rem}.cron-runs li::marker{color:var(--accent)}.ts-now{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-4);padding:var(--s-4) var(--s-5);border-radius:var(--radius-l);background:var(--hero-bg);color:var(--hero-ink)}.ts-now .tool-label{color:var(--hero-muted)}.ts-now strong{font:700 clamp(1.5rem,1.2rem + 1.2vw,2.2rem) /1 var(--font-mono);letter-spacing:.02em;margin-right:auto}.kv--copy{grid-template-columns:1fr;gap:0;border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden}.kv--copy>div{display:grid;grid-gap:var(--s-1) var(--s-4);gap:var(--s-1) var(--s-4);padding:var(--s-3) var(--s-4);border-top:1px solid var(--line)}.kv--copy>div:first-child{border-top:0}@media (min-width:48rem){.kv--copy>div{grid-template-columns:13rem 1fr;align-items:center}}.kv--copy dd{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.kv--copy code{background:none;padding:0;word-break:break-all}@media (max-width:40rem){.cron-fields{grid-template-columns:repeat(5,minmax(3.4rem,1fr));overflow-x:auto}}.tool-card--more{background:radial-gradient(400px circle at 100% 0,color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%),var(--surface);border-style:dashed;border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.tool-card--more h3{color:var(--accent)}@media (min-width:80rem){.path-index{grid-template-columns:repeat(4,minmax(0,1fr))}.path-index .path-card{padding:var(--s-5)}.path-index .path-card__art{margin:calc(-1 * var(--s-5)) calc(-1 * var(--s-5)) var(--s-4)}}.tool-ui .seg,.tool-ui .tool-bar{flex-wrap:wrap}.tool-ui .seg{max-width:100%}@media (max-width:30rem){.tool-ui .seg{border-radius:14px}}.path-card__cta{white-space:nowrap}@media (min-width:80rem){.path-index .lesson-list a{font-size:.9rem}.path-index .path-card h3{font-size:var(--step-1)}}.path-card ol.lesson-list{align-content:start}:root{--section-y:clamp(3.5rem,2.25rem + 3.5vw,5.5rem)}.section,.section--tight,.section-flow,.section-sm{padding-block:var(--section-y)}.section+.section-flow,.section--tight+.section-flow{padding-top:0}.site-footer{margin-top:0}main>:last-child:not(.section):not(article){margin-bottom:0}.section-head{margin-bottom:clamp(2rem,1.5rem + 1.5vw,3rem)}.blog-toolbar{padding-top:0}.my-stuff{position:relative}.my-stuff__badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--grad);color:#fff;font:700 .65rem/18px var(--font-sans);text-align:center;box-shadow:0 0 0 2px var(--bg)}@media (max-width:40rem){.header-actions .my-stuff{display:none}}.path-card[data-complete=true]{border-color:color-mix(in srgb,var(--success) 45%,var(--line))}.path-card[data-complete=true] .path-card__meta{color:var(--success)}.path-card[data-complete=true] .progress-bar:after{background:linear-gradient(90deg,var(--success),color-mix(in srgb,var(--success) 60%,#7ff0e3))}.path-card[data-complete=true] .path-card__cta .cta-continue,.path-card[data-complete=true] .path-card__cta .cta-start,.path-card__cta .cta-review{display:none}.path-card[data-complete=true] .path-card__cta .cta-review{display:inline}.path-nav[data-complete=true] .path-nav__count{color:var(--success);font-weight:600}.continue-card.is-complete{border-color:color-mix(in srgb,var(--success) 45%,var(--line));background:radial-gradient(600px circle at 0 0,color-mix(in srgb,var(--success) 12%,transparent),transparent 60%),var(--surface)}.continue-card.is-complete .continue-card__ring{background:conic-gradient(var(--success) 100%,transparent 0)}.continue-card.is-complete .continue-card__eyebrow{color:var(--success)}.dash{display:grid;grid-gap:var(--s-5);gap:var(--s-5)}@media (min-width:64rem){.dash{grid-template-columns:1fr 1fr}.dash-overview,.dash>.privacy-note{grid-column:1/-1}}.dash-card{padding:clamp(1.25rem,1rem + 1vw,2rem);border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface)}.dash-card h2{font-size:var(--step-2);margin:0 0 var(--s-3)}.dash-overview{display:grid;grid-template-columns:auto 1fr;grid-gap:var(--s-5);gap:var(--s-5);align-items:center;background:radial-gradient(700px circle at 0 0,color-mix(in srgb,var(--accent) 10%,transparent),transparent 60%),var(--surface)}.dash-ring{--size:6.5rem}.dash-ring span{font-size:1.3rem}.dash-done{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--success)}.dash-paths{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--s-4);gap:var(--s-4)}.dash-paths li{display:grid;grid-gap:.45rem;gap:.45rem}.dash-paths__head{display:flex;justify-content:space-between;gap:var(--s-3);font-weight:600}.dash-paths__head a{color:var(--ink);text-decoration:none}.dash-paths__head a:hover{color:var(--accent)}.dash-paths .muted{font-weight:500;font-size:.85rem}.dash-paths li.is-complete .muted{color:var(--success)}.dash-paths li.is-complete .progress-bar:after{background:var(--success)}.dash-paths__cta{justify-self:start;display:inline-flex;align-items:center;gap:.25rem;font-size:.85rem;font-weight:600;text-decoration:none}.dash-tools{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.dash-tools li{gap:var(--s-2)}.dash-tool,.dash-tools li{display:flex;align-items:center}.dash-tool{flex:1 1;gap:var(--s-3);padding:var(--s-3);border:1px solid var(--line);border-radius:var(--radius-m,14px);color:var(--ink);text-decoration:none}.dash-tool:hover{border-color:var(--accent)}.dash-tool span:last-child{display:grid}.dash-sub,.dash-tool small{color:var(--muted)}.dash-sub{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;margin:var(--s-5) 0 var(--s-2)}.save-wrap{display:inline-flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}.save-wrap__link{font-size:.875rem;font-weight:500}.my-tools__all{grid-column:1/-1;margin:0;font-size:.875rem;font-weight:600;text-align:right}.article-hero2{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(2.25rem,1.5rem + 2.5vw,4rem);border-bottom:1px solid var(--line)}.article-hero2:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(45% 70% at 95% 10%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 70%),radial-gradient(35% 60% at 0 100%,color-mix(in srgb,var(--accent-2,#0f9a8f) 10%,transparent),transparent 70%)}.article-hero2__grid{display:grid;grid-gap:var(--s-6);gap:var(--s-6);align-items:center}@media (min-width:64rem){.article-hero2__grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--s-8)}}.article-hero2 h1{font-size:clamp(2rem,1.4rem + 2.4vw,3.4rem);line-height:1.08;margin-top:var(--s-4);max-width:22ch}.article-hero2 .lede{margin-top:var(--s-4);max-width:40rem;font-size:var(--step-1)}.article-chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}.article-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .75rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:.82rem;font-weight:500;color:var(--muted);text-decoration:none}.article-chip .inline-icon{width:.95em;height:.95em}.article-chip--cat{border-color:transparent;background:var(--grad);color:#fff}.byline-card{display:inline-flex;align-items:center;gap:var(--s-3);margin-top:var(--s-5)}.byline-card p{margin:0}.byline-card__name{font-weight:600}.byline-card__name a{color:var(--ink);text-decoration:none}.byline-card__meta{font-size:.875rem;color:var(--muted)}.article-hero2 .article-tools{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--line)}.article-hero2__cover{margin:0;border-radius:24px;overflow:hidden;aspect-ratio:1200/630;box-shadow:0 30px 60px -25px rgb(10 20 40/.45);transform:perspective(1200px) rotateY(-3deg);transition:transform .6s var(--ease)}.article-hero2__cover:hover{transform:none}.article-hero2__cover>*{width:100%;height:100%;object-fit:cover}@media (max-width:63.99rem){.article-hero2__cover{order:-1;transform:none}}.article-body-wrap{padding-block:clamp(2rem,1.5rem + 2vw,3.5rem) 0}.article-layout--v2{--measure:50rem;display:grid;grid-template-columns:minmax(0,1fr);grid-gap:var(--s-7);gap:var(--s-7)}@media (min-width:72rem){.article-layout.article-layout--v2{grid-template-columns:minmax(0,50rem) minmax(19rem,1fr);gap:clamp(2rem,.5rem + 2vw,3rem)}.article-layout--v2 .prose>*,.article-layout--v2>div,.article-layout--v2>div>*{max-width:none}}.article-layout--v2 .article-aside{font-size:.92rem}.aside-stack{display:grid;grid-gap:var(--s-4);gap:var(--s-4);align-content:start;height:100%}.aside-card{padding:var(--s-5);border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface)}.aside-card__title{display:flex;align-items:center;gap:.45rem;margin:0 0 var(--s-3);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.aside-card__title .inline-icon{width:1rem;height:1rem;color:var(--accent)}.aside-card .path-nav__title{margin-top:0}.aside-card .mini-list{gap:var(--s-2)}.toc-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:1px;gap:1px;border-left:2px solid var(--line)}.toc-list a{display:block;margin-left:-2px;padding:.35rem .75rem;border-left:2px solid transparent;color:var(--muted);text-decoration:none;line-height:1.4;transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease)}.toc-list .toc-h3 a{padding-left:1.5rem;font-size:.88em}.toc-list a:hover{color:var(--ink)}.toc-list a[aria-current=location]{color:var(--accent);font-weight:600;border-left-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent)}@media (min-width:72rem){.article-layout--v2 .article-aside{order:2}.toc-card{position:-webkit-sticky;position:sticky;top:8.5rem;display:flex;flex-direction:column;max-height:calc(100vh - 10rem)}.toc-card .toc-list{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:4px;-webkit-mask-image:linear-gradient(#000 calc(100% - 1.5rem),transparent);mask-image:linear-gradient(#000 calc(100% - 1.5rem),transparent)}}@media (max-width:71.99rem){.toc-card{display:none}}.author-box__eyebrow{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.author-box__role{margin:.2rem 0 var(--s-3);color:var(--muted);font-weight:500}.article-layout--v2 .prose h2{padding-top:var(--s-2)}.article-layout--v2 .prose table{display:block;overflow-x:auto;border-radius:12px}.tool-head__title{display:flex;gap:var(--s-4);align-items:center;flex-wrap:wrap}.tool-head__icon{width:60px;height:60px;border-radius:18px}.tool-head h1{font-size:clamp(2rem,1.4rem + 2.2vw,3.2rem);max-width:20ch}.tool-badges{list-style:none;margin:var(--s-4) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}.tool-badges li{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .75rem;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:.82rem;font-weight:500}.tool-badges .inline-icon{width:.95em;height:.95em;color:var(--success)}.tool-hero__meta{margin-top:var(--s-5)}.feature-grid{display:grid;grid-gap:var(--s-4);gap:var(--s-4)}@media (min-width:48rem){.feature-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:72rem){.feature-grid{grid-template-columns:repeat(3,1fr)}}.feature-card{padding:var(--s-6);display:grid;grid-gap:var(--s-3);gap:var(--s-3);align-content:start}.feature-card h3{font-size:var(--step-1);margin:var(--s-2) 0 0}.feature-card p{margin:0;color:var(--muted)}.feature-card>p:only-of-type{color:var(--ink);font-size:1.02rem;line-height:1.55}.step-cards{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--s-4);gap:var(--s-4);counter-reset:none}@media (min-width:48rem){.step-cards{grid-template-columns:repeat(2,1fr)}}@media (min-width:72rem){.step-cards{grid-template-columns:repeat(4,1fr)}}.step-cards li{position:relative;padding:var(--s-5);border-radius:var(--radius-l);border:1px solid var(--line);background:var(--surface);display:grid;grid-gap:var(--s-2);gap:var(--s-2);align-content:start}.step-cards li:after{content:"";position:absolute;inset:0 0 auto 0;height:3px;border-radius:var(--radius-l) var(--radius-l) 0 0;background:var(--grad);opacity:.85}.step-cards__n{font:700 1.6rem/1 var(--font-display);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.step-cards strong{font-size:1.05rem}.step-cards p{margin:0;color:var(--muted)}.usecase-grid{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--s-4);gap:var(--s-4)}@media (min-width:56rem){.usecase-grid{grid-template-columns:repeat(3,1fr)}}.usecase-grid li{display:grid;grid-gap:var(--s-2);gap:var(--s-2);padding:var(--s-5) var(--s-6);border-radius:var(--radius-l);background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 55%),var(--surface);border:1px solid var(--line)}.usecase-grid strong{font-family:var(--font-display);font-size:1.1rem}.usecase-grid span{color:var(--muted)}.tool-pager{display:grid;grid-gap:var(--s-3);gap:var(--s-3);align-items:stretch}@media (min-width:48rem){.tool-pager{grid-template-columns:1fr auto 1fr}}.tool-pager__link{display:grid;grid-gap:.3rem;gap:.3rem;padding:var(--s-4) var(--s-5);border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color .2s var(--ease),transform .2s var(--ease)}.tool-pager__link:hover{border-color:var(--accent);transform:translateY(-2px)}.tool-pager__link--next{text-align:right}.tool-pager__dir{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--accent)}.tool-pager__link--next .tool-pager__dir{justify-content:flex-end}.tool-pager__all{align-self:center;justify-self:center;padding:.6rem 1.1rem;border-radius:999px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));font-weight:600;font-size:.9rem;text-decoration:none}.case-hero2{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(60% 80% at 85% 20%,color-mix(in srgb,var(--a,var(--accent)) 45%,transparent),transparent 70%),var(--hero-bg);color:var(--hero-ink);padding-block:clamp(3rem,2rem + 4vw,6rem)}.case-hero2 .breadcrumbs,.case-hero2 .breadcrumbs a{color:var(--hero-muted)}.case-hero2__grid{display:grid;grid-gap:var(--s-7);gap:var(--s-7);align-items:center}@media (min-width:64rem){.case-hero2__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}}.case-hero2 h1{color:var(--hero-ink);font-size:clamp(2.6rem,1.6rem + 4vw,4.8rem);line-height:1;margin-top:var(--s-4)}.case-hero2__lede{margin-top:var(--s-5);max-width:36rem;font-size:var(--step-1);line-height:1.6;color:var(--hero-muted)}.case-hero2 .btn-row{margin-top:var(--s-6)}.case-chips{list-style:none;margin:var(--s-4) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}.case-chips li{padding:.3rem .8rem;border-radius:999px;background:rgb(255 255 255/.08);border:1px solid rgb(255 255 255/.14);font-size:.82rem;font-weight:500}.case-hero2__visual{position:relative;padding-bottom:var(--s-6)}.case-hero2__visual .browser{box-shadow:0 40px 80px -30px rgb(0 0 0/.6)}.phone-mock{position:absolute;right:-.5rem;bottom:0;width:clamp(6.5rem,22%,9.5rem);aspect-ratio:9/18;padding:7px;border-radius:22px;background:#0b0f0d;border:1px solid rgb(255 255 255/.18);box-shadow:0 30px 60px -20px rgb(0 0 0/.7)}.phone-mock__screen{height:100%;border-radius:16px;padding:12px 10px;display:grid;align-content:start;grid-gap:8px;gap:8px;background:linear-gradient(160deg,var(--a,var(--accent)),color-mix(in srgb,var(--a,var(--accent)) 30%,#000));color:#fff;font:700 .6rem/1.2 var(--font-sans)}.phone-mock__screen i{display:block;height:6px;border-radius:4px;background:rgb(255 255 255/.35)}.phone-mock__screen i:nth-of-type(2){width:70%}.phone-mock__screen span{margin-top:6px;height:46px;border-radius:8px;background:rgb(255 255 255/.18)}@media (max-width:40rem){.phone-mock{right:0}}.case-facts{margin:0 0 clamp(2.5rem,2rem + 2vw,4rem);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));grid-gap:1px;gap:1px;border-radius:var(--radius-l);overflow:hidden;border:1px solid var(--line);background:var(--line)}.case-facts>div{padding:var(--s-5);background:var(--surface)}.case-facts dt{display:flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.case-facts dt .inline-icon{width:1rem;height:1rem;color:var(--accent)}.case-facts dd{margin:.4rem 0 0;font:600 1.05rem/1.35 var(--font-display)}.case-overview{display:grid;grid-gap:var(--s-6);gap:var(--s-6);align-items:start}@media (min-width:64rem){.case-overview{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--s-8)}}.case-overview h2{font-size:var(--step-3);margin:0 0 var(--s-4)}.case-overview__text{font-size:var(--step-1);line-height:1.7;margin:0}.case-role{padding:var(--s-6);border-radius:var(--radius-l);background:var(--hero-bg);color:var(--hero-ink)}.case-role p{margin:0}.case-role__label{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--glow);margin-bottom:var(--s-3)!important}.case-role__by{display:flex;align-items:center;gap:var(--s-3);margin-top:var(--s-5)!important;padding-top:var(--s-4);border-top:1px solid rgb(255 255 255/.12);font-size:.88rem;color:var(--hero-muted)}.stack-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));grid-gap:var(--s-3);gap:var(--s-3)}.stack-grid li{display:grid;grid-gap:.25rem;gap:.25rem;padding:var(--s-4) var(--s-5);border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface)}.stack-grid strong{font-family:var(--font-display)}.stack-grid span{font-size:.88rem;color:var(--muted)}@media (prefers-reduced-motion:reduce){.article-hero2__cover{transform:none}}.article-hero2 .breadcrumbs li:last-child{display:none}.breadcrumbs li{display:inline-flex;align-items:center}.site-footer__actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-5)}.site-footer__statement{font-size:var(--step-0);max-width:34ch;line-height:1.6}.bento__visual pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.74rem}.bento__visual pre>span{display:block;padding-left:1.6rem;text-indent:-1.6rem}.nf{padding-block:var(--section-y);min-height:60vh;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;background:radial-gradient(60rem 30rem at 50% -10%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 70%)}.nf__inner{text-align:center}.nf__code{margin:0;font:800 clamp(5rem,3rem + 10vw,10rem) /1 var(--font-display);letter-spacing:-.05em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.nf h1{margin:var(--s-3) 0 var(--s-4);font-size:var(--step-3)}.nf__lede{max-width:38rem;color:var(--muted);margin:0 auto}.nf__actions{justify-content:center;margin-top:var(--s-6)}.nf__places{list-style:none;padding:0;margin:var(--s-7) auto 0;max-width:60rem;display:grid;grid-gap:var(--s-4);gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));text-align:left}.nf__places a{display:grid;grid-gap:.35rem;gap:.35rem;height:100%;padding:var(--s-5);border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface);color:var(--ink);text-decoration:none;transition:transform .25s var(--ease),border-color .25s var(--ease)}.nf__places a:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.nf__places span:last-child{color:var(--muted);font-size:var(--step--1)}.nf__icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;margin-bottom:var(--s-2);border-radius:12px;background:var(--grad);color:#fff}.nf__icon .inline-icon{width:1.2rem;height:1.2rem}.bento__visual pre b{text-indent:0}