/* Official crusher-and-tipper identity; preserve the approved complete lockup. */
.site-header .brand:has(.official-logo){background:#fff;border-radius:10px;padding:5px 9px;flex-shrink:0;line-height:0}
.site-header .official-logo{display:block;width:105px;height:auto;object-fit:contain;transition:width .8s cubic-bezier(.22,1,.36,1)}
.has-scrolled .site-header .official-logo{width:78px}
.footer-main .brand:has(.official-logo){display:block;background:#fff;padding:14px;border-radius:12px;width:260px;max-width:100%}
.footer-main .official-logo{display:block;width:100%;height:auto}
@media(max-width:1000px){.site-header .official-logo{width:93px}.has-scrolled .site-header .official-logo{width:72px}.site-header .brand:has(.official-logo){padding:4px 8px}}
@media(prefers-reduced-motion:reduce){.site-header .official-logo{transition:none}}
/* Kosagar-inspired fixed header with a floating glass state on scroll. */
.topline{display:none}
header.site-header{position:fixed;z-index:30;top:0;left:0;right:0;padding:0;background:transparent;transition:top .8s cubic-bezier(.22,1,.36,1)}
.header-inner{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;width:100%;height:82px;margin:auto;padding:0 4%;color:white;background:linear-gradient(180deg,#15283ce6,#15283c00);transition:width .9s cubic-bezier(.22,1,.36,1),height .8s ease,border-radius .9s ease,background .8s ease,box-shadow .8s ease}
.site-header .brand{justify-self:start;white-space:nowrap;font-size:25px;letter-spacing:-.5px;gap:9px}
.site-header .brand-mark{width:35px;height:35px;border-radius:10px;font-size:28px;color:var(--navy)}
.site-header .brand small{font-size:8px;letter-spacing:.12em;margin-top:6px}
.site-header nav{position:static;display:flex;gap:25px;background:none;box-shadow:none;padding:0;font-size:14px}
.site-header nav a{padding:12px 0;white-space:nowrap;transition:color .2s}
.site-header nav a:hover{color:var(--yellow)}
.header-cta{justify-self:end;border-radius:999px;white-space:nowrap;padding:12px 20px;min-height:46px;font-size:14px}
.site-header .menu{display:none}
.has-scrolled header.site-header{top:12px}
.has-scrolled .header-inner{width:min(1180px,calc(100% - 28px));height:64px;border-radius:999px;padding-inline:20px;color:var(--navy);background:linear-gradient(105deg,#fffffff2,#e8f1f5ed);box-shadow:inset 0 1px #fff,0 16px 44px #15283c26;backdrop-filter:blur(18px) saturate(1.15);-webkit-backdrop-filter:blur(18px) saturate(1.15)}
.has-scrolled .site-header nav a:hover{color:#806000}
.hero-copy{padding-top:144px}.hero-photo{min-height:660px}.hero-index{top:105px}
.skip{z-index:40}
@media(max-width:1000px){
 header.site-header,.has-scrolled header.site-header{top:8px;padding:0 8px}
 .header-inner,.has-scrolled .header-inner{display:flex;width:100%;height:64px;gap:10px;padding:7px 8px 7px 14px;border-radius:999px;color:var(--navy);background:linear-gradient(105deg,#fffffff2,#e8f1f5ed);box-shadow:inset 0 1px #fff,0 10px 32px #15283c22;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
 .site-header .brand{font-size:23px;margin-right:auto}
 .header-cta{font-size:13px;padding:11px 17px;min-height:46px}
 .site-header .menu{display:grid;place-content:center;gap:5px;width:46px;height:46px;flex-shrink:0;padding:0;border:0;border-radius:50%;background:var(--navy);box-shadow:0 5px 16px #15283c25}
 .menu span{display:block;width:21px;height:2px;border-radius:2px;background:white;transition:transform .2s,opacity .2s}
 .menu[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
 .menu[aria-expanded=true] span:nth-child(2){opacity:0}
 .menu[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
 .site-header nav{display:none;position:absolute;top:calc(100% + 10px);left:auto;right:0;width:min(300px,calc(100vw - 16px));max-height:calc(100dvh - 100px);overflow:auto;border:1px solid #dce6ec;border-radius:22px;padding:10px;background:#f7fbfff5;backdrop-filter:blur(18px);box-shadow:0 20px 40px #15283c25}
 .site-header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:3px}
 .site-header nav a{padding:14px 16px;border-radius:13px;font-size:15px}
 .site-header nav a:hover{background:#e5edf2;color:var(--navy)}
 .hero-copy{padding-top:120px}
}
@media(max-width:640px){.hero-photo{min-height:270px}.hero-copy{padding-top:112px}.site-header .brand small{display:none}.site-header .brand{font-size:20px;gap:7px}.site-header .brand-mark{width:30px;height:32px;font-size:25px}.header-cta{padding-inline:13px;font-size:12px}.header-inner,.has-scrolled .header-inner{gap:7px}}
@media(max-width:370px){.site-header .brand{font-size:17px;gap:5px}.site-header .brand-mark{width:27px;height:29px;font-size:22px}.header-cta{padding-inline:10px}.site-header .menu{width:42px;height:42px}}
/* Keep distinct start/end geometry at every screen size. */
.header-inner{isolation:isolate;border-radius:0;background:none;box-shadow:none;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}
.header-inner::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;background:linear-gradient(105deg,#fffffff0,#e8f1f5df);opacity:0;transition:opacity .8s ease}
.has-scrolled .header-inner{background:none;border-radius:36px}
.has-scrolled .header-inner::before{opacity:1}
.header-inner::after{content:'';position:absolute;bottom:0;left:28px;right:28px;height:2px;border-radius:999px;pointer-events:none;background:var(--yellow);transform:scaleX(var(--page-progress,0));transform-origin:left}
.site-header nav a{transition:color .2s,transform .22s cubic-bezier(.22,1,.36,1)}
.site-header nav a:hover{transform:translateY(-1px)}
@media(prefers-reduced-motion:no-preference){
 header.site-header{transition:top .8s cubic-bezier(.22,1,.36,1),padding .8s cubic-bezier(.22,1,.36,1)}
 .header-inner{transition:width .9s cubic-bezier(.22,1,.36,1),height .8s cubic-bezier(.22,1,.36,1),padding .8s cubic-bezier(.22,1,.36,1),border-radius .9s cubic-bezier(.22,1,.36,1),color .3s ease,box-shadow .8s ease,backdrop-filter .8s ease}
 .site-header nav.open{animation:header-menu-enter .24s ease-out}
}
@keyframes header-menu-enter{from{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}
@media(min-width:1001px){.site-header nav.open{animation:none}}
@media(max-width:1000px){
 .header-inner{width:100%;height:76px;padding:8px 12px;border-radius:0;color:white;background:none;box-shadow:none;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}
 header.site-header{top:0;padding:0}
 .header-inner::before{opacity:0}
 .site-header nav{color:var(--navy);right:8px}
 .site-header .menu{border:1px solid #ffffff40}
 .has-scrolled .site-header .menu{border-color:transparent}
 .has-scrolled header.site-header{top:12px;padding:0 8px}
 .has-scrolled .header-inner{width:calc(100% - 16px);height:60px;padding:6px 8px 6px 14px;border-radius:32px;box-shadow:inset 0 1px #fff,0 16px 44px #15283c29;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
}
@media(max-width:370px){.has-scrolled .header-inner{width:calc(100% - 8px);padding-left:10px}}
@media(prefers-reduced-motion:reduce){header.site-header,.header-inner,.header-inner::before,.menu span{transition:none}.site-header nav.open{animation:none}}

/* Compact header lockup: original emblem with crisp, live lettering beside it. */
.site-header .header-brand{display:inline-flex;align-items:center;gap:9px;background:none;padding:0;border-radius:0;flex-shrink:0;line-height:1}
.header-emblem{display:block;position:relative;overflow:hidden;width:61px;height:auto;aspect-ratio:1611 / 610;box-sizing:content-box;border:3px solid white;border-radius:5px;background:white;flex-shrink:0}
.header-emblem img{display:block;width:100%;height:auto;max-width:none}
.site-header .header-wordmark{display:block;font-size:22px;font-weight:800;letter-spacing:.035em;line-height:1.05}
.site-header .header-wordmark small{display:block;margin-top:5px;font-size:9px;font-weight:500;letter-spacing:.01em;line-height:1.1;text-transform:none}
.header-cta .cta-short{display:none}
@media(max-width:1000px){.site-header .header-brand{gap:7px}.header-emblem{width:53px;border-width:2px}.site-header .header-wordmark{font-size:20px}.site-header .header-wordmark small{font-size:8px;margin-top:4px}}
@media(max-width:480px){.header-cta .cta-full{display:none}.header-cta .cta-short{display:inline}.header-cta{padding-inline:14px;min-height:44px}.site-header .header-wordmark{font-size:18px}.site-header .header-wordmark small{font-size:8px}.header-emblem{width:47px}.site-header .header-brand{gap:6px}}
@media(max-width:350px){.header-emblem{width:41px}.site-header .header-wordmark{font-size:16px}.header-cta{padding-inline:10px}}

.site-header nav{gap:18px}
.header-inner{grid-template-columns:auto 1fr auto}
.site-header nav{justify-self:center}
/* Reserve the Community link's width before the shared script adds it. */
.site-header nav:not(:has(a[href="community.html"]))::after{content:"Community";visibility:hidden;white-space:nowrap;padding:12px 0;font:inherit;flex:0 0 auto}
/* Keep the scroll-state header response short and steady between pages. */
header.site-header,.header-inner,.header-inner::before,.site-header .official-logo{transition-duration:.24s}
.projects-section{background:var(--mist)}
.section-placeholder{color:var(--muted);font-size:14px;border-left:3px solid var(--yellow);padding-left:16px}
.career-section{display:grid;grid-template-columns:1fr 1fr;gap:60px;border-top:1px solid var(--line)}
.career-section>div>p:not(.eyebrow){color:var(--muted)}
#tracking-dialog{width:min(500px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:40px 30px 30px;border:1px solid var(--line);border-radius:20px;color:var(--navy);background:white;box-shadow:0 24px 80px #15283c50}
#tracking-dialog::backdrop{background:#15283c99;backdrop-filter:blur(5px)}
#tracking-dialog h2{font-size:36px;margin:20px 0}
#tracking-dialog p{color:var(--muted)}
#tracking-dialog .eyebrow{font-size:12px;padding-right:30px}
.dialog-close{position:absolute;top:12px;right:12px;width:40px;height:40px;border:0;border-radius:50%;background:var(--mist);font-size:27px;color:var(--navy)}
@media(max-width:640px){.career-section{grid-template-columns:1fr;gap:18px}}
@media(max-width:350px){.header-cta{font-size:11px;padding-inline:8px}.site-header .header-wordmark{font-size:15px}.site-header .header-brand{gap:4px}.header-emblem{width:37px}}
.hero h1.construction-heading{font-size:clamp(46px,5.7vw,88px);white-space:normal;line-height:.98}
.hero-materials{margin-top:24px;min-height:68px;display:flex;flex-direction:column;gap:4px}
.material-intro{font-size:11px;font-weight:700;letter-spacing:.16em;color:#c8d3dd}
.changing-material{display:block;color:var(--yellow);font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:clamp(28px,3vw,42px);font-weight:600;line-height:1.1}
.changing-material.is-changing{animation:material-reveal .55s ease both}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes material-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:640px){.hero h1.construction-heading{font-size:clamp(43px,11vw,68px)}.hero-materials{margin-top:20px;min-height:64px}.changing-material{font-size:32px}}
@media(prefers-reduced-motion:reduce){.changing-material.is-changing{animation:none}}
.construction-heading .needs-line{display:flex;align-items:baseline;gap:.14em;white-space:nowrap}
.construction-heading .changing-material{display:inline-block;font-size:.48em;line-height:1.1;letter-spacing:0}
.site-header .header-brand:has(.official-logo){padding:3px 6px;border-radius:6px;background:white;line-height:0}
.site-header .header-brand .official-logo{width:96px;height:auto}
.has-scrolled .site-header .header-brand .official-logo{width:76px}
@media(max-width:1000px){.site-header .header-brand .official-logo{width:88px}.has-scrolled .site-header .header-brand .official-logo{width:70px}}
@media(max-width:640px){.construction-heading .needs-line{font-size:.85em}.construction-heading .changing-material{font-size:.52em}}
/* Keep the entire heading at one size while fitting the longest material inline. */
.hero-copy{container-type:inline-size}
.hero h1.construction-heading{font-size:clamp(24px,10cqw,88px)}
.construction-heading .needs-line{font-size:1em;gap:.18em}
.construction-heading .changing-material{font:inherit;letter-spacing:inherit;line-height:inherit}
.construction-heading .changing-material.is-long{font-size:.72em}
.footer-credit{margin:24px 0 0;color:#c8d3dd;font-size:14px;text-align:center}
.footer-credit a{color:var(--yellow);text-decoration:underline;text-underline-offset:4px}
.footer-credit a:hover{color:#ffda69}
.material-card{display:flex;flex-direction:column}.material-card p{min-height:0}.material-card button{margin-top:auto}
.experience-details{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin:30px 0}.experience-details article{border-top:2px solid var(--yellow);padding-top:24px}.experience-details p{color:var(--muted);max-width:520px}
@media(max-width:640px){.experience-details{grid-template-columns:1fr;gap:20px}}
@media(max-width:640px){.construction-heading .changing-material.is-long{font-size:.62em}}
.process-signature{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:32px 5%;background:#102335;color:white;border-bottom:1px solid #ffffff18}
.process-motto{margin:0;color:#b8cad4;font-size:12px;font-weight:600;letter-spacing:.14em;line-height:1.7}
.process-promise{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0;font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:clamp(28px,3vw,42px);font-weight:700;line-height:1.15;color:var(--yellow)}
.process-promise span{white-space:nowrap}
@media(max-width:800px){.process-signature{flex-direction:column;align-items:flex-start;gap:14px;padding:28px 6%}.process-promise{gap:8px 14px}}
