.home-copy .hero-carousel-title{font:400 clamp(41px, 4.54vw, 71px)/1.06 var(--serif);letter-spacing:-1.1px;margin:0 0 13px}.hero-reels{display:block}.hero-reel-line{align-items:flex-start;gap:.18em;display:flex}.hero-fixed{flex:none;padding:.09em 0 .13em}.word-reel{perspective:700px;isolation:isolate;flex:1;min-width:0;margin:0 -.05em;padding:.09em .05em .13em;display:grid;position:relative;overflow:clip}.reel-sizer,.reel-face{grid-area:1/1;align-self:start;min-width:0}.reel-sizer{visibility:hidden;pointer-events:none}.reel-face{z-index:1;backface-visibility:hidden;position:relative}.reel-offering{color:var(--terra);font-style:italic}.reel-incoming{animation:reel-arrive var(--reel-duration) cubic-bezier(.2, .7, .2, 1) var(--reel-delay) both;transform-origin:50% 100%}.reel-outgoing{animation:reel-depart var(--reel-duration) cubic-bezier(.4, 0, .2, 1) var(--reel-delay) both;transform-origin:50% 0}@keyframes reel-arrive{0%{opacity:0;transform:translateY(48%)rotateX(-78deg)}45%{opacity:1}to{opacity:1;transform:translateY(0)rotateX(0)}}@keyframes reel-depart{0%{opacity:1;transform:translateY(0)rotateX(0)}65%,to{opacity:0;transform:translateY(-45%)rotateX(78deg)}}.hero-carousel-actions{align-items:center;gap:27px;display:flex}.hero-carousel-actions .text-link{font-size:15px}.home-explore{flex-shrink:0;justify-content:center;padding:5px 0 22px;display:flex}.home-explore .button-primary{justify-content:space-between;min-width:206px}.home-screen .home-main{min-height:0}@media (width>=1500px){.home-copy .hero-carousel-title{font-size:73px}}@media (height<=750px) and (width>=901px){.home-copy .hero-carousel-title{font-size:clamp(41px,4.43vw,58px)}.home-screen .thinking-art{max-height:315px}.home-explore{padding-bottom:16px}}@media (width<=900px){.home-copy .hero-carousel-title{letter-spacing:-.6px;font-size:clamp(33px,5.08vw,45px)}}@media (width<=600px){.home-copy .hero-carousel-title{letter-spacing:-.4px;margin-bottom:10px;font-size:clamp(32px,9.07vw,45px);line-height:1.08}.hero-carousel-actions{gap:24px}.hero-carousel-actions .text-link{font-size:14px}.home-screen .home-main{flex:1;justify-content:space-evenly;padding:22px 0 10px}.home-screen .thinking-garden{margin-top:10px}.home-explore{padding:7px 0 20px}.home-explore .button-primary{padding:13px 19px;font-size:14px}}@media (width<=600px) and (height<=640px){.home-copy .hero-carousel-title{font-size:32px}.home-screen .home-main{padding:13px 0 8px}.home-explore{padding-bottom:14px}}@media (prefers-reduced-motion:reduce){.reel-face{animation:none;transform:none}.reel-outgoing{display:none}}.button-primary{background:var(--teal);color:var(--paper);border:1px solid var(--teal);align-items:center;gap:30px;padding:15px 23px;font-size:15px;transition:background .2s,transform .2s;display:inline-flex}.button-primary:hover{background:#204a41;transform:translateY(-2px)}.text-link{border-bottom:1px solid #b9beaa;align-items:center;gap:12px;padding:8px 0;font-size:14px;text-decoration:none;display:inline-flex}.text-link:hover{color:var(--terra);border-color:var(--terra)}.home-screen{overscroll-behavior:contain;flex-direction:column;max-width:1600px;height:100%;margin:auto;padding:25px 6% 0;display:flex;overflow:auto}.home-window-label{font:11px/1.6 var(--mono);letter-spacing:1.3px;color:var(--muted);border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:15px;padding-bottom:15px;display:flex}.home-window-label>span:first-child{align-items:center;gap:8px;display:flex}.tiny-square{border:1px solid #8c977f;width:5px;height:5px;display:inline-block}.home-screen .home-main{flex:1 0 auto;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;gap:3%;min-height:auto;padding:34px 0 30px;display:grid}.home-copy{min-width:0;padding-left:2%}.home-copy>.eyebrow{letter-spacing:1.7px;margin:0 0 18px;font-size:11px}.home-copy .text-link svg{transition:transform .2s}.home-copy .text-link:is(:hover,:focus-visible) svg{transform:rotate(45deg)}.home-screen .home-copy .hero-carousel-title{letter-spacing:-1.3px;margin-bottom:20px;font-size:clamp(41px,4.54vw,73px);line-height:1.04}.home-screen .thinking-garden{flex-direction:column;align-self:center;width:100%;height:auto;min-height:0;margin:0;display:flex;position:relative}.garden-art-label{font:11px/1.7 var(--mono);letter-spacing:1.2px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:0 4% 8px;display:flex}.art-index{letter-spacing:.6px;color:#929584;margin-left:auto;font-size:11px}.home-garden-slot{pointer-events:none;flex:none;width:100%;height:clamp(308px,48.4svh,560px);position:relative}.art-caption{border-top:1px solid var(--line);font:11px/1.8 var(--mono);letter-spacing:1px;color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin:0 4%;padding-top:16px;display:flex}.art-caption strong{color:var(--ink);font-weight:400}.art-caption-dot{border:1px solid var(--terra);flex:none;width:6px;height:6px;transform:rotate(45deg)}.garden-enter{min-height:44px;color:var(--ink);font:15px/1.4 var(--sans);letter-spacing:0;flex-shrink:0;justify-content:space-between;align-items:center;gap:14px;margin-left:auto;padding:7px 0 7px 14px;display:inline-flex}.garden-enter svg{box-sizing:content-box;border:1px solid #b6beaa;border-radius:50%;padding:11px;transition:background .2s,color .2s,transform .2s}.garden-enter:is(:hover,:focus-visible) svg{background:var(--terra);color:var(--paper);transform:rotate(45deg)}.home-scroll-note{font:11px/1.6 var(--mono);letter-spacing:1.2px;color:var(--muted);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:4px 0 21px;display:flex}.home-scroll-note>span:first-child{align-items:center;gap:9px;display:flex}.home-scroll-note svg{color:var(--terra)}.home-foundations{border-top:1px solid var(--line);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;min-height:56px;display:flex}.home-foundations>a{overflow-wrap:anywhere;align-items:center;gap:9px;max-width:100%;min-height:44px;padding:5px 0;font-size:14px;line-height:1.4;text-decoration:none;transition:color .2s;display:inline-flex}.home-foundations>a:hover{color:var(--terra)}.home-foundations>a:hover>span{text-underline-offset:3px;text-decoration:underline}.home-foundations svg{color:var(--terra)}.home-foundations small{font:11px/1.5 var(--mono);letter-spacing:.5px;text-transform:uppercase;color:var(--muted);display:block}@media (height<=750px) and (width>=901px){.home-screen{padding-top:16px}.home-screen .home-main{padding:20px 0}.home-screen .home-copy .hero-carousel-title{font-size:clamp(39px,4.05vw,56px)}.home-garden-slot{height:clamp(320px,51svh,415px)}.home-scroll-note{padding-bottom:15px}}@media (width<=900px){.home-screen{padding:22px 5% 0}.home-screen .home-main{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:2%}.home-copy{padding-left:0}.home-screen .home-copy .hero-carousel-title{letter-spacing:-.6px;font-size:clamp(33px,4.54vw,43px)}.garden-art-label{letter-spacing:.6px;font-size:11px}.art-index{font-size:11px}.art-caption{letter-spacing:.6px;gap:7px;font-size:11px}.garden-enter{gap:8px;padding-left:5px;font-size:14px}.garden-enter svg{padding:9px}}@media (width<=600px){.home-screen{padding:18px 6% 0}.home-window-label{letter-spacing:.6px;align-items:flex-start;font-size:11px}.home-screen .home-main{flex-direction:column;flex:1 0 auto;justify-content:flex-start;align-items:stretch;gap:34px;padding:30px 0 22px;display:flex}.home-copy>.eyebrow{letter-spacing:1.1px;margin-bottom:14px;font-size:11px}.home-screen .home-copy .hero-carousel-title{margin-bottom:12px;font-size:clamp(32px,8.86vw,48px);line-height:1.04}.home-screen .thinking-garden{height:auto;margin:0;display:flex}.home-garden-slot{height:clamp(275px,80.3vw,374px)}.garden-art-label{letter-spacing:.9px;padding:0 0 7px;font-size:11px}.art-caption{gap:10px;margin:0;padding-top:12px;font-size:11px}.art-caption>span:nth-child(2){flex:1}.garden-enter{gap:10px;margin-left:auto;padding-left:0;font-size:14px}.home-scroll-note{letter-spacing:.7px;padding-bottom:16px;font-size:11px}.home-foundations{gap:8px 16px;min-height:50px;padding:8px 0}.home-foundations>a{gap:5px;font-size:14px}.home-foundations svg{width:13px;height:13px}.home-foundations small{font-size:11px}}.projects-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;height:100%;padding:42px 6% 0;overflow:hidden auto}.projects-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:25px;max-width:1350px;margin:0 auto 36px;display:flex}.projects-heading .eyebrow{margin:0 0 13px;font-size:11px}.projects-heading h1{font:400 clamp(48px, 5.4vw, 84px)/1 var(--serif);letter-spacing:-1.4px;margin:0}.projects-heading h1 em{color:var(--terra);font-weight:400}.projects-heading>p{color:var(--muted);margin:0 0 3px;font-size:16px;line-height:1.8}.projects-list{max-width:1350px;margin:auto}.project-case{border-top:1px solid var(--line);grid-template-columns:minmax(0,.83fr) minmax(0,1fr);align-items:start;gap:5%;padding:32px 0;transition:opacity .6s,transform .6s;display:grid}.project-case.will-reveal:not(.has-entered){opacity:0;transform:translateY(24px)}.project-visual{background:#dfe5d5;flex-direction:column;justify-content:center;align-items:center;min-height:310px;display:flex;position:relative;overflow:hidden}.project-visual-label{font:11px var(--mono);letter-spacing:1.3px;color:#526a58;line-height:1.6;position:absolute;top:24px;left:24px;right:24px}.project-orbit{place-items:center;width:155px;height:155px;margin:68px 0 32px;display:grid;position:relative}.project-glyph{font:500 96px var(--serif);letter-spacing:-7px;color:#395f4c;position:relative}.orbit-line{border:1px solid #536f5440;border-radius:50%;position:absolute;inset:-9px}.orbit-line-1{transform:rotate(-25deg)scale(1.35,.65)}.orbit-line-2{transform:rotate(45deg)scale(.83,1.32)}.orbit-dot{background:#af724e;border-radius:50%;width:10px;height:10px;position:absolute;top:8px;left:12px;box-shadow:0 0 0 5px #e7e9d9}.project-flow{max-width:100%;font:11px var(--mono);color:#516956;flex-wrap:wrap;justify-content:center;gap:13px;margin-bottom:34px;padding:0 16px;display:flex;position:relative}.project-flow>span{align-items:center;gap:13px;display:flex}.project-visual-index{font:11px var(--mono);letter-spacing:1px;opacity:.5;position:absolute;bottom:13px;right:18px}.project-tone-1 .project-visual{background:#eddfcd}.project-tone-1 .project-glyph{color:#a36443;font-size:109px}.project-tone-1 .orbit-line{border-color:#a2644340}.project-tone-1 .orbit-dot{background:#627c5d}.project-tone-2 .project-visual{background:#e4e1d0}.project-tone-2 .project-glyph{color:#73754c;font-family:Georgia,serif;font-size:81px}.project-case-copy{overflow-wrap:anywhere;min-width:0;padding:3px 3% 0 0}.project-meta{font:11px var(--mono);letter-spacing:.6px;color:var(--muted);text-transform:uppercase;justify-content:space-between;align-items:center;gap:12px;display:flex}.project-meta>svg{color:#a99b80;flex-shrink:0}.project-case h2{font:400 57px/.95 var(--serif);letter-spacing:-1px;margin:23px 0 17px}.project-summary{color:#667164;max-width:530px;margin:0;font-size:16px;line-height:1.8}.project-tech,.resume-tags{flex-wrap:wrap;gap:5px;margin:20px 0;padding:0;list-style:none;display:flex}.project-tech li{font:11px var(--mono);background:#eef0e455;border:1px solid #c5ccb9;padding:5px 8px}.project-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:26px}.project-details summary{cursor:pointer;justify-content:space-between;align-items:center;padding:15px 0;font-size:15px;list-style:none;display:flex}.project-details summary::-webkit-details-marker{display:none}.project-details[open] summary svg{transform:rotate(180deg)}.project-detail-content{color:#697162;padding:0 0 15px;font-size:16px;line-height:1.85}.project-detail-content h3{color:var(--ink);font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.7px;margin:18px 0 8px}.project-detail-content ol,.project-detail-content ul{padding-left:18px}.project-detail-content li{margin:5px 0}.project-repo{margin-top:15px}.projects-end{text-align:center;border-top:1px solid var(--line);max-width:1350px;margin:30px auto 0;padding:58px 0 75px}.projects-end>.eyebrow{font-size:11px;display:block}.projects-end>button{font:400 clamp(30px, 4.32vw, 60px) var(--serif);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin:17px auto;display:flex}.projects-end>button em{color:var(--terra)}.projects-end>p{color:var(--muted);font-size:15px}.resume-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;background:#eae3d5;height:100%;padding:26px 34px 75px;overflow:auto}.resume-document{background:var(--paper);outline-offset:-7px;border:1px solid #cbbda4;outline:1px solid #fff8ea;max-width:1120px;margin:0 auto;padding:25px 35px 18px;box-shadow:0 7px 27px #544e2f0d}.resume-topline{border-bottom:1px solid var(--line);font:11px var(--mono);letter-spacing:1px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;padding-bottom:13px;display:flex}.resume-topline button{font:inherit;letter-spacing:inherit;text-align:left;min-height:36px;padding:0}.draft-badge{font:11px var(--mono);color:#9c613f;letter-spacing:.6px;border:1px solid #bc987756;padding:5px 7px}.resume-heading{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:6%;margin-bottom:24px;padding:23px 0 25px;display:grid}.resume-heading .eyebrow{margin:0 0 13px;font-size:11px}.resume-heading h1{font:400 clamp(70px, 7.56vw, 102px)/.77 var(--serif);letter-spacing:-2px;margin:0}.resume-heading h1 em{font-weight:400}.resume-heading h1 br{display:none}.resume-accent{background:var(--terra);width:31px;height:3px;margin:18px 0 10px;display:block}.resume-role{margin:0 0 9px;font-size:18px;line-height:1.5}.resume-focus{font:11px var(--mono);letter-spacing:.8px;color:var(--muted);margin:0;line-height:1.7}.resume-garden-slot{background:#f3eddd;border-radius:5px;width:100%;height:215px}.resume-garden-caption{text-align:right;font:11px var(--mono);letter-spacing:1.3px;color:var(--muted);margin-top:7px;display:block}.resume-grid{grid-template-columns:minmax(0,1.32fr) minmax(0,1fr);gap:22px;display:grid}.resume-main-column,.resume-side-column{overflow-wrap:anywhere;flex-direction:column;gap:19px;min-width:0;display:flex}.resume-section{border:1px solid #d4ccb9;box-shadow:2px 3px #dcd1bc3a}.resume-band{font:400 24px var(--serif);color:#f5efde;background:var(--teal);text-transform:uppercase;letter-spacing:.25px;border-radius:5px 5px 0 0;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:8px 15px;display:flex}.resume-band>span{font-size:18px}.terra-band{background:var(--terra)}.brass-band{background:var(--brass)}.profile-section{border-radius:40px 40px 0 0;overflow:hidden}.profile-section .resume-band{padding:11px 23px 8px}.resume-section-body{padding:14px 18px}.resume-section-body>p{margin:0;font-size:16px;line-height:1.8}.resume-projects{padding:0 18px}.resume-project{padding:17px 0}.resume-project+.resume-project{border-top:1px solid var(--line)}.resume-project>div{justify-content:space-between;align-items:center;display:flex}.resume-project h3{font:500 27px var(--serif);color:var(--teal);margin:0}.resume-project>div>span{font:11px var(--mono);color:#a59d86}.resume-project>p{margin:6px 0 10px;font-size:16px;line-height:1.7}.resume-project-1 h3{color:var(--terra)}.resume-project-2 h3{color:#75784e}.resume-tags{gap:4px;margin:0}.resume-tags li{font:11px var(--mono);border:1px solid #c5c4b2;padding:4px 5px}.resume-entry+.resume-entry{border-top:1px solid var(--line);margin-top:14px;padding-top:13px}.resume-entry h3{font:500 21px/1.15 var(--serif);margin:0 0 6px}.resume-entry p{margin:0;font-size:16px;line-height:1.7}.resume-entry .copy-pending{font:11px/1.6 var(--mono);color:#a27655;border-left:2px solid #bf9b66;margin-top:9px;padding-left:9px}.resume-skills{flex-direction:column;gap:12px;display:flex}.resume-skill{padding-left:14px;position:relative}.resume-skill:before{content:"";background:var(--teal);width:6px;height:6px;position:absolute;top:3px;left:0}.skill-olive:before{background:#7b8258}.skill-terra:before{background:var(--terra)}.skill-brass:before{background:var(--brass)}.resume-skill h3{font:500 11px var(--mono);text-transform:uppercase;margin:0 0 4px}.resume-skill p{margin:0;font-size:16px;line-height:1.6}.resume-footer{border-top:1px solid var(--line);font:11px var(--mono);letter-spacing:.8px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding-top:13px;display:flex}.resume-footer button{font:14px var(--sans);align-items:center;gap:10px;min-height:44px;display:flex}@media (width<=1050px){.resume-heading h1 br{display:block}.resume-heading h1{line-height:.83}}@media (width<=900px){.project-case{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:5%}.project-visual{min-height:285px}.project-case h2{font-size:48px}.project-summary{font-size:15px}.project-meta{font-size:11px}.projects-heading>p{font-size:15px}.project-flow{gap:9px;font-size:11px}.project-flow>span{gap:9px}.project-visual-label{font-size:11px;left:18px}.resume-scroll{padding:20px 20px 70px}.resume-document{padding:22px}.resume-heading{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4%}.resume-heading .eyebrow{font-size:11px}.resume-role{font-size:16px}.resume-garden-slot{height:230px}.resume-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px}.resume-band{padding:8px 12px;font-size:21px}.resume-section-body{padding:13px}.resume-projects{padding:0 13px}.resume-focus,.draft-badge{font-size:11px}}@media (width<=600px){.projects-scroll{padding:28px 6% 0}.projects-heading{margin-bottom:25px;display:block}.projects-heading .eyebrow{letter-spacing:.9px;font-size:11px}.projects-heading h1{letter-spacing:-1.2px;font-size:46px}.projects-heading>p{margin-top:16px;font-size:15px}.projects-heading>p br{display:none}.project-case{flex-direction:column;gap:25px;padding:25px 0;display:flex}.project-visual{width:100%;min-height:270px}.project-orbit{width:140px;height:140px;margin-top:68px;margin-bottom:30px}.project-visual-label,.project-flow{font-size:11px}.project-case-copy{width:100%;padding:0}.project-meta{font-size:11px}.project-case h2{margin-top:18px;font-size:52px}.project-summary{font-size:15px}.project-tech li{font-size:11px}.project-details{margin-top:21px}.projects-end{padding:38px 0 48px}.projects-end>.eyebrow{letter-spacing:.6px;font-size:11px}.projects-end>button{gap:7px;font-size:33px}.projects-end>button>svg{width:19px}.projects-end>p{font-size:15px}.resume-scroll{padding:12px 10px 66px}.resume-document{outline-offset:-5px;padding:19px 16px}.resume-topline{letter-spacing:.3px;gap:10px;font-size:11px}.draft-badge{letter-spacing:.25px;padding:4px;font-size:11px}.resume-heading{grid-template-columns:1fr;gap:17px;padding:23px 0 20px}.resume-heading h1 br{display:block}.resume-heading h1{letter-spacing:-2px;font-size:75px}.resume-heading .eyebrow{font-size:11px}.resume-role{font-size:16px}.resume-focus{font-size:11px}.resume-garden-slot{height:225px}.resume-garden-caption{font-size:11px}.resume-grid{grid-template-columns:1fr;gap:16px}.resume-band{font-size:24px}.resume-section-body>p,.resume-project>p,.resume-entry p,.resume-skill p{font-size:15px}.resume-main-column,.resume-side-column{gap:16px}.resume-tags li{font-size:11px}.resume-skill h3{font-size:12px}.resume-entry h3{font-size:23px}.resume-footer{letter-spacing:.3px;font-size:11px}.resume-footer button{font-size:14px}}@media (prefers-reduced-motion:reduce){.project-case.will-reveal:not(.has-entered){opacity:1;transform:none}}@media print{html,body,#root{height:auto;overflow:visible}.portfolio-app,.resume-layer{position:static;overflow:visible}.garden-stage,.system-header-slot,.resume-back,.resume-topline button,.resume-footer button{display:none!important}.resume-scroll{height:auto;padding:0;overflow:visible}.resume-document{box-shadow:none;max-width:none;margin:0}.resume-garden-slot{height:150px}.resume-section{break-inside:avoid}}@media (width<=600px){.resume-heading h1{font-size:clamp(54px,18.36vw,75px)}}.system-header-slot{--header-height:86px;height:var(--header-height);flex:0 0 var(--header-height);position:relative}.system-menubar{width:100%;height:var(--header-height);border-bottom:1px solid var(--line);background:var(--paper);padding:0 max(4.2%,50vw - 740px)}.header-content{height:var(--header-height);justify-content:space-between;align-items:center;gap:20px;display:flex}.brand-group{flex-shrink:0;align-items:center;gap:16px;display:flex}.brand{place-items:center;min-width:36px;min-height:44px;text-decoration:none;display:grid}.brand-symbol{font:600 52px/.8 var(--serif);letter-spacing:-6px;padding-right:6px}.brand-symbol>span{color:var(--terra)}.brand-name{font:500 14px/1.5 var(--sans);letter-spacing:2px}.brand-name>span{font:400 11px/1.9 var(--mono);letter-spacing:1.4px;color:var(--muted);display:block}.system-menubar nav{align-items:center;gap:28px;height:100%;display:flex}.system-menubar nav[inert]{pointer-events:none}.system-menubar nav a{height:100%;color:var(--muted);align-items:center;gap:7px;font-size:14px;text-decoration:none;transition:color .2s;display:flex;position:relative}.system-menubar nav a:after{content:"";background:var(--terra);height:2px;transition:transform .2s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.system-menubar nav a[aria-current],.system-menubar nav a:hover{color:var(--ink)}.system-menubar nav a[aria-current]:after{transform:scaleX(1)}.nav-number{font:11px var(--mono);color:#a99b82}.navigation-toggle{--menu-collapse:0;--segment-gap:9px;width:60px;height:44px;color:var(--ink);z-index:1;flex:0 0 60px;place-items:center;padding:0;transition:color .2s;display:grid;position:relative}.navigation-toggle:is(:hover,:focus-visible){--segment-gap:5px;color:var(--terra)}.menu-lines{width:52px;height:30px;transform:translateX(calc(-14px * var(--menu-collapse)));pointer-events:none;flex-direction:column;justify-content:center;align-items:flex-end;gap:6px;display:flex}.menu-line{gap:calc(var(--segment-gap) * (1 - var(--menu-collapse)));flex-direction:row-reverse;transition:gap .25s;display:flex}.menu-line i{background:currentColor;border-radius:1px;width:8px;height:2px;display:block}.menu-line-top i:first-child{width:calc(18px - 10px * var(--menu-collapse))}.menu-line-middle i:first-child{width:12px}.menu-line-middle i:last-child{width:calc(8px + 4px * var(--menu-collapse))}.menu-line-bottom i{width:calc(8px + 16px * var(--menu-collapse))}@media (width<=900px){.system-header-slot{--header-height:70px}.system-menubar{padding-inline:5%}.system-menubar nav{gap:23px}}@media (width<=600px){.system-header-slot{--header-height:112px}.system-menubar{padding-inline:6%}.header-content{flex-wrap:wrap;gap:8px 16px;padding-top:12px}.brand-group{gap:9px}.brand-symbol{font-size:41px}.brand-name{letter-spacing:1px}.brand-name>span{letter-spacing:.5px}.system-menubar nav{order:1;justify-content:space-between;gap:20px;width:100%;height:40px}.nav-number{display:none}}.hello-handwriting{color:#283b36;shape-rendering:geometricprecision;width:min(70%,340px);height:auto;display:block;position:relative;overflow:visible}.hello-handwriting__vector{width:100%;height:auto;display:block;overflow:visible}.hello-handwriting__image{opacity:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hello-handwriting--solid .hello-handwriting__vector{opacity:0}.hello-handwriting--solid .hello-handwriting__image{opacity:1}.hello-handwriting path{stroke-dasharray:none;stroke-dashoffset:0}.hello-handwriting--animated path{stroke-dasharray:1;stroke-dashoffset:1px;animation:.72s cubic-bezier(.3,.05,.35,1) 30ms forwards hello-write}.hello-handwriting--animated .hello-handwriting__flourish{animation-duration:.1s;animation-delay:.74s}@keyframes hello-write{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.hello-handwriting--animated path{stroke-dasharray:none;stroke-dashoffset:0;animation:none}}.hello-pending{visibility:hidden}.mac-window-chrome{z-index:12;color:#243125;-webkit-font-smoothing:auto;background:#ced4c3;border:1px solid #59664f;flex:none;font-family:DM Sans,Helvetica Neue,sans-serif;position:relative;box-shadow:inset 1px 1px #f4f7e9,inset -1px -1px #86927b}.mac-window-titlebar{background:linear-gradient(#b7c2aa 0%,#a6b499 46%,#96a687 100%);border-bottom:1px solid #68785c;align-items:center;gap:9px;min-height:36px;padding:4px 5px 4px 9px;display:flex;box-shadow:inset 0 1px #dce5cf,inset 0 -1px #bfccb0}.mac-window-title-stripes{background:repeating-linear-gradient(#748569 0 1px,#c3cfb6 1px 2px,#0000 2px 3px);flex:1 1 0;height:16px}.mac-window-title{letter-spacing:.015em;text-shadow:0 1px #dce5cf;flex:none;font-size:14px;font-weight:700;line-height:1}.mac-window-close{z-index:2;color:#243125;cursor:pointer;background:linear-gradient(135deg,#edf2e3,#9baa8d);border:1px solid #58684e;border-radius:0;flex:0 0 25px;place-items:center;width:25px;height:24px;padding:0;font:21px/1 Arial,sans-serif;display:grid;position:relative;box-shadow:inset 1px 1px #f4f7e9,inset -1px -1px #86927b}.mac-window-close:before{content:"";width:56px;height:64px;position:absolute;top:50%;right:-3px;transform:translateY(-50%)}.mac-window-close:active{background:#9eae90;box-shadow:inset 1px 1px #68785e}.mac-window-menubar{background:#e1e4d7;border-top:1px solid #f4f7e9;border-bottom:1px solid #8e9b82;align-items:stretch;gap:1px;min-height:40px;padding:0 12px;font-size:14px;line-height:1;display:flex;position:relative;box-shadow:0 1px #f4f7e9}.mac-window-mark{letter-spacing:-3px;align-items:center;padding-right:16px;font-family:Cormorant Garamond,Georgia,serif;font-size:29px;font-weight:700;display:flex}.mac-window-mark>span{letter-spacing:0;margin-left:3px;font-size:.7em}.mac-window-file,.mac-window-view-trigger{align-items:center;min-height:40px;padding:0 12px;display:flex}.mac-window-view{position:relative}.mac-window-view-trigger{color:inherit;font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;border-radius:0;font-weight:600;text-decoration:underline}.mac-window-view-trigger:hover,.mac-window-view-trigger[aria-expanded=true]{color:#f4f7e9;background:#344d38}.mac-window-menu{color:#243125;background:#e1e4d7;border:1px solid #59664f;width:184px;padding:3px;position:absolute;top:100%;left:0;box-shadow:inset 1px 1px #f4f7e9,inset -1px -1px #9baa8d,2px 3px #24312555}.mac-window-menuitem{width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:0;padding:9px 15px;line-height:1.2;display:block}.mac-window-menuitem:hover,.mac-window-menuitem:focus{color:#f4f7e9;background:#344d38;outline:none}.mac-window-close:focus-visible,.mac-window-view-trigger:focus-visible{outline-offset:-3px;outline:2px solid}.mac-window-chrome button:disabled{cursor:default}@media (width<=600px){.mac-window-titlebar{min-height:38px}.mac-window-menubar,.mac-window-file,.mac-window-view-trigger{min-height:42px}.mac-window-close{flex-basis:28px;width:28px;height:26px}.mac-window-menuitem{padding-top:12px;padding-bottom:12px}}.portfolio-app{isolation:isolate;background:var(--paper);position:fixed;inset:0;overflow:hidden}.portfolio-app:after{content:"";pointer-events:none;z-index:30;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.5' d='M0 0h180v180H0z'/%3E%3C/svg%3E");position:fixed;inset:0}.paper-layer{background:var(--paper);opacity:0;position:absolute;inset:0}.paper-layer[inert]{pointer-events:none}.home-layer{z-index:1;flex-direction:column;display:flex}.resume-layer{z-index:2}.garden-stage{z-index:3;pointer-events:none;background:var(--paper);width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.garden-stage.is-docked{z-index:3}.garden-stage .scene-canvas,.garden-stage .scene-canvas canvas{pointer-events:none!important}.crt-surround{opacity:0;background:#0b0d0b;position:absolute;inset:0}.screen-shell{border-radius:var(--crt-radius,54px / 45px);z-index:2;pointer-events:auto;width:calc(100% - 16px);height:calc(100% - 16px);box-shadow:0 0 0 var(--crt-bezel,3px) #23271f, 0 0 0 100vmax rgb(19 23 18/clamp(0, calc((var(--screen-zoom,1) - .72) / .28), 1));--crt-power:1;--raster-scale:1;transform-origin:0 0;background:#080c09;position:absolute;top:8px;left:8px;overflow:hidden;container-type:size}.screen-shell[inert]{pointer-events:none}.crt-face{clip-path:url(#crt-face-clip);background:#0b110c;position:absolute;inset:0}.phosphor-field{transform:scaleY(var(--raster-scale));opacity:var(--crt-power);background:#c9cec0;position:absolute;inset:0;overflow:hidden}.crt-raster{transform-origin:0 0;position:relative}.crt-curved-content{filter:url(#crt-curvature);position:absolute;inset:0}.hello-screen{background:radial-gradient(at 50% 42%,#e2e5d7 0%,#cdd2c3 65%,#9ba58f 100%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hello-screen .hello-handwriting{color:#253326;filter:none;width:min(53%,650px);max-width:none}.computer-ui{--paper:#e1e4d7;--paper-dark:#ced4c3;--ink:#243125;--teal:#344d38;--terra:#52674c;--muted:#58634f;--line:#aeb6a0;opacity:0;background:#e1e4d7;flex-direction:column;padding:max(18px,3.8vh) max(12px,2.2vw);display:flex;position:absolute;inset:0}.computer-ui .project-visual{filter:grayscale()sepia(.2)}.computer-ui>.desktop-content{border-bottom:3px ridge #ced4c3;border-left:3px ridge #ced4c3;border-right:3px ridge #ced4c3;box-shadow:inset 1px 0 #6c7165,inset -1px 0 #6c7165}.computer-ui .project-case{border-bottom:1px solid var(--line)}.computer-ui .project-details{border-color:var(--line)}.computer-ui .project-tech li{border-color:var(--line);background:0 0}.crt-scanlines,.crt-glass,.crt-power-line{pointer-events:none;z-index:5;position:absolute;inset:0}.crt-scanlines{opacity:calc(.18 + var(--screen-zoom,1) * .3);mix-blend-mode:multiply;background:repeating-linear-gradient(#0000 0 1px,#1b2a1918 1px 2px)}.crt-glass{background:radial-gradient(at 50% 47%,#0000 51%,#0c160b40 86%,#070d07a3 100%),radial-gradient(at 48% 110%,#f1f8e112,#0000 57%);border-radius:10%/12%;box-shadow:inset 0 0 .6cqw .22cqw #0710069e,inset 0 0 4.5cqw .7cqw #19281645}.crt-reflection{object-fit:fill;z-index:6;pointer-events:none;-webkit-user-select:none;user-select:none;mix-blend-mode:screen;width:102%;height:102%;opacity:calc(.62 - (1 - var(--screen-zoom,1)) * .29);transform:translateX(calc((1 - var(--screen-zoom,1)) * -0.8%));transform-origin:50%;position:absolute;inset:-1%}.is-booting .crt-reflection{opacity:calc(.58 - var(--crt-power,1) * .18)}.crt-power-line{height:2px;transform:scaleX(calc(.015 + var(--crt-power) * .97));opacity:clamp(0, calc((1 - var(--crt-power)) * 3), 1);background:#efffe4;top:calc(50% - 1px);bottom:auto;box-shadow:0 0 8px #f0ffe7,0 0 25px #dbffd2}.is-booting .phosphor-field{animation:1s linear .2s both phosphor-settle}@keyframes phosphor-settle{0%{filter:brightness(2)}38%{filter:brightness(1.3)}43%{filter:brightness(.93)}48%{filter:brightness(1.12)}to{filter:brightness()}}.crt-filter-definitions{pointer-events:none;position:absolute}.desktop-content{flex:1;min-height:0;position:relative}.resume-back{z-index:9;font:14px var(--mono);background:var(--paper);border:1px solid var(--line);border-radius:3px;align-items:center;gap:9px;min-height:44px;padding:10px 14px;display:flex;position:absolute;bottom:16px;left:22px;box-shadow:0 3px 8px #23362a08}.skip-link{z-index:100;background:var(--teal);color:var(--paper);padding:12px 18px;position:fixed;top:10px;left:10px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.garden-fallback{background:#ede4d1;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:absolute;inset:0}.fallback-arch{background:#b46f53;border-radius:50% 50% 0 0;position:absolute;inset:8% 15% 0}.garden-fallback svg,.garden-fallback span{color:#ece2ca;position:relative}.garden-fallback span{font:italic 19px var(--serif)}.without-webgl:not(.destination-projects) .screen-shell{display:none}@keyframes blink{50%{opacity:0}}@media (width<=900px){.intro-caption{bottom:10%;left:6%}.intro-caption p{font-size:32px}}@media (width<=600px){.intro-caption{bottom:12%;left:7%}.intro-caption p{font-size:27px}.terminal-body{padding:25px 23px}.terminal-command{font-size:16px}.resume-back{padding:8px 12px;font-size:13px;bottom:10px;left:12px}.screen-shell{width:calc(100% - 8px);height:calc(100% - 8px);top:4px;left:4px}.hello-screen .hello-handwriting{width:70%}}.phase-intro .screen-shell{--crt-power:0;--raster-scale:.002}.phase-intro .crt-surround{opacity:1}.hello-screen .hello-handwriting{filter:none}:root{--paper:#f4f0e6;--paper-dark:#e9e2d2;--ink:#263e37;--teal:#285b51;--terra:#af5c40;--brass:#aa8550;--muted:#74796c;--line:#d6d3c4;--serif:"Cormorant Garamond", Georgia, serif;--sans:"DM Sans", sans-serif;--mono:"IBM Plex Mono", monospace;color:var(--ink);background:var(--paper);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px}button,a,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;background:0 0;border:0}a{color:inherit}button:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--terra);outline-offset:5px}h1:focus,h2:focus{outline:none}button,a,summary{touch-action:manipulation}img,svg,canvas{display:block}button svg,a svg{flex-shrink:0}::selection{color:#18392e;background:#b4c4b0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:#bcc0ac;border-radius:10px}::-webkit-scrollbar-track{background:0 0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.eyebrow{font-family:var(--mono);letter-spacing:1.6px;text-transform:uppercase;align-items:center;gap:10px;font-size:11px;font-weight:400;line-height:1.7;display:flex}.short-rule{background:var(--terra);width:29px;height:1px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}h1[tabindex="-1"]:focus-visible,h2[tabindex="-1"]:focus-visible{outline:none}
