@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0zgw-jeven.3w.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0wkzw~je483f-.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0rhz0arwfsn~5.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0l76wvqk9d84w.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0k4k9394f2q-k.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.08e28id.o-okb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--color-amber-50:#fffbeb;--color-amber-200:#fee685;--color-amber-300:#ffd236;--color-amber-700:#b75000;--color-amber-900:#7b3306;--color-cyan-300:#53eafd;--color-cyan-700:#007492;--color-slate-300:#cad5e2;--color-slate-400:#90a1b9;--color-slate-500:#62748e;--color-slate-700:#314158;--color-black:#000;--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-amber-50:lab(98.6252% -.635922 8.42309);--color-amber-200:lab(91.7203% -.505269 49.9084);--color-amber-300:lab(86.4156% 6.13147 78.3961);--color-amber-700:lab(47.2709% 42.9082 69.2966);--color-amber-900:lab(31.2288% 30.2627 40.0378);--color-cyan-300:lab(85.3886% -36.7636 -21.5716);--color-cyan-700:lab(44.7267% -21.5987 -26.118);--color-slate-300:lab(84.7652% -1.94535 -7.93337);--color-slate-400:lab(65.5349% -2.25151 -14.5072);--color-slate-500:lab(48.0876% -2.03595 -16.5814);--color-slate-700:lab(26.9569% -1.47016 -15.6993)}}}@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,ui-sans-serif, system-ui, 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{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{.portfolio-page{isolation:isolate;background:radial-gradient(circle at 82% 4%, var(--accent), transparent 25rem), radial-gradient(circle at 8% 36%, var(--accent-three), transparent 30rem), linear-gradient(180deg, var(--page-bg), var(--page-bg-deep) 55%, var(--page-bg));min-height:100vh;position:relative;overflow-x:clip}@supports (color:color-mix(in lab, red, red)){.portfolio-page{background:radial-gradient(circle at 82% 4%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 25rem), radial-gradient(circle at 8% 36%, color-mix(in srgb, var(--accent-three) 5%, transparent), transparent 30rem), linear-gradient(180deg, var(--page-bg), color-mix(in srgb, var(--page-bg-deep) 50%, var(--page-bg)) 55%, var(--page-bg))}}.portfolio-page{color:var(--foreground);transition:background-color var(--dur-base), color var(--dur-base)}.portfolio-page:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);opacity:.72;background-size:4rem 4rem;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 34rem);mask-image:linear-gradient(#000,#0000 34rem)}.portfolio-page:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg, transparent 5%, var(--accent), var(--accent-three), transparent 95%);opacity:.18;height:1px;position:absolute;inset:5rem 0 auto}.portfolio-content{z-index:10;width:100%;max-width:80rem;margin-inline:auto;padding:0 clamp(1.25rem,5vw,4rem) 5rem;position:relative}.portfolio-content-spaced{flex-direction:column;gap:0;display:flex}.portfolio-content h1{letter-spacing:-.065em;text-wrap:balance;font-size:clamp(2.75rem,6.4vw,5.75rem);font-weight:500;line-height:1.04}.portfolio-content h2{letter-spacing:-.055em;text-wrap:balance;font-size:clamp(2rem,3.3vw,3rem);font-weight:500;line-height:1.12}.portfolio-content h3{letter-spacing:-.025em}.portfolio-content :where(section[id]){scroll-margin-top:6rem}.site-header{z-index:40;border-bottom:1px solid var(--border);background:var(--page-bg);width:100%;position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.site-header{background:color-mix(in srgb, var(--page-bg) 82%, transparent)}}.site-header{box-shadow:0 1px 0 var(--highlight)}@supports (color:color-mix(in lab, red, red)){.site-header{box-shadow:0 1px 0 color-mix(in srgb, var(--highlight) 70%, transparent)}}.site-header{-webkit-backdrop-filter:blur(24px)saturate(1.2);backdrop-filter:blur(24px)saturate(1.2);transition:transform .3s var(--ease-out-soft), opacity .3s}.portfolio-nav-shell{align-items:center;gap:clamp(.75rem,2vw,1.5rem);max-width:80rem;min-height:5rem;margin-inline:auto;padding-inline:clamp(1.25rem,5vw,4rem);display:flex}.portfolio-nav-brand{color:var(--foreground)}.portfolio-nav-brand-mark{letter-spacing:-.08em;place-items:center;min-width:2rem;min-height:2.75rem;font-size:1.25rem;font-weight:650;display:grid}.portfolio-nav-tabs{isolation:isolate;border:1px solid var(--border-strong);flex:1 1 0;align-items:center;gap:.25rem;width:0;min-width:0;padding:.25rem;display:flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-tabs{border:1px solid color-mix(in srgb, var(--border-strong) 38%, var(--highlight))}}.portfolio-nav-tabs{background:radial-gradient(circle at 18% 0%, var(--highlight), transparent 38%), var(--surface-muted);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-tabs{background:radial-gradient(circle at 18% 0%, color-mix(in srgb, var(--highlight) 62%, transparent), transparent 38%), color-mix(in srgb, var(--surface-muted) 54%, transparent)}}.portfolio-nav-tabs{box-shadow:inset 0 1px 0 var(--highlight), inset 0 -1px 0 var(--foreground), 0 7px 20px var(--foreground)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-tabs{box-shadow:inset 0 1px 0 color-mix(in srgb, var(--highlight) 82%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--foreground) 5%, transparent), 0 7px 20px color-mix(in srgb, var(--foreground) 5%, transparent)}}.portfolio-nav-tabs{-webkit-backdrop-filter:blur(20px)saturate(1.3);backdrop-filter:blur(20px)saturate(1.3)}.portfolio-nav-tab{min-width:0;min-height:2.75rem;color:var(--text-muted);transition:background-color var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast), box-shadow var(--dur-base) var(--ease-out-soft), transform var(--dur-fast) var(--ease-out-soft);border:1px solid #0000;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding-inline:.75rem;font-size:.875rem;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.portfolio-nav-tab:hover{border-color:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-tab:hover{border-color:color-mix(in srgb, var(--border-strong) 42%, transparent)}}.portfolio-nav-tab:hover{background:var(--surface-strong)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-tab:hover{background:color-mix(in srgb, var(--surface-strong) 46%, var(--accent-soft))}}.portfolio-nav-tab:hover{color:var(--foreground);transform:translateY(-1px)}.portfolio-nav-tab-active{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-tab-active{border-color:color-mix(in srgb, var(--accent) 40%, var(--highlight))}}.portfolio-nav-tab-active{background:radial-gradient(circle at 24% 0%, var(--highlight), transparent 48%), linear-gradient(135deg, var(--surface-strong), var(--accent-soft))}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-tab-active{background:radial-gradient(circle at 24% 0%, color-mix(in srgb, var(--highlight) 92%, transparent), transparent 48%), linear-gradient(135deg, color-mix(in srgb, var(--surface-strong) 76%, transparent), color-mix(in srgb, var(--accent-soft) 46%, transparent))}}.portfolio-nav-tab-active{box-shadow:inset 0 1px 0 var(--highlight), inset 0 -1px 0 var(--accent), 0 7px 18px var(--accent)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-tab-active{box-shadow:inset 0 1px 0 color-mix(in srgb, var(--highlight) 92%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--accent) 10%, transparent), 0 7px 18px color-mix(in srgb, var(--accent) 12%, transparent)}}.portfolio-nav-tab-active{color:var(--foreground)}.portfolio-nav-tab:active{box-shadow:inset 0 2px 5px var(--foreground)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-tab:active{box-shadow:inset 0 2px 5px color-mix(in srgb, var(--foreground) 9%, transparent)}}.portfolio-nav-tab:active{transform:translateY(0)scale(.985)}.portfolio-nav-active-beam{background:var(--highlight);border-radius:999px;height:1px;position:absolute;inset:.2rem 18% auto}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-active-beam{background:color-mix(in srgb, var(--highlight) 88%, transparent)}}.portfolio-nav-active-beam{box-shadow:0 0 12px var(--accent)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-active-beam{box-shadow:0 0 12px color-mix(in srgb, var(--accent) 30%, transparent)}}.portfolio-nav-tab-icon{aspect-ratio:1;place-items:center;width:1rem;display:inline-grid}.portfolio-nav-tab-icon svg{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.65px;width:1rem;height:1rem}.portfolio-nav-actions{flex-shrink:0;align-items:center;gap:.375rem;margin-left:auto;display:flex}.portfolio-nav-button{isolation:isolate;white-space:nowrap;-webkit-backdrop-filter:blur(18px)saturate(1.35);backdrop-filter:blur(18px)saturate(1.35);min-width:2.75rem;min-height:2.75rem;transition:border-color var(--dur-fast), box-shadow var(--dur-base) var(--ease-out-soft), transform var(--dur-fast) var(--ease-out-soft);border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding-inline:.75rem;display:inline-flex;position:relative;overflow:hidden}.portfolio-nav-button:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(circle at 22% 0%, var(--highlight), transparent 48%), linear-gradient(135deg, var(--surface-strong), var(--accent-soft));position:absolute;inset:1px}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-button:before{background:radial-gradient(circle at 22% 0%, color-mix(in srgb, var(--highlight) 92%, transparent), transparent 48%), linear-gradient(135deg, color-mix(in srgb, var(--surface-strong) 78%, transparent), color-mix(in srgb, var(--accent-soft) 38%, transparent))}}.portfolio-nav-button:before{pointer-events:none}.portfolio-nav-button:after{content:"";background:var(--highlight);border-radius:999px;height:1px;position:absolute;inset:.2rem 18% auto}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-button:after{background:color-mix(in srgb, var(--highlight) 86%, transparent)}}.portfolio-nav-button:after{opacity:.85;pointer-events:none}.portfolio-nav-button-icon{aspect-ratio:1;place-items:center;width:1.125rem;display:grid}.portfolio-nav-button-icon svg{width:100%;height:100%}.portfolio-nav-button-label{font-size:.75rem;font-weight:550}.portfolio-color-swatch{border:1px solid var(--foreground);flex-shrink:0;width:1rem;height:1rem;display:block}@supports (color:color-mix(in lab, red, red)){.portfolio-color-swatch{border:1px solid color-mix(in srgb, var(--foreground) 38%, transparent)}}.portfolio-color-swatch{border-radius:50%;box-shadow:inset 0 1px 1px #ffffff70}.portfolio-surface,.portfolio-hero-surface{position:relative}.portfolio-surface{border-top:1px solid var(--border);padding-block:clamp(3.5rem,7vw,6rem);position:relative}.portfolio-surface:before{content:"";pointer-events:none;background:linear-gradient(90deg, var(--accent), transparent);opacity:.72;width:clamp(3.5rem,8vw,7rem);height:1px;position:absolute;top:-1px;left:0}.portfolio-hero-surface{padding-block:clamp(4rem,9vw,8rem)}.portfolio-section{margin-top:0}.portfolio-section-header{max-width:22rem}.portfolio-section-header .portfolio-copy{margin-top:1.5rem}.portfolio-section-body{min-width:0}.portfolio-timeline-entry{border-top:1px solid var(--border);transition:padding-left var(--dur-base) var(--ease-out-expo), border-color var(--dur-fast);padding-block:1.75rem;position:relative}.portfolio-timeline{padding-left:2.25rem;position:relative}.portfolio-timeline:before,.portfolio-timeline:after{content:"";pointer-events:none;width:1px;position:absolute;top:.35rem;bottom:.35rem;left:.45rem}.portfolio-timeline:before{background:var(--border)}.portfolio-timeline:after{background:linear-gradient(to bottom, transparent, var(--accent), var(--accent-three), transparent);filter:drop-shadow(0 0 4px var(--accent-ring));animation:portfolio-timeline-flow 3.4s var(--ease-out-soft) infinite;background-size:100% 220%}.portfolio-timeline-node{z-index:1;border:2px solid var(--accent);background:var(--page-bg);width:.625rem;height:.625rem;box-shadow:0 0 0 0 var(--accent);border-radius:50%;position:absolute;top:2rem;left:-2.1rem}@supports (color:color-mix(in lab, red, red)){.portfolio-timeline-node{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent)}}.portfolio-timeline-node{animation:portfolio-timeline-node-pulse 2.8s var(--ease-smooth) infinite}.portfolio-timeline-entry:first-child .portfolio-timeline-node{top:.35rem}.portfolio-timeline-entry:before{content:"";background:var(--accent);opacity:0;width:1px;transition:opacity var(--dur-fast), transform var(--dur-base) var(--ease-out-expo);position:absolute;inset:1.65rem auto 1.65rem 0;transform:scaleY(.4)}.portfolio-timeline-entry:first-child{border-top:0;padding-top:0}.portfolio-timeline-entry:last-child{padding-bottom:0}.portfolio-timeline-entry h3{max-width:30rem;font-size:1.125rem;font-weight:550}.portfolio-timeline-entry .portfolio-copy{max-width:39rem;font-size:.9375rem}.portfolio-timeline-entry .portfolio-muted{flex-shrink:0;font-size:.75rem}.portfolio-card{border:1px solid var(--border);background:radial-gradient(circle at 100% 0%, var(--accent), transparent 18rem), var(--surface);border-radius:.75rem;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.portfolio-card{background:radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--accent) 6%, transparent), transparent 18rem), var(--surface)}}.portfolio-card{box-shadow:inset 0 1px 0 var(--highlight);transition:border-color var(--dur-fast), background-color var(--dur-fast), box-shadow var(--dur-base), transform var(--dur-base) var(--ease-out-expo)}.portfolio-card:hover,.portfolio-card:focus-within{border-color:var(--border-strong);box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-card), 0 0 0 1px var(--accent)}@supports (color:color-mix(in lab, red, red)){.portfolio-card:hover,.portfolio-card:focus-within{box-shadow:inset 0 1px 0 var(--highlight), var(--shadow-card), 0 0 0 1px color-mix(in srgb, var(--accent) 6%, transparent)}}.portfolio-card:hover,.portfolio-card:focus-within{transform:translateY(-3px)}.portfolio-inset{border:1px solid var(--border);background:var(--surface-muted);border-radius:.75rem}.portfolio-eyebrow{color:var(--accent);font-family:var(--font-geist-mono), monospace;letter-spacing:.16em;text-transform:uppercase;text-shadow:0 0 18px var(--accent);font-size:.6875rem;font-weight:500;line-height:1.5}@supports (color:color-mix(in lab, red, red)){.portfolio-eyebrow{text-shadow:0 0 18px color-mix(in srgb, var(--accent) 32%, transparent)}}.portfolio-copy{color:var(--text-soft);line-height:1.8}.portfolio-muted{color:var(--text-muted)}.portfolio-chip,.portfolio-chip-muted{border-radius:.25rem;align-items:center;padding:.5rem .625rem;font-size:.75rem;font-weight:450;line-height:1.4;display:inline-flex}.portfolio-chip{background:var(--accent-soft);color:var(--accent-strong)}.portfolio-chip-muted{background:var(--surface-muted);color:var(--text-soft)}.portfolio-action{border:1px solid var(--border-strong);min-height:2.75rem;color:var(--foreground);transition:background-color var(--dur-fast), border-color var(--dur-fast);border-radius:999px;justify-content:center;align-items:center;gap:.625rem;padding:.75rem 1.125rem;font-size:.8125rem;font-weight:500;line-height:1.25;display:inline-flex}.portfolio-action:hover{background:var(--accent-soft);border-color:var(--accent)}.portfolio-icon-button,.portfolio-quiet-button,.portfolio-control{border:1px solid var(--border);background:var(--surface-strong);min-width:2.75rem;min-height:2.75rem;color:var(--foreground);transition:background-color var(--dur-fast), border-color var(--dur-fast)}.portfolio-icon-button:hover,.portfolio-quiet-button:hover,.portfolio-control:hover{background:var(--accent-soft);border-color:var(--border-strong)}.portfolio-nav-actions .portfolio-icon-button{border-color:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-actions .portfolio-icon-button{border-color:color-mix(in srgb, var(--border-strong) 48%, var(--highlight))}}.portfolio-nav-actions .portfolio-icon-button{background:var(--surface-strong)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-actions .portfolio-icon-button{background:color-mix(in srgb, var(--surface-strong) 44%, transparent)}}.portfolio-nav-actions .portfolio-icon-button{box-shadow:inset 0 1px 0 var(--highlight), inset 0 -1px 0 var(--foreground), 0 7px 18px var(--foreground)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-actions .portfolio-icon-button{box-shadow:inset 0 1px 0 color-mix(in srgb, var(--highlight) 88%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--foreground) 7%, transparent), 0 7px 18px color-mix(in srgb, var(--foreground) 8%, transparent)}}.portfolio-nav-actions .portfolio-icon-button:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-actions .portfolio-icon-button:hover{border-color:color-mix(in srgb, var(--accent) 52%, var(--border-strong))}}.portfolio-nav-actions .portfolio-icon-button:hover{background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-actions .portfolio-icon-button:hover{background:color-mix(in srgb, var(--accent-soft) 48%, transparent)}}.portfolio-nav-actions .portfolio-icon-button:hover{box-shadow:inset 0 1px 0 var(--highlight), inset 0 -1px 0 var(--accent), 0 10px 24px var(--accent)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-actions .portfolio-icon-button:hover{box-shadow:inset 0 1px 0 color-mix(in srgb, var(--highlight) 96%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--accent) 12%, transparent), 0 10px 24px color-mix(in srgb, var(--accent) 16%, transparent)}}.portfolio-nav-actions .portfolio-icon-button:hover{transform:translateY(-1px)}.portfolio-nav-actions .portfolio-icon-button:active{box-shadow:inset 0 2px 5px var(--foreground), 0 3px 9px var(--foreground)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-actions .portfolio-icon-button:active{box-shadow:inset 0 2px 5px color-mix(in srgb, var(--foreground) 10%, transparent), 0 3px 9px color-mix(in srgb, var(--foreground) 7%, transparent)}}.portfolio-nav-actions .portfolio-icon-button:active{transform:translateY(0)scale(.97)}.portfolio-nav-actions .portfolio-icon-button[aria-expanded=true]{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-actions .portfolio-icon-button[aria-expanded=true]{border-color:color-mix(in srgb, var(--accent) 58%, var(--border-strong))}}.portfolio-nav-actions .portfolio-icon-button[aria-expanded=true]{box-shadow:inset 0 1px 0 var(--highlight), 0 0 0 3px var(--accent), 0 8px 20px var(--accent)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav-actions .portfolio-icon-button[aria-expanded=true]{box-shadow:inset 0 1px 0 color-mix(in srgb, var(--highlight) 92%, transparent), 0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent), 0 8px 20px color-mix(in srgb, var(--accent) 12%, transparent)}}.portfolio-panel-label{color:var(--text-muted);font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.5rem;font-size:.6875rem;display:inline-flex}.portfolio-home-hero{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:center;gap:3rem;min-height:min(740px,100svh - 5rem);padding-block:5.5rem;display:grid}.portfolio-home-hero h1{max-width:8ch;font-size:clamp(4rem,8vw,7rem)}.portfolio-hero-identity{gap:2rem;display:grid}.portfolio-hero-roles{color:var(--text-soft);flex-wrap:wrap;gap:.5rem 1.5rem;font-size:1.0625rem;display:flex}.portfolio-hero-roles span+span{align-items:center;gap:1.5rem;display:flex}.portfolio-hero-roles span+span:before{content:"";background:var(--text-muted);border-radius:50%;width:4px;height:4px}.portfolio-hero-console{max-width:31rem;margin-top:.75rem}.portfolio-console-row{border-top:1px solid var(--border);color:var(--text-soft);grid-template-columns:4.5rem minmax(0,1fr);gap:1rem;padding-block:.875rem;font-size:.8125rem;display:grid}.portfolio-console-key{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;padding-top:.2rem;font-size:.625rem}.portfolio-portrait{aspect-ratio:1;justify-self:end;place-items:center;width:100%;max-width:25rem;display:grid;position:relative}.portfolio-portrait-image{aspect-ratio:1;background:var(--surface-inset);border:1px solid var(--border-strong);border-radius:50%;width:85%;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.portfolio-portrait-image{border:1px solid color-mix(in srgb, var(--border-strong) 80%, transparent)}}.portfolio-portrait-image{box-shadow:0 30px 70px var(--background), 0 0 60px var(--accent), inset 0 0 0 .5rem var(--surface-strong)}@supports (color:color-mix(in lab, red, red)){.portfolio-portrait-image{box-shadow:0 30px 70px color-mix(in srgb, var(--background) 50%, transparent), 0 0 60px color-mix(in srgb, var(--accent) 10%, transparent), inset 0 0 0 .5rem color-mix(in srgb, var(--surface-strong) 35%, transparent)}}.portfolio-engineering-system{pointer-events:none;position:absolute;inset:-10%}.portfolio-circuit-board{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.portfolio-circuit-traces,.portfolio-circuit-current,.portfolio-radio-waves{fill:none;stroke-linecap:round;stroke-linejoin:round}.portfolio-circuit-traces{stroke:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){.portfolio-circuit-traces{stroke:color-mix(in srgb, var(--border-strong) 62%, transparent)}}.portfolio-circuit-traces{stroke-width:1px}.portfolio-circuit-current{stroke:var(--accent);stroke-width:2px;filter:drop-shadow(0 0 4px var(--accent-ring))}.portfolio-circuit-current path{stroke-dasharray:.08 .92;stroke-dashoffset:1px;animation:3.2s linear infinite portfolio-current-flow}.portfolio-circuit-current path:nth-child(2n){animation-direction:reverse}.portfolio-circuit-nodes{fill:var(--accent);filter:drop-shadow(0 0 5px var(--accent-ring))}.portfolio-circuit-nodes circle{transform-box:fill-box;transform-origin:50%;animation:portfolio-node-pulse 2.4s var(--ease-smooth) infinite}.portfolio-circuit-nodes circle:nth-child(2n){animation-delay:-.8s}.portfolio-circuit-nodes circle:nth-child(3n){animation-delay:-1.6s}.portfolio-radio-waves{stroke:var(--accent-three)}@supports (color:color-mix(in lab, red, red)){.portfolio-radio-waves{stroke:color-mix(in srgb, var(--accent-three) 55%, transparent)}}.portfolio-radio-waves{stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;animation:portfolio-radio-pulse 3s var(--ease-out-soft) infinite}.portfolio-radio-waves-right{animation-delay:-1.5s}.portfolio-gear{fill:none;stroke:var(--accent-two);stroke-linecap:round;stroke-width:2px;transform-box:fill-box;transform-origin:50%;opacity:.72}.portfolio-gear-primary{animation:12s linear infinite portfolio-gear-turn}.portfolio-gear-secondary{animation:9s linear infinite reverse portfolio-gear-turn}.portfolio-skills-grid{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:3rem;display:grid}.portfolio-skill{border-bottom:1px solid var(--border);align-items:center;gap:.875rem;min-height:5.5rem;padding:1rem .75rem;display:flex}.portfolio-skill-icon{background:#fff;border-radius:.5rem;flex-shrink:0;place-items:center;width:2.75rem;height:2.75rem;display:grid}.portfolio-skill p{color:var(--text-soft);font-size:.8125rem;font-weight:500}.portfolio-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin-top:2rem;display:grid}.project-showcase-card{flex-direction:column;min-height:20rem;padding:clamp(1.5rem,3vw,2.5rem);display:flex}.project-showcase-card-featured{grid-column:span 2;min-height:21rem}.project-card-heading{min-width:0}.project-showcase-card h3{max-width:34ch;font-size:clamp(1.5rem,2.4vw,2rem);font-weight:500;line-height:1.2}.project-showcase-card .portfolio-copy{max-width:68ch;margin-top:1.5rem;font-size:.9375rem}.project-tag{color:var(--text-muted);font-size:.625rem;font-family:var(--font-geist-mono), monospace;letter-spacing:.05em;text-transform:uppercase;line-height:1.5}.project-tag+.project-tag:before{content:"/";color:var(--border-strong);margin-inline:.5rem .875rem}.project-card-link{border-top:1px solid var(--border);width:100%;min-height:3.5rem;color:var(--foreground);text-align:left;justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem;padding-top:1rem;font-size:.8125rem;font-weight:500;display:flex}.project-card-link-icon{border:1px solid var(--border-strong);width:2.5rem;height:2.5rem;transition:transform var(--dur-base) var(--ease-out-expo), background-color var(--dur-fast);border-radius:50%;flex-shrink:0;place-items:center;display:grid}a.project-card-link:hover .project-card-link-icon{background:var(--accent-soft);transform:translate(3px)}.project-card-link:disabled{color:var(--text-muted);cursor:default}.personal-section-header{max-width:42rem;margin-bottom:2.5rem}.personal-section-header .portfolio-copy{margin-inline:0}.personal-hero{align-content:center;min-height:28rem;display:grid}.personal-hero h1{font-size:clamp(3.75rem,8vw,7rem)}.personal-interests{flex-wrap:wrap;gap:1.5rem;margin-top:2.5rem;display:flex}.personal-interest{color:var(--text-soft);align-items:center;gap:.625rem;font-size:.8125rem;display:flex}.dashboard-hero-grid{align-items:center;gap:1.5rem;display:grid}.dashboard-signal-panel{border-left:1px solid var(--border);padding-left:2rem}.dashboard-signal-row{z-index:1;border-top:1px solid var(--border);font-family:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, monospace;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 0;font-size:.75rem;display:flex;position:relative}.dashboard-signal-row:first-child{border-top:0}.dashboard-signal-name{color:var(--text-soft);font-weight:650}.dashboard-signal-type{color:var(--accent-strong);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.dashboard-card{isolation:isolate}.dashboard-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.dashboard-embed-frame{border-radius:1.15rem;position:relative;overflow:hidden}.dashboard-embed-frame:before{content:"";z-index:2;pointer-events:none;border-radius:inherit;box-shadow:inset 0 1px 0 var(--highlight), inset 0 0 0 1px var(--accent);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.dashboard-embed-frame:before{box-shadow:inset 0 1px 0 var(--highlight), inset 0 0 0 1px color-mix(in srgb, var(--accent) 8%, transparent)}}.dashboard-frame-chrome{border-bottom:1px solid var(--border);background:var(--surface-strong);justify-content:space-between;align-items:center;gap:1rem;display:flex}@supports (color:color-mix(in lab, red, red)){.dashboard-frame-chrome{background:color-mix(in srgb, var(--surface-strong) 74%, transparent)}}.dashboard-frame-chrome{font-family:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, monospace;letter-spacing:.08em;text-transform:uppercase;padding:.7rem .9rem;font-size:.68rem;font-weight:650}.dashboard-frame-dots{gap:.35rem;display:flex}.dashboard-frame-dots span{background:var(--accent);border-radius:999px;width:.42rem;height:.42rem}.dashboard-loading-sheen{z-index:1;pointer-events:none;background:linear-gradient(110deg, transparent 0 32%, var(--highlight) 46%, transparent 58%), linear-gradient(180deg, var(--surface-inset), var(--surface-muted));position:absolute;inset:2.35rem 0 0}@supports (color:color-mix(in lab, red, red)){.dashboard-loading-sheen{background:linear-gradient(110deg, transparent 0 32%, color-mix(in srgb, var(--highlight) 74%, transparent) 46%, transparent 58%), linear-gradient(180deg, var(--surface-inset), color-mix(in srgb, var(--surface-muted) 82%, transparent))}}.dashboard-loading-sheen{animation:dashboard-loading-sheen 1.45s var(--ease-smooth) infinite;background-size:240% 100%,100% 100%}.outdoor-photo-stage{box-shadow:inset 0 1px 0 var(--highlight), 0 18px 42px var(--accent)}@supports (color:color-mix(in lab, red, red)){.outdoor-photo-stage{box-shadow:inset 0 1px 0 var(--highlight), 0 18px 42px color-mix(in srgb, var(--accent) 9%, transparent)}}.outdoor-thumbnail-strip{scrollbar-color:var(--border-strong) transparent}.outdoor-thumbnail-button{box-shadow:inset 0 1px 0 var(--highlight)}.outdoor-thumbnail-button:hover,.outdoor-thumbnail-button:focus-visible{transform:translateY(-2px)}.dog-photo-grid{grid-template-rows:clamp(10.5rem,56vw,18rem) repeat(2,clamp(8.5rem,38vw,13rem)) clamp(9.5rem,45vw,14rem);grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.5rem,2.4vw,.75rem);margin:0;padding:0;list-style:none;display:grid}.dog-photo-tile{isolation:isolate;border:1px solid var(--border);background:var(--surface-inset);min-width:0;box-shadow:inset 0 1px 0 var(--highlight), 0 16px 34px var(--accent);border-radius:clamp(.8rem,2vw,1.1rem);position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.dog-photo-tile{box-shadow:inset 0 1px 0 var(--highlight), 0 16px 34px color-mix(in srgb, var(--accent) 8%, transparent)}}.dog-photo-tile{transition:border-color var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-out-soft), transform var(--dur-fast) var(--ease-out-soft)}.dog-photo-tile:after{content:"";z-index:3;pointer-events:none;border-radius:inherit;background:linear-gradient(180deg, var(--highlight), transparent 18%), linear-gradient(0deg, var(--page-bg-deep), transparent 32%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.dog-photo-tile:after{background:linear-gradient(180deg, color-mix(in srgb, var(--highlight) 46%, transparent), transparent 18%), linear-gradient(0deg, color-mix(in srgb, var(--page-bg-deep) 8%, transparent), transparent 32%)}}.dog-photo-image{z-index:2;transition:filter var(--dur-base) var(--ease-smooth), transform var(--dur-slow) var(--ease-out-soft)}.dog-photo-backdrop{filter:blur(22px)saturate(.9)brightness(.82);opacity:.72;transform:scale(1.12)}.dog-photo-tile--feature{grid-area:1/1/auto/-1}.dog-photo-tile--portrait{grid-area:2/1/4}.dog-photo-tile--detail-one{grid-area:2/2}.dog-photo-tile--detail-two{grid-area:3/2}.dog-photo-tile--detail-three{grid-area:4/1/auto/-1}.photo-lightbox{z-index:1000;background:radial-gradient(circle at 50% 0,#0e74903d,#0000 42%),#020617f0;justify-content:center;align-items:center;width:100vw;height:100dvh;display:flex;position:fixed;inset:0;overflow:hidden}.photo-lightbox-thumbnails{right:max(.75rem, env(safe-area-inset-right));bottom:max(.75rem, env(safe-area-inset-bottom));left:max(.75rem, env(safe-area-inset-left));z-index:3;scrollbar-color:#67e8f9b8 transparent;-webkit-backdrop-filter:blur(18px)saturate(1.2);backdrop-filter:blur(18px)saturate(1.2);background:#0f172ad1;border:1px solid #94a3b852;border-radius:1rem;width:min(100vw - 1.5rem,58rem);margin-inline:auto;padding:.5rem;position:fixed;overflow:auto hidden;box-shadow:0 18px 42px #00000042}.photo-lightbox-control{color:#f8fafc;width:2.75rem;height:2.75rem;transition:transform var(--dur-fast) var(--ease-out-soft), border-color var(--dur-fast) var(--ease-smooth), background-color var(--dur-fast) var(--ease-smooth);background:#0f172ae6;border:1px solid #94a3b86b;border-radius:999px;flex:none;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 14px 30px #0000004d}.photo-lightbox-control:hover,.photo-lightbox-control:focus-visible{background:#1e293bf5;border-color:#67e8f9cc;transform:translateY(-1px)}.photo-lightbox-stage{z-index:1;width:100vw;height:100dvh;padding:max(4rem, env(safe-area-inset-top)) clamp(3.25rem, 7vw, 5.5rem) calc(max(5.75rem, env(safe-area-inset-bottom)) + .75rem);justify-content:center;align-items:center;display:flex;position:relative}.photo-lightbox-image-area{touch-action:pan-y pinch-zoom;width:min(100%,72rem);height:100%;max-height:100%;position:relative}.photo-lightbox-image-area img{-webkit-user-select:none;user-select:none;border-radius:1rem}.photo-lightbox-close{z-index:6;top:max(1rem, env(safe-area-inset-top));left:max(1rem, env(safe-area-inset-left));position:fixed}.photo-lightbox-close:hover,.photo-lightbox-close:focus-visible{transform:translateY(-1px)}.photo-lightbox-nav{z-index:4;position:fixed;top:50%;transform:translateY(-50%)}.photo-lightbox-nav:hover,.photo-lightbox-nav:focus-visible{transform:translateY(calc(-50% - 1px))}.photo-lightbox-nav-previous{left:max(1rem, env(safe-area-inset-left))}.photo-lightbox-nav-next{right:max(1rem, env(safe-area-inset-right))}.photo-lightbox-thumbnail{opacity:.72;width:4.75rem;height:3.5rem;transition:opacity var(--dur-fast) var(--ease-smooth), border-color var(--dur-fast) var(--ease-smooth), transform var(--dur-fast) var(--ease-out-soft);background:#0f172ae6;border:1px solid #94a3b847;border-radius:.72rem;flex:none;position:relative;overflow:hidden}.photo-lightbox-thumbnail:hover,.photo-lightbox-thumbnail:focus-visible,.photo-lightbox-thumbnail-active{opacity:1;border-color:#67e8f9d1;transform:translateY(-1px)}.chess-frame{background:linear-gradient(180deg, var(--surface-strong), var(--surface-muted)), radial-gradient(circle at 50% 0%, var(--accent-soft), transparent 52%)}.reading-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.reading-summary-tile{text-align:center;padding:1rem}.reading-summary-count,.reading-summary-label{display:block}.reading-summary-count{color:var(--foreground);font-size:1.75rem;font-weight:760;line-height:1}.reading-summary-label{color:var(--text-muted);font-family:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, monospace;letter-spacing:.1em;text-transform:uppercase;margin-top:.45rem;font-size:.66rem;font-weight:700}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-4{top:calc(var(--spacing) * 4)}.top-24{top:calc(var(--spacing) * 24)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-4{right:calc(var(--spacing) * 4)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:calc(var(--spacing) * 0)}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[100\]{z-index:100}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.\[display\:-webkit-box\]{display:-webkit-box}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.aspect-\[2\/3\]{aspect-ratio:2/3}.aspect-\[4\/3\]{aspect-ratio:4/3}.h-0\.5{height:calc(var(--spacing) * .5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.h-11{height:calc(var(--spacing) * 11)}.h-16{height:calc(var(--spacing) * 16)}.h-\[18px\]{height:18px}.h-\[70vh\]{height:70vh}.h-\[520px\]{height:520px}.h-\[760px\]{height:760px}.h-auto{height:auto}.h-full{height:100%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-24{width:calc(var(--spacing) * 24)}.w-\[18px\]{width:18px}.w-full{width:100%}.w-max{width:max-content}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[760px\]{max-width:760px}.max-w-\[880px\]{max-width:880px}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-40{min-width:calc(var(--spacing) * 40)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-left{transform-origin:0}.origin-top-right{transform-origin:100% 0}.-translate-y-1{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-zoom-in{cursor:zoom-in}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-full{border-radius:3.40282e38px}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--border\)\]{border-color:var(--border)}.border-amber-300{border-color:var(--color-amber-300)}.border-amber-700\/70{border-color:#b75000b3}@supports (color:color-mix(in lab, red, red)){.border-amber-700\/70{border-color:color-mix(in oklab, var(--color-amber-700) 70%, transparent)}}.border-black\/30{border-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.border-black\/30{border-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.border-cyan-300{border-color:var(--color-cyan-300)}.border-cyan-700{border-color:var(--color-cyan-700)}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-700{border-color:var(--color-slate-700)}.bg-\[var\(--accent\)\]{background-color:var(--accent)}.bg-\[var\(--accent-soft\)\]{background-color:var(--accent-soft)}.bg-\[var\(--accent-two-soft\)\]{background-color:var(--accent-two-soft)}.bg-\[var\(--surface\)\]{background-color:var(--surface)}.bg-\[var\(--surface-inset\)\]{background-color:var(--surface-inset)}.bg-\[var\(--surface-strong\)\]{background-color:var(--surface-strong)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-900\/20{background-color:#7b330633}@supports (color:color-mix(in lab, red, red)){.bg-amber-900\/20{background-color:color-mix(in oklab, var(--color-amber-900) 20%, transparent)}}.bg-\[linear-gradient\(180deg\,transparent\,rgba\(255\,255\,255\,0\.06\)\,transparent\)\]{background-image:linear-gradient(#0000,#ffffff0f,#0000)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-geist-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-\[var\(--accent-strong\)\]{color:var(--accent-strong)}.text-\[var\(--accent-two\)\]{color:var(--accent-two)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-soft\)\]{color:var(--text-soft)}.text-amber-200{color:var(--color-amber-200)}.text-amber-900{color:var(--color-amber-900)}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.opacity-100{opacity:1}.shadow-\[0_0_0_3px_rgba\(14\,116\,144\,0\.12\)\]{--tw-shadow:0 0 0 3px var(--tw-shadow-color,#0e74901f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_3px_rgba\(103\,232\,249\,0\.14\)\]{--tw-shadow:0 0 0 3px var(--tw-shadow-color,#67e8f924);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_var\(--highlight\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,var(--highlight));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow-card\)\]{--tw-shadow:var(--shadow-card);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + 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)}.ring-\[var\(--accent\)\]{--tw-ring-color:var(--accent)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-\[var\(--surface-strong\)\]{--tw-ring-offset-color:var(--surface-strong)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.\[-webkit-box-orient\:vertical\]{-webkit-box-orient:vertical}.\[-webkit-line-clamp\:2\]{-webkit-line-clamp:2}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-cyan-300\/70:hover{border-color:#53eafdb3}@supports (color:color-mix(in lab, red, red)){.hover\:border-cyan-300\/70:hover{border-color:color-mix(in oklab, var(--color-cyan-300) 70%, transparent)}}.hover\:border-cyan-700\/60:hover{border-color:#00749299}@supports (color:color-mix(in lab, red, red)){.hover\:border-cyan-700\/60:hover{border-color:color-mix(in oklab, var(--color-cyan-700) 60%, transparent)}}.hover\:border-slate-400:hover{border-color:var(--color-slate-400)}.hover\:border-slate-500:hover{border-color:var(--color-slate-500)}.hover\:bg-\[var\(--surface-muted\)\]:hover{background-color:var(--surface-muted)}.hover\:text-\[var\(--foreground\)\]:hover{color:var(--foreground)}.hover\:opacity-100:hover{opacity:1}}@media (prefers-reduced-motion:reduce){.motion-reduce\:hidden{display:none}}@media (min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:right-6{right:calc(var(--spacing) * 6)}.md\:bottom-6{bottom:calc(var(--spacing) * 6)}.md\:mx-0{margin-inline:calc(var(--spacing) * 0)}.md\:aspect-\[16\/10\]{aspect-ratio:16/10}.md\:h-20{height:calc(var(--spacing) * 20)}.md\:h-\[640px\]{height:640px}.md\:w-28{width:calc(var(--spacing) * 28)}.md\:flex-row{flex-direction:row}.md\:items-end{align-items:flex-end}.md\:justify-between{justify-content:space-between}.md\:gap-3{gap:calc(var(--spacing) * 3)}.md\:p-3{padding:calc(var(--spacing) * 3)}.md\:p-5{padding:calc(var(--spacing) * 5)}.md\:pt-8{padding-top:calc(var(--spacing) * 8)}.md\:text-left{text-align:left}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media (min-width:80rem){.xl\:h-\[840px\]{height:840px}.xl\:flex-row{flex-direction:row}.xl\:items-baseline{align-items:baseline}.xl\:justify-between{justify-content:space-between}}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f7f8fa;--foreground:#1d252d;--site-text-color:var(--foreground);--page-bg:#f7f8fa;--page-bg-deep:#e9edf2;--surface:#f2f4f7;--surface-strong:#fff;--surface-muted:#eef1f5;--surface-inset:#e7ebf0;--border:#d9dee5;--border-strong:#9aaabc;--text-soft:#4c5865;--text-muted:#697684;--accent:#3f6588;--accent-strong:#2d5274;--accent-soft:#e2eaf2;--accent-ring:#87a8c4;--accent-two:#806f56;--accent-two-soft:#eee9df;--accent-three:#4f7f8f;--accent-three-soft:#e2edf0;--shadow-soft:0 24px 64px #1d252d0a;--shadow-card:0 8px 24px #1d252d0a;--grid-line:#315a7a0a;--highlight:#ffffff80;--dur-fast:.18s;--dur-base:.36s;--dur-slow:.6s;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-soft:cubic-bezier(.22, 1, .36, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#090c11;--foreground:#f1f4f7;--page-bg:#090c11;--page-bg-deep:#101722;--surface:#111821;--surface-strong:#17212c;--surface-muted:#131c26;--surface-inset:#1a2632;--border:#263442;--border-strong:#536c82;--text-soft:#b5c1cc;--text-muted:#8e9cab;--accent:#8fc2e8;--accent-strong:#bfdcf2;--accent-soft:#182c3d;--accent-ring:#477da4;--accent-two:#d0b47b;--accent-two-soft:#2d271b;--accent-three:#7cc7d6;--accent-three-soft:#142d34;--shadow-soft:0 28px 80px #00000052;--shadow-card:0 16px 42px #00000030;--grid-line:#b7d8bd0a;--highlight:#ffffff0a}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{background:var(--background);color:var(--foreground);font-family:var(--font-geist-sans), Arial, Helvetica, sans-serif;-webkit-font-smoothing:antialiased}::selection{background:var(--accent-soft);color:var(--foreground)}body.site-text-color-active .portfolio-content :where(p,li):not(.site-text-static),body.site-text-color-active .portfolio-content .portfolio-copy{color:var(--site-text-color)!important}@supports (color:color-mix(in lab, red, red)){body.site-text-color-active .portfolio-content .portfolio-copy{color:color-mix(in srgb, var(--site-text-color) 82%, var(--page-bg))!important}}body.site-text-color-active .portfolio-content .portfolio-muted{color:var(--site-text-color)!important}@supports (color:color-mix(in lab, red, red)){body.site-text-color-active .portfolio-content .portfolio-muted{color:color-mix(in srgb, var(--site-text-color) 68%, var(--page-bg))!important}}body.site-text-color-active .portfolio-hero-roles span,body.site-text-color-active .portfolio-hero-console span{color:var(--site-text-color)!important}:where(a,button,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px}@keyframes portfolio-current-flow{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes portfolio-node-pulse{0%,to{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1.35)}}@keyframes portfolio-radio-pulse{0%,to{opacity:.18}45%{opacity:.9}}@keyframes portfolio-gear-turn{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes portfolio-timeline-flow{0%{background-position:0 120%}to{background-position:0 -120%}}@keyframes portfolio-timeline-node-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent)}50%{box-shadow:0 0 0 .4rem color-mix(in srgb, var(--accent) 12%, transparent)}}@keyframes dashboard-loading-sheen{0%{background-position:160% 0,0 0}to{background-position:-80% 0,0 0}}.open-library-3d-wrap{perspective:1200px;perspective-origin:50%}.open-library-book-card{transform-style:preserve-3d;transition:transform var(--dur-fast) var(--ease-out-soft), box-shadow var(--dur-fast) var(--ease-out-soft), border-color var(--dur-fast) var(--ease-smooth);will-change:transform}.open-library-book-card:hover,.open-library-book-card:focus-visible{transform:translateY(-4px);box-shadow:0 20px 42px #02061747}.open-library-book-cover{transform:translateZ(34px)}.open-library-book-meta{transform:translateZ(18px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.portfolio-pointer-glow{display:none}}@media (min-width:768px){.dashboard-hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(18rem,.95fr)}.dog-photo-grid{grid-template-rows:repeat(3,clamp(8.5rem,14vw,11rem));grid-template-columns:repeat(12,minmax(0,1fr));gap:.75rem}.dog-photo-tile--feature{grid-area:1/1/3/10}.dog-photo-tile--portrait{grid-area:1/10/4/13}.dog-photo-tile--detail-one{grid-area:3/1/auto/4}.dog-photo-tile--detail-two{grid-area:3/4/auto/7}.dog-photo-tile--detail-three{grid-area:3/7/auto/10}}@media (max-width:640px){.dashboard-signal-row{flex-direction:column;align-items:flex-start;gap:.35rem}.photo-lightbox-stage{padding:max(4rem, env(safe-area-inset-top)) .75rem calc(max(5.75rem, env(safe-area-inset-bottom)) + .75rem)}.photo-lightbox-nav{top:auto;bottom:calc(max(5.75rem, env(safe-area-inset-bottom)) + 1rem);transform:none}.photo-lightbox-nav:hover,.photo-lightbox-nav:focus-visible{transform:translateY(-1px)}}@media (hover:none),(pointer:coarse){.portfolio-pointer-glow{display:none}}@media (hover:hover) and (pointer:fine){.portfolio-timeline-entry:hover{border-color:var(--accent);padding-left:.875rem}@supports (color:color-mix(in lab, red, red)){.portfolio-timeline-entry:hover{border-color:color-mix(in srgb, var(--accent) 28%, var(--border))}}.portfolio-timeline-entry:hover:before{opacity:.8;transform:scaleY(1)}.portfolio-skill{transition:background-color var(--dur-fast), transform var(--dur-base) var(--ease-out-expo)}.portfolio-skill:hover{background:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.portfolio-skill:hover{background:color-mix(in srgb, var(--accent-soft) 52%, transparent)}}.portfolio-skill:hover{transform:translateY(-2px)}.dog-photo-tile:hover{border-color:var(--border-strong);box-shadow:inset 0 1px 0 var(--highlight), 0 18px 38px var(--accent)}@supports (color:color-mix(in lab, red, red)){.dog-photo-tile:hover{box-shadow:inset 0 1px 0 var(--highlight), 0 18px 38px color-mix(in srgb, var(--accent) 12%, transparent)}}.dog-photo-tile:hover{transform:translateY(-2px)}.dog-photo-tile:hover .dog-photo-image{filter:saturate(1.04)contrast(1.01);transform:scale(1.018)}}@media (max-width:1023px){.portfolio-nav-button-label{display:none}.portfolio-skills-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:767px){.portfolio-nav-shell{grid-template-columns:minmax(0,1fr) auto;gap:.5rem;min-height:4.5rem;padding-inline:1rem;display:grid}.portfolio-nav-brand{display:none!important}.portfolio-nav-tab{gap:.375rem;padding-inline:.5rem;font-size:.8125rem}.portfolio-nav-tabs{width:auto}.portfolio-home-hero{grid-template-columns:1fr;gap:2.5rem;min-height:auto;padding-block:3rem 4rem}.portfolio-portrait{order:-1;justify-self:center;width:13rem}.portfolio-home-hero h1{max-width:none;font-size:clamp(3.5rem,12.5vw,6rem)}.portfolio-hero-identity{gap:1.5rem}.portfolio-skills-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-skill{text-align:center;flex-direction:column;gap:.625rem;padding-inline:.25rem}.portfolio-project-grid{grid-template-columns:1fr;gap:1rem}.project-showcase-card-featured{grid-column:auto}.personal-hero{min-height:25rem}}@media (max-width:374px){.portfolio-nav-shell{gap:.375rem;padding-inline:.75rem}.portfolio-nav-tabs{gap:.125rem}.portfolio-nav-tab-icon{display:none}}@media (prefers-reduced-motion:reduce),(scripting:none){.portfolio-circuit-current path,.portfolio-circuit-nodes circle,.portfolio-radio-waves,.portfolio-gear,.portfolio-timeline:after,.portfolio-timeline-node{animation:none!important}.portfolio-section[style],.portfolio-section [style]{opacity:1!important;filter:none!important;transform:none!important}}@media (min-width:768px){.project-showcase-card-featured{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:space-between;column-gap:4rem;min-height:20rem;display:grid}.project-showcase-card-featured .project-card-heading{grid-row:span 2}.project-showcase-card-featured .portfolio-copy{margin-top:0}.project-showcase-card-featured .project-card-link{grid-column:2}}.skip-link{z-index:100;background:var(--foreground);color:var(--background);border-radius:.5rem;padding:.875rem 1.25rem;position:fixed;top:.75rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.chess-pagination-button{border-radius:.5rem;place-items:center;min-width:2.75rem;min-height:2.75rem;display:grid}.chess-pagination-button span{background:var(--border-strong);width:1.25rem;height:3px;transition:background-color var(--dur-fast), width var(--dur-fast);border-radius:2px}.chess-pagination-button[aria-pressed=true] span{background:var(--accent);width:2rem}.chess-pagination-button:hover{background:var(--surface-muted)}.chess-puzzle-workspace{max-width:960px;margin-inline:auto}.chess-puzzle-picker{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.25rem 1.25rem;margin:0;display:flex}.chess-puzzle-choice{min-width:2.75rem;min-height:3rem;color:var(--text-soft);text-align:left;border-bottom:2px solid #0000;justify-content:center;align-items:center;padding:.75rem .25rem;font-size:.875rem;display:flex}.chess-puzzle-choice[aria-pressed=true]{border-bottom-color:var(--foreground);color:var(--foreground)}.chess-puzzle-choice:hover{color:var(--foreground)}.chess-puzzle-number{color:inherit;font-variant-numeric:tabular-nums}.chess-puzzle-player{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:clamp(1.5rem,4vw,3rem);display:grid}.chess-puzzle-board-frame{background:var(--surface-muted);border-radius:4px;min-width:0}.chess-puzzle-board-shell{position:relative}.chess-puzzle-board{width:100%;height:auto;display:block}.chess-puzzle-square-grid{grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));display:grid;position:absolute;inset:4.545%}.chess-puzzle-square-grid button{cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0}.chess-puzzle-square-grid button[aria-pressed=true]{box-shadow:inset 0 0 0 3px #26c2a3e6}.chess-puzzle-square-grid button[data-dragging=true]{cursor:grabbing}.chess-puzzle-drag-preview{z-index:2;aspect-ratio:1;pointer-events:none;filter:drop-shadow(0 .25rem .25rem #0000004d);width:10%;position:absolute;transform:translate(-50%,-50%)scale(1.08)}.chess-puzzle-drag-preview svg{width:100%;height:100%;display:block}.chess-puzzle-square-grid button:focus-visible{z-index:1;outline-offset:-3px;outline:3px solid #f5ce62;position:relative}.chess-puzzle-square-grid button:disabled{cursor:default}.chess-puzzle-incorrect-square{stroke:#b54c49;stroke-width:6px;filter:drop-shadow(0 0 .25rem #b54c4980)}.chess-puzzle-coordinate{fill:var(--text-soft);text-anchor:middle;font-size:22px}.chess-puzzle-piece{transition:transform .45s var(--ease-out-soft)}.chess-puzzle-piece.is-dragged{opacity:.25}.chess-puzzle-details{min-width:0;padding-top:.75rem}.chess-puzzle-turn{align-items:center;gap:.625rem;font-size:.875rem;font-weight:600;display:flex}.chess-puzzle-side{border:1px solid #687160;border-radius:50%;width:.875rem;height:.875rem}.chess-puzzle-side-white{background:#fffdf6}.chess-puzzle-side-black{background:#30342d}.chess-puzzle-prompt{margin-block:.875rem .5rem}.chess-puzzle-source{grid-column:1/-1;justify-self:center;margin-top:.5rem}.chess-puzzle-description{margin-top:.75rem}.chess-puzzle-sample{color:var(--text-muted);margin-top:1rem;font-size:.8125rem;line-height:1.6}.chess-puzzle-solution{border-top:1px solid var(--border);margin-top:1.75rem;padding-top:1.25rem}.chess-puzzle-solution h4{font-size:.9375rem;font-weight:600}.chess-puzzle-status{color:var(--text-soft);min-height:2.875rem;margin-top:.5rem;font-size:.875rem;line-height:1.65}.chess-puzzle-moves{flex-wrap:wrap;gap:.5rem;margin-block:.75rem;list-style:none;display:flex}.chess-puzzle-moves li{background:var(--surface-muted);border-radius:3px;padding:.375rem .625rem;font-size:.9375rem}.chess-puzzle-moves li[aria-current=step]{background:var(--surface-inset);font-weight:600}.chess-puzzle-moves li span{color:var(--text-muted);margin-right:.25rem;font-size:.75rem}.chess-puzzle-controls{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.chess-puzzle-controls svg{flex-shrink:0;width:1rem;height:1rem}.chess-puzzle-play{color:#fffdf6;background:#425b36;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;gap:.625rem;width:10rem;min-height:2.75rem;padding:.625rem 1rem;font-size:.875rem;font-weight:600;display:inline-flex}.chess-puzzle-play:hover{background:#34492a}.chess-puzzle-step-controls{gap:.25rem;display:flex}.chess-puzzle-step-controls button{border:1px solid var(--border);border-radius:4px;place-items:center;width:2.75rem;height:2.75rem;display:grid}.chess-puzzle-step-controls button:hover:enabled{background:var(--surface-muted)}.chess-puzzle-reset{min-height:2.75rem;color:var(--text-soft);text-underline-offset:3px;margin-top:.375rem;font-size:.8125rem;text-decoration:underline}.chess-puzzle-controls button:disabled,.chess-puzzle-reset:disabled{opacity:.45;cursor:default}@media (max-width:700px){.chess-puzzle-player{grid-template-columns:minmax(0,1fr);gap:1rem}.chess-puzzle-details{padding-top:0}.chess-puzzle-picker{gap:0 1rem}.chess-puzzle-choice{font-size:.8125rem}}@media (prefers-reduced-motion:reduce){.chess-puzzle-piece{transition:none}}.personal-carousel{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.personal-carousel-controls{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;width:100%;padding-bottom:.75rem;display:flex}.personal-carousel-count{color:var(--text-soft);font-variant-numeric:tabular-nums;font-size:.875rem}.personal-carousel-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.personal-carousel-actions button{border:1px solid var(--border);width:2.75rem;height:2.75rem;color:var(--text-soft);border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:.8125rem;display:inline-flex}.personal-carousel-actions button:hover:enabled{background:var(--surface-muted);color:var(--foreground)}.personal-carousel-actions button:disabled{opacity:.45;cursor:default}.personal-carousel-actions svg{flex-shrink:0;width:1rem;height:1rem}@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}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
