:root{color-scheme:light;--background: #f8f6f1;--ink: #1b2732;--accent: #2764a4;--line: #dedfdc;--window-dot-size: 9px;--window-dot-gap: 7px;--window-dot-red: #ff6059;--window-dot-yellow: #ffbd2e;--window-dot-green: #28c840}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--background);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.arrow-icon{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.125em;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.carousel-next .arrow-icon,.library-arrow .arrow-icon{display:block;width:16px;height:16px}.page-shell{width:min(100% - 80px,1240px);margin:0 auto}.site-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:clamp(20px,3vw,38px);min-height:76px;border-bottom:1px solid var(--line)}.wordmark-cursor{color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-weight:400}.site-nav{display:flex;align-items:center;gap:clamp(16px,3vw,38px)}.cv-link{display:inline-flex;grid-column:3;justify-self:end;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:999px;font-size:.88rem;font-weight:600;text-decoration:none}.cv-link:hover{border-color:var(--accent);color:var(--accent)}.intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);gap:clamp(48px,8vw,110px);padding:clamp(32px,4vw,54px) 0 clamp(36px,4.5vw,58px)}.intro-copy{display:flex;flex-direction:column;justify-content:space-between;gap:48px;padding:16px 0 0}.intro-label{display:flex;align-items:center;gap:14px;margin:0 0 18px;color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.87rem;font-weight:600;letter-spacing:.015em}.intro-label-rule{width:30px;height:1px;background:currentColor}.intro-university-logo{display:inline-block;width:1em;height:1em;vertical-align:-.125em}h1{margin:0;font-size:clamp(3.2rem,5vw,5.2rem);font-weight:650;letter-spacing:-.075em;line-height:1}h1 scramble-text:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.github-activity{display:flex;align-items:center;justify-self:end}.github-activity[hidden]{display:none}.github-activity-link{display:flex;gap:2px;width:fit-content;text-decoration:none}.github-activity-week{display:grid;grid-template-rows:repeat(7,6px);gap:2px}.github-activity-day{width:6px;height:6px;border-radius:1px;background:var(--accent);opacity:var(--activity-opacity);transition:opacity .16s ease,background-color .16s ease}.github-activity-day:hover{opacity:1;background:#174d84}.github-activity-day--missing{visibility:hidden}@media(max-width:980px){.site-header{grid-template-columns:minmax(0,1fr) auto;row-gap:12px;padding:14px 0}.site-nav{grid-column:1;grid-row:1}.cv-link{grid-column:2;grid-row:1}.github-activity{grid-column:1 / -1;grid-row:2;justify-self:start}}.social-links{display:flex;gap:14px;margin-top:18px}.intro-details{border-left:1px solid var(--line)}.experience{padding-left:clamp(26px,4vw,52px)}.detail-label{margin:0;color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.75rem;font-weight:600;letter-spacing:.02em;line-height:1.4}.carousel-next{display:grid;width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:50%;place-items:center;background:transparent;color:var(--ink);font:inherit;font-size:1.3rem;cursor:pointer;transition:border-color .18s ease,color .18s ease,transform .18s ease}.experience-next{margin:16px 0 0 auto}.carousel-next:is(:hover,:focus-visible){border-color:var(--accent);color:var(--accent);transform:translate(2px)}.carousel-next:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.experience-next[hidden]{display:none}.experience-track{display:flex;gap:16px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none}.experience-track::-webkit-scrollbar{display:none}.experience-card{flex:0 0 100%;scroll-snap-align:start}.experience-role{margin:0;color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.75rem;font-weight:600;letter-spacing:.02em;line-height:1.4}.experience-card h2{max-width:18ch;margin:10px 0 18px;font-size:clamp(1.55rem,2.5vw,2.4rem);font-weight:650;letter-spacing:-.055em;line-height:1}.experience-card h2 a{text-decoration-color:var(--line);text-decoration-thickness:1px;text-underline-offset:5px}.experience-card h2 a:is(:hover,:focus-visible){color:var(--accent);text-decoration-color:currentColor}.experience-meta{display:flex;flex-wrap:wrap;gap:.35em;margin:0 0 18px;color:#5c6873;font-size:.82rem;line-height:1.4}.experience-description{max-width:54ch;margin:0;font-size:.9rem;line-height:1.55}.contact{font-style:normal}.contact-email{display:inline-block;margin-top:10px;color:var(--ink);font-size:1rem;font-weight:600;text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:4px}.contact-email:is(:hover,:focus-visible){color:var(--accent)}.work{position:relative;padding:0 0 clamp(48px,6vw,80px)}.work-heading{margin-bottom:28px;padding-top:26px;border-top:1px solid var(--line)}h2{max-width:740px;margin:-8px 0 0;font-size:clamp(2.3rem,4.6vw,4.7rem);font-weight:650;letter-spacing:-.065em;line-height:1.03}.work-heading h2{max-width:820px;margin:0}.sketch-arrow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.sketch-arrow path{stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}@media(max-width:900px){.work-project-arrow{display:none}}.featured-projects{display:grid;--project-gap: clamp(64px, 10vw, 140px);gap:var(--project-gap)}.project-divider{position:absolute;top:calc(var(--project-gap) * -.5);left:0;width:100%;margin:0;border:0;border-top:1px solid var(--line)}.featured-project{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(220px,.85fr);gap:clamp(32px,6vw,90px);align-items:center}.featured-project--reverse{grid-template-columns:minmax(220px,.85fr) minmax(0,1.65fr)}.case-study-project{grid-template-columns:minmax(250px,.7fr) minmax(0,2.3fr);gap:clamp(24px,4vw,54px)}.featured-project--reverse .project-card{order:2}.case-study-project .project-info h3{margin-top:0}.project-info{max-width:26rem}.project-info>p:first-child{margin:0;color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.75rem;font-weight:600;letter-spacing:.02em;line-height:1.4}.project-info h3{margin:13px 0 12px;font-size:clamp(2.2rem,4vw,4.25rem);font-weight:650;letter-spacing:-.065em;line-height:.98}.project-info>p:last-child,.project-description{max-width:25ch;margin:0;font-size:1rem;line-height:1.55}.project-links{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:22px}.project-links a{color:var(--ink);font-size:.84rem;font-weight:600;text-decoration-thickness:1px;text-underline-offset:.24em}.project-links a:hover{color:var(--accent)}.project-links a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.project-card{border:1px solid var(--line)}.project-card--featured{aspect-ratio:1}.project-card--studio{display:grid;aspect-ratio:.92;min-width:0;padding:clamp(12px,2.4vw,28px);place-items:center;background:#dbe7f3}.project-card--media{aspect-ratio:auto;min-width:0;border:0;background:transparent}.case-study-video-frame{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden;border-radius:10px;background:#111820}.case-study-video{display:block;width:100%;height:100%;object-fit:contain}.case-study-player-ui{display:none}.case-study-video-frame.has-custom-player .case-study-player-ui{display:block}.case-study-player-main{position:absolute;top:50%;left:50%;z-index:1;display:flex;align-items:center;gap:10px;padding:12px 18px;transform:translate(-50%,-50%);border:1px solid #ffffff75;border-radius:8px;background:#246cc6;box-shadow:0 6px 22px #0007;color:#fff;font:inherit;font-size:.88rem;font-weight:700;white-space:nowrap;cursor:pointer}.case-study-player-main:hover{background:#155aa9}.case-study-player-main[hidden]{display:none}.case-study-player-main:focus-visible,.case-study-player-control:focus-visible,.case-study-player-seek:focus-visible{outline:2px solid #fff;outline-offset:3px}.case-study-play-glyph{width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:11px solid currentColor}.case-study-player-controls{position:absolute;right:10px;bottom:10px;left:10px;z-index:2;display:flex;align-items:center;gap:9px;min-height:46px;padding:6px 9px;border:1px solid #ffffff38;border-radius:7px;background:#101820db;color:#fff}.case-study-player-control{display:grid;flex:none;width:30px;height:30px;padding:0;place-items:center;border:0;border-radius:4px;background:transparent;color:inherit;cursor:pointer}.case-study-player-control:hover{background:#ffffff2b}.case-study-player-control[hidden]{display:none}.case-study-player-toggle:before{content:"";width:0;height:0;margin-left:3px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid currentColor}.case-study-video-frame.is-playing .case-study-player-toggle:before{width:4px;height:13px;margin-left:-7px;border:0;background:currentColor;box-shadow:7px 0 currentColor}.case-study-player-time{flex:none;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.67rem;font-variant-numeric:tabular-nums;white-space:nowrap}.case-study-player-seek{flex:1;min-width:35px;height:5px;margin:0;appearance:none;border-radius:2px;background:linear-gradient(to right,#6daaff 0 var(--progress, 0%),#ffffff75 var(--progress, 0%) 100%);cursor:pointer}.case-study-player-seek:disabled{cursor:default;opacity:.55}.case-study-player-seek::-webkit-slider-thumb{width:11px;height:11px;appearance:none;border:2px solid #6daaff;border-radius:2px;background:#fff}.case-study-player-seek::-moz-range-thumb{width:9px;height:9px;border:2px solid #6daaff;border-radius:2px;background:#fff}.case-study-player-control svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.case-study-mute-mark,.case-study-video-frame.is-muted .case-study-sound-wave{display:none}.case-study-video-frame.is-muted .case-study-mute-mark{display:block}.case-study-video-frame:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;border-radius:0}.case-study-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px;margin-top:24px}.case-study-actions a{color:var(--ink);font-size:.84rem;font-weight:600;text-decoration-thickness:1px;text-underline-offset:.24em}.case-study-actions a:hover{color:var(--accent)}.case-study-actions a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.case-study-actions .case-study-play-button{display:inline-flex;flex:0 0 100%;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:10px 20px;border-radius:8px;background:#335fff;color:#fff;font-size:1rem;font-weight:700;text-decoration:none}.case-study-actions .case-study-play-button:hover{background:#264de0;color:#fff}.case-study-play-icon{width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:13px solid currentColor}.case-study-results{display:flex;flex-wrap:wrap;gap:12px 28px;margin:0 0 20px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.case-study-results p{display:flex;flex-direction:column;gap:3px;margin:0}.case-study-results strong{font-size:1.4rem;font-weight:650;letter-spacing:-.045em}.case-study-results span{color:#5c6873;font-size:.75rem}.case-study{position:relative;grid-column:1 / -1;order:3;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px clamp(24px,5vw,72px);padding-top:clamp(24px,4vw,48px);border-top:1px solid var(--line);scroll-margin-top:24px}.case-study-heading{align-self:center}.case-study-heading h4{margin:0 0 14px;font-size:clamp(1.6rem,2.5vw,2.4rem);letter-spacing:-.055em;line-height:1.08}.case-study-heading>p:last-child{max-width:56ch;margin:0;line-height:1.55}@media(max-width:900px){.case-study-arrow{display:none}}.case-study-engineering{display:grid;gap:16px;align-content:center}.case-study-engineering p{margin:0;font-size:.88rem;line-height:1.5}.case-study-engineering strong{display:block;margin-bottom:5px}.case-study-gallery{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:8px}.case-study-gallery-item{min-width:0;margin:0}.case-study-image-frame{position:relative;aspect-ratio:16 / 10;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#e5e5db}.case-study-image-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;background:#fff}.case-study-image-frame.has-media img{opacity:1}.case-study-image-placeholder{position:absolute;inset:0;display:grid;padding:20px;place-items:center;color:#526058;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.75rem;text-align:center}.case-study-image-frame.has-media .case-study-image-placeholder{display:none}.case-study-gallery-item figcaption{margin-top:12px;color:#52606c;font-size:.78rem;line-height:1.4}.case-study-gallery-item figcaption strong{color:var(--ink);font-size:.9rem;font-weight:600}.analytics-preview{display:flex;flex-direction:column;width:100%;aspect-ratio:16 / 10;padding:clamp(14px,2vw,22px);border:1px solid #bfd2c8;border-radius:8px;background:#f6faf7;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .16s ease}.analytics-preview:hover{border-color:var(--accent)}.analytics-preview:focus-visible,.analytics-close:focus-visible,.analytics-table-wrap:focus-visible{outline:2px solid #7da5ff;outline-offset:3px}.analytics-preview-period,.analytics-period{margin:0;color:#52606c;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.7rem;font-weight:600}.analytics-preview-period{color:var(--ink)}.analytics-preview-window{display:block;flex:1;min-height:0;overflow:hidden}.analytics-preview-slide{display:flex;flex-direction:column;min-height:100%}.analytics-preview-title{display:block;margin:10px 0;font-size:clamp(.92rem,1.3vw,1.14rem);font-weight:650;line-height:1.25}.analytics-preview-chart{display:grid;gap:6px;margin:auto 0}.analytics-preview-bar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;overflow:hidden;min-height:26px;padding:4px 8px;border-radius:3px;background:#a74045;color:#fff;font-size:clamp(.62rem,.9vw,.75rem)}.analytics-preview-bar>span:not(.analytics-preview-bar-fill):not(.analytics-preview-after),.analytics-preview-bar strong{z-index:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analytics-preview-bar strong{flex:none;font-variant-numeric:tabular-nums}.analytics-preview-bar-fill{position:absolute;inset:0 auto 0 0;display:block;background:#238457}.analytics-preview-after{position:absolute;inset:2px auto 2px 2px;z-index:1;display:block;width:calc(var(--after) - 4px);border:2px solid #fff;border-radius:1px;pointer-events:none}.analytics-preview-trend{display:grid;gap:2px;padding:4px 6px;border:1px solid #bfd2c8;border-radius:3px;background:#f6faf7}.analytics-preview-trend-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;text-align:center}.analytics-preview-trend-stages>span{display:grid;gap:1px}.analytics-preview-trend-stages strong{color:#17553b;font-size:.7rem;font-variant-numeric:tabular-nums}.analytics-preview-trend-stages small{overflow:hidden;color:#52645a;font-size:.6rem;text-overflow:ellipsis;white-space:nowrap}.analytics-preview-footer{display:flex;justify-content:space-between;gap:8px;margin-top:12px;color:var(--ink);font-size:clamp(.61rem,.85vw,.75rem);font-weight:600}.analytics-preview-footer [data-analytics-preview-note]{color:#52606c}.analytics-preview-action{color:var(--accent)}.analytics-dialog{width:min(1120px,calc(100vw - 36px));max-width:none;max-height:min(92vh,920px);margin:auto;padding:0;border:1px solid #d5dfd9;border-radius:15px;background:#fbfcfa;color:var(--ink);box-shadow:0 28px 95px #12292b73}.analytics-dialog::backdrop{background:#152d36a3}.analytics-dialog-inner{padding:clamp(20px,3vw,34px)}.analytics-navigation{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 14px}.analytics-navigation>div:first-child{min-width:0}.analytics-actions{display:flex;flex:none;align-items:center;align-self:flex-end;gap:16px}.analytics-close{display:grid;flex:none;width:38px;height:38px;padding:0;place-items:center;border:1px solid #d2dcd6;border-radius:7px;background:#fff;color:var(--ink);font:inherit;font-size:1.45rem;line-height:1;cursor:pointer}.analytics-close:hover{border-color:var(--accent)}.analytics-navigation h2{margin:8px 0 0;font-size:clamp(1.25rem,2.5vw,1.9rem);letter-spacing:-.04em;line-height:1.15}.analytics-next-wrap{display:flex;flex:none;align-items:center;gap:12px;color:#52606c;font-size:.77rem;font-variant-numeric:tabular-nums}.analytics-kpis{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}.analytics-kpis p{display:grid;align-content:start;grid-template-rows:16px minmax(34px,auto) 16px;gap:5px;min-width:160px;margin:0;padding:15px 18px;border-radius:9px;background:#edf3ef}.analytics-kpis span{color:#53665b;font-size:.78rem}.analytics-kpis strong{font-size:clamp(1.25rem,2vw,1.7rem);font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1.1}.analytics-kpis small{color:#52645a;font-size:.72rem}.analytics-kpi-wide{min-width:270px!important}.analytics-legend{display:flex;flex-wrap:wrap;gap:10px 20px;margin:0 0 13px;color:#47594e;font-size:.76rem}.analytics-legend span{display:inline-flex;align-items:center;gap:7px}.analytics-legend i{display:inline-block;width:14px;height:14px;border-radius:2px}.analytics-legend-solid{background:#2e9c6b}.analytics-legend-outline{border:2px solid #215f43}.analytics-table-hint{display:none}.analytics-table-wrap{overflow-x:auto}.analytics-table{width:100%;min-width:760px;border-collapse:collapse;font-size:.82rem}.analytics-table th,.analytics-table td{border-bottom:1px solid #dce5df}.analytics-table thead th{padding:13px 12px;color:#435549;font-weight:600;text-align:left;white-space:nowrap}.analytics-table thead th:first-child{width:32%}.analytics-table thead th:nth-child(2){width:13%;text-align:right}.analytics-table thead th:nth-child(n+3){width:18.33%;text-align:center}.analytics-table tbody th{padding:15px 12px;font-weight:500;text-align:left}.analytics-user-count{padding:15px 12px;font-variant-numeric:tabular-nums;text-align:right}.analytics-value{padding:0;font-variant-numeric:tabular-nums}.analytics-comparison{position:relative;min-height:64px;overflow:hidden;background:var(--remainder-color);white-space:nowrap}.analytics-comparison--complete{--metric-color: #2e9c6b;--outline-color: #17553b;--remainder-color: #e4f2e9}.analytics-comparison--churn{--metric-color: #c86769;--outline-color: #803b3e;--remainder-color: #f8e8e7}.analytics-comparison--total{--metric-color: #5284e2;--outline-color: #244e9b;--remainder-color: #e7eeff}.analytics-comparison-values{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:3px;min-height:64px;padding:6px 8px;font-size:.72rem;font-variant-numeric:tabular-nums}.analytics-comparison-values span,.analytics-comparison-values strong{padding:2px 5px;background:#fffffff0;color:var(--ink);line-height:1.2}.analytics-comparison-values strong{border:1px solid var(--outline-color);color:var(--outline-color)}.analytics-comparison-before{position:absolute;inset:0 auto 0 0;width:var(--before);background:var(--metric-color)}.analytics-comparison-after{position:absolute;inset:3px auto 3px 0;width:var(--after);border:2px solid var(--outline-color);border-radius:1px;pointer-events:none}.analytics-trend-graph{margin:16px 0 18px;padding:14px 16px 12px;border:1px solid #d6e0da;border-radius:4px;background:#f3f7f4}.analytics-trend-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px}.analytics-trend-heading h4,.analytics-latency-heading{margin:0;color:var(--ink);font-size:.85rem}.analytics-trend-heading p{margin:0;color:#53665b;font-size:.7rem}.analytics-trend-svg{display:block;width:100%;max-width:640px;height:auto;margin:4px auto 0}.analytics-trend-svg--preview{margin:0;max-width:none}.analytics-trend-gridline{stroke:#ccd9d0;stroke-width:1}.analytics-trend-axis-label{fill:#53665b;font-size:10px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.analytics-trend-line{fill:none;stroke:#238457;stroke-width:2.5}.analytics-trend-point{fill:#fff;stroke:#17553b;stroke-width:2}.analytics-trend-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-width:640px;margin:0 auto;text-align:center}.analytics-trend-stages>div{display:grid;gap:2px;justify-items:center}.analytics-trend-stages span{color:#43574c;font-size:.72rem}.analytics-trend-stages strong{color:#17553b;font-size:1rem;font-variant-numeric:tabular-nums}.analytics-trend-stages small{color:#53665b;font-size:.65rem}.analytics-latency-heading{margin-bottom:10px}.analytics-latency-graph{display:grid;gap:17px;margin:0 0 29px;padding:22px;border:1px solid #d6e0da;border-radius:4px;background:#f3f7f4}.analytics-latency-stage-label{margin:0;font-size:.76rem;font-weight:650}.analytics-latency-stage-label--after{padding-top:14px;border-top:1px solid #d6e0da}.analytics-latency-axis{display:flex;justify-content:space-between;margin-left:112px;margin-right:76px;color:#53665b;font-size:.72rem;font-variant-numeric:tabular-nums}.analytics-latency-row{display:grid;grid-template-columns:100px minmax(0,1fr) 64px;align-items:center;gap:12px;font-size:.82rem}.analytics-latency-row strong{font-variant-numeric:tabular-nums;text-align:right}.analytics-latency-track{height:24px;border-right:1px solid #c7d5cd;background:repeating-linear-gradient(to right,#c7d5cd 0 1px,transparent 1px 25%),#e3ebe5}.analytics-latency-bar{display:block;height:100%;min-width:3px;background:#6aa8ff}.analytics-latency-bar--p95{background:#55bea1}.analytics-latency-bar--p99{background:#f1a35d}.analytics-latency-bar--maximum{border:2px solid var(--ink);background:transparent}.analytics-latency-bar--estimate{border:1px dashed #238457;background:#c1ddcb}.analytics-work{margin-top:26px;padding:17px 20px;border-left:3px solid #6d95ff;background:#edf4f0}.analytics-work h4{margin:0 0 7px;font-size:.9rem}.analytics-work p{margin:0;color:#43574c;font-size:.85rem;line-height:1.55}.analytics-note{margin:20px 0 0;color:#53665b;font-size:.71rem;line-height:1.5}.studio-window{height:100%}.studio-body{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);min-height:0}.studio-settings{display:flex;flex-direction:column;gap:17px;min-width:0;padding:clamp(16px,2.2vw,28px);border-radius:0 0 0 12px;background:#fff}.studio-field{display:grid;gap:8px;color:#4d5d6d;font-size:.75rem;font-weight:600}.studio-field select{width:100%;min-height:38px;padding:7px 10px;border:1px solid #d0dbe5;border-radius:6px;background:#f8fafc;color:var(--ink);font:inherit}.studio-field select:focus-visible,.studio-clip-options button:focus-visible,.studio-generate-button:focus-visible,.studio-transport-button:focus-visible,.studio-transport-seek:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.studio-preview-clips{display:flex;align-items:center;justify-content:space-between;flex-basis:100%;gap:12px;color:#b7c9d9;font-size:.75rem;font-weight:600}.studio-preview-clips[hidden]{display:none}.studio-clip-options{display:flex;gap:4px;padding:4px;border:1px solid #435a70;border-radius:7px;background:#23384b}.studio-clip-options button{min-width:35px;min-height:30px;border:0;border-radius:4px;background:transparent;color:#b7c9d9;font:inherit;cursor:pointer}.studio-clip-options button[aria-pressed=true]{background:#385a74;color:#fff;box-shadow:0 1px 4px #0000002e}.studio-options{min-width:0;margin:0;padding:0;border:0}.studio-options legend{margin-bottom:8px;padding:0;color:#4d5d6d;font-size:.75rem;font-weight:600}.studio-options-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.studio-option{display:grid;gap:4px;min-width:0;color:#86929d;font-size:.63rem;font-weight:600}.studio-option input{width:100%;min-width:0;height:29px;padding:5px 8px;overflow:hidden;border:1px solid #e0e6eb;border-radius:5px;background:#f2f4f6;color:#77838f;font:inherit;text-overflow:ellipsis;-webkit-text-fill-color:#77838f;opacity:1;cursor:not-allowed}.studio-generate-button{min-height:39px;padding:8px 14px;border:1px solid #176440;border-radius:6px;background:#217a50;color:#fff;font:inherit;font-size:.75rem;font-weight:700;cursor:pointer}.studio-generate-button:hover:not(:disabled){background:#19643f}.studio-generate-button:disabled{opacity:.7;cursor:wait}.studio-note{margin:auto 0 0;color:#788693;font-size:.68rem;line-height:1.4}.studio-preview-pane{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:12px;min-width:0;min-height:0;padding:clamp(15px,2.1vw,26px);border-radius:0 0 12px;background:#1a2a3a}.studio-preview-heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;color:#dce6ef;font-size:.7rem;font-weight:600}.studio-preview-heading span:last-child{color:#8ea9c1}.studio-preview-frame{position:relative;justify-self:center;width:auto;max-width:100%;height:100%;overflow:hidden;aspect-ratio:9 / 16;border:1px solid #53697c;border-radius:9px;background:#101d2b;box-shadow:0 12px 22px #0000003d}.studio-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#101d2b}.studio-play-cover{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;width:100%;padding:18px;border:0;background:radial-gradient(circle at 50% 19%,rgb(239 180 133 / 62%),transparent 35%),linear-gradient(160deg,#557a9c,#283d54 62%,#152433);color:#fff;text-align:center}.studio-cover-community{padding:9px 12px;border:1px solid rgb(255 255 255 / 32%);border-radius:5px;background:#ffffff24;font-size:clamp(.78rem,1.3vw,.95rem);font-weight:700}.studio-cover-action{color:#d5e6f5;font-size:.76rem}[data-video-studio][data-state=ready] .studio-play-cover,[data-video-studio][data-state=playing] .studio-play-cover,[data-video-studio][data-state=paused] .studio-play-cover{display:none}.studio-generation-overlay{position:absolute;z-index:1;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#0e1e2deb;color:#edf5fc;font-size:.76rem;font-weight:600;text-align:center}.studio-generation-overlay[hidden]{display:none}.studio-generation-spinner{width:38px;height:38px;border:3px solid rgb(255 255 255 / 25%);border-top-color:#92c7f3;border-radius:50%;animation:studio-spin .75s linear infinite}@keyframes studio-spin{to{transform:rotate(360deg)}}.studio-preview-note{min-height:1.4em;margin:0;color:#a8bacb;font-size:.68rem;line-height:1.4;text-align:center}.studio-transport{display:grid;gap:10px;padding:10px 12px 13px;border:1px solid #435a70;border-radius:8px;background:#23384b;box-shadow:inset 0 1px #ffffff0d}.studio-transport-row{display:flex;align-items:center;gap:9px}.studio-transport-button{display:grid;width:28px;height:28px;flex:none;padding:0;border:1px solid #627b91;border-radius:5px;place-items:center;background:#304b63;color:#f2f7fc;cursor:pointer}.studio-transport-button:disabled{opacity:.5;cursor:wait}.studio-transport-button svg{width:16px;height:16px}.studio-transport-play .studio-icon-pause,.studio-transport-mute .studio-icon-muted,.studio-transport-play[data-playing=true] .studio-icon-play,.studio-transport-mute[aria-pressed=true] .studio-icon-volume{display:none}.studio-transport-play[data-playing=true] .studio-icon-pause,.studio-transport-mute[aria-pressed=true] .studio-icon-muted{display:block}.studio-transport-time{display:flex;gap:4px;color:#d6e2ed;font:.68rem SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;white-space:nowrap}.studio-transport-time span:nth-child(2){color:#829cb3}.studio-transport-spacer{flex:1}.studio-transport-seek{width:100%;height:6px;margin:0;appearance:none;border-radius:20px;background:linear-gradient(to right,#7bbef0 var(--seek-progress, 0%),#536d83 var(--seek-progress, 0%));cursor:pointer}.studio-transport-seek:disabled{opacity:.55;cursor:default}.studio-transport-seek::-webkit-slider-thumb{width:11px;height:11px;appearance:none;border:2px solid #fff;border-radius:50%;background:#7bbef0;box-shadow:0 1px 4px #0000004d}.studio-transport-seek::-moz-range-thumb{width:8px;height:8px;border:2px solid #fff;border-radius:50%;background:#7bbef0;box-shadow:0 1px 4px #0000004d}.extension-project{position:relative;grid-template-columns:minmax(0,1fr);gap:25px}.extension-project .project-info{max-width:none}.extension-project .project-info h3{max-width:650px;margin-top:0;font-size:clamp(2.2rem,3.5vw,3.6rem)}.extension-project .project-description{max-width:65ch}.mobile-projects{margin-top:calc(var(--project-gap) * -.5);padding-top:calc(var(--project-gap) * .5);border-top:1px solid var(--line)}.mobile-projects>h3{margin:0 0 66px;font-size:clamp(1.7rem,2.6vw,2.5rem);font-weight:650;letter-spacing:-.055em}.mobile-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,38px)}.mobile-project{min-width:0;scroll-margin-top:56px}.mobile-project-art{position:relative;height:clamp(260px,25vw,310px);border:1px solid var(--line);border-radius:6px}.mobile-project-art--birds{background:#dce9dd}.mobile-project-art--music{background:#dbe8e8}.mobile-project-art--ytdl{background:#f1dfdf}.mobile-phone{position:absolute;z-index:1;top:-34px;left:48%;width:clamp(180px,17vw,215px);aspect-ratio:.51;padding:8px;transform:translate(-50%) rotate(-10deg);border:4px solid #29313a;border-radius:31px;background:#29313a;box-shadow:17px 24px 30px #1b273236}.mobile-project-art--music .mobile-phone{left:53%;transform:translate(-50%) rotate(10deg)}.mobile-project-art--ytdl .mobile-phone{left:47%;transform:translate(-50%) rotate(-7deg)}.mobile-project-art--birds .mobile-phone--bird-overview{z-index:2;left:37%;width:clamp(180px,16vw,205px);transform:translate(-50%) rotate(-11deg)}.mobile-project-art--birds .mobile-phone--bird-prediction{z-index:1;top:-10px;left:72%;width:clamp(153px,13vw,175px);transform:translate(-50%) rotate(10deg)}.mobile-project-art--birds .mobile-phone-screen img{object-fit:fill}.mobile-phone-camera{position:absolute;z-index:1;top:10px;left:50%;width:12px;height:12px;transform:translate(-50%);border-radius:50%;background:#151b23;box-shadow:0 0 0 2px #39434d}.mobile-phone-screen{width:100%;height:100%;overflow:hidden;border-radius:20px}.mobile-phone-screen img{display:block;width:100%;height:100%;object-fit:cover}.mobile-app-icon{position:absolute;z-index:2;top:22px;right:-12px;display:grid;width:104px;height:104px;overflow:hidden;place-items:center;transform:rotate(-8deg);border:4px solid var(--background);border-radius:24px;background:#1c3038;box-shadow:5px 9px 14px #1b273226}.mobile-app-icon img{display:block;width:100%;height:100%;object-fit:cover}.mobile-project-art--ytdl .mobile-app-icon{top:48px;right:-9px;transform:rotate(9deg)}.mobile-project-copy{padding:100px 5px 4px}.mobile-project-type{margin:0;color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.7rem;font-weight:600}.mobile-project h4{margin:8px 0 10px;font-size:clamp(1.45rem,2.1vw,2rem);letter-spacing:-.045em}.mobile-project-copy>p:not(.mobile-project-type){margin:0;font-size:.92rem;line-height:1.55}.mobile-project-links{display:flex;flex-wrap:wrap;gap:9px 16px;margin-top:18px}.mobile-project-links a{color:var(--ink);font-size:.82rem;font-weight:600;text-decoration-thickness:1px;text-underline-offset:.22em}.mobile-project-links a:hover{color:var(--accent)}@media(max-width:950px){.mobile-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:78px}}.libraries{margin-top:calc(var(--project-gap) * -.5);padding-top:calc(var(--project-gap) * .5);border-top:1px solid var(--line)}.libraries-heading{margin-bottom:30px}.libraries-heading h3{margin:0;font-size:clamp(1.7rem,2.6vw,2.5rem);font-weight:650;letter-spacing:-.055em}.library-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.library-list li{border-bottom:1px solid var(--line)}.library-list a{display:grid;grid-template-columns:minmax(0,1fr) 38px;align-items:center;gap:20px;padding:21px 12px;color:var(--ink);text-decoration:none;transition:background-color .18s ease}.library-list a:hover,.library-list a:focus-visible{background:#e9eee7}.library-copy{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);align-items:baseline;gap:24px}.library-name{font-size:clamp(1.3rem,2vw,1.8rem);font-weight:650;letter-spacing:-.045em}.library-description{color:#5c6873;font-size:.91rem;line-height:1.45}.library-arrow{display:grid;width:38px;height:38px;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:1.15rem;transition:color .18s ease,border-color .18s ease,transform .18s ease}.library-list a:hover .library-arrow,.library-list a:focus-visible .library-arrow{transform:translate(2px,-2px);border-color:var(--accent);color:var(--accent)}@media(max-width:640px){.github-activity-week:nth-child(-n+40){display:none}.library-list a{grid-template-columns:minmax(0,1fr) 38px;gap:16px;padding:18px 8px}.library-copy{display:block}.library-description{display:block;margin-top:4px}}.extension-details{display:flex;flex-wrap:wrap;align-items:center;gap:18px 32px;width:fit-content;max-width:100%;margin-top:22px;padding:17px 20px;border-radius:8px;background:#e9eee7}.extension-result{display:flex;flex-direction:column;gap:3px;margin:0}.extension-result strong{color:var(--accent);font-size:1.5rem;font-weight:650;letter-spacing:-.045em;line-height:1}.extension-result span{color:#5c6873;font-size:.75rem}.extension-project .project-links{gap:10px 20px;margin-top:0}.extension-project .project-links a{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.extension-project .project-links img{width:24px;height:24px;object-fit:contain}.extension-card{display:grid;grid-template-columns:minmax(0,1fr) 310px;height:clamp(540px,46vw,610px);min-height:0;padding:clamp(12px,2vw,25px);gap:clamp(12px,2vw,24px);background:#e3e8df}.extension-card[data-open=false]{grid-template-columns:minmax(0,1fr)}.extension-browser{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border:1px solid #ccd3ca;border-radius:11px;background:#fffdf8;box-shadow:0 10px 24px #283c2f14}.extension-try-arrow{z-index:1}.extension-try-arrow[hidden]{display:none}.extension-try-arrow path{stroke:#3b8054;stroke-width:3}.extension-browser-tabs{display:flex;align-items:center;gap:11px;height:38px;padding:6px 12px 0;border-bottom:1px solid #dce2db;background:#e9ede8}.extension-browser-tab{display:flex;align-items:center;gap:8px;align-self:stretch;width:min(235px,64%);padding:0 11px;border-radius:7px 7px 0 0;background:#f8faf7;color:#465a4c;font-size:.68rem;white-space:nowrap}.extension-browser-tab>span{overflow:hidden;text-overflow:ellipsis}.extension-browser-tab img{width:14px;height:14px;flex:none;object-fit:contain}.extension-browser-tab b{margin-left:auto;color:#87958b;font-size:.9rem;font-weight:400}.extension-browser-plus{color:#698071;font-size:1rem}.extension-browser-bar{display:flex;align-items:center;gap:10px;height:43px;padding:0 16px;border-bottom:1px solid #dce2db;background:#f8faf7}.extension-browser-dots{display:flex;gap:var(--window-dot-gap)}.extension-browser-dots i{width:var(--window-dot-size);height:var(--window-dot-size);border-radius:50%;background:var(--window-dot-red)}.extension-browser-dots i:nth-child(2){background:var(--window-dot-yellow)}.extension-browser-dots i:nth-child(3){background:var(--window-dot-green)}.extension-browser-nav{color:#87958b;font-size:.9rem;line-height:1}.extension-address{display:flex;align-items:center;gap:6px;flex:1;min-width:0;max-width:none;padding:5px 10px;border:1px solid #e1e7df;border-radius:5px;background:#fff;color:#708077;overflow:hidden;white-space:nowrap;font:.67rem SFMono-Regular,Consolas,monospace}.extension-address-lock{width:12px;height:12px;flex:none;fill:none;stroke:#63806e;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.extension-invite{display:inline-flex;align-items:center;gap:5px;flex:none;padding:5px 8px;border:1px solid #b9d9c4;border-radius:5px;background:#e8f5e9;color:#285e3f;font-size:.66rem;font-weight:700;white-space:nowrap}.extension-invite[hidden]{display:none}.extension-invite .arrow-icon{animation:extension-invite-arrow 1.2s ease-in-out 3}@keyframes extension-invite-arrow{50%{transform:translate(3px)}}.extension-launchers{display:flex;gap:3px;flex:none}.extension-launch{display:grid;width:30px;height:30px;padding:3px;border:1px solid transparent;border-radius:5px;place-items:center;background:transparent;cursor:pointer}.extension-launch:hover,.extension-launch[aria-expanded=true]{background:#e5eee5}.extension-launch[aria-pressed=true]{border-color:#adccb6}.extension-launch img{display:block;width:20px;height:20px;object-fit:contain}.extension-launch:focus-visible{outline:2px solid #28684a;outline-offset:2px}.extension-browser-body{flex:1;min-height:0;padding:clamp(20px,3vw,34px);overflow-y:auto;scrollbar-color:#b7c8b9 #f2f5ef;scrollbar-gutter:stable;scrollbar-width:thin}.extension-browser-body:focus-visible{outline:2px solid #28684a;outline-offset:-4px}.extension-page-heading>span,.extension-output>span,.extension-output-heading{color:#60766a;font:.65rem SFMono-Regular,Consolas,monospace;letter-spacing:.035em}.extension-page-heading h4{margin:0 0 3px;color:#243d31;font-family:Georgia,serif;font-size:clamp(2rem,4vw,3rem);font-weight:400;letter-spacing:-.055em}.extension-page-heading p{margin:0;color:#64766b;font-size:.78rem}.extension-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:24px 0}.extension-gallery figure{min-width:0;margin:0;border:1px solid #e1e6dc;border-radius:5px;background:#fff;transition:box-shadow .18s ease}.extension-card[data-mode=images] .extension-gallery figure{box-shadow:0 0 0 2px #3d805f29}.extension-gallery img{display:block;width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover}.extension-gallery figcaption{padding:8px 9px;color:#3f5348;font-size:.68rem;font-weight:650}.extension-page-table-wrap{margin-top:16px;border:1px solid #e0e5dc;border-radius:5px;transition:box-shadow .18s ease}.extension-card[data-mode=tables] .extension-page-table-wrap.is-selected{box-shadow:0 0 0 2px #3d805f2e}.extension-page-table{width:100%;border-collapse:collapse;color:#3e5347;font-size:.7rem;table-layout:fixed;text-align:left}.extension-page-table th:first-child{width:35%}.extension-page-table th:nth-child(2){width:35%}.extension-page-table th:nth-child(3){width:30%}.extension-panel[hidden]{display:none}.extension-page-table caption{padding:11px 13px;border-bottom:1px solid #e0e5dc;color:#314d3c;font-size:.8rem;font-weight:700;text-align:left}.extension-page-table th,.extension-page-table td{padding:8px 13px;border-bottom:1px solid #edf0e9}.extension-page-table tbody tr:last-child td{border-bottom:0}.extension-page-table th{background:#f4f7f1;font-weight:650}.extension-popup{display:flex;flex-direction:column;min-width:0;padding:16px;border:1px solid #d6ded3;border-radius:11px;background:#fff;box-shadow:0 10px 24px #283c2f1a}.extension-popup[hidden]{display:none}.extension-popup-heading{display:flex;align-items:center;gap:10px;margin-bottom:16px}.extension-popup-mark{width:32px;height:32px;border-radius:8px;object-fit:contain}.extension-popup-heading strong{display:block;color:#263c30;font-size:.84rem}.extension-popup-close{width:26px;height:26px;flex:none;margin-left:auto;padding:0;border:0;border-radius:4px;background:transparent;color:#6c7b70;font:inherit;font-size:1.2rem;line-height:1;cursor:pointer}.extension-popup-close:hover{background:#edf2eb;color:#285641}.extension-tabs,.extension-format{display:flex;padding:3px;border-radius:6px;background:#edf2eb}.extension-tabs button,.extension-format button{flex:1;min-height:32px;border:0;border-radius:4px;background:transparent;color:#607166;font:inherit;font-size:.72rem;font-weight:650;cursor:pointer}.extension-tabs button[aria-selected=true],.extension-format button[aria-pressed=true]{background:#fff;color:#285641;box-shadow:0 1px 3px #1836221f}.extension-panel{display:flex;flex:1;flex-direction:column;min-height:0}.extension-panel-intro{margin:16px 0 13px;color:#516456;font-size:.72rem;line-height:1.45}.extension-check,.extension-image-option{display:flex;align-items:center;gap:8px;color:#314638;font-size:.72rem;cursor:pointer}.extension-check input,.extension-image-option input{accent-color:#2b7650}.extension-dedupe{padding-bottom:11px;border-bottom:1px solid #edf0e9}.extension-dedupe span{margin-left:auto;color:#738278;font-size:.65rem}.extension-image-list{display:grid;gap:5px;margin:10px 0 14px}.extension-image-option{padding:3px 6px;border-radius:4px}.extension-image-option:hover{background:#f2f6ef}.extension-image-option img{width:33px;height:27px;border-radius:3px;object-fit:cover}.extension-output{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:auto;padding:10px 0;border-top:1px solid #edf0e9}.extension-output strong{color:#315b43;font-size:.7rem;text-align:right}.extension-download{width:100%;min-height:36px;border:0;border-radius:5px;background:#28684a;color:#fff;font:inherit;font-size:.72rem;font-weight:700;cursor:pointer}.extension-download:hover{background:#1e553b}.extension-download:disabled{opacity:.55;cursor:default}.extension-field{display:grid;gap:5px;color:#55685b;font-size:.68rem;font-weight:650}.extension-field select{width:100%;min-height:33px;padding:5px 8px;border:1px solid #d5dfd3;border-radius:4px;background:#fff;color:#314638;font:inherit}.extension-format{margin:13px 0}.extension-output-heading{display:flex;justify-content:space-between;gap:8px;margin-bottom:5px}.extension-code{flex:1;min-height:125px;max-height:172px;margin:0 0 12px;padding:10px;overflow:auto;border:1px solid #dce6da;border-radius:5px;background:#f5f8f2;color:#355842;font:.64rem/1.55 SFMono-Regular,Consolas,monospace}.extension-status{min-height:1em;margin:9px 0 0;color:#4c6857;font-size:.64rem;line-height:1.3}.extension-popup button:focus-visible,.extension-popup input:focus-visible,.extension-popup select:focus-visible{outline:2px solid #28684a;outline-offset:2px}.site-footer{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px 32px;padding:24px 0 36px;border-top:1px solid var(--line);color:#52606c;font-size:.85rem;line-height:1.5}.site-footer-info{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 24px}.site-footer-source{color:var(--ink);font-weight:600;text-underline-offset:.22em}.site-footer-source:hover{color:var(--accent)}.site-footer-deploy{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;text-decoration:none}.site-footer-deploy-dot{width:7px;height:7px;margin-right:3px;border-radius:50%;background:var(--accent)}.site-footer-deploy-label{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:.22em}.site-footer-deploy:hover .site-footer-deploy-label{color:var(--accent);text-decoration-color:currentColor}.site-footer-deploy time{font-variant-numeric:tabular-nums}.site-footer summary{width:fit-content;cursor:pointer}.site-footer summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.site-footer details p{max-width:65ch;margin:12px 0 0}@media(max-width:900px){.extension-card{grid-template-columns:1fr;height:auto}.extension-browser{height:440px}.extension-popup{max-width:none}.extension-image-list{grid-template-columns:repeat(2,minmax(0,1fr))}.case-study-gallery{grid-template-columns:1fr}.case-study-image-frame,.analytics-preview{min-height:220px}}@media(max-width:640px){.extension-try-arrow{display:none}.mobile-project-grid{grid-template-columns:1fr}.case-study-image-frame{min-height:0}.extension-browser-bar{gap:6px;padding:0 8px}.extension-browser-nav{display:none}.extension-address{font-size:.59rem}.extension-invite{padding:4px 6px;font-size:.59rem}.extension-launch{width:27px;height:27px}.extension-launch img{width:18px;height:18px}.extension-browser-body{padding:17px}.extension-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.extension-page-table th,.extension-page-table td{padding:7px}.extension-image-list{grid-template-columns:1fr}.page-shell{width:min(100% - 40px,1240px)}.site-header{min-height:68px}.site-nav{gap:10px}.cv-link{min-height:34px;padding:0 10px;font-size:.82rem}.intro{grid-template-columns:1fr;gap:32px;padding:32px 0 44px}.intro-copy{gap:32px;padding:0}h1{font-size:clamp(3.1rem,12vw,4.4rem)}.intro-details{border-top:1px solid var(--line);border-left:0}.experience{padding-left:0}.experience{padding-top:27px}.work-heading{margin-bottom:22px;padding-top:20px}h2{margin:0}.featured-project{grid-template-columns:1fr;gap:24px}.featured-project--reverse,.case-study-project{grid-template-columns:1fr}.featured-project--reverse .project-card{order:initial}.case-study{grid-template-columns:1fr}.analytics-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.analytics-dialog-inner{padding:20px}.analytics-navigation{flex-wrap:wrap;gap:10px}.analytics-navigation>div:first-child{flex-basis:100%}.analytics-actions{margin-left:auto}.analytics-kpis p{min-width:0;flex:1 1 115px;padding:12px}.analytics-kpi-wide{flex-basis:100%!important}.analytics-table-hint{display:block;margin:0 0 7px;color:#aeb8ca;font-size:.7rem}.analytics-latency-graph{gap:13px;padding:14px 10px}.analytics-latency-axis{margin-left:74px;margin-right:55px;font-size:.58rem}.analytics-latency-row{grid-template-columns:66px minmax(0,1fr) 48px;gap:8px;font-size:.68rem}.project-card--featured{aspect-ratio:1}.project-card--studio{aspect-ratio:auto;min-height:690px}.project-card--media{aspect-ratio:auto}.studio-window{height:auto}.studio-body{grid-template-columns:1fr;grid-template-rows:auto auto}.studio-settings{gap:12px;padding:16px;border-radius:0}.studio-note{margin-top:0}.studio-preview-pane{min-height:420px;grid-template-rows:auto minmax(250px,1fr) auto auto;border-radius:0 0 12px 12px}}@media(max-width:360px){h1{font-size:2.8rem}.mobile-project-art--birds .mobile-phone--bird-prediction{left:67%}}@media(max-width:400px){.studio-titlebar{padding:0 11px}.studio-settings,.studio-preview-pane{padding:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.library-list a,.library-arrow,.github-activity-day{transition:none}.studio-generation-spinner,.extension-invite .arrow-icon{animation:none}}
