:root{--ink:#11110f;--paper:#f0eee7;--acid:#d6ff2f;--blue:#9fb7ff;--mono:'DM Mono',monospace;--sans:'Manrope',sans-serif;--serif:'Playfair Display',serif}*{box-sizing:border-box;margin:0}html{scroll-behavior:auto}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}::selection{background:var(--acid)}.grain{position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");mix-blend-mode:multiply}.cursor-glow{position:fixed;width:30rem;height:30rem;border-radius:50%;background:radial-gradient(circle,rgba(214,255,47,.12),transparent 65%);pointer-events:none;z-index:-1;transform:translate(-50%,-50%)}.nav{height:72px;position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 3.5vw;color:var(--paper);mix-blend-mode:difference;font:500 10px/1 var(--mono);letter-spacing:.06em}.brand-dot{display:inline-block;width:7px;height:7px;background:var(--acid);border-radius:50%;margin-right:8px}.nav-links{display:flex;gap:2.2rem;color:#bbb9b1}.nav-links a:hover,.nav-cta:hover{color:var(--acid)}.nav-cta span{font-size:15px;margin-left:5px}.hero{background:var(--ink);color:var(--paper);min-height:100svh;position:relative;display:flex;flex-direction:column;padding:110px 3.5vw 35px;overflow:hidden}.hero-grid-lines{position:absolute;inset:0 3.5vw;display:grid;grid-template-columns:repeat(4,1fr)}.hero-grid-lines i{border-left:1px solid rgba(240,238,231,.12)}.hero-grid-lines i:last-child{border-right:1px solid rgba(240,238,231,.12)}.hero-orbit{position:absolute;border:1px solid rgba(214,255,47,.35);border-radius:50%}.orbit-one{width:70vw;height:70vw;right:-32vw;top:-24vw}.orbit-two{width:35vw;height:35vw;right:7vw;top:18vh;border-color:rgba(240,238,231,.13)}.hero-meta,.hero-bottom,.hero-name{position:relative;z-index:2}.hero-meta{display:flex;justify-content:space-between;font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.hero-meta b{color:var(--acid);font-size:8px}.hero-name{font-size:clamp(4.7rem,13.1vw,13.7rem);font-weight:800;line-height:.75;letter-spacing:-.1em;margin-top:auto;display:flex;flex-direction:column}.hero-name span{display:block}.name-indent{margin-left:18vw;color:var(--acid)}.hero-bottom{display:grid;grid-template-columns:1fr 1.35fr .45fr;align-items:end;gap:4vw;margin-top:6.3vw}.hero-photo{width:min(184px,18vw);aspect-ratio:1/1.18;position:relative;overflow:hidden}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(140deg,transparent 55%,rgba(214,255,47,.3))}.hero-photo img{height:100%;width:100%;object-fit:cover;filter:grayscale(1) contrast(1.18)}.photo-label{position:absolute;bottom:10px;left:10px;z-index:1;font:9px var(--mono);letter-spacing:.08em}.hero-statement{max-width:380px}.hero-statement p{font-size:clamp(1.15rem,1.8vw,1.65rem);line-height:1.28;font-weight:500}.hero-statement em,.manifesto em,.capability em,.experience em,.project-intro em,.contact em{font-family:var(--serif);font-weight:500}.circle-link{display:inline-flex;align-items:center;gap:11px;margin-top:25px;font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.circle-link span{display:grid;place-items:center;border:1px solid var(--paper);width:29px;height:29px;border-radius:50%;font-size:15px}.hero-index{justify-self:end;font:9px/1.45 var(--mono);letter-spacing:.08em;color:#a09f99;display:flex;align-items:end;gap:14px}.scroll-line{height:47px;width:1px;background:var(--acid);display:block}.section-kicker{display:flex;justify-content:space-between;font:10px var(--mono);letter-spacing:.08em}.manifesto{background:var(--acid);padding:9vw 9vw 5vw;min-height:88vh;display:flex;flex-direction:column;justify-content:space-between}.manifesto-copy{max-width:1100px;margin:11vw 0}.manifesto-copy p{font-size:clamp(2.4rem,5.3vw,5.9rem);line-height:1.05;letter-spacing:-.065em;font-weight:600}.manifesto-foot{display:flex;justify-content:space-between;padding-top:15px;border-top:1px solid rgba(17,17,15,.35);font:10px var(--mono);letter-spacing:.06em}.capabilities{padding:9vw 9vw 8vw}.capability-list{margin-top:8vw;border-top:1px solid var(--ink)}.capability{display:grid;grid-template-columns:7% 1fr auto;gap:3vw;padding:3.2vw 0;border-bottom:1px solid var(--ink);transition:padding .35s}.capability:hover{padding-left:2vw;padding-right:2vw;background:var(--ink);color:var(--paper)}.cap-no,.cap-arrow{font:10px var(--mono);padding-top:.8vw}.cap-arrow{font-size:2rem}.capability h2{font-size:clamp(2rem,4vw,4.6rem);letter-spacing:-.07em;line-height:.98}.capability p{margin-top:1.5rem;max-width:540px;font-size:14px;line-height:1.7;color:#5e5d58}.capability:hover p{color:#cccac2}.experience{background:#c6b8a7;padding:9vw}.experience-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:9vw;margin-top:7vw}.experience-grid>h2{font-size:clamp(2.4rem,4vw,4.8rem);line-height:1;letter-spacing:-.07em}.timeline{border-top:1px solid var(--ink)}.timeline-item{padding:1.6rem 0 2.8rem;border-bottom:1px solid var(--ink)}.timeline-top{display:flex;justify-content:space-between;font:10px var(--mono);margin-bottom:4vw}.timeline-item h3{font-size:clamp(1.55rem,2.6vw,2.9rem);line-height:1.04;letter-spacing:-.065em}.timeline-item h4{font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin:9px 0 22px}.timeline-item p{max-width:570px;font-size:14px;line-height:1.7}.timeline-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.timeline-tags span{border:1px solid var(--ink);border-radius:20px;padding:5px 9px;font:9px var(--mono)}.project-stage{background:var(--ink);color:var(--paper);padding:9vw 0 6vw;overflow:hidden}.project-intro{padding:0 9vw 7vw}.project-intro h2{font-size:clamp(3.3rem,6.6vw,7rem);line-height:.88;letter-spacing:-.08em;margin-top:9vw}.project-intro p{margin-top:2rem;color:#bbb9b1;max-width:300px;font-size:14px}.project-track-wrap{padding-left:9vw}.project-track{display:flex;gap:16px;width:max-content;will-change:transform}.project-card{width:min(66vw,610px);height:min(70vh,600px);padding:25px;display:flex;flex-direction:column;color:var(--ink);position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;width:65%;aspect-ratio:1;border:1px solid currentColor;border-radius:50%;right:-22%;top:-10%;opacity:.38}.project-number{font:10px var(--mono);position:relative}.project-card-top{position:relative;display:flex;justify-content:space-between;margin-top:4vw;font:10px var(--mono);text-transform:uppercase;letter-spacing:.05em}.project-card h3{position:relative;margin-top:auto;font-size:clamp(2.7rem,5vw,5.9rem);line-height:.88;letter-spacing:-.09em}.project-card p{position:relative;max-width:390px;margin-top:20px;font-size:14px;line-height:1.55}.project-foot{position:relative;margin-top:auto;padding-top:15px;border-top:1px solid rgba(17,17,15,.4);display:flex;justify-content:space-between;gap:15px;font:10px var(--mono)}.project-card-featured{background:var(--acid)}.project-card-lime{background:#b5bc99}.project-card-blue{background:var(--blue)}.project-card-ink{color:var(--paper);background:#3b3b36}.project-card-red{background:#e75b42}.project-card-paper{background:#dedbd2}.project-progress{display:flex;align-items:center;gap:13px;margin:30px 9vw 0;font:10px var(--mono);letter-spacing:.06em}.project-progress div{height:1px;background:#585751;width:180px}.project-progress i{display:block;width:0;height:100%;background:var(--acid)}.contact{background:var(--paper);padding:10vw 9vw 5vw;position:relative;overflow:hidden}.contact-glow{position:absolute;width:60vw;height:60vw;border:1px solid rgba(17,17,15,.18);border-radius:50%;right:-15vw;top:-12vw}.contact h2{position:relative;font-size:clamp(4.1rem,10vw,11rem);letter-spacing:-.095em;line-height:.82;margin:13vw 0 9vw}.contact-bottom{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:10vw}.contact-bottom p{max-width:380px;font-size:15px;line-height:1.65}.contact-mail{display:inline-block;margin-top:25px;padding-bottom:7px;border-bottom:1px solid var(--ink);font-size:clamp(1.1rem,2vw,1.65rem);font-weight:600}.contact-mail span{font-size:1.2em}.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px;font-size:14px}.contact-links a:hover{border-bottom:1px solid var(--ink)}footer{background:var(--ink);color:#a09f99;display:flex;justify-content:space-between;padding:20px 3.5vw;font:9px var(--mono);letter-spacing:.08em}.reveal{opacity:0;transform:translateY(28px)}
@media(max-width:700px){.nav{padding:0 5vw}.nav-links{display:none}.hero{padding:100px 5vw 25px}.hero-name{font-size:18.3vw}.name-indent{margin-left:9vw}.hero-bottom{grid-template-columns:1fr 1fr;gap:20px;margin-top:15vw}.hero-photo{width:100%;max-width:150px}.hero-statement{grid-column:1/-1;grid-row:1}.hero-statement p{font-size:1.1rem}.hero-index{display:none}.manifesto,.capabilities,.experience,.contact{padding-left:5vw;padding-right:5vw}.manifesto{min-height:70vh;padding-top:13vw}.manifesto-copy{margin:15vw 0}.manifesto-foot{gap:20px;font-size:8px}.capability{grid-template-columns:12% 1fr auto;padding:2.4rem 0}.capability h2{font-size:2.1rem}.capability p{font-size:13px}.experience-grid,.contact-bottom{grid-template-columns:1fr;gap:12vw}.project-intro{padding-left:5vw;padding-right:5vw}.project-track-wrap{padding-left:5vw}.project-card{width:82vw;height:510px}.project-card-top{margin-top:40px}.project-progress{margin-left:5vw}.contact h2{font-size:18vw;margin:20vw 0 15vw}footer{padding:18px 5vw;font-size:7px}.cursor-glow{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* refined composition + interactive skill tiles */
.hero-portrait{position:absolute;z-index:3;right:8vw;bottom:7vh;width:min(38vw,510px);height:min(66vh,690px);display:flex;align-items:end;justify-content:center;pointer-events:none}.hero-portrait:before{content:"";position:absolute;width:83%;aspect-ratio:1;border:1px solid rgba(214,255,47,.4);border-radius:50%;bottom:2%;z-index:-1}.hero-portrait img{height:100%;width:100%;object-fit:contain;object-position:bottom}.hero-portrait span{position:absolute;right:-10px;bottom:9%;writing-mode:vertical-rl;font:9px var(--mono);letter-spacing:.08em;color:var(--acid)}.hero-name{z-index:4;pointer-events:none}.hero-bottom{grid-template-columns:minmax(280px,380px) 1fr;margin-top:5vw}.hero-index{grid-column:2;justify-self:end}.skills-section{padding:9vw;background:#e4e1d8}.skills-heading{display:grid;grid-template-columns:1fr 1fr;gap:2vw;align-items:end}.skills-heading .section-kicker{grid-column:1/-1}.skills-heading h2{font-size:clamp(3.2rem,6vw,7rem);line-height:.88;letter-spacing:-.09em;margin-top:8vw}.skills-heading p{max-width:320px;font-size:14px;line-height:1.65;margin-bottom:.4rem}.skills-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;margin-top:7vw}.skill-tile{min-height:310px;padding:24px;display:flex;flex-direction:column;position:relative;overflow:hidden;isolation:isolate;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}.skill-tile:before{content:"";position:absolute;width:15rem;height:15rem;border:1px solid currentColor;border-radius:50%;right:-6rem;top:-7rem;opacity:.24;transition:transform .65s cubic-bezier(.2,.8,.2,1)}.skill-tile:hover{transform:translateY(-12px) rotate(-.5deg);box-shadow:10px 13px 0 rgba(17,17,15,.9)}.skill-tile:hover:before{transform:scale(1.4) rotate(35deg)}.skill-tile:nth-child(1),.skill-tile:nth-child(4){grid-column:span 7}.skill-tile:nth-child(2),.skill-tile:nth-child(3){grid-column:span 5}.skill-tile:nth-child(5){grid-column:span 4}.skill-tile:nth-child(6){grid-column:span 8}.skill-no{position:relative;font:10px var(--mono);letter-spacing:.06em}.skill-tile h3{position:relative;margin-top:auto;font-size:clamp(2rem,3.4vw,4rem);letter-spacing:-.075em;line-height:.9}.skill-tile h3 em{font-family:var(--serif);font-weight:500}.skill-tags{position:relative;display:flex;flex-wrap:wrap;gap:7px;margin-top:2rem}.skill-tags span{font:9px var(--mono);padding:7px 9px;border:1px solid currentColor;border-radius:99px;transition:background .25s,color .25s}.skill-tile:hover .skill-tags span{background:currentColor;color:var(--paper)}.skill-tile-dark{background:var(--ink);color:var(--paper)}.skill-tile-dark .skill-tags span{color:var(--tag-fg)}.skill-tile-dark:hover .skill-tags span{background:var(--acid);color:var(--ink)}.skill-tile-lime{background:var(--acid)}.skill-tile-paper{background:#f6f4ee}.skill-tile-blue{background:var(--blue)}.skill-tile-orange{background:#e97845}.skill-tile-plain{background:#beb6a8}.project-stage{padding-top:7vw}.project-intro{padding-bottom:4vw}.project-track-wrap{min-height:min(70vh,610px);position:relative}.project-progress{margin-left:0;margin-right:9vw}.project-card{transition:transform .4s ease,filter .4s ease}.project-card:hover{transform:translateY(-10px)!important;filter:saturate(1.2)}.project-card:hover:before{transform:scale(1.25);transition:transform .6s ease}.project-foot a{transition:letter-spacing .25s}.project-foot a:hover{letter-spacing:.05em}.timeline-item{transition:transform .35s ease,padding-left .35s ease}.timeline-item:hover{transform:translateX(12px);padding-left:14px}.timeline-tags span{transition:background .25s,color .25s}.timeline-tags span:hover{background:var(--ink);color:#c6b8a7}.circle-link{transition:gap .3s ease}.circle-link:hover{gap:19px}.circle-link span{transition:transform .3s ease,background .3s,color .3s}.circle-link:hover span{transform:translateY(5px);background:var(--acid);color:var(--ink);border-color:var(--acid)}
@media(max-width:700px){.hero-portrait{width:55vw;height:47vh;right:-2vw;bottom:15vh;opacity:.78}.hero-portrait span{display:none}.hero-name{font-size:17.3vw}.hero-bottom{grid-template-columns:1fr;margin-top:17vw}.hero-index{display:none}.skills-section{padding:16vw 5vw}.skills-heading{grid-template-columns:1fr;gap:1.5rem}.skills-heading h2{margin-top:12vw;font-size:4rem}.skills-grid{grid-template-columns:1fr 1fr;gap:9px;margin-top:14vw}.skill-tile,.skill-tile:nth-child(n){grid-column:span 2;min-height:270px;padding:18px}.skill-tile:nth-child(2),.skill-tile:nth-child(5){grid-column:span 1}.skill-tile h3{font-size:2rem}.skill-tags{margin-top:1.5rem}.project-stage{padding-top:15vw}.project-track-wrap{min-height:unset}.project-progress{margin-right:5vw}.project-card:hover{transform:none!important}.timeline-item:hover{transform:none;padding-left:0}}

/* artwork treatment + a deliberate, contrast-safe skills palette */
.hero-portrait img{filter:grayscale(1) contrast(1.28) brightness(.9);mix-blend-mode:screen}.skill-tile{--tile-fg:#141617;--tag-bg:transparent;--tag-fg:#141617;color:var(--tile-fg);border:1px solid rgba(20,22,23,.12)}.skill-tags span{border-color:color-mix(in srgb,var(--tile-fg) 55%,transparent);background:var(--tag-bg);color:var(--tag-fg)}.skill-tile:hover .skill-tags span{background:var(--tag-bg);color:var(--tag-fg);border-color:var(--tag-bg)}.skill-tile-dark{--tile-fg:#f2f1eb;--tag-bg:#d6ff2f;--tag-fg:#11110f;background:#121816}.skill-tile-lime{--tag-bg:#17281d;--tag-fg:#e8ffd1;background:#b8df43}.skill-tile-paper{--tag-bg:#7c4d38;--tag-fg:#fff8ed;background:#f7f0e3}.skill-tile-blue{--tag-bg:#171938;--tag-fg:#dce6ff;background:#8293dc}.skill-tile-orange{--tag-bg:#241412;--tag-fg:#ffe2d7;background:#d96042}.skill-tile-plain{--tag-bg:#263a36;--tag-fg:#e7eee0;background:#a9b8a8}.skill-tile:hover{box-shadow:10px 13px 0 #17281d}.skill-tile:hover .skill-tags span{transform:translateY(-2px)}.skill-tags span{transition:background .25s,color .25s,transform .25s,border-color .25s}
@media(max-width:700px){.hero-portrait img{mix-blend-mode:normal}}

/* horizontal gallery pins as a full-screen stage with the track centered mid-viewport */
@media(min-width:701px){.project-track-wrap{height:100svh;display:flex;flex-direction:column;justify-content:center;position:relative}.project-progress{position:absolute;left:9vw;right:9vw;bottom:5vh;margin:0}}

/* extra project-card palettes for the expanded gallery */
.project-card-gold{background:#dfa520}
.project-card-steel{color:var(--paper);background:#26282b}
