:root{--paper:#FCFBF9;--paper-2:#F4F2EE;--paper-3:#EAE7E1;--ink:#14161B;--ink-2:#4E5057;--ink-3:#85858B;--rule:#E2DFD8;--rule-2:#EFECE6;--hue-frontend:#1F4BE0;--hue-vcs:#0B7A57;--hue-strategy:#9C5411;--hue-perf:#7B2FA6;--hue:var(--hue-frontend);--hue-bg:color-mix(in srgb, var(--hue) 8%, var(--paper));--serif:'Newsreader', Georgia, 'Times New Roman', serif;--sans:'IBM Plex Sans', system-ui, -apple-system, sans-serif;--mono:'IBM Plex Mono', ui-monospace, 'SF Mono', monospace;--measure:68ch;--gutter:clamp(1.25rem, 5vw, 3.5rem);--shell:min(100%, 1180px);--column:min(100%, 820px);--ease:cubic-bezier(0.22, 0.61, 0.36, 1);--swing:cubic-bezier(0.65, 0, 0.35, 1)}[data-theme="night"]{--paper:#0D0F13;--paper-2:#161920;--paper-3:#1F232A;--ink:#EAE9E5;--ink-2:#A6A6A2;--ink-3:#6F7075;--rule:#2A2D34;--rule-2:#1E2128;--hue-frontend:#7E9CFF;--hue-vcs:#3FCB96;--hue-strategy:#E0A055;--hue-perf:#C084E8;--hue-bg:color-mix(in srgb, var(--hue) 15%, var(--paper))}[data-cat="frontend"]{--hue:var(--hue-frontend)}[data-cat="vcs"]{--hue:var(--hue-vcs)}[data-cat="strategy"]{--hue:var(--hue-strategy)}[data-cat="perf"]{--hue:var(--hue-perf)}[data-cat="cms"]{--hue:var(--hue-cms)}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-optical-sizing:auto;font-size:19px;line-height:1.7;text-rendering:optimizeLegibility;overflow-x:hidden;transition:background 0.25s var(--ease), color 0.25s var(--ease)}a{color:var(--hue);text-underline-offset:3px;text-decoration-thickness:1px}:focus-visible{outline:2px
solid var(--hue);outline-offset:3px;border-radius:2px}.skip{position:absolute;left:0;top:0;z-index:40;transform:translateY(-140%);background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:14px;padding:0.65rem 1rem;text-decoration:none;border-radius:0 0 4px 0}.skip:focus{transform:translateY(0)}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.wrap{width:var(--shell);margin:0
auto;padding:0
var(--gutter)}.column{width:var(--column);margin:0
auto;padding:0
var(--gutter)}.masthead{position:sticky;top:0;z-index:20;background:color-mix(in srgb, var(--paper) 82%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color 0.2s}.masthead[data-stuck]{border-bottom-color:var(--rule-2)}.masthead
.wrap{display:flex;align-items:center;justify-content:space-between;padding-top:0.85rem;padding-bottom:0.85rem}.wordmark{display:flex;align-items:center;text-decoration:none}.logo-img{display:block;height:24px;width:auto}.logo-night{display:none}[data-theme="night"] .logo-day{display:none}[data-theme="night"] .logo-night{display:block}.mast-right{display:flex;align-items:center;gap:1.4rem}.mast-nav{display:flex;gap:1.4rem;font-family:var(--sans);font-size:14px}.mast-nav
a{color:var(--ink-2);text-decoration:none;transition:color 0.15s}.mast-nav a:hover, .mast-nav a[aria-current="page"]{color:var(--ink)}.hamburger{display:none;background:none;border:1px
solid var(--rule);border-radius:6px;width:34px;height:34px;cursor:pointer;align-items:center;justify-content:center;padding:0;color:var(--ink-2);flex-shrink:0;transition:border-color 0.15s, color 0.15s}.hamburger:hover{border-color:var(--ink-3);color:var(--ink)}.hamburger
svg{width:18px;height:18px}@media (max-width: 680px){.hamburger{display:inline-flex}.mast-nav{flex-direction:column;align-items:stretch;gap:0;position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--rule);max-height:0;overflow:hidden;opacity:0;transition:max-height 0.25s ease, opacity 0.2s ease}.mast-nav.open{max-height:260px;opacity:1}.mast-nav
a{padding:0.95rem var(--gutter);font-size:15px;border-top:1px solid var(--rule-2)}.mast-nav a[aria-current="page"]::after{display:none}}.themer{background:none;border:1px
solid var(--rule);border-radius:999px;width:30px;height:30px;cursor:pointer;color:var(--ink-2);display:grid;place-items:center;padding:0;transition:border-color 0.15s, color 0.15s, transform 0.25s var(--ease)}.themer:hover{border-color:var(--ink-3);color:var(--ink);transform:rotate(-20deg)}.themer
svg{width:15px;height:15px}.hero{min-height:92svh;display:flex;flex-direction:column;border-bottom:1px solid var(--rule)}.hero-body{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding-top:clamp(2rem, 6vw, 4rem);padding-bottom:clamp(2rem, 5vw, 3rem);text-align:center}.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-3);margin:0
0 clamp(1.25rem, 3vw, 2rem);display:flex;gap:0.85rem;align-items:center;justify-content:center}.hero
h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem, 5.6vw, 4rem);line-height:1.06;letter-spacing:-0.03em;margin:0
auto clamp(1.25rem, 3vw, 2rem);max-width:18ch}.hero h1
em{font-style:italic;color:var(--ink-2)}.hero h1
.ln{display:block;overflow:hidden;padding-bottom:0.06em}.hero h1 .ln>span{display:block}.hero
.standfirst{font-family:var(--sans);font-size:clamp(14px, 1.4vw, 16px);line-height:1.65;color:var(--ink-2);margin:0
auto;max-width:40ch}.instrument{border-top:1px solid var(--rule);background:var(--paper-2)}.readout{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:0.7rem 0;border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:10.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--ink-3)}.readout
b{color:var(--hue);font-weight:500;font-variant-numeric:tabular-nums;font-size:12px}.track{position:relative;height:52px}.track-line{position:absolute;inset:25px 0 auto;height:1px;background:var(--rule)}.tick{position:absolute;top:17px;opacity:0}.tick.on{opacity:1;transition:opacity 0.35s var(--ease)}.tick
i{display:block;width:1px;height:9px;background:var(--ink-3);opacity:0.6}.tick
span{position:absolute;top:13px;left:0;transform:translateX(-50%);font-family:var(--mono);font-size:10px;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums}.needle{position:absolute;top:11px;left:0;width:2px;height:24px;background:var(--hue);border-radius:1px}.needle.sweep{transition:left 0.95s var(--swing)}.needle.live{transition:left 0.09s linear}.needle::after{content:'';position:absolute;top:-4px;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--hue)}.needle::before{content:'';position:absolute;inset:-7px -8px;border-radius:999px;background:var(--hue);opacity:0.14}.demo-grid{display:grid;gap:8px;padding-bottom:1.1rem;grid-template-columns:1fr}.demo-grid
div{height:clamp(44px, 6vw, 60px);border-radius:5px;background:var(--hue-bg);border:1px
solid var(--hue)}@media (min-width: 768px){.demo-grid{grid-template-columns:repeat(2, 1fr)}}@media (min-width: 1024px){.demo-grid{grid-template-columns:repeat(4, 1fr)}}.hint{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);padding-bottom:1rem;margin:0}@keyframes
rise{from{transform:translateY(105%)}to{transform:translateY(0)}}@keyframes
fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.js .hero h1 .ln>span{transform:translateY(105%);animation:rise 0.75s var(--ease) forwards}.js .hero h1 .ln:nth-child(1)>span{animation-delay:0.06s}.js .hero h1 .ln:nth-child(2)>span{animation-delay:0.14s}.js .hero h1 .ln:nth-child(3)>span{animation-delay:0.22s}.js .hero h1 .ln:nth-child(4)>span{animation-delay:0.30s}.js .eyebrow, .js .hero .standfirst, .js .subscribe, .js .sub-note{opacity:0;animation:fade 0.6s var(--ease) forwards}.js
.eyebrow{animation-delay:0.02s}.js .hero
.standfirst{animation-delay:0.38s}.js
.subscribe{animation-delay:0.46s}.js .sub-note{animation-delay:0.52s}.label{display:flex;align-items:baseline;justify-content:space-between;font-family:var(--mono);font-size:10.5px;letter-spacing:0.11em;text-transform:uppercase;color:var(--ink-3);padding-bottom:0.75rem;border-bottom:1px solid var(--ink);margin:0;font-weight:400}.posts{padding:clamp(3rem, 7vw, 5rem) 0 1rem}.featured{display:block;text-decoration:none;color:inherit;padding:2rem 0 2.25rem;border-bottom:1px solid var(--rule-2)}.plate-lg{display:block;border:1px
solid var(--rule);border-radius:8px;background:var(--paper-2);overflow:hidden;margin-bottom:1.5rem;transition:border-color 0.25s var(--ease);max-height:420px;max-width:fit-content}.plate-lg
svg{display:block;width:100%;height:clamp(120px, 20vw, 200px)}.featured:hover .plate-lg{border-color:var(--hue)}.featured:hover .featured-t{color:var(--hue)}.featured-t{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem, 3.6vw, 2.6rem);line-height:1.1;letter-spacing:-0.026em;margin:0
0 0.6rem;max-width:40ch;transition:color 0.15s}.featured-d{font-family:var(--sans);font-size:15px;line-height:1.6;color:var(--ink-2);margin:0
0 0.9rem;max-width:54ch}.post-row{display:grid;grid-template-columns:132px 1fr auto;gap:1.4rem;align-items:start;padding:1.6rem 0;border-bottom:1px solid var(--rule-2);text-decoration:none;color:inherit}.post-row:hover .post-t{color:var(--hue)}.post-row:hover
.plate{border-color:var(--hue);transform:translateY(-3px)}.plate{width:138px;height:128px;border-radius:6px;border:1px
solid var(--rule);background:var(--paper-2);overflow:hidden;transition:border-color 0.2s var(--ease), transform 0.25s var(--ease)}.plate
svg{display:block;width:100%;height:100%}.chip{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--hue);background:var(--hue-bg);border:1px
solid color-mix(in srgb, var(--hue) 35%, transparent);border-radius:3px;padding:2px
6px;margin-bottom:0.6rem}.post-t{font-family:var(--serif);font-size:24px;line-height:1.25;font-weight:400;margin:0
0 0.35rem;letter-spacing:-0.017em;transition:color 0.15s}.post-d{font-family:var(--sans);font-size:14px;line-height:1.6;color:var(--ink-2);margin:0;max-width:50ch}.post-meta{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:0.05em;padding-top:0.35rem}@media (max-width: 640px){.post-row{grid-template-columns:64px 1fr}.plate{width:64px;height:48px}.post-meta{grid-column:2;padding-top:0.6rem}.post-t{font-size:20px}}.rise-in{opacity:0;transform:translateY(12px)}.rise-in.in{opacity:1;transform:none;transition:opacity 0.55s var(--ease), transform 0.55s var(--ease)}.colophon{margin-top:clamp(3rem, 6vw, 4.5rem);padding:2.25rem 0 3.5rem;border-top:1px solid var(--rule);display:flex;gap:1rem;align-items:flex-start}.colophon
.dot{width:36px;height:36px;border-radius:50%;background:var(--paper-2);border:1px
solid var(--rule);flex-shrink:0;display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:var(--ink-2)}.colophon
p{font-family:var(--sans);font-size:13px;line-height:1.7;color:var(--ink-2);margin:0;max-width:62ch}.article{padding:clamp(2.5rem, 6vw, 4rem) 0 0}.article-head{border-bottom:1px solid var(--rule);padding-bottom:2.25rem;margin-bottom:2.75rem}.article-head
h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem, 6vw, 3.6rem);line-height:1.06;letter-spacing:-0.03em;margin:0.85rem 0 1rem}.article-head
.standfirst{font-family:var(--serif);font-size:21px;line-height:1.5;color:var(--ink-2);font-style:italic;font-weight:300;margin:0
0 1.4rem;max-width:52ch}.byline{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:0.08em;text-transform:uppercase;margin:0}.engagement{display:flex;align-items:center;flex-wrap:wrap;gap:0.6rem;margin-top:0.8rem;font-family:var(--mono);font-size:11.5px;letter-spacing:0.02em}.view-tally{display:inline-flex;align-items:center;gap:0.4rem;color:var(--ink-3);padding:0.32rem 0.2rem}.view-tally
svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.vote{display:inline-flex;align-items:center;gap:0.4rem;font:inherit;letter-spacing:inherit;color:var(--ink-2);background:none;border:1px
solid var(--rule);border-radius:999px;padding:0.32rem 0.78rem;cursor:pointer;transition:border-color 0.15s, color 0.15s, background 0.15s}.vote
svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.vote:hover{border-color:var(--hue);color:var(--hue)}.vote:disabled{opacity:0.6;cursor:default}.vote.active{color:var(--paper);background:var(--hue);border-color:var(--hue)}.progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--hue);z-index:30}.prose{max-width:var(--measure)}.prose
p{margin:0
0 1.45rem}.prose
h2{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1.28;letter-spacing:-0.017em;margin:3rem 0 1rem}.prose>p:first-of-type::first-letter {float:left;font-size:3.9em;line-height:0.8;padding:0.06em 0.09em 0 0;font-weight:400;color:var(--ink)}.prose
blockquote{margin:2.2rem 0;padding-left:1.35rem;border-left:2px solid var(--hue);border-radius:0;font-style:italic;color:var(--ink-2)}.prose
code{font-family:var(--mono);font-size:0.83em;background:var(--paper-2);border:1px
solid var(--rule-2);border-radius:3px;padding:0.1em 0.35em}.prose
table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;width:max-content;max-width:100%;margin:2rem 0;border-collapse:collapse;border:1px
solid var(--rule);border-radius:7px;font-family:var(--sans);font-size:15px;line-height:1.55}.prose th, .prose
td{padding:0.65rem 0.95rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule-2)}.prose thead
th{background:var(--paper-2);border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}.prose
td{color:var(--ink-2)}.prose tbody tr:last-child
td{border-bottom:none}.prose tbody tr:hover{background:var(--paper-2)}.prose
caption{caption-side:bottom;text-align:left;margin-top:0.6rem;font-family:var(--mono);font-size:11px;color:var(--ink-3)}.codeblock{margin:1.9rem 0;border:1px
solid var(--rule);border-radius:7px;background:var(--paper-2);overflow:hidden}.codeblock
header{display:flex;justify-content:space-between;align-items:center;padding:0.45rem 0.55rem 0.45rem 0.85rem;border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-3)}.codeblock
button{font-family:var(--mono);font-size:9.5px;letter-spacing:0.07em;text-transform:uppercase;background:none;border:1px
solid var(--rule);border-radius:3px;color:var(--ink-3);cursor:pointer;padding:3px
8px;transition:color 0.15s, border-color 0.15s}.codeblock button:hover{color:var(--ink);border-color:var(--ink-3)}.codeblock
pre{margin:0;padding:0.95rem 0.85rem;overflow-x:auto;font-family:var(--mono);font-size:13px;line-height:1.65;color:var(--ink)}.codeblock
.k{color:var(--hue)}.codeblock
.c{color:var(--ink-3);font-style:italic}.demo-slot{margin:2.2rem 0;border:1px
solid var(--hue);border-radius:7px;overflow:hidden}.demo-slot
header{background:var(--hue-bg);padding:0.45rem 0.85rem;border-bottom:1px solid var(--hue);font-family:var(--mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--hue)}.demo-slot
.body{padding:1.7rem 0.85rem;text-align:center;font-family:var(--sans);font-size:13px;color:var(--ink-3)}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:0.01ms !important;animation-duration:0.01ms !important}.js .hero h1 .ln>span{transform:none}.js .eyebrow, .js .hero .standfirst, .js .subscribe, .js .sub-note{opacity:1}.rise-in{opacity:1;transform:none}.tick{opacity:1}}.expertise{padding:clamp(3rem, 7vw, 5rem) 0 0}.domains{margin:0;padding:0;list-style:none}.domain{display:grid;grid-template-columns:auto 1fr auto;gap:1.25rem;align-items:baseline;padding:1.5rem 0;border-bottom:1px solid var(--rule-2);text-decoration:none;color:inherit}.domain
.bead{width:9px;height:9px;border-radius:50%;background:var(--hue);align-self:center;transition:transform 0.25s var(--ease)}.domain:hover
.bead{transform:scale(1.5)}.domain:hover .domain-t{color:var(--hue)}.domain-t{font-family:var(--serif);font-size:23px;font-weight:400;line-height:1.3;letter-spacing:-0.016em;margin:0
0 0.3rem;transition:color 0.15s}.domain-d{font-family:var(--sans);font-size:14px;line-height:1.6;color:var(--ink-2);margin:0;max-width:56ch}.domain-n{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:0.05em;white-space:nowrap;align-self:center;font-variant-numeric:tabular-nums}@media (max-width: 640px){.domain{grid-template-columns:auto 1fr;gap:0.9rem}.domain-n{grid-column:2;align-self:start;padding-top:0.5rem}.domain-t{font-size:20px}}.stack{display:flex;flex-wrap:wrap;gap:6px;margin:1.75rem 0 0;padding:0;list-style:none}.stack
li{font-family:var(--mono);font-size:10.5px;letter-spacing:0.04em;color:var(--ink-2);background:var(--paper-2);border:1px
solid var(--rule);border-radius:4px;padding:4px
8px}.stack-note{font-family:var(--sans);font-size:12.5px;color:var(--ink-3);margin:1rem 0 0;padding-bottom:20px}.filters{display:flex;flex-wrap:wrap;gap:6px;margin:1.5rem 0 0;padding:0;list-style:none}.filters
button{font-family:var(--mono);font-size:10.5px;letter-spacing:0.07em;text-transform:uppercase;cursor:pointer;color:var(--ink-2);background:none;border:1px
solid var(--rule);border-radius:4px;padding:5px
10px;transition:color 0.15s, border-color 0.15s, background 0.15s}.filters button:hover{border-color:var(--ink-3);color:var(--ink)}.filters button[aria-pressed="true"]{color:var(--hue);border-color:var(--hue);background:var(--hue-bg)}.index{margin:2rem 0 0;padding:0;list-style:none;border-top:1px solid var(--ink)}.index
li{border-bottom:1px solid var(--rule-2)}.index li[hidden]{display:none}.index-row{display:grid;grid-template-columns:78px 1fr auto;gap:1.25rem;align-items:baseline;padding:0.95rem 0;text-decoration:none;color:inherit}.index-row:hover .index-t{color:var(--hue)}.index-date{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;letter-spacing:0.04em;white-space:nowrap}.index-t{font-family:var(--serif);font-size:19px;line-height:1.35;font-weight:400;letter-spacing:-0.012em;margin:0;transition:color 0.15s}.index-t .dot-live{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--hue);margin-left:0.45rem;vertical-align:0.12em}.index-cat{font-family:var(--mono);font-size:9.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--hue);white-space:nowrap}@media (max-width: 640px){.index-row{grid-template-columns:1fr auto;gap:0.75rem;row-gap:0.35rem}.index-date{grid-column:1;grid-row:2}.index-t{grid-column:1 / -1;grid-row:1;font-size:17px}.index-cat{grid-column:2;grid-row:2}}.empty{font-family:var(--sans);font-size:14px;color:var(--ink-3);padding:2.5rem 0;margin:0;text-align:center}.about-head{padding:clamp(3rem, 7vw, 5rem) 0 0}.about-head
h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem, 6.5vw, 4rem);line-height:1.02;letter-spacing:-0.032em;margin:0.85rem 0 1.25rem;max-width:16ch}.about-head
.standfirst{font-family:var(--serif);font-size:21px;line-height:1.5;color:var(--ink-2);font-style:italic;font-weight:300;margin:0;max-width:50ch}.cv{margin:clamp(3rem, 6vw, 4rem) 0 0;padding:0;list-style:none}.cv-item{display:grid;grid-template-columns:98px 1fr;gap:1.5rem;padding:1.4rem 0;border-top:1px solid var(--rule-2)}.cv-item:first-child{border-top:1px solid var(--ink)}.cv-when{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:0.05em;font-variant-numeric:tabular-nums;padding-top:0.4rem}.cv-what{font-family:var(--serif);font-size:20px;line-height:1.35;margin:0
0 0.3rem;letter-spacing:-0.014em}.cv-note{font-family:var(--sans);font-size:14px;line-height:1.6;color:var(--ink-2);margin:0;max-width:56ch}@media (max-width: 640px){.cv-item{grid-template-columns:1fr;gap:0.4rem}.cv-when{padding-top:0}}.clients{margin:clamp(2.5rem, 5vw, 3.5rem) 0 0;padding:1.5rem 0 0;border-top:1px solid var(--rule)}.clients
p{font-family:var(--sans);font-size:14px;line-height:1.75;color:var(--ink-2);margin:0.75rem 0 0;max-width:62ch}body{background-image:radial-gradient(circle at 1px 1px, var(--rule-2) 1px, transparent 1.6px);background-size:26px 26px;background-attachment:fixed}[data-theme="night"] body{background-image:radial-gradient(circle at 1px 1px, var(--rule) 1px, transparent 1.6px)}@supports (animation-timeline: scroll()){@keyframes
driftgrid{from{background-position:0 0}to{background-position:-260px -520px}}body{animation:driftgrid linear both;animation-timeline:scroll(root)}}@media (prefers-reduced-motion: reduce){body{animation:none}}.hero{position:relative;background:var(--paper);overflow:hidden}.tagfield{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.ghost{position:absolute;width:90px;height:32px;border-radius:999px;filter:blur(8px);opacity:0.28;transform:translate(-50%, -50%)}.tag{position:absolute;transform:translate(-50%, -50%);display:inline-flex;align-items:center;transition:opacity 0.4s ease;will-change:transform, opacity}.tag-ic{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;position:relative;z-index:1;background:var(--hue-solid);color:var(--on-hue);box-shadow:0 2px 6px rgba(0,0,0,0.08)}.tag-ic
svg{width:15px;height:15px}.tag-label{font-family:var(--sans);font-size:12.5px;font-weight:500;white-space:nowrap;color:var(--ink);background:color-mix(in srgb, var(--hue) 15%, var(--paper));border:1px
solid color-mix(in srgb, var(--hue) 32%, transparent);padding:6px
15px 6px 20px;margin-left:-14px;border-radius:999px}[data-theme="night"] .tag-label{background:color-mix(in srgb, var(--hue) 24%, var(--paper))}@media (max-width: 800px){.tagfield{display:none}}@media (prefers-reduced-motion: reduce){.tag{transition:none}}.hero-body,.instrument{position:relative;z-index:1}.rule-accent{height:3px;width:64px;border-radius:2px;margin:0
auto 1.4rem;background:linear-gradient(90deg, var(--hue), color-mix(in srgb, var(--hue) 30%, transparent))}.tinted{background:var(--paper-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.tinted .wrap, .tinted
.column{position:relative}.portrait{width:clamp(120px, 22vw, 168px);aspect-ratio:1;border-radius:50%;overflow:hidden;border:1px
solid var(--rule);background:var(--paper-2);flex-shrink:0}.portrait
img{width:100%;height:100%;object-fit:cover;display:block}.about-top{display:flex;gap:clamp(1.5rem, 4vw, 2.5rem);align-items:flex-start;flex-wrap:wrap}.work-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));gap:1rem;margin:2rem 0 0;padding:0;list-style:none}.work-card{display:block;text-decoration:none;color:inherit;border:1px
solid var(--rule);border-radius:10px;background:var(--paper-2);overflow:hidden;transition:border-color 0.2s var(--ease), transform 0.2s var(--ease)}.work-card:hover{border-color:var(--hue);transform:translateY(-3px)}.work-plate{display:block;width:100%;height:132px}.work-body{padding:1rem 1.1rem 1.2rem}.work-name{font-family:var(--serif);font-size:19px;font-weight:400;letter-spacing:-0.012em;margin:0
0 0.3rem}.work-cat{font-family:var(--mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--hue);margin:0}.wd-head{padding:clamp(3rem, 7vw, 5rem) 0 0}.wd-head
h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem, 6vw, 3.6rem);line-height:1.05;letter-spacing:-0.03em;margin:0.85rem 0 1rem}.wd-meta{display:flex;flex-wrap:wrap;gap:1.5rem;margin:1.75rem 0 0;padding:1.5rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.wd-meta
div{min-width:130px}.wd-meta
dt{font-family:var(--mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-3);margin:0
0 0.3rem}.wd-meta
dd{font-family:var(--sans);font-size:14px;color:var(--ink);margin:0}.wd-plate{border-radius:10px;overflow:hidden;border:1px
solid var(--rule);margin:2.5rem 0}.wd-plate
svg{display:block;width:100%;height:clamp(160px, 26vw, 280px)}.placeholder-note{font-family:var(--sans);font-size:12.5px;color:var(--ink-3);background:var(--paper-2);border:1px
dashed var(--rule);border-radius:6px;padding:0.7rem 0.9rem;margin:0
0 2rem}.wd-next{display:flex;justify-content:space-between;align-items:center;margin-top:3rem;padding:1.5rem 0;border-top:1px solid var(--rule);font-family:var(--sans);font-size:14px}.feature-image{margin:1.75rem 0 0;border:1px
solid var(--rule);border-radius:10px;background:var(--paper-2);overflow:hidden}.feature-image
svg{display:block;width:100%;height:clamp(180px, 32vw, 340px)}.feature-cap{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:0.03em;margin:0.6rem 0 0}:root{--hue-frontend:#B34F00;--hue-vcs:#046B48;--hue-strategy:#8A6A00;--hue-perf:#8A2FC4;--hue-cms:#2451E0;--solid-frontend:#FF7500;--on-frontend:#14161B;--solid-vcs:#067A55;--on-vcs:#FFF;--solid-strategy:#E8B400;--on-strategy:#14161B;--solid-perf:#6D28D9;--on-perf:#FFF;--solid-cms:#2451E0;--on-cms:#FFF;--hue-solid:var(--solid-frontend);--on-hue:var(--on-frontend);--hue-bg:color-mix(in srgb, var(--hue) 15%, var(--paper))}[data-theme="night"]{--hue-frontend:#FF7500;--hue-vcs:#2FE0A0;--hue-strategy:#F0C852;--hue-perf:#B87FEF;--hue-cms:#7E9CFF;--hue-bg:color-mix(in srgb, var(--hue) 24%, var(--paper))}[data-cat="frontend"]{--hue-solid:var(--solid-frontend);--on-hue:var(--on-frontend)}[data-cat="vcs"]{--hue-solid:var(--solid-vcs);--on-hue:var(--on-vcs)}[data-cat="strategy"]{--hue-solid:var(--solid-strategy);--on-hue:var(--on-strategy)}[data-cat="perf"]{--hue-solid:var(--solid-perf);--on-hue:var(--on-perf)}[data-cat="cms"]{--hue-solid:var(--solid-cms);--on-hue:var(--on-cms)}.stripe{height:3px;width:100%;background:linear-gradient(90deg,
var(--hue-frontend) 0 20%, var(--hue-vcs) 20% 40%,
var(--hue-strategy) 40% 60%, var(--hue-perf) 60% 80%, var(--hue-cms) 80% 100%)}.chip{background:var(--hue-solid);color:var(--on-hue);border:none;font-weight:500;padding:3px
8px}.subscribe
button{background:var(--hue-solid);color:var(--on-hue);border-color:var(--hue-solid)}.subscribe button:hover{opacity:0.9}.subscribe input:focus{border-color:var(--hue-solid);box-shadow:0 0 0 3px var(--hue-bg)}.colophon
.dot{background:var(--hue-solid);color:var(--on-hue);border-color:var(--hue-solid)}.mast-nav a[aria-current="page"]{color:var(--ink);position:relative}.mast-nav a[aria-current="page"]::after{content:'';position:absolute;left:0;right:0;bottom:-13px;height:2px;background:var(--hue-frontend)}.themer:hover{border-color:var(--hue-frontend);color:var(--hue-frontend)}.filters button[aria-pressed="true"]{background:var(--hue-solid);color:var(--on-hue);border-color:var(--hue-solid)}.demo-grid div:nth-child(1){background:color-mix(in srgb, var(--hue-frontend) 16%, var(--paper));border-color:var(--hue-frontend)}.demo-grid div:nth-child(2){background:color-mix(in srgb, var(--hue-vcs) 16%, var(--paper));border-color:var(--hue-vcs)}.demo-grid div:nth-child(3){background:color-mix(in srgb, var(--hue-strategy) 16%, var(--paper));border-color:var(--hue-strategy)}.demo-grid div:nth-child(4){background:color-mix(in srgb, var(--hue-perf) 16%, var(--paper));border-color:var(--hue-perf)}.domains .domain:nth-child(1) .bead{background:var(--hue-frontend)}.domains .domain:nth-child(2) .bead{background:var(--hue-perf)}.domains .domain:nth-child(3) .bead{background:var(--hue-strategy)}.domains .domain:nth-child(4) .bead{background:var(--hue-vcs)}.domains .domain:nth-child(5) .bead{background:var(--hue-cms)}.rule-accent{background:linear-gradient(90deg, var(--hue-frontend), var(--hue-perf))}.portrait{border-width:2px;border-color:var(--hue-frontend)}.about-title{font-size:clamp(1.9rem, 5.2vw, 3.2rem);max-width:14ch}.about-standfirst{margin-top:1.5rem}.about-prose{margin-top:clamp(2.5rem, 5vw, 3.5rem)}.skills-section{margin-top:clamp(2.5rem, 5vw, 3.5rem)}.clients-followup{margin-top:1.25rem}.skills{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:0.9rem}.skill-row{display:grid;grid-template-columns:160px 1fr 34px;align-items:center;gap:0.9rem}.skill-name{font-family:var(--sans);font-size:13px;color:var(--ink-2)}.skill-track{height:5px;background:var(--paper-3);border-radius:3px;overflow:hidden}.skill-fill{display:block;height:100%;width:var(--pct, 0%);background:var(--hue)}.skill-pct{font-family:var(--mono);font-size:11px;color:var(--ink-3);text-align:right}@media (max-width: 480px){.skill-row{grid-template-columns:108px 1fr 32px;gap:0.6rem}}.tinted-bleed{margin:0
calc(-1 * var(--gutter));padding-left:var(--gutter);padding-right:var(--gutter)}.placeholder-note-lg{margin-top:2rem}.wd-summary{font-family:var(--serif)}.wd-next-label{color:var(--ink-3);font-family:var(--mono);font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase}.related{margin:clamp(3rem, 6vw, 4.5rem) 0 0;padding-top:2.25rem;border-top:1px solid var(--rule)}.related-label{display:flex;align-items:baseline;gap:0.6rem;font-family:var(--mono);font-size:10.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-3);margin:0
0 1.4rem}.related-label
b{color:var(--hue);font-weight:500;letter-spacing:0.06em}.related-label::after{content:'';flex:1;height:1px;background:var(--rule)}.related-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:1rem;list-style:none;margin:0;padding:0}.related-card{display:block;text-decoration:none;color:inherit;border:1px
solid var(--rule);border-radius:8px;background:var(--paper-2);overflow:hidden;transition:border-color 0.2s var(--ease), transform 0.2s var(--ease)}.related-card:hover{border-color:var(--hue);transform:translateY(-2px)}.related-plate{display:block;width:100%;height:192px}.related-body{padding:0.9rem 1rem 1.1rem;display:block}.related-t{font-family:var(--serif);font-size:16px;font-weight:400;line-height:1.32;letter-spacing:-0.008em;margin:0
0 0.4rem;display:inline-block}.related-meta{font-family:var(--mono);font-size:10px;color:var(--ink-3);letter-spacing:0.04em;font-variant-numeric:tabular-nums}.related-all{display:inline-block;margin-top:1.25rem;font-family:var(--sans);font-size:13px;color:var(--hue);text-decoration:none}.related-all:hover{text-decoration:underline}@media (max-width: 720px){.related-grid{grid-template-columns:1fr}}.breadcrumb{border-bottom:1px solid var(--rule-2)}.breadcrumb
ol{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0.85rem 0;font-family:var(--mono);font-size:11px;letter-spacing:0.03em}.breadcrumb
li{display:flex;align-items:center}.breadcrumb
a{color:var(--ink-3);text-decoration:none;transition:color 0.15s}.breadcrumb a:hover{color:var(--hue)}.breadcrumb
.sep{margin:0
0.55rem;color:var(--rule)}.breadcrumb [aria-current="page"]{color:var(--ink-2);max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 560px){.breadcrumb [aria-current="page"]{max-width:22ch}}:root{--paper:#F7F1E6;--paper-2:#EFE7D7;--paper-3:#E4D9C4;--card:#FFFBF3;--ink:#3B342C;--ink-2:#5F564B;--ink-3:#6F665A;--rule:#DCCFB8;--rule-2:#E8DECB;--display:'Zen Maru Gothic', 'M PLUS Rounded 1c', system-ui, sans-serif;--sans:'M PLUS Rounded 1c', system-ui, -apple-system, sans-serif;--hue-frontend:#A9482A;--hue-perf:#3B7A54;--hue-strategy:#226F66;--hue-vcs:#664A9B;--hue-cms:#2A64AB;--solid-frontend:#B5502C;--on-frontend:#FFF;--solid-perf:#3F7F58;--on-perf:#FFF;--solid-strategy:#23766C;--on-strategy:#FFF;--solid-vcs:#6B4FA0;--on-vcs:#FFF;--solid-cms:#2D6CB5;--on-cms:#FFF;--hue-bg:color-mix(in srgb, var(--hue) 12%, var(--paper));--round:20px}[data-theme="night"]{--paper:#15120E;--paper-2:#1E1A15;--paper-3:#29231C;--card:#221D17;--ink:#F1EBDF;--ink-2:#C2B8A8;--ink-3:#9C9281;--rule:#3A332A;--rule-2:#2A251E;--hue-frontend:#F0956E;--hue-perf:#8FD3A8;--hue-strategy:#6FCFC2;--hue-vcs:#BCA6EA;--hue-cms:#8DB6EA;--hue-bg:color-mix(in srgb, var(--hue) 18%, var(--paper))}.hero h1, .featured-t, .post-t, .domain-t, .article-head h1, .about-head h1,
.wd-head h1, .work-name, .index-t, .related-t, .cv-what, .prose h2,.cast-name{font-family:var(--display);font-weight:700;letter-spacing:-0.01em}.hero
h1{font-weight:900;line-height:1.12}.hero h1
em{font-style:normal;color:var(--hue)}.plate-lg,.feature-image,.wd-plate,.work-card{border-radius:var(--round)}.plate{border-radius:14px}.related-card,.toc,.codeblock,.demo-slot{border-radius:16px}.demo-grid
div{border-radius:12px}.subscribe input, .subscribe button, .chip, .stack li, .filters
button{border-radius:999px}.plate-lg,.plate,.work-card,.related-card{background:var(--card)}.ava{--s:40px;width:var(--s);height:var(--s);flex-shrink:0;border-radius:50%;object-fit:cover;object-position:50% 35%;background:var(--paper-2);display:block}.ava-xs{--s:28px}.ava-md{--s:48px}.ava-lg{--s:64px}.guide{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--sans);font-size:12.5px;font-weight:500;color:var(--ink-2);margin:0
0 0.6rem}.guide
b{color:var(--hue);font-weight:700}.sensei{display:flex;align-items:center;gap:0.9rem;padding:1.1rem 0 0.9rem}.bubble{position:relative;margin:0;font-family:var(--sans);font-size:14.5px;line-height:1.5;color:var(--ink);background:var(--card);border:1.5px solid var(--ink);border-radius:18px;padding:0.6rem 1rem}.bubble::before{content:'';position:absolute;left:-8px;top:50%;width:12px;height:12px;background:var(--card);border-left:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:translateY(-50%) rotate(45deg)}.bubble
b{font-family:var(--display)}.sensei
.reply{margin-left:auto;display:flex;align-items:center;gap:0.9rem}.sensei .reply .bubble::before{left:auto;right:-8px;border-left:0;border-bottom:0;border-right:1.5px solid var(--ink);border-top:1.5px solid var(--ink)}@media (max-width: 760px){.sensei
.reply{display:none}}.cast{padding:clamp(3rem, 7vw, 5rem) 0 0}.cast-intro{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 2rem;margin:1.75rem 0 0}.cast-lede{font-family:var(--serif);font-size:21px;line-height:1.5;color:var(--ink-2);margin:0;max-width:46ch}.cast-link{font-family:var(--sans);font-size:14px;font-weight:700;color:var(--hue-frontend);text-decoration:none;white-space:nowrap}.cast-link:hover{text-decoration:underline}.cast-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:1rem;list-style:none;margin:2rem 0 0;padding:0}.cast-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0.25rem;background:var(--card);border:1px
solid var(--rule-2);border-radius:22px;padding:1.4rem 1.1rem 1.3rem;transition:transform 0.25s var(--ease), border-color 0.2s}.cast-card:hover{transform:translateY(-3px);border-color:var(--hue)}.cast-card
.ava{--s:104px;margin-bottom:0.6rem;background:transparent}.cast-role{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--hue)}.cast-name{font-size:22px;margin:0;line-height:1.25}.cast-line{font-family:var(--sans);font-size:13.5px;line-height:1.55;color:var(--ink-2);margin:0.35rem 0 0}[data-char="acharya"]{--hue:#3D4A7A}[data-char="kai"]{--hue:#A94F1A}[data-char="raiden"]{--hue:#7E6200}[data-theme="night"] [data-char="acharya"]{--hue:#A9B6E8}[data-theme="night"] [data-char="kai"]{--hue:#F2A877}[data-theme="night"] [data-char="raiden"]{--hue:#F2C230}.domain{align-items:center}.domain
.ava{--s:52px}.domain:hover
.ava{transform:scale(1.06)}.domain
.ava{transition:transform 0.25s var(--ease)}.domain-guide{display:block;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--hue);margin:0
0 0.2rem}.colophon{align-items:center}.colophon p
b{color:var(--ink);font-weight:700}.domain-t,.domain-d{display:block}@media (max-width: 560px){.cast-grid{grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.75rem}.cast-card{padding:1.1rem 0.8rem 1rem}.cast-card
.ava{--s:76px}.cast-name{font-size:18px}.cast-line{font-size:12.5px}}.logo-img{height:32px}@media (max-width: 680px){.logo-img{height:28px}}.sensei-inline{padding:1.6rem 0 0}.sensei-inline
.bubble{max-width:52ch}.filters
button{display:inline-flex;align-items:center;gap:0.4rem}.filters button
.ava{--s:22px;background:var(--card)}.index-cat{display:inline-flex;align-items:center;gap:0.45rem}.index-row{align-items:center}.told-by{display:flex;align-items:center;gap:0.8rem;margin:0.25rem 0 0}.told-by
p{margin:0;font-family:var(--sans);font-size:15px;line-height:1.5;color:var(--ink-2)}.told-by
b{color:var(--hue)}.told-by
.byline{display:inline-block;margin-top:0.2rem}.say{display:flex;align-items:flex-start;gap:0.9rem;margin:1.9rem 0}.say
.ava{--s:52px}.say-right{flex-direction:row-reverse}.prose .say
.bubble{margin:0;max-width:52ch;font-size:16.5px;line-height:1.55}.say .bubble::before{top:26px}.say-right .bubble::before{left:auto;right:-8px;border-left:0;border-bottom:0;border-right:1.5px solid var(--ink);border-top:1.5px solid var(--ink)}.say-name{display:block;font-family:var(--display);font-size:13px;letter-spacing:0.02em;color:var(--hue);margin-bottom:0.15rem}.prose blockquote.rule-card{display:flex;align-items:center;gap:1.1rem;margin:2.6rem 0;padding:1.4rem 1.6rem;border-left:0;border-radius:22px;background:#3D4A7A;color:#FFFBF3;font-style:normal}[data-theme="night"] .prose blockquote.rule-card{background:#2E3760}.rule-card
.ava{--s:72px;background:#DCE3F2}.rule-label{display:block;margin:0
0 0.3rem;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:#F2CE7A}.prose .rule-card
p{margin:0;font-family:var(--display);font-weight:700;font-size:21px;line-height:1.4}@media (max-width: 560px){.prose blockquote.rule-card{flex-direction:column;align-items:flex-start}.say
.ava{--s:44px}}.related-meta{display:inline-flex;align-items:center;gap:0.4rem}@keyframes
bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes
hop{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-9px) rotate(-6deg)}60%{transform:translateY(0) rotate(3deg)}}@keyframes
pop{from{opacity:0;transform:scale(0.85)}to{opacity:1;transform:none}}@keyframes
dots{0%,100%{opacity:0.25}50%{opacity:1}}@keyframes
shine{from{transform:translateX(-100%)}to{transform:translateX(100%)}}@media (prefers-reduced-motion: no-preference){.sensei
.ava{animation:bob 4.2s ease-in-out infinite}.sensei .reply
.ava{animation-duration:3.2s;animation-delay:-1.3s}.sensei
.ava.react{animation:hop 0.6s var(--ease)}.bubble.react{animation:pop 0.35s var(--ease);transform-origin:right center}.cast-card:hover .ava,
.index-row:hover .index-cat .ava,
.domain:hover .ava,
.featured:hover .guide .ava,
.post-row:hover .guide .ava,
.related-card:hover .related-meta .ava,
.filters button[aria-pressed="true"] .ava{animation:hop 0.6s var(--ease)}.domain:hover
.ava{transform:none}.anim-say .say
.ava{opacity:0;transform:translateX(-14px);transition:opacity 0.4s var(--ease), transform 0.45s var(--ease)}.anim-say .say-right
.ava{transform:translateX(14px)}.anim-say .say
.bubble{opacity:0;transform:scale(0.92);transform-origin:left top;transition:opacity 0.35s var(--ease) 0.12s, transform 0.4s var(--ease) 0.12s}.anim-say .say-right
.bubble{transform-origin:right top}.anim-say .say.in .ava, .anim-say .say.in
.bubble{opacity:1;transform:none}.bubble.typing, .bubble.typing
*{color:transparent}.bubble.typing::after{content:'';position:absolute;left:1.1rem;top:50%;width:6px;height:6px;border-radius:50%;transform:translateY(-50%);background:var(--ink-3);box-shadow:11px 0 var(--ink-3), 22px 0 var(--ink-3);animation:dots 0.9s ease-in-out infinite}.prose blockquote.rule-card{position:relative;overflow:hidden}.anim-say .rule-card{opacity:0;transform:translateY(16px);transition:opacity 0.5s var(--ease), transform 0.5s var(--ease)}.anim-say .rule-card.in{opacity:1;transform:none}.rule-card.in
.ava{animation:hop 0.7s var(--ease) 0.35s both}.rule-card.in::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg, transparent 30%, rgba(255, 251, 243, 0.16) 50%, transparent 70%);transform:translateX(-100%);animation:shine 1.2s var(--ease) 0.45s forwards}}.cast-el{--el:#8A7F70;display:inline-flex;align-items:center;gap:0.35rem;margin-top:0.7rem;padding:3px
10px 3px 8px;border-radius:999px;font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:0.02em;color:color-mix(in srgb, var(--el) 72%, #000);background:color-mix(in srgb, var(--el) 14%, var(--card));border:1px
solid color-mix(in srgb, var(--el) 30%, transparent)}.cast-el
svg{flex-shrink:0;color:var(--el)}[data-theme="night"] .cast-el{color:color-mix(in srgb, var(--el) 55%, #fff);background:color-mix(in srgb, var(--el) 18%, var(--card))}.cast-el[data-el="earth"]{--el:#8A6A4A}.cast-el[data-el="fire"]{--el:#D9622A}.cast-el[data-el="lightning"]{--el:#C99A10}.cast-el[data-el="water"]{--el:#2F7FC0}.cast-el[data-el="air"]{--el:#4E9A69}.cast-el[data-el="ether"]{--el:#6B5CB4}.cast-el[data-el="all"]{--el:#B88A2A}.cast-el[data-el="unknown"]{--el:#8A7F70}@media (prefers-reduced-motion: no-preference){.cast-card:hover .cast-el
svg{animation:hop 0.6s var(--ease)}}:root{--hue-javascript:#7E6200;--solid-javascript:#F2C230;--on-javascript:#14161B}[data-theme="night"]{--hue-javascript:#F2C230}[data-cat="javascript"]{--hue:var(--hue-javascript);--hue-solid:var(--solid-javascript);--on-hue:var(--on-javascript)}[data-guide="acharya"]{--hue:#3D4A7A}[data-guide="kai"]{--hue:#A94F1A}[data-guide="vishwa"]{--hue:#8A5A3A}[data-guide="kitsu"]{--hue:#2A64AB}[data-guide="raiden"]{--hue:#7E6200}[data-guide="sanjaya"]{--hue:#226F66}[data-guide="vayu"]{--hue:#3B7A54}[data-guide="chitragupta"]{--hue:#664A9B}[data-theme="night"] [data-guide="acharya"]{--hue:#A9B6E8}[data-theme="night"] [data-guide="kai"]{--hue:#F2A877}[data-theme="night"] [data-guide="vishwa"]{--hue:#D9A97E}[data-theme="night"] [data-guide="kitsu"]{--hue:#8DB6EA}[data-theme="night"] [data-guide="raiden"]{--hue:#F2C230}[data-theme="night"] [data-guide="sanjaya"]{--hue:#6FCFC2}[data-theme="night"] [data-guide="vayu"]{--hue:#8FD3A8}[data-theme="night"] [data-guide="chitragupta"]{--hue:#BCA6EA}.told-by{margin:0.4rem 0 0.2rem}.told-by
.ava{background:var(--paper-2)}.related-label
.ava{--s:28px;flex-shrink:0}.cast-figure{display:block}.topic-hero.has-guide{display:grid;grid-template-columns:minmax(0, 1fr) 190px;gap:clamp(1rem, 4vw, 2.5rem);align-items:end}.topic-hero-figure{justify-self:center}.topic-hero-img{display:block;width:190px;height:auto}.topic-guide{display:flex;flex-direction:column;align-items:flex-start;gap:0.6rem;margin-top:1.4rem;padding:1rem 1.2rem;background:var(--card);border:1px
solid var(--rule-2);border-radius:18px}.topic-guide
p{margin:0;font-family:var(--sans);font-size:15px;line-height:1.55;color:var(--ink-2)}.topic-guide
b{color:var(--hue)}.topic-guide .cast-el{margin-top:0}@media (max-width: 640px){.topic-hero.has-guide{grid-template-columns:1fr}.topic-hero-figure{order:-1}.topic-hero-img{width:130px}}.mbd-faq+.rule-card,.rule-card+.mbd-faq{margin-top:2.6rem}.subscribe{display:flex;gap:8px;margin:2rem auto 0;max-width:420px;justify-content:center}.subscribe
input{flex:1;min-width:0;font-family:var(--sans);font-size:14px;padding:0
0.85rem;height:44px;border:1px
solid var(--rule);border-radius:5px;background:var(--paper);color:var(--ink);transition:border-color 0.15s, box-shadow 0.15s}.subscribe input::placeholder, .tnp-subscription-minimal input::placeholder{color:var(--ink-3)}.subscribe input:focus, .tnp-subscription-minimal input:focus{border-color:var(--hue);outline:none;box-shadow:0 0 0 3px var(--hue-bg)}.subscribe
button{font-family:var(--sans);font-size:14px;font-weight:500;height:44px;padding:0
1.3rem;white-space:nowrap;background:var(--ink);color:var(--paper);border:1px
solid var(--ink);border-radius:5px;cursor:pointer;transition:opacity 0.15s, transform 0.1s}.subscribe button:hover{opacity:0.86}.subscribe button:active{transform:scale(0.98)}.sub-note{font-family:var(--sans);font-size:12.5px;color:var(--ink-3);margin:0.7rem auto 0;text-align:center}.home-blog-tags{display:flex;align-items:center;gap:0.5rem}.article-layout{display:grid;grid-template-columns:minmax(0, 1fr) 300px;grid-template-areas:"content toc";gap:clamp(2rem, 5vw, 4rem)}.article-layout>.article{grid-area:content;min-width:0}.toc-rail{grid-area:toc;margin-top:25px}.toc{margin:2rem 0 2.5rem;border:1px
solid var(--rule);border-radius:8px;background:var(--paper-2);padding:1.1rem 1.3rem;max-width:var(--measure)}.toc-rail
.toc{max-width:none;margin:0;position:sticky;top:5.5rem;max-height:calc(100vh - 5.5rem - 2rem);overflow-y:auto}.toc
p{font-family:var(--mono);font-size:10.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--ink-3);margin:0
0 0.75rem}.toc
ol{margin:0;padding:0;list-style:none;counter-reset:toc}.toc
li{counter-increment:toc;margin:0
0 0.5rem}.toc li:last-child{margin-bottom:0}.toc
a{display:flex;gap:0.6rem;align-items:baseline;font-family:var(--sans);font-size:14px;color:var(--ink-2);text-decoration:none;transition:color 0.15s}.toc a::before{content:counter(toc, decimal-leading-zero);font-family:var(--mono);font-size:11px;color:var(--ink-3);flex-shrink:0}.toc a:hover, .toc
a.active{color:var(--hue);font-weight:500}.toc a.active::before{color:var(--hue)}@media (max-width: 980px){.article-layout{display:block}.toc-rail
.toc{max-width:var(--measure);position:static;max-height:none;overflow:visible;margin:2rem 0 2.5rem}}.prose
h2{scroll-margin-top:5.5rem}.share{display:flex;align-items:center;flex-wrap:wrap;gap:0.6rem;margin-top:1.1rem;font-family:var(--mono);font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase}.share-label{color:var(--ink-3);margin-right:0.2rem}.share a,.share-copy,.bookmark-btn,.listen-btn{font:inherit;letter-spacing:inherit;text-transform:inherit;text-decoration:none;color:var(--ink-2);background:none;border:1px
solid var(--rule);border-radius:999px;padding:0.32rem 0.78rem;cursor:pointer;transition:border-color 0.15s, color 0.15s, background 0.15s}.share a:hover,.share-copy:hover,.bookmark-btn:hover,.listen-btn:hover{border-color:var(--hue);color:var(--hue)}.bookmark-btn.active{color:var(--hue);border-color:var(--hue);background:var(--hue-bg)}.listen-btn{display:inline-flex;align-items:center;gap:0.35rem}.listen-btn .listen-icon{width:11px;height:11px;fill:currentColor;flex-shrink:0}.listen-btn.active{color:var(--hue);border-color:var(--hue);background:var(--hue-bg)}.share .share-x:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.share .share-linkedin:hover{background:#0A66C2;border-color:#0A66C2;color:#fff}.share .share-facebook:hover{background:#0A3D91;border-color:#0A3D91;color:#fff}.share .share-whatsapp:hover{background:#075E54;border-color:#075E54;color:#fff}.share .share-instagram:hover{background:linear-gradient(45deg, #f09433, #dc2743, #bc1888);border-color:#bc1888;color:#fff}.article img.attachment-full.size-full.wp-post-image{width:100%;height:auto}.article .feature-image{max-height:368px;overflow:hidden;margin-bottom:1rem}.home-blog-tags{display:flex;flex-wrap:wrap;align-items:center;gap:0.4rem 0.75rem;margin:0
0 0.6rem}.home-blog-tags .guide, .home-blog-tags
.chip{margin:0}.home-blog .post-body{display:block;min-width:0}.home-blog .post-d{display:block}.home-blog .plate img, .home-blog .plate-lg
img{display:block;width:100%;height:100%;object-fit:cover}.home-blog .plate-lg
img{height:clamp(120px, 20vw, 200px)}.featured:hover .guide .ava, .post-row:hover .guide
.ava{transform:none}.sensei-main{display:flex;align-items:center;gap:0.9rem;min-width:0}.sensei .reply .reply-text{display:inline}.sensei-stack{flex-direction:column;align-items:stretch;gap:0.7rem}.sensei-stack
.reply{align-self:flex-end;margin-left:0}@media (max-width: 760px){.sensei-stack
.reply{display:flex}.sensei-main .bubble, .sensei-stack .reply
.bubble{font-size:14px}}.sensei.no-motion
.ava{animation:none}.say-no-avatar .bubble::before{display:none}.anim-say .say.no-pop .ava, .anim-say .say.no-pop
.bubble{opacity:1;transform:none}.mbd-faq{max-width:var(--measure);margin:clamp(3rem, 6vw, 1.5rem) 0 0;scroll-margin-top:5.5rem}.mbd-faq-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0
0 1.25rem}.mbd-faq-title{font-family:var(--serif);font-weight:500;font-size:26px;line-height:1.3;letter-spacing:-0.012em;color:var(--ink);margin:0}.mbd-faq-toggle-all{display:none;font-family:var(--mono);font-size:11px;letter-spacing:0.04em;text-transform:uppercase;color:var(--hue);background:none;border:1px
solid var(--rule);border-radius:4px;padding:5px
10px;cursor:pointer;white-space:nowrap;transition:border-color 0.15s ease}.mbd-faq-toggle-all:hover{border-color:var(--hue)}.mbd-faq-list{border-top:1px solid var(--ink)}.mbd-faq-item{border-bottom:1px solid var(--rule)}.mbd-faq-item
summary{list-style:none;cursor:pointer;padding:1.1rem 0.25rem;-webkit-tap-highlight-color:transparent}.mbd-faq-item summary::-webkit-details-marker{display:none}.mbd-faq-item summary::marker{content:""}.mbd-faq-q-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.mbd-faq-q-text{font-family:var(--serif);font-size:18px;font-weight:500;line-height:1.4;color:var(--ink)}.mbd-faq-icon{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:1px
solid var(--rule);display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:var(--hue);transition:transform 0.25s ease, border-color 0.2s ease}.mbd-faq-item[open] .mbd-faq-icon{transform:rotate(45deg);border-color:var(--hue)}.mbd-faq-item summary:hover .mbd-faq-icon{border-color:var(--hue)}.mbd-faq-a-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.28s ease}.mbd-faq-item[open] .mbd-faq-a-wrap{grid-template-rows:1fr}.mbd-faq-a-wrap>.mbd-faq-a{overflow:hidden;min-height:0}.mbd-faq-a{padding:0
1.6rem 1.25rem 0.25rem;font-family:var(--sans);font-size:15px;line-height:1.65;color:var(--ink-2)}.mbd-faq-a
p{margin:0
0 0.85rem}.mbd-faq-a p:last-child{margin-bottom:0}.mbd-faq-a
code{font-family:var(--mono);font-size:0.88em;background:var(--paper-2);border:1px
solid var(--rule);border-radius:3px;padding:0.1em 0.35em}@media (prefers-reduced-motion: reduce){.mbd-faq-a-wrap,.mbd-faq-icon{transition:none}}div.tnp-subscription,form.tnp-subscription,form.tnp-profile{display:block;margin:1em
auto;max-width:500px;width:100%}div.tnp-profile{display:block;margin:1em
0;max-width:500px}.tnp-subscription div.tnp-field,
.tnp-profile div.tnp-field{margin-bottom: .7em;border:0;padding:0}.tnp-subscription label,
.tnp-profile
label{display:block;color:inherit;font-weight:normal;line-height:normal;padding:0;margin:0;margin-bottom: .25em;font-size: .9em}.tnp-subscription .tnp-field-checkbox label,
.tnp-profile .tnp-field-checkbox
label{display:inline-block}.tnp-subscription input[type=text],
.tnp-subscription input[type=email],
.tnp-subscription input[type=submit],
.tnp-subscription select,
.tnp-subscription textarea,
.tnp-profile input[type=text],
.tnp-profile input[type=email],
.tnp-profile input[type=submit],
.tnp-profile select,
.tnp-profile
textarea{width:100%;padding: .7em;display:block;border:1px;color:#444;border-color:#ddd;background-color:#f4f4f4;background-image:none;text-shadow:none;font-size:1em;margin:0;line-height:normal;box-sizing:border-box}.tnp-subscription input[type=checkbox],
.tnp-widget input[type=radio],
.tnp-profile input[type=checkbox]{max-width:1em;display:inline-block;margin-right: .5em}.tnp-subscription select option,
.tnp-profile select
option{margin-right: .75em}.tnp-subscription input.tnp-submit,
.tnp-profile input.tnp-submit,
.tnp-unsubscribe button.tnp-submit,
.tnp-reactivate button.tnp-submit{background-color:#444;color:#fff;width:auto;height:auto;margin:0;display:inline-block}@media all and (max-width: 480px){.tnp-subscription input[type=submit],
.tnp-profile input[type=submit]{width:100%}}.tnp-widget{width:100%;display:block;box-sizing:border-box}.tnp-widget .tnp-field{margin-bottom:10px;border:0;padding:0}.tnp-widget
label{display:block;color:inherit;font-size:14px}.tnp-widget input[type=text], .tnp-widget input[type=email], .tnp-widget input[type=submit], .tnp-widget
select{width:100%;padding:10px;display:block;border:1px
solid #ddd;border-color:#ddd;background-color:#f4f4f4;background-image:none;text-shadow:none;color:#444;font-size:14px;line-height:normal;box-sizing:border-box;height:auto}.tnp-widget input[type=checkbox], .tnp-widget input[type=radio]{width:auto;display:inline-block}.tnp-widget select
option{margin-right:10px}.tnp-widget input.tnp-submit{background-color:#444;background-image:none;text-shadow:none;color:#fff;margin:0}.tnp-field input[type="submit"]{position:inherit}.tnp-field
label{}.tnp-widget-minimal{width:100%}.tnp-widget-minimal
form{margin:0;padding:0;border:0}.tnp-widget-minimal input.tnp-email{width:100%;box-sizing:border-box;padding:10px;display:inline-block;border:1px
solid #ddd;background-color:#f4f4f4;color:#444;font-size:14px}.tnp-widget-minimal input.tnp-submit{width:100%;box-sizing:border-box;padding:10px;display:inline-block;border:1px;border-color:#ddd;background-color:#444;background-image:none;text-shadow:none;color:#fff;font-size:14px;line-height:normal;border-radius:0px;height:auto;margin:0}.tnp-subscription-minimal{width:100%;box-sizing:border-box;margin:10px
0}.tnp-subscription-minimal
form{width:auto;margin:0;padding:0;border:0;white-space:nowrap}.tnp-subscription-minimal input.tnp-email,
.tnp-subscription-minimal input.tnp-name{width:70%;max-width:300px;box-sizing:border-box;padding:10px;display:inline-block;border:1px
solid #ddd;background-color:#f4f4f4;color:#444;font-size:14px;line-height:20px;border-radius:0px;margin-right:10px}.tnp-subscription-minimal.with-name input.tnp-email,
.tnp-subscription-minimal.with-name input.tnp-name{width:31%}.tnp-subscription-minimal .tnp-privacy-field{margin-top:10px}.tnp-subscription-minimal input.tnp-submit{width:29%;box-sizing:border-box;display:inline-block;padding:10px;border:1px;border-color:#ddd;background-color:#444;background-image:none;text-shadow:none;color:#fff;font-size:14px;line-height:20px;border-radius:0px;margin:0}.tnp-subscription-posts{margin-top:2em;margin-bottom:2em;padding:2rem}.tnp-subscription-posts .tnp-subscription{max-width:auto;margin:0}@media all and (max-width: 525px){.tnp-subscription-minimal.with-name input.tnp-email,
.tnp-subscription-minimal.with-name input.tnp-name,
.tnp-subscription-minimal input.tnp-submit{width:100%;max-width:100%;margin:0;display:block;margin-bottom: .5rem}}.tnp-button-form button.tnp-submit{box-sizing:border-box;padding:10px;display:inline-block;border:1px;border-color:#ddd;background-color:#444;background-image:none;text-shadow:none;color:#fff;font-size:14px;line-height:normal;border-radius:0px;height:auto;margin:0}.tnp-comments{clear:both;margin-top:15px;margin-bottom:15px}.tnp-comments
label{display:block}.tnp-comments input[type=checkbox]{display:inline-block;width:auto!important}.tnp-lock{clear:both;display:block;box-sizing:border-box;box-shadow:none;margin:20px;padding:15px;background-color:#fff;border:1px
solid #ddd}.tnp-nl-checkout{margin-bottom:1em}