@font-face{font-family:Poppins Fallback;src:local("Arial"),local("Helvetica Neue"),local("Liberation Sans");size-adjust:106%;ascent-override:99%;descent-override:33%;line-gap-override:0%}*,:before,:after{--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: rgb(59 130 246 / .5);--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: }::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: rgb(59 130 246 / .5);--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-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Poppins,Poppins Fallback,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings: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:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-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{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,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{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}input:where([type=text]):focus,input:where(:not([type])):focus,input:where([type=email]):focus,input:where([type=url]):focus,input:where([type=password]):focus,input:where([type=number]):focus,input:where([type=date]):focus,input:where([type=datetime-local]):focus,input:where([type=month]):focus,input:where([type=search]):focus,input:where([type=tel]):focus,input:where([type=time]):focus,input:where([type=week]):focus,select:where([multiple]):focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}input:where([type=checkbox]),input:where([type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}input:where([type=checkbox]):checked,input:where([type=radio]):checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=checkbox]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=radio]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{border-color:transparent;background-color:currentColor}input:where([type=checkbox]):indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media(forced-colors:active){input:where([type=checkbox]):indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{border-color:transparent;background-color:currentColor}input:where([type=file]){background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}input:where([type=file]):focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}:root,[data-theme=wine]{--accent: #df3a31;--accent-text: #df3a31;--on-accent: #faf6dd;--bg: #2a4d71;--fg: #faf6dd;--fg-soft: #d9edec;--line: #718bae;--deep: #0a1423;--font-display: "Poppins", "Poppins Fallback", ui-sans-serif, system-ui, sans-serif;--font-body: "Poppins", "Poppins Fallback", ui-sans-serif, system-ui, sans-serif}:root{--tint-fill: 8%;--tint-border: 30%;--tint-frame: 20%;--tint-track: 12%;--text-display: clamp(1.45rem, 4.5vw + .6rem, 3.5rem);--text-headline: clamp(1.3rem, 5vw, 1.75rem);--text-title: clamp(1.15rem, 4vw, 1.5rem);--text-lead: 1.125rem;--text-body: 1rem;--text-label: .875rem;--text-micro: .75rem;--lh-display: 1.05;--lh-headline: 1.15;--lh-title: 1.25;--lh-lead: 1.5;--lh-body: 1.7;--lh-label: 1.3;--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-feedback: .15s;--dur-state: .26s;--dur-reveal: .5s}html{font-size:120%}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}html,body,#app{min-height:100%}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}@media(prefers-reduced-motion:no-preference){body{transition:background-color var(--dur-state) var(--ease-out),color var(--dur-state) var(--ease-out)}}::-moz-selection{background:var(--accent);color:var(--on-accent)}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--fg);outline-offset:2px;border-radius:3px}:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;left:50%;top:.5rem;transform:translate(-50%,-150%);z-index:300;padding:.6rem 1.25rem;background:var(--fg);color:var(--bg);font-size:var(--text-label);font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border-radius:3px;transition:transform .2s}.skip-link:focus{transform:translate(-50%)}.site-nav{position:sticky;top:0;left:0;right:0;z-index:100;background:var(--bg);border-bottom:1px solid color-mix(in srgb,var(--line) var(--tint-border),transparent);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:max(.35rem,env(safe-area-inset-top)) max(2rem,env(safe-area-inset-right)) .35rem max(2rem,env(safe-area-inset-left))}.site-nav__brand{font-family:inherit;display:inline-flex;align-items:center;min-height:44px;padding:0;font-weight:700;font-size:var(--text-body);letter-spacing:.05em;color:var(--fg);cursor:pointer;border:none;background:none;text-decoration:none}.site-nav__burger{display:none;place-items:center;min-width:44px;min-height:44px;padding:0;background:none;border:none;color:var(--fg);font-size:1.75rem;line-height:1;cursor:pointer}.site-nav__links{display:flex;list-style:none;gap:2rem;margin:0;padding:0}.theme-switcher{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:44px;padding:.35rem .65rem;border:1px solid color-mix(in srgb,var(--fg) 45%,transparent);border-radius:3px;background:color-mix(in srgb,var(--bg) 88%,var(--deep));color:var(--fg);font:inherit;font-size:var(--text-micro);font-weight:600;line-height:1.2;cursor:pointer}.theme-switcher__track{position:relative;display:inline-flex;width:2.2rem;height:1.2rem;flex:0 0 auto;padding:2px;border:1px solid currentColor;border-radius:999px}.theme-switcher__track>span{width:calc(1.2rem - 6px);height:calc(1.2rem - 6px);border-radius:50%;background:var(--accent);transform:translate(0);transition:transform var(--dur-state) var(--ease-out),background-color var(--dur-state) var(--ease-out)}[data-theme=cafe] .theme-switcher__track>span{transform:translate(1rem)}.theme-switcher__label{white-space:nowrap}.theme-switcher--menu{margin:5rem 2rem 0;width:calc(100% - 4rem)}.site-nav__links button,.site-nav__links a{background:none;border:none;color:var(--fg-soft);font-size:var(--text-label);font-weight:500;line-height:var(--lh-label);letter-spacing:.1em;cursor:pointer;text-decoration:none;transition:color .2s;position:relative}.site-nav__links button:after,.site-nav__links a:after{content:"";display:block;margin:4px auto 0;width:100%;height:2px;background:var(--accent);transform:scaleX(0);transition:transform var(--dur-state) var(--ease-out)}@media(hover:hover){.site-nav__links button:hover,.site-nav__links a:hover{color:var(--fg)}}.site-nav__links button:focus-visible,.site-nav__links a:focus-visible{color:var(--fg)}.site-nav__links button,.site-nav__links a{display:inline-flex;align-items:center;min-height:44px;padding:0 .15rem}@media(hover:hover){.site-nav__links button:hover:after,.site-nav__links a:hover:after{transform:scaleX(1)}}.site-nav__links button:focus-visible:after,.site-nav__links a:focus-visible:after{transform:scaleX(1)}.mobile-nav{position:fixed;top:0;right:calc(-1*min(280px,85vw));width:min(280px,85vw);height:100%;padding-top:env(safe-area-inset-top);background:#0a1423f7;background:color-mix(in srgb,var(--deep) 97%,transparent);z-index:200;transition:right .3s ease}.mobile-nav--open{right:0}.mobile-nav__scrim{position:fixed;inset:0;z-index:150;background:#0a14238c;background:color-mix(in srgb,var(--deep) 55%,transparent);opacity:0;pointer-events:none;transition:opacity var(--dur-state) var(--ease-out)}.mobile-nav__scrim--visible{opacity:1;pointer-events:auto}.mobile-nav__close{position:absolute;top:max(1rem,env(safe-area-inset-top));right:1.25rem;display:grid;place-items:center;min-width:44px;min-height:44px;background:none;border:none;color:var(--fg);font-size:2rem;line-height:1;cursor:pointer}.mobile-nav__links{list-style:none;padding:1rem 2rem 0;margin:0}.mobile-nav__links li{margin-bottom:.75rem}.mobile-nav__links button,.mobile-nav__links a{display:flex;align-items:center;min-height:44px;width:100%;background:none;border:none;color:var(--fg);font-size:var(--text-title);font-weight:700;text-align:left;text-decoration:none;cursor:pointer;letter-spacing:.05em;transition:color .3s}@media(hover:hover){.mobile-nav__links button:hover,.mobile-nav__links a:hover{color:var(--accent-text)}}.mobile-nav__links button:active,.mobile-nav__links a:active{color:var(--accent-text)}.fp-wrapper{width:100%}.fp-section{scroll-margin-top:4rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem max(1.5rem,env(safe-area-inset-right)) 4rem max(1.5rem,env(safe-area-inset-left));position:relative}@media(orientation:landscape)and (max-height:560px){.fp-section{min-height:auto;padding-block:2.5rem}.scroll-indicator{display:none}}.fp-content{max-width:800px;width:100%;margin:0 auto}.fp-content--wide{max-width:min(1100px,100%)}.fp-services{background:color-mix(in srgb,var(--bg) 92%,var(--deep))}.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:1.25rem;width:100%;margin-top:2rem;text-align:left}.service-card{display:flex;min-width:0;flex-direction:column;padding:1.4rem;border:1px solid color-mix(in srgb,var(--line) 65%,transparent);border-radius:6px;background:color-mix(in srgb,var(--bg) 92%,var(--deep))}.service-card h3{margin:0;color:var(--fg);font-size:var(--text-title);line-height:var(--lh-title);overflow-wrap:anywhere}.service-card__price{margin:.75rem 0 0;color:var(--fg);font-size:var(--text-lead);font-weight:700}.service-card__description{margin:.75rem 0 0;color:var(--fg-soft);font-size:var(--text-label);line-height:var(--lh-body)}.service-card ul{margin:1rem 0 1.25rem;padding-inline-start:1.2rem;color:var(--fg-soft);font-size:var(--text-label);line-height:1.6}.service-card__actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(10rem,100%),1fr));gap:.65rem;margin-top:auto}.service-card__cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.4rem .85rem;border:2px solid var(--accent);border-radius:3px;color:var(--fg);font-size:var(--text-label);font-weight:700;text-align:center;text-decoration:none}@media(hover:hover){.service-card__cta:hover{background:var(--accent);color:var(--on-accent)}}.service-disclosure{max-width:72ch;margin:1.75rem auto 0;color:var(--fg-soft);font-size:var(--text-label);line-height:var(--lh-body)}.maintenance-disclosure{max-width:760px;margin:1.25rem auto 0;padding:1rem 1.2rem;border:1px solid color-mix(in srgb,var(--line) 65%,transparent);border-radius:6px;text-align:left}.maintenance-disclosure summary{min-height:44px;color:var(--fg);font-weight:700;line-height:44px;cursor:pointer}.maintenance-list{margin:.5rem 0 1rem;padding:0;list-style:none}.maintenance-list li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid color-mix(in srgb,var(--line) 35%,transparent)}.maintenance-list strong{white-space:nowrap}.maintenance-disclosure p{color:var(--fg-soft);font-size:var(--text-label);line-height:var(--lh-body)}.fp-development{background:color-mix(in srgb,var(--bg) 92%,var(--deep))}.process-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:1.5rem 2rem;text-align:left}.process-step{display:flex;align-items:flex-start;gap:.75rem;min-width:0;padding-top:1rem;border-top:1px solid var(--line)}.process-step__number{display:inline-flex;align-items:center;justify-content:center;flex:0 0 2.25rem;height:2.25rem;padding:0;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:var(--text-body);border-radius:3px}.process-step__body{flex:1;min-width:0}.process-step__body h3{color:var(--fg);font-weight:700;font-size:var(--text-body);line-height:var(--lh-body);margin:0 0 .25rem}.process-step__body p{margin:0;color:var(--fg-soft);font-size:var(--text-body);line-height:var(--lh-body)}.process-step__body a{color:var(--fg-soft);text-decoration:underline;font-weight:600}@media(hover:hover){.process-step__body a:hover{text-decoration:underline}}.fp-notfound h1{color:var(--fg);font-size:var(--text-headline);line-height:var(--lh-headline);font-weight:700;letter-spacing:.05em;text-wrap:balance}.fp-section h2{color:var(--fg);font-weight:700;font-size:var(--text-headline);line-height:var(--lh-headline);letter-spacing:.05em;overflow-wrap:break-word;text-wrap:balance}.fp-section h2:after{content:"";display:block;width:2.5rem;height:3px;margin:.6rem auto 0;background:var(--accent)}.fp-hero,.fp-contact{min-height:100vh;min-height:100svh}.fp-hero--compact{min-height:50svh}.fp-hero{background:radial-gradient(ellipse at 50% 0%,rgba(113,139,174,.2) 0%,transparent 70%),var(--bg)}.fp-hero__row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:2.5rem}.fp-hero__content{text-align:left;max-width:46ch}.fp-hero__figure{margin:0;flex-shrink:0}.fp-hero__photo{width:clamp(150px,38vw,230px);aspect-ratio:3 / 4;border-radius:6px;border:3px solid var(--accent);flex-shrink:0}.fp-hero__hint{margin-top:.6rem;color:var(--fg-soft);font-size:var(--text-micro);letter-spacing:.06em;text-transform:uppercase;text-align:center}.pixel-flip{position:relative;display:block;padding:0;overflow:hidden;background:var(--deep);cursor:pointer;touch-action:manipulation}.pixel-flip__img,.pixel-flip__canvas{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.pixel-flip__canvas{visibility:hidden}.pixel-flip--ready .pixel-flip__canvas{visibility:visible}.pixel-flip--ready .pixel-flip__img{visibility:hidden}.hero-slash{display:inline-block}@media(prefers-reduced-motion:no-preference){.fp-hero__photo,.fp-hero__hint{opacity:0;animation:heroSurface .62s var(--ease-out) forwards}.fp-hero__content h1{opacity:0;animation:heroRise .52s var(--ease-out) .1s forwards}.hero-slash{transform:scaleY(0);animation:heroStrike .38s var(--ease-out) .38s forwards}.fp-hero__typed{opacity:0;animation:heroRise .42s var(--ease-out) .52s forwards}}@keyframes heroSurface{0%{opacity:0;scale:.86}to{opacity:1;scale:1}}@keyframes heroRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes heroStrike{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.fp-hero__content h1{color:var(--fg);font-weight:700;font-size:var(--text-display);line-height:var(--lh-display);letter-spacing:.04em;text-wrap:balance}.fp-hero__typed{color:var(--fg-soft);font-size:var(--text-lead);font-weight:400;line-height:var(--lh-lead);letter-spacing:.01em;margin-top:.75rem}.blinking-cursor{font-weight:400;margin-left:2px;color:var(--fg)}@media(prefers-reduced-motion:no-preference){.blinking-cursor{animation:blink 1s step-end infinite}}@keyframes blink{0%,to{color:transparent}50%{color:var(--fg)}}.scroll-indicator{position:absolute;display:grid;place-items:center;min-width:44px;min-height:44px;bottom:3.5rem;left:50%;transform:translate(-50%);background:none;border:none;color:var(--fg);font-size:2.5rem;cursor:pointer;line-height:1}@media(prefers-reduced-motion:no-preference){.fp-hero--onscreen .scroll-indicator{animation:drift 2.6s ease-in-out infinite}}@keyframes drift{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(7px)}}.fp-about{background:var(--bg)}.fp-about__bio{color:var(--fg-soft);font-size:var(--text-body);line-height:var(--lh-body);letter-spacing:.01em;max-width:58ch;margin:1rem auto 0;text-align:left;text-wrap:pretty}@media(prefers-reduced-motion:no-preference){.fp-about__fade{opacity:0;transition:opacity .32s var(--ease-out)}.fp-about__fade--visible{opacity:1}}.stack-chips{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:.75rem 0 0;padding:0;text-align:left}.stack-chips li{padding:.3rem .6rem;border-radius:3px;background:#718bae14;background:color-mix(in srgb,var(--line) var(--tint-fill),transparent);border:1px solid rgba(113,139,174,.2);border-color:color-mix(in srgb,var(--line) var(--tint-frame),transparent);color:var(--fg);font-size:var(--text-micro);letter-spacing:.03em}.stack-disclosure{margin-top:1rem}.stack-disclosure summary{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:.55rem 1rem;border:2px solid var(--line);border-radius:3px;color:var(--fg);font-size:var(--text-label);font-weight:600;letter-spacing:.04em;cursor:pointer}.stack-disclosure[open] summary{margin-bottom:1rem}.exp-list{list-style:none;margin:1.5rem 0 0;padding:0;text-align:left}.exp-row{display:flex;gap:1.25rem;padding:.9rem 0;border-bottom:1px solid rgba(113,139,174,.2);border-bottom-color:color-mix(in srgb,var(--line) var(--tint-frame),transparent)}.exp-row:last-child{border-bottom:none}.exp-row__year{flex:0 0 5.5rem;color:var(--fg-soft);font-size:var(--text-micro);letter-spacing:.08em;padding-top:.2rem}.exp-row__body{display:block}.exp-row__role{display:block;color:var(--fg);font-size:var(--text-body);font-weight:600;text-wrap:balance}.exp-row__org{display:block;margin-top:.15rem;color:var(--fg-soft);font-size:var(--text-label);line-height:var(--lh-label)}.exp-row__note{display:block;margin-top:.5rem;color:var(--fg-soft);font-size:var(--text-micro);line-height:var(--lh-label)}.exp-row__links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.exp-row__links-note{display:block;margin-top:.5rem;color:var(--fg-soft);font-size:var(--text-micro);font-style:italic;letter-spacing:.02em}.exp-row__link{display:inline-flex;align-items:center;min-height:44px;padding:.4rem .7rem;border:1px solid rgba(113,139,174,.45);border-color:color-mix(in srgb,var(--line) 45%,transparent);border-radius:3px;color:var(--fg);font-size:var(--text-micro);letter-spacing:.04em}@media(hover:hover){.exp-row__link:hover{border-color:var(--accent)}}.cert-list{list-style:none;margin:1.5rem 0 0;padding:0;text-align:left}.cert-row{display:flex;align-items:center;gap:1rem;padding:.75rem .9rem;border-radius:6px;border:1px solid rgba(113,139,174,.3);border-color:color-mix(in srgb,var(--line) var(--tint-border),transparent);background:#718bae14;background:color-mix(in srgb,var(--line) var(--tint-fill),transparent);text-decoration:none;transition:transform .2s,box-shadow .2s}.cert-list li+li{margin-top:.6rem}@media(hover:hover){.cert-row:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0003}}.cert-row:active{transform:translateY(-1px)}.cert-row__image{flex:0 0 auto;width:48px;height:48px;-o-object-fit:contain;object-fit:contain}.cert-row__body{flex:1 1 auto;min-width:0}.cert-row__name{display:block;color:var(--fg);font-size:var(--text-label);font-weight:600;line-height:var(--lh-label);overflow-wrap:break-word}.cert-row__issuer{display:block;margin-top:.15rem;color:var(--fg-soft);font-size:var(--text-micro);letter-spacing:.04em}.cert-row__verify{flex:0 0 auto;align-self:center;padding:.4rem .7rem;border:2px solid var(--accent);border-radius:3px;color:var(--fg);font-size:var(--text-micro);font-weight:700;letter-spacing:.08em}@media(hover:hover){.cert-row:hover .cert-row__verify{background:var(--accent);color:var(--on-accent)}}.system-compact{list-style:none;margin:1.5rem 0 0;padding:0;text-align:left}.system-compact li{padding:.8rem 0;border-bottom:1px solid rgba(113,139,174,.2);border-bottom-color:color-mix(in srgb,var(--line) var(--tint-frame),transparent)}.system-compact li:last-child{border-bottom:none}.system-compact__name{display:block;color:var(--fg);font-size:var(--text-body);font-weight:600;letter-spacing:.03em}.system-compact__stack{display:block;margin-top:.2rem;color:var(--fg-soft);font-size:var(--text-micro);letter-spacing:.04em}.proof-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:2rem;margin-top:2rem;text-align:left}.proof-group__heading{margin-top:0;text-align:left}.proof-group .section-more{text-align:left}.professional-proof{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:2.5rem;margin-top:2.5rem;text-align:left}.proof-panel{min-width:0;scroll-margin-top:5rem}.proof-panel--wide{grid-column:1 / -1}.proof-panel__heading{margin-top:0;text-align:left}.proof-panel__intro{margin:.25rem 0 1rem;text-align:left}.social-links{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.social-links a{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:0 .6rem;border-radius:3px;color:var(--fg);font-size:var(--text-micro);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:color .2s}.social-links svg{width:18px;height:18px;flex:0 0 auto}@media(hover:hover){.social-links a:hover{color:var(--accent-text)}}.social-links a:active{color:var(--accent-text)}.social-links--hero{justify-content:flex-start;margin-top:1rem}.fp-hero__available{margin-top:.5rem;color:var(--fg);font-size:var(--text-label);font-weight:600;letter-spacing:.02em}.fp-hero__proof{margin-top:.9rem;max-width:46ch;color:var(--fg-soft);font-size:var(--text-lead);line-height:var(--lh-lead);letter-spacing:.01em;text-wrap:pretty}.section-intro{margin-bottom:2rem}.section-more{margin-top:1.75rem;font-size:var(--text-label);letter-spacing:.02em}.section-more a{display:inline-flex;align-items:center;min-height:44px;color:var(--fg);text-decoration:none;border-bottom:2px solid var(--accent)}.subsection-heading{margin-top:2.5rem;color:var(--fg);font-size:var(--text-title);line-height:var(--lh-title);font-weight:700;letter-spacing:.03em;text-wrap:balance}.system-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:1.5rem;list-style:none;margin:0;padding:0;text-align:left}.system-item{padding:1.25rem 1.5rem;border-radius:6px;background:#718bae14;background:color-mix(in srgb,var(--line) var(--tint-fill),transparent);border:1px solid rgba(113,139,174,.3);border-color:color-mix(in srgb,var(--line) var(--tint-border),transparent)}.system-item__name{margin:0 0 .5rem;color:var(--fg);font-size:var(--text-body);font-weight:600;letter-spacing:.05em;text-wrap:balance}.system-item__detail{margin:0 0 .75rem;color:var(--fg-soft);font-size:var(--text-label);line-height:var(--lh-lead);text-wrap:pretty}.system-item__stack,.project-link-card__stack{margin:0;color:var(--fg);font-size:var(--text-micro);letter-spacing:.04em}.system-item .section-more{margin-top:.9rem}.system-item__role{margin:.4rem 0 0;color:var(--fg-soft);font-size:var(--text-micro);letter-spacing:.06em;text-transform:uppercase}.rec-list{display:grid;gap:1.25rem;list-style:none;margin:1.5rem 0 0;padding:0;text-align:left}#recommendations{width:100%;max-width:40rem;margin-inline:auto}.rec{padding:1.5rem;border-radius:6px;background:#718bae14;background:color-mix(in srgb,var(--line) var(--tint-fill),transparent);border:1px solid rgba(113,139,174,.3);border-color:color-mix(in srgb,var(--line) var(--tint-border),transparent)}.rec__quote{margin:0;color:var(--fg);font-size:var(--text-body);line-height:var(--lh-body);letter-spacing:.01em;text-wrap:pretty}.rec__by{margin:1.1rem 0 0;padding-top:1rem;border-top:3px solid var(--accent);border-top-width:3px;width:100%}.rec__name{display:block;color:var(--fg);font-size:var(--text-label);font-weight:600;font-style:normal;letter-spacing:.04em}.rec__role{display:block;margin-top:.2rem;color:var(--fg-soft);font-size:var(--text-micro);letter-spacing:.06em;text-transform:uppercase}.project-link-cards>*{min-width:0}.project-link-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:1.5rem;width:100%;margin:0 auto}.project-link-cards--archive{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),340px));justify-content:start}.project-groups{display:grid;gap:3rem;margin-top:2.5rem}.project-group+.project-group{padding-top:3rem;border-top:1px solid color-mix(in srgb,var(--line) var(--tint-border),transparent)}.project-group__intro{margin-bottom:1.25rem;text-align:left}.project-group__intro h3{color:var(--fg);font-size:var(--text-title);line-height:var(--lh-title);font-weight:700;text-wrap:balance}.project-group__intro p{max-width:58ch;margin-top:.25rem;color:var(--fg-soft);font-size:var(--text-label);line-height:var(--lh-lead);text-wrap:pretty}.project-link-card{display:flex;flex-direction:column;padding:1.25rem 1.5rem;border-radius:6px;background:#718bae14;background:color-mix(in srgb,var(--line) var(--tint-fill),transparent);border:1px solid rgba(113,139,174,.3);border-color:color-mix(in srgb,var(--line) var(--tint-border),transparent);text-decoration:none;color:inherit;text-align:center;transition:transform .2s,box-shadow .2s}@media(hover:hover){.project-link-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0003}}.project-link-card:active{transform:translateY(-2px)}.project-link-card__name{display:block;overflow-wrap:break-word;font-size:var(--text-body);font-weight:600;color:var(--fg);letter-spacing:.05em;text-wrap:balance;margin-bottom:.75rem}.project-link-card__detail{display:block;margin-top:.75rem;color:var(--fg-soft);font-size:var(--text-label);line-height:var(--lh-lead);text-align:left;text-wrap:pretty}.project-link-card__stack{display:block;margin-top:.5rem;text-align:left}.project-link-card__stack--absent{color:var(--fg-soft);font-size:var(--text-micro);font-style:italic;opacity:.85}.project-link-card__role{display:block;font-size:var(--text-micro);color:var(--fg-soft);letter-spacing:.06em;text-transform:uppercase;margin-top:.6rem;margin-bottom:0;text-align:left}.project-link-card__note{display:block;margin-top:.5rem;color:var(--fg-soft);font-size:var(--text-micro);font-style:italic;letter-spacing:.02em;text-align:left;opacity:.85}.project-link-card__image{display:block;width:100%;height:auto;border-radius:4px;margin:0 auto}.fp-portfolio{background:linear-gradient(180deg,rgba(42,77,113,.6) 0%,var(--bg) 100%)}.slide-viewer{width:100%}.slide-title{color:var(--fg);overflow-wrap:break-word;font-weight:700;font-size:var(--text-title);line-height:var(--lh-title);letter-spacing:.03em;text-wrap:balance}.slide-caption{color:var(--fg-soft);font-size:var(--text-body);line-height:var(--lh-lead);margin-top:.25rem;text-wrap:pretty}.slide-image-wrap{margin:1.5rem auto;max-width:100%;border-radius:6px;overflow:hidden;border:1px solid rgba(113,139,174,.2);border-color:color-mix(in srgb,var(--line) var(--tint-frame),transparent)}.slide-image{width:100%;display:block}.slide-fade-in{opacity:1;transform:scale(1);transition:opacity var(--dur-state) var(--ease-out),transform var(--dur-state) var(--ease-out)}.slide-fade-out{opacity:0;transform:scale(.97);transition:opacity var(--dur-state) var(--ease-out),transform var(--dur-state) var(--ease-out)}@media(prefers-reduced-motion:reduce){.slide-fade-out{transform:none}}.slide-controls{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:1rem}.slide-arrow{background:none;border:2px solid var(--accent);color:var(--fg);width:44px;height:44px;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;line-height:1}@media(hover:hover){.slide-arrow:hover{background:var(--accent);color:var(--on-accent)}}.slide-arrow:active{background:var(--accent);color:var(--on-accent)}.slide-counter{font-size:var(--text-label);color:var(--fg-soft);letter-spacing:.1em;font-variant-numeric:tabular-nums}.fp-contact{background:var(--bg)}.fp-contact__intro{color:var(--fg-soft);font-size:var(--text-lead);line-height:var(--lh-lead);letter-spacing:.01em;margin-top:.75rem;text-wrap:pretty;max-width:520px;margin-left:auto;margin-right:auto}.fp-contact__actions{margin-top:2rem;display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.btn-solid{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.75rem;font-size:1rem;line-height:1.5rem;font-weight:700;letter-spacing:.025em;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;border:2px solid var(--accent);background:var(--accent);color:var(--on-accent);border-radius:3px;text-decoration:none}@media(hover:hover){.btn-solid:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0003}}.btn-solid:active{transform:translateY(-1px)}.fp-contact__address{margin-top:1.25rem;color:var(--fg-soft);font-size:var(--text-label);letter-spacing:.04em}.fp-contact__address span{color:var(--fg);-webkit-user-select:all;-moz-user-select:all;user-select:all}.btn-outline{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.75rem;font-size:1rem;line-height:1.5rem;font-weight:700;letter-spacing:.025em;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;border:2px solid var(--line);background:transparent;color:var(--fg);border-radius:3px;text-decoration:none}@media(hover:hover){.btn-outline:hover{background:var(--line);color:var(--fg)}}.btn-outline:active{background:var(--line);color:var(--fg)}.fp-footer{background:#0a142399;background:color-mix(in srgb,var(--deep) 60%,transparent);padding:1.5rem 1.5rem max(1.5rem,env(safe-area-inset-bottom));text-align:center}.fp-footer p{font-size:var(--text-label);font-weight:600;color:var(--fg);letter-spacing:.1em;margin:0 0 .75rem}.fp-footer__copy{font-size:var(--text-micro);color:var(--fg-soft);letter-spacing:.02em}h1,h2,h3,.site-nav__brand,.site-nav__links button,.site-nav__links a,.mobile-nav__links button,.mobile-nav__links a,.slide-title{font-family:var(--font-display)}[data-theme=wine] :is(h1,h2,.subsection-heading,.fp-hero__typed,.site-nav__brand,.site-nav__links button,.site-nav__links a,.mobile-nav__links button,.mobile-nav__links a,.fp-footer p,.cert-row__verify,.btn-solid,.btn-outline){text-transform:uppercase}.slash{color:var(--accent-text)}.doodle,.mascot,.gm-extra,.gm-item__num,.gm-item__cursor,.burger-bars,.burger-label{display:none}.gm-item{display:flex;align-items:center;min-height:44px;width:100%;background:none;border:none;color:var(--fg);font:inherit;font-size:var(--text-title);font-weight:700;letter-spacing:.05em;text-align:left;text-decoration:none;text-transform:uppercase;cursor:pointer}@media(max-width:91.999rem){.site-nav__links{display:none}.site-nav__burger{display:grid}[data-theme=wine] .theme-switcher--nav{display:none}}@media(max-width:400px){.site-nav{gap:.5rem;padding-inline:max(1rem,env(safe-area-inset-left)) max(1rem,env(safe-area-inset-right))}}@media(max-width:640px){.fp-hero__row{width:100%;min-width:0;gap:1.5rem}.fp-hero__content{width:100%;min-width:0;max-width:100%}.fp-hero__content>*{max-width:100%;overflow-wrap:anywhere}.fp-contact__actions{flex-direction:column;align-items:center}.fp-contact__actions>*{width:100%;max-width:320px}}@media(forced-colors:active){.btn-solid,.btn-outline,.slide-arrow,.cert-row__verify,.stack-chips li,.project-link-card{border-color:currentColor}.fp-section h2:after{background:currentColor}:focus-visible{outline:2px solid Highlight}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.sticky{position:sticky}.block{display:block}.hidden{display:none}.h-10{height:2.5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-9{height:2.25rem}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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)}[data-theme=cafe]{--bg: #fbf1de;--bg-2: #f4e3c2;--card: #fffaf0;--fg: #3f2616;--fg-soft: #6a4630;--line: #8a6a52;--deep: #2a1a10;--accent: #e8913a;--accent-text: #b4481a;--on-accent: #3f2616;--butter: #f6d58e;--sage: #a9bd8d;--font-display: "Gaegu", "Comic Sans MS", ui-rounded, cursive;--font-body: "Nunito", ui-rounded, system-ui, sans-serif;--wobble: 14px 20px 12px 18px / 18px 12px 20px 14px;--hard: 4px 4px 0 var(--fg);--grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.25  0 0 0 0 0.15  0 0 0 0 0.08  0 0 0 0.09 0'/></filter><rect width='180' height='180' filter='url(%23g)'/></svg>")}[data-theme=cafe] :is(.fp-contact,.fp-footer){--fg: #fbf1de;--fg-soft: #e6d3bd;--card: #4a3657;--line: #b79fc4;--accent-text: #f2a65a;--on-accent: #3f2616}[data-theme=cafe] body{background-color:var(--bg);background-image:var(--grain);letter-spacing:.005em}[data-theme=cafe] .fp-hero,[data-theme=cafe] .fp-about{background:transparent}[data-theme=cafe] .fp-portfolio,[data-theme=cafe] .fp-certifications,[data-theme=cafe] .fp-services,[data-theme=cafe] .fp-development{background:var(--bg-2)}[data-theme=cafe] .fp-contact,[data-theme=cafe] .fp-footer{background-color:#3a2a45;background-image:radial-gradient(circle,rgba(255,238,205,.85) 1.6px,transparent 2.2px),radial-gradient(circle,rgba(255,238,205,.5) 1.1px,transparent 1.7px),radial-gradient(circle,rgba(255,238,205,.35) .9px,transparent 1.4px),radial-gradient(ellipse at 50% 120%,rgba(232,145,58,.28),transparent 60%);background-size:263px 191px,137px 113px,71px 89px,auto;background-position:41px 37px,90px 12px,17px 55px,0 0;color:var(--fg)}[data-theme=cafe] .fp-footer{background-color:#2f2139}[data-theme=cafe] .fp-section+.fp-section:before{content:"";position:absolute;top:-6px;left:0;right:0;height:12px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='12' viewBox='0 0 60 12'><path d='M0 6 Q7.5 0 15 6 T30 6 T45 6 T60 6' fill='none' stroke='%233f2616' stroke-opacity='.45' stroke-width='2' stroke-linecap='round'/></svg>") repeat-x center;pointer-events:none}[data-theme=cafe] .fp-contact:before{filter:invert(1) sepia(.4)}[data-theme=cafe] :is(h1,h2,h3,.site-nav__brand,.slide-title){letter-spacing:.01em;font-weight:700}[data-theme=cafe] .fp-hero__content h1,[data-theme=cafe] .fp-notfound h1{font-size:calc(var(--text-display) * 1.3);line-height:1}[data-theme=cafe] .fp-section h2{font-size:calc(var(--text-headline) * 1.55);line-height:1.05}[data-theme=cafe] :is(.subsection-heading,.slide-title){font-size:calc(var(--text-title) * 1.4)}[data-theme=cafe] .fp-hero__typed{font-family:var(--font-display);font-size:1.7rem;font-weight:700;letter-spacing:.01em;color:var(--accent-text)}[data-theme=cafe] .blinking-cursor{color:var(--fg)}[data-theme=cafe] .site-nav__brand{font-size:1.6rem}[data-theme=cafe] .site-nav__links button,[data-theme=cafe] .site-nav__links a{font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:.01em;color:var(--fg)}[data-theme=cafe] .social-links a,[data-theme=cafe] .exp-row__year,[data-theme=cafe] :is(.rec__role,.system-item__role,.project-link-card__role){text-transform:none}[data-theme=cafe] .social-links a{font-size:var(--text-label);letter-spacing:.02em;font-weight:600}[data-theme=cafe] .exp-row__year{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--accent-text);letter-spacing:.02em}[data-theme=cafe] :is(.rec__role,.system-item__role,.project-link-card__role){letter-spacing:.02em;font-size:.8rem}@media(hover:hover){[data-theme=cafe] :is(.social-links a,.fp-footer__social a):hover{color:var(--fg);-webkit-text-decoration:underline wavy var(--accent);text-decoration:underline wavy var(--accent);text-underline-offset:5px;text-decoration-thickness:2px}}[data-theme=cafe] .site-nav{background:var(--bg);border-bottom:2px dashed color-mix(in srgb,var(--fg) 55%,transparent)}[data-theme=cafe] .site-nav__links button:after,[data-theme=cafe] .site-nav__links a:after{height:5px;margin-top:0;border-radius:4px;background:var(--accent)}[data-theme=cafe] .fp-section h2:after{width:5.5rem;height:12px;margin-top:.35rem;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 88 12' preserveAspectRatio='none'><path d='M2 7 Q13 0 24 7 T46 7 T68 7 T86 6' fill='none' stroke='%23e8913a' stroke-width='3.4' stroke-linecap='round'/></svg>") center / 100% 100% no-repeat}[data-theme=cafe] .fp-hero__photo{border:3px solid var(--fg);border-radius:18px 26px 16px 24px/24px 16px 26px 18px;box-shadow:6px 6px 0 var(--accent);transform:rotate(-2deg);transition:transform var(--dur-state) var(--ease-out),box-shadow var(--dur-state) var(--ease-out)}@media(hover:hover){[data-theme=cafe] .fp-hero__photo:hover{transform:rotate(1deg) translate(-2px,-2px);box-shadow:9px 9px 0 var(--accent)}}[data-theme=cafe] .fp-hero__hint{font-family:var(--font-display);font-size:1.2rem;letter-spacing:.01em;text-transform:none;color:var(--fg-soft);transform:rotate(-2deg)}[data-theme=cafe] .fp-hero__proof,[data-theme=cafe] .fp-hero__available{color:var(--fg)}[data-theme=cafe] .fp-hero__available{display:inline-block;padding:.1rem .5rem;background:linear-gradient(transparent 55%,var(--butter) 55%,var(--butter) 92%,transparent 92%)}[data-theme=cafe] .scroll-indicator{color:var(--fg)}[data-theme=cafe] .doodle{display:block}.doodle{pointer-events:none;color:var(--fg)}.doodle svg{position:absolute;opacity:.8;filter:url(#rough)}.doodle__cup{left:max(4%,1rem);bottom:16%;transform:rotate(-6deg)}.doodle__heart{right:max(6%,1rem);top:20%;color:var(--accent-text);transform:rotate(9deg)}.doodle__star{left:12%;top:22%;color:var(--accent-text)}.doodle__leaf{right:10%;bottom:20%;color:#5d7a3e;transform:rotate(14deg)}@media(max-width:760px){.doodle__star,.doodle__leaf,.doodle__cup{display:none}.doodle__heart{right:1rem;top:5rem;width:40px;height:38px}}[data-theme=cafe] :is(.project-link-card,.system-item,.service-card,.maintenance-disclosure,.rec,.cert-row,.btn-solid,.btn-outline,.slide-image-wrap,.exp-row__link,.stack-chips li){position:relative;isolation:isolate;background:transparent;border-color:transparent;box-shadow:none;overflow:visible}[data-theme=cafe] :is(.project-link-card,.system-item,.service-card,.maintenance-disclosure,.rec,.cert-row,.btn-solid,.btn-outline,.slide-image-wrap):before{content:"";position:absolute;inset:0;z-index:-1;border:2px solid var(--fg);border-radius:var(--wobble);background:var(--card);box-shadow:var(--hard);filter:url(#rough);transition:transform var(--dur-feedback) var(--ease-out),box-shadow var(--dur-feedback) var(--ease-out)}[data-theme=cafe] :is(.stack-chips li,.exp-row__link){border:2px solid var(--fg);border-radius:255px 14px 225px/14px 225px 14px 255px;background:var(--card);color:var(--fg)}[data-theme=cafe] .stack-chips li{font-size:.8rem;padding:.25rem .7rem}[data-theme=cafe] .stack-chips li:nth-child(3n+1){background:var(--butter)}[data-theme=cafe] .stack-chips li:nth-child(5n+2){background:var(--sage)}[data-theme=cafe] .project-link-card__image,[data-theme=cafe] .slide-image{border-radius:10px;border:2px solid var(--fg)}[data-theme=cafe] .slide-image-wrap{border:none;padding:.6rem}[data-theme=cafe] .slide-image{border:none}@media(hover:hover){[data-theme=cafe] :is(.project-link-card,.cert-row,.btn-solid,.btn-outline):hover{transform:translate(-2px,-2px);box-shadow:none}[data-theme=cafe] :is(.project-link-card,.cert-row,.btn-solid,.btn-outline):hover:before{box-shadow:6px 6px 0 var(--fg)}[data-theme=cafe] .exp-row__link:hover{background:var(--butter);border-color:var(--fg)}}[data-theme=cafe] :is(.project-link-card,.cert-row,.btn-solid,.btn-outline):active{transform:translate(2px,2px)}[data-theme=cafe] :is(.project-link-card,.cert-row,.btn-solid,.btn-outline):active:before{box-shadow:1px 1px 0 var(--fg)}[data-theme=cafe] :is(.btn-solid,.btn-outline){font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:.01em;border:none;border-radius:var(--wobble);padding:.55rem 1.8rem;color:var(--fg)}[data-theme=cafe] .service-card h3,[data-theme=cafe] .service-card__price,[data-theme=cafe] .maintenance-disclosure summary{font-family:var(--font-display)}[data-theme=cafe] .service-card__price{color:var(--accent-text);font-size:1.35rem}[data-theme=cafe] .service-card__cta{border-color:var(--fg);border-radius:var(--wobble);background:var(--butter);color:var(--fg);font-family:var(--font-display);font-size:1.15rem}[data-theme=cafe] .maintenance-list li{border-bottom-style:dashed}[data-theme=cafe] .process-step__number{background:var(--accent);color:var(--on-accent);font-family:var(--font-display);font-size:1.15rem;box-shadow:3px 3px 0 var(--fg);border-radius:3px}[data-theme=cafe] .process-step__body h3{font-family:var(--font-display);color:var(--fg);font-size:1.05rem}[data-theme=cafe] .process-step__body a{color:var(--accent-text);font-weight:700;text-decoration:none;border-bottom:2px solid var(--accent-text)}@media(hover:hover){[data-theme=cafe] .process-step__body a:hover{color:var(--fg);border-bottom-color:var(--accent)}}[data-theme=cafe] .theme-switcher{border:2px solid var(--fg);border-radius:var(--wobble);background:var(--card);box-shadow:3px 3px 0 var(--fg);font-family:var(--font-display);font-size:1rem}[data-theme=cafe] .btn-solid{color:var(--on-accent)}[data-theme=cafe] .btn-solid:before{background:var(--accent)}[data-theme=cafe] .fp-contact .btn-outline:before{background:var(--card)}[data-theme=cafe] .cert-row__verify{font-family:var(--font-display);font-size:1.1rem;letter-spacing:.02em;border:2px solid var(--fg);border-radius:255px 12px 225px/12px 225px 12px 255px;background:var(--butter);color:var(--fg);transform:rotate(-3deg)}@media(hover:hover){[data-theme=cafe] .cert-row:hover .cert-row__verify{background:var(--accent);color:var(--on-accent)}}[data-theme=cafe] .cert-row__image{border-radius:8px}[data-theme=cafe] .cert-row__issuer,[data-theme=cafe] .system-compact__stack{letter-spacing:.02em}[data-theme=cafe] .exp-row,[data-theme=cafe] .system-compact li{border-bottom:2px dashed color-mix(in srgb,var(--fg) 40%,transparent)}[data-theme=cafe] .exp-row:last-child,[data-theme=cafe] .system-compact li:last-child{border-bottom:none}[data-theme=cafe] .system-compact__name{font-size:1.05rem}[data-theme=cafe] .rec__by{border-top:3px solid var(--accent)}[data-theme=cafe] .rec__quote:before{content:"“";display:block;font-family:var(--font-display);font-size:3rem;line-height:.6;color:var(--accent-text)}[data-theme=cafe] .section-more a{border-bottom:3px solid var(--accent)}[data-theme=cafe] .fp-contact__address span{-webkit-text-decoration:underline wavy var(--accent);text-decoration:underline wavy var(--accent);text-underline-offset:5px}[data-theme=cafe] .slide-arrow{border:2px solid var(--fg);background:var(--card);color:var(--fg);box-shadow:3px 3px 0 var(--fg)}@media(hover:hover){[data-theme=cafe] .slide-arrow:hover{background:var(--accent);color:var(--on-accent)}}[data-theme=cafe] .fp-footer{border-top:2px dashed rgba(251,241,222,.4)}[data-theme=cafe] .fp-footer p{font-family:var(--font-display);font-size:1.3rem;letter-spacing:.01em}@media(forced-colors:active){[data-theme=cafe] :is(.project-link-card,.system-item,.rec,.cert-row,.btn-solid,.btn-outline,.slide-image-wrap):before{border-color:CanvasText;background:Canvas}}[data-theme=cafe] .site-nav__links{display:none}[data-theme=cafe] .site-nav__burger{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.2rem .9rem .2rem .7rem;border:2px solid var(--fg);border-radius:255px 14px 225px/14px 225px 14px 255px;background:var(--butter);color:var(--fg);box-shadow:3px 3px 0 var(--fg);cursor:pointer;transition:transform var(--dur-feedback) var(--ease-out),box-shadow var(--dur-feedback) var(--ease-out),background var(--dur-feedback)}[data-theme=cafe] .burger-glyph{display:none}[data-theme=cafe] .burger-bars{display:block}[data-theme=cafe] .burger-label{display:inline;font-family:var(--font-display);font-size:1.35rem;font-weight:700;line-height:1}@media(hover:hover){[data-theme=cafe] .site-nav__burger:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--fg);background:var(--accent)}}[data-theme=cafe] .site-nav__burger:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--fg)}[data-theme=cafe] .site-nav__burger[aria-expanded=true]{background:var(--accent)}@media(min-width:92rem){[data-theme=cafe] .site-nav__links{display:flex;gap:clamp(.85rem,1.6vw,1.75rem)}[data-theme=cafe] .site-nav__links button,[data-theme=cafe] .site-nav__links a{min-height:44px;padding-inline:.15rem;font-size:var(--text-body)}[data-theme=cafe] .site-nav__burger{display:none}.mobile-nav,.mobile-nav__scrim{display:none!important}[data-theme=cafe] .fp-hero__row{display:grid;grid-template-columns:minmax(190px,250px) minmax(0,1fr);grid-template-areas:"figure content";width:min(100%,1050px);text-align:left}[data-theme=cafe] .fp-hero__figure{grid-area:figure}[data-theme=cafe] .fp-hero__content{grid-area:content;max-width:58ch}}@media(max-width:91.999rem){[data-theme=cafe] .theme-switcher--nav{display:none}}@media(max-width:400px){[data-theme=cafe] .burger-label{display:none}}[data-theme=cafe] .mobile-nav__scrim{background:color-mix(in srgb,var(--deep) 38%,transparent)}[data-theme=cafe] .mobile-nav{top:calc(max(.35rem,env(safe-area-inset-top)) + 3.6rem);right:max(1rem,env(safe-area-inset-right));width:min(390px,calc(100vw - 2rem));height:auto;max-height:calc(100dvh - 5.4rem);padding:4px 12px 14px 4px;overflow-y:auto;background:transparent;border:none;transform-origin:88% -1rem;transform:scale(.45) rotate(3deg);opacity:0;pointer-events:none;transition:transform .2s ease-in,opacity .15s ease-in}[data-theme=cafe] .mobile-nav--open{transform:none;opacity:1;pointer-events:auto;transition:transform .34s var(--ease-out),opacity .18s ease-out}[data-theme=cafe] .gm-panel{position:relative;isolation:isolate;padding:1.1rem 1.1rem 8.4rem;color:var(--fg)}[data-theme=cafe] .gm-panel:before{content:"";position:absolute;inset:0;z-index:-1;border:3px solid var(--fg);border-radius:22px 26px 20px 24px/24px 20px 26px 22px;background:var(--card);box-shadow:6px 6px 0 var(--fg);filter:url(#rough)}[data-theme=cafe] .gm-extra{display:block}[data-theme=cafe] .gm-banner{margin:0 3rem 1rem .2rem;width:-moz-fit-content;width:fit-content;padding:.1rem 1.1rem .2rem;border:2px solid var(--fg);border-radius:14px 20px 12px 18px/18px 12px 20px 14px;background:var(--accent);box-shadow:3px 3px 0 var(--fg);color:var(--on-accent);font-family:var(--font-display);font-size:1.7rem;font-weight:700;line-height:1.15;letter-spacing:0;white-space:nowrap;transform:rotate(-2deg)}[data-theme=cafe] .mobile-nav__close{top:.9rem;right:.9rem;min-width:44px;min-height:44px;border:2px solid var(--fg);border-radius:50%;background:var(--bg-2);color:var(--fg);font-size:1.6rem;box-shadow:2px 2px 0 var(--fg)}@media(hover:hover){[data-theme=cafe] .mobile-nav__close:hover{background:var(--accent)}}[data-theme=cafe] .theme-switcher--menu{margin:.75rem 0 1rem;width:100%}[data-theme=cafe] .mobile-nav__links{padding:0;margin:0}[data-theme=cafe] .mobile-nav__links li{margin:0 0 .65rem}[data-theme=cafe] .gm-item{position:relative;isolation:isolate;gap:.6rem;min-height:54px;padding:.3rem 1rem .3rem 2.1rem;font-family:var(--font-display);font-size:1.75rem;font-weight:700;letter-spacing:.01em;text-transform:none;color:var(--fg);transition:transform var(--dur-feedback) var(--ease-out)}[data-theme=cafe] .gm-item:before{content:"";position:absolute;inset:0;z-index:-1;border:2px solid var(--fg);border-radius:var(--wobble);background:var(--bg);box-shadow:3px 3px 0 var(--fg);filter:url(#rough);transition:background var(--dur-feedback),box-shadow var(--dur-feedback) var(--ease-out)}[data-theme=cafe] .gm-item__num{display:inline;width:1.8rem;font-size:1.05rem;color:var(--fg-soft)}[data-theme=cafe] .gm-item__cursor{display:inline;position:absolute;left:.75rem;font-size:.95rem;color:var(--accent-text);opacity:0;transform:translate(-8px);transition:opacity var(--dur-feedback),transform var(--dur-state) var(--ease-out)}[data-theme=cafe] .gm-item:focus-visible{outline:3px solid var(--accent-text);outline-offset:4px}[data-theme=cafe] .gm-item:focus-visible,[data-theme=cafe] .mobile-nav__links .gm-item:active{transform:translate(4px,-1px)}[data-theme=cafe] .gm-item:focus-visible:before{background:var(--butter);box-shadow:5px 5px 0 var(--fg)}[data-theme=cafe] .gm-item:focus-visible .gm-item__cursor{opacity:1;transform:none}@media(hover:hover){[data-theme=cafe] .mobile-nav__links .gm-item:hover{color:var(--fg);transform:translate(4px,-1px)}[data-theme=cafe] .gm-item:hover:before{background:var(--butter);box-shadow:5px 5px 0 var(--fg)}[data-theme=cafe] .gm-item:hover .gm-item__cursor{opacity:1;transform:none}}[data-theme=cafe] .mobile-nav__links .gm-item:active{color:var(--fg)}[data-theme=cafe] .gm-note{margin:.9rem 0 0;font-size:.85rem;font-weight:600;text-align:center;color:var(--fg-soft)}[data-theme=cafe] .gm-capy{position:absolute;left:.6rem;right:.9rem;bottom:.5rem;display:flex!important;align-items:flex-end;gap:.4rem;color:var(--fg);pointer-events:none}[data-theme=cafe] .gm-capy .capybara{width:150px;height:auto;flex:none;filter:url(#rough)}[data-theme=cafe] .gm-bubble{position:relative;margin-bottom:2.6rem;padding:.3rem .7rem;border:2px solid var(--fg);border-radius:14px 16px 14px 4px/14px 14px 16px 6px;background:var(--bg);font-family:var(--font-display);font-size:1.2rem;font-weight:700;line-height:1.1;color:var(--fg)}@media(prefers-reduced-motion:no-preference){[data-theme=cafe] .mobile-nav--open .mobile-nav__links li{animation:gm-deal .32s var(--ease-out) both;animation-delay:calc(.12s + var(--i, 0) * 55ms)}[data-theme=cafe] .mobile-nav--open .gm-capy .capybara{animation:gm-peek .42s var(--ease-out) .34s both}}@keyframes gm-deal{0%{opacity:0;transform:translate(26px) rotate(2deg)}to{opacity:1;transform:none}}@keyframes gm-peek{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}[data-theme=cafe] .mascot{display:block;position:absolute;color:var(--fg);pointer-events:none}[data-theme=cafe] .mascot .capybara{display:block;width:100%;height:auto;filter:url(#rough)}.hero-capy{right:max(4%,.5rem);bottom:9%;width:clamp(110px,15vw,190px);pointer-events:auto!important}@media(prefers-reduced-motion:no-preference){.hero-capy:hover .capybara{animation:capy-wiggle .7s ease-in-out}}@keyframes capy-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg) translateY(-3px)}60%{transform:rotate(3deg)}}@media(max-width:760px){.hero-capy{display:none!important}}[data-theme=cafe] .fp-contact{min-height:auto;padding-block:clamp(5rem,12svh,8rem)}[data-theme=cafe] .fp-contact .fp-content{position:relative;isolation:isolate}[data-theme=cafe] .fp-hero--compact{min-height:clamp(280px,38svh,380px)}.contact-capy{right:0;bottom:-2.5rem;z-index:-1;width:clamp(100px,12vw,150px);opacity:.22}.fp-contact__address{position:relative;z-index:1}@media(max-width:760px){.contact-capy{right:-.75rem;bottom:-2.75rem;width:110px}}@media(forced-colors:active){[data-theme=cafe] .gm-panel:before,[data-theme=cafe] .gm-item:before{border-color:CanvasText;background:Canvas}}.fp-hero--compact .fp-hero__content{max-width:min(100%,60ch)}[data-theme=cafe] .fp-hero--compact .fp-hero__content h1{text-wrap:nowrap;font-size:min(calc(var(--text-display) * 1.3),12vw)}
