@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/033400d475fad6b1-s.197tvtifbphtu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/26daee0352f50a5f-s.2e115y8-hourl.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/017d9bea37084d9b-s.p.41rroleoq1br7.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Fallback;src:local(Arial);ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.0%;size-adjust:105.43%}.bricolage_grotesque_47e94d18-module__lsmz5W__className{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.bricolage_grotesque_47e94d18-module__lsmz5W__variable{--font-sans:"Bricolage Grotesque", "Bricolage Grotesque Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_964e2806-module__h6Ln4a__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_964e2806-module__h6Ln4a__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--font-sans), Inter, system-ui, sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}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,samp,pre{font-family:var(--font-mono), ui-monospace, monospace;font-feature-settings:normal;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}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\!visible{visibility:visible!important}.visible{visibility:visible}.relative{position:relative}.block{display:block}.flex{display:flex}.table{display:table}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-auto{cursor:auto}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-width:1px}.text-white\/50{color:#ffffff80}.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)}@property --font-sans{syntax:"*";inherits:true;initial-value:"Bricolage Grotesque"}@property --font-mono{syntax:"*";inherits:true;initial-value:"JetBrains Mono"}@property --active-index{syntax:"<number>";inherits:true;initial-value:0}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#202124;--text:var(--ink);--text-secondary:#66676d;--text-muted:#92939a;--cream:#fffaf3;--coral:#ff6b57;--coral-soft:#fff0eb;--blue:#5278ff;--blue-soft:#eef2ff;--violet:#8b5cf6;--violet-soft:#f4efff;--green:#27b981;--green-soft:#ebfbf4;--pink:#f45b9a;--pink-soft:#fff0f6;--yellow:#f5c84c;--yellow-soft:#fff6d5;--line:#2021241c;--line-strong:#2021243d;--focus-ring:#2021245c;--coral-border:#ff6b5747;--white:#fff;--background:var(--cream);--surface:var(--white);--surface-hover:#ffffffe0;--border:var(--line);--border-hover:#20212433;--accent:var(--coral);--accent-soft:var(--coral-soft);--success:var(--green);--button-primary:var(--coral);--button-primary-text:var(--white);--active-soft:var(--green-soft);--active-text:#157a56;--development-text:#725a11;--heading:clamp(28px, 4vw, 42px);--body:clamp(15px, 1.6vw, 17px);--small:14px;--label:11px;--motion-fast:.16s;--motion-base:.24s;--motion-slow:.4s;--ease-fluid:cubic-bezier(0, .7, .4, 1);--ease-enter:cubic-bezier(.22, 1, .36, 1)}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f4f1ea;--text-secondary:#b8b5ad;--text-muted:#88867f;--cream:#101010;--coral:#ff806e;--coral-soft:#33201d;--blue:#7694ff;--blue-soft:#18213d;--violet:#a982ff;--violet-soft:#271d3c;--green:#54cca0;--green-soft:#153329;--pink:#ff7db1;--pink-soft:#3a1c29;--yellow:#e8c55a;--yellow-soft:#342d18;--line:#f4f1ea1f;--line-strong:#f4f1ea3d;--focus-ring:#f4f1ea5c;--coral-border:#ff806e47;--white:#1b1b1a;--surface-hover:#222220;--border-hover:#f4f1ea38;--button-primary-text:#fff;--active-text:#7addb7;--development-text:#e8ca69}*{box-sizing:border-box}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}html,body{background:var(--cream);width:100%;min-height:100%;color:var(--ink);margin:0;overflow-x:hidden}html{scroll-behavior:smooth;scroll-padding-bottom:calc(112px + env(safe-area-inset-bottom));scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#c8c8c880 transparent;overflow-y:auto}body{font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;font-size:var(--body);text-rendering:optimizelegibility;transition:background-color var(--motion-base) ease, color var(--motion-fast) ease;font-weight:400;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}textarea{overflow-y:hidden;resize:none!important}.page-transition-shell{background:var(--cream);transform-origin:50%;filter:blur();min-height:100svh;transition:background-color var(--motion-base) ease, opacity var(--motion-slow) var(--ease-enter), transform var(--motion-slow) var(--ease-enter), filter var(--motion-slow) ease, border-radius var(--motion-slow) var(--ease-enter);flex-direction:column;display:flex;transform:scale(1)}html.project-dialog-open,html.project-dialog-open body{overflow:hidden}html.project-dialog-open .page-transition-shell{pointer-events:none;filter:blur(7px);border-radius:24px;overflow:hidden;transform:scale(.96)}html.project-dialog-open .liquid-nav,html.project-dialog-open .theme-toggle{opacity:.5;pointer-events:none;filter:blur(6px)}.page-transition-shell>main{opacity:1;min-height:0;transition:opacity .18s var(--ease-enter), transform var(--motion-base) var(--ease-enter);flex:auto;transform:translateY(0)}.page-transition-shell.is-entering>main{opacity:0;transition:none;transform:translateY(6px)}.page-transition-shell>.site-footer{animation:.52s cubic-bezier(.22,1,.36,1) both footer-first-entry}@keyframes footer-first-entry{0%{opacity:0;transform:translateY(6px)}}::selection{color:var(--ink);background:#ffec9f}:where(a,button):focus-visible{outline:1px solid var(--focus-ring);outline-offset:4px}.liquid-nav{z-index:90;-webkit-backdrop-filter:blur(18px)saturate(155%);transition:bottom var(--motion-base) var(--ease-enter), opacity var(--motion-base) ease, filter var(--motion-base) ease, transform var(--motion-base) var(--ease-enter);background:linear-gradient(135deg,#ffffffc7,#ffffff75);border:1px solid #ffffffc2;border-radius:999px;gap:4px;padding:6px;display:flex;position:fixed;top:auto;bottom:40px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #2021241a,inset 0 1px #ffffffeb,inset 0 -1px #ffffff47}.liquid-nav[data-review-hidden=true]{opacity:0;pointer-events:none;transform:translate(-50%,calc(100% + 64px))}body:has(.review-invite-page input:focus)>.liquid-nav{opacity:0;pointer-events:none;transform:translate(-50%,calc(100% + 64px))}body:has(.review-invite-page textarea:focus)>.liquid-nav{opacity:0;pointer-events:none;transform:translate(-50%,calc(100% + 64px))}body:has(.review-invite-page button:focus-visible)>.liquid-nav{opacity:0;pointer-events:none;transform:translate(-50%,calc(100% + 64px))}body:has(.review-invite-unavailable)>.liquid-nav[data-review-hidden=true]{opacity:1;pointer-events:auto;transform:translate(-50%)}.page-transition-shell:has(.review-invite-unavailable)>.site-footer{display:none}.liquid-nav[data-footer-visible=true]{bottom:80px}.liquid-nav-link{z-index:1;width:40px;min-width:40px;height:40px;color:var(--ink);white-space:nowrap;transition:color .11s ease, border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-fluid);background:0 0;border:1px solid #0000;border-radius:999px;flex:0 0 40px;justify-content:center;align-items:center;padding:0;display:flex;position:relative;overflow:visible}.liquid-nav-separator{background:var(--line);flex:none;align-self:center;width:1px;height:22px;margin:0 4px}.liquid-nav-social-link{color:var(--text-secondary)}.liquid-nav-admin-wrap{display:flex;position:relative}.liquid-nav-admin-link{color:var(--coral)}.liquid-nav-admin-wrap[data-menu-open=true] .liquid-nav-label{opacity:0;visibility:hidden}.liquid-nav-context-menu{z-index:110;border:1px solid color-mix(in srgb, var(--white) 46%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--surface) 86%, transparent), color-mix(in srgb, var(--surface) 62%, transparent));min-width:156px;box-shadow:0 16px 38px color-mix(in srgb, var(--ink) 16%, transparent), inset 0 1px 0 color-mix(in srgb, var(--white) 70%, transparent);transform-origin:100% 100%;-webkit-backdrop-filter:blur(20px)saturate(155%);animation:nav-context-in var(--motion-fast) var(--ease-enter) both;border-radius:14px;gap:2px;padding:5px;display:grid;position:absolute;bottom:calc(100% + 14px);right:0;overflow:hidden}.liquid-nav-context-menu button{min-height:34px;color:var(--text-secondary);font:500 12px var(--font-sans,sans-serif);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;padding:7px 10px;transition:color .16s,background-color .16s,opacity .16s;display:flex}.liquid-nav-context-menu button:hover,.liquid-nav-context-menu button:focus-visible{background:color-mix(in srgb, var(--ink) 7%, transparent);color:var(--ink)}.liquid-nav-context-menu button:active{opacity:.52}@keyframes nav-context-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.liquid-nav-indicator{background:var(--ink);opacity:0;pointer-events:none;width:40px;height:40px;transform:translateX(calc(var(--active-index) * 44px));transition:transform .22s var(--ease-fluid), opacity .12s ease;border:1px solid #0000;border-radius:999px;position:absolute;top:6px;left:6px;box-shadow:0 2px 10px #2021241f}.liquid-nav[data-has-active=true] .liquid-nav-indicator{opacity:1}.liquid-nav-link:hover,.liquid-nav-link:focus-visible{background:#ffffff75;border-color:#20212417}.liquid-nav-link:active{background:#ffffffad;border-color:#20212424;transform:scale(.9)}.liquid-nav-link[data-active=true]{color:var(--cream);background:0 0;border-color:#0000;transition-delay:.15s,0s,0s,0s}.liquid-nav-icon{transition:transform var(--motion-fast) var(--ease-fluid);flex:none}.liquid-nav-link[data-active=true] .liquid-nav-icon{transform:scale(1.035)}.liquid-nav-label{z-index:100;-webkit-backdrop-filter:blur(16px)saturate(145%);width:max-content;max-width:min(160px,100vw - 32px);color:var(--text-secondary);opacity:0;pointer-events:none;transform-origin:bottom;visibility:hidden;transition:opacity var(--motion-fast) ease, transform var(--motion-base) var(--ease-enter), visibility 0s linear var(--motion-base);background:#ffffffb8;border:1px solid #ffffffb8;border-radius:999px;padding:7px 10px;font-size:14px;font-weight:550;line-height:1;position:absolute;top:auto;bottom:calc(100% + 12px);left:50%;overflow:visible;transform:translate(-50%,12px)scale(.9);box-shadow:0 8px 24px #2021241a,inset 0 1px #ffffffdb}.liquid-nav-link:hover .liquid-nav-label,.liquid-nav-link:focus-visible .liquid-nav-label{opacity:1;visibility:visible;transition-delay:0s;transform:translate(-50%)scale(1)}.liquid-nav-external-label{align-items:center;gap:4px;display:inline-flex}html[data-theme=dark] .liquid-nav{background:linear-gradient(135deg,#2a2a28e0,#181817bd);border-color:#ffffff29;box-shadow:0 10px 30px #00000052,inset 0 1px #ffffff1f,inset 0 -1px #ffffff0d}html[data-theme=dark] .liquid-nav-link[data-active=true]{background:0 0}html[data-theme=dark] .liquid-nav-indicator{background:var(--ink);border-color:#0000;box-shadow:0 2px 12px #00000038}html[data-theme=dark] .liquid-nav-label{background:#181817d1;border-color:#ffffff24;box-shadow:0 8px 24px #00000047,inset 0 1px #ffffff17}html[data-theme=dark] .liquid-nav-link:hover,html[data-theme=dark] .liquid-nav-link:focus-visible{background:#ffffff1a;border-color:#ffffff1f}html[data-theme=dark] .liquid-nav-link:active{background:#ffffff29;border-color:#ffffff2e}[data-sonner-toaster].site-sonner-toaster{--width:356px;font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif}[data-sonner-toast].site-sonner-toast[data-styled=true]{-webkit-backdrop-filter:blur(16px)saturate(125%);filter:drop-shadow(0 10px 12px #100f0d38);color:#ece7dd;background:#100f0dad;border:1px solid #3a352dd9;border-radius:24px;gap:9px;min-height:52px;padding:13px 44px 13px 15px;font-size:13px}[data-sonner-toast].site-sonner-toast.site-sonner-success[data-styled=true]{background:#052e1699;border-color:#166534}[data-sonner-toast].site-sonner-toast.site-sonner-error[data-styled=true]{background:#450a0aa3;border-color:#991b1b}[data-sonner-toast].site-sonner-toast[data-styled=true] .site-sonner-title{font-weight:550;line-height:1.45}[data-sonner-toast].site-sonner-toast[data-styled=true] [data-icon]{color:var(--text-secondary)}[data-sonner-toast].site-sonner-toast.site-sonner-success[data-styled=true] [data-icon]{color:#86efac}[data-sonner-toast].site-sonner-toast.site-sonner-error[data-styled=true] [data-icon]{color:#fca5a5}[data-sonner-toast].site-sonner-toast[data-styled=true] .site-sonner-close{width:30px;height:30px;color:var(--text-muted);transition:opacity var(--motion-fast) ease, background-color var(--motion-fast) ease;border-radius:50%;top:50%;left:auto;right:9px;transform:translateY(-50%);background:0 0!important;border:1px solid #0000!important}[data-sonner-toast].site-sonner-toast[data-styled=true] .site-sonner-close:hover,[data-sonner-toast].site-sonner-toast[data-styled=true] .site-sonner-close:focus-visible{opacity:1;background:#00000040!important;border-color:#ffffff1a!important}[data-sonner-toast].site-sonner-toast[data-styled=true] .site-sonner-close:active{opacity:.45;transform:translateY(-50%)}.theme-toggle{z-index:100;width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;transition:color .18s,background-color .18s,transform .18s,opacity .26s,filter .34s;display:grid;position:fixed;bottom:7px;left:14px}.theme-toggle:hover{background:var(--line);color:var(--ink);transform:scale(1.06)}.theme-toggle:active{background:var(--border-hover);color:var(--ink);transform:scale(.92)}.theme-toggle svg{stroke-width:1.8px;width:18px;height:18px}.home-page,.content-page,.site-footer{background:var(--cream)}.home-page{flex-direction:column;min-height:0;display:flex;overflow-x:hidden}.home-hero{flex:auto;place-items:start center;min-height:0;padding:166px 24px 110px;display:grid}.home-content{width:min(920px,100%)}.home-intro{align-items:flex-start;gap:16px;width:min(680px,100%);margin:0 auto;display:flex;transform:translate(-18px)}.home-intro:before,.section-content:before,.section-emoji{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif}.home-intro:before{content:"👋";transform-origin:70% 75%;flex:none;width:fit-content;margin:3px 0 0;font-size:clamp(28px,4vw,40px);line-height:1;animation:1.15s cubic-bezier(.22,1,.36,1) .18s both intro-wave;display:block;position:relative;left:0}@keyframes intro-wave{0%,to{transform:rotate(0)}18%{transform:rotate(14deg)}36%{transform:rotate(-8deg)}54%{transform:rotate(12deg)}72%{transform:rotate(-4deg)}88%{transform:rotate(5deg)}}.home-intro .intro-section{flex:auto;width:auto;min-width:0}.home-intro .intro-footer{justify-content:flex-start}.home-projects{width:min(760px,100%);margin:56px auto 0}.home-carousel-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.home-projects h2{letter-spacing:-.025em;width:min(300px,100%);height:28px;font-size:clamp(17px,2vw,20px);font-weight:600;position:relative}.home-showcase-title-dragger{width:100%;height:100%;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;touch-action:pan-x;-webkit-user-select:none;user-select:none;cursor:grab;background:0 0;border:0;padding:0;position:relative;overflow:hidden}.home-showcase-title-dragger[data-dragging=true]{cursor:grabbing}.home-showcase-title-dragger span{white-space:nowrap;will-change:transform;transition:transform .26s var(--ease-enter);position:absolute;inset:0 auto auto 0}.home-showcase-title-dragger[data-dragging=true] span,.home-showcase-title-dragger[data-transition=resetting] span{transition:none}.home-projects-actions{opacity:1;transition:opacity var(--motion-fast) ease;align-items:center;gap:12px;display:flex}.home-showcase.is-reviews .home-projects-actions{opacity:0;pointer-events:none}.home-projects-timeline-link{color:var(--text-secondary);transition:color var(--motion-fast) ease, opacity var(--motion-fast) ease;align-items:center;gap:4px;font-size:10px;font-weight:550;display:inline-flex}.home-projects-timeline-link:hover,.home-projects-timeline-link:focus-visible{color:var(--coral)}.home-projects-timeline-link:active{opacity:.5}.home-carousel-controls{gap:6px;display:flex}.home-carousel-controls button{border:1px solid var(--line);background:var(--surface);width:30px;height:30px;color:var(--text-secondary);border-radius:50%;place-items:center;padding:0;transition:border-color .18s,color .18s,background-color .18s,opacity .18s;display:grid}.home-carousel-controls button:hover{border-color:var(--coral);color:var(--ink)}.home-carousel-controls button:active{opacity:.5}.home-showcase-stage{height:136px;position:relative}.home-showcase-project,.home-reviews-panel{transition:opacity var(--motion-base) ease, transform .32s var(--ease-enter);position:absolute;inset:0}.home-showcase-project{opacity:1;transform:translateY(0)}.home-reviews-panel{opacity:0;pointer-events:none;transform:translateY(-10px)}.home-showcase.is-reviews .home-showcase-project{opacity:0;pointer-events:none;transform:translateY(10px)}.home-showcase.is-reviews .home-reviews-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.home-project-card{--card-accent:var(--violet);border:1px solid var(--line);background:var(--surface);border-radius:16px;flex-direction:column;justify-content:space-between;width:100%;min-height:126px;padding:16px;transition:border-color .24s,background-color .24s;animation:.42s cubic-bezier(.22,1,.36,1) both home-project-in;display:flex}@keyframes home-project-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.home-project-card:hover{border-color:var(--card-accent)}.featured-star{background:var(--yellow-soft);color:#a87908;border-radius:50%;align-self:flex-end;place-items:center;width:28px;height:28px;display:grid}.home-project-card-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.home-project-zonecraft{--card-accent:#f34;background:var(--surface);border-color:#ff334461}.home-project-zonecraft:hover{background:var(--surface)}.home-project-zonecraft .featured-star{color:#f34;background:#ff334424}.home-project-portfolio{--card-accent:var(--yellow);border-color:color-mix(in srgb, var(--yellow) 52%, transparent)}.home-project-portfolio:hover{border-color:var(--yellow)}.home-project-portfolio .featured-star{background:var(--yellow-soft);color:var(--yellow);margin-left:auto}.home-project-aguita{--card-accent:var(--blue);border-color:color-mix(in srgb, var(--blue) 34%, transparent)}.home-project-aguita:hover{border-color:var(--blue)}.home-project-aguita .featured-star{background:var(--blue-soft);color:var(--blue)}.home-zonecraft-logo{color:#f34;width:30px;height:30px}.home-project-index{color:var(--card-accent);font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;letter-spacing:-.01em;font-size:10px;font-weight:600}.home-project-card-bottom{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.home-project-card-bottom>span{flex-direction:column;gap:5px;min-width:0;display:flex}.home-project-card-bottom strong{color:var(--ink);font-size:16px;font-weight:600}.home-project-card-bottom small{max-width:590px;color:var(--text-secondary);-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:11px;line-height:1.45;display:-webkit-box;overflow:hidden}.home-review-card{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:clamp(300px,46vw,360px);height:132px;min-height:132px;color:var(--text-secondary);transition:height .34s var(--ease-enter), border-color .24s ease, background-color .24s ease;border-radius:15px;outline:none;flex:none;align-self:flex-start;align-items:flex-start;gap:14px;padding:16px;display:flex;position:relative}.home-review-card.is-expanded{z-index:3;border-color:color-mix(in srgb, var(--coral) 55%, var(--line));background:var(--surface-hover)}.home-review-card>svg{color:var(--coral);flex:none}.home-review-card>p,.home-review-card>div{flex-direction:column;min-width:0;height:100%;display:flex}.home-review-card blockquote{min-height:57px;color:var(--ink);text-align:justify;text-align-last:left;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.home-review-card.is-expanded blockquote{scrollbar-color:#4b4b4bbf transparent;scrollbar-width:thin;flex:auto;min-height:0;display:block;overflow-y:auto}.home-review-card.is-expanded blockquote::-webkit-scrollbar{background:0 0;border-radius:10px;width:1px;height:1px}.home-review-card.is-expanded blockquote::-webkit-scrollbar-thumb{background:#4b4b4bbf;border-radius:10px;transition:background-color .16s}.home-review-card.is-expanded blockquote::-webkit-scrollbar-thumb:hover{background:#2d2d2de6}.home-review-card.is-expanded blockquote::-webkit-scrollbar-thumb:active{background:#141414}.home-review-card.is-expanded blockquote::-webkit-scrollbar-track{margin:0}.home-review-card.is-expanded blockquote::-webkit-scrollbar-button{-webkit-appearance:none;width:0;height:0;display:none}.home-review-card.is-expanded blockquote::-webkit-scrollbar-button:single-button{-webkit-appearance:none;width:0;height:0;display:none}.home-review-card.is-expanded blockquote::-webkit-scrollbar-button:vertical:decrement{-webkit-appearance:none;width:0;height:0;display:none}.home-review-card.is-expanded blockquote::-webkit-scrollbar-button:vertical:increment{-webkit-appearance:none;width:0;height:0;display:none}.home-review-card.is-expanded .home-review-meta{margin-top:12px}.home-review-meta{justify-content:space-between;align-items:center;gap:10px;margin-top:auto;display:flex}.home-review-author{min-width:0;font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;align-items:center;gap:7px;font-size:9px;font-weight:600;display:inline-flex}.home-review-author>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home-review-author img,.home-review-avatar-placeholder{border:1px solid var(--line);border-radius:50%;flex:none;width:24px;height:24px}.home-review-author img{-o-object-fit:cover;object-fit:cover}.home-review-avatar-placeholder{background:var(--surface-hover);color:var(--text-muted);font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;place-items:center;font-size:10px;font-weight:600;display:grid}.home-review-stars{flex:none;gap:2px;display:inline-flex}.home-review-stars .is-filled{color:var(--yellow);fill:var(--yellow)}.home-review-stars .is-empty{color:color-mix(in srgb, var(--yellow) 50%, transparent);fill:var(--line-strong)}.home-reviews-marquee{border-radius:0;width:100%;height:100%;overflow:clip visible}.home-reviews-track,.home-review-group{align-items:stretch;gap:10px;display:flex}.home-reviews-track{will-change:transform;width:max-content;animation:42s linear infinite home-reviews-marquee}.home-review-group{flex:none}@keyframes home-reviews-marquee{to{transform:translate(calc(-50% - 5px))}}.home-project-more{color:var(--text-secondary);background:0 0;border-style:dashed}.home-project-more:hover{border-color:var(--coral);background:var(--coral-soft)}.home-project-more>span{font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;letter-spacing:-.01em;font-size:10px;font-weight:600}.home-project-more strong{color:var(--ink);align-items:center;gap:7px;font-size:17px;font-weight:600;display:inline-flex}.content-page{place-items:center;min-height:0;padding:132px 24px 88px;display:grid}.not-found-page{background:var(--cream);place-items:center;min-height:0;padding:128px 24px 100px;display:grid;overflow:hidden}.not-found-content{width:min(680px,100%)}.not-found-code{color:var(--coral);font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;font-size:var(--label);letter-spacing:-.01em;margin:0 0 16px;font-weight:500}.not-found-content h1{font-size:var(--heading);margin:0;font-weight:650;line-height:1.08}.not-found-description{max-width:480px;color:var(--text-secondary);margin:22px 0 0}.not-found-link{background:var(--ink);height:40px;color:var(--cream);border-radius:999px;align-items:center;gap:8px;margin-top:30px;padding:0 15px;font-size:13px;font-weight:550;transition:transform .22s cubic-bezier(0,.7,.4,1),opacity .18s;display:inline-flex}.not-found-link:hover{transform:scale(1.035)}.not-found-link:active{opacity:.82;transform:scale(.98)}.legal-page-shell{background:var(--cream);min-height:0;padding:108px 24px 96px}.legal-document{width:min(760px,100%);margin:0 auto}.legal-header{margin-bottom:56px}.legal-kicker,.legal-date{font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;font-size:var(--label);letter-spacing:-.01em;font-weight:600}.legal-kicker{color:var(--coral);margin:0 0 40px}.legal-header h1{font-size:var(--heading);margin:0;font-weight:650;line-height:1.08}.legal-lead{max-width:620px;color:var(--text-secondary);margin:48px 0 0}.legal-date{color:var(--text-muted);letter-spacing:0;margin:18px 0 0}.legal-warning{border:1px solid var(--coral-border);background:var(--coral-soft);color:var(--text-secondary);border-radius:12px;margin-bottom:48px;padding:14px 16px;font-size:14px}.legal-warning code{color:var(--ink);font-family:var(--font-mono,"JetBrains Mono"), monospace;font-size:12px}.legal-document section{border-top:1px dashed var(--line);padding:32px 0}.legal-document h2{margin:0 0 14px;font-size:clamp(18px,2.2vw,22px);font-weight:600;line-height:1.25}.legal-document p,.legal-document ul{color:var(--text-secondary);margin:0}.legal-document section>p,.legal-document section>.legal-details{margin-left:20px}.legal-document p+p{margin-top:14px}.legal-document ul{padding-left:20px}.legal-document li+li{margin-top:9px}.legal-document a{color:var(--ink);text-decoration:none;display:inline-block;position:relative}.legal-document a:after{background:var(--coral);clip-path:polygon(0 1px,100% 1px,100% 3px,0 3px);content:"";height:4px;transition:clip-path .18s;position:absolute;bottom:0;left:0;right:0}.legal-document a:hover:after{clip-path:polygon(0 0,100% 2px,100% 4px,0 2px)}.legal-details{margin:0}.legal-details div{border-bottom:1px solid var(--line);grid-template-columns:minmax(120px,.35fr) 1fr;gap:18px;padding:10px 0;display:grid}.legal-details div:last-child{border-bottom:0}.legal-details dt{color:var(--text-muted);font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;letter-spacing:-.01em;font-size:11px;font-weight:600}.legal-details dd{color:var(--text-secondary);margin:0}.content-page-inner{width:min(700px,100%)}.projects-page{--section-accent:var(--violet);width:min(960px,100%)}.contact-page{--section-accent:var(--pink)}.site-footer{padding:0 24px 16px}.site-footer-inner{border-top:1px dashed var(--line);width:min(1120px,100%);min-height:0;color:var(--text-muted);justify-content:space-between;align-items:center;gap:24px;margin:0 auto;padding-top:16px;font-size:12px;display:flex}.site-footer-links{flex-wrap:wrap;justify-content:flex-end;gap:16px;display:flex}.site-footer-links a{color:var(--text-secondary);align-items:center;transition:color .16s;display:inline-flex}.site-footer-links a:hover{color:var(--coral)}.site-footer-signature{color:var(--text-secondary);text-align:left;justify-content:flex-start;align-items:center;gap:6px;display:inline-flex}.footer-country-flag{-o-object-fit:contain;object-fit:contain;flex:none;width:18px;height:18px}.portfolio-page{background:var(--cream);width:100%;min-height:100svh}.portfolio-section{--section-background:var(--cream);--section-accent:var(--coral);background:var(--section-background);width:100%;transition:background-color .28s;position:relative}.portfolio-section+.portfolio-section:before{content:"";pointer-events:none;border-top:1px dashed #2021242e;position:absolute;top:0;left:clamp(48px,31vw,560px);right:clamp(48px,31vw,560px)}.portfolio-section:nth-child(2){--section-accent:var(--blue)}.portfolio-section:nth-child(3){--section-accent:var(--violet)}.portfolio-section:nth-child(4){--section-accent:var(--green)}.portfolio-section:nth-child(5){--section-accent:var(--pink)}html[data-theme=dark] .portfolio-section+.portfolio-section:before{border-top-color:#f4f1ea29}html[data-theme=dark] .contact-menu{background:linear-gradient(135deg,#2a2a28e0,#181817b8);border-color:#ffffff2e;box-shadow:0 10px 30px #00000052,inset 0 1px #ffffff1f,inset 0 -1px #ffffff0d}html[data-theme=dark] .contact-menu:after{background:#232321d1}html[data-theme=dark] .contact-option{background:#ffffff12}html[data-theme=dark] .contact-option:hover,html[data-theme=dark] .intro-email-button.is-menu-open,html[data-theme=dark] .intro-email-button.is-menu-open:hover{background:#ffffff1f;border-color:#ffffff29}html[data-theme=dark] .project-card{background:#ffffff0a}html[data-theme=dark] .availability,html[data-theme=dark] .stack-list li:nth-child(n+3):nth-child(-n+4),html[data-theme=dark] .status-active{color:var(--active-text)}html[data-theme=dark] .stack-list li{color:#ff9b8d}html[data-theme=dark] .stack-list li:nth-child(n+5):nth-child(-n+7){color:#91a8ff}html[data-theme=dark] .stack-list li:nth-child(n+8):nth-child(-n+11){color:#bea2ff}html[data-theme=dark] .stack-list li:nth-child(n+12),html[data-theme=dark] .status-development{color:var(--development-text)}html[data-theme=dark] .social-app-icon-github,html[data-theme=dark] .social-app-icon-x{color:#fff;background:#080808}html[data-theme=dark] ::selection{color:#fff;background:#7694ff7a}.section-content{--content-offset:clamp(48px, 31vw, 560px);width:min(700px,68vw - 48px);margin-left:var(--content-offset);padding:68px 0}.section-content:before{margin-bottom:16px;font-size:clamp(28px,4vw,40px);line-height:1;display:block}.portfolio-section:first-child .section-content:before{content:"👋"}.section-kicker{align-items:center;gap:14px;display:flex}.section-emoji{flex:none;font-size:clamp(28px,4vw,40px);line-height:1}.portfolio-section:first-child .section-content{padding-top:144px}.portfolio-section:last-child .section-content{padding-bottom:132px}h1,h2,h3,p{margin:0}h1{font-size:var(--heading);letter-spacing:-.035em;font-weight:600;line-height:1.18}.name-underline{white-space:nowrap;color:var(--coral);text-decoration:none;display:inline-block;position:relative}.name-measure{visibility:hidden}.name-animation{position:absolute;inset:0;overflow:hidden}.name-underline:after{background:var(--coral);content:"";border-radius:999px;height:3px;transition:transform .16s;position:absolute;bottom:1px;left:0;right:0;transform:rotate(-3deg)}.name-underline:hover:after{transform:rotate(0)}.section-label{color:var(--text-muted);font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;font-size:var(--label);letter-spacing:.09em;font-weight:600;line-height:1.4}.section-label:before{color:var(--section-accent)}.portfolio-section:nth-child(2) .section-label:before{content:"02 — "}.portfolio-section:nth-child(3) .section-label:before{content:"03 — "}.portfolio-section:nth-child(4) .section-label:before{content:"04 — "}.portfolio-section:nth-child(5) .section-label:before{content:"05 — "}.section-description{max-width:580px;color:var(--text-secondary);font-size:var(--body);margin-top:12px}.intro-section{justify-items:start;gap:24px;width:fit-content;max-width:100%;display:grid}.intro-heading{align-items:center;gap:14px;display:flex}.avatar{background:var(--coral-soft);-o-object-fit:cover;object-fit:cover;border:2px solid #ff6b5761;border-radius:50%;width:52px;height:52px;display:block}.avatar-photo{-o-object-position:center;object-position:center}.avatar-secret{color:inherit;cursor:default;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:0;border-radius:50%;padding:0;line-height:0;display:block}.avatar-placeholder{color:var(--coral);place-items:center;font-size:16px;font-weight:600;display:grid}.intro-description{color:var(--text-secondary);margin-top:12px}.intro-description>span{display:block}.intro-role{margin-bottom:24px;font-size:14px;font-style:italic}.spain-word{transition:color .18s;display:inline-block;position:relative}.spain-word:after{content:"";opacity:0;pointer-events:none;transform-origin:50%;background:url(../media/spain.17_m-6x73nf-w.png) 50%/contain no-repeat;width:58px;height:44px;transition:opacity .24s,transform .32s cubic-bezier(.22,1,.36,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-4deg)scale(.9)}.spain-word:hover{color:#0000;-webkit-text-fill-color:transparent}.spain-word:hover:after{opacity:.92;transform:translate(-50%,-50%)rotate(-4deg)scale(1)}.intro-actions{flex-wrap:wrap;gap:10px;display:flex}.intro-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;width:100%;display:flex}.button{min-height:38px;font-size:var(--small);transition:border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, color var(--motion-fast) ease, opacity var(--motion-fast) ease;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:550;line-height:1;display:inline-flex}.button-primary{border-color:var(--coral);background:var(--coral);color:var(--button-primary-text)}.button-secondary{border-color:var(--line);background:var(--white);color:var(--ink)}.button:hover{opacity:.78}.button-primary:hover{background:#ec5c49}.button-secondary:hover{border-color:var(--coral);color:var(--coral)}.intro-email-button{min-height:42px;padding-inline:18px;font-size:15px}.intro-email-button:hover{border-color:var(--line);color:var(--ink)}.contact-wrapper{display:inline-flex;position:relative}.contact-menu{z-index:50;opacity:0;visibility:hidden;pointer-events:none;-webkit-backdrop-filter:blur(18px)saturate(160%);background:linear-gradient(135deg,#ffffffc2,#ffffff6b);border:1px solid #ffffffb8;border-radius:999px;gap:6px;width:max-content;max-width:calc(100vw - 32px);padding:7px;transition:opacity .18s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1),visibility 0s linear .18s;display:flex;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)translateY(8px)scale(.92);box-shadow:0 10px 30px #2021241f,inset 0 1px #ffffffe6,inset 0 -1px #ffffff40}.contact-menu:after{content:"";-webkit-backdrop-filter:blur(18px);background:#ffffff8f;border-radius:0 0 999px 999px;width:18px;height:12px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)}.contact-menu.is-open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translate(-50%)translateY(0)scale(1)}.contact-option{min-height:34px;color:var(--ink);font:550 12px/1 var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;white-space:nowrap;opacity:0;cursor:pointer;background:#ffffff38;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 12px;transition:opacity .15s,transform .15s,background-color .15s,border-color .15s;display:inline-flex;transform:translateY(4px)}.contact-menu.is-open .contact-option{opacity:1;transform:translateY(0)}.contact-menu.is-open .contact-option:first-child{transition-delay:20ms}.contact-menu.is-open .contact-option:nth-child(2){transition-delay:40ms}.contact-menu.is-open .contact-option:nth-child(3){transition-delay:60ms}.contact-option:hover{background:#ffffff94;border-color:#ffffffa3}.contact-option:active{transform:translateY(0)}.intro-email-button.is-menu-open,.intro-email-button.is-menu-open:hover{opacity:.72;background:#ffffffb8}.button:active,.social-links a:active{opacity:.52}.icon{flex:none}.availability{background:var(--green-soft);color:#157a56;border:1px solid #27b9812e;border-radius:999px;align-items:center;gap:9px;min-height:30px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.availability i{background:var(--green);border-radius:50%;flex:none;place-items:center;width:8px;height:8px;line-height:0;display:grid;position:relative}.availability i:after{background:var(--green);content:"";border-radius:50%;width:16px;height:16px;animation:1.6s ease-in-out infinite availability-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes availability-pulse{0%,to{opacity:0}50%{opacity:.3}}.stack-list{flex-wrap:nowrap;flex:none;gap:7px;margin:0;padding:0;list-style:none;display:flex}.stack-marquee{width:calc(100vw - (var(--content-offset) * 2));margin-top:24px;overflow:hidden}.stack-track{will-change:transform;gap:7px;width:max-content;animation:28s linear infinite stack-marquee;display:flex}@keyframes stack-marquee{0%{transform:translate(0)}to{transform:translate(calc(-50% - 3.5px))}}.stack-list li{background:var(--coral-soft);color:#a94335;border:1px solid #ff6b5729;border-radius:999px;align-items:center;gap:7px;min-height:28px;padding:0 10px;font-size:12px;font-weight:500;line-height:1;transition:border-color .16s,transform .16s;display:inline-flex}.stack-list li:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.stack-list li:nth-child(n+3):nth-child(-n+4){background:var(--green-soft);color:#157a56;border-color:#27b9812b}.stack-list li:nth-child(n+5):nth-child(-n+7){background:var(--blue-soft);color:#3657c8;border-color:#5278ff29}.stack-list li:nth-child(n+8):nth-child(-n+11){background:var(--violet-soft);color:#7040d8;border-color:#8b5cf629}.stack-list li:nth-child(n+12){background:var(--yellow-soft);color:#725a11;border-color:#bd931a2e}.stack-list li:hover{border-color:currentColor}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:32px;display:grid}.project-card{--project-color:var(--violet);border:1px solid var(--line);background:var(--surface);min-height:300px;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:22px;flex-direction:column;justify-content:space-between;padding:26px;transition:border-color .22s,background-color .22s;display:flex;position:relative;overflow:hidden}.project-card:first-child{grid-column:span 2}.project-card:before{background:var(--project-color);content:"";border-radius:0 0 999px 999px;height:3px;position:absolute;top:0;left:24px;right:24px}.project-zonecraft{--project-color:#f34}.project-card.project-zonecraft,.project-card.project-zonecraft:hover,.project-modal-panel.project-zonecraft{--project-color:#f34;background:var(--surface);border-color:#ff33446b}.project-zonecraft .project-status{color:#ff6673;background:#ff334426}.project-zonecraft .project-modal-close{border-color:var(--line);color:var(--text-secondary)}.project-zonecraft .project-modal-close:hover{background:var(--surface-hover);border-color:#f34}.project-card-brand-logo{color:#f34;width:58px;height:58px;margin-bottom:22px}.project-modal-brand-logo{color:#f34;width:68px;height:68px;margin-bottom:24px}.project-aguita{--project-color:var(--blue)}.project-portfolio{--project-color:var(--violet)}.project-link:hover,.project-card:hover{border-color:var(--project-color);background:var(--white)}.project-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.project-index{color:var(--project-color);font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;letter-spacing:-.01em;font-size:11px;font-weight:600}.project-card-copy{flex-direction:column;display:flex}.project-card-title{color:var(--ink);font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;letter-spacing:-.035em;font-size:clamp(24px,3vw,34px);font-weight:600;line-height:1.1}.project-status{font-family:var(--font-sans,"Bricolage Grotesque"), system-ui, sans-serif;border-radius:999px;flex:none;padding:4px 8px;font-size:10px;font-weight:600;line-height:1.2}.status-active{background:var(--green-soft);color:#157a56}.status-development{background:var(--yellow-soft);color:#725a11}.project-card-description{max-width:540px;color:var(--text-secondary);margin-top:12px;font-size:14px;line-height:1.6}.project-modal-layer{z-index:200;opacity:1;background:#0c0c0b6b;place-items:center;padding:24px;transition:opacity .3s;animation:.28s backwards project-layer-in;display:grid;position:fixed;inset:0}.project-modal-panel{--project-color:var(--violet);border:1px solid var(--line);background:var(--surface);border-radius:26px;flex-direction:column;width:min(640px,100%);height:min(430px,100svh - 48px);min-height:320px;padding:clamp(24px,4vw,36px);transition:opacity .3s,transform .34s cubic-bezier(.22,1,.36,1);animation:.34s cubic-bezier(.22,1,.36,1) backwards project-panel-in;display:flex;position:relative;overflow:hidden;transform:translateY(0)scale(1);box-shadow:0 30px 90px #0c0c0b3d}.project-modal-panel:before{background:var(--project-color);content:"";border-radius:0 0 999px 999px;height:3px;position:absolute;top:0;left:36px;right:36px}.project-modal-layer.is-closing{opacity:0}.project-modal-layer.is-closing .project-modal-panel{opacity:0;transform:translateY(14px)scale(.95)}.project-modal-top{justify-content:space-between;align-items:center;gap:16px;display:flex}.project-modal-close{border:1px solid var(--line);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:50%;place-items:center;padding:0;transition:border-color .18s,background-color .18s,color .18s,transform .18s;display:grid}.project-modal-close:hover{border-color:var(--project-color);background:var(--surface-hover);color:var(--ink);transform:scale(1.04)}.project-modal-close:active{transform:scale(.96)}.project-modal-copy{overscroll-behavior:contain;min-height:0;margin:auto 0;overflow-y:auto}.timeline-home-link{min-height:30px;color:var(--text-secondary);transition:color var(--motion-fast) ease, opacity var(--motion-fast) ease;align-items:center;gap:6px;font-size:12px;font-weight:550;display:inline-flex}.timeline-home-link:hover,.timeline-home-link:focus-visible{color:var(--coral)}.timeline-home-link:active{opacity:.52}.project-modal-copy h2{color:var(--ink);letter-spacing:-.045em;font-size:clamp(34px,7vw,58px);font-weight:600;line-height:1}.project-modal-copy p{max-width:520px;color:var(--text-secondary);margin-top:22px;font-size:clamp(14px,2vw,16px)}.project-modal-link{background:var(--project-color);min-height:40px;color:var(--button-primary-text);border-radius:999px;align-self:flex-start;align-items:center;gap:8px;padding:0 15px;font-size:13px;font-weight:550;display:inline-flex}@keyframes project-layer-in{0%{opacity:0}}@keyframes project-panel-in{0%{opacity:0;transform:translateY(12px)scale(.94)}}.social-links{flex-wrap:wrap;gap:9px;margin-top:22px;display:flex}.social-links a{width:44px;height:44px;color:var(--white);border:1px solid #2021241a;border-radius:12px;place-items:center;font-size:20px;transition:border-color .16s,filter .16s,transform .16s;display:grid}.social-app-icon-github,.social-app-icon-x{background:var(--ink)}.social-app-icon-linkedin{background:var(--blue)}.social-app-icon-email{color:#fff;background:linear-gradient(#5ac8fa 0%,#007aff 100%);border-color:#007aff2e}.social-links a:hover{border-color:var(--green);filter:brightness(1.04);transform:scale(1.06)}.contact-content{justify-items:start;gap:10px;margin-top:22px;display:grid}.contact-line{color:var(--text-secondary);font-size:var(--body)}.email-link,.call-link{color:var(--pink);font-weight:600;text-decoration:none;transition:color .16s;display:inline-block;position:relative}.email-link:after,.call-link:after{content:"";background:currentColor;border-radius:999px;height:2px;transition:transform .16s;position:absolute;bottom:0;left:0;right:0;transform:rotate(0)}.email-link:hover,.call-link:hover{color:#d84482}.email-link:hover:after,.call-link:hover:after{transform:rotate(-3deg)}@media (max-width:900px){body:has(input:focus,select:focus,textarea:focus)>.liquid-nav{opacity:0;pointer-events:none;transform:translate(-50%,calc(100% + 64px))}body:has(input:focus,select:focus,textarea:focus)>.theme-toggle{opacity:0;pointer-events:none;transform:translateY(calc(100% + 20px))}.home-hero{padding:122px 20px 120px}.home-intro:before{margin-top:2px;font-size:clamp(26px,8vw,32px);left:0}.content-page{padding:112px 20px 72px}.not-found-page{padding:104px 20px 92px}.legal-page-shell{padding:92px 20px 72px}.legal-header{margin-bottom:42px}.legal-kicker{margin-bottom:28px}.legal-lead{margin-top:36px}.legal-document section{padding:26px 0}.legal-document section>p,.legal-document section>.legal-details{margin-left:14px}.legal-details div{grid-template-columns:1fr;gap:3px}.site-footer{padding-inline:20px}.site-footer-inner{gap:8px 16px;padding-top:12px}.site-footer-signature{text-align:left}.portfolio-section+.portfolio-section:before{left:20px;right:20px}.section-content{--content-offset:20px;width:calc(100vw - 40px);margin-left:20px;padding:52px 0}.section-content:before{margin-bottom:14px;font-size:clamp(26px,8vw,32px)}.section-emoji{font-size:clamp(26px,8vw,32px)}.portfolio-section:first-child .section-content{padding-top:96px}.portfolio-section:last-child .section-content{padding-bottom:112px}.projects-grid{grid-template-columns:1fr}.project-card{min-height:220px;padding:22px}.project-card:first-child{grid-column:auto}}@media (max-width:520px){.home-intro{transform:translate(-10px)}.home-hero{padding:101px 20px 150px}.home-projects{margin-top:44px}.home-projects-timeline-link{border:1px solid var(--line);border-radius:50%;justify-content:center;width:30px;height:30px}.home-projects-timeline-link span{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.home-project-card{min-height:118px;padding:14px}.home-project-card-bottom small{-webkit-line-clamp:2}.home-review-card{width:min(300px,100vw - 40px);height:132px;min-height:132px;padding:15px}.site-footer-inner{flex-direction:column;align-items:flex-start;gap:7px}.site-footer-links{justify-content:flex-start;gap:14px}.site-footer-signature{white-space:nowrap}.project-card{border-radius:18px;min-height:190px;padding:20px}.project-card-title{font-size:24px}.project-modal-layer{padding:16px}.project-modal-panel{border-radius:22px;height:min(390px,100svh - 32px);min-height:290px}.contact-menu{border-radius:20px;flex-direction:column;width:150px;padding:6px}.contact-option{justify-content:flex-start;width:100%}}@media (max-width:360px){.intro-heading{gap:10px}.avatar{width:44px;height:44px}.availability{white-space:nowrap;gap:7px;padding-inline:10px;font-size:12px}.home-carousel-header{gap:10px}.home-project-card-bottom{gap:12px}.home-project-more strong{font-size:16px}}@media (hover:none),(pointer:coarse){.contact-option{min-height:44px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.home-intro:before{animation:none}.theme-toggle,.theme-toggle:hover,.theme-toggle:active{transition:none;transform:none}.page-transition-shell,.liquid-nav{transition:none}.liquid-nav-indicator,.page-transition-shell>main,.page-transition-shell>.site-footer{transition:none;transform:none}.liquid-nav-link,.liquid-nav-label,.liquid-nav-context-menu{transition:none;animation:none;transform:none}.stack-marquee{scrollbar-width:none;overflow-x:auto}.stack-marquee::-webkit-scrollbar{display:none}.stack-track{animation:none}.stack-list[aria-hidden=true]{display:none}.availability i:after{opacity:0;animation:none}.portfolio-section,.button,.home-showcase-title span,.home-showcase-project,.home-reviews-panel,.home-carousel-controls button,.home-project-card,.project-card,.project-modal-layer,.project-modal-panel,.project-modal-close,.social-links a,.stack-list li,.name-underline,.name-underline:after,.spain-word,.spain-word:after,.email-link,.call-link,.email-link:after,.call-link:after{transition:none}.project-modal-layer,.project-modal-panel{animation:none}.home-project-card,.home-reviews-track,.home-review-card{transition:none;animation:none}.home-reviews-marquee{scrollbar-width:none;overflow-x:auto}.home-reviews-marquee::-webkit-scrollbar{display:none}.home-review-group[aria-hidden=true]{display:none}.page-transition-shell>.site-footer{animation:none}.project-modal-layer.is-closing .project-modal-panel{transform:none}.contact-menu,.contact-menu.is-open{transition:opacity 80ms linear,visibility 0s linear 80ms;transform:translate(-50%)}.contact-menu.is-open{transition-delay:0s}.contact-option,.contact-menu.is-open .contact-option,.contact-option:hover{transition:opacity 80ms linear,background-color 80ms linear,border-color 80ms linear;transform:none}}::-webkit-scrollbar{background:0 0;border-radius:10px;width:4px;height:4px}::-webkit-scrollbar-thumb{background:#c8c8c880;border-radius:10px}::-webkit-scrollbar-track{margin:0}
