@font-face{font-family:display;src:url(../media/big_shoulders_display-s.0e11k-ry9m-ko.woff2)format("woff2");font-display:swap;font-weight:300 500}@font-face{font-family:display Fallback;src:local(Arial);ascent-override:160.75%;descent-override:34.8%;line-gap-override:0.0%;size-adjust:61.21%}.OjJSsW_className{font-family:display,display Fallback}.OjJSsW_variable{--font-big-shoulders:"display", "display Fallback"}
@font-face{font-family:mono;src:url(../media/plex_mono_400-s.3dddok28cx_rb.woff2)format("woff2");font-display:swap;font-weight:400}@font-face{font-family:mono;src:url(../media/plex_mono_500-s.2rtszfqvs78kq.woff2)format("woff2");font-display:swap;font-weight:500}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:77.95%;descent-override:20.91%;line-gap-override:0.0%;size-adjust:131.49%}.A2opTW_className{font-family:mono,mono Fallback}.A2opTW_variable{--font-plex-mono:"mono", "mono Fallback"}
@font-face{font-family:sans;src:url(../media/instrument_sans-s.p.3stke_ujqh1xw.woff2)format("woff2");font-display:swap;font-weight:400 600}@font-face{font-family:sans Fallback;src:local(Arial);ascent-override:93.97%;descent-override:24.22%;line-gap-override:0.0%;size-adjust:103.22%}.NtnAKW_className{font-family:sans,sans Fallback}.NtnAKW_variable{--font-instrument-sans:"sans", "sans Fallback"}
:root{--color-bg:#06070a;--color-ink:#e8ecf1;--color-chip:#c5cad2;--color-dim:#8c929c;--color-faint:#5f656e;--color-strong:#fff;--color-on-ink:#0b0c0f;--color-teal:#7fe0d0;--color-amber:#f2b35e;--color-coral:#f08a6c;--color-solid:#121418;--color-panel:#0a0b0ef5;--color-pane:#0e1014b8;--color-glass:#1012168c;--color-well:#0405078c;--color-haze:#ffffff05;--color-wash:#ffffff08;--color-wash-strong:#ffffff0f;--color-line:#ffffff14;--color-line-strong:#ffffff1f;--color-edge:#ffffff29;--color-teal-haze:#7fe0d008;--color-teal-wash:#7fe0d014;--color-teal-tint:#7fe0d024;--color-teal-mark:#7fe0d033;--color-teal-soft:#7fe0d04d;--color-teal-line:#7fe0d066;--color-teal-edge:#7fe0d099;--color-teal-glow:#7fe0d0cc;--color-amber-line:#f2b35e66;--color-coral-line:#f08a6c73;--color-star-bright:#ffffff80;--color-star:#fff6;--color-star-faint:#ffffff4d;--font-display:var(--font-big-shoulders), sans-serif;--font-mono:var(--font-plex-mono), ui-monospace, monospace;--font-sans:var(--font-instrument-sans), system-ui, sans-serif;--text-grow:clamp(0px, calc((100vw - 1100px) * .003), 2px);--text-caption:calc(12px + var(--text-grow));--text-body:calc(13px + var(--text-grow));--text-lead:calc(14px + var(--text-grow));--text-reading:calc(16px + var(--text-grow));--text-field:16px;--text-h3:26px;--text-h2:30px;--text-h1:34px;--text-stat:40px;--text-hero:76px;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--leading-auto:normal;--leading-none:1;--leading-tight:1.1;--leading-heading:1.2;--leading-snug:1.3;--leading-normal:1.4;--leading-relaxed:1.5;--leading-loose:1.65;--tracking-none:0;--tracking-tight:.02em;--tracking-label:.18em;--tracking-brand:.22em;--spacing:4px;--spacing-pad:32px;--spacing-gutter:48px;--spacing-card-gap:14px;--spacing-section:24px;--spacing-inset:12px;--spacing-band:112px;--container-page:1200px;--radius-square:2px;--radius-pill:9999px;--radius-round:50%;--shadow-ring:0 0 0 3px var(--color-teal-mark);--shadow-marker:inset 2px 0 var(--color-teal);--drop-shadow-tick:0 0 4px var(--color-teal-glow);--blur-glass:16px;--motion-fast:.15s;--motion-base:.2s;--motion-slow:.3s;--motion-hero:.62s;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-settle:cubic-bezier(.22, .9, .3, 1.15);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#eef1f4;--color-ink:#0f1318;--color-chip:#2b313a;--color-dim:#525a66;--color-faint:#6b727d;--color-strong:#000;--color-on-ink:#f7f9fb;--color-teal:#0a6e62;--color-amber:#8a5800;--color-coral:#a8432a;--color-solid:#fff;--color-surface:#fcfdfd;--color-panel:#ffffffeb;--color-pane:#ffffffb8;--color-glass:#fff9;--color-well:#0f13180a;--color-haze:#0f131805;--color-wash:#0f131808;--color-wash-strong:#0f13180f;--color-line:#0f13181a;--color-line-strong:#0f131829;--color-edge:#0f13183d;--color-teal-haze:#0a6e620a;--color-teal-wash:#0a6e6214;--color-teal-tint:#0a6e621f;--color-teal-mark:#0a6e6233;--color-teal-soft:#0a6e624d;--color-teal-line:#0a6e6273;--color-teal-edge:#0a6e62b3;--color-teal-glow:#0a6e6259;--color-amber-line:#8a580066;--color-coral-line:#a8432a73;--color-star-bright:#0f131838;--color-star:#0f131829;--color-star-faint:#0f13181f}@media not (min-width:726px){:root{--spacing-pad:16px;--spacing-gutter:32px;--spacing-band:72px}}:root{--color-surface:#0a0b0e;--text-clock:52px;--container-read:72ch}
.t-label{font-size:var(--text-caption);font-family:var(--font-mono);line-height:var(--leading-snug);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-label);text-transform:uppercase}.t-meta{font-size:var(--text-caption);font-family:var(--font-mono);line-height:var(--leading-auto);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-none);text-transform:none}.t-meta-normal{font-size:var(--text-caption);font-family:var(--font-mono);line-height:var(--leading-normal);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-none);text-transform:none}.t-body{font-size:var(--text-body);font-family:var(--font-sans);line-height:var(--leading-normal);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-none);text-transform:none}.t-lead-loose{font-size:var(--text-lead);font-family:var(--font-sans);line-height:var(--leading-loose);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-none);text-transform:none}.t-lead-medium{font-size:var(--text-lead);font-family:var(--font-sans);line-height:var(--leading-normal);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-none);text-transform:none}.t-reading{font-size:var(--text-reading);font-family:var(--font-sans);line-height:var(--leading-loose);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-none);text-transform:none}.t-h3{font-size:var(--text-h3);font-family:var(--font-display);line-height:var(--leading-tight);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-none);text-transform:none}.t-h2-tight{font-size:var(--text-h2);font-family:var(--font-display);line-height:var(--leading-tight);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-none);text-transform:none}.t-h1-tight-light{font-size:var(--text-h1);font-family:var(--font-display);line-height:var(--leading-tight);font-weight:var(--font-weight-light);letter-spacing:var(--tracking-none);text-transform:none}.t-stat{font-size:var(--text-stat);font-family:var(--font-display);line-height:var(--leading-none);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-none);text-transform:none}.t-hero-light{font-size:var(--text-hero);font-family:var(--font-display);line-height:var(--leading-tight);font-weight:var(--font-weight-light);letter-spacing:var(--tracking-none);text-transform:none}.t-brand{font-size:var(--text-h3);font-family:var(--font-display);line-height:var(--leading-tight);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-brand);text-transform:none}.t-control-sm{font-size:var(--text-caption);font-family:var(--font-mono);line-height:var(--leading-none);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-tight);text-transform:none}.t-control{font-size:var(--text-body);font-family:var(--font-mono);line-height:var(--leading-none);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-tight);text-transform:none}.text-dim{color:var(--color-dim)}@media not (min-width:726px){.t-hero-light{font-size:var(--text-stat)}.t-stat{font-size:var(--text-h1)}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--spacing) * 20)}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--color-teal-mark);color:var(--color-ink)}h1,h2,h3,p,dl,dd,ol,ul,figure{margin:0}ul,ol{padding:0;list-style:none}button,input,textarea{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:1px solid var(--color-teal-edge);outline-offset:2px}.wrap{width:100%;max-width:calc(var(--container-page) + 2 * var(--spacing-pad));padding:0 var(--spacing-pad);margin:0 auto}.skip{left:var(--spacing-pad);top:calc(var(--spacing) * -20);z-index:11;position:absolute}.skip:focus{top:calc(var(--spacing) * 3)}img{transition:opacity var(--motion-slow) var(--ease-in-out)}img.fade{opacity:0}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ui-btn{justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);height:32px;padding:0 calc(var(--spacing) * 3);white-space:nowrap;cursor:pointer;font-size:var(--text-caption);font-family:var(--font-mono);line-height:var(--leading-none);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-tight);color:var(--color-chip);background:var(--color-wash);border:1px solid var(--color-edge);border-radius:var(--radius-square);text-decoration:none;display:inline-flex;position:relative}.ui-btn:before,.ui-btn:after{content:"";border:0 solid var(--color-teal);opacity:0;pointer-events:none;width:6px;height:6px;filter:drop-shadow(var(--drop-shadow-tick));transition:opacity var(--motion-fast) var(--ease-in-out);position:absolute}.ui-btn:before{border-width:1px 0 0 1px;top:-1px;left:-1px}.ui-btn:after{border-width:0 1px 1px 0;bottom:-1px;right:-1px}.ui-btn:focus-visible{border-color:var(--color-teal-edge);color:var(--color-ink);outline:none}.ui-btn:focus-visible:before,.ui-btn:focus-visible:after{opacity:1}.ui-btn:hover{border-color:var(--color-teal-edge);color:var(--color-ink)}.ui-btn.lg{height:40px;padding:0 calc(var(--spacing) * 4);font-size:var(--text-body)}.ui-btn.primary{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-on-ink)}.ui-btn.primary:hover{background:var(--color-strong)}.ui-btn.primary:focus-visible{color:var(--color-on-ink);box-shadow:var(--shadow-ring)}.ui-btn.ghost{color:var(--color-chip);background:0 0;border-color:#0000}.ui-btn.ghost:hover{background:var(--color-wash);border-color:#0000}.ui-btn>svg{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.ui-link{color:var(--color-teal);-webkit-text-decoration:underline 1px var(--color-teal-line);text-decoration:underline 1px var(--color-teal-line);text-underline-offset:3px}.ui-link:hover{color:var(--color-ink);-webkit-text-decoration-color:var(--color-teal);text-decoration-color:var(--color-teal)}.ui-chip{align-items:center;gap:calc(var(--spacing) * 1.5);height:24px;padding:0 calc(var(--spacing) * 2);white-space:nowrap;font-size:var(--text-caption);font-family:var(--font-mono);line-height:var(--leading-none);color:var(--tone,var(--color-chip));border:1px solid color-mix(in srgb, var(--tone,var(--color-strong)) 30%, transparent);border-radius:var(--radius-square);display:inline-flex}.ui-chip.dot:before{content:"";border-radius:var(--radius-round);background:var(--tone,var(--color-teal));width:7px;height:7px;box-shadow:0 0 6px var(--tone,var(--color-teal-glow))}.chips{gap:calc(var(--spacing) * 1.5);flex-wrap:wrap;display:flex}.ui-card{border:1px solid var(--color-line);border-radius:var(--radius-square);background:var(--color-glass);-webkit-backdrop-filter:blur(var(--blur-glass));backdrop-filter:blur(var(--blur-glass));position:relative}.ui-card:before,.ui-card:after{content:"";border:0 solid var(--color-teal);pointer-events:none;width:10px;height:10px;position:absolute}.ui-card:before{border-width:1px 0 0 1px;top:-1px;left:-1px}.ui-card:after{border-width:0 1px 1px 0;bottom:-1px;right:-1px}.ui-frame{--tick:20px;background:var(--color-panel);border:1px solid var(--color-line-strong);border-radius:var(--radius-square);position:relative}.ui-frame:before,.ui-frame:after{content:"";z-index:1;width:var(--tick);height:var(--tick);border:0 solid var(--color-teal);pointer-events:none;filter:drop-shadow(var(--drop-shadow-tick));position:absolute}.ui-frame:before{border-width:1px 0 0 1px;top:-1px;left:-1px}.ui-frame:after{border-width:0 1px 1px 0;bottom:-1px;right:-1px}.ui-panel{background:var(--color-pane);border:1px solid var(--color-line);border-radius:var(--radius-square)}.ui-field{--tick:9px;--surface:var(--color-bg);min-width:0;height:54px;padding:0 calc(var(--spacing) * 2.5) 0 calc(var(--spacing) * 4);cursor:text;font-size:var(--text-field);font-family:var(--font-sans);line-height:var(--leading-relaxed);color:var(--color-ink);border:1px solid var(--color-line-strong);border-radius:var(--radius-square);background:var(--color-haze);align-items:center;display:flex;position:relative}.ui-field:before,.ui-field:after{content:"";width:var(--tick);height:var(--tick);border:0 solid var(--color-teal-line);pointer-events:none;position:absolute}.ui-field:before{border-top-width:1px;border-left-width:1px;top:-1px;left:-1px}.ui-field:after{border-bottom-width:1px;border-right-width:1px;bottom:-1px;right:-1px}.ui-field:hover{border-color:var(--color-edge)}.ui-field:focus-within{--tick:20px;border-color:var(--color-teal-soft);background:var(--color-teal-haze) repeating-linear-gradient(0deg, var(--color-teal-haze) 0 1px, transparent 1px 4px)}.ui-field:focus-within:before,.ui-field:focus-within:after{border-color:var(--color-teal);filter:drop-shadow(var(--drop-shadow-tick))}.ui-field :is(input,textarea){resize:vertical;width:100%;caret-color:var(--color-teal);background:0 0;border:0;outline:none;flex:1;margin:0;padding:0}.ui-field :is(input,textarea)::placeholder{color:var(--color-dim);opacity:1}.ui-field:not(:focus-within) :is(input,textarea)::placeholder{color:#0000}.ui-label{left:calc(var(--spacing) * 3);padding:0 var(--spacing);pointer-events:none;white-space:nowrap;font-size:var(--text-caption);font-family:var(--font-mono);line-height:var(--leading-none);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-dim);transform-origin:0;transition:transform var(--motion-base) var(--ease-drawer);position:absolute;top:-1px;transform:translateY(27px)}.ui-field:is(:focus-within,:not(:has(:placeholder-shown))) .ui-label{background:linear-gradient(transparent 38%, var(--surface) 38% 62%, transparent 62%);transform:scale(.86)}.ui-field:focus-within .ui-label{color:var(--color-teal)}.ui-field.area{height:auto;padding:calc(var(--spacing) * 4) calc(var(--spacing) * 2.5) calc(var(--spacing) * 2.5) calc(var(--spacing) * 4);align-items:stretch}.ui-field.area textarea{min-height:7lh}.t-clock-light{font-size:var(--text-clock);font-family:var(--font-display);line-height:var(--leading-tight);font-weight:var(--font-weight-light);letter-spacing:var(--tracking-none);text-transform:none}.t-field-hero-snug-semibold-tracked-tight{font-size:18px;font-family:var(--font-sans);line-height:var(--leading-snug);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);text-transform:none}.t-reading-snug-semibold-tracked-tight{font-size:var(--text-reading);font-family:var(--font-sans);line-height:var(--leading-snug);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);text-transform:none}.t-reading-relaxed{font-size:var(--text-reading);font-family:var(--font-sans);line-height:var(--leading-relaxed);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-none);text-transform:none}.t-code-normal{font-size:var(--text-body);font-family:var(--font-mono);line-height:var(--leading-normal);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-none);text-transform:none}@media not (min-width:726px){.t-clock-light{font-size:var(--text-h1)}}.strip{z-index:10;background:var(--color-bg);border-bottom:1px solid var(--color-line);position:sticky;top:0}.strip .wrap{justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2) calc(var(--spacing) * 4);min-height:56px;padding-block:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}.brand{align-items:baseline;gap:calc(var(--spacing) * 2);text-decoration:none;display:flex}.brand .t-brand{font-size:20px}.strip nav{margin-left:auto}.strip nav ul{align-items:center;gap:var(--spacing);flex-wrap:wrap;display:flex}.quick{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.theme{width:32px;padding:0}.ui-btn.theme>svg{width:16px;height:16px}:root[data-theme=light] .theme .sun,:root:not([data-theme=light]) .theme .moon{display:none}@media not (min-width:726px){.brand .t-meta{display:none}.strip nav{order:2;width:100%;margin-left:0}.strip nav ul{margin-left:calc(var(--spacing) * -2);gap:0}.strip nav .ui-btn{padding:0 calc(var(--spacing) * 2)}html{scroll-padding-top:calc(var(--spacing) * 32)}.proj{scroll-margin-top:calc(var(--spacing) * 32)}}.ph{width:100%;height:auto;display:block}.ph .frame{fill:var(--color-bg);stroke:var(--color-line-strong)}.ph .block{fill:var(--color-wash-strong)}.ph .line{fill:var(--color-line-strong)}.ph .stroke{fill:none;stroke:var(--color-edge);stroke-width:1.5px}.ph .accent{fill:var(--color-teal-wash);stroke:var(--color-teal-line)}.ph .accent-fill{fill:var(--color-teal-soft)}.card{grid-template-columns:minmax(0,2fr) minmax(0,3fr);display:grid}.card .thumb{border-right:1px solid var(--color-line);background:var(--color-well);align-items:center;display:grid}.card .body{align-content:start;gap:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 5);display:grid}.card .body>p{color:var(--color-chip)}.card .meta{justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2);color:var(--color-dim);flex-wrap:wrap;display:flex}.card dl{gap:calc(var(--spacing) * 1.5);display:grid}.card dl div{gap:calc(var(--spacing) * 2);grid-template-columns:8ch 1fr;display:grid}.card dt{color:var(--color-dim)}.card dd{color:var(--color-chip);margin:0}@media not (min-width:1080px){.cards{grid-template-columns:1fr}}@media not (min-width:726px){.card{grid-template-columns:1fr}.card .thumb{border-right:0;border-bottom:1px solid var(--color-line)}.card .thumb .ph{max-height:160px}.card dl div{grid-template-columns:1fr;gap:0}}footer{border-top:1px solid var(--color-line);padding:calc(var(--spacing) * 8) 0}footer .wrap{justify-content:space-between;align-items:baseline;gap:calc(var(--spacing) * 4);flex-wrap:wrap;display:flex}footer ul{gap:calc(var(--spacing) * 5);flex-wrap:wrap;display:flex}body{background:var(--color-bg)}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(ellipse 60% 40% at 18% 0%, var(--color-teal-haze), transparent 70%), radial-gradient(1px 1px at 8% 14%, var(--color-star) 50%, transparent 51%), radial-gradient(1px 1px at 23% 61%, var(--color-star-faint) 50%, transparent 51%), radial-gradient(1.5px 1.5px at 41% 27%, var(--color-star-bright) 50%, transparent 51%), radial-gradient(1px 1px at 57% 83%, var(--color-star-faint) 50%, transparent 51%), radial-gradient(1px 1px at 69% 9%, var(--color-star) 50%, transparent 51%), radial-gradient(1.5px 1.5px at 84% 46%, var(--color-star-faint) 50%, transparent 51%), radial-gradient(1px 1px at 93% 72%, var(--color-star) 50%, transparent 51%), radial-gradient(1px 1px at 35% 95%, var(--color-star-faint) 50%, transparent 51%), var(--color-bg);position:fixed;inset:0}main{padding-bottom:calc(var(--spacing) * 16)}.bento{gap:var(--spacing-card-gap);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.bento>*{min-width:0}.w2{grid-column:span 2}.h2{grid-row:span 2}.tile{gap:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 6);flex-direction:column;display:flex}.tile .foot{justify-content:space-between;align-items:baseline;gap:calc(var(--spacing) * 2) calc(var(--spacing) * 3);flex-wrap:wrap;margin-top:auto;display:flex}.tile .meta{color:var(--color-dim)}.tile p.t-body,.tile .say{color:var(--color-chip)}.chapter{padding-top:calc(var(--spacing) * 20)}.chapter-head{gap:calc(var(--spacing) * 2);margin-bottom:calc(var(--spacing) * 6);display:grid}.chapter-head p{color:var(--color-dim);max-width:60ch}.top{padding-top:calc(var(--spacing) * 10)}.intro{--tick:20px;justify-content:space-between;gap:calc(var(--spacing) * 8);padding:calc(var(--spacing) * 10);flex-direction:column;display:flex}.intro .hello{align-items:center;gap:calc(var(--spacing) * 3);color:var(--color-chip);display:flex}.intro .hello img{border:1px solid var(--color-line-strong);object-fit:cover;flex:none;width:44px;height:44px}.intro h1{text-wrap:balance;max-width:14ch}.intro .lede{color:var(--color-chip);max-width:46ch;font-size:calc(var(--text-reading) + 3px);line-height:var(--leading-relaxed);text-wrap:pretty}.intro .stack-v{gap:calc(var(--spacing) * 8);display:grid}.intro h1+.lede{margin-top:calc(var(--spacing) * -3)}.intro .lede a{color:inherit;-webkit-text-decoration-color:var(--color-line-strong);text-decoration-color:var(--color-line-strong)}.intro .lede a:hover{color:var(--color-teal)}.intro .proof{flex-basis:100%}.intro .proof a{color:var(--color-dim);-webkit-text-decoration-color:var(--color-line);text-decoration-color:var(--color-line)}.actions{align-items:center;gap:calc(var(--spacing) * 3);flex-wrap:wrap;display:flex}.kv{gap:calc(var(--spacing) * 2) calc(var(--spacing) * 4);grid-template-columns:auto 1fr;display:grid}.kv dt{color:var(--color-dim)}.kv dd{color:var(--color-chip);margin:0}.skills{gap:calc(var(--spacing) * 3);display:grid}.skills div{gap:calc(var(--spacing) * 1.5);display:grid}.skills dt{color:var(--color-dim)}.skills dd{min-width:0;margin:0}.quote-head{justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}.quote-nav{align-items:center;gap:var(--spacing);color:var(--color-dim);display:flex}.quote-nav .ui-btn{width:32px;padding:0}.q{align-content:start;gap:calc(var(--spacing) * 2);display:grid}.q-track{gap:calc(var(--spacing) * 6);display:grid}.q-view{margin-inline:-4px;padding-inline:4px;overflow-x:clip}.quote.on .q-track{gap:0}.quote.on .q{visibility:hidden;opacity:0;transition:transform .56s var(--ease-drawer), opacity .56s var(--ease-in-out), visibility 0s .56s;grid-area:1/1;transform:translate(calc(100% + 32px))}.quote.on .q[data-pos=prev]{transform:translate(calc(-100% - 32px))}.quote.on .q[data-pos=now]{visibility:visible;opacity:1;transition-delay:0s;transform:none}.q-bar{height:1px;margin-top:calc(var(--spacing) * -1);background:var(--color-line);overflow:hidden}.q-bar span{background:var(--color-teal);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.q-play:not(.paused) .play,.q-play.paused .pause{display:none}@media (prefers-reduced-motion:reduce){.q-bar,.q-play{display:none}}.q blockquote{text-wrap:pretty;margin:0;font-size:24px}.q figcaption{color:var(--color-dim)}.q-full summary{cursor:pointer;width:fit-content;color:var(--color-teal)}.q-full p{margin-top:calc(var(--spacing) * 2);color:var(--color-chip);max-width:62ch}.quote .proof{margin-top:auto}.h3{grid-row:span 3}.ui-btn.skip{position:absolute}.rail{align-items:center;gap:calc(var(--spacing) * 1.5) calc(var(--spacing) * 2);margin-bottom:calc(var(--spacing) * 5);flex-wrap:wrap;display:flex}.rail ol{gap:calc(var(--spacing) * 1.5);flex-wrap:wrap;display:flex}.rail a{text-decoration:none}.rail a[aria-current=step]{border-color:var(--color-teal-edge);color:var(--color-ink);box-shadow:var(--shadow-marker)}.track{background:var(--color-line-strong);height:1px;display:none}.track span{background:var(--color-teal);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.projects{gap:calc(var(--spacing) * 10);display:grid}.proj{scroll-margin-top:calc(var(--spacing) * 20)}.proj .tile{padding:calc(var(--spacing) * 5);gap:calc(var(--spacing) * 2)}.proj .feature{gap:0;padding:0}.proj .feature:before,.proj .feature:after{z-index:3}.feature .shot{background:var(--color-well);border-bottom:1px solid var(--color-line);margin:0;overflow:hidden}.feature .shot img,.feature .shot .ph{aspect-ratio:16/9;object-fit:cover;object-position:top center;width:100%;height:auto;display:block}.feature .body{align-content:start;gap:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 5) calc(var(--spacing) * 6) calc(var(--spacing) * 6);display:grid}.feature .body>p.t-reading{color:var(--color-chip);max-width:60ch}.fact .t-meta:first-child{color:var(--color-dim)}.feature .shot:has(.phone){position:relative}.feature .shot:has(.phone) img:not(.phone){object-position:left top}.feature .shot img.phone,.pin .feature .shot img.phone{aspect-ratio:390/844;object-fit:cover;object-position:top;border:1px solid var(--color-edge);background:var(--color-solid);width:auto;height:80%;box-shadow:0 0 0 4px var(--color-solid), 0 0 0 5px var(--color-line-strong), 0 12px 32px #00000073;border-radius:12px;position:absolute;bottom:7%;right:4%}.ticks{gap:calc(var(--spacing) * 1.5);color:var(--color-chip);display:grid}.ticks li{padding-left:calc(var(--spacing) * 4);text-wrap:pretty;position:relative}.ticks li:before{content:"";background:var(--color-teal);width:6px;height:1px;position:absolute;top:.6em;left:0}.role{justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2) calc(var(--spacing) * 3);flex-wrap:wrap;display:flex}.outcome .t-body{color:var(--color-chip)}.preview{align-items:center;gap:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 2);background:var(--color-well);border:1px solid var(--color-line);border-radius:var(--radius-square);grid-template-columns:minmax(96px,30%) minmax(0,1fr);margin-top:auto;text-decoration:none;display:grid}a.preview:hover{border-color:var(--color-teal-edge)}.preview img{aspect-ratio:16/10;object-fit:cover;object-position:top center;border:1px solid var(--color-line);width:100%;height:auto;display:block}.pv-text{gap:var(--spacing);min-width:0;display:grid}.pv-text .t-meta{color:var(--color-dim);overflow-wrap:anywhere}a.preview .pv-cta{color:var(--color-teal);-webkit-text-decoration:underline 1px var(--color-teal-line);text-decoration:underline 1px var(--color-teal-line);text-underline-offset:3px}.pin .outcome{container-type:size}@container (min-height:240px){.pin .outcome .preview{flex-direction:column;flex:1;align-items:stretch;min-height:0;display:flex}.pin .outcome .preview img{aspect-ratio:auto;flex:1 1 0;height:auto;min-height:0}}.fit{gap:calc(var(--spacing) * 2);display:grid}.fit h3{font-weight:var(--font-weight-normal)}.avail-foot{justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2) calc(var(--spacing) * 3);flex-wrap:wrap;display:flex}.wide{grid-column:1/-1}.top .tile.tool{align-items:baseline;gap:calc(var(--spacing) * 2) calc(var(--spacing) * 5);padding:calc(var(--spacing) * 5) calc(var(--spacing) * 6);grid-template-columns:auto auto minmax(0,1fr) auto;display:grid}@media not (min-width:1080px){.top .tile.tool{grid-template-columns:1fr;justify-items:start}}.tool p{color:var(--color-chip)}.tool code{font-size:var(--text-lead);color:var(--color-ink)}.gallery{gap:calc(var(--spacing) * 3);flex-wrap:wrap;display:flex}.gallery a{border:1px solid var(--color-line-strong);display:block}.gallery a:hover{border-color:var(--color-teal-edge)}.gallery img{width:auto;height:96px;display:block}.pstrip{padding-top:calc(var(--spacing) * 6);display:none}.pin .pstrip{display:block}.pstrip ol{gap:var(--spacing-card-gap);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.pcard{gap:calc(var(--spacing) * 1.5);padding:calc(var(--spacing) * 2) calc(var(--spacing) * 2) calc(var(--spacing) * 3);text-decoration:none;display:grid}.pcard:hover{border-color:var(--color-teal-edge)}.pcard img,.pcard .ph{aspect-ratio:16/10;object-fit:cover;object-position:top center;background:var(--color-well);border:1px solid var(--color-line);width:100%;height:auto;display:block}.pcard .t-meta{color:var(--color-dim)}.fact .t-reading-snug-semibold-tracked-tight{color:var(--color-ink)}.fact{justify-content:flex-start}.top .tile:not(.quote){justify-content:center}.case summary{width:fit-content;list-style:none}.case summary::-webkit-details-marker{display:none}.case[open] summary{border-color:var(--color-teal-edge);color:var(--color-ink)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.case[open] .case-body{animation:rise var(--motion-base) var(--ease-in-out)}.case-body{gap:calc(var(--spacing) * 4);margin-top:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 4);border-top:1px solid var(--color-line);display:grid}.case-body section{gap:calc(var(--spacing) * 1.5);display:grid}.case-body h4{margin:0}.case-body p{color:var(--color-chip);max-width:62ch}.case-body .close{justify-self:start}.contact{--tick:20px;gap:var(--spacing-gutter);padding:calc(var(--spacing) * 10);grid-template-columns:minmax(0,5fr) minmax(0,7fr);display:grid}.contact .words{align-content:start;gap:calc(var(--spacing) * 4);display:grid}.contact .words p{color:var(--color-chip);max-width:44ch}.contact .ui-field{--surface:var(--color-surface)}form{gap:calc(var(--spacing) * 5) var(--spacing-card-gap);grid-template-columns:1fr 1fr;display:grid}form .full{grid-column:1/-1}form .hint{margin-top:calc(var(--spacing) * -3);color:var(--color-dim)}form .send{justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 3);flex-wrap:wrap;display:flex}form .send p{color:var(--color-dim)}form .sent:empty{display:none}form .sent{color:var(--color-teal)}form [hidden]{display:none}@media not (min-width:1080px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.h2,.h3{grid-row:auto}.intro .stack-v{max-width:60ch}.contact{grid-template-columns:1fr}}@media not (min-width:726px){.bento{grid-template-columns:1fr}.w2{grid-column:auto}.top{padding-top:calc(var(--spacing) * 6)}.chapter{padding-top:calc(var(--spacing) * 14)}.tile,.proj .tile,.feature .body{padding:calc(var(--spacing) * 5)}.proj .feature{padding:0}.intro,.contact{padding:calc(var(--spacing) * 6) calc(var(--spacing) * 5)}.intro .stack-v{gap:calc(var(--spacing) * 6)}.intro .lede{font-size:calc(var(--text-reading) + 1px)}.intro h1+.lede{margin-top:calc(var(--spacing) * -2)}.intro .actions .ui-btn{width:100%}form{grid-template-columns:1fr}form .send .ui-btn{width:100%}}html.pin{scroll-behavior:auto}.pin .scene{height:100vh;padding-top:calc(var(--spacing) * 22);padding-bottom:calc(var(--spacing) * 6);flex-direction:column;display:flex}.pin .scene .chapter-head{margin-bottom:calc(var(--spacing) * 3)}.pin #work .chapter-head{align-items:baseline;column-gap:calc(var(--spacing) * 6);grid-template-columns:auto 1fr}.pin .rail{margin-bottom:calc(var(--spacing) * 4)}.pin .track{flex:120px;display:block}.pin .projects{flex:1;gap:0;min-height:0}.pin .proj{grid-area:1/1;grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:repeat(4,minmax(0,1fr));min-height:0}.pin .h3{grid-row:span 3}.pin .feature{min-height:0;overflow:hidden}.pin .feature .shot{flex:1;min-height:0}.pin .feature .shot img,.pin .feature .shot .ph{aspect-ratio:auto;height:100%}.pin .feature .body{padding-block:calc(var(--spacing) * 4) calc(var(--spacing) * 5)}.pin .case-body{z-index:2;padding:calc(var(--spacing) * 6);background:var(--color-solid);border-top:0;align-content:safe center;margin:0;position:absolute;inset:0}.pin .zone{height:900vh}.pin #work{touch-action:pan-y;position:sticky;top:0}html.pin{scrollbar-gutter:stable}@media not (min-width:1024px){.ui-btn,.ui-btn.lg{min-width:44px;min-height:44px}.theme,.quote-nav .ui-btn{width:44px}.brand{align-items:center;min-height:44px}.ui-link,.q-full summary{margin-block:-15px;padding-block:15px}.ui-link{text-align:center;min-width:44px;display:inline-block}.ui-field input{align-self:stretch}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}.fab-top{right:calc(var(--spacing) * 6);bottom:calc(var(--spacing) * 6);z-index:40;width:48px;height:48px;color:var(--color-on-ink);background:var(--color-ink);border:1px solid var(--color-line-strong);opacity:0;visibility:hidden;border-radius:999px;place-items:center;transition:opacity .2s,transform .2s,visibility 0s linear .2s;display:grid;position:fixed;transform:translateY(12px)scale(.9);box-shadow:0 6px 20px #00000059}.fab-top.on{opacity:1;visibility:visible;transition:opacity .2s,transform .2s,visibility;transform:none}.fab-top:hover{transform:translateY(-2px)}.fab-top:focus-visible{box-shadow:var(--shadow-ring);outline:none}@media (max-width:1023px){.fab-top{right:calc(var(--spacing) * 4);bottom:calc(var(--spacing) * 4)}}footer{padding-bottom:calc(var(--spacing) * 20)}@media (prefers-reduced-motion:reduce){.fab-top,.fab-top.on{transition:none;transform:none}}.off,.off *,.off:before,.off:after,.off :before,.off :after{animation-play-state:paused!important}#avail-h .ui-chip{position:relative}#avail-h .ui-chip:after{content:"";left:calc(var(--spacing) * 2);border-radius:var(--radius-round);background:var(--color-teal);opacity:0;pointer-events:none;width:7px;height:7px;animation:breathe 2.8s var(--ease-in-out) infinite;margin-top:-3.5px;position:absolute;top:50%}@keyframes breathe{0%{opacity:.5;transform:scale(1)}70%,to{opacity:0;transform:scale(2.6)}}.sheen{pointer-events:none;position:absolute;inset:0;overflow:hidden}.sheen:before{content:"";background:linear-gradient(90deg, transparent, var(--color-teal-tint), transparent);width:40%;animation:sheen 8s var(--ease-in-out) infinite;position:absolute;inset:0 auto 0 0;transform:translate(-110%)skew(-12deg)}.pstrip li:nth-child(2) .sheen:before{animation-delay:.18s}.pstrip li:nth-child(3) .sheen:before{animation-delay:.36s}.pstrip li:nth-child(4) .sheen:before{animation-delay:.54s}.pstrip li:nth-child(5) .sheen:before{animation-delay:.72s}@keyframes sheen{0%{transform:translate(-110%)skew(-12deg)}14%,to{transform:translate(300%)skew(-12deg)}}.glow{z-index:2;border-radius:inherit;pointer-events:none;padding:1px;position:absolute;inset:-1px;overflow:hidden;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);container-type:size}.glow:before{content:"";aspect-ratio:1;background:conic-gradient(from 0deg, transparent 0 60%, var(--color-teal-line) 78%, var(--color-teal) 84%, var(--color-teal-glow) 86%, transparent 92%);width:hypot(100cqw,100cqh);animation:9s linear infinite orbit;position:absolute;top:50%;left:50%;translate:-50% -50%}.contact>.glow:before{animation-delay:-3s}.feature>.glow{inset:0}.feature>.glow:before{animation-delay:-6s}@keyframes orbit{to{rotate:1turn}}@media (prefers-reduced-motion:reduce){#avail-h .ui-chip:after,.sheen{display:none}.glow:before{background:conic-gradient(from -45deg, var(--color-teal-line), transparent 20% 30%, var(--color-teal-line) 50%, transparent 70% 80%, var(--color-teal-line))}}.ui-btn.primary:is(:hover,:focus-visible){animation:btn-glow .9s var(--ease-in-out)}@keyframes btn-glow{0%{box-shadow:0 0 0 0 var(--color-teal-soft)}35%{box-shadow:0 0 0 3px var(--color-teal-mark), 0 0 18px 2px var(--color-teal-soft)}}@media (min-width:1024px) and (min-height:700px) and (prefers-reduced-motion:no-preference){html{scrollbar-gutter:stable}}.ui-field .ui-label{translate:0 -50%}.quote-nav[hidden],.q-bar[hidden]{display:none}
