:root{--color-bg:#0d0d0d;--color-fg:#fff;--color-fg-muted:#b3b3b3;--color-card-bg:#fff;--color-card-fg:#0d0d0d;--color-accent:#0d0d0d;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--max-width:1200px;--text-display:clamp(2rem, 5vw, 3.25rem);--text-h1:clamp(1.5rem, 2.5vw, 2rem);--text-h2:1.5rem;--text-h3:1.05rem;--text-lead:1.15rem;--text-subheadline:1.05rem;--text-body:.95rem;--text-body-sm:.9rem;--text-caption:.85rem;--text-eyebrow:.75rem;--text-tiny:.65rem;--weight-regular:400;--weight-semibold:600;--weight-bold:700;--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.5;--leading-relaxed:1.6;--tracking-tight:-.01em;--tracking-wide:.06em}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-fg);-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}#root{width:100%}.home{max-width:var(--max-width);flex-direction:column;gap:3.5rem;margin:0 auto;padding:2rem 1.5rem;display:flex}@media (width>=900px){.home{gap:5rem;padding:3rem}}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.topbar__profile{align-items:center;gap:.75rem;display:flex}.topbar__avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:40px;height:40px}.topbar__name{font-weight:var(--weight-semibold);font-size:var(--text-body)}.topbar__links{gap:1.5rem;display:flex}.topbar__links a{font-size:var(--text-body-sm);font-weight:var(--weight-semibold);color:var(--color-fg-muted);align-items:center;gap:.3rem;display:inline-flex}.topbar__links a:hover{color:var(--color-fg)}.hero{max-width:960px}.hero__headline{font-size:var(--text-display);line-height:var(--leading-tight);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);text-wrap:balance;margin:0 0 1.5rem}.hero__headline-muted{color:var(--color-fg-muted)}.hero__subhead{font-size:var(--text-subheadline);font-weight:var(--weight-regular);color:var(--color-fg-muted);line-height:var(--leading-normal);max-width:820px;margin:0 0 2rem}.hero__cta{font-size:var(--text-body-sm);font-weight:var(--weight-semibold);border:1px solid #3a3a3a;border-radius:999px;padding:.9rem 1.75rem;transition:background .15s,border-color .15s;display:inline-block}.hero__cta:hover{background:#1a1a1a;border-color:#565656}.card{background:var(--color-card-bg);color:var(--color-card-fg);border-radius:1.25rem;width:100%;max-width:628px;padding:2rem;display:block}.card__label{font-size:var(--text-eyebrow);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:#8a8a8a;margin-bottom:1.25rem;display:inline-block}.card__header{align-items:center;gap:1.25rem;margin-bottom:1.5rem;display:flex}.card__avatar{object-fit:contain;flex-shrink:0;width:88px;height:88px}.card h2{font-size:var(--text-h2);font-weight:var(--weight-bold);line-height:var(--leading-snug);margin:0}.card p{line-height:var(--leading-relaxed);color:#333;font-size:var(--text-body);margin:0 0 1rem}.card__explore-more{font-weight:var(--weight-semibold);font-size:var(--text-body-sm);align-items:center;gap:.35rem;margin-top:.5rem;display:inline-flex}.selected-projects__label{font-size:var(--text-eyebrow);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-fg-muted);margin:0 0 1.5rem}.selected-projects__grid{grid-template-columns:1fr;gap:2rem 1.5rem;display:grid}@media (width>=640px){.selected-projects__grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1080px){.selected-projects__grid{grid-template-columns:repeat(3,1fr)}}.project-card{color:inherit;display:block}.project-card__media{border-radius:1rem;margin-bottom:1rem;overflow:hidden}.project-card__image{aspect-ratio:4/3;object-fit:cover;width:100%}.project-card:is(a):hover .project-card__media{opacity:.9}.project-card--static .project-card__media{opacity:.85}.project-card--static{cursor:default}.project-card__meta{align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.project-card__title{font-size:var(--text-h3);font-weight:var(--weight-bold);margin:0}.project-card:is(a):hover .project-card__title{color:var(--color-fg-muted)}.project-card__badge{font-size:var(--text-tiny);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase;color:#0d0d0d;white-space:nowrap;background:#e2574c;border-radius:999px;padding:.2rem .55rem}.project-card__description{font-size:var(--text-body-sm);color:var(--color-fg-muted);line-height:var(--leading-normal);margin:0}.selected-projects__toggle{color:var(--color-fg);font:inherit;font-weight:var(--weight-semibold);font-size:var(--text-body-sm);cursor:pointer;background:0 0;border:1px solid #3a3a3a;border-radius:999px;align-items:center;gap:.4rem;margin-top:2rem;padding:.9rem 1.75rem;transition:background .15s,border-color .15s;display:inline-flex}.selected-projects__toggle:hover{background:#1a1a1a;border-color:#565656}.about-preview{grid-template-columns:1fr;align-items:center;gap:2rem;display:grid}@media (width>=700px){.about-preview{grid-template-columns:1fr 1fr;gap:2.5rem}}.about-preview__media{border-radius:1.25rem;overflow:hidden}.about-preview__photo{aspect-ratio:4/5;object-fit:cover;width:100%;display:block}.about-preview__content{max-width:520px}.about-preview__label{font-size:var(--text-eyebrow);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-fg-muted);margin:0 0 1.25rem}.about-preview__text{font-size:var(--text-lead);color:var(--color-fg);line-height:var(--leading-relaxed);margin:0 0 1.5rem}.about-preview__link{font-size:var(--text-body-sm);font-weight:var(--weight-semibold);border:1px solid #3a3a3a;border-radius:999px;align-items:center;gap:.4rem;padding:.9rem 1.75rem;transition:background .15s,border-color .15s;display:inline-flex}.about-preview__link:hover{background:#1a1a1a;border-color:#565656}.card:is(a):hover{box-shadow:0 12px 24px #0000001f}.about-page{max-width:var(--max-width);flex-direction:column;gap:2rem;margin:0 auto;padding:2rem 1.5rem;display:flex}@media (width>=900px){.about-page{padding:3rem}}.about-page__row{flex-direction:column;gap:2rem;display:flex}@media (width>=900px){.about-page__row{flex-direction:row;align-items:flex-start;gap:3rem}}.about-page__content{flex-direction:column;gap:3.5rem;width:100%;display:flex}@media (width>=900px){.about-page__content{gap:5rem;width:55%}}.about-page__media{border-radius:1.25rem;width:100%;overflow:hidden}@media (width>=900px){.about-page__media{width:45%;height:calc(100vh - 9rem);position:sticky;top:3rem}}.about-page__media img{aspect-ratio:4/5;object-fit:cover;width:100%;height:100%;display:block}.about-page__back{color:var(--color-fg-muted);font-size:var(--text-body-sm);align-self:flex-start;align-items:center;gap:.4rem;display:inline-flex}.about-page__back:hover{color:var(--color-fg)}.about-page__headline{font-size:var(--text-h1);line-height:var(--leading-snug);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);text-wrap:balance;margin:0}.about-page__label{font-size:var(--text-eyebrow);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-fg-muted);margin:0 0 1.25rem}.about-page__intro p{font-size:var(--text-body);color:var(--color-fg-muted);line-height:var(--leading-relaxed);margin:0 0 1.25rem}.about-page__intro p:first-of-type{font-size:var(--text-lead);color:var(--color-fg)}.about-page__intro p:last-child{margin-bottom:0}.about-page__section{max-width:720px}.about-page__entry{border-bottom:1px solid #262626;margin-bottom:1rem;padding-bottom:1rem}.about-page__entry:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.about-page__entry-title{font-size:var(--text-body);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--color-fg);margin:0 0 8px}.about-page__entry-title a{text-underline-offset:2px;text-decoration:underline}.about-page__entry-description,.about-page__entry-list{font-size:var(--text-caption);line-height:var(--leading-normal);color:var(--color-fg-muted);margin:-4px 0 8px}.about-page__entry-list{padding-left:1.1rem}.about-page__entry-list li{margin-bottom:4px}.about-page__entry-list li:last-child{margin-bottom:0}.about-page__entry-dates{font-size:var(--text-caption);line-height:var(--leading-snug);color:var(--color-fg-muted);margin:0}.about-page__location{font-size:var(--text-body);color:var(--color-fg);margin:0 0 1.5rem}.about-page__email{font-size:var(--text-body);font-weight:var(--weight-semibold);margin-bottom:1.5rem;display:inline-block}.about-page__contact-row{flex-wrap:wrap;gap:1.5rem;display:flex}.about-page__contact-row a{font-size:var(--text-body-sm);font-weight:var(--weight-semibold);border:1px solid #3a3a3a;border-radius:999px;align-items:center;gap:.4rem;padding:.9rem 1.75rem;transition:background .15s,border-color .15s;display:inline-flex}.about-page__contact-row a:hover{background:#1a1a1a;border-color:#565656}.project-page{background:var(--color-bg);color:var(--color-fg);min-height:100vh}.project-page__inner{flex-direction:column;gap:1.5rem;max-width:628px;margin:0 auto;padding:3rem 1.75rem 2rem;display:flex}.project-page__back{color:var(--color-fg-muted);font-size:var(--text-body-sm);align-self:flex-start;align-items:center;gap:.4rem;display:inline-flex}.project-page__back:hover{color:var(--color-fg)}.project-page__hero h1{font-size:var(--text-h1);line-height:var(--leading-snug);font-weight:var(--weight-bold);text-wrap:balance;margin:0 0 1.25rem}.project-page__tags{flex-wrap:wrap;gap:.5rem 1rem;margin:0 0 1.5rem;padding:0;list-style:none;display:flex}.project-page__tags li{color:#e2574c;font-size:var(--text-caption);font-weight:var(--weight-semibold)}.image-placeholder{text-align:center;background:#1c1c1c;border:1px dashed #3a3a3a;border-radius:1.25rem;justify-content:center;align-items:center;width:100%;padding:1rem;display:flex}.image-placeholder span{color:#6b6b6b;font-size:var(--text-caption)}.project-page__gallery{grid-template-columns:1fr;gap:1rem;margin-top:1.5rem;display:grid}@media (width>=500px){.project-page__gallery{grid-template-columns:1fr 1fr}}.project-page__table{border-collapse:collapse;width:100%;margin-top:1.25rem}.project-page__table th{text-align:left;font-size:var(--text-caption);font-weight:var(--weight-bold);color:var(--color-card-fg);border-bottom:1px solid #d9d9d9;padding-bottom:.75rem}.project-page__table th:last-child{text-align:right}.project-page__table td{font-size:var(--text-body-sm);color:#333;border-bottom:1px solid #ececec;padding:.85rem 0}.project-page__table td:last-child{text-align:right;color:#8a8a8a;white-space:nowrap}.project-page__table tr:last-child td{border-bottom:none}.project-page__section{padding:0}.project-page__caption{font-size:var(--text-body-sm);color:var(--color-fg-muted);margin:0 0 .5rem}.project-page__link{font-weight:var(--weight-semibold);align-items:center;gap:.35rem;text-decoration:none;display:inline-flex}.project-page__screens{grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1.5rem;display:grid}@media (width>=500px){.project-page__screens{grid-template-columns:repeat(3,1fr)}}.project-page__screen{position:relative}.project-page__screen-number{color:#fff;font-size:var(--text-eyebrow);font-weight:var(--weight-bold);background:#0d0d0d;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:absolute;top:.5rem;left:.5rem}.project-page .card h2{font-size:var(--text-h3);margin:0 0 .75rem}.case-study{flex-direction:column;gap:3rem;max-width:1040px;margin:0 auto;padding:2rem 1.5rem;display:flex}@media (width>=900px){.case-study{gap:4rem;padding:3rem}}.case-study__back{color:var(--color-fg-muted);font-size:var(--text-body-sm);align-self:flex-start;align-items:center;gap:.4rem;display:inline-flex}.case-study__back:hover{color:var(--color-fg)}.case-study__hero{flex-direction:column;gap:1.5rem;display:flex}.case-study__eyebrow{font-size:var(--text-eyebrow);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-fg-muted);margin:0}.case-study__title{font-size:var(--text-h1);line-height:var(--leading-snug);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);text-wrap:balance;margin:0}.case-study__meta{grid-template-columns:repeat(2,1fr);gap:1.5rem 2rem;margin:1rem 0 0;display:grid}@media (width>=640px){.case-study__meta{grid-template-columns:repeat(4,auto)}}.case-study__meta-item dt{font-size:var(--text-eyebrow);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-fg-muted);margin:0 0 .4rem}.case-study__meta-item dd{font-size:var(--text-body-sm);color:var(--color-fg);margin:0}.case-study__media{border:1px solid #2a2a2a;border-radius:1.25rem;overflow:hidden}.case-study__media img{width:100%;display:block}.case-study__video{aspect-ratio:16/9;background:#000;border-radius:1.25rem;width:100%;position:relative;overflow:hidden}.case-study__video iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.case-study__label{font-size:var(--text-eyebrow);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-fg-muted);margin:0 0 1rem}.case-study__section p{font-size:var(--text-lead);color:var(--color-fg);line-height:var(--leading-relaxed);max-width:860px;margin:0}.case-study__list{font-size:var(--text-lead);color:var(--color-fg);line-height:var(--leading-relaxed);max-width:860px;margin:0;padding-left:1.3rem}.case-study__list li{margin-bottom:.4rem}.case-study__list li:last-child{margin-bottom:0}.case-study__closing{font-size:var(--text-lead);font-weight:var(--weight-semibold);color:var(--color-fg);line-height:var(--leading-relaxed);text-align:center;max-width:860px;margin:0 auto;padding:1rem 0}.case-study__more{font-size:var(--text-body-sm);font-weight:var(--weight-semibold);border:1px solid #3a3a3a;border-radius:999px;align-self:center;align-items:center;gap:.4rem;padding:.9rem 1.75rem;transition:background .15s,border-color .15s;display:inline-flex}.case-study__more:hover{background:#1a1a1a;border-color:#565656}.site-footer{text-align:center;margin-top:3rem}@media (width>=900px){.site-footer{margin-top:4rem}}.site-footer p{color:var(--color-fg-muted);font-size:var(--text-caption);margin:0}
