
#cameron-home{--home-green:#48664f;--home-space:34px;background:#fff;color:#17191a;font:14px/1.6 'Open Sans',Arial,sans-serif}
#cameron-home *{box-sizing:border-box}
#cameron-home .wrap{width:calc(100% - 72px);max-width:1060px;margin:auto}
#cameron-home h1,#cameron-home h2,#cameron-home h3,#cameron-home p,#cameron-home figure{margin:0}
#cameron-home a{color:inherit;text-underline-offset:4px}
#cameron-home .top{background:#101112;color:#fff}
#cameron-home header{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:66px;border-bottom:1px solid #353738}
#cameron-home .brand{font:500 20px 'Open Sans',Arial,sans-serif;letter-spacing:-.045em;text-decoration:none}
#cameron-home .brand span{color:#a9c1a6}
#cameron-home nav{display:flex;gap:22px;font-size:12px}
#cameron-home nav a{text-decoration:none;padding:10px 0}
#cameron-home a:hover{color:var(--home-green)}
#cameron-home .top a:hover{color:#b7cbb3}
#cameron-home .intro{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:36px;padding:32px 0;align-items:center}
#cameron-home h1{font:500 43px/1.08 'Open Sans',Arial,sans-serif;letter-spacing:-.05em;margin-bottom:10px}
#cameron-home .subtitle{color:#b9ccb6;font-size:12px;margin-bottom:17px}
#cameron-home .bio{color:#d8dbdd;font-size:13px;line-height:1.75}
#cameron-home .bio p+p{margin-top:10px}
#cameron-home .portrait{width:100%;height:auto;aspect-ratio:1.04;object-fit:cover;object-position:66% center;display:block}
#cameron-home section.content{padding:var(--home-space) 0 0}
#cameron-home h2{font:500 26px/1.2 'Open Sans',Arial,sans-serif;letter-spacing:-.035em;margin-bottom:18px}
#cameron-home .skills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#cameron-home .skill{border:1px solid #dce2db;border-radius:5px;padding:14px 15px;background:linear-gradient(115deg,#f6f8f5,#fff)}
#cameron-home .skill-top{display:flex;align-items:center;gap:9px;margin-bottom:6px}
#cameron-home .skill-top i,#cameron-home .skill-top svg{color:var(--home-green);width:17px;height:17px;flex-shrink:0}
#cameron-home .skill h3{font:600 13px 'Open Sans',Arial,sans-serif}
#cameron-home .skill p{font-size:12px;line-height:1.55;color:#5c635f}
#cameron-home .jobs{border-top:1px solid #d9dcda}
#cameron-home .job{display:grid;grid-template-columns:130px minmax(0,1fr);gap:25px;padding:20px 0;border-bottom:1px solid #d9dcda}
#cameron-home .employer{padding-top:3px}
#cameron-home .logo{display:block;width:112px;height:36px;object-fit:contain;object-position:left center}
#cameron-home .logo.tesla{height:23px;width:105px;margin:6px 0 7px}
#cameron-home .logo.orbital{background:#fff;padding:0;height:56px;width:115px;object-fit:cover}
#cameron-home .job-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:7px;flex-wrap:wrap}
#cameron-home .job h3{font:600 14px/1.5 'Open Sans',Arial,sans-serif}
#cameron-home .job time{font-size:11px;color:#69716b;white-space:nowrap}
#cameron-home .team{color:#606861;font-size:12px;margin-top:-4px;margin-bottom:7px}
#cameron-home .job p{color:#454c47}
#cameron-home .job ul{margin:0;padding-left:17px;color:#454c47}
#cameron-home .job li{padding-left:2px;margin:0 0 5px}
#cameron-home .job li:last-child{margin-bottom:0}
#cameron-home .job li::marker{color:var(--home-green)}
#cameron-home .status{font-size:11px;font-weight:400;color:var(--home-green);white-space:nowrap;margin-left:7px}
#cameron-home .robot-image img{object-fit:contain}
#cameron-home .project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 22px}
#cameron-home .project{min-width:0}
#cameron-home .project-image{aspect-ratio:1.36;background:#fff;margin-bottom:13px;overflow:hidden}
#cameron-home .project-image img{display:block;height:100%;width:100%;object-fit:cover}
#cameron-home .project-image.battery img{object-position:center top}
#cameron-home .project-image.wood{display:flex;justify-content:center;gap:6px;background:#fff}
#cameron-home .project-image.wood img{width:calc(50% - 3px);object-fit:contain}
#cameron-home .project h3{font:500 21px/1.25 'Open Sans',Arial,sans-serif;letter-spacing:-.025em;margin-bottom:7px}
#cameron-home .project p{color:#525b54;font-size:12px;line-height:1.65}
#cameron-home .robot-preview{height:100%;display:flex;align-items:center;justify-content:center;gap:13px;color:var(--home-green);background:repeating-linear-gradient(0deg,transparent,transparent 23px,#e2e7e1 24px),repeating-linear-gradient(90deg,#f3f5f2,#f3f5f2 23px,#e2e7e1 24px)}
#cameron-home .robot-preview svg,#cameron-home .robot-preview i{width:28px;height:28px}
#cameron-home .robot-preview span{font-size:12px;background:#f3f5f2;padding:7px}
#cameron-home footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;margin-top:34px;border-top:1px solid #cfd5ce;font-size:11px;color:#616a63}
#cameron-home .contact-links{display:flex;gap:22px;font-size:12px;color:#202621}
@media(max-width:700px){#cameron-home .wrap{width:calc(100% - 36px)}#cameron-home .intro{grid-template-columns:1fr;gap:22px;padding:26px 0}#cameron-home .portrait{aspect-ratio:1.8;object-position:66% 42%}#cameron-home h1{font-size:39px}#cameron-home .skills{grid-template-columns:repeat(2,minmax(0,1fr))}#cameron-home .job{grid-template-columns:105px minmax(0,1fr);gap:18px}#cameron-home .logo,#cameron-home .logo.orbital{max-width:100px}#cameron-home .project-image{height:auto}#cameron-home nav{gap:13px}#cameron-home .brand{font-size:21px}}
@media(max-width:450px){#cameron-home header{flex-wrap:wrap;gap:0;padding:15px 0 8px}#cameron-home nav{width:100%;gap:23px}#cameron-home .skills{grid-template-columns:1fr}#cameron-home .skill{padding:12px 14px}#cameron-home .job{grid-template-columns:1fr;gap:12px}#cameron-home .project-grid{grid-template-columns:1fr}#cameron-home .project-image{height:auto}#cameron-home footer{flex-wrap:wrap}}
@media(pointer:coarse){#cameron-home a{min-height:44px;display:inline-flex;align-items:center}}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/open-sans-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/open-sans-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/open-sans-latin-600-normal.woff2') format('woff2')}
html{scroll-behavior:smooth}body{margin:0}a:focus-visible,[tabindex]:focus-visible{outline:3px solid #588b5e;outline-offset:5px}
#cameron-home .skip-link{position:absolute;left:16px;top:-80px;background:#fff;color:#111;padding:12px 18px;z-index:10}
#cameron-home .skip-link:focus{top:12px}
#cameron-home .skill-top img{width:17px;height:17px;opacity:.72}
#cameron-home .dates{font-size:11px;color:#69716b;white-space:nowrap}
#cameron-home .project-link{text-decoration:none;display:block}
#cameron-home .project-link:hover h3{color:var(--home-green)}
#cameron-home .project-more{display:inline-block;margin-top:8px;font-size:12px;color:var(--home-green);text-decoration:underline}
#cameron-home .project-intro{padding:24px 0 30px}
#cameron-home .project-intro .bio{max-width:760px}
#cameron-home .project-intro h1{font-size:36px}
#cameron-home .back{display:inline-block;margin-bottom:23px;font-size:12px;color:#d4ddd2;text-decoration:none}
#cameron-home .project-body{max-width:800px;margin:26px auto 30px;color:#454c47}
#cameron-home .project-body h2{font-size:24px;margin:28px 0 12px;color:#17191a}
#cameron-home .project-body h2:first-child{margin-top:0}
#cameron-home .project-body p{margin:0 0 15px}
#cameron-home .project-body li{margin-bottom:6px}
#cameron-home .project-body figure{margin:24px 0}
#cameron-home .project-body figure img{display:block;width:100%;height:auto;max-height:620px;object-fit:contain;background:#fff}
#cameron-home .project-body figcaption{font-size:12px;color:#59645b;margin-top:9px}
#cameron-home .table-scroll{overflow-x:auto;margin:18px 0}
#cameron-home table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
#cameron-home th,#cameron-home td{padding:10px 7px;border-bottom:1px solid #d7dcd6;text-align:right}
#cameron-home th:first-child,#cameron-home td:first-child{text-align:left}
#cameron-home .project-nav{display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px;padding-top:20px;border-top:1px solid #d7dcd6;font-size:13px}
#cameron-home .not-found{padding-top:50px}
#cameron-home .not-found p{margin:16px 0}
@media(max-width:450px){#cameron-home .project-intro h1{font-size:30px}#cameron-home .project-body h2{font-size:22px}#cameron-home .project-intro .subtitle{font-size:11px}#cameron-home .project-body figure img{max-height:520px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

#cameron-home .contact-section{display:grid;grid-template-columns:1fr 1.4fr;gap:32px;padding:28px 0 0;margin-top:30px;border-top:1px solid #cfd5ce;scroll-margin-top:24px}
#cameron-home .contact-section h2{margin:0 0 12px}
#cameron-home .contact-section p{margin:8px 0}
#cameron-home .contact-section a{color:#1f533e;text-underline-offset:4px}
#cameron-home .contact-form{display:grid;gap:8px}
#cameron-home .contact-form label{font-size:12px;font-weight:600}
#cameron-home .contact-form input,#cameron-home .contact-form textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid #cfd5ce;border-radius:3px;background:#fff;color:#171a18;font:inherit;font-size:13px;padding:10px 12px}
#cameron-home .contact-form textarea{resize:vertical}
#cameron-home .contact-form input:focus-visible,#cameron-home .contact-form textarea:focus-visible,#cameron-home .contact-form button:focus-visible{outline:2px solid #28704e;outline-offset:3px}
#cameron-home .contact-actions{display:flex;align-items:center;gap:16px;margin-top:4px}
#cameron-home .contact-form button{flex-shrink:0;border:0;border-radius:3px;background:#171a18;color:#fff;font:inherit;font-size:12px;padding:11px 16px;cursor:pointer}
#cameron-home .contact-form button:hover{background:#24533d}
#cameron-home .contact-note{font-size:12px;line-height:1.6;color:#616a63}
@media(max-width:600px){#cameron-home .contact-section{grid-template-columns:1fr;gap:16px}#cameron-home .contact-actions{align-items:flex-start;flex-direction:column;gap:4px}}

#cameron-home .media-section{scroll-margin-top:24px}
#cameron-home .media-list{display:grid;gap:0}
#cameron-home .media-item{padding:14px 0;border-bottom:1px solid #e3e6e3}
#cameron-home .media-item:first-child{padding-top:0}
#cameron-home .media-item:last-child{border-bottom:0;padding-bottom:0}
#cameron-home .media-item h3{font-size:15px;font-weight:600;line-height:1.5;margin:0 0 4px}
#cameron-home .media-item a{color:#17251e;text-decoration-thickness:1px;text-underline-offset:4px}
#cameron-home .media-item a:hover{color:#28704e}
#cameron-home .media-item p{font-size:13px;line-height:1.6;margin:4px 0 0}
#cameron-home .media-item h3+p{font-size:11px;color:#616a63}
@media(max-width:450px){#cameron-home header nav{gap:18px;flex-wrap:wrap}}

#cameron-home .site-banner{position:sticky;top:0;z-index:100;background:#101112;color:#fff}
#cameron-home .site-banner a:hover{color:#b7cbb3}
#cameron-home [id]{scroll-margin-top:90px}
#cameron-home .media-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
#cameron-home .media-item,#cameron-home .media-item:first-child,#cameron-home .media-item:last-child{padding:0;border:0}
#cameron-home .media-image{display:block;margin-bottom:10px;background:#fff}
#cameron-home .media-image img{display:block;width:100%;height:180px;object-fit:contain}
#cameron-home .media-item h3{font-size:14px}
@media(max-width:700px){#cameron-home .media-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:450px){#cameron-home [id]{scroll-margin-top:116px}#cameron-home .media-list{gap:20px 14px}#cameron-home .media-image img{height:145px}}

#cameron-home .project-body figure img[src$="battery-full-poster.webp"]{max-height:none}

#cameron-home .project-body .project-video{width:min(100%,349px);margin:24px auto}
#cameron-home .project-video video{display:block;width:100%;height:auto;aspect-ratio:9/16;background:transparent}

#cameron-home .portrait{aspect-ratio:1;object-fit:cover;object-position:center 65%}

#cameron-home .contact-honey{display:none!important}
#cameron-home .contact-status{font-size:12px;line-height:1.6}
#cameron-home .contact-form button:disabled{opacity:.65;cursor:wait}

#cameron-home .robot-build-crop{width:min(100%,520px);aspect-ratio:3/4;overflow:hidden;margin:auto;background:#fff}
#cameron-home .project-body .robot-build-crop img{width:175%;max-width:none;height:auto;max-height:none;transform:translate(-19%,-25%);object-fit:initial}

#cameron-home .robot-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;width:100%;max-width:800px;margin:24px auto}
#cameron-home .project-body .robot-comparison figure{margin:0;min-width:0}
#cameron-home .robot-cad-crop,#cameron-home .robot-comparison .robot-build-crop{width:100%;aspect-ratio:3/4;overflow:hidden;background:#fff}
#cameron-home .project-body .robot-cad-crop img{width:225%;max-width:none;height:auto;max-height:none;transform:translate(-28%,-12%);object-fit:initial}
@media(max-width:550px){#cameron-home .robot-comparison{grid-template-columns:1fr;gap:24px}}

/* Compact woodworking galleries keep the smaller originals below native size. */
#cameron-home .woodworking-gallery{display:grid;gap:18px;margin:22px 0;align-items:start}
#cameron-home .guitar-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
#cameron-home .plant-gallery{grid-template-columns:repeat(2,minmax(0,1fr));max-width:600px;margin-inline:auto}
#cameron-home .project-body .woodworking-gallery figure{margin:0;min-width:0}
#cameron-home .project-body .woodworking-gallery img{width:100%;height:auto;max-height:none;background:#fff}
@media(max-width:550px){#cameron-home .woodworking-gallery{gap:12px}#cameron-home .guitar-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}#cameron-home .woodworking-gallery figcaption{font-size:11px}}

#cameron-home .project-image img[src$="printer-overall.webp"],#cameron-home .project-image img[src$="cansat-build.webp"]{object-fit:contain}
#cameron-home .project-body .printer-overview{max-width:340px;margin:22px auto}
#cameron-home .printer-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:620px;margin:22px auto;align-items:center}
#cameron-home .project-body .printer-details figure{margin:0;min-width:0}
#cameron-home .project-body .printer-details img{max-height:none}
#cameron-home .project-body .cansat-build{max-width:420px;margin:22px auto}
#cameron-home .project-body .cansat-team{max-width:600px;margin:22px auto}
@media(max-width:450px){#cameron-home .printer-details{grid-template-columns:1fr;max-width:300px}}

#cameron-home .project-body .power-detail{margin:22px auto;max-width:700px}
#cameron-home .project-body .power-detail img{max-height:none}
#cameron-home .project-body .power-detail:has(img[src$="power-layout.webp"]){max-width:420px}
#cameron-home .project-body .power-detail:has(img[src$="power-integrated.webp"]){max-width:560px}

/* Consistent, compact project cards and paired assembly photographs. */
#cameron-home .project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 20px}
#cameron-home .project-image{aspect-ratio:4/3}
#cameron-home .project-image img{object-fit:cover}
#cameron-home .project-image img[src$="maze-cad.webp"]{object-fit:cover;transform:scale(1.22);object-position:50% 50%}
#cameron-home .project-image img[src$="printer-overall.webp"]{object-fit:cover;object-position:50% 45%;clip-path:inset(3px)}
#cameron-home .project-image img[src$="cansat-build.webp"]{object-fit:cover;object-position:50% 50%}
#cameron-home .project-image img[src$="beamline.webp"]{object-position:50% 42%}
#cameron-home .project-image.wood img{object-fit:cover}
#cameron-home .project-body .printer-overview img{clip-path:inset(3px);border:0}
#cameron-home .orbital-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:22px auto}
#cameron-home .project-body .orbital-gallery figure{margin:0;min-width:0}
#cameron-home .project-body .orbital-gallery img{aspect-ratio:4/3;object-fit:cover;background:white}
@media(max-width:850px){#cameron-home .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:550px){#cameron-home .orbital-gallery{grid-template-columns:1fr}}
@media(max-width:450px){#cameron-home .project-grid{grid-template-columns:1fr}}

#cameron-home .project-body img[src$="printer-drawing.webp"]{clip-path:inset(4% 3% 4% 3%);max-height:none}

/* Keep the team above the date and location in experience entries. */
#cameron-home .job-head:has(.team){flex-direction:column;align-items:flex-start;gap:4px}
#cameron-home .job-head .team{margin:0}

/* Let the EnerSys artwork fill the shared logo width without height constraints. */
#cameron-home .logo[src$="enersys-logo.jpg"]{height:auto}
