:root{--bg-0:#02050d;--bg-1:#061125;--bg-2:#0b1d3c;--text-primary:#eef4ff;--text-secondary:#9fb2d4;--line:#c6d8fa47;--panel:#09101eb8;--accent:#8eb4ff}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{isolation:isolate;color:var(--text-primary);background:#01030a;font-family:SF Pro Display,Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;position:relative;overflow-x:hidden}body.use-gradient-background{background:radial-gradient(circle at 18% 8%, var(--bg-2) 0%, transparent 38%), radial-gradient(circle at 86% 18%, #101f39 0%, transparent 35%), linear-gradient(180deg, var(--bg-1) 0%, var(--bg-0) 60%, #01030a 100%)}#particles-js{pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;inset:0}#particles-js canvas{display:block;width:100%!important;height:100%!important}.shooting-stars-layer{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.shooting-star{width:var(--shoot-tail-length,220px);height:var(--shoot-thickness,2px);opacity:0;filter:drop-shadow(0 0 var(--shoot-blur,7px) #9eccff85);transform:translate3d(var(--shoot-start-x,0px), var(--shoot-start-y,0px), 0) rotate(var(--shoot-angle,140deg));transform-origin:0;will-change:transform, opacity;animation:shooting-star-streak var(--shoot-duration,1.4s) ease-out forwards;background:linear-gradient(90deg,#dcecfff2 0%,#aacdff73 55%,#aacdff00 100%);border-radius:999px;position:absolute;top:0;left:0}@keyframes shooting-star-streak{0%{opacity:0;transform:translate3d(var(--shoot-start-x,0px), var(--shoot-start-y,0px), 0) rotate(var(--shoot-angle,140deg))}8%{opacity:var(--shoot-opacity,.9)}68%{opacity:calc(var(--shoot-opacity,.9) * .72)}to{opacity:0;transform:translate3d(calc(var(--shoot-start-x,0px) + var(--shoot-dx,-380px)), calc(var(--shoot-start-y,0px) + var(--shoot-dy,380px)), 0) rotate(var(--shoot-angle,140deg))}}body.modal-open{overflow:hidden}.projects-shell{z-index:1;width:min(1200px,94vw);margin:0 auto;padding:clamp(1rem,2vw,1.4rem) 0 clamp(2.4rem,6vh,4rem);position:relative}.projects-top{justify-content:space-between;align-items:center;gap:1rem;display:flex}.projects-brand{color:var(--text-primary);letter-spacing:.12em;font-size:clamp(.95rem,1.02vw,1.08rem);font-weight:600;text-decoration:none}.projects-top-nav{gap:1rem;display:flex}.projects-top-nav a{color:var(--text-secondary);border-bottom:1px solid #0000;padding-bottom:.14rem;text-decoration:none;transition:color .16s,border-color .16s}.projects-top-nav a:hover,.projects-top-nav a:focus-visible{color:var(--text-primary);border-color:var(--line);outline:none}.projects-tabs-wrap{margin-top:clamp(.6rem,1.5vh,1rem);position:relative}.projects-tabs{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:4;background:#080d188c;border-radius:999px;flex-wrap:wrap;gap:.52rem;width:100%;padding:.4rem;display:flex;position:sticky;top:.7rem}.projects-tab{color:var(--text-secondary);letter-spacing:.02em;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:.54rem 1rem;font-size:.92rem;transition:color .16s,border-color .16s,background-color .16s,transform .16s}.projects-tab:hover,.projects-tab:focus-visible{color:var(--text-primary);border-color:var(--line);outline:none;transform:translateY(-1px)}.projects-tab.is-active{color:var(--text-primary);background:linear-gradient(#87a7e442,#506a9c3d);border-color:#dbe6fb80}.projects-last-updated{color:#8ea5cd;letter-spacing:.03em;pointer-events:none;z-index:5;margin:0;font-size:.78rem;position:absolute;top:50%;right:clamp(.9rem,2vw,1.35rem);transform:translateY(-50%)}.projects-last-updated time{color:#c3d5f5}.scroll-hint{color:#d6e4fec7;opacity:0;visibility:hidden;z-index:6;pointer-events:none;width:clamp(2.35rem,3.6vw,2.8rem);height:clamp(2.35rem,3.6vw,2.8rem);transition:opacity .22s,visibility .22s;position:fixed;bottom:clamp(.9rem,2vh,1.4rem);right:clamp(.9rem,2vw,1.5rem);transform:translateY(0)}.scroll-hint.is-visible{opacity:1;visibility:visible;animation:1.7s ease-in-out infinite scroll-hint-bounce}.scroll-hint svg{filter:drop-shadow(0 0 10px #6289d347);width:100%;height:100%;display:block}.scroll-hint circle,.scroll-hint path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px}@keyframes scroll-hint-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.projects-panels{margin-top:1.15rem}.baja-showcase{margin-top:.7rem;margin-bottom:.95rem;display:none}.baja-showcase.is-visible{display:block}.baja-showcase-frame{aspect-ratio:21/8;background:#080e1bcc;border:1px solid #c2d6fa3d;border-radius:1rem;width:100%;position:relative;overflow:hidden;box-shadow:0 10px 28px #02071057,inset 0 1px #e9f0ff14}.baja-showcase-track{position:absolute;inset:0;overflow:hidden}.baja-showcase-image{object-fit:cover;will-change:transform;width:100%;height:100%;display:block;position:absolute;inset:0;transform:translate(0)}.baja-showcase-image:not([src]),.baja-showcase-image[src=""]{display:none}.baja-showcase-image-next{visibility:hidden;transform:translate(100%)}.baja-showcase-empty{color:var(--text-secondary);letter-spacing:.02em;background:linear-gradient(#081021b8,#040a15e6);place-items:center;font-size:.95rem;display:grid;position:absolute;inset:0}.baja-showcase-empty code{color:#d5e5ff;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.baja-showcase-arrow{color:#dbe8ff;cursor:pointer;z-index:2;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0309128a;border:1px solid #c6d8fa59;border-radius:999px;place-items:center;width:2.25rem;height:2.25rem;font-size:1.45rem;line-height:1;transition:background-color .16s,border-color .16s,transform .16s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.baja-showcase-arrow:hover,.baja-showcase-arrow:focus-visible{background:#0c1931b8;border-color:#dce8ff9e;outline:none;transform:translateY(-50%)scale(1.03)}.baja-showcase-arrow-prev{left:clamp(.55rem,1.1vw,.9rem)}.baja-showcase-arrow-next{right:clamp(.55rem,1.1vw,.9rem)}.baja-showcase-dots{z-index:2;align-items:center;gap:.42rem;display:flex;position:absolute;bottom:clamp(.5rem,1vw,.85rem);left:50%;transform:translate(-50%)}.baja-showcase-dot{cursor:pointer;background:#d4e3ff3d;border:1px solid #c0d3f86b;border-radius:999px;width:.52rem;height:.52rem;padding:0;transition:transform .14s,background-color .14s,border-color .14s}.baja-showcase-dot:hover,.baja-showcase-dot:focus-visible{border-color:#e8f1ffd6;outline:none;transform:scale(1.12)}.baja-showcase-dot.is-active{background:#dce9ff;border-color:#f5fafff5}.projects-panel{display:none}.projects-panel.is-active{display:block}.projects-panel[data-panel=featured]{--card-image-zoom:1.08}.projects-panel[data-panel=baja]{--card-image-zoom:1.12}.projects-panel[data-panel=mechanical],.projects-panel[data-panel=coding]{--card-image-zoom:1.08}.projects-panel[data-panel=experience]{--card-image-zoom:1}.projects-panel[data-panel=athletics],.projects-panel[data-panel=leadership]{--card-image-zoom:1.08}.projects-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:.9rem;display:grid}.project-card{background:var(--panel);border:1px solid #c2d6fa38;border-radius:1rem;grid-column:span 6;transition:transform .18s,box-shadow .18s,border-color .18s;overflow:hidden;box-shadow:0 8px 28px #02071066,inset 0 1px #e9f0ff14}.project-card[data-has-detail=true]{cursor:pointer}.project-card[data-has-detail=true]:hover,.project-card[data-has-detail=true]:focus-within{border-color:#dceaff80;transform:translateY(-2px);box-shadow:0 14px 34px #0812267a,0 0 20px #789ce433,inset 0 1px #e9f0ff1f}.project-image-wrap{aspect-ratio:16/9;border-bottom:1px solid #c2d6fa29;overflow:hidden}.project-image{object-fit:contain;width:100%;height:100%;transform:scale(var(--card-image-zoom,1.08));transform-origin:50%;background:#000;display:block}.project-card[data-project-key=lincoln-electric] .project-image{background:#fff}.project-card[data-project-key=custom-v-twin-motorcycle-engine] .project-image{transform:scale(1.12)}.project-content{padding:.95rem}.project-content h3{letter-spacing:-.01em;margin:0;font-size:clamp(1.02rem,1.5vw,1.28rem)}.project-content p{color:var(--text-secondary);margin:.56rem 0 0;font-size:1.02rem;line-height:1.55}.project-chip-row{flex-wrap:wrap;gap:.44rem;margin-top:.78rem;display:flex}.project-chip{color:#c9daf9;letter-spacing:.04em;text-transform:uppercase;border:1px solid #b4ccf647;border-radius:999px;padding:.24rem .55rem;font-size:.76rem}.project-actions{gap:.55rem;margin-top:.84rem;display:flex}.project-action{color:var(--text-primary);cursor:pointer;background:#0a1120b8;border:1px solid #c6d8fa47;border-radius:999px;padding:.45rem .8rem;font-size:.86rem;text-decoration:none;transition:transform .16s,border-color .16s,background-color .16s}.project-action:hover,.project-action:focus-visible{background:#a3bdf11f;border-color:#e1ebff8f;outline:none;transform:translateY(-1px)}.project-note{color:#c9d8f3;border-left:2px solid #a3bcf173;margin-top:.85rem;padding-left:.7rem;font-size:.9rem}.media-modal{z-index:20;opacity:0;visibility:hidden;transition:opacity .22s,visibility 0s linear .22s;position:fixed;inset:0;overflow:hidden}.media-modal.is-open{opacity:1;visibility:visible;transition:opacity .22s}.media-modal-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#02050cb8;position:absolute;inset:0}.media-modal-panel{background:#080e1bf0;border:1px solid #c6d8fa47;border-radius:1rem;width:min(1320px,96vw);max-height:calc(100vh - 1.4rem);margin:min(3vh,1.5rem) auto;padding:1rem;position:relative;overflow-y:auto;box-shadow:0 20px 60px #00000073}.media-modal-header{margin:0 0 .7rem;position:relative}.media-modal-close{color:var(--text-primary);cursor:pointer;background:#090f1dcc;border:1px solid #c6d8fa38;border-radius:999px;width:2rem;height:2rem}.media-modal-title{margin:0;font-size:clamp(1.15rem,2vw,1.45rem)}.media-modal:not(.is-mobile-view) .media-modal-header{justify-content:space-between;align-items:center;gap:.7rem;display:flex}.media-modal:not(.is-mobile-view) .media-modal-close{flex:none;position:static}.media-modal:not(.is-mobile-view) .media-modal-title{flex:auto;min-width:0}.media-modal-stage{background:#020710cc;border:1px solid #c6d8fa38;border-radius:.8rem;height:min(56vh,760px);min-height:clamp(220px,42vh,420px);overflow:hidden}.media-modal-stage-wrap{position:relative}.media-modal-stage-arrow{color:#dbe8ff;cursor:pointer;z-index:3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#03091294;border:1px solid #c6d8fa59;border-radius:999px;place-items:center;width:2.6rem;height:2.6rem;font-size:1.85rem;line-height:1;transition:background-color .16s,border-color .16s,transform .16s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.media-modal-stage-arrow:hover,.media-modal-stage-arrow:focus-visible{background:#0c1931c7;border-color:#dce8ffa6;outline:none;transform:translateY(-50%)scale(1.03)}.media-modal-nav{display:none}.media-modal-stage-arrow-prev{left:.7rem}.media-modal-stage-arrow-next{right:.7rem}.media-modal-loading{width:100%;height:100%;color:var(--text-secondary);letter-spacing:.06em;place-items:center;display:grid}.media-modal-image,.media-modal-video{object-fit:contain;background:#000;width:100%;height:100%;display:block}.media-modal-embed{background:#000;border:0;width:100%;height:100%;display:block}.media-modal-external{text-align:center;background:radial-gradient(circle at 50% 30%,#2a4a8247,#060a1400 58%),#020710eb;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;width:100%;height:100%;padding:1rem;display:flex}.media-modal-external-warning{color:#d2e1ff;margin:0;font-size:clamp(.95rem,2vw,1.06rem);line-height:1.4}.media-modal-external-link{color:var(--text-primary);letter-spacing:.02em;background:linear-gradient(#87a7e457,#506a9c4d);border:1px solid #c6d8fa57;border-radius:999px;justify-content:center;align-items:center;min-height:2.2rem;padding:.56rem 1.1rem;font-size:.96rem;text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s;display:inline-flex}.media-modal-external-link:hover,.media-modal-external-link:focus-visible{border-color:#e1ebff99;outline:none;transform:translateY(-1px);box-shadow:0 0 18px #729beb57}.media-modal[data-project-key=lincoln-electric] .media-modal-stage,.media-modal[data-project-key=lincoln-electric] .media-modal-image,.media-modal[data-project-key=lincoln-electric] .media-modal-video{background:#fff}.media-modal-controls{justify-content:flex-start;align-items:center;min-height:2rem;margin-top:.7rem;display:flex;position:relative}.media-modal-mode-buttons{align-items:center;gap:.44rem;display:none}.media-modal-mode-button{color:var(--text-secondary);letter-spacing:.02em;cursor:pointer;background:#0a1120b8;border:1px solid #c6d8fa47;border-radius:999px;min-height:2.2rem;padding:.5rem 1.04rem;font-size:.96rem;transition:transform .15s,border-color .15s,background-color .15s,color .15s}.media-modal-mode-button:hover,.media-modal-mode-button:focus-visible{color:var(--text-primary);border-color:#e1ebff8f;outline:none;transform:translateY(-1px)}.media-modal-mode-button.is-active{color:var(--text-primary);background:linear-gradient(#87a7e442,#506a9c3d);border-color:#dbe6fb80}.media-modal-counter{color:var(--text-secondary);text-align:center;min-width:3.2rem;font-size:.9rem;position:absolute;left:50%;transform:translate(-50%)}.media-modal-stage-arrow-desktop{display:grid}.media-modal-stage-arrow-mobile{display:none}.media-modal-counter-desktop{display:inline}.media-modal-counter-mobile{display:none}.media-modal.is-mobile-view .media-modal-panel{width:92vw;max-height:calc(100dvh - 2rem - env(safe-area-inset-top,0) - env(safe-area-inset-bottom,0));margin:0 auto;padding:.72rem;overflow-x:hidden}.media-modal.is-mobile-view{padding-top:calc(1rem + env(safe-area-inset-top,0));padding-bottom:calc(1rem + env(safe-area-inset-bottom,0));justify-content:center;align-items:center;display:flex}.media-modal.is-mobile-view .media-modal-header{top:env(safe-area-inset-top,0);z-index:6;background:linear-gradient(#080e1bfa 76%,#080e1b00);justify-content:space-between;align-items:flex-start;gap:.7rem;margin:-.15rem -.1rem .34rem;padding:.15rem .1rem .34rem;display:flex;position:sticky}.media-modal.is-mobile-view .media-modal-close{flex:none;position:relative;top:auto;right:auto}.media-modal.is-mobile-view .media-modal-title{margin:.2rem 0 0;font-size:clamp(1rem,4.6vw,1.2rem)}.media-modal.is-mobile-view .media-modal-stage{--modal-stage-ratio:16 / 9;aspect-ratio:var(--modal-stage-ratio);justify-content:center;align-items:center;width:100%;height:auto;min-height:0;max-height:58svh;display:flex}.media-modal.is-mobile-view .media-modal-stage>*{min-width:0;min-height:0}.media-modal.is-mobile-view .media-modal-image,.media-modal.is-mobile-view .media-modal-video{object-position:center center;width:auto;max-width:100%;height:auto;max-height:100%;margin:0 auto}.media-modal.is-mobile-view .media-modal-embed{max-width:100%;max-height:100%;margin:0 auto}.media-modal.is-mobile-view .media-modal-stage-arrow-desktop{display:none}.media-modal.is-mobile-view .media-modal-stage-arrow-mobile{width:2.2rem;height:2.2rem;font-size:1.55rem;display:grid;position:static;transform:none}.media-modal.is-mobile-view .media-modal-stage-arrow-mobile:hover,.media-modal.is-mobile-view .media-modal-stage-arrow-mobile:focus-visible{transform:none}.media-modal.is-mobile-view .media-modal-nav{justify-content:center;align-items:center;gap:.5rem;margin-top:.45rem;display:flex}.media-modal.is-mobile-view .media-modal-counter-desktop{display:none}.media-modal.is-mobile-view .media-modal-counter-mobile{min-width:3rem;display:inline;position:static;transform:none}.media-modal.is-mobile-view .media-modal-controls{justify-content:center;gap:.5rem;min-height:0;margin-top:.5rem}.media-modal.is-mobile-view .media-modal-mode-buttons{flex-wrap:wrap;gap:.4rem;width:100%}.media-modal.is-mobile-view .media-modal-mode-button{text-align:center;flex:calc(50% - .2rem);min-width:0;padding:.46rem .78rem}.media-modal-caption{color:#dbe7ff;margin:.7rem 0 0;font-size:1.02rem;line-height:1.46}.media-modal-description{color:var(--text-secondary);margin:.4rem 0 0;font-size:.9rem;line-height:1.46;display:none}.media-modal-points{color:#d5e3ff;overflow-wrap:anywhere;word-break:break-word;gap:.34rem;margin:.55rem 0 0;padding-left:1.1rem;font-size:1.02rem;line-height:1.46;display:grid}.media-modal-points li,.media-modal-caption,.media-modal-description{overflow-wrap:anywhere;word-break:break-word}.media-modal-extra-actions{flex-wrap:wrap;justify-content:flex-end;gap:.55rem;margin-top:.5rem;display:none}.media-modal-download{color:var(--text-primary);cursor:pointer;background:#0a1120b8;border:1px solid #c6d8fa4d;border-radius:999px;padding:.46rem .9rem;font-size:.86rem;text-decoration:none;transition:transform .16s,border-color .16s,background-color .16s}.media-modal-download:hover,.media-modal-download:focus-visible{background:#a3bdf11f;border-color:#e1ebff8f;outline:none;transform:translateY(-1px)}.media-modal-download:disabled{opacity:.7;cursor:wait}.media-modal[data-project-key=custom-v-twin-motorcycle-engine] .media-modal-download{min-height:2.3rem;padding:.62rem 1.18rem;font-size:1rem}.media-modal[data-project-key=greek-lithophane-lamps] .media-modal-download{min-height:2.3rem;padding:.62rem 1.22rem;font-size:1rem}.reveal{opacity:.38;filter:saturate(.9);transition:opacity .62s,transform .62s,filter .62s;transform:translateY(10px)}.reveal.is-visible{opacity:1;filter:saturate();transform:translateY(0)}@media (width<=980px){.project-card{grid-column:span 12}}@media (width<=1100px){.projects-tabs{justify-content:center}.projects-tabs-wrap{flex-direction:column;align-items:center;gap:.4rem;display:flex}.projects-last-updated{text-align:center;letter-spacing:.03em;white-space:normal;font-size:.76rem;position:static;top:auto;right:auto;transform:none}}@media (width<=760px){.projects-panel{--card-image-zoom:1}.project-image,.project-card[data-project-key=custom-v-twin-motorcycle-engine] .project-image{transform:none}.projects-shell{width:93vw}.projects-top{flex-direction:column;align-items:flex-start}.projects-tabs{border-radius:.9rem;justify-content:center;width:100%;position:static}.projects-last-updated{width:100%;font-size:.74rem;display:block}.baja-showcase-frame{aspect-ratio:16/9}}
