/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}code,kbd,samp{font-family:monospace,monospace;font-size:1em}img{border-style:none}button,input,optgroup,select,textarea{line-height:1.15}button,input{overflow:visible}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]::-webkit-search-decoration{-webkit-appearance:none}details{display:block}[hidden],template{display:none}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#29d transparent transparent #29d;border-style:solid;border-width:2px;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:hsl(6,78%,57%);--toastify-color-transparent:rgba(255,255,255,0.7);--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-container-width:fit-content;--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-padding:14px;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-toast-shadow:0px 4px 12px rgba(0,0,0,0.1);--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:0.2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translateZ(var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translateX(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translateX(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y:0px;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translateX(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:auto}.Toastify__toast{--toastify-toast-width:100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}@media only screen and (max-width:480px){.Toastify__toast-container[data-stacked=true]{width:100vw}}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:auto;transform-origin:right;border-bottom-left-radius:0}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}*,:after,:before{--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/0.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/0.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: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family: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{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{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{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}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*,:after,:before{box-sizing:border-box}::-moz-selection{background:var(--signal);color:var(--color-accent-contrast)}::selection{background:var(--signal);color:var(--color-accent-contrast)}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;overflow-x:hidden;background:var(--ink);color:var(--muted);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.55;letter-spacing:-.012em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}html.theme-changing .portfolio-item,html.theme-changing .site-footer,html.theme-changing .site-header,html.theme-changing .site-section,html.theme-changing .site-shell,html.theme-changing body{transition:background-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}h1,h2,h3,h4,h5,h6{margin:0;color:var(--paper);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;line-height:.96;letter-spacing:-.055em}blockquote,dl,figure,ol,p,ul{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{color:inherit;font:inherit}button{cursor:pointer}img,svg{display:block}:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.container{width:100%;max-width:1440px;padding-left:clamp(16px,3vw,48px);padding-right:clamp(16px,3vw,48px)}.btn{display:inline-flex;min-height:46px;width:auto;align-items:center;justify-content:center;border:1px solid var(--signal);border-radius:0;background:var(--signal);color:var(--color-accent-contrast);padding:11px 18px;font-size:.75rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.btn:hover{border-color:var(--button-solid-hover-bg);background:var(--button-solid-hover-bg);color:var(--button-solid-hover-text)}.btn:disabled{cursor:wait;opacity:.6}.btn-small{min-height:38px;padding:7px 13px;font-size:.8125rem}.btn-large{min-height:50px;padding:13px 20px}.btn-transparent{border-color:var(--line);background:rgba(0,0,0,0);color:var(--paper)}.btn-transparent:hover{border-color:var(--button-ghost-hover-bg);background:var(--button-ghost-hover-bg);color:var(--button-ghost-hover-text)}.skip-link{position:fixed;left:16px;top:12px;z-index:1000;transform:translateY(-160%);border-radius:0;background:var(--paper);color:var(--ink);padding:10px 14px;font-weight:700;transition:transform .16s ease}.skip-link:focus{transform:translateY(0)}.visible{visibility:visible}.relative{position:relative}.mx-auto{margin-left:auto;margin-right:auto}.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))}.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)}:root{color-scheme:light;--palette-black:#050505;--palette-white:#f5f5f2;--palette-gray-100:#e5e5e0;--palette-gray-500:#6e6e69;--palette-gray-700:#555552;--button-dark-hover-bg:#242424;--button-light-hover-bg:#d8d8d2;--color-canvas:#ffffff;--color-surface:var(--palette-gray-100);--color-text:#080808;--color-text-muted:var(--palette-gray-700);--color-text-subtle:var(--palette-gray-500);--color-border:#8a8a84;--color-accent:var(--palette-black);--color-accent-contrast:var(--palette-white);--color-focus:var(--palette-black);--color-danger:#9f2d26;--header-bg:#ffffff;--image-bg:#8e8e88;--button-solid-hover-bg:var(--button-dark-hover-bg);--button-solid-hover-text:var(--palette-white);--button-ghost-hover-bg:var(--button-light-hover-bg);--button-ghost-hover-text:var(--palette-black);--feature-bg:var(--palette-black);--feature-text:var(--palette-white);--feature-muted:#c6c6c0;--feature-subtle:#9b9b96;--feature-line:var(--palette-white);--feature-hover-bg:#d8d8d2;--feature-hover-text:var(--palette-black);--feature-solid-button-hover-bg:var(--button-light-hover-bg);--feature-solid-button-hover-text:var(--palette-black);--feature-ghost-button-hover-bg:var(--button-dark-hover-bg);--feature-ghost-button-hover-text:var(--palette-white);--drawer-bg:var(--palette-black);--drawer-text:var(--palette-white);--drawer-muted:#c6c6c0;--drawer-subtle:#9b9b96;--drawer-line:#757571;--drawer-backdrop:rgb(5 5 5/0.58);--drawer-button-hover-bg:var(--button-light-hover-bg);--drawer-button-hover-text:var(--palette-black);--contact-bg:var(--palette-black);--contact-text:var(--palette-white);--contact-muted:#c6c6c0;--contact-line:#757571;--contact-accent:var(--palette-white);--contact-danger:#ffc1b9;--contact-button-hover-bg:var(--button-light-hover-bg);--contact-button-hover-text:var(--palette-black);--input-bg:var(--palette-black);--input-text:var(--palette-white);--input-border:#8d8d88;--input-focus:var(--palette-white);--input-danger:#ffc1b9;--duration-fast:160ms;--duration-base:240ms;--duration-slow:420ms;--ease-standard:cubic-bezier(0.2,0,0,1);--ease-enter:cubic-bezier(0,0,0.2,1);--ease-exit:cubic-bezier(0.3,0,1,0.3);--color-primary:5 5 5;--color-secondary:5 5 5;--color-canvas-rgb:255 255 255;--color-surface-rgb:229 229 224;--color-text-rgb:8 8 8;--color-muted-rgb:85 85 82;--color-subtle-rgb:110 110 105;--color-border-rgb:138 138 132;--ink:var(--color-canvas);--ink-raised:var(--color-surface);--paper:var(--color-text);--muted:var(--color-text-muted);--quiet:var(--color-text-subtle);--line:var(--color-border);--signal:var(--color-accent);--danger:var(--color-danger)}html[data-theme=dark]{color-scheme:dark;--color-canvas:var(--palette-black);--color-surface:#111111;--color-text:var(--palette-white);--color-text-muted:#a8a8a2;--color-text-subtle:#858580;--color-border:#62625e;--color-accent:var(--palette-white);--color-accent-contrast:var(--palette-black);--color-focus:var(--palette-white);--color-danger:#ffafa5;--header-bg:var(--palette-black);--image-bg:#1a1a1a;--button-solid-hover-bg:var(--button-light-hover-bg);--button-solid-hover-text:var(--palette-black);--button-ghost-hover-bg:var(--button-dark-hover-bg);--button-ghost-hover-text:var(--palette-white);--feature-bg:var(--palette-white);--feature-text:var(--palette-black);--feature-muted:#555552;--feature-subtle:#6e6e69;--feature-line:var(--palette-black);--feature-hover-bg:#242424;--feature-hover-text:var(--palette-white);--feature-solid-button-hover-bg:var(--button-dark-hover-bg);--feature-solid-button-hover-text:var(--palette-white);--feature-ghost-button-hover-bg:var(--button-light-hover-bg);--feature-ghost-button-hover-text:var(--palette-black);--drawer-bg:var(--palette-white);--drawer-text:var(--palette-black);--drawer-muted:#555552;--drawer-subtle:#6e6e69;--drawer-line:#8a8a84;--drawer-backdrop:rgb(0 0 0/0.72);--drawer-button-hover-bg:var(--button-dark-hover-bg);--drawer-button-hover-text:var(--palette-white);--contact-bg:var(--palette-white);--contact-text:var(--palette-black);--contact-muted:#555552;--contact-line:#8a8a84;--contact-accent:var(--palette-black);--contact-danger:#9f2d26;--contact-button-hover-bg:var(--button-dark-hover-bg);--contact-button-hover-text:var(--palette-white);--input-bg:var(--palette-white);--input-text:var(--palette-black);--input-border:#6e6e69;--input-focus:var(--palette-black);--input-danger:#9f2d26;--color-primary:245 245 242;--color-secondary:245 245 242;--color-canvas-rgb:5 5 5;--color-surface-rgb:17 17 17;--color-text-rgb:245 245 242;--color-muted-rgb:168 168 162;--color-subtle-rgb:133 133 128;--color-border-rgb:98 98 94}.site-shell{min-height:100vh;background:var(--ink)}.site-header{position:sticky;top:0;z-index:100;border-bottom:1px solid var(--line);background:var(--header-bg)}.site-header-inner{display:flex;min-height:68px;align-items:center;justify-content:space-between;gap:24px}.site-logo{display:inline-flex;align-items:center;color:var(--paper);font-size:.8125rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.desktop-navigation{display:flex;align-items:center;gap:22px}.theme-switcher{display:inline-flex;width:44px;height:44px;flex:none;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:0;background:rgba(0,0,0,0);color:var(--paper);padding:0;transition:border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.mobile-menu-trigger svg,.mobile-navigation-head button svg,.theme-switcher svg{width:20px;height:20px}.theme-switcher:hover{border-color:var(--paper);background:var(--paper);color:var(--ink)}.primary-navigation{display:flex;align-items:center;gap:24px;margin:0;padding:0;list-style:none}.primary-navigation a{color:var(--muted);font-size:.6875rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;transition:color .18s ease}.primary-navigation a:hover{color:var(--paper)}.language-switcher{display:inline-flex;align-items:center;gap:6px;color:var(--quiet);font-size:.6875rem;font-weight:500;letter-spacing:.04em}.language-switcher a{display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:34px;border:0;background:rgba(0,0,0,0);color:inherit;padding:4px}.language-switcher a[aria-current=page]{color:var(--paper)}.mobile-header-actions{display:none;align-items:center;gap:8px}.mobile-menu-trigger,.mobile-navigation-head button{display:inline-flex;width:44px;min-width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:0;background:rgba(0,0,0,0);color:var(--paper);padding:0}.mobile-navigation{--paper:var(--drawer-text);--muted:var(--drawer-muted);--quiet:var(--drawer-subtle);--line:var(--drawer-line);--signal:var(--drawer-text);--color-accent-contrast:var(--drawer-bg);position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;overflow:hidden;border:0;background:rgba(0,0,0,0);color:var(--paper);padding:0}.mobile-navigation[open]{display:grid;justify-items:end;visibility:hidden}.mobile-navigation[open][data-ready=true]{visibility:visible}.mobile-navigation :focus-visible{outline-color:var(--drawer-text)}.mobile-navigation::backdrop{background:rgba(0,0,0,0);transition:background-color .24s linear}.mobile-navigation[data-visible=true]::backdrop{background:var(--drawer-backdrop)}.mobile-navigation-panel{display:flex;width:min(88vw,520px);height:100dvh;overflow-y:auto;overscroll-behavior:contain;flex-direction:column;gap:clamp(32px,6vh,64px);border-left:1px solid var(--line);background:var(--drawer-bg);padding:max(22px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) 26px;transform:translate3d(100%,0,0);transition:transform .24s linear,background-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard);backface-visibility:hidden;will-change:transform}.mobile-navigation[data-visible=true] .mobile-navigation-panel{transform:translateZ(0)}.mobile-navigation-head{display:flex;align-items:center;justify-content:space-between;color:var(--quiet);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.mobile-navigation-head h2{color:inherit;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:500;letter-spacing:-.025em;text-transform:uppercase}.mobile-navigation-home{color:var(--paper);transition:color var(--duration-fast) var(--ease-standard)}.mobile-navigation-home:hover{color:var(--muted)}.mobile-navigation-head button{width:44px;flex:none;padding:0;font-size:1.35rem}.mobile-navigation .primary-navigation{align-items:flex-start;flex-direction:column;gap:4px;counter-reset:drawer-link}.mobile-navigation .primary-navigation li{width:100%;counter-increment:drawer-link}.mobile-navigation .primary-navigation a{display:grid;min-height:58px;align-items:baseline;grid-template-columns:28px 1fr;border-bottom:1px solid var(--line);padding:9px 0;color:var(--paper);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:clamp(2rem,8vw,3.75rem);font-weight:400;letter-spacing:-.055em;line-height:.92;text-transform:uppercase}.mobile-navigation .primary-navigation a:before{content:"0" counter(drawer-link);color:var(--quiet);font-size:.625rem;font-weight:500;letter-spacing:.06em}.mobile-navigation .btn{width:100%}.mobile-navigation .btn:hover{border-color:var(--drawer-button-hover-bg);background:var(--drawer-button-hover-bg);color:var(--drawer-button-hover-text)}.mobile-navigation-cta{display:grid;gap:18px}.mobile-navigation-cta p{max-width:34ch;color:var(--quiet);font-size:.8125rem}.mobile-navigation-footer{display:grid;gap:20px;margin-top:auto;border-top:1px solid var(--line);padding-top:20px}.mobile-navigation-links{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--muted);font-size:.6875rem;letter-spacing:.04em;text-transform:uppercase}.mobile-navigation-controls{display:flex;align-items:center;justify-content:space-between}.hero-shell{min-height:calc(100svh - 68px);align-items:stretch;border-bottom:1px solid var(--line);padding:clamp(12px,1.5vw,24px) 0}.hero-shell,.hero-shell>.container{display:flex}.hero-frame{--paper:var(--feature-text);--muted:var(--feature-muted);--quiet:var(--feature-subtle);--line:var(--feature-line);--signal:var(--feature-text);--color-accent-contrast:var(--feature-bg);display:grid;width:100%;min-height:calc(100svh - 68px - clamp(24px,3vw,48px));grid-template-rows:auto auto minmax(0,1fr);border:1px solid var(--feature-line);background:var(--feature-bg);color:var(--feature-muted);padding:clamp(24px,3vw,48px)}.hero-frame :focus-visible{outline-color:var(--feature-text)}.hero-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;border-bottom:1px solid var(--feature-line);padding-bottom:clamp(16px,2vw,24px)}.hero-kicker,.section-kicker{color:var(--paper);font-size:.6875rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase}.hero-kicker{margin:0}.hero-axis{color:var(--feature-text);font-size:.6875rem;font-weight:500;letter-spacing:.07em;text-align:right;text-transform:uppercase}.hero-name-row{border-bottom:1px solid var(--feature-line);padding:clamp(30px,4.8vw,72px) 0 clamp(28px,4vw,58px)}.hero-name-row h1{color:var(--feature-text);font-size:clamp(5rem,12.25vw,11rem);font-weight:400;letter-spacing:-.075em;line-height:.78;text-transform:uppercase;white-space:nowrap}.hero-lower{display:grid;min-height:0;grid-template-columns:minmax(0,1.55fr) minmax(260px,.45fr);gap:clamp(32px,5vw,72px)}.hero-lower-without-portrait{grid-template-columns:minmax(0,1fr)}.hero-copy{display:flex;max-width:820px;flex-direction:column;justify-content:space-between;padding-top:clamp(24px,3vw,42px)}.hero-lead{max-width:42ch;color:var(--feature-text);font-size:clamp(1.35rem,2.6vw,2.75rem);line-height:1.08;letter-spacing:-.04em}.hero-actions{display:flex;align-items:center;gap:0;margin-top:clamp(32px,5vw,64px)}.hero-actions .btn{min-width:150px;justify-content:space-between}.hero-actions .btn+.btn{margin-left:-1px}.hero-actions .btn:hover{border-color:var(--feature-text);background:var(--feature-solid-button-hover-bg);color:var(--feature-solid-button-hover-text)}.hero-actions .btn-transparent:hover{border-color:var(--feature-line);background:var(--feature-ghost-button-hover-bg);color:var(--feature-ghost-button-hover-text)}.contact-direct a:not(.btn),.portfolio-actions a,.portfolio-actions button,.text-link,.timeline-item a{display:inline-flex;width:auto;min-height:40px;align-items:center;gap:8px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:rgba(0,0,0,0);color:var(--paper);padding:4px 0;font-size:.875rem;font-weight:600;transition:border-color .18s ease,color .18s ease}.contact-direct a:not(.btn):hover,.portfolio-actions a:hover,.portfolio-actions button:hover,.text-link:hover,.timeline-item a:hover{border-color:var(--signal);color:var(--signal)}.social-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin:30px 0 0;padding:0;list-style:none}.social-links a{display:inline-flex;min-height:36px;align-items:center;gap:6px;color:var(--quiet);font-size:.8125rem;transition:color .18s ease}.social-links a:hover{color:var(--paper)}.hero-portrait{width:100%;min-width:0;align-self:end;border-left:1px solid var(--feature-line);padding:clamp(24px,3vw,42px) 0 0 clamp(24px,3vw,42px)}.hero-image{position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--feature-line);border-radius:0;background:var(--image-bg)}.hero-image img{filter:grayscale(100%) contrast(1.06)}.hero-portrait figcaption{margin-top:10px;color:var(--feature-subtle);font-size:.625rem;font-weight:500;letter-spacing:.06em;line-height:1.4;text-transform:uppercase}.site-section{border-bottom:1px solid var(--line);padding:clamp(72px,8vw,120px) 0}.site-section-projects{background:var(--ink-raised)}.section-heading{display:grid;max-width:none;margin-bottom:0;grid-template-columns:minmax(150px,3fr) minmax(0,9fr);-moz-column-gap:clamp(24px,3vw,48px);column-gap:clamp(24px,3vw,48px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(20px,2.5vw,36px) 0 clamp(28px,4vw,56px)}.section-heading .section-kicker{grid-row:span 2;margin:4px 0 0}.contact-copy h2,.section-heading h2{font-size:clamp(3.5rem,7.5vw,7rem);line-height:.86;text-transform:uppercase}.section-description{max-width:54ch;margin-top:clamp(24px,3vw,40px);color:var(--muted);font-size:clamp(1rem,1.35vw,1.25rem);line-height:1.45}.projects-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:0;padding:18px 0}.portfolio-filters{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.portfolio-filters button{width:auto;min-height:34px;border:1px solid var(--line);border-radius:0;background:rgba(0,0,0,0);color:var(--quiet);padding:5px 12px;font-size:.6875rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;transition:border-color .16s ease,color .16s ease,background-color .16s ease}.portfolio-filters button:hover,.portfolio-filters button[aria-pressed=true]{border-color:var(--paper);background:var(--paper);color:var(--ink)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--image-bg)}.portfolio-item{position:relative;display:grid;align-content:start;min-width:0;background:var(--ink-raised)}.portfolio-index{position:static;border-radius:0;border-bottom:1px solid var(--line);background:var(--ink-raised);color:var(--quiet);padding:12px 16px;font-size:.6875rem;font-weight:500;letter-spacing:.05em;text-align:right}.portfolio-image{position:relative;width:100%;aspect-ratio:3/2;overflow:hidden;background:var(--image-bg)}.portfolio-image img{-o-object-fit:cover!important;object-fit:cover!important;-o-object-position:center;object-position:center;filter:grayscale(100%) contrast(1.03);transition:transform var(--duration-slow) var(--ease-standard),filter var(--duration-slow) var(--ease-standard)}@media(hover:hover)and (pointer:fine){.portfolio-item:hover .portfolio-image img{transform:scale(1.02);filter:grayscale(0) contrast(1)}}.portfolio-copy{display:flex;min-height:250px;flex-direction:column;padding:clamp(22px,3vw,38px)}.portfolio-meta,.timeline-meta{color:var(--quiet);font-size:.7rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.portfolio-copy h3{max-width:22ch;margin-top:12px;font-size:clamp(1.6rem,2.7vw,2.5rem);line-height:1.02;letter-spacing:-.045em}.portfolio-tags{display:flex;flex-wrap:wrap;gap:7px 0;margin:22px 0 0;padding:0;color:var(--quiet);list-style:none;font-size:.75rem}.portfolio-tags li:before{content:"/";margin:0 9px;color:var(--quiet)}.portfolio-tags li:first-child:before{content:none;margin:0}.portfolio-actions{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:auto;padding-top:30px}.portfolio-actions:empty{display:none}.portfolio-action-icon{flex:none}.resume-groups{border-top:1px solid var(--line)}.resume-group{border-bottom:1px solid var(--line)}.resume-group>summary{display:grid;min-height:104px;cursor:pointer;align-items:center;grid-template-columns:1fr auto 24px;gap:20px;color:var(--paper);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:clamp(2rem,4.5vw,4rem);font-weight:400;letter-spacing:-.055em;line-height:.95;list-style:none;text-transform:uppercase}.resume-group>summary::-webkit-details-marker{display:none}.resume-group>summary:after{content:"+";color:var(--paper);font-family:ui-sans-serif,system-ui,sans-serif;font-size:1.5rem;font-weight:300}.resume-group[open]>summary:after{content:"−"}.resume-group[open] .resume-content{animation:details-in var(--duration-base) var(--ease-enter) both}@keyframes details-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.resume-count{color:var(--quiet);font-size:.75rem;letter-spacing:.06em}.resume-content{padding:10px 0 44px}.timeline-list{display:grid}.timeline-item{display:grid;grid-template-columns:minmax(130px,.35fr) minmax(0,1.65fr);gap:clamp(24px,5vw,72px);border-top:1px solid var(--line);padding:28px 0}.timeline-date{color:var(--quiet);font-size:.75rem;letter-spacing:.04em}.timeline-copy h3{margin-top:8px;font-size:clamp(1.5rem,2.4vw,2.25rem);line-height:1.05}.timeline-copy>p:last-of-type:not(.timeline-meta){max-width:72ch;margin-top:14px;color:var(--muted)}.timeline-item a{margin-top:18px}.services-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-left:1px solid var(--line)}.service-item{display:grid;min-height:clamp(280px,30vw,410px);grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:clamp(56px,8vw,112px);border-top:1px solid var(--line);padding:clamp(24px,3vw,42px)}.service-item:nth-child(odd){border-right:1px solid var(--line)}.service-item>div{align-self:end}.service-number{justify-self:end;color:var(--quiet);font-size:.6875rem;font-weight:500;letter-spacing:.06em}.service-item h3{max-width:15ch;font-size:clamp(2rem,3.6vw,3.5rem);line-height:.96}.service-item p{max-width:66ch;margin-top:18px;font-size:1.0625rem}.site-section-contact{--signal:var(--contact-text);--color-accent-contrast:var(--contact-bg);background:var(--contact-bg);color:var(--contact-muted)}.site-section-contact :focus-visible{outline-color:var(--contact-text)}.contact-grid{display:grid;align-items:start;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto 1fr;gap:0;border-top:1px solid var(--contact-line);border-bottom:1px solid var(--contact-line)}.contact-copy{min-width:0;grid-column:1;grid-row:1;border-right:1px solid var(--contact-line);padding:clamp(28px,4vw,56px) clamp(28px,5vw,72px) 0 0}.contact-copy .section-kicker{color:var(--contact-accent)}.contact-copy h2{color:var(--contact-text);margin-top:clamp(64px,10vw,136px)}.contact-lead{max-width:48ch;margin-top:clamp(32px,4vw,56px);color:var(--contact-muted);font-size:1.125rem}.contact-details{min-width:0;grid-column:1;grid-row:2;border-right:1px solid var(--contact-line);padding:0 clamp(28px,5vw,72px) clamp(32px,5vw,72px) 0}.contact-direct{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:32px}.contact-direct a:not(.btn){border-color:var(--contact-line);color:var(--contact-text)}.contact-direct a:not(.btn):hover{border-color:var(--contact-accent);color:var(--contact-accent)}.contact-form{--contact-form-gap:20px;display:grid;gap:var(--contact-form-gap);grid-column:2;grid-row:1/span 2;border-top:0;padding:clamp(28px,4vw,56px) 0 clamp(32px,5vw,72px) clamp(28px,5vw,72px)}.form-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important}.form-field{display:grid;gap:7px}.form-field label{color:var(--contact-text);font-size:.8125rem;font-weight:700}.form-field input,.form-field textarea{width:100%;min-height:48px;border:0;border-bottom:1px solid var(--input-border);border-radius:0;background:var(--input-bg);color:var(--input-text);padding:11px 0;transition:border-color .16s ease,box-shadow .16s ease}.form-field textarea{min-height:132px;resize:vertical}.form-field input:focus,.form-field textarea:focus{border-color:var(--input-focus);box-shadow:0 2px 0 0 var(--input-focus);outline:2px solid rgba(0,0,0,0)}.form-field [aria-invalid=true]{border-color:var(--input-danger)}.privacy-field{display:flex;align-items:flex-start;gap:10px}.privacy-field input{width:18px;height:18px;flex:none;margin:0;accent-color:var(--input-focus)}.privacy-copy,.privacy-field label{color:var(--contact-muted);font-size:.8125rem;line-height:18px}.privacy-field a{color:var(--contact-accent);text-decoration:underline;text-underline-offset:2px}.recaptcha-field{display:block;min-height:78px;overflow:hidden;visibility:visible}.recaptcha-field .g-recaptcha{display:block;transform-origin:top left;visibility:visible}.contact-form>.btn{width:100%;background:var(--contact-text);border-color:var(--contact-text);color:var(--contact-bg)}.privacy-field+.btn{margin-top:calc(8px - var(--contact-form-gap))}.contact-form>.btn:hover{background:var(--contact-button-hover-bg);border-color:var(--contact-button-hover-bg);color:var(--contact-button-hover-text)}.site-footer{padding:clamp(48px,6vw,88px) 0 36px;background:var(--ink)}.site-footer-grid{display:grid;align-items:end;grid-template-columns:1fr auto;gap:28px 60px}.site-footer-name{color:var(--paper);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:clamp(2.75rem,7vw,6.5rem);font-weight:400;letter-spacing:-.07em;line-height:.82;text-transform:uppercase}.site-footer-grid>div:first-child>p:last-child{margin-top:20px;color:var(--quiet);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase}.site-footer .social-links{justify-content:flex-end;margin:0}.site-footer-legal{display:flex;flex-wrap:wrap;grid-column:1/-1;gap:8px 20px;border-top:1px solid var(--line);padding-top:18px;color:var(--quiet);font-size:.6875rem;letter-spacing:.04em;text-transform:uppercase}.site-footer-legal a:hover{color:var(--paper)}.legal-page{min-height:calc(100vh - 72px)}@media(min-width:1024px){.legal-page .section-heading{display:grid;grid-template-columns:max-content minmax(0,1120px);align-items:start;justify-content:center;-moz-column-gap:clamp(32px,4vw,64px);column-gap:clamp(32px,4vw,64px)}.legal-page .section-heading .section-kicker{position:static;grid-row:auto}.legal-page .section-heading h2{width:100%;max-width:1120px;margin:0}}.section-notfound{min-height:calc(100svh - 68px);border-bottom:1px solid var(--line);padding:clamp(12px,1.5vw,24px) 0}.not-found-frame{--paper:var(--feature-text);--muted:var(--feature-muted);--quiet:var(--feature-subtle);--line:var(--feature-line);--signal:var(--feature-text);--color-accent-contrast:var(--feature-bg);display:grid;min-height:calc(100svh - 68px - clamp(24px,3vw,48px));grid-template-rows:auto minmax(0,1fr) auto;border:1px solid var(--feature-line);background:var(--feature-bg);color:var(--feature-muted);padding:clamp(24px,3vw,48px)}.not-found-frame :focus-visible{outline-color:var(--feature-text)}.not-found-meta{display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--feature-line);padding-bottom:clamp(16px,2vw,24px);color:var(--feature-text);font-size:.6875rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase}.not-found-meta span:last-child{text-align:right}.not-found-code{display:grid;align-items:center;grid-template-columns:repeat(3,minmax(0,1fr));color:var(--feature-text);font-size:clamp(8rem,20vw,18rem);font-weight:400;letter-spacing:-.085em;line-height:.72;text-align:center}.not-found-code-zero{display:inline-grid;width:min(17vw,244px);aspect-ratio:1;place-items:center;justify-self:center;border:1px solid var(--feature-line);font-size:.66em;letter-spacing:0;line-height:1;text-align:center;text-indent:0}.not-found-lower{display:grid;align-items:end;grid-template-columns:minmax(0,1fr) auto;gap:clamp(32px,5vw,72px);border-top:1px solid var(--feature-line);padding-top:clamp(24px,3vw,40px)}.not-found-copy h1{color:var(--feature-text);font-size:clamp(2.5rem,5vw,5rem);line-height:.9;text-transform:uppercase}.not-found-copy p{max-width:44ch;margin-top:18px;color:var(--feature-muted);font-size:clamp(.9375rem,1.2vw,1.125rem)}.not-found-home{min-width:190px;justify-content:space-between;border-color:var(--feature-text);background:var(--feature-text);color:var(--feature-bg)}.not-found-home:hover{border-color:var(--feature-hover-bg);background:var(--feature-hover-bg);color:var(--feature-hover-text)}.privacy-content{max-width:760px;margin:clamp(24px,3vw,40px) auto 0;color:var(--muted)}.privacy-content .privacy-updated{margin:0 0 34px;color:var(--signal);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;text-transform:uppercase}.privacy-content h4{margin:40px 0 12px;font-size:1.75rem}.privacy-content p{margin-bottom:18px}.privacy-content a{color:var(--signal);text-decoration:underline;text-underline-offset:3px}.styledlist{padding-left:20px}.title-text{border-bottom:1px solid var(--line);padding-bottom:10px}#nprogress .bar{background:var(--signal)}#nprogress .peg{box-shadow:0 0 8px var(--signal),0 0 4px var(--signal)}@keyframes hero-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes portrait-enter{0%{opacity:0;transform:scale(1.01) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(prefers-reduced-motion:no-preference){.hero-actions,.hero-axis,.hero-kicker,.hero-lead,.hero-name-row h1{animation:hero-enter .36s var(--ease-enter) both}.hero-axis{animation-delay:30ms}.hero-name-row h1{animation-delay:60ms}.hero-lead{animation-delay:.1s}.hero-actions{animation-delay:.14s}.hero-portrait{animation:portrait-enter .42s var(--ease-enter) 90ms both}}@media(max-width:1024px){.hero-frame{grid-template-rows:auto auto minmax(0,1fr)}.hero-axis,.hero-portrait{display:none}.hero-name-row h1{font-size:clamp(5.5rem,15vw,9rem);white-space:normal}.hero-lower{display:block}.hero-copy{height:100%;max-width:760px}.hero-lead{font-size:clamp(1.5rem,4vw,2.6rem)}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.desktop-navigation{display:none}.mobile-header-actions{display:flex}.contact-grid{grid-template-columns:1fr;grid-template-rows:auto auto auto}.contact-copy{grid-column:1;grid-row:1;border-right:0;padding-right:0}.contact-details{grid-column:1;grid-row:2;border-right:0;border-top:0;padding:28px 0 32px}.contact-details .contact-direct{margin-top:0}.contact-form{grid-column:1;grid-row:3;border-top:1px solid var(--contact-line);padding-left:0}}@media(min-width:721px)and (max-width:900px){.mobile-navigation-panel{width:min(72vw,520px)}}@media(max-width:639px){:root{--feature-bg:var(--color-canvas);--feature-text:var(--color-text);--feature-muted:var(--color-text-muted);--feature-subtle:var(--color-text-subtle);--feature-line:var(--color-border);--feature-hover-bg:#242424;--feature-hover-text:var(--palette-white);--feature-solid-button-hover-bg:var(--button-dark-hover-bg);--feature-solid-button-hover-text:var(--palette-white);--feature-ghost-button-hover-bg:var(--button-light-hover-bg);--feature-ghost-button-hover-text:var(--palette-black);--hero-highlight-bg:var(--palette-black);--hero-highlight-text:#ffffff}html[data-theme=dark]{--feature-bg:var(--color-canvas);--feature-text:#ffffff;--feature-muted:var(--color-text-muted);--feature-subtle:var(--color-text-subtle);--feature-line:var(--color-border);--feature-hover-bg:#d8d8d2;--feature-hover-text:var(--palette-black);--feature-solid-button-hover-bg:var(--button-light-hover-bg);--feature-solid-button-hover-text:var(--palette-black);--feature-ghost-button-hover-bg:var(--button-dark-hover-bg);--feature-ghost-button-hover-text:var(--palette-white);--hero-highlight-bg:#ffffff;--hero-highlight-text:var(--palette-black)}.hero-frame .hero-lead{line-height:1.28}.hero-lead span{-webkit-box-decoration-break:clone;box-decoration-break:clone;background:var(--hero-highlight-bg);padding:.14em .1em;color:var(--hero-highlight-text)}}@media(max-width:720px){html{scroll-padding-top:72px}.site-header-inner{min-height:64px}.theme-switcher{min-height:44px}.language-switcher a,.social-links a{min-width:44px;min-height:44px}.site-logo{font-size:.75rem}.section-notfound{min-height:calc(100svh - 64px);padding:10px 0}.not-found-frame{min-height:calc(100svh - 64px - 20px);padding:20px}.not-found-meta{padding-bottom:14px;font-size:.625rem}.not-found-code{font-size:clamp(5rem,27vw,8rem)}.not-found-code-zero{width:min(25vw,116px)}.not-found-lower{align-items:stretch;grid-template-columns:1fr;gap:28px;padding-top:24px}.not-found-copy h1{max-width:8ch;font-size:clamp(2.5rem,13vw,4rem)}.not-found-copy p{max-width:32ch;margin-top:14px;font-size:.9375rem}.not-found-home{width:100%;min-width:0}.hero-shell{min-height:calc(100svh - 64px);padding:10px 0}.hero-frame{min-height:calc(100svh - 64px - 20px);padding:20px}.hero-kicker{font-size:.625rem;line-height:1.3}.hero-meta{padding-bottom:14px}.hero-name-row{padding:clamp(32px,7vh,64px) 0 clamp(28px,6vh,52px)}.hero-name-row h1{max-width:6ch;font-size:clamp(4rem,20vw,6.75rem);line-height:.78}.hero-copy{justify-content:space-between;padding-top:clamp(24px,5vh,44px)}.hero-lead{max-width:31ch;font-size:clamp(1.2rem,5.4vw,1.75rem);line-height:1.1}.hero-actions{width:100%;margin-top:clamp(28px,6vh,48px)}.hero-actions .btn{min-width:0;min-height:44px;flex:1 1 0;padding:9px 12px}.site-section{padding:64px 0}.section-heading{display:block;padding:18px 0 30px}.section-heading .section-kicker{margin-bottom:44px}.contact-copy h2,.section-heading h2{font-size:clamp(2.75rem,12.5vw,4.25rem);line-height:.9}.section-description{margin-top:28px;font-size:.9375rem}.projects-toolbar{flex-direction:column;gap:14px;padding:16px 0}.portfolio-filters{width:100%;flex-wrap:wrap;justify-content:flex-start;gap:7px;margin:0;overflow:visible;padding:0}.portfolio-filters button{min-height:44px;max-width:100%;flex:0 1 auto;padding:7px 13px}.portfolio-grid{grid-template-columns:minmax(0,1fr)}.portfolio-item{align-content:start}.portfolio-index{position:absolute;z-index:1;top:0;right:0;border-bottom:1px solid var(--line);border-left:1px solid var(--line);background:var(--ink-raised);padding:6px 8px;font-size:.625rem}.portfolio-image{aspect-ratio:3/2}.portfolio-copy{min-height:168px;padding:18px}.portfolio-tags{display:none}.portfolio-copy h3{margin-top:10px;font-size:clamp(1.35rem,6vw,1.75rem);letter-spacing:-.04em;line-height:1.04;overflow-wrap:anywhere}.portfolio-actions{gap:8px;margin-top:auto;padding-top:20px}.portfolio-actions a,.portfolio-actions button{width:44px;min-width:44px;min-height:44px;justify-content:center;border:1px solid var(--line);padding:0}.portfolio-action-label{display:none}.portfolio-action-icon{width:18px;height:18px}.timeline-item{grid-template-columns:1fr;gap:8px;padding:22px 0}.service-item{min-height:0;gap:30px;padding:22px 20px 26px}.service-item,.services-list{grid-template-columns:1fr}.service-item:nth-child(odd){border-right:0}.service-item h3{font-size:clamp(1.7rem,8vw,2.25rem)}.service-item p{margin-top:12px;font-size:.9375rem}.resume-group>summary{min-height:84px;grid-template-columns:minmax(0,1fr) auto 18px;gap:12px;font-size:clamp(1.55rem,8vw,2rem)}.resume-content{padding-bottom:30px}.contact-grid{gap:0}.contact-copy{grid-row:1;padding:24px 0 32px}.contact-copy h2{margin-top:64px}.contact-lead{margin-top:20px;font-size:1rem}.contact-details{padding-bottom:40px}.contact-form{--contact-form-gap:16px;padding:32px 0 40px}.site-footer-grid{align-items:start;grid-template-columns:1fr}.site-footer .social-links{justify-content:flex-start}.site-footer-name{font-size:clamp(3.25rem,18vw,5rem)}.site-footer-legal{grid-column:auto}}@media(max-width:380px){.recaptcha-field .g-recaptcha{transform:scale(.86)}.mobile-navigation-panel{width:100vw}}@media(max-width:720px)and (max-height:720px){.site-header-inner{min-height:60px}.hero-shell{min-height:calc(100svh - 60px);padding:8px 0}.hero-frame{min-height:calc(100svh - 60px - 16px);padding:16px}.hero-name-row{padding:24px 0 22px}.hero-name-row h1{font-size:clamp(3.75rem,18vw,5.5rem)}.hero-lead{font-size:clamp(1.05rem,4.8vw,1.4rem);line-height:1.08}.hero-copy{padding-top:20px}.hero-actions{margin-top:20px}}@media(prefers-reduced-motion:reduce){:root{--duration-fast:1ms;--duration-base:1ms;--duration-slow:1ms}html{scroll-behavior:auto}*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}html body .site-toast-container{width:min(390px,100vw - 32px);padding:0}html body .site-toast{--toast-accent:var(--paper);min-height:64px;border:1px solid var(--line);border-left:4px solid var(--toast-accent);border-radius:0;background:var(--ink-raised);box-shadow:none;color:var(--paper);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.8125rem;line-height:1.45;padding:14px 42px 14px 14px}html body .site-toast.Toastify__toast--loading{--toast-accent:var(--quiet)}html body .site-toast.Toastify__toast--error{--toast-accent:var(--danger)}html body .site-toast .Toastify__toast-icon{width:18px;color:var(--toast-accent)}html body .site-toast .Toastify__spinner{border-color:var(--line);border-right-color:var(--toast-accent)}html body .site-toast-progress{background:var(--toast-accent)}html body .Toastify__close-button{position:absolute!important;right:8px!important;top:14px!important;display:flex!important;width:20px!important;height:20px!important;min-height:0!important;align-items:center!important;justify-content:center!important;border:0!important;background:rgba(0,0,0,0)!important;color:var(--paper)!important;opacity:.7!important;padding:0!important}html body .Toastify__close-button:hover{opacity:1!important}@media(max-width:480px){html body .site-toast-container{right:12px;bottom:12px;left:12px;width:auto}}