@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--background:#fff;--foreground:#171717}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}html{height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;font-family:Arial,Helvetica,sans-serif;display:flex}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}.portfolio-intro{color:#fff;background-image:linear-gradient(90deg,#040c18eb 0%,#040c18b8 35%,#040c182e 65%,#040c1800 100%),url(/images/redfish-lake-sunrise.jpg);background-position:50%;background-size:cover;min-height:calc(100vh - 72px);padding:8rem 6rem}.portfolio-intro h1{letter-spacing:-.03em;max-width:700px;margin-top:.5rem;font-size:clamp(2.5rem,5vw,4.75rem);line-height:1.05}.intro-name{letter-spacing:.3rem;font-size:.85rem;font-weight:600}.intro-specialties{margin-top:1rem;font-size:1rem}.intro-description{color:#ffffffd1;max-width:600px;margin-top:1.25rem;font-size:1.05rem;line-height:1.7}.intro-actions{gap:1rem;margin-top:2rem;display:flex}.primary-action,.secondary-action{border-radius:8px;padding:.85rem 1.4rem;font-weight:600}.primary-action{color:#07111f;background:#d98945}.secondary-action{color:#fff;border:1px solid #ffffffa6}.main-navigation{color:#fff;background:#07111f;justify-content:space-between;align-items:center;min-height:72px;padding:0 6rem;display:flex}.navigation-brand{letter-spacing:.25rem;font-size:.85rem;font-weight:700}.navigation-links{align-items:center;gap:2rem;display:flex}.navigation-links a{color:#ffffffbf;font-size:.9rem}.featured-projects{color:#fff;background:#07111f;min-height:calc(100vh - 72px);padding:6rem}.featured-projects h2{letter-spacing:.08em;font-size:2rem}.projects-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:2.5rem;display:grid}.project-card{background:#0d1929;border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;padding:1.5rem;transition:transform .2s,border-color .2s;display:flex}.project-card:hover{border-color:#e99a5473;transform:translateY(-4px)}.project-technologies{flex-wrap:wrap;gap:.5rem;margin-top:1.25rem;margin-bottom:.25rem;display:flex}.project-technologies span{color:#fffc;background:#16263b;border-radius:999px;padding:.4rem .7rem;font-size:.8rem;display:inline-block}.project-image{object-fit:cover;object-position:top;border-radius:10px;width:100%;height:240px;margin-bottom:1.25rem;display:block}.project-link{color:#e99a54;margin-top:auto;padding-top:1.25rem;font-weight:600;display:inline-block}.project-link:hover{color:#f5b87f}.about-me{color:#fff;background:#07111f;min-height:calc(100vh - 72px);padding:6rem}.about-content{grid-template-columns:.9fr 1.1fr;gap:6rem;max-width:1200px;margin:0 auto;display:grid}.section-label{color:#c87532;letter-spacing:.25rem;margin-bottom:1rem;font-size:.8rem;font-weight:700}.about-heading h1{letter-spacing:-.03em;font-size:clamp(2.5rem,4vw,4rem);line-height:1.08}.about-story{padding-top:2rem}.about-story p{color:#ffffffb8;margin-bottom:1.5rem;font-size:1.05rem;line-height:1.8}.skills-page{color:#fff;background:#07111f;min-height:calc(100vh - 72px);padding:6rem}.skills-content{max-width:1200px;margin:0 auto}.skills-heading{max-width:700px;margin-bottom:4rem}.skills-heading h1{letter-spacing:-.03em;font-size:clamp(2.5rem,4vw,4rem);line-height:1.08}.skills-intro{color:#ffffffb3;max-width:600px;margin-top:1.5rem;font-size:1.05rem;line-height:1.7}.skills-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.skill-group{background:#0d1929;border:1px solid #ffffff1a;border-radius:14px;padding:2rem}.skill-group h2{margin-bottom:1rem;font-size:1.1rem}.skill-group p{color:#ffffffb3;line-height:1.8}.credentials-page{color:#fff;background:#07111f;min-height:calc(100vh - 72px);padding:6rem}.credentials-content{max-width:1200px;margin:0 auto}.credentials-content h1{letter-spacing:-.03em;font-size:clamp(2.5rem,4vw,4rem);line-height:1.08}.credentials-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:4rem;display:grid}.credential-card{background:#0d1929;border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;min-height:300px;padding:2rem;display:flex}.credential-type{color:#e99a54;letter-spacing:.18rem;margin-bottom:1.25rem;font-size:.75rem;font-weight:700}.credential-card h2{margin-bottom:.5rem;font-size:1.35rem;line-height:1.3}.credential-school{color:#ffffffa6;margin-bottom:1.5rem}.credential-description{color:#ffffffb8;line-height:1.7}.credential-link{color:#e99a54;margin-top:auto;padding-top:1.5rem;font-weight:600}.credential-link:hover{color:#f5b87f}.contact-page{color:#fff;background:#07111f;min-height:calc(100vh - 72px);padding:2.5rem 6rem}.contact-content{max-width:900px;margin:0 auto}.contact-content h1{letter-spacing:-.04em;max-width:800px;font-size:clamp(2rem,3vw,4.5rem);line-height:1}.contact-intro{color:#ffffffb8;max-width:650px;margin-top:1.25rem;font-size:1.1rem;line-height:1.8}.contact-actions{gap:1rem;margin-top:2.5rem;display:flex}.contact-primary,.contact-secondary{border-radius:8px;padding:.9rem 1.4rem;font-weight:600;transition:transform .2s}.contact-primary{color:#07111f;background:#e99a54}.contact-secondary{color:#fff;border:1px solid #fff6}.contact-primary:hover,.contact-secondary:hover{transform:translateY(-2px)}.contact-form-container{background:#0d1b2d;border:1px solid #ffffff1f;border-radius:16px;max-width:900px;margin-top:1rem;padding:1rem}.contact-form{flex-direction:column;gap:1.5rem;margin-top:1rem;display:flex}.contact-form-row{grid-template-columns:repeat(2,1fr);gap:1.25rem;display:grid}.contact-field{flex-direction:column;gap:.5rem;display:flex}.contact-field label{color:#f0a052;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;font-weight:700}.contact-field input,.contact-field textarea{color:#fff;width:100%;font:inherit;background:#081424;border:1px solid #ffffff2e;border-radius:8px;outline:none;padding:.9rem 1rem;transition:border-color .2s,box-shadow .2s}.contact-field input:focus,.contact-field textarea:focus{border-color:#f0a052;box-shadow:0 0 0 3px #f0a0521f}.contact-field textarea{resize:vertical;min-height:90px}.contact-honeypot{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.contact-form-footer{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.contact-form button:disabled{cursor:not-allowed;opacity:.65}.contact-status{color:#ffffffb3;margin:0;font-size:.9rem}@media (max-width:700px){.contact-form-row{grid-template-columns:1fr}.contact-form-container{padding:1.5rem}}.project-detail{color:#fff;background:#071426;min-height:100vh;padding:5rem 0 7rem}.project-detail-content{width:min(1120px,100% - 3rem);margin:0 auto}.project-back-link{color:#aeb8c7;margin-bottom:4rem;font-size:.95rem;text-decoration:none;transition:color .2s;display:inline-block}.project-back-link:hover{color:#f0a052}.project-detail .section-label{color:#f0a052;letter-spacing:.28em;text-transform:uppercase;margin:0 0 1rem;font-size:.78rem;font-weight:700}.project-detail h1{letter-spacing:-.05em;max-width:850px;margin:0;font-size:clamp(3.5rem,8vw,6.5rem);line-height:.95}.project-detail-tagline{color:#b6c0cf;max-width:760px;margin:2rem 0 0;font-size:1.25rem;line-height:1.7}.project-tech-list{flex-wrap:wrap;gap:.7rem;margin-top:2rem;display:flex}.project-tech-list span{color:#d7dee8;background:#0d1b2d;border:1px solid #ffffff1f;border-radius:999px;padding:.55rem .85rem;font-size:.85rem}.project-detail-grid{border-top:1px solid #ffffff1f;grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr);gap:5rem;margin-top:6rem;padding-top:4rem;display:grid}.project-detail-grid h2{letter-spacing:-.035em;max-width:650px;margin:0 0 1.5rem;font-size:clamp(2rem,4vw,3.25rem);line-height:1.08}.project-detail-grid>div>p:not(.section-label){color:#aeb8c7;max-width:700px;margin:0 0 1.25rem;font-size:1.05rem;line-height:1.8}.project-detail-summary{background:#0d1b2d;border:1px solid #ffffff1f;border-radius:16px;align-self:start;padding:1.8rem}.project-detail-summary>div{border-bottom:1px solid #ffffff1a;padding:1.15rem 0}.project-detail-summary>div:first-child{padding-top:0}.project-detail-summary>div:last-child{border-bottom:0;padding-bottom:0}.project-detail-summary span{color:#f0a052;letter-spacing:.16em;margin-bottom:.4rem;font-size:.7rem;font-weight:700;display:block}.project-detail-summary strong{color:#fff;font-size:.98rem;line-height:1.5}@media (max-width:800px){.project-detail{padding-top:3rem}.project-detail-content{width:min(100% - 2rem,1120px)}.project-back-link{margin-bottom:3rem}.project-detail-grid{grid-template-columns:1fr;gap:2.5rem;margin-top:4rem;padding-top:3rem}}.project-case-study{border-top:1px solid #ffffff1f;margin-top:7rem;padding-top:5rem}.project-case-study-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin-top:2rem;display:grid}.project-case-study-block{background:#0d1b2d;border:1px solid #ffffff1f;border-radius:16px;min-height:390px;padding:2.5rem;position:relative;overflow:hidden}.project-case-study-number{color:#ffffff0d;font-size:7rem;font-weight:700;line-height:1;position:absolute;top:1rem;right:1.5rem}.project-case-study-block h2{color:#fff;letter-spacing:-.035em;max-width:480px;margin:1.5rem 0;font-size:clamp(2rem,3vw,2.8rem);line-height:1.08;position:relative}.project-case-study-block>p:not(.section-label){color:#aeb8c7;max-width:560px;margin:0;font-size:1rem;line-height:1.8;position:relative}@media (max-width:800px){.project-case-study{margin-top:5rem;padding-top:3.5rem}.project-case-study-grid{grid-template-columns:1fr}.project-case-study-block{min-height:auto;padding:2rem}}.project-build{border-top:1px solid #ffffff1f;margin-top:7rem;padding-top:5rem}.project-build-heading{grid-template-columns:minmax(0,1.1fr) minmax(300px,.7fr);align-items:end;column-gap:5rem;display:grid}.project-build-heading .section-label{grid-column:1/-1}.project-build-heading h2{letter-spacing:-.04em;max-width:650px;margin:0;font-size:clamp(2.5rem,5vw,4rem);line-height:1.05}.project-build-heading>p:not(.section-label){color:#aeb8c7;margin:0;font-size:1.05rem;line-height:1.8}.project-build-grid{border-top:1px solid #ffffff1f;border-left:1px solid #ffffff1f;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:4rem;display:grid}.project-build-item{border-bottom:1px solid #ffffff1f;border-right:1px solid #ffffff1f;min-height:240px;padding:2rem}.project-build-item span{color:#f0a052;letter-spacing:.15em;font-size:.75rem;font-weight:700}.project-build-item h3{color:#fff;margin:2.5rem 0 .8rem;font-size:1.4rem}.project-build-item p{color:#aeb8c7;max-width:460px;margin:0;line-height:1.7}@media (max-width:800px){.project-build{margin-top:5rem;padding-top:3.5rem}.project-build-heading{grid-template-columns:1fr;gap:1.5rem}.project-build-grid{grid-template-columns:1fr;margin-top:3rem}}.project-demo{border-top:1px solid #ffffff1f;margin-top:7rem;padding-top:5rem}.project-demo-heading{max-width:720px}.project-demo-heading h2{letter-spacing:-.04em;margin:0 0 1.25rem;font-size:clamp(2.5rem,5vw,4rem);line-height:1.05}.project-demo-heading>p:not(.section-label){color:#aeb8c7;margin:0;font-size:1.05rem;line-height:1.8}.project-demo-placeholder{text-align:center;background:#0d1b2d;border:1px solid #ffffff1f;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;min-height:520px;margin-top:3rem;display:flex}.project-demo-placeholder span{color:#f0a052;letter-spacing:.2em;font-size:.75rem;font-weight:700}.project-demo-placeholder p{color:#aeb8c7;margin:.75rem 0 0}@media (max-width:800px){.project-demo{margin-top:5rem;padding-top:3.5rem}.project-demo-placeholder{min-height:300px}}.project-closing{border-top:1px solid #ffffff1f;margin-top:7rem;padding:5rem 0 3rem}.project-closing-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);align-items:start;gap:5rem;display:grid}.project-closing-grid h2{letter-spacing:-.04em;max-width:650px;margin:0;font-size:clamp(2.5rem,5vw,4rem);line-height:1.05}.project-closing-copy p{color:#aeb8c7;margin:0 0 1.25rem;font-size:1.05rem;line-height:1.8}.project-closing-actions{flex-wrap:wrap;gap:1rem;margin-top:3.5rem;display:flex}.project-primary-link,.project-secondary-link{border-radius:8px;justify-content:center;align-items:center;min-height:52px;padding:0 1.4rem;font-weight:700;text-decoration:none;transition:transform .2s,background .2s,border-color .2s;display:inline-flex}.project-primary-link{color:#071426;background:#f0a052;border:1px solid #f0a052}.project-secondary-link{color:#fff;background:0 0;border:1px solid #ffffff40}.project-primary-link:hover,.project-secondary-link:hover{transform:translateY(-2px)}.project-secondary-link:hover{border-color:#f0a052}@media (max-width:800px){.project-closing{margin-top:5rem;padding-top:3.5rem}.project-closing-grid{grid-template-columns:1fr;gap:2rem}}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}
