@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--muted:#626976;--faint:#656d79}*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-body);--font-mono:var(--font-mono-family);--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-body);--default-mono-font-family:var(--font-mono-family)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}html[data-scroll-locked]{overflow:hidden}html[data-scroll-locked=gutter]{scrollbar-gutter:stable}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.6}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:0 0;border:0}a{color:inherit;text-decoration:none}button:disabled{cursor:not-allowed;opacity:.45}a,button,input,textarea{outline-offset:5px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent)}::selection{background:var(--selection)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}img{max-width:100%;height:auto}svg{flex-shrink:0}dialog{color:var(--ink)}dialog::backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.skip-link{z-index:200;background:var(--surface);border:1px solid var(--line);padding:10px 16px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:16px}.skip-link:hover{color:var(--accent);border-color:var(--accent)}.ribbon-scene{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}}@layer components{.site-tooltip{z-index:200;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);width:max-content;max-width:min(260px,100vw - 24px);color:var(--ink);box-shadow:var(--shadow);font:450 11px/1.45 var(--font-body);text-align:left;text-wrap:pretty;overflow-wrap:anywhere;margin:0;padding:7px 10px;display:none;position:fixed;inset:auto}.site-tooltip[data-open]{display:block}.site-tooltip[data-tone=startup]{border-color:var(--console-boot-ink)}@supports (color:color-mix(in lab, red, red)){.site-tooltip[data-tone=startup]{border-color:color-mix(in srgb, var(--console-boot-ink) 22%, transparent)}}.site-tooltip[data-tone=startup]{background:var(--console-night);color:var(--console-boot-ink)}.field{border:1px solid var(--field-line);border-radius:var(--radius-control);color:var(--ink);transition:border-color .16s,box-shadow .16s}.field:hover{border-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.field:hover{border-color:color-mix(in srgb, var(--ink) 40%, var(--field-line))}}.field:focus-within,.field:focus-visible,.field[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);outline:none}.field input,input.field,textarea.field{outline:none}.select-menu{min-width:0;position:relative}.select-trigger{min-width:0;color:var(--muted);text-align:left;align-items:center;gap:8px;display:flex}.select-chevron{transition:rotate .22s var(--ease-out);flex:none}.select-trigger[aria-expanded=true] .select-chevron{rotate:180deg}.select-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.select-menu[data-variant=field] .select-trigger{background:var(--paper);width:100%;min-height:36px;color:var(--ink);justify-content:space-between;padding:8px 10px;font-size:12px}.select-menu[data-variant=field] .select-chevron{color:var(--muted)}.select-menu[data-variant=compact] .select-trigger{min-height:36px;font:11px/1 var(--font-mono);letter-spacing:.06em;border-radius:999px;gap:7px;padding:7px 9px 7px 8px}.select-list{z-index:200;overscroll-behavior:contain;background:var(--surface);min-width:176px;max-width:min(360px,100vw - 24px);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-float);box-shadow:var(--shadow);scrollbar-width:thin;scrollbar-color:var(--line) transparent;transform-origin:top;animation:menu-in .16s var(--ease-out) both;align-content:start;gap:1px;margin:0;padding:5px;display:grid;position:fixed;inset:auto;overflow-y:auto}.select-list:not(:popover-open){display:none}.select-list[data-side=top]{transform-origin:bottom}.select-option{border-radius:var(--radius-control);color:var(--ink);text-align:left;grid-template-columns:minmax(0,1fr) auto 14px;align-items:center;gap:12px;padding:6px 9px 6px 10px;font-size:13px;line-height:1.45;transition:background .16s;display:grid}.select-list .select-option:is(:hover,:focus):not(:disabled){background:var(--hover);outline:none}.select-option-hint{font:10px/1 var(--font-mono);letter-spacing:.06em;color:var(--faint)}.select-option svg{color:var(--accent)}.collapsible{transition:grid-template-rows .38s var(--ease-out);grid-template-rows:0fr;display:grid}.collapsible[data-open]{grid-template-rows:1fr}.collapsible-clip{min-height:0;overflow:hidden}.collapsible[data-settled] .collapsible-clip{overflow:visible}.collapsible-inner{opacity:0;filter:blur(4px);transition:opacity .28s, filter .42s, translate .42s var(--ease-out);translate:0 -4px}.collapsible[data-open] .collapsible-inner{opacity:1;filter:none;translate:0}:root[data-motion=reduced] :is(.collapsible,.collapsible-inner){transition:none}.intro{padding-top:25px;padding-bottom:18px;position:relative}.intro-device{float:right;grid-template-columns:minmax(0,1fr);place-items:center;width:233px;height:133px;margin:1px -5px 0 20px;display:grid}.overview:not(.is-compact) .intro{--intro-device-width:244px;grid-template-columns:minmax(0, 1fr) var(--intro-device-width);align-items:center;column-gap:22px;display:grid}.overview:not(.is-compact) .intro-heading{grid-area:1/1;align-self:center;min-width:0;position:relative}.overview:not(.is-compact) .intro-device{--device-scale:1.18;float:none;width:var(--intro-device-width);grid-area:1/2;place-self:center;height:auto;margin:0;translate:54px}.overview:not(.is-compact) .intro-description,.overview:not(.is-compact) .intro-links,.overview:not(.is-compact) .intro-scroll-cue{grid-column:1/-1}:root:not([data-theme=dark]) .intro-device{--console-shell-lit:#584047;--console-shell:#3d2930;--console-shell-shade:#291b20;--console-shell-edge:#956b77;--console-screen:#42212c;--console-grain-opacity:.22}.location{font:11px/1.6 var(--font-mono);color:var(--faint);letter-spacing:.4px;margin:0 0 12px}.overview:not(.is-compact) .location{margin-bottom:14px}.location{overflow:hidden}.location-parts{flex-wrap:wrap;margin-left:-1.6em;display:flex}.location-parts>span{text-indent:-1.6em;padding-left:1.6em}.location-parts>span:before{content:"·";text-indent:0;text-align:center;width:1.6em;display:inline-block}.overview:not(.is-compact) .intro{min-height:calc(80svh - var(--header-height,100px));align-content:center;padding-bottom:4vh}@media (min-width:761px){.overview:not(.is-compact) .intro{min-height:calc(72svh - var(--header-height,100px));--intro-drift:min(11svh, 104px);padding-bottom:5vh}}@supports (animation-timeline:scroll()){:root:not([data-motion=reduced]) .overview:not(.is-compact) .intro{animation:linear both intro-close-up;animation-timeline:scroll(root);animation-range:0 45svh}:root:not([data-motion=reduced]) .overview:not(.is-compact) .intro-scroll-cue{animation:linear both intro-cue-leave;animation-timeline:scroll(root);animation-range:0 12svh}}@keyframes intro-close-up{to{translate:0 var(--intro-drift,min(18svh, 170px))}}@keyframes intro-cue-leave{to{opacity:0;visibility:hidden}}.overview:not(.is-compact) .intro{pointer-events:none}.overview:not(.is-compact) .intro>:not([data-reveal=above],[data-reveal=below]){pointer-events:auto}.intro .intro-name{letter-spacing:-1.1px;font-size:38px;font-weight:500;line-height:1.2}.overview:not(.is-compact) .intro-name{letter-spacing:-.04em;font-size:clamp(56px,1.4vw + 42px,64px);line-height:1}.overview:not(.is-compact) .role{margin-top:8px;font-size:22px}.role{color:var(--accent);margin-top:7px;font-size:14px}.intro-description{clear:both;max-width:550px;color:var(--muted);padding-top:21px;font-size:16px;line-height:1.7}.overview:not(.is-compact) .intro-description{text-wrap:pretty;max-width:31em;padding-top:46px;font-size:18px;line-height:1.55}.overview:not(.is-compact) .intro-scroll-cue{position:absolute;bottom:1vh;left:50%;translate:-50%}.intro-scroll-cue{width:36px;height:36px;color:var(--muted);justify-self:center;place-items:center;margin-top:52px;display:grid}.intro-scroll-cue svg{width:18px;height:18px}:root:not([data-motion=reduced]) .intro-scroll-cue svg{animation:2.2s ease-in-out infinite scroll-cue}@keyframes scroll-cue{0%,to{opacity:.28;translate:0}50%{opacity:1;translate:0 8px}}.intro-scroll-cue:hover svg{opacity:1;animation:none;translate:0 3px}.intro-links{flex-wrap:wrap;gap:4px 10px;margin:19px 0 0 -10px;font-size:14px;display:flex}.overview:not(.is-compact) .intro-links{margin-top:16px}.is-compact .intro-links{grid-template-columns:repeat(2,max-content);display:grid}.intro-links>button{grid-column:1/-1;justify-self:center}.overview.is-compact .intro{text-align:center}.overview.is-compact .location-parts{justify-content:center;margin-left:0}.overview.is-compact .location-parts>span{text-indent:0;padding-left:0}.overview.is-compact .location-parts>span:before{display:none}.overview.is-compact .intro-links{justify-content:center;margin-left:0}.intro-links a,.intro-links button{color:var(--muted);border-radius:999px;align-items:center;gap:7px;padding:6px 10px;display:flex}.intro-resume-check{flex-basis:100%}.intro-resume-check:empty{display:none}.intro-links .link-icon{width:15px;height:15px;transition:scale .2s var(--ease-out);flex:none}.intro-links :is(a,button):hover .link-icon{scale:1.12}.intro-links a[aria-current=page]{color:var(--ink);position:relative}.intro-links a[aria-current=page] .link-icon{color:var(--accent)}.intro-links .link-arrow{width:11px;height:11px;color:var(--faint)}.section-heading svg,.row-title svg,.text-link svg{width:13px;height:13px;color:var(--faint)}.overview-section{margin-top:37px;scroll-margin-top:clamp(32px,12vh,120px)}.intro{scroll-margin-top:clamp(24px,8vh,80px)}.overview-rail{margin-top:12px;display:grid}.rail-head{position:relative}.rail-head:before{content:"";background:var(--line);pointer-events:none;height:1px;position:absolute;bottom:0;left:-10px;right:-10px}.compact-section-link{border-radius:var(--radius-control);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin:0 -10px;padding:13px 10px;font-size:12px;transition:color .19s;display:flex}.phone-sections{display:none}.rail-section[data-current] .compact-section-link{color:var(--ink);font-weight:600}.rail-list{padding:4px 0 14px}.rail-jump-toggle{width:100%;min-height:36px;color:var(--toggle-ink);text-align:left;align-items:center;gap:7px;padding:6px 0;font-size:11px;line-height:1.6;display:flex}.rail-jump-toggle[aria-expanded=true]{color:var(--control-ink)}.rail-jump-toggle svg{width:12px;height:12px;transition:scale .2s var(--ease-out), rotate .26s var(--ease-out);flex:none}.rail-jump-toggle[aria-expanded=true] svg{rotate:180deg}.rail-jump-line{background:var(--line);flex:16px;height:1px;margin-left:4px}.rail-jump-list{padding:2px 0 6px;display:grid}.rail-jump-list a{min-width:0;color:var(--muted);align-items:baseline;gap:8px;padding:5px 0;font-size:13px;line-height:1.4;display:flex}.rail-jump-list a>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.rail-jump-note{text-overflow:ellipsis;white-space:nowrap;max-width:45%;color:var(--faint);flex:none;font-size:12px;overflow:hidden}.compact-section-link svg{width:14px;height:14px}.section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding-bottom:12px;display:flex}.section-heading h2{letter-spacing:-.01em;font-size:17px;font-weight:600}.section-heading>a{color:var(--muted);border-radius:999px;align-items:center;gap:7px;min-height:36px;margin-right:-12px;padding:8px 12px;font-size:13px;display:flex}.experience-row{grid-template-columns:32px minmax(0,1fr) auto;gap:13px;padding:20px 0 18px;display:grid;position:relative}.experience-row:after{content:"";background:var(--line);width:1px;position:absolute;top:54px;bottom:-10px;left:15px}.experience-row:last-child:after{display:none}.organization-mark{border-radius:var(--radius-control);background:var(--surface);width:31px;height:32px;box-shadow:inset 0 0 0 1px var(--line);place-items:center;font-size:13px;font-weight:600;line-height:1;display:grid}.row-copy{min-width:0}.row-title{font-size:14px;font-weight:500;line-height:1.5;display:block}.row-title-end{white-space:nowrap}.row-title svg{vertical-align:-.12em;transition:transform .2s var(--ease-out);margin-left:7px;display:inline-block}.experience-row:is(:hover,:focus-visible) .row-title svg,.project-row:is(:hover,:focus-visible) .row-title svg{transform:translate(3px)}.row-role{color:var(--muted);margin-top:2px;font-size:13px;display:block}.row-summary{color:var(--muted);margin-top:5px;font-size:14px;line-height:1.55;display:block}.row-period{font:11px/1.8 var(--font-mono);color:var(--faint);white-space:nowrap;padding-top:2px}.timeline-node{display:none}.featured-list{padding-top:5px}.project-row{grid-template-columns:37px minmax(0,1fr);gap:14px;padding:15px 0;display:grid}.project-row .row-summary{margin-top:3px}.project-row .row-title{font-size:15px;font-weight:600}.row-label{color:var(--accent);margin-top:1px;font-size:13px;display:block}.skill-preview{grid-template-columns:180px 1fr;align-items:start;gap:22px;padding:13px 0;font-size:13.5px;display:grid}.skill-preview>.skill-list{padding-top:3px}.skill-preview>span:first-child{align-items:center;gap:7px;display:flex}.skill-preview>span:first-child>.skill-area-mark{margin-right:4px}.skill-preview>span:first-child>svg{width:13px;height:13px;color:var(--faint);transition:transform .2s var(--ease-out);flex-shrink:0}.skill-preview:is(:hover,:focus-visible)>span:first-child>svg{transform:translate(3px)}.education-degree{margin-top:6px}.education-degree:after{display:none}.education-honours{gap:4px;margin:-6px 0 0;padding:0 0 4px 45px;font-size:13px;line-height:1.5;list-style:none;display:grid}.education-honour-title{color:var(--ink);font-weight:500}.education-honour-detail{color:var(--muted)}.education-honour-detail:before,.education-honour-period:before{content:" · ";color:var(--faint)}.education-honour-period{font:11px/1.6 var(--font-mono);color:var(--faint)}.education-entries{margin:0;padding:0;list-style:none}.education-entry{justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;font-size:14px;line-height:1.5;display:flex}.education-entry+.education-entry{border-top:1px solid var(--line)}.education-entry-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.education-entry-title{color:var(--ink);font-weight:500}a.education-entry-title{align-self:flex-start;align-items:center;gap:6px;transition:color .19s;display:inline-flex}a.education-entry-title>svg{width:12px;height:12px;color:var(--faint);transition:transform .2s var(--ease-out)}a.education-entry-title:is(:hover,:focus-visible)>svg{transform:translate(3px)}.education-entry-meta{color:var(--muted);font-size:13px}.education-entry-period{color:var(--faint);font:11px/1.8 var(--font-mono);flex:none}.education-credential{color:var(--accent);align-self:flex-start;align-items:center;gap:3px;margin-top:3px;font-size:13px;display:inline-flex}.education-credential>svg{width:12px;height:12px}.education-page .education-degree{margin-top:18px}.personal-line{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:15px;margin-top:38px;padding-top:11px;font-size:11px;display:flex}.personal-line a{align-items:center;gap:6px;padding:5px 0;transition:color .19s;display:flex}.personal-line svg{width:12px;height:12px}.personal-line>span{color:var(--faint)}.media-viewer{margin:30px 0 34px}.media-viewer-trigger{border:1px solid var(--line);cursor:zoom-in;background:var(--surface);border-radius:5px;width:100%;padding:0;display:block;overflow:hidden}.media-viewer-trigger img{width:100%;height:auto;transition:transform .28s var(--ease-out);display:block}.media-viewer-trigger:hover img,.media-viewer-trigger:focus-visible img{transform:scale(1.012)}.media-viewer figcaption{color:var(--faint);justify-content:space-between;align-items:center;gap:14px;padding-top:7px;font-size:10px;display:flex}.media-viewer-hint{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;opacity:0;transition:opacity .2s}.media-viewer:hover .media-viewer-hint,.media-viewer:focus-within .media-viewer-hint{opacity:1}.media-viewer-dialog{border:1px solid var(--line);background:var(--paper);width:min(92vw,1120px);max-width:none;max-height:92dvh;color:var(--ink);border-radius:8px;margin:auto;padding:18px;inset:0}.media-viewer-dialog::backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.media-viewer-dialog>img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:calc(92dvh - 72px);margin:0 auto;display:block}.media-viewer-dialog p{color:var(--muted);margin:10px 0 0;font-size:11px}.media-viewer-close{z-index:1;border:1px solid var(--line);background:var(--surface);border-radius:50%;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:10px;right:10px}:root[data-motion=reduced] .media-viewer-trigger img{transition:none}.workspace.detail-open{grid-template-columns:320px minmax(0,1fr);gap:46px;max-width:1180px;height:calc(100dvh - 194px);margin-top:16px;margin-bottom:0}.detail-open .overview-scroll{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:transparent transparent;overflow-y:auto}.detail-open .overview-scroll:is(:hover,:focus-within){scrollbar-color:var(--line) transparent}.is-compact{padding:0 18px 40px}.is-compact .intro{padding-top:2px;padding-bottom:0}.is-compact .intro-device{display:none}.is-compact .location{margin-bottom:8px;font-size:10px}.is-compact .intro h1{letter-spacing:-.65px;font-size:27px}.is-compact .role{font-size:12px}.is-compact .intro-description{padding-top:12px;font-size:12px;line-height:1.65}.is-compact .intro-links{flex-wrap:wrap;gap:0;margin-top:6px;font-size:11px}.is-compact .experience-row{grid-template-columns:22px minmax(0,1fr);gap:9px;padding:12px 0}.is-compact .experience-row:after{top:38px;bottom:-1px;left:10px}.is-compact .organization-mark{border-radius:4px;width:22px;height:24px;font-size:10px}.is-compact .row-title{font-size:12px}.is-compact .row-role,.is-compact .row-label{font-size:11px}.is-compact .row-period,.is-compact .row-summary{display:none}.is-compact .project-row{grid-template-columns:25px minmax(0,1fr);gap:8px;padding:10px 0}.is-compact .overview-education,.is-compact .personal-line{display:none}.is-compact .skill-preview{grid-template-columns:minmax(0,1fr);gap:2px;padding:10px 0;font-size:12px}.is-compact .skill-preview>.skill-list{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;padding:0;font-size:11px;display:block;overflow:hidden}.is-compact .skill-preview .skill-pill{font:inherit;color:inherit;box-shadow:none;background:0 0;padding:0;display:inline}.is-compact .skill-preview .skill-pill:not(:last-child):after{content:" · "}.is-compact .skill-preview :is(.skill-pill svg,.skill-area-mark){display:none}.active .row-title{color:var(--accent)}.detail-panel{border-left:1px solid var(--line);flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden}.detail-toolbar{color:var(--faint);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:4px 18px;padding:9px 18px 19px 38px;font-size:11px;display:flex}.detail-toolbar a{border-radius:999px;align-items:center;gap:7px;margin-left:-11px;padding:6px 11px;display:flex}.detail-toolbar a+a{margin-left:auto}.detail-toolbar a[href="/about/"]:hover svg,.detail-toolbar a[href="/contact/"]:hover svg{transform:translate(3px)}.detail-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding:13px 28px 70px 38px;scroll-padding-top:22px;overflow-y:auto}.detail-article{max-width:660px}.detail-meta{font:11px/1.8 var(--font-mono);color:var(--faint);margin-bottom:9px}.detail-meta-part:before{content:" · "}.detail-meta a{color:var(--accent);transition:color .19s}.detail-meta a:hover{color:var(--ink)}.detail-stages{border-left:1px solid var(--line);gap:12px;margin:18px 0 0;padding:2px 0 2px 18px;list-style:none;display:grid}.detail-stages li{position:relative}.detail-stages li:before{content:"";background:var(--paper);width:7px;height:7px;box-shadow:inset 0 0 0 1.25px var(--accent);border-radius:50%;position:absolute;top:7px;left:-22px}.detail-stages li:first-child:before{background:var(--accent)}.detail-stages p{color:var(--muted);margin:2px 0 0;font-size:14px;line-height:1.6}.detail-title{letter-spacing:-.7px;outline:none;font-size:31px;font-weight:500;line-height:1.25}.detail-subtitle{color:var(--accent);margin-top:12px;font-size:16px}.detail-subtitle[data-kind=organization]{color:var(--ink);font-weight:500}.detail-lead{color:var(--muted);margin:19px 0 26px;font-size:16px;line-height:1.75}.collection-intro{max-width:36em;margin:10px 0 22px}.detail-section{border-radius:4px;margin-top:30px;scroll-margin-top:22px;transition:background .5s}.detail-section h2{margin-bottom:13px;font-size:13px;font-weight:500}.detail-section p{color:var(--muted);margin:0 0 15px;font-size:14px;line-height:1.8}.source-links{flex-wrap:wrap;gap:14px 25px;font-size:13px;display:flex}.source-links a,.text-link{align-items:center;gap:6px;display:inline-flex}.source-links svg{width:14px;height:14px}.detail-more{margin-top:40px;font-size:12px}.related-projects{border-top:1px solid var(--line)}.related-projects a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:15px 0;font-size:13px;display:flex}.related-projects small{color:var(--muted);margin-top:5px;font-size:12px;display:block}.related-projects svg{width:15px;height:15px;color:var(--faint)}.page-heading{justify-content:space-between;align-items:center;gap:15px;display:flex}.page-heading>span{font:10px var(--font-mono);color:var(--faint)}.project-index .reveal>a{border-bottom:1px solid var(--line);padding:21px 0;display:block}.project-index h2{justify-content:space-between;align-items:center;gap:15px;font-size:16px;display:flex}.project-index h2 svg{width:15px;color:var(--faint)}.project-index p{color:var(--muted);margin-top:7px;font-size:13px}.project-index span{font:10px/1.8 var(--font-mono);color:var(--faint);margin-top:8px;display:block}.project-index .reveal>a[data-size=compact],.project-fold a{padding:13px 0;display:block}:is(.project-index a[data-size=compact],.project-fold a) h2{font-size:14px;font-weight:500}:is(.project-index a[data-size=compact],.project-fold a) p{margin-top:3px}:is(.project-index a[data-size=compact],.project-fold a) span{margin-top:4px}.project-index,.project-fold{--path-col:66px;--path-gap:22px}.project-fold{margin-top:6px}.project-index .reveal>a[data-size=compact],.project-fold a{padding-left:calc(var(--path-col) + var(--path-gap))}@media (max-width:760px){.project-index,.project-fold{--path-col:50px;--path-gap:17px}}.project-fold .experience-gap-roles{padding-bottom:4px}.project-fold a{border-bottom:1px solid var(--line)}.empty-results{color:var(--muted);padding:30px 0;font-size:13px}.skill-groups{margin-top:25px}.skill-groups .detail-section{border-bottom:1px solid var(--line);padding:0 0 27px}.detail-section .skill-evidence-label{font:10.5px/1.7 var(--font-mono);color:var(--faint);margin:16px 0 0}.skill-evidence{flex-wrap:wrap;gap:10px 22px;margin-top:6px;display:flex}.skill-evidence a{align-items:center;gap:6px;font-size:12px;display:flex}.skill-evidence svg{width:12px;height:12px;color:var(--faint)}.detail-article :is(.source-links a,.text-link,.skill-evidence a){color:var(--accent);font-weight:500}.detail-article :is(.source-links a,.text-link,.skill-evidence a):hover{color:var(--ink)}.detail-article :is(.source-links a,.text-link,.skill-evidence a),.detail-meta a,a.education-credential{text-underline-offset:3px;text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.detail-article :is(.source-links a,.text-link,.skill-evidence a),.detail-meta a,a.education-credential{-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent)}}.detail-article :is(.source-links a,.text-link,.skill-evidence a),.detail-meta a,a.education-credential{transition:color .19s,text-decoration-color .19s}.detail-article :is(.source-links a,.text-link,.skill-evidence a):hover,.detail-meta a:hover,a.education-credential:hover{text-decoration-color:currentColor}.detail-article .detail-section>h2{color:var(--ink);font-size:15px;font-weight:600}.contact-page{container:contact/inline-size}.contact-intro{grid-template-columns:216px minmax(0,1fr);align-items:stretch;gap:28px;margin:24px 0 34px;display:grid}.contact-portrait-frame{min-height:0}.contact-portrait{object-fit:cover;object-position:74% 30%;filter:saturate(.7);border-radius:4px;width:100%;height:100%;min-height:210px;display:block}.detail-lead.contact-line{text-wrap:balance;margin:-6px 0 10px}.contact-intro .contact-links{border-top:0;padding-top:0}.contact-intro .contact-links a{padding-top:10px;padding-bottom:10px}.contact-links{border-top:1px solid var(--line);margin:0;padding:6px 0 0;list-style:none}.contact-links li{align-items:stretch;gap:4px;display:flex}.contact-links a{border-radius:var(--radius-control);flex:1;grid-template-columns:22px minmax(0,1fr) 14px;align-items:center;gap:16px;margin:0 -12px;padding:17px 12px;transition:background .22s;display:grid}.contact-mark{width:22px;height:22px;color:var(--muted);place-items:center;transition:color .2s;display:grid}.contact-mark svg{opacity:1;width:18px;height:18px}.contact-handle{color:var(--ink);overflow-wrap:anywhere;font-size:16px;transition:color .2s}.contact-links a>svg{width:14px;height:14px;color:var(--faint);opacity:1;transition:opacity .2s, transform .26s var(--ease-out)}.contact-links a:hover .contact-mark,.contact-links a:focus-visible .contact-mark{color:var(--ink)}.contact-links a:hover>svg,.contact-links a:focus-visible>svg{opacity:1;transform:translate(2px,-2px)}.contact-links .contact-reveal{border-radius:var(--radius-control);text-align:left;font:inherit;color:inherit;flex:1;grid-template-columns:22px minmax(0,1fr) 14px;align-items:center;gap:16px;margin:0 -12px;padding:17px 12px;transition:background .22s;display:grid}.contact-intro .contact-links .contact-reveal{padding-top:10px;padding-bottom:10px}.contact-reveal>svg{width:14px;height:14px;color:var(--faint);opacity:0;transition:opacity .2s}.contact-reveal:not(:disabled):is(:hover,:focus-visible) .contact-mark{color:var(--ink)}.contact-reveal:not(:disabled):is(:hover,:focus-visible)>svg{opacity:1}.contact-reveal[aria-busy=true] .contact-handle{color:var(--muted)}.contact-reveal:disabled{opacity:1;cursor:not-allowed}.contact-reveal:disabled .contact-handle,.contact-reveal:disabled .contact-mark{color:var(--muted)}.contact-links .contact-email{flex-wrap:wrap}.contact-email-verification{flex-basis:100%}.contact-email-verification:empty{display:none}.contact-email-note{color:var(--muted);flex-basis:100%;margin:-4px 0 6px 38px;font-size:12px;line-height:1.4}.contact-copy{width:34px;height:34px;color:var(--faint);border-radius:999px;align-self:center;place-items:center;display:grid}.contact-copy svg{width:15px;height:15px}.contact-note{color:var(--muted);margin-top:22px;font-size:12px}.citation-highlight{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.citation-highlight{background:color-mix(in srgb, var(--accent) 14%, transparent)}}.citation-highlight{box-shadow:0 0 0 12px var(--accent)}@supports (color:color-mix(in lab, red, red)){.citation-highlight{box-shadow:0 0 0 12px color-mix(in srgb, var(--accent) 14%, transparent)}}.skill-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.skill-pill{font:500 12.5px/1.65 var(--font-sans);letter-spacing:.005em;white-space:nowrap;color:var(--muted);background:var(--ink);border-radius:4px;align-items:center;gap:5px;padding:1px 7px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.skill-pill{background:color-mix(in srgb, var(--ink) 3%, transparent)}}.skill-pill{box-shadow:inset 0 0 0 1px var(--ink)}@supports (color:color-mix(in lab, red, red)){.skill-pill{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 9%, transparent)}}.skill-pill svg{opacity:.8;flex:none;width:11px;height:11px}.skill-list[data-size=small] .skill-pill{padding:0 6px;font-size:11.5px}.project-index .skill-list{margin-top:9px}.skill-area-mark{width:28px;height:28px;color:var(--ink);background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);border-radius:6px;flex:none;place-items:center;display:inline-grid}.skill-area-mark svg{width:15px;height:15px}.skill-groups .detail-section>h2{align-items:center;gap:11px;display:flex}.about-copy{max-width:600px;margin-top:24px}.about-copy p{color:var(--muted);margin:0 0 20px;font-size:15px;line-height:1.8}.about-contact{min-height:44px;margin-top:5px;font-size:12px}.collection-controls{grid-template-columns:minmax(0,1fr) auto;gap:12px;margin:22px 0 8px;display:grid}.collection-search{color:var(--muted);grid-column:1/-1;align-items:center;gap:10px;padding:10px 12px;display:flex}.collection-search input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;font-size:13px}.collection-search input::placeholder{color:var(--muted)}.collection-primary{min-width:0}.collection-tabs{flex-wrap:wrap;gap:3px;display:flex}.collection-tabs button{min-height:36px;color:var(--muted);border-bottom:1px solid #0000;border-radius:5px;align-items:center;gap:7px;padding:6px 8px;font-size:11px;display:flex}.collection-tabs button[aria-pressed=true]{color:var(--accent);border-bottom-color:var(--accent)}.collection-tabs button span{font:9px var(--font-mono);color:var(--muted)}.collection-tabs button:disabled{opacity:.5;cursor:default}.collection-primary-select,.collection-primary[data-many] .collection-tabs{display:none}.collection-primary[data-many] .collection-primary-select{align-items:center;gap:10px;display:flex}.collection-primary-select>span{color:var(--muted);font-size:11px}.collection-primary-select .select-menu{flex:0 260px}.collection-controls button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.collection-extra{border:1px solid var(--line);border-radius:var(--radius-control);cursor:pointer;min-height:36px;color:var(--muted);grid-area:2/2;justify-content:center;align-self:start;align-items:center;gap:7px;padding:7px 10px;font-size:11px;display:flex}.collection-controls:not([data-primary]) .collection-search{grid-column:1}.collection-controls:not([data-primary]) .collection-extra{grid-row:1;align-self:stretch}.collection-extra[aria-expanded=true]{color:var(--ink)}.collection-extra[aria-expanded=true]>svg:last-child{transform:rotate(180deg)}.filter-badge{background:var(--accent);min-width:17px;color:var(--paper);font:10px/17px var(--font-mono);text-align:center;border-radius:4px}.collection-fields-panel{grid-column:1/-1}.collection-status{transition:margin-top .38s var(--ease-out)}.collection-fields-panel:not([data-open])+.collection-status{margin-top:-12px}.collection-fields{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px;display:grid}.collection-fields[data-fields="2"],.collection-fields[data-fields="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}.collection-field{flex-direction:column;gap:6px;min-width:0;display:flex}.collection-field>span{color:var(--muted);font-size:11px}.collection-status{border-bottom:1px solid var(--line);grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;min-height:28px;padding-bottom:9px;display:flex}.collection-status p{color:var(--muted);font:10px var(--font-mono)}.collection-reset{color:var(--toggle-ink);padding:4px;font-size:11px;transition:color .19s}.collection-selections{flex-wrap:wrap;grid-column:1/-1;gap:6px;display:flex}.collection-selections button{border:1px solid var(--line);max-width:100%;color:var(--muted);overflow-wrap:anywhere;text-align:left;border-radius:5px;align-items:center;gap:7px;padding:5px 8px;font-size:10px;display:flex}.collection-selections svg{flex-shrink:0}.site-header{view-transition-name:site-header}.site-footer{view-transition-name:site-footer}.overview-scroll{view-transition-name:overview}.detail-panel{view-transition-name:detail}html[data-route-transition] .workspace{transition:none}html[data-route-transition] .detail-panel,html[data-route-transition] .route-content,html[data-route-transition] .detail-panel [data-reveal]{opacity:1!important;filter:none!important;transform:translate(0)!important}html[data-route-transition] .detail-panel [data-reveal] :is(.row-copy,.project-index a>div,.detail-section,.related-projects a)>*,html[data-route-transition] .detail-panel [data-reveal] :is(.organization-mark,.project-thumbnail){opacity:1!important;translate:none!important;rotate:none!important;scale:none!important}::view-transition-group(*){animation-duration:var(--motion-route);animation-timing-function:var(--ease-out)}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}@property --wipe-r{syntax:"<length>";inherits:false;initial-value:0}html[data-theme-transition] .site-header,html[data-theme-transition] .site-footer,html[data-theme-transition] .overview-scroll,html[data-theme-transition] .detail-panel,html[data-language-transition] .site-header,html[data-language-transition] .site-footer,html[data-language-transition] .overview-scroll,html[data-language-transition] .detail-panel{view-transition-name:none}html[data-theme-transition]::view-transition-old(root){animation:none}html[data-theme-transition]::view-transition-new(root){animation:theme-wipe .64s var(--ease-out) both;-webkit-mask-image:radial-gradient(circle at var(--wipe-x,50%) var(--wipe-y,50%), black calc(var(--wipe-r) - 90px), transparent var(--wipe-r));-webkit-mask-image:radial-gradient(circle at var(--wipe-x,50%) var(--wipe-y,50%), black calc(var(--wipe-r) - 90px), transparent var(--wipe-r));-webkit-mask-image:radial-gradient(circle at var(--wipe-x,50%) var(--wipe-y,50%), black calc(var(--wipe-r) - 90px), transparent var(--wipe-r));mask-image:radial-gradient(circle at var(--wipe-x,50%) var(--wipe-y,50%), black calc(var(--wipe-r) - 90px), transparent var(--wipe-r))}html[data-theme-transition]::view-transition-image-pair(root){isolation:auto}@keyframes theme-wipe{0%{--wipe-r:0px}to{--wipe-r:var(--wipe-max,200vmax)}}html[data-language-transition]::view-transition-old(root){animation:.16s both language-out}html[data-language-transition]::view-transition-new(root){animation:language-in .26s var(--ease-out) both}@keyframes language-out{to{opacity:0;filter:blur(4px)}}@keyframes language-in{0%{opacity:0;filter:blur(4px)}}.icon-swap{width:17px;height:17px;display:block;position:relative}.icon-swap svg{transition:opacity .3s, transform .3s var(--ease-out);position:absolute;inset:0}.icon-swap[data-active=sun] svg:last-child,.icon-swap[data-active=moon] svg:first-child{opacity:0;transform:rotate(90deg)scale(.6)}::view-transition-old(overview){animation:.26s both view-leave}::view-transition-new(overview){animation:view-arrive var(--motion-route) var(--ease-out) both}::view-transition-old(detail){animation:.28s both view-leave}::view-transition-new(detail){animation:detail-arrive var(--motion-route) var(--ease-out) both}@keyframes view-leave{to{opacity:0;filter:blur(6px)}}@keyframes view-arrive{0%{opacity:0;filter:blur(6px)}}@keyframes detail-arrive{0%{opacity:0;filter:blur(9px);transform:translate(32px)}}html[data-route-transition=swap] .detail-toolbar{view-transition-name:detail-toolbar}html[data-route-transition=swap] .overview-scroll [data-reveal],html[data-route-transition=swap] .overview-scroll [data-reveal] :is(.row-copy,.project-row>span,.skill-preview)>*{opacity:1!important;filter:none!important;transform:translate(0)!important}html[data-route-transition=swap]::view-transition-image-pair(overview){isolation:isolate}html[data-route-transition=swap]::view-transition-image-pair(detail-toolbar){isolation:isolate}html[data-route-transition=swap]::view-transition-old(overview){mix-blend-mode:plus-lighter;animation:.24s linear both route-swap-out}html[data-route-transition=swap]::view-transition-old(detail-toolbar){mix-blend-mode:plus-lighter;animation:.24s linear both route-swap-out}html[data-route-transition=swap]::view-transition-new(overview){mix-blend-mode:plus-lighter;animation:.24s linear both route-swap-in}html[data-route-transition=swap]::view-transition-new(detail-toolbar){mix-blend-mode:plus-lighter;animation:.24s linear both route-swap-in}html[data-route-transition=swap]::view-transition-group(overview){overflow:clip}html[data-route-transition=swap]::view-transition-old(overview){animation:route-swap-out .2s linear both, overview-scroll-out var(--motion-route) var(--ease-out) both}html[data-route-transition=swap]::view-transition-new(overview){animation:route-swap-in .3s linear both, overview-scroll-in var(--motion-route) var(--ease-out) both}@keyframes overview-scroll-out{to{transform:translateY(var(--overview-shift,0px))}}@keyframes overview-scroll-in{0%{transform:translateY(calc(var(--overview-shift,0px) * -1))}}html[data-route-transition=swap]::view-transition-old(detail){animation:.16s ease-out both route-swap-out}@keyframes route-swap-out{to{opacity:0}}@keyframes route-swap-in{0%{opacity:0}}[data-reveal]{--reveal-spring:cubic-bezier(.2, 1.32, .36, 1);--reveal-settle:cubic-bezier(.2, .7, .2, 1);transition:opacity .34s var(--reveal-settle), transform .52s var(--reveal-spring), filter .44s var(--reveal-settle);transition-delay:var(--reveal-delay,0s)}[data-reveal-synced]{--reveal-delay:0s}[data-reveal=below],[data-reveal=above]{opacity:0;filter:blur(7px)saturate(0)contrast(.7);pointer-events:none;transition-duration:.28s,.34s,.28s;transition-delay:0s;transition-timing-function:cubic-bezier(.4,0,1,1)}[data-reveal=below]{transform-origin:50% 0;transform:translateY(16px)scale(.985)}[data-reveal=above]{transform-origin:50% 100%;transform:translateY(-10px)scale(.985)}[data-reveal] :is(.row-copy,.project-row>span,.project-index a>div,.skill-preview,.entry-line,.entry-meta,.detail-section,.related-projects a)>*{transition:opacity .3s var(--reveal-settle), translate .46s var(--reveal-spring);transition-delay:calc(var(--reveal-delay,0s) + var(--piece,0) * 45ms)}[data-reveal] :is(.row-copy,.project-row>span,.project-index a>div,.skill-preview,.entry-line,.entry-meta,.detail-section,.related-projects a)>:nth-child(2){--piece:1}[data-reveal] :is(.row-copy,.project-row>span,.project-index a>div,.skill-preview,.entry-line,.entry-meta,.detail-section,.related-projects a)>:nth-child(3){--piece:2}[data-reveal] :is(.row-copy,.project-row>span,.project-index a>div,.skill-preview,.entry-line,.entry-meta,.detail-section,.related-projects a)>:nth-child(n+4){--piece:3}:is([data-reveal=below],[data-reveal=above]) :is(.row-copy,.project-row>span,.project-index a>div,.skill-preview,.entry-line,.entry-meta,.detail-section,.related-projects a)>*{opacity:.2;transition-duration:.2s;transition-delay:0s;translate:0 7px}[data-reveal] :is(.organization-mark,.project-thumbnail){transition:scale .52s var(--reveal-spring), rotate .52s var(--reveal-spring);transition-delay:calc(var(--reveal-delay,0s) + 20ms)}:is([data-reveal=below],[data-reveal=above]) :is(.organization-mark,.project-thumbnail){transition-duration:.2s;transition-delay:0s;rotate:-4deg;scale:.88}[data-reveal-instant],[data-reveal-instant] *{transition:none!important}span[data-reveal]{display:inline-block}.site-footer{background:linear-gradient(transparent, var(--paper))}@supports (color:color-mix(in lab, red, red)){.site-footer{background:linear-gradient(transparent, color-mix(in srgb, var(--paper) 90%, transparent))}}.edge-blur{pointer-events:none;position:fixed;left:0;right:0}.edge-blur i{position:absolute;inset:0}.edge-blur i:first-child{--edge-blur:1px;--edge-reach:60%}.edge-blur i:nth-child(2){--edge-blur:2.5px;--edge-reach:40%}.edge-blur i:nth-child(3){--edge-blur:5px;--edge-reach:22%}.edge-blur i:nth-child(4){--edge-blur:7px;--edge-reach:8%}.edge-blur[data-edge=bottom]{z-index:9;height:calc(var(--edge-bottom-height,140px) * var(--edge-room,0));bottom:0}.edge-blur[data-edge=bottom] i{-webkit-backdrop-filter:blur(var(--edge-blur));backdrop-filter:blur(var(--edge-blur));-webkit-mask-image:linear-gradient(to top, black 0, black var(--edge-reach), transparent calc(var(--edge-reach) * 1.6 + 8%));-webkit-mask-image:linear-gradient(to top, black 0, black var(--edge-reach), transparent calc(var(--edge-reach) * 1.6 + 8%));-webkit-mask-image:linear-gradient(to top, black 0, black var(--edge-reach), transparent calc(var(--edge-reach) * 1.6 + 8%));mask-image:linear-gradient(to top, black 0, black var(--edge-reach), transparent calc(var(--edge-reach) * 1.6 + 8%))}.edge-blur[data-column=side]{right:auto}.edge-blur[data-column=side]:not([data-active]){display:none}.edge-blur[data-edge=top]{z-index:39;height:calc(var(--header-height) + var(--edge-top-run,80px) * var(--edge-room,0));top:0}@media (max-width:760px){.edge-blur[data-edge=bottom]{--edge-bottom-height:110px}.edge-blur[data-edge=top]{--edge-top-run:60px}}.edge-blur[data-edge=top] i{-webkit-backdrop-filter:blur(var(--edge-blur));backdrop-filter:blur(var(--edge-blur));-webkit-mask-image:linear-gradient(to bottom, black 0, black var(--edge-reach), transparent calc(var(--edge-reach) * 1.6 + 8%));-webkit-mask-image:linear-gradient(to bottom, black 0, black var(--edge-reach), transparent calc(var(--edge-reach) * 1.6 + 8%));-webkit-mask-image:linear-gradient(to bottom, black 0, black var(--edge-reach), transparent calc(var(--edge-reach) * 1.6 + 8%));mask-image:linear-gradient(to bottom, black 0, black var(--edge-reach), transparent calc(var(--edge-reach) * 1.6 + 8%))}.detail-toolbar{background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(1.2);backdrop-filter:blur(18px)saturate(1.2)}.site-header:after{content:"";z-index:-1;pointer-events:none;opacity:0;height:var(--header-height);background:linear-gradient(to top, transparent, var(--paper));transition:opacity .26s;position:fixed;top:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.site-header:after{background:linear-gradient(to top, transparent, color-mix(in srgb, var(--paper) 90%, transparent))}}:root[data-scrolled] .site-header:after{opacity:1}.console-dialog::backdrop,.assistant-dialog::backdrop{opacity:0;transition:opacity .32s, display .32s allow-discrete, overlay .32s allow-discrete}.console-dialog[open]::backdrop,.assistant-dialog[open]::backdrop{opacity:1}@starting-style{.console-dialog[open]::backdrop,.assistant-dialog[open]::backdrop{opacity:0}}.experience-list{position:relative}.experience-row:after{display:none}.experience-path{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.experience-path path{fill:none;stroke-linecap:round}.experience-path-line{stroke:var(--line);stroke-width:1px}.experience-path-fill{stroke:var(--accent);stroke-width:1.25px}.experience-path-dot{fill:var(--paper);stroke:var(--faint);stroke-width:1px;transition:fill .32s,stroke .32s}.experience-path-dot.is-lit{stroke:var(--accent)}.experience-path-dot.is-lit:is(.is-open,.is-stage){fill:var(--accent)}.experience-list .organization-mark{outline-offset:-1px;transition:outline-color .42s var(--ease-out);outline:1px solid #0000;position:relative}.experience-list [data-lit]>.organization-mark{outline-color:var(--accent);animation:path-reached .64s var(--ease-out)}@keyframes path-reached{0%{box-shadow:inset 0 0 0 1px var(--line), 0 0 0 0 color-mix(in srgb, var(--accent) 45%, transparent)}to{box-shadow:inset 0 0 0 1px var(--line), 0 0 0 6px transparent}}:root[data-motion=reduced] .experience-list [data-lit]>.organization-mark{animation:none}.experience-gap-line,.rail-jump-line{position:relative}.experience-gap-line:after,.rail-jump-line:after{content:"";background:var(--accent);transform-origin:100%;transition:scale var(--open-line-out) var(--ease-out);position:absolute;inset:0;scale:0 1}.experience-gap-toggle[aria-expanded=true] .experience-gap-line:after,.rail-jump-toggle[aria-expanded=true] .rail-jump-line:after{transform-origin:0;transition-duration:var(--open-line-in);scale:1}.rail-section[data-current] .rail-head:after,.intro-links a[aria-current=page]:after{content:"";background:var(--accent);transform-origin:0;height:1px;animation:open-line var(--open-line-in) var(--ease-out) 80ms both;pointer-events:none;position:absolute;bottom:0;left:-10px;right:-10px}.intro-links a[aria-current=page]:after{bottom:2px;left:10px;right:10px}.collection-fields{position:relative}.collection-fields:before{content:"";background:var(--accent);transform-origin:100%;height:1px;transition:scale var(--open-line-out) var(--ease-out);pointer-events:none;position:absolute;top:-1px;left:6px;right:6px;scale:0 1}.collapsible[data-open]>.collapsible-clip>.collapsible-inner>.collection-fields:before{transform-origin:0;transition-duration:var(--open-line-in);scale:1}.collection-tabs{position:relative}.collection-tab-line{width:var(--tab-line-width,0);background:var(--accent);height:1px;translate:var(--tab-line-x,0) var(--tab-line-y,0);transform-origin:0;pointer-events:none;visibility:hidden;position:absolute;top:0;left:0}.collection-tab-line[data-ready]{visibility:visible;animation:open-line var(--open-line-in) var(--ease-out) both;transition:translate var(--open-line-in) var(--ease-out), width var(--open-line-in) var(--ease-out)}.collection-tabs button[aria-pressed=true]{border-bottom-color:#0000}@keyframes open-line{0%{scale:0 1}}.media-viewer-dialog{opacity:0;filter:blur(8px);transition:opacity .28s, transform .45s var(--ease-out), filter .4s, display .4s allow-discrete, overlay .4s allow-discrete;transform:translateY(18px)scale(.97)}.media-viewer-dialog[open]{opacity:1;filter:none;transform:none}.media-viewer-dialog::backdrop{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;transition:opacity .35s, display .35s allow-discrete, overlay .35s allow-discrete}.media-viewer-dialog[open]::backdrop{opacity:1}@starting-style{.media-viewer-dialog[open]{opacity:0;filter:blur(8px);transform:translateY(18px)scale(.97)}.media-viewer-dialog[open]::backdrop{opacity:0}}:root[data-motion=reduced]::view-transition-group(*){animation:none}:root[data-motion=reduced] .icon-swap svg,:root[data-motion=reduced] .experience-gap-line:after,:root[data-motion=reduced] .rail-jump-line:after,:root[data-motion=reduced] .collection-fields:before,:root[data-motion=reduced] .collection-tab-line{transition:none}:root[data-motion=reduced] .rail-section[data-current] .rail-head:after,:root[data-motion=reduced] .intro-links a[aria-current=page]:after,:root[data-motion=reduced] .collection-tab-line{animation:none}:root[data-motion=reduced] [data-reveal]{opacity:1;filter:none;transition:none;transform:none}:root[data-motion=reduced] [data-reveal] :is(.row-copy,.project-row>span,.project-index a>div,.skill-preview,.entry-line,.entry-meta,.detail-section,.related-projects a)>*,:root[data-motion=reduced] [data-reveal] :is(.organization-mark,.project-thumbnail){opacity:1;transition:none;translate:none;rotate:none;scale:none}:root[data-motion=reduced] .experience-row:hover,:root[data-motion=reduced] .project-row:hover,:root[data-motion=reduced] .skill-preview:hover,:root[data-motion=reduced] .related-projects a:hover,:root[data-motion=reduced] .contact-links a:hover,:root[data-motion=reduced] .experience-entry:hover,:root[data-motion=reduced] .project-index .reveal>a:hover,:root[data-motion=reduced] .contact-links .contact-reveal:hover,:root[data-motion=reduced] :is(.experience-row,.project-row,.skill-preview,.related-projects a,.contact-links a,.contact-links .contact-reveal,.experience-entry,.project-index .reveal>a):hover:before{translate:none}.organization-mark{z-index:1;background:var(--surface);box-shadow:0 0 0 4px var(--paper), inset 0 0 0 1px var(--line);position:relative;overflow:hidden}.organization-mark img{object-fit:contain;width:100%;height:100%;padding:15%;transform:scale(.95)}.organization-mark[data-organization^=uottawa],.organization-mark[data-organization=stem-outreach]{background:#fff}.organization-mark[data-organization^=uottawa] img,.organization-mark[data-organization=stem-outreach] img{padding:4%;transform:none}.organization-mark[data-organization=capital-tech],.organization-mark[data-organization=digitera],.organization-mark[data-organization=voyage],.organization-mark[data-organization=city-ottawa]{background:#fff}.organization-mark[data-organization=capital-tech] img{padding:12%}.project-row{grid-template-columns:68px minmax(0,1fr);align-items:center;gap:19px;padding:19px 0}.project-thumbnail{perspective:500px;flex-shrink:0;width:62px;height:56px;display:block;position:relative}.thumbnail-front,.thumbnail-back{border:1px solid var(--line);background:var(--surface);transition:transform .5s var(--ease-out), box-shadow .4s;border-radius:4px;place-items:center;display:grid;position:absolute;inset:2px 0;overflow:hidden}.thumbnail-back{background:var(--hover);transform:rotate(-10deg)translate(-4px)}.thumbnail-front{box-shadow:0 2px 5px var(--ink);transform:rotate(5deg)}@supports (color:color-mix(in lab, red, red)){.thumbnail-front{box-shadow:0 2px 5px color-mix(in srgb, var(--ink) 8%, transparent)}}.thumbnail-front{color:var(--accent)}.thumbnail-front img{object-fit:cover;width:100%;height:100%;display:block}.thumbnail-front .thumbnail-mark{object-fit:contain;padding:18%}.thumbnail-front>svg{width:42%;height:42%}.project-thumbnail[data-tile=dark] .thumbnail-front{background:#211f20;border-color:#211f20}.project-thumbnail[data-tile=hover] .thumbnail-front{background:var(--hover);color:var(--muted)}a:hover>.project-thumbnail .thumbnail-front,a:focus-visible>.project-thumbnail .thumbnail-front{box-shadow:0 6px 14px var(--ink);transform:rotate(0)translateY(-4px)scale(1.07)}@supports (color:color-mix(in lab, red, red)){a:hover>.project-thumbnail .thumbnail-front,a:focus-visible>.project-thumbnail .thumbnail-front{box-shadow:0 6px 14px color-mix(in srgb, var(--ink) 12%, transparent)}}a:hover>.project-thumbnail .thumbnail-back{transform:rotate(-15deg)translate(-8px,1px)}.is-compact .project-row{grid-template-columns:30px minmax(0,1fr);gap:11px}.is-compact .project-thumbnail{width:27px;height:29px}.is-compact .thumbnail-back{display:none}.is-compact .thumbnail-front{transform:none}.is-compact .thumbnail-front .thumbnail-mark{padding:14%}.experience-identity{margin-bottom:19px}.experience-identity .organization-mark{border-radius:9px;width:44px;height:44px}.project-index .reveal>a{grid-template-columns:66px minmax(0,1fr);align-items:center;gap:22px;display:grid}.project-index .project-thumbnail,.project-index .project-thumbnail span{margin:0}.related-projects>a>span:not(.project-thumbnail){flex:1}.related-projects .project-thumbnail{width:43px;height:40px}.credited-media{margin-bottom:30px}.credited-media .media-viewer{margin-bottom:0}.media-credit{color:var(--faint);margin-top:5px;font-size:10px;display:block}.media-credit:hover{text-decoration:underline}@supports (animation-timeline:view()){:root:not([data-motion=reduced]) .media-viewer-trigger img{animation:linear both image-settle;animation-timeline:view();animation-range:entry}@keyframes image-settle{0%{scale:1.06}to{scale:1}}}@media (max-width:760px){.project-row{grid-template-columns:55px minmax(0,1fr);gap:17px}.project-thumbnail{width:49px;height:47px}.project-index .reveal>a{grid-template-columns:50px minmax(0,1fr);gap:17px}}:root[data-motion=reduced] a:hover>.project-thumbnail .thumbnail-front{transform:none}:root[data-motion=reduced] .thumbnail-back{display:none}.experience-list,.experience-years{--path-col:32px;--path-gap:13px;--path-step:10px}.experience-row[data-tier="1"] .row-title{letter-spacing:-.01em;font-size:16px;font-weight:600}.row-org{margin-top:2px;font-size:14px;line-height:1.5;display:block}.row-org-name{font-weight:500}.row-type{color:var(--accent)}.row-org .row-type{white-space:nowrap}.row-org .row-type:before{content:" · ";color:var(--faint)}.experience-stages{padding:0 0 14px calc(var(--path-col) + var(--path-gap));gap:4px;margin:-6px 0 0;list-style:none;display:grid}.experience-stage-head{font:11px/1.6 var(--font-mono);color:var(--faint);display:block}.experience-stage-head .row-type,.experience-stage-role{font:500 13px/1.5 var(--font-sans)}.experience-stage-role{color:var(--ink)}.experience-stage-role+.row-type:before,.experience-stage-period:before{content:" · ";color:var(--faint)}.experience-stages p{max-width:34em;color:var(--muted);margin:2px 0 8px;font-size:14px;line-height:1.55}.experience-stage-toggle{text-align:left;min-height:28px;color:var(--toggle-ink);align-items:center;gap:6px;padding:2px 0;display:flex}.experience-stage-toggle[aria-expanded=true]{color:var(--control-ink)}.experience-stage-toggle>svg{width:12px;height:12px;transition:scale .2s var(--ease-out), rotate .26s var(--ease-out);flex:none}.experience-stage-toggle[aria-expanded=true]>svg{rotate:180deg}.experience-stage-hint{font:11px/1.6 var(--font-mono);opacity:0;transition:opacity .19s, translate .2s var(--ease-out);translate:-4px}.experience-stage-toggle:is(:hover,:focus-visible) .experience-stage-hint{opacity:1;translate:none}html[data-scrolling] .experience-stage-toggle:hover .experience-stage-hint{opacity:0}@media (hover:none){.experience-stage-hint{opacity:1;translate:none}}.row-meta{font:10.5px/1.7 var(--font-mono);color:var(--faint);margin-top:3px;display:block}.organization-mark[data-size]{box-shadow:inset 0 0 0 1px var(--line)}.organization-mark[data-size=small]{border-radius:5px;width:22px;height:22px}.organization-mark[data-size=tiny]{border-radius:4px;width:16px;height:16px}.organization-mark[data-size] svg{width:62%;height:62%}.experience-entry{align-items:baseline;min-width:0;display:grid}.experience-entry>.organization-mark{grid-area:mark;align-self:start}.entry-line{flex-wrap:wrap;grid-area:line;align-items:baseline;column-gap:8px;min-width:0;display:flex}.entry-role{min-width:0;color:var(--ink);align-items:center;gap:6px;font-weight:500;line-height:1.5;display:inline-flex}.entry-role svg{width:12px;height:12px;color:var(--faint);transition:transform .2s var(--ease-out);flex:none}.experience-entry:is(:hover,:focus-visible) .entry-role svg{transform:translate(3px)}.entry-meta{color:var(--muted);grid-area:meta;font-size:13px;line-height:1.5;display:block}.entry-type{white-space:nowrap;color:var(--accent)}.entry-org+.entry-type:before,.entry-place:before{content:" · ";color:var(--faint)}.entry-place{font:10.5px/1.7 var(--font-mono);color:var(--faint)}.entry-period{font:11px/1.8 var(--font-mono);color:var(--faint);white-space:nowrap;grid-area:period;padding-left:16px}.experience-entry:is([data-tier="2"],[data-tier="3"]){grid-template-columns:var(--path-col) minmax(0, 1fr) auto;column-gap:var(--path-gap);padding-left:var(--path-step)}.experience-entry:is([data-tier="2"],[data-tier="3"])>.organization-mark{justify-self:center}.experience-entry[data-tier="2"]{grid-template-areas:"mark line period""mark meta meta";padding-block:10px 12px}.experience-entry[data-tier="2"]>.organization-mark{margin-top:1px}.experience-entry[data-tier="2"] .entry-role{font-size:14px}.experience-entry[data-tier="2"] .entry-meta{margin-top:1px}.experience-entry[data-tier="3"]{grid-template-areas:"mark line period"".meta meta";padding-block:6px 7px}.experience-entry[data-tier="3"]>.organization-mark{margin-top:3px}.experience-entry[data-tier="3"] .entry-role{color:var(--muted);font-size:12.5px}.experience-entry[data-tier="3"] .entry-meta{color:var(--faint);font-size:12px}.experience-gap-toggle{width:100%;min-height:36px;padding:6px 0 7px calc(var(--path-col,0px) + var(--path-gap,0px) + var(--path-step,0px));color:var(--toggle-ink);text-align:left;align-items:center;column-gap:7px;font-size:11px;line-height:1.6;display:flex;position:relative}.experience-gap-toggle[aria-expanded=true]{color:var(--control-ink)}.experience-gap-count{white-space:nowrap;font-variant-numeric:tabular-nums;flex:none}.experience-gap-chevron{color:currentColor;width:12px;height:12px;transition:scale .2s var(--ease-out), rotate .26s var(--ease-out);flex:none}.experience-gap-toggle[aria-expanded=true] .experience-gap-chevron{rotate:180deg}.experience-gap-line{background:var(--line);flex:16px;min-width:16px;height:1px;margin-left:4px}.experience-gap-names{min-width:0;color:var(--muted);opacity:0;filter:blur(3px);transition:grid-template-columns .36s var(--ease-out), opacity .24s, filter .36s;flex:0 auto;grid-template-columns:0fr;display:grid}.experience-gap-names>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.experience-gap-names>span:before{content:"— ";color:var(--faint)}.experience-gap-toggle[aria-expanded=false]:is(:hover,:focus-visible) .experience-gap-names{opacity:1;filter:none;grid-template-columns:1fr}html[data-scrolling] .experience-gap-toggle[aria-expanded=false]:hover .experience-gap-names{opacity:0;filter:blur(3px);grid-template-columns:0fr}.experience-gap-roles{padding:0 0 8px}.collapsible[data-open] .experience-gap-role{animation:gap-role-arrive .36s var(--ease-out) backwards;animation-delay:calc(80ms + var(--i,0) * 60ms)}@keyframes gap-role-arrive{0%{opacity:0;translate:-6px}}.experience-years{margin-top:18px}.experience-year{grid-template-columns:58px minmax(0,1fr);padding:6px 0 10px;display:grid}.experience-year-label{font:11px/1.8 var(--font-mono);color:var(--faint);padding-top:24px;font-weight:400}.experience-year:has(.experience-year-items>.reveal:first-child [data-tier="2"]) .experience-year-label{padding-top:14px}.experience-year:has(.experience-year-items>.reveal:first-child [data-tier="3"]) .experience-year-label{padding-top:8px}.experience-year-items{min-width:0}.experience-year-items .experience-entry[data-tier="3"]{padding-block:8px}:root[data-motion=reduced] .experience-gap-role{animation:none}:root[data-motion=reduced] .experience-gap-names,:root[data-motion=reduced] .experience-gap-panel,:root[data-motion=reduced] .experience-gap-inner{transition:none}:is(.overview:not(.is-compact),.detail-scroll) :is(.row-type,.entry-type,.row-label,.project-label){font-family:var(--font-sans);letter-spacing:.01em;color:var(--accent);background:var(--accent);border-radius:4px;padding:0 6px;font-size:12px;font-weight:500;line-height:1.6;display:inline-block}@supports (color:color-mix(in lab, red, red)){:is(.overview:not(.is-compact),.detail-scroll) :is(.row-type,.entry-type,.row-label,.project-label){background:color-mix(in srgb, var(--accent) 7%, transparent)}}:is(.overview:not(.is-compact),.detail-scroll) :is(.row-type,.entry-type,.row-label,.project-label){box-shadow:inset 0 0 0 1px var(--accent)}@supports (color:color-mix(in lab, red, red)){:is(.overview:not(.is-compact),.detail-scroll) :is(.row-type,.entry-type,.row-label,.project-label){box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 16%, transparent)}}:is(.overview:not(.is-compact),.detail-scroll) :is(.row-org .row-type,.entry-org+.entry-type,.experience-stage-role+.row-type){margin-left:6px}:is(.overview:not(.is-compact),.detail-scroll) :is(.row-org .row-type,.entry-org+.entry-type,.experience-stage-role+.row-type):before{content:none}:is(.overview:not(.is-compact),.detail-scroll) :is(.row-label,.project-label){margin-top:4px}:is(.overview:not(.is-compact),.detail-scroll) :is(.row-type+.experience-stage-period,.entry-type+.entry-place){margin-left:8px}:is(.overview:not(.is-compact),.detail-scroll) :is(.row-type+.experience-stage-period,.entry-type+.entry-place):before{content:none}.gallery{border-top:1px solid var(--line);margin-top:34px;padding-top:22px}.gallery-label{font:10px/1.6 var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--faint);gap:8px;margin-bottom:4px;display:flex}.gallery-label span{color:var(--muted)}.gallery-strip{scrollbar-width:none;scroll-snap-type:x proximity;gap:6px;margin:0 -12px -9px;padding:9px 12px 16px;display:flex;overflow-x:auto}.gallery-strip::-webkit-scrollbar{display:none}.gallery-thumb{height:72px;aspect-ratio:var(--ar);background:var(--hover);cursor:zoom-in;scroll-snap-align:start;max-width:160px;transition:opacity .26s ease, scale .32s var(--ease-out), translate .32s var(--ease-out), box-shadow .32s var(--ease-out);border-radius:3px;flex:none;padding:0;display:block;overflow:hidden;box-shadow:0 0 #0000}.gallery-thumb img{object-fit:cover;width:100%;height:100%;transition:scale .42s var(--ease-out);display:block}.gallery-thumb:hover,.gallery-thumb:focus-visible{translate:0 -2px;scale:1.04;box-shadow:0 10px 22px -12px #0a0f1a73}.gallery-thumb:hover img,.gallery-thumb:focus-visible img{scale:1.06}.gallery-strip .gallery-thumb:active{scale:1.01}.gallery-strip:has(.gallery-thumb:hover) .gallery-thumb:not(:hover){opacity:.78;scale:.98}.gallery-thumb:focus-visible{outline:1.5px solid var(--accent);outline-offset:2px}[data-reveal=below] .gallery-thumb,[data-reveal=above] .gallery-thumb{opacity:0}[data-reveal=shown] .gallery-thumb{animation:gallery-thumb-in .62s var(--ease-out) backwards;animation-delay:calc(.14s + var(--i) * 60ms)}@keyframes gallery-thumb-in{0%{opacity:0;filter:blur(4px);transform:translateY(12px)scale(.94)}}:root[data-theme=dark] .gallery-thumb:hover,:root[data-theme=dark] .gallery-thumb:focus-visible{box-shadow:0 10px 24px -10px #000c}.gallery-viewer{--ink:#e5e7eb;--control-ink:#fff;--muted:#a6acb8;--faint:#929ba9;--line:#ffffff24;--surface:#ffffff0d;--accent:#afc3ef;width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--ink);background:0 0;border:0;grid-template:"top top top"64px"prev stage next"minmax(0,1fr)".meta."/72px minmax(0,1fr) 72px;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.gallery-viewer[open]{display:grid}.gallery-viewer:focus-visible{outline:none}.gallery-viewer::backdrop{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;transition:opacity .36s, display .36s allow-discrete, overlay .36s allow-discrete;background:#0b0d10f2}.gallery-viewer[open]::backdrop{opacity:1}.gallery-viewer[data-closing]::backdrop{opacity:0;transition-duration:.28s}.gallery-viewer-top{grid-area:top;justify-content:space-between;align-items:center;padding:0 20px 0 24px;display:flex}.gallery-viewer-count{font:11px/1 var(--font-mono);letter-spacing:.06em;color:var(--muted);font-variant-numeric:tabular-nums}.gallery-viewer .media-viewer-close{width:40px;height:40px;position:static}.gallery-viewer-stage{touch-action:pan-y;-webkit-user-select:none;user-select:none;grid-area:stage;justify-content:center;align-items:center;min-width:0;min-height:0;display:flex}.gallery-viewer-image{width:auto;height:auto;max-width:min(100%, var(--natural-w,100%));object-fit:contain;will-change:transform;border-radius:2px;max-height:100%;display:block}.gallery-viewer-nav{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;color:var(--muted);border-radius:50%;place-self:center;place-items:center;display:grid}.gallery-viewer-nav[data-direction=previous]{grid-area:prev}.gallery-viewer-nav[data-direction=next]{grid-area:next}.gallery-viewer-nav:disabled{opacity:.28;cursor:default}.gallery-viewer[data-single] .gallery-viewer-nav{visibility:hidden}.gallery-viewer-meta{text-align:center;grid-area:meta;min-height:74px;padding:14px 0 22px}.gallery-viewer-caption{color:var(--ink);font-size:12px;line-height:1.55}.gallery-viewer-credit.media-credit{margin-top:4px;display:inline-block}span.gallery-viewer-credit:hover{text-decoration:none}.gallery-viewer-top,.gallery-viewer-nav,.gallery-viewer-meta{transition:opacity .28s, translate .42s var(--ease-out), color .19s}@starting-style{.gallery-viewer[open] .gallery-viewer-top,.gallery-viewer[open] .gallery-viewer-meta{opacity:0;translate:0 6px}.gallery-viewer[open] .gallery-viewer-nav{opacity:0}}.gallery-viewer[data-closing] .gallery-viewer-top,.gallery-viewer[data-closing] .gallery-viewer-nav,.gallery-viewer[data-closing] .gallery-viewer-meta{opacity:0}:root[data-motion=reduced] .gallery-thumb,:root[data-motion=reduced] .gallery-thumb img,:root[data-motion=reduced] .gallery-viewer::backdrop,:root[data-motion=reduced] .gallery-viewer-top,:root[data-motion=reduced] .gallery-viewer-nav,:root[data-motion=reduced] .gallery-viewer-meta{transition:none}:root[data-motion=reduced] .gallery-thumb:hover,:root[data-motion=reduced] .gallery-thumb:focus-visible,:root[data-motion=reduced] .gallery-thumb:hover img,:root[data-motion=reduced] .gallery-thumb:focus-visible img{opacity:1;translate:none;scale:none}:root[data-motion=reduced] .gallery-strip:has(.gallery-thumb:hover) .gallery-thumb:not(:hover){opacity:1;translate:none;scale:none}.console-recording{--device-reach:82px;width:100%;height:calc(var(--device-reach) * 2 * var(--device-scale,1));transition:transform .7s var(--ease-out);border-radius:7px;flex-shrink:0;grid-template:0/0;place-content:center;place-items:unsafe center;display:grid;position:relative;overflow:visible}.console-recording:hover,.console-recording:focus-visible{transform:translateY(-2px)}.recording-texture{pointer-events:none;z-index:4;border-radius:inherit;position:absolute;inset:0;overflow:hidden}.recording-grain{opacity:.18;mix-blend-mode:soft-light;background:url(/textures/console-grain.svg) 0 0/150px;animation:1.1s steps(4,end) infinite recording-grain;position:absolute;inset:-12%}.recording-raster{background:repeating-linear-gradient(0deg, transparent 0 2px, var(--console-night) 3px 4px);opacity:.085;position:absolute;inset:0}.recording-vignette{background:radial-gradient(ellipse at 46% 44%, transparent 22%, var(--console-night) 60%, var(--console-night) 100%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.recording-vignette{background:radial-gradient(ellipse at 46% 44%, transparent 22%, color-mix(in srgb, var(--console-night) 18%, transparent) 60%, color-mix(in srgb, var(--console-night) 70%, transparent) 100%)}}.recording-vignette{box-shadow:inset 0 0 24px var(--console-night)}@supports (color:color-mix(in lab, red, red)){.recording-vignette{box-shadow:inset 0 0 24px color-mix(in srgb, var(--console-night) 35%, transparent)}}.startup-recording .recording-grain{opacity:.12}.startup-recording .recording-vignette{opacity:.65}.startup-overlay[data-active=false] .recording-grain,.startup-overlay[data-active=false] .startup-light-leak,.startup-overlay[data-stage=hold] .recording-grain,.startup-overlay[data-stage=hold] .startup-light-leak{animation-play-state:paused}@keyframes recording-grain{0%,to{transform:translate(0)}25%{transform:translate(-2%,1%)}50%{transform:translate(1%,-2%)}75%{transform:translate(-1%,-1%)}}.console-float{grid-template:0/0;grid-area:1/1;place-items:unsafe center;animation:6.5s ease-in-out infinite alternate handheld-float;display:grid;position:relative}.device-halo{width:calc(340px * var(--device-scale,1));height:calc(240px * var(--device-scale,1));pointer-events:none;--halo-strength:13%;background:radial-gradient(closest-side, var(--accent), var(--accent) 28%, var(--accent) 52%, var(--accent) 76%, transparent);border-radius:50%;grid-area:1/1}@supports (color:color-mix(in lab, red, red)){.device-halo{background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) var(--halo-strength), transparent), color-mix(in srgb, var(--accent) calc(var(--halo-strength) * .62), transparent) 28%, color-mix(in srgb, var(--accent) calc(var(--halo-strength) * .3), transparent) 52%, color-mix(in srgb, var(--accent) calc(var(--halo-strength) * .1), transparent) 76%, transparent)}}.device-halo{opacity:calc(.55 + .45 * var(--near,0));scale:calc(.94 + .08 * var(--near,0));transition:opacity .42s var(--ease-out), scale .42s var(--ease-out)}:root[data-theme=dark] .device-halo{--halo-strength:24%}.console-recording:is(:hover,:focus-visible) .device-halo{opacity:1;scale:1.04}.device-floor{width:calc(196px * var(--device-scale,1));height:calc(24px * var(--device-scale,1));translate:0 calc(66px * var(--device-scale,1));pointer-events:none;background:radial-gradient(closest-side, var(--ink), var(--ink) 55%, transparent);border-radius:50%;grid-area:1/1}@supports (color:color-mix(in lab, red, red)){.device-floor{background:radial-gradient(closest-side, color-mix(in srgb, var(--ink) 20%, transparent), color-mix(in srgb, var(--ink) 7%, transparent) 55%, transparent)}}.device-floor{animation:6.5s ease-in-out infinite alternate handheld-floor}:root[data-theme=dark] .device-floor{background:radial-gradient(closest-side,#000a,#0004 55%,#0000)}@keyframes handheld-floor{0%{opacity:1;scale:1.03}to{opacity:.72;scale:.9}}.device-body{pointer-events:none;z-index:1;width:0;height:0;position:absolute;top:0;left:0;translate:-50% -50%}.device-still{border:0 solid #0000}.device-shadow{pointer-events:none;--shadow-ground:var(--ink);border-radius:31px;grid-area:1/1;width:212px;height:92px;display:none}@supports (color:color-mix(in lab, red, red)){.device-shadow{--shadow-ground:color-mix(in srgb, var(--ink) 47%, transparent)}}.device-shadow{box-shadow:0 24px 30px -22px var(--shadow-ground), 0 8px 12px -10px var(--shadow-ground)}:root[data-theme=dark] .device-shadow{--shadow-ground:#000d}.console-float:has(>.console-device[data-body=model])>.device-shadow{display:block}.console-float>.console-device{grid-area:1/1}.console-device[data-body=model]{box-shadow:none;background:0 0;transition:none}.console-device[data-body=model]:before{top:3px}.console-device[data-body=model]:after,.console-device[data-body=model]>:is(.device-seam,.device-face,.device-cross,.device-nub,.device-buttons,.device-speaker,.device-sheen){display:none}.console-device{background:linear-gradient(162deg, var(--console-shell-lit) 0%, var(--console-shell) 46%, var(--console-shell-shade) 100%);--device-ground:var(--ink);border-radius:31px;width:212px;height:92px;position:relative}@supports (color:color-mix(in lab, red, red)){.console-device{--device-ground:color-mix(in srgb, var(--ink) 47%, transparent)}}.console-device{--device-rim:transparent;box-shadow:inset 1.5px 1.5px 0 var(--console-shell-top), inset -1px -2px 1px var(--console-shell-inner), inset 0 -6px 10px -4px var(--console-shell-shade), 0 0 0 var(--console-outline) var(--console-shell-edge), 0 0 0 calc(var(--console-outline) + .5px) var(--device-rim), 0 24px 30px -22px var(--device-ground), 0 8px 12px -10px var(--device-ground)}@supports (color:color-mix(in lab, red, red)){.console-device{box-shadow:inset 1.5px 1.5px 0 var(--console-shell-top), inset -1px -2px 1px var(--console-shell-inner), inset 0 -6px 10px -4px color-mix(in srgb, var(--console-shell-shade) 90%, #000), 0 0 0 var(--console-outline) var(--console-shell-edge), 0 0 0 calc(var(--console-outline) + .5px) var(--device-rim), 0 24px 30px -22px var(--device-ground), 0 8px 12px -10px var(--device-ground)}}.console-device{z-index:2;--device-perspective:700px;transform:scale(var(--device-scale,1)) perspective(var(--device-perspective)) rotateX(var(--device-rest-x,17deg)) rotateY(var(--device-rest-y,-19deg)) rotateZ(var(--device-rest-z,-7deg));transition:transform .4s var(--ease-out);isolation:isolate}.device-hull-point{pointer-events:none;width:0;height:0;position:absolute;top:0;left:0}.device-hull-point[data-corner="1"],.device-hull-point[data-corner="2"]{left:100%}.device-hull-point[data-corner="2"],.device-hull-point[data-corner="3"]{top:100%}.console-device:before,.console-device:after{content:"";pointer-events:none;position:absolute}.console-device:before{background:var(--console-tube);height:2px;box-shadow:0 0 8px 1px var(--console-tube-glow), 0 10px 26px 2px var(--console-tube-glow);border-radius:0 0 2px 2px;top:0;left:44px;right:44px}@supports (color:color-mix(in lab, red, red)){.console-device:before{box-shadow:0 0 8px 1px var(--console-tube-glow), 0 10px 26px 2px color-mix(in srgb, var(--console-tube-glow) 30%, transparent)}}.console-device:before{z-index:6}.console-device:after{border-radius:inherit;mix-blend-mode:soft-light;opacity:var(--console-grain-opacity);z-index:-1;background:url(/textures/console-grain.svg) 0 0/120px;inset:0}.console-recording:hover .console-device,.console-recording:focus-visible .console-device{transform:scale(var(--device-scale,1)) perspective(var(--device-perspective)) rotateX(calc(var(--device-rest-x,17deg) - 7deg)) rotateY(-8deg) rotateZ(-3deg) translateY(-3px)}:root[data-theme=dark] .console-device{--device-ground:#000d}@keyframes handheld-float{0%{translate:0 1.5px;rotate:-.8deg}to{translate:0 -2.5px;rotate:.8deg}}.console-recording:hover :is(.console-float,.device-floor),.console-recording[data-visible=false] :is(.console-float,.device-floor,.device-gloss,.device-indicator),.console-recording[data-open=true] :is(.console-float,.device-floor,.device-gloss,.device-indicator){animation-play-state:paused}.device-screen{--console-wave-cool:var(--console-screen-wave);background:linear-gradient(155deg, var(--console-screen-deep), var(--console-screen));box-shadow:0 0 0 5px var(--console-bezel), 0 0 0 5.6px var(--console-bezel-edge), inset 0 0 9px #000c;border-radius:2px;display:block;position:absolute;inset:13px 49px;overflow:hidden}.device-screen:before,.device-screen:after{content:"";pointer-events:none;z-index:1;position:absolute;inset:-12% 0}.device-screen:before{background:repeating-linear-gradient(0deg, transparent 0 2px, var(--console-ink) 2px 3px), url(/textures/console-grain.svg)}@supports (color:color-mix(in lab, red, red)){.device-screen:before{background:repeating-linear-gradient(0deg, transparent 0 2px, color-mix(in srgb, var(--console-ink) 15%, transparent) 2px 3px), url(/textures/console-grain.svg)}}.device-screen:before{mix-blend-mode:screen;opacity:.12;background-size:auto,92px}.device-screen:after{background:linear-gradient(130deg, var(--console-fringe), transparent 42%), linear-gradient(180deg, transparent 0 42%, var(--console-ink) 49%, transparent 57%)}@supports (color:color-mix(in lab, red, red)){.device-screen:after{background:linear-gradient(130deg, var(--console-fringe), transparent 42%), linear-gradient(180deg, transparent 0 42%, color-mix(in srgb, var(--console-ink) 10%, transparent) 49%, transparent 57%)}}.device-screen:after{opacity:.5;background-size:auto,100% 220%}.console-recording[data-visible=true]:not([data-open=true]) .device-screen:before{animation:.15s steps(2,end) infinite console-crt-static}.console-recording[data-visible=true]:not([data-open=true]) .device-screen:after{animation:4.8s linear infinite console-crt-roll}.device-screen-effect{pointer-events:none;z-index:3;border-radius:inherit;box-shadow:inset 0 0 10px var(--console-night);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.device-screen-effect{box-shadow:inset 0 0 10px color-mix(in srgb, var(--console-night) 58%, transparent)}}.device-gloss{z-index:5;pointer-events:none;animation:glass-sweep 7.5s var(--ease-out) infinite;background:linear-gradient(105deg,#0000 40%,#ffffff1f 47%,#ffffff08 52%,#0000 58%) 130% 0/260% 100% no-repeat;position:absolute;inset:0}@keyframes glass-sweep{0%,62%{background-position:130% 0}to{background-position:-40% 0}}.device-screen .console-interface{z-index:2}@keyframes console-crt-static{0%{transform:translateY(-1%)}50%{transform:translate(-1%,1%)}to{transform:translate(1%)}}@keyframes console-crt-roll{0%{background-position:0 0,0 -120%}to{background-position:0 0,0 120%}}.device-cross{width:21px;height:21px;filter:drop-shadow(0 -.5px 0 var(--console-key-lit)) drop-shadow(0 1.3px .5px #000b);position:absolute;top:27px;left:16px}@supports (color:color-mix(in lab, red, red)){.device-cross{filter:drop-shadow(0 -.5px 0 color-mix(in srgb, var(--console-key-lit) 70%, transparent)) drop-shadow(0 1.3px .5px #000b)}}.device-cross:before,.device-cross:after{content:"";--cross-light:linear-gradient(155deg, var(--console-key-lit) -45%, var(--console-key) 45%, var(--console-key-shade) 150%);border-radius:1.5px;position:absolute}.device-cross:before{background:var(--cross-light) 0 -7px / 21px 21px;width:21px;height:7px;top:7px;left:0}.device-cross:after{background:radial-gradient(circle at 50% 50%, var(--console-key-shade) 0 1.3px, var(--console-key-lit) 1.9px, transparent 2.5px) center / 100% 100% no-repeat, var(--cross-light) -7px 0 / 21px 21px;width:7px;height:21px;top:0;left:7px}@supports (color:color-mix(in lab, red, red)){.device-cross:after{background:radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--console-key-shade) 50%, transparent) 0 1.3px, color-mix(in srgb, var(--console-key-lit) 22%, transparent) 1.9px, transparent 2.5px) center / 100% 100% no-repeat, var(--cross-light) -7px 0 / 21px 21px}}.device-nub{background:radial-gradient(circle at 42% 36%, var(--console-key-lit), var(--console-key) 70%);width:11px;height:11px;box-shadow:0 0 0 1px var(--console-key-shade), 0 1px 1px var(--console-key-shade);border-radius:50%;position:absolute;top:58px;left:21px}.device-buttons{width:24px;height:24px;position:absolute;top:26px;right:14px}.device-buttons i{background:var(--console-key);width:7px;height:7px;box-shadow:inset 0 .7px 0 var(--console-key-lit), 0 .6px .6px var(--console-key-shade), 0 0 0 .5px var(--console-key-shade);border-radius:50%;position:absolute}.device-buttons i:first-child{top:0;left:8px}.device-buttons i:nth-child(2){top:8px;right:0}.device-buttons i:nth-child(3){bottom:0;left:8px}.device-buttons i:nth-child(4){top:8px;left:0}.device-seam,.device-face,.device-speaker,.device-sheen{pointer-events:none;position:absolute}.device-seam{border:1px solid var(--console-shell-shade);border-radius:27px;inset:4px}@supports (color:color-mix(in lab, red, red)){.device-seam{border:1px solid color-mix(in srgb, var(--console-shell-shade) 70%, #000)}}.device-seam{box-shadow:inset 0 1px 0 var(--console-key-lit), 0 1px 0 var(--console-key-lit)}@supports (color:color-mix(in lab, red, red)){.device-seam{box-shadow:inset 0 1px 0 color-mix(in srgb, var(--console-key-lit) 22%, transparent), 0 1px 0 color-mix(in srgb, var(--console-key-lit) 18%, transparent)}}.device-face{background:linear-gradient(170deg, var(--console-shell-shade), var(--console-shell));border-radius:9px;inset:6px 42px}@supports (color:color-mix(in lab, red, red)){.device-face{background:linear-gradient(170deg, var(--console-shell-shade), color-mix(in srgb, var(--console-shell) 80%, var(--console-shell-lit)))}}.device-face{box-shadow:inset 0 2px 3px #000a, inset 0 -1px 0 var(--console-key-lit), 0 .5px 0 var(--console-key-lit)}@supports (color:color-mix(in lab, red, red)){.device-face{box-shadow:inset 0 2px 3px #000a, inset 0 -1px 0 color-mix(in srgb, var(--console-key-lit) 30%, transparent), 0 .5px 0 color-mix(in srgb, var(--console-key-lit) 26%, transparent)}}.device-speaker{width:17px;height:7px;filter:drop-shadow(0 .6px 0 var(--console-key-lit));background:repeating-linear-gradient(90deg,#000b 0 1.6px,#0000 1.6px 4.2px);top:57px;right:16px;transform:skew(-18deg)}@supports (color:color-mix(in lab, red, red)){.device-speaker{filter:drop-shadow(0 .6px 0 color-mix(in srgb, var(--console-key-lit) 35%, transparent))}}.device-sheen{border-radius:inherit;z-index:4;background:radial-gradient(120% 70% at 30% -10%,#ffffff26,#0000 55%);inset:0}.device-indicator{background:var(--console-power);width:3px;height:3px;box-shadow:0 0 4px var(--console-power);border-radius:50%;animation:4.2s ease-in-out infinite power-breathe;position:absolute;bottom:13px;right:40px}@keyframes power-breathe{0%,to{opacity:1}50%{opacity:.35}}.console-affordance{left:50%;top:calc(50% + 78px * var(--device-scale,1));z-index:6;color:var(--muted);font:10px/1 var(--font-mono-family);letter-spacing:.04em;white-space:nowrap;transition:color .25s, transform .35s var(--ease-out);align-items:center;gap:4px;display:inline-flex;position:absolute;transform:translate(-50%,2px)}.console-affordance svg{transition:transform .25s var(--ease-out)}.console-recording:hover .console-affordance,.console-recording:focus-visible .console-affordance{color:var(--ink);transform:translate(-50%)}.console-recording:hover .console-affordance svg,.console-recording:focus-visible .console-affordance svg{transform:translate(2px)}.console-dialog{--control-ink:var(--console-ink);background:radial-gradient(ellipse at 15% 100%, var(--console-amber), transparent 65%), var(--console-night);width:min(800px,90vw);max-width:none;height:min(640px,100dvh - 24px);max-height:none;color:var(--console-ink);border:1px solid #737e9366;border-radius:12px;margin:auto;padding:0;overflow:hidden;box-shadow:0 30px 120px #0007}.console-content{flex-direction:column;height:100%;padding:32px;display:flex;position:relative}.console-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#71819966 transparent;flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow-y:auto}.console-prestige-slot{flex:0 0 108px}.console-body>.console-interface[data-variant=dialog]{flex:1 0 230px;height:auto;margin-top:24px}.console-dialog[open]{animation:console-window-in .55s var(--ease-out) both}@keyframes console-window-in{0%{opacity:0;filter:blur(4px);transform:scale(.96)translateY(9px)}to{opacity:1;filter:blur();transform:scale(1)translateY(0)}}.console-top{color:#a9b6c8;flex-shrink:0;align-items:center;gap:13px;font-size:12px;display:flex;position:relative}.console-top>svg{color:#e0e8f5;width:28px;height:28px}.console-top button{border-radius:999px;min-width:44px;min-height:44px;margin-left:auto;padding:6px}.console-recording:active .device-screen{animation:.18s step-end both signal-settle}@keyframes signal-settle{0%{filter:brightness(1.2)}30%{filter:brightness(.7)}60%{filter:brightness(1.07)}to{filter:brightness()}}.console-bottom{color:#a1afc1;flex-shrink:0;align-items:center;gap:24px;margin-top:14px;font-size:10px;display:flex;position:relative}.console-bottom span{align-items:center;gap:5px;display:flex}.console-direction-controls{display:flex}.console-direction-controls button{border-radius:3px;place-items:center;width:30px;height:32px;display:grid}.console-direction-controls button:disabled{opacity:.25;cursor:default}.console-confirm{border-radius:999px;align-items:center;gap:5px;min-height:32px;padding:0 10px;display:flex}.console-bottom kbd{border:1px solid #71819955;border-radius:2px;padding:0 4px;font-size:9px}:root[data-motion=reduced] .console-recording:hover,:root[data-motion=reduced] .console-recording:focus-visible{transform:none}:root[data-motion=reduced] .console-recording:hover .console-device,:root[data-motion=reduced] .console-recording:focus-visible .console-device{transform:scale(var(--device-scale,1)) perspective(var(--device-perspective)) rotateX(var(--device-rest-x,17deg)) rotateY(var(--device-rest-y,-19deg)) rotateZ(var(--device-rest-z,-7deg))}:root[data-motion=reduced] .console-recording:hover .console-affordance svg,:root[data-motion=reduced] .console-recording:focus-visible .console-affordance svg{transform:none}.console-interface{--xmb-anchor:27%;--category-step:130px;--entry-height:72px;--entry-image:56px;width:100%;height:320px;color:var(--console-ink);font-family:var(--font-console);text-shadow:0 1px 3px var(--console-night);touch-action:none;margin-top:32px;display:block;position:relative}.console-category-window{height:106px;position:absolute;inset:0 0 auto;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 5% 95%,#0000);mask-image:linear-gradient(90deg,#0000,#000 5% 95%,#0000)}.console-category-track{top:8px;left:var(--xmb-anchor);transform:translateX(calc(-1 * var(--category-index) * var(--category-step) - var(--category-step) / 2));transition:transform .48s var(--ease-out);display:flex;position:absolute}.console-category{flex:0 0 var(--category-step);width:var(--category-step);color:var(--console-ink);align-content:start;justify-items:center;gap:12px;padding:10px 0;display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.console-category{color:color-mix(in srgb, var(--console-ink) 78%, transparent)}}.console-category{--games-glow:var(--console-tube)}@supports (color:color-mix(in lab, red, red)){.console-category{--games-glow:color-mix(in srgb, var(--console-tube) 22%, transparent)}}.console-category{transition:color .35s, scale .26s var(--ease-out)}.console-category svg{stroke-width:1.25px;width:35px;height:35px;filter:drop-shadow(0 1px 1px var(--console-fringe));transition:transform .48s var(--ease-out), filter .35s}.console-category small{white-space:nowrap;opacity:0;font-size:12px;font-weight:400;line-height:1;transition:opacity .25s}.console-interface[data-variant=dialog] .console-category-window{-webkit-mask-image:linear-gradient(90deg,#0000,#000 32px calc(100% - 32px),#0000);mask-image:linear-gradient(90deg,#0000,#000 32px calc(100% - 32px),#0000)}.console-interface[data-variant=dialog] .console-category:not(.selected){color:var(--console-ink)}@supports (color:color-mix(in lab, red, red)){.console-interface[data-variant=dialog] .console-category:not(.selected){color:color-mix(in srgb, var(--console-ink) 46%, transparent)}}.console-interface[data-variant=dialog] .console-category:not(.selected) svg{filter:none}.console-interface[data-variant=dialog] .console-category small{opacity:.55}.console-interface[data-variant=dialog] .console-category.selected small{opacity:1}.console-category.selected{color:var(--console-ink)}.console-category.selected svg{filter:drop-shadow(0 0 7px var(--console-halo));transform:scale(1.18)}.console-category.selected small{opacity:1}.console-category:hover{color:var(--console-ink);scale:1.06}.console-category.is-games,.console-category.is-games:hover,.console-category.is-games.selected,.console-interface[data-variant=dialog] .console-category.is-games:not(.selected){color:var(--console-tube)}@supports (color:color-mix(in lab, red, red)){.console-interface[data-variant=dialog] .console-category.is-games:not(.selected){color:color-mix(in srgb, var(--console-tube) 55%, transparent)}}.console-category.is-games.selected svg{filter:drop-shadow(0 0 8px var(--console-tube))}@supports (color:color-mix(in lab, red, red)){.console-category.is-games.selected svg{filter:drop-shadow(0 0 8px color-mix(in srgb, var(--console-tube) 70%, transparent))}}.console-interface[data-variant=dialog] .console-category.is-games:before{content:"";z-index:0;background:radial-gradient(closest-side, var(--games-glow), transparent);opacity:0;pointer-events:none;width:96px;height:76px;transition:opacity .4s;position:absolute;top:-6px;left:50%;translate:-50%}.console-interface[data-variant=dialog] .console-category.is-games>*{z-index:1;position:relative}.console-interface[data-variant=dialog] .console-category.is-games.selected:before{opacity:1;animation:4.4s ease-in-out infinite console-games-glow}.console-entry-window{top:106px;bottom:0;left:calc(var(--xmb-anchor) - var(--entry-image) / 2);position:absolute;right:5%;overflow:hidden;-webkit-mask-image:linear-gradient(#000 0 calc(100% - 10px),#0000 100%);mask-image:linear-gradient(#000 0 calc(100% - 10px),#0000 100%)}.console-entry-track{transform:translateY(calc(-1 * var(--entry-index) * var(--entry-height)));transition:transform .42s var(--ease-out);animation:xmb-column-in .4s var(--ease-out) both;display:block}.console-entry{height:var(--entry-height);width:100%;color:var(--console-ink);text-align:left;opacity:.82;transition:opacity .3s, translate .26s var(--ease-out);align-items:center;gap:24px;padding:0 6px 0 0;display:flex}.console-entry.selected,.console-entry:hover{opacity:1}.console-entry:hover{translate:5px}.console-entry-image{width:var(--entry-image);flex:0 0 var(--entry-image);height:42px;transition:transform .4s var(--ease-out);place-items:center;display:grid}.console-entry-image img{object-fit:cover;filter:saturate(.45)contrast(.88);width:100%;height:100%;box-shadow:0 1px 6px var(--console-night);border-radius:2px;display:block}@supports (color:color-mix(in lab, red, red)){.console-entry-image img{box-shadow:0 1px 6px color-mix(in srgb, var(--console-night) 35%, transparent)}}.console-entry-image>svg{stroke-width:1.1px;width:28px;height:28px}.console-entry.selected .console-entry-image{transform:scale(1.06)}.console-entry-copy{flex:1;gap:5px;min-width:0;display:grid}.console-entry-copy>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:17px;font-weight:400;line-height:1.2;display:-webkit-box;overflow:hidden}.console-entry-copy small{color:var(--console-ink);font-size:11px;line-height:1.4}@supports (color:color-mix(in lab, red, red)){.console-entry-copy small{color:color-mix(in srgb, var(--console-ink) 85%, transparent)}}.console-entry-copy small{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:360px;display:-webkit-box;overflow:hidden}.console-entry:not(.selected) .console-entry-copy small{display:none}.console-entry-arrow{opacity:0;flex:0 0 14px;width:14px;height:14px}.console-entry.selected .console-entry-arrow{opacity:.7}.console-category.selected:focus-visible{outline:none}.console-category:not(.selected):focus-visible,.console-entry:focus-visible{outline:1px solid var(--console-ink)}@supports (color:color-mix(in lab, red, red)){.console-category:not(.selected):focus-visible,.console-entry:focus-visible{outline:1px solid color-mix(in srgb, var(--console-ink) 50%, transparent)}}.console-category:not(.selected):focus-visible,.console-entry:focus-visible{outline-offset:-1px;border-radius:3px}.console-interface[data-variant=device]{--category-step:27px;--entry-height:13px;--entry-image:11px;--xmb-anchor:29%;height:100%;margin:0;position:absolute;inset:0}.console-interface[data-variant=device] .console-category-window{height:36px}.console-interface[data-variant=device] .console-category-track{top:12px}.console-interface[data-variant=device] .console-category{gap:4px;padding:0}.console-interface[data-variant=device] .console-category svg{width:8px;height:8px}.console-interface[data-variant=device] .console-category small{font-size:3px}.console-interface[data-variant=device] .console-entry-window{top:37px;bottom:6px}.console-interface[data-variant=device] .console-entry{gap:5px;padding:0}.console-interface[data-variant=device] .console-entry-image{height:8px}.console-interface[data-variant=device] .console-entry-image svg{width:7px;height:7px}.console-interface[data-variant=device] .console-entry-copy>span{white-space:nowrap;font-size:3px}.console-interface[data-variant=device] .console-entry-copy small,.console-interface[data-variant=device] .console-entry-arrow{display:none}@keyframes console-games-glow{50%{opacity:.55}}:root[data-motion=reduced] .console-category.is-games.selected:before{animation:none}@keyframes xmb-column-in{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:blur()}}@media (max-width:760px){.console-interface[data-variant=dialog]{--xmb-anchor:20%;--category-step:86px;--entry-image:38px;--entry-height:72px;height:330px;margin-top:26px}.console-interface[data-variant=dialog] .console-category svg{width:29px;height:29px}.console-interface[data-variant=dialog] .console-category small{font-size:11px}.console-interface[data-variant=dialog] .console-category.is-games:before{width:80px;height:66px}.console-interface[data-variant=dialog] .console-entry-window{right:0}.console-interface[data-variant=dialog] .console-entry{gap:15px}.console-interface[data-variant=dialog] .console-entry-image{height:30px}.console-interface[data-variant=dialog] .console-entry-copy>span{font-size:15px}.console-interface[data-variant=dialog] .console-entry-copy small{font-size:10px}.console-interface[data-variant=dialog] .console-entry-arrow{display:none}}.game-shell{outline:none;flex-direction:column;flex:1 0 auto;display:flex;position:relative;overflow:clip}.game-room{--game-ink:var(--console-ink);--game-gold:var(--console-lamp);--snake-cell:24px;--aurora-a:131, 183, 228;--aurora-b:202, 191, 150;min-height:320px;color:var(--console-ink);font-family:var(--font-console);flex:1;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:44px;margin-top:24px;padding-left:4%;display:grid}.game-room[data-stage="1"]{--aurora-a:120, 214, 196;--aurora-b:163, 191, 218}.game-room[data-stage="2"]{--aurora-a:223, 213, 161;--aurora-b:120, 214, 196}.game-room[data-stage="3"],.game-room[data-status=won]{--aurora-a:236, 138, 160;--aurora-b:223, 213, 161}.game-aurora,.game-flash,.game-confetti{pointer-events:none;border-radius:inherit;position:absolute;inset:0}.game-aurora{background:radial-gradient(ellipse 60% 70% at 22% 62%, rgba(var(--aurora-a), calc(.05 + var(--game-progress) * .2)), transparent 70%), radial-gradient(ellipse 55% 60% at 78% 30%, rgba(var(--aurora-b), calc(.03 + var(--game-progress) * .16)), transparent 70%);mix-blend-mode:screen;transition:background 1.2s;animation:9s ease-in-out infinite alternate game-aurora-drift}@keyframes game-aurora-drift{0%{transform:translate(-2%,1%)scale(1)}to{transform:translate(2%,-1%)scale(1.06)}}.game-room[data-status=won] .game-aurora{animation:3s ease-in-out infinite alternate game-aurora-drift,6s linear infinite game-aurora-hue}@keyframes game-aurora-hue{to{filter:hue-rotate(360deg)}}.game-flash{background:radial-gradient(ellipse at 30% 55%, rgba(var(--aurora-a), .22), transparent 70%);animation:game-flash .7s var(--ease-out) both}@keyframes game-flash{0%{opacity:1}to{opacity:0}}.game-confetti{z-index:3;overflow:hidden}.game-confetti i{background:rgb(var(--aurora-a));width:4px;height:4px;box-shadow:0 0 6px rgba(var(--aurora-a), .8);animation:2.6s cubic-bezier(.3,.1,.6,1) infinite game-confetti;position:absolute;top:-12px}.game-confetti i[data-hue="1"]{background:rgb(var(--aurora-b));box-shadow:0 0 6px rgba(var(--aurora-b), .8)}.game-confetti i[data-hue="2"]{background:var(--console-ink);box-shadow:0 0 6px var(--console-halo)}@keyframes game-confetti{0%{opacity:0;transform:translate(0)rotate(0)}10%{opacity:1}to{transform:translate(var(--drift), 430px) rotate(320deg);opacity:0}}.snake-board{z-index:1;grid-template-columns:repeat(12, var(--snake-cell));grid-template-rows:repeat(12, var(--snake-cell));background:linear-gradient(var(--console-ink) 1px, transparent 1px) 3px 3px / var(--snake-cell) var(--snake-cell), linear-gradient(90deg, var(--console-ink) 1px, transparent 1px) 3px 3px / var(--snake-cell) var(--snake-cell), var(--console-night);border:1px solid #737e9355;border-radius:6px;padding:3px;display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.snake-board{background:linear-gradient(color-mix(in srgb, var(--console-ink) 5%, transparent) 1px, transparent 1px) 3px 3px / var(--snake-cell) var(--snake-cell), linear-gradient(90deg, color-mix(in srgb, var(--console-ink) 5%, transparent) 1px, transparent 1px) 3px 3px / var(--snake-cell) var(--snake-cell), color-mix(in srgb, var(--console-night) 55%, transparent)}}.snake-board{box-shadow:0 0 0 1px #0006, 0 0 calc(10px + var(--game-progress) * 26px) rgba(var(--aurora-a), calc(.06 + var(--game-progress) * .22));touch-action:none;cursor:pointer;transition:box-shadow .6s}.snake-cell{border-radius:3px;margin:2px}.snake-cell[data-kind=body],.snake-cell[data-kind=head]{background:var(--game-ink)}@supports (color:color-mix(in lab, red, red)){.snake-cell[data-kind=body],.snake-cell[data-kind=head]{background:color-mix(in srgb, var(--game-ink) calc(92% - var(--seg,0) * 48%), rgb(var(--aurora-a)))}}.snake-cell[data-kind=body],.snake-cell[data-kind=head]{box-shadow:0 0 6px rgba(var(--aurora-a), calc(.35 - var(--seg,0) * .25))}.snake-cell[data-kind=head]{background:var(--game-ink);box-shadow:0 0 10px var(--console-halo);border-radius:5px;margin:1px}.snake-cell[data-kind=food]{background:var(--game-gold);border-radius:50%;margin:5px;animation:1.1s ease-in-out infinite alternate snake-food}@keyframes snake-food{0%{transform:scale(.8)}to{transform:scale(1.1)}}.snake-food-glow,.game-ripple{pointer-events:none;border-radius:50%;position:absolute;translate:-50% -50%}.snake-food-glow{width:calc(var(--snake-cell) * 2.4);height:calc(var(--snake-cell) * 2.4);background:radial-gradient(circle,#dfd5a140,#0000 65%)}.game-ripple{width:calc(var(--snake-cell) * 9);height:calc(var(--snake-cell) * 9);border:1px solid rgba(var(--aurora-a), .7);animation:game-ripple .65s var(--ease-out) both}@keyframes game-ripple{0%{opacity:1;scale:.05}to{opacity:0;scale:1}}.game-room[data-status=lost] .snake-cell[data-kind]{opacity:.4;transition:opacity .5s}.game-room[data-status=won] .snake-cell[data-kind]{animation:1.4s ease-in-out infinite snake-win;animation-delay:calc(var(--wave,0) * 45ms)}@keyframes snake-win{0%,to{filter:none}30%{filter:brightness(1.8) drop-shadow(0 0 6px rgb(var(--aurora-b)))}}.stack-board{z-index:1;width:calc(var(--snake-cell) * 12 + 8px);aspect-ratio:1;background:var(--console-night);border:1px solid #737e9355;border-radius:6px;position:relative}@supports (color:color-mix(in lab, red, red)){.stack-board{background:color-mix(in srgb, var(--console-night) 55%, transparent)}}.stack-board{box-shadow:0 0 0 1px #0006, 0 0 calc(10px + var(--game-progress) * 26px) rgba(var(--aurora-a), calc(.06 + var(--game-progress) * .22));touch-action:none;cursor:pointer;transition:box-shadow .6s;overflow:hidden}.stack-goal{border-top:1px dashed var(--console-lamp);height:0;position:absolute;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.stack-goal{border-top:1px dashed color-mix(in srgb, var(--console-lamp) 45%, transparent)}}.stack-slab{background:var(--game-ink);border-radius:2px;position:absolute}@supports (color:color-mix(in lab, red, red)){.stack-slab{background:color-mix(in srgb, var(--game-ink) calc(88% - var(--floor,0) * 40%), rgb(var(--aurora-a)))}}.stack-slab{box-shadow:inset 0 1px 0 #fff6, inset 0 -2px 0 #0003, 0 0 8px rgba(var(--aurora-a), .25)}.stack-slab[data-base]{background:var(--console-ink)}@supports (color:color-mix(in lab, red, red)){.stack-slab[data-base]{background:color-mix(in srgb, var(--console-ink) 30%, transparent)}}.stack-slab[data-base]{box-shadow:inset 0 1px #fff3}.stack-slab[data-moving]{box-shadow:inset 0 1px 0 #fff8, 0 0 14px rgba(var(--aurora-a), .55)}.stack-slab[data-perfect]{animation:stack-perfect .6s var(--ease-out)}@keyframes stack-perfect{30%{filter:brightness(1.9) drop-shadow(0 0 8px rgb(var(--aurora-b)))}}.stack-slab[data-cut]{opacity:.8;animation:.9s cubic-bezier(.5,0,.9,.6) forwards stack-cut}@keyframes stack-cut{to{opacity:0;translate:0 280px;rotate:24deg}}.game-room[data-status=lost] .stack-slab:not([data-cut]){opacity:.4;transition:opacity .5s}.game-room[data-status=won] .stack-slab{animation:1.4s ease-in-out infinite snake-win;animation-delay:calc(var(--floor,0) * .54s)}.game-panel{z-index:1;align-content:center;gap:12px;max-width:260px;display:grid;position:relative}.game-panel h2{letter-spacing:.01em;font-size:26px;font-weight:400}.game-score{font-family:var(--font-mono-family);color:var(--console-ink);align-items:baseline;gap:6px;font-size:12px;display:flex}@supports (color:color-mix(in lab, red, red)){.game-score{color:color-mix(in srgb, var(--console-ink) 85%, transparent)}}.game-score strong{color:var(--console-ink);font-variant-numeric:tabular-nums;font-size:34px;font-weight:400;line-height:1}.game-meter{background:var(--console-ink);height:2px;display:block;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.game-meter{background:color-mix(in srgb, var(--console-ink) 14%, transparent)}}.game-meter span{background:linear-gradient(90deg, rgb(var(--aurora-a)), rgb(var(--aurora-b)));transform-origin:0;height:100%;transition:transform .4s var(--ease-out);display:block}.game-status{min-height:2.8em;color:var(--console-ink);font-size:12px;line-height:1.4}@supports (color:color-mix(in lab, red, red)){.game-status{color:color-mix(in srgb, var(--console-ink) 90%, transparent)}}.console-entry-award{filter:drop-shadow(0 2px 6px #0008);width:34px;height:34px}.console-interface[data-variant=device] .console-entry-award{filter:none;width:8px;height:8px}@media (max-width:760px){.game-room{--snake-cell:min(19px, calc((90vw - 76px) / 12));flex:1 0 auto;grid-template-columns:minmax(0,1fr);align-content:center;justify-items:center;gap:14px;height:auto;min-height:auto;margin-top:22px;padding-left:0}.game-panel{grid-template-columns:auto auto;align-items:baseline;gap:6px 18px;width:100%;max-width:none}.game-panel h2{font-size:20px}.game-score strong{font-size:24px}.game-meter,.game-status{grid-column:1/-1}.game-status{min-height:0}}:root[data-motion=reduced] .game-aurora,:root[data-motion=reduced] .game-flash,:root[data-motion=reduced] .game-confetti,:root[data-motion=reduced] .game-ripple,:root[data-motion=reduced] .snake-cell[data-kind],:root[data-motion=reduced] .stack-slab{animation:none}:root[data-motion=reduced] .game-flash,:root[data-motion=reduced] .game-ripple,:root[data-motion=reduced] .game-confetti,:root[data-motion=reduced] .stack-slab[data-cut]{display:none}.award-shelf{z-index:11;pointer-events:none;position:fixed;inset:0;overflow:hidden}.award-body{width:calc(var(--r) * 2);height:calc(var(--r) * 2);pointer-events:auto;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;will-change:transform;filter:drop-shadow(0 5px 6px #1d23302e);background:0 0;border:0;padding:0;position:absolute;top:0;left:0;transform:translate(-200px,-200px)}.award-body:active{cursor:grabbing;filter:drop-shadow(0 12px 12px #1d233040)}.award-body:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:50%}.award-body svg{pointer-events:none;width:100%;height:100%;display:block}:root[data-theme=dark] .award-body{filter:drop-shadow(0 5px 7px #0009)}.prestige-progress{border:1px solid var(--console-ink);align-items:center;gap:13px;max-width:460px;margin:12px auto 4px;padding:12px 14px;display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.prestige-progress{border:1px solid color-mix(in srgb, var(--console-ink) 21%, transparent)}}.prestige-progress{background:var(--console-night);border-radius:8px}@supports (color:color-mix(in lab, red, red)){.prestige-progress{background:color-mix(in srgb, var(--console-night) 68%, transparent)}}.prestige-progress{color:var(--console-ink);font-family:var(--font-console)}.prestige-progress>svg{flex-shrink:0;width:44px;height:44px}.prestige-copy{flex:1;min-width:0}.prestige-heading{flex-wrap:wrap;justify-content:space-between;gap:3px 10px;font-size:12px;display:flex}.prestige-heading strong{color:var(--console-lamp);font-variant-numeric:tabular-nums;font-size:11px;font-weight:400}.prestige-meter{background:var(--console-ink);border-radius:3px;height:5px;margin:7px 0 4px}@supports (color:color-mix(in lab, red, red)){.prestige-meter{background:color-mix(in srgb, var(--console-ink) 16%, transparent)}}.prestige-meter{overflow:hidden}.prestige-meter>span{border-radius:inherit;height:100%;transition:width .45s var(--ease-out);background:linear-gradient(90deg,#ae8b47,#e4cf89);display:block}.prestige-progress[data-tier="3"] .prestige-meter>span,.prestige-progress[data-tier="4"] .prestige-meter>span{background:linear-gradient(90deg,#87bdca,#c5ecf4)}.prestige-steps{color:var(--console-ink);justify-content:space-between;font-size:9px;display:flex}@supports (color:color-mix(in lab, red, red)){.prestige-steps{color:color-mix(in srgb, var(--console-ink) 78%, transparent)}}.prestige-steps [data-earned=true]{color:var(--console-lamp)}.prestige-copy>p{color:var(--console-ink);margin-top:5px;font-size:10px}@supports (color:color-mix(in lab, red, red)){.prestige-copy>p{color:color-mix(in srgb, var(--console-ink) 88%, transparent)}}.game-panel>.prestige-progress{grid-column:1/-1;width:100%;margin:0;padding:10px}.game-panel .prestige-progress>svg{width:34px;height:34px}.game-panel .prestige-heading{font-size:11px}.game-panel .prestige-steps{display:none}.award-controls{border-right:1px solid var(--pager-case-edge);height:100%;color:var(--pager-ink);flex-shrink:0;display:flex}.award-collection-trigger{align-content:center;place-items:center;gap:5px;width:42px;height:100%;display:grid}.award-tally{font:9px/1 var(--font-mono-family);letter-spacing:.04em;color:var(--pager-lcd-dim);font-variant-numeric:tabular-nums;transition:color .19s,text-shadow .19s}.award-collection-trigger:hover .award-tally,.award-collection-trigger:focus-visible .award-tally{color:var(--pager-lcd-ink);text-shadow:var(--pager-glow)}.award-collection-trigger:focus-visible{outline:2px solid var(--pager-lcd-ink);outline-offset:-4px}.award-collection{inset:auto var(--award-panel-right,var(--footer-inline,24px)) var(--award-panel-bottom,calc(var(--footer-control-height,74px) + var(--footer-inline,24px) + 8px)) var(--award-panel-left,auto);width:330px;max-width:calc(100vw - 32px);max-height:min(570px, calc(100dvh - var(--award-panel-bottom,calc(var(--footer-control-height,74px) + var(--footer-inline,24px) + 8px)) - 16px));border:1px solid var(--line);border-radius:var(--radius-float);clip-path:inset(0 round 10px);background:var(--paper);color:var(--ink);box-shadow:var(--shadow);pointer-events:auto;margin:0;padding:0;position:fixed;overflow:hidden}.award-collection[open]{transform-origin:var(--award-panel-origin,33px) bottom;animation:award-noclip .42s var(--ease-out) both;flex-direction:column;display:flex}.award-collection[open][data-closing=true]{animation:.2s ease-in both award-noclip-out}.award-collection::backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.award-collection[open]::backdrop{animation:.3s ease-out both award-backdrop-in}.award-collection[open][data-closing=true]::backdrop{animation:.22s ease-in reverse both award-backdrop-in}.award-collection-top{border-bottom:1px solid var(--line);background:var(--paper);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:10px 13px 5px 17px;display:flex}.award-collection-top h2{font-size:16px;font-weight:500}.award-collection-actions{color:var(--muted);flex-shrink:0;gap:2px;display:flex}.award-collection-top button{border-radius:5px;place-items:center;width:44px;height:44px;display:grid}.award-collection-note{color:var(--muted);margin-top:6px;font-size:11px;line-height:1.5}.award-collection-body{scrollbar-gutter:stable;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;min-height:0;padding:7px 17px 17px;overflow-y:auto}.award-collection-list{margin-top:13px;display:grid}.award-collection[open]:not([data-closing=true]) .award-collection-list>button{animation:award-row-in .26s var(--ease-out) both}.award-hidden-note[data-hidden]{visibility:hidden}.award-collection-list>button{text-align:left;border-top:1px solid var(--line);align-items:center;gap:12px;width:100%;padding:10px 4px;display:flex}.award-collection-list>button:not(:disabled):hover{background:var(--hover)}.award-collection-list>button:disabled{cursor:default;opacity:1}.award-faint{opacity:.45;filter:grayscale()}.award-collection-list>button>.award-art,.award-mystery{flex-shrink:0;width:38px;height:38px}.award-mystery{color:var(--muted);stroke-width:1.5px;border:1px dashed var(--line);border-radius:50%;padding:8px}.award-collection-list>button>span{flex:1;gap:3px;min-width:0;display:grid}.award-collection-list strong{font-size:12px;font-weight:500}.award-collection-list small{color:var(--muted);font-size:10px;line-height:1.4}.award-count{transform-origin:24px 24px;animation:.26s ease-out both award-count-in}.prestige-gems{animation:.65s ease-out both gem-in}@keyframes award-count-in{0%{opacity:.3}to{opacity:1}}@keyframes gem-in{0%{opacity:0}to{opacity:1}}@keyframes award-noclip{0%{clip-path:inset(62% 0 38% round 10px);opacity:0;transform:translateY(6px)}16%{clip-path:inset(62% 0 38% round 10px);opacity:1;transform:translateY(-3px)}30%{clip-path:inset(44% 0 22% round 10px);transform:translateY(2px)}46%{clip-path:inset(44% 0 22% round 10px);transform:none}62%{clip-path:inset(10% 0 5% round 10px)}to{clip-path:inset(0 round 10px);opacity:1;transform:none}}@keyframes award-noclip-out{0%{clip-path:inset(0 round 10px);opacity:1}40%{clip-path:inset(30% 0 24% round 10px);opacity:1}to{clip-path:inset(58% 0 42% round 10px);opacity:0;transform:translateY(4px)}}@keyframes award-row-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes award-backdrop-in{0%{opacity:0}to{opacity:1}}.site-footer{gap:14px}:root[data-motion=reduced] .award-count,:root[data-motion=reduced] .prestige-gems,:root[data-motion=reduced] .award-collection,:root[data-motion=reduced] .award-collection::backdrop,:root[data-motion=reduced] .award-collection[open] .award-collection-list>button{animation:none}:root[data-motion=reduced] .prestige-meter>span{transition:none}:is(html:has(.startup-overlay[data-active=true]),html:has(.startup-overlay[data-startup-pending=true]),body:has(.startup-overlay[data-active=true]),body:has(.startup-overlay[data-startup-pending=true])){overflow:hidden}.startup-overlay{z-index:150;color:var(--console-ink);background:var(--console-boot-black);font-family:var(--font-console);isolation:isolate;--boot-light:0;position:fixed;inset:0;overflow:hidden}.startup-overlay[data-active=false]{visibility:hidden;pointer-events:none;opacity:0}.startup-recording{background:var(--console-boot-black);position:absolute;inset:0;overflow:hidden}.startup-wave{opacity:0;background:radial-gradient(ellipse at 16% 78%, var(--console-amber), transparent 62%), radial-gradient(ellipse at 76% 82%, var(--console-blue), transparent 70%);position:absolute;inset:0}.startup-wave .ribbon-scene{will-change:transform;transform:scaleY(.12)}.startup-light-leak{opacity:calc(var(--boot-light) * .17);background:linear-gradient(103deg, transparent 8%, var(--console-lamp) 16%, transparent 25%);filter:blur(28px);animation:16s ease-in-out infinite alternate light-leak-drift;position:absolute;inset:-5%}.startup-boot-band{opacity:0;background:linear-gradient(transparent, var(--console-boot-beam) 18%, var(--console-boot-beam) 50%, var(--console-boot-beam) 82%, transparent);height:clamp(40px,6vh,54px);position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}@supports (color:color-mix(in lab, red, red)){.startup-boot-band{background:linear-gradient(transparent, color-mix(in srgb, var(--console-boot-beam) 4%, transparent) 18%, color-mix(in srgb, var(--console-boot-beam) 11%, transparent) 50%, color-mix(in srgb, var(--console-boot-beam) 4%, transparent) 82%, transparent)}}.startup-boot-band{-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.startup-boot-line{background:linear-gradient(90deg, transparent, var(--console-boot-beam) 28%, var(--console-boot-ink) 52%, var(--console-boot-beam) 72%, transparent);height:1px;box-shadow:0 0 5px 1px var(--console-boot-beam);opacity:.45;position:absolute;left:0;right:0}.startup-boot-line[data-edge=top]{top:0}.startup-boot-line[data-edge=bottom]{bottom:0}.startup-boot-line:after{content:"";background:var(--console-boot-beam);box-shadow:0 0 9px var(--console-boot-beam);transform:scaleX(var(--beam-extent,0));transform-origin:50%;position:absolute;inset:-1px 0}.startup-overlay[data-stage=boot] .startup-boot-band{animation:.42s cubic-bezier(.33,0,.67,1) both startup-strip-in}.startup-overlay[data-stage=boot] .startup-boot-line:after{animation:.62s cubic-bezier(.33,1,.68,1) 60ms both startup-beam-in}@keyframes startup-strip-in{0%{opacity:0}to{opacity:1}}@keyframes startup-beam-in{0%{transform:scaleX(.05)}to{transform:scaleX(1)}}.startup-overlay[data-stage=line] .startup-boot-line:after{animation:.9s step-end .62s both beam-settle}@keyframes beam-settle{0%,to{opacity:1}6%{opacity:.35}11%{opacity:1}16%{opacity:.6}20%{opacity:1}47%{opacity:.8}50%{opacity:1}}.startup-overlay[data-stage=hold] .recording-texture{opacity:.16}.startup-boot-title{color:var(--console-boot-ink);font:300 clamp(13px, 1.1vw, 16px)/1 var(--font-startup), var(--font-console);letter-spacing:.16em;text-align:center;text-shadow:0 0 12px var(--console-boot-beam);place-items:center;padding:0 20px;display:grid;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.startup-boot-title{text-shadow:0 0 12px color-mix(in srgb, var(--console-boot-beam) 35%, transparent)}}.startup-boot-title{opacity:1}.startup-boot-title>span{white-space:nowrap}.startup-launch{color:var(--console-launch-ink);background:var(--console-launch-paper);opacity:0;place-items:center;display:grid;position:absolute;inset:0}.startup-launch-mark{opacity:0;align-items:center;gap:clamp(13px,1.5vw,22px);display:flex}.startup-brand-symbol{width:clamp(44px,5vw,68px);height:auto;color:var(--console-launch-ink)}.startup-brand-symbol path{stroke-dasharray:1;stroke-dashoffset:1px}.startup-brand-name{font:450 clamp(20px, 2vw, 28px)/1.2 var(--font-body);letter-spacing:-.035em;opacity:0;white-space:nowrap}.startup-brand-name>span{color:var(--console-signature)}.startup-mute{right:max(28px, env(safe-area-inset-right));bottom:max(28px, env(safe-area-inset-bottom));width:44px;height:44px;color:inherit;opacity:.7;border-radius:50%;place-items:center;transition:color .8s;display:grid;position:absolute}.startup-overlay[data-stage=launch] .startup-mute,.startup-overlay[data-stage=reveal] .startup-mute{color:var(--console-launch-ink)}.startup-mute{--control-ink:currentColor}.startup-skip{--control-ink:currentColor;right:calc(max(28px, env(safe-area-inset-right)) + 50px);bottom:max(28px, env(safe-area-inset-bottom));height:44px;color:inherit;opacity:.7;font:500 13px/1 var(--font-body);letter-spacing:.02em;border-radius:999px;align-items:center;gap:3px;padding:0 10px 0 14px;display:inline-flex;position:absolute}.startup-overlay:not([data-stage=launch],[data-stage=reveal]) .startup-skip:is(:hover,:focus-visible){opacity:1!important}.startup-skip svg{transition:translate .2s var(--ease-out)}.startup-skip:hover svg{translate:2px}.startup-overlay[data-stage=launch] .startup-skip,.startup-overlay[data-stage=reveal] .startup-skip{color:var(--console-launch-ink)}.startup-mute:hover{opacity:1}.startup-mute svg{width:19px;height:19px}.startup-mute .sound-warning{background:var(--console-boot-black);color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.startup-mute .sound-warning{color:color-mix(in srgb, var(--accent) 65%, var(--console-boot-ink))}}.startup-overlay[data-stage=launch] .sound-warning,.startup-overlay[data-stage=reveal] .sound-warning{background:var(--console-launch-paper);color:var(--accent)}@keyframes light-leak-drift{to{transform:translate(9%)rotate(2deg)}}:root[data-motion=reduced] .startup-wave,:root[data-motion=reduced] .startup-boot-title,:root[data-motion=reduced] .startup-boot-band,:root[data-motion=reduced] .startup-light-leak{display:none}:root[data-motion=reduced] .startup-launch,:root[data-motion=reduced] .startup-launch-mark{opacity:1;filter:none;transform:none}:root[data-motion=reduced] .startup-brand-symbol path{stroke-dashoffset:0}:root[data-motion=reduced] .startup-brand-name{opacity:1;transform:none}@media print{.startup-overlay{display:none}}.avatar-documents{z-index:3;opacity:0;pointer-events:none;filter:drop-shadow(0 1px 1px #15191225);width:43%;height:auto;transition:opacity .14s;position:absolute;bottom:1%;right:1%;overflow:visible}.document-paper{fill:var(--room-panel,#faf8ed);stroke:var(--room-line-lit,#9e9268);stroke-width:1.3px}.document-rule{fill:none;stroke:var(--room-line-lit,#9e9268);stroke-width:1.5px;stroke-linecap:round}.document-scan{fill:none;stroke:var(--room-accent,#b3283f);stroke-width:2.3px;stroke-linecap:round}.document-reply,.document-failure,[data-paper-state=reply] .document-pages{display:none}[data-paper-state=reply] .document-reply,[data-paper-state=error] .document-failure{display:inline}.document-failure path{stroke:var(--room-error,#b3283f);stroke-width:2.8px;stroke-linecap:round}[data-paper-state=error] .document-scan{display:none}.drawn-avatar[data-paused=true] .avatar-documents{transition:none}.launcher-avatar .avatar-documents{display:none}:is(.launcher-avatar:has(.drawn-avatar),.assistant-avatar:has(.drawn-avatar)){filter:none}.launcher-avatar:has(.drawn-avatar):after{display:none}.assistant-avatar:has(.drawn-avatar):after{display:none}.drawn-avatar{--avatar-energy:1;--avatar-look-x:0%;--avatar-look-y:0%;border-radius:inherit;contain:paint;isolation:isolate;background:#f5f2e9;width:100%;height:100%;display:block;position:relative;overflow:hidden}.avatar-pose,.avatar-sprite{width:100%;height:100%;display:block}.avatar-pose{translate:var(--avatar-look-x) var(--avatar-look-y);transition:translate .3s ease-out}.avatar-sprite{transform-origin:50% 85%;filter:saturate(.7)contrast(.93)blur(.15px);background:url(/media/assistant/matias-master-v23-384.webp) 0 0/300% 200% no-repeat;animation:6.2s ease-in-out infinite avatar-breathe;position:relative}.drawn-avatar[data-expanded=true] .avatar-sprite{background-size:300% 300%}.avatar-eye-patch,.avatar-mouth-patch{pointer-events:none;opacity:0;background-image:inherit;background-size:inherit;background-repeat:no-repeat;position:absolute;inset:0}.avatar-eye-patch{background-position:50% 0;-webkit-mask-image:radial-gradient(9% 3.3% at 41% 44.5%,#000 75%,#0000 100%),radial-gradient(9% 3.3% at 62% 44.5%,#000 75%,#0000 100%);mask-image:radial-gradient(9% 3.3% at 41% 44.5%,#000 75%,#0000 100%),radial-gradient(9% 3.3% at 62% 44.5%,#000 75%,#0000 100%)}.avatar-mouth-patch{background-position:48.2% 97%;-webkit-mask-image:radial-gradient(12% 4.5% at 54% 60%,#000 80%,#0000 100%);mask-image:radial-gradient(12% 4.5% at 54% 60%,#000 80%,#0000 100%)}.drawn-avatar[data-stable-face=true] .avatar-sprite{filter:saturate(.87)contrast(.95)}.drawn-avatar[data-single=true] .avatar-sprite{filter:saturate(.92)contrast(.96);aspect-ratio:1;background-size:100% 100%;height:auto}.drawn-avatar[data-single=true] .avatar-pose{place-items:end center;display:grid}.drawn-avatar[data-single=true] .avatar-eye-patch,.drawn-avatar[data-single=true] .avatar-mouth-patch{background-image:var(--avatar-expression-art);background-position:0 0;background-size:100% 100%}.drawn-avatar[data-single=true] .avatar-eye-patch{-webkit-mask-image:radial-gradient(6.5% 3.4% at 41% 37%,#000 80%,#0000 100%),radial-gradient(6.5% 3.4% at 58% 36%,#000 80%,#0000 100%);mask-image:radial-gradient(6.5% 3.4% at 41% 37%,#000 80%,#0000 100%),radial-gradient(6.5% 3.4% at 58% 36%,#000 80%,#0000 100%)}.drawn-avatar[data-single=true] .avatar-mouth-patch{transform-origin:50% 51%;-webkit-mask-image:radial-gradient(9% 4% at 50% 51%,#000 80%,#0000 100%);mask-image:radial-gradient(9% 4% at 50% 51%,#000 80%,#0000 100%)}.drawn-avatar[data-character=matias]{--avatar-expression-art:url(/media/assistant/matias-expression-v22-384.webp);--avatar-skin-art:url(/media/assistant/matias-plate-v22-384.webp)}.drawn-avatar[data-character=matias] .avatar-sprite{filter:saturate(.85)contrast(.96);background-image:url(/media/assistant/matias-master-v23-384.webp)}.drawn-avatar[data-character=matias] .avatar-eye-patch{-webkit-mask-image:radial-gradient(5.8% 2.8% at 41.7% 40.7%,#000 80%,#0000 100%),radial-gradient(5.8% 2.8% at 59.5% 39.5%,#000 80%,#0000 100%);mask-image:radial-gradient(5.8% 2.8% at 41.7% 40.7%,#000 80%,#0000 100%),radial-gradient(5.8% 2.8% at 59.5% 39.5%,#000 80%,#0000 100%)}.drawn-avatar[data-character=matias] .avatar-mouth-patch{transform-origin:52% 56%;-webkit-mask-image:radial-gradient(8.2% 3.8% at 52% 56%,#000 80%,#0000 100%);mask-image:radial-gradient(8.2% 3.8% at 52% 56%,#000 80%,#0000 100%)}.drawn-avatar[data-fluid=true][data-character=matias] .avatar-sprite:before{-webkit-mask-image:radial-gradient(9% 4.3% at 52% 56%,#000 85%,#0000 100%);mask-image:radial-gradient(9% 4.3% at 52% 56%,#000 85%,#0000 100%)}.drawn-avatar[data-character=matias] .avatar-glint{display:none}.drawn-avatar[data-character=matias] .avatar-finish{background:radial-gradient(at 50% 42%,#0000 55%,#2930271a 100%)}.drawn-avatar[data-character=matias] .avatar-finish:after{opacity:.11}.avatar-thought{opacity:0;gap:3px;transition:opacity .18s;display:flex;position:absolute;top:12%;left:7%}.drawn-avatar[data-image-layers=true] .avatar-sprite,.drawn-avatar[data-image-layers=true] :is(.avatar-eye-patch,.avatar-mouth-patch){background-image:none}.drawn-avatar[data-image-layers=true] .avatar-sprite:before{display:none}.avatar-master,.avatar-skin-patch{pointer-events:none;position:absolute;inset:0}.avatar-eyes{pointer-events:none;width:100%;height:100%;opacity:var(--avatar-gaze-reveal,0);position:absolute;inset:0}.avatar-gaze{transform:translate(var(--avatar-eye-x,0px), var(--avatar-eye-y,0px))}.avatar-rig-canvas{pointer-events:none;filter:saturate(.85)contrast(.96);width:100%;height:100%;position:absolute;inset:0}.drawn-avatar[data-rig=ready] .avatar-pose{visibility:hidden}.drawn-avatar[data-rigged=true] :is(.avatar-eyes,.avatar-eye-patch,.avatar-mouth-patch,.avatar-skin-patch,.avatar-spark,.avatar-thought){display:none}.drawn-avatar[data-image-layers=true] .avatar-pose{translate:none}.drawn-avatar[data-rigged=true] .avatar-sprite{will-change:auto;transform:none}:root[data-motion=reduced] .avatar-eyes{display:none}.drawn-avatar[data-image-layers=true] img{object-fit:contain;width:100%;height:100%;display:block}.avatar-skin-patch{opacity:var(--avatar-mouth-reveal,0);-webkit-mask-image:radial-gradient(9% 4.3% at 52% 56%,#000 85%,#0000 100%);mask-image:radial-gradient(9% 4.3% at 52% 56%,#000 85%,#0000 100%)}.avatar-thought i{background:#796347;border-radius:50%;width:3px;height:3px;animation:.9s steps(6,end) infinite avatar-dot}.avatar-thought i:nth-child(2){animation-delay:.12s}.avatar-thought i:nth-child(3){animation-delay:.24s}.drawn-avatar[data-state=thinking] .avatar-thought{opacity:1}.avatar-spark{clip-path:polygon(50% 0,60% 38%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 38%);opacity:0;background:#a78643;width:10px;height:10px;position:absolute;top:15%;right:11%}.drawn-avatar:is([data-state=greeting],[data-state=success]) .avatar-spark{animation:.9s steps(12,end) both avatar-spark}.drawn-avatar[data-paused=true] :is(.avatar-thought i,.avatar-spark){animation-play-state:paused}:root[data-motion=reduced] .drawn-avatar :is(.avatar-thought i,.avatar-spark){animation:none}@keyframes avatar-dot{50%{translate:0 -3px}}@keyframes avatar-spark{0%,to{opacity:0;transform:scale(.4)rotate(-20deg)}30%,60%{opacity:.8;transform:scale(1)rotate(10deg)}}.drawn-avatar[data-fluid=true][data-state] .avatar-sprite{will-change:transform;animation:none}.drawn-avatar[data-fluid=true][data-single=true] .avatar-sprite:before{content:"";background:var(--avatar-skin-art) 0 0 / 100% 100% no-repeat;opacity:var(--avatar-mouth-reveal,0);position:absolute;inset:0;-webkit-mask-image:radial-gradient(10% 5% at 50% 51.5%,#000 82%,#0000 100%);mask-image:radial-gradient(10% 5% at 50% 51.5%,#000 82%,#0000 100%)}.drawn-avatar[data-state=greeting] .avatar-sprite,.drawn-avatar[data-state=goodbye] .avatar-sprite{animation:1.3s ease-out both avatar-greet}.drawn-avatar[data-state=thinking] .avatar-sprite{animation:4.6s ease-in-out infinite avatar-think}.drawn-avatar:is([data-state=listening],[data-state=hover],[data-state=focus]) .avatar-sprite{animation:1.2s ease-out both avatar-listen,4.5s ease-in-out 1.2s infinite avatar-breathe}.drawn-avatar[data-state=replying] .avatar-sprite{animation:1.1s steps(6,end) infinite avatar-speak}.drawn-avatar[data-state=success] .avatar-sprite{animation:.85s ease-out both avatar-success}.drawn-avatar[data-state=error] .avatar-sprite{animation:.95s ease-out both avatar-reassure}.drawn-avatar[data-state=offline] .avatar-sprite{animation:8s ease-in-out infinite avatar-breathe}.avatar-finish,.avatar-glint{border-radius:inherit;pointer-events:none;position:absolute;inset:0}.avatar-finish{background:repeating-linear-gradient(0deg,#0000 0 2px,#343d3012 2px 3px),radial-gradient(at 50% 42%,#0000 40%,#29302729 100%);box-shadow:inset 0 0 9px #383d2922}.avatar-finish:after{content:"";opacity:.16;mix-blend-mode:multiply;background:url(/textures/console-grain.svg) 0 0/90px 90px;animation:1.2s step-end infinite avatar-grain;position:absolute;inset:-20%}.avatar-glint{opacity:0;background:linear-gradient(110deg,#0000 30%,#f5f2d547 48%,#0000 65%)}.drawn-avatar:is([data-state=hover],[data-state=focus],[data-state=success]) .avatar-glint{animation:1.1s ease-out both avatar-glint}.drawn-avatar[data-paused=true] .avatar-sprite,.drawn-avatar[data-paused=true] .avatar-finish:after,.drawn-avatar[data-paused=true] .avatar-glint{animation-play-state:paused}:root[data-motion=reduced] .drawn-avatar .avatar-sprite,:root[data-motion=reduced] .drawn-avatar .avatar-finish:after,:root[data-motion=reduced] .drawn-avatar .avatar-glint{animation:none}:root[data-motion=reduced] .avatar-pose{transition:none;translate:0}@keyframes avatar-breathe{0%,to{transform:scale(1.015)}50%{transform:translateY(calc(-0.5% * var(--avatar-energy))) scale(1.023)}}@keyframes avatar-greet{0%,to{transform:scale(1.015)}9%{transform:translateY(.6%)scale(1.015)}22%{transform:translateY(calc(-1% * var(--avatar-energy))) rotate(calc(-2deg * var(--avatar-energy))) scale(1.025)}50%{transform:rotate(calc(1.5deg * var(--avatar-energy))) scale(1.03)}76%{transform:rotate(calc(-.8deg * var(--avatar-energy))) scale(1.02)}}@keyframes avatar-think{0%,to{transform:rotate(calc(-.5deg * var(--avatar-energy))) scale(1.018)}55%{transform:rotate(calc(.6deg * var(--avatar-energy))) translateY(-0.3%) scale(1.024)}}@keyframes avatar-listen{0%{transform:scale(1.015)}55%,to{transform:rotate(calc(-1.4deg * var(--avatar-energy))) scale(1.03)}}@keyframes avatar-speak{0%,to{transform:scale(1.018)}40%{transform:translateY(calc(0.5% * var(--avatar-energy))) rotate(calc(.3deg * var(--avatar-energy))) scale(1.021)}}@keyframes avatar-success{0%,to{transform:scale(1.015)}35%{transform:translateY(calc(-1.4% * var(--avatar-energy))) scale(1.04)}65%{transform:translateY(.3%)scale(1.02)}}@keyframes avatar-reassure{0%,to{transform:scale(1.015)}40%{transform:translateY(calc(1% * var(--avatar-energy))) rotate(calc(.6deg * var(--avatar-energy))) scale(1.02)}}@keyframes avatar-grain{0%,to{transform:translate(0)}25%{transform:translate(3%,-2%)}50%{transform:translate(-2%,3%)}75%{transform:translate(2%,2%)}}@keyframes avatar-glint{0%{opacity:0;translate:-100%}30%{opacity:.45}to{opacity:0;translate:100%}}.assistant-launcher{width:380px;height:var(--footer-control-height);border:1px solid var(--pager-case-edge);background:var(--pager-case);color:var(--pager-ink);text-align:left;isolation:isolate;transition:transform .35s var(--ease-out), border-color .3s;border-radius:4px;grid-template-columns:52px minmax(0,1fr) 30px;align-items:center;gap:13px;padding:10px 12px 10px 14px;display:grid;position:relative;overflow:hidden;box-shadow:0 20px 40px -20px #000e}.assistant-launcher:hover,.assistant-launcher:focus-visible{border-color:var(--room-line-lit);transform:translateY(-2px)}.assistant-launcher:before{content:"";background:var(--pager-tube);border-radius:0 0 3px 3px;height:3px;animation:11s step-end infinite fluorescent;position:absolute;top:0;left:18px;right:18px;box-shadow:0 0 10px 2px #ece6ac8c,0 14px 40px 4px #ece6ac1f}.assistant-launcher:hover:before{animation-play-state:paused}.assistant-launcher:after{content:"";pointer-events:none;opacity:.28;mix-blend-mode:soft-light;background:url(/textures/console-grain.svg) 0 0/120px;position:absolute;inset:0}.launcher-avatar{filter:saturate(.55)sepia(.2);border-radius:3px;width:52px;height:52px;display:block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14}.assistant-avatar{filter:saturate(.62);width:44px;height:44px;box-shadow:inset 0 0 0 1px var(--room-line);border-radius:3px;display:block;position:relative;overflow:hidden}.launcher-avatar img,.assistant-avatar img{object-fit:cover;width:100%;height:100%;display:block}.launcher-avatar:after,.assistant-avatar:after{content:"";background:repeating-linear-gradient(0deg,#0000 0 1px,#00000038 2px 3px);position:absolute;inset:0}.launcher-screen{gap:5px;min-width:0;display:grid}.launcher-line{font:12.5px/1.25 var(--font-mono-family);color:var(--pager-lcd-ink);white-space:nowrap;text-overflow:ellipsis;text-shadow:var(--pager-glow);min-height:1.25em;overflow:hidden}.launcher-line:after{content:"▮";margin-left:1px;animation:1.1s step-end 4 lcd-cursor}.launcher-sub{font:10px/1.2 var(--font-mono-family);color:var(--pager-lcd-dim);letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.launcher-sub-compact{display:none}.launcher-key{border:1px solid var(--pager-case-edge);width:30px;height:30px;color:var(--pager-ink);background:var(--pager-key);transition:color .25s, transform .16s var(--ease-out);border-radius:3px;place-items:center;display:grid}.assistant-launcher:hover .launcher-key{color:var(--pager-lcd-ink);border-color:var(--room-line-lit)}.assistant-launcher:active .launcher-key{transform:translateY(1px)}.pager-dock{--control-ink:var(--pager-lcd-ink);height:var(--footer-control-height);border:1px solid var(--pager-case-edge);background:var(--pager-case);isolation:isolate;pointer-events:auto;border-radius:4px;transition:border-color .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 40px -20px #000e}.pager-dock:has(.assistant-launcher:hover,.assistant-launcher:focus-visible){border-color:var(--room-line-lit)}.pager-dock:before,.pager-dock:after{content:"";pointer-events:none;position:absolute}.pager-dock:before{z-index:1;background:var(--pager-tube);border-radius:0 0 3px 3px;height:3px;animation:11s step-end infinite fluorescent;top:0;left:18px;right:18px;box-shadow:0 0 10px 2px #ece6ac8c,0 14px 40px 4px #ece6ac1f}.pager-dock:hover:before{animation-play-state:paused}:root[data-theme=dark] .pager-dock:before{background:#ece6ac66;height:2px;box-shadow:0 0 10px 2px #ece6ac40,0 14px 40px 4px #ece6ac14}.pager-dock:after{opacity:.28;mix-blend-mode:soft-light;background:url(/textures/console-grain.svg) 0 0/120px;inset:0}.pager-dock .assistant-launcher{height:100%;box-shadow:none;background:0 0;border:0;border-radius:0}.pager-dock .assistant-launcher:before,.pager-dock .assistant-launcher:after{display:none}.pager-dock .assistant-launcher:hover,.pager-dock .assistant-launcher:focus-visible{transform:none}.assistant-dialog{--control-ink:var(--room-ink);border:1px solid var(--room-line);background:var(--room-surface);width:430px;height:calc(100dvh - 48px);max-height:none;color:var(--room-ink);box-shadow:var(--room-shadow-lg);isolation:isolate;border-radius:8px;margin:0;padding:0;position:fixed;inset:24px 24px 24px auto;overflow:hidden}.assistant-dialog::backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.assistant-dialog[open]{animation:noclip .46s var(--ease-out) both}.assistant-dialog[open] .assistant-fluorescent{animation:.62s step-end fluorescent-on,11s step-end .62s infinite fluorescent}.assistant-inner{flex-direction:column;height:100%;display:flex;position:relative}.assistant-inner:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(180deg, var(--room-tube-wash), transparent 34%), linear-gradient(200deg, var(--room-wash), transparent 55%), url(/textures/console-grain.svg) repeat;opacity:var(--room-grain-opacity);mix-blend-mode:var(--room-grain);background-size:auto,auto,120px;position:absolute;inset:0}.assistant-inner>*{z-index:1;position:relative}.assistant-fluorescent{background:var(--room-tube);height:5px;box-shadow:0 0 14px 3px var(--room-tube-glow), 0 26px 60px 8px var(--room-tube-wash);border-radius:0 0 4px 4px;margin:0 20px;display:block}.assistant-header{border-bottom:1px solid var(--room-line);background:linear-gradient(180deg, var(--room-tube-wash), transparent);grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;padding:22px 22px 18px;display:grid}.assistant-header h2{font:400 19px/1.1 var(--font-console);letter-spacing:.01em}.assistant-header>div>span{font:10px/1.4 var(--font-mono-family);color:var(--room-muted);letter-spacing:.05em;margin-top:6px;display:block}.assistant-header>.assistant-close{width:30px;height:30px;color:var(--room-muted);border:1px solid #0000;border-radius:3px;place-items:center;display:grid}.assistant-header>.assistant-close:hover{border-color:var(--room-line)}.chat-messages{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--room-line) transparent;flex:1;align-content:start;gap:18px;padding:22px;display:grid;overflow-y:auto}.chat-welcome{gap:10px;display:grid}.chat-welcome>p{font:14px/1.65 var(--font-body);max-width:360px}.chat-honest{font:10px/1.5 var(--font-mono-family);color:var(--room-muted);letter-spacing:.03em}.chat-prompts{gap:2px;margin-top:10px;display:grid}.chat-prompts button{text-align:left;color:var(--room-ink);font:13px/1.4 var(--font-body);box-shadow:inset 0 0 0 0 var(--room-line-lit);transition:background .22s, box-shadow .26s var(--ease-out);border-radius:4px;grid-template-columns:14px minmax(0,1fr) 14px;align-items:center;gap:10px;padding:13px 10px 13px 8px;display:grid}.chat-prompts button:hover,.chat-prompts button:focus-visible{background:var(--room-panel);box-shadow:inset 2px 0 0 0 var(--room-line-lit)}.chat-prompts i{font:12px var(--font-mono-family);color:var(--room-line-lit);font-style:normal}.chat-prompts svg{opacity:0;transition:opacity .22s, transform .26s var(--ease-out)}.chat-prompts button:hover svg,.chat-prompts button:focus-visible svg{opacity:.85;transform:translate(2px)}.chat-message{font:13.5px/1.7 var(--font-body)}.chat-failed{font:10px/1.4 var(--font-mono-family);color:var(--room-muted);margin-top:4px;display:block}.chat-message>p{white-space:pre-wrap;overflow-wrap:anywhere}.assistant-header:has(.assistant-character){grid-template-columns:124px minmax(0,1fr) auto;gap:16px;padding-top:18px}.assistant-character{border:1px solid var(--room-line);cursor:pointer;border-radius:6px;width:124px;height:140px;padding:0;transition:box-shadow .2s;box-shadow:0 4px 15px #15191212}.assistant-character:hover{box-shadow:0 5px 18px #15191222}.assistant-character:focus-visible{outline:2px solid var(--room-line-lit);outline-offset:3px}.assistant-character .drawn-avatar{--avatar-energy:1.25;aspect-ratio:1;height:auto;top:8px}.chat-reply-revealing:after{content:"";background:var(--room-line-lit);width:5px;height:.9em;margin-left:3px;animation:.8s steps(2,end) infinite reply-cursor;display:inline-block}.chat-skip-reveal{color:var(--room-muted);font:10px/1.6 var(--font-mono-family);text-underline-offset:3px;margin-top:8px;text-decoration:underline}@keyframes reply-cursor{50%{opacity:0}}@media (max-width:480px){.assistant-header:has(.assistant-character){grid-template-columns:96px minmax(0,1fr) auto;gap:12px}.assistant-character{width:96px;height:112px}.assistant-character .drawn-avatar{top:8px}}.chat-message.user{background:var(--room-panel);border:1px solid var(--room-line);max-width:320px;font:12px/1.6 var(--font-mono-family);border-radius:4px;justify-self:end;padding:10px 12px}.chat-message.user>p:before{content:"> ";color:var(--room-line-lit)}.chat-sources{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.chat-sources a,.note-source{font:10px/1 var(--font-mono-family);color:var(--room-muted);background:var(--room-panel);border:1px solid var(--room-line);letter-spacing:.03em;border-radius:2px;align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.chat-sources a>span,.note-source>span{color:var(--room-ink)}.chat-sources a:hover,.chat-sources a:focus-visible{color:var(--room-ink);border-color:var(--room-line-lit)}.chat-sources svg{width:11px;height:11px}.chat-status{font:11px/1.6 var(--font-mono-family);color:var(--room-muted);align-items:center;gap:10px;display:flex}.chat-status button{color:var(--room-muted);text-underline-offset:3px;text-decoration:underline}.chat-status:after{content:"▮";margin-left:4px;animation:1.1s step-end 4 lcd-cursor}.chat-form{padding:0 22px max(14px, env(safe-area-inset-bottom))}.chat-composer{grid-template-rows:repeat(2,44px);grid-template-columns:minmax(0,1fr) 44px;align-items:stretch;gap:6px 8px;display:grid}.chat-composer textarea{resize:none;border:1px solid var(--room-line);background:var(--room-surface);width:100%;height:100%;min-height:94px;color:var(--room-ink);font:13px/1.5 var(--font-body);caret-color:var(--room-line-lit);border-radius:4px;outline:none;grid-area:1/1/3;padding:13px 12px}.chat-composer textarea::placeholder{color:var(--room-muted)}.chat-composer textarea:focus{border-color:var(--room-line-lit)}.chat-composer button{border:1px solid var(--room-line);background:var(--room-surface);width:44px;height:44px;color:var(--room-ink);transition:border-color .2s, transform .16s var(--ease-out);border-radius:4px;grid-column:2;place-items:center;display:grid}.chat-composer button:hover:not(:disabled){border-color:var(--room-line-lit)}.chat-composer button:active:not(:disabled){transform:translateY(1px)}.chat-composer .chat-reset{color:var(--room-muted);grid-row:1}.chat-send{grid-row:2}.chat-unavailable,.chat-error{border-top:1px solid var(--room-line);font:12px/1.6 var(--font-body);color:var(--room-muted);margin:0 22px;padding:12px 0}.chat-error{color:var(--accent)}.turnstile-container:not(:empty){margin-bottom:10px}.assistant-dialog a:focus-visible,.assistant-dialog button:focus-visible,.assistant-dialog textarea:focus-visible{outline-color:var(--room-line-lit)}@keyframes noclip{0%{clip-path:inset(38% 0 62%);opacity:0;transform:translate(8px)}18%{clip-path:inset(38% 0 62%);opacity:1;transform:translate(-4px)}30%{clip-path:inset(22% 0 48%);transform:translate(3px)}46%{clip-path:inset(22% 0 48%);transform:translate(0)}62%{clip-path:inset(6% 0 9%)}to{clip-path:inset(0);opacity:1;transform:none}}@keyframes fluorescent{0%,to{opacity:1}3.1%{opacity:.55}3.5%{opacity:1}3.9%{opacity:.7}4.3%{opacity:1}41%{opacity:1}41.4%{opacity:.45}41.7%{opacity:1}77%{opacity:1}77.3%{opacity:.6}77.6%{opacity:1}78.2%{opacity:.8}78.5%{opacity:1}}@keyframes fluorescent-on{0%{opacity:0}18%{opacity:.9}26%{opacity:.15}42%{opacity:1}52%{opacity:.35}68%{opacity:1}74%{opacity:.7}to{opacity:1}}@keyframes lcd-cursor{0%,49%{opacity:1}50%,to{opacity:0}}:root[data-motion=reduced] .assistant-fluorescent,:root[data-motion=reduced] .assistant-launcher:before,:root[data-motion=reduced] .pager-dock:before,:root[data-motion=reduced] .launcher-line:after,:root[data-motion=reduced] .chat-status:after{animation:none}:root[data-motion=reduced] .assistant-dialog[open]{clip-path:none;animation:none}@media (max-width:760px){.assistant-dialog{width:auto;max-width:none;height:calc(100dvh - 20px);inset:10px}.assistant-header>.assistant-close{width:44px;height:44px}.chat-composer textarea{font-size:16px}.chat-composer{grid-template-columns:minmax(0,1fr) 44px}.chat-composer button{width:44px}.chat-status button,.chat-skip-reveal,.chat-sources a{min-height:44px}.assistant-launcher{flex:1;grid-template-columns:44px minmax(0,1fr) 26px;gap:10px;width:auto;min-width:0;max-width:min(380px,100vw - 46px);padding:8px 10px 8px 11px}.pager-dock{flex:1;min-width:0}.pager-dock .assistant-launcher{max-width:none}.launcher-avatar{width:44px;height:44px}.launcher-key{width:26px;height:26px}.launcher-line{font-size:11px}}@media (max-width:420px){.assistant-launcher{grid-template-columns:40px minmax(0,1fr);gap:8px;padding:7px 9px}.launcher-avatar{width:40px;height:40px}.launcher-key{display:none}.launcher-sub{font-size:10px}.launcher-sub-full{display:none}.launcher-sub-compact{display:inline}}.brand-name{display:inline-flex}.brand-name>span{white-space:pre;display:inline-block}.brand[data-clicking] .brand-name{opacity:1}.clicker-readout{font:11px/1 var(--font-mono-family);font-variant-numeric:tabular-nums;opacity:0;transition:opacity .3s, translate .3s var(--ease-out);pointer-events:none;align-items:center;gap:6px;display:inline-flex;translate:0 2px}.brand[data-clicking] .clicker-readout{opacity:1;translate:0}.clicker-score{color:var(--muted)}.clicker-multiplier{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:3px 7px;transition:background .25s,color .25s,border-color .25s}.clicker-multiplier[data-hot]{background:var(--clicker-tint,var(--accent));color:var(--paper);border-color:#0000}.clicker-toast{top:calc(var(--header-height) - 6px);z-index:41;background:var(--ink);color:var(--paper);font:11px/1 var(--font-mono-family);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;pointer-events:none;animation:clicker-toast 2.6s var(--ease-out) both;border-radius:999px;padding:7px 12px;position:fixed;left:50%;translate:-50%}@keyframes clicker-toast{0%{opacity:0;translate:-50% 6px}15%,75%{opacity:1;translate:-50%}to{opacity:0;translate:-50% -4px}}.clicker-waves{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.clicker-scanlines{z-index:13;pointer-events:none;opacity:0;background:repeating-linear-gradient(0deg,#0000 0 2px,#0000002a 2px 4px);position:fixed;inset:0}:root[data-theme=dark] .clicker-scanlines{background:repeating-linear-gradient(0deg,#0000 0 2px,#ffffff12 2px 4px)}.clicker-confetti{z-index:12;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.site-header{z-index:40;pointer-events:none;height:var(--header-height);justify-content:space-between;align-items:center;max-width:1450px;margin:0 auto;padding:0 54px;transition:background .26s,-webkit-backdrop-filter .26s,backdrop-filter .26s;display:flex;position:sticky;top:0}.brand,.site-settings{pointer-events:auto}.brand{align-items:center;gap:11px;font-size:13px;font-weight:500;display:flex}.brand svg{width:31px;height:31px}.brand-name{opacity:0;transition:opacity .2s}.brand:hover .brand-name,.brand:focus-visible .brand-name{opacity:1}.site-settings{color:var(--muted);align-items:center;gap:17px;font-size:12px;display:flex}.site-settings>button{border-radius:999px;justify-content:center;align-items:center;gap:7px;min-width:36px;min-height:36px;padding:7px;display:flex}.site-settings>button,.select-trigger,.collection-controls button,.contact-copy,.contact-success button,.media-viewer-close,.gallery-viewer-nav,.experience-gap-toggle,.experience-stage-toggle,.rail-jump-toggle,.startup-mute,.startup-skip,.console-top button,.console-direction-controls button,.console-confirm,.assistant-header>button,.award-collection-trigger,.award-collection-actions button,.chat-composer button{transition:background .19s,color .19s,border-color .19s}.site-settings>button:hover,.select-trigger:hover,.select-trigger[aria-expanded=true],.contact-copy:hover,.contact-success button:hover,.media-viewer-close:hover,.gallery-viewer-nav:hover:not(:disabled),.experience-gap-toggle:hover,.experience-stage-toggle:hover,.rail-jump-toggle:hover,.collection-extra:hover,.collection-tabs button:hover:not(:disabled),.collection-selections button:hover,.collection-reset:hover,.startup-mute:hover,.startup-skip:hover,.console-top button:hover,.console-direction-controls button:hover:not(:disabled),.console-confirm:hover,.assistant-header>button:hover,.award-collection-trigger:hover,.award-collection-actions button:hover,.chat-composer button:hover:not(:disabled){color:var(--control-ink)}.site-settings>button svg,.select-trigger svg,.contact-submit button svg,.contact-copy svg,.media-viewer-close svg,.gallery-viewer-nav svg,.console-top button svg,.console-direction-controls button svg,.assistant-header>button svg,.award-collection-trigger svg,.award-collection-actions button svg,.chat-composer button svg,.startup-mute svg{transition:scale .2s var(--ease-out)}.site-settings>button:hover svg,.select-trigger:hover svg:not(.select-chevron),.contact-submit button:hover:not(:disabled) svg,.contact-copy:hover svg,.media-viewer-close:hover svg,.gallery-viewer-nav:hover:not(:disabled) svg,.experience-gap-toggle:hover svg,.experience-stage-toggle:hover svg,.rail-jump-toggle:hover svg,.collection-extra:hover svg,.console-top button:hover svg,.console-direction-controls button:hover:not(:disabled) svg,.assistant-header>button:hover svg,.award-collection-trigger:hover svg,.award-collection-actions button:hover svg,.chat-composer button:hover:not(:disabled) svg,.startup-mute:hover svg{scale:1.12}.sound-icon{display:inline-flex;position:relative}.sound-warning{background:var(--paper);width:12px;height:12px;color:var(--accent);font:650 9px/1 var(--font-body);border:1px solid;border-radius:50%;place-items:center;display:grid;position:absolute;top:-7px;right:-7px}.detail-toolbar a,.section-heading>a,.intro-links a,.intro-links button,.intro .intro-name a,.intro-scroll-cue,.personal-line a,.compact-section-link,.source-links a,.education-credential,.text-link{transition:color .19s}.detail-toolbar a svg,.section-heading>a svg,.intro-links .link-arrow,.intro-scroll-cue svg,.personal-line a svg,.compact-section-link svg,.source-links a svg,.education-credential svg,.skill-evidence a svg,.text-link svg{transition:transform .2s var(--ease-out)}.detail-toolbar a:hover,.section-heading>a:hover,.intro-links a:hover,.intro-links button:hover,.intro .intro-name a:hover,.intro-scroll-cue:hover,.personal-line a:hover,.compact-section-link:hover,.source-links a:hover,.education-credential:hover,.text-link:hover{color:var(--control-ink)}.intro-links :is(a,button):hover .link-arrow,.personal-line a:hover svg,.education-credential:hover svg,.source-links a:hover svg{transform:translate(2px,-2px)}.section-heading>a:hover svg,.compact-section-link:hover svg,.skill-evidence a:hover svg,.text-link:hover svg{transform:translate(3px)}.detail-toolbar a:hover svg,.text-link[data-direction=back]:hover svg{transform:translate(-3px)}.experience-row,.project-row,.skill-preview,.related-projects a,.contact-links a,.contact-links .contact-reveal,.experience-entry,.project-index .reveal>a,.rail-jump-list a{transition:translate .3s var(--ease-out), background .22s, color .19s, --muted .19s, --faint .19s}.experience-row:hover,.project-row:hover,.skill-preview:hover,.related-projects a:hover,.contact-links a:hover,.contact-links .contact-reveal:not(:disabled):hover,.experience-entry:hover,.project-index .reveal>a:hover,.rail-jump-list a:hover{translate:4px}html[data-scrolling] :is(.experience-row,.project-row,.skill-preview,.related-projects a,.contact-links a,.contact-links .contact-reveal,.experience-entry,.project-index .reveal>a,.rail-jump-list a):hover{translate:none}.related-projects a svg,.project-index h2 svg{transition:transform .2s var(--ease-out)}.related-projects a:hover svg,.project-index .reveal>a:hover h2 svg{transform:translate(3px)}.related-projects a:hover{color:var(--control-ink)}:where(a.experience-row,a.experience-entry,a.project-row,a.skill-preview,.related-projects a,.contact-links a,.contact-links .contact-reveal,.project-index .reveal>a,a.education-entry-title,.experience-gap-toggle,.experience-stage-toggle,.rail-jump-toggle,.rail-jump-list a,.collection-tabs button,.collection-extra){isolation:isolate;position:relative}:where(a.experience-row,a.experience-entry,a.project-row,a.skill-preview,.related-projects a,.contact-links a,.contact-links .contact-reveal,.project-index .reveal>a,a.education-entry-title,.experience-gap-toggle,.experience-stage-toggle,.rail-jump-toggle,.rail-jump-list a,.collection-tabs button,.collection-extra):before{content:"";z-index:-1;border:1px solid var(--reach-edge);border-radius:var(--radius-float);background:var(--reach-wash);opacity:0;pointer-events:none;transition:opacity .2s, translate .3s var(--ease-out);position:absolute;inset:0 -12px}:where(a.education-entry-title,.experience-gap-toggle,.experience-stage-toggle,.rail-jump-toggle,.rail-jump-list a):before{border-radius:8px;inset:-2px -8px}:where(.contact-links a,.contact-links .contact-reveal):before{inset:0}:where(.collection-tabs button):before{border-radius:var(--radius-control);inset:0}:where(.collection-extra):before{border-radius:var(--radius-control);inset:-1px}@media (hover:hover){html:not([data-scrolling]) :where(a.experience-row,a.experience-entry,a.project-row,a.skill-preview,.related-projects a,.contact-links a,.contact-links .contact-reveal:not(:disabled),.project-index .reveal>a,a.education-entry-title,.experience-gap-toggle,.experience-stage-toggle,.rail-jump-toggle,.rail-jump-list a,.collection-tabs button:not([aria-pressed=true],:disabled),.collection-extra):hover{--muted:var(--muted-strong);--faint:var(--faint-strong)}html:not([data-scrolling]) :where(a.experience-row,a.experience-entry,a.project-row,a.skill-preview,.related-projects a,.contact-links a,.contact-links .contact-reveal:not(:disabled),.project-index .reveal>a,a.education-entry-title,.experience-gap-toggle,.experience-stage-toggle,.rail-jump-toggle,.rail-jump-list a,.collection-tabs button:not([aria-pressed=true],:disabled),.collection-extra):hover:before{opacity:1}html:not([data-scrolling]) :where(a.experience-row,a.experience-entry,a.project-row,a.skill-preview,.related-projects a,.contact-links a,.contact-links .contact-reveal:not(:disabled),.project-index .reveal>a,.rail-jump-list a):hover:before{translate:-4px}}:where(a.experience-row,a.experience-entry,a.project-row,a.skill-preview,.related-projects a,.contact-links a,.contact-links .contact-reveal:not(:disabled),.project-index .reveal>a,a.education-entry-title,.experience-gap-toggle,.experience-stage-toggle,.rail-jump-toggle,.rail-jump-list a,.collection-tabs button,.collection-extra):focus-visible{--muted:var(--muted-strong);--faint:var(--faint-strong)}:where(a.experience-row,a.experience-entry,a.project-row,a.skill-preview,.related-projects a,.contact-links a,.contact-links .contact-reveal:not(:disabled),.project-index .reveal>a,a.education-entry-title,.experience-gap-toggle,.experience-stage-toggle,.rail-jump-toggle,.rail-jump-list a,.collection-tabs button,.collection-extra):focus-visible:before{opacity:1}.experience-gap-toggle,.experience-stage-toggle,.rail-jump-toggle,.collection-controls .collection-tabs button,.collection-controls .collection-extra{transition:background .19s,color .19s,border-color .19s,--muted .19s,--faint .19s}a[href]:active,button:not(:disabled):active,[role=button]:active{scale:.98}a[href],button,[role=button]{transition:scale .14s var(--ease-out)}[data-press=off],[data-press=off]:active{scale:none}.press-layer{pointer-events:none;z-index:200;background:0 0;border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.press-layer:popover-open{display:block}.press-ring{animation:press-ring .46s var(--ease-out) forwards;outline:1px solid;position:absolute}@keyframes press-ring{0%{outline-offset:0;opacity:.5}to{outline-offset:10px;opacity:0}}@keyframes menu-in{0%{opacity:0;filter:blur(6px);transform:translateY(-4px)scale(.98)}to{opacity:1;filter:blur();transform:none}}.workspace{max-width:678px;transition:max-width .36s var(--ease-out);grid-template-columns:minmax(0,1fr);gap:0;margin:28px auto 120px;display:grid}.overview-scroll{min-width:0}.overview{padding:0 24px}.site-footer{--footer-control-height:74px;--footer-inline:24px;padding:28px var(--footer-inline) var(--footer-inline);background:linear-gradient(to bottom, transparent, var(--paper) 28%);pointer-events:none;z-index:10;transition:translate .32s var(--ease-out);justify-content:flex-end;align-items:flex-end;display:flex;position:fixed;bottom:0;left:0;right:0}.site-footer button{pointer-events:auto}}@layer utilities{.\!visible{visibility:visible!important}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.hidden{display:none}.inline{display:inline}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}@property --muted{syntax:"<color>";inherits:true;initial-value:#626976}@property --faint{syntax:"<color>";inherits:true;initial-value:#656d79}:root{--paper:#fbfcfd;--surface:#fff;--ink:#23262d;--muted:#626976;--faint:#656d79;--line:#e2e5ea;--field-line:#878e99;--accent:#b3283f;--danger:#a43536;--hover:#f0f3f7;--control-ink:var(--ink);--muted-strong:var(--muted)}@supports (color:color-mix(in lab, red, red)){:root{--muted-strong:color-mix(in srgb, var(--muted) 35%, var(--ink))}}:root{--faint-strong:var(--faint)}@supports (color:color-mix(in lab, red, red)){:root{--faint-strong:color-mix(in srgb, var(--faint) 35%, var(--ink))}}:root{--toggle-ink:var(--muted)}@supports (color:color-mix(in lab, red, red)){:root{--toggle-ink:color-mix(in srgb, var(--muted) 70%, var(--ink))}}:root{--reach-wash:var(--accent)}@supports (color:color-mix(in lab, red, red)){:root{--reach-wash:color-mix(in srgb, var(--accent) 3.5%, transparent)}}:root{--reach-edge:var(--accent)}@supports (color:color-mix(in lab, red, red)){:root{--reach-edge:color-mix(in srgb, var(--accent) 20%, transparent)}}:root{--shadow:0 20px 70px #151e3114;--font-body:"Inter Variable", "Inter", sans-serif;--font-console:"Zen Kaku Gothic New", sans-serif;--font-mono-family:"IBM Plex Mono", monospace;--selection:var(--accent)}@supports (color:color-mix(in lab, red, red)){:root{--selection:color-mix(in srgb, var(--accent) 24%, transparent)}}:root{--backdrop:#151a284a;--ease-out:cubic-bezier(.22, 1, .36, 1);--motion-route:.62s;--open-line-in:.56s;--open-line-out:.3s;--radius-control:6px;--radius-float:10px;--header-height:100px;--glass:var(--paper)}@supports (color:color-mix(in lab, red, red)){:root{--glass:color-mix(in srgb, var(--paper) 72%, transparent)}}:root{--console-night:#080b0e;--console-boot-black:#030305;--console-boot-beam:#83b7e4;--console-boot-ink:#f5f4fb;--console-blue:#263e5d;--console-amber:#4b4933;--console-lamp:#dfd5a1;--console-ink:#e1e8e5;--console-halo:#bdcdd77a;--console-fringe:#c7a99066;--console-launch-paper:var(--paper);--console-launch-ink:var(--ink);--console-signature:var(--accent);--console-wave-cool:163, 191, 218;--console-wave-warm:202, 191, 150;--console-shell-lit:#4c3a3d;--console-shell:#342427;--console-shell-shade:#251719;--console-shell-top:#ffffff2e;--console-shell-inner:#000a;--console-shell-edge:#8a6168;--console-outline:1.25px;--console-key:#5f484c;--console-key-lit:#b7a1a5;--console-key-shade:#0a0405;--console-bezel:#080405;--console-bezel-edge:#ffffff2a;--console-screen-deep:#0e0809;--console-screen:#4a1f28;--console-screen-wave:226, 184, 191;--console-power:#cfe0b4;--console-tube:#ece6ac;--console-tube-glow:#ece6ac80;--console-grain-opacity:.3;--room-surface:var(--surface);--room-panel:#f4f1e6;--room-line:#ded7bf;--room-line-lit:#9e9268;--room-ink:var(--ink);--room-muted:var(--muted);--room-wash:#cbb96f1f;--room-grain:multiply;--room-grain-opacity:.09;--room-tube:#e6d98c;--room-tube-glow:#e6d98ccc;--room-tube-wash:#e6d98c38;--room-shadow:0 14px 26px -18px #2b281d5c;--room-shadow-lg:0 28px 60px -26px #2b281d59;--pager-case:#0e1217;--pager-case-edge:#34382f;--pager-ink:#a7a596;--pager-key:#0b0d10;--pager-lcd-ink:#cfe0b4;--pager-lcd-dim:#7c8a6a;--pager-glow:0 0 8px #cfe0b447;--pager-tube:#ece6ac;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#171a1f;--surface:#1c2027;--ink:#e5e7eb;--muted:#a6acb8;--faint:#929ba9;--line:#343a45;--field-line:#68707d;--accent:#afc3ef;--danger:#f0a09a;--hover:#252c36;--reach-wash:var(--accent)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=dark]{--reach-wash:color-mix(in srgb, var(--accent) 6%, transparent)}}:root[data-theme=dark]{--shadow:0 20px 70px #0004;--console-shell-lit:#444d59;--console-shell:#303844;--console-shell-shade:#222933;--console-shell-top:#ffffff45;--console-shell-inner:#0008;--console-shell-edge:#78836e;--console-outline:1px;--console-key:#526070;--console-key-lit:#b0bac8;--console-key-shade:#171d25;--console-bezel:#0c0f13;--console-bezel-edge:#ffffff38;--console-screen-deep:var(--console-night);--console-screen:var(--console-blue);--console-screen-wave:var(--console-wave-cool);--console-power:#d2e4b6;--console-tube:#ece6ac;--console-tube-glow:#d9c76a99;--console-grain-opacity:0;--room-panel:#161a20;--room-line:#3b4034;--room-line-lit:#929c7f;--room-wash:#d4c0731a;--room-grain:soft-light;--room-grain-opacity:.3;--room-tube:#ece6ac;--room-tube-glow:#ece6ac8c;--room-tube-wash:#ece6ac1f;--room-shadow:0 16px 30px -18px #000c;--room-shadow-lg:0 30px 80px -20px #000d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@layer responsive{@media (max-width:760px){.select-menu[data-variant=compact] .select-trigger{min-width:44px;min-height:44px}}@media (max-width:640px){.select-menu[data-variant=field] .select-trigger,.select-option{min-height:44px}}@media (max-width:1099px){.overview:not(.is-compact) .intro{--intro-device-width:228px;column-gap:18px}.overview:not(.is-compact) .intro-device{--device-scale:1.06;translate:24px}}@media (max-width:899px){.overview:not(.is-compact) .intro-device{translate:6px}}@media (max-width:760px){.overview:not(.is-compact) .intro{grid-template-columns:minmax(0,1fr)}.overview:not(.is-compact) .intro-device{--device-scale:.94;grid-area:1/1;justify-self:center;width:100%;margin:0 0 34px;translate:none}.overview:not(.is-compact) .intro-heading{grid-area:2/1;translate:none}.overview:not(.is-compact) .intro-name{letter-spacing:-.032em;font-size:clamp(36px,7vw + 13px,46px)}.overview:not(.is-compact) .role{margin-top:8px;font-size:15px}.overview:not(.is-compact) .intro-description{padding-top:20px;font-size:16px}.intro-scroll-cue{width:44px;height:44px;margin-top:12px}.overview:not(.is-compact) .intro-scroll-cue{position:static;translate:none}.overview:not(.is-compact) .intro{text-align:center;padding-top:0}.overview:not(.is-compact) .intro-device{margin-bottom:22px}.overview:not(.is-compact) .intro-heading{justify-self:stretch}.overview:not(.is-compact) .location-parts{justify-items:center;margin-left:0;display:grid}.overview:not(.is-compact) .location-parts>span{text-indent:0;padding-left:0}.overview:not(.is-compact) .location-parts>span:before{display:none}.overview:not(.is-compact) .intro-description{text-wrap:balance;max-width:30em;margin-inline:auto;padding-top:16px;font-size:15px;line-height:1.55}.overview:not(.is-compact) .intro-links{margin-top:12px}}@media (max-width:420px){.overview:not(.is-compact) .intro-device{--device-scale:.86}}@media (max-width:760px) and (max-height:700px){.overview:not(.is-compact) .intro-device{--device-scale:.76}}@media (max-width:360px){.overview:not(.is-compact) .intro-device{--device-scale:.76}}@media (max-width:760px){.intro-links{grid-template-columns:repeat(2,max-content);column-gap:14px;display:grid}.overview:not(.is-compact) .intro-links{justify-content:center;margin-left:0;display:flex}}@media (max-width:760px) and (max-height:760px){.overview:not(.is-compact) .intro-scroll-cue{display:none}}@media (max-width:760px) and (max-height:700px){.overview:not(.is-compact) .intro-device{margin-bottom:20px}.overview:not(.is-compact) .intro-description{padding-top:10px}}@media (max-width:760px){.detail-toolbar{justify-content:flex-start}.detail-toolbar a+a{margin-left:-11px}.detail-toolbar a,.text-link.detail-more,.source-links a,.skill-evidence a{min-height:44px}a.education-entry-title,.education-credential{margin-block:-12px;padding-block:12px}.personal-line a{margin-block:-8px;padding-block:13px}.experience-stages{gap:0}.experience-stage-toggle{min-height:44px}.phone-sections{margin-top:48px;display:grid}.phone-sections .compact-section-link{min-height:44px;font-size:13px}.media-viewer-hint,.contact-links a>svg{opacity:1}.contact-copy,.media-viewer-close{width:44px;height:44px}}@container contact (max-width:520px){.contact-intro{grid-template-columns:112px minmax(0,1fr);grid-template-areas:"line line""photo list";gap:12px 16px}.contact-side{display:contents}.contact-portrait-frame{grid-area:photo}.contact-intro .contact-links{grid-area:list}.contact-portrait{min-height:0}.detail-lead.contact-line{grid-area:line;margin:-5px 0 0;font-size:14px}.contact-intro .contact-links a,.contact-intro .contact-links .contact-reveal{grid-template-columns:18px minmax(0,1fr) 12px;gap:10px}.contact-intro .contact-handle{font-size:14px}.contact-intro .contact-links .contact-reveal{grid-template-columns:18px minmax(0,1fr)}.contact-intro .contact-reveal>svg{display:none}.contact-email-note{margin-left:28px}}@container contact (max-width:300px){.contact-intro{grid-template-columns:88px minmax(0,1fr);column-gap:12px}.contact-intro .contact-handle{font-size:13px}}@media (max-width:760px){.about-copy p{font-size:14px}}@media (max-width:640px){.collection-search{min-height:46px}.collection-search input{font-size:16px}.collection-primary .collection-tabs{display:none}.collection-primary .collection-primary-select{flex-direction:column;align-items:stretch;gap:6px;display:flex}.collection-primary-select .select-menu{flex:none}.collection-extra{align-self:end;min-height:44px}.collection-fields,.collection-fields[data-fields]{grid-template-columns:minmax(0,1fr);gap:12px;padding:14px}.collection-reset,.collection-selections button{min-height:44px}}@media (max-width:760px){.experience-gap-toggle{min-height:44px}.experience-row[data-tier="1"] .row-title{font-size:15px}.experience-stages p{font-size:13px}.experience-list,.experience-years{--path-col:28px;--path-gap:12px}.experience-year{grid-template-columns:42px minmax(0,1fr)}.education-honours{padding-left:40px}.experience-entry .entry-period{padding-left:0;font-size:10.5px;line-height:1.7}.experience-entry:is([data-tier="2"],[data-tier="3"]){grid-template-columns:var(--path-col) minmax(0, 1fr)}.experience-entry[data-tier="2"]{grid-template-areas:"mark line""mark meta""mark period"}.experience-entry[data-tier="3"]{grid-template-areas:"mark line"".meta"".period"}.organization-mark[data-size=small]{width:20px;height:20px}.organization-mark[data-size=tiny]{width:16px;height:16px}}@media (max-width:640px){.gallery-viewer{grid-template:"top top top"56px"stage stage stage"minmax(0,1fr)"prev meta next"/60px minmax(0,1fr) 60px}.gallery-viewer-top{padding:0 10px 0 18px}.gallery-viewer-meta{padding:14px 0 20px}}@media (max-width:560px){.gallery-thumb{height:64px}}@media (max-width:760px){.console-dialog{width:calc(100vw - 24px);height:min(740px,100dvh - 24px)}.console-content{padding:20px}.console-top{z-index:5;background:var(--console-night);gap:9px;font-size:11px;position:sticky;top:0}.console-bottom{flex-wrap:wrap;justify-content:center;gap:8px 12px;font-size:12px}.console-direction-controls{justify-content:center;gap:4px;width:100%}.console-direction-controls button{width:44px;height:44px}.console-confirm{border:1px solid #71819955;border-radius:6px;min-height:44px;padding:0 14px}.console-bottom>span,.console-bottom kbd{display:none}.award-collection-trigger{gap:3px;width:36px}.award-collection{width:min(330px,100vw - 32px)}.prestige-progress{gap:10px;padding:10px}.clicker-readout{font-size:10px}}:root[data-motion=reduced] .clicker-toast{animation-duration:2.6s!important}@media (min-width:1500px){.workspace{margin-top:53px}.workspace.detail-open{height:calc(100dvh - 210px);margin-top:32px}}@media (max-width:1100px){:root{--header-height:82px}.site-header{padding:0 30px}.workspace{margin-top:20px}.workspace.detail-open{grid-template-columns:265px minmax(0,1fr);gap:18px;height:calc(100dvh - 166px);margin-left:22px;margin-right:22px}.detail-toolbar{padding-left:26px}.detail-scroll{padding-left:26px;padding-right:14px}.site-footer{--footer-inline:20px;padding:24px var(--footer-inline) var(--footer-inline)}.is-compact .intro-description{max-width:240px}}@media (max-width:760px){:root{--header-height:75px}.site-header{padding:0 23px}.brand-name{display:none}.site-settings{gap:8px}.site-settings>button,.brand{min-width:44px;min-height:44px}.workspace{max-width:620px;margin:17px auto 106px}.overview{padding:0 25px}.intro{padding-top:22px}.intro .role{font-size:12px}.location{margin-bottom:10px;font-size:11px}.intro-description{padding-top:17px;font-size:15px}.intro-links{flex-wrap:wrap;gap:4px 6px;font-size:14px}.intro-links a,.intro-links button{min-height:44px}.overview-section{margin-top:32px}.section-heading>a{min-height:44px;padding:10px 12px;font-size:13px}.experience-row{grid-template-columns:28px minmax(0,1fr);gap:12px;padding:17px 0}.organization-mark{width:27px;height:28px;font-size:11px}.experience-row:after{top:47px;bottom:-8px;left:13px}.row-period{order:4;grid-column:2;margin-top:-10px;font-size:11px}.row-title{font-size:13px}.row-role,.row-summary{font-size:12px}.skill-preview{grid-template-columns:1fr;gap:9px;padding:12px 0;font-size:12px}.overview:not(.is-compact) .skill-preview>.skill-list{padding:0 0 0 39px}.personal-line{flex-direction:column;gap:5px;font-size:11px}.workspace.detail-open{height:auto;margin:5px 0 0;display:block}.detail-open .overview-scroll{display:none}.detail-panel{border:0;height:auto;overflow:visible}.detail-toolbar{z-index:5;background:var(--paper);border-bottom:1px solid var(--line);padding:13px 25px 24px;font-size:11px;position:relative}.detail-scroll{padding:28px 25px 125px;overflow:visible}.detail-title{font-size:29px}.detail-lead{font-size:15px}.site-footer{--footer-control-height:62px;--footer-inline:16px;padding:12px var(--footer-inline) max(var(--footer-inline), env(safe-area-inset-bottom));align-items:center;gap:8px}:root[data-footer-tucked] .site-footer:not(:focus-within){translate:0 100%}}@media (max-width:420px){.site-footer{--footer-control-height:56px}}:root[data-motion=reduced] *,:root[data-motion=reduced] :before,:root[data-motion=reduced] :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}:root[data-motion=reduced] .console-recording:hover,:root[data-motion=reduced] .console-recording:focus-visible{transform:none}@media print{.edge-blur,.site-header,.site-footer,.intro-device,.detail-toolbar,.assistant-dialog,.console-dialog{display:none!important}.workspace,.workspace.detail-open{max-width:none;height:auto;margin:0;display:block}.detail-open .overview-scroll{display:none}.detail-panel{border:0;height:auto}.detail-scroll{padding:20px;overflow:visible}.overview{padding:20px}.row-summary,.row-period{color:#333}body{color:#000;background:#fff}}.workspace:not(.detail-open){margin-bottom:calc(var(--footer-height,120px) + 24px)}.detail-open .overview-scroll{padding-bottom:var(--footer-overlap,0px)}.detail-open .detail-scroll{padding-bottom:max(70px, calc(var(--footer-overlap,0px) + 32px))}@media (max-width:760px){.workspace.detail-open{margin-bottom:calc(var(--footer-height,100px) + 24px)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
