@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.8624a701.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:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/e629b5bc06499d58-s.8e66b869.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:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.f6ed4c33.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:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.1bbdebe6.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:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_c64c55c4-module__YuBn5q__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_c64c55c4-module__YuBn5q__variable{--font-plus-jakarta:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}
@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.d8e4bce2.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:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.a62025f2.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:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_d89fb377-module__B_rulq__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_d89fb377-module__B_rulq__variable{--font-dm-sans:"DM Sans","DM Sans Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.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/bbc41e54d2fcbd21-s.799d8ef8.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.dbea232f.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"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer theme{:root,:host{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--default-font-family:var(--font-dm-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.flex{display:flex}.hidden{display:none}.border{border-style:var(--tw-border-style);border-width:1px}.font-sans{font-family:var(--font-dm-sans)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--cream:#f5f0e8;--sand:#e8dfd0;--parchment:#d6c9b4;--stone:#7f7265;--charcoal:#2c2620;--ink:#1a1410;--accent:#c45c2a;--accent-2:#8b7355;--white:#faf8f4;--muted:#5f544a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--white);color:var(--charcoal);font-family:var(--font-dm-sans),sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}[data-reveal]{--reveal-delay:0s;opacity:0;transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay);will-change:opacity,transform;transform:translateY(28px)scale(.985)}[data-reveal].is-visible{opacity:1;transform:translate(0)scale(1)}body:after{content:"";z-index:9999;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");position:fixed;inset:0}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--cream)}::-webkit-scrollbar-thumb{background:var(--parchment);border-radius:999px}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}img{max-width:100%}.portfolio-shell{min-height:100vh}.section-wrap{max-width:1400px;margin:0 auto;padding:0 60px}.site-nav{z-index:500;padding:24px 0;transition:padding .28s,background-color .28s,border-color .28s,box-shadow .28s,-webkit-backdrop-filter .28s,backdrop-filter .28s;position:fixed;inset:0 0 auto}.site-nav.is-top{box-shadow:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(#faf8f4e0 0%,#faf8f46b 58%,#faf8f400 100%);border-bottom:1px solid #0000}.site-nav.is-scrolled{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f5f0e8e0;border-bottom:1px solid #2c262014;padding:14px 0;box-shadow:0 10px 30px #1a141014}.nav-inner,.nav-links,.hero-actions,.hero-stats,.projects-header,.proj-footer,.proj-stack,.hire-actions,.footer-inner,.footer-links{align-items:center;display:flex}.nav-inner,.projects-header,.footer-inner{justify-content:space-between}.nav-logo,.footer-logo{font-family:var(--font-plus-jakarta),sans-serif;letter-spacing:-.02em;font-size:22px;font-weight:700}.nav-logo span,.footer-logo span{color:var(--accent)}.nav-links{gap:36px}.nav-links a{color:var(--muted);font-size:14px;font-weight:500;transition:color .2s}.site-nav.is-top .nav-links a{color:#2c2620bd}.site-nav.is-scrolled .nav-links a{color:var(--muted)}.nav-links a:hover{color:var(--ink)}.nav-cta,.btn-fill,.btn-outline,.btn-light,.btn-ghost-light{border-radius:999px;justify-content:center;align-items:center;gap:8px;transition:transform .2s,background-color .25s,color .25s,border-color .25s,box-shadow .25s;display:inline-flex}.nav-cta,.btn-fill{background:var(--ink);color:var(--cream);font-family:var(--font-plus-jakarta),sans-serif}.nav-cta{border:1px solid #0000;padding:10px 22px;font-size:13px;font-weight:500;color:var(--cream)!important}.site-nav.is-top .nav-cta{background:#1a1410f5;box-shadow:0 10px 24px #1a141024;color:var(--white)!important}.site-nav.is-scrolled .nav-cta{background:var(--ink);color:var(--white)!important}.site-nav .nav-cta:hover{color:var(--white)!important}.btn-fill,.btn-outline,.btn-light,.btn-ghost-light{cursor:pointer;letter-spacing:-.01em;border:0;padding:14px 28px;font-size:15px}.btn-fill:hover,.btn-outline:hover,.btn-light:hover,.btn-ghost-light:hover,.nav-cta:hover{transform:translateY(-2px)}.nav-cta:hover,.btn-fill:hover{background:var(--accent);box-shadow:0 12px 40px #c45c2a40}.btn-outline{border:1px solid var(--parchment);color:var(--charcoal);font-family:var(--font-plus-jakarta),sans-serif;background:0 0}.btn-outline:hover{border-color:var(--charcoal);color:var(--ink)}.btn-light{background:var(--cream);color:var(--ink);font-family:var(--font-plus-jakarta),sans-serif;font-weight:600}.btn-light:hover{background:#fff;box-shadow:0 12px 40px #00000040}.btn-ghost-light{color:#f5f0e899;font-family:var(--font-plus-jakarta),sans-serif;background:0 0;border:1px solid #f5f0e826}.btn-ghost-light:hover{color:var(--cream);border-color:#f5f0e866}#hero{align-items:center;min-height:100vh;padding:0;display:flex;position:relative;overflow:hidden}.hero-bg-circle{pointer-events:none;border-radius:999px;position:absolute}.hc1{background:radial-gradient(circle,#c45c2a12 0%,#0000 70%);width:700px;height:700px;animation:14s ease-in-out infinite alternate float-orb-1;top:-200px;right:-100px}.hc2{background:radial-gradient(circle,#d6c9b466 0%,#0000 70%);width:500px;height:500px;animation:12s ease-in-out infinite alternate float-orb-2;bottom:-100px;left:-150px}.hero-inner,.about-grid,.contact-grid{z-index:1;grid-template-columns:1fr 1fr;align-items:center;gap:80px;width:100%;padding-top:80px;display:grid;position:relative}.hero-inner>*,.about-grid>*,.contact-grid>*,.exp-layout>*{min-width:0}.hero-copy-block{animation:1s cubic-bezier(.22,1,.36,1) both hero-rise}@keyframes hero-rise{0%{opacity:0;transform:translateY(36px)}to{opacity:1;transform:translate(0)}}@keyframes float-orb-1{0%{transform:translate(0)}to{transform:translate(-18px,22px)}}@keyframes float-orb-2{0%{transform:translate(0)}to{transform:translate(20px,-14px)}}.hero-eyebrow,.section-label,.stack-col-label,.hire-badge-text,.exp-tab-period,.proj-type,.contact-link-label,.form-label,.arch-filename{font-family:var(--font-geist-mono),monospace}.hero-eyebrow,.section-label{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:10px;font-size:11px;display:inline-flex}.hero-eyebrow:before{background:var(--accent);content:"";width:24px;height:1px}.section-label{letter-spacing:.15em;gap:12px;margin-bottom:20px}.section-label:after{background:var(--accent);opacity:.5;content:"";width:40px;height:1px}.hero-h1,.section-title,.hire-title{color:var(--ink);font-family:var(--font-plus-jakarta),sans-serif;letter-spacing:-.04em;font-weight:800;line-height:1}.hero-h1{margin-top:10px;font-size:clamp(52px,5.5vw,82px)}.section-title{max-width:12ch;font-size:clamp(36px,3.5vw,56px)}.hero-h1 em,.section-title em,.hire-title em{color:var(--accent);font-family:var(--font-plus-jakarta),sans-serif;font-style:italic;font-weight:300}.hero-sub,.section-body,.exp-desc,.proj-desc{color:var(--muted);letter-spacing:-.01em;font-weight:400;line-height:1.82}.hero-sub{max-width:480px;margin:24px 0 44px;font-size:clamp(18px,1.6vw,22px)}.hero-actions{flex-wrap:wrap;gap:16px}.hero-stats{border-top:1px solid var(--sand);gap:40px;margin-top:56px;padding-top:40px}.stat-num{color:var(--ink);font-family:var(--font-plus-jakarta),sans-serif;margin-bottom:4px;font-size:42px;font-weight:800;line-height:1}.stat-label{color:var(--stone);letter-spacing:.02em;font-size:13px;font-weight:500}.arch-panel{background:var(--ink);border-radius:20px;transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s;position:relative;overflow:visible;box-shadow:0 40px 100px #1a14102e,0 8px 24px #1a14101f}.arch-panel:hover{transform:translateY(-8px);box-shadow:0 52px 110px #1a141033,0 16px 34px #1a141029}.arch-topbar{background:#ffffff0a;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.arch-dots{gap:6px;display:flex}.arch-dots span{border-radius:50%;width:10px;height:10px}.d1{background:#ff5f57}.d2{background:#febc2e}.d3{background:#28c840}.arch-filename{color:#ffffff80;letter-spacing:.08em;font-size:11px}.arch-body{font-family:var(--font-geist-mono),monospace;background:radial-gradient(circle at 0 0,#c45c2a14,#0000 38%),linear-gradient(#ffffff03,#fff0);padding:28px 28px 32px;font-size:12.5px;line-height:2;overflow-x:auto}.arch-line{white-space:pre-wrap;display:block}.arch-line>span{white-space:pre-wrap}.arch-line .t-comment{color:#9a8d80}.arch-line .t-key{color:#ffcf70;text-shadow:0 0 14px #ffcf7014}.arch-line .t-plain{color:#f8ede2}.arch-line .t-operator{color:#ff8f5a;text-shadow:0 0 14px #ff8f5a14}.arch-line .t-prop{color:#7fd1ff;text-shadow:0 0 14px #7fd1ff14}.arch-line .t-string{color:#ffbe8a;text-shadow:0 0 14px #ffbe8a14}.arch-line .t-service{color:#8ee59a;text-shadow:0 0 14px #8ee59a14}.cursor-blink{background:var(--accent);vertical-align:middle;width:7px;height:13px;margin-left:2px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.arch-badge{border:1px solid var(--sand);background:var(--white);color:var(--ink);border-radius:12px;align-items:center;gap:10px;padding:12px 18px;font-size:13px;font-weight:500;display:flex;position:absolute;bottom:-18px;left:28px;box-shadow:0 8px 30px #00000014}.arch-badge-dot,.hire-badge-dot{background:#6dbf82;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse-g;box-shadow:0 0 0 3px #6dbf8233}@keyframes pulse-g{0%,to{box-shadow:0 0 0 3px #6dbf8233}50%{box-shadow:0 0 0 7px #6dbf820d}}.divider{background:linear-gradient(90deg,transparent,var(--sand)20%,var(--sand)80%,transparent);height:1px;margin:0 60px}#stack,#experience,#skills,#contact{padding:140px 0}#about,#projects{background:var(--cream);padding:140px 0}.stack-grid,.skills-grid{border:1px solid var(--sand);border-radius:16px;gap:0;margin-top:64px;display:grid;overflow:hidden}.stack-grid{grid-template-columns:repeat(4,1fr)}.stack-col,.skills-col{background:var(--white)}.stack-col{padding:36px 32px;transition:background .3s,transform .3s}.stack-col:hover{background:var(--cream);transform:translateY(-4px)}.stack-col+.stack-col,.skills-col+.skills-col{border-left:1px solid var(--sand)}.stack-col-label{color:var(--stone);letter-spacing:.15em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:28px;font-size:11px;font-weight:500;display:flex}.stack-col-label:before{background:var(--stone);content:"";width:16px;height:1px}.stack-item{color:var(--charcoal);letter-spacing:-.02em;border-bottom:1px solid #0000000d;justify-content:space-between;align-items:center;padding:14px 0;font-size:16px;font-weight:500;display:flex}.stack-item:last-child{border-bottom:0}.stack-item-dot{background:var(--parchment);border-radius:50%;width:6px;height:6px}.stack-toggle{color:var(--accent);cursor:pointer;font-family:var(--font-geist-mono),monospace;letter-spacing:.12em;text-transform:uppercase;background:0 0;border:0;align-items:center;margin-top:18px;padding:0;font-size:11px;font-weight:500;transition:transform .2s,color .2s,opacity .2s;display:inline-flex}.stack-toggle:hover{color:var(--ink);transform:translateY(-1px)}.stack-toggle-text{text-underline-offset:5px;text-decoration-line:underline;text-decoration-color:#c45c2a73;text-decoration-thickness:1px}.stack-toggle:hover .stack-toggle-text{text-decoration-color:#1a141099}.about-grid{grid-template-columns:1fr 1.1fr}.about-photo-wrap{position:relative}.about-photo{aspect-ratio:3/4;object-fit:cover;filter:grayscale(20%);border-radius:16px;width:100%;transition:filter .4s;display:block}.about-photo:hover{filter:grayscale(0%)}.about-photo-accent{z-index:-1;aspect-ratio:1;border:2px solid var(--parchment);border-radius:12px;width:48%;position:absolute;bottom:-24px;right:-24px}.about-card{border:1px solid var(--sand);background:var(--white);border-radius:14px;min-width:180px;padding:18px 22px;position:absolute;top:28px;left:-28px;box-shadow:0 12px 40px #00000012}.about-card-num{color:var(--ink);font-family:var(--font-plus-jakarta),sans-serif;margin-bottom:4px;font-size:36px;font-weight:800;line-height:1}.about-card-label{color:var(--stone);letter-spacing:.03em;font-size:12px;font-weight:500}.section-body{max-width:34ch;margin-top:28px;font-size:clamp(17px,1.4vw,20px)}.section-body-spaced{margin-top:20px}.about-qualities{grid-template-columns:1fr 1fr;gap:12px;margin-top:36px;display:grid}.quality-chip{border:1px solid var(--sand);background:var(--white);color:var(--charcoal);letter-spacing:-.01em;border-radius:10px;padding:12px 16px;font-size:13px;font-weight:500;transition:transform .25s,border-color .25s,box-shadow .25s}.quality-chip:hover{border-color:#c45c2a40;transform:translateY(-2px);box-shadow:0 12px 24px #1a14100d}.about-cta{margin-top:40px}.exp-layout,.contact-grid{align-items:start;margin-top:72px;display:grid}.exp-layout{grid-template-columns:260px 1fr;gap:80px}.exp-tabs{flex-direction:column;gap:4px;display:flex}.exp-tab{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;padding:16px 20px;transition:background-color .2s,border-color .2s,transform .2s}.exp-tab:hover,.exp-tab.active{background:var(--cream)}.exp-tab:hover{transform:translate(4px)}.exp-tab.active{border-color:var(--sand)}.exp-tab-co{color:var(--ink);letter-spacing:-.02em;margin-bottom:3px;font-size:15px;font-weight:600}.exp-tab.active .exp-tab-co{color:var(--accent)}.exp-tab-period{color:var(--stone);letter-spacing:.05em;font-size:12px;font-weight:500}.exp-panel{display:none}.exp-panel.active{display:block}.exp-role{color:var(--ink);letter-spacing:-.03em;margin-bottom:6px;font-size:clamp(24px,2.2vw,34px);font-weight:700}.exp-company{color:var(--accent);letter-spacing:-.01em;margin-bottom:24px;font-size:17px}.exp-desc{max-width:560px;margin-bottom:32px;font-size:17px;line-height:1.75}.exp-list{flex-direction:column;gap:14px;display:flex}.exp-item{color:var(--charcoal);align-items:flex-start;gap:14px;font-size:16px;line-height:1.6;display:flex}.exp-item:before{color:var(--accent);content:"->";flex-shrink:0;margin-top:2px}.exp-tags,.contact-links{flex-wrap:wrap;gap:8px;display:flex}.exp-tags{margin-top:32px}.exp-tag,.proj-stack span{border:1px solid var(--sand);background:var(--white);color:var(--stone);font-family:var(--font-geist-mono),monospace;letter-spacing:.04em;border-radius:999px;padding:6px 14px;font-size:11px;font-weight:500}.projects-header{align-items:flex-end;gap:32px;margin-bottom:64px}.projects-intro{max-width:720px}.projects-copy{max-width:50ch;color:var(--muted);margin-top:20px;font-size:17px;font-weight:400;line-height:1.8}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.proj-card{border:1px solid var(--sand);background:var(--white);border-radius:16px;flex-direction:column;transition:transform .35s cubic-bezier(.22,.68,0,1.2),box-shadow .35s,border-color .35s;display:flex;overflow:hidden}.proj-card:hover{border-color:#c45c2a38;transform:translateY(-6px);box-shadow:0 24px 60px #0000001a}.proj-img-wrap{overflow:hidden}.proj-img{object-fit:cover;width:100%;transition:transform .6s cubic-bezier(.22,.68,0,1.2);display:block}.proj-card .proj-img{height:220px}.proj-card-grid .proj-body{padding:22px 22px 24px}.proj-badge{border:1px solid var(--sand);background:var(--cream);width:fit-content;font-family:var(--font-geist-mono),monospace;letter-spacing:.12em;text-transform:uppercase;border-radius:999px;align-items:center;margin-bottom:12px;padding:6px 10px;font-size:10px;font-weight:600;display:inline-flex}.proj-badge-primary{color:var(--accent);background:#c45c2a14;border-color:#c45c2a47}.proj-badge-new{color:#497a57;background:#6dbf821a;border-color:#6dbf8247}.proj-badge-client-work,.proj-badge-enterprise{color:var(--stone)}.proj-badge-legacy{color:#7f7265;background:#7f726514;border-color:#7f726540}.proj-card-grid .proj-title{font-size:19px}.proj-card-grid .proj-desc{font-size:14px}.proj-card-grid .proj-footer{margin-top:16px}.proj-card:hover .proj-img{transform:scale(1.05)}.proj-body{flex-direction:column;flex:1;padding:24px 24px 26px;display:flex}.proj-type{color:var(--stone);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:500}.proj-title{color:var(--ink);letter-spacing:-.03em;margin-bottom:8px;font-size:20px;font-weight:700;line-height:1.2}.proj-desc{flex:1;font-size:14px;line-height:1.65}.proj-footer{border-top:1px solid var(--sand);justify-content:space-between;margin-top:18px;padding-top:16px}.proj-stack{flex-wrap:wrap;gap:6px}.proj-stack span{background:var(--cream);letter-spacing:.06em;border-radius:4px;padding:4px 9px;font-size:10px}.proj-arrow{background:var(--ink);width:32px;height:32px;color:var(--cream);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;transition:background .2s,transform .2s;display:flex}.button-icon,.project-icon,.ui-icon{width:16px;height:16px}.proj-card:hover .proj-arrow{background:var(--accent);transform:rotate(45deg)}.skills-grid{grid-template-columns:1fr 1fr}.skills-col{padding:48px 44px}.skill-row{margin-bottom:32px}.skill-row:last-child{margin-bottom:0}.skill-meta{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.skill-name{color:var(--charcoal);letter-spacing:-.02em;font-size:16px;font-weight:500}.skill-pct{color:var(--stone);font-family:var(--font-geist-mono),monospace;font-size:12px;font-weight:500}.skill-track{background:var(--sand);border-radius:2px;height:2px;overflow:hidden}.skill-fill{transform-origin:0;background:linear-gradient(90deg,var(--accent-2),var(--accent));height:100%;animation:1.2s cubic-bezier(.22,1,.36,1) both skill-grow}@keyframes skill-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}#hire{background:var(--ink);padding:140px 0;position:relative;overflow:hidden}.hire-c1,.hire-c2{pointer-events:none;border-radius:50%;position:absolute}.hire-c1{background:radial-gradient(circle,#c45c2a26 0%,#0000 70%);width:600px;height:600px;top:-200px;right:-100px}.hire-c2{background:radial-gradient(circle,#8b73551f 0%,#0000 70%);width:400px;height:400px;bottom:-100px;left:-80px}.hire-inner{z-index:2;text-align:center;max-width:900px;margin:0 auto;padding:0 60px;position:relative}.hire-badge{background:#c45c2a14;border:1px solid #c45c2a4d;border-radius:999px;align-items:center;gap:8px;margin-bottom:40px;padding:8px 18px;display:inline-flex}.hire-badge-text{color:#f5f0e8b3;letter-spacing:.1em;text-transform:uppercase;font-size:11px}.hire-title{color:var(--cream);font-size:clamp(42px,5vw,72px)}.hire-sub{color:#f5f0e8c2;letter-spacing:-.01em;max-width:42ch;margin:24px auto 48px;font-size:19px;font-weight:400;line-height:1.7}.hire-actions{justify-content:center;gap:14px}.contact-grid{grid-template-columns:1fr 1.4fr;gap:100px}.contact-links{flex-direction:column;margin-top:36px}.contact-link{border:1px solid #0000;border-radius:12px;align-items:center;gap:16px;padding:18px 20px;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s;display:flex}.contact-link:hover{border-color:var(--sand);background:var(--cream);transform:translate(6px);box-shadow:0 12px 24px #1a14100f}.contact-link-icon{border:1px solid var(--sand);background:var(--cream);width:40px;height:40px;color:var(--charcoal);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s,border-color .2s,color .2s;display:flex}.contact-link:hover .contact-link-icon{border-color:var(--accent);background:var(--accent);color:var(--white)}.contact-link-static{cursor:default}.contact-link-copy{gap:2px;display:grid}.contact-link-label{color:var(--stone);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:500}.contact-link-val{color:var(--charcoal);letter-spacing:-.01em;overflow-wrap:anywhere;font-size:15px;font-weight:600}.contact-form-wrap{border:1px solid var(--sand);background:var(--cream);border-radius:20px;padding:44px}.contact-form-wrap form{position:relative}.form-intro{color:var(--muted);margin-bottom:22px;font-size:15px;line-height:1.75}.form-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.form-group{margin-bottom:16px}.form-label{color:var(--stone);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:500;display:block}.form-input{border:1px solid var(--sand);background:var(--white);width:100%;color:var(--ink);font-family:var(--font-plus-jakarta),sans-serif;letter-spacing:-.01em;border-radius:10px;outline:none;padding:14px 16px;font-size:15px;transition:border-color .2s,box-shadow .2s}.form-honeypot{opacity:0;pointer-events:none;position:absolute;left:-9999px}.form-input::placeholder{color:var(--parchment)}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c45c2a1a}textarea.form-input{resize:vertical;min-height:130px;line-height:1.6}.form-submit{justify-content:center;width:100%}.form-submit:disabled{cursor:wait;opacity:.72}.form-status{border:1px solid #0000;border-radius:12px;margin-top:14px;padding:12px 14px;font-size:14px;font-weight:500;line-height:1.6}.form-status-success{color:#497a57;background:#6dbf8214;border-color:#6dbf822e}.form-status-error{color:#b6482a;background:#b6482a0f;border-color:#b6482a24}footer{background:var(--ink);padding:60px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation:none!important}[data-reveal]{opacity:1!important;transform:none!important}}.footer-inner{flex-wrap:wrap;gap:24px;max-width:1400px;margin:0 auto}.footer-links{flex-wrap:wrap;gap:22px}.footer-links a,.footer-copy{color:#f5f0e8bd;font-size:14px}.footer-links a:hover{color:var(--cream)}@media (max-width:1100px){.hero-inner,.about-grid,.contact-grid,.exp-layout{grid-template-columns:1fr;gap:48px}.stack-grid,.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.section-wrap,.hire-inner{padding:0 24px}.site-nav{padding:16px 0}.nav-inner,.projects-header,.footer-inner{flex-direction:column;align-items:flex-start}.nav-inner{gap:12px}.nav-links{flex-wrap:wrap;gap:10px;width:100%}.nav-links a{font-size:13px}.nav-cta{width:100%}.hero-inner{gap:40px;padding-top:168px}.hero-h1{font-size:clamp(42px,15vw,64px)}.section-title{max-width:none;font-size:clamp(32px,11vw,48px)}.hero-sub,.section-body,.projects-copy,.exp-desc,.hire-sub{max-width:none}.hero-actions,.hero-stats,.hire-actions{flex-direction:column;align-items:flex-start}.hero-actions a,.hire-actions a,.projects-header .btn-outline{width:100%}.hero-stats{gap:20px}.stat-num{font-size:34px}.divider{margin:0 24px}#stack,#about,#experience,#projects,#skills,#hire,#contact{padding:96px 0}.stack-grid,.skills-grid,.form-row,.projects-grid{grid-template-columns:1fr}.proj-card-grid .proj-body{padding:22px}.proj-card .proj-img{height:240px}.proj-footer{flex-direction:column;align-items:flex-start;gap:12px}.skills-col+.skills-col,.stack-col+.stack-col{border-left:0;border-top:1px solid var(--sand)}.about-qualities{grid-template-columns:1fr}.arch-badge{width:fit-content;margin:16px;position:static}.about-card{min-width:0;margin-top:16px;position:static}.contact-form-wrap,.skills-col,.stack-col{padding:24px}.contact-grid{gap:40px}.contact-link{align-items:flex-start}footer{padding:40px 24px}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
