/*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--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-outline-style:solid;--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}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,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;--ease-out:cubic-bezier(0,0,.2,1);--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{*,::backdrop,:after,:before{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}:host,html{-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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.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}.border{border-style:var(--tw-border-style);border-width:1px}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,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;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--system-font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue",Arial,sans-serif;--mono-font:"SFMono-Regular","SF Mono",Menlo,Monaco,Consolas,monospace;--ease-spring:cubic-bezier(.2,.82,.2,1);--ease-out:cubic-bezier(.22,1,.36,1);--duration-fast:.14s;--duration-medium:.26s;--window-radius:24px;--control-radius:12px;--glass-opacity:.54;--glass-blur:26px;--glass-saturation:155%;--text-primary:#172033;--text-secondary:#5f6878;--text-tertiary:#858c9a;--content-bg:#f8f9fc;--content-raised:#fff;--content-muted:#eef1f6;--hairline:#1720331a;--accent:#3b6ef5;--accent-soft:#3b6ef51f;--glass-rgb:244,247,255;--chrome-text:#101727;--shadow-window:0 35px 90px #0d152b47,0 6px 24px #0d152b24}*{box-sizing:border-box}body,html{min-height:100%;font-family:var(--system-font);background:#111427;margin:0;overflow:hidden}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent;color:inherit}:focus-visible{outline-offset:3px;outline:3px solid #407bffd1}::selection{color:#fff;background:#416fe5}.portfolio-root{width:100%;height:100dvh;color:var(--text-primary)}.portfolio-root[data-appearance=dark]{--text-primary:#f4f6fb;--text-secondary:#aeb6c5;--text-tertiary:#818a9a;--content-bg:#111522;--content-raised:#191e2b;--content-muted:#222837;--hairline:#ffffff1a;--accent:#7397ff;--accent-soft:#7397ff26;--glass-rgb:18,24,39;--chrome-text:#f8f9fc;--shadow-window:0 38px 100px #0000008c,0 6px 22px #00000059}.portfolio-root[data-os=tahoe]{--window-radius:18px;--control-radius:10px;--accent:#2563eb}.glass-surface{color:var(--chrome-text);background:linear-gradient(135deg,#ffffff57,#ffffff0a 42%),rgba(var(--glass-rgb),var(--glass-opacity));-webkit-backdrop-filter:blur(var(--glass-blur))saturate(var(--glass-saturation));backdrop-filter:blur(var(--glass-blur))saturate(var(--glass-saturation));border:1px solid #ffffff5c;box-shadow:inset 0 1px #ffffff85,inset 0 -1px #ffffff14,0 14px 46px #11182e2e}.portfolio-root[data-appearance=dark] .glass-surface{background:linear-gradient(135deg,#ffffff1f,#ffffff04 48%),rgba(var(--glass-rgb),var(--glass-opacity));border-color:#ffffff24}.portfolio-root[data-reduce-transparency=true] .glass-surface{background:rgb(var(--glass-rgb));-webkit-backdrop-filter:none;backdrop-filter:none}.glass-thin{--glass-opacity:.4}.glass-thick{--glass-opacity:.76}.wallpaper{isolation:isolate;background-color:#b041bd;background-image:url(/wallpaper.jpg);background-position:50%;background-size:cover;position:relative}.portfolio-root[data-wallpaper=dusk] .wallpaper{background-image:linear-gradient(128deg,#0000 0 47%,#ffffff26 47.1% 47.5%,#0000 47.6%),radial-gradient(at 75% 18%,#ffad5ee6,#0000 29%),radial-gradient(at 48% 72%,#713d99d6,#0000 39%),radial-gradient(at 8% 15%,#2c65a1d1,#0000 37%),linear-gradient(145deg,#243b64,#604774 50%,#c66e63)}.portfolio-root[data-wallpaper=graphite] .wallpaper{background-image:linear-gradient(128deg,#0000 0 47%,#ffffff1f 47.1% 47.5%,#0000 47.6%),radial-gradient(at 80% 18%,#8899abcc,#0000 27%),radial-gradient(at 56% 72%,#273548d9,#0000 42%),linear-gradient(145deg,#73808c,#374350 50%,#151d2b)}.desktop-experience,.desktop-shell,.mobile-experience,.mobile-shell{width:100%;height:100%}.mobile-experience{display:none}.skip-link{z-index:10000;color:#fff;transition:transform var(--duration-fast);background:#1f4fd1;border-radius:10px;padding:10px 16px;position:fixed;top:8px;left:50%;transform:translate(-50%,-160%)}.skip-link:focus{transform:translate(-50%)}.app-icon-art{color:#fff;border:1px solid #ffffff8c;border-radius:17px;flex:none;place-items:center;width:58px;height:58px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff9e,inset 0 -8px 20px #00000024,0 8px 16px #0f183033}.app-icon-native{box-shadow:none;background:0 0;border:0;border-radius:0;overflow:visible}.app-icon-native:after{display:none}.app-icon-native img{object-fit:contain;filter:drop-shadow(0 5px 7px #070d264d);width:100%;height:100%;display:block}.app-icon-art:after{content:"";pointer-events:none;background:linear-gradient(#ffffff4d,#0000);border-radius:12px 12px 50% 50%;height:38%;position:absolute;inset:5px 7px auto}.app-icon-art svg{z-index:2;filter:drop-shadow(0 2px 4px #00000029);width:29px;height:29px;position:relative}.app-icon-glow{filter:blur(9px);background:#fff6;border-radius:50%;width:46px;height:46px;position:absolute;top:-18px;right:-12px}.app-icon-small{border-radius:11px;width:38px;height:38px}.app-icon-small svg{width:20px;height:20px}.app-icon-cyan{background:linear-gradient(145deg,#64d3db,#237fae)}.app-icon-amber{background:linear-gradient(145deg,#ffcb69,#f07038)}.app-icon-blue{background:linear-gradient(145deg,#6ba8ff,#315bd3)}.app-icon-violet{background:linear-gradient(145deg,#b892ff,#654dcc)}.app-icon-green{background:linear-gradient(145deg,#63d998,#1b9878)}.app-icon-coral{background:linear-gradient(145deg,#ff9989,#dc4e65)}.app-icon-slate{background:linear-gradient(145deg,#4e5f78,#171e2c)}.app-icon-silver{background:linear-gradient(145deg,#d9e0e8,#7a8799)}.desktop-shell{overflow:hidden}.menu-bar{z-index:1000;color:#fff;text-shadow:0 1px 4px #08072073;-webkit-backdrop-filter:blur(22px)saturate(145%);backdrop-filter:blur(22px)saturate(145%);background:#1e164e47;border-width:0 0 1px;border-color:#ffffff26;border-radius:0;justify-content:space-between;align-items:center;height:30px;padding:0 10px;font-size:13px;font-weight:500;display:flex;position:absolute;inset:0 0 auto;box-shadow:0 1px 9px #110a2d1f}.menu-bar-left,.menu-bar-right{align-items:center;gap:1px;height:100%;display:flex}.menu-bar a,.menu-bar button{background:0 0;border:0;text-decoration:none}.menu-bar-left>button{cursor:default;border-radius:5px;height:24px;padding:0 8px}.menu-bar-left>button:hover,.menu-bar-left>button[aria-expanded=true],.menu-bar-right button:hover{background:#ffffff4d}.brand-menu-button{align-items:center;gap:7px;display:flex}.apple-menu-button{width:33px;font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:19px;line-height:1;padding:0!important}.active-app-menu{font-weight:700;padding-right:10px!important}.menu-bar-right{gap:2px}.menu-bar-right button{border-radius:5px;place-items:center;width:27px;height:25px;display:grid}.menu-bar-right svg{width:14px;height:14px}.menu-bar-right time{text-align:right;font-variant-numeric:tabular-nums;min-width:127px;padding-left:4px}.menu-status-symbol{place-items:center;width:24px;height:24px;display:grid}.menu-status-symbol svg{width:15px;height:15px}.desktop-context-menu,.menu-popover{z-index:1002;width:225px;color:var(--chrome-text);background:linear-gradient(135deg,#ffffff4d,transparent 45%),rgba(var(--glass-rgb),.86);-webkit-backdrop-filter:blur(30px)saturate(160%);backdrop-filter:blur(30px)saturate(160%);border:1px solid #ffffff61;border-radius:13px;padding:6px;position:absolute;top:30px;box-shadow:0 22px 55px #0e16283d,inset 0 1px #ffffff7a}.menu-apple{left:6px}.menu-app{left:39px}.menu-file{left:104px}.menu-edit{left:140px}.menu-view{left:178px}.menu-go{left:220px}.menu-window{left:250px}.menu-help{left:310px}.desktop-context-menu button,.menu-popover a,.menu-popover button{width:100%;height:29px;color:inherit;background:0 0;border:0;border-radius:7px;justify-content:flex-start;align-items:center;gap:8px;padding:0 9px;font-size:12px;text-decoration:none;display:flex}.desktop-context-menu button:hover,.menu-popover a:hover,.menu-popover button:hover{color:#fff;background:#3478f6}.menu-popover button:disabled{color:var(--text-tertiary);opacity:.55}.menu-popover button:disabled:hover{color:var(--text-tertiary);background:0 0}.desktop-context-menu button span,.menu-popover button span{color:var(--text-tertiary);margin-left:auto}.desktop-context-menu button:hover span,.menu-popover button:hover span{color:#ffffffbf}.desktop-context-menu svg,.menu-popover svg{width:13px;height:13px;margin-left:auto}.desktop-context-menu svg{margin:0}.menu-separator{background:var(--hairline);height:1px;margin:5px 8px}.eyebrow{color:var(--text-tertiary);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:10px;font-weight:720}.site-instructions{z-index:5;color:#3b310b;background:#fff39b;border:1px solid #7056083d;border-radius:5px;width:min(326px,100vw - 56px);position:absolute;top:58px;right:clamp(28px,4vw,72px);overflow:hidden;transform:rotate(.45deg);box-shadow:0 24px 70px #160d3642,0 4px 14px #160d3633}.sticky-note-toolbar{background:linear-gradient(#ffdf55,#f5c933);border-bottom:1px solid #6950002e;align-items:center;gap:7px;height:27px;padding:0 10px;display:flex}.sticky-note-toolbar span{background:#ffffff6b;border:1px solid #533d0033;border-radius:50%;width:9px;height:9px}.sticky-note-content{background-image:linear-gradient(#7658000e 1px,#0000 0);background-size:100% 25px;padding:20px 21px 21px}.sticky-note-content p{margin:0;font-size:12px;line-height:1.48}.sticky-note-content h1{letter-spacing:-.025em;margin:2px 0 9px;font-size:21px;line-height:1.15}.sticky-note-kicker{color:#4a3904a3;letter-spacing:.08em;text-transform:uppercase;font-weight:700;font-size:10px!important}.sticky-app-list{grid-template-columns:1fr 1fr;gap:8px 10px;margin:14px 0 15px;padding:0;list-style:none;display:grid}.sticky-app-list li{align-items:center;gap:7px;min-width:0;display:flex}.sticky-app-list img{object-fit:contain;filter:drop-shadow(0 2px 3px #4a30002e);width:28px;height:28px}.sticky-app-list span,.sticky-app-list strong{display:block}.sticky-app-list span{min-width:0;font-size:9px;line-height:1.25}.sticky-app-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.sticky-instruction-list{gap:5px;margin:0 0 12px;padding-left:18px;font-size:11px;line-height:1.4;display:grid}.sticky-note-footnote{color:#423100b8;border-top:1px solid #6348002b;padding-top:10px;font-size:10px!important}.desktop-dock{z-index:950;background:#e3e1f547;border-radius:20px;align-items:end;gap:6px;min-height:68px;padding:7px 10px 6px;display:flex;position:absolute;bottom:13px;left:50%;transform:translate(-50%);box-shadow:inset 0 1px #ffffff85,0 12px 35px #140b3747}.desktop-dock button{width:58px;height:58px;transition:transform var(--duration-medium)var(--ease-spring);background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}.desktop-dock button:hover{z-index:2;transform:translateY(-9px)scale(1.18)}.desktop-dock button:active{transform:translateY(-3px)scale(.94)}.dock-tooltip{color:#fff;opacity:0;pointer-events:none;white-space:nowrap;transition:opacity var(--duration-fast),transform var(--duration-fast);background:#141926c7;border:1px solid #ffffff40;border-radius:8px;padding:5px 8px;font-size:11px;position:absolute;bottom:calc(100% + 13px);left:50%;transform:translate(-50%,5px)}.desktop-dock button:hover .dock-tooltip{opacity:1;transform:translate(-50%)}.dock-running{background:var(--chrome-text);border-radius:50%;width:4px;height:4px;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.window-layer{z-index:10;pointer-events:none;position:absolute;inset:30px 0 0}.app-scroll{overscroll-behavior:contain;height:100%;overflow:auto}.app-content{color:var(--text-primary);background:var(--content-bg);padding:clamp(24px,3.5vw,48px)}.app-header{justify-content:space-between;align-items:flex-start;gap:28px;margin-bottom:34px;display:flex}.app-header h1{max-width:760px;color:var(--text-primary);letter-spacing:-.046em;margin:8px 0 9px;font-size:clamp(28px,4vw,46px);font-weight:690;line-height:1.04}.app-header-description{max-width:680px;color:var(--text-secondary);margin:0;font-size:14px;line-height:1.6}.app-header-action{flex:none}.location-pill,.primary-button,.secondary-button{border:1px solid var(--hairline);border-radius:11px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 13px;font-size:12px;font-weight:650;text-decoration:none;display:inline-flex}.location-pill{color:var(--text-secondary);background:var(--content-muted)}.primary-button{color:#fff;background:var(--accent);border-color:#0000}.secondary-button{color:var(--text-primary);background:var(--content-raised)}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.tag-list{flex-wrap:wrap;gap:6px;display:flex}.tag-list>span{border:1px solid var(--hairline);color:var(--text-secondary);background:var(--content-muted);border-radius:999px;padding:5px 8px;font-size:10px;font-weight:600}.about-lead{grid-template-columns:142px 1fr;align-items:start;gap:34px;display:grid}.profile-monogram{aspect-ratio:1;border:1px solid var(--hairline);color:#fff;background:linear-gradient(145deg,#ffffff40,#0000 50%),#29395c;border-radius:35px;place-items:center;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #fff6,0 18px 38px #19274833}.profile-monogram:after{content:"";opacity:.72;background:#6cc8c7;border-radius:50%;width:95px;height:95px;position:absolute;bottom:-30px;right:-32px}.profile-monogram span{z-index:1;letter-spacing:-.08em;font-size:38px;font-weight:760;position:relative}.about-lead h2,.currently-building h2{letter-spacing:-.03em;margin:0 0 14px;font-size:22px}.about-lead p{color:var(--text-secondary);margin:0 0 12px;font-size:13px;line-height:1.7}.principles-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:40px;display:grid}.principle-card{border:1px solid var(--hairline);background:var(--content-raised);border-radius:18px;padding:19px}.principle-icon{width:36px;height:36px;color:var(--accent);background:var(--accent-soft);border-radius:11px;place-items:center;display:grid}.principle-card h3{letter-spacing:-.01em;margin:18px 0 7px;font-size:13px}.principle-card p{color:var(--text-secondary);margin:0;font-size:11px;line-height:1.55}.currently-building{border-top:1px solid var(--hairline);justify-content:space-between;align-items:end;gap:20px;margin-top:36px;padding:24px 0 5px;display:flex}.currently-building h2{margin:7px 0 0}.currently-building a{color:var(--accent);flex:none;align-items:center;gap:5px;font-size:12px;font-weight:650;text-decoration:none;display:flex}.skill-groups{border-top:1px solid var(--hairline)}.skill-group{border-bottom:1px solid var(--hairline);grid-template-columns:44px 1fr;gap:16px;padding:25px 4px;display:grid}.skill-index{color:var(--accent);font-family:var(--mono-font);font-size:11px}.skill-group h2{letter-spacing:-.025em;margin:0 0 5px;font-size:18px}.skill-group p{color:var(--text-secondary);margin:0 0 15px;font-size:12px}.skill-group ul{flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none;display:flex}.skill-group li{border:1px solid var(--hairline);background:var(--content-raised);font-family:var(--mono-font);border-radius:9px;padding:7px 10px;font-size:10px}.experience-layout{grid-template-columns:180px minmax(0,1fr);gap:34px;display:grid}.experience-summary{border:1px solid var(--hairline);background:var(--content-muted);border-radius:18px;flex-direction:column;align-self:start;gap:10px;padding:20px;display:flex;position:sticky;top:0}.experience-summary svg{color:var(--accent)}.experience-summary strong{font-size:14px}.experience-summary span{color:var(--text-secondary);font-size:11px;line-height:1.55}.experience-timeline{margin:0;padding:0;list-style:none}.experience-timeline>li{padding:0 0 24px 24px;position:relative}.experience-timeline>li:not(:last-child):before{content:"";background:var(--hairline);width:1px;position:absolute;top:12px;bottom:-12px;left:5px}.timeline-marker{border:3px solid var(--content-bg);background:var(--accent);width:11px;height:11px;box-shadow:0 0 0 1px var(--accent);border-radius:50%;position:absolute;top:7px;left:0}.experience-card{border:1px solid var(--hairline);background:var(--content-raised);border-radius:18px;padding:20px}.experience-card-heading{justify-content:space-between;align-items:start;gap:20px;display:flex}.experience-card-heading p{color:var(--accent);margin:0 0 3px;font-size:11px;font-weight:700}.experience-card-heading h2{letter-spacing:-.025em;margin:0;font-size:17px}.experience-card-heading time{color:var(--text-tertiary);white-space:nowrap;font-size:10px}.experience-summary-copy{color:var(--text-secondary);margin:13px 0;font-size:12px;line-height:1.55}.impact-list{gap:7px;margin:0 0 17px;padding:0;list-style:none;display:grid}.impact-list li{color:var(--text-secondary);padding-left:14px;font-size:11px;line-height:1.55;position:relative}.impact-list li:before{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;top:.62em;left:0}.projects-browser{background:var(--content-bg);grid-template-columns:154px 1fr;height:100%;display:grid}.projects-sidebar{color:var(--text-primary);background:var(--content-muted);border-right:1px solid var(--hairline);padding:30px 12px}.projects-sidebar .eyebrow{padding-left:10px}.projects-sidebar nav{gap:3px;margin-top:12px;display:grid}.projects-sidebar button{height:32px;color:var(--text-secondary);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-size:11px;display:flex}.projects-sidebar button.is-selected,.projects-sidebar button:hover{color:var(--text-primary);background:var(--content-raised)}.sidebar-dot{border:1px solid;border-radius:3px;width:7px;height:7px}.projects-sidebar button.is-selected .sidebar-dot{border-color:var(--accent);background:var(--accent)}.projects-list{padding:34px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.project-card{border:1px solid var(--hairline);color:var(--text-primary);background:var(--content-raised);text-align:left;transition:transform var(--duration-medium)var(--ease-out),box-shadow var(--duration-medium);border-radius:19px;padding:0;overflow:hidden;box-shadow:0 7px 18px #181f310d}.project-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px #181f311f}.project-art{color:#fff;isolation:isolate;height:146px;position:relative;overflow:hidden}.project-art:after{content:"";z-index:-1;background:linear-gradient(130deg,#ffffff1f,#0000 42%,#00000021);position:absolute;inset:0}.project-art-amber{background:#a35427}.project-art-violet{background:#584a9b}.project-art-blue{background:#315e98}.project-art-green{background:#267466}.project-art-coral{background:#a94f55}.project-art-grid{opacity:.17;background-image:linear-gradient(#fff6 1px,#0000 0),linear-gradient(90deg,#fff6 1px,#0000 0);background-size:32px 32px;position:absolute;inset:0}.project-art-orbit{border:1px solid #ffffff45;border-radius:50%;position:absolute}.project-art-orbit-one{width:185px;height:185px;top:-92px;right:-18px}.project-art-orbit-two{width:90px;height:90px;bottom:-50px;right:31px}.project-art-copy{flex-direction:column;align-items:flex-start;display:flex;position:absolute;inset:auto 18px 17px}.project-art-copy small{color:#ffffffb3;letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px;font-size:8px;font-weight:700}.project-art-copy strong{letter-spacing:-.04em;font-size:22px;line-height:1}.project-art-copy span{color:#fffc;margin-top:6px;font-size:9px}.project-card-body{grid-template-columns:1fr auto;gap:10px;padding:16px;display:grid}.project-card-body small,.project-card-body strong{display:block}.project-card-body small{color:var(--text-tertiary);text-transform:uppercase;margin-bottom:3px;font-size:9px}.project-card-body strong{font-size:15px}.project-card-description{color:var(--text-secondary);grid-column:1/-1;font-size:10px;line-height:1.5}.project-card-body .tag-list{grid-column:1/-1}.project-detail-view{padding:28px}.project-detail{max-width:960px;margin:0 auto}.back-button{color:var(--accent);background:0 0;border:0;align-items:center;gap:5px;margin-bottom:18px;padding:0;font-size:11px;font-weight:650;display:flex}.project-art-large{border-radius:22px;height:clamp(230px,38vh,370px)}.project-art-large .project-art-copy{inset:auto 32px 30px}.project-art-large .project-art-copy strong{font-size:clamp(34px,5vw,60px)}.project-art-large .project-art-copy span{font-size:13px}.project-detail-header{justify-content:space-between;align-items:end;gap:32px;padding:30px 4px 34px;display:flex}.project-detail-header h1{letter-spacing:-.045em;margin:6px 0 10px;font-size:36px}.architecture-panel p,.project-detail-columns p,.project-detail-header>div>p:last-child,.project-narrative-grid p{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.65}.project-links{flex:none;gap:7px;display:flex}.project-links a{border:1px solid var(--hairline);background:var(--content-raised);border-radius:10px;align-items:center;gap:6px;height:36px;padding:0 11px;font-size:10px;font-weight:650;text-decoration:none;display:flex}.project-detail-columns,.project-narrative-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.project-detail-columns section,.project-narrative-grid article{border:1px solid var(--hairline);background:var(--content-raised);border-radius:18px;padding:23px}.architecture-panel h2,.project-narrative-grid h2{letter-spacing:-.025em;margin:7px 0 10px;font-size:17px}.architecture-panel{border:1px solid var(--hairline);background:var(--content-muted);border-radius:18px;margin:12px 0;padding:24px}.architecture-flow{grid-template-columns:1fr 28px 1fr 28px 1fr;align-items:center;gap:7px;margin-top:22px;display:grid}.architecture-flow span{border:1px solid var(--hairline);background:var(--content-raised);font-family:var(--mono-font);text-align:center;border-radius:11px;padding:12px 8px;font-size:9px}.architecture-flow svg{width:14px;color:var(--text-tertiary)}.project-detail-columns{margin-bottom:24px}.project-highlights{gap:10px;margin:13px 0 0;padding:0;list-style:none;display:grid}.project-highlights li{color:var(--text-secondary);align-items:flex-start;gap:8px;font-size:11px;line-height:1.45;display:flex}.project-highlights svg{color:var(--accent);flex:none}.project-detail-columns .tag-list{margin-top:16px}.contact-layout{grid-template-columns:235px 1fr;gap:18px;display:grid}.contact-actions{align-content:start;gap:8px;display:grid}.contact-actions a{border:1px solid var(--hairline);background:var(--content-raised);border-radius:15px;grid-template-columns:40px 1fr 18px;align-items:center;gap:10px;padding:11px;text-decoration:none;display:grid}.contact-actions a:hover{transform:translateY(-1px)}.contact-action-icon{color:#fff;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.contact-action-icon svg{width:18px}.contact-email{background:#3f79ec}.contact-linkedin{background:#1874a8}.contact-github{background:#292f3c}.contact-actions small,.contact-actions strong{display:block}.contact-actions strong{font-size:11px}.contact-actions small{color:var(--text-tertiary);text-overflow:ellipsis;margin-top:2px;font-size:8px;overflow:hidden}.contact-form{border:1px solid var(--hairline);background:var(--content-raised);border-radius:19px;gap:13px;padding:22px;display:grid}.form-row{grid-template-columns:repeat(2,1fr);gap:11px;display:grid}.contact-form label{gap:6px;display:grid}.contact-form label>span{color:var(--text-secondary);font-size:10px;font-weight:650}.contact-form input,.contact-form textarea,.settings-app select{border:1px solid var(--hairline);width:100%;color:var(--text-primary);background:var(--content-muted);border-radius:10px}.contact-form input{height:38px;padding:0 11px}.contact-form textarea{resize:vertical;min-height:110px;padding:10px 11px}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);outline:3px solid var(--accent-soft)}.form-footer{justify-content:space-between;gap:15px;min-height:38px}.form-footer,.form-footer p{align-items:center;display:flex}.form-footer p{color:var(--text-secondary);gap:5px;margin:0;font-size:10px}.form-footer button{border:0}.form-footer button:disabled{opacity:.6}.resume-paper{border:1px solid var(--hairline);background:var(--content-raised);border-radius:4px;padding:27px;box-shadow:0 10px 28px #19203214}.resume-intro{border-bottom:1px solid var(--hairline);grid-template-columns:1fr 1fr;gap:30px;padding-bottom:25px;display:grid}.resume-intro h2{letter-spacing:-.035em;margin:7px 0 0;font-size:21px}.resume-intro>p{color:var(--text-secondary);margin:0;font-size:11px;line-height:1.65}.resume-columns{grid-template-columns:1.1fr .9fr;gap:42px;padding-top:25px;display:grid}.resume-role,.resume-skill{grid-template-columns:105px 1fr;margin-top:17px;display:grid}.resume-role time{color:var(--text-tertiary);grid-row:span 2;font-size:9px}.resume-role h3,.resume-skill h3{margin:0;font-size:12px}.resume-role p,.resume-skill p{color:var(--text-secondary);margin:3px 0 0;font-size:10px;line-height:1.5}.resume-skill{display:block}.pdf-preview-link{color:var(--accent);justify-content:center;align-items:center;gap:6px;margin-top:16px;font-size:11px;font-weight:650;text-decoration:none;display:flex}.settings-section{border:1px solid var(--hairline);background:var(--content-raised);border-radius:18px;margin-bottom:17px;padding:20px}.settings-section-heading h2,.settings-section>h2{margin:0;font-size:14px}.settings-section-heading{align-items:center;gap:11px;margin-bottom:18px;display:flex}.settings-section-heading p{color:var(--text-secondary);margin:3px 0 0;font-size:10px}.settings-symbol{color:#fff;background:var(--accent);border-radius:11px;place-items:center;width:37px;height:37px;display:grid}.setting-row{border-top:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:20px;min-height:50px;padding:10px 0;font-size:11px;display:flex}.setting-slider>div{width:55%;color:var(--text-tertiary);align-items:center;gap:8px;font-size:8px;display:flex}.control-slider input,.setting-slider input{min-width:100px;accent-color:var(--accent);flex:1}.setting-switch span small,.setting-switch span strong{display:block}.setting-switch span small{color:var(--text-tertiary);margin-top:2px;font-size:9px}.setting-switch input{width:39px;height:22px;accent-color:var(--accent)}.segmented-control{background:var(--content-muted);border-radius:11px;gap:3px;margin-top:15px;padding:3px;display:flex}.segmented-control button{min-height:33px;color:var(--text-secondary);background:0 0;border:0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:5px;font-size:10px;display:flex}.segmented-control button.is-active{color:var(--text-primary);background:var(--content-raised);box-shadow:0 2px 8px #141c301a}.wallpaper-options{grid-template-columns:repeat(3,1fr);gap:9px;margin-top:15px;display:grid}.wallpaper-option{color:#fff;background:#888;border:2px solid #0000;border-radius:12px;height:80px;position:relative;overflow:hidden}.wallpaper-option.is-active{border-color:var(--accent);box-shadow:0 0 0 2px var(--content-raised),0 0 0 4px var(--accent)}.wallpaper-option span{text-transform:capitalize;font-size:8px;position:absolute;inset:auto 7px 6px}.wallpaper-aurora{background:linear-gradient(145deg,#71ccd1,#8271c4 55%,#e79b79)}.wallpaper-dusk{background:linear-gradient(145deg,#31547c,#7b4f7b 55%,#d17469)}.wallpaper-graphite{background:linear-gradient(145deg,#8996a3,#455260 55%,#171f2b)}.settings-inline-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.settings-app select{height:36px;margin-top:9px;padding:0 9px;font-size:10px}.terminal-app{color:#d9f7df;height:100%;font-family:var(--mono-font);background:#10151c;flex-direction:column;padding:18px;font-size:11px;display:flex;overflow:auto}.terminal-output{gap:5px;display:grid}.terminal-output p{margin:0;line-height:1.45}.terminal-app form{gap:8px;margin-top:7px;display:flex}.terminal-app label{color:#73d99c;flex:none}.terminal-app input{color:#fff;background:0 0;border:0;outline:0;flex:1;min-width:0}.spotlight-layer{z-index:3000;animation:fade-in var(--duration-fast)ease-out both;background:#0c111d24;place-items:start center;padding-top:max(11vh,80px);display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.spotlight-panel{width:min(620px,100vw - 32px);animation:spotlight-in .22s var(--ease-spring)both;border-radius:24px;overflow:hidden;box-shadow:0 36px 100px #0a101f61,inset 0 1px #ffffff80}@keyframes spotlight-in{0%{opacity:0;transform:translateY(-14px)scale(.97)}}.spotlight-search{border-bottom:1px solid var(--hairline);align-items:center;gap:10px;height:63px;padding:0 16px;display:flex}.spotlight-search>svg{width:22px;height:22px;color:var(--text-secondary)}.spotlight-search input{min-width:0;color:var(--text-primary);letter-spacing:-.02em;background:0 0;border:0;outline:0;flex:1;font-size:18px}.spotlight-search input::placeholder{color:var(--text-tertiary)}.spotlight-search kbd{border:1px solid var(--hairline);color:var(--text-tertiary);font-family:var(--system-font);background:#ffffff29;border-radius:6px;padding:3px 6px;font-size:9px}.spotlight-results{gap:2px;padding:7px;display:grid}.spotlight-results button{min-height:51px;color:var(--text-primary);text-align:left;background:0 0;border:0;border-radius:11px;grid-template-columns:38px 1fr 18px;align-items:center;gap:10px;padding:6px 9px;display:grid}.spotlight-results button.is-selected{color:#fff;background:#3478f6}.spotlight-results small,.spotlight-results strong{display:block}.spotlight-results strong{font-size:12px}.spotlight-results small{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:9px;overflow:hidden}.spotlight-results button.is-selected small{color:#ffffffbd}.spotlight-results>button>svg{width:14px}.spotlight-empty{color:var(--text-secondary);text-align:center;margin:22px;font-size:11px}.spotlight-panel footer{border-top:1px solid var(--hairline);color:var(--text-tertiary);gap:14px;padding:8px 14px;font-size:8px;display:flex}.context-scrim,.popover-scrim{z-index:1100;background:0 0;border:0;position:fixed;inset:0}.control-center{z-index:1101;width:292px;animation:spotlight-in .18s var(--ease-spring)both;border-radius:21px;padding:12px;position:absolute;top:39px;right:10px}.control-center-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.control-center-grid button{border:1px solid var(--hairline);min-height:64px;color:var(--text-primary);text-align:left;background:#ffffff29;border-radius:14px;align-items:center;gap:9px;padding:10px;display:flex}.control-center-grid button>svg{color:#fff;background:#3478f6;border-radius:50%;width:27px;height:27px;padding:6px}.control-center-grid small,.control-center-grid strong{font-size:9px;display:block}.control-center-grid small{color:var(--text-tertiary);text-transform:capitalize;margin-top:2px}.control-slider{border-radius:13px;grid-template-columns:60px 1fr;gap:10px;padding:11px;display:grid}.control-settings-link,.control-slider{background:#ffffff29;align-items:center;margin-top:8px;font-size:9px;font-weight:650}.control-settings-link{width:100%;height:34px;color:var(--text-primary);border:0;border-radius:11px;justify-content:center;gap:7px;display:flex}.control-settings-link svg{width:13px}.desktop-context-menu{z-index:1201;width:220px;position:fixed;top:auto}.mobile-shell{color:#fff;padding-top:env(safe-area-inset-top);position:relative;overflow:hidden}.mobile-status-bar{z-index:70;inset:max(8px,env(safe-area-inset-top))18px auto;color:#fff;text-shadow:0 1px 4px #00000061;justify-content:space-between;align-items:center;height:24px;font-size:11px;font-weight:680;display:flex;position:absolute}.mobile-status-bar>div{align-items:center;gap:5px;display:flex}.mobile-status-bar svg{width:14px;height:14px}.mobile-home{height:100%;padding:calc(env(safe-area-inset-top) + 45px)18px calc(env(safe-area-inset-bottom) + 14px);flex-direction:column;display:flex}.mobile-welcome-widget{background:linear-gradient(135deg,#fff3,#0000 46%),#18233c94;border-color:#ffffff4d;border-radius:25px;padding:20px;position:relative}.mobile-profile-mark{color:#fff;letter-spacing:-.06em;background:#263653;border-radius:14px;place-items:center;width:43px;height:43px;font-size:13px;font-weight:800;display:grid;position:absolute;top:16px;right:17px;box-shadow:inset 0 1px #ffffff59}.mobile-welcome-widget .eyebrow{color:#ffffffa6}.mobile-welcome-widget h1{color:#fff;letter-spacing:-.055em;max-width:calc(100% - 54px);margin:9px 0 0;font-size:clamp(26px,8vw,36px);line-height:1}.mobile-welcome-widget h2{color:#ffffffbd;margin:6px 0 13px;font-size:14px;font-weight:550}.mobile-welcome-widget>p:last-of-type{color:#ffffffd6;max-width:36ch;margin:0;font-size:11px;line-height:1.5}.mobile-welcome-widget>button{color:#fff;background:0 0;border:0;margin-top:14px;padding:0;font-size:10px;font-weight:700}.mobile-app-grid{grid-template-columns:repeat(4,1fr);align-content:start;gap:18px 10px;margin-top:23px;display:grid}.mobile-app-grid button{color:#fff;text-shadow:0 1px 4px #0000008c;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:0;font-size:9px;font-weight:550;display:flex}.mobile-app-grid .app-icon-art{width:min(15vw,59px);height:min(15vw,59px)}.mobile-search-pill{color:#ffffffd1;border-radius:999px;justify-content:center;align-items:center;gap:5px;width:98px;height:28px;margin:auto auto 11px;font-size:9px;display:flex}.mobile-search-pill svg{width:12px}.mobile-dock{border-radius:25px;justify-content:space-around;align-items:center;gap:8px;padding:8px 10px;display:flex}.mobile-dock button{background:0 0;border:0;padding:0}.mobile-dock .app-icon-art{width:min(14.5vw,59px);height:min(14.5vw,59px)}.mobile-app-view{z-index:50;padding-top:calc(env(safe-area-inset-top) + 34px);color:var(--text-primary);background:var(--content-bg);animation:mobile-app-open .3s var(--ease-spring)both;flex-direction:column;display:flex;position:absolute;inset:0}@keyframes mobile-app-open{0%{opacity:0;border-radius:34px;transform:translateY(24px)scale(.94)}to{opacity:1;border-radius:0;transform:none}}.mobile-app-nav{z-index:3;height:calc(env(safe-area-inset-top) + 48px);border-width:0 0 1px;border-radius:0;grid-template-columns:1fr auto 1fr;align-items:end;padding:0 13px 10px;display:grid;position:absolute;inset:0 0 auto}.mobile-app-nav button{color:var(--accent);background:0 0;border:0;align-items:center;gap:2px;padding:0;font-size:11px;display:flex}.mobile-app-nav button:last-child{justify-self:end}.mobile-app-nav svg{width:17px;height:17px}.mobile-app-nav strong{color:var(--text-primary);font-size:11px}.mobile-app-content{flex:1;min-height:0;padding-top:14px;overflow:hidden}.mobile-app-content>*{height:100%}.mobile-home-indicator{z-index:10;bottom:max(5px,env(safe-area-inset-bottom));background:var(--text-primary);border:0;border-radius:999px;width:112px;height:5px;padding:0;position:absolute;left:50%;transform:translate(-50%)}@media (max-width:1180px){.site-instructions{width:292px;right:24px}}@media (max-height:760px) and (min-width:821px){.site-instructions{width:294px;top:46px}.sticky-note-content{padding:15px 18px 16px}.sticky-app-list{margin:10px 0}.sticky-instruction-list{gap:3px}}@media (max-width:820px),(orientation:portrait) and (max-width:1024px){.desktop-experience{display:none}.mobile-experience{display:block}.skip-link{display:none}.app-content{padding:24px 18px 48px}.app-header{margin-bottom:27px;display:block}.app-header h1{font-size:clamp(28px,8vw,42px)}.app-header-action{margin-top:15px}.about-lead,.contact-layout,.experience-layout,.resume-columns,.resume-intro{grid-template-columns:1fr}.about-lead{gap:24px}.profile-monogram{border-radius:28px;width:105px}.principles-grid{grid-template-columns:1fr}.experience-summary{position:static}.projects-browser{display:block;overflow:auto}.projects-sidebar{z-index:2;border-right:0;border-bottom:1px solid var(--hairline);align-items:center;gap:10px;padding:9px 13px;display:flex;position:sticky;top:0;overflow-x:auto}.projects-sidebar .eyebrow{display:none}.projects-sidebar nav{gap:5px;margin:0;display:flex}.projects-sidebar button{flex:none}.projects-list{height:auto;padding:24px 16px 80px;overflow:visible}.project-grid{grid-template-columns:1fr}.project-detail-view{padding:18px 14px 70px}.project-art-large{height:230px}.currently-building,.form-footer,.project-detail-header{flex-direction:column;align-items:flex-start}.project-detail-header{display:flex}.project-detail-header h1{font-size:31px}.architecture-flow,.project-detail-columns,.project-narrative-grid,.settings-inline-grid{grid-template-columns:1fr}.architecture-flow svg{margin:0 auto;transform:rotate(90deg)}.contact-actions,.form-row{grid-template-columns:1fr}.resume-role{grid-template-columns:90px 1fr}.setting-row{flex-direction:column;align-items:flex-start}.setting-slider>div{width:100%}.spotlight-layer{padding:calc(env(safe-area-inset-top) + 38px)10px 10px;align-items:stretch}.spotlight-panel{border-radius:22px;width:100%;max-height:80vh;overflow:auto}.spotlight-search input{font-size:15px}.spotlight-panel footer{display:none}}@media (max-height:720px) and (max-width:820px){.mobile-home{padding-top:calc(env(safe-area-inset-top) + 38px)}.mobile-welcome-widget{padding:16px}.mobile-welcome-widget>button,.mobile-welcome-widget>p:last-of-type{display:none}.mobile-app-grid{gap:12px 8px;margin-top:15px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.portfolio-root[data-motion=reduced] *,.portfolio-root[data-motion=reduced] :after,.portfolio-root[data-motion=reduced] :before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}@media (forced-colors:active){.glass-surface,.principle-card,.project-card{border:1px solid canvastext}}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}