@charset "UTF-8";
:root{color-scheme:dark;--bg:#111917;--panel:#192420;--panel2:#202e28;--ink:#f1f3ea;--muted:#acb9b0;--accent:#dcf68b;--line:#3a493f;--radius:6px;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--bg);color:var(--ink);font-size:1rem;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:6px}::selection{color:var(--bg);background:var(--accent)}.shell{max-width:1440px;padding:0 5.55%;margin:auto}.skip{position:fixed;top:-100px;left:20px;z-index:10;background:var(--accent);color:var(--bg);padding:12px}.skip:focus{top:12px}.header{min-height:108px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:16px;font-size:1rem;font-weight:600}.monogram{font-size:1.7rem;letter-spacing:-.09em}.monogram span{color:var(--accent)}nav{display:flex;align-items:center;gap:32px;font-size:.875rem}nav a:hover,.text-link:hover,.footer a:hover{color:var(--accent)}.nav-contact{border:1px solid var(--line);border-radius:40px;padding:9px 17px}.nav-contact span{margin-left:14px}.hero{padding:90px 0 76px;display:grid;grid-template-columns:1.3fr 1fr;gap:7%;align-items:center}.eyebrow{font-family:'Courier New',monospace;font-size:.75rem;line-height:1.5;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:400}.hero .eyebrow{font-size:.75rem;letter-spacing:.045em;display:flex;gap:10px;align-items:center}.tiny-line{width:20px;height:1px;background:var(--accent);flex:none}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(3.3rem,5.55vw,5rem);line-height:1.06;font-weight:500;letter-spacing:-.065em;margin-bottom:28px}em{font-style:normal;color:var(--accent)}.hero h1{margin-top:32px}.hero-intro{max-width:455px;color:var(--muted);font-size:1.125rem;line-height:1.7}.actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:14px 23px;border-radius:4px;border:1px solid transparent;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .18s,transform .18s}.button:hover{transform:translateY(-2px)}.primary{background:var(--accent);color:var(--bg)}.primary:hover{background:#edffb4}.secondary{border-color:#7a8b78;background:transparent;color:var(--ink)}.secondary:hover{background:var(--panel2)}.text-link{font-size:.875rem;border-bottom:1px solid var(--line);padding:5px 0}.text-link span{margin-left:12px}.system-map{padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);position:relative}.map-top{display:flex;justify-content:space-between;margin-bottom:35px;gap:10px}.micro{font-family:'Courier New',monospace;font-size:.75rem;color:var(--muted)}.map-row{display:flex;align-items:center;gap:16px;border:1px solid #50634c;background:var(--bg);padding:22px 18px;border-radius:4px}.map-num{font-family:monospace;color:var(--accent);font-size:.75rem}.map-row strong{font-size:1.05rem;font-weight:500;display:block;line-height:1.4}.map-row div>span{font-size:.75rem;color:var(--muted);display:block;margin-top:6px}.map-symbol{margin-left:auto;color:var(--accent);font-size:1.8rem}.map-join{height:22px;border-left:1px solid #718654;margin-left:26px}.map-bottom{display:flex;justify-content:space-between;margin-top:28px;font-size:.875rem;color:var(--muted);line-height:1.5}.map-cross{font-size:2rem;color:var(--accent)}.discipline-strip{display:flex;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;color:var(--muted);font-family:'Courier New',monospace;font-size:.875rem}.discipline-strip span:before{content:'+';color:var(--accent);margin-right:12px}.section{padding:94px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:42px}.section-heading>p{max-width:310px;color:var(--muted);margin-bottom:6px}h2{font-size:clamp(2rem,3.2vw,2.8rem);font-weight:500;letter-spacing:-.045em;line-height:1.15;margin-bottom:25px}.section-heading h2{margin-bottom:0}h3{font-size:1.25rem;font-weight:500;letter-spacing:-.02em;line-height:1.35;margin-bottom:12px}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.project-card{display:flex;flex-direction:column;padding:27px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);transition:border-color .2s,background .2s}.project-card:hover{border-color:var(--accent);background:#223027}.card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.card-top>span:last-child{color:var(--accent);font-size:1.4rem}.card-index{height:135px;display:flex;align-items:center;font-size:3.6rem;font-weight:400;letter-spacing:-.07em;color:#b9c9b1}.project-card h3{font-size:1.35rem;max-width:270px}.project-card p{color:var(--muted);font-size:.9375rem;line-height:1.7}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{border:1px solid var(--line);border-radius:3px;padding:3px 8px;font-size:.75rem;color:#c3d0c4}.card-cta{display:flex;justify-content:space-between;margin-top:auto;padding-top:28px;font-size:.8125rem;color:var(--accent)}.card-diagram{display:flex;align-items:center;justify-content:center;height:105px;margin-top:14px}.card-diagram span{border:1px solid #778a5e;padding:9px 5px;font-family:monospace;font-size:.75rem;color:var(--accent)}.card-diagram i{width:16px;height:1px;background:#778a5e}.project-card .micro{font-size:.75rem;margin-bottom:21px;text-align:center}.about{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:11%;align-items:start}.about h2{max-width:440px}.about-copy{padding-top:38px}.about-copy p{color:var(--muted)}.about-copy .lead{color:var(--ink);font-size:1.5rem;line-height:1.5}.portrait-placeholder{height:190px;max-width:430px;background:var(--panel);border:1px dashed #52644e;display:flex;align-items:center;justify-content:space-between;padding:32px;gap:20px;margin-top:35px}.portrait-initials{font-size:4rem;letter-spacing:-.1em}.portrait-initials span{color:var(--accent)}.portrait-placeholder>.eyebrow{max-width:100px}.portrait{width:100%;max-width:430px;height:auto;border-radius:4px;margin-top:30px}.capabilities{padding-top:0}.skill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}.skill{border-top:1px solid var(--line);padding-top:22px}.skill h3{margin-top:24px}.skill p{color:var(--muted);font-size:.9375rem}.hosting-callout{display:flex;align-items:center;justify-content:space-between;gap:35px;background:var(--panel2);padding:46px;border:1px solid #58684b;border-radius:var(--radius)}.hosting-callout h2{font-size:2rem}.hosting-callout p{color:var(--muted);margin-bottom:0}.hosting-callout .eyebrow{margin-bottom:20px}.hosting-callout .button{flex:none}.contact{padding:110px 0}.contact h2{font-size:clamp(4rem,7vw,6rem);line-height:1;letter-spacing:-.06em;margin:26px 0}.contact>p:not(.eyebrow){color:var(--muted)}.email-address{font-size:.875rem;margin-top:22px;overflow-wrap:anywhere}.footer{border-top:1px solid var(--line);padding:30px 0;display:flex;justify-content:space-between;gap:22px;color:var(--muted);font-size:.75rem}.breadcrumb{display:flex;gap:12px;flex-wrap:wrap;margin:40px 0;color:var(--muted);font-size:.875rem}.breadcrumb a:hover{color:var(--accent)}.case-hero{max-width:960px;padding:28px 0 48px}.case-hero h1{font-size:clamp(3rem,5.7vw,5.1rem);margin:22px 0 30px}.lead{font-size:1.2rem;line-height:1.7;color:var(--muted);max-width:780px}.case-hero .tags{margin-top:28px}.role{color:var(--muted);font-size:.875rem;margin:20px 0 0}.flow{margin:0 0 60px;padding:32px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.flow-steps{display:flex;align-items:center;gap:22px}.flow-node{flex:1;border:1px solid #637653;padding:20px;min-width:0}.flow-node .eyebrow{display:block;color:var(--accent);margin-bottom:12px}.flow-node strong{font-weight:500;font-size:1.1rem}.connector{color:var(--accent)}figcaption{font-size:.75rem;color:var(--muted);margin-top:18px}.case-layout{display:grid;grid-template-columns:230px 1fr;gap:70px}.case-sidebar{align-self:start;position:sticky;top:32px;display:flex;flex-direction:column;gap:14px;font-size:.875rem}.case-sidebar>.eyebrow{margin-bottom:14px}.case-sidebar a{color:var(--muted)}.case-sidebar a:hover{color:var(--accent)}.case-content{max-width:790px}.case-content section{padding-bottom:60px;scroll-margin-top:35px}.case-content p{color:var(--muted)}.approach-row{display:flex;gap:28px;border-top:1px solid var(--line);padding:25px 0 4px}.approach-row>.eyebrow{color:var(--accent);padding-top:4px}.considerations{padding-left:22px;color:var(--muted)}.considerations li{margin-bottom:12px}.media-placeholder{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--panel);border:1px dashed #637653;padding:35px}.media-placeholder p{max-width:400px;margin:23px 0 10px;color:var(--ink);font-size:1.15rem}.media-placeholder>span:last-child{font-size:.875rem;color:var(--muted)}.evidence-note{font-size:.875rem;margin-top:18px}.project-media{margin:0}.project-media img{width:100%;height:auto;border:1px solid var(--line);border-radius:4px}.next-project{display:flex;flex-direction:column;border-top:1px solid var(--line);padding:40px 0 65px;gap:18px}.next-project strong{font-size:2rem;font-weight:400;color:var(--accent);letter-spacing:-.03em}.next-project strong>span{margin-left:24px}.resume-header{padding:75px 0 35px;border-bottom:1px solid var(--line)}.resume-header h1{font-size:clamp(3rem,6vw,5rem)}.resume-header>p:last-child{margin-top:24px;color:var(--muted);overflow-wrap:anywhere}.resume-body{max-width:870px;padding:50px 0}.resume-body section{margin-bottom:50px}.resume-body p{color:var(--muted)}.resume-item{padding:25px 0;border-bottom:1px solid var(--line)}.resume-item p{margin-top:15px}.resume-note{font-size:.875rem;border-left:2px solid var(--accent);padding-left:18px}.architecture-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px 70px;margin:60px 0}.architecture-grid p{color:var(--muted)}.architecture-grid+.hosting-callout{margin-bottom:80px}
@media(min-width:1440px){.hero h1{font-size:5.2rem}}@media(max-width:1100px){.hero{gap:4%;padding-top:65px}.hero h1{font-size:4rem}.system-map{padding:20px}.map-row{padding:18px 12px;gap:12px}.projects-grid{grid-template-columns:repeat(2,1fr)}.skill-grid{grid-template-columns:repeat(2,1fr)}.card-diagram span{padding:9px 10px}.case-layout{grid-template-columns:170px 1fr;gap:40px}}
@media(max-width:760px){.shell{padding:0 6%}.header{padding:20px 0;min-height:auto;flex-wrap:wrap;gap:16px}.brand{font-size:.9375rem}nav{gap:20px;width:100%;justify-content:space-between;font-size:.8125rem}.nav-contact{padding:6px 10px}.nav-contact span{margin-left:4px}.hero{grid-template-columns:1fr;padding:48px 0;gap:44px}.hero h1{font-size:clamp(3rem,10vw,4.7rem)}.hero .eyebrow{font-size:.75rem}.hero-intro{font-size:1rem}.system-map{padding:23px}.map-top{margin-bottom:24px}.map-row{padding:20px}.discipline-strip{gap:14px;flex-wrap:wrap;font-size:.75rem}.section{padding:65px 0}.section-heading{display:block}.section-heading>p{max-width:none;margin-top:24px}.projects-grid{grid-template-columns:1fr}.card-index{height:95px}.project-card{padding:25px}.project-card h3{max-width:none}.card-diagram{max-width:350px;margin-left:auto;margin-right:auto}.about{grid-template-columns:1fr;gap:10px}.about-copy{padding-top:20px}.portrait-placeholder{height:155px;max-width:none}.skill-grid{gap:25px}.hosting-callout{display:block;padding:28px}.hosting-callout .button{margin-top:28px}.contact h2{font-size:4.6rem}.footer{flex-direction:column;gap:10px}.flow{padding:22px}.flow-steps{flex-direction:column;gap:12px}.flow-node{width:100%;padding:18px}.connector{transform:rotate(90deg)}.flow-node .eyebrow{display:inline-block;margin:0 16px 0 0}.case-layout{display:block}.case-sidebar{position:static;flex-direction:row;flex-wrap:wrap;gap:12px 20px;margin-bottom:35px}.case-sidebar>.eyebrow{width:100%;margin-bottom:0}.case-content section{padding-bottom:40px}.case-hero{padding-top:5px}.case-hero h1{font-size:3rem}.lead{font-size:1.1rem}.architecture-grid{grid-template-columns:1fr;gap:30px}.resume-header{padding-top:50px}}
@media(max-width:380px){.skill-grid{grid-template-columns:1fr}.map-row{padding:15px 10px}.map-symbol{display:none}nav{gap:12px}.nav-contact{padding:6px}.hero h1{font-size:2.8rem}.actions{gap:20px}.contact h2{font-size:4rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{html{color-scheme:light}body{background:white;color:#18201c;font-size:10pt;line-height:1.4}.shell{max-width:none;padding:0}.header,.footer,.skip,.resume-header .actions,.resume-item a{display:none}.resume-header{padding:0 0 12px}.resume-header h1{font-size:30pt;margin-bottom:8px}.resume-header .lead{font-size:12pt}.resume-body{padding:20px 0;max-width:none}.resume-body p,.resume-header>p:last-child,.eyebrow{color:#354037}.resume-body h2{font-size:18pt}.resume-body h3{font-size:12pt}.resume-body section{margin-bottom:20px}.resume-item{padding:12px 0;break-inside:avoid}.resume-item p{margin:7px 0}.resume-note{border-color:#354037}.resume-body h2{break-after:avoid}@page{margin:18mm}}
/* Personal portfolio refresh: quiet typography, warm paper and genuine photography. */
:root{color-scheme:light;--bg:#f5f2eb;--panel:#e9edf1;--panel2:#dde6ef;--ink:#243d59;--muted:#526478;--accent:#2a6096;--line:#cbd4df;--radius:14px;font-family:Arial,Helvetica,sans-serif}
body{background:var(--bg)}.shell{max-width:1500px;padding:0 6%}.header{min-height:100px}.brand{font-size:1.04rem}.monogram{font-family:Georgia,serif;font-size:2.1rem}.hero{padding:76px 0 70px;gap:8%;grid-template-columns:1.15fr 1fr}.hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(3.4rem,6vw,6rem);letter-spacing:-.055em;line-height:1.04;margin:26px 0}.hero h1 em{font-style:italic}.hero-intro{font-size:1.15rem;max-width:520px;line-height:1.8}.hero-portrait{margin:0;position:relative}.hero-portrait img{display:block;width:100%;height:580px;object-fit:cover;object-position:50% 60%;border-radius:180px 180px 16px 16px}.hero-portrait figcaption{display:flex;justify-content:space-between;gap:12px;margin:17px 4px;color:var(--muted);font-size:.78rem}.hero-portrait figcaption span:first-child{font-weight:bold;color:var(--ink)}.primary{background:var(--ink);color:#fffdf6;border-radius:40px}.primary:hover{background:#285982}.secondary{border-radius:40px}.button{padding:15px 24px}.eyebrow{font-family:Arial,sans-serif;font-size:.7rem;font-weight:600;letter-spacing:.14em}.discipline-strip{font-family:Arial,sans-serif;font-size:.82rem}.section{padding:84px 0}h2{font-family:Georgia,serif;font-size:clamp(2.2rem,3.5vw,3.25rem);font-weight:400;line-height:1.15;letter-spacing:-.04em}.section-heading>p{max-width:365px}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.project-card{padding:28px;background:#fbfaf6;border:1px solid var(--line);border-radius:14px;overflow:hidden}.project-card:hover{background:#fffefb;border-color:var(--accent);box-shadow:0 14px 30px #243d590a}.project-card.featured{grid-column:1/-1;display:grid;grid-template-columns:1.15fr 1fr;column-gap:40px;align-items:center}.featured .card-top{grid-column:1/-1;margin-bottom:20px}.featured .card-photo{grid-column:1;grid-row:2/4}.featured .card-cta{grid-column:2}.card-photo{width:100%;height:270px;object-fit:cover;margin:20px 0 25px;border-radius:8px;background:var(--panel)}.featured .card-photo{height:auto;margin:0}.card-index{height:90px;font-family:Georgia,serif;font-size:2.7rem;color:#597591}.project-card h3{max-width:none;font-size:1.65rem;letter-spacing:-.04em}.tags span{color:var(--muted);border-radius:24px;padding:4px 10px;font-size:.72rem}.card-cta{font-weight:600}.about{gap:9%}.about .portrait{max-height:440px;object-fit:cover;object-position:center 67%;border-radius:12px}.about-copy{padding-top:48px}.about-copy .lead{font-family:Georgia,serif;font-size:1.85rem;line-height:1.4}.experience{border-top:1px solid var(--line)}.experience h2{margin-bottom:42px}.experience-row{display:grid;grid-template-columns:180px 1fr;gap:25px;padding:25px 0;border-top:1px solid var(--line)}.experience-row>span{font-size:.8rem;color:var(--muted)}.experience-row h3{font-size:1.15rem}.experience-row p{max-width:750px;color:var(--muted);margin-bottom:0}.experience>.text-link{display:inline-block;margin-top:25px}.skill-grid{gap:24px}.hosting-callout{background:var(--ink);color:#f5f2eb;border:0;border-radius:16px}.hosting-callout p,.hosting-callout .eyebrow{color:#d1dfed}.hosting-callout .secondary{color:#f5f2eb;border-color:#95adc6}.contact h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.045em}.contact h2 em{font-style:italic}.footer{font-size:.78rem}.flow{background:#e6ecf2;border:0}.flow-node{background:#f6f8fb;border-color:#c6d2df;border-radius:8px}.case-hero h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(2.8rem,5.5vw,5rem)}.case-content h2{font-size:2.4rem}.case-content .project-media img{height:auto;max-height:780px;object-fit:contain;background:var(--panel);border-radius:10px}.resume-header h1{font-family:Georgia,serif}.resume-contact a{white-space:nowrap}.print-button{background:transparent;color:var(--ink);cursor:pointer}.resume-item h3{font-size:1.2rem}.resume-body{max-width:900px}.next-project strong{font-family:Georgia,serif}.considerations{line-height:1.8}
@media(max-width:900px){.hero{gap:5%}.hero-portrait img{height:470px}.hero h1{font-size:4rem}.skill-grid{grid-template-columns:repeat(2,1fr)}.featured .card-photo{grid-column:1/-1;grid-row:auto}.project-card.featured{display:flex}.case-layout{grid-template-columns:170px 1fr;gap:30px}}
@media(max-width:650px){.shell{padding:0 6%}.header{min-height:96px;flex-wrap:wrap;gap:8px;padding:18px 0}.brand{font-size:.95rem}nav{width:100%;justify-content:space-between;font-size:.8rem;gap:10px}.hero{display:flex;flex-direction:column;align-items:stretch;padding-top:45px;gap:42px}.hero h1{font-size:clamp(3.25rem,13vw,4.9rem)}.hero-intro{font-size:1.05rem}.hero-portrait{max-width:440px;align-self:center;width:100%}.hero-portrait img{height:450px;border-radius:150px 150px 12px 12px}.hero-portrait figcaption{font-size:.7rem}.section{padding:60px 0}.projects-grid{grid-template-columns:1fr}.project-card{padding:22px}.card-photo{height:240px}.section-heading{display:block}.section-heading>p{margin-top:22px}.about{display:block}.about .portrait{display:none}.about-copy{padding-top:5px}.experience-row{grid-template-columns:1fr;gap:10px}.case-layout{display:block}.case-sidebar{position:static;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:35px;gap:15px}.case-sidebar>.eyebrow{width:100%;margin:0}.flow{padding:20px}.flow-steps{flex-direction:column;align-items:stretch;gap:10px}.connector{text-align:center;transform:rotate(90deg)}.flow-node{padding:15px}.hosting-callout{padding:28px}.contact h2{font-size:4rem}.footer{flex-direction:column;gap:10px}.resume-contact{font-size:.86rem;line-height:2}.discipline-strip{flex-wrap:wrap;gap:10px;font-size:.72rem}}
@media print{.hero-portrait{display:none}:root{--ink:#18201c;--muted:#354037}.resume-header{padding:0}.resume-body{max-width:none}.resume-contact{font-size:10pt}.resume-item{break-inside:avoid}}
.project-label{font:600 .85rem/1.5 Arial,sans-serif;letter-spacing:.025em;color:var(--accent);margin:0 0 12px}.technology-logo{display:inline-flex;align-items:center;min-height:88px;padding:20px 0;margin-bottom:18px}.technology-logo img{width:150px;height:48px;object-fit:contain;object-position:left center}.project-card .card-index{font-size:1.7rem}.card-photo[src$="automation-overview.png"],.card-photo[src$="project-system-demo.svg"]{object-fit:contain}.case-hero>.project-label{margin-top:22px}

.video-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.4fr);gap:32px;align-items:start}.video-card{margin:0;min-width:0}.video-card video{display:block;width:100%;height:auto;aspect-ratio:160/67;object-fit:contain;background:#142132;border-radius:12px}.video-card .stunt-demo{aspect-ratio:9/16;max-height:460px;object-fit:contain}.video-card figcaption{padding:20px 0}.video-card h3{font-size:1.2rem}.video-card p{color:var(--muted)}.outside-work{border-top:1px solid var(--line)}.text-link:focus-visible,.button:focus-visible,video:focus-visible{outline:3px solid #2a6096;outline-offset:5px}.technology-logo img[src$="notion-logo.png"]{width:55px;height:55px}.actions{flex-wrap:wrap}.resume-body p,.case-content p{overflow-wrap:break-word}
@media(max-width:650px){.video-grid{grid-template-columns:1fr;gap:24px}.video-card .stunt-demo{max-height:430px}.case-hero h1{font-size:clamp(2.35rem,10vw,3.4rem)}.hero-portrait figcaption{flex-wrap:wrap}.contact h2{font-size:clamp(3.3rem,14vw,4rem)}}
@media print{.outside-work{display:none}}

.social-logo{width:24px;height:24px;object-fit:contain;vertical-align:middle;margin-right:6px}.technology-logo{min-height:65px;padding:14px 0;margin-bottom:10px}
.print-button{border:0;border-bottom:1px solid var(--line);padding:0 0 5px;font:inherit}

/* Authentic project photography and connected case studies. */
.photo-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.photo-gallery .project-media{margin:0;min-width:0}.photo-gallery .project-media:first-child{grid-column:1/-1}.case-content .photo-gallery img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}.photo-gallery figcaption{padding:14px 0 6px;font-size:.85rem;line-height:1.6;color:var(--muted)}.related-story{margin-top:32px;padding:28px;border:1px solid var(--line);border-radius:12px;background:#fbfaf6}.related-story h3{font-size:1.2rem}.related-story p:last-of-type{margin-bottom:18px}.related-story .text-link{display:inline-block}
@media(max-width:650px){.photo-gallery{grid-template-columns:1fr;gap:20px}.related-story{padding:22px}.photo-gallery .project-media:first-child{grid-column:auto}}

.procedure-sample{padding:30px;border:1px solid var(--line);border-radius:12px;background:#fbfaf6}.procedure-sample>h3{font-family:Georgia,serif;font-size:1.85rem;font-weight:400}.procedure-sample ol{padding-left:24px;margin:28px 0}.procedure-sample li{padding:0 0 14px 8px}.procedure-sample li p{margin:8px 0 0}.procedure-boundary{border-top:1px solid var(--line);padding-top:20px;margin-bottom:0}@media(max-width:650px){.procedure-sample{padding:22px}}
.photo-gallery .project-media:first-child{grid-column:auto}

/* Recruiter-friendly interaction polish */
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #2a6096;outline-offset:5px}
[id]{scroll-margin-top:28px}.header nav a[aria-current]{text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:2px}
.project-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.project-card:focus-visible{box-shadow:0 12px 32px #18201c14}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.project-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px #18201c12}.button:hover{transform:translateY(-2px)}}
.employer-reference{display:flex;align-items:center;gap:24px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:28px;margin:32px 0}.employer-reference p{margin:0;max-width:52ch}.employer-logo{display:flex;align-items:center;justify-content:center;background:#182c40;border-radius:10px;padding:18px 22px;flex-shrink:0}.employer-logo img{display:block;width:155px;height:48px;object-fit:contain}
.back-to-top{position:fixed;right:22px;bottom:22px;z-index:20;border:1px solid #c6ccd1;border-radius:999px;background:#fffdf8;color:#182c40;padding:12px 18px;font:600 .8rem system-ui;box-shadow:0 5px 20px #18201c18;cursor:pointer}.back-to-top[hidden]{display:none}
@media(max-width:650px){.header nav{flex-wrap:wrap;gap:14px}.header nav a{min-height:44px;display:inline-flex;align-items:center}.employer-reference{gap:16px}.back-to-top{right:12px;bottom:12px;padding:11px 14px}.project-card h3{overflow-wrap:normal;hyphens:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{.back-to-top{display:none!important}}
