:root{--plum:#4B243C;--plum-light:#6e3557;--plum-dark:#2e1626;--plum-deepest:#1a0c16;--cream:#F8F2EC;--cream-dark:#ede5db;--peach:#D99A8B;--peach-light:#e8b5a8;--charcoal:#292328;--blush:#E8D6D0;--muted:#7A5C6E;--green:#3d9970;--white:#fffaf6;--ease-out:cubic-bezier(.16,1,.3,1);--ease-soft:cubic-bezier(.22,.8,.3,1)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"DM Sans",system-ui,sans-serif;background:var(--cream);color:var(--charcoal);line-height:1.7;-webkit-font-smoothing:antialiased}
::selection{background:var(--peach);color:var(--plum-deepest)}
:focus-visible{outline:2px solid var(--peach);outline-offset:4px}
h1,h2,h3,h4{font-family:"Cormorant Garamond",Georgia,serif;font-weight:400;line-height:1.12}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
/* NAV */
#navbar{position:fixed;top:0;left:0;right:0;z-index:200;background:rgba(248,242,236,.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--blush);transition:box-shadow .3s}
#navbar.scrolled{box-shadow:0 2px 24px rgba(75,36,60,.09)}
.nav-wrap{max-width:1360px;margin:0 auto;padding:0 40px;height:68px;display:flex;align-items:center;gap:20px}
.nav-logo{font-family:"Cormorant Garamond",serif;font-size:1.22rem;font-weight:500;color:var(--plum);white-space:nowrap;flex-shrink:0}
.nav-logo em{font-style:italic;font-weight:300}
.nav-links{display:flex;align-items:center;gap:18px;list-style:none;flex:1;justify-content:center}
.nav-links a{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);transition:color .2s;padding:4px 0;border-bottom:1.5px solid transparent}
.nav-links a:hover,.nav-links a.active{color:var(--plum);border-bottom-color:var(--peach)}
.nav-hire{font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;background:var(--plum);color:var(--cream);padding:10px 22px;border-radius:2px;transition:background .2s;flex-shrink:0}
.nav-hire:hover{background:var(--plum-light)}
.nav-burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:6px}
.nav-burger span{display:block;width:22px;height:1.5px;background:var(--plum)}
.mobile-nav{display:none;flex-direction:column;background:var(--cream);padding:20px 40px;border-top:1px solid var(--blush)}
.mobile-nav.open{display:flex}
.mobile-nav a{font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:12px 0;border-bottom:1px solid var(--blush)}
.mobile-nav a:last-child{border:none;color:var(--plum);font-weight:500}
/* HERO */
#hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;padding-top:68px;overflow:hidden}
.hero-left{display:flex;flex-direction:column;justify-content:center;padding:80px 60px 80px 80px;background:var(--cream)}
.hero-eyebrow{font-size:.65rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--peach);margin-bottom:28px;display:flex;align-items:center;gap:12px}
.hero-eyebrow::before{content:"";width:28px;height:1px;background:var(--peach)}
.hero-h1{font-family:"Cormorant Garamond",serif;font-size:clamp(3.2rem,5vw,5.6rem);font-weight:400;line-height:1.06;color:var(--plum);margin-bottom:28px}
.hero-h1 em{font-style:italic;font-weight:300;color:var(--peach)}
.hero-rule{width:48px;height:2px;background:linear-gradient(90deg,var(--peach),var(--blush));margin-bottom:28px}
.hero-sub{font-size:1rem;color:var(--muted);line-height:1.82;max-width:430px;font-weight:300;margin-bottom:44px}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:36px}
.btn-primary{font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;background:var(--plum);color:var(--cream);padding:14px 30px;border-radius:2px;transition:background .22s;display:inline-block}
.btn-primary:hover{background:var(--plum-light)}
.btn-ghost{font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--plum);padding:13px 30px;border-radius:2px;border:1px solid var(--plum);transition:all .22s;display:inline-block}
.btn-ghost:hover{background:var(--plum);color:var(--cream)}
.hero-avail{display:flex;align-items:center;gap:9px;font-size:.8rem;color:var(--muted);margin-bottom:28px}
.dot-green{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0;box-shadow:0 0 0 3px rgba(61,153,112,.18);animation:pulse 2.2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px rgba(61,153,112,.18)}50%{box-shadow:0 0 0 6px rgba(61,153,112,.06)}}
.hero-tags{display:flex;flex-wrap:wrap;gap:8px}
.hero-tag{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border:1px solid var(--blush);padding:5px 14px;border-radius:1px}
.hero-right{position:relative;background:var(--plum-dark);display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-right-inner{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:60px}
.hero-portrait-frame{position:relative;width:min(400px,80%)}
.hero-portrait-border{position:absolute;inset:-16px -16px -16px 16px;border:1px solid rgba(217,154,139,.35);border-radius:2px;pointer-events:none;z-index:0}
.hero-portrait-img{position:relative;z-index:1;width:100%;aspect-ratio:3/4;background:rgba(255,250,246,.04);border-radius:2px;overflow:hidden;border:1px solid rgba(217,154,139,.18)}
.hero-portrait-img img{width:100%;height:100%;object-fit:cover;object-position:top center}
.hero-corner{position:absolute;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(217,154,139,.6);writing-mode:vertical-rl}
.hero-corner.tl{top:60px;left:18px}
.hero-corner.br{bottom:60px;right:18px;transform:rotate(180deg)}
.hero-vline{position:absolute;left:50%;transform:translateX(-50%);width:1px;background:linear-gradient(to bottom,rgba(217,154,139,.4),transparent)}
.hero-vline.top{top:0;height:40px}
.hero-vline.bottom{bottom:0;height:40px;background:linear-gradient(to top,rgba(217,154,139,.4),transparent)}
/* TICKER */
.ticker-strip{background:var(--plum);padding:18px 0;overflow:hidden;white-space:nowrap}
.ticker-track{display:inline-flex;animation:ticker 32s linear infinite}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.ticker-item{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(248,242,236,.75)}
.ticker-dot{display:inline-block;margin:0 22px;color:var(--peach)}
/* SHARED */
.section{padding:96px 0}
.bg-plum{background:var(--plum)}.bg-cream{background:var(--cream)}.bg-cream-dark{background:var(--cream-dark)}
.wrap{max-width:1360px;margin:0 auto;padding:0 80px}
.eyebrow{font-size:.65rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:24px;height:1px;flex-shrink:0}
.eyebrow.light{color:rgba(248,242,236,.5)}.eyebrow.light::before{background:rgba(248,242,236,.3)}
.eyebrow.dark{color:var(--peach)}.eyebrow.dark::before{background:var(--peach)}
.section-title{font-family:"Cormorant Garamond",serif;font-size:clamp(2.4rem,4vw,3.8rem);font-weight:400;line-height:1.1}
.title-cream{color:var(--cream)}.title-plum{color:var(--plum)}
/* ABOUT */
.about-inner{max-width:820px;margin:0 auto}
.about-quote{font-family:"Cormorant Garamond",serif;font-size:clamp(1.5rem,2.4vw,2.1rem);font-style:italic;font-weight:300;color:var(--plum);line-height:1.42;border-left:2px solid var(--peach);padding-left:28px;margin-bottom:36px}
.about-body p{font-size:.97rem;color:var(--muted);line-height:1.84;margin-bottom:18px;font-weight:300}
.about-highlight{border-left:2px solid var(--peach);padding:20px 24px;background:rgba(217,154,139,.07);margin:28px 0}
.about-highlight p{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:1.1rem;color:var(--plum);line-height:1.55;margin:0}
.about-avail{display:flex;align-items:center;gap:9px;font-size:.8rem;color:var(--muted);margin-bottom:28px}
.about-btns{display:flex;gap:12px;flex-wrap:wrap}
/* SERVICES */
.services-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:56px;flex-wrap:wrap;gap:20px}
.services-lead{font-size:1rem;font-weight:300;line-height:1.82;max-width:360px;color:rgba(248,242,236,.6)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.svc-card{background:rgba(255,250,246,.04);border:1px solid rgba(232,214,208,.13);padding:44px 36px;position:relative;overflow:hidden;transition:background .25s}
.svc-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--peach);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.svc-card:hover::before{transform:scaleX(1)}
.svc-card:hover{background:rgba(255,250,246,.06)}
.svc-num{font-family:"Cormorant Garamond",serif;font-size:2.4rem;font-weight:300;color:rgba(232,214,208,.2);line-height:1;margin-bottom:22px;display:block}
.svc-title{font-family:"Cormorant Garamond",serif;font-size:1.25rem;color:var(--cream);margin-bottom:20px;line-height:1.25}
.svc-list{list-style:none;display:flex;flex-direction:column;gap:9px}
.svc-list li{font-size:.82rem;color:rgba(248,242,236,.52);padding-left:16px;position:relative;line-height:1.6}
.svc-list li::before{content:"";position:absolute;left:0;top:9px;width:4px;height:1px;background:var(--peach)}
/* HOW I WORK */
.how-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-bottom:56px}
.how-step{padding:40px 32px;border-top:2px solid var(--plum);background:#fffaf6}
.how-num{font-family:"Cormorant Garamond",serif;font-size:3rem;font-weight:300;color:var(--blush);line-height:1;margin-bottom:20px;display:block}
.how-step h3{font-family:"Cormorant Garamond",serif;font-size:1.18rem;color:var(--plum);margin-bottom:12px}
.how-step p{font-size:.88rem;color:var(--muted);line-height:1.75}
.how-quote{border-left:2px solid var(--peach);padding:22px 30px;background:rgba(217,154,139,.06)}
.how-quote p{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:1.15rem;color:var(--plum);line-height:1.55;font-weight:300}
/* SKILLS */
.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.skill-group{padding:44px 36px;border-top:2px solid var(--peach);background:#fffaf6}
.skill-title{font-family:"Cormorant Garamond",serif;font-size:1.15rem;color:var(--plum);margin-bottom:24px}
.skill-list{list-style:none;display:flex;flex-direction:column;gap:10px}
.skill-list li{font-size:.85rem;color:var(--muted);padding-left:16px;position:relative;line-height:1.5}
.skill-list li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:1px;background:var(--peach)}
/* PROJECTS */
.pw-card{background:#fffaf6;border-top:2px solid var(--plum);margin-bottom:2px;padding:52px 60px}
.pw-card:last-of-type{margin-bottom:0}
.pw-meta{margin-bottom:36px}
.pw-num{font-family:"Cormorant Garamond",serif;font-size:3.8rem;font-weight:300;color:var(--blush);line-height:1;display:block;margin-bottom:8px}
.pw-cat{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--peach);display:block;margin-bottom:12px}
.pw-title{font-family:"Cormorant Garamond",serif;font-size:clamp(1.6rem,2.6vw,2.4rem);color:var(--plum);margin-bottom:14px;line-height:1.15}
.pw-desc{font-size:.95rem;color:var(--muted);line-height:1.8;max-width:760px;font-weight:300;margin-bottom:22px}
.pw-tools{display:flex;flex-wrap:wrap;gap:8px}
.pw-tool{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--plum-light);background:var(--cream-dark);border:1px solid var(--blush);padding:5px 14px}
.pw-screenshots{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.pw-sc-wrap{position:relative;aspect-ratio:16/9;overflow:hidden;background:#e0d5cc;cursor:pointer;transition:opacity .2s}.pw-sc-wrap:hover{opacity:.88}
.pw-sc-wrap img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:1}
.pw-sc-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;position:absolute;inset:0;color:rgba(122,92,110,.5);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;text-align:center;padding:12px;z-index:0}
.pw-sc-icon{width:38px;height:38px;border:1px dashed rgba(122,92,110,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem}
/* EXPERIENCE */
.exp-list{display:flex;flex-direction:column}
.exp-item{display:grid;grid-template-columns:260px 1fr;gap:60px;padding:52px 0;border-top:1px solid rgba(232,214,208,.18)}
.exp-item:last-child{border-bottom:1px solid rgba(232,214,208,.18)}
.exp-dates{font-size:.72rem;letter-spacing:.1em;color:rgba(248,242,236,.38);margin-bottom:10px;text-transform:uppercase}
.exp-role{font-family:"Cormorant Garamond",serif;font-size:1.28rem;color:var(--cream);margin-bottom:6px}
.exp-company{font-size:.8rem;color:var(--peach)}
.exp-desc{font-size:.92rem;color:rgba(248,242,236,.58);line-height:1.75;margin-bottom:20px;font-weight:300}
.exp-bullets{list-style:none;display:flex;flex-direction:column;gap:10px}
.exp-bullets li{font-size:.86rem;color:rgba(248,242,236,.5);padding-left:20px;position:relative;line-height:1.7}
.exp-bullets li::before{content:"";position:absolute;left:0;top:10px;width:8px;height:1px;background:var(--peach)}
/* TOOLS */
.tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.tool-group{padding:44px 36px;background:#fffaf6;border-top:1px solid var(--blush)}
.tool-group-title{font-family:"Cormorant Garamond",serif;font-size:1.05rem;color:var(--plum);margin-bottom:28px;padding-bottom:14px;border-bottom:1px solid var(--blush)}
.tool-items{display:flex;flex-direction:column;gap:12px}
.tool-item{display:flex;align-items:center;gap:12px;font-size:.88rem;color:var(--muted)}
.tool-logo{width:28px;height:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:4px}
.tool-logo svg{width:22px;height:22px}
/* WHY */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-bottom:52px}
.why-card{padding:40px 32px;background:#fffaf6;border-top:2px solid var(--peach)}
.why-card h3{font-family:"Cormorant Garamond",serif;font-size:1.25rem;color:var(--plum);margin-bottom:14px}
.why-card p{font-size:.88rem;color:var(--muted);line-height:1.75}
.why-quote{border-left:2px solid var(--peach);padding:22px 30px;background:rgba(217,154,139,.06)}
.why-quote p{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:1.15rem;color:var(--plum);line-height:1.55;font-weight:300}
/* CERTIFICATIONS */
#certifications{padding:48px 0;background:var(--plum)}
.cert-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 32px;background:rgba(255,250,246,.04);border:1px solid rgba(232,214,208,.1);border-top:2px solid var(--peach);margin-bottom:2px}
.cert-name{font-family:"Cormorant Garamond",serif;font-size:clamp(1.15rem,1.8vw,1.5rem);color:var(--cream);line-height:1.2}
.cert-type{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(248,242,236,.35);display:block;margin-top:5px}
.cert-thumb{width:100px;height:70px;flex-shrink:0;border:1px solid rgba(232,214,208,.25);border-radius:2px;overflow:hidden;cursor:pointer;position:relative;background:rgba(255,250,246,.06);transition:border-color .22s,transform .22s}
.cert-thumb:hover{border-color:var(--peach);transform:scale(1.05)}
.cert-thumb img{width:100%;height:100%;object-fit:cover;display:none;position:relative;z-index:1}
.cert-thumb-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;position:absolute;inset:0;color:rgba(248,242,236,.25);font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:4px}
.cert-view-hint{font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(217,154,139,.5);text-align:center;margin-top:5px}
/* LIGHTBOX */
#certLightbox{display:flex;position:fixed;inset:0;z-index:9999;background:rgba(26,12,22,.95);align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s var(--ease-soft),visibility .3s}
#certLightbox.open{opacity:1;visibility:visible;pointer-events:auto}
#certLightboxInner{position:relative;cursor:default}
#certLightbox img{max-width:88vw;max-height:86vh;object-fit:contain;border:1px solid rgba(217,154,139,.22);border-radius:2px;box-shadow:0 24px 80px rgba(0,0,0,.7);display:block;opacity:0;transform:scale(.965) translateY(12px);transition:opacity .38s var(--ease-out),transform .38s var(--ease-out)}
#certLightbox.open img{opacity:1;transform:none}
#certLightboxClose{position:fixed;top:24px;right:32px;font-size:2.2rem;color:rgba(248,242,236,.55);cursor:pointer;line-height:1;transition:color .2s;z-index:10000;user-select:none}
#certLightboxClose:hover{color:var(--cream)}

