:root{color-scheme:light;--ink:#111417;--muted:#5e666e;--paper:#f5f4f0;--panel:#fff;--line:#1114161c;--graphite:#101416;--night:#07090b;--teal:#0f766e;--amber:#b87933;--wine:#7a2d3a;--white:#fff;--soft-panel:#fbfaf7;--electric:#5eead4;--steel:#8f9aa3;--shadow:0 20px 50px #11141612;--shadow-hover:0 24px 70px #1114161f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{color:var(--ink);background:var(--paper);letter-spacing:0;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{z-index:20;min-height:72px;color:var(--white);box-shadow:none;backdrop-filter:none;background:0 0;border-bottom:0;justify-content:flex-end;align-items:center;gap:10px;padding:18px clamp(18px,4vw,54px);display:flex;position:fixed;top:0;left:0;right:0}.site-nav{color:#ffffffc7;backdrop-filter:blur(18px)saturate(130%);background:#07090b47;border:1px solid #ffffff21;border-radius:999px;justify-content:flex-end;align-items:center;gap:4px;padding:4px;font-size:.86rem;font-weight:700;display:flex}.site-nav a{border-radius:999px;align-items:center;min-width:0;min-height:34px;padding:0 12px;transition:background .18s,color .18s;display:inline-flex}.site-footer a{align-items:center;min-width:36px;min-height:36px;display:inline-flex}.site-nav a:hover{color:var(--white);background:#ffffff1c}.site-footer a:hover,.text-link:hover,.back-link:hover{color:var(--amber)}.site-header.is-home-header{color:#6b645c;min-height:40px;box-shadow:none;backdrop-filter:none;background:0 0;border-bottom:0;padding:0 40px;position:absolute;top:28px}.site-header.is-home-header .site-nav{color:inherit;backdrop-filter:none;background:0 0;border:0;justify-content:end;gap:20px;padding:0;font-size:1.18rem;font-weight:700}.site-header.is-home-header .site-nav a{min-height:28px;padding:0}.site-header.is-home-header .site-nav a:hover{color:#171717;background:0 0}.site-header.is-home-header .language-switch{color:#6b645c;box-shadow:none;background:#ffffff42;border-color:#6b645c29}.site-header.is-home-header .language-option.is-active{color:#f5f4f0;background:#3b3732}.language-switch{color:#ffffffc7;backdrop-filter:blur(18px)saturate(130%);letter-spacing:0;background:#07090b42;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:3px;min-height:42px;padding:3px;font-size:.72rem;font-weight:900;transition:border-color .18s,background .18s,color .18s;display:inline-flex;box-shadow:0 14px 34px #07090b1f}.language-switch:hover{color:var(--white);border-color:#ffffff42}.language-option{border-radius:999px;place-items:center;min-width:40px;min-height:32px;padding:0 10px;display:inline-grid}.language-option.is-active{color:var(--night);background:#ffffffeb}.portfolio-home{color:#171717;background:#e8e8e3}.portfolio-hero{color:#171717;background:#e8e8e3;min-height:100svh;position:relative;overflow:hidden}.portfolio-hero:before{content:"";pointer-events:none;background:radial-gradient(circle at 52% 82%,#fff6,#0000 30%),linear-gradient(#ffffff21,#0000 46%);position:absolute;inset:0}.portfolio-hero:after{display:none}.landing-intro{z-index:1;align-content:start;min-height:100svh;padding:clamp(118px,11vh,150px) 40px 40px;display:grid;position:relative}.reference-title-mask{overflow:hidden}.reference-hero-title{color:#171717;letter-spacing:0;text-transform:uppercase;white-space:nowrap;overflow-wrap:normal;word-break:keep-all;max-width:none;margin:0;font-size:clamp(5.6rem,12vw,14rem);font-weight:900;line-height:1;animation:.98s cubic-bezier(.18,.88,.24,1) .12s forwards reference-title-rise;transform:translateY(112%)}.reference-hero-grid{grid-template-columns:minmax(280px,.9fr) minmax(300px,466px) minmax(260px,.86fr);align-items:end;gap:clamp(30px,4vw,64px);min-height:576px;margin-top:20px;display:grid}.reference-hero-copy{opacity:0;align-content:start;justify-items:start;gap:52px;max-width:600px;min-height:576px;padding-top:12px;animation:.72s cubic-bezier(.22,.85,.28,1) .6s forwards reference-fade-up;display:grid;transform:translateY(24px)}.reference-hero-arrow{color:#8d8978;font-size:2.4rem;line-height:1}.reference-hero-copy p{color:#6b645c;max-width:23ch;margin:0;font-size:1.9rem;font-weight:500;line-height:1.36}.reference-contact-button{color:#f5f4f0;text-transform:uppercase;background:#3b3732;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:70px;padding:0 38px;font-size:1.08rem;font-weight:900;transition:background .18s,color .18s,transform .18s;display:inline-flex}.reference-contact-button:hover{color:#fff;background:#171717;transform:translateY(-2px)}.reference-hero-image{aspect-ratio:.8;opacity:0;background:#d6d5cf;border-radius:8px;align-self:end;width:100%;margin:0;animation:.9s cubic-bezier(.18,.88,.24,1) .36s forwards reference-image-in;overflow:hidden;transform:translateY(28px)scale(.985)}.reference-hero-image img{object-fit:cover;filter:grayscale()contrast(.96)brightness(1.16);width:100%;height:100%;transform:scale(1.04)}.reference-availability{color:#3b3732;text-align:right;opacity:0;align-self:end;justify-items:end;gap:8px;min-height:176px;animation:.76s cubic-bezier(.22,.85,.28,1) .76s forwards reference-fade-up;display:grid;transform:translateY(24px)}.reference-availability span{color:#6b645c;text-transform:uppercase;font-size:1rem;font-weight:800;line-height:1.2}.reference-availability strong{letter-spacing:0;white-space:nowrap;font-size:clamp(4.8rem,7vw,8.8rem);font-weight:900;line-height:.9;display:block}.home-project-meta span,.home-writing-row span{color:var(--electric);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:900}.portfolio-section-heading{max-width:980px;margin-bottom:clamp(34px,4.4vw,58px)}.portfolio-section-heading.compact{margin-bottom:0}.portfolio-section-heading.compact h2{max-width:100%;font-size:clamp(2.4rem,4.2vw,5.2rem)}.portfolio-section-heading h2{overflow-wrap:normal;word-break:keep-all;text-wrap:balance;max-width:12.4ch;margin:0;font-size:clamp(2.8rem,5.4vw,6.5rem);line-height:.94}.portfolio-section-heading p:not(.eyebrow){max-width:760px;color:var(--muted);margin:22px 0 0;font-size:clamp(1rem,1.12vw,1.12rem);line-height:1.74}.home-project-card p,.home-project-card li{color:var(--muted);line-height:1.68}.skill-marquee-section{background:linear-gradient(#fff,#f5f4f0f5),repeating-linear-gradient(90deg,#11141608 0 1px,#0000 1px 44px);grid-template-columns:minmax(420px,.42fr) minmax(0,1fr);gap:clamp(36px,6vw,88px);padding:clamp(76px,8vw,124px) 0 clamp(76px,8vw,124px) clamp(24px,7vw,104px);display:grid;overflow:hidden}.skill-marquee-section.is-compact{background:linear-gradient(120deg, var(--night), var(--graphite) 58%, #17110d);padding:clamp(46px,5vw,70px) 0;display:block}.skill-marquee{align-content:center;gap:14px;min-width:0;display:grid;mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.skill-marquee-row{overflow:hidden}.skill-marquee-track{gap:14px;width:max-content;animation:36s linear infinite skill-marquee;display:flex}.skill-marquee-row.is-reverse .skill-marquee-track{animation-duration:42s;animation-direction:reverse}.skill-marquee:hover .skill-marquee-track{animation-play-state:paused}.skill-pill,.skill-tile{--skill-accent:var(--teal)}.skill-pill{border:1px solid var(--line);min-width:188px;min-height:74px;color:var(--ink);background:#ffffffdb;border-radius:8px;align-items:center;gap:14px;padding:14px 18px;transition:border-color .18s,box-shadow .18s,transform .18s;display:inline-flex;box-shadow:0 14px 32px #1114160e}.skill-pill:hover{border-color:color-mix(in srgb, var(--skill-accent) 38%, transparent);transform:translateY(-2px);box-shadow:0 18px 42px #11141617}.skill-marquee-section.is-compact .skill-pill{color:var(--white);box-shadow:none;background:#ffffff12;border-color:#ffffff21}.skill-pill span:last-child{font-size:.96rem;font-weight:900;line-height:1.18}.skill-icon{border:1px solid color-mix(in srgb, var(--skill-accent) 40%, transparent);width:42px;height:42px;color:var(--skill-accent);background:color-mix(in srgb, var(--skill-accent) 10%, transparent);border-radius:8px;flex:none;place-items:center;display:inline-grid}.skill-icon svg{fill:currentColor;width:22px;height:22px}.skill-icon svg.custom-skill-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px}.skills-page-band{background:linear-gradient(#fff,#fbfaf7f5)}.skill-group-list{gap:clamp(30px,4vw,54px);width:100%;max-width:1180px;margin:0 auto;display:grid}.skill-group-panel{border-top:1px solid var(--line);align-items:start;gap:clamp(18px,2.6vw,32px);padding-top:clamp(22px,2.8vw,34px);display:grid}.skill-group-heading{justify-content:space-between;align-items:baseline;gap:24px;display:flex}.skill-group-heading span{color:var(--muted);letter-spacing:.08em;order:2;font-size:clamp(.82rem,.9vw,.98rem);font-weight:900}.skill-group-heading h2{overflow-wrap:normal;word-break:keep-all;text-wrap:balance;margin:0;font-size:clamp(2.6rem,5vw,6.3rem);line-height:.92}.skill-grid-panel{grid-template-columns:repeat(auto-fit,minmax(138px,168px));justify-content:center;gap:14px;display:grid}.skill-tile{border:1px solid var(--line);background:linear-gradient(145deg, #fffffff5, #f5f4f0d1), radial-gradient(circle at 50% 18%, color-mix(in srgb, var(--skill-accent) 15%, transparent), transparent 34%);border-radius:8px;align-content:center;place-items:center;gap:16px;min-height:128px;padding:20px 14px;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid;box-shadow:0 10px 26px #11141609}.skill-tile:hover{border-color:color-mix(in srgb, var(--skill-accent) 38%, transparent);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.skill-tile h3{text-align:center;text-wrap:balance;max-width:13ch;margin:0;font-size:clamp(.92rem,.98vw,1.02rem);line-height:1.14}.portfolio-work-preview{background:linear-gradient(180deg, var(--paper), #fff);grid-template-columns:minmax(420px,.42fr) minmax(0,1fr);gap:clamp(36px,6vw,88px);display:grid}.home-project-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:980px;display:grid}.home-project-card{border:1px solid var(--line);background:var(--white);border-radius:8px;grid-template-rows:auto auto auto 1fr auto;gap:16px;min-height:430px;padding:26px;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid;position:relative;box-shadow:0 18px 44px #1114160d}.home-project-card:hover{box-shadow:var(--shadow-hover);border-color:#0f766e3d;transform:translateY(-2px)}.home-project-card:before{content:"";background:linear-gradient(90deg, var(--teal), var(--amber), var(--wine));height:3px;position:absolute;top:0;left:26px;right:26px}.home-project-meta{gap:8px;display:grid}.home-project-meta span,.home-project-meta span{color:var(--teal)}.home-project-meta time{color:var(--muted);font-size:.82rem;font-weight:800}.home-project-card h3{text-wrap:balance;word-break:keep-all;margin:6px 0 0;font-size:clamp(1.24rem,1.65vw,1.72rem);line-height:1.12}.home-project-card p{margin:0}.home-project-card ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.home-project-card li{padding-left:18px;font-size:.92rem;position:relative}.home-project-card li:before{content:"";background:var(--teal);width:7px;height:2px;position:absolute;top:.78em;left:0}.portfolio-writing-preview{color:var(--white);background:linear-gradient(115deg,#07090bfa,#101416f0 56%,#17110df2),url(/images/hero-cloud-workbench.png) 50%/cover;grid-template-columns:minmax(420px,.42fr) minmax(0,1fr);gap:clamp(36px,6vw,88px);display:grid}.portfolio-writing-preview .portfolio-section-heading p:not(.eyebrow){color:#ffffffa8}.home-writing-list{border-top:1px solid #ffffff29;max-width:960px;display:grid}.home-writing-row{border-bottom:1px solid #ffffff29;grid-template-columns:minmax(130px,.24fr) minmax(220px,.46fr) minmax(300px,1fr);align-items:start;gap:24px;min-height:128px;padding:24px 0;transition:color .18s,transform .18s;display:grid}.home-writing-row:hover{transform:translate(4px)}.home-writing-row strong{text-wrap:balance;word-break:keep-all;font-size:clamp(1.18rem,1.7vw,1.64rem);line-height:1.16}.home-writing-row p{color:#ffffffa8;margin:0;line-height:1.72}.portfolio-contact-strip{color:var(--white);background:linear-gradient(120deg, var(--night), var(--graphite) 58%, #17110d);justify-content:space-between;align-items:end;gap:clamp(28px,6vw,96px);display:flex}.portfolio-contact-strip div{max-width:900px}.portfolio-contact-strip h2{overflow-wrap:normal;word-break:keep-all;text-wrap:balance;max-width:13ch;margin:0;font-size:clamp(2.7rem,5.2vw,6.1rem);line-height:.94}.portfolio-contact-strip p:not(.eyebrow){color:#ffffffad;max-width:720px;font-size:clamp(1rem,1.12vw,1.12rem);line-height:1.72}.hero-shell{min-height:82vh;color:var(--white);background:var(--night);align-items:center;display:grid;position:relative;overflow:hidden}.hero-image{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.hero-overlay{background:linear-gradient(90deg,#07090bf2 0%,#07090bbf 42%,#07090b33 78%),linear-gradient(#07090b2e 0%,#07090bb8 100%);position:absolute;inset:0}.hero-content{z-index:2;width:min(720px,100% - 36px);margin-left:clamp(18px,8vw,112px);padding-top:64px;position:relative}.eyebrow{color:var(--amber);letter-spacing:.06em;text-transform:uppercase;margin:0 0 14px;font-size:.78rem;font-weight:800}h1,h2,h3,p{overflow-wrap:anywhere}h1{letter-spacing:0;max-width:12ch;margin:0;font-size:clamp(3.4rem,8.8vw,7.6rem);line-height:.94}.hero-subtitle{color:#ffffffc2;max-width:640px;margin:22px 0 0;font-size:clamp(1rem,1.2vw,1.12rem);line-height:1.7}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.button{border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;min-height:46px;padding:0 18px;font-weight:800;transition:background .18s,border-color .18s,color .18s,transform .18s;display:inline-flex}.button.primary{color:var(--night);background:var(--white)}.button.secondary{color:var(--white);background:#ffffff14;border-color:#ffffff4d}.button:hover{transform:translateY(-1px)}.section-band{padding:clamp(76px,8vw,124px) clamp(18px,6vw,86px);position:relative}.intro-band{background:linear-gradient(#fff,#f5f4f0eb),repeating-linear-gradient(90deg,#0f766e09 0 1px,#0000 1px 44px)}.writing-band{background:var(--graphite);color:var(--white)}.resume-band{background:linear-gradient(#fff,#fbfaf7f5),repeating-linear-gradient(90deg,#11141608 0 1px,#0000 1px 42px)}.resume-download-band{background:linear-gradient(#fffffffa,#fbfaf7f2),repeating-linear-gradient(90deg,#11141607 0 1px,#0000 1px 42px);padding:clamp(26px,3.4vw,42px) clamp(18px,6vw,86px)}.resume-download-shell{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:clamp(18px,3vw,34px);max-width:1280px;margin:0 auto;padding:clamp(18px,2.6vw,28px) 0;display:grid}.resume-download-copy{gap:8px;display:grid}.resume-download-copy .eyebrow{margin:0}.resume-download-copy h2{overflow-wrap:normal;word-break:keep-all;margin:0;font-size:clamp(1.7rem,3.2vw,3.1rem);line-height:.98}.resume-download-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.resume-download-button{min-width:min(248px,100%);min-height:76px;color:var(--ink);background:#ffffffdb;border:1px solid #11141621;border-radius:8px;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;padding:12px 16px;transition:border-color .18s,box-shadow .18s,transform .18s,background .18s,color .18s;display:grid;box-shadow:0 14px 34px #1114160a}.resume-download-button:hover{border-color:#11141642;transform:translateY(-2px);box-shadow:0 18px 44px #11141614}.resume-download-button.is-primary{color:var(--white);background:linear-gradient(135deg, var(--graphite), #2d2925);border-color:#111416eb;box-shadow:0 18px 46px #11141629}.resume-download-token{width:48px;height:48px;color:var(--graphite);background:#f5f4f0eb;border:1px solid #11141624;border-radius:8px;place-items:center;font-size:.72rem;font-weight:900;display:inline-grid}.resume-download-button.is-primary .resume-download-token{color:var(--white);background:#ffffff1a;border-color:#ffffff2e}.resume-download-button strong,.resume-download-button small{line-height:1.2;display:block}.resume-download-button strong{font-size:.98rem}.resume-download-button small{color:var(--muted);text-transform:uppercase;margin-top:5px;font-size:.74rem;font-weight:800}.resume-download-button.is-primary small{color:#ffffffad}.section-heading{max-width:900px;margin-bottom:clamp(34px,4vw,54px)}.section-heading h2,.page-hero-copy h1{overflow-wrap:normal;word-break:keep-all;text-wrap:balance;margin:0;font-size:clamp(2.8rem,5.2vw,5.8rem);line-height:.96}.section-heading p:not(.eyebrow){max-width:800px;color:var(--muted);font-size:clamp(1rem,1.12vw,1.12rem);line-height:1.74}.writing-band .section-heading p:not(.eyebrow),.writing-band .latest-row p{color:#ffffffad}.project-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;max-width:1360px;margin:0 auto;display:grid}.project-card{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;transition:border-color .18s,box-shadow .18s,transform .18s;position:relative;overflow:hidden}.project-card:hover{box-shadow:var(--shadow-hover);border-color:#0f766e33;transform:translateY(-2px)}.project-card{background:linear-gradient(145deg,#fffffffa,#fbfaf7eb),repeating-linear-gradient(90deg,#0f766e0a 0 1px,#0000 1px 34px);grid-column:span 4;grid-template-rows:auto auto auto 1fr auto;align-content:start;gap:16px;min-height:430px;padding:28px;display:grid}.project-card:first-child,.project-card:nth-child(2){grid-column:span 6;min-height:470px}.project-card:before{content:"";background:linear-gradient(90deg, var(--teal), var(--amber), var(--wine));transform-origin:0;height:3px;transition:transform .18s;position:absolute;top:0;left:24px;right:24px;transform:scaleX(.32)}.project-card:hover:before{transform:scaleX(1)}.project-card:after,.resume-card:after{content:"";opacity:.9;pointer-events:none;border-bottom:1px solid #0f766e2e;border-right:1px solid #0f766e2e;width:64px;height:64px;position:absolute;bottom:18px;right:20px}.project-meta p,.latest-row span,.latest-row time,.post-row-meta,.post-row-footer,.post-kicker{color:var(--teal);text-transform:uppercase;font-size:.78rem;font-weight:800}.project-meta{flex-wrap:wrap;align-items:start;gap:10px 14px;display:flex}.project-meta p{margin:0}.project-meta time{color:var(--muted);font-size:.82rem;font-weight:800}.project-card h3{text-wrap:balance;word-break:keep-all;margin:8px 0 0;font-size:clamp(1.28rem,1.7vw,1.78rem);line-height:1.13}.project-card>span{color:var(--muted);line-height:1.68}.project-highlights{gap:10px;margin:0;padding:0;list-style:none;display:grid}.project-highlights li{color:#2b3035;padding-left:18px;font-size:.9rem;line-height:1.56;position:relative}.project-highlights li:before{content:"";background:var(--teal);width:7px;height:2px;position:absolute;top:.72em;left:0}.tag-list{flex-wrap:wrap;align-self:end;gap:8px;display:flex}.tag-list span{min-height:30px;color:var(--teal);background:#0f766e0f;border:1px solid #0f766e38;border-radius:3px;align-items:center;padding:4px 10px;font-size:.78rem;font-weight:800;line-height:1.3;display:inline-flex}.latest-list{border-top:1px solid #ffffff2e;max-width:1280px;display:grid}.latest-row{border-bottom:1px solid #ffffff2e;grid-template-columns:minmax(130px,.2fr) minmax(280px,.48fr) minmax(280px,1fr);gap:28px;padding:26px 0;display:grid}.latest-row div{align-content:start;gap:8px;display:grid}.latest-row h3{margin:0;font-size:clamp(1.22rem,1.8vw,1.72rem);line-height:1.16}.latest-row p{margin:0;line-height:1.7}.text-link,.back-link{width:fit-content;min-height:36px;color:var(--amber);align-items:center;margin-top:28px;font-weight:900;display:inline-flex}.text-link{gap:8px}.text-link:after{content:"->";font-weight:900}.resume-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.resume-list p{border-left:4px solid var(--wine);background:var(--paper);min-height:140px;margin:0;padding:24px;line-height:1.7}.resume-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:1280px;margin:0 auto;display:grid}.resume-card{border:1px solid var(--line);background:linear-gradient(145deg,#fffffffa,#fbfaf7eb),repeating-linear-gradient(90deg,#11141608 0 1px,#0000 1px 34px);border-radius:8px;min-height:230px;padding:28px;position:relative;overflow:hidden;box-shadow:0 14px 36px #1114160b}.resume-card p{color:var(--wine);text-transform:uppercase;margin:0 0 28px;font-size:.78rem;font-weight:900}.resume-card h3{text-wrap:balance;margin:0 0 12px;font-size:clamp(1.14rem,1.45vw,1.42rem);line-height:1.18}.resume-card span{color:var(--muted);line-height:1.65;display:block}.achievement-band{background:linear-gradient(135deg, var(--night), #101416 55%, #17110d);color:var(--white)}.achievement-list{border-top:1px solid #fff3;grid-template-columns:1fr;max-width:1080px;display:grid}.achievement-row{border-bottom:1px solid #fff3;grid-template-columns:minmax(128px,.2fr) minmax(0,1fr);align-items:start;gap:30px;padding:30px 0;transition:border-color .18s,transform .18s;display:grid;position:relative}.achievement-row:hover{border-color:#5dead86b;transform:translate(4px)}.achievement-row h3{color:var(--white);text-wrap:balance;margin:0 0 8px;font-size:clamp(1.2rem,1.75vw,1.74rem);line-height:1.16}.achievement-row p,.achievement-row time,.achievement-row span{margin:0;line-height:1.7}.achievement-row>div:first-child p{color:var(--teal);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:900}.achievement-row time,.achievement-row span{color:#ffffff9e}.achievement-row time{margin-top:10px;font-size:.86rem;font-weight:800;display:block}.credential-band{background:linear-gradient(#fff,#fbfaf7f5)}.compact-credential-list{border-top:1px solid var(--line);max-width:1000px;display:grid}.compact-credential-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(180px,.3fr) minmax(220px,.45fr) minmax(160px,1fr);align-items:center;gap:18px;min-height:72px;padding:20px 0;display:grid}.compact-credential-row time{color:var(--wine);text-transform:uppercase;font-size:.8rem;font-weight:900}.compact-credential-row h3{margin:0;font-size:1.08rem}.compact-credential-row span{color:var(--muted);line-height:1.6}.contact-page-band{background:linear-gradient(135deg, var(--night), #101416 58%, #17110d);min-height:0;color:var(--white);padding-top:clamp(32px,3.8vw,56px);padding-bottom:clamp(68px,7vw,108px)}.contact-link-list{background:linear-gradient(145deg,#ffffff14,#ffffff09),repeating-linear-gradient(90deg,#ffffff09 0 1px,#0000 1px 38px);border:1px solid #ffffff24;border-radius:8px;width:min(1080px,100%);margin:0 auto;display:grid;box-shadow:0 30px 80px #00000038}.contact-link-list a{border-bottom:1px solid #ffffff1f;grid-template-columns:minmax(120px,.2fr) minmax(220px,1fr);align-items:center;gap:clamp(20px,4vw,64px);min-height:96px;padding:20px 28px;transition:background .18s,transform .18s;display:grid}.contact-link-list a:hover{background:#ffffff0e;transform:translate(3px)}.contact-link-list a:last-child{border-bottom:0}.contact-link-list span{color:var(--electric);text-transform:uppercase;font-size:.78rem;font-weight:900}.contact-link-list strong{color:var(--white);overflow-wrap:anywhere;font-size:clamp(1.2rem,2.6vw,2.2rem);line-height:1.12}.site-footer{color:#ffffffc7;background:var(--night);justify-content:space-between;gap:24px;padding:34px clamp(18px,6vw,86px);display:flex}.site-footer p{margin:6px 0 0}.site-footer nav{flex-wrap:wrap;gap:18px;display:flex}.subpage-hero,.post-hero{color:var(--white);background:linear-gradient(#ffffff0a,#0000 38%),repeating-linear-gradient(90deg,#5eead40d 0 1px,#0000 1px 58px),linear-gradient(118deg,#07090b 0%,#101416 64%,#16110f 100%);padding:clamp(88px,8vw,126px) clamp(18px,7vw,98px) clamp(24px,3.2vw,40px);position:relative;overflow:hidden}.subpage-hero:before,.post-hero:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff0c 1px,#0000 1px),linear-gradient(90deg,#ffffff0c 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;mask-image:linear-gradient(#000 0%,#000000b8 68%,#0000 100%)}.subpage-hero:after,.post-hero:after{content:"";background:linear-gradient(90deg, var(--electric), #b87933b8, transparent);pointer-events:none;height:1px;position:absolute;bottom:0;left:clamp(18px,7vw,98px);right:clamp(18px,7vw,98px)}.page-hero-shell{z-index:1;width:min(1360px,100%);margin:0 auto;position:relative}.page-hero-copy{grid-template-columns:minmax(150px,.22fr) minmax(0,1fr);align-items:end;gap:clamp(24px,4vw,70px);display:grid}.page-hero-copy:before{content:"";background:linear-gradient(90deg, var(--electric), var(--amber), transparent);grid-column:1/-1;width:min(210px,24vw);height:2px}.page-hero-meta{border-left:1px solid #ffffff2e;align-content:end;gap:10px;min-height:clamp(70px,7vw,118px);padding-left:16px;display:grid}.page-hero-meta .eyebrow{color:#ffffffad;margin:0}.page-hero-copy h1{max-width:14.5ch;color:var(--white);letter-spacing:0;overflow-wrap:normal;text-wrap:balance;word-break:keep-all;margin:0;font-size:clamp(3rem,5.4vw,6.8rem);line-height:.93}.page-hero-back{min-height:0;color:var(--electric);letter-spacing:.06em;text-transform:uppercase;margin-top:0;font-size:.76rem}.blog-explorer{--blog-index-width:1180px;background:linear-gradient(#fff,#fbfaf7f5),repeating-linear-gradient(90deg,#11141608 0 1px,#0000 1px 42px);justify-items:center;padding:clamp(42px,4.8vw,68px) clamp(18px,6vw,86px) clamp(86px,8vw,132px);display:grid}.subpage-hero+.section-band,.subpage-hero+.skill-marquee-section,.subpage-hero+.blog-explorer{padding-top:clamp(28px,3.2vw,48px)}.resume-download-band+.resume-band{padding-top:clamp(36px,3.8vw,58px)}.blog-controls{width:100%;max-width:var(--blog-index-width);border-top:1px solid #1114161f;border-bottom:1px solid #1114161f;grid-template-columns:minmax(280px,1fr) minmax(220px,300px);gap:clamp(18px,3vw,34px);margin-bottom:clamp(28px,4vw,48px);padding:18px 0;display:grid}.blog-controls label{color:var(--muted);gap:8px;font-size:.82rem;font-weight:800;display:grid}.blog-controls input,.blog-controls select{border:1px solid var(--line);width:100%;min-height:54px;color:var(--ink);background:var(--white);font:inherit;border-radius:4px;padding:0 16px;box-shadow:0 1px #11141608}.blog-controls input:focus,.blog-controls select:focus{border-color:#0f766e73;outline:3px solid #0f766e1f}.post-list{width:100%;max-width:var(--blog-index-width);border-top:1px solid #11141624;display:grid}.post-row{border-bottom:1px solid #1114161f;grid-template-columns:minmax(142px,.22fr) minmax(0,1fr);align-items:start;gap:clamp(28px,5vw,72px);padding:clamp(30px,4.2vw,56px) 0;transition:border-color .18s,background-color .18s;display:grid;position:relative}.post-row:before{content:"";background:linear-gradient(90deg, var(--teal), var(--amber));opacity:0;transform-origin:0;width:96px;height:1px;transition:opacity .18s,transform .18s;position:absolute;top:-1px;left:0;transform:scaleX(.42)}.post-row:hover{background:linear-gradient(90deg,#0f766e0b,#0000 44%);border-bottom-color:#0f766e47}.post-row:hover:before{opacity:1;transform:scaleX(1)}.post-row-main{gap:16px;max-width:860px;display:grid}.post-row h2{text-wrap:balance;word-break:keep-all;margin:0;font-size:clamp(1.35rem,2.15vw,2.24rem);line-height:1.08}.post-row h2 a{color:var(--ink);text-decoration:none;transition:color .18s;display:block}.post-row h2 a:hover{color:var(--teal)}.post-row p{color:var(--muted);margin:0;font-size:clamp(1rem,1.08vw,1.1rem);line-height:1.72}.post-row-meta,.post-row-footer,.post-kicker{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.post-row-meta{letter-spacing:.04em;align-content:start;gap:10px;padding-top:5px;display:grid}.post-row-meta time{color:var(--muted);text-transform:none;font-weight:700}.post-row-footer{color:var(--muted);justify-content:space-between;gap:16px;padding-top:4px}.post-row-tags{max-width:620px}.empty-state{color:var(--muted);margin:40px 0}.post-detail{background:linear-gradient(180deg, var(--paper), #fff 34%, var(--paper))}.article-hero .page-hero-copy h1{max-width:17ch;font-size:clamp(2.45rem,4.3vw,5.4rem);line-height:.98}.article-body{width:min(860px,100% - 36px);margin:0 auto;padding:clamp(36px,4vw,58px) 0 clamp(104px,9vw,150px);font-size:clamp(1.05rem,1.1vw,1.12rem);line-height:1.88}.article-body h2,.article-body h3{text-wrap:balance;margin:2.2em 0 .72em;line-height:1.16}.article-body h2{border-top:1px solid var(--line);padding-top:.9em;font-size:clamp(1.75rem,2.4vw,2.55rem)}.article-body h3{font-size:clamp(1.32rem,1.7vw,1.72rem)}.article-body p,.article-body li{color:#252a2e}.article-body ul,.article-body ol{padding-left:1.25em}.article-body a{color:var(--teal);font-weight:800}.article-body img{border:1px solid var(--line);background:var(--white);border-radius:8px;width:100%;height:auto;margin:32px 0}.article-body pre{color:#f7f7f0;background:#111416;border-radius:8px;margin:34px 0;padding:22px;overflow-x:auto}.article-body code{font-size:.92em}.article-body :not(pre)>code{background:#1114160b;border:1px solid #1114161a;border-radius:3px;padding:.12em .34em}.article-body blockquote{border-left:4px solid var(--teal);color:var(--muted);margin:34px 0;padding:4px 0 4px 22px}.article-body table{border-collapse:collapse;width:100%;margin:34px 0;font-size:.95rem}.article-body th,.article-body td{border-bottom:1px solid var(--line);text-align:left;padding:12px 10px}@keyframes skill-marquee{0%{transform:translate(0)}to{transform:translate(calc(-50% - 7px))}}@keyframes reference-title-rise{0%{transform:translateY(112%)}to{transform:translateY(0)}}@keyframes reference-fade-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes reference-image-in{0%{opacity:0;transform:translateY(28px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=980px){.site-header{grid-template-columns:1fr auto}.site-nav{display:none}.project-grid,.resume-list,.resume-grid,.home-project-list{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card,.project-card:first-child,.project-card:nth-child(2){grid-column:auto}.portfolio-work-preview,.portfolio-writing-preview,.skill-marquee-section,.skill-group-panel,.latest-row,.achievement-row,.compact-credential-row,.contact-link-list a{grid-template-columns:1fr}.section-heading{max-width:680px}.portfolio-section-heading.compact{margin-bottom:28px}.site-header.is-home-header{padding:0 24px}.site-header.is-home-header .site-nav{gap:14px;font-size:1rem;display:flex}.landing-intro{padding:128px 24px 34px}.reference-hero-title{font-size:7rem}.reference-hero-grid{grid-template-columns:1fr;gap:34px;min-height:0}.reference-hero-copy{order:2;min-height:0}.reference-hero-image{width:min(100%,420px)}.page-hero-copy{grid-template-columns:1fr;gap:16px}.page-hero-meta{border-top:1px solid #ffffff29;border-left:0;min-height:0;padding:12px 0 0}.reference-availability{text-align:left;order:3;justify-items:start;min-height:0}.reference-availability strong{font-size:6rem}.skill-marquee-section{padding-left:24px;padding-right:0}.home-writing-row{grid-template-columns:minmax(130px,.28fr) minmax(220px,.72fr)}.home-writing-row p{grid-column:2}.skill-grid-panel{grid-template-columns:repeat(auto-fit,minmax(132px,160px))}}@media (width<=680px){.site-header{gap:12px;min-height:64px;padding:12px 16px}.hero-shell{min-height:82vh}.hero-content{width:calc(100% - 32px);margin:0 16px;padding-top:82px}h1{font-size:clamp(3.1rem,16vw,4.9rem)}.hero-subtitle{max-width:29rem;margin-top:18px;font-size:.98rem}.hero-actions{gap:10px;margin-top:24px}.button{min-height:44px;padding:0 16px}.section-band{padding:56px 24px}.resume-download-band{padding:24px}.resume-download-shell{grid-template-columns:1fr;gap:18px}.resume-download-actions{grid-template-columns:1fr;justify-content:stretch;display:grid}.resume-download-button{width:100%;min-width:0}.section-heading{margin-bottom:24px}.section-heading h2,.page-hero-copy h1,.portfolio-section-heading h2,.portfolio-contact-strip h2{font-size:clamp(2rem,11vw,3.1rem)}.subpage-hero,.post-hero{padding:88px 24px 30px}.page-hero-copy{gap:14px}.page-hero-copy:before{width:min(180px,56vw)}.article-hero .page-hero-copy h1{font-size:clamp(2.05rem,10vw,3rem);line-height:1.06}.project-grid,.resume-list,.resume-grid,.achievement-list,.blog-controls,.portfolio-hero,.home-project-list,.home-writing-row{grid-template-columns:1fr}.portfolio-hero{min-height:auto}.landing-intro{min-height:auto;padding:128px 24px 44px}.home-project-card{min-height:0}.reference-hero-title{white-space:normal;font-size:4.8rem}.reference-hero-copy p{max-width:28ch;font-size:1.32rem}.reference-contact-button{min-height:58px;padding:0 28px}.reference-availability strong{font-size:4.2rem}.portfolio-work-preview,.portfolio-writing-preview,.portfolio-contact-strip,.skills-page-band{padding-left:24px;padding-right:24px}.skill-pill{min-width:164px}.skill-grid-panel{grid-template-columns:repeat(2,minmax(128px,156px))}.home-writing-row p{grid-column:auto}.portfolio-contact-strip,.site-footer{display:grid}.latest-row{gap:12px;padding:22px 0}.project-card,.resume-card{padding:22px}.project-card{min-height:0}.blog-explorer{padding:30px 24px 70px}.post-row{grid-template-columns:1fr;gap:14px;padding:26px 0}.post-row-meta,.post-row-footer{display:flex}.article-body{width:calc(100% - 48px);padding:42px 0 76px;font-size:1rem;line-height:1.82}.contact-link-list strong{font-size:clamp(1.1rem,8vw,1.65rem)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reference-hero-title,.reference-hero-copy,.reference-hero-image,.reference-availability{opacity:1;transform:none}}
