:root{--stage-bg:#f5c838;--stage-fg:#000;--stage-muted:#000000ad;--stage-line:#0003;--stage-accent:#000;--ipe:#f5c838;--badge:#ff3b30;--font-text:"Atkinson Hyperlegible Next", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Bricolage Grotesque", "Atkinson Hyperlegible Next", system-ui, sans-serif;--display-axes:"opsz" 32;--font-os:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Atkinson Hyperlegible Next", system-ui, sans-serif;--gutter:clamp(16px, 4vw, 56px)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--stage-bg)}body{background:var(--stage-bg);min-height:100svh;color:var(--stage-fg);font-family:var(--font-text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:18px;line-height:1.5;transition:color .35s}button{font:inherit;color:inherit}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:.08em}img,svg{display:block}:focus-visible{outline-offset:3px;outline:3px solid}.flood{z-index:0;pointer-events:none;position:fixed;inset:0}.topbar,main,.footer{z-index:1;position:relative}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.device-slot{flex:none;position:relative}.device{transform-origin:0 0;position:absolute;top:0;left:0}.device.has-frame{box-shadow:0 0 0 2px #2b2b2d, 0 0 0 3.5px #9a9a9f, 0 0 0 5.5px #3b3b3e, 0 70px 100px -40px color-mix(in oklab, var(--stage-bg) 45%, #000000bf), 0 28px 44px -26px #0000008c;background:#050505;border-radius:68px;padding:12px}.device.has-frame:before,.device.has-frame:after{content:"";border-radius:2px;width:4px;position:absolute}.device.has-frame:before{background:linear-gradient(#48484c 0 34px,#0000 34px 70px,#48484c 70px 132px,#0000 132px 146px,#48484c 146px 204px);height:204px;top:150px;left:-8.5px}.device.has-frame:after{background:#48484c;height:100px;top:236px;right:-8.5px}.screen{isolation:isolate;font-family:var(--font-os);color:#fff;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#000;border-radius:56px;position:relative;overflow:hidden}.device.is-frameless .screen{box-shadow:0 30px 60px -28px color-mix(in oklab, var(--stage-bg) 40%, #000c);border-radius:34px}.screen :focus-visible{outline-offset:2px;outline:3px solid #0a84ff}.wallpaper{position:absolute;inset:0}.status-bar{z-index:60;pointer-events:none;justify-content:space-between;align-items:center;height:54px;padding-right:30px;transition:color .3s;display:flex;position:absolute;inset:0 0 auto}.status-bar.tone-light{color:#fff}.status-bar.tone-dark{color:#000}.status-time{text-align:center;letter-spacing:-.01em;width:134px;padding-top:4px;font-size:17px;font-weight:600}.status-icons{align-items:center;gap:6px;padding-top:4px;display:flex}.battery{border:1.2px solid;border-radius:4px;width:26px;height:12.5px;padding:1.5px;position:relative}.battery:after{content:"";opacity:.5;background:currentColor;border-radius:0 1px 1px 0;width:2px;height:4.5px;position:absolute;top:3px;right:-4px}.battery-level{background:currentColor;border-radius:2px;width:78%;height:100%;display:block}.island{z-index:70;background:#000;border-radius:20px;align-items:center;gap:8px;width:124px;height:36px;padding:0 10px 0 8px;transition:width .5s cubic-bezier(.3,1.25,.5,1),height .5s cubic-bezier(.3,1.25,.5,1);display:flex;position:absolute;top:11px;left:50%;overflow:hidden;translate:-50%}.island.is-active{justify-content:space-between;width:204px}.island-text{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.island-art{border-radius:7px;flex:none;width:24px;height:24px}.island-bars{align-items:center;gap:2px;height:16px;display:flex}.island-bars i{background:currentColor;border-radius:2px;width:3px;height:4px;animation:.9s ease-in-out infinite island-bar}.island-bars i:nth-child(2){animation-delay:-.3s}.island-bars i:nth-child(3){animation-delay:-.6s}.island-bars i:nth-child(4){animation-delay:-.15s}@keyframes island-bar{0%,to{height:4px}50%{height:16px}}.home{flex-direction:column;padding-top:70px;transition:transform .45s cubic-bezier(.2,.9,.2,1),filter .45s;display:flex;position:absolute;inset:0}.home.is-dimmed{filter:blur(3px)brightness(.75);transform:scale(.93)}.home.is-entering{animation:.55s cubic-bezier(.2,.9,.2,1) both home-in}@keyframes home-in{0%{opacity:0;transform:scale(1.12)}}.home-pages{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;display:flex;overflow:auto hidden}.home-pages::-webkit-scrollbar{display:none}.home-page{scroll-snap-align:start;flex:0 0 100%;padding-top:2px}.home-dots{justify-content:center;gap:2px;margin:auto 0 4px;display:flex}.home-dots button{cursor:pointer;background:0 0;border:0;place-items:center;width:22px;height:18px;padding:0;display:grid}.home-dots button:before{content:"";background:#fff6;border-radius:50%;width:7px;height:7px;transition:background .2s}.home-dots button[aria-current=page]:before{background:#fff}.home-grid{grid-template-columns:repeat(4,64px);justify-content:space-between;row-gap:20px;padding:0 26px;display:grid}.widget-cell{color:#fff;flex-direction:column;grid-area:1/1/span 2/span 2;align-items:center;gap:6px;display:flex}.widget{aspect-ratio:1;background:var(--ipe);color:#000;text-align:left;cursor:pointer;width:100%;font-family:var(--font-text);border:0;border-radius:24px;flex-direction:column;align-items:flex-start;padding:14px 14px 13px;transition:transform .15s;display:flex}.widget:active{transform:scale(.96)}.widget-avatar{width:48px;height:48px;color:var(--ipe);font-family:var(--font-display);letter-spacing:-.04em;background:#000;border-radius:50%;place-items:center;margin-bottom:auto;font-size:23px;font-weight:900;display:grid}.widget-name{font-size:17px;font-weight:800;line-height:1.1}.widget-role{margin-top:3px;font-size:12.5px;line-height:1.25}.widget-cta{opacity:.68;margin-top:7px;font-size:11px}.app-icon{cursor:pointer;color:#fff;width:64px;font-family:var(--font-os);background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:0;text-decoration:none;display:flex}.icon-box{width:64px;height:64px;transition:transform .16s,filter .16s;position:relative}.app-icon:active .icon-box{filter:brightness(.82);transform:scale(.9)}.tile{background:#1c1c1e;border-radius:15px;width:64px;height:64px;display:block;position:relative;overflow:hidden}.tile:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 .6px #ffffff29}.tile img,.tile svg{object-fit:cover;width:100%;height:100%}.tile-folder{-webkit-backdrop-filter:blur(20px)saturate(1.6);background:#ffffff3d;grid-template-columns:repeat(3,13px);grid-auto-rows:13px;align-content:start;gap:4px;padding:8.5px;display:grid}.tile-folder-mini{border-radius:3.5px;width:13px;height:13px;display:block;overflow:hidden}.tile-folder-mini img,.tile-folder-mini svg{object-fit:cover;width:100%;height:100%}.icon-label{text-align:center;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 3px #0009;max-width:78px;font-size:12px;font-weight:500;line-height:14px;display:block;overflow:hidden}.icon-label .cloud{vertical-align:-1px;width:13px;height:10px;margin-right:3px;display:inline-block}.badge{background:var(--badge);color:#fff;border-radius:12px;place-items:center;min-width:23px;height:23px;padding:0 6px;font-size:14px;font-weight:600;display:grid;position:absolute;top:-6px;right:-7px}.download{background:#00000080;border-radius:15px;place-items:center;display:grid;position:absolute;inset:0}.download svg{width:40px;height:40px;rotate:-90deg}.download-track{fill:none;stroke:#ffffff4d;stroke-width:3px}.download-ring{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;stroke-dasharray:81.7;stroke-dashoffset:81.7px;animation:1.4s cubic-bezier(.5,0,.3,1) forwards download}@keyframes download{to{stroke-dashoffset:0}}.is-downloading .tile{filter:grayscale(.7)brightness(.8)}.search-pill{-webkit-backdrop-filter:blur(20px);color:#fff;font-family:var(--font-os);cursor:pointer;background:#fff3;border:0;border-radius:999px;align-self:center;align-items:center;gap:6px;margin:0 0 12px;padding:7px 14px;font-size:13px;font-weight:600;display:inline-flex}.dock{-webkit-backdrop-filter:blur(24px)saturate(1.8);background:#ffffff2b;border-radius:36px;justify-content:space-around;align-items:center;height:94px;margin:0 12px 14px;padding:0 10px;display:flex;box-shadow:inset 0 0 0 .6px #ffffff38}.folder-overlay{z-index:30;-webkit-backdrop-filter:blur(26px)saturate(1.4);background:#00000047;flex-direction:column;align-items:center;padding-top:140px;animation:.25s both phone-fade;display:flex;position:absolute;inset:0}.folder-title{letter-spacing:-.02em;color:#fff;margin:0 0 22px;font-size:30px;font-weight:700}.folder-panel{background:#fff3;border-radius:40px;grid-template-columns:repeat(3,64px);justify-content:space-between;row-gap:22px;width:318px;padding:24px 22px;animation:.38s cubic-bezier(.2,1.2,.4,1) both phone-pop;display:grid}.folder-close{color:#fff;cursor:pointer;background:#ffffff2e;border:0;border-radius:999px;margin:auto 0 64px;padding:8px 16px;font-size:14px;font-weight:600}@keyframes phone-fade{0%{opacity:0}}@keyframes phone-pop{0%{opacity:0;transform:scale(.6)}}.spotlight{z-index:30;-webkit-backdrop-filter:blur(30px)saturate(1.5);color:#fff;background:#12121499;flex-direction:column;padding:62px 16px 40px;animation:.2s both phone-fade;display:flex;position:absolute;inset:0}.spotlight-bar{align-items:center;gap:10px;display:flex;position:relative}.spotlight-bar>svg{opacity:.7;pointer-events:none;position:absolute;left:12px}.spotlight-bar input{color:#fff;min-width:0;height:42px;font:17px var(--font-os);-webkit-user-select:text;user-select:text;background:#ffffff29;border:0;border-radius:13px;outline:none;flex:1;padding:0 12px 0 36px}.spotlight-bar input:focus-visible{box-shadow:0 0 0 2px #fff}.spotlight-bar input::placeholder{color:#fff9}.spotlight-cancel{color:#fff;cursor:pointer;background:0 0;border:0;padding:6px 0;font-size:16px}.spotlight-chips{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.spotlight-chips button{color:#fff;cursor:pointer;background:#ffffff29;border:0;border-radius:999px;padding:7px 13px;font-size:14px}.spotlight-heading{color:#ffffffa8;margin:22px 6px 8px;font-size:13px}.spotlight-results{scrollbar-width:none;gap:2px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.spotlight-results button{color:#fff;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;width:100%;padding:8px 6px;display:flex}.spotlight-results button:hover{background:#ffffff1a}.spotlight-icon .tile,.note-icon .tile{border-radius:11px;width:44px;height:44px}.spotlight-text{min-width:0}.spotlight-text span{display:block}.spotlight-text span:first-child{font-size:16px;font-weight:600}.spotlight-text span:last-child{color:#ffffffb8;font-size:13px;line-height:1.3}.lock{z-index:40;color:#fff;flex-direction:column;align-items:center;padding:58px 12px 0;transition:transform .52s cubic-bezier(.55,0,.25,1);display:flex;position:absolute;inset:0}.lock.is-leaving{transform:translateY(-104%)}.lock-hit{z-index:0;cursor:pointer;background:0 0;border:0;position:absolute;inset:0}.lock-top{z-index:1;text-align:center;pointer-events:none;flex-direction:column;align-items:center;display:flex;position:relative}.lock-padlock{opacity:.9}.lock-date{margin:8px 0 0;font-size:18px;font-weight:600}.lock-date:first-letter{text-transform:uppercase}.lock-clock{font-family:var(--font-display);font-variation-settings:var(--display-axes);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--ipe);margin:0;font-size:106px;font-weight:700;line-height:1}.lock-notes{z-index:1;gap:8px;width:100%;margin:auto 0 0;padding:0;list-style:none;display:grid;position:relative}.lock-notes li{animation:.5s cubic-bezier(.2,.9,.2,1) backwards note-in}@keyframes note-in{0%{opacity:0;transform:translateY(26px)scale(.96)}}.note{text-align:left;-webkit-backdrop-filter:blur(24px)saturate(1.6);color:#fff;cursor:pointer;width:100%;font-family:var(--font-os);background:#242426b8;border:0;border-radius:24px;align-items:center;gap:11px;padding:11px 13px 11px 11px;transition:transform .15s;display:flex}.note:active{transform:scale(.98)}.note-icon .tile{border-radius:9px;width:38px;height:38px}.note-text{flex:1;gap:1px;min-width:0;display:grid}.note-head{justify-content:space-between;gap:8px;display:flex}.note-title{font-size:15px;font-weight:600;line-height:1.25}.note-when{color:#fff9;flex:none;font-size:13px}.note-body{color:#ffffffe6;font-size:15px;line-height:1.3}.lock-hint{z-index:1;-webkit-backdrop-filter:blur(12px);color:#ffffffdb;pointer-events:none;background:#0009;border-radius:999px;margin:16px 0 38px;padding:5px 12px;font-size:14px;position:relative}.app-window{z-index:20;transform-origin:0 0;outline:none;position:absolute;inset:0;overflow:hidden}.app-ghost{opacity:0;pointer-events:none;position:absolute;inset:0}.app-ghost-icon,.app-ghost-icon .tile{border-radius:0;width:100%;height:100%;display:block}.app-ghost-icon .tile img,.app-ghost-icon .tile svg{object-fit:fill}.launch{text-align:center;align-content:center;place-items:center;gap:18px;padding:40px;font-size:15px;display:grid;position:absolute;inset:0}.launch-icon .tile{border-radius:22px;width:96px;height:96px}.home-indicator{z-index:65;cursor:pointer;background:0 0;border:0;place-items:center;width:200px;height:28px;padding:0;display:grid;position:absolute;bottom:0;left:50%;translate:-50%}.home-indicator span{background:currentColor;border-radius:3px;width:136px;height:5px;transition:width .2s;display:block}.home-indicator:hover span{width:150px}.home-indicator.tone-light{color:#ffffffdb}.home-indicator.tone-dark{color:#000000d1}.home-indicator.is-idle{opacity:0;pointer-events:none}.mock{-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.mock-scroll{overscroll-behavior:contain;scrollbar-width:none;flex:1;min-height:0;overflow-y:auto}.mock-scroll::-webkit-scrollbar{display:none}.mock button{cursor:pointer;font-family:inherit}.mock-toast{z-index:10;border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.35;animation:.35s cubic-bezier(.2,.9,.2,1) both toast-in;position:absolute;bottom:96px;left:16px;right:16px}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)}}.topbar{padding:18px var(--gutter) 6px;justify-content:space-between;align-items:center;gap:16px;display:flex}.wordmark{letter-spacing:-.01em;font-size:19px;font-weight:800;text-decoration:none}.topnav{align-items:center;gap:clamp(14px,2.4vw,28px);font-size:16px;display:flex}.topnav a{text-decoration:none}.topnav a:hover{text-decoration:underline}.lang-switch{display:inline-flex}.lang-switch button{cursor:pointer;color:var(--stage-muted);background:0 0;border:0;border-radius:8px;padding:6px 7px;font-size:15px;font-weight:700}.lang-switch button[aria-pressed=true]{color:var(--stage-fg);text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:2px}.stage{padding:8px var(--gutter) 40px;align-items:center;gap:clamp(24px,4vw,72px);min-height:calc(100svh - 56px);display:grid}.stage.layout-wide{grid-template-columns:minmax(0,1fr) auto minmax(0,.8fr);grid-template-areas:"story phone facts"}.stage.layout-mid{grid-template:"story phone""facts phone"1fr/minmax(0,1fr) auto;align-items:start;row-gap:40px}.layout-wide .phone-col,.layout-mid .phone-col{align-self:start;position:sticky;top:16px}.stage.layout-narrow{grid-template-columns:minmax(0,1fr);grid-template-areas:"story""phone""facts";min-height:0;padding-top:24px}.panel-story{grid-area:story;align-self:center}.layout-mid .panel-story,.layout-mid .panel-facts{align-self:start}.layout-mid .panel-story{padding-top:24px}.phone-col{grid-area:phone;justify-content:center;display:flex}.panel-facts{grid-area:facts}.panel{transition:opacity .22s,transform .32s}.panel.is-hidden{opacity:0;transform:translateY(8px)}.story{max-width:36rem}.story p{max-width:34em;margin:0 0 16px}.hero-title{font-family:var(--font-display);font-variation-settings:var(--display-axes);letter-spacing:-.025em;margin:0 0 32px;font-size:clamp(68px,8.4vw,136px);font-weight:700;line-height:.92}.lede{font-size:clamp(19px,1.45vw,22px);line-height:1.45}.hint{color:var(--stage-muted);border-top:1.5px solid var(--stage-line);padding-top:12px;font-size:16px}.back{border:1.5px solid var(--stage-line);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;margin-bottom:28px;padding:6px 14px 6px 10px;font-size:15px;display:inline-flex}.back:hover:not(:disabled){border-color:var(--stage-fg)}.back:disabled{opacity:.4;cursor:default}.app-title{letter-spacing:-.035em;margin:0 0 12px;font-size:clamp(46px,4.8vw,76px);font-weight:800;line-height:.98}.story .app-tagline{max-width:24em;margin:0 0 22px;font-size:clamp(20px,1.6vw,24px);font-weight:700;line-height:1.3}.built-title{color:var(--stage-muted);margin:26px 0 10px;font-size:15px;font-weight:700}.built{gap:12px;max-width:36em;margin:0 0 22px;padding:0;list-style:none;display:grid}.built li{padding-left:22px;font-size:17px;line-height:1.5;position:relative}.built li:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px;position:absolute;top:.62em;left:2px}.try{border-top:1.5px solid var(--stage-line);padding-top:14px;font-size:17px}.facts{gap:20px;max-width:26rem;margin:0;font-size:16px;line-height:1.45;display:grid}.facts>div{gap:4px;display:grid}.facts dt{color:var(--stage-muted);font-size:14px}.facts dd{margin:0}.facts ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.facts .numbers{gap:12px}.number-value{font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:40px;font-weight:800;line-height:1;display:block}.number-label{margin-top:2px;font-size:15px;line-height:1.35;display:block}.facts .facts-note{color:var(--stage-muted);margin:8px 0 0;font-size:14px}.facts .links{flex-wrap:wrap;gap:4px 16px;display:flex}.facts .cloud{vertical-align:-1px;width:16px;height:12px;margin-right:6px;display:inline-block}.facts-where{color:var(--stage-muted);margin-top:6px;font-size:14px;display:block}.swatches{gap:12px;padding:4px 0;display:flex}.swatches button{cursor:pointer;border:0;border-radius:50%;width:30px;height:30px;box-shadow:inset 0 0 0 1.5px #ffffff40}.swatches button[aria-checked=true]{outline:2px solid var(--stage-fg);outline-offset:3px}.experience{padding:clamp(64px, 10vw, 140px) var(--gutter) 40px}.section-head{max-width:42rem;margin-bottom:40px}.section-head h2,.footer h2{font-family:var(--font-display);font-variation-settings:var(--display-axes);letter-spacing:-.025em;margin:0 0 16px;font-weight:700;line-height:.95}.section-head h2{font-size:clamp(48px,6.4vw,96px)}.section-head p{color:var(--stage-muted);margin:0}.job-list{margin:0;padding:0;list-style:none}.job-list>li{border-top:1.5px solid var(--stage-line);grid-template-columns:minmax(180px,280px) minmax(0,1fr);gap:8px 40px;padding:26px 0;display:grid}.job-meta{flex-direction:column;gap:4px;display:flex}.job-where{font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(24px,2.2vw,30px);font-weight:800;line-height:1.1}.job-years{color:var(--stage-muted);flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:15px;display:flex}.job-now{color:var(--stage-fg);border:1.5px solid;border-radius:999px;padding:0 9px;font-size:13px;font-weight:700;line-height:1.6}.job-body h3{letter-spacing:-.01em;margin:0 0 10px;font-size:20px;line-height:1.25}.job-body ul{max-width:42em;margin:0;padding-left:1.1em}.job-body li+li{margin-top:8px}.cv-extra{border-top:1.5px solid var(--stage-line);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:48px clamp(40px,6vw,96px);margin-top:72px;padding-top:40px;display:grid}.cv-extra h2{letter-spacing:-.01em;margin:0 0 18px;font-size:24px}.courses,.papers{gap:16px;margin:0;padding:0;list-style:none;display:grid}.course-title,.paper-title{font-weight:700;line-height:1.35;display:block}.course-where,.paper-venue{color:var(--stage-muted);font-size:15px;display:block}.course-note{margin-top:2px;font-size:15px;line-height:1.45;display:block}.languages{margin:28px 0 0}.footer{padding:clamp(80px, 12vw, 160px) var(--gutter) 36px;border-top:1.5px solid var(--stage-line)}.footer h2{max-width:11ch;font-size:clamp(52px,7.4vw,120px)}.footer>p{margin:0;font-size:20px}.footer-mail{letter-spacing:-.02em;text-underline-offset:8px;overflow-wrap:anywhere;margin:20px 0 28px;font-size:clamp(26px,3.4vw,48px);font-weight:800;text-decoration-thickness:3px;display:inline-block}.footer-links{flex-wrap:wrap;gap:8px 24px;margin:0 0 72px;padding:0;list-style:none;display:flex}.footer-small{color:var(--stage-muted);font-size:14px}@media (width<=700px){.job-list>li{grid-template-columns:1fr}.topnav a{display:none}}.layout-narrow .hero-title{margin-bottom:22px;font-size:clamp(56px,17vw,96px)}.layout-narrow .lede{font-size:18px}.layout-narrow .panel-facts .story{margin-bottom:36px}.layout-narrow .panel-facts .back{margin-bottom:18px}