/* PROJECT LIGHTBOX */
#projLightbox{display:flex;position:fixed;inset:0;z-index:9999;background:rgba(26,12,22,.95);align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s var(--ease-soft),visibility .3s}
#projLightbox.open{opacity:1;visibility:visible;pointer-events:auto}
#projLightboxInner{position:relative;cursor:default}
#projLightbox img{max-width:90vw;max-height:88vh;object-fit:contain;border:1px solid rgba(217,154,139,.2);border-radius:2px;box-shadow:0 24px 80px rgba(0,0,0,.7);display:block;opacity:0;transform:scale(.965) translateY(12px);transition:opacity .38s var(--ease-out),transform .38s var(--ease-out)}
#projLightbox.open img{opacity:1;transform:none}
#projLightboxClose{position:fixed;top:24px;right:32px;font-size:2.2rem;color:rgba(248,242,236,.55);cursor:pointer;line-height:1;transition:color .2s;z-index:10000;user-select:none}
#projLightboxClose:hover{color:var(--cream)}
/* EDUCATION */
#education{padding:48px 0;background:var(--cream-dark)}
.edu-card{border-top:2px solid var(--plum);padding:32px 40px;background:#fffaf6}
.edu-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:16px}
.edu-degree{font-family:"Cormorant Garamond",serif;font-size:clamp(1.5rem,2.6vw,2.2rem);color:var(--plum);font-weight:400;line-height:1.1}
.edu-divider{width:1px;height:36px;background:var(--blush);flex-shrink:0}
.edu-inst{font-size:.88rem;color:var(--muted)}
.edu-statement{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:.95rem;color:var(--muted);line-height:1.65;border-left:1px solid var(--peach);padding-left:18px}
/* LANGUAGES */
#languages{padding:40px 0;background:var(--cream)}
.lang-row{display:inline-flex;align-items:center;gap:20px;border-top:2px solid var(--plum);padding-top:20px}
.lang-name{font-family:"Cormorant Garamond",serif;font-size:1.5rem;color:var(--plum);font-weight:400}
.lang-div{width:1px;height:28px;background:var(--blush);flex-shrink:0}
.lang-level{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.contact-headline{font-family:"Cormorant Garamond",serif;font-size:clamp(2.2rem,3.5vw,3.4rem);color:var(--cream);margin-bottom:20px;line-height:1.12}
.contact-lead{font-size:.95rem;color:rgba(248,242,236,.58);line-height:1.82;font-weight:300;margin-bottom:44px}
.contact-links{margin-bottom:40px}
.contact-link-item{display:flex;flex-direction:column;gap:4px;padding:20px 0;border-top:1px solid rgba(232,214,208,.1)}
.contact-link-item:last-child{border-bottom:1px solid rgba(232,214,208,.1)}
.contact-link-label{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(217,154,139,.65)}
.contact-link-value{font-family:"Cormorant Garamond",serif;font-size:1.12rem;color:var(--cream);transition:color .2s}
.contact-link-value:hover{color:var(--peach)}
.contact-btns{display:flex;gap:12px;flex-wrap:wrap}
.btn-peach{font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;background:var(--peach);color:var(--cream);padding:14px 30px;border-radius:2px;transition:background .22s;display:inline-block}
.btn-peach:hover{background:var(--peach-light)}
.btn-outline-cream{font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(248,242,236,.8);padding:13px 30px;border-radius:2px;border:1px solid rgba(248,242,236,.22);transition:all .22s;display:inline-block}
.btn-outline-cream:hover{background:rgba(248,242,236,.07);border-color:rgba(248,242,236,.5)}
.contact-form{background:rgba(255,250,246,.04);border:1px solid rgba(232,214,208,.12);padding:48px 44px}
.form-group{margin-bottom:28px}
.form-group label{display:block;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(248,242,236,.4);margin-bottom:10px}
.form-group input,.form-group select,.form-group textarea{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(232,214,208,.18);padding:12px 0;font-family:"DM Sans",sans-serif;font-size:.92rem;color:var(--cream);outline:none;transition:border-color .2s;-webkit-appearance:none}
.form-group input::placeholder,.form-group textarea::placeholder{color:rgba(248,242,236,.2)}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-bottom-color:var(--peach)}
.form-group select{color:rgba(248,242,236,.55);cursor:pointer}
.form-group select option{background:var(--plum-dark);color:var(--cream)}
.form-group textarea{resize:none;height:110px}
.form-submit{width:100%;padding:16px;background:var(--peach);color:var(--cream);border:none;font-family:"DM Sans",sans-serif;font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background .22s;border-radius:2px;margin-top:8px}
.form-submit:hover{background:var(--plum-light)}
/* FOOTER */
footer{background:var(--plum-deepest);padding:72px 0 32px}
.footer-wrap{max-width:1360px;margin:0 auto;padding:0 80px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:60px;padding-bottom:48px;border-bottom:1px solid rgba(248,242,236,.07);margin-bottom:28px}
.footer-brand{font-family:"Cormorant Garamond",serif;font-size:1.55rem;color:var(--cream);margin-bottom:6px}
.footer-brand-sub{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(248,242,236,.3);margin-bottom:18px}
.footer-desc{font-size:.75rem;color:rgba(248,242,236,.22);display:block;margin-bottom:5px}
.footer-col-title{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(248,242,236,.28);margin-bottom:18px}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer-links a{font-size:.82rem;color:rgba(248,242,236,.45);transition:color .2s}
.footer-links a:hover{color:var(--cream)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.footer-copy{font-size:.72rem;color:rgba(248,242,236,.22)}
.footer-avail{display:flex;align-items:center;gap:8px;font-size:.72rem;color:rgba(248,242,236,.32)}

/* MOTION SYSTEM */
.motion-ready #navbar{opacity:0;transform:translateY(-100%)}
.motion-ready.motion-loaded #navbar{animation:nav-arrive .7s var(--ease-out) forwards}
.motion-ready .hero-left>*{opacity:0;transform:translateY(24px);filter:blur(5px)}
.motion-ready.motion-loaded .hero-left>*{animation:hero-copy-arrive .72s var(--ease-out) forwards}
.motion-ready.motion-loaded .hero-left>*:nth-child(1){animation-delay:.08s}
.motion-ready.motion-loaded .hero-left>*:nth-child(2){animation-delay:.16s}
.motion-ready.motion-loaded .hero-left>*:nth-child(3){animation-delay:.24s}
.motion-ready.motion-loaded .hero-left>*:nth-child(4){animation-delay:.3s}
.motion-ready.motion-loaded .hero-left>*:nth-child(5){animation-delay:.37s}
.motion-ready.motion-loaded .hero-left>*:nth-child(6){animation-delay:.43s}
.motion-ready.motion-loaded .hero-left>*:nth-child(7){animation-delay:.49s}
.motion-ready .hero-portrait-img{clip-path:inset(100% 0 0 0);filter:saturate(.75)}
.motion-ready.motion-loaded .hero-portrait-img{animation:portrait-unveil .95s .14s var(--ease-out) forwards}
.motion-ready .hero-portrait-border{opacity:0;transform:translate(-14px,14px) scaleY(.82);transform-origin:bottom}
.motion-ready.motion-loaded .hero-portrait-border{animation:portrait-border-arrive .85s .38s var(--ease-out) forwards}
.motion-ready .hero-corner,.motion-ready .hero-vline{opacity:0}
.motion-ready.motion-loaded .hero-corner,.motion-ready.motion-loaded .hero-vline{animation:quiet-appear .65s .72s ease-out forwards}
.hero-portrait-frame{--portrait-x:0deg;--portrait-y:0deg;transform:perspective(900px) rotateX(var(--portrait-x)) rotateY(var(--portrait-y));transition:transform .55s var(--ease-out);transform-style:preserve-3d}
.hero-portrait-border{transition:transform .55s var(--ease-out)}
.hero-portrait-frame.is-tilting{transition-duration:.12s}
.hero-portrait-frame.is-tilting .hero-portrait-border{transform:translate3d(5px,-3px,24px)}
@keyframes nav-arrive{to{opacity:1;transform:none}}
@keyframes hero-copy-arrive{to{opacity:1;transform:none;filter:none}}
@keyframes portrait-unveil{0%{clip-path:inset(100% 0 0 0);filter:saturate(.75)}100%{clip-path:inset(0);filter:saturate(1)}}
@keyframes portrait-border-arrive{to{opacity:1;transform:none}}
@keyframes quiet-appear{to{opacity:1}}

.motion-ready .reveal-heading{opacity:.01;filter:blur(5px);transform:translateY(14px);transition:opacity .65s var(--ease-out),filter .72s var(--ease-out),transform .65s var(--ease-out)}
.motion-ready .reveal-heading.is-visible{opacity:1;filter:none;transform:none}
.motion-ready .reveal-card{opacity:.01;transform:translateY(26px);box-shadow:0 0 0 rgba(75,36,60,0);transition:opacity .6s var(--ease-out),transform .68s var(--ease-out),box-shadow .28s var(--ease-soft);transition-delay:var(--motion-delay,0ms)}
.motion-ready .reveal-card.is-visible{opacity:1;transform:none}
.motion-ready .reveal-line{opacity:.01;transform:translateX(-26px);transition:opacity .62s var(--ease-out),transform .72s var(--ease-out);transition-delay:var(--motion-delay,0ms)}
.motion-ready .reveal-line:nth-child(even){transform:translateX(26px)}
.motion-ready .reveal-line.is-visible{opacity:1;transform:none}
.motion-ready .reveal-soft{opacity:.01;filter:blur(5px);transform:translateY(16px);transition:opacity .7s var(--ease-out),filter .7s var(--ease-out),transform .7s var(--ease-out)}
.motion-ready .reveal-soft.is-visible{opacity:1;filter:none;transform:none}
.motion-ready .reveal-project{opacity:.01;transform:translateY(34px);transition:opacity .72s var(--ease-out),transform .78s var(--ease-out),box-shadow .32s var(--ease-soft)}
.motion-ready .reveal-project.is-visible{opacity:1;transform:none}
.motion-ready .reveal-project .pw-sc-wrap{opacity:.01;clip-path:inset(0 0 100% 0);transform:translateY(14px)}
.motion-ready .reveal-project.is-visible .pw-sc-wrap{animation:project-frame-unveil .72s var(--ease-out) forwards}
.motion-ready .reveal-project.is-visible .pw-sc-wrap:nth-child(1){animation-delay:.14s}
.motion-ready .reveal-project.is-visible .pw-sc-wrap:nth-child(2){animation-delay:.21s}
.motion-ready .reveal-project.is-visible .pw-sc-wrap:nth-child(3){animation-delay:.28s}
@keyframes project-frame-unveil{to{opacity:1;clip-path:inset(0);transform:none}}

@media(hover:hover){
  .btn-primary,.btn-ghost,.btn-peach,.btn-outline-cream,.nav-hire,.form-submit{transition:color .24s,background-color .24s,border-color .24s,transform .24s var(--ease-out),box-shadow .24s var(--ease-out)}
  .btn-primary:hover,.btn-peach:hover,.nav-hire:hover,.form-submit:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(46,22,38,.16)}
  .btn-ghost:hover,.btn-outline-cream:hover{transform:translateY(-2px)}
  .svc-card,.how-step,.skill-group,.tool-group,.why-card{transition:transform .32s var(--ease-out),background-color .25s,box-shadow .32s var(--ease-out)}
  .svc-card:hover,.how-step:hover,.skill-group:hover,.tool-group:hover,.why-card:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(46,22,38,.1)}
  .pw-card:hover{box-shadow:0 20px 50px rgba(46,22,38,.08)}
  .pw-sc-wrap{opacity:1;transition:opacity .25s,transform .45s var(--ease-out),box-shadow .4s var(--ease-out)}
  .pw-sc-wrap:hover{opacity:1;transform:translateY(-6px);box-shadow:0 18px 32px rgba(46,22,38,.2);z-index:2}
  .pw-sc-wrap img{transition:transform .7s var(--ease-out),filter .35s}
  .pw-sc-wrap:hover img{transform:scale(1.035);filter:saturate(1.08) contrast(1.02)}
  .tool-item{transition:color .2s,transform .26s var(--ease-out)}
  .tool-item:hover{color:var(--plum);transform:translateX(5px)}
}

