@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#f5f3ed;--ink:#252622;--muted:#696b62;--accent:#d9f36b}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}a:focus-visible{outline:3px solid #7d913b;outline-offset:7px}header,main,footer{max-width:1440px;margin:auto}header{padding:34px 6%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d9dad0}.wordmark{font-weight:800;letter-spacing:-1px;font-size:20px}.wordmark span{font-size:12px;vertical-align:top;margin-left:4px}nav{display:flex;gap:32px;font-size:13px}.hero{position:relative;padding:72px 6% 60px;overflow:hidden}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700}.hero h1{font-family:Manrope,sans-serif;font-size:clamp(65px,8.7vw,126px);line-height:1.06;letter-spacing:-7px;margin:40px 0 38px;position:relative;z-index:1;font-weight:500}em{font-family:Georgia,serif;font-weight:400}.hero-bottom{display:flex;justify-content:space-between;align-items:end;width:51%;font-size:14px;line-height:1.7}.round-link{display:grid;place-items:center;border:1px solid #a3a69b;border-radius:50%;width:52px;height:52px;font-size:24px}.art{position:absolute;right:6%;top:80px;width:34%;height:390px;background:var(--accent);border-radius:180px 180px 12px 12px;display:grid;place-items:center;transform:rotate(5deg)}.orb{width:72%;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(ellipse at 40% 35%,#253322 0px,#253322 2px,#c7e65b 3px,#c7e65b 7px);box-shadow:15px 25px 30px #627c4c44;transform:rotate(-25deg)}.art>span{position:absolute;bottom:24px;font-size:10px;letter-spacing:3px}.work{padding:60px 6% 75px}.section-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #cdd0c4;padding-top:24px;margin-bottom:30px}.section-heading h2{font-size:20px;font-weight:500}.section-heading h2 span{font-size:11px;color:var(--muted);margin-left:15px}.section-heading p{font-size:11px;color:var(--muted)}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.project-image{height:320px;position:relative;overflow:hidden;display:grid;place-items:center}.green{background:#244a3d;color:#dfefb1}.pink{background:#dfb2c1}.yellow{background:#e6df6b}.mock-type{font-size:65px;line-height:.95;font-weight:700;letter-spacing:-5px;transform:rotate(-8deg)}.image-label{position:absolute;bottom:15px;left:18px;font-size:8px;letter-spacing:1.5px}.mock-window{width:80%;background:#f8f3eb;padding:17px;transform:rotate(-7deg);box-shadow:8px 15px 0 #9f748280}.mock-window>div{font-size:7px;border-bottom:1px solid #ccc;padding-bottom:12px}.mock-window>div span{float:right}.mock-window strong{display:block;font-family:Georgia,serif;font-size:32px;font-weight:400;line-height:1.1;margin:25px 0}.mock-window i{font-size:8px;font-style:normal}.stack{transform:rotate(10deg);display:flex;flex-direction:column}.stack b{font-size:47px;line-height:1;letter-spacing:-3px}.stack b:nth-child(2){color:transparent;-webkit-text-stroke:1px var(--ink)}.project-title{display:flex;justify-content:space-between;align-items:center;margin-top:18px;gap:8px}.project-title h3{font-size:15px;font-weight:500;margin:0}.project-title span{font-size:9px;color:var(--muted)}article>p{font-size:12px;line-height:1.7;color:var(--muted);max-width:290px}.about{padding:65px 6% 80px;border-top:1px solid #cdd0c4;display:grid;grid-template-columns:1fr 2fr;gap:30px}.about h2{font-family:Manrope,sans-serif;font-size:clamp(32px,4vw,56px);font-weight:500;letter-spacing:-2px;line-height:1.15;margin:0 0 25px}.about div>p{max-width:470px;color:var(--muted);line-height:1.8;font-size:14px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.tags span{border:1px solid #cdd0c4;border-radius:30px;padding:9px 15px;font-size:11px}.contact{background:var(--accent);padding:65px 6% 75px}.contact h2{font-family:Manrope,sans-serif;font-weight:500;font-size:clamp(44px,6vw,84px);line-height:1.1;letter-spacing:-3px;margin:30px 0}.contact>p:not(.eyebrow){font-size:12px;max-width:360px;line-height:1.6}.contact>a{display:inline-block;font-size:20px;margin-top:20px;border-bottom:1px solid;padding-bottom:7px}footer{display:flex;justify-content:space-between;padding:28px 6%;font-size:10px;color:var(--muted)}@media(max-width:800px){header{padding:25px 6%}nav{gap:18px;font-size:11px}.hero{padding-top:40px}.hero h1{letter-spacing:-4px}.art{position:relative;top:auto;right:auto;width:78%;height:300px;margin:40px auto 10px}.orb{width:220px}.hero-bottom{width:100%}.projects{grid-template-columns:1fr}.project-image{height:360px}.mock-type{font-size:90px}.mock-window{max-width:300px}.section-heading{align-items:start;gap:12px}.section-heading p{max-width:125px;line-height:1.5}.about{grid-template-columns:1fr}.contact h2{letter-spacing:-2px}footer span:last-child{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Portfolio case studies */
header{gap:24px}.wordmark{white-space:nowrap}.wordmark span{font-size:9px;letter-spacing:1px}.portfolio-index{padding:26px 6%;display:flex;flex-wrap:wrap;gap:20px 30px;border-top:1px solid #cdd0c4;border-bottom:1px solid #cdd0c4;font-size:12px}.portfolio-index>span{font-size:9px;letter-spacing:1.5px;color:var(--muted);margin-right:auto}.portfolio-section{padding:75px 6%;border-bottom:1px solid #cdd0c4}.section-intro{max-width:700px;margin-bottom:40px}.section-intro h2,.resume-section h2{font-family:Manrope,sans-serif;font-size:clamp(36px,5vw,65px);font-weight:500;letter-spacing:-2.5px;line-height:1.12;margin:22px 0}.section-intro>p:last-child{max-width:560px;font-size:15px;line-height:1.8;color:var(--muted)}.cars{display:grid;gap:24px}.car-card{display:grid;grid-template-columns:36% 1fr;border:1px solid #cdd0c4}.photo-slot{background:#e9e9df;border:1px dashed #afb5a0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:160px;text-align:center;padding:24px;color:#626958;font-size:12px;gap:12px}.photo-slot span{font-family:Manrope,sans-serif;font-size:26px;letter-spacing:1px}.photo-slot p{margin:0}.photo-slot small{font-size:10px}.car-photo{min-height:290px;background:#e1e8d5;border:0}.car-card:nth-child(2) .car-photo{background:#dce4e4}.car-card:nth-child(3) .car-photo{background:#e8e0d2}.card-body{padding:30px}.card-body h3{font-weight:500;font-size:24px;letter-spacing:-.7px;margin:15px 0}.card-body h3 span{display:block;font-size:11px;color:var(--muted);letter-spacing:0;margin-top:9px}.placeholder-copy,.card-body details p,.case-notes p{font-size:13px;color:var(--muted);line-height:1.7}.card-body details{margin-top:24px;border-top:1px solid #cdd0c4;padding-top:18px}summary{cursor:pointer;font-size:13px;font-weight:600;padding:4px 0}summary:hover{text-decoration:underline}summary:focus-visible{outline:2px solid #627c4c;outline-offset:5px}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 25px;margin:20px 0}.story-grid h4,details h4{font-size:13px;font-weight:600;margin:16px 0 7px}.detail-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fabrication{background:#eeeee5}.process{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;margin:35px 0}.process article{border-top:2px solid #7b8b62;padding-top:18px}.process article>span{font-size:10px;letter-spacing:1px;color:var(--muted)}.process h3{font-size:17px;font-weight:500}.process article>p{font-size:13px}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:25px}.comparison figure{margin:0}.comparison .photo-slot{min-height:310px}.comparison figcaption{font-size:11px;color:var(--muted);margin:12px 0}.case-notes{border-top:1px solid #cdd0c4;margin-top:25px;padding-top:20px}.part-card{border:1px solid #cdd0c4}.part-photo{height:240px;border:0;background:#e7e6d9}.part-card:nth-child(2) .part-photo{background:#dce4e4}.part-card:nth-child(3) .part-photo{background:#e1e8d5}.printed-projects .card-body{padding:24px}.printed-projects h3{font-size:20px}.resume-section{background:var(--accent);padding:70px 6%;display:grid;grid-template-columns:1.4fr 1fr;gap:60px}.resume-section p{font-size:13px;line-height:1.8}.download-button{display:inline-block;padding:16px 22px;background:var(--ink);color:var(--paper);margin-top:20px;font-size:13px}.file-note{font-size:10px!important;color:#515b35}.resume-outline{border-left:1px solid #9aaf50;padding-left:40px;align-self:center}.resume-outline h3{font-size:17px;font-weight:500;margin:24px 0 6px}.resume-outline p{margin:0}.resume-outline .eyebrow{font-size:10px}@media(max-width:1000px){header{flex-wrap:wrap}nav{flex-wrap:wrap;gap:15px 24px}.wordmark span{vertical-align:baseline}.process{grid-template-columns:1fr 1fr}.printed-projects{grid-template-columns:1fr}.part-card{display:grid;grid-template-columns:35% 1fr}.part-photo{height:100%;min-height:250px}}@media(max-width:600px){.portfolio-section{padding:50px 6%}.portfolio-index{gap:16px}.portfolio-index>span{width:100%}.car-card,.part-card{grid-template-columns:1fr}.car-photo{min-height:230px}.part-photo{height:220px;min-height:0}.story-grid,.comparison,.detail-photos,.resume-section{grid-template-columns:1fr}.process{gap:18px}.comparison .photo-slot{min-height:240px}.resume-section{gap:25px;padding:50px 6%}.resume-outline{border-left:0;border-top:1px solid #9aaf50;padding:25px 0 0}.card-body{padding:24px}.section-intro h2,.resume-section h2{letter-spacing:-1.5px}.hero h1{font-size:65px}nav{font-size:12px}}
.tempest-card{display:block}.tempest-cover{position:relative;background:#251c1e}.tempest-cover>img{display:block;width:100%;height:auto;max-height:540px;object-fit:contain}.tempest-cover>span{position:absolute;bottom:20px;left:25px;color:white;font-size:10px;letter-spacing:2px;background:#252622cc;padding:10px 14px}.tempest-card>.card-body{padding:35px}.tempest-card>.card-body>.placeholder-copy{max-width:800px;font-size:15px;line-height:1.85}.tempest-card .story-grid{max-width:900px;gap:12px 40px}.tempest-gallery-intro{border-top:1px solid #cdd0c4;margin-top:28px;padding-top:10px;max-width:800px}.tempest-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 18px;margin-top:25px}.tempest-gallery figure{margin:0;min-width:0}.tempest-gallery a{display:block;background:#e5e5dc}.tempest-gallery img{display:block;width:100%;height:300px;object-fit:contain;transition:opacity .15s}.tempest-gallery a:hover img{opacity:.85}.tempest-gallery figcaption{font-size:11px;line-height:1.5;color:var(--muted);margin-top:10px}@media(max-width:800px){.tempest-gallery{grid-template-columns:1fr 1fr}.tempest-gallery img{height:260px}}@media(max-width:500px){.tempest-card>.card-body{padding:22px}.tempest-gallery{grid-template-columns:1fr}.tempest-gallery img{height:auto;max-height:450px}.tempest-cover>span{left:12px;bottom:12px;font-size:8px}}
/* Iowa State Baja racing graphic */
.art.racing-art{background:#8b1829;border-radius:4px;transform:rotate(3deg);display:block;height:420px;overflow:hidden;box-shadow:12px 12px 0 #f1be48}.racing-art>img{width:100%;height:100%;object-fit:cover;object-position:center 56%;display:block}.racing-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#60101bb0 0%,transparent 35%,#22060ac9 75%,#22060af5 100%);pointer-events:none}.racing-topline{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;gap:12px;padding:17px 18px;z-index:2;color:#f1be48;font-size:9px;font-weight:700;letter-spacing:1.5px;border-top:5px solid #f1be48}.racing-caption{position:absolute;left:22px;right:22px;bottom:15px;z-index:2;color:#fff8e9}.racing-kicker{font-size:8px;letter-spacing:2px;font-weight:600}.racing-caption strong{display:block;font-family:Manrope,sans-serif;font-size:49px;font-weight:800;line-height:.95;letter-spacing:-2px;margin-top:10px}.racing-caption strong em{font-family:inherit;font-weight:800;font-style:italic;color:#f1be48}.racing-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff66;margin-top:17px;padding-top:10px;font-size:8px;letter-spacing:1px}.racing-bottom>span:last-child{font-size:22px;color:#f1be48}@media(max-width:800px){.art.racing-art{height:420px;max-width:400px;margin-top:45px;margin-bottom:15px}}@media(max-width:420px){.art.racing-art{width:90%;height:390px}.racing-caption strong{font-size:44px}}
/* Align the header wordmark on one baseline. */
.wordmark{display:inline-flex;align-items:baseline;gap:8px;line-height:1.2}.wordmark span{vertical-align:baseline;margin-left:0}
.contact-section{background:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:60px;border-top:1px solid #cdd0c4}.contact-section h2{font-size:clamp(38px,5vw,64px)}.contact-section>div>p:last-child{max-width:440px;font-size:14px;line-height:1.8;color:var(--muted)}.contact-links{align-self:center}.contact-links>a{display:grid;grid-template-columns:1fr auto;gap:12px 20px;padding:24px 0;border-bottom:1px solid #cdd0c4}.contact-links>a:first-child{border-top:1px solid #cdd0c4}.contact-links>a>span:first-child{grid-column:1;font-size:9px;letter-spacing:1.8px;color:var(--muted)}.contact-links strong{grid-column:1;font-size:clamp(15px,2vw,21px);font-weight:500;overflow-wrap:anywhere}.contact-links>a>span:last-child{grid-column:2;grid-row:1 / 3;align-self:center;font-size:24px}@media(max-width:700px){.contact-section{grid-template-columns:1fr;gap:20px}}
.tempest-videos{border-top:1px solid #cdd0c4;margin-top:28px;padding-top:10px}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.video-grid figure{margin:0;min-width:0}.video-grid video{display:block;width:100%;height:340px;background:#20221e;object-fit:contain}.video-grid figcaption{font-size:11px;color:var(--muted);line-height:1.5;margin-top:10px}@media(max-width:600px){.video-grid{grid-template-columns:1fr}.video-grid video{height:300px}}
/* Clean photo presentation without gray mats. */
.tempest-gallery{gap:32px 24px;align-items:start}.tempest-gallery a{background:transparent;border:0}.tempest-gallery img{width:100%;height:auto;max-height:420px;object-fit:contain;background:transparent;border:0;border-radius:4px}.tempest-gallery figure{background:transparent;border:0}.tempest-gallery figcaption{margin-top:12px;font-size:12px;line-height:1.6;color:#53584e}.video-grid{gap:24px}.video-grid video{border-radius:4px}.video-grid figcaption{font-size:12px;line-height:1.6;margin-top:12px}.tempest-cover{background:transparent}.tempest-cover>img{max-height:none;border-radius:4px 4px 0 0}.tempest-card{border:0;border-top:1px solid #cdd0c4;padding-top:24px}.tempest-card>.card-body{padding:30px 0}.tempest-gallery-intro{padding-top:18px;margin-top:36px}@media(max-width:800px){.tempest-gallery img{height:auto;max-height:420px}}@media(max-width:500px){.tempest-card>.card-body{padding:24px 0}.tempest-gallery{gap:28px}.tempest-gallery img{height:auto;max-height:none}}
/* Give wide photographs room and keep gallery rows balanced. */
.tempest-gallery{display:flex;flex-wrap:wrap;gap:28px 24px;align-items:flex-start}.tempest-gallery figure{flex:0.75 1 210px;min-width:0}.tempest-gallery figure.landscape-photo{flex:1.78 1 420px}.tempest-gallery a{display:block}.tempest-gallery img{display:block;width:100%;height:340px;max-height:none;object-fit:cover;border-radius:4px}.tempest-gallery figcaption{max-width:100%;margin-top:10px}@media(max-width:800px){.tempest-gallery figure{flex-basis:180px}.tempest-gallery figure.landscape-photo{flex-basis:100%}.tempest-gallery img{height:320px}.tempest-gallery .landscape-photo img{height:auto;aspect-ratio:16/9;object-fit:cover}}@media(max-width:500px){.tempest-gallery figure,.tempest-gallery figure.landscape-photo{flex-basis:100%}.tempest-gallery img{height:auto;max-height:none}.tempest-gallery .landscape-photo img{aspect-ratio:auto;height:auto}}
.zephyr-card{margin-top:45px}.zephyr-stage{margin-top:45px;padding-top:20px;border-top:1px solid #cdd0c4}.zephyr-stage>h4{font-size:14px;letter-spacing:.3px;margin-bottom:24px}.zephyr-gallery .gallery-video{flex:1 1 300px}.zephyr-gallery video{display:block;width:100%;height:340px;background:#20221e;object-fit:contain;border-radius:4px}.zephyr-gallery{row-gap:32px}.zephyr-card h3{font-size:36px}@media(max-width:600px){.zephyr-gallery .gallery-video{flex-basis:100%}.zephyr-gallery video{height:320px}}
/* One-row previews with expandable media collections. */
.media-stage .tempest-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.media-stage .tempest-gallery figure{min-width:0}.media-stage .tempest-gallery img{height:310px;width:100%;object-fit:contain;background:transparent}.media-stage .tempest-gallery video{height:310px;width:100%;object-fit:contain;background:#20221e;border-radius:4px}.media-stage .gallery-more{margin-top:20px;padding-top:0;border-top:0}.gallery-more>summary{display:inline-block;padding:12px 18px;border:1px solid #a5ac97;border-radius:3px;font-weight:500;font-size:12px;list-style:none}.gallery-more>summary::-webkit-details-marker{display:none}.gallery-more>summary::after{content:' +';margin-left:12px}.gallery-more[open]>summary::after{content:' −'}.gallery-more .show-less{display:none}.gallery-more[open] .show-less{display:inline}.gallery-more[open] .show-more{display:none}.gallery-more .stage-overflow{margin-top:25px}.gallery-more[hidden]{display:none}@media(max-width:900px){.media-stage .tempest-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.media-stage .tempest-gallery{grid-template-columns:1fr}.media-stage .tempest-gallery img{height:auto;max-height:440px}.media-stage .tempest-gallery video{height:320px}}
/* Featured project carousel. */
.art.project-carousel{overflow:visible}.project-carousel::after{display:none}.project-slides{position:absolute;inset:0;overflow:hidden;border-radius:4px}.project-slide{position:absolute;inset:0;display:block;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s;isolation:isolate}.project-slide.is-active{opacity:1;visibility:visible}.project-slide>img{width:100%;height:100%;object-fit:cover;object-position:center 56%;display:block}.project-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#60101bb0 0%,transparent 35%,#22060ac9 75%,#22060af5 100%);pointer-events:none}.project-slide .racing-caption{bottom:64px}.project-slide[href="#zephyr"]>img{object-position:center center}.project-slide:focus-visible{outline:3px solid #f1be48;outline-offset:-5px}.carousel-controls{position:absolute;bottom:10px;left:18px;right:18px;display:flex;align-items:center;gap:10px;z-index:4}.carousel-controls button{border:1px solid #fff7e96b;color:#fff7e9;background:#24080d80;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:15px;display:grid;place-items:center}.carousel-controls button:hover{background:#8b1829}.carousel-controls button:focus-visible{outline:2px solid #f1be48;outline-offset:3px}.carousel-dots{display:flex;gap:8px;margin-right:auto;margin-left:3px}.carousel-dots button{width:9px;height:9px;background:#fff7e955;border:0;padding:0}.carousel-dots button[aria-pressed="true"]{background:#f1be48}.carousel-controls .carousel-pause{font-size:11px}.project-carousel .racing-caption strong{font-size:44px}@media(prefers-reduced-motion:reduce){.project-slide{transition:none}}
.part-carousel{min-width:0;background:transparent}.part-slide{margin:0}.part-slide[hidden]{display:none}.part-slide>img,.part-slide>video{display:block;width:100%;height:330px;object-fit:contain;background:transparent}.part-slide>video{background:#20221e}.part-slide figcaption{font-size:11px;line-height:1.5;color:var(--muted);padding:12px 18px;min-height:58px}.part-carousel-controls{display:flex;align-items:center;justify-content:center;gap:16px;padding:8px 18px 16px;border-bottom:1px solid #cdd0c4}.part-carousel-controls button{cursor:pointer;border:1px solid #afb5a0;background:transparent;border-radius:50%;width:30px;height:30px;color:var(--ink)}.part-carousel-controls button:hover{background:var(--accent)}.part-carousel-controls button:focus-visible{outline:2px solid #627c4c;outline-offset:3px}.part-slide-count{font-size:11px;font-variant-numeric:tabular-nums}@media(max-width:600px){.part-slide>img,.part-slide>video{height:360px}}
.skid-parts{display:grid;gap:40px}.skid-part{border-top:1px solid #c5c9bb;padding-top:28px}.skid-part-heading{position:relative;margin-bottom:25px}.skid-part h3{font-size:26px;font-weight:500;letter-spacing:-.5px;margin:15px 0}.skid-part h3 span{display:block;margin-top:9px;font-size:12px;letter-spacing:0;color:var(--muted)}.prototype-status{display:inline-block;font-size:10px;border:1px solid #a5ad94;border-radius:20px;padding:7px 12px;margin-top:6px}.skid-part .comparison .photo-slot{min-height:240px}.skid-part .photo-slot>span{font-size:18px;letter-spacing:1px}
.skid-description{max-width:760px;font-size:14px;line-height:1.85;color:var(--muted);margin:0 0 28px}.skid-document-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}.skid-document-gallery figure{margin:0;min-width:0}.skid-document-gallery img{display:block;width:100%;height:auto;border-radius:4px}.skid-document-gallery a{display:block}.skid-document-gallery figcaption{font-size:12px;line-height:1.6;color:var(--muted);margin-top:12px}@media(max-width:650px){.skid-document-gallery{grid-template-columns:1fr}}
.project-slide[href="#skidloader"]>img{object-position:45% center}.project-slide[href="#printed"]>img{object-position:55% center}.project-slide[href="#skidloader"] .racing-caption strong{font-size:39px}.project-slide[href="#printed"] .racing-topline{font-size:8px;letter-spacing:1px}.project-carousel .carousel-dots{gap:7px}
/* Introduce the person and purpose of the portfolio. */
.portfolio-hero-copy{width:56%;position:relative;z-index:1}.portfolio-hero-copy h1{font-size:clamp(48px,6.5vw,88px);letter-spacing:-4.5px;line-height:1.08;margin:32px 0 26px}.hero-introduction{font-size:15px;line-height:1.85;max-width:480px;color:#53584e;margin-bottom:28px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 24px}.hero-actions a{font-size:12px;display:inline-block}.hero-primary{background:var(--ink);color:var(--paper);padding:15px 20px;border-radius:3px}.hero-primary:hover{background:#414739;text-decoration:none}.hero-secondary{padding:10px 0;border-bottom:1px solid #929985}.hero-disciplines{font-size:8px;letter-spacing:1.3px;line-height:1.8;margin:28px 0 0;color:var(--muted)}.hero-disciplines span{margin:0 7px;color:#949b87}.hero{min-height:560px;padding-top:60px;padding-bottom:65px}@media(max-width:800px){.portfolio-hero-copy{width:100%}.portfolio-hero-copy h1{font-size:clamp(44px,9vw,70px);letter-spacing:-2.5px}.hero-introduction{max-width:560px}.hero{padding-top:40px}.hero-disciplines{font-size:8px}.hero-actions{gap:14px 22px}}
/* Prominent project cards for skid loader work. */
.skid-parts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:start}.skid-project-card{padding:0;border:1px solid #c5c9bb;border-radius:6px;background:var(--paper);overflow:hidden;min-width:0;scroll-margin-top:30px}.skid-project-card:last-child{grid-column:1 / -1}.skid-card-body{padding:30px}.skid-project-card .skid-part-heading{margin-bottom:18px}.skid-project-card h3{font-size:28px;line-height:1.2;margin-top:12px}.skid-project-card .skid-description{font-size:14px;margin-bottom:20px}.skid-project-card .case-notes{margin-top:20px}.skid-project-card .story-grid{grid-template-columns:1fr;gap:0}.skid-carousel .part-slide>a{display:block;background:white}.skid-carousel .part-slide img{display:block;width:100%;height:440px;object-fit:contain;border-radius:0;background:white}.skid-carousel .part-slide figcaption{padding:16px 24px;min-height:52px;font-size:12px}.skid-carousel .part-carousel-controls{padding:12px 24px 18px}.skid-carousel .part-carousel-controls button{height:36px;width:36px}.skid-project-card:last-child .skid-carousel .part-slide img{height:540px}.skid-project-card:last-child .skid-card-body{max-width:900px}.skid-project-card:last-child .story-grid{grid-template-columns:1fr 1fr;gap:12px 30px}@media(max-width:950px){.skid-parts{grid-template-columns:1fr}.skid-project-card:last-child{grid-column:auto}.skid-carousel .part-slide img,.skid-project-card:last-child .skid-carousel .part-slide img{height:480px}}@media(max-width:600px){.skid-carousel .part-slide img,.skid-project-card:last-child .skid-carousel .part-slide img{height:340px}.skid-card-body{padding:24px}.skid-project-card h3{font-size:25px}.skid-project-card:last-child .story-grid{grid-template-columns:1fr}.skid-parts{gap:28px}}
/* Unified red, charcoal, and white theme. */
:root{--paper:#ffffff;--ink:#292b2f;--muted:#656971;--accent:#c62838}body{background:#fff;color:var(--ink)}header{border-color:#dedfe2}.wordmark span{color:#b52030}a:focus-visible,summary:focus-visible{outline-color:#c62838}.hero-primary,.download-button{background:#bd2333;color:#fff}.hero-primary:hover,.download-button:hover{background:#941a28}.hero-secondary{border-color:#bd2333;color:#a81e2d}.portfolio-index{background:#f5f5f6;border-color:#dedfe2}.portfolio-index a:hover,nav a:hover,footer a:hover{color:#bd2333}.hero-introduction,.contact-section>div>p:last-child{color:#555a62}.hero-disciplines span{color:#c62838}.round-link{border-color:#c62838;color:#bd2333}.portfolio-section,.about,.section-heading,.contact-section{border-color:#dedfe2}.fabrication{background:#f3f3f5}.skid-project-card,.part-card,.car-card{border-color:#d6d8dc;background:#fff}.skid-part,.zephyr-stage,.tempest-gallery-intro,.tempest-videos,.case-notes,.card-body details{border-color:#d6d8dc}.prototype-status,.tags span{background:#f9ecee;border-color:#dfb6bd;color:#a51f2d}.photo-slot,.part-photo,.car-photo,.car-card:nth-child(2) .car-photo,.car-card:nth-child(3) .car-photo{background:#ededf0;color:#62666e;border-color:#bfc2c8}.photo-slot span{color:#555961}.gallery-more>summary{border-color:#b7bbc2;color:#35383e;background:white}.gallery-more>summary:hover{background:#f9ecee;border-color:#c62838}.part-carousel-controls{border-color:#dedfe2}.part-carousel-controls button{border-color:#b7bbc2;color:#393c42}.part-carousel-controls button:hover{background:#c62838;color:white;border-color:#c62838}.part-carousel-controls button:focus-visible{outline-color:#c62838}.resume-section{background:#292b2f;color:#fff}.resume-section .eyebrow{color:#f17a86}.resume-outline{border-color:#62656c}.resume-section .file-note{color:#c4c7ce}.resume-section .download-button{background:#c62838;color:#fff}.contact-section{background:#fff}.contact-links>a,.contact-links>a:first-child{border-color:#d6d8dc}.contact-links>a>span:last-child{color:#bd2333}footer{background:#f3f3f5;color:#62666e}.green{background:#34363c;color:#fff}.pink{background:#e8c7cc}.yellow{background:#e3e4e7}.process article{border-color:#c62838}.comparison .photo-slot{background:#ededf0}.tempest-gallery figcaption,.video-grid figcaption{color:#62666e}.art.racing-art{background:#8f1d2b;box-shadow:12px 12px 0 #c62838}.racing-topline{border-top-color:#e44252;color:#fff}.racing-caption strong em,.racing-bottom>span:last-child{color:#ff7d89}.carousel-dots button[aria-pressed="true"]{background:#ff6676}.project-slide:focus-visible{outline-color:#fff}.carousel-controls button:focus-visible{outline-color:#fff}.carousel-controls button:hover{background:#bc2334}.racing-art::after,.project-slide::after{background:linear-gradient(180deg,#381018b0 0%,transparent 35%,#17181cce 75%,#17181cf5 100%)}.tempest-cover>span{background:#292b2fe6}.part-slide>video,.video-grid video,.zephyr-gallery video,.media-stage .tempest-gallery video{background:#292b2f}
/* Scroll-driven section fades preserve the existing layout. */
@media print{main>section{opacity:1!important}}@media(prefers-reduced-motion:reduce){main>section{opacity:1!important}}
/* Personal introduction with portrait. */
.hero-person{display:flex;align-items:center;gap:22px;margin:0 0 28px;max-width:530px}.hero-headshot{display:block;width:120px;height:150px;object-fit:cover;object-position:50% 25%;flex-shrink:0;border-radius:5px;border-bottom:4px solid #bd2333}.hero-person .hero-introduction{margin:0;font-size:14px;line-height:1.8}.portfolio-hero-copy h1{margin-bottom:30px}@media(max-width:500px){.hero-person{gap:16px;align-items:start}.hero-headshot{width:96px;height:124px}.hero-person .hero-introduction{font-size:13px;line-height:1.75}}
.headshot-expand{position:relative;display:block;flex-shrink:0;padding:0;border:0;border-radius:5px;background:transparent;cursor:zoom-in}.headshot-expand:focus-visible{outline:3px solid #bd2333;outline-offset:5px}.headshot-hint{position:absolute;right:7px;bottom:11px;background:#292b2fcc;color:white;border-radius:3px;padding:1px 5px;font-size:17px}.headshot-dialog{border:0;border-radius:7px;padding:0;background:#292b2f;color:white;max-width:92vw;max-height:94dvh;overflow:auto;box-shadow:0 20px 80px #0008}.headshot-dialog::backdrop{background:#17181ce6}.headshot-dialog>img{display:block;width:auto;height:auto;max-width:88vw;max-height:82dvh;object-fit:contain}.headshot-dialog>p{margin:0;padding:14px 20px;font-size:13px}.headshot-close{position:absolute;right:12px;top:12px;border:1px solid #ffffff70;border-radius:50%;background:#292b2fe6;color:#fff;width:38px;height:38px;cursor:pointer;font-size:26px;line-height:1}.headshot-close:focus-visible{outline:3px solid white;outline-offset:3px}
/* Separate project pages and sequential navigation. */
header{max-width:1600px}header nav{gap:16px;flex-wrap:wrap;font-size:12px}.project-page{padding-top:30px}.project-page-label{display:flex;justify-content:space-between;gap:20px;margin-bottom:28px;font-size:12px;color:var(--muted)}.project-page>.tempest-card{margin-top:0;border-top:0;padding-top:0}.next-project{padding:45px 6%;display:flex;justify-content:space-between;align-items:center;gap:25px;background:#292b2f;color:#fff;border-bottom:5px solid #bd2333}.next-project .eyebrow{color:#ff8793}.next-project-title{font-size:clamp(28px,4vw,46px);font-family:Manrope,sans-serif;letter-spacing:-1px}.previous-project{font-size:12px;color:#d6d8dc}.project-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.directory-card{border:1px solid #dedfe2;border-radius:5px;overflow:hidden;display:block}.directory-card>img{display:block;width:100%;height:240px;object-fit:cover}.directory-card>div{padding:22px}.directory-card h3{font-size:23px;font-weight:500;margin:10px 0}.directory-card:hover{border-color:#bd2333;text-decoration:none}.directory-card:hover h3{color:#bd2333}@media(max-width:900px){.project-directory-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.project-directory-grid{grid-template-columns:1fr}.next-project{align-items:start;flex-direction:column}.directory-card>img{height:260px}}
/* Mobile and accessibility polish for publication. */
.skip-link{position:fixed;top:10px;left:10px;z-index:100;background:#292b2f;color:#fff;padding:12px 18px;transform:translateY(-160%)}.skip-link:focus{transform:none}header nav a{min-height:44px;display:inline-flex;align-items:center}.card-body .project-heading{font-size:36px;line-height:1.2;font-weight:500;letter-spacing:-1px;margin:15px 0}.project-heading>span{display:block;font-size:12px;color:var(--muted);letter-spacing:0;margin-top:12px}.section-page-heading{font-family:Manrope,sans-serif;font-size:clamp(36px,5vw,65px);font-weight:500;letter-spacing:-2.5px;line-height:1.12;margin:22px 0}.part-carousel-controls button,.skid-carousel .part-carousel-controls button,.carousel-controls button{min-width:44px;min-height:44px}.carousel-dots button{min-width:24px;min-height:44px;background:transparent;position:relative}.carousel-dots button::after{content:'';width:8px;height:8px;border-radius:50%;background:#fff7e955;position:absolute;top:18px;left:8px}.carousel-dots button[aria-pressed="true"]{background:transparent}.carousel-dots button[aria-pressed="true"]::after{background:#ff6676}.carousel-controls{gap:4px;left:12px;right:12px}.carousel-dots{gap:0!important;margin-left:0}.project-slide .racing-caption{bottom:75px}@media(max-width:420px){.art.racing-art{width:94%}.hero-disciplines{letter-spacing:.7px}.project-carousel .racing-caption strong{font-size:39px}.racing-topline{letter-spacing:1px;font-size:8px}.carousel-controls{left:8px;right:8px}.section-page-heading{letter-spacing:-1.5px}}
.experience-list{display:grid;gap:30px}.experience-card{display:grid;grid-template-columns:1.3fr 1fr;border:1px solid #d6d8dc;border-radius:6px;overflow:hidden;background:#fff}.experience-content{padding:36px}.experience-content h2{font-family:Manrope,sans-serif;font-size:clamp(27px,3vw,38px);letter-spacing:-1px;font-weight:600;margin:18px 0 10px}.experience-content h3{font-size:16px;font-weight:500;line-height:1.5;margin:0 0 15px}.experience-meta{display:flex;flex-wrap:wrap;gap:8px 20px;color:var(--muted);font-size:12px}.experience-meta span{border-left:2px solid #bd2333;padding-left:16px}.experience-content>p:not(.eyebrow):not(.experience-meta){font-size:14px;line-height:1.9;color:#555a62}.experience-focus{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.experience-focus span{font-size:10px;padding:8px 11px;border-radius:20px;background:#f9ecee;color:#a51f2d}.experience-photo-placeholder{background:#f3f3f5;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:290px;padding:30px;text-align:center;border-left:1px solid #dedfe2}.experience-photo-placeholder>span{font-family:Manrope,sans-serif;font-size:64px;color:#d6d8dc;font-weight:600}.experience-photo-placeholder p{font-size:13px;color:#555a62;margin:16px 0 8px}.experience-photo-placeholder small{font-size:11px;color:var(--muted)}.experience-home{padding:45px 6%;border-top:1px solid #dedfe2;display:flex;align-items:center;justify-content:space-between;gap:30px;background:#f3f3f5}.experience-home h2{font-size:27px;letter-spacing:-.7px;font-weight:500;margin:15px 0}.experience-home p:not(.eyebrow){font-size:13px;color:var(--muted)}.experience-home>a{white-space:nowrap;font-size:12px}@media(max-width:750px){.experience-card{grid-template-columns:1fr}.experience-content{padding:26px}.experience-photo-placeholder{border-left:0;border-top:1px solid #dedfe2;min-height:200px}.experience-home{flex-direction:column;align-items:start}}
.experience-photo-gallery{background:#f3f3f5;border-left:1px solid #dedfe2;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-content:start}.experience-photo-gallery figure{margin:0;min-width:0}.experience-photo-gallery figure:first-child{grid-column:1 / -1}.experience-photo-gallery img{display:block;width:100%;height:auto;max-height:330px;object-fit:contain;border-radius:4px}.experience-photo-gallery figcaption{font-size:11px;line-height:1.6;color:var(--muted);margin-top:9px}.experience-photo-gallery figure:last-child:nth-child(2){grid-column:1 / -1}@media(max-width:750px){.experience-photo-gallery{border-left:0;border-top:1px solid #dedfe2;padding:24px}.experience-photo-gallery img{max-height:400px}}
.experience-carousel{min-width:0;border-left:1px solid #dedfe2;align-self:start;background:#fff}.experience-carousel .part-slide>a{display:block}.experience-carousel .part-slide img,.experience-carousel .part-slide video{display:block;width:100%;height:410px;object-fit:contain}.experience-carousel .part-slide figcaption{padding:14px 24px;min-height:54px;font-size:12px;line-height:1.6}.experience-carousel .part-carousel-controls{border-bottom:0;padding-bottom:20px}.experience-logo{display:flex;align-items:center;justify-content:center;min-height:300px;padding:45px;background:white;border-left:1px solid #dedfe2}.experience-logo img{display:block;width:100%;max-width:310px;height:auto}@media(max-width:750px){.experience-carousel,.experience-logo{border-left:0;border-top:1px solid #dedfe2}.experience-carousel .part-slide img,.experience-carousel .part-slide video{height:380px}.experience-logo{min-height:220px}}
header nav{gap:4px 6px}header nav>a{padding:9px 11px;border-radius:3px}header nav>a.active-nav{background:#bd2333;color:white}header nav>a.active-nav:hover{background:#941a28;color:white;text-decoration:none}.experience-home-feature{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding-top:60px;padding-bottom:60px}.experience-home-feature h2{font-family:Manrope,sans-serif;font-size:clamp(32px,4vw,52px);line-height:1.12;margin:22px 0;letter-spacing:-1.5px}.experience-home-feature>div>p:not(.eyebrow){line-height:1.85;max-width:520px}.experience-home-feature .hero-primary{margin-top:15px;display:inline-block;font-size:12px}.home-experience-carousel{border:1px solid #d6d8dc;border-radius:5px;overflow:hidden;background:#fff;min-width:0}.home-experience-carousel .part-slide img{height:330px;width:100%;object-fit:contain}.home-experience-carousel figcaption{padding:15px 20px}.project-slide[href="/experience.html"] .racing-caption strong{font-size:33px}.project-carousel .carousel-dots button{min-width:19px}.project-carousel .carousel-dots button::after{left:5px}@media(max-width:750px){.experience-home-feature{grid-template-columns:1fr;gap:28px}.home-experience-carousel{width:100%}header nav>a{padding:7px 9px}.home-experience-carousel .part-slide img{height:310px}}
.home-experience-carousel .work-slide-label{padding:20px 24px;min-height:100px}.work-slide-label strong{display:block;font-family:Manrope,sans-serif;color:var(--ink);font-size:22px;font-weight:600;letter-spacing:-.5px;line-height:1.3}.work-slide-label>span{display:block;margin-top:8px;color:#b52030;font-size:13px;line-height:1.5}@media(max-width:500px){.work-slide-label strong{font-size:20px}.work-slide-label>span{font-size:12px}}
.experience-tiles-section{display:block;padding:60px 6%}.experience-tiles-intro{max-width:640px;margin-bottom:30px}.experience-tiles-intro h2{font-family:Manrope,sans-serif;font-size:clamp(32px,4vw,52px);line-height:1.12;letter-spacing:-1.5px}.experience-tiles-intro>p:last-child{line-height:1.85;font-size:14px}.experience-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.experience-tile{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid #d6d8dc;border-radius:5px;padding:24px;transition:border-color .15s,box-shadow .15s}.experience-tile:hover{border-color:#bd2333;box-shadow:0 5px 20px #292b2f0d;text-decoration:none}.experience-tile:focus-visible{outline:3px solid #bd2333;outline-offset:4px}.experience-tile-logo{display:flex;align-items:center;justify-content:center;height:140px;margin-bottom:24px}.experience-tile-logo img{display:block;width:100%;max-width:210px;height:100%;object-fit:contain}.experience-tile h3{font-size:17px;font-weight:600;letter-spacing:-.3px;margin:0 0 10px;line-height:1.4}.experience-tile>p{font-size:13px;color:#a51f2d;line-height:1.6;margin:0 0 24px}.tile-link-label{font-size:11px;color:var(--muted);margin-top:auto}@media(max-width:1000px){.experience-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){.experience-tiles{grid-template-columns:1fr}.experience-tile-logo{height:130px}.experience-tile{padding:25px}}
/* Contain linked slideshow images as well as direct images. */
.part-carousel{min-width:0;overflow:hidden}.part-slide>a{display:block;min-width:0;max-width:100%}.part-slide>a>img{display:block;width:100%;height:330px;max-width:100%;object-fit:contain;background:transparent}.part-card>.card-body{position:relative;background:#fff;min-width:0}.skid-carousel .part-slide>a>img{height:440px;background:white}.skid-project-card:last-child .skid-carousel .part-slide>a>img{height:540px}.experience-carousel .part-slide>a>img{height:410px}.home-experience-carousel .part-slide>a>img{height:330px}@media(max-width:950px){.skid-carousel .part-slide>a>img,.skid-project-card:last-child .skid-carousel .part-slide>a>img{height:480px}}@media(max-width:750px){.experience-carousel .part-slide>a>img{height:380px}.home-experience-carousel .part-slide>a>img{height:310px}}@media(max-width:600px){.part-slide>a>img{height:360px}.skid-carousel .part-slide>a>img,.skid-project-card:last-child .skid-carousel .part-slide>a>img{height:340px}}
