:root{--color-surface: #F4F3EF;--color-ink: #111111;--color-ink-secondary: #666666;--color-accent: #1C2B3A;--color-dark-bg: #0E0E0E;--color-dark-text: #F4F3EF;--color-divider: #E0DED8;--color-hover-row: #EDECE8;--font-display: "Cormorant Garamond", Georgia, serif;--font-mono: "JetBrains Mono", "Courier New", monospace;--font-body: "Inter", system-ui, sans-serif;--max-width: 1100px;--section-pad: 140px;--page-gutter: 40px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--color-surface);color:var(--color-ink);font-family:var(--font-body);font-weight:300;font-size:16px;line-height:1.7;cursor:default;overflow-x:clip}::selection{background:var(--color-accent);color:var(--color-dark-text)}a{text-decoration:none;color:inherit;cursor:pointer}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--page-gutter)}.section-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;color:var(--color-ink-secondary);text-transform:uppercase;display:block;margin-bottom:24px}.section-heading{font-family:var(--font-display);font-weight:300;font-size:clamp(60px,7vw,96px);letter-spacing:-.02em;line-height:1;margin-bottom:80px}.nav{position:sticky;top:0;z-index:1000;height:calc(60px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) var(--page-gutter) 0;display:flex;align-items:center;justify-content:space-between;background:var(--color-surface);border-bottom:1px solid var(--color-divider)}.nav-brand{font-family:var(--font-display);font-weight:600;font-size:20px;letter-spacing:-.01em;color:var(--color-ink)}.nav-links{list-style:none;display:flex;align-items:center;gap:32px}.nav-links a{font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;color:var(--color-ink-secondary);transition:color .2s ease}.nav-links a:hover{color:var(--color-ink)}.hero{min-height:100vh;min-height:100dvh;position:relative;display:flex;align-items:flex-end;padding-bottom:13vh}.hero-content{max-width:var(--max-width);width:100%;margin:0 auto;padding:0 var(--page-gutter)}.hero-name-first{display:block;font-family:var(--font-display);font-weight:300;font-size:clamp(72px,8.5vw,110px);letter-spacing:-.03em;line-height:1;color:var(--color-ink)}.hero-name-last{display:block;font-family:var(--font-display);font-weight:600;font-size:clamp(72px,8.5vw,110px);letter-spacing:-.03em;line-height:1;color:var(--color-ink);margin-left:60px}.hero-tagline{display:flex;gap:2rem;margin-top:40px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--color-ink-secondary)}.hero-tagline a{color:inherit;transition:color .2s ease}.hero-tagline a:hover{color:var(--color-ink);text-decoration:underline;text-underline-offset:3px}.hero-download{font-size:9px;opacity:.7}.hero-icon{width:11px;height:11px;margin-right:5px;vertical-align:-1px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;opacity:.7}.hero-aside{position:absolute;bottom:40px;right:var(--page-gutter);writing-mode:vertical-rl;transform:rotate(-180deg);font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;color:var(--color-ink-secondary)}.about{background:var(--color-dark-bg);color:var(--color-dark-text);padding:var(--section-pad) 0;scroll-margin-top:calc(150px + env(safe-area-inset-top,0px))}.about .container{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.about .section-label{color:#444}.about-statement{font-family:var(--font-display);font-weight:300;font-size:clamp(52px,5.5vw,80px);letter-spacing:-.02em;line-height:1.05;color:var(--color-dark-text);margin-top:32px;margin-bottom:32px}.about-meta{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:#3a3a3a}.about-right{position:relative;display:flex;flex-direction:column;gap:0;justify-content:space-evenly;height:100%}.about-section-num{position:absolute;top:-20px;right:0;font-family:var(--font-display);font-weight:300;font-size:160px;line-height:1;letter-spacing:-.04em;color:#1a1a1a;-webkit-user-select:none;user-select:none;pointer-events:none}.about-props{position:relative;z-index:1;display:flex;flex-direction:column;gap:0;flex:1;justify-content:center}.about-prop{display:grid;grid-template-columns:120px 1fr;gap:24px;padding:16px 0;border-bottom:1px solid #1E1E1E;align-items:baseline}.about-prop-0{border-top:1px solid #1E1E1E}.about-prop-key{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:#333;padding-top:2px}.about-prop-val{font-family:var(--font-body);font-weight:300;font-size:15px;color:#f4f3efc7;line-height:1.5}.about-prop-val.dim{color:#f4f3ef61;font-size:13px;letter-spacing:.02em}.about-note{position:relative;z-index:1;font-family:var(--font-body);font-weight:300;font-size:14px;color:#f4f3ef4d;padding-top:18px;display:flex;align-items:end}.tech{background:var(--color-surface);padding:var(--section-pad) 0;scroll-margin-top:calc(60px + env(safe-area-inset-top,0px))}.tech-groups{display:flex;align-items:stretch}.tech-group{flex:1;padding:0 40px;border-left:1px solid var(--color-divider)}.tech-group:first-child{border-left:none;padding-left:0}.tech-group-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--color-ink-secondary);margin-bottom:20px}.tech-group ul{list-style:none}.tech-group ul li{font-family:var(--font-body);font-weight:300;font-size:16px;line-height:1.9;color:var(--color-ink-secondary)}.tech-group.priority .tech-group-label,.tech-group.priority ul li{color:var(--color-accent)}.experience{background:var(--color-surface);padding:var(--section-pad) 0;border-top:1px solid var(--color-divider);scroll-margin-top:calc(-10px + env(safe-area-inset-top,0px))}.experience-list{border-top:1px solid var(--color-divider)}.experience-entry{display:grid;grid-template-columns:32% 68%;gap:48px;padding:44px 0;border-bottom:1px solid var(--color-divider);transition:background .2s ease,margin .2s ease,padding .2s ease}.experience-entry:hover{background:var(--color-hover-row);margin:0 calc(-1 * var(--page-gutter));padding-left:var(--page-gutter);padding-right:var(--page-gutter)}.exp-company{font-family:var(--font-display);font-weight:600;font-size:20px;letter-spacing:-.01em;color:var(--color-ink);line-height:1.2;margin-bottom:8px}.exp-period{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--color-ink-secondary)}.exp-role{font-family:var(--font-body);font-weight:400;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-secondary);margin-bottom:12px}.exp-desc{font-family:var(--font-body);font-weight:300;font-size:16px;color:var(--color-ink);line-height:1.7}.projects{background:var(--color-surface);padding:var(--section-pad) 0;border-top:1px solid var(--color-divider);scroll-margin-top:calc(-10px + env(safe-area-inset-top,0px))}.section-heading-mobile{display:none}.projectsWrapper{display:grid;grid-template-columns:1fr 1fr;gap:3rem}.proj-row{display:flex;align-items:baseline;gap:18px;width:100%;padding:22px 0;background:none;border:none;border-bottom:1px solid var(--color-divider);text-align:left;cursor:pointer;font-family:inherit}.proj-num{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:#bbbab6;opacity:.3;transition:opacity .28s ease}.proj-name{font-family:var(--font-display);font-weight:500;font-size:clamp(30px,3.4vw,40px);letter-spacing:-.01em;line-height:1;color:var(--color-ink);opacity:.3;transition:opacity .28s ease}.proj-row.selected .proj-num,.proj-row.selected .proj-name,.proj-row:hover .proj-num,.proj-row:hover .proj-name{opacity:1}.proj-detail-wrap{position:sticky;top:96px}.proj-detail{animation:proj-fade .4s ease}.proj-accordion{display:none;border-top:1px solid var(--color-divider)}.proj-acc-item{border-bottom:1px solid var(--color-divider)}.proj-acc-head{display:flex;align-items:baseline;gap:16px;width:100%;padding:24px 0;background:none;border:none;text-align:left;cursor:pointer;font-family:inherit}.proj-acc-head .proj-num,.proj-acc-head .proj-name{opacity:1}.proj-acc-sign{margin-left:auto;align-self:center;font-family:var(--font-display);font-weight:300;font-size:26px;line-height:1;color:#888}.proj-accordion .proj-detail{padding:4px 0 40px}@keyframes proj-fade{0%{opacity:0}to{opacity:1}}.proj-shot{background:#eae8e2;background-image:repeating-linear-gradient(135deg,transparent,transparent 11px,rgba(0,0,0,.02) 11px,rgba(0,0,0,.02) 12px);border:1px solid var(--color-divider);overflow:hidden}.proj-shot-hero{aspect-ratio:16 / 9;width:100%;display:flex;align-items:flex-end;padding:16px;margin-bottom:12px}.proj-shot-hero:has(.proj-shot-img){padding:0}.proj-shot-hero .proj-shot-img{animation:proj-fade .25s ease}.proj-shot-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:#9a988f}.proj-thumbs{display:flex;gap:10px;margin-bottom:28px}.proj-shot-thumb{flex:1;aspect-ratio:16 / 10}.proj-shot-button{--px: 0;--py: 0;display:block;padding:0;cursor:pointer;opacity:.55;transform:perspective(600px) rotateY(calc(var(--px) * 5deg)) rotateX(calc(var(--py) * -5deg));transition:transform .5s ease,opacity .3s ease}.proj-shot-button:hover{opacity:1;transition:transform .1s linear,opacity .3s ease}.proj-shot-button.current{opacity:1}.proj-shot-button:focus-visible{outline:1px solid var(--color-accent);outline-offset:2px}.proj-shot-img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}@media(prefers-reduced-motion:reduce){.proj-shot-button{transform:none}}.proj-tagline{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);margin-bottom:14px}.proj-desc{font-family:var(--font-body);font-weight:300;font-size:16px;line-height:1.7;color:#333;max-width:54ch;margin-bottom:22px}.proj-stack{font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;color:var(--color-ink-secondary);margin-bottom:26px}.proj-links{display:flex;gap:18px;flex-wrap:wrap}.proj-link{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--color-ink);transition:opacity .2s ease}.proj-link:hover{opacity:.55}.footer{background:var(--color-dark-bg);padding:80px var(--page-gutter);text-align:center}.footer-name{font-family:var(--font-display);font-weight:300;font-size:32px;letter-spacing:-.01em;color:var(--color-dark-text);margin-bottom:16px}.footer-meta{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:#444}.footer-link{color:inherit;transition:color .2s ease}.footer-link:hover{color:var(--color-dark-text);text-decoration:underline;text-underline-offset:3px}@media(max-width:900px){:root{--section-pad: 100px;--page-gutter: 32px}.hero{margin-top:2rem}.about .container{grid-template-columns:1fr;gap:36px}.tech-groups{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;row-gap:40px;align-items:start}.tech-group{padding:0;border-left:none}.tech-group:last-child:nth-child(odd){grid-column:1 / -1}.tech-group:last-child:nth-child(odd) ul{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}.experience-entry{grid-template-columns:1fr;gap:12px}.proj-split,.projectsWrapper{display:none}.section-heading-mobile{display:inline-flex}.proj-accordion{display:block}}@media(max-width:640px){:root{--section-pad: 80px;--page-gutter: 24px}.nav-links{flex-wrap:nowrap;gap:14px}.nav-links a{font-size:10px;letter-spacing:.02em}.hero-tagline{display:flex;flex-direction:column;gap:0}.hero-name-first,.hero-name-last{font-size:clamp(48px,13vw,72px)}.hero-name-last{margin-left:28px}.hero-aside{display:none}.section-heading{font-size:clamp(48px,12vw,72px);margin-bottom:52px}.about .container{grid-template-columns:1fr;gap:48px}.about-section-num{display:none}.about-statement{font-size:clamp(44px,11vw,64px)}.about-prop{grid-template-columns:110px 1fr;gap:16px}}
