@font-face{font-family:Signature;src:url(/Portfolio/fonts/OoohBaby-Regular.9e3d0ca4.ttf) format("truetype");font-display:swap}@font-face{font-family:Portfolio Sans;src:url(/Portfolio/fonts/AlegreyaSans-Regular.c9b5b830.ttf) format("truetype");font-display:swap}:root{--paper:#f8f5ec;--ink:#604f47;--muted:#806b62;--rose:#a08079;--petal:#eee4de;--line:#ceb6ae;--rail:clamp(170px,17vw,240px);--gutter:clamp(28px,6.2vw,100px)}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:Portfolio Sans,Arial,sans-serif;font-size:18px;line-height:1.35}.site-shell{position:relative;isolation:isolate;min-height:100svh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 44% 40%,#fffdf650,transparent 75%)}.page-content{flex:1;min-width:0;padding:82px calc(var(--rail) + 24px) 35px var(--gutter)}p{margin:0 0 12px}a{color:inherit}svg{display:block}.brand-link{position:absolute;top:7px;left:12px;z-index:3;width:clamp(76px,8vw,120px);border-radius:50%}.flower-logo{display:block;width:100%;height:auto;filter:brightness(.78) saturate(.55)}.corner{position:fixed;z-index:-1;pointer-events:none;color:var(--petal)}.corner svg{width:100%;height:100%}.corner-top{top:0;right:-18px;width:155px;height:390px}.corner-bottom{bottom:0;left:0;width:370px;height:275px}.contour{stroke:var(--rose);stroke-width:2}.creative-note{position:absolute;top:17px;right:4%;display:flex;align-items:center;gap:19px;font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--muted)}.creative-note i{width:110px;height:1px;background:var(--rose)}.side-nav{position:fixed;top:26%;right:22px;z-index:4;width:calc(var(--rail) - 45px);display:flex;flex-direction:column;align-items:flex-start;gap:24px}.nav-link{position:relative;display:flex;align-items:center;min-height:44px;max-width:100%;color:var(--muted);font-family:Georgia,Times New Roman,serif;font-size:clamp(22px,2.25vw,30px);line-height:1.3;text-decoration:none}.nav-link.router-link-exact-active{font-family:Signature,cursive;font-size:clamp(31px,3.15vw,44px);color:var(--ink)}.nav-link.router-link-exact-active:before{content:"";position:absolute;right:calc(100% + 12px);top:50%;width:28px;height:3px;border-radius:3px;background:var(--rose)}.nav-link:hover{color:#40312c}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:auto;padding:0 calc(var(--rail) + 12px) 24px 24px}.footer-note{position:relative;margin:0;font-size:12px;line-height:1.4;letter-spacing:2.5px;text-transform:uppercase}.footer-note span{position:absolute;left:calc(100% + 20px);bottom:9px;height:1px;width:100px;background:var(--rose)}.code-signature{display:flex;align-items:center;gap:20px;color:var(--rose)}.code-signature svg{width:58px;height:44px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.code-signature span{width:110px;height:1px;background:var(--rose)}.hero-title,.script-heading{font-family:Signature,cursive;font-weight:400;line-height:1.1}.script-heading{font-size:clamp(38px,4.8vw,66px);margin:0 0 12px}.heading-with-line{display:flex;align-items:center;gap:20px}.heading-with-line>span{flex:1;max-width:230px;min-width:25px;height:1px;background:var(--rose)}.eyebrow{display:flex;align-items:center;gap:22px;margin:0;color:var(--muted);font-size:21px;letter-spacing:5px;text-transform:uppercase}.eyebrow>span{width:170px;height:1px;background:var(--muted)}.section-heading{font-family:Georgia,Times New Roman,serif;font-size:clamp(24px,2.5vw,32px);font-weight:400;margin:0 0 12px}.section-heading>span{max-width:none}.tags{display:flex;flex-wrap:wrap;gap:5px 8px;padding:0;margin:0;list-style:none}.tags li{padding:3px 13px;border-radius:99px;background:var(--petal);color:#665650;font-family:Georgia,Times New Roman,serif;font-size:14px;line-height:1.25}.hero-actions{display:flex;flex-wrap:wrap;gap:24px}.hero-button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;min-height:59px;padding:12px 30px;border:1px solid var(--muted);border-radius:99px;color:var(--muted);font-family:Georgia,Times New Roman,serif;font-size:23px;text-decoration:none;transition:background-color .2s,transform .2s}.hero-button.primary{color:#fffdf8;background:#8f7069;border-color:#8f7069}.hero-button svg,.resume-link svg{flex:0 0 auto;width:30px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.hero-button:hover{transform:translateY(-2px);background:var(--petal)}.hero-button.primary:hover{background:#80625b;border-color:#80625b}a:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.home-page{container-type:inline-size;padding:clamp(48px,7.5vh,100px) 0 60px 5%}.hero-title{margin:8px 0 4px -12px;font-size:clamp(40px,15.5cqw,160px);letter-spacing:-3px}.home-page .hero-title{white-space:nowrap}.role{margin:0;color:var(--muted);font-size:25px;letter-spacing:7px;line-height:1.6;text-transform:uppercase}.introduction{margin:28px 0 24px;font-size:26px;line-height:1.4;letter-spacing:.2px}.about-intro{display:grid;grid-template-columns:minmax(160px,27%) minmax(0,1fr);gap:35px;align-items:start}.portrait-frame{position:relative;margin-top:20px;padding:9px;border:1px solid #ba968c;border-radius:46% 40% 30% 25%/35% 38% 20% 25%;background:#ead9d1;transform:rotate(-3deg)}.portrait{display:block;width:100%;height:auto;aspect-ratio:534/667;-o-object-fit:cover;object-fit:cover;border-radius:44% 38% 28% 23%/33% 36% 19% 23%;transform:rotate(3deg)}.about-copy{min-width:0}.about-copy .script-heading{font-size:clamp(36px,4.5vw,61px)}.about-copy p{font-size:17px;line-height:1.3}.skills-section{margin:18px 0 0 15%}.skills-section .script-heading{font-size:44px;margin-bottom:5px}.skills-list{margin:0}.skill-row{display:grid;grid-template-columns:175px minmax(0,1fr);align-items:start;gap:12px;padding:5px 0;border-bottom:1px solid #eadfd7}.skill-row:last-child{border-bottom:0}.skill-row dt{padding-top:4px;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.skill-row dd{margin:0;min-width:0}.experience-heading{margin:-28px 0 22px 4%}.experience-heading .script-heading{font-size:clamp(52px,7.5vw,100px);margin-bottom:0}.experience-heading .eyebrow{margin-left:11%;font-size:16px;letter-spacing:5px}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.experience-card{min-width:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;padding:17px 19px;background:#faf5f040}.experience-card h3{margin:0 0 5px;font-family:Georgia,Times New Roman,serif;font-size:28px;font-weight:400;line-height:1.15}.experience-card p{font-size:16px;line-height:1.32}.experience-card .card-kicker{color:var(--muted);font-size:12px;letter-spacing:2px;text-transform:uppercase;margin-bottom:10px}.card-kicker>span{padding:0 8px}.experience-card>.tags{margin-top:auto}.built-section{margin-top:20px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.project-card{padding:15px}.project-card h3{font-size:24px}.project-card .tags{padding-top:10px;border-top:1px solid #e5d6ce}.project-card .tags li{font-size:14px;padding-inline:10px}.project-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin:auto 0 12px}.project-links a{font-family:Georgia,Times New Roman,serif;font-size:14px;text-underline-offset:3px}.project-links a span{display:inline-block;margin-left:8px;font-size:20px;text-decoration:none}.experience-signoff{margin:15px 0 0;text-align:right;font-family:Signature,cursive;font-size:27px;line-height:.95}.contact-page{container-type:inline-size;padding:clamp(38px,6vh,75px) 0 50px}.contact-page .hero-title{font-size:clamp(44px,16cqw,140px)}.contact-page .introduction{font-size:23px}.contact-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:42px;max-width:760px;margin-top:32px}.contact-grid .section-heading{color:var(--muted);font-size:25px}.contact-link{display:flex;align-items:center;gap:15px;min-height:58px;margin-bottom:10px;padding:9px 18px 9px 12px;border-radius:99px;background:#efe0d9b0;text-decoration:none;font-family:Georgia,Times New Roman,serif;font-size:17px}.contact-link:hover{background:#e6d2ca}.contact-label{min-width:0;overflow-wrap:anywhere}.contact-icon{flex:0 0 38px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#a07e75;color:#fff}.contact-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.4}.contact-icon .github-icon{fill:currentColor;stroke:none}.linkedin-icon{font-family:Arial,sans-serif;font-size:28px;font-weight:700}.link-arrow{margin-left:auto;font-size:27px;line-height:1;color:var(--muted)}.resume-link{display:flex;align-items:center;gap:20px;width:-moz-fit-content;width:fit-content;max-width:100%;min-height:54px;margin-top:18px;padding:11px 20px;border:1px solid var(--muted);border-radius:99px;font-family:Georgia,Times New Roman,serif;font-size:17px;text-decoration:none}.resume-link svg{width:24px}.resume-link:hover{background:var(--petal)}@media (max-width:900px){:root{--rail:150px;--gutter:30px}.side-nav{right:15px;width:120px;gap:20px}.nav-link{font-size:21px}.nav-link.router-link-exact-active{font-size:30px}.nav-link.router-link-exact-active:before{width:17px;right:calc(100% + 7px)}.brand-link{width:75px}.creative-note{gap:12px;font-size:12px;letter-spacing:2px}.creative-note i{width:60px}.page-content{padding-top:110px}.page-content,.site-footer{padding-right:calc(var(--rail) + 10px)}.site-footer{padding-left:var(--gutter)}.footer-note span{display:none}.code-signature span{width:50px}}@media (max-width:600px){:root{--rail:114px;--gutter:20px}.brand-link{top:12px;left:14px;width:65px}.creative-note{top:93px;left:var(--gutter);right:auto;gap:9px;letter-spacing:1.2px}.creative-note i{display:none}.side-nav{top:175px;right:10px;width:96px;gap:18px}.nav-link{font-size:16px;min-height:44px}.nav-link.router-link-exact-active{font-size:24px}.nav-link.router-link-exact-active:before{width:9px;height:2px;right:calc(100% + 4px)}.page-content{padding-top:145px;padding-bottom:35px}.corner-top{width:80px;right:-25px}.corner-bottom{width:270px;height:205px}.site-footer{gap:10px;padding-bottom:20px}.footer-note{font-size:12px;letter-spacing:1.2px}.code-signature svg{width:34px}.code-signature span{display:none}}@media (max-width:1100px){.about-intro{grid-template-columns:minmax(140px,26%) minmax(0,1fr);gap:22px}.skills-section{margin-left:0}.skill-row{grid-template-columns:145px minmax(0,1fr)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-grid{gap:24px}.contact-link{gap:10px;padding-right:12px;font-size:16px}}@media (max-width:900px){.home-page{padding-left:0}.eyebrow{font-size:17px;letter-spacing:3px;gap:14px}.eyebrow>span{width:80px}.role{font-size:20px;letter-spacing:4px}.introduction{font-size:23px}.desktop-break{display:none}.hero-actions{gap:15px}.hero-button{font-size:20px;padding-inline:22px}.about-intro{grid-template-columns:1fr}.portrait-frame{width:min(65%,260px);margin:0 auto 10px}.about-copy .script-heading{font-size:45px}.contact-grid,.work-grid{grid-template-columns:1fr}.experience-heading,.experience-heading .eyebrow{margin-left:0}.contact-page{padding-top:25px}.contact-page .introduction{font-size:21px}}@media (max-width:700px){.project-grid,.skill-row{grid-template-columns:1fr}.skill-row{gap:5px;padding-block:10px}}@media (max-width:600px){.home-page{padding:28px 0 25px}.hero-title{letter-spacing:-1px;margin-left:-4px}.home-page .hero-title{font-size:17cqw;margin-block:15px}.role{font-size:16px;letter-spacing:2px}.eyebrow{flex-wrap:wrap;font-size:15px;letter-spacing:2.5px}.eyebrow>span{width:45px}.introduction{margin-top:23px;font-size:21px}.hero-button{width:100%;min-height:55px;gap:12px;padding:11px 15px;font-size:17px}.hero-button svg{width:23px}.heading-with-line{gap:10px}.heading-with-line>span{display:none}.about-copy .script-heading{font-size:39px}.about-copy p{font-size:17px;line-height:1.4}.portrait-frame{width:min(95%,260px)}.skills-section .script-heading{font-size:37px}.tags{gap:5px}.tags li{padding-inline:9px}.experience-heading{margin:0 0 25px}.experience-heading .script-heading{font-size:49px}.experience-heading .eyebrow{font-size:12px;letter-spacing:2px}.section-heading{font-size:23px}.experience-card{padding:14px}.experience-card h3{font-size:25px}.experience-card .card-kicker{font-size:12px;letter-spacing:1.2px}.contact-page{padding:20px 0}.contact-page .hero-title{font-size:22cqw;margin-top:20px}.contact-grid{gap:28px;margin-top:25px}.contact-grid .section-heading{font-size:23px}.contact-link{gap:9px;padding:10px;border-radius:22px;font-size:14px}.contact-icon{flex-basis:28px;width:28px;height:28px}.contact-icon svg{width:19px;height:19px}.linkedin-icon{font-size:21px}.link-arrow{font-size:23px}.resume-link{width:100%;padding:11px 14px;gap:10px;font-size:15px}}@media (max-width:359px){:root{--gutter:14px;--rail:105px}.side-nav{right:7px;width:90px}.nav-link{font-size:15px}.nav-link.router-link-exact-active{font-size:22px}.creative-note{gap:6px;letter-spacing:.8px}.experience-heading .script-heading{font-size:42px}.hero-button{font-size:16px;padding-inline:12px}}.skip-link{position:fixed;top:10px;left:10px;z-index:10;transform:translateY(-160%);padding:10px 16px;border-radius:8px;background:var(--paper);color:var(--ink)}.skip-link:focus{transform:translateY(0)}#main-content:focus{outline:none}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important}}