.ticker-strip:hover .ticker-track{animation-play-state:paused}
.mobile-nav a{transition:color .2s,transform .28s var(--ease-out),opacity .28s}

@media(max-width:720px){
  .mobile-nav{display:flex;max-height:0;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(-10px);padding-top:0;padding-bottom:0;transition:max-height .45s var(--ease-out),opacity .25s,transform .4s var(--ease-out),padding .4s var(--ease-out)}
  .mobile-nav.open{max-height:620px;opacity:1;pointer-events:auto;transform:none;padding-top:20px;padding-bottom:20px}
  .mobile-nav a{opacity:0;transform:translateX(-10px)}
  .mobile-nav.open a{opacity:1;transform:none}
  .mobile-nav.open a:nth-child(2){transition-delay:35ms}.mobile-nav.open a:nth-child(3){transition-delay:70ms}.mobile-nav.open a:nth-child(4){transition-delay:105ms}.mobile-nav.open a:nth-child(5){transition-delay:140ms}.mobile-nav.open a:nth-child(6){transition-delay:175ms}.mobile-nav.open a:nth-child(7){transition-delay:210ms}.mobile-nav.open a:nth-child(8){transition-delay:245ms}.mobile-nav.open a:nth-child(9){transition-delay:280ms}.mobile-nav.open a:nth-child(10){transition-delay:315ms}
  .nav-burger span{transition:transform .3s var(--ease-out),opacity .2s}
  .nav-burger.is-open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .nav-burger.is-open span:nth-child(2){opacity:0}
  .nav-burger.is-open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .motion-ready #navbar,.motion-ready .hero-left>*,.motion-ready .hero-portrait-img,.motion-ready .hero-portrait-border,.motion-ready .hero-corner,.motion-ready .hero-vline,.motion-ready .reveal-heading,.motion-ready .reveal-card,.motion-ready .reveal-line,.motion-ready .reveal-soft,.motion-ready .reveal-project,.motion-ready .reveal-project .pw-sc-wrap{opacity:1;transform:none;filter:none;clip-path:none;animation:none;transition-duration:.12s;transition-delay:0s}
  .ticker-track{animation-play-state:paused}
  .hero-portrait-frame{transform:none!important;transition:none}
}
@media(max-width:1100px){.wrap{padding:0 40px}.footer-wrap{padding:0 40px}#hero{grid-template-columns:1fr}.hero-left{padding:60px 40px}.hero-right{min-height:60vw}.hero-corner{display:none}.services-grid,.skills-grid{grid-template-columns:repeat(2,1fr)}.how-steps{grid-template-columns:repeat(2,1fr)}.exp-item{grid-template-columns:1fr;gap:20px}.tools-grid{grid-template-columns:1fr 1fr}.why-grid{grid-template-columns:repeat(2,1fr)}.contact-grid{grid-template-columns:1fr;gap:52px}.footer-grid{grid-template-columns:1fr 1fr}.cert-row{flex-wrap:wrap}.pw-card{padding:44px 40px}}
@media(max-width:720px){.wrap{padding:0 20px}.footer-wrap{padding:0 20px}.section{padding:68px 0}.nav-links,.nav-hire{display:none}.nav-burger{display:flex}.hero-left{padding:40px 20px}.services-grid,.how-steps,.skills-grid,.why-grid,.tools-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.contact-form{padding:32px 24px}#certifications{padding:36px 0}#education{padding:36px 0}#languages{padding:32px 0}.pw-card{padding:32px 20px}.pw-screenshots{grid-template-columns:1fr}}
