/* Color and motion build on the established cream portfolio. */
:root{--accent:#335c9b;--blue:#335c9b;--teal:#146e67;--amber:#95551c;--violet:#70509b;--blue-wash:#e9eff9;--teal-wash:#e7f2ef;--amber-wash:#f8eddd;--violet-wash:#f0ebf8}
.reading-progress{position:fixed;z-index:50;top:0;left:0;width:100%;height:3px;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--blue),var(--teal) 40%,#b5772c 70%,var(--violet));pointer-events:none}
.site-header-wrap{border-top:3px solid transparent;background:rgba(250,249,246,.96)}
.hero-copy{position:relative}.hero-copy:before{content:'';display:block;width:58px;height:4px;background:linear-gradient(90deg,var(--blue) 0 40%,var(--teal) 40% 70%,#b5772c 70%);margin-bottom:23px}
.hero-project{border-color:#b8c8df;background:var(--blue-wash);box-shadow:8px 8px 0 #e3ebe9}.hero-project figcaption{border-top-color:#c5d2e4}.hero-project figcaption .eyebrow{color:var(--blue)}
.button-dark{background:var(--blue)}.button-dark:hover{background:#254678}.hero-contact:hover{color:var(--teal);border-color:var(--teal)}
.technical-summary{background:linear-gradient(90deg,var(--blue-wash),var(--teal-wash) 50%,var(--violet-wash))}.technical-summary dl>div{border-left:3px solid var(--blue);padding-left:15px}.technical-summary dl>div:nth-child(2){border-left-color:var(--teal)}.technical-summary dl>div:nth-child(3){border-left-color:var(--violet)}.technical-summary dt{color:var(--blue)}.technical-summary dl>div:nth-child(2) dt{color:var(--teal)}.technical-summary dl>div:nth-child(3) dt{color:var(--violet)}
.section-heading .eyebrow,.courses-heading .eyebrow{color:var(--blue)}.section-heading h2:after,.courses-heading h2:after{content:'';display:block;width:38px;height:3px;background:var(--section-accent,var(--blue));margin-top:16px}
.project-row{--project-accent:var(--blue);--project-wash:var(--blue-wash)}.project-row:nth-child(2){--project-accent:var(--teal);--project-wash:var(--teal-wash)}.project-row:nth-child(3){--project-accent:var(--amber);--project-wash:var(--amber-wash)}
.project-visual{background:var(--project-wash);border-top:3px solid var(--project-accent)}.project-copy>.eyebrow,.project-outcome>span,.project-details-link{color:var(--project-accent)}.project-outcome{border-left:2px solid var(--project-accent);padding-left:15px}.project-details-link:hover{color:var(--ink)}.gallery-photo-stage{background:var(--amber-wash)}.gallery-photo-label{border-color:#dcc6a4;color:var(--amber)}
.about-section{background:#ecf3f0;border-color:#d4e2dc}.about-art{background:#e1ebe6;border-color:#bdcec5}.about-copy .eyebrow,.about-facts span{color:var(--teal)}
.skill-grid{gap:24px}.skill-group{padding:23px 22px;border:1px solid #c5d2e4;border-top:3px solid var(--blue);background:var(--blue-wash);min-width:0}.skill-group:nth-child(2){border-color:#bcd6cf;border-top-color:var(--teal);background:var(--teal-wash)}.skill-group:nth-child(3){border-color:#d7cce8;border-top-color:var(--violet);background:var(--violet-wash)}.skill-number{color:var(--blue)}.skill-group:nth-child(2) .skill-number{color:var(--teal)}.skill-group:nth-child(3) .skill-number{color:var(--violet)}.skill-tags span{background:#ffffff9c;color:#3d4856;border-color:#ccd5e2}.skill-group:nth-child(2) .skill-tags span{border-color:#c1d7d0}.skill-group:nth-child(3) .skill-tags span{border-color:#d8cfe5}
.certification-line{display:flex;align-items:baseline;gap:24px;margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.certification-line>span{font:400 8px/1.6 var(--mono);letter-spacing:1px;color:var(--muted)}.certification-line p{font-size:11px;color:var(--muted);margin:0}
.skills-section{padding-bottom:38px}.courses-section{padding-block:12px 65px;scroll-margin-top:25px}.courses-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.courses-heading .eyebrow{font-size:8px;letter-spacing:1.3px;margin-bottom:10px}.courses-heading h2{font-size:30px;letter-spacing:-1px}.courses-heading>p{font-size:11px;color:var(--muted);margin:0 0 2px}.courses-heading h2:after{background:var(--violet);width:30px;margin-top:12px}
.course-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}.course-list li{display:flex;align-items:center;gap:15px;padding:17px 20px;border:1px solid #ccd7e8;border-left:3px solid var(--blue);background:var(--blue-wash);font-size:14px;font-weight:500;line-height:1.5;min-width:0}.course-index{font:400 9px/1.5 var(--mono);color:var(--blue);flex-shrink:0}.course-list li:nth-child(4n+2){background:var(--violet-wash);border-color:#dacfe9;border-left-color:var(--violet)}.course-list li:nth-child(4n+2) .course-index{color:var(--violet)}.course-list li:nth-child(4n+3){background:var(--teal-wash);border-color:#c3dcd4;border-left-color:var(--teal)}.course-list li:nth-child(4n+3) .course-index{color:var(--teal)}.course-list li:nth-child(4n+4){background:var(--amber-wash);border-color:#e5d3b8;border-left-color:var(--amber)}.course-list li:nth-child(4n+4) .course-index{color:var(--amber)}
.additional-courses{margin-top:21px}.additional-courses h3{font:400 8px/1.6 var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:0 0 8px}.additional-courses ul{list-style:none;display:flex;flex-wrap:wrap;gap:5px 0;margin:0;padding:0}.additional-courses li{font-size:11px;color:#636a64;line-height:1.8}.additional-courses li:not(:last-child):after{content:'·';color:var(--violet);margin-inline:10px}
.experience-section{--section-accent:var(--amber);background:#f3eee6}.experience-section .eyebrow{color:var(--amber)}.work-date{color:var(--amber)}.leadership-panel{background:#eae4f1;border-top:3px solid var(--violet)}.leadership-panel>.eyebrow,.leadership-item>span{color:var(--violet)}.leadership-item{border-color:#cec4db}
.organizations-section{--section-accent:var(--teal)}.organizations-section .section-heading .eyebrow{color:var(--teal)}.organization-card{background:#eef4f1;border-color:#ccdcd5}.organization-emblem{background:#164d4d}.organization-emblem:after{color:#408481}.organization-index,.organization-emblem-caption{color:#d0e4df}.organization-acronym>span{color:#edc58f}.organization-copy>.eyebrow{color:var(--teal)}.club-photo-label{color:var(--teal)}.club-photo-frame{border-top:3px solid var(--teal)}.club-photo:nth-child(2) .club-photo-frame{border-top-color:var(--amber)}.club-photo:nth-child(2) .club-photo-label{color:var(--amber)}
.contact-section{background:#23344c;border-top:4px solid #b8792c}.contact-section .eyebrow{color:#edc58f}.contact-section p{color:#d2dce8}.contact-panel{border-color:#60708a}.contact-links>a{border-color:#73829b;color:#f1f4fa}.contact-links>a:hover{color:#edc58f}.contact-links>a>span[aria-hidden]{color:#c9d8f1}.coming-soon{color:#d1deea}.coming-soon .status-dot{background:#75bcad}
.desktop-nav a.is-current{color:var(--accent)}.desktop-nav>a.is-current:after{transform:scaleX(1)}.mobile-nav a.is-current{color:var(--accent);font-weight:650}
/* Content remains visible without JavaScript or when reduced motion is requested. */
@media(prefers-reduced-motion:no-preference){
  [data-reveal]{opacity:0;transform:translate3d(0,26px,0);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}
  [data-reveal="left"]{transform:translate3d(-26px,0,0)}[data-reveal="right"]{transform:translate3d(26px,0,0)}
  [data-reveal].is-visible{opacity:1;transform:none}
  .hero-project img{transition:transform .45s ease}.hero-project>a:hover img{transform:scale(1.025)}
}
@media(max-width:1100px){.desktop-nav{gap:19px}.skill-group{padding:20px 16px}.skill-grid{gap:17px}}
@media(max-width:800px){.skill-grid{grid-template-columns:minmax(0,1fr)}.skill-group{padding:22px}.skill-group h3{font-size:20px}.skill-tags span{font-size:11px}.courses-heading{align-items:flex-start;flex-direction:column;gap:12px}.course-list li{font-size:13px;padding:15px}.courses-section{padding-bottom:48px}}
@media(max-width:600px){.hero-project{box-shadow:5px 5px 0 #e3ebe9}.technical-summary dl>div+div{border-top:0;padding-top:0}.technical-summary dl>div{padding-left:14px}.skills-section{padding-bottom:30px}.courses-section{padding-top:10px;padding-bottom:40px}.course-list{grid-template-columns:minmax(0,1fr);gap:9px}.course-list li{font-size:14px;padding:15px 17px}.certification-line{flex-direction:column;gap:8px}.additional-courses li{font-size:11px}.courses-heading h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}[data-reveal]{opacity:1;transform:none}}

/* Name-led engineering banner replacing the introductory project photo. */
.hero.hero-banner{position:relative;isolation:isolate;overflow:hidden;display:block;min-height:440px;margin-block:36px 44px;padding:56px;background:linear-gradient(115deg,#172a43,#233e5d);color:#f7f7f2;border:1px solid #314f70;border-top:3px solid #82b5c9}
.hero-banner .hero-copy{position:relative;z-index:1;max-width:640px;width:64%}
.hero-banner .hero-copy:before{background:linear-gradient(90deg,#8ebce1 0 40%,#75bcad 40% 70%,#edc58f 70%);margin-bottom:25px}
.hero-banner .eyebrow{color:#b8d1e9}
.hero-banner h1{font-size:clamp(48px,5.5vw,78px);letter-spacing:-3px;color:#fff}
.hero-banner .hero-role{color:#b8d9e5;font-size:22px}
.hero-banner .hero-description{color:#d0dbe7;max-width:480px}
.hero-banner .button-dark{background:#f4f3ec;color:#203a58}
.hero-banner .button-dark:hover{background:#d9e7f3}
.hero-banner .hero-contact{color:#edf3f9;border-color:#7891aa}
.hero-banner .hero-contact:hover{color:#b8d9e5;border-color:#b8d9e5}
.hero-banner .hero-credentials{border-color:#526880;max-width:520px}
.hero-banner .hero-credentials dt{color:#b3c8dd}
.hero-banner .hero-credentials dd{color:#edf3f9}
.hero-banner a:focus-visible{outline-color:#b8d9e5}
.hero-blueprint{position:absolute;z-index:0;pointer-events:none;right:-50px;top:50%;transform:translateY(-50%);width:57%;height:auto;color:#96c5db;opacity:.55;mask-image:linear-gradient(90deg,transparent,#000 32%)}
@media(max-width:1100px){.hero.hero-banner{padding:44px 36px}.hero-banner .hero-copy{width:70%}.hero-banner .hero-role{font-size:20px}.hero-blueprint{right:-90px;width:65%;opacity:.4}}
@media(max-width:800px){.hero.hero-banner{padding:38px 30px}.hero-banner .hero-copy{width:85%}.hero-banner h1{font-size:52px;letter-spacing:-2px}.hero-blueprint{width:85%;right:-160px;opacity:.24}}
@media(max-width:600px){.hero.hero-banner{min-height:0;margin-block:22px 28px;padding:32px 24px}.hero-banner .hero-copy{width:100%;max-width:none}.hero-banner h1{font-size:clamp(36px,10vw,48px);letter-spacing:-1.8px}.hero-banner .hero-role{font-size:18px}.hero-banner .hero-description{font-size:14px}.hero-banner .hero-actions{gap:16px 22px}.hero-banner .hero-credentials{flex-direction:column;gap:16px}.hero-blueprint{width:150%;right:-80%;opacity:.15}}

/* Blueprint strokes draw once; meshing gears turn at matching tooth speeds. */
.banner-traces{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none;color:#8ebed3;opacity:.6}
.hero-banner .hero-blueprint{opacity:.72}
@media(prefers-reduced-motion:no-preference){
  .banner-draw{stroke-dasharray:1;stroke-dashoffset:0;animation:banner-line-draw 2.4s cubic-bezier(.35,0,.2,1) .15s both}
  .banner-draw-late{animation-delay:.65s}
  .blueprint-rotor{transform-box:view-box;transform-origin:390px 300px;animation:banner-gear-turn 48s linear 2.7s infinite}
  .blueprint-pinion{transform-box:view-box;transform-origin:588px 446px;animation:banner-gear-turn 30s linear 2.7s infinite reverse}
  @keyframes banner-line-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes banner-gear-turn{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
}
@media(max-width:1100px){.hero-banner .hero-blueprint{opacity:.5}}
@media(max-width:800px){.hero-banner .hero-blueprint{opacity:.3}}
@media(max-width:600px){.hero-banner .hero-blueprint{opacity:.18}.banner-traces{opacity:.35}}

/* A fuller page with larger, more readable type and wider desktop content. */
.section-shell{width:min(1380px,calc(100% - 80px))}
.site-header{width:min(1420px,calc(100% - 80px))}
.wordmark{font-size:19px}.wordmark-sub{font-size:9px}
.desktop-nav{font-size:13px;gap:clamp(14px,1.7vw,26px)}
.hero-banner h1{font-size:clamp(52px,6vw,88px)}
.hero-banner .hero-role{font-size:25px}
.hero-banner .hero-description{font-size:17px;max-width:540px;line-height:1.8}
.hero-banner .hero-copy{max-width:710px}
.hero-banner .hero-credentials{max-width:600px}
.hero-banner .hero-credentials dd,.technical-summary dd{font-size:14px}
.hero-credentials dt,.technical-summary dt{font-size:10px}
.hero .eyebrow{font-size:11px}
.button{font-size:14px;padding:16px 25px}
.hero-contact,.text-link,.project-details-link{font-size:14px}
.section-heading h2,.about-copy h2,.experience-section h2{font-size:clamp(36px,3.3vw,46px)}
.section-description,.courses-heading>p,.club-gallery-heading>p{font-size:14px}
.eyebrow,.section-heading .eyebrow,.about-copy .eyebrow,.courses-heading .eyebrow,.project-copy>.eyebrow,.organization-copy>.eyebrow{font-size:10px}
.project-row{gap:clamp(32px,5vw,76px)}
.project-copy h3{font-size:clamp(34px,3.4vw,48px)}
.project-standfirst{font-size:19px}
.project-description{font-size:15px;line-height:1.85;max-width:550px}
.project-outcome{font-size:14px}
.project-info dd{font-size:12px}
.project-info dt,.project-outcome>span{font-size:9px}
.projects-section>.project-footnote{font-size:10px}
.gallery-photo-caption{font-size:13px}
.about-layout{gap:64px;grid-template-columns:1fr 1.1fr}
.about-copy>p:not(.eyebrow){font-size:16px;line-height:1.85;max-width:600px}
.about-facts span{font-size:9px}.about-facts strong{font-size:13px}
.about-facts>div{grid-template-columns:110px 1fr}
.skill-group{padding:27px 25px}.skill-group h3{font-size:23px}
.skill-number{font-size:10px}.skill-tags span{font-size:12px;padding:8px 12px}
.certification-line>span{font-size:10px}.certification-line p{font-size:13px}
.courses-heading h2{font-size:35px}.course-list li{font-size:16px;padding:20px 22px}.course-index{font-size:11px}
.work-entry h3{font-size:23px}.work-date{font-size:10px}
.work-role{font-size:14px}.work-description{font-size:14px;max-width:460px}
.leadership-panel>h3{font-size:29px}.leadership-panel>.eyebrow{font-size:10px}
.leadership-item h4{font-size:15px}.leadership-item p{font-size:13px}
.organization-copy h3{font-size:30px}
.organization-membership,.organization-description{font-size:14px;max-width:520px}
.organization-details strong,.organization-details>a{font-size:13px}
.organization-details>div>span,.club-photo-label{font-size:9px}
.club-gallery-heading h3{font-size:39px}.club-photo h4{font-size:24px}.club-photo figcaption p{font-size:14px;max-width:480px}
.contact-section h2{font-size:52px}.contact-section p{font-size:14px}.contact-links>a{font-size:15px}
.site-footer,.site-footer p{font-size:11px}.footer-name>span,.site-footer>a:last-child{font-size:10px}
.dialog-summary{font-size:16px}.dialog-details h3{font-size:15px}.dialog-details p{font-size:14px}
@media(max-width:1100px){
  .section-shell,.site-header{width:calc(100% - 64px)}
  .hero-banner .hero-role{font-size:23px}.hero-banner .hero-description{font-size:16px}
  .about-layout{gap:40px}.skill-group{padding:23px 20px}.skill-group h3{font-size:21px}
  .project-row{gap:36px}.project-standfirst{font-size:18px}
  .organization-copy h3{font-size:27px}
}
@media(max-width:800px){
  .section-shell,.site-header{width:calc(100% - 40px)}
  .hero-banner h1{font-size:58px}.hero-banner .hero-role{font-size:22px}
  .project-row{gap:28px}.project-copy h3{font-size:34px}.project-standfirst{font-size:17px}.project-description{font-size:14px}
  .about-layout{gap:30px}.about-copy>p:not(.eyebrow){font-size:15px}
  .skill-group h3{font-size:23px}.section-description{font-size:13px}
  .course-list li{font-size:15px;padding:18px}
}
@media(max-width:700px){.project-row,.project-row:nth-child(even){grid-template-columns:minmax(0,1fr);gap:28px}.project-description{font-size:15px;max-width:none}}
@media(max-width:600px){
  .section-shell,.site-header{width:calc(100% - 36px)}
  .wordmark{font-size:17px}.wordmark-sub{font-size:8px}
  .hero.hero-banner{padding:34px 24px}.hero-banner h1{font-size:clamp(38px,10.6vw,54px)}
  .hero-banner .hero-role{font-size:21px}.hero-banner .hero-description{font-size:15px}
  .hero .eyebrow{font-size:9px}.hero-banner .hero-credentials dd{font-size:13px}
  .button{padding:15px 20px;font-size:13px}.hero-contact{font-size:13px}
  .section-heading h2,.about-copy h2,.experience-section h2{font-size:36px}
  .project-copy h3{font-size:36px}.project-standfirst{font-size:18px}
  .about-layout{grid-template-columns:minmax(0,1fr);gap:32px}
  .about-copy>p:not(.eyebrow){font-size:16px}
  .courses-heading h2{font-size:33px}.course-list li{font-size:16px;padding:18px}
  .club-gallery-heading h3{font-size:35px}.club-photo h4{font-size:23px}
  .contact-section h2{font-size:42px}.site-footer{gap:14px}
}

/* Navy surfaces repeat the banner palette between the lighter sections. */
:root{--navy:#172a43;--navy-raised:#233e5d;--navy-text:#eff5fc;--navy-muted:#c4d5e7}
.technical-summary{background:linear-gradient(110deg,var(--navy-raised),var(--navy));border-color:#3b5673;color:var(--navy-text)}
.technical-summary dl{padding-block:29px}
.technical-summary dt,.technical-summary dl>div:nth-child(2) dt,.technical-summary dl>div:nth-child(3) dt{color:#b8d5ee}
.technical-summary dl>div{border-left-color:#8ebce1}
.technical-summary dl>div:nth-child(2){border-left-color:#8bd1c3}
.technical-summary dl>div:nth-child(3){border-left-color:#d1b9ef}
.about-art-label,.about-art-footer{background:var(--navy);color:#e4eff9;border-color:#405a75}
.about-art{border-color:#405a75}
.skills-band{background:linear-gradient(115deg,var(--navy),var(--navy-raised));color:var(--navy-text);border-block:1px solid #405a75}
.skills-band .skills-section{padding-block:65px}
.skills-band .section-heading .eyebrow{color:#b8d5ee}
.skills-band .section-heading h2{color:#fff}
.skills-band .section-heading h2:after{background:#8ebce1}
.skills-band .section-description{color:var(--navy-muted)}
.skills-band .skill-group{background:#294361;border-color:#506984;border-top-color:#8ebce1}
.skills-band .skill-group:nth-child(2){background:#23454e;border-color:#4c7179;border-top-color:#8bd1c3}
.skills-band .skill-group:nth-child(3){background:#3a3f61;border-color:#636b91;border-top-color:#d1b9ef}
.skills-band .skill-group h3{color:#f5f8fc}
.skills-band .skill-group .skill-number{color:#b8d5ee}
.skills-band .skill-group:nth-child(2) .skill-number{color:#b1e3d8}
.skills-band .skill-group:nth-child(3) .skill-number{color:#dfcef6}
.skills-band .skill-group .skill-tags span{background:#ffffff0d;color:#edf5fd;border-color:#7b93ac}
.skills-band .certification-line{border-color:#526a84}
.skills-band .certification-line>span,.skills-band .certification-line p{color:var(--navy-muted)}
.courses-section{padding-top:44px}
.leadership-panel{background:linear-gradient(145deg,var(--navy),var(--navy-raised));color:var(--navy-text);border-top-color:#8ebce1}
.experience-section .leadership-panel>.eyebrow,.leadership-item>span{color:#b8d5ee}
.leadership-item{border-color:#526a84}
.leadership-item h4{color:#f5f8fc}.leadership-item p{color:var(--navy-muted)}
.organization-emblem{background:linear-gradient(145deg,var(--navy),var(--navy-raised))}
.organization-emblem:after{color:#46698c}
.organization-index,.organization-emblem-caption{color:#cfdfef}
.site-footer{border-top:3px solid var(--navy)}
@media(max-width:800px){.skills-band .skills-section{padding-block:52px}}
@media(max-width:600px){.skills-band .skills-section{padding-block:42px}.technical-summary dl{padding-block:26px}.courses-section{padding-top:34px}}

/* Keep the new experience tab in the header, with room for every navigation link. */
.desktop-nav .nav-experience{color:var(--blue);font-weight:600;white-space:nowrap}
.mobile-nav .nav-experience{color:var(--blue);font-weight:600}
@media(max-width:1180px){
  .desktop-nav{display:none}
  .menu-toggle{display:flex;width:38px;height:38px;background:none;border:1px solid var(--line);align-items:center;justify-content:center;flex-direction:column;gap:5px}
  .menu-toggle span{width:15px;height:1px;background:var(--ink)}
  .mobile-nav{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;background:var(--paper);border:1px solid var(--line);padding:10px 20px;box-shadow:0 14px 20px #282c2810}
  .mobile-nav a{padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}
  .mobile-nav a:last-child{border:0}
}

/* Wrench drawings and renderings share a consistent frame without cropping. */
.wrench-gallery .gallery-photo-stage{aspect-ratio:4/3;background:#edf1f6}
.wrench-gallery .gallery-image-button{padding:18px}
.wrench-gallery .gallery-photo-label{display:none}
.wrench-gallery .gallery-controls{border-top-color:#c5d2e4}
.wrench-gallery .gallery-photo-caption{color:#40566f;font-size:13px;line-height:1.6;padding-bottom:17px}
.project-dialog[data-project="wrench"]{width:min(1020px,calc(100% - 32px))}
.project-dialog[data-project="wrench"] .gallery-photo-stage{aspect-ratio:auto;height:min(59svh,550px)}
.project-dialog[data-project="wrench"] .gallery-image-button{padding:22px}
.project-dialog[data-project="wrench"] .dialog-details{gap:26px}
.projects-section>.project-footnote{line-height:1.9}
@media(max-width:700px){.wrench-gallery .gallery-image-button{padding:12px}.project-dialog[data-project="wrench"] .gallery-photo-stage{height:min(52svh,440px)}.project-dialog[data-project="wrench"] .gallery-image-button{padding:14px}}
@media(max-width:420px){.wrench-gallery .gallery-pagination{flex-direction:column;gap:0}.wrench-gallery .gallery-controls{gap:7px}.wrench-gallery .gallery-photo-caption{font-size:12px;padding-inline:12px}}

/* Bike Bristle groups original image files into three slides. */
.bike-gallery .gallery-photo-stage{aspect-ratio:4/3;background:#eaf0ec}
.bike-gallery .gallery-image-button{padding:14px}
.bike-gallery .gallery-photo-label{display:none}
.bike-gallery .gallery-controls{border-top-color:#bfd1ca}
.bike-gallery .gallery-photo-caption{color:#31534d;font-size:13px;line-height:1.6;padding-bottom:14px}
.bike-gallery-hint{font-size:11px;line-height:1.6;color:#526d65;margin:-7px 16px 15px;text-align:center}
.bike-gallery .gallery-composition{position:absolute;inset:0;width:100%;height:100%;display:grid;gap:10px;padding:14px;min-width:0;min-height:0}
.bike-gallery[data-gallery-layout="drawings"] .gallery-composition{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
.bike-gallery[data-gallery-layout="drawings"] .gallery-sheet{grid-column:span 2}
.bike-gallery[data-gallery-layout="drawings"] .gallery-sheet:nth-child(n+4){grid-column:span 3}
.bike-gallery[data-gallery-layout="pair"] .gallery-composition{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr)}
.bike-gallery .gallery-sheet{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:0;padding:7px 0 0;border:1px solid #c4cdc7;background:#fdfdf9;overflow:hidden;cursor:zoom-in;transition:border-color .2s,box-shadow .2s}
.bike-gallery .gallery-sheet:hover{border-color:#50776a;box-shadow:0 2px 9px #244a3e1a}
.bike-gallery .gallery-sheet:focus-visible{outline:2px solid #335c9b;outline-offset:-3px}
.bike-gallery .gallery-sheet img,.bike-gallery:hover .gallery-sheet img{width:100%;height:100%;min-width:0;min-height:0;flex:1 1 0;object-fit:contain;transform:none;padding:0 6px;display:block}
.bike-gallery .gallery-sheet>span{display:block;flex:0 0 auto;width:100%;padding:7px 5px;font-size:9px;line-height:1.4;color:#375d52;text-align:center;background:#f3f6f2}
.project-dialog[data-project="bike"]{width:min(1120px,calc(100% - 32px))}
.project-dialog[data-project="bike"] .gallery-photo-stage{aspect-ratio:auto;height:min(62svh,580px)}
.project-dialog[data-project="bike"] .gallery-composition{gap:14px;padding:18px}
.project-dialog[data-project="bike"] .gallery-sheet>span{font-size:12px;padding:9px}
.project-dialog[data-project="bike"] .gallery-photo-caption{font-size:14px}
body.image-inspector-open{overflow:hidden}
.image-inspector{width:min(1000px,calc(100% - 32px));max-height:92svh;padding:0;border:1px solid #c7d2ce;background:#f5f3ed;color:#23344a;overflow:auto;overscroll-behavior:contain;box-shadow:0 25px 100px #0005}
.image-inspector::backdrop{background:#15283de6;backdrop-filter:blur(4px)}
.image-inspector-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 22px;border-bottom:1px solid #ccd7d1}
.image-inspector-top h3{margin:0;font-size:17px;font-weight:500;line-height:1.5}
.image-inspector-close{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border:1px solid #b9c8c2;background:transparent;font-size:16px}
.image-inspector-view{display:grid;place-items:center;background:#edf1eb;padding:20px;min-height:200px}
.image-inspector-view img{display:block;width:auto;height:auto;max-width:100%;max-height:69svh;object-fit:contain}
.image-inspector-controls{display:flex;align-items:center;gap:14px;padding:15px 22px;border-top:1px solid #ccd7d1}
.image-inspector-controls>a{margin-left:auto;font-size:12px;border-bottom:1px solid #6b877d;padding-bottom:4px;color:#31574d}
@media(max-width:700px){
  .bike-gallery[data-gallery-layout="drawings"] .gallery-photo-stage{aspect-ratio:4/5}
  .bike-gallery .gallery-composition{padding:10px;gap:8px}
  .bike-gallery[data-gallery-layout="drawings"] .gallery-composition{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}
  .bike-gallery[data-gallery-layout="drawings"] .gallery-sheet{grid-column:span 1}
  .bike-gallery[data-gallery-layout="drawings"] .gallery-sheet:nth-child(4){grid-column:span 1}
  .bike-gallery[data-gallery-layout="drawings"] .gallery-sheet:nth-child(5){grid-column:span 2}
  .bike-gallery .gallery-sheet>span{font-size:9px;padding:6px 3px}
  .project-dialog[data-project="bike"] .gallery-photo-stage{height:min(54svh,440px)}
  .project-dialog[data-project="bike"] .gallery-composition{padding:10px;gap:8px}
  .project-dialog[data-project="bike"] .gallery-sheet>span{font-size:10px;padding:7px 4px}
  .image-inspector-top,.image-inspector-controls{padding:13px 15px}
  .image-inspector-top h3{font-size:15px}.image-inspector-view{padding:10px}
  .image-inspector-controls{gap:10px}.image-inspector-controls>a{font-size:11px}
}

/* Résumé access beside the introduction's main project link. */
.hero-banner .resume-link{border:1px solid #8ba9c3;background:#ffffff08;color:#eff5fc;gap:20px}
.hero-banner .resume-link:hover{background:#ffffff18;border-color:#b8d9e5}
