:root{--bg:#000;--fg:#fff;--muted:#a3a3a3;--line:#ffffff42;--line-solid:#434343;--grey:#b4b4b4;--ai:#ff9a00;--id:#f36;--ps:#31a8ff;--pr:#99f;--blender:#ea7600;--claude:#d97757;--wp:#21759b;--wp-text:#4ea3d1;--el:#92003b;--el-text:#e0628f;--fantoni:#15542a;--fantoni-bg:#e6efe8;--panel:#0e0e0e;--green:#79bc24;--yellow:#fec52c;--orange:#ff671f;--red:#d0112b;--blue:#03a1e0;--ink:#000;--font:var(--font-hanken),"Helvetica Neue",Helvetica,Arial,sans-serif;--step--1:.75rem;--step-0:1rem;--step-1:1.3125rem;--step-2:clamp(1.6rem,2.6vw,2.2rem);--step-3:clamp(2.6rem,7.4vw,6.6rem);--wrap:1320px;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}::-webkit-scrollbar{width:16px;height:16px}::-webkit-scrollbar-track{background:var(--bg);box-shadow:inset 1px 0 #ffffff1f}::-webkit-scrollbar-thumb{background:var(--line-solid);border:3px solid var(--bg);border-radius:0;min-height:56px}::-webkit-scrollbar-thumb:hover{background:var(--grey)}::-webkit-scrollbar-thumb:active{background:var(--fg)}::-webkit-scrollbar-corner{background:var(--bg)}::-webkit-scrollbar-button{display:none}@supports ((-moz-appearance:none)){html{scrollbar-color:var(--line-solid) var(--bg);scrollbar-width:auto}}body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:var(--step-0);-webkit-font-smoothing:antialiased;line-height:1.5}body:before{content:"";height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg);position:fixed;inset:0 0 auto}a{color:inherit}:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}.wrap{max-width:var(--wrap);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));margin-inline:auto}@media (width>=760px){.wrap{padding-left:max(40px,env(safe-area-inset-left,0px));padding-right:max(40px,env(safe-area-inset-right,0px))}}.label{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.u{text-underline-offset:4px;text-decoration:underline 1px}.u:hover{text-decoration-color:var(--yellow)}.top{top:env(safe-area-inset-top,0px);z-index:20;background:0 0;border-bottom:1px solid #0000;transition:border-color .2s,background-color .2s;position:sticky}.top.scrolled{border-bottom-color:var(--line);background:var(--bg)}main{z-index:1;position:relative}.mosaic{height:var(--mh,900px);z-index:0;pointer-events:none;position:absolute;top:0;left:0;right:0;overflow:hidden}.mosaic-grid{position:absolute;inset:0}.mcol{will-change:transform;flex-direction:column;gap:8px;display:flex;position:absolute;top:0}.mcol img{object-fit:cover;object-position:top;background:var(--panel);border-radius:8px;width:100%;height:auto;transition:opacity .7s,height .7s cubic-bezier(.4,0,.2,1);display:block}.mcol img.out{opacity:0}.mosaic:after{content:"";background:linear-gradient(180deg, color-mix(in srgb,var(--bg) calc(var(--dim) * 1%),transparent) 0%, color-mix(in srgb,var(--bg) calc(var(--dim) * 1%),transparent) 20%, color-mix(in srgb,var(--bg) calc(min(var(--dim) + .7, 100) * 1%),transparent) 45%, color-mix(in srgb,var(--bg) calc(min(var(--dim) + 2, 100) * 1%),transparent) 70%, color-mix(in srgb,var(--bg) calc(min(var(--dim) + 3.2, 100) * 1%),transparent) 88%, color-mix(in srgb,var(--bg) calc(min(var(--dim) + 4.05, 100) * 1%),transparent) 100%);position:absolute;inset:0}:root{--dim:95.4}.mosaic:after{-webkit-mask-image:radial-gradient(circle var(--sr,0px) at var(--sx,-9999px) var(--sy,-9999px), #000000c7 0%,#000000c8 22%,#000c 40%,#000000d6 56%,#000000e4 70%,#000000f1 83%,#000000fb 94%,#000 100%);mask-image:radial-gradient(circle var(--sr,0px) at var(--sx,-9999px) var(--sy,-9999px), #000000c7 0%,#000000c8 22%,#000c 40%,#000000d6 56%,#000000e4 70%,#000000f1 83%,#000000fb 94%,#000 100%)}.top .wrap{justify-content:space-between;align-items:center;gap:24px;padding-block:18px;display:flex}.top img{width:auto;height:22px;display:block}.top nav{flex-wrap:wrap;justify-content:flex-end;gap:clamp(14px,3vw,32px);display:flex}.top nav a{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.06em;font-weight:600;text-decoration:none}.top nav a:hover{text-underline-offset:4px;text-decoration:underline}.top nav{align-items:center}.top nav a.lang{border:1px solid var(--line);background:var(--bg);align-items:center;gap:6px;height:30px;margin-block:-6px;padding:0 9px 0 7px;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.top nav a.lang svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:square;stroke-linejoin:miter;width:16px;height:16px;display:block}.top nav a.lang:hover{background:var(--fg);color:var(--ink);border-color:var(--fg);text-decoration:none}.top nav a.lang:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}@media (prefers-reduced-motion:reduce){.top nav a.lang{transition:none}}.hero .wrap{gap:36px;padding-block:clamp(36px,6vw,72px) clamp(40px,6vw,72px);display:grid}@media (width>=980px){.hero .wrap{grid-template-columns:minmax(0,1fr) 340px;align-items:end;column-gap:64px}.hero .who{grid-column:1/-1}}.hero .who{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.hero h1{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.06em;margin:0;font-weight:500;line-height:1.4}.hero h1 b,.hero h1 span{display:block}.hero .display{font-size:var(--step-3);letter-spacing:-.035em;text-wrap:balance;margin:0;font-weight:600;line-height:.95;display:none}.hero .display em{color:var(--muted);font-style:normal;font-weight:400}.hero--type .display{display:block}.hero--type .bands,.hero--type h1 .role{display:none}.hero h1 b{font-weight:700}.hero .who .tool-dbs{margin-top:4px}.tool-dbs .ico{flex-shrink:0;align-items:center;height:22px;padding:0 3px;display:flex}.tool-dbs .ico img{filter:brightness(0)invert();width:auto;height:11px;display:block}.hero aside{flex-direction:column;gap:22px;min-width:0;display:flex}.hero aside p{max-width:42ch;margin:0;font-size:1.0625rem;line-height:1.55}.facts{grid-template-columns:auto 1fr;gap:6px 18px;margin:0;font-size:.9375rem;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.facts dt:last-of-type,.facts dt:nth-of-type(2){padding-top:5px}.edu{flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.school{background:var(--fantoni-bg);color:var(--fantoni);border-radius:8px;align-items:center;gap:8px;padding:4px 10px 4px 6px;font-size:.875rem;font-weight:600;line-height:1.2;display:inline-flex}.school img{flex-shrink:0;width:20px;height:21px;display:block}.school-line{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.courses{flex-wrap:wrap;align-items:center;gap:4px 8px;display:inline-flex}.course{align-items:center;gap:6px;display:inline-flex}.course svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:square;stroke-linejoin:miter;flex-shrink:0;width:17px;height:17px;display:block}.courses .amp{color:var(--muted)}.courses .year{color:var(--muted);font-variant-numeric:tabular-nums}.courses .year:before{content:"· "}.tools{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tool{background:color-mix(in srgb,var(--tc) 16%,var(--bg));color:var(--tt,var(--tc));white-space:nowrap;border-radius:8px;align-items:center;gap:7px;padding:4px 10px 4px 4px;font-size:.875rem;font-weight:600;line-height:1.2;display:inline-flex}.tool svg{flex-shrink:0;width:22px;height:22px;display:block}.tool-blender svg{width:26px;height:22px}.bands{flex-direction:column;gap:4px;display:flex}.band{all:unset;box-sizing:border-box;cursor:pointer;min-height:clamp(52px,6.2vw,76px);color:var(--ink);background:var(--c);transform-origin:0;animation:.7s cubic-bezier(.2,.7,.2,1) both slide;animation-delay:calc(var(--i)*70ms);border-radius:8px;align-items:center;display:flex}.band-in{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:clamp(12px,3vw,40px);width:100%;padding-inline:clamp(14px,2vw,24px);display:grid}.band b{letter-spacing:-.02em;font-size:clamp(1.25rem,2.4vw,1.9rem);font-weight:700}.band small{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.band .n{font-variant-numeric:tabular-nums;text-align:right;min-width:2ch;font-size:clamp(1.25rem,2.4vw,1.9rem);font-weight:700}.band .desc{display:none}@media (width>=760px){.band .desc{display:block}}.band:hover b,.band:focus-visible b{text-underline-offset:5px;text-decoration:underline 2px}.band:focus-visible{outline:2px solid var(--fg);outline-offset:-4px}.band{transition:opacity .25s}.bands.filtered .band[aria-pressed=false]{opacity:.28}.bands.filtered .band[aria-pressed=false]:hover{opacity:.6}@keyframes slide{0%{transform:scaleX(.04)}to{transform:none}}section{scroll-margin-top:72px}.head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:28px;padding-bottom:14px;display:flex}.head h2{font-size:var(--step-1);letter-spacing:-.01em;margin:0;font-weight:700}.work{padding-block:clamp(56px,8vw,96px) 24px}.chips{flex-wrap:wrap;gap:14px 10px;margin-bottom:32px;padding-top:6px;display:flex}.chip{all:unset;cursor:pointer;--d:0px;--c:var(--fg);transition:--d .1s ease-out;display:inline-block;position:relative}.chip[data-cat=all]{--c:var(--grey)}.chip:before{content:"";top:calc(var(--d) * -1);right:calc(var(--d) * -1);background:var(--ext,var(--c));clip-path:polygon(0 var(--d),var(--d) 0,100% 0,100% calc(100% - var(--d)),calc(100% - var(--d)) 100%,0 100%);position:absolute;bottom:0;left:0}.chip-in{box-sizing:border-box;border:1px solid var(--line-solid);background:var(--bg);height:44px;color:var(--fg);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;transform:translate(var(--d),calc(var(--d) * -1));align-items:center;gap:10px;padding:0 16px;font-weight:600;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex;position:relative}.chip:hover .chip-in{border-color:var(--fg)}.chip:focus-visible{outline:none}.chip:focus-visible .chip-in{outline:2px solid var(--yellow);outline-offset:2px}.chip[aria-pressed=true]{--d:6px}.chip[aria-pressed=true] .chip-in{background:var(--fg);color:var(--ink);border-color:var(--fg)}.grid{align-items:flex-start;gap:clamp(14px,1.8vw,24px);display:flex}.col{flex-direction:column;flex:1 1 0;gap:clamp(22px,2.4vw,32px);min-width:0;display:flex}.card{all:unset;cursor:zoom-in;flex-direction:column;gap:12px;min-width:0;display:flex}@property --d{syntax:"<length>";inherits:true;initial-value:0}.card{--d:0px;transition:--d .1s ease-out}.card:hover,.card:focus-visible{--d:6px}.card .ph{display:block;position:relative}.card .ph:before{content:"";top:calc(var(--d) * -1);right:calc(var(--d) * -1);background:var(--c);clip-path:polygon(0 var(--d),var(--d) 0,100% 0,100% calc(100% - var(--d)),calc(100% - var(--d)) 100%,0 100%);position:absolute;bottom:0;left:0}.card .ph-in{background:var(--panel);transform:translate(var(--d),calc(var(--d) * -1));display:block;position:relative;overflow:hidden}.card img{width:100%;height:auto;display:block}.card.tall img{aspect-ratio:4/5;object-fit:cover;object-position:top}.card:focus-visible{outline:none}.card:focus-visible .cap b{text-decoration:underline;text-decoration-color:var(--c);text-underline-offset:4px;text-decoration-thickness:2px}.card .cap{flex-direction:column;gap:3px;display:flex}.card .cap b{font-size:1rem;font-weight:600;line-height:1.3}.card .cap span{color:var(--muted)}.cv{padding-block:clamp(56px,8vw,96px)}.cv .cols{gap:56px;display:grid}@media (width>=980px){.cv .cols{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:72px}}.jobs{flex-direction:column;gap:30px;margin:0;padding:0;list-style:none;display:flex}.job{grid-template-columns:minmax(0,1fr) 150px;align-items:start;gap:24px;display:grid}.job .role{text-align:right;flex-direction:column;gap:2px;min-width:0;display:flex}.job .role .label{font-weight:400}.job .role b{font-size:1.0625rem;font-weight:700;line-height:1.3}.job .role a{overflow-wrap:anywhere;font-size:.9375rem}.job .when{flex-direction:column;align-items:flex-end;line-height:1;display:flex}.job .when .label{margin-bottom:6px;font-weight:400}.job .when .live{font-variant-numeric:tabular-nums;align-items:center;gap:7px;display:inline-flex}.job .when .live:before{content:"";background:var(--green);width:7px;height:7px;animation:1.8s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.25}}.job .when div{align-items:baseline;gap:6px;display:flex}.job .when small{font-size:var(--step--1);text-transform:uppercase}.job .when strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:2.15rem;font-weight:700}@media (width<=520px){.job{grid-template-columns:1fr}.job .role{text-align:left}.job .when{order:-1;align-items:flex-start}}.blocks{flex-direction:column;gap:34px;display:flex}.blocks h3{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;font-weight:800}.blocks p{max-width:62ch;margin:0;line-height:1.6}.blocks p+p{margin-top:14px}.skills{flex-direction:column;gap:24px;display:flex}.skills .tools{gap:8px}.contact{border-top:1px solid var(--line)}.contact .wrap{flex-direction:column;gap:48px;padding-block:56px 28px;display:flex}.fgrid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:32px 40px;display:grid}@media (width>=980px){.fgrid{grid-template-columns:1.3fr 1.7fr .8fr .8fr}}.fbrand{flex-direction:column;gap:14px;display:flex}.fbrand img{align-self:flex-start;width:auto;height:22px;display:block}.fbrand p{flex-direction:column;gap:2px;margin:0;display:flex}.fbrand b{font-weight:700}.fcol{flex-direction:column;gap:12px;min-width:0;display:flex}.fcol h2{color:var(--muted);margin:0;font-weight:500}.mails{flex-direction:column;gap:10px;display:flex}.mailrow{align-items:center;gap:12px;display:flex}.mailrow a{white-space:nowrap;font-weight:500}.icon-btn{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid var(--line-solid);width:36px;height:36px;color:var(--fg);flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s,color .15s,border-color .15s;display:flex}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:square;stroke-linejoin:miter;width:16px;height:16px;display:block}.icon-btn:hover{background:var(--fg);color:var(--ink);border-color:var(--fg)}.icon-btn:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.flinks{flex-direction:column;gap:6px;display:flex}.flinks a{text-decoration:none}.flinks a:hover{text-underline-offset:4px;text-decoration:underline}.fbottom{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:20px;font-size:.8125rem;display:flex}dialog{background:var(--bg);color:var(--fg);border:0;width:min(1100px,100vw - 32px);max-height:calc(100dvh - 32px);padding:0;overflow:hidden}dialog::backdrop{background:#000000db}dialog[open]{flex-direction:column;display:flex}.lb-bar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.lb-bar .t{flex-direction:column;min-width:0;display:flex}.lb-bar .t b{font-weight:700}.lb-bar .t span{color:var(--muted)}.lb-ctrl{flex-shrink:0;gap:10px;display:flex}.lb-pair{display:flex}.lb-pair button+button{margin-left:-1px}.lb-ctrl button{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid var(--line);width:44px;height:44px;color:var(--fg);background:var(--bg);justify-content:center;align-items:center;transition:background-color .15s,color .15s,border-color .15s;display:flex;position:relative}.lb-ctrl svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:square;stroke-linejoin:miter;width:20px;height:20px;display:block}.lb-ctrl button:hover{background:var(--fg);color:var(--ink);border-color:var(--fg);z-index:1}.lb-ctrl button:active svg{transform:scale(.9)}.lb-ctrl button:focus-visible{outline:2px solid var(--yellow);outline-offset:2px;z-index:2}@media (prefers-reduced-motion:reduce){.lb-ctrl button{transition:none}.lb-ctrl button:active svg{transform:none}}.lb-img{background:var(--panel);flex:auto;justify-content:center;align-items:flex-start;display:flex;overflow:auto}.lb-img img{max-width:100%;height:auto;transition:opacity .25s;display:block}.lb-img img.loading{opacity:0;transition:none}.lb-img.fit img{width:auto;max-height:calc(100dvh - 120px)}dialog.is-live{width:min(1240px,100vw - 32px);height:calc(100dvh - 32px)}dialog.is-live .lb-img{background:var(--bg);display:block;overflow:hidden}.lb-img iframe{background:0 0;border:0;width:100%;height:100%;display:block}.lb-open{box-sizing:border-box;border:1px solid var(--line);width:44px;height:44px;color:var(--fg);background:var(--bg);justify-content:center;align-items:center;transition:background-color .15s,color .15s,border-color .15s;display:flex}.lb-open:hover{background:var(--fg);color:var(--ink);border-color:var(--fg)}.lb-open:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));background:var(--fg);color:var(--ink);z-index:50;padding:10px 18px;font-size:.875rem;font-weight:700;position:fixed;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.band{animation:none}.card,.chip,.chip-in{transition:none}.job .when .live:before{animation:none}}html,body{margin:0}:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}img{max-width:100%}[hidden]{display:none!important}.grid:not(.js){grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:28px 24px;display:grid}.tool img,.school img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:none}
