:root{--bg: #080808;--bg-card: #0f0f0f;--bg-card-hover: #131313;--border: #1c1c1c;--border-hover: #2e2e2e;--text-1: #f0f0f0;--text-2: #999999;--text-3: #555555;--accent: #a5b4fc;--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SF Mono", "Fira Code", ui-monospace, "Cascadia Code", monospace;--container: 1100px;--radius: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background-color:var(--bg);color:var(--text-1);font-family:var(--font-sans);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh}a{color:inherit;text-decoration:none}ul{list-style:none}img{display:block;max-width:100%}.container{max-width:var(--container);margin-inline:auto;padding-inline:clamp(1rem,4vw,2.5rem)}.nav{position:sticky;top:0;z-index:100;background:#080808d1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .2s ease}.nav--scrolled{border-bottom-color:var(--border)}.nav__inner{display:flex;align-items:center;justify-content:space-between;height:56px}.nav__name{font-size:.875rem;font-weight:500;letter-spacing:-.015em;color:var(--text-1)}.nav__links{display:flex;align-items:center;gap:1.75rem}.nav__links a{font-size:.875rem;color:var(--text-3);transition:color .15s ease}.nav__links a:hover{color:var(--text-1)}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,34%);gap:clamp(1.5rem,4vw,3rem);align-items:stretch;padding-top:clamp(3rem,8vw,6rem);padding-bottom:clamp(3rem,8vw,6rem);border-bottom:1px solid var(--border)}.hero__content{display:flex;flex-direction:column;gap:1.375rem}.hero__roles{display:flex;flex-wrap:wrap;gap:.375rem;align-items:center;font-family:var(--font-mono);font-size:.75rem;color:var(--text-3);letter-spacing:.01em}.dot{color:var(--border-hover)}.hero__name{font-size:clamp(2.75rem,6.5vw,4.75rem);font-weight:600;letter-spacing:-.045em;line-height:1.03;color:var(--text-1)}.hero__bio{font-size:.9375rem;color:var(--text-2);line-height:1.75;max-width:540px}.hero__meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-family:var(--font-mono);font-size:.75rem;color:var(--text-3)}.hero__meta a{color:var(--text-3);transition:color .15s ease}.hero__meta a:hover{color:var(--text-2)}.hero__stack{display:flex;align-items:baseline;gap:.75rem;font-size:.8125rem;color:var(--text-2);line-height:1.6;padding:.875rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);max-width:560px}.stack__label{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;flex-shrink:0}.hero__portrait{margin:0;position:relative;height:100%;min-height:260px;border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);overflow:hidden;background:var(--bg-card);box-shadow:inset 0 0 0 1px #ffffff08}.hero__portrait img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block}.section{padding-top:clamp(3rem,6vw,4.5rem);padding-bottom:clamp(3rem,6vw,4.5rem);border-bottom:1px solid var(--border)}.section__title{font-family:var(--font-sans);font-size:1.25rem;font-weight:600;letter-spacing:-.03em;text-transform:none;color:var(--text-1);margin-bottom:2rem}.projects__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.project-card{display:flex;flex-direction:column;justify-content:space-between;gap:1.25rem;padding:1.625rem 1.5rem;background:var(--bg-card);transition:background .15s ease}a.project-card{cursor:pointer}a.project-card:hover{background:var(--bg-card-hover)}.project-card__top{display:flex;flex-direction:column;gap:.5rem}.project-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.project-card__title{font-size:1rem;font-weight:600;letter-spacing:-.025em;color:var(--text-1);line-height:1.3}.project-card__arrow{font-size:.875rem;color:var(--text-3);flex-shrink:0;margin-top:.1em;transition:color .15s ease,transform .15s ease}a.project-card:hover .project-card__arrow{color:var(--text-1);transform:translate(2px,-2px)}.project-card__subtitle{font-family:var(--font-mono);font-size:.75rem;color:var(--accent);letter-spacing:.01em}.project-card__desc{font-size:.875rem;color:var(--text-2);line-height:1.7;margin-top:.375rem}.project-card__footer{display:flex;flex-direction:column;gap:.375rem;padding-top:1rem;border-top:1px solid var(--border)}.project-card__badge,.project-card__tech{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-3);letter-spacing:.01em}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:4rem}.timeline{display:flex;flex-direction:column}.timeline__item{padding:1.125rem 0;border-bottom:1px solid var(--border)}.timeline__item:first-child{border-top:1px solid var(--border)}.timeline__role{font-size:.9375rem;font-weight:500;letter-spacing:-.015em;color:var(--text-1);margin-bottom:.2rem}.timeline__place{font-size:.875rem;color:var(--text-2)}.timeline__date{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-3);margin-top:.375rem;letter-spacing:.01em}.footer{padding-top:2.25rem;padding-bottom:2.25rem}.footer__inner{display:flex;align-items:center;justify-content:space-between}.footer__copy{font-family:var(--font-mono);font-size:.75rem;color:var(--text-3)}.footer__links{display:flex;gap:1.75rem}.footer__links a{font-size:.8125rem;color:var(--text-3);transition:color .15s ease}.footer__links a:hover{color:var(--text-1)}.pworks{display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.prow{display:grid;gap:1px;background:var(--border)}.prow--featured,.prow--standard{grid-template-columns:repeat(3,1fr)}.pcard{display:flex;flex-direction:column;background:var(--bg-card);transition:background .15s ease}a.pcard{text-decoration:none;color:inherit}a.pcard:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pcard--link{cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;user-drag:none}.pcard--link img{-webkit-user-drag:none;user-drag:none;pointer-events:none}.pcard--link:hover{background:#181818;box-shadow:inset 0 0 0 1px #ffffff17}.pcard__media{display:flex;align-items:center;justify-content:center;background:#090909;border-bottom:1px solid var(--border);flex-shrink:0}.pcard--featured .pcard__media,.pcard--standard .pcard__media{height:200px}.pcard__img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}.pcard__placeholder{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-3);text-align:center;padding:0 1.25rem;letter-spacing:.03em;line-height:1.6}.pcard__media--has-video{position:relative;overflow:hidden}.pcard__thumb,.pcard__video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center center;display:block;transition:opacity .45s ease}.pcard__thumb{opacity:1}.pcard__video{opacity:0;cursor:pointer}.pcard__media--has-video.is-playing .pcard__thumb{opacity:0}.pcard__media--has-video.is-playing .pcard__video{opacity:1}.pcard__play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:2;pointer-events:none}.pcard__play svg{width:52px;height:52px;pointer-events:all;cursor:pointer;animation:playPulse 2s ease-in-out infinite;filter:drop-shadow(0 2px 10px rgba(0,0,0,.55));transition:transform .15s ease}.pcard__play svg:hover{transform:scale(1.12);animation-play-state:paused}@keyframes playPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.09);opacity:.82}}.pcard__body{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem 1.375rem 1.375rem;flex:1}.pcard__meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.pcard__category{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-3);letter-spacing:.04em}.pcard__status{display:flex;align-items:center;gap:.375rem;font-family:var(--font-mono);font-size:.6875rem;color:#4ade80;letter-spacing:.03em;flex-shrink:0}.pcard__dot{width:6px;height:6px;border-radius:50%;background:#4ade80;animation:livePulse 2.2s ease-in-out infinite}@keyframes livePulse{0%,to{opacity:1;box-shadow:0 0 #4ade8080}50%{opacity:.7;box-shadow:0 0 0 4px #4ade8000}}.pcard__status--demo{color:#f0a742}.pcard__dot--demo{background:#f0a742;animation:demoPulse 2.2s ease-in-out infinite}@keyframes demoPulse{0%,to{opacity:1;box-shadow:0 0 #f0a74280}50%{opacity:.7;box-shadow:0 0 0 4px #f0a74200}}.pcard__title{font-size:.9375rem;font-weight:600;letter-spacing:-.025em;color:var(--text-1);line-height:1.3}.pcard--featured .pcard__title{font-size:1.0625rem}.pcard__desc{font-size:.8125rem;color:var(--text-2);line-height:1.72;flex:1}.pcard__stats{display:flex;flex-wrap:wrap;gap:.375rem}.pcard__stat{font-family:var(--font-mono);font-size:.625rem;padding:.2rem .5rem;border-radius:4px;border:1px solid;letter-spacing:.02em;white-space:nowrap}.pcard__tech{display:flex;flex-wrap:wrap;gap:.3rem}.pcard__badge{font-family:var(--font-mono);font-size:.5625rem;padding:.175rem .4375rem;border-radius:12px;letter-spacing:.02em;white-space:nowrap}.pcard__footer{padding-top:.75rem;border-top:1px solid var(--border);margin-top:auto}.pcard__link{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-3);letter-spacing:.02em;transition:color .15s ease;display:inline-block}.pcard--link:hover .pcard__link{color:var(--text-1)}@media (max-width: 900px){.projects__grid,.prow--featured,.prow--standard{grid-template-columns:1fr}.hero{grid-template-columns:1fr;gap:2rem;align-items:start}.hero__portrait{order:-1;height:auto;width:100%;aspect-ratio:2.1 / 1;min-height:0;max-height:min(42vw,260px)}}@media (max-width: 680px){.hero__portrait{aspect-ratio:1.85 / 1;max-height:min(48vw,220px)}.two-col{grid-template-columns:1fr;gap:3rem}.footer__inner{flex-direction:column;gap:1rem;text-align:center}.footer__links{flex-direction:column;align-items:center;gap:.75rem}.nav__links{gap:1.25rem}.pcard--featured .pcard__media,.pcard--standard .pcard__media{height:160px}}
