.audio-controls{flex:none;justify-content:center;align-items:center;gap:4px;display:flex}.audio-control{color:#171717;cursor:pointer;touch-action:manipulation;width:44px;height:40px;font:inherit;background:0 0;border:0;border-radius:999px;flex:none;place-items:center;padding:0;display:grid}.audio-control:hover{color:#c43633;background:#eee}.audio-control:focus-visible{outline-offset:1px;outline:2px solid #c43633}.audio-control[aria-pressed=false]{color:#888}.audio-control[data-loading] svg{opacity:.55}@media (pointer:coarse),(width<750px){.audio-control{min-height:44px}}.project-listen{color:#fff;letter-spacing:normal;text-transform:none;cursor:pointer;touch-action:manipulation;background:linear-gradient(155deg,#242424,#111 62%,#090909);border:1px solid #4b4b4b;border-radius:10px;flex:none;justify-content:center;align-items:center;gap:6px;min-block-size:44px;min-inline-size:94px;padding:0 9px;font:600 .875rem/1.2 DM Sans,sans-serif;transition:translate .16s,box-shadow .16s;display:inline-flex;box-shadow:inset 0 1px #ffffff38,inset 0 -2px #0009,0 3px #070707,0 5px 12px #0004}.project-listen-icon{flex:none;place-items:center;block-size:22px;inline-size:22px;display:grid}.project-listen-label{text-align:left;min-inline-size:36px}.project-listen-icon svg{fill:currentColor;block-size:17px;inline-size:17px}.project-listen--floating{border-radius:50%;block-size:52px;inline-size:52px;min-inline-size:0;padding:0}.project-listen--floating svg{block-size:19px;inline-size:19px}@media (width<=600px){.project-listen--floating{block-size:48px;inline-size:48px}}.project-listen:focus-visible{outline-offset:3px;outline:2px solid}@media (hover:hover){.project-listen:hover{translate:0 -2px;box-shadow:inset 0 1px #ffffff40,0 5px #070707,0 9px 14px #0004}}.project-listen:active{translate:0 2px;box-shadow:inset 0 2px 5px #0008,0 1px #070707}@media (prefers-reduced-motion:reduce){.project-listen{transition:none}.project-listen:is(:hover,:active){translate:none}}.lego-lower{color:#f4f0e8;background:#0c0c0d}.lower-shell{width:min(var(--width),calc(100% - 2 * var(--page-gutter)));margin-inline:auto}.lego-opinions{background:url(/assets/about/optimized/charcoal-grid.webp) 50%/cover no-repeat;align-items:center;min-height:100svh;padding:110px 0 95px;display:flex}.lego-opinions h2{text-align:center;text-shadow:0 2px 3px #000a;font-family:Instrument Serif,serif;font-size:66px;font-style:italic;font-weight:400;line-height:1.1}.opinions-caption{text-align:center;color:#e0ddd4;margin:12px 0 51px;font-size:14px}.sticky-note-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));align-items:stretch;gap:26px;display:grid}.note-wrap{min-width:0;display:flex;position:relative}.sticky-note{color:#2b2b24;background:#efe2ad;width:100%;min-width:0;padding:38px 24px 30px;position:relative;transform:rotate(-1.2deg);box-shadow:2px 8px 12px #0005}.sticky-note.torn{clip-path:polygon(0 5px,2% 0,4% 5px,6% 0,8% 5px,10% 0,12% 5px,14% 0,16% 5px,18% 0,20% 5px,22% 0,24% 5px,26% 0,28% 5px,30% 0,32% 5px,34% 0,36% 5px,38% 0,40% 5px,42% 0,44% 5px,46% 0,48% 5px,50% 0,52% 5px,54% 0,56% 5px,58% 0,60% 5px,62% 0,64% 5px,66% 0,68% 5px,70% 0,72% 5px,74% 0,76% 5px,78% 0,80% 5px,82% 0,84% 5px,86% 0,88% 5px,90% 0,92% 5px,94% 0,96% 5px,98% 0,100% 5px,100% 100%,0 100%);background:linear-gradient(#e2d199 0 26px,#f0e3b2 27px)}.sticky-note.corner-tape{background:#dce4cf;margin-top:11px;transform:rotate(1.4deg)}.sticky-note.perforated{background:#ebd2cf;margin-top:3px;padding-left:29px;transform:rotate(-.7deg);-webkit-mask:radial-gradient(circle at 0 10px,#0000 5px,#000 5.6px) 0 0/100% 20px repeat-y;mask:radial-gradient(circle at 0 10px,#0000 5px,#000 5.6px) 0 0/100% 20px repeat-y}.external-tape{z-index:4;pointer-events:none;background:#c4b264c9;width:81px;height:34px;position:absolute;top:-12px;left:50%;transform:translate(-50%)rotate(-3deg);box-shadow:inset 0 1px 1px #ffffff38}.note-2 .external-tape{background:#7f8c73b8;width:85px;height:30px;top:-8px;left:auto;right:-5px;transform:rotate(4deg)}.corner-tape-top,.corner-tape-bottom{z-index:3;pointer-events:none;background:#80978cba;width:64px;height:20px;position:absolute;transform:rotate(37deg);box-shadow:inset 0 1px #ffffff40}.corner-tape-top{top:-5px;right:-14px}.corner-tape-bottom{width:66px;bottom:1px;left:-16px}.note-person{align-items:center;gap:10px;margin-bottom:23px;display:flex}.note-person img{object-fit:cover;border-radius:50%;flex:none;width:39px;height:39px}.note-person h3{font-size:14px;font-weight:500;line-height:1.3}.note-person p{color:#50524b;margin-top:4px;font-size:11px;line-height:1.4}.sticky-note blockquote{margin:0;font-size:15px;line-height:1.6}.skills-tools-section{padding:65px 0 0}.bento-pair{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:28px;display:grid}.molded-card{background:#252526;border-radius:7px;min-height:442px;padding:33px 28px 30px;position:relative;box-shadow:inset 0 2px 1px #ffffff15,0 6px #161617,0 12px 15px #0003}.molded-card h2{margin-bottom:26px;font-family:Instrument Serif,serif;font-size:36px;font-style:italic;font-weight:400;line-height:1.15}.card-studs{gap:13px;display:flex;position:absolute;top:12px;right:18px}.card-studs span{background:linear-gradient(140deg,#3c3c3e,#252527);border-radius:50%;width:20px;height:20px;box-shadow:inset 1px 1px 1px #fff2,1px 3px 2px #0007}.piece-stack{align-content:start;min-height:325px;position:relative}.skill-stack{flex-wrap:wrap;gap:18px 12px;display:flex}.movable-piece{color:inherit;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;z-index:1;background:0 0;border:0;align-self:start;padding:0;position:relative;translate:0}.movable-piece.is-held{cursor:grabbing}.piece-visual{transition:translate .3s,scale .3s,rotate .3s,filter .3s;display:block;position:relative;translate:0;rotate:0deg;scale:1}.is-held .piece-visual{filter:drop-shadow(0 12px 7px #0007);animation:1.7s ease-in-out infinite antigravity-drift;translate:0 -10px;rotate:-2deg;scale:1.065}@keyframes antigravity-drift{0%,to{rotate:-2deg}50%{rotate:1deg}}.skill-visual{color:#282727;background:#dad8ce;border-radius:3px;align-items:center;gap:10px;padding:11px 12px;font-size:13px;line-height:1.2;display:flex;overflow:hidden;box-shadow:inset 0 2px 1px #ffffff70,0 4px #8e8d83,0 7px 6px #0005}.skill-visual:after{content:"";pointer-events:none;opacity:.1;mix-blend-mode:soft-light;background-image:url(/assets/lego-lower/skill-grain.svg);position:absolute;inset:0}.small-stud{background:linear-gradient(135deg,#dad8cf,#bcbab0);border-radius:50%;flex:none;width:10px;height:10px;box-shadow:inset 1px 1px 1px #fff7,1px 2px 1px #0004}.tool-stack{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px 8px;display:grid}.tool-piece{aspect-ratio:1;isolation:isolate;justify-self:center;width:100%;max-width:100px}.tool-visual{width:100%;height:100%}.brick-front{background:var(--brick-color);z-index:2;border-radius:2px;width:76%;height:60%;position:absolute;top:33%;left:8%;overflow:hidden;box-shadow:inset 0 1px 1px #ffffff32,0 4px 3px #0005}.brick-top{background:color-mix(in srgb,var(--brick-color),white 15%);clip-path:polygon(10.5% 0,100% 0,89.4% 100%,0 100%);z-index:1;width:85%;height:12%;position:absolute;top:22%;left:8%}.brick-side{background:color-mix(in srgb,var(--brick-color),black 25%);clip-path:polygon(0 16%,100% 0,100% 84%,0 100%);z-index:1;width:9%;height:71%;position:absolute;top:22%;left:84%}.brick-stud{background:linear-gradient(90deg,color-mix(in srgb,var(--brick-color),white 8%),var(--brick-color) 50%,color-mix(in srgb,var(--brick-color),black 23%) 87%);z-index:3;border-radius:50%/22%;width:23%;height:20%;position:absolute;top:9%;left:23%;box-shadow:0 1px 1px #0003}.brick-stud.second{left:58%}.brick-stud:before{content:"";background:color-mix(in srgb,var(--brick-color),white 26%);border-radius:50%;height:45%;position:absolute;top:-1px;left:0;right:0;box-shadow:inset 0 1px 1px #ffffff60}.tool-logo{object-fit:contain;pointer-events:none;width:67%;height:73%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}[data-tool=Jitter] .tool-logo{width:95%;height:120%}[data-tool=ProtoPie] .tool-logo{width:160%;height:175%}.tool-name{white-space:nowrap;pointer-events:none;color:#262625;opacity:0;background:#f2efe8;border-radius:4px;padding:5px 9px;font-size:12px;line-height:1.3;transition:opacity .15s;position:absolute;bottom:calc(100% + 7px);left:50%;translate:-50%;box-shadow:0 3px 7px #0005}.tool-piece:hover,.tool-piece:focus-visible{z-index:25}.tool-piece:hover .tool-name,.tool-piece:focus-visible .tool-name{opacity:1}.is-held .tool-name{opacity:0}.social-footer{background:#0c0c0d;padding:80px 32px 72px}.social-footer-inner{width:742px;max-width:100%;margin:auto}.social-key-row{flex-wrap:wrap;justify-content:center;gap:24px 8px;display:flex}.social-key{width:var(--social-key-size,117px);height:var(--social-key-size,117px);isolation:isolate;background:0 0;border:0;flex:none;display:block;position:relative}.key-art{object-fit:contain;pointer-events:none;width:100%;height:100%;transition:opacity .18s;position:absolute;inset:0;-webkit-mask-image:url(/assets/lego-lower/socials/email-hover.webp);mask-image:url(/assets/lego-lower/socials/email-hover.webp);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.key-hover{opacity:0}.social-key:hover .key-hover,.social-key:focus-visible .key-hover,.social-key:active .key-hover{opacity:1}.social-key:hover .key-default,.social-key:focus-visible .key-default,.social-key:active .key-default{opacity:0}.key-name{color:#e7e3da;white-space:nowrap;opacity:0;pointer-events:none;font-size:13px;line-height:1.35;transition:opacity .2s,translate .2s;position:absolute;top:calc(100% + 5px);left:50%;translate:-50% 4px}.social-key:hover .key-name,.social-key:focus-visible .key-name{opacity:1;translate:-50%}@media (height<=780px){.lego-opinions{padding-top:95px;padding-bottom:65px}.lego-opinions h2{font-size:58px}.opinions-caption{margin-bottom:39px}.sticky-note{padding-top:32px}.sticky-note blockquote{font-size:14px;line-height:1.55}}@media (width<=1100px){.note-person{gap:8px}.note-person h3{font-size:13px}.sticky-note{padding-inline:20px}.sticky-note.perforated{padding-left:25px}.molded-card{padding-inline:23px}.skill-stack{gap:17px 10px}.skill-visual{padding-inline:10px;font-size:12px}}@media (prefers-reduced-motion:reduce){.movable-piece.is-resetting,.piece-visual,.key-art,.key-name{transition:none}.is-held .piece-visual{animation:none;rotate:0deg;scale:1}}@media (pointer:coarse){.movable-piece{touch-action:pan-y}}.portfolio-chat,.mobile-menu-panel{--pc-ink:#4a3527;--pc-paper:#fbf6ef;color:var(--pc-ink)}.portfolio-chat{--pc-dark:#483326;--pc-muted:#8d7866;--pc-line:#e4d6c6;z-index:120;letter-spacing:normal;text-align:left;font-family:DM Sans,sans-serif;position:relative}.portfolio-chat button,.portfolio-chat textarea{font-family:inherit}.portfolio-chat button{cursor:pointer}.portfolio-chat button:disabled{cursor:default}.portfolio-chat a{color:inherit}.portfolio-chat :is(button,a,textarea,[tabindex]):focus-visible{outline-offset:3px;outline:2px solid #b8503e}.portfolio-chat button{touch-action:manipulation}.pc-backdrop,.mobile-menu-panel::backdrop{-webkit-backdrop-filter:blur(15px)saturate(.75);backdrop-filter:blur(15px)saturate(.75);touch-action:none;background:#3522173b;animation:.22s ease-out both pc-backdrop-in}.pc-backdrop{z-index:120;position:fixed;inset:0}.mobile-menu-panel::backdrop{-webkit-backdrop-filter:blur(12px)saturate(.75);backdrop-filter:blur(12px)saturate(.75)}.pc-companion{aspect-ratio:140/209;z-index:122;pointer-events:none;background:url(/assets/lego/character-wave.webp) 0 0/800% 100% no-repeat;width:72px;animation:.18s ease-out both pc-enter;position:fixed;bottom:82px;right:436px}.pc-panel,.mobile-menu-panel{background:var(--pc-paper);border:2px solid #533a28;border-radius:2px;animation:.18s ease-out both pc-enter;box-shadow:inset 0 0 0 3px #fffaf4,5px 5px #533a28,0 14px 50px #42291524}.pc-panel{width:392px;height:min(620px,calc(var(--pc-vh,100dvh) - 110px));z-index:121;isolation:isolate;flex-direction:column;min-height:250px;display:flex;position:fixed;bottom:82px;right:28px;overflow:hidden}.pc-accent-strip{height:8px;image-rendering:pixelated;background:repeating-linear-gradient(90deg,#c45b45 0 12px,#ac4436 12px 20px,#cf6952 20px 36px,#9f3b31 36px 44px);border-bottom:3px solid #87362b;flex-shrink:0}.pc-avatar{--pc-avatar-size:40px;width:var(--pc-avatar-size);height:var(--pc-avatar-size);background:0 0;border:0;border-radius:0;flex-shrink:0;display:block;position:relative;overflow:hidden}.pc-avatar img{width:calc(var(--pc-avatar-size) * 12.7273);max-width:none;height:auto;left:calc(var(--pc-avatar-size) * -.386364);pointer-events:none;position:absolute;top:0}.pc-avatar-small{--pc-avatar-size:21px}.pc-feed{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d4bda4 transparent;flex:1;min-height:0;overflow-y:auto;outline-offset:-4px!important}.pc-welcome{padding:30px 23px 20px}.pc-eyebrow{letter-spacing:1.2px;color:#805c45;align-items:center;gap:7px;font:9px/1.4 ui-monospace,Courier New,monospace;display:flex}.pc-eyebrow>span{color:#b55a42;font-size:15px}.pc-welcome h3{letter-spacing:-1px;margin-top:15px;font-size:31px;font-weight:500;line-height:1.12}.pc-welcome>p{color:#9a806b;margin-top:13px;font-size:12px;line-height:1.7}.pc-starters{grid-template-columns:1fr 1fr;gap:9px;margin-top:25px;display:grid}.pc-starters button{text-align:left;color:#79543b;background:#f4eadc;border:1px solid #e4d4c1;border-bottom:3px solid #dac2a8;border-radius:1px;flex-direction:column;align-items:flex-start;gap:10px;min-height:74px;padding:10px 11px;font-size:11px;line-height:1.4;transition:background .15s,border-color .15s;display:flex;position:relative}.pc-starters button:hover{background:#eedcc7;border-color:#c49b77}.pc-starter-index{color:#ae8d70;font:9px/1 ui-monospace,monospace}.pc-starter-arrow{color:#ac7d5c;font-size:14px;position:absolute;top:7px;right:10px}.pc-messages{flex-direction:column;gap:22px;padding:20px 18px 16px;display:flex}.pc-message{overflow-wrap:anywhere;min-width:0;font-size:12px;line-height:1.75}.pc-message p+p{margin-top:10px}.pc-message-user{color:#725038;background:#ecddcb;border:1px solid #ddc4a8;border-bottom-width:2px;align-self:flex-end;max-width:88%;padding:10px 13px;line-height:1.6}.pc-message-guide{color:#795a42;padding-right:6px}.pc-message-label{align-items:center;gap:7px;margin-bottom:10px;display:flex}.pc-message-label>span:last-child{letter-spacing:1px;color:#b18b6c;font:8px/1.3 ui-monospace,Courier New,monospace}.pc-message-body{white-space:pre-line}.pc-message-body strong{color:#583a25;font-weight:650}.pc-message-body a{text-underline-offset:3px;-webkit-text-decoration:underline #bd9271;text-decoration:underline #bd9271}.pc-message-body a:hover{color:#a34b34}.pc-sources{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.pc-sources a{background:#f4e7d7;border:1px solid #dec8ae;align-items:center;gap:5px;padding:5px 8px;font-size:10px;line-height:1.3;display:inline-flex}.pc-sources a:hover{background:#eed9c2;border-color:#bc8963}.pc-pending{align-items:center;gap:9px;min-height:30px;padding:0 0 4px;display:flex}.pc-dots{align-items:center;gap:4px;height:25px;display:inline-flex}.pc-dots i{background:#b67e5c;border-radius:0;width:4px;height:4px;animation:1.05s ease-in-out infinite pc-dot;display:block}.pc-dots i:nth-child(2){animation-delay:.14s}.pc-dots i:nth-child(3){animation-delay:.28s}.pc-message-error .pc-message-body{color:#a74c3b}.pc-retry{color:#a35b3d;background:#f4e6d5;border:1px solid #dac0a3;margin-top:10px;padding:5px 8px;font-size:11px;display:inline-block}.pc-retry:disabled{opacity:.4}.pc-followups{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d4bda4 transparent;border-top:1px solid #eee0cf;flex-shrink:0;gap:6px;max-height:58px;padding:8px 16px 10px;display:flex;overflow-x:auto}.pc-followups button{color:#a58161;text-align:left;background:#f7eddf;border:1px solid #e2ccb2;flex-shrink:0;align-items:center;gap:10px;max-width:270px;padding:7px 9px;font-size:10px;line-height:1.4;display:inline-flex}.pc-followups button:hover:not(:disabled){color:#9a5d3b;background:#eedcc7}.pc-followups button:disabled{opacity:.45}.pc-followups button>span{margin-left:auto}.pc-composer{background:#fffaf4;border:1px solid #d9bea0;flex-shrink:0;align-items:center;gap:10px;margin:0 13px 13px;padding:9px 10px;display:flex;box-shadow:inset 1px 1px #fff,inset -1px -1px #ead9c3}.pc-composer:focus-within{border-color:#ba7957;box-shadow:0 0 0 1px #ba795733}.pc-composer textarea{resize:none;color:#62412b;scrollbar-width:thin;background:0 0;border:0;flex:1;min-width:0;min-height:32px;max-height:94px;padding:6px 2px;font-size:12px;line-height:20px;outline:none!important}.pc-composer textarea::placeholder{color:#b59a7d}.pc-composer button{color:#fff6eb;background:#b54b3a;border:1px solid #913b2e;flex-shrink:0;align-self:center;place-items:center;width:32px;height:32px;padding:0;line-height:0;display:grid;box-shadow:inset 1px 1px #d2785e,inset -1px -1px #8d362a}.pc-composer button svg{flex-shrink:0;display:block}.pc-composer button:hover:not(:disabled){background:#a94132}.pc-composer button:disabled{box-shadow:none;color:#b99b7e;background:#ede0cf;border-color:#e2cdb3}.pc-miniature-launcher{bottom:max(24px,env(safe-area-inset-bottom));right:max(28px,env(safe-area-inset-right));z-index:119;width:44.2105px;height:66px;position:fixed}.pc-miniature-launcher .dock-companion{width:100%;height:100%;position:relative;inset:auto}.pc-miniature-launcher>.project-listen--floating{position:absolute;top:50%;right:calc(100% + 12px);transform:translateY(-50%)}.pc-closing .pc-panel{pointer-events:none;animation:.22s ease-in both pc-exit}.pc-closing .pc-backdrop{animation:.22s ease-in both pc-backdrop-out}.pc-closing .pc-companion{animation:.22s ease-in both pc-exit}@keyframes pc-enter{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes pc-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(9px)}}@keyframes pc-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes pc-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes pc-dot{0%,65%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@media (width<=600px){.pc-panel{top:auto;left:12px;right:12px;bottom:calc(100dvh - var(--pc-vh,100dvh) - var(--pc-vtop,0px) + 76px);width:auto;height:min(590px,calc(var(--pc-vh,100dvh) - 100px));min-height:180px}.pc-miniature-launcher{right:16px;bottom:max(18px,env(safe-area-inset-bottom))}.pc-welcome{padding-top:23px}.pc-welcome h3{font-size:29px}.pc-composer textarea{font-size:16px;line-height:24px}.pc-panel .pc-message{font-size:13px}.pc-backdrop{-webkit-backdrop-filter:blur(12px)saturate(.75);backdrop-filter:blur(12px)saturate(.75)}}body:has(.bottom-dock) .pc-miniature-launcher{display:none}@media (height<=630px){.pc-panel{height:calc(var(--pc-vh,100dvh) - 100px);min-height:180px}.pc-welcome{padding-top:20px}.pc-welcome h3{font-size:26px}.pc-starters{margin-top:16px}.pc-starters button{min-height:62px}}@media (width<=600px){.portfolio-chat{--pc-companion-width:clamp(32px,calc(var(--pc-vh,100dvh) * .14),64px);--pc-companion-height:calc(var(--pc-companion-width) * 209 / 140);--pc-chat-clearance:calc(28px + var(--pc-companion-height))}.pc-panel{bottom:calc(100dvh - var(--pc-vh,100dvh) - var(--pc-vtop,0px) + var(--pc-chat-clearance));height:min(590px,calc(var(--pc-vh,100dvh) - var(--pc-chat-clearance) - 24px));min-height:160px}.pc-companion{left:40px;right:auto;bottom:calc(100dvh - var(--pc-vh,100dvh) - var(--pc-vtop,0px) + 16px);width:var(--pc-companion-width)}.portfolio-chat[data-compact=true] .pc-followups{display:none}}@media (prefers-reduced-motion:reduce){.pc-panel,.pc-backdrop,.pc-closing .pc-panel,.pc-closing .pc-backdrop,.pc-dots i,.mobile-menu-panel,.mobile-menu-panel::backdrop{transition:none!important;animation:none!important}.pc-dots i{opacity:.7}.pc-companion,.pc-closing .pc-companion{animation:none!important}}.pc-panel-actions{flex-shrink:0;justify-content:flex-end;align-items:center;gap:2px;padding:4px 9px 0;display:flex}.pc-panel-actions button{color:#987860;background:0 0;border:0;place-items:center;width:31px;height:34px;padding:0;display:grid}.pc-panel-actions button:hover{color:#a54836;background:#e8d7c3}@media (width<=600px){.pc-panel-actions button{width:36px;height:38px}}.portfolio-chat[data-compact=true] .pc-panel-actions{padding-top:2px}.portfolio-chat[data-compact=true] .pc-panel-actions button{height:28px}@media (width<600px),(height<650px),(pointer:coarse){.pc-panel{max-width:calc(100% - 24px);min-height:0}.pc-panel-actions button,.pc-composer button,.pc-miniature-launcher{min-width:44px;min-height:44px}}.portfolio-chat[data-compact=true] .pc-panel{inset:auto max(8px, env(safe-area-inset-right)) calc(100dvh - var(--pc-vh,100dvh) - var(--pc-vtop,0px) + 8px) max(8px, env(safe-area-inset-left));width:auto;max-width:min(620px,100% - 16px);height:calc(var(--pc-vh,100dvh) - 16px);min-height:0;margin-inline:auto;overflow:auto}.portfolio-chat[data-compact=true] .pc-feed{min-height:2.5rem}.portfolio-chat[data-compact=true] .pc-companion{visibility:hidden}@font-face{font-family:DM Sans;src:url(/assets/dm-sans.woff2)format("woff2");font-style:normal;font-weight:100 1000;font-display:swap}@font-face{font-family:Instrument Serif;src:url(/assets/instrument-serif-italic.woff2)format("woff2");font-style:italic;font-weight:400;font-display:swap}:root{color:#090909;font-synthesis:none;--paper:#fafafa;--ink:#090909;--surface:#151515;--tile:#2a2a2a;--red:#ef342a;--width:1080px;--page-gutter:clamp(1rem,3.4vw,2rem);--dock-clearance:100px;background:#fafafa;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}p,h1,h2,h3{margin:0}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline-offset:6px;outline:2px solid #f04b42}.shell{width:var(--width);margin-inline:auto}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.header{z-index:50;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%)}.header a,.header nav{pointer-events:auto}.logo{color:#fff;background:#c9c9c9;place-items:center;width:104px;height:45px;font-family:Instrument Serif,serif;font-size:23px;font-style:italic;transition:background .25s;display:grid;-webkit-mask:url(/assets/logo-mask.svg) 50%/contain no-repeat;mask:url(/assets/logo-mask.svg) 50%/contain no-repeat}.logo:hover{background:var(--red)}.header nav{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#080808;background:#ffffff8f;border-radius:50px;gap:40px;padding:18px 36px;font-size:17px;display:flex}.header nav a{white-space:nowrap;text-align:center;min-width:58px}.header nav a:last-child{min-width:142px}.header nav a:hover{color:var(--red);font-family:Instrument Serif,serif;font-size:21px;font-style:italic;line-height:22px}.hero{isolation:isolate;position:relative;overflow:hidden}.hero-offscreen .lego-cloud,.hero-paused .lego-cloud{animation-play-state:paused}.dark-content{color:#f5f5f5;background:#0b0b0b;padding-bottom:85px}.section-heading{font-family:Instrument Serif,serif;font-size:80px;font-style:italic;font-weight:400;line-height:1.05}.work{padding:65px 0 0;overflow:hidden}.work>.section-heading{text-align:center;margin-bottom:52px}.project-rail{padding:0 max(calc((100vw - var(--width))/2),40px) 12px;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-y;-webkit-user-select:none;user-select:none;gap:32px;display:flex;overflow:auto hidden}.project-rail::-webkit-scrollbar{display:none}.project-card{background:var(--surface);cursor:pointer;grid-template-columns:1fr 1.2fr;gap:34px;width:960px;min-width:960px;min-height:445px;padding:38px;display:grid;position:relative}.project-copy{flex-direction:column;display:flex}.project-type{letter-spacing:1.3px;color:#a9a9a9;margin-bottom:15px;font-size:11px}.project-copy h3{letter-spacing:-1px;font-size:36px;font-weight:500;line-height:1.06}.project-subtitle{max-width:330px;margin-top:16px;font-family:Instrument Serif,serif;font-size:30px;font-style:italic;line-height:1.1}.project-bottom{margin-top:auto;padding-top:40px}.confidential{color:#8e3f37;letter-spacing:.6px;background:#ffe8e5;border-radius:20px;margin-bottom:15px;padding:5px 13px;font-size:10px;display:inline-block}.metric{border-top:1px solid #ffffff19;min-height:56px;padding-top:16px;font-size:16px;line-height:1.3}.metric>span:not(.sr-only){animation:.4s ease-out metricIn;display:block}.tags{letter-spacing:1px;text-transform:uppercase;color:#777;gap:13px;margin-top:14px;font-size:10px;display:flex}.tags span+span:before{content:"•";color:#555;margin-right:13px}.project-image{border-radius:14px;align-self:stretch;min-height:350px;position:relative;overflow:hidden}.project-image img{object-fit:cover;width:100%;height:100%;transition:transform .6s}.project-card:hover .project-image img{transform:scale(1.015)}.explore{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#222;opacity:0;background:#ffffffa8;border-radius:50%;place-items:center;width:72px;height:72px;font-family:Instrument Serif,serif;font-size:20px;font-style:italic;transition:all .25s;display:grid;position:absolute;bottom:22px;right:22px;transform:translateY(10px)}.project-card:hover .explore,.project-card:focus-visible .explore{opacity:1;transform:translateY(0)}.opinions{margin-top:110px}.opinions-heading{justify-content:space-between;align-items:center;margin-bottom:35px;display:flex}.quote-ring{width:105px;height:105px;margin-right:4px;position:relative}.quote-ring svg{fill:#f5f5f5;letter-spacing:1.5px;width:100%;height:100%;font-size:12px;animation:25s linear infinite rotate}.quote-ring img{object-fit:contain;width:34px;height:28px;position:absolute;top:36px;left:36px}.testimonial-card{color:#111;background:#fff;grid-template-columns:1fr 1.12fr;gap:54px;min-height:335px;padding:54px 32px;display:grid}.people{align-items:flex-start;gap:10px;padding-top:26px;display:flex}.person{cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:40px;align-items:center;gap:10px;padding:0;display:flex}.person img{object-fit:contain;border-radius:50%;width:40px;height:40px}.person.active{color:#fff;background:#060606;padding:6px 14px 6px 6px}.person span{text-align:left;flex-direction:column;line-height:1.4;display:flex}.person strong{font-size:12px;font-weight:500}.person small{color:#aaa;font-size:10px}.testimonial-copy p{font-size:15px;line-height:1.48}.testimonial-copy p:not([hidden]){animation:.3s ease-out metricIn}.employers{grid-template-columns:40% 60%;height:250px;margin-top:100px;display:grid;position:relative;overflow:hidden}.employer-title{color:#080808;background:#e9e9e9;justify-content:center;align-items:center;display:flex}.employer-title>span{white-space:nowrap;letter-spacing:-1px;font-family:Instrument Serif,serif;font-size:65px;font-style:italic}.employer-title small{font-size:35px}.employer-logos{background:#ef3e31;justify-content:space-evenly;align-items:center;gap:19px;padding:20px;display:flex}.employer-logos img{object-fit:contain;width:auto;max-width:115px;height:27px}.employer-logos img:nth-child(3){max-width:48px;height:34px}.employer-logos img:last-child{max-width:86px;height:28px}.footer{margin-top:100px}.footer-grid{grid-template-rows:94px 220px 94px;grid-template-columns:438px 325px 267px;gap:24px;display:grid}.tile{background:var(--tile);border:2px solid #ffffff12;border-radius:16px;overflow:hidden}.skills{grid-row:1/3;padding:22px 20px}.skills h2{margin-bottom:22px;font-size:17px;font-weight:400}.skill-chips{flex-wrap:wrap;place-content:center;gap:16px 12px;display:flex}.skill-chips span{color:#202020;white-space:nowrap;transform:rotate(var(--tilt));background:#fff;border-radius:30px;padding:7px 13px;font-size:14px;transition:transform .25s}.skill-chips span:hover{transform:rotate(0)}.tools{grid-column:2/4;align-items:center;padding:16px 0;display:flex}.tools-track{align-items:center;gap:12px;width:max-content;animation:35s linear infinite tools;display:flex}.tools:hover .tools-track{animation-play-state:paused}.tools-track img{object-fit:contain;flex:none;width:56px;height:56px}.contact-tile{flex-direction:column;display:flex}.contact-tile>img{object-fit:cover;object-position:center;width:100%;height:164px;transition:transform .4s}.contact-tile span{white-space:nowrap;padding:9px 12px;font-size:19px;line-height:1.3}.contact-tile:hover>img{transform:scale(1.025)}.resume-tile{flex-direction:column;align-items:flex-start;gap:12px;padding:20px;display:flex}.resume-tile span{font-size:16px}.resume-tile img{object-fit:contain;align-self:center;width:143px;height:143px;transition:transform .3s}.resume-tile:hover img{transform:rotate(-4deg)translateY(-3px)}.socials{justify-content:space-evenly;align-items:center;gap:14px;padding:14px;display:flex}.socials a img{object-fit:contain;width:50px;height:50px;transition:transform .2s}.socials a:hover img{transform:translateY(-3px)}.slogan{grid-column:2/4;justify-content:center;align-items:center;display:flex}.slogan img{object-fit:contain;width:360px;height:120px}.contact-line{justify-content:space-between;margin-top:25px;font-size:17px;display:flex}.contact-line a:hover{color:#fff;font-family:Instrument Serif,serif;font-size:22px;font-style:italic}.cursor-dot{z-index:100;mix-blend-mode:difference;pointer-events:none;opacity:0;background:#fff;border-radius:50%;width:10px;height:10px;transition:transform .13s ease-out;position:fixed;top:0;left:0}.framer-attribution{color:#080808;z-index:60;background:#fff;border:1px solid #eee;border-radius:10px;align-items:center;gap:8px;padding:9px 12px;font-size:12px;font-weight:600;display:flex;position:fixed;bottom:18px;right:24px}.framer-attribution svg{width:12px;height:18px}@keyframes metricIn{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes tools{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.lego-sky{transform:none!important}.tools-track{transform:none}.cursor-dot{display:none}}.employers:after{content:"";mix-blend-mode:multiply;opacity:.12;pointer-events:none;background-image:url(/assets/KGSTVxShVtnzo9ZOvqnEKepFW8.png);background-size:100% 100%;position:absolute;inset:0}.header .logo{color:#1a5da4;background:#f5f3e9}@media (prefers-reduced-motion:no-preference){html.lenis{scroll-behavior:smooth}}.lego-hero{--hero-unit:min(1vw,14.4px);color:#101010;background:#fafafa;height:100svh;min-height:650px}.header{width:min(1080px,100% - 64px);top:6.8svh}.header .logo{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;width:100px;height:41px;text-shadow:none;background:#0003;font-size:20px;line-height:24px;-webkit-mask:url(/assets/logo-mask.svg) 50%/contain no-repeat;mask:url(/assets/logo-mask.svg) 50%/contain no-repeat}.header .logo:hover,.header .logo:focus-visible{background:var(--red)}.header nav{align-items:center;gap:var(--nav-gap);padding:15px var(--nav-inset);color:#000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff80;border-radius:9999px;font-size:18px;line-height:21.6px}.header nav>a{width:var(--nav-link-width);place-items:center;min-width:44px;height:40px;padding:2px 4px;display:grid}.header nav a:hover,.header nav a:focus-visible{color:var(--red);font-family:Instrument Serif,serif;font-size:20px;font-style:italic;line-height:24px}.lego-reveal{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hero-stage{z-index:2;width:min(1080px,100% - 64px);height:100%;position:absolute;inset:0 auto 0 50%;transform:translate(-50%)}.greeting{color:#101010;width:max-content;max-width:68%;text-shadow:none;padding:0;position:absolute;top:23.8%;left:5.1%}.availability{letter-spacing:0;white-space:nowrap;margin-bottom:calc(var(--hero-unit)*1.65);align-items:center;gap:8px;font-size:clamp(11px,1.04vw,15px);font-weight:400;line-height:1.4;display:flex}.availability:before{content:"";background:#24863a;border-radius:50%;flex:0 0 6px;width:6px;height:6px;animation:2.2s ease-in-out infinite availability-blink;box-shadow:0 0 3px #36bb5899,0 0 8px #36bb5866,0 0 12px #36bb582e}@keyframes availability-blink{0%,to{opacity:1;box-shadow:0 0 3px #36bb5899,0 0 8px #36bb5866,0 0 12px #36bb582e}50%{opacity:.4;box-shadow:0 0 2px #36bb5873,0 0 5px #36bb5838}}.greeting h1{white-space:nowrap;font-size:calc(var(--hero-unit)*5.3);letter-spacing:calc(var(--hero-unit)*-.16);align-items:center;gap:calc(var(--hero-unit)*.65);width:max-content;text-shadow:none;font-weight:400;line-height:1.12;display:flex}.greeting h1 em{letter-spacing:inherit;font-family:Instrument Serif,serif;font-weight:400}.peace{width:calc(var(--hero-unit)*3.8);height:calc(var(--hero-unit)*5.3);object-fit:contain;filter:none;margin:0;transform:rotate(-14deg)}.intro{letter-spacing:0;color:#171717;width:52.6%;box-shadow:none;background:0 0;padding:0;font-size:clamp(13px,1.27vw,19px);line-height:1.4;position:absolute;top:67.5%;bottom:auto;right:4%}.intro p{line-height:inherit;margin:0}.intro mark{font:inherit;color:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:linear-gradient(#0000 76%,#d5c5a673 76% 94%,#0000 94%);padding:0}.portrait{aspect-ratio:650/919;filter:none;pointer-events:auto;z-index:3;width:min(21.6%,26.45svh);height:auto;position:absolute;top:23.8%;right:6.6%}.portrait .portrait-frame{pointer-events:none;width:100%;max-width:100%;height:100%;position:absolute;inset:0}.frame-caption{z-index:1;color:#17384d;white-space:nowrap;pointer-events:none;justify-content:center;align-items:center;width:86%;height:7.5%;font-family:DM Sans,sans-serif;font-size:clamp(11px,1.05vw,16px);line-height:1;display:flex;position:absolute;top:6.3%;left:7%}.photo-puzzle{background:#173653;width:82.55%;height:72.3%;position:absolute;top:15.3%;left:9.1%;overflow:hidden}.photo-tile{--tile-photo:url(/assets/lego/identity-photo.webp);background-image:var(--tile-photo);appearance:none;cursor:pointer;background-size:300% 300%;border:0;width:33.3334%;height:33.3334%;padding:0;transition:left .23s,top .23s;position:absolute;box-shadow:inset 2px 2px 2px #fff5,inset -3px -3px 3px #172c4559}.photo-tile:disabled{cursor:default}.photo-tile:focus-visible{outline-offset:-4px;z-index:1}.puzzle-stud{aspect-ratio:1;background-image:var(--tile-photo);pointer-events:none;border-radius:50%;width:24%;display:block;position:absolute;top:21%;box-shadow:inset 0 -2px 2px #07192d80,1px 2px 2px #07192d54}.puzzle-stud.one{left:13%}.puzzle-stud.two{left:63%}.stud-face{background-image:var(--tile-photo);border-radius:50%;position:absolute;inset:0;overflow:hidden;transform:translate(-.5px,-1.4px);box-shadow:inset .6px .7px 1px #ffffff5c,inset -.7px -.8px 1px #07192d45}.stud-face:after{content:"";background:radial-gradient(at 28% 20%,#ffffff3b,#0000 53%),linear-gradient(135deg,#ffffff12 0%,#0000 42%,#07192d1f 100%);border-radius:50%;position:absolute;inset:0}.portrait .revealed-photo{object-fit:fill;width:100%;max-width:100%;height:100%}.resolve-button{width:auto;min-width:0;max-width:75%;height:7.5%;padding:0 calc(var(--hero-unit)*.7);color:#fff;text-shadow:0 1px 1px #86132970;white-space:nowrap;cursor:pointer;background:linear-gradient(#fa7273 0%,#e93d45 24%,#ce202d 52%,#b91526 100%);border:0;border-radius:999px;font-size:clamp(11px,1.05vw,15.12px);font-weight:500;line-height:1.05;position:absolute;top:90.2%;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:inset 0 1px 1px #ffffffa1,inset 0 -1px 2px #700d2370,0 2px #861329,0 3px 3px #5b192336}.resolve-button:before{content:"";pointer-events:none;background:linear-gradient(#ffffff57,#ffffff06);border-radius:999px;height:31%;position:absolute;top:9%;left:10%;right:10%}.resolve-button:active{background:linear-gradient(#d93443,#b71a29);translate:0 1px;box-shadow:inset 0 1px 3px #700d2380,0 1px #861329}.resolve-button:disabled{opacity:.85;cursor:default}.tv{aspect-ratio:1000/1115;pointer-events:none;width:min(24.7%,33.3svh);height:auto;position:absolute;bottom:16.2%;left:3.1%}.tv-frame{object-fit:contain;filter:none;width:100%;height:100%;position:absolute;inset:0}.tv-screen{object-fit:cover;border-radius:13%;width:58%;height:33%;position:absolute;top:41%;left:21%}.lego-ground{z-index:4;pointer-events:none;background:url(/assets/lego/ground.webp) bottom/100% 100% no-repeat;width:min(1080px,100% - 64px);height:5.1%;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.lego-character{aspect-ratio:140/209;z-index:3;will-change:transform;width:5.4%;position:absolute;bottom:3.9%;left:0}.lego-character[role=button]{cursor:pointer;touch-action:manipulation;outline-offset:4px}.lego-character[role=button]:before{content:"";z-index:1;width:max(100%,44px);height:max(100%,44px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lego-character[role=button]:focus-visible{border-radius:4px;outline:2px solid #b74b3b}.lego-character[data-chat-paused=true]{visibility:hidden;pointer-events:none}.character-sprite{background:url(/assets/lego/character-wave.webp) 0/800% 100% no-repeat;width:100%;height:100%;position:absolute;inset:0}.character-speech{z-index:2;white-space:nowrap;opacity:0;background:#fff;border:1px solid #e8e6e2;border-radius:10px;padding:7px 10px;font-family:DM Sans,sans-serif;font-size:clamp(11px,1.1vw,16px);line-height:1.2;transition:opacity .4s;position:absolute;top:28%;left:calc(100% + 8px);box-shadow:0 2px 7px #0000000a}.character-speech:after{content:"";background:#fff;border-bottom:1px solid #e8e6e2;border-left:1px solid #e8e6e2;width:8px;height:8px;position:absolute;top:50%;left:-5px;transform:translateY(-50%)rotate(45deg)}.speech-left .character-speech{left:auto;right:calc(100% + 8px)}.speech-left .character-speech:after{border-top:1px solid #e8e6e2;border-bottom:0;border-left:0;border-right:1px solid #e8e6e2;left:auto;right:-5px}@media (prefers-reduced-motion:reduce){.availability:before,.character-speech{opacity:1}}@media (width<900px),(height<700px),(pointer:coarse){.lego-hero[data-viewport]{height:auto;min-height:0}.hero-stage{width:min(var(--width), calc(100% - 2 * var(--page-gutter)));grid-template-columns:minmax(0,1fr) minmax(min(10rem,60%),1fr);align-items:center;gap:clamp(1rem,4vw,2rem);height:auto;margin-inline:auto;padding-block:clamp(1.5rem,5vw,3.5rem) 6.5rem;display:grid;position:relative;inset:auto;transform:none}.greeting,.intro,.tv,.portrait{min-width:0;max-width:100%;position:relative;inset:auto}.greeting{grid-column:1/-1;width:auto}.greeting h1{white-space:normal;letter-spacing:-.035em;overflow-wrap:anywhere;flex-wrap:wrap;gap:.13em;width:auto;font-size:clamp(2rem,6.8vw,4.625rem)}.availability{white-space:normal;margin-bottom:.8rem;font-size:clamp(.75rem,1.7vw,.9375rem)}.peace{width:.74em;height:1em}.tv{grid-area:2/1;justify-self:center;width:min(100%,16.75rem)}.portrait{grid-area:2/2;justify-self:center;width:min(100%,14.5rem);margin-block-end:1.5rem}.frame-caption{font-size:clamp(.6875rem,1.5vw,.9375rem)}.resolve-button{min-width:44px;min-height:44px;padding-inline:.65rem;top:88%}.intro{grid-column:1/-1;justify-self:center;width:100%;max-width:63ch;font-size:clamp(.9375rem,2vw,1.125rem);line-height:1.55}.lego-ground{width:min(var(--width), calc(100% - 2 * var(--page-gutter)));height:clamp(20px,4vw,36px)}.lego-character{width:clamp(38px,8%,58px)}.lego-character .character-speech{white-space:normal;width:max-content;max-width:min(8rem,27vw)}}@media (width>=640px) and (height<700px){.hero-stage{grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));padding-top:clamp(1rem,4vh,2rem)}.intro{grid-area:2/1}.tv{grid-column:2}.portrait{grid-column:3}}@media (width<600px){.hero-stage{grid-template-columns:minmax(0,1fr)}.tv{width:min(100%,12.5rem,54vw)}}@media (width>=600px) and (pointer:coarse) and (height<500px){.hero-stage{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.intro{grid-area:2/1}.tv{grid-column:2;width:min(100%,12.5rem,54svh)}}.work{background:#0b0b0b;padding:0;position:relative;overflow:visible}.work-viewport{isolation:isolate;color:#f4f4f2;background:#0b0b0b;height:100svh;min-height:650px;padding-top:calc(6.8svh + 86px);position:sticky;top:0;overflow:clip}.work-shell{z-index:2;width:min(1080px,100% - 64px);margin:auto;position:relative}.work-heading .section-heading{text-align:center;margin:0;font-size:clamp(50px,4.6vw,66px);line-height:1.05}.folder-window{touch-action:pan-y;padding-top:5px;overflow:visible}.folder-window::-webkit-scrollbar{display:none}.folder-window:focus-visible{outline-offset:6px}.folder-rail{will-change:transform;gap:28px;width:100%;display:flex;position:relative}.folder-card{isolation:isolate;background:#131313;border-radius:24px;flex:0 0 calc(50% - 14px);min-width:0;height:min(560px,100svh - 330px);display:block;position:relative}.folder-case-link{border-radius:inherit;height:100%;display:block}.folder-card>.project-listen{z-index:1;position:absolute;inset-block-start:18px;inset-inline-end:18px}.folder-back{background:#131313;border-radius:24px;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14}.folder-back img{object-fit:cover;object-position:center;transform-origin:50% 80%;border-radius:18px;width:calc(100% - 16px);max-width:none;height:52%;transition:transform .55s cubic-bezier(.2,.7,.2,1);position:absolute;top:8px;left:8px;transform:translateY(24px)scale(.96)}.folder-front{left:8px;right:8px;top:var(--folder-closed,153px);background:linear-gradient(165deg,#282828,#202020 38%);border-radius:0 21px 19px 19px;padding:24px 24px 20px;transition:top .55s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:8px;box-shadow:0 -2px 3px #0005,inset 0 1px #ffffff14}.folder-tab{clip-path:polygon(0 0,78% 0,100% 100%,0 100%);background:#282828;border-radius:20px 22px 0 0;width:36%;height:29px;position:absolute;top:-25px;left:0;box-shadow:inset 0 1px #ffffff14}.folder-name{position:relative}.folder-type{letter-spacing:1.4px;color:#b5b5b1;margin-bottom:10px;font-size:11px;line-height:1.2;display:block}.folder-title{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.folder-title h3{letter-spacing:-.8px;max-width:82%;margin:0;font-family:DM Sans,sans-serif;font-size:clamp(26px,2.3vw,33px);font-weight:500;line-height:1.08}.folder-explore{white-space:nowrap;color:#b5b5b1;align-items:center;gap:6px;padding-top:6px;font-size:12px;line-height:1.2;display:flex}.folder-explore svg{width:16px;height:16px}.folder-details{position:absolute;bottom:20px;left:24px;right:24px}.folder-subtitle{max-width:96%;margin:0 0 14px;font-family:Instrument Serif,serif;font-size:clamp(23px,1.85vw,27px);font-style:italic;font-weight:400;line-height:1.14}.folder-confidential{color:#7d352d;letter-spacing:.6px;background:#f9ded8;border-radius:20px;margin-bottom:11px;padding:4px 10px;font-size:11px;line-height:1.2;display:inline-block}.folder-metrics{color:#f4f4f2;border-top:1px solid #ffffff14;padding-top:12px;font-size:14px;line-height:1.4}.folder-metrics p+p{color:#b5b5b1;margin-top:2px}.folder-tags{letter-spacing:.5px;text-transform:uppercase;color:#b5b5b1;flex-wrap:wrap;gap:9px;margin-top:14px;font-size:11px;line-height:1.3;display:flex}.folder-tags span+span:before{content:"·";margin-right:9px}.folder-card:is(:hover,:has(:focus-visible)) .folder-front{top:var(--folder-open,228px)}.folder-card:is(:hover,:has(:focus-visible)) .folder-back img{transform:translateY(-3px)scale(1)}.folder-card:is(:hover,:has(:focus-visible)) .folder-explore{color:#f4f4f2}@media (height<=760px){.work-viewport{padding-top:calc(6.8svh + 73px)}.work-heading{margin-bottom:24px}.work-heading .section-heading{font-size:50px}.folder-card{height:calc(100svh - 260px)}}.dark-content{padding-bottom:0}[data-viewport]{min-height:100svh}.work{height:100svh;min-height:650px;overflow:visible}.work-viewport{height:100%;min-height:650px;padding-top:clamp(65px,11svh,100px);position:relative}.folder-card{height:min(560px,100svh - 280px)}.work-heading{margin-bottom:35px}.work-heading .section-heading{font-size:clamp(50px,4.6vw,66px)}.bottom-dock{z-index:50;width:max-content;max-width:calc(100% - 150px);position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.bottom-navigation{grid-template-columns:86px 1px repeat(3,var(--nav-link-width)) auto;column-gap:var(--nav-gap);width:100%;height:66px;padding:12px var(--nav-inset);color:#101010;-webkit-backdrop-filter:none;backdrop-filter:none;filter:none;box-shadow:none;isolation:isolate;background:#fff;border-radius:999px;justify-content:center;align-items:center;display:grid;position:relative}.dock-companion{aspect-ratio:140/209;color:#101010;cursor:pointer;touch-action:manipulation;background:0 0;border:0;width:auto;height:100%;padding:0;position:absolute;bottom:0;left:calc(100% + 20px)}.dock-companion[hidden]{display:none}.dock-companion:focus-visible{outline:2px solid var(--red);outline-offset:5px;border-radius:6px}.dock-companion-art{background:url(/assets/lego/character-wave.webp) 0 0/800% 100% no-repeat;width:100%;height:100%;display:block}.dock-companion[data-waving=true] .dock-companion-art{animation:.96s steps(7,end) both dock-wave}@keyframes dock-wave{0%{background-position:0 0}to{background-position:100% 0}}.dock-companion .character-speech{pointer-events:none;font-size:13px;top:-38px;left:auto;right:0}.dock-companion .character-speech:after{top:100%;left:auto;right:24px;transform:translateY(-50%)rotate(-45deg)}.dock-companion[data-greeting=true] .character-speech{opacity:1}.header .logo{background:#000}.dock-logo{color:#fff;background:#000;place-items:center;width:86px;height:36px;font:italic 22px/1 Instrument Serif,serif;transition:background .25s;display:grid;-webkit-mask:url(/assets/logo-mask.svg) 50%/contain no-repeat;mask:url(/assets/logo-mask.svg) 50%/contain no-repeat}.dock-logo:hover,.dock-logo:focus-visible{background:var(--red)}.dock-divider{background:#d6d6d6;width:1px;height:31px}.dock-link{white-space:nowrap;width:100%;height:32px;font:400 18px/1 DM Sans,sans-serif;display:block;position:relative}.dock-link-default,.dock-link-hover{place-items:center;transition:opacity .18s;display:grid;position:absolute;inset:0}.dock-link-hover{opacity:0;color:var(--red);font:italic 20px/1 Instrument Serif,serif}.dock-link:hover .dock-link-default,.dock-link:focus-visible .dock-link-default{opacity:0}.dock-link:hover .dock-link-hover,.dock-link:focus-visible .dock-link-hover{opacity:1}.lego-opinions{height:auto;min-height:max(650px,100svh);padding:65px 0 110px}.footer-viewport{background:#0c0c0d;flex-direction:column;justify-content:center;gap:38px;height:auto;min-height:max(650px,100svh);padding:35px 0 140px;display:flex}.footer-viewport .skills-tools-section{padding:0}.footer-viewport .molded-card{min-height:345px;padding:26px 24px 22px}.footer-viewport .molded-card h2{margin-bottom:21px;font-size:34px}.footer-viewport .piece-stack{min-height:240px}.footer-viewport .skill-stack{gap:16px 10px}.footer-viewport .skill-visual{padding:10px 11px;font-size:12px}.footer-viewport .tool-piece{max-width:80px}.footer-viewport .tool-stack{gap:7px 8px}.footer-viewport .social-footer{padding:0 32px}.footer-viewport .social-footer-inner{width:100%;max-width:742px}.footer-viewport .social-footer{--social-key-size:100px}.key-name.resume-label{text-align:center;white-space:normal;width:190px;font-family:DM Sans,sans-serif;line-height:1.35;top:calc(100% + 8px);left:50%;translate:-50% 4px}.social-key:hover .resume-label,.social-key:focus-visible .resume-label{translate:-50%}.lego-character:not([data-motion]){left:47.3%}@media (height<=780px){.work-viewport{padding-top:65px}.folder-card{height:calc(100svh - 290px)}.work-heading{margin-bottom:28px}.lego-opinions{padding:45px 0 108px}.lego-opinions h2{font-size:58px}.opinions-caption{margin:10px 0 37px}.sticky-note{padding-top:30px;padding-bottom:26px}.sticky-note blockquote{font-size:14px;line-height:1.55}.footer-viewport{gap:29px;padding-top:28px;padding-bottom:133px}.footer-viewport .molded-card{min-height:330px;padding-top:24px;padding-bottom:20px}.footer-viewport .piece-stack{min-height:230px}.footer-viewport .social-footer{--social-key-size:92px}}@media (prefers-reduced-motion:reduce){.dock-link-default,.dock-link-hover,.dock-logo{transition:none}.dock-companion-art{animation:none!important}.dock-companion .character-speech{opacity:0;transition:none}.dock-companion[data-greeting=true] .character-speech{opacity:1}}main:not([data-scroll-mode=snap]) .work,main:not([data-scroll-mode=snap]) .work-viewport{height:auto;min-height:0}main:not([data-scroll-mode=snap]) .work-viewport{padding-block:clamp(2.75rem,7vw,5rem)}main:not([data-scroll-mode=snap]) .work-shell{width:min(var(--width), calc(100% - 2 * var(--page-gutter)))}main:not([data-scroll-mode=snap]) .folder-rail{will-change:auto;grid-template-columns:repeat(auto-fit,minmax(min(100%,21rem),1fr));gap:clamp(1rem,3vw,1.75rem);display:grid;transform:none}main:not([data-scroll-mode=snap]) .folder-card{overflow-wrap:anywhere;height:auto;padding:8px}main:not([data-scroll-mode=snap]) .folder-case-link{grid-template-rows:clamp(7rem,26vw,13rem) auto;display:grid}main:not([data-scroll-mode=snap]) .folder-back{position:relative;inset:auto}main:not([data-scroll-mode=snap]) .folder-card .folder-back img{width:100%;height:100%;position:static;transform:none}main:not([data-scroll-mode=snap]) .folder-card .folder-front{padding:clamp(1rem,3vw,1.5rem);position:relative;inset:auto}main:not([data-scroll-mode=snap]) .folder-tab{height:22px;top:-18px}main:not([data-scroll-mode=snap]) .folder-title h3{max-width:none;font-size:clamp(1.4rem,3.5vw,2rem)}main:not([data-scroll-mode=snap]) .folder-explore{flex:none}main:not([data-scroll-mode=snap]) .folder-details{margin-top:1rem;position:static}@media (width<900px),(height<700px),(pointer:coarse){.work-heading .section-heading,.lego-opinions h2{font-size:clamp(2.5rem,7vw,4.125rem)}.lego-opinions{min-height:0;padding:clamp(3rem,7vw,5rem) 0}.footer-viewport{min-height:0;padding-block:clamp(3rem, 7vw, 4rem) calc(var(--dock-clearance) + 3rem)}.footer-viewport .molded-card{min-height:0;padding-inline:clamp(1rem,3.5vw,1.5rem)}.footer-viewport .piece-stack{min-height:0}.footer-viewport .social-footer{padding-inline:var(--page-gutter)}}@media (width<730px){.social-footer .social-key-row{--social-key-size:clamp(54px, 17vw, 84px);grid-template-columns:repeat(3, var(--social-key-size));justify-content:center;gap:26px clamp(10px,4vw,22px);display:grid}.social-footer .key-name,.social-footer .key-name.resume-label{white-space:normal;text-align:center;overflow-wrap:anywhere;max-width:100%;font-size:.75rem}.corner-tape-top{right:-4px}.corner-tape-bottom{left:-4px}}@media (width<560px){.footer-viewport .tool-stack{grid-template-columns:repeat(auto-fit,minmax(44px,1fr))}.footer-viewport .tool-piece{min-height:44px}}:root{--nav-gap:12px;--nav-link-width:80px;--nav-inset:16px}.header[data-below-hero=true]{display:none}@media (width<900px),(height<700px),(pointer:coarse){:root{--nav-link-width:72px}header.header.shell[data-below-hero]:not(.case-study-chrome>header){margin:var(--page-gutter) auto 0;width:min(var(--width), calc(100% - 2 * var(--page-gutter)));display:flex;position:relative;top:auto;left:auto;transform:none}.bottom-dock{max-width:calc(100% - 128px);bottom:max(12px, env(safe-area-inset-bottom))}.bottom-navigation{grid-template-columns:60px 1px repeat(3, var(--nav-link-width)) auto;height:auto;min-height:56px;padding-block:6px}.dock-logo{width:60px;min-height:44px}.dock-link{white-space:normal;min-height:44px;font-size:.875rem}.dock-link-hover{font-size:1.0625rem}.dock-companion{width:44px;height:auto;left:calc(100% + 12px)}}@media (width<750px){:is(header.header.shell,.case-study-chrome>header.header.shell){width:calc(100% - 2 * var(--page-gutter));gap:clamp(8px,2vw,20px)}:is(header.header.shell,.case-study-chrome>header.header.shell) .logo{flex:none;width:clamp(64px,12vw,90px);height:44px;font-size:1.125rem}:is(header.header.shell,.case-study-chrome>header.header.shell) nav{gap:var(--nav-gap);width:auto;min-width:0;padding:6px var(--nav-inset);border-radius:24px;font-size:clamp(.875rem,2vw,1rem);line-height:1.25}:is(header.header.shell,.case-study-chrome>header.header.shell) nav>a{min-width:44px;width:var(--nav-link-width);white-space:normal;overflow-wrap:anywhere;flex:none;height:auto;min-height:44px;padding:4px clamp(4px,1.5vw,12px)}:is(header.header.shell,.case-study-chrome>header.header.shell) nav>a:is(:hover,:focus-visible){font-size:inherit;line-height:inherit}}.mobile-menu{display:none}@media (width<600px),(height<500px){:root{--dock-clearance:78px}:is(header.header.shell,.case-study-chrome>header.header.shell)>nav,.bottom-dock>.bottom-navigation{display:none}.mobile-menu{pointer-events:auto;display:block}:is(.mobile-menu-trigger,.mobile-menu-audio .audio-control){--brick-face:var(--red);background:var(--brick-face);color:#fff;cursor:pointer;touch-action:manipulation;border:1px solid #a52420;border-radius:6px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:6px 10px;font-size:1.1875rem;font-weight:700;line-height:1.1;transition:box-shadow .14s,transform .14s,background-color .14s;display:flex;position:relative;box-shadow:inset 0 1px #fff6,inset 0 -2px #8e211b66,0 4px #96251f}.mobile-menu-trigger:before{content:"";background:var(--brick-face);width:14px;height:6px;box-shadow:inset 0 1px #fff6, 18px 0 var(--brick-face);pointer-events:none;border-radius:3px 3px 0 0;position:absolute;top:-6px;left:10px}.mobile-menu svg{flex:none;transition:transform .16s}.mobile-menu-audio .audio-control{width:auto;min-width:0;height:auto}.mobile-menu-audio .audio-control[aria-pressed=false]{--brick-face:#a52723;color:#fff;box-shadow:inset 0 2px 3px #761915,0 2px #761915}.mobile-menu-panel[open] .audio-control svg{animation:.24s ease-out menu-icon-snap}@keyframes menu-icon-snap{0%{scale:.78}60%{scale:1.2}to{scale:1}}.mobile-menu-audio .audio-control[aria-pressed=false] svg{transform:rotate(-12deg)}@media (hover:hover){.mobile-menu :is(button,a):hover svg{transform:translateY(-2px)scale(1.16)}.mobile-menu .audio-control:hover{color:#fff;background:var(--brick-face)}}.mobile-menu :is(.mobile-menu-trigger,.audio-control):active{transform:translateY(3px);box-shadow:inset 0 2px 3px #761915,0 1px #761915}.mobile-menu :is(button,a):active svg{transform:scale(.82)}.mobile-menu :is(button,a):focus-visible{outline-offset:2px;outline:2px solid #98362a}html:has(.mobile-menu-panel[open]){overflow:hidden}.mobile-menu-panel{--menu-edge:4.5rem;--menu-end:max(var(--page-gutter), env(safe-area-inset-right));inset:auto var(--menu-end) auto auto;top:var(--menu-edge);width:min(17rem, calc(100% - var(--menu-end) - 1rem));max-height:calc(100dvh - var(--menu-edge) - 1rem);overscroll-behavior:contain;scrollbar-width:thin;margin:0;padding:0;position:fixed;overflow:auto}.mobile-menu-panel[data-dock=true]{top:auto;bottom:var(--menu-edge)}.mobile-menu-content{padding:0 10px 14px}.mobile-menu-heading{justify-content:space-between;align-items:center;padding-left:6px;display:flex}.mobile-menu-heading h2{font-size:1.125rem;font-weight:500}.mobile-menu-close{color:#79543b;cursor:pointer;background:0 0;border:0;place-items:center;width:44px;height:44px;padding:0;display:grid}.mobile-menu-close:is(:hover,:focus-visible){color:#a54836;background:#e8d7c3}.mobile-menu-links{gap:4px;display:grid}.mobile-menu-links a{color:#79543b;overflow-wrap:anywhere;background:#f4eadc;border:1px solid #e4d4c1;border-bottom:2px solid #dac2a8;border-radius:1px;align-items:center;gap:9px;min-height:44px;padding:6px 10px;font-size:.9375rem;display:flex}.mobile-menu-links a:is(:hover,:focus-visible){background:#eedcc7;border-color:#c49b77}.mobile-menu-links a:focus-visible{outline-offset:-2px}.mobile-menu-audio .audio-controls{grid-template-columns:repeat(auto-fit,minmax(min(100%,6.5rem),1fr));align-items:stretch;gap:8px;margin-top:8px;display:grid}@media (prefers-reduced-motion:reduce){.mobile-menu :is(button,a,svg){transition:none;transform:none!important}.mobile-menu-panel[open] .audio-control svg{animation:none}}.bottom-dock{left:auto;right:calc(var(--page-gutter) + 52px);width:max-content;transform:none}.bottom-dock .dock-companion{left:calc(100% + 8px)}.bottom-dock .dock-companion .character-speech{display:none}}@media (width<600px),(pointer:coarse) and (height<500px){:root{--mobile-nav-height:calc(64px + env(safe-area-inset-top))}html{scroll-padding-top:var(--mobile-nav-height)}header.header.shell[data-below-hero]:not(.case-study-chrome>header),.case-study-chrome>header.header.shell[data-below-hero]{width:100%;max-width:none;height:auto;min-height:var(--mobile-nav-height);padding:calc(8px + env(safe-area-inset-top)) max(var(--page-gutter), env(safe-area-inset-right)) 8px max(var(--page-gutter), env(safe-area-inset-left));pointer-events:auto;background:#fafafa;border-bottom:1px solid #10101014;margin:0;display:flex;position:sticky;top:0;left:auto;transform:none}header.header.shell[data-below-hero]>.logo,.case-study-chrome>header.header.shell[data-below-hero]>.logo{width:90px;height:44px;font-size:1.125rem}.mobile-menu-trigger[data-icon-only=true]{width:44px;height:44px;padding:0}.mobile-menu-trigger[data-icon-only=true]:before{width:10px;box-shadow:inset 0 1px #fff6, 15px 0 var(--brick-face);left:calc(50% - 12px)}.mobile-menu-trigger[data-icon-only=true] svg{width:24px;height:24px}}@media (pointer:coarse){:is(header.header.shell,.case-study-chrome>header.header.shell) nav>a{height:auto;min-height:44px}}html:has(.bottom-dock){scroll-padding-bottom:var(--dock-clearance)}.social-key:not(:hover):not(:focus-visible) :is(.key-art,.key-name),.dock-link:not(:hover):not(:focus-visible) :is(.dock-link-default,.dock-link-hover),.dock-companion[data-greeting=false] .character-speech,.lego-character:not(:hover):not(:focus-visible) .character-speech,.personal-canvas .ap-shuffle-tip,.movable-piece:not(.is-held) .piece-visual{transition-duration:0s;transition-delay:0s}.folder-card:not(:hover):not(:has(:focus-visible)) :is(.folder-front,.folder-back img){transition-duration:0s;transition-delay:0s}.movable-piece.is-resetting{transition:none}
