@font-face{font-family:Space;src:url(/assets/SpaceGrotesk-Regular.69ac882113ef.woff2);font-weight:400;font-display:optional}@font-face{font-family:Space;src:url(/assets/SpaceGrotesk-Bold.b30ae13cf011.woff2);font-weight:700;font-display:optional}@font-face{font-family:Plex;src:url(/assets/PlexCondensed-Regular.77ec5b666914.woff2);font-weight:400;font-display:optional}@font-face{font-family:Plex;src:url(/assets/PlexCondensed-SemiBold.e18a6691571f.woff2);font-weight:600;font-display:optional}:root{--ink:#10263a;--muted:#506a82;--paper:#fcfdfe;--rule:#dce5ed;--blue:#0566ef;--orange:#ed4d22;--category:var(--blue);--ref-w:1058;--ref-h:1487;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;color:var(--ink);background:var(--paper);font:1rem/1.45 Plex,Arial,sans-serif}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit;background:none;border:0}a{color:var(--blue);text-underline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:4px}[hidden]{display:none!important}.page-root{max-width:1680px;margin:auto}svg{flex:none}.topbar{height:64px;display:flex;align-items:center;gap:26px;padding:0 34px;border-bottom:1px solid var(--rule)}.brand{display:flex;align-items:center;gap:15px;white-space:nowrap;font:700 26px/1 Space,sans-serif;color:#071e39;text-decoration:none}.monogram{color:var(--blue)}.monogram span{color:#8c9fb2;font-weight:400;margin-left:14px}.profession{border-left:1px solid #b7c7d5;padding-left:25px;font:12px/1.3 monospace;letter-spacing:.07em;color:var(--muted)}.topbar nav{display:flex;gap:24px;margin-left:auto;font:700 14px Space,sans-serif}.topbar nav a{text-decoration:none;color:var(--ink)}.topbar nav a:hover{color:var(--blue)}.cv-link{padding:10px 19px;border-radius:4px;color:#fff;background:var(--orange);font:700 16px/1.4 Space,sans-serif;text-decoration:none;white-space:nowrap;box-shadow:inset 0 0 0 1px #ffffff30;transition:background .15s,transform .15s}.cv-link:hover{background:#d83c14;transform:translateY(-1px)}.hero{background:#041421;color:#f9fbff;overflow:hidden}.hero-stage{height:349px;position:relative;background-image:linear-gradient(#17395133 1px,transparent 1px),linear-gradient(90deg,#17395133 1px,transparent 1px);background-size:32px 32px}.hero-copy{position:relative;z-index:2;padding:58px 34px 0;pointer-events:none}.hero-copy a{pointer-events:auto}.eyebrow{font:12px/1.4 monospace;letter-spacing:.05em;color:#53c6ff;margin:0 0 15px}.hero h1{font:700 clamp(38px,4.55vw,66px)/1.03 Space,sans-serif;letter-spacing:-.045em;margin:0 0 13px;text-shadow:0 2px 20px #031423}.hero-description{font:400 21px/1.35 Space,sans-serif;color:#b7d0e2;margin:0 0 22px;letter-spacing:-.025em}.explore-link{color:#7fd8ff;text-decoration:none;border-bottom:1px solid #32a3e5;padding-bottom:4px;font-size:17px}.explore-link span{margin-left:10px}.shader-wrap{position:absolute;right:0;top:0;width:60%;height:100%;touch-action:pan-y;mask-image:linear-gradient(90deg,transparent,#000 12%)}.shader-wrap canvas{width:100%;height:100%;display:block}.shader-fallback{position:absolute;inset:15% 13%;border:1px solid #239cdf;border-radius:50%;transform:rotate(-25deg);box-shadow:0 0 45px #008fdd70,inset 0 0 35px #158cb85e}.field-register{position:absolute;right:27px;top:43px;font:11px/1.8 monospace;letter-spacing:.04em;color:#698ca5;pointer-events:none}.field-register span{display:block;font-size:24px;margin-top:38px;color:#3c6e8c}.instrument-bar{display:flex;align-items:center;gap:24px;min-height:56px;border-top:1px solid #335066;padding:8px 34px;background:#051522cc;font-size:14px}.experiment-name{font:12px/1.3 monospace;letter-spacing:.04em;white-space:nowrap}.experiment-name b{color:#3ec9ff;font-size:15px}.experiment-name i{font-style:normal;color:#527793;margin:0 8px}.shader-stack{border-left:1px solid #335066;border-right:1px solid #335066;padding:2px 24px;color:#adc5d8;white-space:nowrap}#shader-status{color:#91b1c7;font-size:14px}.shader-controls{display:flex;gap:12px;margin-left:auto}.shader-controls button{min-height:36px;padding:6px 15px;border:1px solid #3d94c4;border-radius:4px;color:#72cfff;white-space:nowrap;font-size:15px}.shader-controls button:last-child{color:#9db7cb;border-color:#58758c}.shader-controls button:hover{background:#102d42}.shader-controls button:disabled{opacity:.5;cursor:default}.experience-strip{min-height:54px;display:flex;align-items:center;gap:24px;padding:12px 34px;border-bottom:1px solid var(--rule);font-size:16px}.experience-strip>span{color:#66849e}.experience-strip strong{font-weight:600}.experience-strip i{font-style:normal;color:#91a8bc;margin:0 11px}.experience-strip a{margin-left:auto;font-weight:600;text-decoration:none}#projects{padding:0 16px}.shelf-head{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:86px;padding:20px 18px 10px}.shelf-heading{display:flex;align-items:baseline;gap:12px}.shelf-heading h2{font:700 clamp(29px,3.4vw,44px)/1.15 Space,sans-serif;letter-spacing:-.045em;margin:0}.shelf-heading>span{font:600 16px Plex,sans-serif;color:#6c879e;white-space:nowrap}.search{width:36%;min-width:285px;border:1px solid #c9d8e5;border-radius:5px;padding:8px 12px;display:flex;align-items:center;gap:9px;color:#537695;background:#fff}.search:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px #0566ef18}.search input{border:0;background:none;outline:none!important;min-width:0;width:100%;font-size:15px;color:var(--ink);appearance:none}.search input::-webkit-search-cancel-button{appearance:none}.search input::placeholder{color:#637f98}.search kbd{font:12px monospace;background:#f1f5f8;border:1px solid var(--rule);padding:1px 5px;border-radius:3px}.search button{padding:0 3px;font:22px/1 Space,sans-serif}.shelf-tools{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 18px 22px;border-bottom:1px solid var(--rule)}.filters{display:flex;gap:5px;flex-wrap:wrap}.filters button{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--rule);border-radius:4px;font-size:14px;white-space:nowrap;background:#fff}.filters button:hover{background:#f1f6fa;border-color:#a9c2d5}.filters button span{color:var(--muted);margin-left:4px;font-variant-numeric:tabular-nums}.filters i{width:6px;height:6px;border-radius:50%;background:var(--category);flex:none}.filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.filters button[aria-pressed=true] span{color:#c5d9e9}.filters button[data-filter=All][aria-pressed=true]{background:var(--orange);border-color:var(--orange)}.filters button[data-filter=All][aria-pressed=true] span{color:#fff}[data-category=ai]{--category:#0675ec}[data-category=tools]{--category:#209265}[data-category=creative]{--category:#8051d5}[data-category=research]{--category:#dc6b20}.view-switch{display:flex;border:1px solid var(--rule);border-radius:5px;padding:2px;background:#f4f7fa;flex:none}.view-switch button{padding:7px 18px;font-size:14px;border-radius:3px}.view-switch button[aria-pressed=true]{color:#fff;background:var(--blue)}.project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.project-card{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);grid-template-rows:min-content min-content;column-gap:13px;align-content:start;min-width:0;min-height:130px;text-align:left;padding:18px 14px 16px 28px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);transition:background .16s,box-shadow .16s}.project-card:nth-child(4n){border-right:0}.project-card:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:2px;background:var(--category);opacity:0;transition:opacity .15s}.project-card:hover{background:#eef5fa;box-shadow:inset 0 0 0 1px #dfebf3}.project-card:hover:before,.project-card:focus-visible:before{opacity:1}.project-card:focus-visible{outline-offset:-3px}.project-number{position:absolute;top:16px;left:7px;font:600 11px/1 Plex,sans-serif;color:#778b9d}.category-mark{position:absolute;left:9px;top:33px;width:5px;height:5px;border-radius:50%;background:var(--category)}.thumb{display:block;width:56px;height:56px;border-radius:6px;background-image:var(--image);background-size:var(--size);background-position:var(--position);background-repeat:no-repeat;grid-column:1;grid-row:1/4;align-self:start;box-shadow:0 0 0 1px #152d4010}.project-card h3{font:600 16px/1.12 Plex,sans-serif;margin:0 0 7px;letter-spacing:-.015em;grid-column:2;overflow-wrap:anywhere}.stack{display:block;font:400 13px/1.25 Plex,sans-serif;color:#3e668a;grid-column:2;margin:0 0 7px}.brief,.technical{display:block;font:400 14px/1.3 Plex,sans-serif;grid-column:2;color:#314c62}.technical{color:#577183;margin-top:2px}.pick-mark{position:absolute;right:7px;top:6px;color:#157051;font:600 12px Plex,sans-serif}.project-card[data-held=true]{opacity:.55}.index-head{display:grid;grid-template-columns:1.05fr 1.2fr 1.1fr 1.2fr;gap:20px;padding:9px 22px 9px 94px;color:#6a8296;border-bottom:1px solid var(--rule);font:12px monospace;text-transform:uppercase;letter-spacing:.05em}.project-grid.index{grid-template-columns:1fr}.project-grid.index .project-card{grid-template-columns:1.05fr 1.2fr 1.1fr 1.2fr;grid-template-rows:auto;gap:20px;align-items:center;min-height:65px;padding:12px 22px 12px 94px;border-right:0}.project-grid.index .thumb{position:absolute;left:42px;top:14px;width:36px;height:36px}.project-grid.index h3,.project-grid.index .stack,.project-grid.index .brief,.project-grid.index .technical{grid-column:auto;grid-row:auto;margin:0}.project-grid.index .project-number{left:16px;top:18px}.project-grid.index .category-mark{left:18px;top:36px}.project-grid.index h3{font-size:17px}.project-grid.index .stack{font-size:14px}.footer{min-height:94px;padding:26px 34px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:16px;color:#57718a}.footer a{text-decoration:none;border-left:1px solid #a9bdcf;padding-left:28px;font-weight:600}.review-tools{margin:0 34px 20px;font-size:13px;color:#7a8d9c;border-top:1px solid #e8edf2;padding-top:12px}.review-tools summary{width:max-content;cursor:pointer}.review-tools>div{display:flex;gap:20px;margin-top:10px}.review-tools button{padding:5px 0;text-decoration:underline;text-underline-offset:3px}.review-tools button[aria-pressed=true]{color:var(--orange)}#empty{padding:50px 20px;text-align:center;background:#f7fafc}#empty h3{font:700 23px Space,sans-serif;margin:0 0 8px}#empty p{margin:0 0 18px;color:var(--muted)}#empty button{background:var(--ink);color:#fff;padding:9px 17px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;top:-100px}.skip:focus{top:10px;left:20px;z-index:20;background:#fff;padding:12px}dialog{color:var(--ink);background:var(--paper);border:1px solid #adc1d2;border-radius:9px;max-width:780px;width:calc(100% - 32px);padding:52px 34px 30px;max-height:90vh;overflow:auto;box-shadow:0 24px 100px #00142760}dialog::backdrop{background:#051627c9;backdrop-filter:blur(4px)}.close{font-size:15px;position:absolute;right:18px;top:13px;min-height:32px;color:var(--muted)}.close:hover{color:var(--ink)}.detail-heading{display:flex;align-items:center;gap:22px}.detail-heading .thumb{flex:none;width:84px;height:84px}.detail-heading h2{font:700 30px/1.12 Space,sans-serif;letter-spacing:-.035em;margin:5px 0 9px}.detail-heading .stack{font-size:17px;margin:0}.detail-category{font:12px/1.4 monospace;color:var(--muted);margin:0;text-transform:uppercase;letter-spacing:.04em}.detail-summary{font:400 24px/1.3 Space,sans-serif;letter-spacing:-.03em;margin:27px 0 14px}.detail-technical{font-size:19px;line-height:1.5;margin:0 0 22px}.detail-subheading{font:600 12px/1.3 monospace;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:22px 0 10px}.library-list{display:flex;gap:7px;flex-wrap:wrap}.library-list span{background:#edf4f9;border:1px solid #d5e3ed;border-radius:4px;padding:6px 10px;font-size:15px}.boundary{font-size:15px;color:var(--muted);border-top:1px solid var(--rule);padding-top:18px;margin-top:24px}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px;align-items:center}.detail-actions button,.detail-actions a{border:1px solid #bfd0dd;padding:9px 15px;border-radius:4px;text-decoration:none;font-size:15px}.detail-actions a{margin-left:auto;background:var(--ink);color:#fff;border-color:var(--ink)}.detail-actions [aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff}.detail-label{font-size:12px;color:#6d8292;margin:18px 0 0}#design-comparison{max-width:1450px;width:calc(100% - 24px);padding:18px}.comparison-toolbar{display:flex;align-items:center;gap:20px;position:sticky;top:-18px;z-index:3;background:var(--paper);padding:6px 0 12px}.comparison-toolbar h2{font:700 21px Space,sans-serif;letter-spacing:-.03em;margin:0}.comparison-toolbar label{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:15px}.comparison-toolbar .close{position:static;margin-left:auto;padding:0}.comparison-note{font-size:14px;color:var(--muted);margin:0 0 16px}.proof-viewport{position:relative;width:100%;overflow:hidden;aspect-ratio:var(--ref-w)/var(--ref-h);background:var(--paper)}.proof-stage{position:absolute;left:0;top:0;width:calc(var(--ref-w)*1px);height:calc(var(--ref-h)*1px);transform:scale(var(--proof-scale,1));transform-origin:top left}.proof-stage iframe{border:0;width:100%;height:100%;pointer-events:none}.proof-stage img{position:absolute;inset:0;width:100%;height:100%;opacity:.5;pointer-events:none}.proof .review-tools{display:none}@media(min-width:1300px){.hero-copy{padding-top:45px}.hero-stage{height:355px}.hero h1{font-size:58px}.project-card{min-height:137px;padding-right:22px;column-gap:15px;grid-template-columns:62px minmax(0,1fr)}.project-card .thumb{width:62px;height:62px}.project-card h3{font-size:18px}.project-card .stack{font-size:14px}.brief,.technical{font-size:15px}}@media(max-width:1023px){.profession{display:none}.topbar{gap:22px}.topbar nav{gap:20px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-card:nth-child(n){border-right:1px solid var(--rule)}.project-card:nth-child(3n){border-right:0}.project-card{min-height:139px}.shader-wrap{width:62%}.hero-copy{padding-top:55px}.hero h1{font-size:44px}.hero-description{font-size:19px}.field-register{display:none}.filters button{padding:8px 10px;gap:6px}.filters button span{margin-left:0}.view-switch button{padding:7px 13px}.index-head,.project-grid.index .project-card{grid-template-columns:1.1fr 1.2fr 1.1fr}.index-head span:last-child,.project-grid.index .technical{display:none}}@media(max-width:760px){.topbar{height:66px;padding:0 22px;gap:18px}.brand{font-size:23px;gap:10px}.monogram span{margin-left:9px}.topbar nav{display:none}.cv-link{margin-left:auto;font-size:15px;padding:9px 13px}.hero-stage{height:335px}.hero-copy{padding:39px 24px 0}.hero h1{font-size:clamp(31px,6.2vw,45px)}.hero-description{font-size:18px}.eyebrow{font-size:11px;letter-spacing:.025em}.shader-wrap{width:78%;opacity:.6;mask-image:linear-gradient(90deg,transparent,#000 45%)}.hero-copy{background:linear-gradient(90deg,#04142166,transparent 90%)}.instrument-bar{padding:10px 24px;gap:14px;flex-wrap:wrap}.shader-stack{font-size:12px;padding:2px 14px}.experiment-name{font-size:11px}#shader-status{display:none}.shader-controls{gap:7px}.shader-controls button{padding:5px 10px;font-size:14px}.experience-strip{padding:14px 24px;gap:8px 13px;flex-wrap:wrap;font-size:14px}.experience-strip i{margin:0 6px}.experience-strip a{font-size:14px}.shelf-head{display:block;padding:22px 8px 9px}.shelf-heading{margin-bottom:16px}.search{width:100%;min-width:0}.shelf-tools{align-items:flex-start;flex-wrap:wrap;padding:10px 8px 18px;gap:14px}.filters{gap:6px}.filters button{font-size:14px}.view-switch{margin-left:auto}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card:nth-child(n){border-right:1px solid var(--rule)}.project-card:nth-child(2n){border-right:0}.project-card{min-height:146px;padding-left:23px;padding-right:10px;grid-template-columns:48px minmax(0,1fr);column-gap:10px}.project-card .thumb{width:48px;height:48px}.project-number{left:3px}.category-mark{left:5px}.project-card h3{font-size:17px}.stack{font-size:13px}.brief,.technical{font-size:14px}.footer{padding:24px;font-size:15px}.review-tools{margin:0 24px 18px}.index-head{display:none!important}.project-grid.index .project-card{grid-template-columns:1fr 1fr;gap:16px;padding:13px 12px 13px 77px;min-height:73px}.project-grid.index .thumb{left:28px;top:17px;width:34px;height:34px}.project-grid.index .project-number{left:4px}.project-grid.index .category-mark{left:6px}.project-grid.index .brief{display:none}.project-grid.index .stack{font-size:14px}.comparison-toolbar{flex-wrap:wrap;gap:12px}.comparison-toolbar h2{font-size:18px}.comparison-toolbar label{order:3;width:100%;margin:0}.comparison-toolbar .close{font-size:15px}dialog{padding:50px 24px 25px}.detail-heading h2{font-size:25px}.detail-heading .thumb{width:68px;height:68px}.detail-heading{gap:17px}.detail-actions a{margin-left:0}}@media(max-width:480px){.brand{font-size:22px}.brand .monogram{display:none}.topbar{padding:0 22px}.hero-stage{height:319px}.hero-copy{padding:36px 22px 0}.hero h1{font-size:33px;letter-spacing:-.04em;max-width:350px}.hero-description{font-size:17px;max-width:320px;line-height:1.5;margin-bottom:23px}.eyebrow{font-size:10px;letter-spacing:.015em}.shader-wrap{width:100%;opacity:.42}.hero-stage{background-size:28px 28px}.instrument-bar{padding:10px 22px;gap:10px;min-height:60px}.shader-stack{display:none}.experiment-name{font-size:10px}.experiment-name b{font-size:12px}.experiment-name i{margin:0 4px}.shader-controls{gap:6px}.shader-controls button{padding:5px 8px;font-size:13px}.experience-strip{gap:8px 10px;padding:14px 22px}.experience-strip strong{font-size:14px}.experience-strip i{margin:0 4px}.experience-strip a{margin:1px 0 0;flex-basis:100%}#projects{padding:0 14px}.shelf-heading h2{font-size:32px}.shelf-heading>span{font-size:15px}.shelf-tools{gap:12px}.filters button{padding:8px 9px;font-size:14px}.project-grid{grid-template-columns:1fr}.project-card:nth-child(n){border-right:0;min-height:128px;padding:19px 15px 19px 32px;grid-template-columns:58px minmax(0,1fr);column-gap:16px}.project-card .thumb{width:58px;height:58px}.project-card h3{font-size:19px}.project-card .stack{font-size:14px;margin-bottom:5px}.brief,.technical{font-size:15px}.project-number{left:8px;top:19px}.category-mark{left:10px;top:36px}.footer{align-items:flex-start;font-size:15px;min-height:80px;padding:24px 22px}.footer span{max-width:210px}.footer a{padding-left:15px;white-space:nowrap}.detail-heading h2{font-size:25px}.detail-summary{font-size:23px}.detail-technical{font-size:18px}.detail-heading .stack{font-size:15px}.detail-category{font-size:11px}.project-grid.index h3{font-size:17px}.project-grid.index .project-number{top:18px}.project-grid.index .category-mark{top:35px}}.experience{padding:28px 34px 30px;border-bottom:1px solid var(--rule);background:#f3f7fa}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:21px}.section-kicker{font:12px monospace;letter-spacing:.07em;color:#698196;margin:0 0 7px}.section-heading h2{font:700 29px/1.15 Space,sans-serif;letter-spacing:-.04em;margin:0}.section-heading>a{font-size:15px;font-weight:600;text-decoration:none}.experience-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 30px}.experience-grid article{border-top:1px solid #c9d8e3;padding-top:13px;position:relative}.job-date{font:12px monospace;color:#64809a;display:block;margin-bottom:8px}.experience h3{font:700 18px/1.2 Space,sans-serif;letter-spacing:-.03em;margin:0 0 5px}.experience p{margin:0 0 9px;font-size:16px;line-height:1.4;max-width:390px}.experience .job-role{font-size:14px;font-weight:600;color:#47657e}.experience .section-kicker{font:12px monospace}.job-tech{font-size:13px;color:#52728d;display:block}.project-number,.field-register{font-size:12px}@media(max-width:900px){.experience-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.experience{padding:25px 22px}.experience-grid{grid-template-columns:1fr;gap:20px}.section-heading h2{font-size:27px}.section-heading>a{font-size:14px;max-width:130px;text-align:right}.experience-grid article{padding-left:84px;min-height:116px}.job-date{position:absolute;left:0;top:15px;max-width:70px;line-height:1.5}.experience h3{font-size:18px}.experience p{font-size:15px}.experience .job-role{font-size:14px}.job-tech{font-size:13px}}@media(max-width:480px){.hero h1{font-size:clamp(26px,8.45vw,33px)}.eyebrow{font-size:12px;max-width:340px}.experiment-name,.detail-category{font-size:12px}.instrument-bar:has(button:disabled) #shader-status{display:inline;flex-basis:100%}}@media(max-width:350px){.topbar{gap:12px;padding:0 18px}.brand{font-size:20px}.cv-link{font-size:14px;padding:9px 10px}.hero-copy{padding:30px 20px 0}.hero-stage{height:345px}.hero-description{font-size:16px}.instrument-bar{padding:10px 20px}.experiment-name{font-size:11px}.experience-strip strong{font-size:13px}.filters button{padding:7px 8px}.shelf-heading h2{font-size:28px}.shelf-heading{gap:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before{transition:none!important;animation:none!important}}@media print{.topbar nav,.hero,.review-tools,.shelf-tools,.search,.experience-strip,dialog{display:none!important}.project-grid{grid-template-columns:repeat(3,1fr)}.project-card{break-inside:avoid}.page-root{max-width:none}}.project-grid.overview{grid-template-columns:repeat(7,minmax(0,1fr))}.project-grid.overview .project-card{grid-template-columns:40px minmax(0,1fr);column-gap:10px;min-height:124px;padding:17px 12px 14px;border-right:1px solid var(--rule)}.project-grid.overview .project-card:nth-child(7n){border-right:0}.project-grid.overview .thumb{width:40px;height:40px;grid-row:1/3;border-radius:6px}.project-grid.overview h3{font-size:16px;line-height:1.12;margin:0 0 5px}.project-grid.overview .brief{grid-column:1/-1;font-size:14px;line-height:1.2;margin:11px 0 0;padding-left:9px;border-left:2px solid var(--category)}.project-grid.overview .technical,.project-grid.overview .project-number,.project-grid.overview .category-mark{display:none}.proof-viewport{--ref-h:469}@media(min-width:1550px){.project-grid.overview{grid-template-columns:repeat(8,minmax(0,1fr))}.project-grid.overview .project-card:nth-child(n){border-right:1px solid var(--rule)}.project-grid.overview .project-card:nth-child(8n){border-right:0}}@media(max-width:1200px){.shelf-tools{flex-wrap:wrap;gap:12px}.view-switch{margin-left:auto}.project-grid.overview{grid-template-columns:repeat(5,minmax(0,1fr))}.project-grid.overview .project-card:nth-child(n){border-right:1px solid var(--rule)}.project-grid.overview .project-card:nth-child(5n){border-right:0}}@media(max-width:900px){.project-grid.overview{grid-template-columns:repeat(4,minmax(0,1fr))}.project-grid.overview .project-card:nth-child(n){border-right:1px solid var(--rule)}.project-grid.overview .project-card:nth-child(4n){border-right:0}}@media(max-width:640px){.project-grid.overview{grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid.overview .project-card:nth-child(n){border-right:1px solid var(--rule)}.project-grid.overview .project-card:nth-child(3n){border-right:0}.project-grid.overview .project-card{grid-template-columns:34px minmax(0,1fr);column-gap:8px;padding:14px 9px;min-height:135px}.project-grid.overview .thumb{width:34px;height:34px}.project-grid.overview h3{font-size:16px}.project-grid.overview .stack{font-size:12px}.project-grid.overview .brief{font-size:14px}}@media(max-width:480px){.project-grid.overview{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid.overview .project-card:nth-child(n){border-right:1px solid var(--rule)}.project-grid.overview .project-card:nth-child(2n){border-right:0}.project-grid.overview .project-card{grid-template-columns:34px minmax(0,1fr);padding:15px 10px;min-height:137px}.project-grid.overview .stack{font-size:13px}.project-grid.overview .brief{font-size:14px}}@media(max-width:350px){.project-grid.overview .project-card{grid-template-columns:28px minmax(0,1fr);column-gap:7px;padding:15px 8px}.project-grid.overview .thumb{width:28px;height:28px}.project-grid.overview h3{font-size:15px}}:root{--blue:#0057ef;--ink:#0a2041;--paper:#fff;--rule:#d3dce8;--ref-w:1435;--ref-h:1096;--usage-0:#0057ef;--usage-1:#f18a26;--usage-2:#21a8aa;--usage-3:#7652cb}body{background:#eef2f7}.page-root{background:var(--paper);min-height:100vh;border-inline:1px solid var(--rule)}.topbar{height:56px;padding:0 24px;gap:22px}.brand{font-size:24px;gap:12px}.monogram{font-size:31px}.monogram span{margin-left:3px;color:var(--blue)}.profession{border:0;padding:0;letter-spacing:.04em}.topbar nav{gap:22px;font-size:14px}.topbar nav a:last-child{display:none}.cv-link{border-radius:0;background:var(--blue);padding:7px 20px;font-size:15px;box-shadow:none}.cv-link:hover{background:#003dbc}.hero-stage{height:174px;background-size:36px 36px}.hero-copy{padding:24px 24px 0}.eyebrow,.explore-link{display:none}.hero h1{font-size:39px;line-height:1.03;letter-spacing:-.04em;margin:0 0 10px;max-width:610px}.hero h1 span{color:#459bff}.hero-description{font:400 17px/1.35 Plex,sans-serif;letter-spacing:0;max-width:505px;margin:0}.shader-wrap{width:55%;opacity:1;mask-image:linear-gradient(90deg,transparent,#000 15%)}.field-register{right:24px;top:28px;font-size:12px}.field-register span{margin-top:9px}.instrument-bar{min-height:35px;padding:3px 24px;gap:16px;font-size:12px}.experiment-name,.experiment-name b{font-size:12px}.shader-stack{font-size:12px;padding-inline:16px}#shader-status{font-size:12px}.shader-controls{gap:12px}.shader-controls button{min-height:26px;border:0;border-radius:0;padding:2px 6px;font-size:14px}.stats-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.25fr) 200px;border-bottom:1px solid var(--rule);padding:12px 24px;gap:0}.stat-cell{display:flex;flex-direction:column;align-items:flex-start;text-align:left;text-decoration:none;position:relative;color:var(--ink);border-right:1px solid var(--rule);padding:0 20px;background:none;min-width:0}.stat-cell:first-child{padding-left:0}.stat-code{font:12px/1.2 Plex,sans-serif;color:#60768f;letter-spacing:.02em;white-space:nowrap}.stat-code i{font-style:normal;color:var(--blue);margin-left:8px}.stat-cell strong{font:700 42px/1.15 Space,sans-serif;letter-spacing:-.05em;color:var(--blue)}.stat-cell>span:last-child{font-size:16px;line-height:1.2}.stat-cell em{font-style:normal;display:block;font:12px/1.5 Plex,sans-serif;color:#526b85;margin-top:3px}.stat-cell:hover strong{color:#00359d}.stat-cell:focus-visible{outline-offset:2px}.stats-scope{align-self:center;font-size:13px;line-height:1.45;color:#566b84;margin:0;padding-left:22px}.experience{display:grid;grid-template-columns:160px minmax(0,1fr);gap:22px;padding:16px 24px;background:#fff;min-height:119px}.section-heading{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;margin:0}.section-heading h2{font-size:23px;letter-spacing:-.035em}.experience .section-kicker{font:12px Plex,sans-serif;letter-spacing:.015em;margin:0 0 3px;color:var(--orange)}.section-heading>a{font-size:14px;line-height:1.2}.experience-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:0}.experience-grid article{padding:0 13px;border-top:0;border-left:1px solid var(--rule);display:flex;flex-direction:column;min-width:0;min-height:0}.experience h3{font:600 16px/1.15 Plex,sans-serif;letter-spacing:0;order:0;margin:0 0 5px}.job-date{position:static;font:12px/1.3 Plex,sans-serif;order:1;margin:0 0 4px;max-width:none;color:#526b85}.experience .job-role{order:2;font-size:14px;line-height:1.25;margin:0;color:#425b77;font-weight:400}.experience-grid article>p:not(.job-role),.experience-grid .job-tech{display:none}.atlas-layout{display:grid;grid-template-columns:184px minmax(0,1fr);padding:0 14px 0 24px}.language-rail{border-right:1px solid var(--rule);padding:18px 16px 30px 0;align-self:stretch}.rail-heading{display:flex;gap:9px;align-items:center}.rail-heading>span{font:12px Plex,sans-serif;color:var(--orange)}.rail-heading h2{font:700 21px/1.2 Space,sans-serif;letter-spacing:-.04em;margin:0}.rail-note,.rail-footnote{font-size:13px;line-height:1.35;color:#57708a;margin:9px 0 16px}.rail-footnote{margin-top:20px}.rail-cv{font-size:14px;font-weight:600;display:inline-block;margin-top:5px}#language-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--rule)}#language-list button{position:relative;display:flex;justify-content:space-between;align-items:center;padding:11px 9px 13px;border:1px solid var(--rule);border-top:0;min-width:0;text-align:left;font-size:14px;line-height:1.2}#language-list b{font-weight:400;color:#637992;font-variant-numeric:tabular-nums}#language-list i{position:absolute;bottom:0;left:0;width:var(--coverage);height:2px;background:#82b6ff}#language-list [aria-pressed=true]{background:var(--blue);color:#fff;border-color:var(--blue)}#language-list [aria-pressed=true] b{color:#fff}#language-list button:hover:not([aria-pressed=true]){background:#edf4ff}#language-list button:focus-visible{outline-offset:-3px;z-index:1}#projects{padding:0 0 0 14px;min-width:0}.shelf-head{min-height:59px;padding:14px 0 8px;gap:16px}.shelf-heading{gap:10px;margin:0}.shelf-heading h2{font-size:25px;letter-spacing:-.04em}.shelf-heading>span{font-size:14px}.search{min-width:200px;width:37%;border-radius:0;padding:6px 9px;gap:7px}.search input{font-size:14px}.shelf-tools{padding:0 0 10px;gap:12px;flex-wrap:nowrap}.filters{gap:4px}.filters button{border-radius:0;padding:6px 9px;font-size:14px;gap:5px}.filters button span{margin-left:2px;font-size:12px}.filters i{display:none}.filters button[data-filter=All][aria-pressed=true]{background:var(--blue);border-color:var(--blue)}.view-switch{border-radius:0;background:#fff;padding:0;margin-left:auto}.view-switch button{font-size:14px;border-radius:0;padding:6px 10px}.view-switch button[aria-pressed=true]{background:var(--ink)}#active-filters{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;font-size:14px;color:#244772;background:#eef5ff;border-bottom:1px solid var(--rule)}#active-filter-label{overflow-wrap:anywhere}#clear-active-filters{white-space:nowrap;text-decoration:underline;font-size:14px;padding:4px}.project-grid.overview{grid-template-columns:repeat(6,minmax(0,1fr));border-left:1px solid var(--rule)}.project-grid.overview .project-card:nth-child(n){border-right:1px solid var(--rule)}.project-grid.overview .project-card{grid-template-columns:30px minmax(0,1fr);column-gap:8px;min-height:106px;padding:12px 9px 10px;align-content:start}.project-grid.overview .thumb{width:30px;height:30px;border-radius:3px;grid-row:1/3}.project-grid.overview h3{font-size:16px;line-height:1.12;margin-bottom:4px;letter-spacing:0}.project-grid.overview .stack{font-size:12px;line-height:1.2;margin:0}.project-grid.overview .brief{font-size:14px;line-height:1.2;border:0;padding:0;margin:8px 0 0}.project-grid.overview .project-card:before{opacity:1;width:2px;height:2px;inset:auto 0 0;transition:width .2s}.project-grid.overview .project-card:hover:before,.project-grid.overview .project-card:focus-visible:before{width:100%}.project-grid:not(.overview):not(.index){grid-template-columns:repeat(4,minmax(0,1fr))}.project-grid:not(.overview):not(.index) .project-card{grid-template-columns:40px minmax(0,1fr);min-height:126px;padding:14px 9px 12px 25px;column-gap:9px}.project-grid:not(.overview):not(.index) .thumb{width:40px;height:40px}.project-grid:not(.overview):not(.index) h3{font-size:17px}.project-grid:not(.overview):not(.index) .stack{font-size:13px}.project-grid:not(.overview):not(.index) .brief,.project-grid:not(.overview):not(.index) .technical{font-size:14px}.project-grid.index .project-card{min-height:57px;padding-block:9px}.project-grid.index .thumb{width:30px;height:30px;top:13px}.project-grid.index h3{font-size:16px}.project-grid.index .stack,.project-grid.index .brief,.project-grid.index .technical{font-size:14px}.footer{min-height:55px;padding:18px 24px;font-size:14px}.review-tools{margin:0 24px 16px}#usage-detail{max-width:650px}#usage-title{font:700 32px/1.1 Space,sans-serif;letter-spacing:-.04em;margin:8px 0 22px}.usage-intro{font-size:17px;line-height:1.6}.usage-intro strong{font:700 29px Space,sans-serif;color:var(--blue);letter-spacing:-.04em}.usage-intro span{font-size:14px;color:var(--muted)}#token-bar{display:flex;height:16px;overflow:hidden;margin:25px 0 15px}#token-breakdown{margin:0}.usage-row{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--rule);padding:10px 0;font-size:16px}.usage-row dt{display:flex;gap:8px;align-items:center}.usage-row dt i{display:inline-block;width:8px;height:8px;background:var(--segment)}.usage-row dd{text-align:right;margin:0;font-variant-numeric:tabular-nums}.usage-row small{display:inline-block;min-width:67px;color:var(--muted);font-size:13px;margin-left:14px}.usage-calls{font-size:14px;color:var(--muted);margin:20px 0}.proof-viewport{--ref-h:1096}.proof-stage img{height:auto}.cv-page{--bg:#fff;--line:#d3dce8;--muted:#526982;background:#fff;color:var(--ink);font:16px/1.45 Plex,sans-serif}.cv-page .header{max-width:1320px;border-bottom:1px solid var(--line);padding:16px 32px}.cv-page .brand{font:700 22px Space,sans-serif}.cv-page .monogram{font:700 30px Space,sans-serif;border:0;padding:0}.cv-page .brand-sub{display:none}.cv-page .header nav{font:14px Plex,sans-serif;gap:24px}.cv-page .wrap{max-width:1200px;padding-inline:32px}.cv-page .resume{padding-top:28px;padding-bottom:20px}.cv-page .resume-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.cv-page .resume h1{font:700 43px/1.05 Space,sans-serif;letter-spacing:-.04em;margin:7px 0}.cv-page .eyebrow{font-size:12px;color:#566e86;line-height:1.3}.cv-page .lead{font-size:20px;line-height:1.3}.cv-page .button{font:14px Plex,sans-serif;background:var(--blue);color:#fff;border-color:var(--blue);padding:9px 13px}.cv-page .resume-summary{font:16px/1.45 Plex,sans-serif;margin:19px 0 9px;max-width:920px}.cv-page .resume-contact{font-size:14px}.cv-page .resume-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;margin-top:27px}.cv-page .resume h2{font:700 24px Space,sans-serif;letter-spacing:-.035em;margin:0 0 10px}.cv-page .job{position:relative;padding:13px 0 13px 95px;border-top:1px solid var(--rule);border-bottom:0;break-inside:avoid}.cv-page .job>.eyebrow{position:absolute;left:0;top:15px;width:78px;color:var(--blue)}.cv-page .job h3{font:700 20px Space,sans-serif;margin:0 0 5px;letter-spacing:-.03em}.cv-page .job .job-role{font-size:14px;line-height:1.3;margin-bottom:7px;color:#46617b}.cv-page .job>p:last-child{font-size:16px;line-height:1.4;margin:0}.cv-page .resume aside{padding:0 0 0 23px;border-left:1px solid var(--rule)}.cv-page .resume aside h3{font:600 17px Plex,sans-serif;margin:17px 0 5px}.cv-page .resume aside>p{font-size:15px;line-height:1.4}.cv-page .resume aside h2:not(:first-child){margin-top:24px}.cv-page .portfolio-note{display:flex;justify-content:space-between;gap:20px;align-items:center;background:#f0f5ff;padding:12px 16px;border-left:3px solid var(--blue);font-size:15px;margin-top:25px}.cv-page .portfolio-note a{font-weight:600;white-space:nowrap}.cv-page footer{font-size:13px;padding:20px 32px;border-top:1px solid var(--rule)}@media(max-width:1200px){.stats-strip{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.3fr) 175px}.stat-cell{padding-inline:15px}.stat-code i{display:none}.experience{grid-template-columns:135px minmax(0,1fr);gap:15px}.experience-grid article{padding-inline:10px}.shelf-tools{flex-wrap:wrap}.filters button{padding-inline:8px}.project-grid.overview{grid-template-columns:repeat(5,minmax(0,1fr))}.project-grid:not(.overview):not(.index){grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1000px){.topbar{gap:18px}.hero h1{font-size:35px}.shader-wrap{width:48%}.hero-description{max-width:440px}.stats-strip{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.3fr);padding-bottom:9px}.stat-cell:last-of-type{border:0}.stats-scope{grid-column:1/-1;padding:8px 0 0;font-size:12px}.experience-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 0}.experience{align-items:center}.atlas-layout{grid-template-columns:166px minmax(0,1fr)}.project-grid.overview{grid-template-columns:repeat(4,minmax(0,1fr))}.project-grid.overview .project-card{min-height:113px}.project-grid:not(.overview):not(.index){grid-template-columns:repeat(2,minmax(0,1fr))}.search{width:46%}.shelf-heading h2{font-size:23px}.shelf-heading{flex-wrap:wrap;gap:3px 8px}.rail-heading h2{font-size:20px}.cv-page .resume-layout{grid-template-columns:minmax(0,1fr) 240px;gap:25px}.cv-page .job{padding-left:80px}.cv-page .job>.eyebrow{width:66px}}@media(max-width:760px){.topbar{padding-inline:20px}.topbar nav{display:flex;margin-left:auto}.topbar nav a{display:none}.brand{font-size:22px}.cv-link{margin-left:0}.hero-stage{height:170px}.hero-copy{padding:22px 20px 0}.hero h1{font-size:34px;max-width:470px}.hero-description{font-size:16px;max-width:390px}.shader-wrap{width:65%;opacity:.4;mask-image:linear-gradient(90deg,transparent,#000 65%)}.instrument-bar{min-height:34px;padding:3px 20px;gap:12px;flex-wrap:nowrap}.shader-stack{display:none}.experiment-name{font-size:12px}.shader-controls{gap:5px}.shader-controls button{font-size:14px}.stats-strip{padding:12px 20px 8px}.stat-cell{padding-inline:12px}.stat-cell strong{font-size:34px}.stat-cell>span:last-child{font-size:14px}.stat-code{font-size:12px;white-space:normal}.stat-cell em{font-size:12px}.experience{padding:14px 20px;grid-template-columns:1fr;gap:13px}.section-heading{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.experience .section-kicker{display:none}.section-heading h2{font-size:22px}.section-heading>a{font-size:14px;max-width:none;text-align:left}.experience-grid article:nth-child(3n+1){border-left:0;padding-left:0}.experience .job-role{font-size:14px}.atlas-layout{padding:0 14px 0 20px;grid-template-columns:144px minmax(0,1fr)}.language-rail{padding-right:12px}.rail-heading{gap:5px}.rail-heading>span{display:none}.rail-heading h2{font-size:20px}.rail-note,.rail-footnote{font-size:12px}.rail-cv{font-size:14px}#language-list button{padding:10px 7px 12px;font-size:14px}.shelf-head{display:block;padding:14px 0 8px}.shelf-heading{margin:0 0 9px;display:flex;align-items:baseline}.search{width:100%;min-width:0}.shelf-tools{padding-bottom:9px;gap:8px}.filters{gap:3px}.filters button{font-size:14px;padding:5px 7px}.view-switch button{font-size:14px;padding:5px 9px}.project-grid.overview{grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid.overview .project-card{min-height:118px;padding:10px 8px;grid-template-columns:26px minmax(0,1fr);column-gap:6px}.project-grid.overview .thumb{width:26px;height:26px}.project-grid.overview h3{font-size:16px}.project-grid.overview .brief{font-size:14px}.project-grid:not(.overview):not(.index){grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid:not(.overview):not(.index) .project-card{grid-template-columns:30px minmax(0,1fr);padding-left:20px;column-gap:7px}.project-grid:not(.overview):not(.index) .thumb{width:30px;height:30px}.project-grid:not(.overview):not(.index) h3{font-size:16px}.project-grid.index .project-card{padding-left:58px;gap:12px;grid-template-columns:1fr 1fr}.project-grid.index .thumb{left:21px}.project-grid.index .project-number{left:1px}.project-grid.index .category-mark{left:4px}.cv-page .header{padding:14px 20px}.cv-page .header nav{font-size:14px;gap:14px}.cv-page .header nav a:nth-child(2){display:none}.cv-page .wrap{padding-inline:20px}.cv-page .resume-layout{grid-template-columns:1fr;gap:25px}.cv-page .resume aside{padding:20px 0 0;border-left:0;border-top:1px solid var(--rule);display:grid;grid-template-columns:1fr 1fr;column-gap:25px}.cv-page .resume aside>*{grid-column:1/-1}.cv-page .resume-top{align-items:flex-start}.cv-page .resume h1{font-size:37px}.cv-page .lead{font-size:18px}.cv-page .portfolio-note{font-size:14px}.cv-page .job h3{font-size:19px}.cv-page .job>p:last-child{font-size:16px}}@media(max-width:580px){.hero h1{font-size:30px}.hero-description{max-width:315px}.hero-stage{height:160px}.shader-wrap{width:75%}.stat-cell strong{font-size:32px}.stats-strip{grid-template-columns:1fr 1fr;gap:12px 0}.stat-cell:nth-child(2){border:0}.stat-cell:nth-child(3){padding-left:0}.stat-cell:nth-child(4){padding-left:12px}.stat-cell em{display:inline;margin-left:6px}.stat-code{font-size:12px}.stat-cell strong{margin-top:2px}.stat-cell>span:last-child{font-size:14px}.stat-usage>span:last-child{max-width:170px}.stats-scope{padding-top:0;font-size:12px}.experience-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 0}.experience-grid article:nth-child(n){border-left:1px solid var(--rule);padding-left:12px}.experience-grid article:nth-child(odd){border-left:0;padding-left:0}.experience h3{font-size:16px}.experience .job-role{font-size:14px}.atlas-layout{display:block;padding:0 14px}.language-rail{border:0;padding:15px 6px 8px}.rail-heading{display:inline-flex;margin-right:12px}.rail-heading h2{font-size:19px}.rail-note{display:inline;margin:0;font-size:12px}.rail-note br,.rail-footnote,.rail-cv{display:none}#language-list{display:flex;flex-flow:row wrap;gap:5px;border:0;margin-top:9px}#language-list button{border:1px solid var(--rule);padding:6px 8px 8px;font-size:14px;gap:8px}#language-list i{height:2px}.language-rail:after{content:"HTML + CSS grouped \b7  source-reviewed tags";display:block;font-size:12px;color:var(--muted);margin-top:7px}#projects{padding:0 6px}.shelf-head{padding-top:12px}.shelf-tools{flex-wrap:wrap}.shelf-heading{margin-bottom:9px;gap:8px}.project-grid.overview{grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid.overview .project-card{display:flex;flex-direction:column;min-height:140px;padding:10px 8px;gap:0}.project-grid.overview .thumb{width:28px;height:28px;margin-bottom:8px}.project-grid.overview h3{font-size:16px}.project-grid.overview .stack{font-size:12px}.project-grid.overview .brief{font-size:14px;margin-top:7px}.project-grid:not(.overview):not(.index){grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid:not(.overview):not(.index) .project-card{min-height:154px;grid-template-columns:1fr;padding:13px 11px}.project-grid:not(.overview):not(.index) .thumb{display:none}.project-grid:not(.overview):not(.index) h3,.project-grid:not(.overview):not(.index) .stack,.project-grid:not(.overview):not(.index) .brief,.project-grid:not(.overview):not(.index) .technical{grid-column:1}.project-grid:not(.overview):not(.index) .project-number,.project-grid:not(.overview):not(.index) .category-mark{display:none}.project-grid.index .project-card{min-height:69px}.project-grid.index h3{font-size:16px}.project-grid.index .stack{font-size:13px}.usage-intro strong{font-size:25px}#usage-title{font-size:28px}.usage-row{font-size:15px}.usage-row small{display:block;margin:3px 0 0}.cv-page .resume-top{display:block}.cv-page .resume-top .button{margin-top:15px}.cv-page .portfolio-note{align-items:flex-start;flex-direction:column;gap:7px}.cv-page .job{padding-left:0}.cv-page .job>.eyebrow{position:static;width:auto;margin:0 0 6px}.cv-page .resume{padding-top:21px}.cv-page .resume h1{font-size:36px}.cv-page .header .brand{font-size:18px}.cv-page .header .monogram{display:none}.cv-page .header nav{gap:12px}}@media(max-width:380px){.topbar{padding-inline:18px}.brand{font-size:21px}.cv-link{padding:7px 12px}.hero-copy{padding-inline:18px}.hero h1{font-size:27px}.hero-description{max-width:270px;font-size:16px}.hero-stage{height:166px}.instrument-bar{padding-inline:18px}.experiment-name{font-size:12px}.stats-strip{padding-inline:18px}.stat-cell strong{font-size:30px}.stat-cell em{display:block;margin-left:0}.stat-cell>span:last-child{font-size:14px}.experience{padding-inline:18px}.project-grid.overview{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid.overview .project-card{min-height:150px}.filters button{padding-inline:6px}.shelf-heading h2{font-size:25px}.cv-page .header nav a:first-child{display:none}}.cv-page .eyebrow{display:block}.language-rail{position:sticky;top:0;align-self:start}.project-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;padding:12px 0 10px}.project-toolbar .shelf-head{display:contents}.project-toolbar .shelf-heading{margin:0}.project-toolbar .search{width:100%;min-width:0}.project-toolbar .shelf-tools{grid-column:1/-1;margin-top:9px;padding:0;border:0}.project-toolbar .filters{flex-wrap:wrap}.project-toolbar .view-switch{flex-shrink:0}.project-toolbar+.index-head,.project-toolbar+#active-filters{border-top:1px solid var(--rule)}@media(max-width:580px){.language-rail{position:static}}@media(min-width:1300px){.project-toolbar{grid-template-columns:190px 210px minmax(0,1fr);gap:14px;align-items:center;min-height:64px}.project-toolbar .shelf-tools{grid-column:3;margin:0;gap:12px;flex-wrap:nowrap}.project-toolbar .filters{gap:3px;flex-wrap:nowrap}.project-toolbar .filters button{padding:6px 8px}.project-toolbar .shelf-heading{flex-wrap:wrap;gap:2px 8px}.project-toolbar .shelf-heading h2{font-size:23px}.project-toolbar .shelf-heading>span{font-size:13px}}@media(max-width:760px){.project-toolbar{grid-template-columns:1fr;padding:14px 0 9px;gap:9px}.project-toolbar .shelf-tools{margin:0}.project-toolbar .shelf-heading{display:flex;flex-wrap:wrap}.project-toolbar .filters button{padding:5px 7px}.project-toolbar .view-switch button{padding:5px 9px}}@media print{.stats-strip,.language-rail,.portfolio-note{display:none!important}.atlas-layout,.experience{display:block}.experience-grid{grid-template-columns:repeat(3,1fr)}.project-grid.overview{grid-template-columns:repeat(4,1fr)}.cv-page .resume{padding:0}.cv-page .wrap{max-width:none;padding:0}.cv-page .resume h1{font-size:31px}.cv-page .resume .lead{font-size:16px}.cv-page .resume-summary,.cv-page .job>p:last-child{font-size:12px}.cv-page .resume-layout{grid-template-columns:2fr 1fr;gap:24px}.cv-page .job{padding:10px 0}.cv-page .job>.eyebrow{position:static;width:auto;margin-bottom:4px}.cv-page .job h3{font-size:18px}.cv-page .job .job-role,.cv-page .resume aside>p{font-size:11px}.cv-page .resume aside{padding-left:16px;display:block}.cv-page .resume h2{font-size:21px}.cv-page .resume aside h3{font-size:15px}.cv-page .header,.cv-page footer{display:none}}.hero-stage{height:220px}.hero-copy{padding-top:22px}.hero h1{font-size:46px}.hero .eyebrow{margin-bottom:11px}.hero-links{margin-top:14px}.hero-description{font-size:18px}.stats-strip{margin-top:24px}.atlas-layout{border-top:1px solid var(--rule)}.topbar .profession{display:none}.project-toolbar{padding-top:18px}.shelf-heading h2{font-size:27px!important}.experiment-name,.hero .eyebrow{font-size:12px;letter-spacing:.035em}.hero-stage:after{pointer-events:none}.field-register,.field-scale{display:none}.stat-code,.stat-code i{font-size:12px}.feature-footer{font:600 12px/1.3 Plex,sans-serif;letter-spacing:.025em}.stats-scope:before{font-size:12px}.kind-filters,.capability-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:11px}.facet-button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--rule);padding:6px 10px;background:var(--paper);font-size:14px;color:var(--ink)}.facet-button i{display:block;width:7px;height:7px;background:var(--facet);border-radius:2px}.facet-button b{font-size:12px;font-weight:400;color:var(--muted)}.facet-button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.facet-button[aria-pressed=true] b{color:#dce6eb}.facet-button:hover{box-shadow:inset 0 -2px var(--facet,#24768a)}.explore-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 0 0}.explore-heading p{margin:0;color:var(--muted);font-size:14px}.customize-button{white-space:nowrap;background:var(--lime);border:1px solid #acbe62;padding:7px 12px;font-size:14px;color:#1c2922}.project-card{--kind:#147184}.project-card[data-kind=Games]{--kind:#874ec6}.project-card[data-kind=Hardware]{--kind:#b45b13}.project-card[data-kind=Creative]{--kind:#a8427d}.project-card[data-kind=Research]{--kind:#187585}.project-card[data-kind=Software]{--kind:#235fbd}.project-grid.overview .project-card:before{background:var(--kind);width:100%;height:2px}.kind-label{display:none;color:var(--kind);font-size:12px;grid-column:1/-1}.overview .project-card:not(.spotlight) .kind-label{display:block;margin-top:8px}.project-grid.overview .spotlight{border-bottom:3px solid var(--kind)}.project-grid.index .kind-label{display:none}.project-grid.overview .project-card{min-height:133px}.thumb.symbol{background-image:none;background:#e5eef2;display:grid;place-items:center;color:var(--kind);font:600 15px monospace;border:1px solid #b3cbd4}.hardware-badge{font-size:12px;color:#85430f}.exploration-section{padding:25px 28px;border-top:1px solid var(--rule)}.exploration-section h2{font:700 26px Space,sans-serif;letter-spacing:-.04em;margin:0 0 5px}.section-subtitle{font-size:14px;color:var(--muted);margin:0 0 17px}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.metric-tile{position:relative;min-width:0;text-align:left;border:1px solid var(--rule);border-top:3px solid var(--facet,#1d6981);padding:15px;background:#fff;display:flex;flex-direction:column;gap:5px}.metric-tile strong{font:700 30px/1.1 Space,sans-serif;letter-spacing:-.04em}.metric-tile>span{font-size:15px;font-weight:600}.metric-tile small{color:var(--muted);font-size:12px;line-height:1.35}.metric-tile:hover{background:#eff5f5}.metric-tile .metric-action{margin-top:auto;padding-top:10px;font-size:12px;color:#27677b}.model-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.model-list button{font-size:14px}.matrix-scroll{overflow:auto;max-height:490px;border:1px solid var(--rule)}.capability-table{width:100%;border-collapse:collapse;font-size:14px;text-align:left;min-width:830px}.capability-table th,.capability-table td{padding:8px 10px;border-bottom:1px solid var(--rule)}.capability-table th{position:sticky;top:0;background:#e9f0f3;z-index:2;font-weight:600}.capability-table th:first-child{min-width:180px}.capability-table tr:hover{background:#edf5f6}.capability-table td:first-child{font-weight:600}.capability-table button{text-align:left;padding:2px;color:#235b73;text-decoration:underline;text-underline-offset:3px}.matrix-dot{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--facet);margin-right:5px}.matrix-off{color:#99a8b0}.matrix-header{display:flex;justify-content:space-between;align-items:baseline;gap:14px}.matrix-header span{font-size:14px;color:var(--muted)}.preference-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin-top:18px}.preference-grid label{display:flex;gap:9px;align-items:center;padding:7px 0;font-size:16px}.preference-grid input{accent-color:#236276;width:17px;height:17px;flex:none}.preference-row{display:flex;flex-wrap:wrap;gap:15px;margin-top:20px}.preference-row label{display:flex;align-items:center;gap:8px;font-size:15px}.preference-row select{font:inherit;padding:6px;border:1px solid var(--rule);background:#fff;color:var(--ink)}.preference-note{font-size:14px;color:var(--muted)}.preference-presets{display:flex;flex-wrap:wrap;gap:7px;margin-top:19px}.preference-presets button{padding:8px 12px;border:1px solid var(--rule);font-size:14px}.preference-presets button:hover{background:#e7f2f2}.metric-detail h2,#customize-title{font:700 30px Space,sans-serif;letter-spacing:-.04em;margin:0 0 9px}.metric-detail p{font-size:17px}.metric-detail ul{padding-left:20px;font-size:16px}.measurement-note{font-size:13px;color:var(--muted);line-height:1.5;margin:16px 0 0}.model-note{font-size:13px;color:var(--muted);margin:12px 0 0}.detail-capabilities{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.detail-capabilities button{font-size:14px;padding:6px 9px;border:1px solid var(--rule)}body[data-colors=muted] .project-card{--kind:#587581}body[data-colors=muted] .facet-button,body[data-colors=muted] .metric-tile{--facet:#587581!important}body[data-colors=muted] .matrix-dot{background:#587581}body[data-colors=vivid] .project-card:not(.spotlight){background:color-mix(in srgb,var(--kind) 5%,var(--paper))}body[data-colors=vivid] .facet-button:not([aria-pressed=true]){background:color-mix(in srgb,var(--facet) 8%,var(--paper))}body[data-density=roomy] .project-grid.overview .project-card:not(.spotlight){min-height:160px;padding:18px 12px}body[data-density=roomy] .project-grid.overview .brief{font-size:16px}body[data-thumbnails=off] .project-grid .thumb{display:none!important}body[data-thumbnails=off] .project-grid:not(.index) .project-card{grid-template-columns:1fr!important}body[data-thumbnails=off] .project-grid:not(.index) .project-card :is(h3,.stack,.brief,.technical){grid-column:1!important}body[data-technical=off] .project-grid .stack,body[data-technical=off] .project-grid .technical{display:none!important}body[data-language=off] .language-rail{display:none}body[data-language=off] .atlas-layout{grid-template-columns:minmax(0,1fr)}body[data-language=off] #projects{padding-left:0}body[data-shader=off] .hero{display:none}.experience{border-top:1px solid var(--rule)}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero h1{font-size:39px}.hero-description{max-width:430px}.hero-stage{height:208px}.hero .eyebrow{font-size:12px}.hero-links{margin-top:14px}.stat-code{font-size:12px}.stat-code i{display:none}}@media(max-width:760px){.hero-stage{height:208px}.hero h1{font-size:34px}.hero-description{font-size:16px;max-width:300px}.hero-copy{padding-top:22px}.hero .eyebrow{font-size:12px;margin-bottom:10px}.hero-links{margin-top:14px}.hero-links .explore-link{font-size:14px}.exploration-section{padding:22px 20px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kind-filters,.capability-filters{gap:5px}.facet-button{font-size:14px;padding:6px 8px}.explore-heading{gap:10px}.explore-heading p{max-width:180px}.shader-wrap{height:100%;width:55%;bottom:0}.instrument-bar .experiment-name{font-size:12px}.experiment-name b,.experiment-name i{display:none}}@media(max-width:580px){.hero-stage{height:192px}.hero-copy{padding:19px 20px 0}.hero h1{font-size:28px;margin-bottom:10px}.hero .eyebrow{display:none}.hero-description{max-width:270px;font-size:16px}.hero-links{margin-top:14px;gap:24px}.shader-wrap{width:52%;height:115px;bottom:-10px;opacity:.45}.hero-stage:after{background:linear-gradient(90deg,#10171bdd,transparent)}.project-grid.overview .spotlight,.project-grid.overview .spotlight:first-child{min-height:136px}.explore-heading{padding-top:14px}.explore-heading p{font-size:13px}.customize-button{font-size:14px;padding:7px 9px}.metric-grid{gap:7px}.metric-tile{padding:12px}.metric-tile strong{font-size:28px}.metric-tile>span{font-size:15px}.metric-tile small{font-size:12px}.exploration-section h2{font-size:24px}.preference-grid{grid-template-columns:1fr}.matrix-header{display:block}.matrix-header span{display:block;margin-bottom:9px}.feature-footer{font-size:12px}.stats-strip{margin-top:18px}.stat-code,.instrument-bar .experiment-name{font-size:12px}.shader-controls button,.shader-controls button:last-child{font-size:14px}.hero h1{letter-spacing:-.04em}.hero-links .explore-link{font-size:14px}}@media(max-width:380px){.hero-copy{padding-inline:18px}.hero h1{font-size:26px}.hero-stage{height:187px}.hero-description{font-size:16px;max-width:248px}.explore-heading p{max-width:120px}.project-toolbar .filters button{font-size:14px;padding-inline:7px}.kind-filters .facet-button{padding-inline:7px}.instrument-bar .experiment-name{font-size:12px}.shader-controls button,.shader-controls button:last-child{font-size:14px;padding-inline:4px}}#shader{touch-action:none;cursor:grab}#shader[data-interaction=dragging]{cursor:grabbing}#shader:focus-visible{outline:1px dashed var(--accent-soft);outline-offset:-5px}.shader-mix{display:flex;align-items:center;gap:8px;font-size:14px;color:#ccdde4;margin-left:auto}.shader-mix input{width:110px;accent-color:var(--lime);cursor:ew-resize}.shader-mix output{min-width:34px;font-size:12px;font-variant-numeric:tabular-nums}.shader-controls{margin-left:8px}.kind-filters,.capability-filters{scrollbar-width:thin}@media(max-width:760px){.instrument-bar{flex-wrap:wrap;gap:7px 12px}.shader-mix{gap:6px}.shader-mix input{width:75px}.shader-mix output{display:none}.shader-controls{margin-left:0}}@media(max-width:580px){#language-list,.kind-filters,.capability-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}#language-list button,.kind-filters button,.capability-filters button{flex:none}.language-rail{padding-top:12px}.rail-note{display:none}.language-rail:after{margin-top:2px}.instrument-bar{min-height:42px;padding:5px 16px;gap:6px}.instrument-bar .experiment-name{display:none}.shader-mix{margin-left:0}.shader-mix input{width:100px}.shader-controls{margin-left:auto}.project-toolbar .shelf-tools{gap:7px}.explore-heading,.project-toolbar{padding-top:12px}.capability-filters{margin-bottom:9px}}@media(max-width:580px){.topbar nav{display:none}.topbar{gap:12px}.topbar .cv-link{margin-left:auto}.metric-tile strong{overflow-wrap:anywhere}}@media(max-width:380px){.metric-grid{grid-template-columns:1fr}.explore-heading{align-items:flex-start}.explore-heading p{max-width:110px}}@media(max-width:320px){.topbar{padding-inline:14px;gap:8px}.topbar .brand{font-size:18px}.topbar .cv-link{font-size:13px;padding:7px 9px}.hero-copy{padding-inline:14px}.hero h1{font-size:24px}.hero-description{font-size:15px}.hero-stage{height:202px}.explore-heading{flex-wrap:wrap}.project-grid.overview.has-spotlights,.project-grid.overview{grid-template-columns:repeat(2,minmax(0,1fr))}.project-toolbar .shelf-tools{flex-wrap:wrap}.project-toolbar .view-switch{margin-left:0}.project-toolbar .filters{flex-wrap:wrap}}@media print{.customize-button,.capability-filters,.kind-filters{display:none}.matrix-scroll{max-height:none;overflow:visible}.exploration-section{break-inside:avoid}.hero{display:none}}:root,body[data-theme=cerulean]{--accent:#08799e;--accent-soft:#9ec4d5;--accent-deep:#19566c;--night:#10242c;--paper:#f3f6f7;--rule:#c4d4da;--ink:#17303b;--muted:#506b78;--hatch:#356b8210;--blue:var(--accent);--lime:var(--accent-soft);--orange:var(--accent)}body[data-theme=forest]{--accent:#2c664a;--accent-soft:#a4c0ad;--accent-deep:#2b5140;--night:#152b23;--paper:#f3f6f2;--rule:#c5d3c9;--ink:#20392c;--muted:#526c5b;--hatch:#365e4411;--blue:var(--accent);--lime:var(--accent-soft);--orange:var(--accent)}body:not([data-theme]),body[data-theme=phthalo]{--accent:#006e63;--accent-soft:#91beb5;--accent-deep:#15584f;--night:#0c2a28;--paper:#f1f6f4;--rule:#bbd2ca;--ink:#153c36;--muted:#456d63;--hatch:#17695c10;--blue:var(--accent);--lime:var(--accent-soft);--orange:var(--accent)}body{--graph-line:color-mix(in srgb,var(--accent) 5%,transparent);--graph-major:color-mix(in srgb,var(--accent) 7%,transparent);--graph-paper:linear-gradient(var(--graph-major) 1px,transparent 1px),linear-gradient(90deg,var(--graph-major) 1px,transparent 1px),linear-gradient(var(--graph-line) 1px,transparent 1px),linear-gradient(90deg,var(--graph-line) 1px,transparent 1px);background-color:var(--paper);background-image:var(--graph-paper);background-size:120px 120px,120px 120px,24px 24px,24px 24px}.page-root{background:var(--paper)}.topbar,.hero,.stats-strip,.instrument-bar{background-color:var(--night)}.topbar{border-color:color-mix(in srgb,var(--accent-soft) 25%,var(--night))}.topbar .monogram{color:var(--accent-soft)}.cv-link,.customize-button{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:none}.cv-link:hover,.customize-button:hover{background:var(--accent-deep);color:#fff}.hero h1 span{color:var(--accent-soft)}.hero h1{text-shadow:none}.hero-stage{background-color:var(--night);background-image:repeating-linear-gradient(45deg,transparent 0 8px,#aac8d608 8px 9px),repeating-linear-gradient(-45deg,transparent 0 8px,#aac8d608 8px 9px)}.hero-stage:after{background:linear-gradient(90deg,var(--night) 3%,transparent 80%)}.hero .eyebrow,.hero-description{color:color-mix(in srgb,var(--accent-soft) 40%,#fff)}.hero .explore-link{color:#e7eff0;border-color:var(--accent-soft)}.hero .explore-link:hover{color:var(--accent-soft)}.shader-mix input{accent-color:var(--accent-soft)}.shader-controls button:hover{background:color-mix(in srgb,var(--accent) 20%,var(--night));color:#fff}.shader-fallback{border-color:var(--accent-soft);box-shadow:0 0 30px color-mix(in srgb,var(--accent) 25%,transparent)}.stat-cell:hover strong,.stats-scope:before,.stat-code i{color:var(--accent-soft)}.stat-cell em{color:var(--accent-soft)}.experience{background:transparent}.experience h3,.section-heading h2,.shelf-heading h2{color:var(--ink)}.section-heading>a,.rail-cv,.footer a{color:var(--accent-deep)}#language-list i{background:var(--accent-soft)}#language-list [aria-pressed=true] i{background:var(--accent)}#language-list [aria-pressed=true] b{color:var(--ink)}.search,.project-toolbar .search{background:color-mix(in srgb,var(--paper) 85%,transparent)}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 15%,transparent)}#active-filters{background:color-mix(in srgb,var(--accent) 9%,var(--paper));color:var(--accent-deep)}.project-grid.overview .spotlight{background:color-mix(in srgb,var(--accent) 7%,var(--paper));border-color:var(--rule);border-bottom-color:var(--kind)}.project-grid.overview .spotlight:nth-child(3){background:color-mix(in srgb,var(--accent) 11%,var(--paper))}.project-grid.overview .spotlight:first-child{background:var(--night);border-color:var(--accent-deep);border-bottom-color:var(--kind)}.project-grid.overview .spotlight:first-child .feature-footer{color:var(--accent-soft)}.project-grid.overview .spotlight:hover{background:color-mix(in srgb,var(--accent) 15%,var(--paper))}.project-grid.overview .spotlight:first-child:hover{background:color-mix(in srgb,var(--accent) 16%,var(--night))}.project-grid.overview .spotlight .stack,.feature-footer{color:var(--accent-deep)}.project-grid.overview .spotlight:first-child .stack{color:var(--accent-soft)}.project-grid.overview .spotlight .brief{color:var(--ink)}.project-grid.overview .spotlight:first-child .brief{color:#d8e5e9}.project-card:hover{background:color-mix(in srgb,var(--accent) 7%,var(--paper));box-shadow:inset 0 0 0 1px var(--rule)}.spotlight:first-child:focus-visible{box-shadow:inset 0 0 0 3px var(--accent-soft)!important}.metric-tile{background:color-mix(in srgb,var(--paper) 88%,#fff)}.metric-tile:hover{background:color-mix(in srgb,var(--accent) 8%,var(--paper))}.metric-action,.capability-table button{color:var(--accent-deep)}.capability-table th{background:color-mix(in srgb,var(--accent) 9%,var(--paper))}.capability-table tr:hover{background:color-mix(in srgb,var(--accent) 6%,var(--paper))}.matrix-scroll{position:relative;max-width:100%;min-width:0}.matrix-dot{vertical-align:middle}.preference-grid input{accent-color:var(--accent)}.preference-presets button:hover,.library-list span{background:color-mix(in srgb,var(--accent) 7%,var(--paper))}.preference-row select{background:var(--paper)}dialog{background:var(--paper);border-color:var(--rule)}dialog::backdrop{background:color-mix(in srgb,var(--night) 85%,transparent)}::selection{background:var(--accent-soft);color:var(--night)}.atlas-layout,.exploration-section,.experience,.footer,.review-tools{background-color:var(--paper)}.hero-stage{background-image:linear-gradient(#a6d3cb06 1px,transparent 1px),linear-gradient(90deg,#a6d3cb06 1px,transparent 1px);background-size:32px 32px}.hero-copy{background:linear-gradient(90deg,var(--night) 0%,var(--night) 31%,color-mix(in srgb,var(--night) 96%,transparent) 45%,transparent 64%)}body[data-texture=off],body[data-texture=off] .page-root,body[data-texture=off] .hero-stage{background-image:none}.cv-page{background-color:var(--paper);background-image:repeating-linear-gradient(45deg,transparent 0 5px,var(--hatch) 5px 6px),repeating-linear-gradient(-45deg,transparent 0 5px,var(--hatch) 5px 6px)}.cv-page .header{background:var(--night)}.cv-page .header .monogram{color:var(--accent-soft)}.cv-page .button{background:var(--accent);color:#fff;border-color:var(--accent)}.cv-page .portfolio-note{background:color-mix(in srgb,var(--accent) 7%,var(--paper));border-color:var(--accent)}.cv-page .job>.eyebrow{color:var(--accent)}.cv-page[data-texture=off]{background-image:none}@media(max-width:580px){#language-list [aria-pressed=true]{background:var(--night);border-color:var(--night);color:#fff}#language-list [aria-pressed=true] b{color:var(--accent-soft)}.hero-stage:after{background:linear-gradient(90deg,var(--night) 2%,transparent)}.shader-wrap{opacity:.7}}.cv-page{background-image:var(--graph-paper);background-size:120px 120px,120px 120px,24px 24px,24px 24px}.cv-page main{max-width:1200px;margin:20px auto;background:var(--paper);border:1px solid color-mix(in srgb,var(--rule) 65%,var(--paper));border-radius:8px;box-shadow:0 5px 22px #123b3206}.cv-page footer{background:var(--paper)}.cv-page .header{color:#edf5f2}.cv-page .header nav a{color:#c5ded7}.cv-page .header nav [aria-current]{color:#fff;border-bottom-color:var(--accent-soft)}@media(max-width:1240px){.cv-page main{margin:16px 18px}}@media(max-width:580px){.cv-page main{margin:12px 8px}.hero-copy{background:linear-gradient(90deg,var(--night),color-mix(in srgb,var(--night) 94%,transparent) 68%,transparent)}}@media print{body,.page-root,.cv-page,.cv-page main{background:#fff!important;background-image:none!important}.cv-page main{margin:0;border:0;box-shadow:none}}body.playful{--paper:#f1f8f6;--ink:#153d39;--muted:#54716d;background:var(--paper);font-family:Space,sans-serif;color:var(--ink)}body.playful[data-theme=cerulean]{--paper:#f0f7fc;--ink:#173b53;--muted:#547384}body.playful[data-theme=forest]{--paper:#f3f8f1;--ink:#22432e;--muted:#5a735d}body.playful .page-root{max-width:1280px;margin:auto;padding:0 32px;border:0;background:var(--paper);box-shadow:none}body.playful .topbar{min-height:88px;height:auto;padding:16px 0;gap:20px;display:flex;align-items:center;border:0;background:none}body.playful .brand{font:700 18px/1.2 Space,sans-serif;white-space:nowrap;letter-spacing:-.6px;gap:10px;color:var(--ink)}body.playful .monogram{display:none}.top-preferences{margin-left:auto;display:flex;gap:12px;align-items:center}.top-preferences label{display:flex;align-items:center;gap:7px;font:12px/1.3 Plex,sans-serif;color:var(--muted)}body.playful select{font:14px/1.3 Space,sans-serif;border:1px solid color-mix(in srgb,var(--accent) 17%,transparent);border-radius:12px;background:var(--paper);color:var(--ink);padding:10px 26px 10px 10px;min-height:44px;max-width:100%;box-shadow:none}body.playful .hero{margin:0;border:0;border-radius:30px;overflow:hidden;background:#0a302d;box-shadow:0 8px 24px #123d3914}body.playful .hero-stage{display:grid;grid-template-columns:1.05fr 1fr;min-height:280px;height:auto;position:relative;background:linear-gradient(125deg,#103a36,#092a32)}body.playful .hero-stage:before,body.playful .hero-stage:after{display:none}body.playful .hero-copy{grid-column:1;grid-row:1;padding:34px 34px 24px;position:relative;inset:auto;max-width:none;pointer-events:auto}body.playful .eyebrow{display:none}body.playful h1{font:700 clamp(36px,4.3vw,62px)/.98 Space,sans-serif;letter-spacing:-2.7px;color:#f0faf5;margin:0 0 20px}body.playful h1 span{color:#89d9c6}body.playful .hero-description{font:16px/1.5 Plex,sans-serif;color:#c4ded8;max-width:380px;margin:0 0 20px}body.playful .hero-links{gap:12px;margin:0}body.playful .shader-wrap{grid-column:2;grid-row:1;position:relative;inset:auto;width:100%;height:100%;min-height:260px;overflow:hidden;mask-image:none;opacity:1}body.playful #shader{display:block;width:100%;height:100%;touch-action:none;cursor:grab;opacity:1;filter:none}body.playful #shader:active{cursor:grabbing}body.playful .field-scale,body.playful .field-register,body.playful .paint-hint,body.playful .liquid-label{display:none}body.playful .instrument-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0b302d;border:0;padding:12px 24px;color:#b6d4cc;min-height:64px}body.playful #shader-status{display:block;flex:1;min-width:0;font:13px/1.35 Plex,sans-serif;letter-spacing:0;text-transform:none;max-width:none}body.playful .shader-controls{display:flex;gap:8px;flex-shrink:0}body.playful .practice-note{border:0;padding:16px 4px 20px;margin:0;background:none;display:block}body.playful .practice-note p{font:14px/1.5 Plex,sans-serif;color:var(--muted);max-width:none;margin:0}body.playful .practice-note p strong{display:inline;margin-right:4px;color:var(--ink)}body.playful .practice-note blockquote{display:none}body.playful .atlas-layout{display:block;margin:0;padding:0}body.playful #projects{padding:18px 0 28px;min-width:0;scroll-margin-top:20px;border:0}body.playful .project-toolbar{display:block;position:static;padding:0;border:0;background:none;box-shadow:none;backdrop-filter:none}body.playful .shelf-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:16px;padding:0}body.playful .shelf-heading{display:flex;align-items:center;flex:1;gap:10px;flex-wrap:wrap}body.playful #shelf-title{font:700 26px/1.2 Space,sans-serif;letter-spacing:-1px}body.playful #project-count{font:13px/1.3 Plex,sans-serif;color:var(--muted)}.shelf-heading>label{margin-left:auto;display:flex;align-items:center;gap:6px;font:12px Plex,sans-serif;color:var(--muted)}body.playful .search{width:260px;flex:none;max-width:100%;height:46px;background:#fff;border:1px solid #163d391c;border-radius:15px;box-shadow:none}body.playful .search input{font:16px/1.3 Plex,sans-serif;color:var(--ink);background:none;padding:10px 12px;min-width:0}body.playful .search kbd{display:none}body.playful #kind-filters{display:flex;flex-wrap:wrap;gap:9px;padding:0;margin:0 0 14px;border:0;overflow:visible}body.playful .kind-key{display:none}body.playful .filter-drawer{margin:0 0 22px;border:1px solid #163d391a;border-radius:18px;background:#ffffff7d;min-width:0}body.playful summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;font:500 14px/1.4 Space,sans-serif;padding:14px 16px;min-height:48px;user-select:none;position:relative}body.playful summary::-webkit-details-marker{display:none}.disclosure-mark{margin-left:auto;font:22px/1 Space,sans-serif;transition:transform .25s}details[open]>summary>.disclosure-mark{transform:rotate(45deg)}.filter-summary-note{font:13px Plex,sans-serif;color:var(--muted)}.advanced-content{padding:4px 16px 20px;display:flex;flex-direction:column;gap:20px}body.playful .filters,body.playful #language-list,body.playful #capability-filters,body.playful #development-filters,body.playful .model-shortcuts{display:flex;flex-wrap:wrap;gap:8px;overflow:visible;padding:0;margin:0;border:0;max-height:none;background:none}body.playful #languages{display:block!important;position:static;width:auto;padding:0;margin:0;border:0;background:none;box-shadow:none;overflow:visible}body.playful #language-title{font:600 14px/1.4 Space,sans-serif;margin:0 0 10px}body.playful .rail-heading>span,body.playful .rail-note,body.playful .rail-footnote,body.playful .rail-cv,body.playful #language-list button i{display:none}body.playful #language-list button{width:auto;flex:none;display:inline-flex;align-items:center;gap:7px}body.playful .development-filter-panel{display:flex;flex-direction:column;gap:10px;border:0;background:none;padding:0;margin:0}body.playful .development-filter-label{font:600 14px Space,sans-serif;text-transform:none;letter-spacing:0;color:var(--ink)}body.playful .development-filter-help,body.playful .model-scope-note{display:none}body.playful .model-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:6px 0 0;border:0;padding:0}body.playful .model-controls label{display:grid;gap:5px;font:13px Plex,sans-serif;min-width:0;max-width:100%}body.playful .model-controls select{min-width:0;width:100%;max-width:230px}body.playful .signals-legend{font:12px/1.5 Plex,sans-serif;display:flex;flex-wrap:wrap;gap:8px 16px;border:0;margin:0;padding:0}.collection-options{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between}body.playful .view-switch{background:none;border:0;display:flex;gap:8px}body.playful #active-filters{border:0;background:#fff;border-radius:14px;padding:12px;gap:12px;margin-bottom:16px;font:14px/1.4 Plex,sans-serif}body.playful :is(.cv-link,.explore-link,button:not(.project-card):not(.stat-cell)){position:relative;isolation:isolate;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--accent) 18%,#d9e6e0);border-radius:16px;background:linear-gradient(155deg,#fff,#e4f0eb);color:var(--ink);font:500 14px/1.2 Plex,sans-serif;letter-spacing:0;text-transform:none;box-shadow:inset 0 2px #ffffffd9,0 3px #bed3c9,0 5px 8px #173a3110;overflow:visible;touch-action:manipulation;transition:background .2s,box-shadow .2s;filter:none;animation:none;transform:none;white-space:normal}body.playful :is(.cv-link,.explore-link,button:not(.project-card):not(.stat-cell)):before,body.playful :is(.cv-link,.explore-link,button:not(.project-card):not(.stat-cell)):after{content:none}body.playful :is(button[aria-pressed=true],.cv-link){background:linear-gradient(155deg,var(--accent),var(--accent-deep));border-color:var(--accent);color:#fff;box-shadow:inset 0 2px #ffffff30,0 3px color-mix(in srgb,var(--accent-deep) 90%,black),0 6px 10px #123c3417}body.playful :is(button,.cv-link,.explore-link,summary)[data-soft]{transition:none;will-change:transform;transform-origin:var(--press-x) var(--press-y);filter:none}body.playful :is(button,.cv-link,.explore-link,summary)[data-soft]:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(ellipse 30px 24px at var(--press-x) var(--press-y),#092f383d,transparent 95%);opacity:var(--dent-opacity);z-index:2;display:block;box-shadow:none;animation:none;transform:none}body.playful .tool-swatch{display:none}body.playful .facet-button b,body.playful .filters button span,body.playful .development-filter b,body.playful #language-list b{font:12px Plex,sans-serif;opacity:.7;padding:0;border:0;background:none;color:inherit}body.playful #kind-filters .facet-button{color:var(--ink);border-color:#143b3320;background:linear-gradient(150deg,#fff,#e8f1ee);--kind:var(--accent)}body.playful #kind-filters .facet-button[aria-pressed=true]{background:var(--accent);color:#fff}body.playful .kind-mark{width:17px;height:17px;flex-shrink:0}body.playful #project-grid,body.playful #project-grid.overview,body.playful #project-grid.has-spotlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:0;border:0;align-items:stretch;background:none;box-shadow:none}body.playful #project-grid .project-card{display:flex;flex-direction:column;gap:13px;min-width:0;height:auto;min-height:0;grid-column:auto;grid-row:auto;margin:0;padding:18px;text-align:left;color:var(--ink);background:linear-gradient(150deg,#fff,color-mix(in srgb,var(--kind) 5%,#f4f8f6));border:1px solid color-mix(in srgb,var(--kind) 20%,#e3eee9);border-radius:24px;box-shadow:inset 0 2px #fff,0 5px color-mix(in srgb,var(--kind) 10%,#d5e2dc),0 8px 18px #193f3610;overflow:hidden;clip-path:none;transform:none;filter:none;transition:transform .22s,box-shadow .22s;isolation:isolate;animation:none}body.playful #project-grid .project-card:before,body.playful #project-grid .project-card:after{display:none}body.playful #project-grid .card-heading{display:flex;gap:14px;align-items:center;min-width:0;padding:0;border:0;background:none}body.playful #project-grid .thumb{display:block;width:96px;height:96px;min-width:96px;flex:0 0 96px;border:0;border-radius:20px;background-image:var(--image);background-size:var(--size);background-position:var(--position);background-color:#eaf1ef;box-shadow:inset 0 0 0 1px #163d3910,0 4px 8px #23403514;filter:none;transform:rotate(-2deg);overflow:hidden}body.playful #project-grid .project-card:nth-child(3n+2) .thumb{transform:rotate(2deg)}body.playful #project-grid .thumb:before,body.playful #project-grid .thumb:after{display:none}body.playful #project-grid .thumb img{width:100%;height:100%;object-fit:cover}body.playful #project-grid .card-identity{min-width:0;flex:1;display:block;padding:0}body.playful #project-grid .card-meta{margin:0 0 8px;display:block}body.playful #project-grid .kind-label{display:inline-flex;align-items:center;gap:5px;background:none;color:var(--kind);font:600 12px/1.3 Plex,sans-serif;text-transform:none;letter-spacing:0;border:0;padding:0}body.playful #project-grid .kind-label .kind-mark{width:14px;height:14px}body.playful #project-grid .project-number{display:none}body.playful #project-grid h3{font:700 19px/1.15 Space,sans-serif;letter-spacing:-.55px;margin:0;max-width:none;overflow-wrap:anywhere;-webkit-line-clamp:unset;display:block;color:var(--ink)}body.playful #project-grid .card-copy{display:flex;flex-direction:column;gap:8px;padding:0;margin:0;min-width:0}body.playful #project-grid .brief{display:block;font:16px/1.4 Plex,sans-serif;color:var(--ink);max-height:none;overflow:visible;-webkit-line-clamp:unset;order:0}body.playful #project-grid .technical{display:block;font:14px/1.4 Plex,sans-serif;color:var(--muted);max-height:none;overflow:visible;-webkit-line-clamp:unset;order:1;border:0;padding:0;margin:0}body.playful #project-grid .technical:before{display:none}body.playful #project-grid .stack{display:flex;flex-wrap:wrap;gap:5px;order:2;margin:2px 0 0;padding:0;background:none;border:0;max-height:none;overflow:visible}body.playful #project-grid .stack-token{font:12px/1.35 Plex,sans-serif;padding:3px 7px;border-radius:7px;border:0;background:color-mix(in srgb,var(--kind) 8%,white);color:color-mix(in srgb,var(--kind) 72%,#142d2d)}body.playful #project-grid .concept{color:inherit;font-weight:600;background:none;box-shadow:none;border:0;padding:0}body.playful #project-grid .project-signals{display:flex;flex-wrap:wrap;gap:6px;padding:9px 0 0;margin-top:auto;border-top:1px solid #153d3910;background:none;min-height:0}body.playful #project-grid .project-signals>span{display:none}body.playful #project-grid .project-signals>.model-tags,body.playful #project-grid .project-signals>.development-tags{display:flex;gap:4px;flex-wrap:wrap;padding:0;border:0;background:none}body.playful #project-grid .project-signals .model-tags>span:nth-of-type(n+3){display:none}body.playful #project-grid .project-signals .signal-label{display:none}body.playful #project-grid .project-signals :is(.model-chip,.dev-tool){font:12px/1.3 Plex,sans-serif;padding:2px 5px;border:0;border-radius:5px;background:none;color:var(--muted);gap:4px;box-shadow:none}body.playful #project-grid .project-signals i{font-size:10px;width:15px;height:15px;background:color-mix(in srgb,var(--accent) 12%,white);color:var(--accent-deep);border-radius:4px;display:inline-grid;place-items:center}body.playful #project-grid .project-signals:empty{display:none}body.playful #project-grid.index{grid-template-columns:repeat(2,minmax(0,1fr))}body.playful #project-grid.index .project-card{padding:14px;gap:9px}body.playful #project-grid.index .thumb{width:64px;height:64px;min-width:64px;flex-basis:64px;border-radius:14px}body.playful #project-grid.index .technical,body.playful #project-grid.index .project-signals{display:none}body.playful .collection-depth{border:1px solid #163d3920;border-radius:22px;margin:18px 0 32px;background:#ffffff80}body.playful .collection-depth>summary{padding:20px;font-size:18px;flex-wrap:wrap}.collection-depth>summary small{font:13px Plex,sans-serif;color:var(--muted)}.depth-content{padding:0 18px 18px;min-width:0}body.playful .stats-strip{margin:12px 0 24px;border:0;border-radius:16px;overflow:hidden}body.playful .exploration-section{margin:20px 0;padding:0;border:0}body.playful .experience{border:0;padding:10px 0 34px;background:none}body.playful .experience-grid{gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}body.playful .experience article{border:1px solid #163d3917;border-radius:18px;padding:18px;background:#fff}body.playful .experience h3{font-size:18px}body.playful .experience p{font:14px/1.5 Plex,sans-serif}body.playful .footer{padding:24px 0;border-top:1px solid #163d391a;font:13px Plex,sans-serif}body.playful dialog{border-radius:24px;max-width:min(720px,calc(100vw - 24px));padding:24px;background:var(--paper);border:1px solid #163d3920}body.playful dialog::backdrop{background:#092b2bb3;backdrop-filter:blur(5px)}body.playful dialog :is(p,.library-list){font-size:16px;line-height:1.5}body.playful .detail-heading .thumb{flex-shrink:0}body.playful #detail-body>.boundary,body.playful .detail-actions [data-choice]{display:none}body.playful .detail-actions:empty{display:none}body.playful .preference-grid{gap:9px}body.playful #preference-grid label{border-radius:12px;font:14px/1.3 Plex,sans-serif;min-height:44px;gap:8px}body.playful [hidden]{display:none!important}@media(hover:hover){body.playful[data-motion=on] #project-grid .project-card:hover{transform:translateY(-4px);box-shadow:0 8px #d7e6df,0 15px 25px #163d3918}body.playful[data-motion=on] #project-grid .project-card:hover .thumb{transform:rotate(0) scale(1.025)}}body.playful :focus-visible{outline:3px solid var(--accent);outline-offset:4px}@keyframes shelf-arrive{0%{opacity:0;translate:0 9px}to{opacity:1;translate:0 0}}body.playful[data-motion=on] #project-grid .project-card.card-reveal{animation:shelf-arrive .32s both;animation-delay:var(--reveal-delay)}body.playful[data-motion=on] #project-grid .project-card:active{transform:scale(.98);box-shadow:inset 0 2px 5px #123c3910,0 2px #cbded4}@media(max-width:1000px){body.playful #project-grid,body.playful #project-grid.overview,body.playful #project-grid.has-spotlights,body.playful .experience-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.playful .hero-copy{padding:30px 24px}body.playful .hero-stage{grid-template-columns:1.1fr 1fr}body.playful h1{font-size:44px}}@media(max-width:650px){body.playful .page-root{padding:0 16px}body.playful .topbar{padding:15px 0;gap:10px;flex-wrap:wrap;min-height:0}body.playful .brand{font-size:18px;flex:1}body.playful .topbar>.cv-link{order:1;min-height:44px;padding:9px 13px}.top-preferences{order:2;flex-basis:100%;min-width:0;margin:3px 0 0;justify-content:space-between;gap:10px}.top-preferences label{flex:1 1 0;min-width:0;gap:6px}.top-preferences select{flex:1;min-width:0}body.playful .hero{border-radius:24px}body.playful .hero-stage{display:flex;flex-direction:column;min-height:0}body.playful .hero-copy{padding:25px 23px 6px;order:0}body.playful h1{font-size:43px;letter-spacing:-2px;margin-bottom:13px}body.playful .hero-description{font-size:15px;line-height:1.4;margin-bottom:14px}body.playful .hero-links{display:none}body.playful .shader-wrap{order:1;height:170px;min-height:170px;flex-basis:170px}body.playful .instrument-bar{padding:10px 14px;gap:8px;min-height:62px}body.playful #shader-status{font-size:12px;max-width:135px}body.playful .shader-controls button{padding:8px 11px;min-height:44px}body.playful .practice-note{padding:15px 3px 8px}.practice-note p{line-height:1.4!important}body.playful .shelf-head{gap:10px;margin-bottom:13px}body.playful .shelf-heading{flex-basis:100%;gap:8px}.shelf-heading>label{font-size:0;gap:0}.shelf-heading select{max-width:140px}body.playful select{font-size:16px!important}body.playful .search{width:100%;flex-basis:100%}body.playful #kind-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:13px}body.playful #kind-filters .facet-button{padding:9px 6px;font-size:14px;gap:5px;min-width:0}body.playful #kind-filters .kind-mark{width:15px;height:15px}.filter-summary-note{font-size:12px}body.playful .filter-drawer{margin-bottom:20px;border-radius:15px}body.playful #project-grid,body.playful #project-grid.overview,body.playful #project-grid.has-spotlights,body.playful #project-grid.index{grid-template-columns:minmax(0,1fr);gap:17px}body.playful #project-grid .project-card{padding:16px;border-radius:22px;gap:12px}body.playful #project-grid .thumb{width:91px;height:91px;min-width:91px;flex-basis:91px;border-radius:18px}body.playful #project-grid .card-heading{gap:15px}body.playful #project-grid h3{font-size:21px}body.playful #project-grid .brief{font-size:16px;line-height:1.35}body.playful #project-grid .technical{font-size:14px}body.playful .experience-grid{grid-template-columns:minmax(0,1fr)}body.playful .collection-depth>summary{font-size:16px;gap:7px}.collection-depth>summary small{max-width:170px}body.playful .model-controls{display:grid;grid-template-columns:minmax(0,1fr)}body.playful .model-controls select{max-width:100%}body.playful .preference-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:360px){body.playful .page-root{padding:0 12px}body.playful h1{font-size:37px}body.playful #kind-filters .kind-mark{display:none}body.playful #project-grid h3{font-size:19px}.filter-summary-note{display:none}}body.playful[data-motion=off] *,body.playful[data-motion=off] *:before,body.playful[data-motion=off] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.cabinet{--ink:#092f30;--muted:#4e6c7a;--paper:#f1f8f5;background-color:#eaf6f0;background-image:var(--graph-paper);background-size:120px 120px,120px 120px,24px 24px,24px 24px;padding:12px 24px 32px}body.cabinet .page-root{max-width:1480px;padding:0 22px;background:linear-gradient(125deg,#fcfffd,#f3faf7);border:1px solid #fff;border-radius:26px;box-shadow:0 12px 45px #164b3520}body.cabinet .topbar{min-height:76px;padding:14px 20px;gap:30px}body.cabinet .brand{font-size:28px;font-weight:700;letter-spacing:-1px}body.cabinet .topbar nav{display:flex;align-items:center;gap:28px;font:14px Plex,sans-serif;margin-left:0}body.cabinet .topbar nav a{display:inline;color:var(--ink);text-decoration:none;white-space:nowrap}body.cabinet .top-preferences{margin-left:auto;gap:16px;flex-basis:auto;min-width:0}body.cabinet .topbar>.cv-link{min-width:142px;min-height:44px;margin:0;border-radius:13px;font-size:16px;padding:12px 20px;white-space:nowrap}body.cabinet .theme-swatches{display:flex;gap:0;align-items:center}body.cabinet .theme-swatches button{display:grid;place-items:center;width:40px;height:44px;min-width:40px;padding:0;border:0;box-shadow:none;background:none;border-radius:50%}.theme-swatches span{display:block;width:20px;height:20px;border-radius:50%;background:#0b4a3d;border:2px solid white;box-shadow:0 2px 5px #0e42353b}.theme-swatches [data-theme-set=cerulean] span{background:#198fca}.theme-swatches [data-theme-set=forest] span{background:#228453}.theme-swatches [aria-pressed=true] span{outline:1px solid var(--accent);outline-offset:3px}body.cabinet .motion-control{position:relative;gap:0;padding:0;border:1px solid #d9e6e3;border-radius:13px;background:#f8fcfa;box-shadow:0 3px 7px #0f3e3010}body.cabinet .motion-control>span{position:absolute;left:10px;color:var(--accent);pointer-events:none;font-size:18px}body.cabinet .motion-control select{border:0;background:none;font-size:14px;min-width:140px;padding-left:31px}body.cabinet .hero{position:relative;overflow:visible;background:#f7fcf9;border:1px solid #d9ece5;border-radius:25px;box-shadow:0 3px 8px #1148350b}body.cabinet .hero-stage{grid-template-columns:1fr 1.12fr;gap:18px;min-height:0;padding:12px;background:none;border-radius:inherit}body.cabinet .hero-copy{padding:14px 14px 10px 22px;background:none;align-self:center}body.cabinet h1{color:var(--ink);font-size:clamp(42px,4.1vw,62px);line-height:.95;letter-spacing:-2.5px;margin:0 0 16px}body.cabinet h1 span{color:inherit}body.cabinet .hero-description{max-width:none;font:16px/1.4 Plex,sans-serif;color:#214d4b;margin:0}.learning-note{margin:15px 0 0;color:#4c7f74;font:16px/1.4 Plex,sans-serif}.learning-note:before{content:"";display:block;width:18px;height:1px;background:var(--accent);margin-bottom:7px}body.cabinet .shader-wrap{min-height:248px;height:248px;border-radius:23px;background:radial-gradient(ellipse at 50% 38%,#165d51,#07372e 75%);box-shadow:inset 0 1px 1px #ffffff24,0 4px 9px #0a433125;isolation:isolate}body.cabinet #shader{position:absolute;inset:0;height:100%;min-height:0}body.cabinet #loop-gpu{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}body.cabinet #shader{z-index:1}body.cabinet .instrument-bar{position:absolute;right:24px;bottom:22px;min-height:0;padding:0;border:0;background:none;pointer-events:none;z-index:3;gap:8px}body.cabinet #shader-status{color:#d3ebe3;max-width:none;font:13px/1.2 Plex,sans-serif;white-space:nowrap}body.cabinet .shader-controls{display:contents}body.cabinet #pause-shader,body.cabinet #reset-shader{position:absolute;right:0;bottom:190px;pointer-events:auto;min-height:42px;min-width:42px;padding:8px;border-radius:50%;border:1px solid #cbe7da7d;background:#d2eee520;box-shadow:inset 0 1px 2px #fff7,0 3px 5px #092b2455;backdrop-filter:blur(5px);color:#e4f6ee;font-size:20px}body.cabinet #reset-shader{right:50px;font-size:19px;background:#c8e3d611;border-color:transparent;box-shadow:none;opacity:.6}body.cabinet .practice-note{display:none}body.cabinet #projects{padding:24px 0 14px}body.cabinet .shelf-head{display:flex;width:100%;gap:20px;margin-bottom:12px;align-items:center}body.cabinet .shelf-heading{flex:1;min-width:190px;gap:12px;margin:0}body.cabinet #shelf-title{font-size:34px!important;letter-spacing:-1.3px;line-height:1.15}body.cabinet #project-count{font-size:16px;color:#648390;white-space:nowrap}body.cabinet .search{width:min(47%,590px);height:44px;border-radius:14px;background:#fff;border-color:#d3e3de;box-shadow:0 3px 9px #174b3210;flex:1.5}body.cabinet .search input{font-size:16px}body.cabinet .more-filters{min-width:148px;white-space:nowrap}body.cabinet #kind-filters{gap:10px;margin:0 0 14px}body.cabinet #kind-filters .facet-button{min-width:100px;min-height:42px;padding:10px 18px;font-size:14px;border-radius:18px;border-color:#e0ebe5;box-shadow:0 3px 7px #144a3710;background:linear-gradient(#fff,#f8fbf9)}body.cabinet #kind-filters .facet-button[aria-pressed=true]{background:linear-gradient(145deg,#098466,var(--accent-deep));color:#fff;border-color:#0a8065;box-shadow:inset 0 1px #ffffff25,0 3px 7px #0d665323}body.cabinet #kind-filters .kind-mark,body.cabinet #kind-filters b{display:none}body.cabinet .filter-drawer{margin:0 0 14px;background:#f8fcfa;border-radius:17px}body.cabinet .filter-drawer>summary{font-size:14px}body.cabinet .ranking-toolbar{display:flex;gap:16px;align-items:center;justify-content:space-between;margin:0 0 16px;min-width:0}.priority-control{display:flex;align-items:center;min-width:0;background:#fcfefd;border:1px solid #d5e6df;border-radius:14px;box-shadow:0 3px 7px #19493612;padding-left:8px}.priority-icons{display:flex;gap:4px}.priority-icons i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#198bf4;color:#fff;font:21px/1 sans-serif;box-shadow:inset 0 1px 2px #fff8;font-style:normal}.priority-icons i:last-child{background:#0a7958}body.cabinet #model-priority{background:none;border:0;font-size:14px;padding:10px 22px 10px 8px;min-width:0;max-width:210px}.sorting-controls{display:flex;align-items:center;gap:10px;min-width:0}.sort-segments{display:flex;align-items:center;border:1px solid #d7e5e0;background:#fff;border-radius:14px;padding:3px;gap:2px;box-shadow:0 3px 7px #154e3712}.sort-segments>span{padding:0 12px;font:14px Plex,sans-serif;color:var(--muted);white-space:nowrap}body.cabinet .sort-segments button{min-height:38px;border:0;border-radius:11px;box-shadow:none;background:none;padding:8px 14px;white-space:nowrap;font-size:14px}body.cabinet .sort-segments [aria-pressed=true]{color:#fff;background:linear-gradient(155deg,#0b8064,#06604f);box-shadow:inset 0 1px #ffffff40,0 2px 4px #006b4930}body.cabinet .sort-segments [aria-disabled=true]{color:#75908c;cursor:help}body.cabinet .sort-mobile{display:none}body.cabinet .metrics-help{min-width:40px;padding:7px 4px;border:0;background:none;box-shadow:none;color:var(--muted);gap:8px;white-space:nowrap}.metrics-help i{width:21px;height:21px;border:1px solid #39616a;border-radius:50%;font:14px/19px serif;font-style:normal}body.cabinet #project-grid,body.cabinet #project-grid.overview,body.cabinet #project-grid.has-spotlights{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}body.cabinet #project-grid .project-card{padding:14px 14px 0;border-radius:18px;gap:0;border:1px solid #e7f0eb;background:linear-gradient(145deg,#fff,#fbfdfc);box-shadow:0 5px 10px #12473212,inset 0 1px 1px #fff;min-width:0;overflow:hidden}body.cabinet #project-grid .card-heading{display:grid;grid-template-columns:minmax(105px,.85fr) minmax(0,1.2fr);align-items:start;gap:14px;flex:1;width:100%;padding-bottom:12px}body.cabinet #project-grid .thumb{width:100%;height:auto;aspect-ratio:1;min-width:0;flex:none;border-radius:12px;transform:none;box-shadow:inset 0 0 0 1px #113d3120,0 2px 4px #163a3110}body.cabinet #project-grid .project-card:nth-child(n) .thumb{transform:none}body.cabinet #project-grid .card-meta{margin:0 0 5px}body.cabinet #project-grid .kind-label{font:12px/1.2 Plex,sans-serif;color:var(--kind);gap:6px}body.cabinet #project-grid .kind-label .kind-mark{width:9px;height:9px;border-radius:50%;background:currentColor;stroke:none}body.cabinet #project-grid h3{font:700 18px/1.12 Space,sans-serif;letter-spacing:-.45px;margin:0 0 7px;overflow-wrap:normal}body.cabinet #project-grid .card-copy{gap:8px}body.cabinet #project-grid .brief{font:16px/1.24 Plex,sans-serif;color:var(--ink);margin:0}body.cabinet #project-grid .technical{font:14px/1.24 Plex,sans-serif;color:#5b7088}body.cabinet #project-grid .stack{gap:4px;margin:0}body.cabinet #project-grid .stack-token{font:12px/1.2 Plex,sans-serif;background:#f0f4f7;border-radius:8px;color:#244f65;padding:5px 7px}body.cabinet #project-grid .concept{font-weight:600}body.cabinet #project-grid .project-signals{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;border-top:1px solid #dfe9e5;margin:0;padding:9px 0;background:none;min-height:39px}body.cabinet #project-grid .project-signals>.development-tags,body.cabinet #project-grid .project-signals>.model-tags{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0}body.cabinet #project-grid .project-signals>.development-tools{display:inline;font:12px/1.2 Plex,sans-serif;color:#5d7188;max-width:100%}body.cabinet #project-grid .project-signals .signal-label{display:inline;font:12px/1.2 Plex,sans-serif;color:#4f6975;font-weight:400;margin-right:1px}body.cabinet .model-chip[data-model-key=astra]{color:#006ec5!important;background:#e2f3ff!important}body.cabinet .model-chip[data-model-key=fable]{color:#086444!important;background:#e0f1e8!important}body.cabinet #project-grid .project-signals .model-chip{display:inline-flex;font:12px/1.2 Plex,sans-serif;padding:4px 7px;border-radius:12px;gap:4px;color:#3f626b;background:#f0f5f3}body.cabinet #project-grid .project-signals .model-chip i{background:none;color:inherit;font-size:17px;line-height:15px;width:15px;height:15px}body.cabinet #project-grid .project-signals .model-more{font:12px Plex,sans-serif;color:#6b8486}body.cabinet #project-grid .card-metrics{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;border-top:1px solid #dfe9e5;padding:10px 0;font:13px/1.2 Plex,sans-serif;color:#23455b;min-height:39px}.card-metrics>span{display:flex;gap:8px;align-items:center}.card-metrics i{font:600 15px/1 monospace;font-style:normal}.card-metrics svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.4}body.cabinet #project-grid .project-signals:empty,body.cabinet #project-grid .card-metrics:empty{display:none}body.cabinet .collection-depth{margin:16px 0 24px;background:#fcfefd;border-color:#e1ebe5;border-radius:17px;box-shadow:0 4px 8px #1f4d3910}body.cabinet .collection-depth>summary{display:grid;grid-template-columns:30px 1fr 22px;column-gap:14px;padding:16px 20px;font:600 16px/1.2 Plex,sans-serif}.collection-icon{grid-row:1/3;grid-column:1;font-size:26px;color:var(--ink)}body.cabinet .collection-depth>summary>span:not(.collection-icon):not(.disclosure-mark){grid-column:2;grid-row:1}body.cabinet .collection-depth>summary small{grid-column:2;grid-row:2;font:13px/1.3 Plex,sans-serif}body.cabinet .collection-depth .disclosure-mark{grid-column:3;grid-row:1/3}.source-footnote{font:12px/1.4 Plex,sans-serif;color:#688183;text-align:right;margin:0 0 12px}.mobile-disciplines{display:none}body.cabinet .experience{padding-top:12px;background:none}body.cabinet .experience-grid article{padding:20px;background:#fff;border:1px solid #dae9e1}body.cabinet #project-grid.index{grid-template-columns:repeat(2,minmax(0,1fr))}body.cabinet #project-grid.index .card-heading{grid-template-columns:72px minmax(0,1fr)}body.cabinet #project-grid.index .thumb{width:72px;height:72px}body.cabinet[data-ai-signals=off] #project-grid .project-signals{display:none}body.cabinet[data-technical=off] #project-grid :is(.technical,.stack){display:none}body.cabinet[data-thumbnails=off] #project-grid .thumb{display:none}body.cabinet[data-thumbnails=off] #project-grid .card-heading{grid-template-columns:1fr}body.cabinet[data-shader=off] .shader-wrap,body.cabinet[data-shader=off] .instrument-bar{display:none}body.cabinet[data-shader=off] .hero-stage{grid-template-columns:1fr}@media(hover:hover){body.cabinet[data-motion=on] #project-grid .project-card:hover{transform:translateY(-3px);box-shadow:0 9px 18px #0d533725;border-color:#b8d8c9}body.cabinet[data-motion=on] #project-grid .project-card:hover .thumb{transform:none}}@media(max-width:1250px){body.cabinet .topbar{gap:20px;padding-inline:10px}body.cabinet .topbar nav{gap:18px}body.cabinet .hero-description{font-size:16px}body.cabinet .metrics-help>span{display:none}body.cabinet .sort-segments button{padding-inline:10px}body.cabinet #project-grid .card-heading{grid-template-columns:110px minmax(0,1fr);gap:11px}body.cabinet #project-grid .project-signals{align-items:flex-start}body.cabinet .shader-wrap,body.cabinet #shader{min-height:235px}}@media(max-width:1050px){body.cabinet #project-grid,body.cabinet #project-grid.overview,body.cabinet #project-grid.has-spotlights{grid-template-columns:repeat(2,minmax(0,1fr))}body.cabinet .topbar nav{display:none}body.cabinet .ranking-toolbar{gap:10px}.sort-segments>span{display:none}body.cabinet #project-grid .card-heading{grid-template-columns:minmax(115px,.8fr) minmax(0,1.2fr)}body.cabinet .hero-stage{grid-template-columns:1fr 1fr}body.cabinet .hero-copy{padding-left:12px}}@media(max-width:800px){body.cabinet{padding:8px 12px 24px}body.cabinet .page-root{padding:0 16px}body.cabinet .sort-segments{display:none}body.cabinet .sort-mobile{display:flex;align-items:center;gap:8px;font:14px Plex,sans-serif;color:var(--muted)}body.cabinet #project-sort{font-size:16px;max-width:175px}body.cabinet .hero-copy{padding-left:8px}body.cabinet h1{font-size:42px}body.cabinet .shader-wrap,body.cabinet #shader{min-height:240px}body.cabinet #kind-filters .facet-button{min-width:0;flex:1;padding:10px 8px}body.cabinet .shelf-head{gap:12px;flex-wrap:wrap}body.cabinet .shelf-heading{flex-basis:100%}body.cabinet .search{width:auto;flex:1}body.cabinet .more-filters{min-width:120px}}@media(max-width:650px){body.cabinet{padding:8px 8px 20px}.cabinet .page-root{border-radius:21px}body.cabinet .page-root{padding:0 14px}body.cabinet .topbar{padding:12px 0;gap:9px;display:grid;grid-template-columns:1fr auto;align-items:center}body.cabinet .brand{font-size:24px;letter-spacing:-.8px;white-space:nowrap}body.cabinet .top-preferences{grid-column:2;grid-row:1;margin:0;gap:0;justify-content:flex-end;display:flex;flex-wrap:nowrap;flex-basis:auto}body.cabinet .theme-swatches button{width:34px;min-width:34px;height:44px}body.cabinet .theme-swatches span{width:19px;height:19px}body.cabinet .motion-control{display:none}body.cabinet .topbar>.cv-link{grid-column:1/-1;grid-row:2;width:100%;margin:0;padding:10px;min-height:44px;order:0;border-radius:12px}body.cabinet .hero,.cabinet .hero-stage{border-radius:20px}body.cabinet .hero-stage{display:flex;flex-direction:column;padding:12px;gap:12px}body.cabinet .hero-copy{padding:1px 1px 0;align-self:stretch}body.cabinet h1{font-size:36px;line-height:.96;letter-spacing:-1.3px;margin:0 0 12px}body.cabinet .hero-description{font-size:16px;line-height:1.3}body.cabinet .learning-note{margin-top:12px;font-size:15px}.learning-note:before{display:none}body.cabinet .shader-wrap{flex:none;width:100%;height:155px;min-height:155px;aspect-ratio:auto;border-radius:17px}body.cabinet #shader{min-height:155px;height:155px}body.cabinet .instrument-bar{right:24px;bottom:24px;gap:6px}body.cabinet #shader-status{font-size:12px}body.cabinet #pause-shader,body.cabinet #reset-shader{bottom:88px;min-height:36px;min-width:36px;font-size:17px}body.cabinet #reset-shader{right:40px}body.cabinet #projects{padding-top:20px}body.cabinet #shelf-title{font-size:29px!important}body.cabinet #project-count{font-size:14px}body.cabinet .shelf-head{gap:11px;margin-bottom:12px;display:flex;flex-wrap:wrap}body.cabinet .shelf-heading{flex-basis:100%;min-width:0}body.cabinet .search{flex-basis:100%;height:44px;width:100%;min-width:0}body.cabinet .more-filters{flex:1;order:3;min-height:40px;font-size:14px;width:100%;margin-bottom:12px}body.cabinet #kind-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:12px}body.cabinet #kind-filters .facet-button{font-size:14px;padding:8px 6px;min-height:40px}body.cabinet #kind-filters :is([data-kind=Software],[data-kind=Creative],[data-kind=Research]){display:none}.mobile-disciplines{display:block}.mobile-disciplines h3{font:600 14px Space,sans-serif;margin:6px 0 10px}#mobile-kind-filters{display:flex;gap:8px;flex-wrap:wrap}#mobile-kind-filters b,#mobile-kind-filters .kind-mark{display:none}body.cabinet .ranking-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;margin-bottom:14px}body.cabinet .priority-control{width:100%;padding-left:10px}.priority-control .priority-icons{gap:5px}body.cabinet #model-priority{width:100%;max-width:none;font-size:16px;padding-right:10px}body.cabinet .sorting-controls{justify-content:space-between;width:100%}body.cabinet .sort-mobile{display:flex;flex:1;justify-content:space-between}body.cabinet #project-sort{max-width:230px;width:calc(100% - 65px);font-size:16px!important;min-height:42px}body.cabinet .metrics-help{flex-shrink:0;min-height:42px}body.cabinet #project-grid,body.cabinet #project-grid.overview,body.cabinet #project-grid.has-spotlights,body.cabinet #project-grid.index{grid-template-columns:minmax(0,1fr);gap:12px}body.cabinet #project-grid .project-card{padding:12px 12px 0;border-radius:17px;gap:0}body.cabinet #project-grid .card-heading{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.15fr);gap:12px;padding-bottom:11px}body.cabinet #project-grid .thumb{width:100%;height:auto;min-width:0;flex:none;aspect-ratio:1;border-radius:11px}body.cabinet #project-grid h3{font-size:20px;line-height:1.05;margin-bottom:6px}body.cabinet #project-grid .brief{font-size:16px;line-height:1.22}body.cabinet #project-grid .technical{font-size:14px;line-height:1.23}body.cabinet #project-grid .card-copy{gap:8px}body.cabinet #project-grid .stack-token{padding:4px 6px;font-size:12px}body.cabinet #project-grid .project-signals{gap:6px;align-items:center;padding:9px 0}body.cabinet #project-grid .project-signals>.development-tools{font-size:12px}body.cabinet #project-grid .card-metrics{font-size:13px;gap:14px}body.cabinet .collection-depth>summary{padding:16px 13px;grid-template-columns:23px 1fr 18px;gap:4px 9px}body.cabinet .collection-depth>summary small{max-width:none;font-size:13px}}@media(max-width:360px){body.cabinet{padding:6px}.cabinet .page-root{padding:0 10px!important}body.cabinet .brand{font-size:22px}body.cabinet .theme-swatches button{width:30px;min-width:30px}body.cabinet h1{font-size:32px}body.cabinet #project-grid .card-heading{grid-template-columns:86px minmax(0,1fr);gap:10px}body.cabinet #project-grid h3{font-size:19px}body.cabinet .hero-stage{padding:10px}body.cabinet #project-sort{max-width:190px}}body.playful.cabinet .topbar>.cv-link{background:linear-gradient(145deg,#098166,#075444);color:#fff;border-color:#116c55;box-shadow:inset 0 1px 1px #ffffff35,0 3px 7px #0b583329}body.playful.cabinet .theme-swatches button{width:40px;min-width:40px;min-height:44px;padding:0;border:0;box-shadow:none;background:none;border-radius:50%}body.playful.cabinet .sort-segments button{min-height:38px;border:0;border-radius:11px;box-shadow:none;background:none;padding:8px 14px;white-space:nowrap;font-size:14px}body.playful.cabinet .sort-segments [aria-pressed=true]{color:#fff;background:linear-gradient(155deg,#0b8064,#06604f);box-shadow:inset 0 1px #ffffff40,0 2px 4px #006b4930}body.playful.cabinet .sort-segments [aria-disabled=true]{color:#75908c;cursor:help}body.playful.cabinet .metrics-help{border:0;background:none;box-shadow:none;color:var(--muted);padding:7px 4px}@media(max-width:650px){body.cabinet .shader-wrap{height:155px;min-height:155px}body.cabinet #shader{height:100%;min-height:0}body.cabinet #pause-shader,body.cabinet #reset-shader{min-height:44px;min-width:44px;bottom:88px}body.cabinet #reset-shader{right:46px}}body.cabinet{--ink:#153530;--muted:#5b706b;--paper:#f8faf9;--graph-line:#17695c06;--graph-major:#17695c0b;background-color:#f2f6f4;padding:16px 24px 32px}body.cabinet .page-root{max-width:1440px;background:#fff;border:1px solid #dfe8e3;border-radius:18px;box-shadow:0 4px 24px #183f2f06;padding:0 28px}body.cabinet .topbar{padding:20px 4px;gap:28px;min-height:80px}body.cabinet .brand{font-size:25px;letter-spacing:-.7px}body.cabinet .topbar nav a{font-size:15px;color:#48625a}body.cabinet .hero{background:#fff;border:0;box-shadow:none;border-radius:0}body.cabinet .hero-stage{background:none;border-radius:0;padding:12px 0 28px;gap:28px}body.cabinet .hero-copy{padding:12px 12px 12px 4px}body.cabinet .hero-copy>.eyebrow{display:block;color:var(--accent-deep);font:600 13px/1.4 Plex,sans-serif;letter-spacing:.065em;text-transform:uppercase;margin:0 0 16px}body.cabinet h1{font-size:clamp(38px,4.4vw,62px);line-height:1.02;letter-spacing:-2px;margin-bottom:18px}body.cabinet .hero-description{font-size:17px;line-height:1.5;color:#405b53}body.cabinet .learning-note{font-size:15px;line-height:1.4;color:#61766f;margin-top:18px}body.cabinet .learning-note:before{display:none}body.cabinet .shader-wrap{border-radius:15px;box-shadow:inset 0 1px 1px #ffffff20,0 3px 12px #123e2c0d}body.cabinet #projects{border-top:1px solid #dfe7e3;padding-top:28px}body.cabinet #shelf-title{font-size:29px!important;letter-spacing:-.8px}body.cabinet .shelf-head{margin-bottom:16px;gap:18px}body.cabinet .search{border-radius:10px;background:#fff;box-shadow:none;border-color:#cad9d1}body.playful.cabinet :is(.cv-link,.explore-link,button):where(:not(.project-card):not(.stat-cell):not([data-theme-set]):not(#goo-pump):not(#pause-shader):not(#reset-shader)){border-radius:10px;background:#fff;border-color:#cfddd5;box-shadow:inset 0 1px #fff,0 2px 3px #123e2c09;color:var(--ink)}body.playful.cabinet :is(.topbar>.cv-link,#kind-filters [aria-pressed=true],.sort-segments [aria-pressed=true],.dialog-done){background:var(--accent-deep);border-color:var(--accent-deep);color:#fff;box-shadow:inset 0 1px #ffffff14,0 2px 4px #0e3e2a14}body.playful.cabinet #kind-filters .facet-button{border-radius:10px;min-height:44px;box-shadow:none}body.cabinet .theme-swatches button,body.cabinet .theme-swatches span{box-shadow:none}body.cabinet .motion-control{border-radius:10px;background:#fff;box-shadow:none}body.cabinet .priority-control,body.cabinet .sort-segments{border-radius:10px;box-shadow:none;background:#fff}body.cabinet .priority-icons i{box-shadow:none;width:25px;height:25px;font-size:18px}body.playful.cabinet .sort-segments button{border:0;box-shadow:none}body.playful.cabinet .sort-segments button[aria-disabled=true]{display:none}body.playful.cabinet button.metrics-help{border:0;box-shadow:none;background:none;color:var(--muted)}body.cabinet #project-grid,body.cabinet #project-grid.overview{gap:18px}body.cabinet #project-grid .project-card{padding:16px 16px 0;border:1px solid #dce6e0;border-radius:14px;background:#fff;box-shadow:0 2px 7px #183f2f08}body.cabinet #project-grid .card-heading{grid-template-columns:112px minmax(0,1fr);gap:16px;padding-bottom:16px}body.cabinet #project-grid .thumb{border-radius:10px;box-shadow:inset 0 0 0 1px #123e3017,0 3px 6px #163c2c0a}body.cabinet #project-grid h3{font-size:19px;line-height:1.17;letter-spacing:-.4px;margin-bottom:8px}body.cabinet #project-grid .brief{font-size:16px;line-height:1.38;color:#28453b}body.cabinet #project-grid .technical{font-size:14px;line-height:1.4;color:#60756c}body.cabinet #project-grid .brief .concept{color:var(--ink);font-weight:600}body.cabinet #project-grid .technical .concept{color:#365f60;font-weight:600}body.cabinet #project-grid .stack-token{border-radius:5px;background:#f1f5f3;color:#446359;padding:4px 6px}body.cabinet #project-grid .project-signals,body.cabinet #project-grid .card-metrics{border-color:#e6ede8;padding-block:11px}body.cabinet #project-grid .project-signals .model-chip{border-radius:6px}body.cabinet .filter-drawer,body.cabinet .collection-depth{border-radius:12px;border-color:#dbe5de;background:#fbfdfc;box-shadow:none}body.cabinet .experience-grid article{border-radius:12px;box-shadow:none;background:#fff}body.cabinet .footer{border-top:1px solid #e1e9e3;background:#fff;color:#526c60}@media(hover:hover){body.cabinet[data-motion=on] #project-grid .project-card:hover{transform:translateY(-2px);border-color:#97b4a5;box-shadow:0 7px 18px #163c2c10}}html.dialog-open{overflow:hidden;scrollbar-gutter:stable}body.playful.cabinet dialog{padding:0;width:calc(100% - 32px);max-width:760px;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);border:1px solid #c4d4cb;border-radius:16px;background:#fff;box-shadow:0 28px 100px #072a284d;overflow:hidden;color:var(--ink)}body.playful.cabinet dialog[open]{display:flex;flex-direction:column}body.playful.cabinet dialog:not([open]){display:none}body.playful.cabinet dialog::backdrop{background:#142e2c85;backdrop-filter:blur(3px)}.dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid #e0e9e3;background:#fbfdfc;flex:none;position:relative;z-index:3}.dialog-label{font:600 14px/1.4 Plex,sans-serif;color:#49665a}body.playful.cabinet dialog .close{position:static;margin:0;min-width:102px;min-height:48px;padding:10px 15px;gap:8px;color:#173e31;border:1px solid #a8c0b2;background:#fff;box-shadow:0 2px 4px #123e2c0a;flex-shrink:0;font-size:16px}dialog .close>span{font:24px/1 sans-serif}.dialog-content{min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:24px 28px;scrollbar-gutter:stable;flex:1 1 auto}.dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;position:relative;z-index:3;padding:12px 18px;border-top:1px solid #e0e9e3;background:#fbfdfc}.dialog-dismiss-hint{font:13px/1.4 Plex,sans-serif;color:#61766b}body.playful.cabinet .dialog-done{min-width:108px;min-height:48px;padding:10px 20px;font-size:16px}body.playful.cabinet :is(#project-detail,#usage-detail,#customize-dialog,#metric-detail) .dialog-toolbar>.close{min-width:102px;min-height:48px}body.playful.cabinet :is(#project-detail,#usage-detail,#customize-dialog,#metric-detail) .dialog-footer>.dialog-done{min-width:108px;min-height:48px}body.cabinet dialog .detail-summary{font:500 22px/1.4 Space,sans-serif;letter-spacing:-.5px}body.cabinet dialog .detail-technical{font-size:16px;line-height:1.55}body.cabinet dialog .detail-subheading{font:600 14px/1.4 Plex,sans-serif;letter-spacing:.025em;color:#456958}body.cabinet dialog .detail-heading{align-items:flex-start;gap:18px}body.cabinet dialog .detail-heading h2{font-size:28px;line-height:1.15}body.cabinet dialog .library-list span{font-size:14px;border-radius:6px;background:#f4f7f5;border-color:#e0e8e2}body.cabinet dialog .detail-actions{gap:10px}body.cabinet dialog .detail-actions a{min-height:44px;display:inline-flex;align-items:center;padding:10px 14px;border-radius:9px;background:var(--accent-deep);color:#fff}body.cabinet dialog .preference-note{max-width:55ch;color:#556f60}body.cabinet :is(button,a,input,select,summary):focus-visible{outline:3px solid #288aa3;outline-offset:3px}body.cv-page{background-color:#f7faf8;--graph-line:#17695c05;--graph-major:#17695c08}body.cv-page .header{background:#fff;color:var(--ink);border-bottom:1px solid #dbe5dd}body.cv-page .header :is(.brand,nav a){color:var(--ink)}body.cv-page .resume{background:#fff;border:1px solid #e1e9e2;border-radius:12px;box-shadow:none}body.cv-page .job{border-color:#e1e9e2}body.cv-page .button{border-radius:9px;box-shadow:0 2px 4px #163c2c12}@media(max-width:1100px){body.cabinet #project-grid .card-heading{grid-template-columns:104px minmax(0,1fr);gap:13px}}@media(max-width:650px){body.cabinet{padding:6px 8px 20px}body.cabinet .page-root{padding:0 14px;border-radius:12px}body.cabinet .topbar{padding:14px 0;gap:10px}body.cabinet .brand{font-size:23px}body.cabinet .hero-stage{padding:14px 0 22px;gap:18px}body.cabinet .hero-copy{padding:0}body.cabinet .hero-copy>.eyebrow{font-size:12px;margin-bottom:12px}body.cabinet h1{font-size:38px;letter-spacing:-1.4px;margin-bottom:14px}body.cabinet .hero-description{font-size:16px;line-height:1.45}body.cabinet .learning-note{margin-top:12px}body.cabinet #projects{padding-top:22px}body.cabinet #project-grid .project-card{padding:14px 14px 0;border-radius:12px}body.cabinet #project-grid .card-heading{grid-template-columns:96px minmax(0,1fr);gap:13px}body.cabinet #project-grid .brief{line-height:1.35}body.cabinet #project-grid .project-signals{align-items:flex-start}body.playful.cabinet dialog{width:calc(100% - 20px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);border-radius:14px}.dialog-toolbar,.dialog-footer{padding:10px 12px}.dialog-content{padding:20px 18px}.dialog-dismiss-hint{max-width:140px;font-size:13px}body.cabinet dialog .detail-heading{flex-wrap:wrap;gap:14px}body.cabinet dialog .detail-heading h2{font-size:25px;overflow-wrap:anywhere}body.cabinet dialog .detail-summary{font-size:20px}body.cabinet dialog .detail-actions{align-items:stretch}body.cabinet dialog .detail-actions :is(button,a){flex:1 1 140px;justify-content:center;text-align:center;margin:0}}@media(max-width:360px){body.cabinet #project-grid .card-heading{grid-template-columns:80px minmax(0,1fr);gap:11px}body.cabinet #project-grid h3{font-size:18px}body.cabinet h1{font-size:34px}}body.cabinet .shader-wrap.paint-home{height:auto!important;min-height:0!important;overflow:visible;background:none;border:0;box-shadow:none;border-radius:16px;align-self:center}body.cabinet .paint-studio{background:#101023;border:1px solid #312b46;border-radius:16px;overflow:hidden;color:#eeeaf8;box-shadow:0 10px 30px #20133616}.paint-stage{position:relative;background:#0b1010;aspect-ratio:4/5;overflow:hidden;isolation:isolate}.portrait-loading{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.paint-studio:not([data-ready=true]) #shader{visibility:hidden}.paint-studio[data-ready=true] .portrait-loading{display:none}body.cabinet #shader{display:block;position:static;inset:auto;width:100%;height:100%;opacity:1;touch-action:none;cursor:grab;outline-offset:-4px;border-radius:0;filter:none;transform:none}body.cabinet #shader:active{cursor:grabbing}.paint-stage .paint-caption{position:absolute;top:14px;left:16px;pointer-events:none;color:#f3edff;font:500 13px/1.3 Plex,sans-serif;letter-spacing:.055em;text-transform:uppercase;text-shadow:0 1px 8px #090b22}.paint-stage .paint-invitation{position:absolute;bottom:14px;left:16px;pointer-events:none;font:14px/1.3 Plex,sans-serif;color:#eee8ff;background:#090d1a91;padding:7px 10px;border-radius:7px;transition:opacity .25s}.paint-studio[data-painted=true] .paint-invitation{opacity:0}.paint-controls{padding:10px 12px;background:#131323;display:grid;gap:9px}.paint-materials{display:flex;gap:6px;align-items:center}body.playful.cabinet .paint-studio button{min-height:44px;min-width:44px;border-radius:9px;background:#222237;color:#d5d0e8;border:1px solid #3b3652;box-shadow:inset 0 1px #ffffff0a;font:500 14px/1.2 Plex,sans-serif;padding:8px 10px;touch-action:manipulation;letter-spacing:0}body.playful.cabinet .paint-studio button[aria-pressed=true]{background:#ece5ff;color:#382957;border-color:#fff;box-shadow:0 1px 7px #bea6f02b}body.playful.cabinet .paint-studio button:disabled{opacity:.38;cursor:default}.paint-materials button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px}.paint-swatch{width:18px;height:18px;flex:none;border:1px solid #ffffff3a;border-radius:50%;background:radial-gradient(circle at 30% 24%,#efd9ff,#9653bd 28%,#392057 70%,#100c23);box-shadow:inset 0 1px 3px #fff7,0 2px 4px #0006}.paint-swatch.satin{background:conic-gradient(from 30deg,#183d43,#8cafd0,#76508e,#59a296,#183d43)}.paint-swatch.silver{background:linear-gradient(125deg,#222e43,#eff3fc 35%,#617d8e 51%,#c9d5e1 75%,#263343)}.paint-swatch.stars{background:radial-gradient(circle at 30% 35%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 66% 65%,#dad4ff 0 .8px,transparent 1.6px),#141632}.paint-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.paint-tools .paint-size{display:flex;align-items:center;gap:7px;flex:1;min-width:108px;font:14px/1 Plex,sans-serif;color:#bab4cc}.paint-size input{width:100%;min-width:50px;max-width:130px;accent-color:#b8a3e2;height:32px;cursor:pointer}.paint-actions{display:flex;align-items:center;gap:6px}body.playful.cabinet .paint-studio .paint-expand{margin-left:auto;color:#eee6ff;background:#302746}.paint-detail-tools{display:none;padding-top:3px;border-top:1px solid #353044}.paint-inline-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#111825;padding:3px 9px 3px 13px}.paint-inline-hint{font:14px/1.2 Plex,sans-serif;color:#eeeaf4}.portrait-hint-short{display:none}.paint-inline-hint small{font-size:12px;color:#a5afbd;margin-left:8px}body.playful.cabinet .paint-inline-bar button{border:0;background:transparent;box-shadow:none;color:#d8e0e9;font-size:14px}.paint-home .paint-controls,.paint-home .paint-caption,.paint-home .paint-invitation{display:none}.paint-home .paint-stage{height:auto;aspect-ratio:4/5;max-height:none}#paint-dialog .paint-inline-bar{display:none}.paint-note{color:#aaa5bf;font:13px/1.35 Plex,sans-serif;margin:3px 0 0}.paint-photo-input{display:none}body.playful.cabinet #paint-dialog{max-width:1120px;width:calc(100% - 24px);background:#111020;border-color:#4a3b60}#paint-dialog .dialog-content{padding:0;scrollbar-gutter:auto;background:#101023;min-height:0}#paint-dialog .paint-studio{border:0;border-radius:0;box-shadow:none}#paint-dialog .paint-stage{max-height:calc(100dvh - 340px);min-height:220px;width:100%;aspect-ratio:4/3}#paint-dialog #shader{object-fit:contain;background:#090d1a}#paint-dialog .paint-caption{display:none}#paint-dialog .paint-controls{padding:12px 18px}#paint-dialog .paint-detail-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}#paint-dialog .paint-expand{display:none}#paint-dialog .dialog-label{font-size:16px}#paint-dialog .dialog-toolbar,#paint-dialog .dialog-footer{padding:8px 14px}body.playful.cabinet #paint-dialog .dialog-toolbar>.close,body.playful.cabinet #paint-dialog .dialog-footer>.dialog-done{min-height:48px;min-width:102px}.paint-status{margin:0;font:13px/1.4 Plex,sans-serif;color:#c1b8d7;flex:1;min-width:150px}@media(min-width:651px){body.cabinet .hero-stage{grid-template-columns:1fr minmax(200px,280px)}body.cabinet .hero-copy{align-self:center}body.cabinet #shader{min-height:0}}@media(max-width:650px){body.cabinet .paint-studio{border-radius:13px}.paint-controls{padding:8px;gap:7px}.paint-materials{gap:4px}body.cabinet .hero-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(125px,38%);gap:14px}body.cabinet .hero-copy{grid-column:1;grid-row:1}body.cabinet .shader-wrap.paint-home{grid-column:2;grid-row:1;width:100%;min-width:0;flex-basis:auto}.paint-home .paint-stage{height:auto}.paint-inline-hint small,.paint-home .portrait-hint-full,.paint-home .portrait-expand-label{display:none}.paint-home .portrait-hint-short{display:inline}.paint-home .paint-inline-hint{font-size:13px;white-space:nowrap}.paint-home .paint-inline-bar{gap:0;padding:0 4px 0 8px}body.cabinet .hero-copy h1{font-size:clamp(27px,6.9vw,36px)}body.playful.cabinet .paint-materials button{padding:7px 4px;font-size:13px;gap:4px}.paint-swatch{width:16px;height:16px}.paint-size>span{display:none}.paint-tools .paint-size{min-width:70px}.paint-tools{gap:5px}body.playful.cabinet .paint-tools button{padding:8px;font-size:14px}#paint-dialog .paint-controls{padding:9px}#paint-dialog .paint-stage{max-height:calc(100dvh - 345px);min-height:180px}.paint-stage .paint-caption{font-size:12px;top:10px;left:12px}}@media(prefers-reduced-motion:reduce){.paint-invitation{transition:none}}@media(max-width:360px){body.cabinet .hero-stage{grid-template-columns:minmax(0,1fr) 115px;gap:10px}body.cabinet .hero-copy h1{font-size:25px}}.soft-tap-check{display:grid;gap:16px;max-width:500px;margin:12px auto 28px;padding:20px;border:2px solid var(--accent-deep);border-radius:18px;background:#fff;color:var(--ink);font:16px/1.4 Plex,sans-serif}.soft-tap-check output{display:block;min-height:3em;font-size:14px;overflow-wrap:anywhere}body.playful .soft-tap-check #soft-tap-test{min-height:64px;border-radius:20px;color:var(--ink);background:linear-gradient(#fff,#d9eee6);box-shadow:inset 0 2px #fff,0 calc(4px - var(--soft-sink,0px)) 0 #adcdbf,0 8px 15px #123b2b16}body :is(button,.cv-link,.explore-link,summary,[data-foam-option]){touch-action:manipulation;-webkit-tap-highlight-color:transparent}body [data-marshmallow]{position:relative!important;isolation:isolate;overflow:visible!important;background:transparent!important;border-color:transparent!important;box-shadow:none!important;transform:none!important;filter:var(--foam-warp)!important}body [data-marshmallow]:after{display:none!important}.marshmallow-surface{position:absolute!important;left:-1px;top:-1px;width:calc(100% + 2px)!important;height:calc(100% + 2px)!important;overflow:visible;z-index:-1;pointer-events:none;max-width:none!important;max-height:none!important}.marshmallow-defs{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}.marshmallow-side{fill:var(--soft-edge,color-mix(in srgb,var(--foam-rest-face,#aac9be) 82%,#062b30));stroke:var(--soft-edge,color-mix(in srgb,var(--foam-rest-face,#aac9be) 82%,#062b30));stroke-width:1}.marshmallow-face{fill:var(--soft-face,var(--foam-rest-face,#e8f3ee));stroke:color-mix(in srgb,var(--soft-edge,var(--foam-rest-face,#aac9be)) 70%,white);stroke-width:1}body :is(button,.cv-link,.explore-link)[aria-pressed=true],body :is(.cv-link,.dialog-done),body button[aria-expanded=true]{--soft-face:var(--accent-deep,#15584f)}body [data-soft]{transition:none!important}body.playful.cabinet :is(#projects,.topbar,dialog) :is(button,.cv-link,.explore-link):where(:not(.project-card):not(.stat-cell):not(.metrics-help):not([data-theme-set])){--soft-edge:color-mix(in srgb,var(--accent-deep) 24%,#dbe7e1);--soft-face:color-mix(in srgb,var(--accent) 8%,#f0f6f3);min-height:44px;border:1px solid color-mix(in srgb,var(--accent-deep) 20%,#e1eae5);border-radius:16px;background:linear-gradient(165deg,#fff 8%,color-mix(in srgb,var(--accent) 9%,#f1f6f3));color:var(--ink);box-shadow:inset 0 2px 1px #ffffffd9,0 calc(3px - var(--soft-sink,0px)) 0 var(--soft-edge),0 5px 9px #153d3110;transition:background-color .16s,border-color .16s,box-shadow .16s}body.playful.cabinet :is(#projects,.topbar,dialog) :is(button[aria-pressed=true],button[aria-expanded=true],.cv-link,.dialog-done):where(:not(.project-card):not(.stat-cell):not([data-theme-set])){--soft-edge:color-mix(in srgb,var(--accent-deep) 78%,#061e1b);--soft-face:var(--accent-deep);background:linear-gradient(160deg,color-mix(in srgb,var(--accent-deep) 85%,#fff),var(--accent-deep));color:#fff;border-color:var(--accent-deep);box-shadow:inset 0 2px 1px #ffffff40,inset 0 0 0 1px #ffffff18,0 calc(3px - var(--soft-sink,0px)) 0 var(--soft-edge),0 5px 10px #12382b1c}body.playful.cabinet :is(#projects,dialog) button[aria-pressed=true] :is(b,span){color:inherit}body.playful.cabinet :is(#projects,dialog) button[aria-pressed=true] b{opacity:1;background:#ffffff1c;border-radius:6px}body.playful.cabinet :is(#projects,.topbar,dialog) :is(button,.cv-link,.explore-link):focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 75%,#fff);outline-offset:5px}@media(hover:hover){body.playful.cabinet :is(#projects,.topbar,dialog) button:where(:not(.project-card):not(.stat-cell):not(.metrics-help):not([data-theme-set])):hover{border-color:var(--accent-deep)}}body.cv-page :is(.button,.portfolio-note a,.contact-link){position:relative;border-radius:14px;touch-action:manipulation;box-shadow:inset 0 2px #fff6,0 3px #103d3930,0 5px 9px #103d3912}body.cv-page .button{--soft-face:var(--accent-deep,#15584f);--soft-edge:color-mix(in srgb,var(--soft-face) 80%,#061e1b);min-height:44px;background-color:var(--soft-face);color:#fff;border-color:var(--soft-edge)}body.cv-page .button:is(:hover,:active){--soft-face:color-mix(in srgb,var(--accent-deep,#15584f) 88%,#061e1b);background-color:var(--soft-face);color:#fff}body.cv-page .button:focus-visible{outline:3px solid var(--accent-deep,#15584f);outline-offset:4px}body.cv-page :is(.portfolio-note a,.contact-link){--soft-face:#edf4ef;--soft-edge:#b9cec1;color:var(--accent-deep,#15584f)}.cv-motion{display:inline-flex;align-items:center;font:14px/1.2 Plex,sans-serif}.cv-motion select{font:inherit;color:var(--ink);border:1px solid #b9d4c7;border-radius:12px;background:#f3faf6;min-height:44px;padding:8px;max-width:145px}@media(max-width:650px){body.cabinet .top-preferences{grid-column:1/-1;grid-row:2;justify-content:space-between;gap:8px}body.cabinet .motion-control{display:flex}body.cabinet .motion-control select{font-size:16px;min-width:140px;min-height:44px}body.cabinet .topbar>.cv-link{grid-column:2;grid-row:1;width:auto;min-width:88px;padding:10px}body.cv-page .header{flex-wrap:wrap}}@media print{.cv-motion{display:none}}@media(pointer:coarse),(max-width:650px){body.playful.cabinet :is(#kind-filters .facet-button,.theme-swatches button,.shader-controls button,.metrics-help,.close){min-height:44px;min-width:44px}body.playful.cabinet .theme-swatches button{width:44px}body.cabinet .top-preferences{flex-wrap:wrap;row-gap:8px}body.cabinet .motion-control>span{display:none}body.cabinet .motion-control select{width:140px;min-width:140px;padding:10px 25px 10px 10px}body.cabinet #pause-shader{right:0}body.cabinet #reset-shader{right:50px}}html{scrollbar-gutter:stable}body.cabinet #project-grid .project-card{animation:none!important}body.cabinet .paint-stage{aspect-ratio:4/5}body.cabinet .paint-stage>canvas,body.cabinet .paint-stage>.portrait-loading{position:absolute;inset:0;width:100%;height:100%}body.cabinet .portrait-loading{object-fit:contain}body.cabinet #project-grid .thumb{aspect-ratio:1;flex:none}body.cabinet #project-grid .thumb img{width:100%;height:100%;object-fit:cover;display:block}body.cabinet dialog .detail-heading .thumb{overflow:hidden}body.cabinet dialog .detail-heading .thumb img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}body.cabinet dialog .detail-heading>div{flex:1;min-width:0}body[data-experience=off] #experience,body[data-matrix=off] #capability-map,body[data-metrics=off] #measurements,body[data-tokens=off] .stats-strip{display:none}body[data-code=off] [data-card-metric=code],body[data-code=off] [data-card-metric=files],body[data-commits=off] [data-card-metric=commits],body:not([data-commits=off]) [data-card-metric=files][data-commits-known=true],body[data-code=off][data-commits=off] .card-metrics{display:none}body.cabinet #more-filters{margin:0 0 12px;min-height:44px}@media(min-width:651px){body.cabinet #more-filters{width:auto;min-width:150px}}@media(max-width:650px){body.cabinet #more-filters{width:100%;display:block}}.ribbon-rest{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.ribbon-wrap:has(#header-ribbon[data-renderer=ready])>.ribbon-rest{display:none}body.cabinet .ribbon-wrap{contain:layout paint}body.cabinet #header-ribbon{touch-action:none}body.cabinet{padding:10px 18px 24px;--graph-line:#17695c05;--graph-major:#17695c09}body.cabinet .page-root{max-width:1400px;padding:0 24px;background:#fbfcfa;border:1px solid #dde7e1;border-radius:16px;box-shadow:0 5px 24px #123a2e08}body.cabinet .topbar{height:auto;min-height:60px;margin:0 -24px;padding:8px 24px;gap:24px;border:0;border-radius:15px 15px 0 0;background:linear-gradient(120deg,var(--accent-deep),var(--night));color:#f5fbf8}body.cabinet .brand{font-size:24px;color:#fff;letter-spacing:-.8px}body.cabinet .topbar nav{margin-left:12px;gap:24px}body.cabinet .topbar nav a{color:#e6f3ed;font-size:14px}body.cabinet .top-preferences{margin-left:auto;gap:10px}body.cabinet .theme-swatches{gap:2px}body.cabinet .theme-swatches button{height:36px;min-width:30px;width:30px;background:none;border:1px solid transparent;box-shadow:none}body.cabinet .theme-swatches button[aria-pressed=true]{border-color:#e1f5ee85}body.cabinet .theme-swatches span{width:13px;height:13px;border:1px solid #ffffff70}body.cabinet .motion-control{background:none;border:0;padding:0;color:#e7f4ef}body.cabinet .motion-control>span{display:none}body.cabinet .motion-control select{min-width:100px;width:100px;min-height:36px;padding:5px 18px 5px 8px;background:#ffffff12;border:1px solid #ffffff30;color:#f2faf7;border-radius:9px;font-size:13px}body.cabinet .motion-control option{background:#fff;color:#153c36}body.playful.cabinet .topbar .cv-link{--soft-face:#f1f7f3;--soft-edge:#9bbcaf;min-height:40px;border-radius:11px;background:linear-gradient(#fff,#e5f1ea);border-color:#d7e8de;color:#174c40;padding:8px 15px;font-size:14px;box-shadow:inset 0 1px #fff,0 2px #8aac9d}body.cabinet .hero{background:transparent}body.cabinet .hero-stage{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:40px;height:auto;min-height:0;padding:20px 4px 18px;align-items:center}body.cabinet .hero-copy{grid-column:1;grid-row:1;padding:0;max-width:740px}body.cabinet .hero-copy>.eyebrow{font:600 11px/1.3 Plex,sans-serif;letter-spacing:.16em;color:var(--accent-deep);margin:0 0 9px}body.cabinet .hero-copy h1{font:700 clamp(32px,3.5vw,48px)/1.05 Space,sans-serif;letter-spacing:-1.9px;color:#102e2b;margin:0 0 12px}body.cabinet .hero h1 span{color:var(--accent-deep)}body.cabinet .hero-description{font:400 17px/1.4 Plex,sans-serif;max-width:62ch;color:#47645e;letter-spacing:0;margin:0 0 8px}.career-line{font:14px/1.4 Plex,sans-serif;color:#537068;margin:0 0 12px}.career-line strong{font-weight:600}.expertise-tags{display:flex;flex-wrap:wrap;gap:5px}.expertise-tags span{background:color-mix(in srgb,var(--accent) 7%,#f3f7f4);border:1px solid #dfe8e2;border-radius:7px;padding:4px 8px;color:var(--accent-deep);font:12px/1.2 Plex,sans-serif}body.cabinet .shader-wrap.paint-home{grid-column:2;grid-row:1;width:180px;align-self:center;mask-image:none;position:relative;inset:auto}body.cabinet .paint-studio{border:1px solid #16423630;border-radius:12px;background:#101b18;box-shadow:0 5px 14px #153d2d19}body.cabinet .paint-inline-bar{padding:1px 7px;gap:5px;background:#f4f8f5;min-height:30px}body.cabinet .paint-inline-hint{font-size:11px;color:#45665b;white-space:nowrap}body.cabinet .paint-inline-hint .portrait-hint-full{display:none}.portrait-hint-short{display:inline}body.playful.cabinet .paint-inline-bar #paint-expand{min-height:30px;min-width:30px;padding:2px 4px;color:var(--accent-deep);background:transparent;border:0;box-shadow:none;font-size:18px}.portrait-expand-label,.paint-stage .paint-invitation{display:none}body.cabinet .paint-stage{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.credibility-strip{display:flex;align-items:center;gap:24px;min-height:46px;padding:9px 4px;border-top:1px solid #dbe5de;border-bottom:1px solid #dbe5de;font:14px/1.3 Plex,sans-serif;color:#567068}.credibility-strip>span{display:flex;gap:6px;align-items:baseline}.credibility-strip strong{font:700 18px/1 Space,sans-serif;color:var(--accent-deep)}.credibility-strip>a{margin-left:auto;font-size:13px;text-decoration:none;color:var(--accent-deep)}body.cabinet #projects{padding:16px 0 0;border:0;background:none}body.cabinet #shelf-title{font-size:26px!important;letter-spacing:-.9px}body.cabinet #project-count{font-size:13px;white-space:nowrap}body.cabinet .shelf-head{min-height:0;margin-bottom:10px;gap:16px}body.cabinet .search{height:38px;min-height:38px;max-width:420px;border-radius:10px}body.cabinet .search input{font-size:14px}body.cabinet #kind-filters{gap:6px;margin:0 0 10px}body.playful.cabinet #kind-filters .facet-button{min-height:38px;min-width:75px;padding:7px 12px;font-size:13px;border-radius:11px}body.cabinet #more-filters{min-height:38px;min-width:100px;width:auto;padding:7px 12px;font-size:13px;margin:0 0 10px;border-radius:11px}body.cabinet .ranking-toolbar{padding:0;margin:0 0 12px;min-height:38px;gap:10px;align-items:center}body.cabinet .priority-control{min-height:36px;height:36px;padding:0 8px;gap:5px;border:1px solid #d2e0d7;border-radius:9px}body.cabinet .priority-control select{font-size:13px;min-height:34px;padding:4px 20px 4px 0}body.cabinet .priority-icons{gap:2px}.priority-icons i{width:19px!important;height:19px!important;font-size:14px!important}body.cabinet .sort-segments{padding:0;gap:3px;border:0;background:none}.sort-segments>span{font-size:12px}body.playful.cabinet .sort-segments button{min-height:34px;padding:6px 9px;font-size:12px;border-radius:9px}body.cabinet .sorting-controls{gap:7px}body.cabinet .metrics-help{min-width:32px;min-height:34px;padding:3px}.metrics-help>span{display:none}body.cabinet #project-grid,body.cabinet #project-grid.overview,body.cabinet #project-grid.has-spotlights{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}body.cabinet #project-grid .project-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:1fr auto auto;align-content:start;min-height:0;padding:11px 11px 0;border:1px solid #dfe7df;border-radius:13px;background:linear-gradient(145deg,#fff,#f8faf6);box-shadow:inset 0 1px #fff,0 2px #d4dfd566,0 4px 9px #1b3d2d0b;overflow:hidden}body.cabinet #project-grid .card-heading{display:grid;grid-template-columns:70px minmax(0,1fr);gap:10px;padding-bottom:9px;flex:none;align-items:start}body.cabinet #project-grid .thumb{width:70px;height:70px;aspect-ratio:1;border-radius:10px;border:1px solid #234b3320;box-shadow:inset 0 1px #fff8,0 2px 4px #244d3712}body.cabinet #project-grid .card-meta{margin:0 0 4px}body.cabinet #project-grid .kind-label{font:11px/1.2 Plex,sans-serif;gap:4px;margin:0}body.cabinet #project-grid .kind-mark{width:6px;height:6px}body.cabinet #project-grid h3{font:700 16px/1.15 Space,sans-serif;letter-spacing:-.5px;margin:0 0 6px;overflow-wrap:anywhere}body.cabinet #project-grid .card-copy{gap:5px}body.cabinet #project-grid .brief{font:14px/1.28 Plex,sans-serif;color:#3d5a4f;margin:0}body.cabinet #project-grid .technical{font:12px/1.3 Plex,sans-serif;color:#60746a;margin:0}body.cabinet #project-grid .stack{margin:2px 0 0;gap:3px}body.cabinet #project-grid .stack-token{font-size:10px;line-height:1.2;border-radius:4px;padding:3px 4px;background:#eaf0eb;color:#476357}body.cabinet #project-grid .project-signals{min-height:0;padding:7px 0 5px;margin:0;border-top:1px solid #e1e9e1;gap:4px;flex-direction:row;flex-wrap:wrap}body.cabinet #project-grid .project-signals .signal-label,body.cabinet #project-grid .development-tools{display:none}body.cabinet #project-grid .model-chip{font-size:11px;padding:2px 4px;gap:3px;border-radius:4px}body.cabinet #project-grid .card-metrics{min-height:0;gap:9px;font-size:11px;padding:5px 0 8px;border:0;margin:0}body.cabinet #project-grid .card-metrics i{font-size:13px}.card-metrics svg{width:13px;height:13px}body.cabinet #project-grid .project-card:hover{transform:none!important;box-shadow:inset 0 1px #fff,0 2px #cedecc,0 5px 12px #12382b16;border-color:#a8c1ae}body.cabinet .collection-depth{margin-top:18px;border-radius:11px}body.cabinet .experience{padding-top:22px}.experience .section-heading{margin-bottom:14px}body.cabinet .experience-grid{gap:10px}.experience-grid article{padding:14px!important}.experience-grid h3{font-size:17px!important}body.cabinet .footer{margin-top:20px;min-height:56px;padding:16px 0;background:transparent}@media(min-width:1000px){body.cabinet #projects{display:grid;grid-template-columns:minmax(0,1fr) auto 100px;gap:0 10px}body.cabinet #projects>.project-toolbar{grid-column:1/-1;grid-row:1}body.cabinet #kind-filters{grid-column:1;grid-row:2;align-self:center}body.cabinet #more-filters{grid-column:3;grid-row:2;align-self:center}body.cabinet .ranking-toolbar{grid-column:2;grid-row:2;margin-bottom:10px}body.cabinet .sorting-controls{display:none}body.cabinet #projects>:not(.project-toolbar):not(#kind-filters):not(#more-filters):not(#collection-filters):not(.ranking-toolbar){grid-column:1/-1}}@media(max-width:1190px)and (min-width:1000px){body.cabinet #project-grid .card-heading{grid-template-columns:60px minmax(0,1fr);gap:8px}body.cabinet #project-grid .thumb{width:60px;height:60px}body.cabinet #kind-filters .facet-button{min-width:0;padding-inline:8px}body.cabinet .priority-icons{display:none}}@media(max-width:999px){body.cabinet #project-grid,body.cabinet #project-grid.overview,body.cabinet #project-grid.has-spotlights{grid-template-columns:repeat(3,minmax(0,1fr))}body.cabinet .topbar{gap:12px}.topbar nav{gap:12px!important}body.cabinet .hero-stage{grid-template-columns:minmax(0,1fr) 165px;gap:22px}.shader-wrap.paint-home{max-width:165px}body.cabinet .hero-copy h1{font-size:37px}body.cabinet #projects{display:grid;grid-template-columns:1fr auto;gap:0 8px}body.cabinet #projects>.project-toolbar{grid-column:1/-1}body.cabinet #kind-filters{grid-column:1;grid-row:2}body.cabinet #more-filters{grid-column:2;grid-row:2}body.cabinet #projects>:not(.project-toolbar):not(#kind-filters):not(#more-filters):not(#collection-filters){grid-column:1/-1}}@media(max-width:760px){body.cabinet #project-grid,body.cabinet #project-grid.overview,body.cabinet #project-grid.has-spotlights{grid-template-columns:repeat(2,minmax(0,1fr))}body.cabinet .topbar nav{display:none}}@media(max-width:650px){body.cabinet{padding:6px 6px 20px}.page-root{overflow:visible}body.cabinet .page-root{padding:0 12px;border-radius:12px}body.cabinet .topbar{margin:0 -12px;padding:9px 12px;display:grid;grid-template-columns:1fr auto;gap:5px 10px;border-radius:11px 11px 0 0}body.cabinet .brand{font-size:22px}body.playful.cabinet .topbar .cv-link{grid-column:2;grid-row:1;min-height:38px;padding:7px 12px;font-size:13px}body.cabinet .top-preferences{grid-column:1/-1;grid-row:2;display:flex;justify-content:space-between;margin:0;gap:5px;flex-wrap:nowrap}body.cabinet .theme-swatches button{height:36px;min-height:36px;min-width:40px;width:40px}.theme-swatches{min-height:36px}body.cabinet .motion-control select{height:32px;min-height:32px;width:106px;min-width:106px;font-size:12px;padding-block:3px}body.cabinet .hero-stage{grid-template-columns:minmax(0,1fr) 126px;padding:16px 0 14px;gap:12px;align-items:start}body.cabinet .hero-copy h1{font-size:clamp(24px,6.4vw,31px);line-height:1.05;letter-spacing:-1.2px;margin-bottom:9px}body.cabinet .hero-copy>.eyebrow{font-size:10px;letter-spacing:.07em;line-height:1.4;margin-bottom:8px}body.cabinet .hero-description{font-size:14px;line-height:1.3;margin-bottom:7px}.career-line{font-size:12px;line-height:1.3;margin-bottom:0}.expertise-tags{display:none}body.cabinet .shader-wrap.paint-home{width:126px;max-width:none;align-self:start}body.cabinet .paint-inline-bar{padding:0 4px 0 7px;min-height:28px}.paint-inline-hint{font-size:10px!important}.credibility-strip{gap:14px;min-height:40px;padding:8px 0;font-size:12px;justify-content:space-between}.credibility-strip>span{gap:4px}.credibility-strip strong{font-size:15px}.credibility-strip>a{display:none}body.cabinet #projects{padding-top:14px}body.cabinet .shelf-head{gap:8px;margin-bottom:9px;display:grid;grid-template-columns:auto 1fr}body.cabinet .shelf-heading{min-width:0;gap:6px;flex-wrap:nowrap}body.cabinet #shelf-title{font-size:23px!important}body.cabinet #project-count{font-size:11px}body.cabinet .search{max-width:none;min-width:0;width:100%;height:38px;padding-inline:8px}.search svg{width:14px;height:14px;flex:none}body.cabinet .search input{font-size:16px;min-width:0;padding:8px 0}.search kbd{display:none}body.playful.cabinet #kind-filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:8px}body.playful.cabinet #kind-filters .facet-button{min-height:40px;min-width:0;padding:7px 5px;font-size:12px}body.cabinet #more-filters{min-width:66px;min-height:40px;margin-bottom:8px;padding:6px 8px;font-size:12px}body.cabinet .ranking-toolbar{display:flex;margin-bottom:11px;gap:7px;flex-direction:row;align-items:center}body.cabinet .priority-control{flex:1;width:auto;min-width:0;max-width:none}.priority-control select{min-width:0;width:100%}body.cabinet .sorting-controls{flex:none;width:auto}body.cabinet .sorting-controls .sort-mobile{display:none}.sorting-controls .metrics-help{min-width:34px;min-height:36px}body.cabinet #project-grid,body.cabinet #project-grid.overview,body.cabinet #project-grid.has-spotlights{grid-template-columns:1fr;gap:9px}body.cabinet #project-grid .project-card{padding:11px 11px 0;grid-template-columns:1fr auto;grid-template-rows:1fr auto}body.cabinet #project-grid .card-heading{grid-column:1/-1;grid-row:1;grid-template-columns:82px minmax(0,1fr);gap:12px;padding-bottom:9px}body.cabinet #project-grid .thumb{width:82px;height:82px}body.cabinet #project-grid h3{font-size:17px;margin-bottom:5px}body.cabinet #project-grid .brief{font-size:14px;line-height:1.25}.card-copy{gap:4px!important}body.cabinet #project-grid .technical{font-size:12px;line-height:1.25}body.cabinet #project-grid .stack-token{font-size:10px;padding:2px 4px}body.cabinet #project-grid .project-signals{grid-column:1;grid-row:2;padding:7px 0 8px;border-top:1px solid #e1e9e1}body.cabinet #project-grid .card-metrics{grid-column:2;grid-row:2;align-items:center;padding:7px 0 8px;border-top:1px solid #e1e9e1;font-size:10px;gap:7px}}@media(max-width:370px){body.cabinet .hero-stage{grid-template-columns:minmax(0,1fr) 112px;gap:9px}body.cabinet .shader-wrap.paint-home{width:112px}body.cabinet .hero-copy h1{font-size:23px}.credibility-strip{gap:8px;font-size:11px}.credibility-strip strong{font-size:14px}body.cabinet .shelf-head{grid-template-columns:1fr}.search{grid-column:1/-1}}body.cabinet #project-grid.index{grid-template-columns:1fr}body.cabinet #project-grid.index .project-card{grid-template-columns:1fr;grid-template-rows:auto;min-height:0}body.cabinet #project-grid.index .card-heading{grid-template-columns:48px minmax(0,1fr);padding-bottom:9px}body.cabinet #project-grid.index .thumb{position:static;width:48px;height:48px}body.cabinet #project-grid.index .project-signals,body.cabinet #project-grid.index .card-metrics{display:none}body.cabinet{--studio-green:#15584f;--studio-blue:#247c9b;--studio-forest:#42634c;--studio-paper:#fafbf6;background-color:#eaf1eb;background-image:radial-gradient(#497f7330 .65px,transparent .8px);background-size:12px 12px;padding:8px 14px 20px}body.cabinet .page-root{max-width:1440px;padding:0 20px;background:var(--studio-paper);border-color:#c6d8cc;border-radius:9px;box-shadow:0 2px 14px #174f3c08}body.cabinet .topbar{margin:0;min-height:48px;padding:6px 0;gap:22px;border-radius:0;border-bottom:1px dotted #94b1a1;background:none;color:var(--studio-green)}body.cabinet .brand{font:400 26px/1 Georgia,serif;letter-spacing:-1px;color:var(--studio-green)}body.cabinet .topbar nav{margin-left:auto;gap:20px}body.cabinet .topbar nav a{font-size:13px;color:var(--studio-forest)}body.playful.cabinet :is(#projects,.topbar,dialog) .cv-link{--soft-face:#e9f2ee;--soft-edge:#b7cdc2;min-height:32px;min-width:58px;padding:5px 10px;margin-left:0;border-radius:9px;font-size:13px;color:var(--studio-green);background:linear-gradient(#fff,#e9f2ee);border-color:#c1d4c8;box-shadow:inset 0 1px #fff,0 2px #b7cdc2}body.cabinet .hero-stage{grid-template-columns:132px minmax(0,1fr);gap:26px;padding:15px 0 13px;min-height:0;background:none}body.cabinet .hero-copy{grid-column:2;grid-row:1;max-width:none;padding:0;background:none}body.cabinet .hero-copy>.eyebrow{display:flex;align-items:center;gap:9px;color:var(--studio-forest);font-size:10px;letter-spacing:.14em;margin-bottom:9px}body.cabinet .hero-copy>.eyebrow:before{content:"";width:6px;height:6px;flex:none;border-radius:50%;background:var(--studio-blue);box-shadow:10px 0 #95b7a1;margin-right:10px}body.cabinet .hero-copy h1{font:400 clamp(35px,3.6vw,48px)/1.03 Georgia,serif;letter-spacing:-1.6px;margin:0 0 10px;color:var(--studio-green)}body.cabinet .hero-copy h1 span{font-style:italic;color:var(--studio-blue)}body.cabinet .hero-description{font-size:16px;line-height:1.35;color:#4b655b;margin:0;max-width:60ch}body.cabinet .shader-wrap.paint-home{grid-column:1;grid-row:1;width:132px;max-width:none;align-self:center;opacity:1}body.cabinet .paint-studio{border-radius:10px 18px 10px 10px;box-shadow:2px 3px #cfdfd0;border-color:#c1d2c6}body.cabinet .paint-inline-bar{min-height:26px;padding:0 6px;background:#eaf1e9}body.playful.cabinet .paint-inline-bar #paint-expand{min-height:26px;min-width:26px;font-size:16px}body.cabinet .credibility-strip{min-height:30px;padding:6px 0;gap:18px;border:0;border-block:1px dotted #9ab5a7;font-size:12px;justify-content:flex-start}body.cabinet .credibility-strip strong{font:600 14px/1 Plex,sans-serif;color:var(--studio-green)}body.cabinet .credibility-strip>span:nth-child(2),body.cabinet .credibility-strip>span:nth-child(2) strong{color:var(--studio-blue)}body.cabinet .collection-note{margin-left:auto;color:var(--studio-forest);font-style:italic}body.cabinet .atlas-layout,body.cabinet #projects{background:transparent}body.cabinet #projects{padding-top:12px;gap:0 8px}body.cabinet #shelf-title{font:400 25px/1.1 Georgia,serif!important;color:var(--studio-green);letter-spacing:-.6px}body.cabinet .shelf-head{padding:0;margin-bottom:8px}body.cabinet .search{height:34px;min-height:34px;max-width:350px;background:#f0f6f8;border:1px solid #c6dce4;border-radius:8px}body.cabinet #kind-filters{gap:5px;margin-bottom:9px}body.cabinet #collection-filters{display:flex;gap:6px;margin:0 0 9px;flex-wrap:wrap}body.playful.cabinet #projects .collection-filter{--soft-face:#ecf3ee;--soft-edge:#b4cfc1;min-height:32px;padding:5px 9px;display:inline-flex;gap:6px;align-items:center;border:1px solid #b5cfc1;border-radius:8px;background:linear-gradient(#fff,#ecf3ee);color:color-mix(in srgb,var(--collection-color) 85%,#123b31);font:600 12px/1.2 Plex,sans-serif;box-shadow:inset 0 1px #fff,0 2px 0 var(--soft-edge)}body.playful.cabinet #projects .collection-filter[aria-pressed=true]{--soft-face:var(--collection-color);--soft-edge:#154238;color:#fff;background:var(--collection-color);border-color:var(--collection-color)}body.cabinet .collection-filter b{font-weight:400;opacity:.8;font-variant-numeric:tabular-nums;min-width:1ch}body.cabinet .collection-glyph{font-size:16px;line-height:12px}body.cabinet .collection-order-note{font-size:13px;line-height:1.4;color:#4b655b;margin:-4px 0 14px}body.cabinet #project-grid .rendering-label{font:500 10px/1.2 Plex,sans-serif;color:#246881;padding-left:5px;border-left:1px dotted #87ada9;white-space:nowrap}body.cabinet #project-grid .card-meta{display:flex;flex-wrap:wrap;gap:4px;align-items:center}body.playful.cabinet #active-filters{padding:3px 0 7px;gap:8px;margin-bottom:6px;border-radius:0;background:transparent;font-size:12px}body.playful.cabinet #active-filters button{min-height:30px;padding:4px 8px;font-size:12px;border-radius:7px;white-space:nowrap}body.playful.cabinet #projects :is(#kind-filters .facet-button,#more-filters){min-height:32px;min-width:0;padding:5px 10px;border-radius:8px;font-size:12px;box-shadow:inset 0 1px #fff9,0 calc(2px - var(--soft-sink,0px)) 0 var(--soft-edge);margin-bottom:0}body.playful.cabinet #projects #more-filters{width:auto;min-width:90px;margin-bottom:9px;white-space:nowrap}body.playful.cabinet #kind-filters .facet-button:not([aria-pressed=true]){--soft-face:color-mix(in srgb,var(--kind) 10%,#f8faf5);--soft-edge:color-mix(in srgb,var(--kind) 24%,#dfe7dd);background:linear-gradient(#fff,var(--soft-face));border-color:var(--soft-edge);color:var(--kind)}body.playful.cabinet #kind-filters .facet-button[aria-pressed=true]{--soft-face:#15584f;--soft-edge:#103f37;background:linear-gradient(#287367,#15584f);border-color:#15584f;color:#fff}body.cabinet #advanced-filters .ranking-toolbar{grid-column:auto;display:flex;justify-content:flex-start;gap:10px;margin:0 0 14px}body.cabinet #advanced-filters .sorting-controls{display:flex;width:auto}.filter-drawer .sort-mobile,.filter-drawer .sort-segments{display:none!important}body.cabinet #project-grid,body.cabinet #project-grid.overview,body.cabinet #project-grid.has-spotlights{gap:9px}body.cabinet #project-grid .project-card{padding:10px 10px 0;border-radius:10px;border:1px solid color-mix(in srgb,var(--kind) 22%,#e2e9e1);border-top:2px solid color-mix(in srgb,var(--kind) 55%,#cadfd2);background:linear-gradient(150deg,#fff,color-mix(in srgb,var(--kind) 5%,#fafbf7));box-shadow:inset 0 1px #fff,0 2px #ceddce70}body.cabinet #project-grid .card-heading{grid-template-columns:62px minmax(0,1fr);grid-template-rows:17px minmax(37px,auto) auto;gap:5px 9px;padding-bottom:8px;align-content:start}body.cabinet #project-grid .card-identity{display:contents}body.cabinet #project-grid .thumb{grid-column:1;grid-row:1/3;width:62px;height:62px;border-radius:8px}body.cabinet #project-grid .card-meta{grid-column:2;grid-row:1;align-self:end;margin:0}body.cabinet #project-grid h3{grid-column:2;grid-row:2;font:600 17px/1.1 Plex,sans-serif;letter-spacing:-.2px;margin:0;align-self:start}body.cabinet #project-grid .card-copy{grid-column:1/-1;grid-row:3;gap:4px}body.cabinet #project-grid .brief{font-size:14px;line-height:1.25}body.cabinet #project-grid .technical{font-size:12px;line-height:1.25}body.cabinet #project-grid .stack-token{color:color-mix(in srgb,var(--kind) 70%,#213c34);background:color-mix(in srgb,var(--kind) 8%,#f3f7f1);padding:2px 4px}body.cabinet #project-grid .project-signals{padding:5px 0 4px;border-top:1px dotted #adc2b2;gap:4px}body.cabinet #project-grid .project-signals>.development-tools{display:none}body.cabinet #project-grid .project-signals .model-chip{font-size:11px;padding:2px 5px;border-radius:5px;gap:3px}body.cabinet #project-grid .card-metrics{padding:3px 0 7px;font-size:10px;gap:8px}body.cabinet .collection-depth{margin-top:14px;border:1px dotted #91afa2;background:#edf4ed}body.cabinet .collection-depth>summary{min-height:38px;padding:8px 12px;font-size:14px}body.cabinet .experience,body.cabinet .footer{background:transparent}body.cabinet .footer{border-top:1px dotted #a3bbad;margin-top:16px;padding:12px 0;min-height:44px;font-size:13px}@media(min-width:1000px){body.cabinet #projects{grid-template-columns:minmax(0,1fr) 100px}body.cabinet #more-filters{grid-column:2}}@media(max-width:650px){body.cabinet{padding:5px 6px 16px}body.cabinet .page-root{padding:0 11px}body.cabinet .topbar{display:flex;min-height:44px;margin:0;padding:5px 0;gap:12px}body.cabinet .brand{font-size:24px}body.playful.cabinet .topbar>.cv-link{margin-left:auto;min-width:52px;min-height:32px;padding:5px 9px}body.cabinet .hero-stage{grid-template-columns:96px minmax(0,1fr);gap:15px;padding:14px 0}body.cabinet .shader-wrap.paint-home{width:96px;align-self:start}body.cabinet .hero-copy>.eyebrow{font-size:9px;letter-spacing:.055em;gap:5px;margin-bottom:8px}body.cabinet .hero-copy>.eyebrow:before{width:4px;height:4px;box-shadow:none;margin:0}body.cabinet .hero-copy h1{font-size:29px;line-height:1.03;letter-spacing:-1px;margin-bottom:8px}body.cabinet .hero-description{font-size:13px;line-height:1.3}body.cabinet .paint-inline-bar{padding-inline:3px}.paint-inline-hint{font-size:9px!important}body.cabinet .credibility-strip{gap:14px;min-height:28px;font-size:11px;padding:5px 0}.collection-note{font-size:11px}body.cabinet .search{height:34px;min-height:34px}.search input{font-size:16px}body.cabinet #collection-filters{gap:5px;flex-wrap:nowrap}body.playful.cabinet #projects .collection-filter{min-height:36px;padding:5px 7px;font-size:12px;gap:5px}body.playful.cabinet #projects :is(#kind-filters .facet-button,#more-filters){min-height:34px;padding:5px 8px;font-size:12px}body.playful.cabinet #projects #more-filters{min-width:85px;margin-bottom:9px}body.cabinet #project-grid .card-heading{grid-template-columns:72px minmax(0,1fr);grid-template-rows:auto;gap:9px;padding-bottom:8px}body.cabinet #project-grid .card-identity{display:block;grid-column:2;grid-row:1}body.cabinet #project-grid .thumb{width:72px;height:72px;grid-row:1}body.cabinet #project-grid .card-meta{margin-bottom:4px}body.cabinet #project-grid h3{font-size:17px;margin-bottom:5px}body.cabinet #project-grid .project-signals,body.cabinet #project-grid .card-metrics{padding:6px 0 7px;border-top:1px dotted #adc2b2}body.cabinet #project-grid .card-metrics{gap:6px}}@media(max-width:370px){body.cabinet .hero-stage{grid-template-columns:84px minmax(0,1fr);gap:12px}body.cabinet .shader-wrap.paint-home{width:84px}body.cabinet .hero-copy h1{font-size:26px}body.cabinet .collection-note{display:none}}body.cabinet #project-grid.index .card-heading{grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto}body.cabinet #project-grid.index .card-identity{display:block;grid-column:2;grid-row:1}body.cabinet #project-grid.index .thumb{width:48px;height:48px;grid-row:1}body.cabinet[data-texture=off]{background-image:none}body.cabinet[data-density=roomy] #project-grid .project-card{padding:16px 16px 4px}body.cabinet[data-thumbnails=off] #project-grid .card-heading{grid-template-columns:1fr;grid-template-rows:auto}body.cabinet[data-thumbnails=off] #project-grid :is(.card-identity,.card-meta,h3,.card-copy){grid-column:1;grid-row:auto}.design-comparison{display:none}body[data-compare=on] .design-comparison{display:flex;align-items:center;gap:14px;max-width:1440px;margin:0 auto 9px;padding:8px 12px;border:1px solid #b9cdc3;border-radius:10px;background:#f9fcf8;color:#30574b;font:13px/1.3 Plex,sans-serif}.design-comparison p{margin:0 auto 0 0}.design-comparison p strong{font-weight:600}.design-comparison small{display:block;color:#5e766a;font-size:11px}.design-comparison .design-choices{display:flex;gap:4px;flex:none}body.cabinet .design-comparison .design-choices button{--soft-face:#edf4ef;--soft-edge:#b7cfc1;min-height:36px;padding:6px 11px;border:1px solid var(--soft-edge);border-radius:7px;background:var(--soft-face);color:#315e4c;font:600 13px Plex,sans-serif;cursor:pointer}body.cabinet .design-comparison .design-choices button[aria-pressed=true]{--soft-face:#17594f;--soft-edge:#103f37;background:var(--soft-face);color:#fff;border-color:var(--soft-edge)}.design-comparison a{color:#365d50;font-size:12px;text-underline-offset:3px}.design-choices button:focus-visible,.design-comparison a:focus-visible{outline:2px solid #247c9b;outline-offset:3px}body.cabinet #projects>#kind-filters{display:none}body.cabinet #advanced-filters .mobile-disciplines{display:block}body.cabinet #advanced-filters #mobile-kind-filters{display:flex;flex-wrap:wrap;gap:7px}body.cabinet #projects{grid-template-columns:minmax(0,1fr) auto}body.cabinet #projects>#collection-filters{grid-column:1;grid-row:2;margin-bottom:12px;align-items:center}body.cabinet #projects>#more-filters{grid-column:2;grid-row:2;margin-bottom:12px;align-self:center}body.cabinet .hero-description{max-width:58ch}body.cabinet[data-design=a]{background-color:#e3eeea;background-image:linear-gradient(#296d5910 1px,transparent 1px),linear-gradient(90deg,#296d5910 1px,transparent 1px);background-size:32px 32px}body.cabinet[data-design=a] .page-root{background:#f1f7f4;border-color:#b8d0c4;border-radius:14px;box-shadow:0 8px 35px #123b2d0c}body.cabinet[data-design=a] .topbar{margin:0 -20px;padding:8px 22px;min-height:54px;border-radius:13px 13px 0 0;border-bottom:1px solid #ffffff24;background:#142f2d;color:#ecf6f1}body.cabinet[data-design=a] .brand{font:500 23px/1 Space,sans-serif;letter-spacing:-.8px;color:#eaf5ed}body.cabinet[data-design=a] .topbar nav a{color:#d3e6dc}body.cabinet[data-design=a] .hero{margin:0 -20px;border:0;border-radius:0;background:#142f2d;box-shadow:none}body.cabinet[data-design=a] .hero-stage{grid-template-columns:minmax(0,1fr) 168px;gap:26px;padding:22px 30px;background-image:radial-gradient(ellipse at 75% 50%,#247c9b28,transparent 55%),linear-gradient(#86b0a008 1px,transparent 1px),linear-gradient(90deg,#86b0a008 1px,transparent 1px);background-size:auto,24px 24px,24px 24px}body.cabinet[data-design=a] .hero-copy{grid-column:1;grid-row:1}body.cabinet[data-design=a] .hero-copy>.eyebrow{color:#b7d6c5;font-size:10px;letter-spacing:.13em}body.cabinet[data-design=a] .hero-copy h1{font:700 clamp(32px,3.6vw,46px)/1.05 Space,sans-serif;letter-spacing:-1.8px;color:#f2f7f2;margin-bottom:12px}body.cabinet[data-design=a] .hero-copy h1 span{font-style:normal;color:#9ac2b3}body.cabinet[data-design=a] .hero-description{color:#d3e3dd;font-size:16px;line-height:1.4;max-width:52ch}body.cabinet[data-design=a] .shader-wrap.paint-home{grid-column:2;grid-row:1;width:168px;align-self:center}body.cabinet[data-design=a] .paint-studio{border:1px solid #afcec044;border-radius:14px;box-shadow:0 5px #081e1b,0 8px 24px #081e1b40}body.cabinet[data-design=a] .paint-inline-bar{background:#e6f1eb}body.cabinet[data-design=a] .credibility-strip{padding:10px 2px;border-top:0;border-bottom:1px solid #c3d8cc;font-size:12px}body.cabinet[data-design=a] #shelf-title{font:700 25px/1.1 Space,sans-serif!important;letter-spacing:-1px}body.cabinet[data-design=a] #project-grid:not(.index){grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}body.cabinet[data-design=a] #project-grid .project-card{padding:13px 13px 0;border-radius:15px;border:1px solid color-mix(in srgb,var(--kind) 40%,#d4e1d8);border-top:3px solid var(--kind);background:linear-gradient(135deg,#fff,color-mix(in srgb,var(--kind) 10%,#eef4ee));box-shadow:inset 0 1px 2px #fff,0 3px #bbd0c580,0 5px 10px #254b3410}body.cabinet[data-design=a] #project-grid .card-heading{grid-template-columns:92px minmax(0,1fr);grid-template-rows:19px minmax(65px,auto) auto;gap:5px 13px;padding-bottom:12px}body.cabinet[data-design=a] #project-grid .thumb{width:92px;height:92px;border-radius:12px;border:1px solid #9ab5aa;box-shadow:0 0 0 3px #ffffffad,0 4px 7px #24433520}body.cabinet[data-design=a] #project-grid h3{font:700 20px/1.13 Space,sans-serif;letter-spacing:-.6px}body.cabinet[data-design=a] #project-grid .card-copy{gap:6px}body.cabinet[data-design=a] #project-grid .brief{font-size:15px;line-height:1.3}body.cabinet[data-design=a] #project-grid .technical{font-size:13px;line-height:1.3;color:#4c675b}body.cabinet[data-design=a] #project-grid .stack-token{border:1px solid color-mix(in srgb,var(--kind) 14%,#dae5dc);background:#ffffff70;padding:3px 5px}body.cabinet[data-design=a] #project-grid .project-signals{padding:7px 0 5px}body.cabinet[data-design=a] #project-grid .card-metrics{padding-bottom:9px}body.cabinet[data-design=a] #project-grid.index .card-heading{grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto}body.cabinet[data-design=a] #project-grid.index .thumb{width:48px;height:48px}body.cabinet[data-design=a] #project-grid.index h3{font-size:17px}body.cabinet[data-design=c] .topbar{margin:0 -20px;padding:8px 22px;min-height:54px;border-radius:8px 8px 0 0;border-bottom:1px solid #ffffff24;background:#142f2d;color:#ecf6f1}body.cabinet[data-design=c] .brand{font:500 23px/1 Space,sans-serif;letter-spacing:-.8px;color:#eaf5ed}body.cabinet[data-design=c] .topbar nav a{color:#d3e6dc}body.cabinet[data-design=c] .hero{margin:0 -20px;border:0;border-radius:0;background:#142f2d;box-shadow:none}body.cabinet[data-design=c] .hero-stage{grid-template-columns:minmax(0,1fr) 168px;gap:26px;padding:22px 30px;background-image:radial-gradient(ellipse at 75% 50%,#247c9b28,transparent 55%),linear-gradient(#86b0a008 1px,transparent 1px),linear-gradient(90deg,#86b0a008 1px,transparent 1px);background-size:auto,24px 24px,24px 24px}body.cabinet[data-design=c] .hero-copy{grid-column:1;grid-row:1}body.cabinet[data-design=c] .hero-copy>.eyebrow{color:#b7d6c5;font-size:10px;letter-spacing:.13em}body.cabinet[data-design=c] .hero-copy h1{font:700 clamp(32px,3.6vw,46px)/1.05 Space,sans-serif;letter-spacing:-1.8px;color:#f2f7f2;margin-bottom:12px}body.cabinet[data-design=c] .hero-copy h1 span{font-style:normal;color:#9ac2b3}body.cabinet[data-design=c] .hero-description{color:#d3e3dd;font-size:16px;line-height:1.4;max-width:52ch}body.cabinet[data-design=c] .shader-wrap.paint-home{grid-column:2;grid-row:1;width:168px;align-self:center}body.cabinet[data-design=c] .paint-studio{border:1px solid #afcec044;border-radius:14px;box-shadow:0 5px #081e1b,0 8px 24px #081e1b40}body.cabinet[data-design=c] .paint-inline-bar{background:#e6f1eb}body.cabinet[data-design=c] .credibility-strip{padding:10px 2px;border-top:0;border-bottom:1px solid #c3d8cc;font-size:12px}@media(max-width:999px){body.cabinet[data-design=a] #project-grid:not(.index){grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){body[data-compare=on] .design-comparison{gap:7px;flex-wrap:wrap;padding:7px 9px}.design-comparison p{font-size:12px}.design-comparison small{display:none}.design-comparison .design-choices{gap:3px}.design-comparison .design-choices button{min-height:38px;padding:5px 9px;font-size:12px}.design-comparison a{display:none}body.cabinet #projects>#collection-filters{gap:4px;flex-wrap:wrap}.collection-filter .collection-glyph{display:none}body.playful.cabinet #projects .collection-filter{padding:6px 8px;gap:4px;min-height:38px}body.playful.cabinet #projects #more-filters{min-height:38px;min-width:72px;padding:6px 7px}body.cabinet[data-design=a] .topbar{margin:0 -11px;padding:8px 13px;min-height:48px}body.cabinet[data-design=a] .hero{margin:0 -11px}body.cabinet[data-design=a] .hero-stage{grid-template-columns:minmax(0,1fr) 105px;padding:18px 14px;gap:13px}body.cabinet[data-design=a] .hero-copy>.eyebrow{font-size:9px;letter-spacing:.03em}body.cabinet[data-design=a] .hero-copy h1{font-size:29px;letter-spacing:-1.2px;margin-bottom:10px}body.cabinet[data-design=a] .hero-description{font-size:13px;line-height:1.35}body.cabinet[data-design=a] .shader-wrap.paint-home{width:105px;align-self:center}body.cabinet[data-design=a] #project-grid:not(.index){grid-template-columns:1fr;gap:11px}body.cabinet[data-design=a] #project-grid .project-card{padding:12px 12px 0}body.cabinet[data-design=a] #project-grid .card-heading{grid-template-columns:86px minmax(0,1fr);grid-template-rows:auto;gap:10px 13px}body.cabinet[data-design=a] #project-grid .thumb{width:86px;height:86px;grid-row:1}body.cabinet[data-design=a] #project-grid h3{font-size:18px}body.cabinet[data-design=a] #project-grid .brief{font-size:14px}body.cabinet[data-design=c] .topbar{margin:0 -11px;padding:8px 13px;min-height:48px}body.cabinet[data-design=c] .hero{margin:0 -11px}body.cabinet[data-design=c] .hero-stage{grid-template-columns:minmax(0,1fr) 105px;padding:18px 14px;gap:13px}body.cabinet[data-design=c] .hero-copy>.eyebrow{font-size:9px;letter-spacing:.03em}body.cabinet[data-design=c] .hero-copy h1{font-size:29px;letter-spacing:-1.2px;margin-bottom:10px}body.cabinet[data-design=c] .hero-description{font-size:13px;line-height:1.35}body.cabinet[data-design=c] .shader-wrap.paint-home{width:105px;align-self:center}}@media(max-width:370px){body.cabinet #projects{gap:0 4px}body.playful.cabinet #projects .collection-filter{padding-inline:6px;font-size:11px}body.playful.cabinet #projects #more-filters{min-width:64px;font-size:11px}body.cabinet[data-design=a] .hero-stage{grid-template-columns:minmax(0,1fr) 92px;gap:10px}body.cabinet[data-design=a] .shader-wrap.paint-home{width:92px}body.cabinet[data-design=a] .hero-copy h1{font-size:26px}}body.cabinet[data-design] .hero-stage{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:24px}body.cabinet[data-design] .hero-copy{grid-column:1;grid-row:1}body.cabinet .ribbon-wrap{position:relative;grid-column:2;grid-row:1;width:100%;height:210px;min-width:0;overflow:hidden}#header-ribbon{display:block;width:100%;height:100%;touch-action:pan-y}.ribbon-caption{position:absolute;bottom:0;right:0;display:flex;align-items:center;gap:10px;font:10px/1.3 Plex,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:#a5c6b8;pointer-events:none}body.cabinet .ribbon-caption button{pointer-events:auto;min-width:32px;min-height:32px;padding:3px;border:1px solid #a5c6b83a;border-radius:7px;background:#ffffff08;color:#d7e7de;box-shadow:none;font-size:13px;cursor:pointer}body.cabinet[data-design=b] .ribbon-caption{color:#3d6a5b}body.cabinet[data-design=b] .ribbon-caption button{color:#24594b;border-color:#90b8a5}body.cabinet #portrait-extra{border-top:1px dotted #9bb8a8;margin:0 0 14px;padding-top:8px;color:#3d6555}body.cabinet #portrait-extra>summary{min-height:42px;display:flex;align-items:center;gap:12px;width:fit-content;cursor:pointer;font:13px Plex,sans-serif;list-style:none;padding:8px 2px}#portrait-extra>summary::-webkit-details-marker{display:none}#portrait-extra[open]>summary span{transform:rotate(45deg)}.portrait-reveal{max-width:280px;margin:12px auto 24px;text-align:center}.portrait-reveal>h2{font:400 25px/1.2 Georgia,serif;color:#15584f;margin:0 0 5px}.portrait-reveal>p{font:13px/1.4 Plex,sans-serif;color:#4f7062;margin:0 0 14px}body.cabinet #portrait-extra .portrait-home{position:relative;width:260px;max-width:100%;min-height:0;margin:auto;opacity:1;mask:none}body.cabinet #portrait-extra .paint-studio{border-radius:12px;box-shadow:0 3px #d0ded2}body.cabinet #portrait-extra .paint-stage{min-height:0;width:100%;height:auto;aspect-ratio:4/5}body.cabinet #portrait-extra #shader{min-height:0}body.cabinet #portrait-extra .paint-inline-bar{min-height:32px}.hero-interests{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:13px 0 0;padding:0}.hero-interests li{font:11px/1.3 Plex,sans-serif;letter-spacing:.025em;padding:4px 8px;border:1px solid #b8d2c326;border-radius:5px;color:#c5dace;background:#e3f3e308;cursor:default}body[data-design=b] .hero-interests li{border-color:#bfcec2;background:#edf3ec;color:#426753}body.playful.cabinet #projects button.more-filters#more-filters{min-height:38px;margin-bottom:12px;align-self:start}body.playful.cabinet #experiment button#ribbon-pause{--soft-face:#25463f;--soft-edge:#102f2a;min-width:32px;min-height:32px;width:32px;height:32px;padding:3px;border:1px solid #a5c6b83a;border-radius:7px;background:#ffffff08;color:#d7e7de;box-shadow:none;font-size:13px}body.playful.cabinet[data-design=b] #experiment button#ribbon-pause{--soft-face:#e7f0e8;--soft-edge:#b7cfc1;background:var(--soft-face);color:#244e41;border-color:var(--soft-edge)}@media(max-width:650px){body.cabinet[data-design] .hero-stage{grid-template-columns:1fr;padding:18px 16px 10px;gap:0}body.cabinet .ribbon-wrap{grid-column:1;grid-row:2;height:115px;margin-top:4px}body.cabinet[data-design] .hero-description{max-width:46ch}body.cabinet[data-design] .hero-copy h1{font-size:34px}.ribbon-caption{font-size:9px}}body.playful.cabinet #projects{display:block}body.playful.cabinet #projects .shelf-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,360px) auto;align-items:center;gap:12px;margin:0 0 14px}body.playful.cabinet #projects .shelf-heading{grid-column:auto;min-width:0;flex-basis:auto}body.playful.cabinet #projects .search{grid-column:auto;grid-row:auto;width:100%;min-width:0;max-width:none;height:44px;margin:0;border-radius:9px;box-shadow:none}body.playful.cabinet #projects .search input{min-width:0;font-size:16px}body.playful.cabinet #projects button.more-filters#more-filters{grid-column:auto;grid-row:auto;align-self:center;order:0;display:inline-flex;min-height:44px;min-width:100px;width:auto;margin:0;padding:9px 12px;font-size:14px;border-radius:9px}body.playful.cabinet #projects #advanced-filters{margin:0 0 16px;border-radius:10px;background:#f8fbf9;border-color:#d2ded7}body.playful.cabinet #advanced-filters[hidden]{display:none}body.playful.cabinet #advanced-filters .advanced-content{padding:4px 16px 16px;gap:16px;min-width:0}body.playful.cabinet #advanced-filters .filter-group h3{margin:0 0 8px;font:600 14px/1.4 Plex,sans-serif;letter-spacing:0;color:var(--ink)}body.playful.cabinet #advanced-filters :is(#collection-filters,#kind-filters){display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}body.playful.cabinet #advanced-filters :is(.collection-filter,#kind-filters .facet-button){display:inline-flex;flex:0 1 auto;min-width:0;min-height:44px;padding:8px 11px;font:500 14px/1.3 Plex,sans-serif;border-radius:9px}body.playful.cabinet #advanced-filters :is(.collection-filter,#kind-filters .facet-button):not([aria-pressed=true]){--soft-face:#edf3ef;--soft-edge:#bdcec3;background:var(--soft-face);border-color:var(--soft-edge);color:#294e40}body.playful.cabinet #advanced-filters :is(.collection-filter,#kind-filters .facet-button)[aria-pressed=true]{--soft-face:var(--accent-deep);--soft-edge:color-mix(in srgb,var(--accent-deep) 78%,#061e1b);background:var(--soft-face);border-color:var(--soft-edge);color:#fff}body.playful.cabinet #advanced-filters .collection-glyph{display:none}body.playful.cabinet #advanced-filters .collection-filter b{font-size:12px;opacity:1}body.playful.cabinet #advanced-filters .ranking-toolbar{flex-wrap:wrap;gap:10px;margin:0}body.playful.cabinet #advanced-filters .ranking-toolbar>label:first-child{display:flex;align-items:center;gap:8px;font:14px/1.4 Plex,sans-serif}body.playful.cabinet #advanced-filters .collection-order-note{font:13px/1.45 Plex,sans-serif;color:#4b655b;margin:-6px 0 0;max-width:70ch}body.playful.cabinet #advanced-filters .collection-options{justify-content:flex-start;align-items:center;gap:12px}body.playful.cabinet #advanced-filters select{max-width:100%;min-height:44px;font-size:14px}body.playful.cabinet #advanced-filters select:disabled{color:#52665c;background:#edf1ee;opacity:1}body.playful.cabinet #projects :is(button,select,input):focus-visible{outline:3px solid var(--accent-deep);outline-offset:4px}@media(max-width:800px){body.playful.cabinet #projects .shelf-head{grid-template-columns:minmax(0,1fr) auto;gap:10px}body.playful.cabinet #projects .shelf-heading{grid-column:1/-1}body.playful.cabinet #advanced-filters select{font-size:16px}}.project-page-link{margin:14px 0 18px}.project-page-link a{background:#185b51;color:#fff!important;border-color:#164b42;min-height:42px;padding:10px 16px;font-weight:700;text-decoration:none}.build-details{border-top:1px dotted #a6bcb4;padding:12px 0;margin:16px 0}.build-details>summary{cursor:pointer;font-size:13px;color:#395e54;min-height:32px}.build-details .ai-provenance{margin-top:10px}body:not(.proof) #project-detail [data-choice]{display:none}body.cabinet #project-grid .access-indicator{display:inline-flex;align-items:center;gap:3px;margin-left:auto;padding:2px 5px;border:1px solid #aacdc0;border-radius:5px;background:#e8f4ed;color:#195446;font:600 10px/1.15 Plex,system-ui,sans-serif;white-space:nowrap;box-shadow:inset 0 1px #ffffffa8}body.cabinet #project-grid .access-indicator svg{width:10px;height:10px;flex:none;stroke-width:1.6}body.cabinet #project-grid .access-indicator[data-access=tour],body.cabinet #project-grid .access-indicator[data-access=game]{background:#e7f2f8;color:#205d78;border-color:#aecdda}body.cabinet #project-grid .access-indicator[data-access=source]{background:#eef0f3;color:#455468;border-color:#c6cdd6}body.cabinet #project-grid .access-indicator[data-access=download]{background:#f3efe4;color:#685a35;border-color:#d9cfae}body.cabinet #project-grid.index .access-indicator{margin-left:4px}.project-page-link .public-project-link{background:#15584f;color:#fff;border-color:#15584f}.project-page-link .public-project-link:hover{background:#1d685b;color:#fff}.project-page-link .public-project-link:focus-visible{outline:3px solid #348baa;outline-offset:3px}.detail-live-view{margin:16px 0 20px;padding:8px;background:var(--paper,#f6f9f4);border:1px solid #cadcd3;border-radius:13px;overflow:hidden}.detail-live-view>a{display:block;border-radius:7px;overflow:hidden}.detail-live-view img{display:block;width:100%;height:auto;max-height:300px;object-fit:contain;background:#edf2ed}.detail-live-view figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:10px 3px 2px;font:13px/1.4 Plex,system-ui,sans-serif;color:#426458}.detail-live-view figcaption span{max-width:52ch}.detail-live-view figcaption a{flex:none;color:#195c6a;text-underline-offset:3px;font-weight:600}@media(max-width:500px){.detail-live-view figcaption{display:block}.detail-live-view figcaption a{display:inline-block;padding:9px 0 2px;min-height:34px}}
