@import url(https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap);:root{--ink:#18221f;--muted:#64716c;--paper:#f8f8f5;--white:#fff;--line:#e4e7e2;--accent:#c95032;--accent-dark:#a83f27;--accent-contrast:#fff;--contact-bg:#202b27;--contact-text:#fff;--contact-muted:#bdc5c0;--form-bg:#f8f8f5;--form-text:#18221f;--form-muted:#64716c;--form-label:#435049;--field-bg:#fff;--field-line:#d9ded9;--field-text:#18221f;--status-pending-bg:#fff6df;--status-pending-text:#694b0e;--status-pending-line:#9b7122;--status-success-bg:#e9f7ef;--status-success-text:#195b36;--status-success-line:#237346;--status-error-bg:#fff0ee;--status-error-text:#82251d;--status-error-line:#ad362a;--font-body:"DM Sans",Arial,sans-serif;--font-display:"Manrope","DM Sans",Arial,sans-serif;--container:1120px}html[data-theme=dark]{--ink:#eff2ee;--muted:#b1bcb5;--paper:#151a18;--white:#202824;--line:#39443e;--accent:#e47b5e;--accent-dark:#f0987e;--accent-contrast:#151a18;--contact-bg:#101512;--contact-text:#eff2ee;--contact-muted:#b1bcb5;--form-bg:#202824;--form-text:#eff2ee;--form-muted:#b1bcb5;--form-label:#d5ded8;--field-bg:#171e1a;--field-line:#526159;--field-text:#eff2ee;--status-pending-bg:#42371f;--status-pending-text:#f4dda5;--status-pending-line:#e3bd69;--status-success-bg:#1d3b2b;--status-success-text:#b8e4c5;--status-success-line:#78c693;--status-error-bg:#482824;--status-error-text:#ffc3bd;--status-error-line:#ed9087;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body,html{background:#f8f8f5;background:var(--paper)}body{-webkit-font-smoothing:antialiased;color:#18221f;color:var(--ink);font-family:DM Sans,Arial,sans-serif;font-family:var(--font-body);font-size:16px;line-height:1.7;margin:0}button,input,textarea{font:inherit}img{max-width:100%}a{color:inherit;text-decoration:none}a:hover{color:#a83f27;color:var(--accent-dark)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #c95032;outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:Manrope,DM Sans,Arial,sans-serif;font-family:var(--font-display);line-height:1.16}h2{font-size:clamp(2rem,4.5vw,3.35rem);letter-spacing:-.055em;margin-bottom:18px}.container{margin-inline:auto;width:min(1120px,calc(100% - 48px));width:min(var(--container),calc(100% - 48px))}.section{padding:112px 0}.section-heading{margin-bottom:48px;max-width:680px}.section-heading h2{margin-bottom:14px}.eyebrow{align-items:center;color:#a83f27;color:var(--accent-dark);display:flex;font-size:.76rem;font-weight:700;gap:11px;letter-spacing:.14em;margin-bottom:20px;text-transform:uppercase}.eyebrow-line{background:currentColor;height:1px;width:28px}.section-intro{color:#64716c;color:var(--muted);font-size:1.05rem;margin-bottom:0;max-width:550px}.button{align-items:center;border:1px solid #0000;border-radius:3px;display:inline-flex;font-size:.9rem;font-weight:700;gap:12px;justify-content:center;min-height:50px;padding:12px 19px;transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}.button:hover{transform:translateY(-2px)}.button-primary{background:#c95032;background:var(--accent)}.button-primary,.button-primary:hover{color:#fff;color:var(--accent-contrast)}.button-primary:hover{background:#a83f27;background:var(--accent-dark)}.button-secondary{background:#0000;border-color:#e4e7e2;border-color:var(--line);color:#18221f;color:var(--ink)}.button-secondary:hover{border-color:#18221f;border-color:var(--ink);color:#18221f;color:var(--ink)}::selection{background:#c95032;background:var(--accent);color:#fff}@media (max-width:700px){.container{width:min(100% - 36px,1120px);width:min(100% - 36px,var(--container))}.section{padding:78px 0}.section-heading{margin-bottom:32px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.navbar{left:0;position:absolute;right:0;top:0;z-index:10}.navbar-container{align-items:center;border-bottom:1px solid #18221f1c;display:flex;justify-content:space-between;min-height:78px}.footer-brand,.navbar-brand{color:var(--ink);font-family:var(--font-display);font-size:1.15rem;font-weight:800;letter-spacing:-.06em}.footer-brand span,.navbar-brand span{color:var(--accent)}.navbar-menu{align-items:center;display:flex;gap:30px}.navbar-menu>a{color:var(--muted);font-size:.85rem;font-weight:600}.navbar-menu>a:hover{color:var(--accent-dark)}.navbar-menu .nav-contact{color:var(--ink)}.navbar-controls{align-items:center;display:flex;gap:10px}.theme-toggle{align-items:center;background:var(--white);border:1px solid var(--line);border-radius:3px;color:var(--ink);cursor:pointer;display:inline-flex;font-size:1rem;height:40px;justify-content:center;padding:0;transition:border-color .18s ease,background-color .18s ease,color .18s ease;width:40px}.theme-toggle:hover{border-color:var(--accent);color:var(--accent-dark)}.theme-toggle svg{font-size:1rem}.mobile-toggle{display:none}html[data-theme=dark] .navbar-container{border-bottom-color:var(--line)}@media (max-width:700px){.navbar-container{min-height:68px}.navbar-controls{margin-left:auto}.mobile-toggle{background:var(--paper);color:var(--ink);display:grid;font-size:1.25rem;height:42px;place-items:center;width:42px}.mobile-toggle,.navbar-menu{border:1px solid var(--line)}.navbar-menu{align-items:stretch;background:var(--white);box-shadow:0 16px 36px #18221f17;display:none;gap:0;left:18px;padding:8px 16px;position:absolute;right:18px;top:68px}.navbar-menu.is-open{display:flex;flex-direction:column}.navbar-menu>a{border-bottom:1px solid var(--line);padding:12px 0}.navbar-menu>a:last-child{border-bottom:0}}.hero{align-items:center;background:radial-gradient(ellipse at 73% 45%,#c9503214,#0000 35%),var(--paper);display:flex;min-height:min(780px,100svh);padding:132px 0 104px;position:relative}.hero-layout{grid-gap:clamp(48px,9vw,120px);align-items:center;display:grid;gap:clamp(48px,9vw,120px);grid-template-columns:1.1fr .75fr}.hero-copy{max-width:630px}.hero h1{font-size:clamp(3.4rem,8vw,6.5rem);font-weight:700;letter-spacing:-.09em;margin:0 0 12px}.hero h1 span{color:var(--accent)}.hero-title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:600;letter-spacing:-.04em;margin-bottom:15px}.hero-description{color:var(--muted);font-size:1.05rem;margin-bottom:28px;max-width:520px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-social{display:flex;gap:25px;margin-top:30px}.contact-socials a,.hero-social a{align-items:center;color:var(--muted);display:inline-flex;font-size:.9rem;font-weight:600;gap:7px}.contact-socials a:hover,.hero-social a:hover{color:var(--accent-dark)}.hero-photo{justify-self:end;margin:0;position:relative;width:min(100%,390px)}.hero-photo img{aspect-ratio:768/955;background:var(--line);border:1px solid #c950326b;display:block;height:auto;object-fit:cover;object-position:center;position:relative;width:100%;z-index:1}.hero-photo figcaption{display:none}.scroll-cue{align-items:center;bottom:28px;color:var(--muted);display:flex;font-size:.76rem;gap:10px;letter-spacing:.07em;position:absolute;right:max(24px,calc((100% - var(--container))/2));text-transform:uppercase}@media (max-width:760px){.hero{min-height:auto;padding:112px 0 94px}.hero-layout{gap:40px;grid-template-columns:1fr}.hero-photo{justify-self:start;margin-left:12px;width:min(84%,300px)}.hero h1{font-size:clamp(3.35rem,15vw,5rem)}.scroll-cue{bottom:22px;right:18px}}@media (max-width:420px){.hero-actions{align-items:stretch;flex-direction:column}.hero-actions .button{width:100%}.scroll-cue span{display:none}}.about{background:var(--white);border-top:1px solid var(--line)}.about-layout{grid-gap:clamp(48px,10vw,150px);display:grid;gap:clamp(48px,10vw,150px);grid-template-columns:.8fr 1fr}.about .section-heading{margin:0}.about-copy{color:var(--muted);max-width:650px}.about-copy p{margin-bottom:20px}.about-copy .about-lead{color:var(--ink);font-family:var(--font-display);font-size:clamp(1.35rem,2.5vw,1.8rem);font-weight:500;letter-spacing:-.035em;line-height:1.5}.text-link{align-items:center;color:var(--accent-dark);display:inline-flex;font-size:.9rem;font-weight:700;gap:8px}.text-link:hover{color:var(--ink)}@media (max-width:700px){.about-layout{gap:8px;grid-template-columns:1fr}}.skills{background:var(--paper)}.skills-grid{border-left:1px solid var(--line);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr)}.skill-group{border-bottom:1px solid var(--line);border-right:1px solid var(--line);min-height:190px;padding:25px 24px}.skill-group-heading{align-items:center;color:var(--accent-dark);display:flex;gap:11px;margin-bottom:18px}.skill-group-heading h3{color:var(--ink);font-size:.98rem;letter-spacing:-.025em;margin:0}.skill-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.project-tech span,.skill-list li{background:var(--white);border:1px solid var(--line);border-radius:2px;color:var(--muted);font-size:.78rem;padding:5px 9px}@media (max-width:900px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.skills-grid{grid-template-columns:1fr}.skill-group{min-height:auto;padding:20px}}.projects{background:var(--white)}.projects-heading{margin-bottom:52px}.project-list{border-top:1px solid var(--line)}.project-case{grid-gap:32px;border-bottom:1px solid var(--line);display:grid;gap:32px;grid-template-columns:1fr;padding:40px 0}.project-case.has-screenshot{gap:clamp(32px,7vw,88px);grid-template-columns:.9fr 1.1fr}.project-media{margin:0}.project-media img{display:block;height:auto;width:100%}.project-details{align-self:center;width:min(100%,860px)}.project-case.has-screenshot .project-details{width:100%}.project-number{color:var(--accent-dark);font-size:.76rem;font-weight:700;letter-spacing:.1em;margin-bottom:11px;text-transform:uppercase}.project-number span{color:var(--muted);font-weight:500;letter-spacing:.04em;margin-left:12px}.project-details h3{font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.055em;margin-bottom:28px}.case-study-copy{grid-gap:22px;display:grid;gap:22px;grid-template-columns:1fr 1fr}.case-study-copy h4{font-family:var(--font-body);font-size:.75rem;letter-spacing:.1em;margin-bottom:8px;text-transform:uppercase}.case-study-copy li,.case-study-copy p{color:var(--muted);font-size:.87rem;line-height:1.65}.case-study-copy p{margin-bottom:0}.case-study-copy ul{margin:0;padding-left:18px}.case-study-copy li+li{margin-top:5px}.project-tech{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.project-tech span{background:#0000}.project-link{gap:9px}.project-note{color:var(--muted);font-size:.82rem;margin:22px 0 0}@media (max-width:760px){.project-case,.project-case.has-screenshot{gap:25px;grid-template-columns:1fr;padding:28px 0}.case-study-copy{gap:18px;grid-template-columns:1fr}}.contact{background:var(--contact-bg);color:var(--contact-text)}.contact-layout{grid-gap:clamp(42px,9vw,120px);align-items:start;display:grid;gap:clamp(42px,9vw,120px);grid-template-columns:.9fr 1.1fr}.contact .eyebrow{color:var(--accent)}.contact-copy h2{color:var(--contact-text);max-width:500px}.contact .section-intro{color:var(--contact-muted)}.contact-email{align-items:center;color:var(--contact-text);display:inline-flex;flex-wrap:wrap;font-size:1rem;font-weight:600;gap:11px;margin-top:32px}.contact-email:hover{color:var(--accent-dark)}.contact-socials{display:flex;flex-wrap:wrap;gap:22px;margin-top:22px}.contact-socials a{color:var(--contact-muted)}.contact-form{grid-gap:17px;background:var(--form-bg);color:var(--form-text);color-scheme:light;display:grid;gap:17px;padding:clamp(22px,4vw,38px)}.contact-form h3{font-size:1.25rem;letter-spacing:-.03em;margin-bottom:3px}.contact-form label{grid-gap:6px;color:var(--form-label);display:grid;font-size:.82rem;font-weight:600;gap:6px}.form-row{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr 1fr}.contact-form input,.contact-form textarea{background:var(--field-bg);border:1px solid var(--field-line);border-radius:2px;color:var(--field-text);min-width:0;padding:11px 12px;resize:vertical;width:100%}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);outline:2px solid #c950322e}.contact-form .button{border:0;cursor:pointer;justify-self:start}.contact-form .button:disabled{cursor:wait;opacity:.65}.form-note{color:var(--form-muted);font-size:.77rem;margin:-4px 0 0}.form-note code{font-size:.74rem}.form-status{border-left:3px solid;font-size:.88rem;margin:0;padding:10px 12px}.form-status-pending{background:var(--status-pending-bg);border-color:var(--status-pending-line);color:var(--status-pending-text)}.form-status-success{background:var(--status-success-bg);border-color:var(--status-success-line);color:var(--status-success-text)}.form-status-error{background:var(--status-error-bg);border-color:var(--status-error-line);color:var(--status-error-text)}@media (max-width:760px){.contact-layout{gap:38px;grid-template-columns:1fr}}@media (max-width:500px){.form-row{grid-template-columns:1fr}}html[data-theme=dark] .contact-form{color-scheme:dark}@media (prefers-reduced-motion:no-preference){.about,.contact,.contact-form,.footer,.hero,.navbar-menu,.project-case,.projects,.skill-group,.skills,body{transition:background-color .2s ease,color .2s ease,border-color .2s ease}}.footer{background:var(--contact-bg);color:var(--contact-muted)}.footer-content{align-items:center;display:flex;gap:16px;justify-content:space-between;min-height:80px;padding-bottom:16px;padding-top:16px}.footer-brand{color:var(--white)}.footer-content p,.footer-content small{font-size:.78rem;margin:0}.footer-content>a:not(.footer-brand){font-size:.8rem}@media (max-width:650px){.footer-content{align-items:flex-start;flex-direction:column;padding-bottom:24px;padding-top:24px}}.App{min-height:100vh}main{display:block}
/*# sourceMappingURL=main.385975fd.css.map*/