@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap";:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Manrope,sans-serif}body{min-width:320px;margin:0}button,input,textarea{font:inherit}:focus-visible{outline-offset:4px;outline:2px solid #d4f269}:root{--ink:#f7f1e9;--muted:#b9b2aa;--line:#f7f1e926;--accent:#ffb38f;--deep:#19191c;--font-sans:"DM Sans", sans-serif;--font-mono:"DM Mono", monospace;--font-serif:"Fraunces", Georgia, serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--deep);color:var(--ink);font-family:var(--font-sans)}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:-.055em;font-weight:700;line-height:.96}h2{margin-bottom:40px;font-size:clamp(42px,5.2vw,78px)}h1 em,h2 em{font-family:var(--font-serif);font-weight:500}.site-shell{background:radial-gradient(circle at 82% 8%, #ffb38f24, transparent 28rem), var(--deep);min-height:100vh;overflow:hidden}.page-section{max-width:1600px;margin:auto;padding:clamp(82px,11vw,160px) clamp(24px,8vw,132px)}.section-heading{max-width:620px}.section-heading h2{margin-bottom:0}.eyebrow{font:11px var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin:0 0 26px}.button{font:700 12px var(--font-sans);letter-spacing:.01em;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:16px;padding:15px 20px;text-decoration:none;transition:transform .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--accent);color:#33221c}.text-link{font:700 12px var(--font-sans);letter-spacing:.04em;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.text-link:hover{color:var(--accent)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.about-section{color:#33221c;background:#ffd0bd;grid-template-columns:1fr 1fr;gap:10vw;max-width:none;display:grid}.about-section .eyebrow{color:#8d5947}.about-intro>p:last-child{max-width:430px;font-size:16px;line-height:1.7}.about-details{border-top:1px solid #1d231b40}.detail-block{border-bottom:1px solid #1d231b40;padding:24px 0 28px}.skill-cloud{flex-wrap:wrap;gap:8px;display:flex}.skill-cloud span{font:11px var(--font-mono);border:1px solid #1d231b59;border-radius:999px;padding:8px 10px}.achievements .eyebrow{margin-bottom:12px}.achievement{border-top:1px solid #1d231b2e;grid-template-columns:55px 1fr 18px;align-items:start;gap:12px;padding:14px 0;display:grid}.achievement>span{font:11px var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.achievement h3{margin-bottom:5px;font-size:15px}.achievement p{opacity:.7;margin-bottom:0;font-size:12px}@media (width<=800px){.about-section{grid-template-columns:1fr}}.contact-section{grid-template-columns:1fr 1fr;gap:10vw;display:grid}.contact-copy h2{margin-bottom:28px}.contact-copy>p:not(.eyebrow){max-width:330px;color:var(--muted);line-height:1.7}.contact-copy a{color:var(--accent)}.social-links{gap:22px;margin-top:28px;display:flex}.social-links a{font:11px var(--font-mono);text-transform:uppercase;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.social-links a:hover{color:var(--accent)}@media (width<=800px){.contact-section{grid-template-columns:1fr}}.contact-form{border-top:1px solid var(--line)}.contact-form label{border-bottom:1px solid var(--line);font:10px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:18px 0;display:block}.contact-form input,.contact-form textarea{width:100%;color:var(--ink);resize:vertical;background:0 0;border:0;outline:0;margin-top:11px;font:16px Manrope,sans-serif;display:block}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#696d67}.contact-form .button{margin-top:25px}.contact-form .honeypot{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.form-success{padding:48px 0}.form-success svg{color:var(--accent);margin-bottom:20px}.form-success h3{font-size:26px}.form-success p{color:var(--muted)}.form-error{color:#ee6a48;margin-top:20px;font-size:13px}.site-footer{border-top:1px solid var(--line);max-width:1600px;color:var(--muted);font:11px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;gap:20px;margin:auto;padding:27px clamp(24px,8vw,132px);display:flex}.site-footer a{color:var(--ink);text-decoration:none}.site-footer a:hover{color:var(--accent)}@media (width<=800px){.site-footer{flex-wrap:wrap}.site-footer span:nth-child(2){display:none}}.site-header{border-bottom:1px solid var(--line);z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#19191ce0;align-items:center;gap:32px;height:84px;padding:0 clamp(24px,5vw,84px);display:flex;position:sticky;top:0}.wordmark{letter-spacing:-.03em;align-items:center;gap:11px;font-weight:700;text-decoration:none;display:flex}.mark{width:34px;height:34px;color:var(--accent);flex-shrink:0}.site-nav{gap:28px;margin-left:auto;display:flex}.site-nav a,.header-email,.header-github{font:11px var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.site-nav a{color:var(--muted);text-decoration:none;transition:color .2s}.site-nav a:hover,.site-nav a:focus-visible{color:var(--accent)}.header-email,.header-github{color:var(--ink);white-space:nowrap;align-items:center;gap:8px;text-decoration:none;display:flex}.header-github{color:var(--accent);border:1px solid #ffb38f8c;border-radius:999px;padding:9px 13px}.header-github:hover{background:#ffb38f1f}.menu-toggle{color:var(--ink);background:0 0;border:0;margin-left:auto;display:none}@media (width<=800px){.site-header{height:70px}.header-email,.header-github{display:none}.menu-toggle{z-index:2;display:block}.site-nav{border-bottom:1px solid var(--line);background:#171a16;flex-direction:column;gap:20px;padding:25px;display:none;position:absolute;inset:70px 0 auto}.site-nav.open{display:flex}}.hero-section{border-bottom:1px solid var(--line);grid-template-columns:1fr 280px;align-content:center;min-height:calc(100vh - 84px);display:grid;position:relative}.hero-section:after{content:"";pointer-events:none;opacity:.12;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 75%);mask-image:linear-gradient(#000,#0000 75%)}.hero-copy,.hero-aside,.hero-meta{z-index:1;position:relative}.status-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block;box-shadow:0 0 0 5px #ffb38f1f}.hero-copy h1{max-width:850px;margin-bottom:36px;font-size:clamp(52px,8vw,118px)}.hero-intro{max-width:450px;color:var(--muted);font-size:17px;line-height:1.7}.hero-actions{align-items:center;gap:28px;margin-top:36px;display:flex}.hero-aside{color:var(--muted);align-self:end;padding-bottom:15vh;font-size:13px;line-height:1.6}.orbit-art{border:1px dashed #ffb38f8c;border-radius:50%;width:170px;height:170px;margin-bottom:30px;animation:8s ease-in-out infinite float;position:relative}.orbit-art:before,.orbit-art:after{content:"";border:1px solid var(--line);border-radius:50%;position:absolute;inset:19px;transform:rotate(60deg)scaleX(.35)}.orbit-art:after{transform:rotate(-60deg)scaleX(.35)}.orbit-art span{color:var(--accent);font:9px var(--font-mono);letter-spacing:.12em;position:absolute}.orbit-art span:first-child{top:16px;left:61px}.orbit-art span:nth-child(2){bottom:29px;left:4px}.orbit-art span:nth-child(3){top:76px;right:0}.orbit-core{background:var(--accent);color:#33221c;font:11px var(--font-mono);border-radius:50%;place-items:center;display:grid;position:absolute;inset:62px}.hero-meta{color:var(--muted);font:10px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;grid-column:1/-1;justify-content:space-between;margin-top:90px;display:flex}.scroll-line{background:var(--accent);vertical-align:middle;width:64px;height:1px;margin-left:12px;display:inline-block}@keyframes float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-8px)rotate(3deg)}}@media (width<=800px){.hero-section{grid-template-columns:1fr;min-height:720px}.hero-aside{display:none}.hero-meta{margin-top:70px}}.loading-screen{z-index:100;background:var(--deep);color:var(--ink);align-content:center;place-items:center;gap:17px;transition:opacity .45s,visibility .45s;display:grid;position:fixed;inset:0}.loading-screen-hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-mark{width:72px;height:72px;color:var(--accent);animation:1.1s ease-in-out infinite loading-bob}.loading-screen p{color:var(--muted);margin:0;font-size:14px}.loading-dots{width:22px;color:var(--accent);display:inline-block;overflow:hidden}.loading-track{background:#f7f1e926;border-radius:999px;width:130px;height:3px;overflow:hidden}.loading-track span{border-radius:inherit;background:var(--accent);width:45%;height:100%;animation:1.1s ease-in-out forwards loading-progress;display:block}@keyframes loading-bob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-7px)rotate(-4deg)}}@keyframes loading-progress{0%{transform:translate(-100%)}to{transform:translate(300%)}}@media (prefers-reduced-motion:reduce){.loading-screen{opacity:0;visibility:hidden}}.project-card{background:#222226;border:1px solid #f7f1e91f;border-radius:22px;transition:transform .25s,box-shadow .25s,border-color .25s;position:relative;overflow:hidden}.project-visual{background:var(--project-accent);color:#1c201b;height:245px;position:relative;overflow:hidden}.project-visual.has-image{background:#28282b}.project-visual.has-image:after{content:"";background:linear-gradient(#19191c14,#19191c99);position:absolute;inset:0}.project-visual.has-image img{object-fit:cover;width:100%;height:100%;display:block}.project-index,.project-category{font:11px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;position:absolute}.project-index{top:20px;left:22px}.project-category{bottom:20px;right:22px}.project-visual.has-image .project-index,.project-visual.has-image .project-category{z-index:1;color:#fff}.project-shape{border:1px solid #191c188c;border-radius:50%;width:210px;height:210px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 33px #191c1814,0 0 0 66px #191c180f}.project-shape:after{content:"";background:#191c18;border-radius:50%;width:70px;height:70px;position:absolute;inset:69px}.project-info{flex-direction:column;justify-content:space-between;min-height:200px;padding:25px 22px 21px;display:flex}.project-info h3{letter-spacing:-.05em;margin-bottom:10px;font-size:25px}.project-info p{color:var(--muted);max-width:430px;font-size:14px;line-height:1.6}.project-footer{justify-content:space-between;align-items:end;gap:14px;display:flex}.tag-list{color:var(--muted);font:11px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;flex-wrap:wrap;gap:7px;display:flex}.tag-list span{border:1px solid var(--line);border-radius:999px;padding:7px 11px}.project-links{gap:8px;display:flex}.project-open-icon,.project-repo-link{border:1px solid var(--line);border-radius:50%;place-items:center;width:34px;height:34px;transition:color .25s,border-color .25s,transform .25s;display:grid}.project-repo-link{z-index:2;position:relative}.project-repo-link:hover{color:var(--accent);border-color:var(--accent)}.project-card-link{color:inherit;text-decoration:none}.project-card-link:after{content:"";z-index:1;position:absolute;inset:0}.project-card-link:focus-visible{outline:none}.project-card.is-clickable{cursor:pointer}.project-card.is-clickable:hover,.project-card.is-clickable:focus-within{border-color:var(--project-accent,currentColor);box-shadow:0 0 0 1px var(--project-accent,currentColor), 0 12px 40px -8px var(--project-accent,#ffffff59);transform:translateY(-4px)}.project-card.is-clickable:has(.project-card-link:focus-visible){outline:2px solid var(--project-accent,currentColor);outline-offset:3px}.project-visual img,.project-shape{transition:filter .25s,transform .4s}.project-card.is-clickable:hover .project-visual img,.project-card.is-clickable:hover .project-shape{filter:brightness(1.12)saturate(1.1)}.project-card.is-clickable:hover .project-visual img{transform:scale(1.03)}.project-card.is-clickable:hover .project-open-icon{color:var(--accent);border-color:var(--accent);transform:translate(2px,-2px)}@media (width<=800px){.project-visual{height:220px}}@media (prefers-reduced-motion:reduce){.project-card,.project-card *{transform:none!important}}.heading-inline{justify-content:space-between;align-items:end;gap:40px;max-width:none;display:flex}.heading-note{color:var(--muted);max-width:310px;margin-bottom:4px;font-size:14px;line-height:1.7}.project-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}@media (width<=800px){.heading-inline{display:block}.heading-note{margin-top:28px}.project-grid{grid-template-columns:1fr}}.services-section{border-bottom:1px solid var(--line);grid-template-columns:.85fr 1.15fr;gap:10vw;display:grid}.services-list{border-top:1px solid var(--line)}.service-row{border-bottom:1px solid var(--line);grid-template-columns:45px 1fr 1.4fr;align-items:start;gap:20px;padding:25px 0;display:grid}.service-row h3{letter-spacing:-.04em;font-size:20px}.service-row p{color:var(--muted);max-width:270px;font-size:14px;line-height:1.6}.service-number{font:11px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.service-tools{font:10px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:right;white-space:nowrap}@media (width<=800px){.services-section{grid-template-columns:1fr}.service-row{grid-template-columns:38px 1fr}.service-row p,.service-tools{text-align:left;grid-column:2}.service-tools{margin-top:-7px}}
