:root{--ink:#14231e;--paper:#efeee8;--lime:#d7e661;--orange:#ed6f42;--line:#14231e38}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);margin:0;font-family:DM Sans,sans-serif}.grain{pointer-events:none;opacity:.16;z-index:2;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");position:fixed;inset:0}.nav{border-bottom:1px solid var(--line);z-index:3;justify-content:space-between;align-items:center;max-width:1400px;height:80px;margin:auto;padding:0 42px;display:flex;position:relative}.monogram{letter-spacing:-2px;color:inherit;font-family:DM Mono;font-size:20px;font-weight:500;text-decoration:none}.monogram span{color:var(--orange)}nav{gap:34px;margin-left:85px;display:flex}a{color:inherit;text-decoration:none}nav a,.resume,.eyebrow,.tags,.project-number,.section-heading>p:last-child{letter-spacing:.04em;text-transform:uppercase;font:500 11px DM Mono}.resume{border:1px solid var(--ink);padding:10px 13px}.resume span,.text-link span{color:var(--orange)}.hero,.section{max-width:1400px;margin:auto;padding-left:42px;padding-right:42px}.hero{min-height:calc(100vh - 80px);padding-top:93px;position:relative;overflow:hidden}.eyebrow{color:#57635e;margin:0}.hero h1{letter-spacing:-.075em;max-width:1080px;margin:30px 0 57px;font-size:clamp(55px,8.2vw,124px);font-weight:500;line-height:.91}.hero h1 em,.about h2 em{color:var(--orange);font-family:Playfair Display;font-weight:600}.hero-bottom{z-index:1;justify-content:space-between;align-items:end;max-width:685px;display:flex;position:relative}.hero-bottom p{max-width:360px;margin:0;font-size:16px;line-height:1.4}.circle-link{border:1px solid var(--ink);border-radius:50%;place-items:center;width:55px;height:55px;font-size:24px;transition:all .25s;display:grid}.circle-link:hover{background:var(--ink);color:var(--lime);transform:translateY(4px)}.orbital-mark{border:1px solid var(--ink);opacity:.9;border-radius:50%;width:440px;height:440px;position:absolute;bottom:-40px;right:-10px}.orbital-mark i{border:1px solid var(--ink);border-radius:50%;position:absolute;inset:60px -70px;transform:rotate(55deg)}.orbital-mark i+i{transform:rotate(-55deg)}.orbital-mark b{background:var(--lime);border:1px solid var(--ink);border-radius:50%;width:42px;height:42px;position:absolute;top:112px;left:46px}.section{border-top:1px solid var(--line);padding-top:22px;padding-bottom:100px}.section-heading{justify-content:space-between;margin-bottom:45px;display:flex}.section-heading>p:last-child{text-align:right;color:#57635e;margin:0;line-height:1.35}.project{cursor:pointer}.project-art{border:1px solid var(--ink);background:var(--lime);height:400px;transition:transform .35s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden}.project:hover .project-art,.project:focus .project-art{transform:scale(.985)}.project-meta{justify-content:space-between;padding:18px 0 65px;display:flex}.project-number,.tags{margin:0}.project-meta h2{letter-spacing:-.06em;margin:8px 0 0;font-size:clamp(36px,4.2vw,62px);font-weight:500;line-height:.88}.project-meta>div:last-child{align-self:end;width:30%}.description{margin:12px 0 0;font-size:14px;line-height:1.35}.mechanism{background:#cedee2;height:500px}.gear{border:18px dotted var(--ink);border-radius:50%;width:260px;height:260px;position:absolute;top:110px}.g1{animation:16s linear infinite spin;left:25%}.g2{border-width:12px;width:150px;height:150px;animation:10s linear infinite spin-reverse;top:68px;left:48%}.arm{background:var(--orange);transform-origin:0;border:1px solid var(--ink);width:47%;height:30px;position:absolute;top:43%;left:48%;transform:rotate(-25deg)}.pivot{background:var(--ink);border-radius:50%;width:47px;height:47px;position:absolute;top:39%;left:46%}.project-grid{grid-template-columns:1fr 1fr;gap:28px;display:grid}.project-grid .project-art{height:370px}.compact{padding-bottom:0}.compact>div:last-child{width:auto}.flow{background:#f2b5a2}.flow span{border:1px solid var(--ink);border-radius:50%;width:260px;height:260px;position:absolute;top:55px;left:calc(50% - 130px)}.flow span:nth-child(2){transform:scale(.73)}.flow span:nth-child(3){background:var(--paper);transform:scale(.45)}.flow span:nth-child(4){background:var(--orange);border:0;width:20px;height:20px;top:175px;left:calc(50% - 10px)}.bridge{background:#eee3cf;justify-content:center;align-items:center;gap:0;display:flex}.bridge div{border:1px solid var(--ink);width:100px;height:185px;margin:-14px;transform:skewY(-30deg)}.bridge div:nth-child(2n){background:var(--orange);transform:skewY(30deg)}.edit-note{color:#57635e;max-width:500px;margin:65px 0 0;font:11px/1.45 DM Mono}.about{padding-top:22px;padding-bottom:130px}.about-copy{grid-template-columns:1.45fr .55fr;gap:40px;margin-top:55px;display:grid}.about h2{letter-spacing:-.065em;margin:0;font-size:clamp(37px,4.6vw,68px);font-weight:500;line-height:.96}.about-copy>div{font-size:15px;line-height:1.45}.about-copy p:first-child{margin-top:0}.text-link{border-bottom:1px solid var(--ink);text-transform:uppercase;margin-top:24px;padding-bottom:4px;font:500 12px DM Mono;display:inline-block}.contact{background:var(--ink);color:var(--paper);max-width:none;min-height:600px;padding:28px max(42px,50vw - 658px) 30px;position:relative}.contact .eyebrow{color:#a8b1ab}.contact h2{letter-spacing:-.075em;margin:75px 0 31px;font-size:clamp(58px,8vw,120px);font-weight:500;line-height:.88}.email{color:var(--lime);border-bottom:1px solid var(--lime);padding-bottom:5px;font-family:DM Mono;font-size:clamp(15px,2.1vw,26px)}.contact-bottom{text-transform:uppercase;justify-content:space-between;align-items:end;font:11px/1.45 DM Mono;display:flex;position:absolute;bottom:30px;left:max(42px,50vw - 658px);right:max(42px,50vw - 658px)}.contact-bottom p{margin:0}.contact-bottom div{gap:22px;display:flex}.contact-bottom div a{border-bottom:1px solid #82908a}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spin-reverse{to{transform:rotate(-360deg)}}@media (max-width:700px){.nav{height:65px;padding:0 20px}.nav nav{display:none}.hero,.section{padding-left:20px;padding-right:20px}.hero{min-height:650px;padding-top:65px}.hero h1{margin-top:22px}.orbital-mark{width:290px;height:290px;bottom:10px;right:-80px}.orbital-mark i{inset:40px -40px}.orbital-mark b{top:74px;left:32px}.hero-bottom{display:block}.circle-link{margin-top:32px}.section{padding-bottom:68px}.project-art,.mechanism{height:300px}.project-meta>div:last-child{width:42%}.project-grid{grid-template-columns:1fr;gap:48px}.project-grid .project-art{height:290px}.about-copy{grid-template-columns:1fr;margin-top:35px}.contact{min-height:540px;padding:28px 20px}.contact-bottom{flex-wrap:wrap;gap:18px;left:20px;right:20px}.contact-bottom div{order:-1;width:100%}}.detail-art.has-visual,.project-art.has-visual{justify-content:center;align-items:center;background:#fff!important;display:flex!important}.detail-art.has-visual img,.project-art.has-visual img{margin:0 auto}
.hero{grid-template-columns:minmax(300px,.82fr) minmax(430px,1.18fr);align-items:center;gap:clamp(48px,8vw,150px);min-height:calc(100vh - 80px);padding-top:55px;padding-bottom:70px;display:grid;overflow:visible}.hero-photo-wrap{width:100%;max-width:530px;position:relative}.hero-photo{aspect-ratio:4/5;object-fit:cover;border:1px solid var(--ink);background:#cedee2;border-radius:36% 36% 8% 8%;width:100%;display:block}.photo-note{background:var(--lime);border:1px solid var(--ink);letter-spacing:.04em;margin:0;padding:9px 11px;font:10px/1.35 DM Mono;position:absolute;bottom:28px;right:-18px}.hero-intro{text-align:center;max-width:680px;position:relative}.hero-intro .eyebrow{margin-bottom:22px}.hero h1{letter-spacing:-.075em;margin:0;font-size:clamp(48px,5.7vw,84px);line-height:.91}.hero h1 em{color:var(--orange)}.name-placeholder{font-family:Playfair Display;font-style:italic;font-weight:600}.hero-description{max-width:560px;margin:30px auto 0;font-size:16px;line-height:1.55}.hero-actions{flex-direction:column;gap:10px;width:min(330px,100%);margin:30px auto 0;display:flex}.hero-button{background:var(--ink);color:var(--paper);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:13px 17px;font:500 12px DM Mono;transition:transform .2s,background .2s;display:flex}.hero-button:hover{background:var(--orange);transform:translateY(-2px)}.hero-button.secondary{color:var(--ink);border:1px solid var(--ink);background:0 0}.scroll-note{letter-spacing:.1em;margin:27px 0 0;font:10px DM Mono}.scroll-note span{color:var(--orange);margin-left:8px;font-size:15px}@media (max-width:760px){.hero{min-height:auto;padding-top:45px;padding-bottom:70px;display:block}.hero-photo-wrap{max-width:430px;margin:0 auto 48px}.hero-intro{text-align:left}.hero-intro .eyebrow{margin-bottom:18px}.hero h1{font-size:clamp(47px,14vw,72px)}.hero-description,.hero-actions{margin-left:0}.scroll-note{display:none}}
.project-art img{object-fit:contain;width:auto;max-width:72%;height:auto;max-height:78%;display:block}.project-art.has-visual{background:#fff;justify-content:center;align-items:center;display:flex}.project-art.visual-fill img{object-fit:cover;object-position:center 70%;width:100%;max-width:none;height:100%;max-height:none}.project-grid{grid-template-columns:1fr;gap:0}.project-grid .project-art{height:500px}.project-image-link,.project-title-link{display:block}.project-title-link:hover{color:var(--orange)}.project-meta>div:last-child{align-self:auto;width:100%}.project-meta .tags{margin-top:16px}.project-meta .description{max-width:760px;margin:12px 0 0}@media (max-width:700px){.project-grid{gap:0}.project-grid .project-art{height:300px}.project-meta .description{max-width:100%}}
html[data-theme=engineering]{--ink:#0d1b2a;--paper:#f3efe4;--lime:#c5d4e8;--orange:#0b2a5b;--line:#0d1b2a52;--navy:#0b2a5b;--grid:#0b2a5b14;--font-sans:"IBM Plex Sans", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--font-display:"Barlow Condensed", "IBM Plex Sans", sans-serif}html[data-theme=engineering] body{background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);color:var(--ink);font-family:var(--font-sans);background-size:28px 28px}html[data-theme=engineering] .grain{opacity:.05}html[data-theme=engineering] .nav{border-bottom:2px solid var(--ink);background:var(--paper)}html[data-theme=engineering] .monogram{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:13px}html[data-theme=engineering] .monogram span{color:var(--navy)}html[data-theme=engineering] nav a,html[data-theme=engineering] .resume,html[data-theme=engineering] .hero-button{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;font-weight:600}html[data-theme=engineering] .eyebrow,html[data-theme=engineering] .tags,html[data-theme=engineering] .project-number,html[data-theme=engineering] .section-heading>p:last-child,html[data-theme=engineering] .back-link,html[data-theme=engineering] .detail-tags,html[data-theme=engineering] .detail-section h2,html[data-theme=engineering] .scroll-note,html[data-theme=engineering] .photo-note,html[data-theme=engineering] .edit-note,html[data-theme=engineering] .text-link,html[data-theme=engineering] .email,html[data-theme=engineering] .contact-bottom,html[data-theme=engineering] .section-figure figcaption,html[data-theme=engineering] .prototype-gallery figcaption,html[data-theme=engineering] .cost-estimator,html[data-theme=engineering] .cost-estimator-heading figcaption,html[data-theme=engineering] .cost-estimator-heading p,html[data-theme=engineering] .cost-estimator th,html[data-theme=engineering] .cost-estimator td,html[data-theme=engineering] .cost-estimator-summary dt,html[data-theme=engineering] .cost-estimator-summary dd,html[data-theme=engineering] .final-design-legend li,html[data-theme=engineering] .legend-letter{font-family:var(--font-mono);letter-spacing:.12em}html[data-theme=engineering] .resume{border:1.5px solid var(--navy);background:var(--navy);color:#fff;border-radius:0}html[data-theme=engineering] .resume span{color:#fff;margin-left:6px}html[data-theme=engineering] .resume:hover{color:#fff;background:#061a3a;border-color:#061a3a}html[data-theme=engineering] .hero-photo{border:2px solid var(--ink);background:#fff;border-radius:0}html[data-theme=engineering] .photo-note{border:1.5px solid var(--ink);text-transform:uppercase;letter-spacing:.08em;background:#fff}html[data-theme=engineering] .hero h1,html[data-theme=engineering] .project-meta h2,html[data-theme=engineering] .project-detail h1,html[data-theme=engineering] .about h1,html[data-theme=engineering] .about h2,html[data-theme=engineering] .contact h2,html[data-theme=engineering] .contact-page h1,html[data-theme=engineering] .final-design-card h3,html[data-theme=engineering] .name-placeholder{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;font-weight:500}html[data-theme=engineering] .hero h1{color:var(--navy)}html[data-theme=engineering] .hero h1 em,html[data-theme=engineering] .about h2 em,html[data-theme=engineering] .about h1 em,html[data-theme=engineering] .name-placeholder{font-family:var(--font-display);color:var(--navy);font-style:italic;font-weight:500}html[data-theme=engineering] .hero-description,html[data-theme=engineering] .project-meta p,html[data-theme=engineering] .detail-section p,html[data-theme=engineering] .detail-section ul,html[data-theme=engineering] .about-details,html[data-theme=engineering] .about-copy,html[data-theme=engineering] .contact-copy{font-family:var(--font-sans)}html[data-theme=engineering] .hero-button,html[data-theme=engineering] .hero-button.secondary{background:var(--navy);color:#fff;border:1.5px solid var(--navy);border-radius:0}html[data-theme=engineering] .hero-button:hover,html[data-theme=engineering] .hero-button.secondary:hover{color:#fff;background:#061a3a;border-color:#061a3a}html[data-theme=engineering] .project-art,html[data-theme=engineering] .detail-art{border:2px solid var(--ink);box-shadow:inset 0 0 0 5px var(--paper), inset 0 0 0 6px var(--ink);border-radius:0}html[data-theme=engineering] .project-art.has-visual,html[data-theme=engineering] .detail-art.has-visual{box-shadow:none;background:#fff!important}html[data-theme=engineering] .project-title-link:hover{color:var(--navy)}html[data-theme=engineering] .section{border-top:2px solid var(--ink)}html[data-theme=engineering] .contact{background:var(--navy);color:#f3efe4;min-height:0;padding-top:32px;padding-bottom:28px}html[data-theme=engineering] .contact h2{margin:18px 0 16px;font-size:clamp(36px,5vw,64px)}html[data-theme=engineering] .contact-bottom{margin-top:40px;position:static}html[data-theme=engineering] .contact .eyebrow{color:#c5d4e8}html[data-theme=engineering] .email{color:#fff;border-bottom-color:#fff}.contact-socials{align-items:center;gap:16px;margin-top:22px;display:flex}.social-icon{width:36px;height:36px;color:inherit;place-items:center;display:grid;border-bottom:none!important}.social-icon svg{width:22px;height:22px;display:block}.social-icon:hover{opacity:.7}html[data-theme=engineering] .contact-socials .social-icon{color:#fff}html[data-theme=engineering] .circle-link:hover{background:var(--navy);color:#fff}html[data-theme=engineering] .detail-copy{border-top:2px solid var(--ink)}html[data-theme=engineering] .section-figure img,html[data-theme=engineering] .section-figure video{border:1.5px solid var(--ink);background:#fff}html[data-theme=engineering] .cost-estimator thead{background:var(--navy)}
