.cv-project-detail{z-index:85;padding:max(12px, env(safe-area-inset-top)) 14px max(12px, env(safe-area-inset-bottom));place-items:center;animation:.28s cv-project-detail-fade;display:grid;position:fixed;inset:0}@keyframes cv-project-detail-fade{0%{opacity:0}to{opacity:1}}.cv-project-detail-backdrop{cursor:zoom-out;-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1);background:radial-gradient(80% 60% at 50% 20%,#1c19178c,#0c0a09e0);border:0;margin:0;padding:0;position:absolute;inset:0}.cv-project-detail-panel{z-index:1;border:1px solid color-mix(in srgb, var(--foreground,#111) 12%, transparent);background:linear-gradient(160deg, color-mix(in srgb, var(--background,#fff) 92%, var(--brand,#0f766e)) 0%, var(--background,#fff) 42%, color-mix(in srgb, var(--background,#fff) 94%, var(--foreground,#111)) 100%);width:min(920px,100%);max-height:min(92vh,980px);color:var(--foreground,#111);overscroll-behavior:contain;border-radius:22px;animation:.34s cubic-bezier(.22,1,.36,1) cv-project-detail-rise;display:grid;position:relative;overflow:auto;box-shadow:0 30px 80px -28px #000000a6,inset 0 0 0 1px #ffffff1a}@keyframes cv-project-detail-rise{0%{opacity:0;transform:translateY(18px)scale(.985)}to{opacity:1;transform:none}}.cv-project-detail-close{z-index:2;border:1px solid color-mix(in srgb, var(--foreground,#111) 14%, transparent);background:color-mix(in srgb, var(--background,#fff) 82%, transparent);width:40px;height:40px;color:var(--foreground,#111);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;justify-content:center;align-items:center;transition:background .2s,border-color .2s,transform .2s;display:inline-flex;position:absolute;top:14px;right:14px}.cv-project-detail-close:hover,.cv-project-detail-close:focus-visible{background:var(--background,#fff);border-color:color-mix(in srgb, var(--foreground,#111) 28%, transparent);outline:none;transform:scale(1.04)}.cv-project-detail-close svg{width:18px;height:18px}.cv-project-detail-hero{margin:0;position:relative}.cv-project-detail-hero .cv-project-media{aspect-ratio:auto;background:color-mix(in srgb, var(--foreground,#111) 88%, transparent);border-radius:0;height:min(58vh,520px);min-height:min(42vw,220px);max-height:min(58vh,520px)}.cv-project-detail-hero .cv-project-media-fill{box-sizing:border-box;object-fit:contain;object-position:center;width:100%;height:100%;padding:0}.cv-project-detail-hero-hint{z-index:1;color:#faf7f2;letter-spacing:.06em;text-transform:uppercase;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c0a099e;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:11px;display:inline-flex;position:absolute;bottom:14px;left:16px}.cv-project-detail-body{gap:22px;padding:28px 28px 32px;display:grid}.cv-project-detail-meta{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.cv-project-detail-year,.cv-project-detail-badge{border:1px solid color-mix(in srgb, var(--foreground,#111) 12%, transparent);background:color-mix(in srgb, var(--foreground,#111) 4%, transparent);letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--foreground,#111) 72%, transparent);border-radius:999px;align-items:center;padding:5px 10px;font-size:11px;display:inline-flex}.cv-project-detail-title{letter-spacing:-.03em;margin:0;font-size:clamp(1.75rem,3.4vw,2.55rem);font-weight:650;line-height:1.12}.cv-project-detail-description{max-width:62ch;color:color-mix(in srgb, var(--foreground,#111) 78%, transparent);white-space:pre-wrap;margin:0;font-size:1.05rem;line-height:1.75}.cv-project-detail-tags{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.cv-project-detail-tags li{border:1px solid color-mix(in srgb, var(--foreground,#111) 12%, transparent);letter-spacing:.02em;color:color-mix(in srgb, var(--foreground,#111) 70%, transparent);border-radius:8px;padding:6px 11px;font-size:12px}.cv-project-detail-actions{flex-wrap:wrap;gap:10px;padding-top:4px;display:flex}.cv-project-detail-link{background:var(--foreground,#111);min-height:44px;color:var(--background,#fff);letter-spacing:.02em;border-radius:999px;align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:560;text-decoration:none;transition:transform .2s,background .2s;display:inline-flex}.cv-project-detail-link:hover,.cv-project-detail-link:focus-visible{background:color-mix(in srgb, var(--foreground,#111) 88%, var(--brand,#0f766e));outline:none;transform:translateY(-1px)}.cv-project-detail-link svg{width:15px;height:15px}.cv-project-detail-empty-media{aspect-ratio:16/9;color:#faf7f28c;letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(145deg,#2a2622,#1c1917 55%,#173a35);place-items:center;font-size:12px;display:grid}.cv-project-card-button{width:100%;height:100%;color:inherit;text-align:left;cursor:pointer;font:inherit;line-height:inherit;letter-spacing:inherit;background:0 0;border:0;flex-direction:column;margin:0;padding:0;display:flex}.cv-project-card-button:focus-visible{outline:2px solid var(--brand,#0f766e);outline-offset:3px}.cv-project-card-title{overflow-wrap:anywhere;word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.cv-project-card-blurb{overflow-wrap:anywhere;word-break:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:.4rem 0 0;display:-webkit-box;overflow:hidden}.cv-project-card-footer{flex-direction:column;gap:.65rem;margin-top:auto;padding-top:.55rem;display:flex}.cv-project-card-link{align-items:center;gap:.35rem;margin-top:0;padding-top:0;font-size:.8125rem;font-weight:560;line-height:1.2;display:inline-flex}@media (max-width:640px){.cv-project-detail-body{gap:18px;padding:22px 18px 26px}.cv-project-detail-hero .cv-project-media{height:min(48vh,360px);min-height:180px;max-height:min(48vh,360px)}.cv-project-detail-hero .cv-project-media-fill{padding:8px}.cv-project-detail-hero-hint{font-size:10px;bottom:12px;left:12px}.cv-project-detail-panel{border-radius:16px}}
.cv-project-media{aspect-ratio:16/10;background:color-mix(in srgb, var(--muted,#e8e4dc) 80%, transparent);place-items:center;width:100%;max-height:min(52vw,360px);display:grid;position:relative;overflow:hidden}.cv-project-media-img,.cv-project-media-fill{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.cv-project-media-fill{position:absolute;inset:0}.cv-project-media-trigger{cursor:pointer;text-align:left;width:100%;height:100%;color:inherit;background:0 0;border:0;margin:0;padding:0;display:block}.cv-project-media-trigger:focus-visible{outline:2px solid var(--brand,#0f766e);outline-offset:2px}.cv-project-media-frame{width:100%;height:100%;display:block;position:relative;overflow:hidden}.cv-project-media-placeholder{background:linear-gradient(145deg, color-mix(in srgb, var(--foreground,#1a1a1a) 10%, var(--background,#f4f4f5)), color-mix(in srgb, var(--brand,#0f766e) 12%, var(--background,#f4f4f5)));place-items:center;display:grid;position:absolute;inset:0}.cv-project-media.is-empty{border:1px dashed color-mix(in srgb, var(--foreground,#111) 14%, transparent)}.cv-project-media-placeholder-mark{border:1px solid color-mix(in srgb, var(--foreground,#111) 14%, transparent);background:color-mix(in srgb, var(--background,#fff) 70%, transparent);width:3rem;height:3rem;color:color-mix(in srgb, var(--foreground,#111) 55%, transparent);letter-spacing:.04em;border-radius:999px;place-items:center;font-size:1.15rem;font-weight:650;display:grid}.cv-project-media-play{background:#00000047;place-items:center;transition:background .2s;display:grid;position:absolute;inset:0}.cv-project-media-trigger:hover .cv-project-media-play,.cv-project-media-trigger:focus-visible .cv-project-media-play{background:#0000006b}.cv-project-media-play-icon{color:#111;background:#ffffffeb;border-radius:999px;justify-content:center;align-items:center;width:56px;height:56px;transition:transform .2s;display:inline-flex;box-shadow:0 10px 28px -12px #0000008c}.cv-project-media-trigger:hover .cv-project-media-play-icon,.cv-project-media-trigger:focus-visible .cv-project-media-play-icon{transform:scale(1.06)}.cv-project-media-play-icon svg{width:22px;height:22px;margin-left:2px}.cv-project-media-expand .cv-project-media-play-icon svg{margin-left:0}.cv-project-media-expand{background:#0000002e}.cv-video-lightbox{z-index:90;background:color-mix(in srgb, var(--foreground,#111) 82%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);grid-template-rows:auto 1fr auto;animation:.22s cv-video-fade;display:grid;position:fixed;inset:0}@keyframes cv-video-fade{0%{opacity:0}to{opacity:1}}.cv-video-lightbox-backdrop{cursor:zoom-out;background:0 0;border:0;margin:0;padding:0;position:absolute;inset:0}.cv-video-lightbox-chrome{z-index:1;color:#f7f4ef;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px 8px;display:flex;position:relative}.cv-video-lightbox-title{letter-spacing:.08em;text-transform:uppercase;opacity:.85;margin:0;font-size:12px}.cv-video-lightbox-actions{align-items:center;gap:6px;display:inline-flex}.cv-video-lightbox-btn{color:#f7f4ef;cursor:pointer;background:#11111159;border:1px solid #f7f4ef38;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s,border-color .2s,opacity .2s;display:inline-flex}.cv-video-lightbox-btn:hover,.cv-video-lightbox-btn:focus-visible{background:#1111118c;border-color:#f7f4ef73;outline:none}.cv-video-lightbox-btn svg{width:16px;height:16px}.cv-video-lightbox-stage{z-index:1;place-items:center;min-height:0;padding:8px 16px 12px;display:grid;position:relative}.cv-video-lightbox-player{aspect-ratio:16/9;background:#000;border-radius:8px;width:min(92vw,1100px);max-height:min(78vh,900px);overflow:hidden;box-shadow:0 24px 60px -20px #0000008c}.cv-video-lightbox-player.is-maximized{border-radius:0;width:100vw;height:100vh;max-height:100vh}.cv-video-lightbox-player iframe,.cv-video-lightbox-player video{background:#000;border:0;width:100%;height:100%;display:block}.cv-video-lightbox-hint{z-index:1;text-align:center;letter-spacing:.04em;color:#f7f4efa6;margin:0;padding:0 18px 18px;font-size:11px;position:relative}@media (max-width:640px){.cv-project-media{max-height:min(56vw,280px)}.cv-project-media-play-icon{width:48px;height:48px}.cv-video-lightbox-hint{display:none}}@media (max-width:420px){.cv-project-media{aspect-ratio:4/3;max-height:none}}
.horizon-page{--hz-ink:#111b28;--hz-paper:#f3fafd;--hz-band:#e5eff3;--hz-muted:#5c646f;--hz-line:#ced9e0;--hz-accent:#e0843e;--hz-display:var(--font-horizon), "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--hz-body:var(--font-horizon-sans), "Nunito Sans", ui-sans-serif, system-ui, sans-serif;--hz-nav-h:3.5rem;--hz-anchor-offset:calc(var(--hz-nav-h) + .65rem);background:var(--hz-paper);min-height:100svh;color:var(--hz-ink);font-family:var(--hz-body);-webkit-font-smoothing:antialiased;scroll-padding-top:var(--hz-anchor-offset)}@supports (color:lab(0% 0 0)){.horizon-page{--hz-ink:lab(9.39468% -1.22012 -10.5573);--hz-paper:lab(97.7115% -1.70374 -2.34113);--hz-band:lab(93.6667% -2.54461 -3.50539);--hz-muted:lab(41.9498% -1.4376 -7.24357);--hz-line:lab(86.1201% -2.80598 -4.67069);--hz-accent:lab(64.504% 32.0949 51.8897)}}.dark .horizon-page{--hz-ink:#e5edf1;--hz-paper:#091018;--hz-band:#121921;--hz-muted:#95a0ab;--hz-line:#2c333d;--hz-accent:#eca851}@supports (color:lab(0% 0 0)){.dark .horizon-page{--hz-ink:lab(93.0791% -2.1247 -2.92354);--hz-paper:lab(4.38622% -.622354 -5.79345);--hz-band:lab(8.29105% -1.08735 -7.11245);--hz-muted:lab(65.1777% -2.07776 -7.08538);--hz-line:lab(21.0623% -1.29747 -7.18515);--hz-accent:lab(74.2674% 20.0168 53.8013)}}.horizon-nav{z-index:30;min-height:var(--hz-nav-h);border-bottom:1px solid var(--hz-line);background:color-mix(in oklch, var(--hz-paper) 90%, transparent);-webkit-backdrop-filter:blur(14px);justify-content:space-between;align-items:center;gap:.85rem 1.25rem;padding:.65rem clamp(3.75rem,8vw,5.5rem) .65rem clamp(1rem,3vw,2.5rem);display:flex;position:sticky;top:0}.horizon-brand{color:inherit;letter-spacing:.1em;text-transform:uppercase;opacity:.88;flex-shrink:0;align-items:center;gap:.5rem;font-size:.7rem;font-weight:700;text-decoration:none;display:inline-flex}.horizon-brand:hover{opacity:1}.horizon-nav-tabs{min-width:0;max-width:min(100%,42rem);margin-left:auto}.horizon-nav-tabs-track{overscroll-behavior-x:contain;scrollbar-width:none;border:1px solid color-mix(in oklch, var(--hz-line) 90%, var(--hz-ink));background:color-mix(in oklch, var(--hz-band) 72%, var(--hz-paper));border-radius:999px;align-items:center;gap:.15rem;width:max-content;max-width:100%;padding:.22rem;display:flex;overflow-x:auto;box-shadow:inset 0 1px #ffffff59;box-shadow:inset 0 1px lab(100% 0 0/.35)}.dark .horizon-nav-tabs-track{box-shadow:inset 0 1px #ffffff0f;box-shadow:inset 0 1px lab(100% 0 0/.06)}.horizon-nav-tabs-track::-webkit-scrollbar{display:none}.horizon-nav-tabs-track a{letter-spacing:.06em;text-transform:uppercase;min-height:2rem;color:var(--hz-muted);white-space:nowrap;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:.35rem .85rem;font-size:.68rem;font-weight:650;text-decoration:none;transition:color .16s,background-color .16s,box-shadow .16s;display:inline-flex;position:relative}.horizon-nav-tabs-track a:hover{color:var(--hz-ink);background:color-mix(in oklch, var(--hz-paper) 55%, transparent)}.horizon-nav-tabs-track a.is-active{color:var(--hz-ink);background:var(--hz-paper);box-shadow:0 1px 2px color-mix(in oklch, var(--hz-ink) 10%, transparent), 0 0 0 1px color-mix(in oklch, var(--hz-line) 80%, transparent)}.horizon-nav-tabs-track a.is-active:after{content:"";background:var(--hz-accent);border-radius:999px;width:.85rem;height:2px;position:absolute;bottom:.28rem;left:50%;transform:translate(-50%)}@media (max-width:700px){.horizon-nav{flex-wrap:wrap;align-items:stretch;gap:.55rem;padding-top:.55rem;padding-bottom:.55rem;padding-right:clamp(1rem,3vw,2.5rem)}.horizon-brand span{text-overflow:ellipsis;white-space:nowrap;max-width:12ch;overflow:hidden}.horizon-nav-tabs{width:100%;max-width:none;margin-left:0}.horizon-nav-tabs-track{justify-content:flex-start;width:100%;-webkit-mask-image:linear-gradient(90deg,#0000,#000 .75rem calc(100% - .9rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 .75rem calc(100% - .9rem),#0000)}.horizon-nav-tabs-track a{padding-inline:.75rem;font-size:.64rem}}.horizon-hero{padding:clamp(1.75rem,4vw,3rem) clamp(1rem,3vw,2.5rem) 0}.horizon-hero-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.25rem 2rem;margin-bottom:1.5rem;display:flex}.horizon-kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--hz-accent);margin:0 0 .55rem;font-size:.7rem;font-weight:700}.horizon-name{max-width:min(100%,18ch);font-family:var(--hz-display);letter-spacing:-.04em;overflow-wrap:anywhere;word-break:break-word;margin:0;font-size:clamp(2.4rem,8vw,5.75rem);font-weight:700;line-height:.98}.horizon-title{max-width:min(100%,28rem);color:color-mix(in oklch, var(--hz-ink) 80%, transparent);overflow-wrap:anywhere;margin:.75rem 0 0;font-size:clamp(1rem,1.7vw,1.2rem);font-weight:500;line-height:1.45}.horizon-hero-meta{color:var(--hz-muted);text-align:right;gap:.35rem;min-width:0;max-width:min(100%,18rem);font-size:.86rem;display:grid}@media (max-width:700px){.horizon-hero-meta{text-align:left;width:100%}}.horizon-hero-meta a{color:inherit;text-decoration:none}.horizon-hero-meta a:hover{color:var(--hz-ink);text-decoration:underline}.horizon-actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.horizon-btn{border:1px solid var(--hz-ink);background:var(--hz-ink);height:2.45rem;color:var(--hz-paper);border-radius:999px;align-items:center;gap:.4rem;padding:0 1.05rem;font-size:.84rem;font-weight:650;text-decoration:none;display:inline-flex}.horizon-btn-ghost{color:var(--hz-ink);background:0 0}.horizon-btn:hover{opacity:.92}.horizon-photo{background:var(--hz-band);width:100%;height:clamp(17rem,40vw,27rem);margin-top:1.5rem;position:relative;overflow:hidden}.horizon-photo-main{object-fit:cover;object-position:center 18%;width:100%;height:100%;display:block}.horizon-photo-shade{z-index:1;background:linear-gradient(180deg, color-mix(in oklch, var(--hz-ink) 10%, transparent), transparent 35%, color-mix(in oklch, var(--hz-ink) 18%, transparent));pointer-events:none;position:absolute;inset:0}.horizon-photo-initials{height:100%;font-family:var(--hz-display);letter-spacing:-.05em;color:color-mix(in oklch, var(--hz-ink) 16%, transparent);place-items:center;font-size:clamp(4rem,14vw,9rem);font-weight:700;display:grid}.horizon-main{padding-bottom:3rem}.horizon-band{border-bottom:1px solid var(--hz-line);scroll-margin-top:var(--hz-anchor-offset);padding:2rem clamp(1rem,3vw,2.5rem)}.horizon-band:nth-child(2n){background:var(--hz-band)}.horizon-band-head{align-items:baseline;gap:.85rem;margin-bottom:1rem;display:flex}.horizon-band-index{font-family:var(--hz-display);color:var(--hz-accent);font-size:.85rem;font-weight:700}.horizon-band-title{font-family:var(--hz-display);letter-spacing:-.03em;margin:0;font-size:clamp(1.35rem,2.4vw,1.75rem);font-weight:700}.horizon-prose{max-width:46rem;color:color-mix(in oklch, var(--hz-ink) 88%, transparent);overflow-wrap:anywhere;margin:0;font-size:.95rem;line-height:1.65}.horizon-prose+.horizon-prose{margin-top:.7rem}.horizon-lead{max-width:40rem;font-family:var(--hz-display);letter-spacing:-.02em;margin:0 0 .85rem;font-size:1.2rem;font-weight:650;line-height:1.35}.horizon-jobs{gap:1.25rem;display:grid}.horizon-job{border-top:1px solid var(--hz-line);gap:.35rem 1.5rem;padding:1rem 0;display:grid}.horizon-job:first-child{border-top:0;padding-top:0}@media (min-width:860px){.horizon-job{grid-template-columns:minmax(10rem,13rem) minmax(0,1fr)}}.horizon-job-when{color:var(--hz-muted);margin:0;font-size:.8rem;font-weight:600}.horizon-job-role{font-family:var(--hz-display);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-size:1.15rem;font-weight:700}.horizon-job-company{color:var(--hz-muted);overflow-wrap:anywhere;margin:.15rem 0 .45rem;font-size:.9rem}.horizon-list{margin:0;padding-left:1.1rem;font-size:.9rem;line-height:1.5}.horizon-list li+li{margin-top:.2rem}.horizon-achievement{background:color-mix(in oklch, var(--hz-accent) 14%, transparent);border-radius:.75rem;margin:.7rem 0 0;padding:.65rem .9rem;font-size:.86rem;line-height:1.5}.horizon-grid-2{gap:1rem 1.5rem;display:grid}@media (min-width:700px){.horizon-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.horizon-grid-3{gap:1rem 1.25rem;display:grid}@media (min-width:700px){.horizon-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1100px){.horizon-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.horizon-edu-item p,.horizon-cert-item p{margin:0}.horizon-muted{color:var(--hz-muted);margin-top:.15rem;font-size:.82rem}.horizon-skill-label{letter-spacing:.12em;text-transform:uppercase;color:var(--hz-muted);margin:0 0 .3rem;font-size:.68rem;font-weight:750}.horizon-skill-line{margin:0;font-size:.92rem;line-height:1.45}.horizon-project{border:1px solid var(--hz-line);background:color-mix(in oklch, var(--hz-paper) 80%, white);border-radius:1rem;flex-direction:column;height:100%;display:flex;overflow:hidden}.dark .horizon-project{background:color-mix(in oklch, var(--hz-band) 85%, black)}.horizon-project .cv-project-card-button{flex-direction:column;flex:1;min-height:100%;display:flex}.horizon-project-media{aspect-ratio:16/10;background:var(--hz-line)}.horizon-project-media img{object-fit:cover;object-position:center;width:100%;height:100%}.horizon-project-body{flex-direction:column;flex:1;gap:.4rem;padding:.85rem .95rem 1rem;display:flex}.horizon-project-body .cv-project-card-title{font-family:var(--hz-display);letter-spacing:-.02em;font-size:1rem;font-weight:700;line-height:1.3}.horizon-project-body .cv-project-card-blurb{color:var(--hz-muted);font-size:.82rem;line-height:1.45}.horizon-project-body .cv-project-card-link{color:inherit}.horizon-project-body .horizon-tags{margin-top:.15rem}.horizon-tags{flex-wrap:wrap;gap:.35rem;margin-top:.55rem;display:flex}.horizon-tags span{background:color-mix(in oklch, var(--hz-accent) 16%, transparent);letter-spacing:.03em;border-radius:999px;padding:.15rem .5rem;font-size:.68rem;font-weight:650}.horizon-lang,.horizon-contact-row{flex-wrap:wrap;gap:.45rem 1.35rem;font-size:.92rem;display:flex}.horizon-lang span{color:var(--hz-muted)}.horizon-contact-row a{color:inherit;text-underline-offset:.16em;text-decoration:underline}.horizon-footer{color:var(--hz-muted);flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding:1.5rem clamp(1rem,3vw,2.5rem) 0;font-size:.75rem;display:flex}.horizon-footer a{color:inherit}
.studio-page{--studio-ink:#10171f;--studio-paper:#eff6fb;--studio-panel:#dfeaf1;--studio-muted:#5c646f;--studio-line:#c9d3da;--studio-accent:#54bf5c;--studio-display:var(--font-studio), Syne, ui-sans-serif, system-ui, sans-serif;--studio-body:var(--font-studio-sans), "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--studio-topbar-h:3.35rem;--studio-nav-h:3.15rem;--studio-anchor-offset:calc(var(--studio-topbar-h) + var(--studio-nav-h) + .5rem);min-height:100svh;scroll-padding-top:var(--studio-anchor-offset);background:radial-gradient(120% 80% at 100% 0%, color-mix(in oklch, var(--studio-accent) 14%, transparent), transparent 55%), linear-gradient(165deg, var(--studio-paper), var(--studio-panel));color:var(--studio-ink);font-family:var(--studio-body);-webkit-font-smoothing:antialiased}@supports (color:lab(0% 0 0)){.studio-page{--studio-ink:lab(7.16059% -.970602 -7.04916);--studio-paper:lab(96.5356% -1.63305 -3.29705);--studio-panel:lab(91.9202% -2.80911 -4.67243);--studio-muted:lab(41.9498% -1.4376 -7.24357);--studio-line:lab(83.7821% -2.4223 -4.93081);--studio-accent:lab(69.5705% -47.7194 39.7963)}}.dark .studio-page{--studio-ink:#e5ecf1;--studio-paper:#080e16;--studio-panel:#10171f;--studio-muted:#95a0ab;--studio-line:#2c333d;--studio-accent:#6ed274}@supports (color:lab(0% 0 0)){.dark .studio-page{--studio-ink:lab(93.0556% -1.63218 -3.29661);--studio-paper:lab(3.65259% -.521936 -5.17953);--studio-panel:lab(7.16059% -.970602 -7.04916);--studio-muted:lab(65.1777% -2.07776 -7.08538);--studio-line:lab(21.0623% -1.29747 -7.18515);--studio-accent:lab(76.4344% -44.8513 36.877)}}.studio-topbar{border-bottom:1px solid var(--studio-line);background:color-mix(in oklch, var(--studio-paper) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem clamp(1rem,3vw,2.5rem);display:flex;position:sticky;top:0}.studio-topbar-brand{color:inherit;letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:.55rem;font-size:.78rem;font-weight:600;text-decoration:none;display:inline-flex}.studio-topbar-meta{color:var(--studio-muted);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem 1.1rem;font-size:.78rem;display:flex}.studio-topbar-meta a{color:inherit;text-decoration:none}.studio-topbar-meta a:hover{color:var(--studio-ink);text-decoration:underline}.studio-hero{border-bottom:1px solid var(--studio-line);min-height:min(78svh,44rem);display:grid}@media (min-width:900px){.studio-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}}.studio-hero-copy{flex-direction:column;justify-content:flex-end;gap:1.1rem;padding:clamp(1.5rem,4vw,3.25rem);display:flex}.studio-kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--studio-muted);margin:0;font-size:.72rem;font-weight:600}.studio-name{font-family:var(--studio-display);letter-spacing:-.045em;overflow-wrap:anywhere;word-break:break-word;margin:0;font-size:clamp(2.35rem,7.5vw,5.4rem);font-weight:700;line-height:1.02}.studio-title{max-width:min(100%,28rem);color:color-mix(in oklch, var(--studio-ink) 82%, transparent);overflow-wrap:anywhere;margin:0;font-size:clamp(1rem,1.6vw,1.2rem);font-weight:500;line-height:1.45}.studio-hero-actions{flex-wrap:wrap;gap:.55rem;margin-top:.35rem;display:flex}.studio-btn{border:1px solid var(--studio-ink);background:var(--studio-ink);height:2.45rem;color:var(--studio-paper);align-items:center;gap:.4rem;padding:0 1.05rem;font-size:.84rem;font-weight:550;text-decoration:none;display:inline-flex}.studio-btn-ghost{color:var(--studio-ink);background:0 0}.studio-btn:hover{opacity:.9}.studio-hero-photo{background:var(--studio-panel);min-height:18rem;position:relative;overflow:hidden}@media (min-width:900px){.studio-hero-photo{border-left:1px solid var(--studio-line);min-height:100%}}.studio-hero-photo img{object-fit:cover;object-position:top center;width:100%;height:100%}.studio-hero-initials{height:100%;min-height:inherit;font-family:var(--studio-display);letter-spacing:-.06em;color:color-mix(in oklch, var(--studio-ink) 18%, transparent);background:linear-gradient(145deg, color-mix(in oklch, var(--studio-accent) 22%, var(--studio-panel)), var(--studio-panel));place-items:center;font-size:clamp(4rem,12vw,8rem);font-weight:700;display:grid}.studio-nav{border-bottom:1px solid var(--studio-line);background:color-mix(in oklch, var(--studio-paper) 92%, transparent);top:var(--studio-topbar-h);z-index:15;scrollbar-width:none;gap:.15rem;padding:0 clamp(1rem,3vw,2.5rem);display:flex;position:sticky;overflow-x:auto}.studio-nav::-webkit-scrollbar{display:none}.studio-nav a{letter-spacing:.06em;text-transform:uppercase;color:var(--studio-muted);border-bottom:2px solid #0000;flex:none;padding:.95rem .85rem;font-size:.74rem;font-weight:600;text-decoration:none}.studio-nav a:hover,.studio-nav a.is-active{color:var(--studio-ink);border-bottom-color:var(--studio-accent)}.studio-main{width:100%;padding:.5rem clamp(1rem,3vw,2.5rem) 3.5rem}.studio-section{border-bottom:1px solid var(--studio-line);scroll-margin-top:var(--studio-anchor-offset);gap:1rem 2rem;padding:2rem 0 1.75rem;display:grid}@media (max-width:640px){.studio-page{--studio-topbar-h:4.75rem;--studio-nav-h:3.15rem}}@media (min-width:800px){.studio-section{grid-template-columns:9.5rem minmax(0,1fr);align-items:start}}.studio-section-index{font-family:var(--studio-display);letter-spacing:.08em;color:var(--studio-accent);margin:0;font-size:.85rem;font-weight:700}.studio-section-title{font-family:var(--studio-display);letter-spacing:-.03em;margin:.2rem 0 0;font-size:1.35rem;font-weight:700}@media (min-width:800px){.studio-section-title{margin-top:.35rem}}.studio-section-body{min-width:0}.studio-prose{max-width:48rem;color:color-mix(in oklch, var(--studio-ink) 88%, transparent);overflow-wrap:anywhere;margin:0;font-size:.95rem;line-height:1.65}.studio-prose+.studio-prose{margin-top:.7rem}.studio-lead-spec{max-width:40rem;font-family:var(--studio-display);letter-spacing:-.02em;margin:0 0 .85rem;font-size:1.15rem;font-weight:600;line-height:1.35}.studio-jobs{gap:1.35rem;display:grid}.studio-job{border-bottom:1px dashed var(--studio-line);gap:.35rem 1.5rem;padding-bottom:1.25rem;display:grid}.studio-job:last-child{border-bottom:0;padding-bottom:0}@media (min-width:900px){.studio-job{grid-template-columns:minmax(9rem,12rem) minmax(0,1fr)}}.studio-job-when{color:var(--studio-muted);margin:0;font-size:.78rem;font-weight:500}.studio-job-role{font-family:var(--studio-display);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-size:1.15rem;font-weight:700}.studio-job-company{color:var(--studio-muted);overflow-wrap:anywhere;margin:.15rem 0 .45rem;font-size:.88rem}.studio-list{margin:0;padding-left:1.1rem;font-size:.9rem;line-height:1.5}.studio-list li+li{margin-top:.2rem}.studio-achievement{border-left:3px solid var(--studio-accent);background:color-mix(in oklch, var(--studio-accent) 10%, transparent);margin:.7rem 0 0;padding:.65rem .85rem;font-size:.86rem;line-height:1.5}.studio-grid-2{gap:1rem 1.5rem;display:grid}@media (min-width:700px){.studio-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.studio-grid-3{gap:1rem 1.25rem;display:grid}@media (min-width:700px){.studio-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1100px){.studio-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.studio-edu-item p,.studio-cert-item p{margin:0}.studio-edu-item strong,.studio-cert-item strong{font-weight:600}.studio-muted{color:var(--studio-muted);font-size:.82rem}.studio-skill-block{border-bottom:1px solid var(--studio-line);padding-bottom:.75rem}.studio-skill-label{letter-spacing:.14em;text-transform:uppercase;color:var(--studio-muted);margin:0 0 .3rem;font-size:.68rem;font-weight:650}.studio-skill-line{margin:0;font-size:.92rem;line-height:1.45}.studio-project{border:1px solid var(--studio-line);background:color-mix(in oklch, var(--studio-paper) 70%, white);flex-direction:column;height:100%;display:flex;overflow:hidden}.dark .studio-project{background:color-mix(in oklch, var(--studio-panel) 80%, black)}.studio-project .cv-project-card-button{flex-direction:column;flex:1;min-height:100%;display:flex}.studio-project-media{aspect-ratio:16/10;background:var(--studio-line)}.studio-project-media img{object-fit:cover;object-position:center;width:100%;height:100%}.studio-project-body{flex-direction:column;flex:1;gap:.4rem;padding:.85rem .95rem 1rem;display:flex}.studio-project-body .cv-project-card-title{font-family:var(--studio-display);letter-spacing:-.02em;font-size:1rem;font-weight:700;line-height:1.3}.studio-project-body .cv-project-card-blurb{color:var(--studio-muted);font-size:.82rem;line-height:1.45}.studio-project-body .cv-project-card-link{color:inherit}.studio-project-body .studio-tags{margin-top:.15rem}.studio-tags{flex-wrap:wrap;gap:.35rem;margin-top:.55rem;display:flex}.studio-tags span{border:1px solid var(--studio-line);letter-spacing:.04em;text-transform:uppercase;color:var(--studio-muted);padding:.15rem .45rem;font-size:.68rem;font-weight:550}.studio-lang{flex-wrap:wrap;gap:.5rem 1.35rem;font-size:.92rem;display:flex}.studio-lang span{color:var(--studio-muted)}.studio-contact-row{flex-wrap:wrap;gap:.5rem 1.35rem;font-size:.95rem;display:flex}.studio-contact-row a{color:inherit;text-underline-offset:.16em;text-decoration:underline}.studio-footer{color:var(--studio-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:2rem;padding-top:1rem;font-size:.75rem;display:flex}.studio-footer a{color:inherit}
@keyframes cv-rise{0%{opacity:0;filter:blur(10px);transform:translateY(40px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes cv-ken{0%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes cv-mask-up{0%{clip-path:inset(100% 0 0);opacity:.4}to{clip-path:inset(0);opacity:1}}@keyframes cv-rule-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes cv-progress{0%{transform:scaleX(0)}}.cv-page{font-family:var(--font-sans), ui-sans-serif, system-ui, sans-serif}.cv-page .cv-name{font-family:var(--font-cv), ui-serif, Georgia, serif;letter-spacing:-.04em;font-weight:400;line-height:.88}.cv-page .cv-heading{font-family:var(--font-cv), ui-serif, Georgia, serif;letter-spacing:-.03em;font-weight:400}.cv-page .cv-italic{font-family:var(--font-cv), ui-serif, Georgia, serif;font-style:italic;font-weight:400}.cv-page .cv-display-xl{font-family:var(--font-cv), ui-serif, Georgia, serif;letter-spacing:-.045em;font-size:clamp(3rem,8vw,7rem);font-weight:400;line-height:.98}.cv-progress{transform-origin:0;transform:scaleX(0)}.cv-rise{opacity:0;animation:1.05s cubic-bezier(.16,1,.3,1) both cv-rise}.cv-rise-1{animation-delay:.18s}.cv-rise-2{animation-delay:.34s}.cv-rise-3{animation-delay:.5s}.cv-rise-4{animation-delay:.66s}.cv-hero-media{animation:2.4s cubic-bezier(.16,1,.3,1) both cv-ken}.cv-name-word{animation:1.05s cubic-bezier(.16,1,.3,1) both cv-mask-up;display:inline-block}.cv-name-word:first-child{animation-delay:.2s}.cv-name-word:nth-child(2){animation-delay:.34s}.cv-name-word:nth-child(3){animation-delay:.48s}.cv-name-word:nth-child(4){animation-delay:.62s}.cv-section-rule{transform-origin:0;background:var(--brand);width:4rem;height:2px}.cv-reveal.cv-reveal-ready{opacity:0;filter:blur(10px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1),filter 1s cubic-bezier(.16,1,.3,1);transform:translateY(48px)}.cv-reveal.cv-reveal-ready.is-visible{opacity:1;filter:blur();transform:translateY(0)}.cv-reveal.is-visible .cv-section-rule{animation:.85s cubic-bezier(.16,1,.3,1) both cv-rule-grow}.cv-reveal-ready .cv-reveal-child{opacity:0;transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1);transform:translateY(28px)}.cv-reveal.is-visible .cv-reveal-child{opacity:1;transform:translateY(0)}.cv-reveal.is-visible .cv-reveal-child:first-child{transition-delay:60ms}.cv-reveal.is-visible .cv-reveal-child:nth-child(2){transition-delay:.14s}.cv-reveal.is-visible .cv-reveal-child:nth-child(3){transition-delay:.22s}.cv-reveal.is-visible .cv-reveal-child:nth-child(4){transition-delay:.3s}.cv-reveal.is-visible .cv-reveal-child:nth-child(5){transition-delay:.38s}.cv-reveal.is-visible .cv-reveal-child:nth-child(6){transition-delay:.46s}.cv-reveal.is-visible .cv-reveal-child:nth-child(7){transition-delay:.54s}.cv-reveal.is-visible .cv-reveal-child:nth-child(8){transition-delay:.62s}.cv-exp-index{font-family:var(--font-cv), ui-serif, Georgia, serif;letter-spacing:-.04em;color:color-mix(in oklch, var(--brand) 35%, transparent);font-size:clamp(2rem,4vw,3rem);line-height:.85}@media (prefers-reduced-motion:reduce){.cv-rise,.cv-rise-1,.cv-rise-2,.cv-rise-3,.cv-rise-4,.cv-hero-media,.cv-name-word{opacity:1!important;filter:none!important;clip-path:none!important;animation:none!important;transform:none!important}.cv-reveal,.cv-reveal-child{opacity:1!important;filter:none!important;transition:none!important;transform:none!important}}.cv-page{overflow-wrap:anywhere}.cv-page :where(a,button):focus-visible{outline:2px solid var(--brand);outline-offset:5px}.cv-skip-link{z-index:100;background:var(--foreground);color:var(--background);border-radius:.5rem;padding:.75rem 1rem;position:fixed;top:.5rem;left:1rem;transform:translateY(-160%)}.cv-skip-link:focus{transform:translateY(0)}@media (prefers-reduced-motion:reduce){html:has(.cv-page){scroll-behavior:auto}.cv-page .hq-float,.cv-page .hq-crystal{animation:none!important}}@media print{@page{margin:16mm}.cv-page{color:#000!important;background:#fff!important}html:has(.cv-page){color:#000!important;background:#fff!important}.cv-page header,.cv-section-nav,.cv-progress,.cv-skip-link,.cv-page footer,.cv-page button,.cv-page .pointer-events-none{display:none!important}.cv-page *{box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;transition:none!important;animation:none!important}.cv-page .cv-reveal,.cv-page .cv-reveal-child,.cv-page .cv-rise,.cv-page .cv-name-word{opacity:1!important;filter:none!important;clip-path:none!important;transform:none!important}.cv-page section{min-height:0!important;padding-top:1rem!important;padding-bottom:1rem!important}.cv-page h1{font-size:3rem!important}.cv-page h2{break-after:avoid;font-size:2rem!important}.cv-page h3{break-after:avoid}.cv-page li{break-inside:avoid}.cv-page .cv-hero-media{display:none}.cv-page [id=cv-content]{padding:0}}.cv-page{--background:#f3f5f7;--foreground:#1c2430;--muted-foreground:#5c6570;--brand:#2a4a56;--border:#dfe3e8;--primary:#1c2430;--primary-foreground:#fff;--cv-accent:#d5e4ea;--cv-surface:#e9eef1;--cv-contact:#1c2430;--cv-contact-fg:#f4f6f8;--cv-contact-muted:#a8b4bf;--cv-contact-accent:#b7d0d9;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:radial-gradient(ellipse 80% 50% at 100% -10%, color-mix(in srgb, var(--brand) 8%, transparent), transparent 55%), radial-gradient(ellipse 60% 40% at 0% 20%, color-mix(in srgb, var(--cv-accent) 55%, transparent), transparent 50%), var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased}.dark .cv-page{--background:#12181f;--foreground:#eef1f4;--muted-foreground:#9aa3ad;--brand:#9fbfc9;--border:#2a333d;--primary:#d5e4ea;--primary-foreground:#12181f;--cv-accent:#243640;--cv-surface:#1a222b;--cv-contact:#0e1318;--cv-contact-fg:#eef1f4;--cv-contact-muted:#9aa3ad;--cv-contact-accent:#9fbfc9;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.cv-container{width:min(100% - 6rem,1200px);margin-inline:auto}.cv-topbar{z-index:40;background:var(--background);border-bottom:1px solid var(--border);position:sticky;top:0}.cv-topbar-inner{justify-content:space-between;align-items:center;gap:20px;height:76px;display:flex}.cv-identity{align-items:center;gap:12px;min-width:0;display:inline-flex}.cv-monogram{border:1px solid var(--brand);width:36px;height:36px;font-family:var(--font-cv), Georgia, serif;border-radius:50%;flex-shrink:0;place-items:center;font-size:19px;display:grid}.cv-identity-name{letter-spacing:-.02em;font-size:13px;font-weight:600}.cv-header-note{color:var(--muted-foreground);margin-right:22px;font-size:11px}.cv-small-contact{align-items:center;gap:16px;padding-block:12px;font-size:12px;font-weight:600;display:flex}.cv-small-contact:hover{color:var(--brand)}.cv-hero{scroll-margin-top:76px;position:relative;overflow:hidden}.cv-hero-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:80px;padding-block:82px 74px;display:grid}.cv-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--muted-foreground);align-items:center;gap:10px;font-size:10px;font-weight:600;line-height:1.8;display:flex}.cv-status-dot{background:var(--brand);border-radius:50%;flex-shrink:0;width:6px;height:6px}.cv-page .cv-display-xl{letter-spacing:-.045em;overflow-wrap:anywhere;word-break:break-word;max-width:720px;margin-top:26px;font-size:clamp(3.8rem,7.2vw,7.2rem);line-height:.98}.cv-name-word{margin-right:.15em}.cv-name-accent{color:var(--brand);font-style:italic}.cv-hero-title{overflow-wrap:anywhere;max-width:550px;margin-top:24px;font-size:clamp(1rem,1.45vw,1.3rem);font-weight:500;line-height:1.65}.cv-hero-intro{max-width:460px;color:var(--muted-foreground);overflow-wrap:anywhere;margin-top:14px;font-size:13px;line-height:1.85}.cv-hero-actions{flex-wrap:wrap;align-items:center;gap:26px;margin-top:32px;display:flex}.cv-primary-action{background:var(--primary);min-height:48px;color:var(--primary-foreground);border-radius:4px;justify-content:center;align-items:center;gap:26px;padding:13px 22px;font-size:12px;font-weight:500;transition:background .2s,transform .2s;display:inline-flex}.cv-primary-action:hover{background:var(--brand);transform:translateY(-2px)}.cv-text-action{border-bottom:1px solid var(--border);align-items:center;gap:18px;padding-block:10px;font-size:12px;display:inline-flex}.cv-text-action:hover{border-color:var(--brand)}.cv-hero-details{color:var(--muted-foreground);flex-wrap:wrap;gap:12px 22px;margin-top:32px;font-size:12px;display:flex}.cv-hero-details>*{align-items:flex-start;gap:6px;min-width:0;max-width:100%;display:inline-flex}.cv-language-item .cv-heading,.cv-language-item .cv-italic{min-width:0}.cv-language-item .cv-heading{flex:auto}.cv-language-item .cv-italic{text-align:right;flex:0 auto}.cv-hero-details a:hover{color:var(--foreground)}.cv-portrait-composition{justify-self:end;width:100%;max-width:420px;position:relative}.cv-portrait-frame{aspect-ratio:4/5;background:color-mix(in srgb, var(--brand) 10%, var(--background));box-shadow:0 18px 48px color-mix(in srgb, var(--foreground) 10%, transparent);border-radius:1.25rem;position:relative;overflow:hidden}.cv-portrait-frame img{filter:none;image-rendering:auto;backface-visibility:hidden;transform:translateZ(0)}.cv-portrait-initials{height:100%;font-family:var(--font-cv), Georgia, serif;color:var(--brand);letter-spacing:-.04em;background:linear-gradient(160deg, color-mix(in srgb, var(--brand) 12%, var(--background)), color-mix(in srgb, var(--cv-accent) 70%, var(--background)));justify-content:center;align-items:center;font-size:clamp(4.5rem,14vw,7rem);display:flex}.cv-hero-bottom{border-top:1px solid var(--border);color:var(--muted-foreground);justify-content:flex-end;align-items:center;gap:20px;padding-block:20px;font-size:12px;display:flex}.cv-hero-bottom a{letter-spacing:0;align-items:center;gap:12px;display:flex}.cv-section-nav{z-index:30;background:var(--background);border-block:1px solid var(--border);position:sticky;top:76px}.cv-nav-track{scrollbar-width:thin;gap:24px;display:flex;overflow-x:auto}.cv-nav-track a{border-radius:0;padding:20px 0 18px;font-size:12px;font-weight:500;position:relative}.cv-nav-track a:hover{color:var(--foreground);background:0 0}.cv-nav-track a:after{content:"";background:var(--brand);height:2px;transition:transform .2s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.cv-nav-track a[aria-current],.cv-nav-track a:hover{color:var(--foreground)}.cv-nav-track a[aria-current]:after{transform:scaleX(1)}.cv-content{scroll-margin-top:150px}.cv-editorial-section{border-bottom:1px solid var(--border);grid-template-columns:230px minmax(0,1fr);column-gap:70px;padding-block:66px;scroll-margin-top:150px;display:grid}.cv-section-label .cv-eyebrow{letter-spacing:.12em;font-size:10px}.cv-section-label h2{margin-top:0;font-size:38px;line-height:1.15}.cv-section-rule{opacity:.6;width:32px;height:1px;margin-top:23px}.cv-section-body{min-width:0;padding-top:3px}.cv-section-body>.space-y-6{font-size:15px;line-height:1.95}.cv-section-body>.space-y-6>p:first-child{color:var(--foreground);font-size:19px;line-height:1.7}.cv-timeline{padding-left:24px}.cv-timeline-item{border-left:1px solid var(--border);padding:0 0 46px 30px;position:relative}.cv-timeline-item:last-child{border-left-color:#0000;padding-bottom:0}.cv-timeline-dot{border:1px solid var(--brand);background:var(--background);border-radius:50%;width:9px;height:9px;position:absolute;top:6px;left:-5px}.cv-timeline-dot.is-current{background:var(--brand);box-shadow:0 0 0 5px var(--background), 0 0 0 6px var(--border)}.cv-experience-meta{color:var(--muted-foreground);flex-wrap:wrap;align-items:center;gap:6px;font-size:10px;line-height:1.8;display:flex}.cv-current-label{background:var(--cv-accent);color:var(--foreground);border-radius:4px;margin-left:5px;padding:2px 8px;font-size:10px}.cv-timeline h3{overflow-wrap:anywhere;word-break:break-word;font-size:clamp(1.35rem,3vw,1.85rem);line-height:1.25}.cv-timeline .cv-italic{overflow-wrap:anywhere;word-break:break-word;font-family:var(--font-sans), sans-serif;margin-top:8px;font-size:12px;font-style:normal;font-weight:500}.cv-timeline ul{margin-top:22px;font-size:14px;line-height:1.9}.cv-timeline ul .size-1\.5{opacity:.6;width:4px;height:4px}.cv-achievement{border-left:2px solid var(--brand);background:color-mix(in srgb, var(--brand) 5%, transparent);margin-top:20px;padding:10px 16px;font-size:13px;line-height:1.8}.cv-cert-list{flex-direction:column;gap:2.75rem;margin:0;padding:0;list-style:none;display:flex}.cv-cert-item{max-width:40rem}.cv-experience-certificate{max-width:22rem;margin-top:22px}.cv-experience-certificate-trigger{cursor:zoom-in;text-align:left;width:100%;box-shadow:0 1px 0 color-mix(in srgb, var(--foreground) 6%, transparent), 0 12px 28px -18px color-mix(in srgb, var(--foreground) 35%, transparent);background:0 0;border:0;border-radius:10px;padding:0;transition:transform .35s,box-shadow .35s;display:block;position:relative;overflow:hidden}.cv-experience-certificate-trigger:hover,.cv-experience-certificate-trigger:focus-visible{box-shadow:0 1px 0 color-mix(in srgb, var(--foreground) 8%, transparent), 0 18px 36px -16px color-mix(in srgb, var(--foreground) 40%, transparent);outline:none;transform:translateY(-2px)}.cv-experience-certificate-trigger:focus-visible{box-shadow:0 0 0 2px var(--background), 0 0 0 4px var(--brand), 0 18px 36px -16px color-mix(in srgb, var(--foreground) 40%, transparent)}.cv-experience-certificate-frame{aspect-ratio:4/3;background:linear-gradient(145deg, color-mix(in srgb, var(--muted) 70%, white), var(--muted));display:block;position:relative;overflow:hidden}.cv-experience-certificate-frame:after{content:"";pointer-events:none;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--foreground) 8%, transparent);position:absolute;inset:0}.cv-experience-certificate-frame img{object-fit:contain;background:0 0;width:calc(100% - 20px);height:calc(100% - 20px);transition:transform .45s;position:absolute;inset:10px}.cv-experience-certificate-trigger:hover .cv-experience-certificate-frame img,.cv-experience-certificate-trigger:focus-visible .cv-experience-certificate-frame img{transform:scale(1.03)}.cv-experience-certificate-veil{z-index:1;letter-spacing:.04em;text-transform:uppercase;color:var(--background);background:color-mix(in srgb, var(--foreground) 82%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;border-radius:999px;align-items:center;gap:6px;padding:7px 11px;font-size:11px;transition:opacity .3s,transform .3s;display:inline-flex;position:absolute;inset:auto 12px 12px auto;transform:translateY(6px)}.cv-experience-certificate-trigger:hover .cv-experience-certificate-veil,.cv-experience-certificate-trigger:focus-visible .cv-experience-certificate-veil{opacity:1;transform:translateY(0)}.cv-experience-certificate figcaption{letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);margin-top:10px;font-size:11px}.cv-cert-lightbox{z-index:95;background:color-mix(in srgb, var(--foreground) 78%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);grid-template-rows:auto 1fr auto;animation:.22s cv-cert-fade;display:grid;position:fixed;inset:0}@keyframes cv-cert-fade{0%{opacity:0}to{opacity:1}}.cv-cert-lightbox-backdrop{cursor:zoom-out;background:0 0;border:0;margin:0;padding:0;position:absolute;inset:0}.cv-cert-lightbox-chrome{z-index:1;color:#f7f4ef;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px 8px;display:flex;position:relative}.cv-cert-lightbox-title{letter-spacing:.08em;text-transform:uppercase;opacity:.85;margin:0;font-size:12px}.cv-cert-lightbox-actions{align-items:center;gap:6px;display:inline-flex}.cv-cert-lightbox-btn{color:#f7f4ef;cursor:pointer;background:#11111159;border:1px solid #f7f4ef38;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s,border-color .2s,opacity .2s;display:inline-flex}.cv-cert-lightbox-btn:hover:not(:disabled),.cv-cert-lightbox-btn:focus-visible:not(:disabled){background:#1111118c;border-color:#f7f4ef73;outline:none}.cv-cert-lightbox-btn:disabled{opacity:.35;cursor:default}.cv-cert-lightbox-btn svg{width:16px;height:16px}.cv-cert-lightbox-zoom{text-align:center;font-variant-numeric:tabular-nums;opacity:.9;min-width:3.25rem;font-size:12px}.cv-cert-lightbox-stage{z-index:1;touch-action:none;cursor:zoom-in;-webkit-user-select:none;user-select:none;place-items:center;min-height:0;padding:8px 16px 12px;display:grid;position:relative;overflow:hidden}.cv-cert-lightbox-stage.is-zoomed{cursor:grab}.cv-cert-lightbox-stage.is-zoomed:active{cursor:grabbing}.cv-cert-lightbox-image-wrap{transform-origin:50%;will-change:transform;max-width:min(92vw,1100px);max-height:min(78vh,900px);transition:transform 80ms linear}.cv-cert-lightbox-image{object-fit:contain;background:#fff;border-radius:6px;width:auto;max-width:min(92vw,1100px);height:auto;max-height:min(78vh,900px);display:block;box-shadow:0 24px 60px -20px #0000008c}.cv-cert-lightbox-hint{z-index:1;text-align:center;letter-spacing:.04em;color:#f7f4efa6;margin:0;padding:0 18px 18px;font-size:11px;position:relative}@media (max-width:640px){.cv-experience-certificate{max-width:100%}.cv-experience-certificate-veil{opacity:1;transform:none}.cv-cert-lightbox-hint{display:none}}.cv-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.cv-project-card{background:var(--cv-surface);border:1px solid #0000;border-radius:8px;flex-direction:column;height:100%;padding:22px;transition:border-color .25s,transform .25s,box-shadow .25s;display:flex}.cv-project-card:hover,.cv-project-card:focus-within{border-color:var(--brand);box-shadow:0 14px 36px -28px color-mix(in srgb, var(--brand) 55%, transparent)}.cv-project-card .cv-project-card-button{flex-direction:column;flex:1;gap:0;min-height:100%;display:flex}.cv-project-card-copy{flex-direction:column;flex:1;gap:.65rem;min-height:0;padding-top:.15rem;display:flex}.cv-project-card .cv-project-card-footer{gap:.75rem;padding-top:.35rem}.cv-project-top{color:var(--muted-foreground);justify-content:space-between;align-items:center;margin-bottom:14px;font-size:10px;display:flex}.cv-project-number{font-family:var(--font-cv), Georgia, serif;font-size:22px;font-style:italic}.cv-project-card .cv-project-card-title{font-family:var(--font-cv), Georgia, serif;letter-spacing:-.02em;color:var(--foreground);font-size:clamp(1.25rem,2.2vw,1.65rem);line-height:1.2}.cv-project-card:hover .cv-project-card-title,.cv-project-card:focus-within .cv-project-card-title{color:var(--brand)}.cv-project-description{color:var(--muted-foreground);overflow-wrap:anywhere;word-break:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.9rem;line-height:1.55;display:-webkit-box;overflow:hidden}.cv-project-tags{flex-wrap:wrap;gap:6px;margin-top:0;padding-top:0;display:flex}.cv-project-tags li{border:1px solid var(--border);color:var(--muted-foreground);border-radius:3px;padding:4px 7px;font-size:10px}.cv-project-card .cv-project-card-link{color:var(--brand);letter-spacing:.02em;font-size:.75rem}.cv-skills-grid{flex-direction:column;gap:1.75rem;max-width:42rem;display:flex}.cv-skill-group{background:0 0;border:none;padding:0}.cv-skill-label{color:var(--brand);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.6875rem;font-weight:500}.cv-skill-line{color:var(--foreground);font-family:var(--font-cv), Georgia, serif;letter-spacing:-.02em;margin:.55rem 0 0;font-size:clamp(1.05rem,1.6vw,1.25rem);font-weight:400;line-height:1.55}.cv-skill-proof-list{flex-direction:column;gap:1.25rem;margin:1.1rem 0 0;padding:0;list-style:none;display:flex}.cv-skill-proof-name{letter-spacing:.04em;text-transform:uppercase;color:var(--muted-foreground);margin:0 0 .55rem;font-size:.75rem;font-weight:500}.cv-skill-proof-grid{grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.75rem;display:grid}.cv-experience-certificate.is-compact{max-width:none;margin-top:0}.cv-experience-certificate.is-compact .cv-experience-certificate-frame{aspect-ratio:4/3;border-radius:8px}.cv-experience-certificate.is-compact figcaption{margin-top:6px;font-size:10px}.cv-experience-certificate.is-compact .cv-experience-certificate-veil span{display:none}.cv-experience-certificate.is-compact .cv-experience-certificate-veil{padding:6px;inset:auto 8px 8px auto}.cv-credential-link{align-items:baseline;gap:12px;display:inline-flex}.cv-credential-link:hover{color:var(--brand)}.cv-page #contact{background:var(--cv-contact);color:var(--cv-contact-fg);border-radius:12px;grid-template-columns:1fr 1.8fr;gap:42px;margin-block:36px;padding:48px}.cv-page #contact .cv-eyebrow{color:var(--cv-contact-muted)}.cv-page #contact .cv-heading{color:var(--cv-contact-fg);font-size:44px}.cv-page #contact .cv-section-rule{background:var(--cv-contact-accent)}.cv-page #contact .cv-section-body>div>p{color:var(--cv-contact-fg);font-size:34px;line-height:1.2}.cv-page #contact .hq-crystal{background:var(--cv-contact-accent);color:var(--cv-contact);box-shadow:none;border-radius:6px;font-size:12px}.cv-page #contact [data-slot=button]{border-radius:6px;font-size:12px}.cv-page #contact .text-muted-foreground{color:var(--cv-contact-muted)}.cv-page #contact .text-foreground{color:var(--cv-contact-fg)}.cv-page #contact a.text-brand{color:var(--cv-contact-accent)}.cv-page #contact dd{font-size:12px}.cv-page #contact dt{font-size:10px}.cv-footer{justify-content:space-between;align-items:center;gap:20px;padding-block:30px 40px;display:flex}.cv-footer>span{color:var(--muted-foreground);font-size:10px}.cv-footer-signature{font-family:var(--font-cv), Georgia, serif;align-items:center;gap:20px;font-size:23px;font-style:italic;display:flex}.cv-powered-by{color:var(--muted-foreground);align-items:center;gap:6px;font-size:10px;display:inline-flex}@media (min-width:1500px){.cv-hero-grid{padding-block:100px}}@media (max-width:1023px){.cv-container{width:calc(100% - 4rem)}.cv-hero-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:36px;padding-block:60px}.cv-header-note{display:none}.cv-editorial-section{grid-template-columns:170px minmax(0,1fr);gap:32px;padding-block:48px}.cv-section-label h2{font-size:32px}.cv-project-card{padding:20px}.cv-project-grid{grid-template-columns:1fr}.cv-page #contact{gap:28px;padding:32px}}@media (max-width:639px){.cv-container{width:calc(100% - 40px)}.cv-topbar-inner{gap:10px;height:64px}.cv-identity-name{font-size:11px}.cv-monogram{width:30px;height:30px;font-size:16px}.cv-small-contact{white-space:normal;text-align:right;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:min(58vw,12rem);font-size:10px;line-height:1.35}.cv-hero-grid{grid-template-columns:1fr;gap:42px;padding-block:44px 40px}.cv-hero-copy>.cv-eyebrow{letter-spacing:.12em;font-size:10px}.cv-page .cv-display-xl{margin-top:22px;font-size:clamp(2.55rem,11vw,4.1rem);line-height:1.05}.cv-hero-title{margin-top:20px;font-size:16px}.cv-hero-intro{font-size:12px}.cv-hero-actions{gap:20px;margin-top:26px}.cv-primary-action{gap:20px;padding-inline:18px;font-size:11px}.cv-text-action{gap:10px;font-size:11px}.cv-hero-details{margin-top:24px;font-size:10px}.cv-portrait-composition{justify-self:center;max-width:280px}.cv-hero-without-photo .cv-portrait-composition,.cv-hero-bottom{display:none}.cv-section-nav{top:64px}.cv-nav-track{-webkit-overflow-scrolling:touch;touch-action:pan-x;gap:18px}.cv-nav-track a{touch-action:manipulation;padding-block:17px 15px;font-size:10px}.cv-editorial-section{grid-template-columns:1fr;gap:26px;padding-block:40px;scroll-margin-top:120px}.cv-content{scroll-margin-top:120px}.cv-hero{scroll-margin-top:64px}.cv-section-label h2{margin-top:8px;font-size:36px}.cv-section-rule{display:none}.cv-section-body>.space-y-6{font-size:14px;line-height:1.9}.cv-section-body>.space-y-6>p:first-child{font-size:18px}.cv-timeline{padding-left:6px}.cv-timeline-item{padding-left:24px}.cv-timeline h3{font-size:clamp(1.3rem,6.5vw,1.65rem)}.cv-timeline ul{font-size:13px}.cv-project-grid{grid-template-columns:1fr}.cv-project-card{padding:24px}.cv-project-top{margin-bottom:22px}.cv-skills-grid{gap:1.5rem}.cv-skill-line{font-size:1.05rem}.cv-page #contact{grid-template-columns:1fr;gap:24px;margin-block:24px;padding:28px 24px}.cv-page #contact .cv-heading{font-size:36px}.cv-page #contact .cv-section-body>div>p{font-size:29px}.cv-page #contact dl{margin-top:28px}.cv-footer{flex-wrap:wrap;gap:16px;padding-block:18px 30px}.cv-footer-signature{width:100%;font-size:26px}}@media (prefers-reduced-motion:reduce){.cv-page .cv-primary-action:hover{transform:none}}@media print{.cv-page{--background:white;--foreground:black;--brand:#333;--muted-foreground:#444;--border:#ccc}.cv-container{width:100%}.cv-topbar,.cv-hero-bottom,.cv-hero-actions,.cv-portrait-composition{display:none!important}.cv-hero-grid{padding:0 0 20px;display:block}.cv-editorial-section{grid-template-columns:130px minmax(0,1fr);gap:24px}.cv-page #contact{color:#000;background:#fff;padding:20px 0}.cv-page #contact :is(.cv-heading,.text-foreground,.text-muted-foreground,.cv-eyebrow),.cv-page #contact .cv-section-body>div>p{color:#000}.cv-page .cv-hero-title{margin-top:8px}.cv-project-card{background:#fff;border-color:#ccc}}.cv-nav-track{scrollbar-width:none}.cv-nav-track::-webkit-scrollbar{display:none}.cv-page #contact [data-slot=button]:not(.hq-crystal){color:var(--cv-contact-fg);border-color:color-mix(in srgb, var(--cv-contact-fg) 35%, transparent);background:0 0}.cv-page .cv-reveal,.cv-page .cv-reveal-child{filter:none;transition-duration:.55s}.cv-page .cv-rise,.cv-page .cv-name-word{animation-duration:.7s}
