@font-face{font-family:geist;src:url(../media/geist_latin-s.p.13htaj1cmiief.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:geist Fallback;src:local(Arial);ascent-override:94.47%;descent-override:27.73%;line-gap-override:0.0%;size-adjust:106.39%}.geist_1e5b3b0a-module__owTUAG__className{font-family:geist,geist Fallback}.geist_1e5b3b0a-module__owTUAG__variable{--font-geist:"geist", "geist Fallback"}
@font-face{font-family:geistMono;src:url(../media/geist_mono_latin-s.0.q-h669a_dqa.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:geistMono Fallback;src:local(Arial);ascent-override:76.43%;descent-override:22.43%;line-gap-override:0.0%;size-adjust:131.49%}.geistmono_62c95361-module__25pgxW__className{font-family:geistMono,geistMono Fallback}.geistmono_62c95361-module__25pgxW__variable{--font-geist-mono:"geistMono", "geistMono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--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-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-geist), Arial, sans-serif;--default-mono-font-family:var(--font-geist-mono), monospace;--ease-portfolio:cubic-bezier(.22, 1, .36, 1)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.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}}.flex{display:flex}.grid{display:grid}.hidden{display:none}.min-h-0{min-height:0}.grow{flex-grow:1}.origin-left{transform-origin:0}.scale-x-0{--tw-scale-x:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-x-100{--tw-scale-x:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-0{rotate:none}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, )}.transform-\[translate3d\(var\(--portrait-x\,0px\)\,var\(--portrait-y\,0px\)\,0\)_rotate\(var\(--portrait-angle\,0deg\)\)\]{transform:translate3d(var(--portrait-x,0px),var(--portrait-y,0px),0) rotate(var(--portrait-angle,0deg))}.animate-arrow-draw{animation:.8s ease-out .45s both arrow-draw}.animate-fade-in{animation:.25s ease-out both fade-in}.animate-heart-pop{animation:.4s ease-out both heart-pop}.animate-identity-scroll{animation:identity-scroll var(--identity-duration,32s) linear infinite}.animate-menu-close{animation:.22s ease-in both menu-close}.animate-menu-link{animation:.25s ease-out both menu-link}.animate-menu-open{animation:menu-open .3s var(--ease-portfolio) both}.animate-note-in{animation:.22s ease-out both note-in}.animate-note-out{animation:.18s ease-in both note-out}.animate-project-in{animation:project-in .3s var(--ease-portfolio) both}.animate-project-out{animation:.16s ease-in both project-out}.animate-reveal-left{animation:reveal-left var(--reveal-duration,.7s) var(--ease-portfolio) both}.animate-reveal-right{animation:reveal-right var(--reveal-duration,.7s) var(--ease-portfolio) both}.animate-reveal-up{animation:reveal-up var(--reveal-duration,.7s) var(--ease-portfolio) both}.resize{resize:both}.overflow-hidden{overflow:hidden}.opacity-0{opacity:0}.opacity-100{opacity:1}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-portfolio{--tw-ease:var(--ease-portfolio);transition-timing-function:var(--ease-portfolio)}.\[animation-delay\:var\(--menu-delay\)\]{animation-delay:var(--menu-delay)}.\[stroke-dasharray\:1\]{stroke-dasharray:1}.\[stroke-dashoffset\:1\]{stroke-dashoffset:1px}@media not all and (min-width:760px){.max-\[760px\]\:grid{display:grid}}}:root{--navy:#0f1e35;--navy-secondary:#1f3a5f;--blue:#2e5b8a;--sky:#afccef;--sky-soft:#d8e6f5;--cream:#f7f3ea;--yellow:#f2c94c;--muted:#46576b;--line:#bec6cb;--radius:8px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{color:var(--navy);background:var(--cream);font-family:var(--font-geist), Arial, sans-serif;-webkit-font-smoothing:antialiased;margin:0;font-size:16px}::selection{color:var(--navy);background:var(--yellow)}button,input,select{font:inherit}button,a,select,summary{-webkit-tap-highlight-color:transparent}button:not(:disabled),a,select,summary{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button{color:inherit}a{color:inherit;text-decoration:none}button{border:0}a,button{touch-action:manipulation}:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.music-section :focus-visible{outline-color:var(--yellow)}img{max-width:100%}svg{flex-shrink:0}p{line-height:1.75}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance;overflow-wrap:anywhere}h2{letter-spacing:-.06em;white-space:pre-line;font-size:clamp(2.45rem,5.1vw,4.15rem);font-weight:600;line-height:1.07}h3{letter-spacing:-.035em}.container{width:min(1240px,100% - 96px);margin-inline:auto}.mono,.eyebrow{font-family:var(--font-geist-mono), monospace}.eyebrow{font-size:.74rem;font-weight:500}.handwritten{font-family:Segoe Print,Bradley Hand,Comic Sans MS,cursive;font-size:1.1rem;font-weight:400}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--navy);color:var(--cream);border-radius:4px;padding:16px 20px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:12px}.section-anchor{scroll-margin-top:80px}.button{min-height:52px;transition-property:background-color,translate,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);border-radius:5px;justify-content:center;align-items:center;gap:24px;padding:14px 23px;font-size:.875rem;font-weight:500;display:inline-flex}.button:hover{--tw-translate-y:calc(3px * -1);translate:var(--tw-translate-x) var(--tw-translate-y);box-shadow:0 5px #0f1e3520}.button:active{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y);box-shadow:none}.button-dark{color:var(--cream);background:var(--navy)}.button-dark:hover{background:var(--navy-secondary)}.button-cream{color:var(--navy);background:var(--cream)}.button-cream:hover{background:var(--yellow)}.text-link{background:0 0;align-items:center;gap:12px;min-height:44px;padding:8px 0;font-size:.875rem;font-weight:500;display:inline-flex}.text-link svg{transition-property:translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio)}.text-link:hover svg{--tw-translate-x:3px;--tw-translate-y:calc(3px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.text-link:hover{text-underline-offset:6px;text-decoration:underline}.icon-button{width:44px;min-width:44px;min-height:44px;transition-property:background-color,rotate,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:#0f1e3510;rotate:-5deg}.icon-button:active{scale:.94}.reading-progress{background:var(--navy);transform-origin:0;z-index:60;width:100%;height:3px;position:fixed;top:0;left:0}.site-header{z-index:50;background:var(--sky);border-bottom:1px solid #0f1e3520;position:sticky;top:0}.nav-shell{justify-content:space-between;align-items:center;gap:32px;min-height:84px;display:flex}.wordmark{letter-spacing:-.09em;font-size:2rem;font-weight:800;line-height:1;display:inline-block}.wordmark span{color:var(--navy)}.desktop-nav{gap:32px;padding-left:70px;display:flex}.desktop-nav a{align-items:center;min-height:44px;font-size:.8rem;display:flex;position:relative}.desktop-nav a:hover{color:var(--blue)}.nav-indicator{background:var(--navy);height:2px;position:absolute;bottom:5px;left:0;right:0}.nav-contact{border:1px solid var(--navy);min-height:44px;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);border-radius:4px;justify-content:center;align-items:center;gap:17px;padding:9px 17px;font-size:.78rem;display:flex}.nav-contact:hover{background:var(--navy);color:var(--cream)}.menu-toggle,.mobile-nav{display:none}.hero{background:var(--sky);overflow:clip}.hero-main{grid-template-columns:1.06fr 1fr;align-items:center;gap:12px;min-height:637px;padding-top:70px;padding-bottom:36px;display:grid}.hero-copy{z-index:2}.hero-greeting{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:24px;font-size:.85rem;display:flex}.hero-full-name{letter-spacing:-.035em;width:100%;margin-top:1px;font-size:clamp(1.1rem,1.7vw,1.5rem);font-weight:500}.greeting-line{background:var(--navy);width:25px;height:1px}.small-wave{margin-left:5px;font-size:1.6rem}.hero h1{letter-spacing:-.075em;margin-bottom:30px;font-size:clamp(4.6rem,7.8vw,7.1rem);font-weight:600;line-height:.99}.hero-role-intro{margin-bottom:3px;font-size:.72em;display:inline-block}.hero-role{display:inline-block}.developer-word{max-width:100%;display:inline-block;position:relative}.hero-period{color:var(--navy)}.hand-underline{width:96%;height:20px;color:var(--yellow);position:absolute;bottom:-12px;left:0}.hero-description{max-width:390px;color:var(--navy-secondary);margin-bottom:25px;font-size:.92rem;line-height:1.8}.hero-actions{align-items:center;gap:28px;margin-bottom:36px;display:flex}.hero-socials{align-items:center;gap:18px;display:flex}.hero-socials>span{color:var(--navy-secondary);font-size:.72rem}.hero-socials>div{gap:4px;display:flex}.hero-socials a{width:44px;height:44px;transition-property:translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);border-radius:50%;place-items:center;display:grid}.hero-socials a:hover{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.portrait-composition{min-width:0;height:490px;position:relative}.portrait-frame{aspect-ratio:1;isolation:isolate;border-radius:50%;width:88%;position:absolute;bottom:41px;right:2%;overflow:hidden}.portrait-disc{aspect-ratio:1;background:#91b9e8;border:1px solid #0f1e352c;border-radius:50%;width:88%;position:absolute;bottom:41px;right:2%}.portrait-disc>div:first-child{border:1px dashed #0f1e354d;border-radius:50%;position:absolute;inset:15px}.portrait-disc>div:last-child{border:1px solid #0f1e3521;border-radius:50%;position:absolute;inset:45px}.portrait-cutout{z-index:1;width:82%;height:450px;position:absolute;bottom:40px;left:15%}.portrait-frame .portrait-cutout{width:100%;height:100%;bottom:-8%;left:0}.portrait-placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding-top:60px;display:flex}.placeholder-figure{color:var(--navy-secondary);flex-direction:column;align-items:center;display:flex;position:relative}.placeholder-figure>svg:first-child{z-index:1;position:absolute;top:35px}.placeholder-label{margin-top:12px;font-size:.81rem;font-weight:600}.placeholder-hint{color:var(--navy-secondary);margin-top:6px;font-size:.71rem}.portrait-star{color:var(--yellow);z-index:2;font-family:Arial,sans-serif;line-height:1;position:absolute}.star-one{font-size:84px;top:23px;right:-7px;transform:rotate(14deg)}.star-two{color:var(--navy);font-size:33px;bottom:86px;left:12px}.portrait-note{background:var(--cream);z-index:3;border:1px solid #0f1e3533;border-radius:6px;align-items:center;gap:10px;padding:15px 17px;font-size:.75rem;display:inline-flex;position:absolute;box-shadow:4px 5px #0f1e3512}.note-code{bottom:77px;right:4px;transform:rotate(-6deg)}.note-music{top:83px;left:0;transform:rotate(-7deg)}.note-music svg{color:var(--blue)}.portrait-caption{font-size:.95rem;line-height:1.5;position:absolute;top:-26px;right:15px;transform:rotate(8deg)}.portrait-caption svg{width:85px;height:60px;position:absolute;top:42px;right:15px}.portrait-location{justify-content:center;align-items:center;gap:8px;width:100%;font-size:.71rem;display:flex;position:absolute;bottom:5px}.hero-bottom{justify-content:space-between;align-items:center;padding-block:15px 35px;display:flex}.scroll-cue{align-items:center;gap:10px;font-size:.72rem;display:flex}.scroll-circle{width:31px;height:31px;transition-property:translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);border:1px solid #0f1e3566;border-radius:50%;place-items:center;display:grid}.scroll-cue:hover .scroll-circle{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.hero-bottom>p{margin:0;font-size:.69rem}.hero-bottom>p>span{margin-inline:9px}.identity-strip{background:var(--navy);width:100%;color:var(--cream);text-align:left;padding:22px 0;display:block;overflow:hidden}.identity-strip:focus-visible{outline:2px solid var(--yellow);outline-offset:-5px}.identity-track{width:max-content;display:flex}.identity-group{flex-shrink:0;justify-content:space-around;align-items:center;gap:clamp(28px,5vw,80px);min-width:100vw;padding-inline:20px;display:flex}.identity-item{align-items:center;gap:clamp(28px,5vw,80px);display:flex}.identity-word{white-space:nowrap;font-size:.86rem}.identity-separator{color:var(--yellow);font-size:23px}.identity-strip[aria-pressed=true] .identity-track,.identity-strip:focus-visible .identity-track{animation-play-state:paused}@media (hover:hover) and (pointer:fine){.identity-strip:hover .identity-track{animation-play-state:paused}}.section-label{align-items:center;gap:16px;margin-bottom:31px;font-size:.77rem;display:flex}.section-label .mono{color:var(--muted);font-size:.72rem}.section-heading{grid-template-columns:1.45fr 1fr;align-items:end;gap:50px;margin-bottom:50px;display:grid}.section-heading>h2{margin-bottom:0}.section-heading>p,.section-heading>div>p{max-width:370px;color:var(--muted);margin-bottom:5px;font-size:.91rem}.about-section{padding-block:105px 87px}.about-heading{grid-template-columns:1.3fr 1fr;gap:80px;margin-bottom:70px}.about-scribble{color:var(--blue);align-items:center;gap:15px;margin-top:17px;font-size:.93rem;display:flex;transform:rotate(-3deg)}.story-timeline{grid-template-columns:repeat(3,1fr);margin-bottom:52px;display:grid}.story-chapter{border-top:1px solid #0f1e3550;padding:32px 36px 0 0;position:relative}.story-chapter:last-child{padding-right:0}.story-dot{background:var(--navy);border-radius:50%;width:9px;height:9px;position:absolute;top:-5px;left:0}.chapter-marker{color:var(--blue);margin-bottom:18px;font-size:.75rem;display:block}.story-chapter h3{max-width:240px;margin-bottom:12px;font-size:1.17rem;font-weight:600;line-height:1.4}.story-chapter p{color:var(--muted);max-width:300px;margin-bottom:0;font-size:.83rem}.beyond-note{border-top:1px solid var(--line);grid-template-columns:1fr 1.5fr;align-items:start;column-gap:60px;padding-top:32px;display:grid}.beyond-note-heading{align-items:flex-start;gap:17px;display:flex}.beyond-note-heading>svg{margin-top:3px}.beyond-note h3{max-width:230px;margin:0;font-size:1.25rem;line-height:1.45}.beyond-note>p{color:var(--muted);margin-bottom:18px;font-size:.84rem}.easter-egg{grid-column:2;position:relative}.easter-egg button{background:#f2c94c38;border:1px solid #82651b;border-radius:4px;align-items:center;gap:10px;min-height:44px;padding:7px 12px;font-size:.69rem;display:flex}.easter-egg button:hover{background:#f2c94c65}.easter-egg button>span:first-child{display:flex}.egg-plus{padding-left:18px}.easter-egg p{margin-bottom:0;padding-top:12px;font-size:.76rem}.hero-relationship{z-index:3;color:var(--navy-secondary);margin:0;padding-right:32px;font-family:Georgia,serif;font-style:italic;line-height:1.2;position:absolute;top:0;left:21px;transform:rotate(-7deg)}.hero-relationship-status{letter-spacing:-.035em;font-size:1.35rem;display:block}.hero-relationship-note{letter-spacing:-.025em;margin-top:3px;padding-bottom:8px;font-size:.88rem;display:block;position:relative}.hero-relationship-note>svg{width:112px;height:10px;color:var(--yellow);position:absolute;bottom:0;left:-2px}.hero-relationship-heart{width:28px;height:31px;position:absolute;top:4px;right:0;transform:rotate(12deg)}.skills-section{background:#e2eaf0;border-block:1px solid #0f1e3520;padding-block:65px}.skills-layout{grid-template-columns:.9fr 1.25fr;gap:95px;display:grid}.skills-layout h2{margin-bottom:20px;font-size:2.6rem}.skills-layout>div:first-child>p:not(.section-label){max-width:310px;color:var(--muted);font-size:.85rem}.toolkit-asterisk{color:var(--blue);margin-top:10px;font-size:54px;line-height:1;display:inline-block}.skill-tabs{border-bottom:1px solid #0f1e3540;gap:6px;margin-bottom:24px;padding-bottom:13px;display:flex}.skill-tabs button{background:0 0;align-items:center;gap:8px;min-height:44px;padding:11px 15px;font-size:.8rem;display:flex;position:relative}.skill-tabs button>svg,.skill-tabs button>span:not(.skill-tab-active){z-index:1;position:relative}.skill-tabs button[aria-pressed=true]{color:var(--cream)}.skill-tab-active{background:var(--navy);border-radius:4px;position:absolute;inset:0}.skills-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.skill-item{background:var(--cream);min-height:112px;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);border:1px solid #0f1e3545;border-radius:6px;flex-direction:column;align-items:flex-start;gap:15px;padding:20px 15px 17px;display:flex;position:relative}.skill-item:hover,.skill-item.selected{border-color:var(--navy);background:#fff}.skill-item>span:nth-child(2){text-align:left;font-size:.75rem}.skill-item>svg{color:var(--muted);position:absolute;top:12px;right:11px}.skill-logo{align-items:center;width:34px;height:34px;display:flex}.skill-logo img{object-fit:contain}.brand-initial{letter-spacing:-.05em;font-size:1.3rem;font-weight:700}.skill-description{color:var(--muted);min-height:46px;margin:18px 0 0;font-size:.75rem}.work-section{padding-block:103px 91px}.work-section .section-heading{margin-bottom:47px}.serif-word{font-family:Georgia,serif;font-style:italic;font-weight:400}.featured-selector{border-bottom:1px solid #0f1e353a;grid-template-columns:repeat(3,1fr);margin-bottom:30px;display:grid}.featured-selector button{min-height:63px;color:var(--muted);background:0 0;align-items:center;gap:15px;padding:10px 18px 15px 0;font-size:.87rem;display:flex;position:relative}.featured-selector button[aria-pressed=true]{color:var(--navy);font-weight:600}.featured-selector button .mono{font-size:.7rem;font-weight:400}.featured-selector button svg{margin-left:auto}.featured-selector-line{background:var(--navy);height:3px;position:absolute;bottom:-1px;left:0;right:18px}.featured-project{grid-template-columns:1.5fr 1fr;align-items:center;gap:54px;display:grid}.featured-image-button{border-radius:var(--radius);text-align:left;background:0 0;padding:0;display:block;position:relative;overflow:hidden}.project-image{aspect-ratio:1.45;border-radius:var(--radius);justify-content:center;align-items:center;width:100%;padding:27px;display:flex;position:relative;overflow:hidden}.project-image img{object-fit:contain;opacity:0;width:100%;height:auto;max-height:100%;transition-property:opacity,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.5s;--tw-ease:var(--ease-portfolio);transition-duration:.5s;transition-timing-function:var(--ease-portfolio);border-radius:4px;box-shadow:0 10px 28px #0f1e3520}.project-image img.loaded{opacity:1}.featured-image-button:hover img{scale:1.025}.preview-loading{color:var(--muted);place-items:center;font-size:.75rem;display:grid;position:absolute;inset:0}.project-image:has(img.loaded) .preview-loading{display:none}.project-image-cta{background:var(--cream);width:44px;height:44px;color:var(--navy);transition-property:background-color,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:15px;right:15px}.featured-image-button:hover .project-image-cta{background:var(--yellow);rotate:45deg}.preview-fallback{text-align:center;flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.fallback-project-name{letter-spacing:-.06em;padding-bottom:25px;font-size:clamp(2.4rem,4vw,4.1rem);font-weight:600}.fallback-project-name>span{color:var(--blue)}.preview-fallback>span:nth-child(2){align-items:center;gap:8px;font-size:.74rem;display:flex}.preview-fallback>small{color:var(--muted);font-size:.65rem}.featured-copy{padding:20px 0}.featured-copy .eyebrow{color:var(--muted)}.featured-copy h3{margin:20px 0 7px;font-size:clamp(2rem,3.6vw,3.1rem);font-weight:600;line-height:1.15}.project-subtitle{margin-bottom:16px;font-size:.96rem}.featured-copy>p:not(.project-subtitle){color:var(--muted);max-width:345px;margin-bottom:18px;font-size:.84rem}.tech-tags{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.tech-tags span{border:1px solid #0f1e3540;border-radius:4px;padding:6px 9px;font-family:Courier New,monospace;font-size:.64rem}.featured-copy>.text-link{border-bottom:1px solid var(--navy);margin-top:8px}.project-index{margin-top:72px}.project-index-header{justify-content:space-between;align-items:end;gap:24px;margin-bottom:25px;display:flex}.project-index h3{margin-top:14px;margin-bottom:0;font-size:1.55rem;font-weight:500}.project-count{vertical-align:super;margin-left:10px;font-family:Courier New,monospace;font-size:.72rem}.project-filters{align-items:center;gap:5px;display:flex}.project-filters button{background:0 0;border:1px solid #0000;border-radius:4px;min-height:44px;padding:8px 12px;font-size:.72rem}.project-filters button:hover{border-color:var(--navy)}.project-filters button[aria-pressed=true]{background:var(--navy);color:var(--cream)}.project-list{border-top:1px solid #0f1e3550}.project-row{text-align:left;width:100%;min-height:92px;transition-property:background-color,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);background:0 0;border-bottom:1px solid #0f1e3530;align-items:center;gap:28px;padding:18px 10px 18px 0;display:flex}.project-row:hover{background:#d8e6f54d;padding-left:12px}.project-row-number{width:32px;color:var(--muted);font-size:.69rem}.project-row-main{flex:1;align-items:baseline;gap:28px;display:flex}.project-row-main strong{letter-spacing:-.025em;font-size:1.13rem;font-weight:500}.project-row-main>span{color:var(--muted);font-size:.76rem}.project-row-category{color:var(--muted);width:75px;font-size:.7rem}.project-row-arrow{width:40px;height:40px;transition-property:background-color,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);border:1px solid #0f1e3540;border-radius:50%;place-items:center;display:grid}.project-row:hover .project-row-arrow{background:var(--sky);border-color:var(--navy);rotate:45deg}.browse-projects{width:100%;min-height:45px;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);background:0 0;border:1px solid #0f1e3560;border-radius:4px;justify-content:center;align-items:center;gap:14px;margin-top:23px;font-size:.76rem;display:flex}.browse-projects:hover{background:var(--sky-soft)}.project-dialog{color:var(--navy);background:var(--cream);overscroll-behavior:contain;border:0;border-radius:12px;width:760px;max-width:min(760px,100% - 32px);max-height:88dvh;padding:24px;overflow-y:auto}.project-dialog::backdrop{background:#0f1e35bd}body:has(dialog[open]){overflow:hidden}.dialog-top{justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;display:flex}.project-dialog .project-image{max-height:350px}.dialog-copy{padding:28px 15px 12px}.dialog-copy h2{margin-bottom:10px;font-size:2.5rem}.dialog-subtitle{font-size:1.1rem}.dialog-copy>p:not(.dialog-subtitle){color:var(--muted);font-size:.92rem}.dialog-links{flex-wrap:wrap;gap:22px;margin-top:25px;display:flex}.journey-section{background:#e5edf3;padding-block:94px 66px}.journey-layout{grid-template-columns:1.4fr 1fr;gap:85px;margin-top:62px;display:grid}.experience-item{align-items:stretch;gap:26px;display:flex}.experience-marker{flex-shrink:0;justify-content:center;width:36px;display:flex;position:relative}.experience-marker:after{content:"";background:#0f1e3545;width:1px;position:absolute;top:36px;bottom:0}.experience-marker .mono{border:1px solid var(--navy);border-radius:50%;place-items:center;width:34px;height:34px;font-size:.63rem;display:grid}.experience-item:last-child .experience-marker:after{bottom:25px}.experience-copy{flex:1;min-width:0;padding-bottom:45px}.experience-period{color:var(--muted);font-size:.69rem}.experience-title{justify-content:space-between;align-items:center;margin-top:9px;display:flex}.experience-title h3{margin:0;font-size:1.65rem;font-weight:500}.experience-role{margin:1px 0 15px;font-size:.8rem;display:block}.experience-copy p{color:var(--muted);max-width:460px;margin-bottom:0;font-size:.84rem}.small-link{margin-top:9px;font-size:.74rem}.education-note{background:var(--cream);border:1px solid #0f1e3540;border-radius:6px;align-self:start;padding:31px;transform:rotate(2deg)}.education-note-top{align-items:center;gap:12px;margin-bottom:32px;display:flex}.education-note-top .mono{font-size:.67rem}.education-period{letter-spacing:-.045em;margin-bottom:20px;font-family:Georgia,serif;font-size:2.7rem;display:block}.education-note h3{margin-bottom:13px;font-size:1.4rem;font-weight:500}.education-note p{color:var(--muted);margin-bottom:12px;font-size:.83rem}.education-program{color:var(--muted);font-size:.65rem;line-height:1.7;display:block}.education-note-bottom{border-top:1px solid var(--line);align-items:center;gap:9px;margin-top:26px;padding-top:20px;font-size:.7rem;display:flex}.community-note{border-top:1px solid #0f1e3530;align-items:center;gap:24px;margin-top:12px;padding-top:28px;display:flex}.community-note>p{color:var(--muted);max-width:730px;margin-bottom:0;font-size:.8rem}.community-note strong{color:var(--navy);font-weight:500}.community-note>.handwritten{white-space:nowrap;color:var(--blue);margin-left:auto;transform:rotate(-6deg)}.music-section{background:var(--navy);color:var(--cream);padding-block:100px 90px}.music-section .section-label .mono{color:#b8c9df}.music-section .section-heading{grid-template-columns:1.2fr 1fr;margin-bottom:62px}.music-section .section-heading>div>p{color:#c4cfde;max-width:350px}.music-heading-icon{color:var(--yellow);margin-bottom:12px}.music-room{border:1px solid #70829a;border-radius:9px;grid-template-columns:1fr 1.12fr;align-items:stretch;display:grid;overflow:hidden}.performance-photo{background:#172b3b;min-width:0;min-height:580px;position:relative;overflow:hidden}.photo-ornaments{z-index:2;pointer-events:none;color:var(--cream);background:linear-gradient(#0f1e3540 0%,#0000 22% 75%,#0f1e35b3 100%);position:absolute;inset:0}.photo-corner{opacity:.9;width:23px;height:23px;position:absolute}.corner-top-left{border-top:1px solid;border-left:1px solid;top:21px;left:21px}.corner-top-right{border-top:1px solid;border-right:1px solid;top:21px;right:21px}.corner-bottom-left{border-bottom:1px solid;border-left:1px solid;bottom:21px;left:21px}.corner-bottom-right{border-bottom:1px solid;border-right:1px solid;bottom:21px;right:21px}.photo-star{color:var(--yellow);position:absolute}.photo-star-large{width:53px;height:53px;top:42px;left:40px;transform:rotate(12deg)}.photo-star-small{width:23px;height:23px;color:var(--cream);top:85px;left:92px;transform:rotate(-9deg)}.photo-caption{letter-spacing:-.02em;background:#0f1e35d9;border-radius:3px;padding:8px 11px;font-family:Georgia,serif;font-size:clamp(1.1rem,1.8vw,1.55rem);font-style:italic;line-height:1.25;position:absolute;bottom:41px;left:39px}.photo-caption-rule{background:var(--cream);width:48px;height:1px;position:absolute;bottom:61px;right:43px}.listening-panel{padding:30px 35px 26px}.listening-heading{align-items:center;gap:9px;margin-bottom:36px;font-size:.8rem;display:flex}.listening-heading>.mono{color:#b9c7da;margin-left:auto;font-size:.6rem}.listening-panel h3{white-space:pre-line;max-width:350px;margin-bottom:15px;font-size:1.8rem;font-weight:500;line-height:1.25}.listening-panel>p{color:#c4cfde;max-width:365px;margin-bottom:24px;font-size:.8rem}.playlist-empty{background:#1f3a5f;border:1px solid #7088a5;border-radius:4px;align-items:center;gap:10px;min-height:46px;padding:9px 12px;font-size:.72rem;display:inline-flex}.artist-list{border-top:1px solid #60738d;margin-top:28px;padding-top:21px}.artist-list>p{color:#b9c7da;margin-bottom:9px;font-size:.69rem}.artist-list>div{flex-wrap:wrap;gap:0 18px;display:flex}.artist-list a{align-items:center;gap:6px;min-height:37px;font-size:.74rem;display:flex}.artist-list a:hover{color:var(--yellow);text-underline-offset:4px;text-decoration:underline}.music-footnote{color:#b9c7da;margin-top:18px;font-size:.6rem;line-height:1.65;display:block}.music-dock{z-index:45;background:var(--navy);color:var(--cream);border:1px solid #7f93ae;border-radius:999px;align-items:center;gap:2px;padding:3px;display:flex;position:fixed;bottom:20px;right:24px;box-shadow:0 3px 12px #0f1e3520}.music-dock button{width:44px;min-height:44px;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);background:0 0;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.music-dock button:hover{background:#ffffff15}.music-dock .dock-play{background:var(--cream);color:var(--navy)}.music-dock .dock-play:hover{background:var(--yellow)}.music-dock :focus-visible{outline-color:var(--yellow);outline-offset:2px}.global-music-player{background:var(--cream);width:410px;max-width:calc(100% - 32px);color:var(--navy);border:1px solid var(--navy);z-index:55;visibility:hidden;opacity:0;pointer-events:none;--tw-translate-y:15px;max-height:calc(100dvh - 110px);translate:var(--tw-translate-x) var(--tw-translate-y);transition-property:opacity,translate,visibility;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);border-radius:10px;padding:18px;position:fixed;bottom:82px;right:28px;overflow-y:auto;box-shadow:0 15px 50px #0f1e3530}.global-music-player.is-open{visibility:visible;opacity:1;pointer-events:auto;--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.player-heading{align-items:center;gap:9px;margin-bottom:14px;display:flex}.player-heading>strong{font-size:.85rem;font-weight:500}.player-heading>button{margin-left:auto}.playlist-select{margin-bottom:16px}.playlist-select label{margin-bottom:7px;font-size:.73rem;display:block}.playlist-select select{border:1px solid var(--navy);background:var(--cream);border-radius:4px;width:100%;min-height:44px;padding:10px;font-size:.8rem}.embed-frame{background:#e5e6e2;border-radius:12px;height:352px;position:relative;overflow:hidden}.embed-frame iframe{border:0;width:100%;height:352px}.embed-status{pointer-events:none;background:#e5e6e2;place-items:center;font-size:.8rem;display:grid;position:absolute;inset:0}.player-hint{color:var(--muted);margin-block:15px;font-size:.73rem}.spotify-playlist-card{padding-top:4px;scroll-margin-top:100px}.spotify-playlist-card .player-hint{color:#c4cfde}.spotify-playlist-card .embed-status{color:var(--cream);text-align:center;background:#26364c;padding:20px}.spotify-playlist-card .playlist-select select{color:var(--navy)}.spotify-playlist-card .embed-frame{background:#26364c}.spotify-empty-card{background:#25364d;border:1px solid #71849d;border-radius:12px;align-items:center;gap:14px;min-height:138px;padding:20px;display:flex}.empty-playlist-cover{background:var(--sky);width:72px;height:72px;color:var(--navy);border-radius:6px;flex-shrink:0;place-items:center;display:grid}.spotify-empty-card>div:nth-child(2){min-width:0}.spotify-empty-card .mono{color:#c4cfde;letter-spacing:.04em;margin-bottom:8px;font-size:.48rem;display:block}.spotify-empty-card strong{font-size:.8rem;font-weight:500;line-height:1.5;display:block}.spotify-empty-card p{color:#c4cfde;margin:5px 0 0;font-size:.66rem}.spotify-empty-card>svg{align-self:start;width:20px;margin-left:auto}.player-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.player-actions .button{gap:9px;min-height:44px;padding:10px 16px;font-size:.75rem}.player-actions .text-link{gap:5px;font-size:.75rem}.contact-section{background:var(--sky);padding-block:95px 35px}.contact-heading{justify-content:space-between;align-items:center;gap:30px;margin-bottom:22px;display:flex}.contact-heading>h2{margin-bottom:0;font-size:clamp(3.5rem,7vw,6.3rem);font-weight:500}.contact-big-arrow{background:var(--yellow);width:125px;height:125px;transition-property:rotate,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;--tw-ease:var(--ease-portfolio);transition-duration:.3s;transition-timing-function:var(--ease-portfolio);border-radius:50%;flex-shrink:0;place-items:center;margin-right:8px;display:grid}.contact-big-arrow svg{width:70px;height:70px}.contact-big-arrow:hover{background:var(--cream);rotate:45deg}.contact-description{max-width:400px;color:var(--navy-secondary);margin-bottom:45px;font-size:.87rem}.contact-socials{grid-template-columns:1fr 1fr;column-gap:45px;display:grid}.contact-socials>a{min-height:87px;transition-property:padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio);border-top:1px solid #0f1e3555;align-items:center;gap:15px;display:flex}.contact-socials>a:hover{padding-left:7px}.contact-platform{align-items:center;gap:13px;display:flex}.contact-platform>strong{font-size:.87rem;font-weight:500}.contact-handle{color:var(--navy-secondary);max-width:160px;margin-left:auto;font-size:.66rem}.contact-socials>a>svg{margin-left:auto}.contact-signoff{align-items:center;gap:8px;margin-top:55px;font-size:.69rem;display:flex}.contact-signoff .handwritten{margin-left:auto;font-size:1.1rem;transform:rotate(-5deg)}.optional-email{margin-top:20px}.footer{background:var(--sky);border-top:1px solid #0f1e3535;padding-block:26px}.footer>div{justify-content:space-between;align-items:center;gap:24px;display:flex}.footer .wordmark{font-size:1.7rem}.footer p{margin:0;font-size:.65rem}.footer-tools{flex-wrap:wrap;align-items:center;gap:20px;min-width:0;display:flex}.back-top{align-items:center;gap:10px;min-height:44px;font-size:.68rem;display:flex}.back-top svg{transition-property:translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-portfolio);transition-duration:.2s;transition-timing-function:var(--ease-portfolio)}.back-top:hover svg{--tw-translate-y:calc(3px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.utility-page{max-width:800px;min-height:75dvh;margin-inline:auto;padding:120px 35px}.utility-page h1{letter-spacing:-.065em;margin-block:24px;font-size:clamp(3.5rem,8vw,6rem);line-height:1.05}.utility-page p{max-width:450px;color:var(--muted);margin-bottom:30px}.utility-page .mono{font-size:.8rem}@media (min-width:1500px){.hero-main{min-height:720px;padding-top:85px;padding-bottom:70px}.hero h1{font-size:7.3rem}.portrait-composition{height:530px}.portrait-cutout{height:500px}}@media (max-width:1100px){.container{width:calc(100% - 64px)}.hero h1{font-size:clamp(4.4rem,8vw,6rem)}.hero-main{min-height:590px;padding-top:60px}.portrait-composition{height:450px}.portrait-cutout{height:400px}.note-music{padding:12px;font-size:.64rem;top:100px;left:-5px}.note-code{padding:12px;font-size:.68rem;bottom:100px;right:-10px}.portrait-caption{font-size:.82rem;top:0;right:7px}.star-one{font-size:67px;top:42px;right:-8px}.hero-description{max-width:340px;font-size:.86rem}.hero-greeting{gap:8px;font-size:.8rem}.hero-actions{gap:20px}.skills-layout{grid-template-columns:.85fr 1.2fr;gap:50px}.skills-layout h2{font-size:2.3rem}.skills-grid{gap:8px}.skill-item{padding:15px 11px}.skill-item>span:nth-child(2){font-size:.7rem}.featured-project{grid-template-columns:1.35fr 1fr;gap:35px}.featured-copy h3{font-size:2.4rem}.project-image{padding:20px}.project-row-main{gap:20px}.project-row-main>span{font-size:.71rem}.journey-layout{gap:50px}.education-note{padding:25px}.community-note>.handwritten{display:none}.listening-panel{padding:27px}.contact-handle{display:none}}@media (max-width:759px){html{scroll-padding-top:80px}.container{width:calc(100% - 40px);max-width:600px}.nav-shell{gap:18px;min-height:70px}.wordmark{font-size:1.8rem}.desktop-nav{display:none}.nav-contact{gap:9px;min-height:44px;margin-left:auto;padding:8px 12px;font-size:.73rem}.menu-toggle{margin-right:-9px;display:flex}.mobile-nav{background:var(--sky);border-top:1px solid #0f1e3530;flex-direction:column;padding-inline:22px;display:flex;overflow:hidden}.mobile-nav a{border-bottom:1px solid #0f1e3520;justify-content:space-between;align-items:center;min-height:53px;font-size:1rem;display:flex}.mobile-nav a:last-child{border-bottom:0;margin-bottom:10px}.hero-main{flex-direction:column;align-items:stretch;gap:35px;min-height:auto;padding-top:42px;padding-bottom:10px;display:flex}.hero-copy{width:100%}.hero-greeting{flex-wrap:wrap;margin-bottom:22px;font-size:.79rem}.small-wave{font-size:1.25rem}.hero h1{letter-spacing:-.07em;margin-bottom:30px;font-size:clamp(4.15rem,14vw,6.5rem)}.hero-role-intro{font-size:.67em}.hero-description{max-width:390px;margin-bottom:22px;font-size:.87rem}.hero-actions{gap:24px;margin-bottom:22px}.hero-actions .button{gap:16px;min-height:49px;padding:13px 19px;font-size:.78rem}.hero-actions .text-link{font-size:.8rem}.hero-socials{gap:15px}.hero-socials>div{gap:5px}.portrait-composition{align-self:center;width:min(100%,430px);height:370px;margin-top:18px}.portrait-disc,.portrait-frame{width:83%;bottom:28px;right:7%}.portrait-cutout{width:80%;height:330px;bottom:30px;left:11%}.portrait-placeholder{padding-top:30px}.placeholder-figure>svg:last-child{width:150px;height:150px}.placeholder-figure>svg:first-child{width:58px;height:58px;top:28px}.placeholder-label{font-size:.74rem}.placeholder-hint{font-size:.65rem}.note-music{font-size:.63rem;top:67px;left:0}.note-code{font-size:.67rem;bottom:68px;right:4px}.hero-relationship{top:2px;left:14px}.hero-relationship-status{font-size:1.15rem}.hero-relationship-note{font-size:.78rem}.hero-relationship-heart{width:24px;height:28px}.star-one{font-size:57px;top:36px;right:9px}.star-two{font-size:27px;bottom:75px;left:0}.portrait-caption{font-size:.78rem;top:-16px;right:25px}.portrait-caption svg{width:70px;top:33px;right:5px}.portrait-location{font-size:.66rem;bottom:0}.hero-bottom{gap:15px;padding-block:20px 27px}.hero-bottom>p{text-align:right;max-width:125px;font-size:.62rem;line-height:1.5}.hero-bottom>p>span{margin-inline:3px}.scroll-cue{gap:7px;font-size:.65rem}.scroll-circle{width:27px;height:27px}.identity-strip{--identity-duration:24s;padding:17px 0}.identity-word{font-size:.73rem}.identity-separator{font-size:19px}.section-label{gap:12px;margin-bottom:25px;font-size:.73rem}.section-heading,.about-heading{grid-template-columns:1fr;gap:25px;margin-bottom:40px}h2{letter-spacing:-.055em;font-size:clamp(2.45rem,8.8vw,3.4rem)}.section-heading>p,.section-heading>div>p{max-width:440px;margin:0;font-size:.86rem}.about-section{padding-block:65px 55px}.about-scribble{margin-top:11px;font-size:.86rem}.story-timeline{grid-template-columns:1fr;margin-top:48px;margin-bottom:35px}.story-chapter,.story-chapter:last-child{border-top:0;border-left:1px solid #0f1e3550;margin-left:5px;padding:0 0 33px 27px}.story-chapter:last-child{padding-bottom:8px}.story-dot{top:4px;left:-5px}.chapter-marker{margin-bottom:10px;font-size:.68rem}.story-chapter h3{max-width:none;margin-bottom:10px;font-size:1.12rem}.story-chapter p{max-width:440px;font-size:.81rem}.beyond-note{grid-template-columns:1fr;gap:18px;padding-top:28px}.beyond-note h3{max-width:none;font-size:1.2rem}.beyond-note-heading{align-items:center;gap:12px}.beyond-note-heading>svg{width:24px;margin-top:0}.beyond-note>p{margin-bottom:0;font-size:.81rem}.easter-egg{grid-column:1}.easter-egg button{font-size:.65rem}.skills-section{padding-block:50px 40px}.skills-layout{grid-template-columns:1fr;gap:25px}.skills-layout>div:first-child{position:relative}.skills-layout h2{font-size:2.45rem}.skills-layout>div:first-child>p:not(.section-label){max-width:350px;margin-bottom:0;font-size:.82rem}.toolkit-asterisk{margin:0;font-size:45px;position:absolute;top:56px;right:0}.skill-tabs{margin-bottom:20px}.skill-tabs button{padding:10px 13px;font-size:.75rem}.skills-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.skill-item{gap:14px;min-height:105px;padding:17px 10px 14px}.skill-item>span:nth-child(2){font-size:.68rem}.skill-item>svg{width:10px;top:8px;right:7px}.skill-logo,.skill-logo img{width:29px;height:29px}.skill-description{min-height:45px;margin-top:15px;font-size:.72rem}.work-section{padding-block:64px 58px}.work-section .section-heading{margin-bottom:28px}.featured-selector{overscroll-behavior-x:contain;margin-bottom:22px;display:flex;overflow-x:auto}.featured-selector button{flex:1 0 auto;gap:10px;min-width:160px;min-height:58px;padding-right:15px;font-size:.76rem}.featured-selector button>svg{width:15px;margin-left:8px}.featured-project{grid-template-columns:1fr;gap:5px}.project-image{aspect-ratio:1.4;padding:18px}.featured-copy{padding-top:23px}.featured-copy h3{margin-top:14px;font-size:2.25rem}.featured-copy>p:not(.project-subtitle){max-width:440px;font-size:.82rem}.project-subtitle{font-size:.92rem}.tech-tags{margin-bottom:12px}.featured-copy>.text-link{margin-top:0;font-size:.8rem}.fallback-project-name{font-size:2.9rem}.project-index{margin-top:35px}.project-index-header{flex-direction:column;align-items:start;gap:17px;margin-bottom:17px}.project-index h3{margin-top:11px;font-size:1.4rem}.project-filters{gap:5px}.project-filters button{padding:8px 12px;font-size:.7rem}.project-row{gap:12px;min-height:88px}.project-row-number{width:22px;font-size:.62rem}.project-row-main{flex-direction:column;gap:6px;min-width:0}.project-row-main strong{font-size:1.02rem}.project-row-main>span{font-size:.67rem;line-height:1.5}.project-row-category{display:none}.project-row-arrow{flex-shrink:0;width:35px;height:35px}.project-row-arrow>svg{width:19px}.project-dialog{max-width:calc(100% - 20px);max-height:91dvh;padding:16px}.dialog-top .eyebrow{font-size:.65rem}.dialog-copy{padding:24px 4px 6px}.dialog-copy h2{font-size:2rem}.dialog-copy>p:not(.dialog-subtitle){font-size:.85rem}.dialog-subtitle{font-size:.94rem}.dialog-links{flex-direction:column;align-items:start;gap:8px;margin-top:18px}.journey-section{padding-block:62px 48px}.journey-layout{grid-template-columns:1fr;gap:13px;margin-top:40px}.experience-item{gap:17px}.experience-title h3{font-size:1.55rem}.experience-period{font-size:.63rem}.experience-copy{padding-bottom:35px}.experience-copy p{font-size:.8rem}.education-note{padding:25px;transform:none}.education-note-top{margin-bottom:23px}.education-period{margin-bottom:16px;font-size:2.5rem}.education-note-bottom{margin-top:20px}.community-note{align-items:start;gap:15px;margin-top:30px;padding-top:26px}.community-note>svg{width:22px;margin-top:4px}.community-note p{font-size:.77rem}.music-section{padding-block:65px 52px}.music-section .section-heading{grid-template-columns:1fr;gap:22px;margin-bottom:33px}.music-heading-icon{display:none}.music-room{grid-template-columns:1fr}.performance-photo{aspect-ratio:4/5;min-height:0}.listening-panel{padding:25px 22px}.listening-heading{margin-bottom:25px}.listening-panel h3{font-size:1.7rem}.listening-panel>p{font-size:.78rem}.artist-list{margin-top:25px}.artist-list a{min-height:44px;font-size:.73rem}.music-dock{bottom:14px;right:14px}.music-dock button{width:44px;min-height:44px}.spotify-empty-card{gap:12px;padding:16px}.empty-playlist-cover{width:58px;height:65px}.global-music-player{max-height:calc(100dvh - 100px);bottom:77px;right:16px}.contact-section{padding-block:63px 30px}.contact-heading{align-items:end;gap:14px;margin-bottom:20px}.contact-heading>h2{font-size:clamp(2.6rem,9.8vw,3.7rem)}.contact-big-arrow{width:58px;height:58px;margin:0 0 3px}.contact-big-arrow svg{width:35px;height:35px}.contact-description{max-width:330px;margin-bottom:30px;font-size:.83rem}.contact-socials{grid-template-columns:1fr}.contact-socials>a{gap:12px;min-height:78px}.contact-platform{gap:13px}.contact-platform>strong{font-size:.83rem}.contact-handle{text-align:right;max-width:135px;font-size:.6rem;display:block}.contact-socials>a>svg{width:19px;margin-left:0}.contact-signoff{flex-wrap:wrap;margin-top:30px;font-size:.62rem}.contact-signoff .handwritten{font-size:.92rem}.footer{padding:19px 0 48px}.footer>div{flex-wrap:wrap;gap:12px}.footer .wordmark{font-size:1.5rem}.footer p{order:3;width:100%;font-size:.57rem}.footer-tools{gap:12px;width:auto;margin-left:auto}.back-top{margin-left:auto;font-size:.63rem}}@media (max-width:359px){.container{width:calc(100% - 32px)}.hero h1{font-size:3.85rem}.hero-greeting{font-size:.72rem}.hero-actions{gap:18px}.hero-actions .button{gap:12px;padding-inline:14px}.portrait-composition{height:330px}.portrait-cutout{height:300px}.portrait-note{padding:10px;font-size:.6rem}.toolkit-asterisk{font-size:33px;top:61px;right:0}.skills-layout h2{font-size:2.15rem}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-item{min-height:100px}.contact-handle{max-width:115px;font-size:.56rem}.contact-heading>h2{font-size:2.35rem}.contact-big-arrow{width:48px;height:48px}}.motion-root{display:contents}.motion-root .hero .hero-intro{animation:hero-arrive 1.1s var(--ease-portfolio) both!important;animation-delay:var(--intro-delay,0s)!important}.motion-root[data-motion=full] .hero .hero-intro{animation:hero-arrive 1.1s var(--ease-portfolio) both, hero-lift 1.05s var(--ease-portfolio) both!important;animation-delay:var(--intro-delay,0s)!important}.hero h1.hero-intro{--intro-delay:80ms}.hero .portrait-composition.hero-intro{--intro-delay:.12s}.hero .hero-description.hero-intro{--intro-delay:.18s}.hero .hero-actions.hero-intro{--intro-delay:.26s}.hero .hero-socials.hero-intro{--intro-delay:.34s}.motion-root[data-motion-enabled=false] .hero .hero-intro{animation:none!important}html:has(.motion-root[data-motion=reduced]){scroll-behavior:auto}.motion-root[data-motion-enabled=true] .reveal[data-reveal-state=pending]{opacity:0}.motion-root[data-motion=full] .reveal-stagger.is-revealed>*{animation:stagger-reveal .6s var(--ease-portfolio) both;animation-delay:var(--reveal-delay,0s)}.motion-root[data-motion=full] .experience-item.is-revealed .experience-marker:after{transform-origin:top;animation:timeline-grow .7s var(--ease-portfolio) both}.reveal-stagger>:nth-child(2){--reveal-delay:55ms}.reveal-stagger>:nth-child(3){--reveal-delay:.11s}.reveal-stagger>:nth-child(4){--reveal-delay:.165s}.reveal-stagger>:nth-child(5){--reveal-delay:.22s}.reveal-stagger>:nth-child(6){--reveal-delay:.275s}.reveal-stagger>:nth-child(7){--reveal-delay:.33s}.reveal-stagger>:nth-child(8){--reveal-delay:.385s}.reveal-stagger>:nth-child(9){--reveal-delay:.44s}.reveal-stagger>:nth-child(10){--reveal-delay:.495s}.motion-root[data-motion=full] .project-dialog[open]{animation:dialog-reveal .32s var(--ease-portfolio) both}.motion-root[data-motion=full] .project-dialog[open]::backdrop{animation:.24s ease-out both backdrop-reveal}.motion-root[data-motion=full] .project-dialog[open][data-closing=true]{animation:.18s ease-in both dialog-exit}.motion-root[data-motion=full] .project-dialog[open][data-closing=true]::backdrop{animation:.18s ease-in both backdrop-exit}@media (hover:hover) and (pointer:fine){.motion-root[data-motion=full] .skill-item{transition-property:translate,background-color,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;--tw-ease:var(--ease-portfolio);transition-duration:.3s;transition-timing-function:var(--ease-portfolio)}.motion-root[data-motion=full] .skill-item:hover{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.motion-root[data-motion=full] .portrait-note{transition-property:translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.5s;--tw-ease:var(--ease-portfolio);transition-duration:.5s;transition-timing-function:var(--ease-portfolio)}.motion-root[data-motion=full] .portrait-composition:hover .note-code{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.motion-root[data-motion=full] .portrait-composition:hover .note-music{--tw-translate-y:3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.motion-root[data-motion=full] .button>svg,.motion-root[data-motion=full] .contact-socials>a>svg{transition-property:translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;--tw-ease:var(--ease-portfolio);transition-duration:.3s;transition-timing-function:var(--ease-portfolio)}.motion-root[data-motion=full] .button:hover>svg{--tw-translate-x:3px;--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.motion-root[data-motion=full] .contact-socials>a:hover>svg{--tw-translate-x:var(--spacing);--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}}.motion-root[data-motion=reduced] :is(.button,.icon-button,.hero-socials a,.contact-big-arrow):hover,.motion-root[data-motion=reduced] :is(.text-link,.scroll-cue,.back-top,.featured-image-button,.project-row):hover :is(svg,.scroll-circle,img,.project-row-arrow){transform:none}.motion-root[data-motion=reduced] .contact-socials>a:hover{padding-left:0}.motion-root[data-motion=reduced] *,.motion-root[data-motion=reduced] :before,.motion-root[data-motion=reduced] :after{transition-property:none!important;animation:none!important}.motion-root .reveal:focus-within,.motion-root .reveal-stagger>:focus-visible{opacity:1!important;translate:none!important}@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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@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}@keyframes hero-arrive{0%{opacity:.08}to{opacity:1}}@keyframes identity-scroll{0%{translate:-50%}to{translate:0}}@keyframes hero-lift{0%{translate:0 32px}to{translate:0}}@keyframes reveal-up{0%{opacity:.08;translate:0 32px}to{opacity:1;translate:0}}@keyframes reveal-left{0%{opacity:.08;translate:-24px}to{opacity:1;translate:0}}@keyframes reveal-right{0%{opacity:.08;translate:24px}to{opacity:1;translate:0}}@keyframes timeline-grow{0%{scale:1 0}to{scale:1}}@keyframes stagger-reveal{0%{opacity:.08;translate:0 24px}to{opacity:1;translate:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes project-in{0%{opacity:0;translate:16px}to{opacity:1;translate:0}}@keyframes project-out{0%{opacity:1;translate:0}to{opacity:0;translate:-10px}}@keyframes dialog-reveal{0%{opacity:0;translate:0 14px;scale:.985}to{opacity:1;translate:0;scale:1}}@keyframes dialog-exit{0%{opacity:1;scale:1}to{opacity:0;scale:.985}}@keyframes backdrop-reveal{0%{opacity:0}to{opacity:1}}@keyframes backdrop-exit{0%{opacity:1}to{opacity:0}}@keyframes menu-open{0%{opacity:0;grid-template-rows:0fr}to{opacity:1;grid-template-rows:1fr}}@keyframes menu-close{0%{opacity:1;grid-template-rows:1fr}to{opacity:0;grid-template-rows:0fr}}@keyframes menu-link{0%{opacity:0;translate:-10px}to{opacity:1;translate:0}}@keyframes note-in{0%{opacity:0;translate:0 5px}to{opacity:1;translate:0}}@keyframes note-out{0%{opacity:1}to{opacity:0}}@keyframes heart-pop{0%,to{rotate:none;scale:1}40%{rotate:-12deg;scale:1.25}70%{rotate:8deg;scale:1.1}}@keyframes arrow-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}
