/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--font-weight-medium:500;--radius-2xl:1rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-parkinsans),Arial,sans-serif;--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.min-h-11{min-height:calc(var(--spacing)*11)}.min-w-11{min-width:calc(var(--spacing)*11)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}.gap-3{gap:calc(var(--spacing)*3)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e+38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-border{border-color:var(--border)}.border-foreground\/20{border-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\/20{border-color:color-mix(in oklab,var(--foreground)20%,transparent)}}.border-foreground\/25{border-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\/25{border-color:color-mix(in oklab,var(--foreground)25%,transparent)}}.bg-card{background-color:var(--card)}.bg-primary{background-color:var(--primary)}.bg-transparent{background-color:#0000}.px-3{padding-inline:calc(var(--spacing)*3)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-card-foreground{color:var(--card-foreground)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a))drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a)drop-shadow(0 1px 1px #0000000f)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:bg-foreground\/10:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-foreground\/10:hover{background-color:color-mix(in oklab,var(--foreground)10%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-4:focus-visible{outline-offset:4px}.focus-visible\:outline-primary:focus-visible{outline-color:var(--primary)}.active\:scale-\[\.98\]:active{scale:.98}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-40:disabled{opacity:.4}}:root{--background:#0d2118;--foreground:#e8eedd;--primary:var(--accent-butter);--primary-foreground:#0d2118;--muted-foreground:#b7cbb8;--secondary-text:#dce6d3;--card:#153226;--card-foreground:#e8eedd;--border:#355443;--grid:#9bbb8e17;--accent-ivory:#f6f1dc;--accent-butter:#f0ce72;--accent-peach:#eba580;--accent-ice:#bcdcdd;--accent-lilac:#d3bce8;--hero-0:var(--accent-ivory);--hero-1:var(--accent-butter);--hero-2:var(--accent-peach);--hero-3:var(--accent-ice);--art-extra:#ffe7bb;--tool-ink:#0d2118;--experiments-ink:var(--accent-butter);--snippets-ink:var(--accent-ice);--nav-height:96px;color-scheme:dark}:root[data-theme=light]{--background:#2d6b4f;--foreground:#fffaea;--muted-foreground:#fff0cc;--secondary-text:#fffaea;--card:#24573f;--card-foreground:#fffaea;--border:#9ec5ad;--grid:#9bbb8e24;--accent-ivory:#fffaea;--accent-butter:#ffda57;--accent-peach:#ffd4b0;--accent-ice:#9aeaf6;--accent-lilac:#ecd4ff;--hero-2:#ffb591;--hero-3:#8de5f3;--art-extra:#ffe19a;color-scheme:light}*{box-sizing:border-box}html{background:var(--background);scroll-padding-top:110px}body{color:var(--foreground);font:400 17px/1.6 var(--font-parkinsans),Arial,sans-serif;-webkit-font-smoothing:antialiased;background-image:linear-gradient(var(--grid)1px,transparent 1px),linear-gradient(90deg,var(--grid)1px,transparent 1px);isolation:isolate;background-size:44px 44px;background-attachment:fixed;margin:0}body:before{width:clamp(200px,30vw,430px);height:min(34svh,340px);transform:translate(calc(var(--doodle-x,0)*1px),calc(var(--doodle-y,0)*1px));right:clamp(12px,2vw,32px);-webkit-mask:url(/images/pt-doodle.webp) 100% 100%/contain no-repeat;mask:url(/images/pt-doodle.webp) 100% 100%/contain no-repeat}body:after,body:before{content:"";opacity:.2;pointer-events:none;z-index:-1;background:#f6f1dc;position:fixed;bottom:16px}body:after{width:clamp(200px,28vw,380px);height:min(34svh,300px);transform:translate(calc(var(--doodle-x,0)*-.65px),calc(var(--doodle-y,0)*-.65px));left:clamp(12px,2vw,32px);-webkit-mask:url(/images/developer-doodle-hand.webp) 0 100%/contain no-repeat;mask:url(/images/developer-doodle-hand.webp) 0 100%/contain no-repeat}@media (min-width:768px) and (max-width:1199px){body:before{height:min(19svh,170px)}}@media (max-height:650px) and (min-width:768px){body:before{height:min(14svh,90px)}body:after{height:min(18svh,110px)}}@media (max-width:767px){body:before{width:min(42vw,190px);height:min(26svh,200px);bottom:96px}body:after{display:none}}::selection{background:var(--primary);color:var(--primary-foreground)}figure,h1,h2,h3,p{margin:0}.scroll-line,.scroll-line-mask{display:block;position:relative}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default}@media (hover:hover) and (pointer:fine){body,html{cursor:url(/images/cursor-butter.svg) 3 3,auto}a,button,input[type=range],select,summary{cursor:url(/images/cursor-butter.svg) 3 3,pointer}[contenteditable=true],input:not([type=range]),textarea{cursor:text}}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent-ice);outline-offset:5px}main:focus{outline:none}img{max-width:100%;height:auto;display:block}.section-space{width:100%;max-width:1344px;margin-inline:auto;padding-inline:clamp(16px,4vw,64px)}.eyebrow,.small-label{text-transform:uppercase;color:var(--muted-foreground);letter-spacing:.06em;font:12px/1.6 monospace}.skip-link{z-index:120;background:var(--primary);color:var(--primary-foreground);padding:12px;position:fixed;top:8px;left:16px;transform:translateY(-180%)}.skip-link:focus{transform:none}.site-header{z-index:40;height:var(--nav-height);background:var(--background);border-bottom:1px solid #0000;position:sticky;top:0}.site-header[data-scrolled=true]{border-bottom-color:var(--border);box-shadow:0 8px 24px #0000001f}.header-inner{align-items:center;gap:28px;width:100%;max-width:1344px;height:100%;margin:auto;padding-inline:clamp(16px,4vw,64px);display:flex}.wordmark{letter-spacing:-.075em;align-items:center;min-height:44px;font-size:34px;font-weight:650;display:inline-flex}.site-header .wordmark span{--logo-progress:0%;--logo-accent:var(--logo-colour);color:var(--foreground);display:inline-block}@supports (color:color-mix(in lab,red,red)){.site-header .wordmark span{color:color-mix(in srgb,var(--foreground),var(--logo-accent)var(--logo-progress))}}.site-header .wordmark span:first-child{--logo-colour:var(--hero-0)}.site-header .wordmark span:nth-child(2){--logo-colour:var(--hero-1)}.site-header .wordmark span:nth-child(3){--logo-colour:var(--hero-2)}.site-header .wordmark span:nth-child(4){--logo-colour:var(--hero-3)}.site-header .wordmark:focus-visible span,.site-header .wordmark:hover span{--logo-progress:100%}.desktop-nav{align-items:center;gap:clamp(20px,2.8vw,44px);margin-left:auto;display:flex}.desktop-nav a{align-items:center;min-height:44px;font-size:15px;font-weight:500;display:inline-flex}.desktop-nav sup,.menu-links sup{opacity:0;color:var(--primary);align-self:flex-start;margin-top:12px;margin-left:2px;font:11px monospace}.desktop-nav a{--nav-progress:0%;--nav-accent:var(--nav-colour);color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.desktop-nav a{color:color-mix(in srgb,var(--foreground),var(--nav-accent)var(--nav-progress))}}.desktop-nav a[data-route=about]{--nav-colour:var(--accent-lilac)}.desktop-nav a[data-route=work]{--nav-colour:var(--accent-ivory)}.desktop-nav a[data-route=services]{--nav-colour:var(--accent-peach)}.desktop-nav a[data-route=experiments]{--nav-colour:var(--accent-butter)}.desktop-nav a[data-route=snippets]{--nav-colour:var(--accent-ice)}.desktop-nav a:focus-visible,.desktop-nav a:hover,.desktop-nav a[aria-current]{--nav-progress:100%}.desktop-nav sup{color:var(--nav-accent)}.desktop-nav a:focus-visible sup,.desktop-nav a:hover sup,.desktop-nav a[aria-current] sup{opacity:1}.header-actions{border-left:1px solid var(--border);align-items:center;gap:4px;padding-left:14px;display:flex}.icon-control,.theme-toggle{width:44px;min-width:44px;height:44px;color:var(--foreground);background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:30px;display:inline-flex}.icon-control svg,.theme-toggle svg{width:20px;height:20px}.icon-control:hover,.theme-toggle:hover{color:var(--primary)}.theme-toggle{display:none}.theme-toggle[data-ready=true]{display:inline-flex}.language-switch{align-items:center;font:11px monospace;display:flex}.language-switch a,.language-switch span{justify-content:center;align-items:center;min-width:32px;min-height:44px;display:inline-flex}.language-switch span{color:var(--muted-foreground)}.menu-trigger{display:none}.menu-overlay{background:var(--background);z-index:80;position:fixed;inset:0}.menu-panel{z-index:81;border:1px solid var(--border);background:var(--card);border-radius:24px;flex-direction:column;justify-content:center;padding:clamp(24px,5vw,60px);display:flex;position:fixed;inset:16px;overflow-y:auto}.menu-top{text-transform:uppercase;justify-content:space-between;align-items:center;font:12px monospace;display:flex;position:absolute;top:16px;left:24px;right:16px}.menu-links{flex-direction:column;display:flex}.menu-about,.menu-home,.menu-links a{letter-spacing:-.04em;align-items:center;min-height:60px;font-size:clamp(30px,7vw,64px);font-weight:600;display:flex}.menu-about:hover,.menu-home:hover,.menu-links a:hover{color:var(--primary)}.menu-home sup{color:var(--muted-foreground);margin-left:8px;font-size:14px}.menu-links sup{opacity:1;align-self:auto;margin:0 0 15px 8px;font-size:14px}.menu-contact{flex-wrap:wrap;gap:16px;margin-top:24px;font-size:14px;display:flex}.contact-bar{background:var(--card);border:1px solid var(--border);z-index:70;border-radius:40px;align-items:center;gap:8px;width:min(540px,100% - 32px);padding:8px 12px 8px 24px;display:none;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.contact-bar>a{overflow-wrap:anywhere;margin-right:auto;font:14px monospace}.no-js-navigation{background:var(--card);flex-wrap:wrap;justify-content:center;gap:12px;font-size:12px;display:flex}.hero-stage{height:calc(100svh - var(--nav-height));width:100%;max-width:1344px;min-height:0;margin:auto;padding-inline:clamp(16px,4vw,64px);overflow:clip}.stage-canvas{flex-direction:column;justify-content:center;align-items:center;gap:32px;height:100%;padding-top:calc(min(70vw,78svh)/3.26087);padding-bottom:32px;display:flex;position:relative}.stage-wordmark{z-index:1;width:min(70vw,78svh);max-width:90%;font:inherit;transform-origin:50%;flex-shrink:0;margin:0;position:relative}.stage-svg{width:100%;display:block;overflow:visible}.stage-goo{opacity:0;pointer-events:none}.hero-stage[data-tool=none] .stage-svg:hover .stage-goo{opacity:1}.hero-stage[data-tool=opacity] .stage-goo{display:none}.stage-bio{text-align:center;max-width:min(680px,90%);color:var(--secondary-text);z-index:1;font-size:clamp(16px,1.4vw,20px);line-height:1.5}.stage-portals{pointer-events:none;opacity:1;position:absolute;inset:0}.stage-connections{width:100%;height:100%;color:var(--secondary-text);position:absolute}.stage-portal-slot{pointer-events:auto;z-index:2;position:absolute;transform:translate(-50%)}.portal-about{--portal-colour:var(--accent-lilac);top:12%;left:20%}.portal-work{--portal-colour:var(--accent-ivory);top:12%;left:50%}.portal-services{--portal-colour:var(--accent-peach);top:12%;left:80%}.portal-experiments{--portal-colour:var(--accent-butter);top:24%;left:35%}.portal-snippets{--portal-colour:var(--accent-ice);top:24%;left:65%}.stage-portal{border:1px solid var(--portal-colour);color:var(--portal-colour);text-transform:uppercase;background:var(--background);border-radius:40px;justify-content:center;align-items:center;height:44px;min-height:44px;padding:0 16px;font:700 11px/22px monospace;display:flex;position:relative;overflow:hidden}.portal-roll{height:22px;position:relative}.portal-roll,.portal-roll>span{display:block}.portal-roll>span+span{position:absolute;top:100%;left:0}.portal-fill{background:var(--portal-colour);pointer-events:none;border-radius:50%;position:absolute;transform:scale(0)}.stage-portal:focus-visible,.stage-portal:hover{color:var(--primary-foreground);border-color:var(--portal-colour)}.stage-portal-note{text-align:center;width:220px;color:var(--portal-colour);opacity:0;pointer-events:none;font:14px cursive;display:block;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%)}.stage-portal-slot:focus-within .stage-portal-note,.stage-portal-slot:hover .stage-portal-note{opacity:1}.hero-stage:not([data-tool=none]) .stage-bio,.hero-stage:not([data-tool=none]) .stage-portals{visibility:hidden;opacity:0}.stage-bar{z-index:3;justify-content:center;align-items:center;width:100%;min-height:58px;display:flex;position:relative}.stage-toolbar{border:1px solid var(--border);background:var(--card);border-radius:50px;flex-shrink:0;gap:4px;padding:8px;display:flex}.stage-deselect,.stage-tool{min-width:44px;height:44px;color:var(--tool-colour);background:0 0;border:0;border-radius:30px;justify-content:center;align-items:center;gap:8px;padding:0;display:inline-flex}.stage-tool svg{width:18px;height:18px}.stage-tool>span{text-transform:uppercase;font-size:12px;display:none}.stage-tool:hover{background:var(--card)}@supports (color:color-mix(in lab,red,red)){.stage-tool:hover{background:color-mix(in srgb,var(--card),var(--foreground)12%)}}.stage-tool[aria-pressed=true]{background:var(--tool-colour);color:var(--tool-ink,var(--primary-foreground));padding-inline:16px}.stage-tool[aria-pressed=true]>span{display:block}.tool-colour{--tool-colour:var(--accent-ice)}.tool-type{--tool-colour:var(--accent-ivory)}.tool-radius,.tool-space{--tool-colour:var(--accent-peach)}.tool-opacity{--tool-colour:var(--accent-butter)}.stage-deselect{color:var(--accent-butter);background:var(--accent-butter)}@supports (color:color-mix(in lab,red,red)){.stage-deselect{background:color-mix(in srgb,var(--accent-butter)15%,transparent)}}.stage-deselect{font-size:26px}.stage-callout{opacity:0;visibility:hidden;align-items:center;width:0;display:flex}.hero-stage:not([data-tool=none]) .stage-callout{opacity:1;visibility:visible;width:360px}.stage-code{background:var(--card);border:1px solid var(--border);border-radius:8px;flex-shrink:0;width:310px;overflow:hidden}.stage-code-dots{background:var(--border);gap:6px;padding:8px 12px;display:flex}.stage-code-dots i{background:var(--accent-ice);border-radius:50%;width:7px;height:7px}.stage-code-dots i:first-child{background:var(--accent-ivory)}.stage-code-dots i:last-child{background:var(--accent-ice)}.stage-code pre{padding:12px 16px;font:12px/1.7 monospace}.stage-opacity-control{align-items:center;gap:12px;padding:0 16px 8px;font-size:12px;display:flex}.stage-opacity-control input{width:100%;min-width:0;height:44px;accent-color:var(--primary)}.stage-callout-rule{background:var(--accent-ice);width:50px;height:1px}.stage-note{color:var(--muted-foreground);font:12px/1.5 var(--font-parkinsans),Arial,sans-serif;text-align:left;margin:0;padding:0 16px 12px}.stage-resize-frame{border:2px solid var(--accent-ivory);pointer-events:none;position:absolute;inset:-16px}.stage-handle{pointer-events:auto;touch-action:none;background:0 0;border:0;width:44px;height:44px;padding:0;position:absolute}.stage-handle:after{content:"";background:var(--background);border:2px solid var(--accent-ivory);width:11px;height:11px;position:absolute;top:16px;left:16px}.handle-tl{cursor:nwse-resize;top:-22px;left:-22px}.handle-tr{cursor:nesw-resize;top:-22px;right:-22px}.handle-bl{cursor:nesw-resize;bottom:-22px;left:-22px}.handle-br{cursor:nwse-resize;bottom:-22px;right:-22px}.handle-t{top:-22px}.handle-b,.handle-t{cursor:ns-resize;left:calc(50% - 22px)}.handle-b{bottom:-22px}.handle-l{left:-22px}.handle-l,.handle-r{cursor:ew-resize;top:calc(50% - 22px)}.handle-r{right:-22px}.stage-dimensions{color:var(--primary-foreground);background:var(--accent-ivory);border-radius:4px;padding:4px 12px;font:13px monospace;position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%)}.reference-page{padding-top:36px;padding-bottom:80px}.card-fan{justify-content:center;align-items:center;width:100%;min-height:430px;padding:8px 24px 36px;display:flex}.fan-card{z-index:2;border-radius:24px;flex-direction:column;flex-shrink:0;justify-content:flex-end;width:34%;height:416px;padding:28px;display:flex;position:relative;overflow:clip}.fan-card:nth-child(2){z-index:3}.fan-card h2{letter-spacing:-.03em;font-size:clamp(26px,2.5vw,34px);font-weight:750;line-height:1.1}.fan-card h2 sup{vertical-align:super;margin-left:6px;font:12px monospace}.fan-card p{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:16px 0;font-size:15px;line-height:1.5;display:-webkit-box;overflow:hidden}.fan-status{font-size:14px;font-weight:600;position:absolute;top:28px;right:24px}.fan-colour-0{background:var(--accent-ivory)}.fan-colour-0,.fan-colour-1{color:var(--primary-foreground)}.fan-colour-1{background:var(--accent-ice)}.fan-colour-2,.fan-warm-0{background:var(--accent-peach);color:var(--primary-foreground)}.fan-warm-1{background:var(--accent-butter)}.fan-warm-1,.fan-warm-2{color:var(--primary-foreground)}.fan-warm-2{background:var(--accent-ice)}.tech-tags{flex-wrap:wrap;gap:6px;display:flex}.tech-tags span{text-transform:uppercase;border:1px solid;border-radius:30px;padding:4px 10px;font:11px/1.5 monospace}.reference-page-heading{text-align:center;max-width:1100px;margin:12px auto 64px}.reference-page-heading h1{letter-spacing:-.04em;color:var(--primary);font-size:clamp(48px,6.8vw,100px);font-weight:750;line-height:1.15}.reference-page-heading p{color:var(--muted-foreground);margin-top:24px;font-size:clamp(16px,1.6vw,20px)}.experiments-page .reference-page-heading h1{color:var(--experiments-ink)}.snippets-page .reference-page-heading h1{color:var(--snippets-ink)}.experiment-list{gap:24px;display:grid}.experiment-row{background:var(--card);border:1px solid var(--border);border-radius:20px;align-items:center;gap:24px;padding:24px;display:flex}.experiment-glyph{min-width:70px;color:var(--experiments-ink,var(--accent-butter));font-size:48px}.experiment-row h2{font-size:26px;font-weight:600}.experiment-row p{color:var(--muted-foreground);margin-top:8px;font-size:15px}.experiment-row>span:last-child{margin-left:auto;font-size:30px}.demo-index{flex-wrap:wrap;gap:8px;margin-bottom:32px;display:flex}.demo-index a{background:var(--card);border:1px solid var(--border);border-radius:32px;align-items:center;min-height:44px;padding:8px 14px;font-size:12px;display:inline-flex}.demo-index a:hover{color:var(--primary);border-color:var(--primary)}.demo-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.motion-demo{background:var(--card);border:1px solid var(--border);border-radius:20px;min-width:0;scroll-margin-top:110px;overflow:clip}.demo-description{padding:24px}.demo-description h2{margin:8px 0 12px;font-size:26px;font-weight:600}.demo-description p:not(.eyebrow){color:var(--muted-foreground);font-size:14px}.demo-instructions{margin-top:16px}.text-link{color:var(--primary);align-items:center;gap:12px;min-height:44px;font-size:13px;display:inline-flex}.demo-surface{background:var(--card);min-width:0;overflow:clip}.demo-static-preview,.demo-surface canvas{width:100%;height:320px;display:block}.demo-surface:not([data-rendered=true]) canvas,.demo-surface[data-rendered=true] .demo-static-preview{display:none}.demo-surface[data-interactive=true] canvas{cursor:crosshair}.demo-surface canvas:focus-visible{outline-offset:-5px}.demo-controls{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px;display:flex}.demo-controls button{border:1px solid var(--border);border-radius:32px;min-width:70px;min-height:44px;padding:8px 12px;font-size:12px}.demo-controls button:hover{color:var(--primary);border-color:var(--primary)}.demo-surface[data-interactive=false] .demo-controls{display:none}.fan-demo{justify-content:flex-start}.fan-demo,.fan-demo:nth-child(odd){background:var(--card)}@supports (color:color-mix(in lab,red,red)){.fan-demo:nth-child(odd){background:color-mix(in srgb,var(--card),var(--background)55%)}}.fan-demo>div{margin:auto -28px -28px}.fan-demo .demo-surface{background:0 0}.fan-demo .demo-controls{display:none}.demo-source{margin-top:32px}.demo-source summary{min-height:44px;color:var(--primary);cursor:pointer}.demo-source pre{background:var(--card);border:1px solid var(--border);border-radius:12px;max-height:400px;padding:20px;font:11px/1.7 monospace;overflow:auto}.pointer-notice{font-size:12px!important}.about-page{padding-block:64px}.about-page>header{text-align:left;max-width:960px;margin:0 0 64px}.about-page h1{letter-spacing:-.05em;color:var(--accent-ice);font-size:clamp(70px,10vw,140px);font-weight:700}.about-page>header>p:last-child{margin-top:24px;font-size:28px;font-weight:600;line-height:1.45}.about-pill{background:var(--card);color:var(--muted-foreground);text-transform:uppercase;border-radius:40px;align-items:center;gap:12px;margin-bottom:20px;padding:8px 18px;font-size:12px;display:inline-flex}.about-pill>span{background:var(--accent-butter);border-radius:50%;width:8px;height:8px}.about-page h1>span:first-child{color:var(--hero-0)}.about-page h1>span:nth-child(2){color:var(--hero-1)}.about-page h1>span:nth-child(3){color:var(--hero-2)}.about-page h1>span:nth-child(4){color:var(--hero-3)}.about-highlight{color:var(--primary)}.about-detail{grid-template-columns:1fr 1.4fr;align-items:start;gap:64px;display:grid}.about-detail>img{object-fit:contain;width:100%;max-height:600px}.about-detail h2{font-size:28px;font-weight:600}.about-detail ol,.about-detail ul{margin:0 0 48px;padding-left:24px}.about-detail li{margin-bottom:20px}.about-detail h3{font-size:18px;font-weight:600}.about-detail li p{color:var(--muted-foreground);margin-top:8px;font-size:15px}.about-contact{flex-wrap:wrap;gap:24px;display:flex}.about-contact a{min-height:44px;color:var(--primary);overflow-wrap:anywhere;align-items:center;display:inline-flex}.case-hero{padding-top:40px;padding-bottom:64px}.back-link{min-height:44px;color:var(--primary);align-items:center;gap:12px;margin-bottom:40px;font-size:14px;display:inline-flex}.case-title{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.case-title h1{letter-spacing:-.05em;font-size:clamp(56px,10vw,130px);font-weight:700}.case-summary{max-width:800px;margin:32px 0 20px;font-size:clamp(18px,2vw,26px)}.case-facts{grid-template-columns:1.3fr 1fr .8fr;gap:40px;margin-top:40px;display:grid}.case-facts p{color:var(--muted-foreground);margin-top:12px;font-size:15px}.tech-badges{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.case-gallery{padding-bottom:64px}.case-gallery h2{margin-bottom:20px}.carousel-track{scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x pan-y;border-radius:16px;width:100%;display:flex;overflow-x:auto}.carousel-slide{scroll-snap-align:start;scroll-snap-stop:always;flex-shrink:0;min-width:100%}.carousel-slide img{width:100%}.carousel-controls{justify-content:space-between;align-items:center;margin-top:16px;font:12px monospace;display:flex}.carousel-controls>div{gap:8px;display:flex}.case-text-row{border-top:1px solid var(--border);grid-template-columns:1fr 1.6fr;gap:48px;padding:40px 0;display:grid}.case-text-row h2{gap:20px;font-size:26px;font-weight:600;display:flex}.case-text-row h2 span{color:var(--primary);padding-top:8px;font:12px monospace}.case-text-row p{color:var(--muted-foreground)}.case-external{flex-wrap:wrap;gap:16px;padding:24px 0 48px;display:flex}.next-project{border-top:1px solid var(--border);padding-block:48px}.next-project>a{color:var(--primary);justify-content:space-between;align-items:center;font-size:clamp(40px,6vw,80px);display:flex}.next-project svg{width:48px;height:48px}.contact-section{border-top:1px solid var(--border);padding-block:48px}.contact-grid{grid-template-columns:1fr 1fr;gap:40px;display:grid}.contact-grid h2{font-size:44px;font-weight:600;line-height:1.2}.contact-copy p{color:var(--muted-foreground);margin:20px 0}.contact-links{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.contact-link{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px}.contact-link svg{width:20px;height:20px}.site-footer{border-top:1px solid var(--border);max-width:1344px;color:var(--muted-foreground);flex-wrap:wrap;align-items:center;gap:24px;margin:auto;padding:24px clamp(16px,4vw,64px);font-size:12px;display:flex}.site-footer .wordmark{font-size:24px}.preview-note{max-width:470px;margin-left:auto;font-size:11px}.not-found{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100svh;padding:24px;display:flex}.not-found h1{font-size:clamp(32px,6vw,72px);font-weight:650}.not-found>div{gap:24px;display:flex}.not-found a{min-height:44px;color:var(--primary);align-items:center;display:inline-flex}@media (max-width:1023px){:root{--nav-height:80px}.desktop-nav{display:none}.header-actions{border:0;margin-left:auto;padding:0}.menu-trigger{display:inline-flex}.header-inner{gap:12px}.hero-stage:not([data-tool=none]) .stage-callout{width:300px}.stage-code{width:260px}.stage-callout-rule{width:40px}.fan-card{height:360px;padding:24px}.card-fan{min-height:380px;padding-inline:0}.fan-card p{font-size:13px}.fan-status{font-size:12px}.reference-page-heading h1{font-size:clamp(44px,8vw,80px)}.demo-static-preview,.demo-surface canvas{height:270px}}@media (max-width:767px){:root{--nav-height:72px}.wordmark{font-size:28px}.header-inner{padding-inline:16px}.header-actions{gap:0}.language-switch a,.language-switch span{min-width:28px}.hero-stage{padding:0 20px}.stage-canvas{gap:24px;padding-top:0;padding-bottom:28px}.stage-wordmark{width:min(94vw,78svh);max-width:100%}.stage-bio{max-width:100%;font-size:17px;line-height:1.55}.stage-portals{order:3;justify-content:center;gap:12px;display:flex;position:static}.portal-experiments,.portal-services,.portal-snippets,.stage-connections,.stage-portal-note{display:none}.stage-portal-slot{position:static;transform:none}.stage-portal{background:var(--portal-colour);color:var(--primary-foreground);border-color:var(--portal-colour);padding-inline:20px}.stage-bar{display:none}.hero-stage:not([data-tool=none]) .stage-bio,.hero-stage:not([data-tool=none]) .stage-portals{opacity:1;visibility:visible}.card-fan{scroll-snap-type:x mandatory;justify-content:flex-start;gap:16px;min-height:360px;padding:0 0 24px;overflow-x:auto}.fan-card{scroll-snap-align:center;width:88%;height:340px;padding:24px}.fan-card h2{font-size:30px}.fan-card p{font-size:15px}.reference-page{padding-top:24px;padding-bottom:40px}.reference-page-heading{margin-top:16px;margin-bottom:40px}.reference-page-heading h1{font-size:44px}.reference-page-heading p{margin-top:16px;font-size:16px}.experiment-row{gap:16px;padding:20px}.experiment-glyph{min-width:44px;font-size:36px}.experiment-row h2{font-size:20px}.experiment-row p{font-size:13px}.demo-list{grid-template-columns:1fr}.demo-description{padding:20px}.demo-static-preview,.demo-surface canvas{height:240px}.about-detail{grid-template-columns:1fr;gap:40px}.about-detail>img{max-height:400px}.about-page{padding-block:32px}.about-page>header>p:last-child{font-size:17px}.case-facts{grid-template-columns:1fr;gap:24px}.case-text-row{grid-template-columns:1fr;gap:16px}.case-text-row p{font-size:15px}.case-title h1{font-size:60px}.contact-grid{grid-template-columns:1fr}.contact-grid h2{font-size:36px}.preview-note{width:100%;margin-left:0}.menu-panel{justify-content:flex-start;padding-top:80px}.fan-demo>div{margin-bottom:-24px;margin-left:-24px;margin-right:-24px}}@media (max-height:650px) and (min-width:768px){.stage-canvas{gap:20px;padding-top:65px;padding-bottom:12px}.stage-wordmark{width:min(55vw,65svh)}.stage-bio{font-size:16px}.stage-toolbar{padding:4px}.stage-portal{padding:4px 12px}.stage-callout{max-height:none}.hero-stage:not([data-tool=none]) .stage-canvas{padding-top:65px}}@media (max-height:500px) and (max-width:767px){.stage-canvas{grid-template-columns:1fr 1fr;gap:16px;padding-block:16px;display:grid}.stage-wordmark{width:100%}.stage-bio{font-size:14px}.stage-portals{grid-column:1/-1}.stage-portal{min-height:36px;padding:4px 16px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important}.stage-goo,.stage-portal-note{display:none}}@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.demo-controls,.demo-instructions{display:none}}.stage-mobile-code{display:none}@media (max-width:767px){.stage-mobile-code{color:var(--muted-foreground);margin-bottom:8px;font:12px monospace;display:block}.about-page>header>p:last-child{font-size:22px}}@media (max-height:650px) and (min-width:768px){.stage-canvas{padding-top:140px}.stage-portal-note{font-size:12px;line-height:18px;top:calc(100% + 4px);bottom:auto}}@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.stage-portal:focus-visible,.stage-portal:hover{background:var(--portal-colour)}.stage-goo{display:none}}.nav-vitals{color:var(--muted-foreground);white-space:nowrap;gap:16px;margin-left:4px;font:10px/1.6 monospace;display:none}.nav-vitals b{font-weight:500}@media (min-width:1280px){.nav-vitals{display:flex}}.contact-feedback{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:8px 16px;font-size:12px;position:absolute;bottom:calc(100% + 12px);left:0}.stage-shape-controls{pointer-events:none;position:absolute;inset:0}.stage-shape-controls button{pointer-events:auto;touch-action:none;cursor:ew-resize;width:44px;height:44px;color:var(--accent-peach);background:0 0;border:0;font:20px monospace;position:absolute;transform:translate(-50%,-50%)}.hero-stage[data-tool=space] .stage-shape-controls button{color:var(--accent-peach)}.menu-settings{align-items:center;gap:16px;margin-top:16px;display:flex}@media (max-width:767px){.site-header.is-home .wordmark{visibility:hidden}.header-actions>.icon-control:not(.menu-trigger),.header-actions>.language-switch,.header-actions>.theme-toggle{display:none}.contact-bar{display:flex}.hero-stage{height:calc(100svh - var(--nav-height) - 80px)}.site-footer{padding-bottom:96px}}.no-js-locale,.no-js-navigation{display:none}@media (max-width:1023px){.no-js-navigation{top:var(--nav-height);border-radius:12px;padding:8px;display:flex;position:absolute;left:16px;right:16px}.no-js-navigation a{align-items:center;min-height:44px;display:inline-flex}}@media (max-width:767px){.no-js-locale{display:inline-flex}}.stage-svg{transform:scale(var(--auto-scale,1));transform-origin:bottom}:root{--text-wordmark:clamp(3.5rem,min(8.1vw,11.1svh),12rem)}.portal-label{height:22px;display:block;overflow:hidden}@media (max-width:767px){.stage-portal{font-size:13px}}.language-switch a,.no-js-navigation a{justify-content:center;min-width:44px}:root[data-theme=light] body:after,:root[data-theme=light] body:before{opacity:.14}.site-header.is-home .desktop-nav,.site-header.is-home .nav-vitals{display:none}.site-header.is-home .header-actions{border:0;margin-left:auto;padding:0}.hire-button{border:1px solid var(--accent-butter);background:var(--accent-butter);color:#0d2118;white-space:nowrap;border-radius:30px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 18px;font-size:13px;font-weight:600;display:inline-flex}.hire-button:hover{filter:brightness(1.06)}.hire-button:active{filter:brightness(.94)}.hire-overlay{z-index:100;background:#0000008c;position:fixed;inset:0}.hire-panel{z-index:101;background:var(--card);border:1px solid var(--border);border-radius:24px;width:min(520px,100% - 32px);max-height:calc(100svh - 32px);padding:32px;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.hire-panel h2{padding-right:44px;font-size:28px;line-height:1.25}.hire-panel>p{color:var(--muted-foreground);margin-top:16px;font-size:14px}.hire-close{font-size:28px;position:absolute;top:16px;right:16px}.hire-options{gap:12px;margin-top:28px;display:grid}.hire-option{border:1px solid var(--border);border-radius:14px;align-items:center;gap:12px;min-height:80px;padding:16px;font-size:16px;display:flex}.hire-option:hover,.hire-primary{border-color:var(--accent-butter)}.hire-primary{background:var(--accent-butter);color:#0d2118;font-weight:600}.hire-email{border:1px solid var(--border);border-radius:14px;align-items:center;padding-right:8px;display:flex}.hire-email:focus-within,.hire-email:hover{border-color:var(--accent-butter)}.hire-email .hire-option{border:0;padding-right:8px}.hire-email>a{flex:1;min-width:0}.hire-icon{color:#0d2118;background:#fffaea;border-radius:12px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.hire-icon img,.hire-icon svg{width:24px;height:24px}.hire-details{flex:1;min-width:0}.hire-option small{overflow-wrap:anywhere;margin-top:4px;font-size:12px;display:block}.hire-feedback{font-size:13px}@media (min-width:1024px) and (max-width:1199px){.nav-vitals{display:none}.desktop-nav,.header-inner{gap:16px}.header-actions{padding-left:8px}.hire-button{padding-inline:12px}}@media (max-width:767px){.header-actions>.hire-button{display:none}.hire-panel{padding:24px}.hire-panel h2{font-size:24px}.hire-option{padding:14px}}.carousel-slide img{object-fit:contain;height:auto;max-height:75svh}.carousel-slide>div{background:var(--card);justify-content:center;display:flex}.about-location{color:var(--accent-butter);font-size:14px}.about-learning{color:var(--muted-foreground);margin-top:12px;line-height:1.6}.about-skill{border:1px solid var(--border);border-radius:24px;padding:6px 12px;font-size:12px}.case-title>div{min-width:0;max-width:100%}.case-title h1{overflow-wrap:anywhere;line-height:1.1}.about-detail .tech-badges,.about-learning{margin-bottom:32px}@media (max-width:767px){.case-title h1{font-size:clamp(32px,10vw,60px)}}.services-page{padding-top:48px}.services-page .reference-page-heading h1{overflow-wrap:anywhere;font-size:clamp(36px,6vw,80px)}.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.service-card{border:1px solid var(--border);background:var(--card);border-radius:24px;flex-direction:column;gap:20px;padding:28px;display:flex}.service-number{color:var(--accent-peach);font:13px monospace}.service-card h2{color:var(--accent-ivory);font-size:24px;line-height:1.25}.service-card p{color:var(--muted-foreground);font-size:15px;line-height:1.7}.service-card .tech-tags{color:var(--accent-ice);margin-top:auto}.service-process{padding-block:64px 32px}.service-process h2{color:var(--accent-butter);margin-bottom:28px;font-size:clamp(28px,4vw,40px)}@media (max-width:1023px){.service-grid{grid-template-columns:1fr}.services-page{padding-top:24px}}.service-process ol{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;padding:0;list-style:none;display:grid}.process-step{min-width:0;position:relative}.process-step:not(:last-child):after{content:"";border-top:1px solid var(--border);width:calc(100% - 24px);position:absolute;top:23px;left:48px}.process-node{z-index:1;border:1px solid var(--accent-butter);background:var(--background);width:48px;height:48px;color:var(--accent-butter);border-radius:50%;justify-content:center;align-items:center;margin-bottom:24px;font:14px monospace;display:flex;position:relative}.process-step h3{margin-bottom:12px;font-size:18px;font-weight:600;line-height:1.4}.process-step p{color:var(--muted-foreground);font-size:14px;line-height:1.75}.about-page>header{max-width:none;margin-bottom:32px}.about-page h1{font-size:clamp(64px,8vw,108px);line-height:1.1}.about-detail{grid-template-columns:minmax(0,.75fr) minmax(0,1.5fr);gap:clamp(32px,4vw,64px)}.about-portrait{background:var(--card);border:1px solid var(--border);border-radius:28px;justify-content:center;align-items:flex-end;margin:0;padding:24px 16px 0;display:flex;overflow:hidden}.about-portrait img{object-fit:contain;max-width:340px;max-height:455px}.about-profile{min-width:0}.about-bio p{margin-bottom:20px;font-size:clamp(18px,1.5vw,22px);font-weight:400;line-height:1.75}.about-location{margin-top:24px}.about-learning{margin-bottom:0;font-size:14px}.about-contact,.about-skills{margin-top:32px}.about-detail h2{margin-bottom:20px;font-size:24px}.about-skill-groups{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.about-skill-group{border:1px solid var(--border);background:var(--card);border-radius:16px;min-width:0;padding:16px}.about-skill-group h3{color:var(--accent-ice);font-size:14px;font-weight:600}.about-skill-group .tech-badges{gap:8px;margin:12px 0 0}.about-skill{padding:5px 9px}.about-contact{display:block}.about-primary-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.about-primary-links a{background:var(--card);border:1px solid var(--border);border-radius:16px;justify-content:space-between;gap:12px;padding:16px;font-size:14px;display:flex}.about-primary-links a:hover{border-color:var(--accent-butter)}.about-primary-links small{color:var(--muted-foreground);overflow-wrap:anywhere;margin-top:8px;font-size:11px;display:block}.about-social-label{color:var(--muted-foreground);margin-top:24px;font-size:12px}.about-social-links{flex-wrap:wrap;gap:24px;margin-top:4px;font-size:13px;display:flex}.about-social-links a{gap:8px}.about-social-icon{background:#fffaea;border-radius:9px;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.about-social-icon img{width:18px;height:18px}@media (max-width:1023px){.service-process ol{grid-template-columns:1fr;gap:0}.process-step{grid-template-columns:48px minmax(0,1fr);gap:24px;padding-bottom:32px;display:grid}.process-step:last-child{padding-bottom:0}.process-step:not(:last-child):after{border-top:0;border-left:1px solid var(--border);width:0;height:calc(100% - 48px);top:48px;left:23px}.process-node{margin-bottom:0}.about-detail{grid-template-columns:1fr;gap:32px}.about-portrait{order:2;justify-self:center;width:min(100%,320px)}.about-portrait img{max-width:240px;max-height:320px}}@media (max-width:767px){.about-primary-links,.about-skill-groups{grid-template-columns:1fr}.about-pill{padding:8px 12px;font-size:10px}.about-bio p{font-size:18px}}.about-skill-group .tech-badges{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:12px 8px;display:grid}.about-skill{text-align:center;border:0;border-radius:0;flex-direction:column;gap:8px;padding:0;font-size:11px;line-height:1.5}.about-skill,.about-skill-icon{align-items:center;display:flex}.about-skill-icon{background:#fffaea;border-radius:10px;justify-content:center;width:36px;height:36px;padding:6px}.about-skill-icon img{width:24px;height:24px}.about-portrait{padding:0}.about-portrait img{width:100%;max-width:none;height:auto;max-height:none;display:block}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}