*,: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:Epilogue,Helvetica Neue,Arial,sans-serif;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:DM Mono,ui-monospace,SFMono-Regular,Menlo,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}:root{color-scheme:light;--portfolio-ink: #0C2A2C;--portfolio-body: #40575A;--portfolio-paper: #FCFCFD;--portfolio-mist: #EFF2F2;--portfolio-teal: #1C464B;--portfolio-lav: #928EA5;--pf-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.05 0 0 0 0 0.16 0 0 0 0 0.17 0 0 0 0.30 -0.14'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");--cell: 32px;--pf-grid: repeating-linear-gradient(to right, rgba(28,70,75,.04) 0 1px, transparent 1px 32px), repeating-linear-gradient(to bottom, rgba(28,70,75,.032) 0 1px, transparent 1px 32px)}*{scroll-behavior:smooth}html{margin:0;padding:0;width:100%;overflow-x:hidden;overflow-y:auto}body{margin:0;padding:0;width:100%;min-height:100vh;min-height:100svh;overflow-x:hidden;overflow-y:auto;font-family:Epilogue,Helvetica Neue,Arial,sans-serif;color:var(--portfolio-body);background:var(--portfolio-paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-moz-selection{color:var(--portfolio-paper);background:var(--portfolio-ink)}::selection{color:var(--portfolio-paper);background:var(--portfolio-ink)}:focus-visible{outline:2px solid var(--portfolio-teal);outline-offset:4px}body.no-scroll{overflow:hidden!important;padding-right:0}html.no-scroll{overflow:hidden!important}.textured{position:relative;isolation:isolate}.textured:before,.textured:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none}.textured:before{background-image:var(--pf-grain);background-blend-mode:multiply;opacity:.9}.textured:after{background-image:var(--pf-grid);background-size:var(--cell) var(--cell);background-position:calc(50% + 16px) 0}.textured>*{position:relative;z-index:1}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[1\]{z-index:1}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.-mr-2{margin-right:-.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-16{height:4rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-9{height:2.25rem}.h-\[17px\]{height:17px}.h-\[90vh\]{height:90vh}.h-full{height:100%}.max-h-0{max-height:0px}.max-h-\[420px\]{max-height:420px}.max-h-full{max-height:100%}.min-h-0{min-height:0px}.min-h-16{min-height:4rem}.min-h-svh{min-height:100svh}.w-2{width:.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-9{width:2.25rem}.w-\[17px\]{width:17px}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-6xl{max-width:72rem}.max-w-\[1800px\]{max-width:1800px}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50%;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))}.-translate-y-1{--tw-translate-y: -.25rem;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))}.-translate-y-1\/2{--tw-translate-y: -50%;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))}.-translate-y-full{--tw-translate-y: -100%;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))}.translate-x-0{--tw-translate-x: 0px;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))}.translate-x-full{--tw-translate-x: 100%;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))}.translate-y-0{--tw-translate-y: 0px;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))}.translate-y-full{--tw-translate-y: 100%;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))}.rotate-180{--tw-rotate: 180deg;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))}.scale-0{--tw-scale-x: 0;--tw-scale-y: 0;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))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;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))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;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))}.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))}.touch-none{touch-action:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-8{gap:2rem}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-\[\#2A5457\]\/70{border-color:#2a5457b3}.border-\[\#DEE5E5\]{--tw-border-opacity: 1;border-color:rgb(222 229 229 / var(--tw-border-opacity, 1))}.border-\[\#E9EEEE\]{--tw-border-opacity: 1;border-color:rgb(233 238 238 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-teal-200{--tw-border-opacity: 1;border-color:rgb(153 246 228 / var(--tw-border-opacity, 1))}.border-teal-300\/45{border-color:#5eead473}.border-teal-400\/25{border-color:#2dd4bf40}.border-teal-400\/30{border-color:#2dd4bf4d}.border-white\/10{border-color:#ffffff1a}.border-white\/15{border-color:#ffffff26}.border-white\/20{border-color:#fff3}.border-white\/25{border-color:#ffffff40}.bg-\[\#08191A\]\/0{background-color:#08191a00}.bg-\[\#08191A\]\/60{background-color:#08191a99}.bg-\[\#08191A\]\/85{background-color:#08191ad9}.bg-\[\#0C2A2C\]{--tw-bg-opacity: 1;background-color:rgb(12 42 44 / var(--tw-bg-opacity, 1))}.bg-\[\#0C2A2C\]\/55{background-color:#0c2a2c8c}.bg-\[\#E6EDED\]{--tw-bg-opacity: 1;background-color:rgb(230 237 237 / var(--tw-bg-opacity, 1))}.bg-\[\#F2F7F6\]{--tw-bg-opacity: 1;background-color:rgb(242 247 246 / var(--tw-bg-opacity, 1))}.bg-\[\#F5F8F8\]{--tw-bg-opacity: 1;background-color:rgb(245 248 248 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-teal-300{--tw-bg-opacity: 1;background-color:rgb(94 234 212 / var(--tw-bg-opacity, 1))}.bg-teal-400{--tw-bg-opacity: 1;background-color:rgb(45 212 191 / var(--tw-bg-opacity, 1))}.bg-teal-50{--tw-bg-opacity: 1;background-color:rgb(240 253 250 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-\[\#08191A\]{--tw-gradient-from: #08191A var(--tw-gradient-from-position);--tw-gradient-to: rgb(8 25 26 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\[\#0C2A2C\]{--tw-gradient-to: rgb(12 42 44 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #0C2A2C var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-\[\#123B3D\]{--tw-gradient-to: #123B3D var(--tw-gradient-to-position)}.stroke-white{stroke:#fff}.object-contain{-o-object-fit:contain;object-fit:contain}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pl-3{padding-left:.75rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-\[-1px\]{vertical-align:-1px}.font-mono{font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[17px\]{font-size:17px}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.font-thin{font-weight:100}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tracking-wide{letter-spacing:.025em}.text-\[\#0C2A2C\]{--tw-text-opacity: 1;color:rgb(12 42 44 / var(--tw-text-opacity, 1))}.text-\[\#40575A\]{--tw-text-opacity: 1;color:rgb(64 87 90 / var(--tw-text-opacity, 1))}.text-\[\#9FBAB9\]{--tw-text-opacity: 1;color:rgb(159 186 185 / var(--tw-text-opacity, 1))}.text-\[\#9FBAB9\]\/70{color:#9fbab9b3}.text-\[\#DCE6E5\]{--tw-text-opacity: 1;color:rgb(220 230 229 / var(--tw-text-opacity, 1))}.text-\[\#F2F7F6\]{--tw-text-opacity: 1;color:rgb(242 247 246 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-teal-300{--tw-text-opacity: 1;color:rgb(94 234 212 / var(--tw-text-opacity, 1))}.text-teal-300\/90{color:#5eead4e6}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.text-teal-700{--tw-text-opacity: 1;color:rgb(15 118 110 / var(--tw-text-opacity, 1))}.text-teal-800{--tw-text-opacity: 1;color:rgb(17 94 89 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/40{color:#fff6}.text-white\/70{color:#ffffffb3}.text-white\/75{color:#ffffffbf}.text-white\/80{color:#fffc}.text-white\/85{color:#ffffffd9}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));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)}.invert{--tw-invert: invert(100%);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)}.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)}.backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[max-height\,opacity\]{transition-property:max-height,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[opacity\,transform\]{transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-100{transition-delay:.1s}.delay-75{transition-delay:75ms}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-\[260ms\]{transition-duration:.26s}.ease-\[cubic-bezier\(\.32\,\.72\,0\,1\)\]{transition-timing-function:cubic-bezier(.32,.72,0,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-transform{will-change:transform}.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}:root{--nav-clear: 128px}.hover\:-translate-x-1:hover{--tw-translate-x: -.25rem;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))}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;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))}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;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))}.hover\:translate-x-1:hover{--tw-translate-x: .25rem;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))}.hover\:translate-y-1:hover{--tw-translate-y: .25rem;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))}.hover\:border-teal-300:hover{--tw-border-opacity: 1;border-color:rgb(94 234 212 / var(--tw-border-opacity, 1))}.hover\:border-teal-300\/70:hover{border-color:#5eead4b3}.hover\:border-white\/50:hover{border-color:#ffffff80}.hover\:bg-\[\#0C2A2C\]\/75:hover{background-color:#0c2a2cbf}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:bg-white\/\[\.06\]:hover{background-color:#ffffff0f}.hover\:text-teal-200:hover{--tw-text-opacity: 1;color:rgb(153 246 228 / var(--tw-text-opacity, 1))}.hover\:text-teal-300:hover{--tw-text-opacity: 1;color:rgb(94 234 212 / var(--tw-text-opacity, 1))}.hover\:text-teal-400:hover{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:ring-2:focus{--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, 0 0 #0000)}.focus\:ring-teal-300\/60:focus{--tw-ring-color: rgb(94 234 212 / .6)}.group:hover .group-hover\:opacity-100{opacity:1}@media(min-width:640px){.sm\:mb-3{margin-bottom:.75rem}.sm\:h-5{height:1.25rem}.sm\:w-5{width:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}}@media(min-width:768px){.md\:flex{display:flex}.md\:justify-between{justify-content:space-between}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}}.pf-home{color:var(--body);font-family:Epilogue,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}.pf-footer{font-family:Epilogue,Helvetica Neue,Arial,sans-serif;line-height:1.65}:root{--paper:#FCFCFD;--band:#EFF2F2;--wash:#E6EDED;--card:#FFFFFF;--inset:#F5F8F8;--ink:#0C2A2C;--body:#40575A;--soft:#5C7275;--muted:#647779;--rule:#DEE5E5;--rule-2:#E9EEEE;--accent:#1C464B;--lav:#928EA5;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.05 0 0 0 0 0.16 0 0 0 0 0.17 0 0 0 0.30 -0.14'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");--grid:repeating-linear-gradient(to right, rgba(28,70,75,.04) 0 1px, transparent 1px 32px), repeating-linear-gradient(to bottom, rgba(28,70,75,.032) 0 1px, transparent 1px 32px);--sh-sm:0 1px 2px rgba(12,42,44,.05);--sh-md:0 2px 5px rgba(12,42,44,.045), 0 14px 32px -12px rgba(12,42,44,.14);--sh-lg:0 4px 10px rgba(12,42,44,.05), 0 30px 64px -20px rgba(12,42,44,.2);--shell:1184px;--shell-wide:1376px}.pf-home *{box-sizing:border-box}.pf-home .textured{position:relative;isolation:isolate}.pf-home .textured:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--grain);background-blend-mode:multiply;opacity:.9}.pf-home .textured:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--grid)}.pf-home .textured>*{position:relative;z-index:1}.pf-home .shell,.pf-footer .shell{max-width:var(--shell);margin:0 auto;padding:0 48px}.pf-home .shell-wide,.pf-footer .shell-wide{max-width:var(--shell-wide);margin:0 auto;padding:0 48px}.pf-home .mono,.pf-footer .mono{font-family:DM Mono,ui-monospace,Menlo,monospace}.pf-home .eyebrow{display:inline-block;margin:0;padding:7px 12px 6px;background:var(--inset);border:1px solid var(--rule-2);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.pf-home .eyebrow:before{content:none}.pf-home h2.d{margin:0;font-size:60px;font-weight:300;letter-spacing:-.026em;line-height:1.08;color:var(--ink);text-wrap:balance}.pf-home h3.d{margin:0;font-size:48px;font-weight:300;letter-spacing:-.03em;line-height:1.1;color:var(--ink)}.pf-home .card{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-md)}.pf-home .card-lg{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-lg)}.pf-home .numchip{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:26px;padding:0 9px;background:var(--accent);color:#fff;font-size:12px;letter-spacing:.04em;justify-self:start;align-self:start;width:-moz-fit-content;width:fit-content;flex-shrink:0}.pf-home .linkline{display:inline-flex;align-items:center;gap:11px;font-size:14px;font-weight:500;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:7px}.pf-home .disc .tech{align-self:end;text-align:right}.pf-home .ext-i,.pf-footer .ext-i{width:12px;height:12px;flex-shrink:0;opacity:.85}.pf-footer{background:var(--paper);border-top:1px solid var(--rule);padding:clamp(56px,8vw,104px) 0 clamp(40px,5vw,56px)}.pf-footer a{text-decoration:none}.pf-footer .f-pages{display:grid;grid-template-columns:1fr;gap:48px;align-items:stretch}.pf-footer .f-left{display:flex;flex-direction:column;gap:32px}.pf-footer .f-right{display:flex;flex-direction:column;gap:0}.pf-footer .f-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:30px 20px}.pf-footer .f-cols>:nth-child(3){grid-column:1 / -1}.pf-footer .f-cols>:nth-child(3) .f-lk{display:grid;grid-template-columns:repeat(2,1fr);gap:13px 20px}.pf-footer .f-beyond{margin-top:auto;padding-top:clamp(32px,4vw,40px);border-top:1px solid var(--rule)}.pf-footer .f-av{margin:0;display:inline-flex;align-items:center;gap:11px;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.pf-footer .f-av i{width:7px;height:7px;background:var(--accent);display:block;flex-shrink:0}.pf-footer .f-nm{margin:0;font-weight:300;letter-spacing:-.032em;line-height:1;color:var(--ink);font-size:clamp(2rem,5.4vw,3.25rem)}.pf-footer .f-nm b{font-weight:700}.pf-footer .f-say{margin:0;max-width:42ch;font-size:15px;font-weight:300;line-height:1.85;color:var(--soft)}.pf-footer .f-lbl{margin:0 0 22px;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#647779}.pf-footer .f-lk{display:flex;flex-direction:column;gap:13px;font-size:15px}.pf-footer .f-lk a,.pf-footer .f-inl a,.pf-footer .f-btn{color:var(--body)}.pf-footer .f-lk a:hover,.pf-footer .f-inl a:hover,.pf-footer .f-btn:hover{color:var(--accent)}.pf-footer .f-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:0;margin:0;font:inherit;line-height:inherit;text-align:left;width:-moz-fit-content;width:fit-content;cursor:pointer}.pf-footer .f-ex{color:var(--accent)}.pf-footer .f-inl{display:flex;flex-wrap:wrap;gap:14px 24px;font-size:15px;color:var(--soft)}.pf-footer .f-socs{display:flex;align-items:center;gap:20px}.pf-footer .f-socs a{color:var(--muted);display:inline-flex}.pf-footer .f-socs a:hover{color:var(--ink)}.pf-footer .f-socs svg{width:18px;height:18px;fill:currentColor}.pf-footer .f-site{color:var(--accent)}.pf-footer .f-site svg{width:20px;height:20px}.pf-footer .f-colo{margin-top:clamp(40px,5vw,56px);padding-top:32px;border-top:1px solid var(--rule);display:flex;flex-direction:column;gap:10px;font-size:12px;color:var(--muted)}.pf-footer .f-colo a{color:var(--accent)}.pf-home .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 24px;font-size:15px;font-weight:500;transition:all .2s ease}.pf-home .shell,.pf-footer .shell,.pf-home .shell-wide,.pf-footer .shell-wide{padding:0 20px}.pf-home .sec,.pf-footer .sec{padding:clamp(56px,9vw,128px) 0}.pf-home h2.d{font-size:clamp(1.75rem,6.4vw,3.75rem)}.pf-home h3.d{font-size:clamp(1.6rem,5.6vw,3rem)}.pf-home .stmt{padding:24px 20px;display:block}.pf-home .op-link{align-self:flex-start;margin-top:8px;border-bottom-color:var(--accent)}.pf-home .cta{padding:24px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:24px}.pf-home .cta .btn{width:100%}.pf-home .disc{display:grid;grid-template-columns:1fr;gap:12px;padding:20px 18px;align-items:start;background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--rule);box-shadow:var(--sh-sm);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.pf-home .disc:hover{border-left-color:var(--accent);box-shadow:var(--sh-md);transform:translateY(-1px)}.pf-home .disc .tech{text-align:left;align-self:auto}@media(prefers-reduced-motion:reduce){.pf-home *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(min-width:720px){.pf-footer .f-cols{grid-template-columns:repeat(3,1fr);gap:32px}.pf-footer .f-lk{gap:15px}.pf-footer .f-cols>:nth-child(3){grid-column:auto}.pf-footer .f-cols>:nth-child(3) .f-lk{display:flex;gap:15px}.pf-footer .f-colo{flex-direction:row;align-items:center;justify-content:space-between;gap:24px}}@media(min-width:1040px){.pf-footer .f-pages{grid-template-columns:.82fr 1.18fr;gap:0}.pf-footer .f-left{border-right:1px solid var(--rule);padding-right:clamp(40px,5vw,72px)}.pf-footer .f-right{padding-left:clamp(40px,5vw,72px)}.pf-footer .f-cols{gap:40px}}@media(min-width:600px){.pf-home .shell,.pf-footer .shell,.pf-home .shell-wide,.pf-footer .shell-wide{padding:0 32px}.pf-home .stmt,.pf-home .cta{padding:32px}.pf-home .cta .btn{width:auto}}@media(min-width:900px){.pf-home .shell,.pf-footer .shell,.pf-home .shell-wide,.pf-footer .shell-wide{padding:0 40px}.pf-home .stmt{padding:48px}.pf-home .cta{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:40px;padding:48px}.pf-home .disc{grid-template-columns:78px 1fr .72fr;gap:32px;padding:32px 24px}.pf-home .disc .tech{text-align:right;align-self:end}}@media(min-width:1200px){.pf-home .shell,.pf-footer .shell,.pf-home .shell-wide,.pf-footer .shell-wide{padding:0 48px}.pf-home .stmt{padding:64px}.pf-home .cta{gap:56px;padding:56px 64px}.pf-home .disc{gap:32px;padding:32px}}.pf-footer .f-inl{gap:24px 64px}.pf-footer .f-inl>*{display:inline-flex;align-items:center;gap:12px}.pf-footer .f-ico{width:28px;height:28px;flex-shrink:0;filter:brightness(0);opacity:.42}.pf-footer .f-inl a:hover .f-ico{opacity:.7}.pf-home .wb-head{display:block;padding-bottom:clamp(40px,5.5vw,72px);border-bottom:1px solid var(--rule)}.pf-home .wb-cols{display:grid;grid-template-columns:1fr;gap:24px}.pf-home .wb-cols p{margin:0;font-size:16px;font-weight:300;line-height:1.75;color:var(--body)}.pf-home .wb-plate{display:block;margin-top:clamp(32px,4vw,56px);text-decoration:none;color:inherit}.pf-home .wb-plate figure{margin:0;background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-lg)}.pf-home .wb-shot{overflow:hidden;background:#08191a}.pf-home .wb-shot img{display:block;width:100%;height:auto;transition:transform .7s ease}.pf-home .wb-plate:hover .wb-shot img{transform:scale(1.008)}.pf-home .wb-cap{display:grid;grid-template-columns:1fr;gap:16px;padding:24px;border-top:1px solid var(--rule)}.pf-home .wb-cap-nm{margin:0;font-size:16px;font-weight:500;color:var(--ink)}.pf-home .wb-cap-sub{margin:6px 0 0;font-size:14px;font-weight:300;color:var(--muted)}@media(min-width:720px){.pf-home .wb-cols{grid-template-columns:repeat(2,1fr);gap:40px}.pf-home .wb-cap{grid-template-columns:1fr auto;align-items:center;padding:24px 32px}}.pf-home .sec-gap,.pf-home .sec-gap-sm{padding-bottom:clamp(40px,5.5vw,72px);border-bottom:1px solid var(--rule);margin-bottom:clamp(40px,5.5vw,72px)}.pf-home .sec-gap-top{margin-top:clamp(32px,6vw,64px)}.pf-home .proj-stack{display:flex;flex-direction:column;gap:clamp(32px,6vw,56px)}.pf-home .t-body{font-size:clamp(.9375rem,3vw,1rem)}.pf-home h3.disc-t{margin:0;font-weight:300;letter-spacing:-.02em;color:var(--ink);font-size:clamp(1.375rem,4.8vw,1.875rem);line-height:1.15}.pf-home h2.cta-t{line-height:1.06}@media(min-width:900px){.pf-home h2.d{line-height:.98}.pf-home h3.d{line-height:1}.pf-home h2.cta-t{line-height:.96}}@media(hover:none)and (pointer:coarse){.pf-footer .f-socs{gap:6px;margin:-13px}.pf-footer .f-socs a{padding:13px}.pf-footer .f-lk a,.pf-footer .f-btn{padding-top:5px;padding-bottom:7px}.pf-footer .f-colo a,.pf-footer .f-inl a{display:inline-block;padding:4px 0}}.pf-home .pj-tech{margin:16px 0 0;padding-top:15px;border-top:1px solid var(--rule);font-size:11px;line-height:1.9;color:var(--muted);letter-spacing:.01em}.pf-home .pj-links{display:flex;flex-wrap:wrap;gap:22px;margin-top:16px}.pf-home .pj-links .linkline{border-bottom:0;padding-bottom:0}.pf-home .pj-row{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-lg);padding:clamp(22px,3.2vw,40px);margin-top:clamp(24px,3.6vw,48px);scroll-margin-top:144px}.pf-home .pj-row-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding-bottom:18px;border-bottom:1px solid var(--rule)}.pf-home .pj-rn{display:flex;align-items:center;gap:12px;margin:0;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.pf-home .pj-role{margin:0;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.pf-home .pj-row-id{padding:24px 0 0}.pf-home .pj-rname{margin:0;font-size:clamp(1.9rem,5.6vw,3.2rem);font-weight:300;letter-spacing:-.04em;line-height:1;color:var(--ink);word-break:break-word}.pf-home .pj-rsub{margin:12px 0 0;font-size:clamp(1rem,1.9vw,1.2rem);font-weight:300;line-height:1.55;color:var(--soft)}.pf-home .pj-row-mid{display:grid;grid-template-columns:1fr;gap:clamp(22px,3vw,40px);padding:24px 0 0;align-items:stretch}.pf-home .pj-plate{margin:0;border:1px solid var(--rule);background:var(--inset);padding:9px;box-shadow:var(--sh-sm);display:flex;overflow:hidden}.pf-home .pj-plate img{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.pf-home .pj-read{display:flex;flex-direction:column;gap:20px;min-width:0}.pf-home .pj-lead{margin:0;font-size:15.5px;font-weight:300;line-height:1.75;color:var(--body)}.pf-home .pj-qa{display:grid;grid-template-columns:1fr;gap:20px;padding-top:20px;border-top:1px solid var(--rule)}.pf-home .pj-qa p:not(.pj-k){margin:0;font-size:13.5px;font-weight:300;line-height:1.7;color:var(--soft)}.pf-home .pj-k{margin:0 0 9px;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#647779}.pf-home .pj-row-foot{display:grid;grid-template-columns:1fr;gap:24px;margin-top:24px;padding-top:24px;border-top:1px solid var(--rule)}.pf-home .pj-hl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}.pf-home .pj-hl li{display:grid;grid-template-columns:auto 1fr;gap:13px;font-size:13.5px;font-weight:300;line-height:1.65;color:var(--body)}.pf-home .pj-hl li span[aria-hidden]{color:var(--accent)}.pf-home .pj-links.foot{margin-top:20px}.pf-home .pj-shots{display:flex;flex-direction:column;min-width:0}.pf-home .pj-views{display:flex;align-items:center;gap:24px;padding-bottom:8px;margin-bottom:16px;border-bottom:1px solid var(--rule)}.pf-home .pj-view{position:relative;border:0;background:none;cursor:pointer;padding:6px 1px;font-family:inherit;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);line-height:normal;transition:color .2s ease}.pf-home .pj-view:hover{color:var(--soft)}.pf-home .pj-view.on{color:var(--accent)}.pf-home .pj-view.on:after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:1px;background:var(--accent)}.pf-home .pj-shots .pj-plate{align-self:stretch}.pf-home .pj-plate-in{position:relative;width:100%;min-width:0;aspect-ratio:4/3}.pf-home .pj-plate-in img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.pf-home .pj-dev-wrap{position:absolute;inset:0;display:flex}.pf-home .af{margin:auto;max-width:100%;max-height:100%;display:flex;flex-direction:column}.pf-home .af-lap{width:100%}.pf-home .af-lap .af-screen{flex:none;aspect-ratio:var(--shot-ar, 1.6)}.pf-home .af-tab,.pf-home .af-pho{height:100%}.pf-home .af-lid{flex:1;min-height:0;display:flex;flex-direction:column;background:linear-gradient(160deg,#1b3b3e,#0c2a2c);border-radius:10px 10px 0 0;padding:5px 5px 0}.pf-home .af-bar{flex-shrink:0;display:flex;align-items:center;gap:5px;background:#123032;border-radius:7px 7px 0 0;padding:6px 9px}.pf-home .af-dot{width:6px;height:6px;border-radius:50%;background:#3d6265;flex-shrink:0}.pf-home .af-url{flex:1;min-width:0;margin-left:6px;padding:3px 8px;border-radius:4px;background:#0c2a2c;color:#7e9a9c;font-size:8px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-home .af-base{flex-shrink:0;height:11px;border-radius:0 0 11px 11px;background:linear-gradient(#1b3b3e,#0c2a2c);box-shadow:inset 0 1px 2px #ffffff17}.pf-home .af-body{flex:1;min-height:0;position:relative;background:linear-gradient(#1b3b3e,#0c2a2c)}.pf-home .af-tab .af-body,.pf-home .af-pho .af-body{display:flex;box-sizing:border-box;flex:none;height:100%}.pf-home .af-tab .af-body{border-radius:16px}.pf-home .af-pho .af-body{border-radius:20px}.pf-home .af-cam{position:absolute;top:3px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:#08191a;z-index:2}.pf-home .af-notch{position:absolute;top:3px;left:50%;transform:translate(-50%);width:34px;height:7px;border-radius:99px;background:#08191a;z-index:2}.pf-home .af-screen{flex:1;min-height:0;position:relative;overflow:hidden;background:#08191a}.pf-home .af-tab .af-body{padding:7px}.pf-home .af-tab .af-screen,.pf-home .af-pho .af-screen{position:relative;flex:none;height:100%;width:auto;aspect-ratio:var(--shot-ar, .75)}.pf-home .af-tab .af-screen{border-radius:9px}.pf-home .af-pho .af-body{padding:5px}.pf-home .af-pho .af-screen{border-radius:15px}.pf-home .af-screen img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:top center;object-position:top center}@media(min-width:560px){.pf-home .pj-qa{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.pf-home .pj-row-foot{grid-template-columns:1.15fr .85fr;gap:clamp(32px,4vw,64px)}}@media(min-width:1040px){.pf-home .pj-row-mid{grid-template-columns:1.08fr .92fr}.pf-home .pj-row.flip .pj-plate{order:2}.pf-home .pj-qa{padding-top:22px}}.pf-home .sec-gap,.pf-home .sec-gap-sm,.pf-home .wb-head{position:relative;border-bottom:0}.pf-home .sec-gap:after,.pf-home .sec-gap-sm:after,.pf-home .wb-head:after{content:"";position:absolute;left:50%;bottom:0;width:100vw;max-width:100vw;height:1px;transform:translate(-50%);background:color-mix(in srgb,var(--ink) 13%,transparent);pointer-events:none}.pf-home .op-head{display:block}.pf-home .op-head>.eyebrow+*{margin-top:clamp(28px,4vw,44px);padding-top:clamp(28px,4vw,44px);border-top:1px solid color-mix(in srgb,var(--ink) 13%,transparent)}.pf-home .op-cols{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,48px);align-items:start}.pf-home .op-title{max-width:18ch}.pf-home .op-aside{display:flex;flex-direction:column;gap:16px;min-width:0}.pf-home .op-say{margin:0;max-width:52ch;font-size:clamp(.9375rem,1.5vw,1rem);font-weight:300;line-height:1.75;color:var(--soft)}@media(min-width:900px){.pf-home .op-cols{grid-template-columns:1.08fr .92fr;gap:clamp(40px,4.5vw,72px)}}.pf-about{color:var(--body);font-family:Epilogue,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}:root{--paper:#FCFCFD;--band:#EFF2F2;--wash:#E6EDED;--card:#FFFFFF;--inset:#F5F8F8;--ink:#0C2A2C;--body:#40575A;--soft:#5C7275;--muted:#647779;--rule:#DEE5E5;--rule-2:#E9EEEE;--accent:#1C464B;--lav:#928EA5;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.05 0 0 0 0 0.16 0 0 0 0 0.17 0 0 0 0.30 -0.14'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");--grid:repeating-linear-gradient(to right, rgba(28,70,75,.04) 0 1px, transparent 1px 32px), repeating-linear-gradient(to bottom, rgba(28,70,75,.032) 0 1px, transparent 1px 32px);--sh-sm:0 1px 2px rgba(12,42,44,.05);--sh-md:0 2px 5px rgba(12,42,44,.045), 0 14px 32px -12px rgba(12,42,44,.14);--sh-lg:0 4px 10px rgba(12,42,44,.05), 0 30px 64px -20px rgba(12,42,44,.2);--shell:1184px;--shell-wide:1376px}.pf-about *{box-sizing:border-box}.pf-about .textured{position:relative;isolation:isolate}.pf-about .textured:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--grain);background-blend-mode:multiply;opacity:.9}.pf-about .textured:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--grid)}.pf-about .textured>*{position:relative;z-index:1}.pf-about .shell{max-width:var(--shell);margin:0 auto;padding:0 48px}.pf-about .shell-wide{max-width:var(--shell-wide);margin:0 auto;padding:0 48px}.pf-about .mono{font-family:DM Mono,ui-monospace,Menlo,monospace}.pf-about .eyebrow{display:inline-block;margin:0;padding:7px 12px 6px;background:var(--inset);border:1px solid var(--rule-2);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.pf-about .eyebrow:before{content:none}.pf-about h2.d{margin:0;font-size:60px;font-weight:300;letter-spacing:-.026em;line-height:.98;color:var(--ink);text-wrap:balance}.pf-about h3.d{margin:0;font-size:48px;font-weight:300;letter-spacing:-.03em;line-height:1;color:var(--ink)}.pf-about .card{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-md)}.pf-about .card-lg{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-lg)}.pf-about .inset{background:var(--inset);border:1px solid var(--rule-2)}.pf-about .numchip{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:26px;padding:0 9px;background:var(--accent);color:#fff;font-size:12px;letter-spacing:.04em}.pf-about .linkline{display:inline-flex;align-items:center;gap:11px;font-size:14px;font-weight:500;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:7px}.pf-about .disc .tech{align-self:end;text-align:right}.pf-about .ext-i{width:12px;height:12px;flex-shrink:0;opacity:.85}.pf-about .pf-footer{background:var(--paper);border-top:1px solid var(--rule);padding:clamp(56px,8vw,104px) 0 clamp(40px,5vw,56px)}.pf-about .pf-footer a{text-decoration:none}.pf-about .f-pages{display:grid;grid-template-columns:1fr;gap:48px;align-items:stretch}.pf-about .f-left{display:flex;flex-direction:column;gap:32px}.pf-about .f-right{display:flex;flex-direction:column;gap:0}.pf-about .f-cols{display:grid;grid-template-columns:1fr;gap:40px}.pf-about .f-beyond{margin-top:auto;padding-top:clamp(32px,4vw,40px);border-top:1px solid var(--rule)}.pf-about .f-av{margin:0;display:inline-flex;align-items:center;gap:11px;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.pf-about .f-av i{width:7px;height:7px;background:var(--accent);display:block;flex-shrink:0}.pf-about .f-nm{margin:0;font-weight:300;letter-spacing:-.032em;line-height:1;color:var(--ink);font-size:clamp(2rem,5.4vw,3.25rem)}.pf-about .f-nm b{font-weight:700}.pf-about .f-say{margin:0;max-width:42ch;font-size:15px;font-weight:300;line-height:1.85;color:var(--soft)}.pf-about .f-lbl{margin:0 0 22px;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#647779}.pf-about .f-lk{display:flex;flex-direction:column;gap:15px;font-size:15px}.pf-about .f-lk a,.pf-about .f-inl a{color:var(--body)}.pf-about .f-lk a:hover,.pf-about .f-inl a:hover,.pf-about .f-ex{color:var(--accent)}.pf-about .f-inl{display:flex;flex-wrap:wrap;gap:14px 32px;font-size:15px;color:var(--soft)}.pf-about .f-socs{display:flex;align-items:center;gap:20px}.pf-about .f-socs a{color:var(--muted);display:inline-flex}.pf-about .f-socs a:hover{color:var(--ink)}.pf-about .f-socs svg{width:18px;height:18px;fill:currentColor}.pf-about .f-site{color:var(--accent)}.pf-about .f-site svg{width:20px;height:20px}.pf-about .f-colo{margin-top:clamp(40px,5vw,56px);padding-top:32px;border-top:1px solid var(--rule);display:flex;flex-direction:column;gap:10px;font-size:12px;color:var(--muted)}.pf-about .f-colo a{color:var(--accent)}.pf-about .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 24px;font-size:15px;font-weight:500;transition:all .2s ease}.pf-about .shell,.pf-about .shell-wide{padding:0 20px}.pf-about .sec{padding:clamp(56px,9vw,128px) 0}.pf-about h2.d{font-size:clamp(1.75rem,6.4vw,3.75rem)}.pf-about h3.d{font-size:clamp(1.6rem,5.6vw,3rem)}.pf-about .stmt{padding:24px 20px;display:grid;grid-template-columns:1fr;gap:22px;align-items:start}.pf-about .proj{padding:16px;display:grid;grid-template-columns:1fr;gap:24px;align-items:start}.pf-about .proj .shot,.pf-about .proj.flip .shot{order:1}.pf-about .proj .read,.pf-about .proj.flip .read{order:2}.pf-about .cta{padding:24px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:24px}.pf-about .cta .btn{width:100%}.pf-about .disc{display:grid;grid-template-columns:1fr;gap:12px;padding:20px 18px;align-items:start;background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--rule);box-shadow:var(--sh-sm);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.pf-about .disc:hover{border-left-color:var(--accent);box-shadow:var(--sh-md);transform:translateY(-1px)}.pf-about .disc .tech{text-align:left;align-self:auto}.pf-about .ab-hero{padding:max(clamp(32px,5vw,56px),var(--nav-clear)) 0 clamp(40px,6vw,72px)}.pf-about .ab-split{display:grid;grid-template-columns:1fr;gap:24px}.pf-about .ab-name{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pf-about .ab-name b{font-weight:700}.pf-about .ab-plate{margin:0;border:1px solid var(--rule);background:var(--card);padding:10px;box-shadow:var(--sh-lg)}.pf-about .ab-plate img{display:block;width:100%;height:100%;aspect-ratio:4/5;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 14%;object-position:50% 14%}.pf-about .ab-body{display:flex;flex-direction:column}.pf-about .ab-lead{margin:0;padding-top:22px;border-top:1px solid var(--rule);font-size:clamp(1.05rem,3.4vw,1.45rem);font-weight:300;line-height:1.45;letter-spacing:-.012em;color:var(--ink)}.pf-about .ab-sub{margin:16px 0 0;font-size:15px;font-weight:300;line-height:1.78;color:var(--soft)}.pf-about .ab-sub strong{color:var(--ink);font-weight:500}.pf-about .ab-site{display:inline-flex;align-items:baseline;gap:6px;color:var(--ink);font-weight:500;text-decoration:none}.pf-about .ab-site:hover{color:var(--accent)}.pf-about .ab-site .ext-i{width:12px;height:12px;flex-shrink:0;align-self:center;opacity:.9}.pf-about .ab-facts{margin-top:24px;display:grid;grid-template-columns:1fr;gap:1px;background:var(--rule);border:1px solid var(--rule)}.pf-about .ab-fact{background:var(--card);padding:16px 18px}.pf-about .ab-fact p:first-child{margin:0 0 7px;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#647779}.pf-about .ab-fact p:last-child{margin:0;font-size:14px;line-height:1.55;color:var(--ink)}.pf-about .tl{display:grid;grid-template-columns:1fr;gap:14px;align-items:start;background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--rule);box-shadow:var(--sh-sm);padding:22px 20px;transition:all .2s ease}.pf-about .tl:hover{border-left-color:var(--accent);box-shadow:var(--sh-md);transform:translateY(-1px)}.pf-about .tl-label{margin:0;font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--ink)}.pf-about .tl-meta{margin:5px 0 0;font-size:11px;color:var(--muted)}.pf-about .tl-now{margin:9px 0 0;display:inline-flex;align-items:center;gap:7px;font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:var(--accent)}.pf-about .tl-now i{width:6px;height:6px;background:var(--accent);display:block}.pf-about .tl-title{margin:0;font-size:clamp(1.3rem,2.6vw,1.75rem);font-weight:300;letter-spacing:-.02em;color:var(--ink)}.pf-about .tl-desc{margin:11px 0 0;max-width:62ch;font-size:15px;font-weight:300;line-height:1.7;color:var(--soft)}.pf-about .tl-tags{margin:14px 0 0;font-size:11px;line-height:2;color:var(--muted)}.pf-about .tl-tags span{color:var(--accent);margin:0 6px}.pf-about .creds{display:grid;grid-template-columns:1fr;gap:16px}.pf-about .cred{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-md);padding:24px}.pf-about .cred-top{display:flex;align-items:center;justify-content:space-between}.pf-about .cred-ico{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--inset);border:1px solid var(--rule-2)}.pf-about .cred-ico img{width:26px;height:26px;-o-object-fit:contain;object-fit:contain}.pf-about .cred-title{margin:8px 0 0;font-size:clamp(1.25rem,2.4vw,1.6rem);font-weight:300;letter-spacing:-.02em;color:var(--ink)}.pf-about .cred-desc{margin:12px 0 0;font-size:14.5px;font-weight:300;line-height:1.7;color:var(--soft)}.pf-about .skills{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--rule)}.pf-about .sk{padding:24px 0;border-bottom:1px solid var(--rule)}.pf-about .sk-title{margin:0;font-size:16px;font-weight:600;color:var(--ink)}.pf-about .sk-desc{margin:7px 0 0;font-size:13.5px;font-weight:300;line-height:1.6;color:var(--muted)}.pf-about .sk-list{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px 18px}.pf-about .sk-list li{font-size:14px;color:var(--soft)}@media(prefers-reduced-motion:reduce){.pf-about *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(min-width:720px){.pf-about .f-cols{grid-template-columns:repeat(3,1fr);gap:32px}.pf-about .f-colo{flex-direction:row;align-items:center;justify-content:space-between;gap:24px}}@media(min-width:1040px){.pf-about .f-pages{grid-template-columns:.82fr 1.18fr;gap:0}.pf-about .f-left{border-right:1px solid var(--rule);padding-right:clamp(40px,5vw,72px)}.pf-about .f-right{padding-left:clamp(40px,5vw,72px)}.pf-about .f-cols{gap:40px}}@media(min-width:600px){.pf-about .shell,.pf-about .shell-wide{padding:0 32px}.pf-about .stmt{padding:32px}.pf-about .proj{padding:20px}.pf-about .cta{padding:32px}.pf-about .cta .btn{width:auto}}@media(min-width:900px){.pf-about .shell,.pf-about .shell-wide{padding:0 40px}.pf-about .stmt{grid-template-columns:.72fr 1.28fr;gap:48px;padding:48px}.pf-about .proj{grid-template-columns:1.15fr .85fr;gap:40px;padding:32px}.pf-about .proj.flip{grid-template-columns:.85fr 1.15fr}.pf-about .proj .shot{order:1}.pf-about .proj .read,.pf-about .proj.flip .shot{order:2}.pf-about .proj.flip .read{order:1}.pf-about .cta{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:40px;padding:48px}.pf-about .disc{grid-template-columns:78px 1fr .72fr;gap:32px;padding:32px 24px}.pf-about .disc .tech{text-align:right;align-self:end}}@media(min-width:1200px){.pf-about .shell,.pf-about .shell-wide{padding:0 48px}.pf-about .stmt{gap:64px;padding:64px}.pf-about .proj{gap:48px;padding:32px}.pf-about .cta{gap:56px;padding:56px 64px}.pf-about .disc{gap:32px;padding:32px}}@media(min-width:560px){.pf-about .ab-facts{grid-template-columns:repeat(2,1fr)}}@media(min-width:1040px){.pf-about .ab-hero{min-height:100svh;display:flex;align-items:center;padding:clamp(48px,6vw,88px) 0}.pf-about .ab-split{grid-template-columns:.72fr 1.28fr;grid-template-rows:auto 1fr;-moz-column-gap:clamp(32px,4vw,64px);column-gap:clamp(32px,4vw,64px);row-gap:24px;width:100%}.pf-about .ab-name{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal;font-size:clamp(2.25rem,8vw,3.75rem);font-weight:300;letter-spacing:-.032em;line-height:1;color:var(--ink);grid-column:2;grid-row:1}.pf-about .ab-plate{grid-column:1;grid-row:1 / 3;align-self:stretch;display:flex}.pf-about .ab-plate img{aspect-ratio:auto;flex:1;min-height:0}.pf-about .ab-body{grid-column:2;grid-row:2}.pf-about .ab-facts{margin-top:auto;padding-top:0;grid-template-columns:repeat(4,1fr)}.pf-about .ab-sub:last-of-type{margin-bottom:32px}}@media(min-width:720px){.pf-about .tl{grid-template-columns:52px 178px 1fr;gap:24px;padding:24px}.pf-about .creds{grid-template-columns:repeat(3,1fr)}.pf-about .skills{grid-template-columns:repeat(2,1fr);-moz-column-gap:48px;column-gap:48px}}@media(min-width:1040px){.pf-about .tl{grid-template-columns:52px 200px 1fr;gap:32px;padding:32px}.pf-about .skills{grid-template-columns:repeat(4,1fr);-moz-column-gap:32px;column-gap:32px}}.pf-about .skills{border-top:0;-moz-column-gap:32px;column-gap:32px}.pf-about .sk{padding:24px 0 32px;border-top:1px solid var(--rule);border-bottom:0}.pf-about .sk-title{font-size:15px;letter-spacing:-.005em}.pf-about .sk-desc{margin:8px 0 0;max-width:34ch}.pf-about .sk-list{margin:20px 0 0;gap:8px}.pf-about .sk-list li{display:inline-flex;align-items:center;white-space:nowrap;padding:8px 11px;border-radius:4px;background:var(--inset);border:1px solid var(--rule-2);font-size:12.5px;line-height:1;color:var(--body);transition:border-color .2s ease,color .2s ease}.pf-about .sk-list li:hover{border-color:var(--rule);color:var(--ink)}.pf-about .sk-band{background:#08191a;border-top:1px solid #123032;--grid: repeating-linear-gradient(to right, rgba(255,255,255,.035) 0 1px, transparent 1px 32px), repeating-linear-gradient(to bottom, rgba(255,255,255,.028) 0 1px, transparent 1px 32px)}.pf-about .sk-band:before{display:none}.pf-about .sk-band .eyebrow{color:#5eead4;background:#5eead41a;border-color:#5eead459}.pf-about .sk-band h2.d{color:#f2f7f6}.pf-about .sk-band .skills{display:flex;flex-direction:column;gap:0}.pf-about .sk-band .sk{padding:26px 0;border-top:1px solid rgba(255,255,255,.13);border-bottom:0}.pf-about .sk-band .sk-title{color:#f2f7f6}.pf-about .sk-band .sk-desc{color:#8fa8a8;max-width:38ch}.pf-about .sk-band .sk-list{margin:18px 0 0;gap:8px}.pf-about .sk-band .sk-list li{background:#5eead41c;border-color:#5eead480;color:#5eead4}.pf-about .sk-band .sk-list li:hover{background:#ffffff0e;border-color:#ffffff29;color:#dce6e5}@media(min-width:900px){.pf-about .sk-band .sk{display:grid;grid-template-columns:280px minmax(0,1fr);-moz-column-gap:56px;column-gap:56px;align-items:start}.pf-about .sk-band .sk-title{grid-column:1;grid-row:1}.pf-about .sk-band .sk-desc{grid-column:1;grid-row:2}.pf-about .sk-band .sk-list{grid-column:2;grid-row:1 / 3;margin:0;align-content:flex-start}}.pf-about .tm{position:relative;margin-top:clamp(40px,5vw,64px);padding-top:clamp(32px,4vw,48px);border-top:1px solid rgba(255,255,255,.14);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.pf-about .tm-track{display:flex;align-items:center;gap:clamp(40px,5vw,72px);width:-moz-max-content;width:max-content;margin:0;padding:0;list-style:none;animation:tm-pan 46s linear infinite;will-change:transform}.pf-about .tm:hover .tm-track{animation-play-state:paused}.pf-about .tm-track li{flex:0 0 auto;display:flex;align-items:center}.pf-about .tm-track img{height:30px;width:auto;display:block;filter:brightness(0) invert(1);opacity:.62;transition:opacity .2s ease}.pf-about .tm-track li:hover img{opacity:1}@keyframes tm-pan{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.pf-about .tm-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}.pf-about .tm{-webkit-mask-image:none;mask-image:none}}.pf-about .op-head{display:block}.pf-about .op-head>.eyebrow+*{margin-top:clamp(28px,4vw,44px);padding-top:clamp(28px,4vw,44px);border-top:1px solid color-mix(in srgb,var(--ink) 13%,transparent)}.pf-about .op-cols{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,48px);align-items:start}.pf-about .op-title{max-width:18ch}.pf-about .op-aside{display:flex;flex-direction:column;gap:16px;min-width:0}.pf-about .op-say{margin:0;max-width:52ch;font-size:clamp(.9375rem,1.5vw,1rem);font-weight:300;line-height:1.75;color:var(--soft)}@media(min-width:900px){.pf-about .op-cols{grid-template-columns:1.08fr .92fr;gap:clamp(40px,4.5vw,72px)}}:root{--paper:#FCFCFD;--band:#EFF2F2;--wash:#E6EDED;--card:#FFFFFF;--inset:#F5F8F8;--ink:#0C2A2C;--body:#40575A;--soft:#5C7275;--muted:#647779;--rule:#DEE5E5;--rule-2:#E9EEEE;--accent:#1C464B;--lav:#928EA5;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.05 0 0 0 0 0.16 0 0 0 0 0.17 0 0 0 0.30 -0.14'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");--grid:repeating-linear-gradient(to right, rgba(28,70,75,.04) 0 1px, transparent 1px 32px), repeating-linear-gradient(to bottom, rgba(28,70,75,.032) 0 1px, transparent 1px 32px);--sh-sm:0 1px 2px rgba(12,42,44,.05);--sh-md:0 2px 5px rgba(12,42,44,.045), 0 14px 32px -12px rgba(12,42,44,.14);--sh-lg:0 4px 10px rgba(12,42,44,.05), 0 30px 64px -20px rgba(12,42,44,.2);--shell:1184px;--shell-wide:1376px}.pf-projects *{box-sizing:border-box}.pf-projects{scroll-behavior:smooth;margin:0;background:var(--paper);color:var(--body);font-family:Epilogue,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pf-projects img{max-width:100%;display:block}.pf-projects a{color:var(--accent);text-decoration:none}.pf-projects a:hover{color:var(--ink)}.pf-projects .textured{position:relative;isolation:isolate}.pf-projects .textured:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--grain);background-blend-mode:multiply;opacity:.9}.pf-projects .textured:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--grid)}.pf-projects .textured>*{position:relative;z-index:1}.pf-projects .shell{max-width:var(--shell);margin:0 auto;padding:0 48px}.pf-projects .shell-wide{max-width:var(--shell-wide);margin:0 auto;padding:0 48px}.pf-projects .mono{font-family:DM Mono,ui-monospace,Menlo,monospace}.pf-projects .eyebrow{display:inline-block;margin:0;padding:7px 12px 6px;background:var(--inset);border:1px solid var(--rule-2);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.pf-projects .eyebrow:before{content:none}.pf-projects h2.d{margin:0;font-size:60px;font-weight:300;letter-spacing:-.026em;line-height:.98;color:var(--ink);text-wrap:balance}.pf-projects h3.d{margin:0;font-size:48px;font-weight:300;letter-spacing:-.03em;line-height:1;color:var(--ink)}.pf-projects .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}.pf-projects .card{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-md)}.pf-projects .card-lg{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-lg)}.pf-projects .inset{background:var(--inset);border:1px solid var(--rule-2)}.pf-projects .numchip{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:26px;padding:0 9px;background:var(--accent);color:#fff;font-size:12px;letter-spacing:.04em}.pf-projects .linkline{display:inline-flex;align-items:center;gap:11px;font-size:14px;font-weight:500;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:7px}@media(prefers-reduced-motion:reduce){.pf-projects *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.pf-projects .ext-i{width:12px;height:12px;flex-shrink:0;opacity:.85}.pf-projects .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 24px;font-size:15px;font-weight:500;transition:all .2s ease}.pf-projects .shell,.pf-projects .shell-wide{padding:0 20px}.pf-projects .sec{padding:clamp(56px,9vw,128px) 0}.pf-projects h2.d{font-size:clamp(1.75rem,6.4vw,3.75rem)}.pf-projects h3.d{font-size:clamp(1.6rem,5.6vw,3rem)}@media(min-width:600px){.pf-projects .shell,.pf-projects .shell-wide{padding:0 32px}}@media(min-width:900px){.pf-projects .shell,.pf-projects .shell-wide{padding:0 40px}}@media(min-width:1200px){.pf-projects .shell,.pf-projects .shell-wide{padding:0 48px}}.pf-projects .pj-hero{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--paper);padding-top:var(--nav-clear)}.pf-projects .pj-hero>.shell{width:100%}.pf-projects .pj-topbar{flex-shrink:0;width:100%;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:clamp(16px,2.4vw,32px)}.pf-projects .pj-viewport{overflow:hidden;position:relative}.pf-projects .pj-track{display:flex;will-change:transform}.pf-projects .pj-desc{display:none}.pf-projects .pj-slidewrap{flex:0 0 100%;display:flex;align-items:center;min-width:0}.pf-projects .pj-slidewrap>.shell{width:100%}.pf-projects .pj-slide{display:grid;grid-template-columns:1fr;gap:clamp(20px,3vw,32px);align-items:center;width:100%;max-width:1180px}.pf-projects .pj-devices{display:flex;align-items:flex-end;justify-content:flex-start;gap:2.5%;width:100%;min-width:0}.pf-projects .pj-laptop{width:58%;flex-shrink:0;position:relative}.pf-projects .pj-tablet{width:24%;flex-shrink:0;position:relative}.pf-projects .pj-phone{width:13%;flex-shrink:0;position:relative}.pf-projects .pj-lid{background:linear-gradient(160deg,#1b3b3e,#0c2a2c);border-radius:9px 9px 0 0;padding:4px 4px 0}.pf-projects .pj-bar{display:flex;align-items:center;gap:4px;background:#123032;border-radius:6px 6px 0 0;padding:5px 7px}.pf-projects .pj-dot{width:5px;height:5px;border-radius:50%;background:#3d6265;flex-shrink:0}.pf-projects .pj-url{flex:1;min-width:0;margin-left:5px;padding:2px 6px;border-radius:3px;background:#0c2a2c;color:#7e9a9c;font-size:6px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-projects .pj-screen{overflow:hidden;background:#fff}.pf-projects .pj-screen img{display:block;width:100%;height:auto}.pf-projects .pj-base{height:9px;border-radius:0 0 10px 10px;background:linear-gradient(#1b3b3e,#0c2a2c);box-shadow:inset 0 1px 2px #ffffff17}.pf-projects .pj-tbody{position:relative;background:linear-gradient(#1b3b3e,#0c2a2c);border-radius:12px;padding:5px}.pf-projects .pj-tbody img{display:block;width:100%;height:auto;border-radius:7px;background:#fff}.pf-projects .pj-cam{position:absolute;top:1.5px;left:50%;transform:translate(-50%);width:3px;height:3px;border-radius:50%;background:#08191a;z-index:2}.pf-projects .pj-pbody{position:relative;background:linear-gradient(#1b3b3e,#0c2a2c);border-radius:13px;padding:3px}.pf-projects .pj-pbody img{display:block;width:100%;height:auto;border-radius:10px;background:#fff}.pf-projects .pj-notch{position:absolute;top:1px;left:50%;transform:translate(-50%);width:26px;height:6px;border-radius:99px;background:#08191a;z-index:2}.pf-projects .pj-panel{min-width:0}.pf-projects .pj-count{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 12px}.pf-projects .pj-count span{color:var(--muted)}.pf-projects .pj-title{margin:0;font-size:clamp(1.9rem,5.4vw,3.1rem);font-weight:300;letter-spacing:-.04em;line-height:1;color:var(--ink);word-break:break-word}.pf-projects .pj-sub{margin:12px 0 0;font-size:clamp(.95rem,1.7vw,1.1rem);font-weight:300;line-height:1.6;color:var(--soft)}.pf-projects .pj-desc{margin:16px 0 0;font-size:14.5px;font-weight:300;line-height:1.75;color:var(--body);max-width:52ch}@media(min-width:720px){.pf-projects .pj-desc{display:block}}.pf-projects .pj-tech{margin:16px 0 0;padding-top:15px;border-top:1px solid var(--rule);font-size:11px;line-height:1.9;color:var(--muted);letter-spacing:.01em}.pf-projects .pj-links{display:flex;flex-wrap:wrap;gap:22px;margin-top:16px}.pf-projects .pj-links .linkline{border-bottom:0;padding-bottom:0}.pf-projects .pj-hero .pj-links{flex-wrap:nowrap;gap:clamp(6px,1.5vw,22px)}.pf-projects .pj-hero .pj-links .linkline{gap:clamp(5px,.75vw,11px);white-space:nowrap;font-size:clamp(11px,3.6vw,14px)}.pf-projects .pj-nav{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:8px 0;margin-top:clamp(16px,2.4vw,24px)}.pf-projects .pj-arrow{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;background:none;color:var(--muted);cursor:pointer;transition:color .2s ease}.pf-projects .pj-arrow:hover{color:var(--ink)}.pf-projects .pj-arrow svg{width:19px;height:19px}.pf-projects .pj-dots{display:flex;align-items:center;gap:16px}.pf-projects .pj-dotbtn{position:relative;border:0;background:none;cursor:pointer;padding:7px 1px;font-family:inherit;font-size:10px;letter-spacing:.1em;color:var(--muted);transition:color .2s ease}.pf-projects .pj-dotbtn:hover{color:var(--soft)}.pf-projects .pj-dotbtn.on{color:var(--accent)}.pf-projects .pj-dotbtn.on:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent)}.pf-projects .pj-jump{flex-shrink:0;display:flex;justify-content:center;padding:clamp(14px,2vw,20px) 0 clamp(18px,2.6vw,24px)}.pf-projects .pj-archive{background:var(--band);padding:clamp(48px,7vw,96px) 0}.pf-projects .pj-head{display:grid;grid-template-columns:1fr;gap:clamp(20px,2.4vw,28px);padding-bottom:clamp(40px,5.5vw,72px);border-bottom:1px solid var(--rule)}.pf-projects .pj-htitle{margin:0;font-size:clamp(2rem,6vw,4rem);font-weight:300;letter-spacing:-.035em;line-height:1;color:var(--ink);text-wrap:balance}.pf-projects .pj-row{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-lg);padding:clamp(22px,3.2vw,40px);margin-top:clamp(32px,4.4vw,64px);scroll-margin-top:144px}.pf-projects .pj-row-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding-bottom:18px;border-bottom:1px solid var(--rule)}.pf-projects .pj-rn{display:flex;align-items:center;gap:12px;margin:0;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.pf-projects .pj-role{margin:0;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.pf-projects .pj-row-id{padding:24px 0 0}.pf-projects .pj-rname{margin:0;font-size:clamp(1.9rem,5.6vw,3.2rem);font-weight:300;letter-spacing:-.04em;line-height:1;color:var(--ink);word-break:break-word}.pf-projects .pj-rsub{margin:12px 0 0;font-size:clamp(1rem,1.9vw,1.2rem);font-weight:300;line-height:1.55;color:var(--soft)}.pf-projects .pj-row-mid{display:grid;grid-template-columns:1fr;gap:clamp(22px,3vw,40px);padding:24px 0 0;align-items:stretch}.pf-projects .pj-plate{margin:0;border:1px solid var(--rule);background:var(--inset);padding:9px;box-shadow:var(--sh-sm);display:flex;overflow:hidden}.pf-projects .pj-plate img{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.pf-projects .pj-read{display:flex;flex-direction:column;gap:20px;min-width:0}.pf-projects .pj-lead{margin:0;font-size:15.5px;font-weight:300;line-height:1.75;color:var(--body)}.pf-projects .pj-qa{display:grid;grid-template-columns:1fr;gap:20px;padding-top:20px;border-top:1px solid var(--rule)}.pf-projects .pj-qa p:not(.pj-k){margin:0;font-size:13.5px;font-weight:300;line-height:1.7;color:var(--soft)}.pf-projects .pj-k{margin:0 0 9px;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#647779}.pf-projects .pj-row-foot{display:grid;grid-template-columns:1fr;gap:24px;margin-top:24px;padding-top:24px;border-top:1px solid var(--rule)}.pf-projects .pj-hl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}.pf-projects .pj-hl li{display:grid;grid-template-columns:auto 1fr;gap:13px;font-size:13.5px;font-weight:300;line-height:1.65;color:var(--body)}.pf-projects .pj-hl li span[aria-hidden]{color:var(--accent)}.pf-projects .pj-links.foot{margin-top:20px}.pf-projects .pj-end{background:var(--paper);padding:clamp(48px,7vw,104px) 0}.pf-projects .pj-endgrid{display:grid;grid-template-columns:1fr;gap:24px;align-items:end}.pf-projects .pj-endtitle{margin:0;font-size:clamp(1.7rem,4.6vw,2.9rem);font-weight:300;letter-spacing:-.035em;line-height:1.08;color:var(--ink);max-width:22ch;text-wrap:balance}@media(min-width:560px){.pf-projects .pj-qa{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.pf-projects .pj-row-foot{grid-template-columns:1.15fr .85fr;gap:clamp(32px,4vw,64px)}.pf-projects .pj-endgrid{grid-template-columns:1fr auto}}@media(min-width:1040px){.pf-projects .pj-slide{grid-template-columns:1.35fr .95fr;gap:clamp(32px,3.4vw,48px);align-items:center}.pf-projects .pj-htitle{font-size:clamp(2.2rem,3vw,2.7rem)}.pf-projects .pj-row-mid{grid-template-columns:1.08fr .92fr}.pf-projects .pj-row.flip .pj-plate{order:2}.pf-projects .pj-qa{padding-top:22px}}@media(min-width:1040px)and (min-height:820px){.pf-projects .pj-hero{min-height:100svh}.pf-projects .pj-viewport{flex:1 1 auto}.pf-projects .pj-track{position:absolute;inset:0}}@media(max-height:780px)and (min-width:1040px){.pf-projects .pj-slide{max-width:1040px}.pf-projects .pj-title{font-size:clamp(1.7rem,2.5vw,2.5rem)}}.pf-projects .pj-arrow,.pf-projects .pj-dotbtn,.pf-projects button.linkline{line-height:normal}.pf-projects .pj-shots{display:flex;flex-direction:column;min-width:0}.pf-projects .pj-views{display:flex;align-items:center;gap:24px;padding-bottom:8px;margin-bottom:16px;border-bottom:1px solid var(--rule)}.pf-projects .pj-view{position:relative;border:0;background:none;cursor:pointer;padding:6px 1px;font-family:inherit;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);line-height:normal;transition:color .2s ease}.pf-projects .pj-view:hover{color:var(--soft)}.pf-projects .pj-view.on{color:var(--accent)}.pf-projects .pj-view.on:after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:1px;background:var(--accent)}.pf-projects .pj-shots .pj-plate{align-self:stretch}.pf-projects .pj-plate-in{position:relative;width:100%;min-width:0;aspect-ratio:4/3}.pf-projects .pj-plate-in img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.pf-projects .pj-dev-wrap{position:absolute;inset:0;display:flex}.pf-projects .af{margin:auto;max-width:100%;max-height:100%;display:flex;flex-direction:column}.pf-projects .af-lap{width:100%}.pf-projects .af-lap .af-screen{flex:none;aspect-ratio:var(--shot-ar, 1.6)}.pf-projects .af-tab,.pf-projects .af-pho{height:100%}.pf-projects .af-lid{flex:1;min-height:0;display:flex;flex-direction:column;background:linear-gradient(160deg,#1b3b3e,#0c2a2c);border-radius:10px 10px 0 0;padding:5px 5px 0}.pf-projects .af-bar{flex-shrink:0;display:flex;align-items:center;gap:5px;background:#123032;border-radius:7px 7px 0 0;padding:6px 9px}.pf-projects .af-dot{width:6px;height:6px;border-radius:50%;background:#3d6265;flex-shrink:0}.pf-projects .af-url{flex:1;min-width:0;margin-left:6px;padding:3px 8px;border-radius:4px;background:#0c2a2c;color:#7e9a9c;font-size:8px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-projects .af-base{flex-shrink:0;height:11px;border-radius:0 0 11px 11px;background:linear-gradient(#1b3b3e,#0c2a2c);box-shadow:inset 0 1px 2px #ffffff17}.pf-projects .af-body{flex:1;min-height:0;position:relative;background:linear-gradient(#1b3b3e,#0c2a2c)}.pf-projects .af-tab .af-body,.pf-projects .af-pho .af-body{display:flex;box-sizing:border-box;flex:none;height:100%}.pf-projects .af-tab .af-body{border-radius:16px}.pf-projects .af-pho .af-body{border-radius:20px}.pf-projects .af-cam{position:absolute;top:3px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:#08191a;z-index:2}.pf-projects .af-notch{position:absolute;top:3px;left:50%;transform:translate(-50%);width:34px;height:7px;border-radius:99px;background:#08191a;z-index:2}.pf-projects .af-screen{flex:1;min-height:0;position:relative;overflow:hidden;background:#08191a}.pf-projects .af-tab .af-body{padding:7px}.pf-projects .af-tab .af-screen,.pf-projects .af-pho .af-screen{position:relative;flex:none;height:100%;width:auto;aspect-ratio:var(--shot-ar, .75)}.pf-projects .af-tab .af-screen{border-radius:9px}.pf-projects .af-pho .af-body{padding:5px}.pf-projects .af-pho .af-screen{border-radius:15px}.pf-projects .af-screen img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.pf-projects .pj-head{position:relative;border-bottom:0}.pf-projects .pj-head:after{content:"";position:absolute;left:50%;bottom:0;width:100vw;max-width:100vw;height:1px;transform:translate(-50%);background:color-mix(in srgb,var(--ink) 13%,transparent);pointer-events:none}.pf-projects .op-head{display:block}.pf-projects .op-head>.eyebrow+*{margin-top:clamp(28px,4vw,44px);padding-top:clamp(28px,4vw,44px);border-top:1px solid color-mix(in srgb,var(--ink) 13%,transparent)}.pf-projects .op-cols{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,48px);align-items:start}.pf-projects .op-title{max-width:18ch}.pf-projects .op-aside{display:flex;flex-direction:column;gap:16px;min-width:0}.pf-projects .op-say{margin:0;max-width:52ch;font-size:clamp(.9375rem,1.5vw,1rem);font-weight:300;line-height:1.75;color:var(--soft)}@media(min-width:900px){.pf-projects .op-cols{grid-template-columns:1.08fr .92fr;gap:clamp(40px,4.5vw,72px)}}:root{--paper:#FCFCFD;--band:#EFF2F2;--wash:#E6EDED;--card:#FFFFFF;--inset:#F5F8F8;--ink:#0C2A2C;--body:#40575A;--soft:#5C7275;--muted:#647779;--rule:#DEE5E5;--rule-2:#E9EEEE;--accent:#1C464B;--lav:#928EA5;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.05 0 0 0 0 0.16 0 0 0 0 0.17 0 0 0 0.30 -0.14'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");--grid:repeating-linear-gradient(to right, rgba(28,70,75,.04) 0 1px, transparent 1px 32px), repeating-linear-gradient(to bottom, rgba(28,70,75,.032) 0 1px, transparent 1px 32px);--sh-sm:0 1px 2px rgba(12,42,44,.05);--sh-md:0 2px 5px rgba(12,42,44,.045), 0 14px 32px -12px rgba(12,42,44,.14);--sh-lg:0 4px 10px rgba(12,42,44,.05), 0 30px 64px -20px rgba(12,42,44,.2);--shell:1184px;--shell-wide:1376px}.pf-contact *{box-sizing:border-box}.pf-contact{scroll-behavior:smooth;margin:0;background:var(--paper);color:var(--body);font-family:Epilogue,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pf-contact img{max-width:100%;display:block}.pf-contact a{color:var(--accent);text-decoration:none}.pf-contact a:hover{color:var(--ink)}.pf-contact .textured{position:relative;isolation:isolate}.pf-contact .textured:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--grain);background-blend-mode:multiply;opacity:.9}.pf-contact .textured:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--grid)}.pf-contact .textured>*{position:relative;z-index:1}.pf-contact .shell{max-width:var(--shell);margin:0 auto;padding:0 48px}.pf-contact .shell-wide{max-width:var(--shell-wide);margin:0 auto;padding:0 48px}.pf-contact .mono{font-family:DM Mono,ui-monospace,Menlo,monospace}.pf-contact .eyebrow{display:inline-block;margin:0;padding:7px 12px 6px;background:var(--inset);border:1px solid var(--rule-2);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.pf-contact .eyebrow:before{content:none}.pf-contact h2.d{margin:0;font-size:60px;font-weight:300;letter-spacing:-.026em;line-height:.98;color:var(--ink);text-wrap:balance}.pf-contact h3.d{margin:0;font-size:48px;font-weight:300;letter-spacing:-.03em;line-height:1;color:var(--ink)}.pf-contact .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}.pf-contact .card{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-md)}.pf-contact .card-lg{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-lg)}.pf-contact .inset{background:var(--inset);border:1px solid var(--rule-2)}.pf-contact .numchip{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:26px;padding:0 9px;background:var(--accent);color:#fff;font-size:12px;letter-spacing:.04em}.pf-contact .linkline{display:inline-flex;align-items:center;gap:11px;font-size:14px;font-weight:500;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:7px}.pf-contact .disc .tech{align-self:end;text-align:right}@media(prefers-reduced-motion:reduce){.pf-contact *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.pf-contact .ext-i{width:12px;height:12px;flex-shrink:0;opacity:.85}.pf-contact .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 24px;font-size:15px;font-weight:500;transition:all .2s ease}.pf-contact .shell,.pf-contact .shell-wide{padding:0 20px}.pf-contact .sec{padding:clamp(56px,9vw,128px) 0}.pf-contact h2.d{font-size:clamp(1.75rem,6.4vw,3.75rem)}.pf-contact h3.d{font-size:clamp(1.6rem,5.6vw,3rem)}.pf-contact .stmt{padding:24px 20px;display:grid;grid-template-columns:1fr;gap:22px;align-items:start}.pf-contact .proj{padding:16px;display:grid;grid-template-columns:1fr;gap:24px;align-items:start}.pf-contact .proj .shot,.pf-contact .proj.flip .shot{order:1}.pf-contact .proj .read,.pf-contact .proj.flip .read{order:2}.pf-contact .cta{padding:24px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:24px}.pf-contact .cta .btn{width:100%}.pf-contact .disc{display:grid;grid-template-columns:1fr;gap:12px;padding:20px 18px;align-items:start;background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--rule);box-shadow:var(--sh-sm);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.pf-contact .disc:hover{border-left-color:var(--accent);box-shadow:var(--sh-md);transform:translateY(-1px)}.pf-contact .disc .tech{text-align:left;align-self:auto}@media(min-width:600px){.pf-contact .shell,.pf-contact .shell-wide{padding:0 32px}.pf-contact .stmt{padding:32px}.pf-contact .proj{padding:20px}.pf-contact .cta{padding:32px}.pf-contact .cta .btn{width:auto}}@media(min-width:900px){.pf-contact .shell,.pf-contact .shell-wide{padding:0 40px}.pf-contact .stmt{grid-template-columns:.72fr 1.28fr;gap:48px;padding:48px}.pf-contact .proj{grid-template-columns:1.15fr .85fr;gap:40px;padding:32px}.pf-contact .proj.flip{grid-template-columns:.85fr 1.15fr}.pf-contact .proj .shot{order:1}.pf-contact .proj .read,.pf-contact .proj.flip .shot{order:2}.pf-contact .proj.flip .read{order:1}.pf-contact .cta{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:40px;padding:48px}.pf-contact .disc{grid-template-columns:78px 1fr .72fr;gap:32px;padding:32px 24px}.pf-contact .disc .tech{text-align:right;align-self:end}}@media(min-width:1200px){.pf-contact .shell,.pf-contact .shell-wide{padding:0 48px}.pf-contact .stmt{gap:64px;padding:64px}.pf-contact .proj{gap:48px;padding:32px}.pf-contact .cta{gap:56px;padding:56px 64px}.pf-contact .disc{gap:32px;padding:32px}}.pf-contact .ct{padding:max(clamp(32px,6vw,72px),var(--nav-clear)) 0 clamp(48px,7vw,96px)}.pf-contact .ct-head{display:block;padding-bottom:clamp(40px,5.5vw,72px);border-bottom:1px solid var(--rule)}.pf-contact .ct-title{margin:0;font-size:clamp(2.1rem,6.4vw,4.25rem);font-weight:300;letter-spacing:-.035em;line-height:.98;color:var(--ink);text-wrap:balance}.pf-contact .ct-split{display:grid;grid-template-columns:1fr;gap:clamp(32px,4vw,56px);padding-top:clamp(32px,4vw,56px)}.pf-contact .ct-aside{display:flex;flex-direction:column;gap:0}.pf-contact .ct-method{padding:20px 0;border-top:1px solid var(--rule)}.pf-contact .ct-method:first-child{border-top:0;padding-top:0}.pf-contact .ct-kick{margin:0 0 8px;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#647779}.pf-contact .ct-val{margin:0;font-size:16px;font-weight:500;color:var(--ink);word-break:break-word}.pf-contact a.ct-val{text-decoration:none}.pf-contact a.ct-val:hover{color:var(--accent)}.pf-contact .ct-note{margin:6px 0 0;font-size:13.5px;font-weight:300;line-height:1.6;color:var(--muted)}.pf-contact .ct-else{margin-top:auto;padding-top:32px;border-top:1px solid var(--rule)}.pf-contact .ct-socs{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:16px}.pf-contact .ct-socs a{display:inline-flex;color:var(--muted)}.pf-contact .ct-socs a:hover{color:var(--ink)}.pf-contact .ct-socs svg{width:19px;height:19px;fill:currentColor}.pf-contact .ct-form{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-lg);padding:clamp(24px,3.4vw,48px)}.pf-contact .ct-form-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:22px;border-bottom:1px solid var(--rule)}.pf-contact .ct-form-title{margin:0;font-size:clamp(1.35rem,2.6vw,1.9rem);font-weight:300;letter-spacing:-.025em;color:var(--ink)}.pf-contact .ct-req{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.pf-contact .ct-fields{display:flex;flex-direction:column;gap:24px;margin-top:24px}.pf-contact .ct-label{display:block;margin:0 0 8px;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#647779}.pf-contact .ct-input{width:100%;display:block;box-sizing:border-box;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:10px 0;font-family:inherit;font-size:16px;font-weight:300;color:var(--ink);outline:none;transition:border-color .2s ease}.pf-contact .ct-input::-moz-placeholder{color:#a9b6b7}.pf-contact .ct-input::placeholder{color:#a9b6b7}.pf-contact .ct-input:focus{border-bottom-color:var(--accent)}.pf-contact textarea.ct-input{resize:none;line-height:1.7;height:124px}.pf-contact .ct-next{padding:24px 0 0;margin-top:24px;border-top:1px solid var(--rule)}.pf-contact .ct-steps{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:16px}.pf-contact .ct-steps li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}.pf-contact .ct-steps b{display:block;font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.005em}.pf-contact .ct-steps span:not(.numchip){display:block;margin-top:3px;font-size:13.5px;font-weight:300;line-height:1.6;color:var(--muted)}.pf-contact .ct-send{display:inline-flex;align-items:center;gap:14px;margin-top:32px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:6px;padding:14px 24px;font-family:inherit;font-size:15px;font-weight:500;cursor:pointer;box-shadow:var(--sh-md);transition:all .2s ease}.pf-contact .ct-send:hover{background:transparent;color:var(--ink)}.pf-contact .ct-send svg{width:16px;height:16px}@media(min-width:1040px){.pf-contact .ct{min-height:100svh;display:flex;align-items:center}.pf-contact .ct>.shell{width:100%}.pf-contact .ct-title{font-size:clamp(2.2rem,3vw,2.7rem)}.pf-contact .ct-split{grid-template-columns:.72fr 1.28fr;-moz-column-gap:clamp(32px,4vw,64px);column-gap:clamp(32px,4vw,64px)}.pf-contact .ct-aside{height:100%}}.pf-contact .ct-input,.pf-contact .ct-send{line-height:normal}.pf-contact textarea.ct-input{line-height:1.7}.pf-contact .ct-head{position:relative;border-bottom:0}.pf-contact .ct-head:after{content:"";position:absolute;left:50%;bottom:0;width:100vw;max-width:100vw;height:1px;transform:translate(-50%);background:color-mix(in srgb,var(--ink) 13%,transparent);pointer-events:none}.pf-contact .op-head{display:block}.pf-contact .op-head>.eyebrow+*{margin-top:clamp(28px,4vw,44px);padding-top:clamp(28px,4vw,44px);border-top:1px solid color-mix(in srgb,var(--ink) 13%,transparent)}.pf-contact .op-cols{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,48px);align-items:start}.pf-contact .op-title{max-width:18ch}.pf-contact .op-aside{display:flex;flex-direction:column;gap:16px;min-width:0}.pf-contact .op-say{margin:0;max-width:52ch;font-size:clamp(.9375rem,1.5vw,1rem);font-weight:300;line-height:1.75;color:var(--soft)}@media(min-width:900px){.pf-contact .op-cols{grid-template-columns:1.08fr .92fr;gap:clamp(40px,4.5vw,72px)}}:root{--paper:#FCFCFD;--band:#EFF2F2;--wash:#E6EDED;--card:#FFFFFF;--inset:#F5F8F8;--ink:#0C2A2C;--body:#40575A;--soft:#5C7275;--muted:#647779;--rule:#DEE5E5;--rule-2:#E9EEEE;--accent:#1C464B;--lav:#928EA5;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.05 0 0 0 0 0.16 0 0 0 0 0.17 0 0 0 0.30 -0.14'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");--grid:repeating-linear-gradient(to right, rgba(28,70,75,.04) 0 1px, transparent 1px 32px), repeating-linear-gradient(to bottom, rgba(28,70,75,.032) 0 1px, transparent 1px 32px);--sh-sm:0 1px 2px rgba(12,42,44,.05);--sh-md:0 2px 5px rgba(12,42,44,.045), 0 14px 32px -12px rgba(12,42,44,.14);--sh-lg:0 4px 10px rgba(12,42,44,.05), 0 30px 64px -20px rgba(12,42,44,.2);--shell:1184px;--shell-wide:1376px}.pf-utility *{box-sizing:border-box}.pf-utility{scroll-behavior:smooth;margin:0;background:var(--paper);color:var(--body);font-family:Epilogue,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pf-utility img{max-width:100%;display:block}.pf-utility a{color:var(--accent);text-decoration:none}.pf-utility a:hover{color:var(--ink)}.pf-utility .textured{position:relative;isolation:isolate}.pf-utility .textured:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--grain);background-blend-mode:multiply;opacity:.9}.pf-utility .textured:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--grid)}.pf-utility .textured>*{position:relative;z-index:1}.pf-utility .shell{max-width:var(--shell);margin:0 auto;padding:0 48px}.pf-utility .shell-wide{max-width:var(--shell-wide);margin:0 auto;padding:0 48px}.pf-utility .mono{font-family:DM Mono,ui-monospace,Menlo,monospace}.pf-utility .eyebrow{display:inline-block;margin:0;padding:7px 12px 6px;background:var(--inset);border:1px solid var(--rule-2);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.pf-utility .eyebrow:before{content:none}.pf-utility h2.d{margin:0;font-size:60px;font-weight:300;letter-spacing:-.026em;line-height:.98;color:var(--ink);text-wrap:balance}.pf-utility h3.d{margin:0;font-size:48px;font-weight:300;letter-spacing:-.03em;line-height:1;color:var(--ink)}.pf-utility .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}.pf-utility .card{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-md)}.pf-utility .card-lg{background:var(--card);border:1px solid var(--rule);box-shadow:var(--sh-lg)}.pf-utility .inset{background:var(--inset);border:1px solid var(--rule-2)}.pf-utility .numchip{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:26px;padding:0 9px;background:var(--accent);color:#fff;font-size:12px;letter-spacing:.04em}.pf-utility .linkline{display:inline-flex;align-items:center;gap:11px;font-size:14px;font-weight:500;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:7px}@media(prefers-reduced-motion:reduce){.pf-utility *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.pf-utility .ext-i{width:12px;height:12px;flex-shrink:0;opacity:.85}.pf-utility .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 24px;font-size:15px;font-weight:500;transition:all .2s ease}.pf-utility .shell,.pf-utility .shell-wide{padding:0 20px}.pf-utility .sec{padding:clamp(56px,9vw,128px) 0}.pf-utility h2.d{font-size:clamp(1.75rem,6.4vw,3.75rem)}.pf-utility h3.d{font-size:clamp(1.6rem,5.6vw,3rem)}@media(min-width:600px){.pf-utility .shell,.pf-utility .shell-wide{padding:0 32px}}@media(min-width:900px){.pf-utility .shell,.pf-utility .shell-wide{padding:0 40px}}@media(min-width:1200px){.pf-utility .shell,.pf-utility .shell-wide{padding:0 48px}}:root{--nav-clear:128px}.pf-utility .ut-page{background:var(--paper);padding:var(--nav-clear) 0 clamp(56px,8vw,112px)}.pf-utility .ut-shell{width:100%;max-width:760px;margin:0 auto;padding:0 clamp(20px,5vw,32px)}.pf-utility .ut-back{margin-bottom:clamp(24px,4vw,40px)}.pf-utility .ut-back svg{width:16px;height:16px;transition:transform .2s ease}.pf-utility .ut-back:hover svg{transform:translate(-3px)}.pf-utility .ut-head{padding-bottom:clamp(36px,5vw,64px);border-bottom:1px solid var(--rule)}.pf-utility .ut-title{margin:16px 0 0;font-size:clamp(2.1rem,6vw,3.4rem);font-weight:300;letter-spacing:-.035em;line-height:1;color:var(--ink)}.pf-utility .ut-lead{margin:14px 0 0;font-size:clamp(1rem,1.7vw,1.1rem);font-weight:300;line-height:1.7;color:var(--soft);max-width:56ch}.pf-utility .ut-secs{display:flex;flex-direction:column}.pf-utility .ut-sec{padding:clamp(24px,3.4vw,40px) 0;border-bottom:1px solid var(--rule-2)}.pf-utility .ut-sec:last-child{border-bottom:0}.pf-utility .ut-h{margin:0 0 14px;font-size:1.02rem;font-weight:600;letter-spacing:-.005em;color:var(--ink)}.pf-utility .ut-sec p{margin:0 0 9px;font-size:14.5px;font-weight:300;line-height:1.8;color:var(--body)}.pf-utility .ut-sec p:last-child{margin-bottom:0}.pf-utility .ut-name{font-weight:500;color:var(--ink)}.pf-utility .ut-lbl{color:var(--muted)}.pf-utility .ut-sec a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--rule);transition:border-color .2s ease}.pf-utility .ut-sec a:hover{border-bottom-color:var(--accent)}.pf-utility .ut-sec a.brk{word-break:break-all}.pf-utility .nf{background:var(--paper);min-height:78svh;display:flex;align-items:center;padding:var(--nav-clear) 0 clamp(56px,8vw,112px)}.pf-utility .nf-in{text-align:center}.pf-utility .nf-code{margin:0;font-size:11px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--accent)}.pf-utility .nf-title{margin:20px 0 0;font-size:clamp(2.1rem,7vw,3.9rem);font-weight:300;letter-spacing:-.04em;line-height:1;color:var(--ink);text-wrap:balance}.pf-utility .nf-lead{margin:18px auto 0;max-width:44ch;font-size:clamp(1rem,1.8vw,1.12rem);font-weight:300;line-height:1.7;color:var(--soft)}.pf-utility .nf-btn{display:inline-flex;align-items:center;gap:12px;margin-top:32px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:6px;padding:14px 24px;font-family:inherit;font-size:15px;font-weight:500;text-decoration:none;box-shadow:var(--sh-md);transition:all .2s ease}.pf-utility .nf-btn:hover{background:transparent;color:var(--ink)}.pf-utility .nf-btn svg{width:16px;height:16px;transition:transform .2s ease}.pf-utility .nf-btn:hover svg{transform:translate(-3px)}.pf-utility button.linkline{line-height:normal}.pf-utility .ut-head{position:relative;border-bottom:0}.pf-utility .ut-head:after{content:"";position:absolute;left:50%;bottom:0;width:100vw;max-width:100vw;height:1px;transform:translate(-50%);background:color-mix(in srgb,var(--ink) 13%,transparent);pointer-events:none}.pf-utility .op-head{display:block}.pf-utility .op-head>.eyebrow+*{margin-top:clamp(28px,4vw,44px);padding-top:clamp(28px,4vw,44px);border-top:1px solid color-mix(in srgb,var(--ink) 13%,transparent)}.pf-utility .op-cols{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,48px);align-items:start}.pf-utility .op-title{max-width:18ch}.pf-utility .op-aside{display:flex;flex-direction:column;gap:16px;min-width:0}.pf-utility .op-say{margin:0;max-width:52ch;font-size:clamp(.9375rem,1.5vw,1rem);font-weight:300;line-height:1.75;color:var(--soft)}@media(min-width:900px){.pf-utility .op-cols{grid-template-columns:1.08fr .92fr;gap:clamp(40px,4.5vw,72px)}}
