:root{--portfolio-font:"Portfolio Mono";--portfolio-crust:#11111b;--portfolio-mantle:#181825;--portfolio-base:#1e1e2e;--portfolio-surface:#313244;--portfolio-rule:#585b70;--portfolio-muted:#bac2de;--portfolio-secondary:#b4befe;--portfolio-accent:#fab387;--portfolio-hover:#f5c2e7;--portfolio-text:#cdd6f4;--portfolio-logo-tile:#e6e4e3;--portfolio-logo:url("/assets/images/ek-terminal-logo.svg")}
/* Perspective copy and video share one responsive grid in every theme.
   The export's 261px wrapper / 350px text minimum caused overflow. */
#main .framer-84lhbr-container .framer-kt2Of .framer-qwqb05{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px);align-items:center}
#main .framer-84lhbr-container .framer-kt2Of :is(.framer-5vk3vf,.framer-1tabqo7,.framer-1r5p51i){width:100%;min-width:0}
#main .framer-84lhbr-container .framer-kt2Of .framer-1tabqo7{justify-content:flex-start;overflow:visible;padding:0}
#main .framer-84lhbr-container .framer-kt2Of :is(.framer-1ly3feo,.framer-e8pqjs){width:100%;max-width:320px;min-width:0}
#main .framer-84lhbr-container .framer-kt2Of .framer-90o7ml{width:100%;min-width:0;max-width:100%;--framer-text-wrap-override:pretty}
#main .framer-84lhbr-container .framer-90o7ml p.framer-text{text-align:left;--framer-text-alignment:left;text-wrap:pretty}
@media(max-width:809.98px){
 #main .framer-84lhbr-container .framer-kt2Of .framer-qwqb05{grid-template-columns:minmax(0,1fr);gap:32px}
 #main .framer-84lhbr-container .framer-kt2Of .framer-5vk3vf{display:none}
 #main .framer-84lhbr-container .framer-kt2Of .framer-1r5p51i{grid-row:1}
 #main .framer-84lhbr-container .framer-kt2Of .framer-1tabqo7{grid-row:2}
 #main .framer-84lhbr-container .framer-kt2Of :is(.framer-1ly3feo,.framer-e8pqjs){max-width:none}
}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-7cpXu .framer-6oiAr .framer-5hbn1x{flex:1 1 auto;width:auto!important;min-width:0;justify-content:flex-start}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-7cpXu .framer-6oiAr .framer-kobefr{flex:0 1 auto;min-width:0;max-width:100%;white-space:normal!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-7cpXu .framer-6oiAr .framer-kobefr h3{font-size:14px!important;line-height:1.3!important;text-align:left!important;white-space:normal!important;overflow-wrap:break-word}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-7cpXu .framer-6oiAr :is(.framer-dv0iz2,.framer-k57agj){display:none}
@font-face{font-family:Portfolio Mono;src:url('/assets/fonts/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vq_ROW4-63bc0715.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Portfolio Mono;src:url('/assets/fonts/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_7PqPRu-5Ip2sSQ-60b62b1d.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]){color-scheme:dark;background:var(--portfolio-crust)}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) body{background:transparent!important;--token-9a651995-efaf-49da-a568-228444b5e857:var(--portfolio-text);--token-14b27f4f-f436-4ede-870b-1ebeaf6b9ad9:var(--portfolio-muted);--token-9da3c93d-8bde-4346-b3af-f72138272bc4:var(--portfolio-muted);--token-2ddea70d-68be-48e4-aeb8-1d8413d879dc:var(--portfolio-mantle);--token-13fee5e7-7a34-4ebb-aee4-0965beba6f15:var(--portfolio-accent);--token-fc4477be-acd6-48f3-ab36-36bd6c8a05cf:var(--portfolio-base);--token-2a928cdb-8e14-441b-8ce9-c0a4f022de2c:var(--portfolio-rule)}
#portfolio-theme-backdrop{display:none;position:fixed;inset:0;z-index:-1;pointer-events:none;background:#11111b;overflow:hidden}
/* Let the page/panel surface show through the capabilities card gaps. */
html:not([data-portfolio-theme="tactile"]) #main :is(.portfolio-capabilities-surface,div:has(>div>.cpx-row),.cpx-row){background:transparent!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #portfolio-theme-backdrop{display:block}
#portfolio-theme-backdrop::before{content:"";position:absolute;inset:-60px;background:linear-gradient(130deg,#cba6f750,#1e1e2e99 50%,#fab38740),url('/assets/images/VFwXpCpdzkJ4tMvgOVw4JaFR7k-8dbcd942.avif') center/cover;filter:blur(48px);opacity:.55}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-theme-page,
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main [data-layout-template],
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-light-surface{background-color:transparent!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-frost-panel{background:color-mix(in srgb,var(--portfolio-base) 78%,transparent)!important;border-radius:18px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--portfolio-text) 11%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-sizing:border-box;width:calc(100% - 48px)!important;max-width:1392px!important;margin:0 auto 24px!important;padding:48px 32px!important;height:auto!important;min-width:0}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-frost-first{margin-top:80px!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-ra0ddc.portfolio-frost-panel{padding-top:64px!important;padding-bottom:64px!important;gap:48px!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-84lhbr-container>.framer-kt2Of{width:100%!important;padding:0!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-text{font-family:var(--portfolio-font),monospace!important;font-style:normal!important;font-weight:400!important;color:var(--portfolio-text)!important;--framer-font-family:var(--portfolio-font),monospace!important;--framer-font-style:normal!important;--framer-text-color:var(--portfolio-text)!important;overflow-wrap:normal}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main p.framer-text{line-height:1.3!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main :is(h1,h2,h3,h4).framer-text{font-weight:500!important;letter-spacing:-.045em!important;text-wrap:balance}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main :is(h1,h2,h3,h4).framer-text :is(span,em,strong){font-weight:inherit!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-display-heading.framer-text{font-size:clamp(28px,3.75vw,48px)!important;line-height:1.08!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-display-heading.framer-text :is(span,em,strong){font-size:inherit!important;line-height:inherit!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-section-heading.framer-text{font-size:clamp(20px,1.85vw,24px)!important;line-height:1.15!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main :is(.portfolio-body-copy,.portfolio-section-heading,h4.framer-text) :is(span,em,strong){font-size:inherit!important;line-height:inherit!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main :is(.portfolio-unjustified,.portfolio-body-copy){text-align:left!important;text-align-last:auto!important;--framer-text-alignment:left!important;word-spacing:normal!important;text-wrap:pretty}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main p.portfolio-body-copy{font-size:clamp(14px,1.25vw,16px)!important;line-height:1.3!important;letter-spacing:-.025em!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-zgpfls :is(.framer-1fuw9xe,.framer-opzxkg,.framer-1x0qqtr,.framer-3qjgy4){width:100%!important;min-width:0}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-zgpfls{display:block!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-zgpfls :is(.framer-1fuw9xe,.framer-opzxkg,.framer-1x0qqtr,.framer-3qjgy4){display:contents!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-zgpfls p.framer-text{display:inline!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-zgpfls .framer-text{white-space:normal!important;overflow-wrap:break-word;font-size:clamp(16px,1.7vw,22px)!important;line-height:1.25!important;letter-spacing:-.035em!important;text-align:left!important;--framer-text-alignment:left!important;text-wrap:pretty}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main h4.framer-text{font-weight:400!important;font-size:clamp(14px,1.55vw,20px)!important;line-height:1.25!important;text-align:left!important;--framer-text-alignment:left!important;letter-spacing:-.035em!important;text-wrap:pretty}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main :is(.framer-s4i0rm .framer-fisyxj,.framer-xxc1dw .framer-9kn7uf){gap:10px!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main :is(.framer-s4i0rm .framer-fisyxj,.framer-xxc1dw .framer-9kn7uf)>div{background:var(--portfolio-logo-tile)!important;border-radius:8px!important;box-shadow:inset 0 0 0 1px #ffffff33}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-theme-cta{background:var(--portfolio-accent)!important;border-radius:999px!important;border-color:color-mix(in srgb,var(--portfolio-accent) 40%,transparent)!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-theme-cta *{color:var(--portfolio-mantle)!important;font-family:var(--portfolio-font),monospace!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-theme-cta:hover{background:var(--portfolio-hover)!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA{background:color-mix(in srgb,var(--portfolio-mantle) 76%,transparent)!important;box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--portfolio-text) 11%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
/* Center the nav's inner row on the same grid as page content. */
@media(min-width:810px){
#main header.framer-wdUAA{padding-left:18px!important;padding-right:18px!important}
#main header.framer-wdUAA .framer-b0lg1m{width:100%!important;max-width:1404px!important;margin-inline:auto!important}
#main header.framer-wdUAA .framer-4g8qbg{width:100%!important;min-width:0!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA{padding-left:56px!important;padding-right:56px!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA .framer-b0lg1m{max-width:1328px!important}
html[data-portfolio-theme="tactile"] #main header.framer-wdUAA{padding-left:57px!important;padding-right:57px!important}
html[data-portfolio-theme="tactile"] #main header.framer-wdUAA .framer-b0lg1m{max-width:1326px!important}
/* Project detail pages use the original content grid without themed panels. */
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]):has(#main .framer-wd55z) #main header.framer-wdUAA{padding-left:18px!important;padding-right:18px!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]):has(#main .framer-wd55z) #main header.framer-wdUAA .framer-b0lg1m{max-width:1404px!important}
}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-nav-link{color:var(--portfolio-text);font-family:var(--portfolio-font),monospace}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-nav-link:hover{color:var(--portfolio-accent)}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header [aria-label="Logo"]{position:relative}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header [aria-label="Logo"]>*{visibility:hidden}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header [aria-label="Logo"]::after{content:"";position:absolute;inset:-5px auto -5px 0;width:70px;background:var(--portfolio-logo) left center/contain no-repeat;pointer-events:none}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-Wqq94{background:color-mix(in srgb,var(--portfolio-mantle) 76%,transparent)!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--portfolio-text) 11%,transparent)}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-Wqq94 :is(.framer-164kqcs,.framer-18y5z36,.framer-miljrw){flex:none!important;width:144px!important;height:72px!important;position:relative}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-Wqq94 :is(.framer-164kqcs,.framer-18y5z36,.framer-miljrw) img{width:100%!important;height:100%!important;object-fit:contain!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-wbGfx a[data-portfolio-preview]{border-radius:8px;background:transparent!important;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--portfolio-text) 11%,transparent)}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-wbGfx a[data-portfolio-preview]:hover,
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-wbGfx a[data-portfolio-preview]:focus-visible{background:color-mix(in srgb,var(--portfolio-accent) 8%,transparent)!important;outline-color:var(--portfolio-accent)}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-project-preview img{box-shadow:0 12px 36px color-mix(in srgb,var(--portfolio-crust) 33%,transparent);outline:1px solid color-mix(in srgb,var(--portfolio-text) 17%,transparent)}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-cursor__shape{border-color:var(--portfolio-accent)!important;background:var(--portfolio-accent)!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-cursor.is-interactive .portfolio-cursor__shape{background:color-mix(in srgb,var(--portfolio-accent) 15%,transparent)!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .cpx-panel{color:var(--portfolio-text);font-family:var(--portfolio-font),monospace}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .cpx-panel :is(.cpx-number,.cpx-vertical-label,.cpx-content>div,.cpx-trigger){font-family:var(--portfolio-font),monospace!important;font-weight:500!important;font-style:normal!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .cpx-vertical-label{font-size:26px!important;letter-spacing:-.055em!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .cpx-content>div:nth-child(2){font-size:22px!important;line-height:1.15!important;text-wrap:balance}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .cpx-content>div:nth-child(3){font-weight:400!important;line-height:1.3!important;letter-spacing:-.035em!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main [data-framer-portal-id] [data-framer-name^="Overlay "]{background:color-mix(in srgb,var(--portfolio-mantle) 96%,transparent)!important;border-radius:16px;box-shadow:0 24px 64px color-mix(in srgb,var(--portfolio-crust) 40%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--portfolio-text) 16%,transparent);overflow:hidden}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main [data-framer-portal-id] [data-framer-name^="Overlay "]>:last-child p.framer-text{font-weight:400!important;font-size:14px!important;line-height:1.35!important;letter-spacing:-.025em!important;text-align:left!important;--framer-text-alignment:left!important;text-wrap:pretty}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main [data-framer-portal-id] [data-framer-name^="Overlay "]>:last-child{padding-bottom:88px!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main [data-framer-portal-id] :is(h2,h3).framer-text{font-size:clamp(22px,2.1vw,28px)!important;line-height:1.15!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main :is(.framer-1obmevy,.framer-bets8p,.framer-1ogsx9w,.framer-12n42oi)[data-framer-portal-id]{background:var(--portfolio-accent)!important;box-shadow:0 4px 20px color-mix(in srgb,var(--portfolio-crust) 40%,transparent),inset 0 0 0 1px #ffffff33;z-index:1200!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main :is(.framer-1obmevy,.framer-bets8p,.framer-1ogsx9w,.framer-12n42oi) .framer-IRM4W{background-color:var(--portfolio-mantle)!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]).framer-css-pending{background:var(--portfolio-mantle)!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]).portfolio-route-active::before,
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-route-veil{background:var(--portfolio-mantle)!important}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]).framer-css-pending::after,
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]).portfolio-route-active::after,
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-route-veil::after{background-image:linear-gradient(90deg,transparent,var(--portfolio-accent),transparent)!important}
.portfolio-theme-switch{position:fixed;z-index:1100;width:56px;height:56px;padding:0;background:#f3f3f3;border:1px solid #21243130;border-radius:999px;color:#212431;box-sizing:border-box;box-shadow:0 8px 24px #11111b24;touch-action:none;user-select:none;-webkit-user-select:none;transition:width .34s cubic-bezier(.22,1,.36,1),transform .34s cubic-bezier(.22,1,.36,1),background .25s,border-color .25s}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-theme-switch{background:var(--portfolio-mantle);border-color:var(--portfolio-rule);color:var(--portfolio-text)}
.portfolio-theme-switch[data-open="true"]{width:160px}
.portfolio-theme-switch[data-open="true"][data-direction="left"]{transform:translateX(-104px)}
.portfolio-theme-switch button{position:absolute;left:5px;top:5px;width:44px;height:44px;display:grid;place-items:center;background:transparent;border:0;border-radius:50%;padding:10px;color:inherit;cursor:pointer;touch-action:none;opacity:0;visibility:hidden;transform:translateX(12px) scale(.8);transition:left .34s cubic-bezier(.22,1,.36,1),transform .34s cubic-bezier(.22,1,.36,1),opacity .18s,visibility .18s,background .2s}
.portfolio-theme-switch button[aria-pressed="true"]{background:#212431;color:#e8e8e8;opacity:1;visibility:visible;transform:none;cursor:grab}
.portfolio-theme-switch[data-open="true"] button{opacity:1;visibility:visible;transform:none;left:calc(5px + var(--portfolio-theme-slot)*52px)}
.portfolio-theme-switch[data-open="true"][data-direction="left"] button{left:calc(109px - var(--portfolio-theme-slot)*52px)}
.portfolio-theme-switch button:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
.portfolio-theme-switch button[aria-pressed="true"]:hover{background:#212431}
.portfolio-theme-switch button:active{transform:scale(.88)}
.portfolio-theme-switch svg{transition:transform .25s}
.portfolio-theme-switch button:hover svg{transform:rotate(-8deg) scale(1.06)}
.portfolio-theme-switch.is-dragging{transition:none;transform:none;box-shadow:0 14px 30px #11111b40}
.portfolio-theme-switch.is-dragging button[aria-pressed="true"]{cursor:grabbing;transition:none;transform:scale(.94)}
.portfolio-theme-switch.is-chosen button[aria-pressed="true"]{animation:portfolio-theme-pop .4s cubic-bezier(.22,1,.36,1)}
@keyframes portfolio-theme-pop{0%{transform:scale(.86)}55%{transform:scale(1.08)}100%{transform:scale(1)}}
.portfolio-theme-floating-hint{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(prefers-reduced-motion:reduce){.portfolio-theme-switch,.portfolio-theme-switch button,.portfolio-theme-switch svg{transition:none!important;animation:none!important}}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-theme-switch button[aria-pressed="true"]{background:var(--portfolio-accent);color:var(--portfolio-mantle)}
.portfolio-theme-switch button:disabled{opacity:.35;cursor:default}
.portfolio-theme-switch[hidden]{display:none}
.portfolio-theme-switch svg,.portfolio-theme-option svg{width:18px;height:18px;flex:none}
.portfolio-theme-switch button:focus-visible,.portfolio-theme-dialog button:focus-visible{outline:2px solid #fab387;outline-offset:3px}
#main header.framer-wdUAA .framer-fsil6w{margin-right:0}
.portfolio-theme-dialog{color:#212431;background:#e8e8e8;border:1px solid #d0d0d0;border-radius:16px;padding:28px;width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box;box-shadow:0 24px 70px #11111b60;font-family:"Hanken Grotesk",sans-serif}
.portfolio-theme-dialog::backdrop{background:#11111b70;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-theme-dialog{color:var(--portfolio-text);background:color-mix(in srgb,var(--portfolio-base) 95%,transparent);border-color:color-mix(in srgb,var(--portfolio-text) 17%,transparent)}
.portfolio-theme-close{position:absolute;top:12px;right:12px;width:32px;height:32px;background:#d5d5d5;border:0;border-radius:50%;color:inherit;font-size:22px;cursor:pointer}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-theme-close{background:var(--portfolio-surface)}
.portfolio-theme-kicker{font:500 11px Portfolio Mono,monospace;color:#686b75;margin:0 0 14px}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-theme-kicker{color:var(--portfolio-secondary)}
.portfolio-theme-dialog h2{font-size:32px;font-weight:500;letter-spacing:-.05em;line-height:1.1;margin:0 32px 10px 0}
.portfolio-theme-dialog p{margin:0 0 24px;font-size:15px;line-height:1.5;opacity:.8}
.portfolio-theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.portfolio-theme-option{border:1px solid #bbb;background:#f5f5f5;color:inherit;border-radius:12px;padding:10px;text-align:left;font:inherit;cursor:pointer}
.portfolio-theme-option[aria-pressed="true"]{border-color:#4f5d75;background:#dde1e7}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-theme-option{background:var(--portfolio-mantle);border-color:var(--portfolio-rule)}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-theme-option[aria-pressed="true"]{background:var(--portfolio-surface);border-color:var(--portfolio-accent)}
.portfolio-theme-option:disabled{opacity:.55;cursor:default}
.portfolio-theme-option strong{display:flex;align-items:center;gap:7px;font-size:16px;font-weight:500;margin:12px 0 5px}
.portfolio-theme-option small{display:block;line-height:1.4;font-size:12px;opacity:.8}
.portfolio-theme-mini{height:94px;background:#e8e8e8;border-radius:6px;overflow:hidden;padding:0 10px 10px;display:block;color:#212431}
.portfolio-theme-mini::before{content:"";display:block;height:14px;background:#212431;margin:0 -10px 12px}
.portfolio-theme-mini::after{content:"";display:block;width:65%;height:6px;background:currentColor;box-shadow:0 12px 0 -1px currentColor,20px 35px 0 8px #4f5d75}
.portfolio-theme-mini[data-mini="frosted"]{color:#cdd6f4;background:radial-gradient(ellipse at 20% 100%,#fab38755,transparent 70%),#27273d}
.portfolio-theme-mini[data-mini="frosted"]::before{background:#181825}
.portfolio-theme-mini[data-mini="frosted"]::after{box-shadow:0 12px 0 -1px currentColor,20px 35px 0 8px #fab387}
.portfolio-theme-mini[data-mini="tactile"]{background:#32302f;color:#ebdbb2}
.portfolio-theme-mini[data-mini="tactile"]::before{background:#32302f}
.portfolio-theme-mini[data-mini="tactile"]::after{box-shadow:0 12px 0 -1px currentColor,20px 35px 0 8px #d79921}
.portfolio-theme-confirm{width:100%;margin-top:22px;min-height:44px;background:#4f5d75;color:#fff;border:0;border-radius:2px;font:500 16px "Hanken Grotesk",sans-serif;padding:12px 20px;cursor:pointer}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-theme-confirm{background:var(--portfolio-accent);color:var(--portfolio-mantle);border-radius:999px}
@media(max-width:809.98px){#main header.framer-wdUAA .framer-fsil6w{margin-right:0}#main header.framer-wdUAA [aria-label="Logo"]{max-width:110px}#main header.framer-wdUAA .framer-vmwth6-container{max-width:110px}html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-frost-panel{border-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}}
@media(max-width:460px){.portfolio-theme-dialog{padding:26px 18px}.portfolio-theme-dialog h2{font-size:28px}.portfolio-theme-options{grid-template-columns:1fr}.portfolio-theme-option{display:grid;grid-template-columns:88px 1fr;gap:14px;align-items:center}.portfolio-theme-mini{height:68px}.portfolio-theme-option strong{margin-top:0}}
@media(pointer:coarse){.portfolio-theme-switch button{width:44px;height:44px}}
@media(max-width:809.98px){
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-frost-panel{width:calc(100% - 24px)!important;margin-bottom:16px!important;padding:32px 20px!important;gap:24px!important}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-ra0ddc.portfolio-frost-panel{padding-top:40px!important;padding-bottom:40px!important;gap:32px!important}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-frost-first{margin-top:80px!important}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-display-heading.framer-text{font-size:clamp(26px,7vw,32px)!important;line-height:1.1!important}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-ra0ddc :is(h2,h3).framer-text{font-size:clamp(26px,7vw,32px)!important;line-height:1.1!important}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .cpx-vertical-label{font-size:22px!important}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .cpx-content>div:nth-child(2){font-size:20px!important}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA:not(.framer-v-gg3skn){background:transparent!important;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA.framer-v-gg3skn{background:color-mix(in srgb,var(--portfolio-mantle) 96%,transparent)!important}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA .framer-fueo70{background:radial-gradient(ellipse at 0 100%,#cba6f714,transparent 65%),color-mix(in srgb,var(--portfolio-mantle) 96%,transparent)!important;backdrop-filter:blur(24px)!important;-webkit-backdrop-filter:blur(24px)!important;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--portfolio-text) 11%,transparent)}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA .framer-1hq0syf{--token-13fee5e7-7a34-4ebb-aee4-0965beba6f15:var(--portfolio-mantle);color:var(--portfolio-text)}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA .framer-1hq0syf,
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA .framer-1hq0syf *{font-family:var(--portfolio-font),monospace!important;font-style:normal!important;--framer-font-family:var(--portfolio-font),monospace!important;--framer-font-style:normal!important}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA .framer-1hq0syf .framer-text{color:var(--portfolio-text)!important;--framer-text-color:var(--portfolio-text)!important}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA .portfolio-nav-link{color:var(--portfolio-text)!important}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA .portfolio-nav-link:hover{color:var(--portfolio-accent)!important}
  html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA .framer-b0lg1m{background:color-mix(in srgb,var(--portfolio-mantle) 76%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--portfolio-text) 11%,transparent)}
}

@supports not (backdrop-filter:blur(16px)){html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .portfolio-frost-panel{background:color-mix(in srgb,var(--portfolio-base) 95%,transparent)!important}html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main header.framer-wdUAA,html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) #main .framer-Wqq94{background:color-mix(in srgb,var(--portfolio-mantle) 96%,transparent)!important}}

/* Frosted corner scale: surfaces 16px, cards/media 12px, controls pill/circle. */
html[data-portfolio-theme="frosted"]{--portfolio-radius-panel:16px;--portfolio-radius-media:12px}
html[data-portfolio-theme="frosted"] #main :is(.portfolio-square-media,.cpx-panel,.framer-1r5p51i,a[data-portfolio-preview]){border-radius:var(--portfolio-radius-media)!important}
html[data-portfolio-theme="frosted"] #main :is(.cpx-panel,.framer-1r5p51i){overflow:hidden}
html[data-portfolio-theme="frosted"] #main :is(img,video,[data-framer-background-image-wrapper],.cpx-mediawrap,.cpx-media){border-radius:inherit!important}
html[data-portfolio-theme="frosted"] #main :is(.framer-s4i0rm .framer-fisyxj,.framer-xxc1dw .framer-9kn7uf)>div{border-radius:var(--portfolio-radius-media)!important}
html[data-portfolio-theme="frosted"] #main .portfolio-frost-panel{border-radius:var(--portfolio-radius-panel)!important}
html[data-portfolio-theme="frosted"] #main header.framer-wdUAA{border-radius:0!important}
html[data-portfolio-theme="frosted"] #main [data-framer-portal-id] [data-framer-name^="Overlay "]{border-radius:var(--portfolio-radius-panel)!important}
html[data-portfolio-theme="frosted"] .portfolio-project-preview{border-radius:var(--portfolio-radius-media)}
html[data-portfolio-theme="frosted"] .portfolio-project-preview img{border-radius:inherit}
html[data-portfolio-theme="frosted"] .portfolio-theme-dialog{border-radius:var(--portfolio-radius-panel)}
html[data-portfolio-theme="frosted"] :is(.portfolio-theme-option,.portfolio-theme-mini){border-radius:var(--portfolio-radius-media)}

/* Occasional discovery hint; its pulse never moves the draggable control. */
.portfolio-theme-switch::after{content:"";position:absolute;inset:-1px;border:1px solid currentColor;border-radius:50%;pointer-events:none;opacity:0}
.portfolio-theme-switch.is-reminding::after{animation:portfolio-theme-reminder-pulse 2.4s ease-out 2}
.portfolio-theme-reminder{position:absolute;top:50%;right:calc(100% + 12px);padding:8px 12px;white-space:nowrap;background:#f3f3f3;color:#212431;border:1px solid #21243120;border-radius:10px;box-shadow:0 4px 16px #11111b14;font:500 12px/1.2 "Hanken Grotesk",sans-serif;letter-spacing:0;pointer-events:none;opacity:0;visibility:hidden;transform:translate(5px,-50%);transition:opacity .3s ease,transform .4s cubic-bezier(.22,1,.36,1),visibility .3s}
.portfolio-theme-switch[data-reminder-side="right"] .portfolio-theme-reminder{right:auto;left:calc(100% + 12px);transform:translate(-5px,-50%)}
.portfolio-theme-switch.is-reminding .portfolio-theme-reminder{opacity:1;visibility:visible;transform:translate(0,-50%)}
html[data-portfolio-theme="frosted"] .portfolio-theme-reminder{background:#181825e8;color:#cdd6f4;border-color:#585b7066;backdrop-filter:blur(12px);border-radius:12px;font-family:"Portfolio Mono",monospace;font-size:11px}
html[data-portfolio-theme="tactile"] .portfolio-theme-reminder{background:#3c3836;color:#ebdbb2;border-color:#665c54;border-radius:0;box-shadow:2px 2px 0 #282828;font-family:"Portfolio Plex",monospace;font-size:11px}
html:is([data-portfolio-theme="frosted"],[data-portfolio-theme="tactile"]) .portfolio-theme-switch::after{border-color:var(--portfolio-accent)}
@keyframes portfolio-theme-reminder-pulse{0%{opacity:0;transform:scale(1)}15%{opacity:.3}100%{opacity:0;transform:scale(1.35)}}
@media(prefers-reduced-motion:reduce){.portfolio-theme-switch.is-reminding::after{animation:none}.portfolio-theme-reminder{transition:none;transform:translate(0,-50%)!important}}

/* Mobile footer: omit the brand statement and let the stack close its gap. */
@media(max-width:809.98px){
 #main .framer-Wqq94 [data-framer-name="Brand description"]{display:none!important}
}
