
:root{--page:#fff;--outside:#d0d0d0;--ink:#302f2e;--dark:#2c2b2a;--blue:#2675a8;--max:1370px;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--outside);color:var(--ink);font-family:var(--sans);line-height:1.5}.site-nav{background:#fff;padding:20px 20px 8px;position:relative;z-index:20}.site-nav nav{max-width:970px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.nav-pill{height:43px;display:flex;align-items:center;justify-content:center;color:#4a4a49;text-decoration:none;font-size:16px;font-weight:300;background:linear-gradient(#fff,#eee);border-radius:10px;box-shadow:2px 3px 6px #aaa;border:1px solid #e0e0e0}.nav-pill:hover,.nav-pill.active{background:linear-gradient(#fafafa,#e7e7e7);color:#111}.page-shell,.home-page{max-width:var(--max);margin:auto;background:#fff}.site-footer{max-width:var(--max);margin:auto;background:#2d2c2b;color:#e9e9e9;text-align:center;min-height:210px;padding:55px 20px 25px}.back-top{color:#eee;text-decoration:none;font-size:18px;letter-spacing:.08em;display:inline-flex;flex-direction:column;gap:8px}.back-top span{font-size:45px;line-height:.5;font-family:var(--sans);font-weight:100}.site-footer p{margin-top:65px;color:#999;font-size:13px;letter-spacing:.12em}.chat{position:fixed;right:18px;bottom:22px;z-index:30;background:#2587b4;color:#fff;padding:18px 28px;border-radius:10px;text-decoration:none;font-family:var(--serif);font-size:18px;box-shadow:0 2px 5px #5558}.home-hero{position:relative;height:640px;background:#333;overflow:hidden}.home-bg{width:100%;height:100%;object-fit:cover;filter:grayscale(100%)}.home-card{position:absolute;left:10%;top:20%;display:flex;align-items:center;gap:20px;background:rgba(247,247,247,.94);padding:28px 36px;box-shadow:0 5px 18px #0003}.home-card img{width:121px;height:160px;object-fit:cover;filter:grayscale(100%)}.home-card h1{font-family:var(--serif);font-size:30px;line-height:1.04;margin:0}.small-name{margin:0 0 7px;font-family:var(--serif);color:#6457a2;font-size:20px;font-weight:600}.portfolio-word{font-size:12px;letter-spacing:.2em;margin:7px 0 0}.welcome{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:90px 110px}.welcome h2{font-family:var(--serif);font-size:64px;line-height:1;margin:0;font-weight:400}.welcome p{font-family:var(--serif);font-size:18px;line-height:1.65;margin:0 0 18px}.welcome-copy{max-width:640px}.welcome-copy strong{font-weight:600}.skills-line{font-family:var(--sans)!important;font-size:15px!important;letter-spacing:.02em;color:#555;margin-top:28px!important}.welcome a,.text-link{color:var(--blue)}.about-page{padding:90px 80px}.about-intro{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.about-image-stack{position:relative;min-height:620px}.about-image-stack>img:first-child{width:82%;height:520px;object-fit:cover;filter:grayscale(100%)}.about-portrait{position:absolute;width:260px;height:330px;object-fit:cover;right:0;bottom:0;border:14px solid white;filter:grayscale(100%)}.about-copy h1,.story h2,.project-title h1,.project-meta h1,.contact-copy h1{font-family:var(--serif);font-weight:400}.about-copy h1{font-size:58px;margin:0 0 28px}.kicker{font-family:var(--serif);font-size:24px;margin:0}.about-copy p,.story p{font-family:var(--serif);font-size:19px;line-height:1.65}.story{margin:110px 0 20px;padding-top:60px;border-top:1px solid #999}.story h2{font-size:50px}.portfolio-body{background:#333}.portfolio-landing{max-width:var(--max);margin:auto;background:#2e2d2c;color:#fff;padding:70px 16px 40px}.portfolio-heading{padding:0 65px 55px}.portfolio-heading h1{font:400 55px var(--serif);margin:0 0 10px}.portfolio-heading p{max-width:720px;color:#ddd;font-family:var(--serif);font-size:18px}.project-grid{display:grid;grid-template-columns:1.1fr 1.9fr;grid-auto-rows:560px;gap:28px 42px}.project-card{position:relative;display:block;overflow:hidden;background:#111}.project-card img{width:100%;height:100%;object-fit:cover;filter:brightness(.73)}.project-card span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font:30px var(--serif);text-align:center;padding:18px;text-shadow:0 1px 4px #000}.hvac-card{grid-column:1}.training-card{grid-column:2}.academic-card{grid-column:1;grid-row:2;width:132%}.project-page{padding:70px 54px 0}.project-title.simple{padding:0 0 80px}.project-title h1{font-size:64px;line-height:1.35;margin:0}.project-page hr{border:0;border-top:1px solid #555;margin:0 0 100px}.project-meta{padding:0 0 70px}.project-meta>div{max-width:700px}.project-meta h1{font-size:64px;line-height:1.15;margin:0 0 36px}.project-meta dl{margin:0;font-family:var(--serif)}.project-meta dt{font-size:23px;margin-top:30px}.project-meta dd{font-family:var(--sans);font-size:18px;color:#5b5b5b;margin:8px 0 0;max-width:730px;font-weight:600}.academic-meta{display:grid;grid-template-columns:1.1fr 1fr;gap:60px}.academic-description{font-size:20px;color:#166aa2;font-weight:700;max-width:580px;margin:70px 0 0;line-height:1.55}.masonry-gallery{columns:2;column-gap:42px}.gallery-item{margin:0 0 42px;break-inside:avoid;cursor:zoom-in}.gallery-item img{display:block;width:100%;height:auto}.gallery-full{column-span:all;margin-bottom:65px}.gallery-full img{width:100%;max-height:none}.project-nav{display:flex;justify-content:space-between;align-items:center;padding:45px 8px 62px}.project-nav a{font:20px var(--serif);color:#333;text-decoration:none}.contact-page{padding:90px 75px}.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}.contact-image img{width:100%;height:720px;object-fit:cover;object-position:70% center}.contact-copy h1{font-size:64px;margin:0}.contact-copy h2{font:400 36px var(--serif);margin:5px 0 50px}.contact-copy a{color:#333}.contact-copy p{font-size:18px;margin:25px 0}.contact-copy form{margin-top:50px;display:grid;gap:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-copy label{display:grid;gap:8px;font-size:14px}.contact-copy input,.contact-copy textarea{border:0;border-bottom:1px solid #555;background:#fafafa;padding:11px;font:16px var(--sans)}.contact-copy button{width:130px;background:#333;color:white;border:0;padding:13px;cursor:pointer}.contact-copy small{color:#777}.lightbox{display:none;position:fixed;inset:0;z-index:100;background:#111e;align-items:center;justify-content:center}.lightbox.open{display:flex}.lightbox>img{max-width:88vw;max-height:88vh;object-fit:contain;box-shadow:0 0 30px #000}.lb-close,.lb-prev,.lb-next{position:absolute;border:0;background:#0008;color:#fff;cursor:pointer}.lb-close{top:18px;right:24px;font-size:42px;width:55px;height:55px}.lb-prev,.lb-next{top:50%;transform:translateY(-50%);font-size:55px;width:58px;height:85px}.lb-prev{left:16px}.lb-next{right:16px}@media(max-width:900px){.site-nav nav{gap:7px}.nav-pill{font-size:13px}.page-shell{width:100%}.welcome{padding:60px 35px}.about-page,.contact-page,.project-page{padding-left:28px;padding-right:28px}.about-intro,.contact-layout,.academic-meta{grid-template-columns:1fr}.about-image-stack{min-height:520px}.academic-description{margin-top:0}.project-grid{grid-template-columns:1fr;grid-auto-rows:420px}.hvac-card,.training-card,.academic-card{grid-column:1;grid-row:auto;width:100%}.masonry-gallery{columns:1}.gallery-full{column-span:none}.chat{padding:12px 16px;font-size:15px}.form-row{grid-template-columns:1fr}.contact-image img{height:450px}}@media(max-width:560px){.site-nav{padding:10px 8px}.site-nav nav{grid-template-columns:repeat(2,1fr)}.home-hero{height:560px}.home-card{left:5%;right:5%;top:20%;padding:20px}.home-card img{width:88px;height:121px}.home-card h1{font-size:23px}.small-name{font-size:16px}.welcome{grid-template-columns:1fr;gap:20px}.welcome h2{font-size:48px}.about-page{padding-top:50px}.about-image-stack{min-height:410px}.about-image-stack>img:first-child{height:340px}.about-portrait{width:180px;height:230px}.project-meta h1,.project-title h1{font-size:46px}.project-page{padding-top:50px}.portfolio-heading{padding-left:20px;padding-right:20px}.project-grid{grid-auto-rows:300px}.chat{right:8px;bottom:8px}.site-footer{min-height:180px}.project-nav{gap:20px}.project-nav a{font-size:16px}}

/* English / French / Simplified Chinese language switcher */
.site-nav nav{max-width:1100px;grid-template-columns:repeat(4,1fr) 126px;align-items:center}
.lang-switch{display:flex;align-items:center;justify-content:center;gap:5px;font:13px var(--sans);white-space:nowrap;color:#777}
.lang-btn{border:0;background:transparent;padding:8px 3px;color:#777;font:600 13px var(--sans);cursor:pointer}
.lang-btn:hover,.lang-btn.active{color:#111;text-decoration:underline;text-underline-offset:4px}
@media(max-width:900px){.site-nav nav{grid-template-columns:repeat(4,1fr) 112px}.lang-switch{font-size:12px}.lang-btn{font-size:12px}}
@media(max-width:560px){.site-nav nav{grid-template-columns:repeat(2,1fr)}.lang-switch{grid-column:1/-1;justify-self:end;padding-right:4px}.lang-btn{padding:4px 3px}}
html[lang="fr"] .home-card h1{font-size:27px;line-height:1.07}
html[lang="fr"] .project-card span{font-size:28px}
@media(max-width:560px){html[lang="fr"] .home-card h1{font-size:21px}}

/* HVAC project: compact heading so the drawings appear sooner. */
.hvac-project .project-page{padding-top:48px}
.hvac-project .project-title.simple{padding-bottom:38px}
.hvac-project .project-page hr{margin-bottom:52px}
.hvac-project .project-title h1{font-size:58px;line-height:1.2}
@media(max-width:560px){
  .hvac-project .project-page{padding-top:34px}
  .hvac-project .project-title.simple{padding-bottom:26px}
  .hvac-project .project-page hr{margin-bottom:34px}
  .hvac-project .project-title h1{font-size:38px;line-height:1.2}
}

/* Simplified Chinese typography */
html[lang="zh-CN"]{--serif:"Songti SC","STSong","Noto Serif CJK SC","Microsoft YaHei",serif;--sans:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif}
html[lang="zh-CN"] .home-card h1{font-size:29px;line-height:1.15}
html[lang="zh-CN"] .project-card span{font-size:28px}
html[lang="zh-CN"] .welcome h2{line-height:1.15}
@media(max-width:560px){html[lang="zh-CN"] .home-card h1{font-size:22px}}

/* Keep the longer HVAC portfolio card title balanced in the narrow column. */
.hvac-card span{font-size:27px;line-height:1.25}

/* Four-card portfolio layout and professional millwork project. */
.project-grid{grid-template-columns:1fr 1fr}
.hvac-card,.millwork-card,.training-card,.academic-card{grid-column:auto;grid-row:auto;width:100%}
.millwork-card img{object-fit:cover;object-position:center}
.millwork-card span{font-size:28px;line-height:1.25}
.millwork-meta{display:grid;grid-template-columns:1.15fr .85fr;gap:70px}
.millwork-description{align-self:center;font:700 20px/1.55 var(--serif);color:#166aa2;margin:0}
@media(max-width:900px){
  .project-grid{grid-template-columns:1fr}
  .millwork-meta{grid-template-columns:1fr;gap:28px}
}

/* 2026-09-11 — Homepage CVAC positioning refinements
   Only affects the desktop homepage hero/card and welcome spacing. */
@media (min-width:901px){
  .home-hero{height:570px}
  .home-card{
    left:10%;
    top:20%;
    gap:18px;
    padding:24px 32px;
  }
  .home-card img{
    width:112px;
    height:148px;
  }
  .home-card h1{
    font-size:29px;
    line-height:1.05;
  }
  .portfolio-word{
    font-size:11px;
    letter-spacing:.14em;
    margin-top:8px;
  }
  .welcome{
    padding-top:70px;
    padding-bottom:75px;
  }
}
