.cbs[data-v-bf40acf4]{position:relative;width:100%}.cbs-trigger[data-v-bf40acf4]{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;font-family:var(--sans);font-size:14px;font-weight:500;color:var(--fg);background:transparent;border:1px solid var(--rule);border-radius:8px;min-height:46px;padding:10px 14px;cursor:pointer;transition:border-color .2s,color .2s;text-align:left}.cbs-trigger[data-v-bf40acf4]:hover,.cbs.open .cbs-trigger[data-v-bf40acf4]{border-color:var(--accent);color:var(--accent)}.cbs-trigger[data-v-bf40acf4]:focus-visible{outline:none;border-color:var(--accent)}.cbs-chev[data-v-bf40acf4]{color:var(--fg-dim);transition:transform .2s,color .2s;flex-shrink:0}.cbs.open .cbs-chev[data-v-bf40acf4]{transform:rotate(180deg);color:var(--accent)}.cbs-value[data-v-bf40acf4]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cbs-pop[data-v-bf40acf4]{position:absolute;bottom:calc(100% + 6px);left:0;right:0;background:var(--bg);border:1px solid var(--rule);border-radius:8px;box-shadow:0 12px 32px #0000002e,0 2px 8px #00000014;z-index:60;display:flex;flex-direction:column;max-height:min(360px,55svh);font-family:var(--sans);overflow:hidden}.cbs-search[data-v-bf40acf4]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--rule);color:var(--fg-faint)}.cbs-search svg[data-v-bf40acf4]{flex-shrink:0}.cbs-search input[data-v-bf40acf4]{flex:1;background:transparent;border:none;outline:none;color:var(--fg);font-family:var(--sans);font-size:16px;padding:6px 0;min-width:0}.cbs-search input[data-v-bf40acf4]::placeholder{color:var(--fg-faint)}.cbs-clear[data-v-bf40acf4]{background:transparent;border:none;color:var(--fg-faint);font-size:18px;line-height:1;cursor:pointer;padding:0 4px}.cbs-clear[data-v-bf40acf4]:hover{color:var(--accent)}.cbs-list[data-v-bf40acf4]{flex:1;overflow-y:auto;touch-action:pan-y;overscroll-behavior:contain;padding:6px 0;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}.cbs-list[data-v-bf40acf4]::-webkit-scrollbar{width:8px}.cbs-list[data-v-bf40acf4]::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px}.cbs-list[data-v-bf40acf4]::-webkit-scrollbar-thumb:hover{background:var(--highlight)}.cbs-empty[data-v-bf40acf4]{padding:14px;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-faint)}.cbs-group[data-v-bf40acf4]{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);padding:10px 14px 4px;pointer-events:none}.cbs-opt[data-v-bf40acf4]{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:40px;padding:8px 14px;font-size:14px;font-weight:500;color:var(--fg-dim);background:transparent;border:none;text-align:left;cursor:pointer;transition:background .12s,color .12s}.cbs-opt.hover[data-v-bf40acf4]{background:var(--card);color:var(--fg)}.cbs-opt.active[data-v-bf40acf4]{color:var(--accent)}.cbs-opt.active.hover[data-v-bf40acf4]{background:var(--accent-tint)}.cbs-opt-mark[data-v-bf40acf4]{font-size:8px;color:var(--accent);line-height:1}:root{--cobalt: #1c3a8c;--cobalt-deep: #0f1f4a;--rufous: #d96a2c;--rufous-deep: #b34f1a;--teal: #2a8b8c;--cream: #f3ead7;--cream-2: #e8dec5;--ink: #0b1228;--ink-2: #141a36;--paper: #f5efde;--paper-2: #ebe2c9;--bg: var(--paper);--bg-2: var(--paper-2);--fg: #1a1f3a;--fg-dim: #4a5273;--fg-faint: #5d6582;--accent-tint: color-mix(in srgb, var(--accent) 7%, transparent);--rule: rgba(26, 31, 58, .18);--rule-soft: rgba(26, 31, 58, .08);--accent: var(--rufous-deep);--accent-2: #186e6f;--highlight: var(--cobalt);--card: rgba(28, 58, 140, .04);--card-edge: rgba(26, 31, 58, .12);--panel: var(--paper-2);--serif: "Newsreader", "Source Serif Pro", Georgia, serif;--sans: "Geist", system-ui, -apple-system, sans-serif;--mono: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;--nav-h: 56px;--gutter: clamp(20px, 5cqi, 56px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-b: env(safe-area-inset-bottom, 0px)}[data-theme=ink]{--bg: var(--ink);--bg-2: var(--ink-2);--fg: #f3ead7;--fg-dim: #aab2c8;--fg-faint: #7b85a6;--rule: rgba(243, 234, 215, .16);--rule-soft: rgba(243, 234, 215, .08);--accent: var(--rufous);--accent-2: var(--teal);--highlight: var(--cream);--card: rgba(255, 255, 255, .03);--card-edge: rgba(243, 234, 215, .1);--panel: var(--ink-2)}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg-2);color:var(--fg);scroll-padding-top:calc(var(--nav-h) + 8px);-webkit-text-size-adjust:100%;text-size-adjust:100%}html.no-scroll{overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--accent) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}body{font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;transition:background .4s ease,color .4s ease;min-height:100svh}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.grain:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:300;opacity:.04;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/></svg>")}.app{width:100%;max-width:1680px;margin:0 auto;background:var(--bg);min-height:100svh}.content{container:content / inline-size;min-width:0;display:flex;flex-direction:column;min-height:100svh}.content main{flex:1}.app.split{display:grid;grid-template-columns:minmax(260px,40%) minmax(0,1fr);box-shadow:0 0 0 1px var(--rule)}.bird-aside{container:bird / inline-size;position:sticky;top:0;height:100lvh;border-right:1px solid var(--rule);touch-action:none;overscroll-behavior:contain}@media (horizontal-viewport-segments: 2){.app.split{max-width:none;grid-template-columns:env(viewport-segment-width 0 0) minmax(0,1fr);column-gap:calc(env(viewport-segment-left 1 0) - env(viewport-segment-right 0 0))}.bird-aside{border-right:none}}.bird-panel{position:relative;color:var(--fg)}.bird-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.bird-canvas canvas{display:block}.bp-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim);pointer-events:none}.bp-top .dot,.drawer-head .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);margin-right:10px;vertical-align:middle}.bp-top .dot{animation:pulse 2.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.bp-name{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 14px;pointer-events:none}.bp-name .common{font-family:var(--serif);font-size:clamp(24px,2.3vw,34px);line-height:1.05;letter-spacing:-.012em;font-variation-settings:"opsz" 32}.bp-drag{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint)}.bp-drag:before{content:"↔ "}.bp-select{display:flex;flex-direction:column;gap:6px;position:relative;z-index:3}.bp-label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-faint)}.bp-hint{font-family:var(--mono);font-size:11px;color:var(--fg-faint);min-height:15px;font-style:italic}.bp-about{display:flex;flex-direction:column;gap:10px}.bp-about-tags{display:flex;flex-wrap:wrap;gap:5px}.bp-pill{font-family:var(--mono);font-size:11px;letter-spacing:.06em;padding:3px 9px;border-radius:999px;border:1px solid var(--rule);color:var(--fg-dim);background:var(--card)}.bp-about-text{font-family:var(--serif);font-size:14px;line-height:1.5;color:var(--fg-dim);font-style:italic}.bird-panel.is-split{--bp-pad-x: clamp(20px, 2.6vw, 36px);height:100%;background:var(--panel);display:flex;flex-direction:column;gap:16px;padding:24px var(--bp-pad-x) 28px;padding-bottom:calc(28px + 100lvh - 100svh);overflow:hidden}[data-theme=paper] .bird-panel.is-split{background:var(--bg)}.is-split .bp-stage{display:contents}.is-split .bp-top{order:1;position:relative;z-index:2}.is-split .bp-about{order:2;position:relative;z-index:2;max-width:380px}.is-split .bird-canvas{order:3;position:relative;inset:auto;flex:1 1 0;min-height:120px;margin:-8px calc(-1 * var(--bp-pad-x));overflow:hidden}.is-split .bp-name{order:4;position:relative;z-index:2}.is-split .bp-select{order:5;padding-top:12px;border-top:1px solid var(--rule)}@media (max-height: 760px){.is-split .bp-about-text{display:none}}@container bird (max-width: 400px){.is-split .bp-about-text{display:none}.bird-panel.is-split{--bp-pad-x: 18px;padding-top:18px;padding-bottom:calc(22px + 100lvh - 100svh)}}.bird-panel.is-inline{display:flex;flex-direction:column;gap:18px}.is-inline .bp-stage{position:relative;height:clamp(300px,56svh,540px);border:1px solid var(--rule);border-radius:14px;background:radial-gradient(120% 80% at 50% 30%,var(--accent-tint),transparent 70%),var(--card);overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:14px 16px 16px}.is-inline .bp-top,.is-inline .bp-name{position:relative;z-index:2}.topnav{position:sticky;top:0;z-index:100;height:var(--nav-h);display:flex;align-items:center;gap:12px;padding:0 max(var(--gutter),var(--safe-r)) 0 max(var(--gutter),var(--safe-l));border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim)}.app.split .topnav{padding-left:var(--gutter)}.topnav-brand{display:flex;align-items:center;gap:10px;height:44px;font-family:var(--serif);font-style:italic;font-size:18px;text-transform:none;letter-spacing:0;color:var(--fg);white-space:nowrap}.topnav-brand .roman{font-style:normal}.topnav-brand:hover{color:var(--accent)}.topnav-brand .mark{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}.topnav-brand .full{display:none}.topnav-links{display:none;margin:0 auto;height:100%}.topnav-link{position:relative;display:flex;align-items:center;padding:0 clamp(10px,1.3cqi,20px);color:var(--fg-faint);white-space:nowrap;transition:color .2s}.topnav-link:hover{color:var(--fg)}.topnav-link.active{color:var(--accent)}.topnav-link:after{content:"";position:absolute;bottom:-1px;left:clamp(10px,1.3cqi,20px);right:clamp(10px,1.3cqi,20px);height:2px;background:var(--accent);transform:scaleX(0);transition:transform .25s ease}.topnav-link.active:after{transform:scaleX(1)}.topnav-right{display:flex;align-items:center;gap:6px;margin-left:auto}.lang{display:flex;gap:2px;font-family:var(--mono);font-size:11px;letter-spacing:.1em}.lang button{min-width:36px;height:32px;padding:0 8px;border-radius:6px;color:var(--fg-dim)}.lang button:hover{color:var(--accent)}.lang .on,.lang .on:hover{background:var(--accent);color:var(--bg)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;color:var(--fg);transition:color .2s,background .2s}.icon-btn:hover{color:var(--accent);background:var(--accent-tint)}.icon-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}@container content (min-width: 520px){.topnav-brand .full{display:inline}.topnav-brand .initials{display:none}}@container content (min-width: 740px){.topnav-links{display:flex}.topnav-menu-btn{display:none}.topnav-right{margin-left:0}}@container content (min-width: 740px) and (max-width: 859px){.topnav-brand .full{display:none}.topnav-brand .initials{display:inline}}.drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--bg);display:flex;flex-direction:column;padding:6px max(20px,var(--safe-r)) max(20px,var(--safe-b)) max(20px,var(--safe-l));overflow-y:auto;overscroll-behavior:contain;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s}.drawer.open{visibility:visible;opacity:1;transform:none;transition:opacity .22s ease,transform .22s ease}.drawer-head{display:flex;align-items:center;justify-content:space-between;min-height:50px;margin-bottom:clamp(8px,3svh,32px);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim)}.drawer nav{display:flex;flex-direction:column}.drawer nav button{text-align:left;font-family:var(--serif);font-size:clamp(26px,min(8vw,5.4svh),40px);line-height:1.1;letter-spacing:-.02em;color:var(--fg);padding:clamp(8px,1.6svh,14px) 0;border-bottom:1px solid var(--rule);display:flex;align-items:baseline;gap:16px}.drawer nav button .n{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--fg-faint)}.drawer nav button.active{color:var(--accent)}.drawer-foot{margin-top:auto;display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;padding-top:24px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim)}.drawer-foot a,.drawer-theme{min-height:44px;display:inline-flex;align-items:center}.drawer-foot a{margin-left:auto;color:var(--accent)}.drawer-theme{text-transform:uppercase;letter-spacing:.1em;font-size:11px;color:var(--fg-dim)}.section{border-bottom:1px solid var(--rule-soft)}.section-inner{max-width:820px;margin:0 auto;padding:clamp(48px,9cqi,96px) max(var(--gutter),var(--safe-r)) clamp(48px,9cqi,96px) max(var(--gutter),var(--safe-l))}.masthead{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;padding:14px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:clamp(28px,5cqi,44px);font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-dim)}.masthead .num{color:var(--accent);font-weight:500}.masthead .title{font-size:inherit;font-weight:500;color:var(--fg)}.masthead .meta{margin-left:auto;font-style:italic;text-transform:none;letter-spacing:.02em;color:var(--fg-faint);font-family:var(--serif);font-size:14px}.site-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:20px max(var(--gutter),var(--safe-r)) max(24px,var(--safe-b)) max(var(--gutter),var(--safe-l));font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint)}.footer-top{min-height:44px;letter-spacing:inherit;text-transform:inherit;font-size:inherit}.footer-top:hover{color:var(--accent)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.vp-debug{position:fixed;left:8px;bottom:8px;z-index:400;padding:4px 8px;border-radius:6px;background:var(--fg);color:var(--bg);font-family:var(--mono);font-size:11px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:12px 20px;border-radius:999px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--rule);color:var(--fg);background:transparent;transition:background .2s,color .2s,border-color .2s;cursor:pointer;text-align:center}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.btn-primary:hover{background:transparent;color:var(--accent)}.btn .arrow{display:inline-block;transition:transform .2s}.btn:hover .arrow{transform:translate(3px)}.chips,.project-tech{display:flex;flex-wrap:wrap;gap:6px}.chip{font-family:var(--mono);font-size:11px;letter-spacing:.03em;padding:3px 10px;border-radius:999px;border:1px solid var(--rule);color:var(--fg-dim)}.hero-lede,.about-body p,.stack-overview,.projects-intro,.contact-pitch p{font-family:var(--serif);font-size:clamp(17px,2.6cqi,21px);line-height:1.55;color:var(--fg-dim)}.hero-lede em,.stack-overview em{color:var(--accent);font-style:italic}.intro-section .section-inner{padding-top:clamp(36px,8cqi,88px)}.app.split .intro-section .section-inner{min-height:calc(100svh - var(--nav-h));display:flex;flex-direction:column;justify-content:center}.hero-eyebrow{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:clamp(20px,4cqi,36px)}.hero-eyebrow .rule{height:1px;width:40px;background:var(--rule)}.hero-title{font-family:var(--serif);font-weight:400;font-size:clamp(42px,12.5cqi,108px);line-height:.96;letter-spacing:-.02em;margin-bottom:18px;color:var(--fg);font-variation-settings:"opsz" 72;text-wrap:balance}.hero-title .it{font-style:italic;color:var(--accent)}.hero-subtitle{font-family:var(--mono);font-size:clamp(11px,1.9cqi,13px);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim);margin-bottom:clamp(24px,4.5cqi,36px)}.hero-lede{max-width:36ch;margin-bottom:clamp(28px,5cqi,40px)}.hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:clamp(36px,6cqi,56px)}.hero-actions .btn-primary{grid-column:1 / -1}.hero-actions .btn{padding-inline:12px;font-size:11px}@container content (min-width: 560px){.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-actions .btn{padding-inline:20px;font-size:12px}}.hero-strip{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--rule)}.hero-strip>div{padding:16px 14px 16px 0;border-bottom:1px solid var(--rule)}.hero-strip>div:nth-child(2n){padding-left:16px;border-left:1px solid var(--rule)}.hero-strip .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:6px}.hero-strip .v{font-family:var(--serif);font-size:clamp(18px,2.6cqi,22px);letter-spacing:-.01em;line-height:1.25}.hero-strip .v small{font-family:var(--sans);font-size:11px;color:var(--fg-faint);margin-left:4px}.hero-strip .v.accent{color:var(--accent)}@container content (min-width: 680px){.hero-strip{grid-template-columns:repeat(4,1fr)}.hero-strip>div,.hero-strip>div:nth-child(2n){padding:18px 16px;border-left:1px solid var(--rule)}.hero-strip>div:first-child{padding-left:0;border-left:none}}.aviary-section .bp-about-text{font-size:15px;max-width:60ch}.about{display:grid;gap:28px}.about-photo{max-width:240px}.about-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px;filter:grayscale(.1) contrast(1.02)}.about-photo .caption{margin-top:8px;font-family:var(--serif);font-style:italic;font-size:13px;color:var(--fg-dim)}.about-body h2{font-family:var(--serif);font-size:clamp(30px,6cqi,46px);line-height:1.05;font-weight:400;letter-spacing:-.015em;margin-bottom:22px;font-variation-settings:"opsz" 32;text-wrap:balance}.about-body h2 .it{font-style:italic;color:var(--accent)}.about-body p{margin-bottom:18px;max-width:40ch}.about-body p .hl{color:var(--accent);font-style:italic}.about-body p .em{color:var(--fg)}.about-meta{margin-top:28px;display:grid;grid-template-columns:1fr;gap:16px 24px;padding-top:24px;border-top:1px solid var(--rule)}.about-meta .k{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:4px}.about-meta .v{font-size:14px;color:var(--fg)}@container content (min-width: 440px){.about-meta{grid-template-columns:repeat(2,1fr)}}@container content (min-width: 620px){.about{grid-template-columns:200px 1fr;gap:clamp(28px,4cqi,44px);align-items:start}.about-photo{position:sticky;top:calc(var(--nav-h) + 24px)}}.job{display:grid;gap:10px;padding:24px 0;border-top:1px solid var(--rule)}.job:last-child{border-bottom:1px solid var(--rule)}.job-period{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);display:flex;flex-wrap:wrap;gap:4px 14px}.job-period .now{display:inline-flex;align-items:center;gap:8px}.job-period .now:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:pulse 2.6s ease-in-out infinite}.job-duration{color:var(--fg-faint)}.job-role{font-family:var(--serif);font-weight:400;font-size:clamp(22px,3.6cqi,28px);letter-spacing:-.012em;line-height:1.15;margin-bottom:4px;font-variation-settings:"opsz" 24}.job-company{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--fg-dim);margin-bottom:12px}.job-company .dot{color:var(--accent);margin:0 6px}.job-points{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.job-points li{font-size:15px;line-height:1.55;color:var(--fg-dim);padding-left:20px;position:relative}.job-points li:before{content:"→";position:absolute;left:0;color:var(--accent);font-family:var(--mono)}@container content (min-width: 600px){.job{grid-template-columns:150px 1fr;gap:24px;padding:30px 0}.job-period{flex-direction:column;padding-top:6px}}.stack-overview{max-width:60ch;margin-bottom:32px}.stack{display:grid;gap:20px}.stack-tabs{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;margin-inline:calc(-1 * var(--gutter));padding:2px var(--gutter) 4px}.stack-tabs::-webkit-scrollbar{display:none}.stack-tab{flex:none;scroll-snap-align:start;min-height:40px;padding:8px 16px;border:1px solid var(--rule);border-radius:999px;background:var(--card);font-family:var(--serif);font-size:16px;font-style:italic;color:var(--fg-dim);transition:color .2s,border-color .2s,background .2s}.stack-tab:hover{color:var(--fg)}.stack-tab.active{color:var(--accent);border-color:var(--accent);background:var(--accent-tint)}.stack-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.stack-item{border:1px solid var(--rule);border-radius:8px;padding:14px;display:flex;align-items:center;gap:12px;background:var(--card);transition:border-color .2s,background .2s}.stack-item:hover{border-color:var(--accent);background:var(--accent-tint)}.stack-icon{font-size:26px;line-height:1;flex-shrink:0;color:var(--accent)}.stack-item .name{font-size:13.5px;font-weight:500;color:var(--fg)}@container content (max-width: 379px){.stack-items{grid-template-columns:1fr 1fr}.stack-item{padding:12px;gap:10px}}@container content (min-width: 680px){.stack{grid-template-columns:180px 1fr;gap:36px;align-items:start}.stack-tabs{flex-direction:column;gap:0;overflow:visible;margin:0;padding:0;border-left:1px solid var(--rule)}.stack-tab{position:relative;text-align:left;border:none;border-radius:0;background:none;padding:11px 0 11px 20px;font-size:20px}.stack-tab.active{background:none}.stack-tab:before{content:"";position:absolute;left:-1px;top:50%;transform:translateY(-50%);width:2px;height:0;background:var(--accent);transition:height .25s ease}.stack-tab.active:before{height:70%}}.projects-intro{max-width:58ch;margin-bottom:32px}.project-list{display:grid;gap:14px}.project{display:grid;grid-template-areas:"thumb" "meta" "body";gap:12px;padding:16px;border:1px solid var(--rule);border-radius:12px;background:var(--card);color:inherit;transition:border-color .2s,background .2s}.project.no-thumb{grid-template-areas:"meta" "body"}.project-body{grid-area:body;min-width:0}.project-meta{grid-area:meta}.project-thumb{grid-area:thumb}.project.is-link:hover{border-color:var(--accent)}.project.is-link:hover .project-name{color:var(--accent)}.project.is-link:hover .project-arrow{color:var(--accent);transform:translate(2px,-2px)}.project.is-link:hover .project-thumb img,a.project-thumb:hover img{transform:scale(1.03)}.project-thumb{display:block;aspect-ratio:16 / 9;overflow:hidden;border-radius:8px;background:var(--card)}.project-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-name{font-family:var(--serif);font-size:clamp(22px,3.4cqi,27px);font-weight:400;letter-spacing:-.012em;margin-bottom:6px;font-variation-settings:"opsz" 24;transition:color .2s}.project-name .it{font-style:italic}.project-desc{font-size:15px;line-height:1.6;color:var(--fg-dim);margin-bottom:12px;max-width:58ch}.project-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.project-actions .btn{min-height:42px;padding:9px 16px;font-size:11px}.project-hint{font-size:12.5px;line-height:1.5;color:var(--fg-faint);margin-top:10px;max-width:58ch}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.project-meta-link{display:inline-flex;align-items:center;gap:8px;min-height:32px;transition:color .2s}.project-meta-link:hover .project-url,.project-meta-link:hover .project-arrow{color:var(--accent)}.project-url{font-family:var(--mono);font-size:11px;color:var(--fg-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-arrow{font-family:var(--serif);font-size:22px;line-height:1;color:var(--fg-faint);transition:all .2s ease}@container content (min-width: 640px){.project{grid-template-columns:1fr 180px;grid-template-areas:"meta meta" "body thumb";gap:12px 24px;padding:20px 22px}.project.no-thumb{grid-template-columns:1fr;grid-template-areas:"meta" "body"}.project-thumb{aspect-ratio:3 / 2;align-self:start}}.contact-pitch h2{font-family:var(--serif);font-size:clamp(34px,7cqi,52px);line-height:1;letter-spacing:-.015em;font-weight:400;margin-bottom:18px;font-variation-settings:"opsz" 40}.contact-pitch h2 .it{font-style:italic;color:var(--accent)}.contact-pitch p{max-width:36ch;margin-bottom:28px}.contact-channels{display:flex;flex-direction:column}.contact-channel{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label arrow" "value arrow";gap:2px 14px;align-items:center;min-height:64px;padding:12px 4px;border-top:1px solid var(--rule);transition:background .2s}.contact-channel:last-child{border-bottom:1px solid var(--rule)}.contact-channel:hover{background:var(--card)}.contact-channel:hover .cc-value{color:var(--accent)}.contact-channel:hover .cc-arrow{transform:translate(2px,-2px);color:var(--accent)}.cc-label{grid-area:label;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-faint)}.cc-value{grid-area:value;font-size:16px;color:var(--fg);transition:color .2s;overflow-wrap:anywhere}.cc-arrow{grid-area:arrow;font-family:var(--serif);font-size:20px;color:var(--fg-faint);transition:all .2s}@container content (min-width: 520px){.contact-channel{grid-template-columns:100px 1fr auto;grid-template-areas:"label value arrow";padding:14px 8px}}
