*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a09;--bg2:#111110;--bg3:#1a1a18;--text:#e8e4dc;--text-muted:#7a7770;--text-dim:#4a4845;--accent:#c9a96e;--accent2:#8b6f47;--border:hsla(39,46%,61%,.15);--border-subtle:hsla(0,0%,100%,.06)}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:Jost,sans-serif;font-weight:300;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:9997;opacity:.35}@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Jost:wght@200;300;400;500&display=swap");nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:28px 48px;background:linear-gradient(180deg,rgba(10,10,9,.95) 0,transparent);transition:backdrop-filter .3s,background .3s}nav.scrolled{background:rgba(10,10,9,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle)}.nav-logo{font-family:Cormorant Garamond,serif;font-size:1.35rem;font-weight:400;letter-spacing:.12em;color:var(--text);text-decoration:none;text-transform:uppercase}.nav-logo span{color:var(--accent)}.nav-links{display:flex;gap:36px;list-style:none;align-items:center}.nav-links a{color:var(--text-muted);text-decoration:none;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;transition:color .25s;position:relative}.nav-links a:after{content:"";position:absolute;bottom:-3px;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.nav-links a:hover{color:var(--accent)}.nav-links a:hover:after{transform:scaleX(1)}.nav-links .photos-link{color:var(--accent);border:1px solid var(--border);padding:6px 16px;border-radius:1px;transition:background .25s,color .25s}.nav-links .photos-link:after{display:none}.nav-links .photos-link:hover{background:var(--accent);color:var(--bg)}.hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;position:relative;overflow:hidden}.hero-visual{background:var(--bg2);overflow:hidden}.hero-visual,.hero-visual-inner{position:relative;display:flex;align-items:center;justify-content:center}.hero-visual-inner{width:100%;height:100%;background:linear-gradient(135deg,var(--bg2) 0,var(--bg3) 100%)}.hero-visual-inner:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,rgba(10,10,9,.8))}.hero-code-block{font-family:Courier New,monospace;font-size:.78rem;color:var(--text-muted);line-height:1.8;padding:48px;position:relative;z-index:1;white-space:pre}.hero-code-block .code-keyword{color:var(--accent)}.hero-code-block .code-string{color:#8fb87a}.hero-code-block .code-comment{color:var(--text-dim)}.hero-content{display:flex;flex-direction:column;justify-content:center;padding:120px 72px 80px;position:relative}.hero-eyebrow{font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:28px;display:flex;align-items:center;gap:12px;opacity:0;animation:fadeUp .8s .3s forwards}.hero-eyebrow:before{content:"";display:block;width:32px;height:1px;background:var(--accent)}.hero-title{font-family:Cormorant Garamond,serif;font-size:clamp(3.2rem,5vw,5.5rem);font-weight:300;line-height:1.05;letter-spacing:-.01em;margin-bottom:32px;opacity:0;animation:fadeUp .9s .5s forwards}.hero-title em{font-style:italic;color:var(--accent)}.hero-desc{font-size:.95rem;color:var(--text-muted);line-height:1.8;max-width:400px;margin-bottom:52px;font-weight:300;opacity:0;animation:fadeUp .9s .7s forwards}.hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px;opacity:0;animation:fadeUp .9s .8s forwards}.hero-tag{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);border:1px solid var(--border-subtle);padding:5px 14px}.hero-ctas{display:flex;gap:20px;align-items:center;opacity:0;animation:fadeUp .9s .9s forwards}.btn-primary{background:var(--accent);color:var(--bg);padding:14px 36px;font-family:Jost,sans-serif;font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border:none;cursor:pointer;transition:background .25s,transform .2s;display:inline-block}.btn-primary:hover{background:#d4b87e;transform:translateY(-1px)}.btn-ghost{color:var(--text-muted);padding:14px 0;font-size:.72rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;transition:color .25s;display:flex;align-items:center;gap:10px}.btn-ghost:after{content:"→";transition:transform .25s}.btn-ghost:hover{color:var(--text)}.btn-ghost:hover:after{transform:translateX(4px)}.intro-strip{background:var(--bg2);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);padding:22px 48px;gap:64px}.intro-strip,.strip-item{display:flex;align-items:center}.strip-item{gap:14px;white-space:nowrap;flex-shrink:0}.strip-num{font-family:Cormorant Garamond,serif;font-size:2rem;font-weight:300;color:var(--accent);line-height:1}.strip-label{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);line-height:1.4}.strip-divider{width:1px;height:36px;background:var(--border-subtle);flex-shrink:0}.section{padding:120px 48px}.section-alt{background:var(--bg2)}.section-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:64px;padding-bottom:28px;border-bottom:1px solid var(--border-subtle)}.section-label{font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.section-title{font-family:Cormorant Garamond,serif;font-size:clamp(2.2rem,3.5vw,3.6rem);font-weight:300;line-height:1.1}.section-title em{font-style:italic}.about-text{font-size:1.05rem;color:var(--text-muted);line-height:1.9;max-width:720px;margin-bottom:24px}.about-text strong{color:var(--text);font-weight:400}.about-signature{font-family:Cormorant Garamond,serif;font-size:2.4rem;font-style:italic;color:var(--accent);margin:32px 0 40px}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border-subtle);border:1px solid var(--border-subtle);margin-top:64px}.skill-card{background:var(--bg2);padding:36px 28px;transition:background .3s}.skill-card:hover{background:var(--bg3)}.skill-card-label{font-size:.62rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.skill-card-title{font-family:Cormorant Garamond,serif;font-size:1.3rem;font-weight:400;margin-bottom:16px}.skill-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px}.skill-list li{font-size:.72rem;color:var(--text-muted);letter-spacing:.1em;padding:4px 10px}.experience-list,.skill-list li{border:1px solid var(--border-subtle)}.experience-list{display:flex;flex-direction:column;gap:1px;background:var(--border-subtle)}.experience-item{background:var(--bg2);padding:40px 48px;position:relative;transition:background .3s}.experience-item:hover{background:var(--bg3)}.experience-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:transparent;transition:background .3s}.experience-item:hover:before{background:var(--accent)}.exp-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:24px}.exp-role{font-family:Cormorant Garamond,serif;font-size:1.5rem;font-weight:400;line-height:1.2}.exp-company{font-size:.78rem;color:var(--accent)}.exp-company,.exp-period{letter-spacing:.15em;text-transform:uppercase;margin-top:6px}.exp-period{font-size:.7rem;color:var(--text-dim);white-space:nowrap}.exp-bullets{list-style:none;display:flex;flex-direction:column;gap:10px}.exp-bullets li{font-size:.85rem;color:var(--text-muted);line-height:1.75;padding-left:20px;position:relative}.exp-bullets li:before{content:"◎";position:absolute;left:0;color:var(--accent);font-size:.6rem;top:4px}.exp-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.exp-tag{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);border:1px solid var(--border-subtle);padding:3px 10px}.sites-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:64px}.site-card{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--bg2);border:1px solid var(--border-subtle);transition:border-color .3s;text-decoration:none;display:block}.site-card:hover{border-color:var(--border)}.site-card-content{position:absolute;inset:0;padding:36px 32px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(0deg,rgba(10,10,9,.95) 0,rgba(10,10,9,.2));transition:background .4s}.site-card:hover .site-card-content{background:linear-gradient(0deg,rgba(10,10,9,.98) 0,rgba(10,10,9,.5))}.site-card-num{font-size:.85rem;color:var(--accent);letter-spacing:.15em}.site-card-num,.site-card-title{font-family:Cormorant Garamond,serif;margin-bottom:10px}.site-card-title{font-size:1.8rem;font-weight:400;color:var(--text);line-height:1.15}.site-card-desc{font-size:.8rem;color:var(--text-muted);line-height:1.7;margin-bottom:20px}.site-card-url{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:8px}.site-card-url:after{content:"→";transition:transform .25s}.site-card:hover .site-card-url:after{transform:translateX(4px)}.site-card-bg{position:absolute;inset:0;background-size:cover;background-position:50%;transition:transform .7s cubic-bezier(.25,.46,.45,.94);transform:scale(1.05)}.site-card:hover .site-card-bg{transform:scale(1)}.contact-section{padding:120px 48px;background:var(--bg2);display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:start}.contact-desc{color:var(--text-muted);font-size:.95rem;line-height:1.8;margin-top:28px;margin-bottom:48px}.contact-info-item{display:flex;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid var(--border-subtle)}.contact-info-icon{width:38px;height:38px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:.85rem;flex-shrink:0}.contact-info-label{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);margin-bottom:3px}.contact-info-value{font-size:.9rem;color:var(--text)}.contact-form{gap:20px}.contact-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-label{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}.form-input,.form-textarea{background:var(--bg);border:1px solid var(--border-subtle);color:var(--text);padding:14px 18px;font-family:Jost,sans-serif;font-size:.9rem;font-weight:300;outline:none;transition:border-color .25s;width:100%}.form-input:focus,.form-textarea:focus{border-color:var(--accent)}.form-input::-moz-placeholder,.form-textarea::-moz-placeholder{color:var(--text-dim)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-dim)}.form-textarea{resize:vertical;min-height:120px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-submit{background:var(--accent);color:var(--bg);border:none;padding:16px 40px;font-family:Jost,sans-serif;font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:background .25s;align-self:flex-start}.form-submit:hover{background:#d4b87e}footer{padding:48px;border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}.footer-logo{font-family:Cormorant Garamond,serif;font-size:1.1rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.footer-logo span{color:var(--accent)}.footer-copy{font-size:.72rem;color:var(--text-dim);letter-spacing:.1em}.footer-social{display:flex;gap:20px}.footer-social a{width:34px;height:34px;border:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:center;color:var(--text-muted);text-decoration:none;font-size:.75rem;transition:border-color .25s,color .25s}.footer-social a:hover{border-color:var(--accent);color:var(--accent)}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media (max-width:900px){nav{padding:20px 24px}.nav-links{display:none}.hero{grid-template-columns:1fr}.hero-visual{display:none}.hero-content{padding:100px 24px 80px}.skills-grid{grid-template-columns:1fr 1fr}.contact-section,.sites-grid{grid-template-columns:1fr}.contact-section{padding:80px 24px;gap:64px}footer{flex-direction:column;gap:24px;text-align:center;padding:40px 24px}.section{padding:80px 24px}.experience-item{padding:32px 24px}}