@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{color-scheme:dark;--bg:#101211;--panel:#1a1d1b;--ink:#f3f4ed;--muted:#a3aaa4;--line:#333a33;--accent:#c5dc9c;font-family:'DM Sans',sans-serif;font-size:16px;background:var(--bg);color:var(--ink)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:7px}::selection{background:var(--accent);color:var(--bg)}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.header{height:100px;margin:0 56px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-family:Manrope,sans-serif;font-size:28px;letter-spacing:-1.5px;font-weight:750}.wordmark span{font-size:12px;vertical-align:top;display:inline-block;margin:7px 0 0 5px}nav{display:flex;gap:36px;font-size:14px}nav a{padding:12px 0}nav a:hover{color:var(--accent)}nav a:last-child{color:var(--accent)}.hero{padding-top:92px}.eyebrow{font-size:12px;letter-spacing:.13em;font-weight:500;margin:0;color:var(--muted)}.tiny-cross{font-size:22px;vertical-align:middle;margin-right:10px;color:var(--accent)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,sans-serif;font-weight:500}h1{font-size:clamp(64px,8.4vw,128px);line-height:1.08;letter-spacing:-.067em;margin:32px 0 38px}h1 span{color:var(--accent)}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.hero-bottom p{font-size:20px;color:var(--muted);line-height:1.65;margin:0}.pill{display:inline-flex;align-items:center;gap:38px;background:var(--accent);color:var(--bg);padding:19px 24px;border-radius:100px;font-size:14px;font-weight:600;transition:background .2s,transform .2s}.pill:hover{background:#d7edb1;transform:translateY(-3px)}.hero-footer{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;letter-spacing:.13em;margin-top:80px;padding:28px 0;border-bottom:1px solid var(--line)}.section{padding:108px 0;border-bottom:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:48px}h2{font-size:clamp(36px,4vw,58px);line-height:1.15;letter-spacing:-.05em;margin-bottom:28px}.section-head h2{width:58%;margin:0}.project{padding:30px 0;border-top:1px solid var(--line);display:flex;gap:40px}.number{font-size:12px;color:var(--muted)}h3{font-size:30px;letter-spacing:-.035em;margin-bottom:10px}.project p{color:var(--muted);margin:0}.about{display:grid;grid-template-columns:42% 58%}.about p:not(.eyebrow){font-size:18px;color:var(--muted);line-height:1.8;max-width:650px}.stack{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.stack span{padding:10px 16px;border:1px solid var(--line);border-radius:50px;font-size:14px}.contact .eyebrow{margin-bottom:36px}.contact h2{font-size:clamp(56px,7vw,100px)}.contact h2 span{color:var(--accent)}.contact p:not(.eyebrow){line-height:1.75;color:var(--muted);font-size:18px}.email{display:inline-flex;align-items:center;gap:40px;font-size:clamp(20px,3vw,38px);letter-spacing:-.04em;border-bottom:1px solid var(--accent);padding:18px 0;color:var(--accent)}.phone{display:block;width:fit-content;color:var(--muted);margin-top:24px}.footer{padding-block:32px;display:flex;justify-content:space-between;gap:24px;color:var(--muted);font-size:12px}.footer a{color:var(--ink)}.skip{position:absolute;left:16px;top:-70px;background:var(--accent);color:#101211;padding:12px;z-index:10}.skip:focus{top:16px}@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{height:82px;margin-inline:20px}.wordmark{font-size:24px}nav{gap:20px;font-size:13px}.hero{padding-top:66px}h1{font-size:clamp(52px,11vw,76px);margin-block:30px}.hero-bottom{display:block}.hero-bottom p{font-size:17px}.pill{margin-top:30px}.hero-footer{margin-top:48px;gap:30px;font-size:10px;line-height:1.7}.hero-footer span:last-child{text-align:right}.section{padding-block:66px}.section-head{display:block}.section-head .eyebrow{margin-bottom:28px}.section-head h2{width:100%}.about{grid-template-columns:1fr;gap:28px}.about p:not(.eyebrow){font-size:16px}.footer{flex-wrap:wrap;font-size:12px}.footer>span:nth-child(2){display:none}.email{gap:14px}.eyebrow{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:54px 32px;align-items:start}.work-card{min-width:0}.work-card summary{list-style:none;cursor:pointer}.work-card summary::-webkit-details-marker{display:none}.project-visual{height:340px;padding:38px;overflow:hidden;display:flex;align-items:center;justify-content:center;border-radius:3px;background:#252a25}.project-visual img{display:block;max-width:100%;width:100%;height:auto;box-shadow:0 18px 45px #0004;transition:transform .6s cubic-bezier(.2,.7,.2,1);border-radius:4px}.solar{background:#293129}.train{background:#272e38;padding:34px 34px 0;align-items:flex-start}.train img{object-fit:cover;object-position:top}.crm{background:#2d2926}.mobile{background:#1f2b2c;gap:24px;padding:34px 50px 0;align-items:flex-start}.mobile img{width:42%;border-radius:18px}.mobile img:nth-child(2){margin-top:32px}.work-card summary:hover .project-visual img{transform:translateY(-6px)}.card-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:24px}.category{font-size:11px;letter-spacing:.1em;color:var(--muted);margin:0 0 10px}.card-heading h3{font-size:28px;margin:0}.expand{width:40px;height:40px;display:grid;place-items:center;border:1px solid #41473f;border-radius:50%;font-size:25px;color:var(--accent);transition:transform .3s}.work-card[open] .expand{transform:rotate(45deg)}.card-summary{font-size:16px;color:var(--muted);line-height:1.7;max-width:470px;margin:14px 0}.detail-label{font-size:14px;color:var(--accent);display:inline-block;padding:8px 0}.detail-label span{margin-left:8px}.case-body{margin-top:20px;padding:26px;border:1px solid var(--line);border-radius:3px;background:#161916}.case-body h4{font-size:16px;font-weight:500;margin:0 0 14px}.case-body p,.case-body li{font-size:16px;color:var(--muted);line-height:1.7}.case-body ul{padding-left:20px;margin-bottom:0}.case-body li{margin-block:8px}.case-body .stack span{font-size:12px;padding:8px 12px}.more-work{border-top:1px solid var(--line);margin-top:56px;padding-top:28px}.more-work>p:last-child{max-width:900px;line-height:2.2;font-size:16px;color:var(--muted);margin:18px 0 0}.more-work span{margin:0 12px;color:#626b61}.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}.reveal.arrived,.reveal:focus-within{opacity:1;transform:none}.hero .eyebrow,h1,.hero-bottom{animation:enter .8s both}.hero h1{animation-delay:.08s}.hero-bottom{animation-delay:.16s}@keyframes enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media(min-width:1600px){.header{margin-inline:auto;width:1280px}}@media(max-width:1050px){.project-visual{height:270px;padding:25px}.mobile{padding:30px 40px 0;gap:15px}.train{padding-bottom:0}.card-heading h3{font-size:25px}}@media(max-width:700px){.work-grid{grid-template-columns:1fr;gap:40px}.project-visual{height:280px;padding:25px}.mobile{padding:26px 45px 0}.train{padding-bottom:0}.card-heading h3{font-size:27px}.case-body{padding:22px}.contact .email{font-size:clamp(17px,5vw,28px);letter-spacing:-.04em}.header nav{gap:18px}.wordmark span{display:none}.more-work span{margin-inline:7px}}@media(max-width:370px){.header nav{gap:13px}.wordmark{font-size:22px}.project-visual{height:230px}.hero .eyebrow{font-size:10px;letter-spacing:.06em}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}
.index-shortcut{display:inline-block;color:var(--accent);font-size:14px;margin-top:20px;padding:6px 0}.project-link{display:block}.project-link:hover .project-visual img{transform:translateY(-6px)}.project-link .expand{font-size:20px}.project-link:hover .expand{background:var(--accent);color:var(--bg)}.project-count{margin-top:18px;color:var(--muted);font-size:16px}.catalog-group{display:grid;grid-template-columns:32% 68%;margin-top:50px}.catalog-label{font-size:20px;letter-spacing:-.025em;margin-top:22px}.catalog-label span{font-size:12px;color:var(--muted);margin-left:14px;font-family:'DM Sans',sans-serif;letter-spacing:0}.catalog-row{display:flex;align-items:center;gap:24px;border-top:1px solid var(--line);padding:24px 4px;transition:background .2s,padding .2s}.catalog-row:last-child{border-bottom:1px solid var(--line)}.catalog-row:hover{padding-inline:14px;background:#1a1d18}.catalog-number{color:var(--muted);font-size:12px;align-self:flex-start;padding-top:5px}.catalog-row h4{font-family:Manrope,sans-serif;font-size:20px;font-weight:500;letter-spacing:-.025em;line-height:1.35;margin:0}.catalog-row p{font-size:13px;color:var(--muted);margin:8px 0 0;line-height:1.5}.row-arrow{margin-left:auto;font-size:22px;color:var(--accent);flex-shrink:0}.project-page{padding-top:38px}.back-link{display:inline-block;font-size:14px;color:var(--muted);padding:8px 0}.back-link:hover{color:var(--accent)}.project-intro{padding:64px 0 56px;border-bottom:1px solid var(--line)}.project-intro h1{font-size:clamp(42px,6vw,84px);letter-spacing:-.055em;line-height:1.12;margin:24px 0 28px;max-width:1000px;overflow-wrap:break-word}.project-lead{font-size:22px;line-height:1.7;color:var(--muted);max-width:900px;margin:0}.project-body{display:grid;grid-template-columns:30% 1fr;gap:8%;padding:64px 0}.project-meta h2{font:500 14px 'DM Sans',sans-serif;letter-spacing:0}.project-meta .stack{margin-top:20px}.project-meta .stack span{font-size:13px;padding:9px 13px}.project-story h2{font-size:32px;margin:0 0 30px}.contributions ul{padding-left:22px;margin:0}.contributions li{font-size:18px;line-height:1.75;color:var(--muted);padding-left:6px;margin-bottom:18px}.contributions li::marker{color:var(--accent)}.features{margin-top:52px}.features:first-child{margin-top:0}.features article{border-top:1px solid var(--line);padding:24px 0}.features h3{font-size:21px;margin:0 0 12px}.features p{font-size:17px;line-height:1.75;color:var(--muted);margin:0}.project-gallery{padding:56px 0;border-top:1px solid var(--line)}.gallery-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:24px}.gallery-heading h2{font-size:34px}.gallery-heading p{color:var(--muted);font-size:14px}.screens{display:grid;grid-template-columns:1fr 1fr;gap:38px 24px;align-items:start}.screens figure{margin:0;min-width:0}.screens figure>a{display:block;background:#1d231e;padding:16px;border:1px solid var(--line);transition:border-color .2s}.screens figure>a:hover{border-color:var(--accent)}.screens img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}.screens figcaption{font-size:14px;color:var(--muted);margin-top:14px;line-height:1.5}.mobile-gallery .screens{grid-template-columns:repeat(3,1fr);gap:36px}.mobile-gallery .screens img{width:auto;max-width:100%;max-height:550px;margin:auto}.screens figure:only-child{grid-column:1/-1}.project-end{padding:32px 0;border-block:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px}.project-end a{font-size:16px;color:var(--accent)}.project-end a:last-child{text-align:right;max-width:65%;line-height:1.5}.project-end span{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.project-contact{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:70px 0}.project-contact h2{font-size:36px;margin:0}.referral-contact{font-size:18px;line-height:1.7;color:var(--muted)}.referral-contact a{color:var(--accent)}@media(max-width:850px){.catalog-group{grid-template-columns:1fr;gap:12px}.catalog-label{margin:0 0 12px}.project-body{grid-template-columns:1fr;gap:48px}.project-meta .stack{max-width:650px}.project-intro{padding-top:42px}.project-lead{font-size:19px}.mobile-gallery .screens{grid-template-columns:repeat(2,1fr);gap:24px}}@media(max-width:700px){.catalog-row h4{font-size:18px}.catalog-row{gap:16px}.project-count{margin-bottom:26px}.project-intro h1{font-size:44px}.project-body{padding-top:38px}.contributions li{font-size:16px}.screens{grid-template-columns:1fr}.gallery-heading{display:block}.gallery-heading h2{margin-bottom:12px}.project-gallery{padding-top:38px}.mobile-gallery .screens{gap:26px 14px}.mobile-gallery .screens figure>a{padding:8px}.project-contact{display:block}.project-contact .pill{margin-top:24px}.project-end a{font-size:14px}.project-contact h2{font-size:30px}.catalog-group{margin-top:36px}}@media(min-width:701px) and (max-width:1050px){.project-visual.train{padding-top:25px}}
/* Source by Pros: full-width editorial case study. */
.visual-case .project-intro{display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center;padding:64px 0 72px;border:0}
.visual-case .project-intro h1{font-size:clamp(64px,7.5vw,108px);line-height:1;max-width:6.5ch;margin:28px 0;letter-spacing:-.065em}
.visual-case .project-lead{max-width:420px;font-size:20px;line-height:1.7}
.visual-case .project-intro .index-shortcut{margin-top:30px;padding:14px 22px;border:1px solid #57614a;border-radius:100px;font-size:15px}
.visual-case .project-intro .index-shortcut:hover{background:var(--accent);color:var(--bg)}
.source-cover{display:flex;align-items:center;justify-content:center;gap:6%;padding:40px 28px;background:radial-gradient(ellipse at 50% 40%,#364337,#1b231e 65%);border:1px solid #303d32;border-radius:24px;min-width:0}
.source-cover img{width:43%;height:auto;display:block;border-radius:18px;box-shadow:0 24px 40px #0008;outline:1px solid #ffffff12}
.source-cover img:first-child{transform:translateY(-12px) rotate(-5deg)}
.source-cover img:last-child{transform:translateY(12px) rotate(5deg)}
.visual-case .project-body{display:block;padding:0 0 72px}
.visual-case .project-meta{display:flex;align-items:center;justify-content:space-between;gap:24px;border-block:1px solid var(--line);padding:26px 0;margin-bottom:80px}
.visual-case .project-meta h2{font-size:14px;color:var(--muted);margin:0}
.visual-case .project-meta .stack{margin:0;max-width:none}
.visual-case .project-meta .stack span{font-size:14px;border:0;background:#1c211d;padding:10px 18px}
.visual-case .project-story{min-width:0}
.visual-case .illustrated-features>h2{font-size:clamp(32px,4vw,50px);margin:0 0 48px}
.visual-case .illustrated-feature{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;padding:0;border:0;margin-bottom:64px;min-width:0}
.visual-case .illustrated-feature:last-child{margin-bottom:0}
.feature-copy{min-width:0;padding:30px 8%}
.visual-case .feature-number{display:block;color:var(--accent);font-size:12px;letter-spacing:.13em;margin-bottom:28px}
.visual-case .feature-copy h3{font-size:clamp(32px,3.6vw,50px);letter-spacing:-.045em;line-height:1.12;margin:0 0 24px;overflow-wrap:break-word}
.visual-case .feature-copy p{font-size:18px;line-height:1.8;max-width:390px}
.feature-image-link{display:inline-flex;align-items:center;gap:20px;font-size:14px;margin-top:30px;padding:10px 0;border-bottom:1px solid #657353;color:var(--accent)}
.feature-image-link:hover{color:var(--ink)}
.feature-screen{margin:0;min-width:0;background:#1d2923;border:1px solid #2d3931;border-radius:24px;overflow:hidden}
.feature-screen>a{display:flex;align-items:center;justify-content:center;padding:44px 28px 24px}
.feature-screen img{display:block;width:min(100%,290px);height:auto;border-radius:20px;box-shadow:0 22px 42px #0006;outline:1px solid #ffffff14;transition:transform .35s ease}
.feature-screen>a:hover img{transform:translateY(-5px)}
.feature-screen figcaption{margin:0;padding:0 24px 26px;text-align:center;font-size:14px;line-height:1.5;color:#b1bbb3}
.visual-case .illustrated-feature:nth-of-type(even) .feature-media{grid-column:1;grid-row:1}.visual-case .illustrated-feature:nth-of-type(even) .feature-screen{background:#242a32;border-color:#343b44}
.visual-case .illustrated-feature:nth-of-type(even) .feature-copy{grid-column:2;grid-row:1}
.visual-case .illustrated-feature:nth-of-type(3n) .feature-screen{background:#292a22;border-color:#3b3e30}
@media(max-width:900px){.visual-case .project-intro{gap:32px}.visual-case .project-intro h1{font-size:64px}.source-cover{padding:34px 18px}.visual-case .illustrated-feature{gap:5%}.feature-copy{padding:20px 0}.feature-screen>a{padding:30px 24px 22px}.visual-case .feature-copy p{font-size:16px}.visual-case .project-meta{align-items:flex-start;flex-direction:column;gap:18px;margin-bottom:56px}}
@media(max-width:650px){.visual-case .project-intro{grid-template-columns:1fr;padding:40px 0;gap:38px}.visual-case .project-intro h1{font-size:clamp(58px,15vw,80px);max-width:100%;margin-block:22px}.visual-case .project-lead{font-size:18px}.source-cover{padding:36px 24px;max-width:460px;width:100%;justify-self:center}.source-cover img{max-width:180px}.visual-case .project-meta{padding:22px 0;margin-bottom:48px}.visual-case .project-meta .stack{gap:8px}.visual-case .project-meta .stack span{padding:9px 14px}.visual-case .illustrated-feature{grid-template-columns:1fr;gap:24px;margin-bottom:56px}.visual-case .illustrated-feature:nth-of-type(even) .feature-copy,.visual-case .illustrated-feature:nth-of-type(even) .feature-media{grid-column:auto;grid-row:auto}.visual-case .feature-number{margin-bottom:18px}.visual-case .feature-copy{padding:0 4px}.visual-case .feature-copy h3{font-size:36px;margin-bottom:18px}.visual-case .feature-copy p{max-width:none}.feature-image-link{margin-top:18px}.feature-screen{border-radius:20px}.feature-screen>a{padding:32px 26px 24px}.feature-screen img{width:min(100%,280px)}.visual-case .project-body{padding-bottom:56px}.visual-case .illustrated-features>h2{margin-bottom:36px}}
@media(prefers-reduced-motion:reduce){.feature-screen img{transition:none}.feature-screen>a:hover img{transform:none}}

/* Adapt the case-study layout to landscape application screens. */
.feature-media{display:grid;gap:20px;min-width:0}
.visual-case .contributions{display:grid;grid-template-columns:30% minmax(0,1fr);gap:8%;padding:0 0 64px}
.visual-case .contributions h2{font-size:32px;line-height:1.2}
.visual-case .contributions li{font-size:17px}
.visual-case .features:not(:first-child){margin-top:0}
.desktop-case .project-intro{grid-template-columns:1fr;padding-bottom:48px;gap:44px}
.desktop-case .desktop-intro-copy{display:grid;grid-template-columns:1fr 1fr;gap:0 8%;align-items:start}
.desktop-case .project-intro .eyebrow{grid-column:1/-1;margin-bottom:26px}
.desktop-case .project-intro h1{max-width:none;font-size:clamp(46px,6vw,80px);line-height:1.08;margin:0;grid-column:1;grid-row:2/4}
.desktop-case .project-lead{max-width:560px;font-size:20px;grid-column:2}
.desktop-case .project-intro .index-shortcut{grid-column:2;width:fit-content;margin-top:24px}
.desktop-cover{padding:36px 6%;background:#212a25;border:1px solid #303a32;border-radius:20px;max-height:620px;overflow:hidden}
.desktop-cover img{display:block;width:100%;height:auto;border-radius:6px;box-shadow:0 20px 50px #0005}
.desktop-case .illustrated-feature{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:6%;margin-bottom:88px}
.desktop-case .illustrated-feature:nth-of-type(even){grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
.desktop-case .feature-copy{padding:22px 0}
.desktop-case .feature-copy h3{font-size:clamp(30px,3.2vw,44px)}
.desktop-case .feature-screen{border-radius:16px}
.desktop-case .feature-screen>a{padding:24px 24px 18px}
.desktop-case .feature-screen img{width:100%;border-radius:5px}
.desktop-case .feature-screen figcaption{padding-bottom:20px}
.desktop-case .features>article:not(.illustrated-feature){padding:32px 0 48px;max-width:760px}
.desktop-case .features>article:not(.illustrated-feature) h3{font-size:30px}
.desktop-case .project-gallery{padding-top:48px;padding-bottom:64px}
.desktop-case .screens figure>a{padding:24px;background:#212a25;border-radius:16px}
.desktop-case .screens img{border-radius:5px;box-shadow:0 14px 35px #0004}
.desktop-case .gallery-heading h2{font-size:clamp(32px,4vw,48px)}
@media(max-width:900px){.desktop-case .desktop-intro-copy{gap:0 5%}.desktop-case .project-lead{font-size:18px}.desktop-case .illustrated-feature{gap:5%}.desktop-case .feature-screen>a{padding:16px 16px 14px}.desktop-case .feature-copy h3{font-size:32px}.visual-case .contributions{grid-template-columns:1fr;gap:0;padding-bottom:40px}}
@media(max-width:650px){.desktop-case .desktop-intro-copy{display:block}.desktop-case .project-intro h1{font-size:clamp(40px,11vw,62px);margin:0 0 24px}.desktop-case .project-intro{gap:30px}.desktop-cover{padding:18px;border-radius:14px;max-height:380px}.desktop-case .illustrated-feature,.desktop-case .illustrated-feature:nth-of-type(even){grid-template-columns:1fr;gap:24px;margin-bottom:56px}.desktop-case .feature-copy{padding:0 4px}.desktop-case .feature-screen>a{padding:16px}.desktop-case .feature-screen figcaption{font-size:13px;padding:0 16px 18px}.desktop-case .screens figure>a{padding:16px}.desktop-case .project-gallery{padding-top:24px}.visual-case .contributions li{font-size:16px}}
@media(min-width:651px) and (max-width:900px){.desktop-case .illustrated-feature,.desktop-case .illustrated-feature:nth-of-type(even){grid-template-columns:1fr;gap:26px;margin-bottom:64px}.desktop-case .illustrated-feature:nth-of-type(even) .feature-copy,.desktop-case .illustrated-feature:nth-of-type(even) .feature-media{grid-column:auto;grid-row:auto}.desktop-case .feature-copy p{max-width:650px}.desktop-case .feature-screen>a{padding:28px}.desktop-case .feature-copy{padding:0}}
/* About: compact portrait, readable introduction, grouped skills. */
.about{display:block}
.about-label{margin-bottom:36px}
.about-intro{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:clamp(32px,6vw,88px);align-items:center}
.portrait{margin:0;min-width:0}
.portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border:1px solid var(--line);border-radius:16px;background:#19201b}
.portrait figcaption{display:flex;flex-direction:column;gap:4px;padding:16px 2px 0;font-size:14px;line-height:1.5}
.portrait figcaption span:first-child{color:var(--ink);font-weight:500}
.portrait figcaption span:last-child{color:var(--muted)}
.about-copy{min-width:0;max-width:720px}
.about-copy h2{font-size:clamp(32px,3.6vw,52px);line-height:1.13;margin:0 0 26px;letter-spacing:-.045em}
.about-copy h2 span{color:var(--accent)}
.about .about-copy p{font-size:16px;line-height:1.8;margin-bottom:16px;max-width:660px}
.about .about-copy .about-lead{font-size:19px;line-height:1.7;color:var(--ink)}
.about-copy p:last-child{margin-bottom:0}
.about-skills{border-top:1px solid var(--line);padding-top:40px;margin-top:52px}
.skills-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:24px}
.skills-heading h3{font-size:24px;line-height:1.3;margin:0;letter-spacing:-.025em}
.about .skills-heading p{font-size:14px;line-height:1.5;margin:0}
.skill-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.skill-group{min-width:0;padding:24px;border:1px solid #30382f;background:#161b17;border-radius:12px}
.skill-group h4{margin:0 0 18px;font-size:15px;font-weight:500;color:var(--accent)}
.skill-group ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.skill-group li{font-size:14px;line-height:1.4;padding:8px 12px;background:#202721;border-radius:6px;color:#e0e5dc}
@media(min-width:1200px){.skill-groups{grid-template-columns:repeat(4,minmax(0,1fr))}.skill-group{padding:22px 18px}.skill-group li{padding:7px 10px}}
@media(max-width:850px){.about-intro{grid-template-columns:200px minmax(0,1fr);gap:32px}.about .about-copy .about-lead{font-size:17px}.about-copy h2{font-size:34px}.about .about-copy p{font-size:16px}}
@media(max-width:600px){.about-label{margin-bottom:24px}.about-intro{grid-template-columns:1fr;gap:28px}.portrait{display:flex;align-items:center;gap:20px}.portrait img{width:120px;flex:0 0 120px;border-radius:12px}.portrait figcaption{padding:0;gap:6px}.about-copy h2{font-size:36px;margin-bottom:20px}.about-skills{margin-top:36px;padding-top:28px}.skills-heading{display:block;margin-bottom:20px}.about .skills-heading p{margin-top:8px}.skill-groups{grid-template-columns:1fr;gap:12px}.skill-group{padding:20px}.skill-group h4{margin-bottom:14px}}
