*,: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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.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))}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.border{border-width:1px}.font-display{font-family:Space Grotesk,sans-serif}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.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)}.grayscale{--tw-grayscale: grayscale(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)}.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-filter{-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}:root{--black: #0A0A0A;--white: #F7F7F5;--paper: #1A1A1A;--ink-mute: #9A9A96;--ink-faint: rgba(247, 247, 245, .35);--line: rgba(247, 247, 245, .12);--radius-card: 18px;--radius-pill: 999px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}body{margin:0;font-family:var(--font-body);font-weight:400;background-color:#141414;color:var(--white);overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;cursor:none}@media (max-width: 768px){body{cursor:auto}}a,button,[role=button]{cursor:none}@media (max-width: 768px){a,button,[role=button]{cursor:pointer}}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:500;letter-spacing:-.02em;margin:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:#f7f7f524;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#f7f7f54d}::-webkit-scrollbar-track{background:transparent}::-moz-selection{background:var(--white);color:var(--black)}::selection{background:var(--white);color:var(--black)}.grain{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.1;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.96  0 0 0 0 0.96  0 0 0 0 0.96  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:160px 160px;mix-blend-mode:overlay}.cursor{position:fixed;top:0;left:0;width:16px;height:16px;border-radius:50%;background:var(--white);pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .2s var(--ease-out),height .2s var(--ease-out),background .2s var(--ease-out),opacity .2s ease;mix-blend-mode:difference;opacity:0}.cursor.is-ready{opacity:1}.cursor.is-hover{width:40px;height:40px;background:var(--white);mix-blend-mode:normal}@media (max-width: 768px){.cursor{display:none}}.logo-mark{display:inline-flex;align-items:center;justify-content:center;background:var(--white);color:var(--black);font-family:var(--font-display);font-weight:500;border-radius:4px;letter-spacing:-.02em;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1}.page-grain{position:relative;min-height:100vh;padding:0 clamp(20px,4vw,56px) 56px;z-index:1}.page-grain>.hero:first-child{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.section-card{position:relative;background:var(--black);border-radius:var(--radius-card);padding:clamp(36px,5vw,80px) clamp(28px,4vw,64px);box-shadow:0 20px 50px #00000059;margin-bottom:48px;overflow:hidden}.section-card:last-child{margin-bottom:0}.section-card.hero,.section-card.hero--about{padding:0;border-top-left-radius:0;border-top-right-radius:0}.nav-shell{position:fixed;top:0;left:0;right:0;z-index:100;padding:28px clamp(20px,4vw,56px);display:flex;align-items:center;justify-content:space-between;pointer-events:none}.nav-shell>*{pointer-events:auto}.nav-links{display:flex;align-items:center;gap:36px;font-family:var(--font-display);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase}.nav-link{color:var(--white);text-decoration:none;transition:opacity .2s ease;position:relative}.nav-link:hover{opacity:.65}.nav-link.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--white)}@media (max-width: 640px){.nav-links{gap:20px;font-size:11px}}.edge-label{position:absolute;font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);writing-mode:vertical-rl;transform:rotate(180deg)}.edge-label--left{left:12px;top:50%;transform:translateY(-50%) rotate(180deg)}.edge-label--right{right:12px;top:50%;transform:translateY(-50%) rotate(180deg)}@media (max-width: 900px){.edge-label{display:none}}.hero{height:100vh;height:100dvh;min-height:560px;max-height:1080px;display:flex;flex-direction:column;justify-content:space-between;position:relative;background:var(--black);border-radius:0 0 var(--radius-card) var(--radius-card);overflow:hidden;isolation:isolate}@media (max-width: 760px){.hero{min-height:600px}}.hero-photo{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/assets/hero_portrait-CAxNTYBP.png);background-size:cover;background-position:right center;filter:grayscale(100%) contrast(1.08) brightness(.78);z-index:0;transform:scale(1.05)}.hero-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#0a0a0aeb,#0a0a0a8c 35%,#0a0a0a40 60%,#0a0a0a8c),linear-gradient(180deg,#0a0a0a4d,#0a0a0a1a 40%,#0a0a0acc)}.hero-inner{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:96px 24px}.hero--about{height:100vh;height:100dvh;min-height:560px;max-height:1080px;display:flex;flex-direction:column;justify-content:center;position:relative;background:var(--black);border-radius:0 0 var(--radius-card) var(--radius-card);overflow:hidden;isolation:isolate;text-align:left}@media (max-width: 760px){.hero--about{min-height:600px}}.hero--about .hero-photo-about{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/assets/about_portrait-fmO5mkuI.png);background-size:cover;background-position:88% 50%;filter:grayscale(100%) contrast(1.05) brightness(.78);z-index:0;transform:scale(1.05)}.hero--about .hero-photo-about:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 70% at 85% 25%,rgba(247,247,245,.18) 0%,rgba(247,247,245,.05) 35%,transparent 65%);z-index:1;pointer-events:none}.hero--about .hero-photo-about:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#0a0a0ad9,#0a0a0a73 30%,#0a0a0a26 55%,#0a0a0a73),linear-gradient(180deg,#0a0a0a33,#0a0a0a0d 40%,#0a0a0abf);z-index:2}.hero--about .hero-inner--about{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:96px clamp(24px,6vw,80px);max-width:640px}.hero--about .hero-eyebrow-about{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 14px;opacity:0;animation:hero-fade-up .8s var(--ease-out) .2s forwards}.hero--about h1{font-family:var(--font-display);font-weight:500;font-size:clamp(36px,6vw,72px);line-height:1.05;letter-spacing:-.03em;color:var(--white);margin:0 0 18px;text-transform:none;opacity:0;animation:hero-fade-up .9s var(--ease-out) .35s forwards}.hero--about p.lede{font-family:var(--font-body);font-size:clamp(14px,1.4vw,17px);line-height:1.7;color:var(--ink-mute);margin:0;max-width:540px;opacity:0;animation:hero-fade-up .8s var(--ease-out) .55s forwards}.hero--about .signoff{margin-top:28px;font-family:var(--font-display);font-weight:500;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--white);opacity:0;animation:hero-fade-up .8s var(--ease-out) .75s forwards}.hero-eyebrow{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:16px;opacity:0;animation:hero-fade-up .8s var(--ease-out) .2s forwards}.hero-name{font-family:var(--font-display);font-weight:500;font-size:clamp(40px,7.5vw,88px);line-height:1.05;letter-spacing:-.03em;color:var(--white);margin:0;text-transform:none;opacity:0;animation:hero-fade-up .9s var(--ease-out) .35s forwards}.hero-role{font-family:var(--font-body);font-weight:400;font-size:clamp(14px,1.4vw,17px);letter-spacing:0;line-height:1.7;text-transform:none;color:var(--ink-mute);margin-top:20px;max-width:540px;opacity:0;animation:hero-fade-up .8s var(--ease-out) .55s forwards}@keyframes hero-fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.hero-socials{position:absolute;left:24px;bottom:28px;z-index:1;display:flex;flex-direction:column;gap:14px;font-family:var(--font-display);font-weight:500;font-size:12px;color:var(--white)}.hero-socials a{color:inherit;text-decoration:none;transition:opacity .2s ease}.hero-socials a:hover{opacity:.6}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:14px 32px;border-radius:var(--radius-pill);border:1px solid var(--white);background:transparent;color:var(--white);text-decoration:none;cursor:pointer;transition:background .25s var(--ease-out),color .25s var(--ease-out)}.btn:hover{background:var(--white);color:var(--black)}.portfolio-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px}@media (max-width: 900px){.portfolio-row{grid-template-columns:1fr}}.project-card{aspect-ratio:3/4;border-radius:12px;background:#050505;position:relative;overflow:hidden;filter:grayscale(100%) contrast(1.05);display:flex;align-items:center;justify-content:center}.project-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.4) 100%)}.project-card .label{position:absolute;bottom:14px;left:14px;font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--white)}.contact-grid{display:grid;grid-template-columns:3fr 2fr;gap:56px;margin-top:16px}@media (max-width: 900px){.contact-grid{grid-template-columns:1fr;gap:48px}}.form{display:flex;flex-direction:column;gap:20px}.field{background:transparent;border:none;border-bottom:1px solid var(--line);color:var(--white);font-family:var(--font-body);font-size:14px;padding:12px 0;outline:none;transition:border-color .25s ease;width:100%;box-sizing:border-box;display:block}.field::-moz-placeholder{color:var(--ink-faint)}.field::placeholder{color:var(--ink-faint)}.field:focus{border-color:var(--white)}textarea.field{resize:vertical;min-height:80px}.btn--solid{background:var(--white);color:var(--black);border-color:var(--white);margin-top:8px;align-self:flex-start}.btn--solid:hover{background:transparent;color:var(--white)}.thanks{text-align:center;font-family:var(--font-display);font-weight:500;font-size:clamp(28px,4vw,44px);letter-spacing:-.01em;color:var(--white);margin-top:16px}.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:translateY(0)}.stagger>.reveal{transition-delay:calc(var(--i, 0) * 80ms)}@keyframes page-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-fade{animation:page-fade .36s var(--ease-out) both}.ambient-graphics{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.ambient-svg{display:block}.ambient-drift{transform-origin:center;animation:ambient-drift 28s linear infinite}@keyframes ambient-drift{0%{transform:translate3d(-6%,-4%,0)}to{transform:translate3d(6%,4%,0)}}.page-hero{padding:clamp(40px,6vw,96px) 0 clamp(24px,4vw,48px)}.page-hero .eyebrow{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 14px}.page-hero h1{font-family:var(--font-display);font-weight:500;font-size:clamp(40px,7vw,84px);line-height:1.02;letter-spacing:-.03em;color:var(--white);margin:0 0 18px}.page-hero p.lede{font-family:var(--font-body);font-size:clamp(14px,1.4vw,17px);line-height:1.7;color:var(--ink-mute);margin:0;max-width:640px}.btn-row{display:inline-flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:28px}.btn--ghost{background:transparent;color:var(--white);border:1px solid var(--line)}.btn--ghost:hover{background:#ffffff0f;color:var(--white)}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:32px 0;margin:40px 0 8px}@media (max-width: 760px){.stat-row{grid-template-columns:repeat(2,1fr);gap:18px}}.stat{display:flex;flex-direction:column;gap:6px}.stat-num{font-family:var(--font-display);font-weight:500;font-size:clamp(40px,5.5vw,64px);line-height:1;letter-spacing:-.03em;color:var(--white)}.stat-label{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 32px}.chip{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;padding:8px 14px;border-radius:var(--radius-pill);border:1px solid var(--line);background:transparent;color:var(--ink-mute);cursor:pointer;transition:all .2s var(--ease-out)}.chip:hover{color:var(--white);border-color:#f7f7f566}.chip.is-active{background:var(--white);color:var(--black);border-color:var(--white)}.tag{display:inline-block;font-family:var(--font-display);font-weight:500;font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:5px 10px;border-radius:var(--radius-pill);border:1px solid var(--line);color:var(--ink-mute);background:transparent}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}@media (max-width: 760px){.project-grid{grid-template-columns:1fr}}.project-card-v2{display:flex;flex-direction:column;border-radius:12px;background:#ffffff06;border:1px solid var(--line);overflow:hidden;transition:transform .35s var(--ease-out),border-color .35s var(--ease-out)}.project-card-v2:hover{transform:translateY(-3px);border-color:#f7f7f552}.project-card-v2 .thumb{aspect-ratio:16/9;background:#050505;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.project-card-v2 .thumb:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 30% 30%,rgba(247,247,245,.07),transparent 60%)}.project-card-v2 .thumb .label{position:absolute;bottom:12px;left:14px;font-family:var(--font-display);font-weight:500;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--white)}.project-card-v2 .body{padding:22px;display:flex;flex-direction:column;gap:12px}.project-card-v2 h3{font-family:var(--font-display);font-weight:500;font-size:20px;letter-spacing:-.01em;color:var(--white);margin:0}.project-card-v2 .summary{font-family:var(--font-body);font-size:14px;line-height:1.6;color:var(--ink-mute);margin:0}.project-card-v2 .stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.project-card-v2 .meta{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:12px;border-top:1px solid var(--line)}.project-card-v2 .status{font-family:var(--font-display);font-weight:500;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}.project-card-v2 .read{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--white);text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:gap .2s var(--ease-out)}.project-card-v2 .read:hover{gap:10px}.blog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}@media (max-width: 760px){.blog-grid{grid-template-columns:1fr}}.blog-card{display:flex;flex-direction:column;border-radius:12px;background:#ffffff06;border:1px solid var(--line);padding:28px;gap:14px;transition:transform .35s var(--ease-out),border-color .35s var(--ease-out)}.blog-card:hover{transform:translateY(-3px);border-color:#f7f7f552}.blog-card .meta{display:flex;gap:12px;align-items:center;font-family:var(--font-display);font-weight:500;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}.blog-card .meta .dot{opacity:.5}.blog-card h3{font-family:var(--font-display);font-weight:500;font-size:22px;letter-spacing:-.01em;line-height:1.3;color:var(--white);margin:0}.blog-card .summary{font-family:var(--font-body);font-size:14px;line-height:1.6;color:var(--ink-mute);margin:0}.blog-card .read{margin-top:auto;font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--white);text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:gap .2s var(--ease-out)}.blog-card .read:hover{gap:10px}.identity{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:56px}@media (max-width: 760px){.identity{grid-template-columns:1fr}}.identity-row{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line)}.identity-row:last-child{border-bottom:none}.identity-row>.k{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint)}.identity-row>.v{font-family:var(--font-body);font-size:14px;color:var(--white);text-align:right}.identity-row>.v a{color:inherit;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:1px}.values{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:32px}@media (max-width: 760px){.values{grid-template-columns:1fr}}.value{padding:26px;border-radius:12px;background:#ffffff06;border:1px solid var(--line);display:flex;flex-direction:column;gap:12px}.value .num{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);letter-spacing:.1em}.value h4{font-family:var(--font-display);font-weight:500;font-size:22px;letter-spacing:-.01em;color:var(--white);margin:0}.value p{font-family:var(--font-body);font-size:14px;line-height:1.65;color:var(--ink-mute);margin:0}.cta-band{margin-top:56px;padding:clamp(40px,6vw,72px) clamp(28px,4vw,56px);border-radius:var(--radius-card);background:linear-gradient(180deg,#ffffff0d,#ffffff04);border:1px solid var(--line);text-align:center}.cta-band h2{font-family:var(--font-display);font-weight:500;font-size:clamp(28px,4vw,48px);letter-spacing:-.02em;color:var(--white);margin:0 0 14px;line-height:1.15}.cta-band p{font-family:var(--font-body);font-size:14px;line-height:1.7;color:var(--ink-mute);margin:0 auto 24px;max-width:480px}.cta-band .btn-row{justify-content:center;margin-top:24px}.section-header{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:32px}.section-header .eyebrow{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin:0}.section-header h2{font-family:var(--font-display);font-weight:500;font-size:clamp(32px,4.5vw,52px);line-height:1.1;letter-spacing:-.02em;color:var(--white);margin:0}.section-header p{font-family:var(--font-body);font-size:14px;line-height:1.7;color:var(--ink-mute);margin:0;max-width:560px}.skill-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}@media (max-width: 900px){.skill-groups{grid-template-columns:1fr}}.skill-card{padding:28px;border-radius:12px;background:#ffffff06;border:1px solid var(--line);display:flex;flex-direction:column;gap:14px;min-height:280px}.skill-card .icon-box{width:44px;height:44px;border-radius:8px;background:var(--white);color:var(--black);display:flex;align-items:center;justify-content:center}.skill-card h3{font-family:var(--font-display);font-weight:500;font-size:22px;letter-spacing:-.01em;color:var(--white);margin:0}.skill-card .blurb{font-family:var(--font-body);font-size:14px;line-height:1.65;color:var(--ink-mute);margin:0}.skill-card .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:12px}.detail-body{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;margin-top:32px}@media (max-width: 900px){.detail-body{grid-template-columns:1fr}}.detail-body h3{font-family:var(--font-display);font-weight:500;font-size:14px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 12px}.detail-body p{font-family:var(--font-body);font-size:15px;line-height:1.75;color:var(--white);margin:0 0 24px}.detail-body ol{list-style:none;padding:0;margin:0;counter-reset:step;display:flex;flex-direction:column;gap:14px}.detail-body ol li{counter-increment:step;display:flex;gap:16px;font-family:var(--font-body);font-size:14px;line-height:1.65;color:var(--ink-mute)}.detail-body ol li:before{content:counter(step,decimal-leading-zero);font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);flex-shrink:0;padding-top:2px}.post-cover{width:100%;aspect-ratio:21/9;border-radius:12px;background:#050505;position:relative;overflow:hidden;margin:28px 0 40px;display:flex;align-items:center;justify-content:center}.post-cover:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 30% 30%,rgba(247,247,245,.06),transparent 60%)}.post-content{max-width:680px;margin:0 auto;font-family:var(--font-body);font-size:17px;line-height:1.85;color:var(--white)}.post-content p{margin:0 0 1.4em}.post-content h2{font-family:var(--font-display);font-weight:500;font-size:28px;letter-spacing:-.01em;color:var(--white);margin:1.6em 0 .6em}.post-content blockquote{border-left:2px solid var(--line);padding:4px 0 4px 20px;color:var(--ink-mute);font-style:italic;margin:1.5em 0}.post-signoff{margin:40px 0;text-align:center;font-family:var(--font-display);font-weight:500;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--white)}.post-author{display:flex;align-items:center;gap:14px;padding:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:40px 0}.post-author .who{font-family:var(--font-body);font-size:13px;color:var(--ink-mute);line-height:1.5}.post-author .who strong{color:var(--white);font-weight:500}.social-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.social-card{padding:18px;border-radius:10px;background:#ffffff06;border:1px solid var(--line);display:flex;gap:14px;align-items:flex-start}.social-card .platform{width:36px;height:36px;border-radius:8px;background:#ffffff0f;display:flex;align-items:center;justify-content:center;flex-shrink:0}.social-card .text{font-family:var(--font-body);font-size:14px;line-height:1.55;color:var(--white);margin:0}.social-card .text small{display:block;margin-top:6px;font-family:var(--font-display);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}.footer{margin-top:64px;padding:48px clamp(20px,4vw,56px) 36px;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;align-items:start}@media (max-width: 760px){.footer-grid{grid-template-columns:1fr;gap:32px}}.footer .brand{display:flex;align-items:center;gap:14px}.footer .brand .mark{flex-shrink:0}.footer .brand-name{font-family:var(--font-display);font-weight:500;font-size:16px;color:var(--white)}.footer .tagline{margin:18px 0 0;font-family:var(--font-display);font-weight:500;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute)}.footer h5{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 16px}.footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.footer ul a{font-family:var(--font-body);font-size:14px;color:var(--white);text-decoration:none;transition:opacity .2s ease}.footer ul a:hover{opacity:.65}.footer .social-row{display:flex;gap:12px}.footer .social-row a{width:38px;height:38px;border-radius:8px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--white);text-decoration:none;transition:background .2s ease,border-color .2s ease}.footer .social-row a:hover{background:#ffffff0f;border-color:#f7f7f566}.footer-bottom{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}@media (max-width: 560px){.footer-bottom{flex-direction:column;gap:8px;align-items:flex-start}}.admin-shell{max-width:1100px;margin:0 auto}.admin-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:32px}.admin-tab{font-family:var(--font-display);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;background:transparent;border:none;color:var(--ink-mute);padding:14px 18px;cursor:pointer;position:relative;transition:color .2s ease}.admin-tab:hover,.admin-tab.is-active{color:var(--white)}.admin-tab.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--white)}.admin-card{padding:24px;border-radius:12px;background:#ffffff06;border:1px solid var(--line);margin-bottom:24px}.admin-row{display:grid;grid-template-columns:1fr 110px 140px;gap:16px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.admin-row:last-child{border-bottom:none}.admin-row .name{font-family:var(--font-display);font-weight:500;color:var(--white);font-size:14px}.admin-row .meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint)}.admin-row .actions{display:flex;gap:8px;justify-content:flex-end}.admin-row .icon-btn{width:32px;height:32px;border-radius:8px;background:transparent;border:1px solid var(--line);color:var(--white);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease}.admin-row .icon-btn:hover{background:#ffffff0f}.admin-row .icon-btn.danger:hover{background:#ff5a5a1f;border-color:#ff5a5a80}.admin-form{display:flex;flex-direction:column;gap:18px}.admin-form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 760px){.admin-form .row{grid-template-columns:1fr}}.admin-form label{display:flex;flex-direction:column;gap:8px;font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}.admin-form input,.admin-form textarea,.admin-form select{font-family:var(--font-body);font-size:14px;color:var(--white);background:transparent;border:1px solid var(--line);border-radius:8px;padding:12px 14px;outline:none;transition:border-color .2s ease}.admin-form input:focus,.admin-form textarea:focus,.admin-form select:focus{border-color:var(--white)}.admin-form textarea{min-height:120px;resize:vertical}.admin-form .steps{display:flex;flex-direction:column;gap:10px}.admin-form .steps .step{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center}.admin-form .steps .step span{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);text-align:center}.admin-form .steps .step input{padding:8px 10px;font-size:13px}.admin-form .steps .step button{background:transparent;border:1px solid var(--line);color:var(--ink-faint);border-radius:6px;width:28px;height:28px;cursor:pointer;display:flex;align-items:center;justify-content:center}.admin-form .steps .step button:hover{color:var(--white);border-color:#f7f7f566}.admin-form .actions{display:flex;gap:12px;margin-top:8px}.admin-form .add-step{align-self:flex-start;font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);background:transparent;border:1px dashed var(--line);border-radius:6px;padding:8px 12px;cursor:pointer}.admin-form .add-step:hover{color:var(--white);border-color:#f7f7f566}.admin-empty{padding:60px 20px;text-align:center;font-family:var(--font-body);font-size:14px;color:var(--ink-mute);border:1px dashed var(--line);border-radius:12px}.admin-gate{max-width:380px;margin:80px auto;padding:40px 32px;border-radius:14px;background:#ffffff06;border:1px solid var(--line);text-align:center}.admin-gate h2{font-family:var(--font-display);font-weight:500;font-size:28px;letter-spacing:-.01em;color:var(--white);margin:0 0 8px}.admin-gate p{font-family:var(--font-body);font-size:13px;color:var(--ink-mute);margin:0 0 24px}.admin-gate input{width:100%;padding:12px 14px;border-radius:8px;background:transparent;border:1px solid var(--line);color:var(--white);font-family:var(--font-body);font-size:14px;outline:none;margin-bottom:16px;text-align:center}.admin-gate input:focus{border-color:var(--white)}.admin-gate .err{font-family:var(--font-body);font-size:12px;color:#ff9a9a;margin:-8px 0 12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0a0a0ad9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px}.modal{max-width:420px;width:100%;padding:32px;background:var(--black);border:1px solid var(--line);border-radius:14px;text-align:center}.modal h3{font-family:var(--font-display);font-weight:500;font-size:22px;letter-spacing:-.01em;color:var(--white);margin:0 0 12px}.modal p{font-family:var(--font-body);font-size:14px;line-height:1.6;color:var(--ink-mute);margin:0 0 24px}.nav-shell.scrolled{background:#0a0a0ab8;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav-cta{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:10px 20px;border-radius:var(--radius-pill);background:var(--white);color:var(--black);text-decoration:none;transition:opacity .2s ease;margin-left:12px}.nav-cta:hover{opacity:.85}@media (max-width: 640px){.nav-cta{display:none}}.field-select,.admin-form select,.select-wrap>select{appearance:none;-webkit-appearance:none;-moz-appearance:none}.select-wrap{position:relative;display:block;width:100%}.select-wrap>select{width:100%;padding-right:36px;cursor:pointer}.select-wrap:after{content:"";position:absolute;right:4px;top:50%;width:10px;height:10px;transform:translateY(-50%) rotate(45deg);border-right:1px solid var(--ink-faint);border-bottom:1px solid var(--ink-faint);pointer-events:none;transition:border-color .2s var(--ease-out)}.select-wrap:hover:after,.select-wrap:focus-within:after{border-color:var(--white)}.field-select{font-family:var(--font-body);font-size:14px;color:var(--white);background:transparent;border:none;border-bottom:1px solid var(--line);border-radius:0;padding:12px 36px 12px 0;outline:none;transition:border-color .25s ease;cursor:pointer;width:100%;box-sizing:border-box;display:block}.field-select:hover{border-color:#f7f7f573}.field-select:focus{border-color:var(--white)}.admin-form select{font-family:var(--font-display);font-weight:500;font-size:13px;letter-spacing:.04em;color:var(--white);background:#ffffff06;border:1px solid var(--line);border-radius:8px;padding:10px 36px 10px 14px;outline:none;transition:border-color .2s ease,background .2s ease;cursor:pointer;width:100%;box-sizing:border-box;display:block}.admin-form select:hover{background:#ffffff0d;border-color:#f7f7f573}.admin-form select:focus{border-color:var(--white);background:#ffffff0f}select option{background:#0a0a0a;color:#f7f7f5;font-family:var(--font-body);font-size:14px;padding:6px 8px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0a0a0adb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;animation:modal-backdrop-in .22s var(--ease-out) both}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}.modal{position:relative;max-width:420px;width:100%;padding:36px 32px 32px;background:var(--black);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 80px #0000008c;text-align:center;animation:modal-rise .32s var(--ease-out) both}@keyframes modal-rise{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.modal .modal-eyebrow{display:inline-block;font-family:var(--font-display);font-weight:500;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);padding:5px 10px;border:1px solid var(--line);border-radius:var(--radius-pill);margin-bottom:16px}.modal h3{font-family:var(--font-display);font-weight:500;font-size:22px;letter-spacing:-.01em;color:var(--white);margin:0 0 12px;line-height:1.25}.modal p{font-family:var(--font-body);font-size:14px;line-height:1.65;color:var(--ink-mute);margin:0 0 28px}.modal .actions{display:flex;gap:12px;justify-content:center}.modal .actions .btn--solid.danger,.modal .actions .btn--solid[data-danger=true]{border-color:#ff5a5a8c}.modal .actions .btn--solid.danger:hover,.modal .actions .btn--solid[data-danger=true]:hover{background:#ff5a5aeb;color:var(--white);border-color:#ff5a5aeb}.project-cover-section{position:relative;width:100%;aspect-ratio:16/9;margin-bottom:24px;background:#050505;border-radius:var(--radius-card);overflow:hidden;border:1px solid var(--line);isolation:isolate}.project-cover-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;filter:grayscale(100%) contrast(1.05) brightness(.85)}.project-cover-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:radial-gradient(circle at 30% 30%,rgba(247,247,245,.06),transparent 60%),#050505}.project-cover-placeholder .label{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint)}.project-header{padding:0 0 16px}.project-header h1{font-family:var(--font-display);font-weight:500;font-size:clamp(40px,6vw,72px);line-height:1.05;letter-spacing:-.03em;color:var(--white);margin:0 0 16px;text-transform:none}.project-header .lede{font-family:var(--font-body);font-size:clamp(15px,1.5vw,18px);line-height:1.7;color:var(--ink-mute);margin:0 0 24px;max-width:640px}.project-meta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}.status-pill{font-family:var(--font-display);font-weight:500;font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:6px 12px;border-radius:var(--radius-pill);border:1px solid var(--line);color:var(--ink-mute)}.status-pill.status-draft{color:var(--ink-faint);border-color:#f7f7f50f}.status-pill.status-in-progress{color:var(--white);border-color:#f7f7f573}.status-pill.status-published{background:var(--white);color:var(--black);border-color:var(--white)}.btn--live{padding:10px 18px;font-size:10px}.project-stack-row{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:32px;border-bottom:1px solid var(--line);margin-bottom:40px}.project-section{margin-bottom:56px}.section-label{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 18px}.section-body{font-family:var(--font-body);font-size:clamp(15px,1.4vw,17px);line-height:1.75;color:var(--white);margin:0;max-width:720px}.project-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:28px}.project-steps li{display:grid;grid-template-columns:64px 1fr;gap:24px;align-items:start}.project-steps .step-number{font-family:var(--font-display);font-weight:500;font-size:clamp(36px,4vw,48px);line-height:1;letter-spacing:-.03em;color:var(--ink-faint);border-top:1px solid var(--line);padding-top:6px}.project-steps .step-title{font-family:var(--font-display);font-weight:500;font-size:clamp(20px,2vw,24px);letter-spacing:-.01em;color:var(--white);margin:0 0 8px}.project-steps .step-desc{font-family:var(--font-body);font-size:15px;line-height:1.7;color:var(--ink-mute);margin:0;max-width:640px}.project-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media (max-width: 760px){.project-gallery{grid-template-columns:1fr}}.gallery-tile{border:none;padding:0;background:#050505;border-radius:10px;overflow:hidden;aspect-ratio:16/10;cursor:pointer}.gallery-tile img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;filter:grayscale(100%) contrast(1.05) brightness(.9);transition:transform .4s var(--ease-out),filter .4s var(--ease-out)}.gallery-tile:hover img{transform:scale(1.03);filter:grayscale(100%) contrast(1.05) brightness(1)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#0a0a0af0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:40px;animation:lightbox-in .22s var(--ease-out) both}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox-img{max-width:92vw;max-height:88vh;-o-object-fit:contain;object-fit:contain;border-radius:8px;filter:grayscale(100%) contrast(1.05)}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;background:#ffffff0f;border:1px solid var(--line);color:var(--white);width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease}.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:#ffffff1f}.lightbox-close{top:20px;right:20px}.lightbox-prev{left:20px;top:50%;transform:translateY(-50%)}.lightbox-next{right:20px;top:50%;transform:translateY(-50%)}.lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);letter-spacing:.1em}.card-badge{position:absolute;top:12px;right:12px;font-family:var(--font-display);font-weight:500;font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:5px 10px;border-radius:var(--radius-pill);background:#0a0a0abf;color:var(--white);border:1px solid rgba(247,247,245,.32);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.admin-table{border:1px solid var(--line);border-radius:10px;overflow:hidden}.admin-table-head,.admin-table-row{display:grid;grid-template-columns:1.4fr 130px 130px 140px;gap:16px;align-items:center;padding:14px 18px}.admin-table-head{font-family:var(--font-display);font-weight:500;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);background:#ffffff05;border-bottom:1px solid var(--line)}.admin-table-row{border-bottom:1px solid var(--line)}.admin-table-row:last-child{border-bottom:none}.admin-table-row .row-name{display:flex;flex-direction:column;gap:2px;min-width:0}.admin-table-row .row-name .name{font-family:var(--font-display);font-weight:500;color:var(--white);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-table-row .row-name .meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);letter-spacing:0}.admin-table-row .meta{font-family:var(--font-mono);font-size:12px;color:var(--ink-mute)}.admin-table-row .actions{display:flex;gap:8px;justify-content:flex-end}.admin-table-head .actions-head{text-align:right}@media (max-width: 760px){.admin-table-head{display:none}.admin-table-row{grid-template-columns:1fr;gap:8px;padding:18px}.admin-table-row .actions{justify-content:flex-start}}.save-flash{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:8px 14px;border-radius:var(--radius-pill);background:#ffffff0d;border:1px solid rgba(247,247,245,.32);font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--white)}.form-error{padding:12px 14px;border-radius:8px;background:#ff5a5a1a;border:1px solid rgba(255,90,90,.4);color:#ff9a9a;font-family:var(--font-body);font-size:13px}.image-picker{display:flex;flex-wrap:wrap;gap:12px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.image-thumb{position:relative;aspect-ratio:16/10;border-radius:8px;overflow:hidden;background:#050505;border:1px solid var(--line)}.image-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.image-remove,.image-actions{position:absolute;background:#0a0a0ac7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--line);border-radius:6px;color:var(--white);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.image-remove{top:6px;right:6px;width:24px;height:24px}.image-actions{bottom:6px;right:6px;display:flex;gap:4px;padding:2px}.image-actions button{width:22px;height:22px;border-radius:4px;border:none;background:transparent;color:var(--white);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.image-actions button:hover{background:#ffffff1f}.image-actions button:disabled{opacity:.35;cursor:not-allowed}.image-upload{width:100%;min-height:96px;padding:16px;border:1px dashed var(--line);border-radius:8px;background:transparent;color:var(--ink-mute);font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .2s var(--ease-out)}.image-upload:hover{color:var(--white);border-color:#f7f7f566}.image-upload--tile{aspect-ratio:16/10;min-height:0}.image-upload:disabled{opacity:.5;cursor:not-allowed}.block-editor{display:flex;flex-direction:column;gap:14px}.block-row{background:#ffffff06;border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px}.block-row[data-type=h2],.block-row[data-type=quote]{background:#ffffff0a}.block-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.block-type-select{font-family:var(--font-display);font-weight:500;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--white);background:#ffffff0d;border:1px solid var(--line);border-radius:6px;padding:6px 10px;outline:none;cursor:pointer}.block-moves{display:inline-flex;gap:4px}.block-moves button{width:26px;height:26px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--ink-faint);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color .2s ease,border-color .2s ease}.block-moves button:hover:not(:disabled){color:var(--white);border-color:#f7f7f566}.block-moves button:disabled{opacity:.3;cursor:not-allowed}.block-content textarea{width:100%;font-family:var(--font-body);font-size:14px;line-height:1.65;color:var(--white);background:transparent;border:1px solid var(--line);border-radius:6px;padding:10px 12px;outline:none;resize:vertical}.block-content textarea:focus{border-color:var(--white)}.block-content textarea.is-heading{font-family:var(--font-display);font-weight:500;font-size:20px;letter-spacing:-.01em;line-height:1.3}.block-list{display:flex;flex-direction:column;gap:8px}.block-list-row{display:grid;grid-template-columns:16px 1fr 26px;gap:8px;align-items:center}.block-list-row .bullet{color:var(--ink-faint);font-size:18px;text-align:center;line-height:1}.block-list-row input{font-family:var(--font-body);font-size:14px;color:var(--white);background:transparent;border:1px solid var(--line);border-radius:6px;padding:8px 10px;outline:none}.block-list-row input:focus{border-color:var(--white)}.block-list-row button{width:26px;height:26px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--ink-faint);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.block-list-row button:hover{color:var(--white);border-color:#f7f7f566}.block-add-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.admin-form .steps .step--rich{display:grid;grid-template-columns:28px 1fr 1fr 90px;gap:10px;align-items:start}.admin-form .steps .step--rich>span{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);text-align:center;padding-top:10px}.admin-form .steps .step--rich input,.admin-form .steps .step--rich textarea{padding:10px 12px;font-size:13px;font-family:var(--font-body);color:var(--white);background:transparent;border:1px solid var(--line);border-radius:6px;outline:none}.admin-form .steps .step--rich input:focus,.admin-form .steps .step--rich textarea:focus{border-color:var(--white)}.admin-form .steps .step--rich textarea{resize:vertical;min-height:40px}.admin-form .steps .step--rich .step-actions{display:flex;flex-direction:column;gap:4px}.admin-form .steps .step--rich .step-actions button{width:26px;height:26px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--ink-faint);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.admin-form .steps .step--rich .step-actions button:hover:not(:disabled){color:var(--white);border-color:#f7f7f566}.admin-form .steps .step--rich .step-actions button:disabled{opacity:.3;cursor:not-allowed}@media (max-width: 760px){.admin-form .steps .step--rich{grid-template-columns:1fr}.admin-form .steps .step--rich>span{text-align:left}}.gate-warning{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--radius-pill);background:#ffaa3c1a;border:1px solid rgba(255,170,60,.4);color:#ffd596;font-family:var(--font-body);font-size:12px;line-height:1.5;margin-bottom:18px}.gate-warning svg{flex-shrink:0}.admin-gate>form{display:flex;flex-direction:column}.admin-gate input{margin-bottom:12px}.admin-gate input:last-of-type{margin-bottom:12px}.admin-gate .err{margin-bottom:12px}@media (max-width: 760px){.hero-inner{padding:88px 20px}.hero-inner .btn-row{gap:10px}.hero-inner .btn-row .btn{padding:12px 24px;font-size:10px}}@media (max-width: 480px){.hero-inner{padding:80px 18px 84px}.hero-socials{position:static;flex-direction:row;gap:18px;margin-top:18px;justify-content:center}}@media (max-width: 760px){.hero--about .hero-inner--about{padding:88px clamp(20px,6vw,48px)}}@media (max-width: 480px){.hero--about .hero-inner--about{padding:80px 20px}}@media (max-width: 380px){.nav-wordmark{display:none}}@media (max-width: 760px){.section-card{padding:36px 22px}}@media (max-width: 480px){.page-hero h1{font-size:clamp(32px,10vw,56px)}.page-hero .lede{font-size:14px}}@media (max-width: 480px){.project-header h1{font-size:clamp(32px,10vw,56px)}.project-meta-row{gap:8px}.project-meta-row .btn--live{width:100%;justify-content:center}}@media (max-width: 600px){.project-steps li{grid-template-columns:44px 1fr;gap:14px}.project-steps .step-number{font-size:28px}.project-steps .step-title{font-size:18px}}@media (max-width: 760px){.detail-body{grid-template-columns:1fr;gap:32px}}@media (max-width: 760px){.contact-grid{grid-template-columns:1fr;gap:40px}}@media (max-width: 760px){.footer .brand{justify-content:flex-start}.footer h5{margin-top:8px}.footer .social-row{flex-wrap:wrap}}@media (max-width: 480px){.stat-row{grid-template-columns:1fr 1fr;gap:24px 16px}.stat-num{font-size:clamp(32px,12vw,44px)}}@media (max-width: 480px){.cta-band{padding:36px 22px}}@media (max-width: 600px){.lightbox{padding:16px}.lightbox-close{top:10px;right:10px;width:38px;height:38px}.lightbox-prev{left:8px;width:38px;height:38px}.lightbox-next{right:8px;width:38px;height:38px}}@media (max-width: 480px){.modal{padding:28px 22px 24px}}@media (max-width: 480px){.identity-row{padding:18px 0;gap:12px}.identity-row>.v{text-align:right;max-width:60%;word-break:break-word}}@media (max-width: 480px){.admin-gate{margin:40px auto;padding:32px 22px}}@media (max-width: 480px){.admin-form .steps .step{grid-template-columns:24px 1fr;gap:8px}.admin-form .steps .step button{grid-column:2;width:100%;margin-top:4px}}[data-fx]{transform-style:preserve-3d;will-change:transform,opacity}[data-fx]{transform:translate3d(0,var(--fx-y, 0),var(--fx-z, 0)) rotateX(var(--fx-rotate, 0deg));opacity:var(--fx-opacity, 1)}[data-fx=tilt-in]{perspective:900px}[data-fx=depth]{perspective:1400px}@media (hover: hover){.project-card-v2{transition:transform .42s var(--ease-out),border-color .35s var(--ease-out),box-shadow .42s var(--ease-out);transform-style:preserve-3d;will-change:transform}.project-card-v2:hover{transform:perspective(1100px) rotateX(2deg) rotateY(-2deg) translateY(-6px) scale(1.005);border-color:#f7f7f552;box-shadow:0 24px 60px #0000008c,0 0 0 1px #f7f7f514}.skill-card{transition:transform .42s var(--ease-out),border-color .35s var(--ease-out);transform-style:preserve-3d}.skill-card:hover{transform:perspective(1100px) rotateX(1.5deg) translateY(-4px);border-color:#f7f7f552}.value{transition:transform .42s var(--ease-out),border-color .35s var(--ease-out);transform-style:preserve-3d}.value:hover{transform:perspective(1100px) rotateX(1.5deg) translateY(-4px);border-color:#f7f7f552}}.hero-photo{will-change:transform;transform:scale(1.05) translate3d(0,var(--fx-y, 0),0)}.hero-content{transform-style:preserve-3d}@media (prefers-reduced-motion: reduce){[data-fx]{transform:none!important;opacity:1!important}.project-card-v2:hover,.skill-card:hover,.value:hover{transform:none!important}}
