@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--shimmer-angle:20deg}*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.contents{display:contents}.inline-flex{display:inline-flex}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md), 10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md), 12px)}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-transparent{border-color:#0000}.bg-clip-padding{background-clip:padding-box}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.whitespace-nowrap{white-space:nowrap}.overline{text-decoration-line:overline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:ring-3:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius-lg)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#080808;--panel:#111;--panel-2:#171717;--surface:#1b1b1b;--surface-2:#202020;--field:#0c0c0c;--modal:#121212;--art:#161616;--line:#ffffff1f;--line-soft:#ffffff12;--text:#f4f1e8;--text-2:#d6d6cf;--text-3:#a9aca3;--muted:#8b8b87;--faint:#6b6f66;--green:#cfff74;--green-fill:#cfff74;--on-green:#17200f;--green-dim:var(--green)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--green-dim:color-mix(in srgb, var(--green) 14%, transparent)}}:root,[data-theme=dark]{--green-line:var(--green)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--green-line:color-mix(in srgb, var(--green) 42%, transparent)}}:root,[data-theme=dark]{--backdrop:#040503c7;--glass-bg:#0a0c0a8c;--glass-border:#ffffff24;--float-shadow:0 18px 44px #00000080;--radius:4px;--ease:cubic-bezier(.16, 1, .3, 1);--spring:cubic-bezier(.34, 1.36, .64, 1);--spring-soft:cubic-bezier(.22, 1.12, .36, 1);--font-display:"Space Grotesk", "Arial", sans-serif;--font-body:"Inter", "Arial", Helvetica, sans-serif}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#f3f1ea;--panel:#fff;--panel-2:#f8f7f2;--surface:#fff;--surface-2:#f6f4ee;--field:#faf9f5;--modal:#fff;--art:#e6e4dc;--line:#14161021;--line-soft:#14161014;--text:#141511;--text-2:#2c2e27;--text-3:#4a4d44;--muted:#6b6e64;--faint:#7a7d72;--green:#456b00;--green-fill:#cfff74;--on-green:#17200f;--backdrop:#1c1e166b;--glass-bg:#ffffff9e;--glass-border:#1416101a;--float-shadow:0 18px 44px #1e201429}@supports (transition-timing-function:linear(0, 1)){:root{--spring:linear(0, .032, .115, .228, .356, .487, .613, .726, .824, .905, .969, 1.017, 1.05, 1.07, 1.081, 1.083, 1.08, 1.073, 1.063, 1.052, 1.042, 1.031, 1.022, 1.014, 1.007, 1.002, .998, .996, .994, .993, .993, .993, 1);--spring-soft:linear(0, .028, .097, .192, .297, .406, .51, .605, .691, .765, .827, .878, .918, .95, .974, .992, 1.004, 1.012, 1.017, 1.019, 1.02, 1.019, 1.018, 1.016, 1.014, 1.012, 1.01, 1.008, 1)}}*{box-sizing:border-box}html{background:var(--ink)}html.modal-open{scrollbar-gutter:stable;overflow:hidden}body{background:var(--ink);color:var(--text);font-family:var(--font-body);margin:0}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-family:var(--font-display)}:focus-visible{outline:2px solid var(--green);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@keyframes viewIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes revealIn{0%{opacity:0;translate:0 22px}to{opacity:1;translate:0}}@keyframes maskUp{0%{transform:translateY(105%)}to{transform:none}}@keyframes lineDraw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes shine{0%{transform:translate(-120%)rotate(8deg)}to{transform:translate(120%)rotate(8deg)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 4px var(--green-dim)}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--green) 22%, transparent)}}.reveal-ready [data-reveal]{opacity:0}.reveal-ready [data-reveal].is-in{animation:revealIn .95s var(--spring-soft) var(--reveal-delay,0s) both}.reveal-mask{vertical-align:bottom;margin-bottom:-.06em;padding:0 .06em .06em 0;display:inline-block;overflow:hidden}.reveal-mask>span{display:inline-block}.reveal-ready .section-header:not(.is-in) .reveal-mask>span{transform:translateY(105%)}.reveal-ready .section-header.is-in .reveal-mask>span{animation:maskUp 1s var(--spring-soft) calc(var(--reveal-delay,0s) + 60ms) both}.intro{z-index:100;background:var(--ink);pointer-events:none;clip-path:inset(0);place-items:center;animation:.5s cubic-bezier(.76,0,.24,1) .46s forwards introOut;display:grid;position:fixed;inset:0}.intro-mark{justify-items:center;gap:16px;animation:.42s cubic-bezier(.5,0,.75,0) .44s forwards introMark;display:grid}.intro svg{overflow:visible}.intro svg path,.intro svg line{fill:none;stroke:var(--green);stroke-width:14px;stroke-linecap:round;stroke-linejoin:round}.intro-chevron{stroke-dasharray:112;stroke-dashoffset:112px;animation:introDraw .36s var(--ease) 20ms forwards}.intro-cursor{opacity:0;animation:.3s step-end .26s forwards introBlink}.intro-mark span{font-family:var(--font-display);letter-spacing:.3em;color:var(--text);opacity:0;font-size:11px;font-weight:700;animation:.3s .16s forwards fadeIn}.intro-mark b{color:var(--green)}@keyframes introDraw{to{stroke-dashoffset:0}}@keyframes introBlink{0%{opacity:1}40%{opacity:0}70%,to{opacity:1}}@keyframes introMark{to{opacity:0;transform:translateY(-18px)}}@keyframes introOut{to{clip-path:inset(0 0 100%);visibility:hidden}}.intro-skip .intro{display:none}@media (prefers-reduced-motion:reduce){.intro{display:none}}.scroll-progress{z-index:45;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0}.scroll-progress span{background:var(--green);transform-origin:0;height:100%;transform:scaleX(var(--progress,0));display:block}.portfolio-shell{background:var(--ink);min-height:100vh;display:flex;overflow:hidden}.sidebar{--text:#f4f1e8;--text-2:#d6d6cf;--text-3:#b3b8a6;--muted:#949a88;--faint:#6f7764;--line:#ffffff1f;--green:#cfff74;--green-dim:#cfff7424;--green-line:#cfff746b;color:var(--text);border-right:1px solid var(--line);background:linear-gradient(#2f3a1d 0%,#17200f 100%);flex-direction:column;flex:0 0 275px;width:275px;min-height:100vh;padding:27px 24px 22px;display:flex}.brand-mark{border:1px solid var(--line);width:32px;height:32px;color:var(--green);place-items:center;margin-bottom:43px;display:grid}.profile-avatar{color:#cfff74;letter-spacing:-1px;border:1px solid var(--green-line);background:#2f3a1d;border-radius:50%;place-items:center;width:64px;height:64px;font-size:17px;font-weight:700;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 5px #ffffff08}.profile-avatar img{object-fit:cover;object-position:62% 34%;border-radius:inherit;width:100%;height:100%;display:block}.profile-avatar span{background:var(--green);border:2px solid #11110f;border-radius:50%;width:9px;height:9px;animation:2.4s ease-in-out infinite pulseGlow;position:absolute;bottom:4px;right:1px}.profile-copy{margin-top:17px}.eyebrow,.overline,.project-category{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:9px}.profile-copy h1{letter-spacing:-.03em;margin:7px 0 6px;font-size:19px}.profile-copy p:last-child{color:var(--text-3);margin:0;font-size:11px;line-height:1.55}.accent,.green-tag{color:var(--green)}.availability{border:1px solid var(--line);color:var(--text-2);align-items:center;gap:8px;margin-top:25px;padding:9px 10px;font-size:10px;display:flex}.pulse{background:var(--green);width:6px;height:6px;box-shadow:0 0 0 4px var(--green-dim);border-radius:50%;flex:none;display:inline-block}.sidebar-intro{color:var(--muted);margin:24px 0 21px;font-size:11px;line-height:1.65}.sidebar-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:11px;padding:17px 0;display:grid}.sidebar-details a,.sidebar-details span{color:var(--text-3);transition:color .25s var(--ease);align-items:center;gap:9px;font-size:10px;display:flex}.sidebar-details a:hover{color:var(--green)}.sidebar-details svg{color:var(--green);flex:none}.socials{gap:8px;padding:16px 0 24px;display:flex}.socials a{border:1px solid var(--line);width:27px;height:27px;color:var(--muted);transition:color .25s var(--ease), border-color .25s var(--ease), transform .45s var(--spring);place-items:center;display:grid}.socials a:hover{color:var(--green);border-color:var(--green-line);transform:translateY(-2px)}.side-nav{gap:3px;display:grid}.side-nav button{color:var(--muted);text-align:left;transition:color .25s var(--ease), padding .45s var(--spring);background:0 0;border:0;align-items:center;gap:10px;padding:10px 0;font-size:11px;display:flex}.side-nav button span{opacity:0;transition:opacity .25s var(--ease), transform .45s var(--spring);margin-left:auto}.side-nav button.active,.side-nav button:hover{color:var(--green)}.side-nav button:hover:not(.active){padding-left:4px}.side-nav button.active span{opacity:1}.side-nav button:hover span{opacity:1;transform:translate(2px)}.sidebar-footer{color:var(--faint);justify-content:space-between;margin-top:auto;font-size:9px;display:flex}.workspace{flex:1;min-width:0}.topbar{border-bottom:1px solid var(--line);align-items:center;gap:24px;height:76px;padding:0 5.5%;display:flex}.topbar nav{gap:28px;display:flex}.topbar nav button{color:var(--muted);transition:color .25s var(--ease), border-color .25s var(--ease);background:0 0;border:0;border-bottom:2px solid #0000;padding:29px 0 25px;font-size:11px}.topbar nav button.active,.topbar nav button:hover{color:var(--text);border-color:var(--green)}.top-status{color:var(--text-3);transition:color .25s var(--ease), translate .6s var(--spring);align-items:center;gap:9px;margin-left:auto;padding:8px 4px;font-size:10px;display:flex}.top-status:hover{color:var(--text)}.top-status svg{color:var(--green)}.topbar-actions{align-items:center;gap:8px;display:flex}.theme-toggle{border:1px solid var(--line);width:34px;height:34px;color:var(--text-3);transition:color .25s var(--ease), border-color .25s var(--ease), transform .5s var(--spring);background:0 0;border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.theme-toggle:hover{color:var(--green);border-color:var(--green-line)}.theme-toggle:active{transform:scale(.9)}.theme-toggle svg{transition:transform .6s var(--spring), opacity .25s var(--ease);grid-area:1/1}[data-theme=dark] .theme-toggle .icon-moon{opacity:0;transform:rotate(-90deg)scale(.4)}[data-theme=light] .theme-toggle .icon-sun{opacity:0;transform:rotate(90deg)scale(.4)}.about-theme-toggle{background:var(--surface);display:none}@supports (color:color-mix(in lab, red, red)){.about-theme-toggle{background:color-mix(in srgb, var(--surface) 72%, transparent)}}.about-theme-toggle{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.mobile-brand,.mobile-menu,.mobile-profile,.mobile-nav,.mobile-footer{display:none}.workspace-content{max-width:1150px;animation:viewIn .5s var(--ease) both;margin:0 auto;padding:45px 5.5% 80px}.overline{color:var(--green)}.section-number{color:var(--green);letter-spacing:.12em;font-size:10px}.text-link{color:var(--green);transition:gap .45s var(--spring), opacity .25s var(--ease);background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:10px;display:inline-flex}.text-link:hover{opacity:.85;gap:9px}.section-header{justify-content:space-between;align-items:end;padding-bottom:31px;display:flex;position:relative}.section-header:after{content:"";background:var(--line);transform-origin:0;height:1px;position:absolute;bottom:0;left:0;right:0}.reveal-ready .section-header:not(.is-in):after{transform:scaleX(0)}.reveal-ready .section-header.is-in:after{animation:lineDraw 1.1s var(--ease) calc(var(--reveal-delay,0s) + .12s) both}.section-header h2{letter-spacing:-.06em;margin:11px 0 0;font-size:clamp(37px,4vw,59px);line-height:1.02}.section-header p{color:var(--muted);margin:0 0 6px;font-size:11px}.resume-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.resume-header-row .section-header{flex:320px}.resume-download{border:1px solid var(--green);color:var(--green);transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), translate .6s var(--spring);align-items:center;gap:8px;margin-bottom:6px;padding:10px 14px;font-size:10px;display:inline-flex}.resume-download:hover{background:var(--green-fill);border-color:var(--green-fill);color:var(--on-green)}.resume-grid{grid-template-columns:1.1fr .9fr;gap:60px;padding-top:48px;display:grid}.block-heading{color:var(--green);text-transform:uppercase;letter-spacing:.14em;border-bottom:1px solid var(--line);align-items:center;gap:10px;padding-bottom:15px;font-size:10px;display:flex}.timeline-item{border-bottom:1px solid var(--line);padding:25px 0 34px}.timeline-date{color:var(--green);font-size:10px}.timeline-item h3{margin:12px 0 7px;font-size:18px}.timeline-item p,.muted{color:var(--muted);font-size:11px}.tag{border:1px solid var(--line);color:var(--text-3);transition:border-color .25s var(--ease), color .25s var(--ease);margin:5px 4px 0 0;padding:7px 9px;font-size:10px;display:inline-block}.tag:hover{border-color:var(--green-line);color:var(--green)}.green-tag{border-color:var(--green-line);background:var(--green-dim)}.journey-heading{margin-top:36px}.journey>div{border-bottom:1px solid var(--line);transition:padding .45s var(--spring);grid-template-columns:30px 1fr auto;align-items:center;gap:13px;padding:17px 0;font-size:11px;display:grid}.journey>div:hover{padding-left:4px}.journey b{color:var(--green);font-size:10px}.journey small{color:var(--faint);font-size:10px}.skills-panel{background:var(--panel);border:1px solid var(--line);height:max-content;padding:22px}.skill-core{border-top:1px solid var(--line);margin-top:23px;padding-top:17px}.skill-label{color:var(--green);text-transform:uppercase;letter-spacing:.14em;font-size:10px;display:block}.skill-core ul{flex-wrap:wrap;gap:0 18px;margin:12px 0;padding:0;list-style:none;display:flex}.skill-core li{font-family:var(--font-display);letter-spacing:-.045em;color:var(--text);font-size:clamp(24px,2.6vw,30px);font-weight:600;line-height:1.15}.skill-core p{color:var(--muted);max-width:340px;margin:0;font-size:11px;line-height:1.6}.skill-group{border-top:1px solid var(--line);margin-top:23px;padding:17px 0 12px}.skill-group>span{color:var(--muted);margin-bottom:7px;font-size:10px;display:block}.portfolio-toolbar{color:var(--text-3);justify-content:space-between;padding:19px 0;font-size:10px;display:flex}.portfolio-toolbar b{color:var(--green);margin-left:5px}.toolbar-note{color:var(--faint);align-items:center;gap:7px;display:flex}.project-grid{perspective:1400px;grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.project-card{text-align:left;color:var(--text);background:var(--panel);border:1px solid var(--line);min-width:0;transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .8s var(--spring-soft), border-color .3s var(--ease), box-shadow .5s var(--ease);padding:0;position:relative;overflow:hidden}.project-card:hover{transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-5px);border-color:var(--green-line);box-shadow:0 22px 44px #0000004d}.project-card.is-tilting{transition:transform .16s ease-out, border-color .3s var(--ease), box-shadow .5s var(--ease)}.project-card:after{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 40%,#ffffff1f 50%,#0000 60%);position:absolute;inset:0;transform:translate(-120%)rotate(8deg)}.project-card:hover:after{animation:1s shine}.project-art{background:var(--art);height:210px;transition:transform .6s var(--ease);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.project-card:hover .project-art{transform:scale(1.03)}.project-art img{object-fit:cover;object-position:center 15%;width:100%;height:100%;transition:transform .8s var(--spring-soft);display:block}.project-card.is-tilting .project-art img{transform:scale(1.05) translate(calc(var(--px,0) * -6px), calc(var(--py,0) * -4px));transition:transform .2s ease-out}.shot-ecommerce img{object-position:center 32%}.project-meta{justify-content:space-between;align-items:start;padding:17px 17px 0;display:flex}.project-meta svg{color:var(--green);transition:transform .5s var(--spring);flex:none}.project-card:hover .project-meta svg{transform:translate(3px,-3px)}.project-category{color:var(--muted);font-size:9px}.project-meta h3{margin:7px 0 0;font-size:16px}.project-card>p{color:var(--muted);min-height:34px;padding:0 17px;font-size:10px;line-height:1.55}.stack{flex-wrap:wrap;gap:5px;padding:0 17px 17px;display:flex}.stack span{color:var(--text-3);border:1px solid var(--line);padding:5px 7px;font-size:9px}.article-grid{grid-template-columns:repeat(2,1fr);gap:12px;padding-top:35px;display:grid}.article-card{background:var(--panel);border:1px solid var(--line);min-height:225px;transition:border-color .3s var(--ease), transform .6s var(--spring-soft);grid-template-columns:40% 60%;display:grid;overflow:hidden}.article-card:hover{border-color:var(--green-line);transform:translateY(-4px)}.article-art{background:var(--art);position:relative;overflow:hidden}.article-art img{object-fit:cover;object-position:center center;width:100%;height:100%;transition:transform .9s var(--ease);display:block}.article-card:hover .article-art img{transform:scale(1.04)}.article-art span{z-index:1;color:#cfff74;text-transform:uppercase;letter-spacing:.12em;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#080906a8;border-radius:999px;padding:4px 9px;font-size:9px;position:absolute;bottom:10px;left:10px}.article-art.shot-ecommerce img{object-position:center 22%}.article-art.shot-studyflow img{object-position:left center}.article-art.shot-ckcapital img{object-position:center 10%}.article-art.shot-captrix img{object-position:center 12%}.article-info{min-width:0;padding:20px}.article-info>div{color:var(--faint);text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;font-size:9px;display:flex}.article-info h3{letter-spacing:-.03em;margin:25px 0 10px;font-size:17px;line-height:1.15}.article-info p{color:var(--muted);font-size:10px;line-height:1.55}.article-info .text-link{margin-top:15px}.article-modal-art{height:130px}.article-modal-art.shot-ecommerce img{object-position:center 32%}.article-modal-art.shot-studyflow img{object-position:center 8%}.article-modal-art.shot-ckcapital img{object-position:center 15%}.article-modal-art.shot-captrix img{object-position:center 8%}.article-paragraph{color:var(--text-3);max-width:560px;margin:0 0 16px;font-size:12.5px;line-height:1.75}.contact-grid{grid-template-columns:1fr 1fr;gap:12px;padding-top:35px;display:grid}.contact-card{background:var(--panel);border:1px solid var(--line)}.globe-stage{border-bottom:1px solid var(--line);cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:radial-gradient(120% 90%,#12180d 0%,#080907 72%);height:320px;position:relative;overflow:hidden}[data-theme=light] .globe-stage{background:radial-gradient(120% 90% at 50% 46%,#f7f9f1 0%,#e2e8d2 78%)}.globe-stage.is-grabbing{cursor:grabbing}.globe-canvas{touch-action:pan-y;width:100%;height:100%;display:block;position:absolute;inset:0}.globe-tag{opacity:0;pointer-events:none;will-change:transform, opacity;position:absolute;top:0;left:0}.globe-tag:before{content:"";background:var(--green);transform-origin:0;width:17px;height:1px;position:absolute;top:-3px;left:3px;transform:rotate(-42deg)}.globe-tag span{white-space:nowrap;letter-spacing:.14em;text-transform:uppercase;color:var(--text);border:1px solid var(--green-line);background:var(--panel);border-radius:999px;padding:5px 9px;font-size:9px;position:absolute;top:-30px;left:15px}@supports (color:color-mix(in lab, red, red)){.globe-tag span{background:color-mix(in srgb, var(--panel) 70%, transparent)}}.globe-tag span{-webkit-backdrop-filter:blur(8px)}.globe-stage.is-fallback{cursor:default}.globe-stage.is-fallback:before{content:"";aspect-ratio:1;background:radial-gradient(circle at 34% 30%,#4d86bf 0%,#163f6c 45%,#071a30 80%);border-radius:50%;height:78%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 40px #5a96ff59}.globe-stage.is-fallback .globe-tag{opacity:1;transform:translate(46%,140px)}.contact-details{padding:25px}.contact-details h3{letter-spacing:-.05em;margin:15px 0 25px;font-size:26px;line-height:1.05}.contact-details a,.contact-details span{color:var(--text-3);transition:color .25s var(--ease);align-items:center;gap:9px;margin-top:12px;font-size:10px;display:flex}.contact-details a:hover{color:var(--green)}.contact-details svg{color:var(--green);flex:none}.contact-form{background:var(--panel);border:1px solid var(--line);padding:25px}.form-row{grid-template-columns:1fr 1fr;gap:15px;display:grid}.contact-form label{color:var(--muted);gap:9px;margin-bottom:18px;font-size:10px;display:grid}.contact-form input,.contact-form textarea{resize:vertical;background:var(--field);border:1px solid var(--line);width:100%;color:var(--text);transition:border-color .25s var(--ease), background .25s var(--ease);outline:0;padding:12px;font-size:16px}@media (min-width:851px){.contact-form input,.contact-form textarea{font-size:11px}}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--green-line)}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--faint)}.submit-button{background:var(--green-fill);color:var(--on-green);transition:transform .45s var(--spring), translate .6s var(--spring);border:0;align-items:center;gap:10px;padding:13px 15px;font-size:10px;font-weight:700;display:flex}.submit-button svg{transition:transform .5s var(--spring)}.submit-button:hover svg{transform:translate(3px,-2px)rotate(-8deg)}.submit-button:active{transform:scale(.96)}.form-note{color:var(--faint);margin:15px 0 0;font-size:9px}@keyframes modalIn{0%{opacity:0;transform:translateY(32px)scale(.94)}to{opacity:1;transform:none}}@keyframes modalOut{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(16px)scale(.97)}}@keyframes swapIn{0%{opacity:0;translate:var(--swap-x,0) 0}to{opacity:1;translate:0}}.modal-backdrop{background:var(--backdrop);z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:20px;animation:.3s both fadeIn;display:grid;position:fixed;inset:0}.modal-backdrop.is-closing{animation:.24s 20ms forwards fadeOut}.project-modal{overscroll-behavior:contain;background:var(--modal);border:1px solid var(--green-line);width:min(650px,100%);max-height:90dvh;box-shadow:var(--float-shadow);animation:modalIn .7s var(--spring) both;position:relative;overflow:auto}.is-closing .project-modal{animation:.22s cubic-bezier(.4,0,1,1) forwards modalOut}.modal-swap{animation:swapIn .55s var(--spring-soft) both}.modal-swap.from-next{--swap-x:28px}.modal-swap.from-prev{--swap-x:-28px}.modal-swap>.project-art{height:260px}.modal-close{z-index:2;color:#e9ecdf;width:32px;height:32px;transition:background .25s var(--ease), transform .5s var(--spring);background:#080906a8;border:1px solid #ffffff24;place-items:center;display:grid;position:absolute;top:15px;right:15px}.modal-close:hover{background:#3c4923d7;transform:rotate(90deg)}.modal-body{padding:26px}.modal-body h2{letter-spacing:-.05em;margin:9px 0 12px;font-size:33px}.modal-body p{color:var(--text-3);max-width:500px;font-size:12px;line-height:1.7}.modal-stack{padding:10px 0 20px}.modal-actions{flex-wrap:wrap;gap:10px;display:flex}.modal-actions a{border:1px solid var(--line);color:var(--green);transition:border-color .25s var(--ease), background .25s var(--ease), color .25s var(--ease), translate .6s var(--spring);align-items:center;gap:7px;padding:11px 13px;font-size:10px;display:flex}.modal-actions a:hover{border-color:var(--green)}.modal-actions .modal-primary{background:var(--green-fill);border-color:var(--green-fill);color:var(--on-green);font-weight:600}.modal-actions .modal-primary:hover{border-color:var(--green-fill)}.modal-nav{border-top:1px solid var(--line);color:var(--faint);justify-content:space-between;align-items:center;padding:15px 26px;font-size:10px;display:flex}.modal-nav button{color:var(--text-2);transition:color .25s var(--ease), gap .45s var(--spring);background:0 0;border:0;align-items:center;gap:7px;padding:6px 0;font-size:10px;display:flex}.modal-nav button:hover{color:var(--green);gap:10px}.modal-nav span{color:var(--green)}.modal-count{font-variant-numeric:tabular-nums;animation:.4s both fadeIn}.reference-about{max-width:720px;margin:0 auto;padding:28px 0 100px}.reference-profile-card,.reference-about-card{--pad:20px;background:var(--surface);border:1px solid var(--line-soft);padding:var(--pad);border-radius:18px}.reference-profile-card{position:relative;overflow:hidden}.reference-about-card{min-height:300px;margin-top:14px;padding:27px 20px 34px;position:relative}.reference-about-card p{color:var(--text-3);margin:0 0 17px;font-size:17px;line-height:1.7}.reference-section-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:18px;margin-top:14px;padding:27px 20px 24px}.profile-hero{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(220px,300px) minmax(0,1fr);align-items:end;gap:26px;padding-bottom:20px;display:grid}.reference-photo{aspect-ratio:4/5;background:#d9d6cf;border-radius:14px;position:relative;overflow:hidden}.reference-photo img{object-fit:cover;object-position:center 14%;width:100%;height:100%;transition:transform 1.2s var(--ease);display:block}.reference-profile-card:hover .reference-photo img{transform:scale(1.03)}.profile-hero-text{min-width:0;padding-bottom:4px}.profile-hero-text h2{letter-spacing:-.06em;margin:10px 0 12px;font-size:clamp(34px,4.4vw,46px);line-height:.95}.profile-hero-lead{color:var(--text-3);max-width:320px;margin:0 0 18px;font-size:14px;line-height:1.55}.reference-status-row{align-items:center;gap:8px;display:flex}.reference-status{color:var(--green);background:var(--surface);border-radius:20px;align-items:center;gap:7px;padding:8px 11px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.reference-status{background:color-mix(in srgb, var(--surface) 70%, var(--green) 10%)}}.reference-status{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:11px}.reference-contact-grid{grid-template-columns:1fr 1fr;gap:13px 18px;padding:17px 0 12px;display:grid}.reference-contact-grid a,.reference-contact-grid>span{color:var(--text-2);overflow-wrap:anywhere;min-width:0;transition:color .25s var(--ease);align-items:flex-start;gap:10px;font-size:11px;display:flex}.reference-contact-grid a:hover{color:var(--green)}.reference-contact-grid svg{color:var(--green);flex:none}.reference-contact-grid small{color:var(--faint);letter-spacing:.14em;margin-bottom:5px;font-size:8px;display:block}.reference-socials{justify-content:center;gap:24px;padding:9px 0 16px;display:flex}.reference-socials a{color:var(--muted);transition:color .25s var(--ease), transform .45s var(--spring)}.reference-socials a:hover{color:var(--green);transform:translateY(-2px)}.reference-cv{border:1px solid var(--line-soft);background:var(--surface-2);width:100%;color:var(--green);transition:border-color .25s var(--ease), background .25s var(--ease), color .25s var(--ease), transform .45s var(--spring), translate .6s var(--spring);border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:13px;font-size:13px;display:flex}.reference-cv:hover{border-color:var(--green-fill);background:var(--green-fill);color:var(--on-green)}.reference-cv:active{transform:scale(.97)}.reference-heading h2{letter-spacing:-.05em;margin:0 0 13px;font-size:27px}.reference-heading span{background:var(--green);transform-origin:0;border-radius:5px;width:42px;height:4px;margin-bottom:22px;display:block}.reveal-ready [data-reveal]:not(.is-in) .reference-heading span{transform:scaleX(0)}.reveal-ready [data-reveal].is-in .reference-heading span{animation:lineDraw .9s var(--spring) calc(var(--reveal-delay,0s) + .2s) both}.snapshot{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch;gap:16px;display:grid}.snapshot-lead{text-align:left;border:1px solid var(--line-soft);background:var(--surface-2);color:var(--text);transition:border-color .25s var(--ease);border-radius:14px;flex-direction:column;align-items:flex-start;gap:6px;padding:18px;display:flex}.snapshot-lead:hover{border-color:var(--green-line)}.snapshot-lead strong{font-family:var(--font-display);letter-spacing:-.07em;color:var(--green);font-variant-numeric:tabular-nums;font-size:72px;font-weight:700;line-height:.85}.snapshot-lead-label{color:var(--text);margin-top:8px;font-size:14px;font-weight:600}.snapshot-names{color:var(--muted);font-size:11px;line-height:1.55}.snapshot-lead .text-link{margin-top:auto;padding-top:12px;font-size:11px}.snapshot-lead:hover .text-link{gap:9px}.snapshot-side{align-content:start;margin:0;display:grid}.snapshot-side>div{border-bottom:1px solid var(--line-soft);padding:11px 0}.snapshot-side>div:first-child{padding-top:2px}.snapshot-side>div:last-child{border-bottom:0}.snapshot-side dt{text-transform:uppercase;letter-spacing:.14em;color:var(--faint);margin-bottom:5px;font-size:9px}.snapshot-side dd{color:var(--text-2);margin:0;font-size:13px;line-height:1.45}.doing-list{gap:12px;display:grid}.doing-list>div{border:1px solid var(--line-soft);background:var(--surface-2);transition:border-color .25s var(--ease);border-radius:12px;align-items:flex-start;gap:13px;padding:14px;display:flex}.doing-list>div:hover{border-color:var(--green-line)}.doing-list svg{color:var(--green);flex:none;margin-top:2px}.doing-list span,.testimonial-person span:last-child{gap:5px;display:grid}.doing-list strong,.testimonial-person strong{color:var(--text);font-size:14px;font-weight:600}.doing-list small,.testimonial-person small{color:var(--muted);font-size:12px;line-height:1.55}.testimonial-viewport{touch-action:pan-y;cursor:grab;overflow:hidden}.testimonial-viewport.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.testimonial-track{transition:transform .8s var(--spring);will-change:transform;display:flex}.is-dragging .testimonial-track{transition:none}.testimonial-slide{opacity:.2;min-width:0;transition:opacity .5s var(--ease);flex:0 0 100%}.testimonial-slide.is-active{opacity:1}.reference-section-card blockquote{color:var(--text-3);margin:0 0 18px;font-size:16px;font-style:italic;line-height:1.7}.testimonial-person{align-items:center;gap:11px;display:flex}.testimonial-avatar{width:34px;height:34px;color:var(--on-green);background:var(--green-fill);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.testimonial-controls{border-top:1px solid var(--line-soft);color:var(--faint);letter-spacing:.12em;font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:12px;margin-top:22px;padding-top:14px;font-size:11px;display:flex}.testimonial-controls b{color:var(--text-2);font-weight:500}.testimonial-controls>div:last-child{gap:7px;display:flex}.testimonial-dots{gap:5px;margin-left:4px;margin-right:auto;display:flex}.testimonial-dots i{background:var(--line);width:5px;height:5px;transition:width .6s var(--spring), background .3s var(--ease);border-radius:3px;display:block}.testimonial-dots i.on{background:var(--green);width:16px}.testimonial-controls button{border:1px solid var(--line);width:34px;height:34px;color:var(--text-2);transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .45s var(--spring);background:0 0;border-radius:50%;place-items:center;display:grid}.testimonial-controls button:hover{color:var(--on-green);background:var(--green-fill);border-color:var(--green-fill)}.testimonial-controls button:active{transform:scale(.88)}@keyframes skillIn{0%{opacity:0;translate:0 10px}to{opacity:1;translate:0}}.skill-focus{border:1px solid var(--line-soft);background:var(--surface-2);animation:skillIn .55s var(--spring-soft) both;border-radius:14px;padding:18px}.skill-focus>strong{font-family:var(--font-display);letter-spacing:-.06em;color:var(--text);font-size:clamp(40px,9vw,56px);font-weight:700;line-height:.95;display:block}.skill-count{color:var(--muted);margin-top:8px;font-size:12px;display:block}.skill-count b{color:var(--green);font-weight:600}.skill-meter{grid-template-columns:repeat(4,1fr);gap:4px;margin:14px 0;display:grid}.skill-meter i{background:var(--line);height:4px;transition:background .4s var(--ease);border-radius:2px}.skill-meter i.on{background:var(--green)}.skill-projects{flex-wrap:wrap;gap:6px;display:flex}.skill-projects button{border:1px solid var(--line);color:var(--text-2);transition:border-color .25s var(--ease), color .25s var(--ease), gap .45s var(--spring);background:0 0;border-radius:999px;align-items:center;gap:5px;padding:7px 11px;font-size:11px;display:inline-flex}.skill-projects button svg{color:var(--green)}.skill-projects button:hover{border-color:var(--green-line);color:var(--green);gap:8px}.skill-picker{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.skill-picker button{color:var(--muted);transition:color .25s var(--ease), border-color .25s var(--ease);background:0 0;border:0;border-bottom:1px solid #0000;align-items:baseline;gap:6px;margin-right:8px;padding:6px 2px;font-size:12px;display:inline-flex}.skill-picker button small{color:var(--faint);font-variant-numeric:tabular-nums;font-size:9px}.skill-picker button:hover{color:var(--text)}.skill-picker button.on{color:var(--green);border-color:var(--green)}.showcase-wrap{border-bottom:1px solid var(--line);margin-bottom:4px;padding:26px 0 8px}.showcase{perspective:1100px;perspective-origin:50% 40%;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;outline-offset:4px;height:clamp(230px,46vw,430px);position:relative;overflow:hidden}.showcase.is-dragging{cursor:grabbing}.showcase-ring{transform-style:preserve-3d;transform:rotateX(var(--stage-rx,0deg)) rotateY(var(--stage-ry,0deg));transition:transform .9s var(--spring-soft);position:absolute;inset:0}.showcase-item{--shade:0;aspect-ratio:4/3;border:1px solid var(--line);background:var(--art);width:min(520px,62%);cursor:inherit;backface-visibility:hidden;will-change:transform, opacity;padding:0;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.showcase-item img{object-fit:cover;pointer-events:none;width:100%;height:100%;filter:brightness(calc(1 - var(--shade) * .45));display:block}.showcase-item.shot-ecommerce img{object-position:center 48%}.showcase-item.shot-studyflow img{object-position:center 42%}.showcase-item.shot-ckcapital img{object-position:center 38%}.showcase-item.shot-captrix img{object-position:center 44%}.showcase-item.is-front{border-color:var(--green-line)}.showcase-open{color:#cfff74;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s var(--ease), translate .5s var(--spring);background:#080906b3;border-radius:999px;align-items:center;gap:5px;padding:6px 10px;font-size:10px;display:inline-flex;position:absolute;bottom:10px;right:10px;translate:0 6px}.showcase-item.is-front .showcase-open{opacity:1;translate:0}.showcase-caption{grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-top:14px;display:grid}.showcase-caption>button{border:1px solid var(--line);width:38px;height:38px;color:var(--text-2);transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .45s var(--spring);background:0 0;border-radius:50%;place-items:center;display:grid}.showcase-caption>button:hover{background:var(--green-fill);border-color:var(--green-fill);color:var(--on-green)}.showcase-caption>button:active{transform:scale(.9)}.showcase-title{text-align:center;animation:skillIn .5s var(--spring-soft) both}.showcase-title h3{letter-spacing:-.04em;margin:6px 0 0;font-size:22px}.showcase-hint{text-align:center;color:var(--faint);letter-spacing:.14em;text-transform:uppercase;margin:12px 0 14px;font-size:9px}@media (max-width:600px){.showcase-item{width:66%}}.work-deck-card{overflow:hidden;container-type:inline-size}.work-deck-head .reference-heading span{margin-bottom:8px}.work-deck-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.work-deck-head .text-link{white-space:nowrap;margin-top:10px;font-size:11px}.deck{--tx:8deg;--ty:0deg;perspective:1100px;perspective-origin:50% 30%;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;outline-offset:4px;height:calc(min(560px,88cqw)/1.33333 + 48px);margin:0 -4px;position:relative}.deck:active{cursor:grabbing}.deck-stage{transform-style:preserve-3d;transform:rotateX(var(--tx)) rotateY(var(--ty));transition:transform .9s var(--spring-soft);position:absolute;inset:0}.deck-card{--d:0;--side:1;--fly:1;aspect-ratio:4/3;border:1px solid var(--line);background:var(--art);width:min(560px,88%);cursor:inherit;z-index:calc(10 - var(--d));transform:translate(-50%, -50%) translate3d(calc(var(--d) * var(--side) * 14px), calc(var(--d) * -19px), calc(var(--d) * -60px)) rotateZ(calc(var(--d) * var(--side) * 3.4deg));transition:transform .8s var(--spring), opacity .4s var(--ease), border-color .3s var(--ease);backface-visibility:hidden;will-change:transform;padding:0;position:absolute;top:calc(50% + 20px);left:50%;overflow:hidden}.deck-card img{object-fit:cover;pointer-events:none;width:100%;height:100%;filter:brightness(calc(1 - var(--d) * .16));transition:filter .6s var(--ease);display:block}.deck-card.shot-ecommerce img{object-position:center 48%}.deck-card.shot-studyflow img{object-position:center 42%}.deck-card.shot-ckcapital img{object-position:center 38%}.deck-card.shot-captrix img{object-position:center 44%}.deck-card.is-top{border-color:var(--green-line);box-shadow:var(--float-shadow)}.deck-card.is-dragging{transition:none}.deck-card.is-flying{opacity:0;transform:translate(-50%, -50%) translate3d(calc(var(--fly) * 125%), -40px, 80px) rotateZ(calc(var(--fly) * 16deg)) rotateY(calc(var(--fly) * 28deg));transition:transform .34s cubic-bezier(.3,0,.8,.5),opacity .3s 40ms}.deck-tag{color:#cfff74;letter-spacing:.12em;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s var(--ease);background:#080906ad;border-radius:999px;padding:5px 9px;font-size:9px;position:absolute;top:10px;left:10px}.deck-card.is-top .deck-tag{opacity:1}.deck-info{animation:skillIn .5s var(--spring-soft) both;padding-top:18px}.deck-progress{grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:16px;display:grid}.deck-progress i{background:var(--line);height:3px;transition:background .4s var(--ease);border-radius:2px}.deck-progress i.on{background:var(--green)}.deck-title-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.deck-title-row h3{letter-spacing:-.05em;margin:0;font-size:28px}.deck-count{color:var(--faint);letter-spacing:.12em;font-variant-numeric:tabular-nums;font-size:11px}.deck-info>p{color:var(--text-3);margin:8px 0 12px;font-size:13px;line-height:1.6}.deck-info .stack{padding:0 0 16px}.deck-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.deck-actions>a,.deck-primary{border:1px solid var(--line);color:var(--green);transition:border-color .25s var(--ease), gap .45s var(--spring);background:0 0;align-items:center;gap:6px;padding:11px 14px;font-size:11px;display:inline-flex}.deck-actions>a:hover{border-color:var(--green);gap:9px}.deck-primary{background:var(--green-fill);border-color:var(--green-fill);color:var(--on-green);font-weight:600}.deck-primary:hover{gap:9px}.deck-arrows{gap:7px;margin-left:auto;display:flex}.deck-arrows button{border:1px solid var(--line);width:38px;height:38px;color:var(--text-2);transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .45s var(--spring);background:0 0;border-radius:50%;place-items:center;display:grid}.deck-arrows button:hover{background:var(--green-fill);border-color:var(--green-fill);color:var(--on-green)}.deck-arrows button:active{transform:scale(.9)}.deck-hint{color:var(--faint);letter-spacing:.14em;text-transform:uppercase;margin:16px 0 0;font-size:9px}@media (max-width:600px){.profile-hero{margin:calc(-1 * var(--pad)) calc(-1 * var(--pad)) 0;border:0;padding:0;display:block;position:relative}.reference-photo{aspect-ratio:4/5;border-radius:15px 15px 0 0;width:100%;max-height:72vh}.reference-photo:after{content:"";pointer-events:none;background:linear-gradient(#0000,#060705d1);position:absolute;inset:40% 0 0}.profile-hero-text{padding:0 var(--pad) 18px;color:#f4f1e8;position:absolute;bottom:0;left:0;right:0}.profile-hero-text .eyebrow{color:#f4f1e8bf}.profile-hero-text h2{color:#f4f1e8;font-size:38px}.profile-hero-lead{color:#f4f1e8d9;margin-bottom:14px}.profile-hero .reference-status{color:#cfff74;background:#08090680}.profile-hero .about-theme-toggle{color:#f4f1e8;background:#08090666;border-color:#ffffff4d}.reference-profile-card .reference-contact-grid{padding-top:18px}.deck-title-row h3{font-size:24px}.deck-arrows{margin-left:0}}@keyframes drawerIn{0%{opacity:0;transform:translateY(-10px)scale(.9)}to{opacity:1;transform:none}}@keyframes drawerOut{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)scale(.96)}}@keyframes itemIn{0%{opacity:0;translate:12px}to{opacity:1;translate:0}}.drawer-backdrop{z-index:35;background:var(--backdrop);position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.drawer-backdrop{background:color-mix(in srgb, var(--backdrop) 70%, transparent)}}.drawer-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:.2s both fadeIn}.drawer-backdrop.is-closing{animation:.2s forwards fadeOut}.mobile-drawer{top:calc(65px + 8px + env(safe-area-inset-top,0px));background:var(--glass-bg);-webkit-backdrop-filter:blur(22px)saturate(180%);backdrop-filter:blur(22px)saturate(180%);border:1px solid var(--glass-border);max-width:320px;box-shadow:var(--float-shadow), inset 0 1px 0 #ffffff1f;transform-origin:calc(100% - 22px) 0;animation:drawerIn .6s var(--spring) both;border-radius:20px;margin-left:auto;padding:10px;position:absolute;left:14px;right:14px}.is-closing .mobile-drawer{animation:.18s ease-in forwards drawerOut}.drawer-nav{gap:2px;display:grid}.drawer-nav button{text-align:left;width:100%;color:var(--text-2);transition:background .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);background:0 0;border:0;border-radius:12px;align-items:center;gap:11px;padding:12px 10px;font-size:13px;display:flex}.drawer-nav button,.drawer-link{animation:itemIn .5s var(--spring-soft) calc(70ms + var(--i,0) * 26ms) both}.drawer-nav button:active{transform:scale(.98)}.drawer-nav button.active{color:var(--green);background:var(--green-dim)}.drawer-divider{background:var(--glass-border);height:1px;margin:8px 4px}.drawer-link{color:var(--text-3);transition:background .2s var(--ease), color .2s var(--ease);border-radius:12px;align-items:center;gap:11px;padding:12px 10px;font-size:12.5px;display:flex}.drawer-link:hover,.drawer-link:active{color:var(--green);background:var(--green-dim)}.drawer-link svg{color:var(--green);flex:none}.mobile-nav{left:50%;bottom:calc(14px + env(safe-area-inset-bottom));z-index:30;background:var(--glass-bg);-webkit-backdrop-filter:blur(22px)saturate(180%);backdrop-filter:blur(22px)saturate(180%);border:1px solid var(--glass-border);width:min(94vw,430px);height:64px;box-shadow:var(--float-shadow), inset 0 1px 0 #ffffff1f;border-radius:999px;grid-template-columns:repeat(5,1fr);align-items:center;padding:6px;position:fixed;transform:translate(-50%)}.nav-glow{background:linear-gradient(180deg, var(--green), var(--green));border-radius:999px;width:calc(20% - 2.4px);position:absolute;top:6px;bottom:6px;left:6px}@supports (color:color-mix(in lab, red, red)){.nav-glow{background:linear-gradient(180deg, color-mix(in srgb, var(--green) 22%, transparent), color-mix(in srgb, var(--green) 8%, transparent))}}.nav-glow{border:1px solid var(--green)}@supports (color:color-mix(in lab, red, red)){.nav-glow{border:1px solid color-mix(in srgb, var(--green) 35%, transparent)}}.nav-glow{box-shadow:0 0 18px var(--green)}@supports (color:color-mix(in lab, red, red)){.nav-glow{box-shadow:0 0 18px color-mix(in srgb, var(--green) 25%, transparent)}}.nav-glow{transition:transform .7s var(--spring);z-index:0}.mobile-nav button{z-index:1;color:var(--muted);height:100%;transition:color .25s var(--ease), transform .3s var(--spring);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:8.5px;display:flex;position:relative}.mobile-nav button svg{transition:transform .5s var(--spring)}.mobile-nav button:active{transform:scale(.92)}.mobile-nav button.active{color:var(--green)}.mobile-nav button.active svg{filter:drop-shadow(0 0 6px var(--green));transform:translateY(-1px)}@supports (color:color-mix(in lab, red, red)){.mobile-nav button.active svg{filter:drop-shadow(0 0 6px color-mix(in srgb, var(--green) 60%, transparent))}}@media (max-width:850px){.sidebar{display:none}.portfolio-shell{display:block}.topbar{justify-content:space-between;height:65px;padding:0 20px}.topbar nav,.top-status{display:none}.topbar-actions{margin-left:auto}.mobile-brand{color:var(--text-2);letter-spacing:.15em;align-items:center;gap:10px;font-size:11px;font-weight:700;display:flex}.mobile-brand .brand-mark{width:28px;height:28px;margin:0}.mobile-menu{width:40px;height:40px;color:var(--text-3);background:0 0;border:0;place-items:center;padding:0;display:grid}.mobile-profile{align-items:center;gap:13px;padding:25px 20px 0;display:flex}.mobile-profile .profile-avatar{width:48px;height:48px;font-size:14px}.mobile-profile .profile-avatar span{border-color:var(--ink)}.mobile-profile h1{margin:4px 0;font-size:17px}.mobile-profile p:last-child{color:var(--muted);margin:0;font-size:10px}.workspace-content{padding:34px 20px 110px}.section-header{padding-bottom:25px;display:block}.section-header h2{font-size:44px}.section-header p{margin-top:18px}.resume-grid,.contact-grid{grid-template-columns:1fr;gap:30px;padding-top:30px}.resume-header-row{align-items:flex-start}.project-grid{grid-template-columns:1fr 1fr;gap:9px}.project-art{height:145px}.project-meta{padding:13px 12px 0}.project-meta h3{font-size:14px}.project-card>p{padding:0 12px;font-size:9px}.stack{padding:0 12px 12px}.stack span{padding:4px 5px;font-size:8px}.article-grid{grid-template-columns:1fr;padding-top:25px}.article-card{min-height:190px}.globe-stage{height:300px}.form-row{grid-template-columns:1fr;gap:0}.mobile-footer{text-align:center;color:var(--faint);font-size:9px;display:block}.modal-swap>.project-art{height:200px}.modal-body{padding:20px}.modal-body h2{font-size:28px}.modal-nav{padding:13px 20px}.about-mode .topbar,.about-mode .mobile-profile{display:none}.about-mode .workspace-content{padding-top:0}.about-theme-toggle{display:grid}.reference-about{padding:16px 0 0}.reference-profile-card{--pad:16px;border-radius:15px}.reference-about-card{border-radius:15px;min-height:355px}.reference-about-card p{font-size:16px;line-height:1.72}.reference-section-card{border-radius:15px;padding:24px 16px 20px}.reference-section-card .reference-heading h2{font-size:23px}.doing-list strong{font-size:13px}.doing-list small{font-size:11px}.reference-section-card blockquote{font-size:15px}.mobile-nav{display:grid}}@media (min-width:851px){.reference-about{max-width:760px;margin-left:0}}@media (max-width:520px){.snapshot{grid-template-columns:1fr;gap:12px}.snapshot-lead{grid-template-columns:auto 1fr;align-items:end;gap:4px 14px;display:grid}.snapshot-lead strong{grid-row:span 2;font-size:64px}.snapshot-lead-label{margin-top:0}.snapshot-lead .text-link{grid-column:1/-1;padding-top:10px}}@media (max-width:380px){.workspace-content,.mobile-profile{padding-inline:15px}.project-card .project-category{font-size:7px}.project-meta h3{font-size:12px}.project-card>p{display:none}.project-grid,.reference-contact-grid{grid-template-columns:1fr}.snapshot-lead strong{font-size:56px}.skill-core li{font-size:22px}.mobile-nav{width:92vw;height:60px}.mobile-nav button{font-size:8px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}
