@import"https://fonts.googleapis.com/css2?family=Caveat:wght@500&family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap";:root{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;color-scheme:light;--bg: #fbf7f5;--text: #2b293b;--muted: #756f80;--line: #e5dce2;--surface: #f4edf0;--raised: #ffffff;--glass: #ffffffe0;--green: #a25468;--green-bright: #f08a83;--pink: #be5977;--rose-soft: #f4dce3;--green-soft: #f7ddd3;--violet: #8f7cb4;--shadow: 0 8px 28px #38233f08;--mono: ui-monospace, SFMono-Regular, Consolas, monospace;background:var(--bg);color:var(--text)}:root[data-theme=dark]{color-scheme:dark;--bg: #121a2b;--text: #f4e9e8;--muted: #bcb0c2;--line: #384053;--surface: #20283b;--raised: #232b40;--glass: #263046cf;--green: #ffb297;--green-bright: #ff977f;--pink: #f2a3ba;--rose-soft: #543448;--green-soft: #573c42;--violet: #b4a0db;--shadow: 0 8px 30px #0002}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:16px;line-height:1.6}html{scroll-behavior:smooth;scroll-padding-top:125px}a{color:inherit;text-decoration:none}button,select{font:inherit;color:inherit}button,a,summary,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,.day:focus-visible,[role=tabpanel]:focus-visible{outline:2px solid var(--pink);outline-offset:5px}::selection{background:var(--rose-soft)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:20px;top:-90px;padding:14px;background:var(--raised);z-index:10}.skip:focus{top:10px}.mono,.eyebrow,.section-label{font-family:var(--mono)}.eyebrow{font-size:11px;letter-spacing:1.1px;color:var(--muted)}.section-label{font-size:11px;letter-spacing:1.8px;color:var(--muted);margin-bottom:22px}.muted,.placeholder{color:var(--muted)}.placeholder{font-size:14px}.pink{color:var(--pink)}.green-text{color:var(--green)}.handwriting{font-family:Patrick Hand,cursive;font-size:19px;color:var(--muted);font-weight:400;letter-spacing:0}.doodle{width:42px;height:42px;color:var(--pink)}.doodle path{stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.unconfigured{color:var(--muted);cursor:help}a:hover{color:var(--pink)}.site-header{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 45px;position:relative;z-index:3}.brand{display:flex;align-items:center;gap:4px;font-size:34px;font-weight:600;letter-spacing:-2px;width:150px}.brand span{font-size:25px;color:var(--pink);font-weight:400}.nav-glass{padding:5px;border-radius:99px;background:var(--glass);border:1px solid var(--line);box-shadow:0 3px 2px #ffffff20 inset,var(--shadow);backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%)}[role=tablist]{display:flex;gap:3px;align-items:center}[role=tab]{padding:9px 17px;border-radius:99px;white-space:nowrap;color:var(--muted);font-size:13px;font-weight:500;transition:background .2s,color .2s,box-shadow .2s}[role=tab][aria-selected=true]{background:var(--text);color:var(--bg);box-shadow:0 2px 5px #0000000d}.nav-count{margin-left:7px;font:9px var(--mono);opacity:.65}.header-actions{display:flex;align-items:center;gap:20px}.socials{display:flex;gap:16px;font-size:12px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:transparent;flex-shrink:0;transition:background .2s,transform .2s}.icon-button:hover{background:var(--surface);transform:translateY(-1px)}.icon-button svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}main{max-width:1080px;margin:auto;padding:0 36px}.page-panel{min-height:calc(100svh - 300px);animation:panel-enter .35s ease both;outline:none}.hero{padding:73px 0 0}.hero-kicker{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:11px}.status-dot{display:inline-block;width:6px;height:6px;background:var(--green-bright);border-radius:50%;box-shadow:0 0 0 4px color-mix(in srgb,var(--green-bright) 12%,transparent);flex-shrink:0}.kicker-slash{margin:0 3px;color:var(--line)}.hero-title{position:relative;margin:38px 0 25px;display:inline-block}h1{font-size:clamp(54px,6.6vw,85px);line-height:1.16;letter-spacing:-4.7px;font-weight:500;margin:0}.hero h1{display:flex;align-items:center;gap:16px}.greeting{font-weight:450;white-space:nowrap}.name{white-space:nowrap}.object-space{width:118px;display:inline-block}.object-wrap{position:absolute;left:213px;top:-34px;width:162px;height:160px}#sculpture{position:relative;border:0;background:transparent;width:100%;height:100%;padding:0;cursor:grab}#sculpture:active{cursor:grabbing}#sculpture canvas{position:absolute;inset:0;width:100%;height:100%}.object-note{position:absolute;left:13px;top:-24px;font:16px Patrick Hand,cursive;color:var(--muted);white-space:nowrap;transform:translateY(-2px);pointer-events:none}.sculpture-fallback{position:absolute;inset:15%;transform:rotate(-25deg);transition:transform .5s}.sculpture-fallback i{position:absolute;width:80px;height:55px;left:7px;top:20px;border:14px solid #b7c988;border-radius:50%;transform:rotate(50deg);box-shadow:2px 2px 2px #0002 inset}.sculpture-fallback i:nth-child(2){left:28px;top:43px;border-color:#d9a0b7;transform:rotate(-35deg)}.sculpture-fallback i:nth-child(3){left:49px;top:8px;border-color:#d8dfc8;transform:rotate(-10deg)}.rearranged .sculpture-fallback{transform:rotate(90deg)}.intro{font-size:23px;line-height:1.85;letter-spacing:-.4px;margin:0;max-width:900px}mark{color:inherit;padding:0 3px;box-decoration-break:clone;-webkit-box-decoration-break:clone;background:none}mark.green{background:linear-gradient(178deg,transparent 19%,var(--green-soft) 21%,var(--green-soft) 86%,transparent 89%)}mark.rose{background:linear-gradient(178deg,transparent 19%,var(--rose-soft) 21%,var(--rose-soft) 86%,transparent 89%)}.hero-actions{display:flex;align-items:center;gap:30px;margin-top:32px;font-size:14px}.button{display:inline-flex;align-items:center;gap:30px;padding:14px 22px;border-radius:9px;transition:transform .2s,box-shadow .2s}.button.primary{background:var(--text);color:var(--bg);box-shadow:0 3px 7px #00000010}.button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #0002}.text-link span{margin-left:10px}.hero-footer{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:53px;padding-bottom:24px}.hero-footer .mono{font-size:12px;color:var(--muted)}.hero-footer .handwriting{font-size:17px}.home-preview{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.preview-link{padding:23px 0;display:flex;align-items:center;gap:19px}.preview-icon{display:grid;place-items:center;width:43px;height:43px;background:var(--green-soft);color:var(--green);border-radius:12px;font-size:24px;transition:transform .25s}.preview-link strong{display:block;font-size:17px;font-weight:500}.preview-link .eyebrow{font-size:9px;letter-spacing:1.5px}.preview-end{margin-left:auto;font-size:13px;color:var(--muted)}.preview-end span{margin-left:30px}.section-block{padding:60px 0;border-bottom:1px solid var(--line)}h2{font-size:33px;font-weight:500;letter-spacing:-1.2px;line-height:1.35;margin:0 0 20px}p{line-height:1.9;margin:0 0 16px}.about-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:95px}.about-grid p{font-size:16px}.about-grid .placeholder{font-size:14px}.personal-note{position:relative;border-left:1px solid var(--line);padding:8px 0 0 30px;align-self:start}.personal-note>.handwriting{display:block;transform:rotate(-3deg);margin:0 0 27px}.personal-note>.doodle{position:absolute;right:2px;top:45px;width:28px;transform:rotate(10deg)}.personal-note>p{font-size:20px;line-height:1.7}.personal-note h3{font-size:16px;font-weight:500;margin:12px 0 0}.personal-note details p{font-size:14px;color:var(--muted);margin:3px 0 12px}summary{cursor:pointer;font-size:13px;list-style:none;padding:10px 0;color:var(--muted)}summary::-webkit-details-marker{display:none}summary span{display:inline-block;margin-left:20px}details[open] summary span{transform:rotate(45deg)}.stack{margin-top:40px}.stack-title{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:18px;font-size:17px}.stack-title .mono{font-size:9px;letter-spacing:1px;color:var(--muted)}.stack-groups{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding-top:22px}.stack-groups h3{font-size:11px;font-weight:400;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:0 0 9px}.stack-groups p{font-size:14px;margin:0}.activity-header{display:flex;justify-content:space-between;align-items:center;gap:20px}.activity h2{font-size:26px}.activity select{border:1px solid var(--line);border-radius:7px;padding:7px 12px;background:var(--surface);font-size:13px}.heatmap-scroll{overflow-x:auto;padding:3px 0 10px}.months{display:flex;justify-content:space-between;font:10px var(--mono);color:var(--muted);margin-bottom:10px;min-width:700px}.calendar{display:grid;grid-template-rows:repeat(7,11px);grid-auto-flow:column;grid-auto-columns:minmax(9px,1fr);gap:4px;min-width:700px}.day{border-radius:2px;background:var(--surface);border:1px solid var(--line)}.day.empty{visibility:hidden}.day.level-1,.legend i:nth-of-type(2){background:#edc3d0}.day.level-2,.legend i:nth-of-type(3){background:#d999b2}.day.level-3,.legend i:nth-of-type(4){background:#b675a1}.day.level-4,.legend i:nth-of-type(5){background:#815b8f}.activity-bottom{display:flex;justify-content:space-between;gap:15px;color:var(--muted)}.activity-bottom p{font-size:11px;margin:8px 0}.legend{display:flex;align-items:center;gap:4px;font-size:10px;white-space:nowrap}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--surface);border:1px solid var(--line)}.activity-link{margin-top:10px;font-size:13px}.page-heading{position:relative;padding:66px 0 44px}.page-heading h1{font-size:62px;letter-spacing:-3.3px}.page-heading>p{font-size:18px;color:var(--muted);margin:20px 0 0}.heading-note{position:absolute;right:0;bottom:12px;font-size:17px;transform:rotate(-4deg)}.project-workspace{display:grid;grid-template-columns:290px 1fr;gap:25px;margin-top:20px;align-items:start}.project-index{padding-top:8px}.index-heading{padding:0 15px 20px;font-size:10px}.project-selector{position:relative;display:flex;align-items:center;gap:14px;width:100%;padding:23px 15px;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--muted);transition:background .2s,color .2s}.project-selector.selected{background:var(--surface);color:var(--text);border-bottom-color:transparent;border-radius:10px}.project-selector.selected:before{content:"";position:absolute;left:0;top:23px;bottom:23px;width:3px;border-radius:5px;background:var(--green-bright)}.project-selector:nth-of-type(2).selected:before{background:var(--pink)}.project-selector:nth-of-type(3).selected:before{background:var(--violet)}.project-selector:hover{background:var(--surface);border-radius:10px}.project-number{font:11px var(--mono);align-self:flex-start;margin-top:4px;color:var(--muted)}.project-selector strong{display:block;font-size:16px;letter-spacing:-.25px;font-weight:500}.project-selector small{font:8px var(--mono);display:block;margin-top:7px;letter-spacing:.5px;line-height:1.5;color:var(--muted)}.selector-arrow{margin-left:auto;font-size:19px;opacity:0;transition:opacity .2s}.selected .selector-arrow,.project-selector:hover .selector-arrow{opacity:1}.index-note{font-size:11px;margin:24px 15px;color:var(--muted)}.index-note .status-dot{width:4px;height:4px;margin-right:8px}.project-detail{--accent: var(--green);--tint: var(--green-soft);background:var(--raised);border:1px solid var(--line);border-radius:18px;padding:29px 32px 20px;box-shadow:var(--shadow);position:relative;overflow:hidden}.project-detail[data-accent=pink]{--accent: var(--pink);--tint: var(--rose-soft)}.project-detail[data-accent=violet]{--accent: var(--violet);--tint: color-mix(in srgb, var(--violet) 15%, var(--raised))}.project-detail:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--tint),transparent)}.project-topline{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:46px}.project-topline .eyebrow{font-size:9px;letter-spacing:.8px}.project-glyph{font-size:30px;line-height:1;display:grid;place-items:center;width:47px;height:47px;background:var(--tint);color:var(--accent);border-radius:14px;transition:transform .25s}.project-detail:hover .project-glyph{transform:translateY(-2px)}.project-detail h2{font-size:35px;margin:21px 0 15px;letter-spacing:-1.3px}.project-lead{font-size:16px;color:var(--muted);line-height:1.85}.tags{display:flex;gap:8px;flex-wrap:wrap;margin:21px 0 30px}.tags span{font:10px var(--mono);padding:5px 9px;background:var(--surface);border:1px solid var(--line);border-radius:5px;color:var(--muted)}.technical-divider{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;font:9px var(--mono);letter-spacing:1.2px;color:var(--muted)}.project-chapters>div{display:flex;gap:17px;margin-top:22px}.chapter-number{font:10px var(--mono);margin-top:5px;color:var(--accent)}.project-chapters h3{font-size:15px;font-weight:500;margin:0 0 6px}.project-chapters p{font-size:14px;color:var(--muted);margin:0;line-height:1.9}.project-detail-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--line);margin-top:30px;padding-top:18px}.project-links{display:flex;gap:18px;font-size:12px}.project-pager{display:flex;gap:12px;align-items:center}.project-pager .mono{font-size:10px;color:var(--muted)}.project-pager .icon-button{width:29px;height:29px;font-size:13px}.project-bottom{display:flex;justify-content:space-between;gap:20px;margin:24px 0 50px;color:var(--muted);font-size:11px}.project-bottom>.mono{font-size:8px;letter-spacing:1px}.experience-list{margin-top:18px;border-top:1px solid var(--line)}.experience-row{display:grid;grid-template-columns:190px 1fr 40px;gap:30px;padding:38px 0;border-bottom:1px solid var(--line)}.experience-row>.mono{font-size:12px;color:var(--muted);padding-top:5px}.experience-row h2{font-size:29px;margin:12px 0 20px}.experience-row ul{padding-left:19px;font-size:16px;color:var(--muted);line-height:2}.experience-row li{padding-left:5px;margin-bottom:10px}.experience-symbol{font-size:30px;color:var(--pink)}.experience-note{display:flex;justify-content:flex-end;align-items:center;gap:16px;padding:30px 0 70px}.experience-note .doodle{width:28px}.timeline{margin:25px 0 65px}.timeline article{display:grid;grid-template-columns:160px 1fr;gap:38px;position:relative;padding:0 0 48px}.timeline article:before{position:absolute;content:"";left:173px;top:10px;bottom:-10px;border-left:1px solid var(--line);transform:rotate(.3deg)}.timeline article:after{content:"";position:absolute;left:169px;top:7px;width:8px;height:8px;background:var(--bg);border:1.5px solid var(--green);border-radius:50%}.timeline article:last-child{padding-bottom:0}.timeline article:last-child:before{display:none}.timeline article:last-child:after{background:var(--green-bright)}.timeline-date{font-size:13px;color:var(--muted);padding-top:2px}.timeline h2{font-size:27px;margin:12px 0 7px}.timeline p{margin:0;color:var(--muted);font-size:16px;max-width:620px}.timeline .eyebrow{font-size:9px}footer{padding:29px 0 20px;border-top:1px solid var(--line);margin-top:30px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:16px}.footer-links{display:flex;gap:25px;font-size:12px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:35px;font-size:10px;color:var(--muted)}.footer-bottom .pink{font-size:16px;margin-left:5px}@keyframes panel-enter{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@media(min-width:1300px){.object-wrap{left:213px}}@media(max-width:1100px){.site-header{padding:24px 32px;gap:18px}.brand{width:auto}[role=tab]{padding:9px 13px}.header-actions{gap:13px}.socials{gap:12px;font-size:11px}.object-wrap{left:calc(19vw - 14px);top:-33px;width:150px}.object-space{width:115px}.hero-title h1{gap:12px;letter-spacing:-4px}.about-grid{gap:55px}.project-workspace{grid-template-columns:255px 1fr;gap:18px}.project-detail{padding:25px 26px 20px}.project-detail-footer{flex-wrap:wrap}.project-pager{margin-left:auto}}@media(max-width:800px){.site-header{flex-wrap:wrap;padding:21px 28px 10px;gap:15px}.brand{font-size:30px}.header-actions{margin-left:auto;gap:20px}.socials{font-size:12px;gap:20px}.nav-glass{order:3;margin:0 auto;max-width:100%;width:100%}[role=tablist]{justify-content:space-between}[role=tab]{padding:9px 16px;font-size:13px}.hero{padding-top:54px}.hero-title h1{font-size:62px;letter-spacing:-3.6px;gap:10px}.object-wrap{left:165px;top:-30px;width:137px;height:143px}.object-space{width:110px}.intro{font-size:20px}.hero-footer .handwriting{font-size:15px}.about-grid{gap:30px}.project-workspace{grid-template-columns:1fr;margin-top:18px}.project-index{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.index-heading,.index-note{display:none}.project-selector{padding:16px 11px;gap:8px;border:1px solid var(--line);border-radius:10px}.project-selector.selected{border-color:var(--line)}.project-selector strong{font-size:13px}.project-selector small{font-size:7px}.selector-arrow{display:none}.project-number{font-size:9px}.project-detail{padding:30px}.page-heading h1{font-size:52px}.heading-note{font-size:15px;bottom:4px}.project-bottom{margin-bottom:35px}.project-bottom>.mono{display:none}}@media(max-width:580px){main{padding:0 24px}.site-header{padding:18px 24px 8px}[role=tab]{padding:9px 10px;font-size:11px}.nav-count{font-size:8px;margin-left:4px}.hero{padding-top:42px}.hero-kicker{font-size:10px;gap:8px;flex-wrap:wrap}.hero-title{margin-top:40px;margin-bottom:24px;display:block}.hero-title h1{font-size:61px;display:block;letter-spacing:-3.7px;line-height:1.17}.name{display:block;margin-top:7px}.object-space{display:none}.object-wrap{left:170px;top:-24px;width:127px;height:132px}.object-note{font-size:13px;top:-15px;left:3px}.intro{font-size:18px;line-height:1.85;letter-spacing:-.2px}.intro br{display:none}.hero-actions{gap:23px;font-size:12px;margin-top:27px}.button{gap:20px;padding:13px 17px}.hero-footer{margin-top:33px;gap:15px;align-items:flex-start}.hero-footer .mono{font-size:10px;white-space:nowrap}.hero-footer .handwriting{font-size:13px;text-align:right;max-width:190px;line-height:1.5}.preview-link{gap:13px;padding:19px 0}.preview-icon{width:36px;height:36px;font-size:22px;border-radius:10px}.preview-link strong{font-size:16px}.preview-end{font-size:0}.preview-end span{font-size:22px;margin-left:0}.section-block{padding:42px 0}.section-label{font-size:9px;letter-spacing:1.3px;margin-bottom:18px}h2{font-size:28px}.about-grid{grid-template-columns:1fr;gap:24px}.about-grid p{font-size:16px}.personal-note{padding-left:23px;margin-top:4px}.personal-note>.handwriting{margin-bottom:20px}.personal-note>.doodle{right:35px;top:25px}.personal-note>p{font-size:18px}.stack{margin-top:30px}.stack-title{font-size:15px;align-items:flex-start;gap:20px}.stack-title .mono{font-size:7px;max-width:95px;text-align:right;line-height:1.7}.stack-groups{grid-template-columns:repeat(2,1fr);gap:24px}.stack-groups p{font-size:13px}.activity h2{font-size:23px}.activity-header{gap:10px}.activity select{padding:6px 8px;font-size:12px}.activity-bottom{flex-direction:column;gap:0}.legend{align-self:flex-end}.page-heading{padding:43px 0 34px}.page-heading h1{font-size:45px;letter-spacing:-2.6px}.page-heading p{font-size:16px;margin-top:17px}.heading-note{position:static;display:block;margin-top:22px;font-size:15px;transform:rotate(-2deg)}.project-workspace{margin-top:0}.project-selector{display:block;padding:11px 9px;min-width:0}.project-number{display:block;margin:0 0 5px}.project-selector strong{font-size:11px;line-height:1.5;overflow-wrap:anywhere}.project-selector small{display:none}.project-selector.selected:before{top:11px;bottom:11px;width:2px}.project-detail{padding:21px 21px 18px;border-radius:13px}.project-detail h2{font-size:29px;margin-top:20px}.project-topline .eyebrow{font-size:8px;max-width:190px;line-height:1.8}.project-glyph{width:36px;height:36px;border-radius:10px;font-size:25px;flex-shrink:0}.project-lead{font-size:15px}.project-chapters>div{gap:12px}.project-chapters h3,.project-chapters p{font-size:14px}.project-detail-footer{gap:20px}.project-links{font-size:11px;gap:15px}.project-pager{gap:9px}.project-pager .icon-button{width:32px;height:32px}.project-bottom{font-size:10px}.experience-row{grid-template-columns:1fr 30px;gap:16px;padding:25px 0}.experience-row>.mono{grid-column:1/-1}.experience-row h2{font-size:27px}.experience-row li{font-size:15px;line-height:1.9}.experience-note{padding-bottom:35px}.experience-note .handwriting{font-size:17px}.timeline article{grid-template-columns:50px 1fr;gap:33px;padding-bottom:40px}.timeline article:before{left:66px}.timeline article:after{left:62px}.timeline-date{font-size:11px}.timeline h2{font-size:25px}.timeline p{font-size:15px}.timeline .eyebrow{font-size:8px}.footer-top{align-items:flex-start;flex-direction:column;font-size:15px;gap:14px}.footer-links{font-size:12px;gap:23px}.footer-bottom{font-size:9px;align-items:flex-end;line-height:1.7}.footer-bottom>span:last-child{max-width:160px;text-align:right}footer{margin-top:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:360px){[role=tab]{padding:9px 7px;font-size:10px}.nav-count{display:none}.object-wrap{left:150px;width:115px}.hero-title h1{font-size:56px}.hero-kicker{font-size:9px;gap:6px}.hero-actions{gap:14px}.button{gap:13px;padding:13px 14px}.socials{gap:14px}.project-detail{padding:18px}.page-heading h1{font-size:39px}}body{isolation:isolate}#app{position:relative;isolation:isolate}.sunset-background{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.sunset-background i{position:absolute;width:75vw;height:80vh;filter:blur(45px);border-radius:50%;will-change:transform;animation:sunset-drift 28s ease-in-out infinite alternate}.sunset-background i:nth-child(1){right:-30vw;top:-35vh;background:radial-gradient(ellipse,#fca48d38,transparent 65%)}.sunset-background i:nth-child(2){left:-40vw;top:25vh;background:radial-gradient(ellipse,#b7a0d62b,transparent 65%);animation-duration:35s;animation-delay:-13s}.sunset-background i:nth-child(3){right:-15vw;bottom:-55vh;background:radial-gradient(ellipse,#ed9abb2c,transparent 65%);animation-duration:40s;animation-delay:-22s}[data-theme=dark] .sunset-background i:nth-child(1){background:radial-gradient(ellipse,#e4777930,transparent 65%)}[data-theme=dark] .sunset-background i:nth-child(2){background:radial-gradient(ellipse,#8e6bad2c,transparent 65%)}[data-theme=dark] .sunset-background i:nth-child(3){background:radial-gradient(ellipse,#d97ba52b,transparent 65%)}.background-paused .sunset-background i{animation-play-state:paused}@keyframes sunset-drift{0%{transform:translate3d(-2%,-3%,0) scale(1)}to{transform:translate3d(8%,10%,0) scale(1.12)}}.personal-label{display:block;margin-bottom:23px}.experience-list{margin-bottom:70px}.hero h1{gap:18px}.object-space{width:140px}.object-wrap{left:209px;top:-48px;width:177px;height:177px}#sculpture{cursor:pointer}.sculpture-fallback{inset:0;transform:none}.sculpture-fallback svg{width:100%;height:100%}.rearranged .sculpture-fallback{transform:translateY(-3px)}.preview-link:hover .preview-icon{transform:translateY(-2px)}@media(max-width:1100px)and (min-width:801px){.object-wrap{left:calc(19vw - 19px);top:-47px;width:165px;height:165px}.object-space{width:138px}}@media(max-width:800px){.object-wrap{left:164px;top:-43px;width:155px;height:155px}.object-space{width:135px}}@media(max-width:580px){.object-wrap{left:174px;top:-37px;width:142px;height:142px}.sunset-background i{width:110vw;filter:blur(30px)}.experience-list{margin-bottom:40px}}@media(max-width:360px){.object-wrap{left:151px;top:-29px;width:128px;height:128px}}@media(prefers-reduced-motion:reduce){.sunset-background i{animation:none;will-change:auto}}.home-preview,.section-block,.stack-title,.project-selector,.experience-list,.experience-row,.technical-divider,.project-detail-footer,footer{border:0}.personal-note{border-left:0;padding:24px 26px;background:color-mix(in srgb,var(--rose-soft) 35%,transparent);border-radius:28px 25px 31px 23px}.project-detail{border:0;box-shadow:0 12px 45px #48344b07;border-radius:25px}.project-detail:before,.project-selector.selected:before,.timeline article:before{display:none}.project-selector.selected{border:0;border-radius:15px;background:color-mix(in srgb,var(--rose-soft) 45%,var(--surface))}.home-preview{background:color-mix(in srgb,var(--raised) 55%,transparent);border-radius:20px;padding:0 22px;margin-top:6px}.preview-icon{border-radius:15px}.stack{margin-top:48px}.stack-groups{gap:12px}.stack-groups>div{background:color-mix(in srgb,var(--surface) 68%,transparent);border-radius:17px;padding:18px}.technical-divider{margin-top:8px;padding-top:8px}.project-detail-footer{padding-top:10px}.section-block{padding-top:70px}.experience-row{background:color-mix(in srgb,var(--raised) 55%,transparent);padding:30px;border-radius:24px}.timeline article:after{width:9px;height:9px;background:var(--rose-soft);border:0;box-shadow:0 0 0 6px color-mix(in srgb,var(--rose-soft) 30%,transparent)}footer{padding-top:42px}.hero-title{min-height:121px;margin-bottom:32px}.hero-footer{margin-top:38px}.object-wrap{top:-44px;width:184px;height:184px}.avatar-button{position:relative;display:block;width:100%;height:100%;padding:0;background:transparent;border:0;border-radius:28%;cursor:pointer}.avatar-button canvas{position:absolute;inset:0;width:100%;height:100%}.avatar-button:hover{background:transparent}.page-avatar{position:absolute;right:10px;top:22px;width:177px;height:177px}.page-heading h1{max-width:calc(100% - 165px)}.page-heading>p{max-width:calc(100% - 150px)}.page-heading{min-height:260px;padding-bottom:36px}.art-doodle{display:block;pointer-events:none;color:var(--violet);opacity:.65;width:57px;height:50px}.art-doodle svg{width:100%;height:100%;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.art-doodle .orbit-dot{fill:var(--pink);stroke:var(--pink)}.stack-title{position:relative;padding-right:78px}.stack-title .art-doodle{position:absolute;right:0;top:-14px}.art-orbit svg{animation:orbit-drift 18s ease-in-out infinite alternate}.page-heading>.art-doodle{position:absolute;right:193px;top:58px;width:45px}.art-bloom{color:var(--pink)}.art-bloom svg{animation:bloom-sway 9s ease-in-out infinite alternate}.art-spark svg{animation:ink-breathe 7s ease-in-out infinite alternate}.tags span{transition:transform .25s,background .25s}.tags span:hover{transform:translateY(-2px);background:var(--rose-soft)}.preview-link:hover .preview-icon{transform:translateY(-3px) rotate(-4deg)}.project-selector:hover .selector-arrow{transform:translate(2px,-2px)}.selector-arrow{transition:transform .3s,opacity .2s}.project-chapters>div{animation:detail-arrive .4s ease both}.project-chapters>div:nth-child(2){animation-delay:.07s}#motion-toggle{font-size:13px;letter-spacing:-1px}.header-actions{gap:12px}@keyframes orbit-drift{0%{transform:rotate(-8deg)}to{transform:rotate(12deg)}}@keyframes bloom-sway{0%{transform:rotate(-4deg) scale(.97)}to{transform:rotate(5deg) scale(1.03)}}@keyframes ink-breathe{0%{opacity:.55;transform:translateY(0)}to{opacity:1;transform:translateY(-3px)}}@keyframes detail-arrive{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}[data-motion=paused] *,[data-motion=paused] *:before,[data-motion=paused] *:after,.background-paused .art-doodle svg{animation-play-state:paused!important}@media(max-width:800px){.page-avatar{width:145px;height:145px;top:35px;right:0}.page-heading h1{font-size:46px;max-width:calc(100% - 145px)}.page-heading>.art-doodle{right:145px;top:15px;width:32px}.object-wrap{width:160px;height:160px}.stack-groups>div{padding:14px}.hero-title{min-height:106px}}@media(max-width:580px){.hero-title{min-height:149px}.object-wrap{left:172px;top:-29px;width:150px;height:150px}.page-avatar{width:124px;height:124px;right:-10px;top:54px}.page-heading{min-height:230px;padding-top:36px}.page-heading h1{font-size:37px;letter-spacing:-1.9px;max-width:calc(100% - 100px)}.page-heading>p{max-width:100%;margin-top:24px}.page-heading>.art-doodle{top:12px;right:25px;width:28px;height:27px}.page-heading .section-label{padding-right:55px;font-size:8px}.stack-title{padding-right:40px}.stack-title .art-doodle{width:34px;right:0;top:-8px}.stack-title .mono{display:none}.section-block{padding-top:48px}.experience-row{padding:22px}.personal-note{padding:24px}.home-preview{padding:0 17px}.header-actions{gap:9px}.socials{gap:14px}.page-heading>.art-doodle{opacity:.5}}@media(max-width:360px){.object-wrap{left:142px;width:133px;height:133px;top:-20px}.page-heading h1{font-size:31px;max-width:calc(100% - 87px)}.page-avatar{width:106px;height:106px;top:56px}.socials{font-size:10px;gap:10px}}@media(prefers-reduced-motion:reduce){.art-doodle svg,.project-chapters>div{animation:none!important}}.eyebrow,.mono,.section-label,.tags span,.timeline-date{font-family:inherit;letter-spacing:normal;text-transform:none}.hero{padding-top:72px}.hero-title{margin-top:15px}.preview-link .eyebrow{display:none}.social-logo{display:inline-flex;align-items:center;justify-content:center;width:34px;height:36px;color:var(--text);opacity:.75;transition:opacity .2s,transform .2s}.social-logo svg{width:20px;height:20px}.social-logo:hover{opacity:1;transform:translateY(-2px)}.socials{gap:7px}.stack-groups h3{font-family:inherit;text-transform:none;font-size:14px;font-weight:500;letter-spacing:0;color:var(--text);margin-bottom:16px}.stack-groups>div{padding:20px}.tool-list{display:flex;flex-wrap:wrap;gap:8px}.tool-list span{display:inline-block;font-size:12px;padding:4px 9px;border-radius:8px;background:color-mix(in srgb,var(--raised) 75%,transparent);color:var(--muted);transition:background .2s,transform .2s}.tool-list span:hover{background:var(--rose-soft);transform:translateY(-2px)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start;margin:4px 0 24px}.project-card{--card-tint: var(--green-soft);padding:26px 24px 18px;border-radius:24px;background:color-mix(in srgb,var(--raised) 90%,var(--card-tint));box-shadow:0 8px 32px #49314c06;transition:transform .3s,box-shadow .3s}.project-card[data-accent=rose]{--card-tint: var(--rose-soft)}.project-card[data-accent=lavender]{--card-tint: color-mix(in srgb, var(--violet) 22%, var(--raised))}.project-card:hover{transform:translateY(-4px);box-shadow:0 15px 34px #49314c0b}.card-top{display:flex;align-items:center;gap:13px;margin-bottom:27px}.card-symbol{display:grid;place-items:center;width:39px;height:39px;background:var(--card-tint);border-radius:13px;font-size:23px;flex-shrink:0}.card-category{font-size:12px;color:var(--muted);line-height:1.5}.project-card h2{font-size:25px;letter-spacing:-.8px;line-height:1.35;margin-bottom:16px;overflow-wrap:anywhere}.card-description{font-size:15px;line-height:1.85;color:var(--muted);margin-bottom:20px;min-height:112px}.project-card .tags{margin:0 0 26px;gap:6px}.project-card .tags span{font-size:11px;border:0;padding:5px 9px}.card-details summary{display:flex;align-items:center;justify-content:space-between;gap:9px;color:var(--text);font-size:13px;padding:12px 0;min-height:44px}.card-details summary>span{margin:0;transform:none}.card-details .collapse-label{display:none}.card-details[open] .collapse-label{display:inline}.card-details[open] .expand-label{display:none}.card-details .expand-icon{display:grid;place-items:center;background:var(--card-tint);width:25px;height:25px;border-radius:50%;font-size:17px;transition:transform .25s}.card-details[open] .expand-icon{transform:rotate(45deg)}.card-expanded{padding:12px 0 7px;animation:detail-arrive .3s ease both}.card-expanded h3{font-size:15px;font-weight:500;margin:10px 0 7px}.card-expanded p{font-size:14px;color:var(--muted);line-height:1.85;margin:0 0 20px}.card-expanded .project-links{font-size:12px;flex-wrap:wrap;gap:18px;margin-top:22px}.project-placeholder-note{font-size:12px;color:var(--muted);margin-bottom:45px}.page-heading{padding-top:70px;min-height:220px}.page-avatar{top:27px}.page-heading>.art-doodle{top:38px}.experience-row .eyebrow{font-size:14px}.timeline h2{margin-top:0}.activity .section-label{display:none}@media(max-width:1000px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card:last-child{grid-column:auto}}@media(max-width:580px){.hero{padding-top:45px}.hero-title{margin-top:10px}.project-grid{grid-template-columns:1fr;gap:17px}.project-card{padding:23px 24px 15px;border-radius:22px}.card-top{margin-bottom:19px}.card-description{min-height:0;margin-bottom:15px;font-size:15px}.project-card h2{font-size:25px;margin-bottom:12px}.project-card .tags{margin-bottom:15px}.page-heading{padding-top:36px;min-height:205px}.page-avatar{top:18px}.page-heading>.art-doodle{display:none}.social-logo{width:29px}.social-logo svg{width:19px;height:19px}.stack-groups>div{padding:15px}.stack-groups h3{font-size:13px}.tool-list span{font-size:11px;padding:4px 7px}}@media(prefers-reduced-motion:reduce){.card-expanded{animation:none}.project-card:hover{transform:none}}html:has(#alternate:not([hidden])) main{max-width:1450px;padding:0 35px}html:has(#alternate:not([hidden])) main>footer{display:none}.alt{--alt-paper: #fffcf7;--alt-ink: #393649;--alt-muted: #85808c;--alt-glass: #f4eff5a3;--alt-rose: #f4e0e0;--alt-peach: #f6e5d2;--alt-lavender: #eae3f3;color:var(--alt-ink);font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;min-height:0}[data-theme=dark] .alt{--alt-paper: #232739;--alt-ink: #f0e6e7;--alt-muted: #b8adc0;--alt-glass: #293046b3;--alt-rose: #453443;--alt-peach: #463d40;--alt-lavender: #38364c}.alt-desktop{padding:15px 0 55px}.alt-window{display:grid;grid-template-columns:190px minmax(0,1fr);border:1px solid #ffffff65;border-radius:22px;background:var(--alt-glass);box-shadow:0 25px 90px #30223b14,0 2px 2px #ffffff80 inset;backdrop-filter:blur(28px) saturate(130%);-webkit-backdrop-filter:blur(28px) saturate(130%);align-items:start;isolation:isolate}.alt-sidebar{position:sticky;top:20px;padding:22px 15px 25px;display:flex;flex-direction:column;min-height:600px}.alt-window-dots{display:flex;gap:8px;margin:0 0 40px 9px}.alt-window-dots i{width:11px;height:11px;border-radius:50%;background:#ed918e;box-shadow:inset 0 0 0 1px #0000000b}.alt-window-dots i:nth-child(2){background:#e9c17c}.alt-window-dots i:nth-child(3){background:#a9b99a}.alt-owner{padding:0 10px 29px}.alt-owner strong{display:block;font-size:15px;font-weight:550;letter-spacing:-.4px;margin-top:12px}.alt-owner>span{display:block;color:var(--alt-muted);font-size:10px;margin-top:4px}.alt-owner-flower{width:37px;height:37px;color:#b6858c}.alt-owner-flower svg,.alt-flower svg,.alt-signoff-flower svg{width:100%;height:100%;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}.alt-side-nav{display:flex;flex-direction:column;gap:5px}.alt-side-nav button{display:flex;align-items:center;gap:11px;text-align:left;padding:11px 12px;border:1px solid transparent;background:transparent;border-radius:10px;font-size:12px;color:var(--alt-muted);transition:background .2s,transform .2s}.alt-side-nav button svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.alt-side-nav button[aria-current]{color:var(--alt-ink);background:#ffffff52;border-color:#ffffff45;box-shadow:0 2px 6px #45334705,inset 0 1px #fff5}.alt-side-nav button:hover{background:#ffffff30;transform:translate(2px)}.alt-sidebar-bottom{margin-top:auto;padding:45px 10px 0}.alt-sidebar-bottom p{font-size:11px;color:var(--alt-muted);line-height:1.8;margin-bottom:13px}.alt-sidebar-bottom>div{display:flex;gap:10px}.alt-sidebar-bottom .social-logo svg{width:17px}.alt-main{min-width:0;background:var(--alt-paper);border-radius:0 21px 21px 0}.alt-toolbar{position:sticky;top:0;z-index:2;padding:15px 24px;display:flex;align-items:center;gap:13px;border-radius:0 21px 0 0;background:color-mix(in srgb,var(--alt-paper) 82%,transparent);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.alt-location{display:flex;gap:9px;align-items:center;font-size:11px;color:var(--alt-muted);margin-right:auto}.alt-location>svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.4}.alt-location strong{font-weight:500;color:var(--alt-ink)}.alt-toolbar-slash{opacity:.4}.alt-search{display:flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid color-mix(in srgb,var(--alt-muted) 15%,transparent);border-radius:9px;background:color-mix(in srgb,var(--alt-glass) 45%,transparent)}.alt-search svg{width:14px;height:14px;stroke:var(--alt-muted);stroke-width:1.5}.alt-search input{min-width:0;width:125px;border:0;background:transparent;color:var(--alt-ink);font:inherit;font-size:11px;outline-offset:3px}.alt-search input::placeholder{color:var(--alt-muted)}.alt-glass-button{display:inline-flex;align-items:center;justify-content:center;gap:16px;font-size:12px;padding:10px 14px;border-radius:12px;color:var(--alt-ink);background:linear-gradient(155deg,#fff6,#ffffff15);border:1px solid #ffffff80;box-shadow:0 3px 9px #45334707,inset 0 1px 1px #ffffff90;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:transform .25s,box-shadow .25s}.alt-glass-button:hover{transform:translateY(-2px);box-shadow:0 7px 14px #4533470d,inset 0 1px 1px #ffffff90}.alt-theme{padding:8px;width:33px;height:33px;flex-shrink:0}.alt-theme svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.alt-paper{padding:15px 43px 36px;position:relative;background-image:radial-gradient(color-mix(in srgb,var(--alt-muted) 12%,transparent) .5px,transparent .5px);background-size:8px 8px;border-radius:0 0 21px}.alt-intro{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 170px;align-items:center;gap:30px;padding:45px 8px 57px;scroll-margin-top:90px}.alt-small-title{font-size:14px;color:var(--alt-muted)}.alt h1{font-size:58px;font-weight:500;letter-spacing:-3px;line-height:1.1;margin:17px 0 23px}.alt h1>span{color:#bb8492}.alt-intro-copy>p{font-size:16px;line-height:1.9;max-width:530px}.alt-intro-actions{display:flex;align-items:center;gap:24px;margin-top:24px}.alt-intro-actions>span{font-size:11px;color:var(--alt-muted)}.alt-intro-actions .alt-glass-button{background:color-mix(in srgb,var(--alt-rose) 68%,transparent)}.alt-avatar-note{position:relative;padding-top:15px;text-align:center}.alt-avatar{height:190px;width:190px;margin-left:-10px}.alt-avatar-note>span{font-size:10px;color:var(--alt-muted)}.alt-flower{position:absolute;right:7px;top:15px;width:33px;height:33px;color:#b98a99;transform:rotate(13deg)}.alt-section{scroll-margin-top:90px;padding:20px 0 45px}.alt-section-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:25px}.alt-pencil{font-family:Georgia,serif;font-style:italic;font-size:14px;color:var(--alt-muted);display:block;margin-bottom:8px}.alt h2{font-size:28px;font-weight:500;letter-spacing:-.9px;line-height:1.3;margin:0 0 20px}.alt-section-heading h2{margin-bottom:0}.alt-expand{font-size:11px;white-space:nowrap}.alt-projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px;align-items:start;padding-top:16px}.alt-project{position:relative;background:var(--alt-peach);padding:19px 18px 13px;border-radius:3px 12px 13px 8px;box-shadow:2px 5px #382d3905;transform:rotate(-1deg);transition:transform .3s,box-shadow .3s}.alt-project[data-color="1"]{background:var(--alt-lavender);transform:rotate(1.1deg);margin-top:16px}.alt-project[data-color="2"]{background:var(--alt-rose);transform:rotate(-.4deg);margin-top:3px}.alt-project:hover,.alt-project:focus-within{transform:translateY(-4px) rotate(0);box-shadow:0 9px 20px #382d390a}.alt-folder-tab{position:absolute;left:0;top:-12px;height:16px;width:42%;background:inherit;border-radius:8px 12px 0 0}.alt-project-sketch{height:84px;margin-bottom:16px;opacity:.65}.alt-project-sketch svg{width:100%;height:100%;stroke:var(--alt-ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.alt-project h3{font-size:19px;font-weight:500;line-height:1.35;letter-spacing:-.6px;margin:0 0 12px;overflow-wrap:anywhere}.alt-project>p{font-size:12px;line-height:1.85;color:var(--alt-muted);margin-bottom:16px}.alt-tags{display:flex;gap:6px;flex-wrap:wrap}.alt-tags span{font-size:9px;padding:4px 7px;border-radius:6px;background:#ffffff45;color:var(--alt-muted)}.alt-project summary{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;color:var(--alt-ink);padding:18px 0 4px}.alt-project summary span{margin:0}.alt-project-notes h4{font-size:12px;font-weight:500;margin:17px 0 5px}.alt-project-notes p{font-size:12px;color:var(--alt-muted);margin:0}.alt-project-notes>div{display:flex;gap:16px;font-size:11px;margin-top:18px}.alt-placeholder{font-size:10px;color:var(--alt-muted);margin:24px 0 0}.alt-empty{font-size:14px;padding:25px 0}.alt-personal-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:45px;align-items:start;margin-top:15px}.alt-tool-groups{display:grid;grid-template-columns:1fr 1fr;gap:25px 20px}.alt-tool-groups h3{font-size:12px;font-weight:500;margin:0 0 10px}.alt-tool-groups>div>div{display:flex;gap:6px;flex-wrap:wrap}.alt-tool-groups span{font-size:10px;padding:5px 8px;background:color-mix(in srgb,var(--alt-lavender) 60%,transparent);border-radius:8px;color:var(--alt-muted)}.alt-reading{position:relative;padding:25px 25px 15px;background:color-mix(in srgb,var(--alt-peach) 60%,var(--alt-paper));border-radius:2px 5px 10px 3px;transform:rotate(2deg);box-shadow:3px 7px 15px #4d394807;margin-top:30px}.alt-tape{position:absolute;top:-12px;left:35%;width:75px;height:25px;background:color-mix(in srgb,var(--alt-rose) 75%,transparent);transform:rotate(-7deg);clip-path:polygon(3% 0,97% 3%,100% 90%,0 100%)}.alt-book-icon{width:30px;height:30px;margin-bottom:20px;color:#b48f85}.alt-book-icon svg{width:100%;height:100%;stroke:currentColor;stroke-width:1.4}.alt-reading h3{font-size:22px;line-height:1.35;font-weight:400;font-family:Georgia,serif;margin:0 0 18px}.alt-reading>p{font-size:13px;line-height:1.9}.alt-reading>p>span{color:var(--alt-muted);font-size:11px}.alt-reading summary,.alt-reading details p{font-size:12px}.alt-experience{margin-top:15px}.alt-envelope{width:47px;color:#b193b1;margin-right:25px;transform:rotate(-8deg)}.alt-envelope svg{width:100%;stroke:currentColor;stroke-width:1.2}.alt-experience article{display:grid;grid-template-columns:1fr 1.3fr;gap:35px;padding:23px 25px;background:color-mix(in srgb,var(--alt-lavender) 40%,transparent);border-radius:18px 7px 19px 10px}.alt-date{font-size:11px;color:var(--alt-muted)}.alt-experience h3{font-size:20px;font-weight:500;margin:9px 0 4px}.alt-experience article p{font-size:13px;color:var(--alt-muted);margin:0}.alt-experience ul{margin:0;padding-left:15px;font-size:13px;line-height:1.9;color:var(--alt-muted)}.alt-experience li+li{margin-top:7px}.alt-moments{padding-top:30px}.alt-milestones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin-top:30px}.alt-milestones article{position:relative;padding:16px 10px 0 0}.alt-milestones article:nth-child(2){padding-top:35px}.alt-milestones article:nth-child(3){padding-top:5px}.alt-moment-mark{display:block;font-size:33px;color:#bc8e9e;margin-bottom:15px}.alt-milestones h3{font-size:17px;font-weight:500;line-height:1.4;margin:10px 0}.alt-milestones p{font-size:12px;color:var(--alt-muted);line-height:1.85}.alt-activity{margin-top:5px}.alt-year{font:inherit;font-size:12px;padding:7px 10px;background:var(--alt-glass);border:0;border-radius:8px;color:var(--alt-ink)}.alt-calendar-scroll{overflow-x:auto;padding:8px 0}.alt-calendar{display:grid;grid-template-rows:repeat(7,10px);grid-auto-flow:column;grid-auto-columns:minmax(8px,1fr);gap:4px;min-width:650px}.alt-cell{background:color-mix(in srgb,var(--alt-lavender) 70%,transparent);border-radius:2px}.alt-cell-empty{visibility:hidden}.alt-cell[data-level="1"]{background:#e6c2cf}.alt-cell[data-level="2"]{background:#cf9bb7}.alt-cell[data-level="3"]{background:#b47fa5}.alt-cell[data-level="4"]{background:#88668e}.alt-contribution-status{font-size:10px;color:var(--alt-muted);margin:9px 0 15px}.alt-activity>a,.alt-activity>.unconfigured{font-size:12px}.alt-signoff{display:flex;align-items:center;gap:20px;padding:25px 0 10px}.alt-signoff-flower{width:39px;height:39px;color:#c5999e;flex-shrink:0}.alt-signoff h2{font-size:22px;margin:0 0 7px}.alt-signoff p{font-size:12px;color:var(--alt-muted);margin:0}.alt-signoff>button{margin-left:auto}@media(max-width:1200px){.alt-window{grid-template-columns:165px minmax(0,1fr)}.alt-paper{padding:15px 28px 30px}.alt-projects{gap:13px}.alt-project{padding:17px 14px 12px}.alt h1{font-size:49px}.alt-intro{gap:15px;grid-template-columns:1fr 145px}.alt-avatar{width:160px;height:170px}.alt-owner{padding-left:5px;padding-right:0}.alt-owner strong{font-size:14px}.alt-side-nav button{padding:10px 8px;gap:8px;font-size:11px}.alt-personal-grid{gap:25px}.alt-toolbar{padding:15px 20px}.alt-search input{width:105px}}@media(max-width:900px){.alt-window{grid-template-columns:64px minmax(0,1fr)}.alt-sidebar{padding:20px 10px;min-height:420px}.alt-window-dots{gap:4px;margin:0 0 35px;justify-content:center}.alt-window-dots i{width:7px;height:7px}.alt-owner{padding:0 0 25px;text-align:center}.alt-owner-flower{width:29px;margin:auto}.alt-owner strong,.alt-owner>span,.alt-side-nav button>span,.alt-sidebar-bottom p,.alt-location>span,.alt-location strong{display:none}.alt-side-nav button{justify-content:center;padding:12px 8px}.alt-sidebar-bottom{padding:40px 0 0}.alt-sidebar-bottom>div{flex-direction:column;align-items:center;gap:7px}.alt-sidebar-bottom .social-logo{width:28px}.alt-projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 17px}.alt-project[data-color="2"]{margin-top:0}.alt-personal-grid{grid-template-columns:1fr}.alt-reading{max-width:330px;margin:0 0 35px 30px}.alt-paper{padding:10px 25px 30px}.alt-intro{padding-top:35px}.alt-small-title{font-size:12px}.alt h1{font-size:42px;letter-spacing:-2px}.alt-intro-copy>p{font-size:14px}.alt-intro-actions{gap:15px;flex-wrap:wrap}.alt-intro-actions .alt-glass-button{font-size:11px}.alt-intro-actions>span{font-size:10px}.alt h2{font-size:25px}.alt-section-heading{gap:15px}.alt-milestones{gap:16px}.alt-experience article{grid-template-columns:1fr;gap:20px}}@media(max-width:580px){html:has(#alternate:not([hidden])) main{padding:0 10px}.alt-desktop{padding:10px 0 30px}.alt-window{grid-template-columns:47px minmax(0,1fr);border-radius:15px}.alt-sidebar{padding:17px 5px;top:10px}.alt-main,.alt-toolbar{border-top-right-radius:14px}.alt-window-dots{gap:3px;margin-bottom:25px}.alt-window-dots i{width:6px;height:6px}.alt-side-nav button svg{width:16px;height:16px}.alt-side-nav button{padding:11px 7px}.alt-owner-flower{width:25px}.alt-toolbar{padding:12px 13px;gap:8px}.alt-search{padding:7px 8px;flex:1}.alt-search input{width:100%;font-size:10px}.alt-location{display:none}.alt-theme{height:30px;width:30px}.alt-paper{padding:0 16px 25px}.alt-intro{display:block;padding:30px 0 35px}.alt h1{font-size:41px}.alt-intro-copy>p{font-size:14px;line-height:1.8}.alt-avatar-note{display:none}.alt-flower{width:23px;height:23px;top:25px;right:3px}.alt-intro-actions{gap:15px}.alt-section-heading{align-items:flex-start;flex-direction:column;gap:13px}.alt h2{font-size:24px}.alt-pencil{font-size:13px}.alt-projects{grid-template-columns:1fr;gap:29px}.alt-project{padding:18px 20px 14px}.alt-project[data-color="1"]{margin-top:0}.alt-project-sketch{height:70px}.alt-project>p{font-size:13px}.alt-project h3{font-size:22px}.alt-project summary{font-size:12px}.alt-expand{font-size:10px;padding:8px 11px}.alt-tool-groups{grid-template-columns:1fr;gap:20px}.alt-tool-groups h3{font-size:13px}.alt-tool-groups span{font-size:11px}.alt-reading{margin-left:4px;padding:25px 20px 12px}.alt-experience article{padding:22px 18px}.alt-envelope{display:none}.alt-milestones{grid-template-columns:1fr;margin-top:15px;gap:15px}.alt-milestones article,.alt-milestones article:nth-child(2),.alt-milestones article:nth-child(3){padding:8px 4px 5px 40px}.alt-moment-mark{position:absolute;left:0;top:4px;font-size:25px}.alt-milestones h3{font-size:18px}.alt-milestones p{font-size:13px}.alt-activity .alt-section-heading{flex-direction:row;align-items:center}.alt-activity h2{font-size:22px}.alt-signoff{gap:12px;align-items:flex-start}.alt-signoff-flower{width:25px;height:25px}.alt-signoff h2{font-size:20px}.alt-signoff>button{padding:8px 10px}.alt-signoff p{font-size:11px}}@media(prefers-reduced-motion:reduce){.alt-project,.alt-project[data-color],.alt-project:hover{transform:none}}.nav-glass{min-width:0}.nav-glass [role=tablist]{overflow-x:auto;scrollbar-width:none}.nav-glass [role=tablist]::-webkit-scrollbar{display:none}.nav-glass [role=tab]{flex-shrink:0}.drawably-host{--drawably-ease: cubic-bezier(.2, 0, 0, 1);position:relative;isolation:isolate;font-family:Inter,system-ui,sans-serif}.drawably-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:-1}.drawably-svg path{fill:none;stroke:var(--drawably-ink, var(--drawably-stroke, #2724d1));stroke-width:var(--drawably-width, 2);stroke-linecap:round;stroke-linejoin:round}@property --drawably-frame{syntax: "<integer>"; inherits: true; initial-value: 0;}.drawably-svg{--drawably-frame: 0;animation:drawably-boil 1.2s step-end infinite}@keyframes drawably-boil{0%{--drawably-frame: 0}33.33%{--drawably-frame: 1}66.67%{--drawably-frame: 2}}.drawably-boil{--drawably-i: 0;opacity:clamp(0,1 - (var(--drawably-frame) - var(--drawably-i)) * (var(--drawably-frame) - var(--drawably-i)),1)}.drawably-boil[data-i="1"]{--drawably-i: 1}.drawably-boil[data-i="2"]{--drawably-i: 2}.drawably-svg .drawably-blob{fill:var(--drawably-ink, var(--drawably-fill, #2724d1));stroke:var(--drawably-ink, var(--drawably-fill, #2724d1));stroke-width:4}.drawably-svg .drawably-scribble{stroke-width:1.5}.drawably-button{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border:0;background:none;font:inherit;font-family:Inter,system-ui,sans-serif;color:var(--drawably-ink, var(--drawably-stroke, #2724d1));cursor:pointer;outline:none;transition:transform .12s ease}.drawably-button:active{transform:translateY(1px) scale(.98)}.drawably-button .drawably-outline{transition:stroke-width .12s ease,fill .12s ease}.drawably-button:active .drawably-outline{stroke-width:calc(var(--drawably-width, 2) * 1.4)}@media(hover:hover){.drawably-button:hover:not(:disabled,[data-state=loading]){transform:translateY(-1px)}.drawably-button:not(.drawably-button--solid):hover:not(:disabled) .drawably-outline{fill:color-mix(in srgb,var(--drawably-ink, var(--drawably-stroke, #2724d1)) 10%,transparent)}.drawably-button:hover:active{transform:translateY(1px) scale(.98)}}.drawably-button:disabled{cursor:not-allowed;opacity:.45;transform:none}.drawably-button--neutral{--drawably-stroke: #6e675f;--drawably-fill: #6e675f}.drawably-button--danger{--drawably-stroke: var(--drawably-error, #d12724);--drawably-fill: var(--drawably-error, #d12724)}.drawably-button[data-state=error]{--drawably-ink: var(--drawably-error, #d12724)}.drawably-button[data-state=success]{--drawably-ink: var(--drawably-success, #188a42)}.drawably-button[data-state=loading]{cursor:progress;opacity:.6}.drawably-button[data-state=loading] .drawably-svg{animation-duration:.45s}.drawably-button--solid{color:var(--drawably-paper, #fff)}.drawably-svg .drawably-focus{visibility:hidden;stroke-width:1.5}.drawably-host:is(:focus-visible,:has(:focus-visible)) .drawably-focus{visibility:visible}.drawably-checkbox,.drawably-radio{display:inline-block;width:22px;height:22px}.drawably-toggle{display:inline-block;width:44px;height:24px}:is(.drawably-checkbox,.drawably-radio,.drawably-toggle) input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.drawably-svg .drawably-dot{fill:var(--drawably-ink, var(--drawably-fill, #2724d1));stroke:var(--drawably-ink, var(--drawably-fill, #2724d1));visibility:hidden;transform:scale(.5);transform-box:fill-box;transform-origin:center;transition:transform .16s var(--drawably-ease)}.drawably-radio[data-checked] .drawably-dot{visibility:visible;transform:scale(1)}.drawably-svg .drawably-knob{transition:transform .16s var(--drawably-ease)}.drawably-toggle[data-checked] .drawably-knob{transform:translate(20px)}.drawably-divider{display:block;height:10px;border:0}.drawably-svg .drawably-check{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .24s var(--drawably-ease)}.drawably-checkbox[data-checked] .drawably-check{stroke-dashoffset:0}.drawably-inputbox,.drawably-textarea,.drawably-select{display:inline-block}:is(.drawably-inputbox,.drawably-textarea,.drawably-select) :is(input,textarea,select){border:0;background:none;font:inherit;color:inherit;padding:8px 12px;width:100%;box-sizing:border-box;outline:none}.drawably-textarea textarea{display:block;resize:vertical}.drawably-select select{appearance:none;padding-right:34px;cursor:pointer}@supports (appearance: base-select){.drawably-select select,.drawably-select select::picker(select){appearance:base-select}.drawably-select select::picker-icon{display:none}.drawably-select select::picker(select){margin-top:4px;padding:6px;border:0;background:var(--drawably-paper, #fff);color:inherit;font:inherit}.drawably-select option{padding:4px 8px;border-radius:3px}.drawably-select option:is(:hover,:focus-visible){background:color-mix(in srgb,var(--drawably-stroke, #2724d1) 10%,transparent)}.drawably-select option::checkmark{content:"";display:inline-block;width:.875em;height:.875em}.drawably-select option:checked::checkmark{background:var(--drawably-ink, var(--drawably-stroke, #2724d1));-webkit-mask:var(--drawably-check) center / contain no-repeat;mask:var(--drawably-check) center / contain no-repeat}}.drawably-badge{display:inline-block;padding:1px 7px;font:500 12px/1.4 Geist Mono,ui-monospace,monospace;color:var(--drawably-ink, var(--drawably-stroke, #2724d1))}.drawably-list{list-style:none;padding-left:24px}.drawably-card{padding:16px}.drawably-svg .drawably-wash{stroke:var(--drawably-ink, var(--drawably-fill, #2724d1));stroke-width:6;stroke-opacity:.3;mix-blend-mode:multiply}:is(.drawably-underline,.drawably-circle) .drawably-svg path{stroke-width:var(--drawably-width, 1.5)}.drawably-arrow{inset:auto;z-index:1}@media(prefers-reduced-motion:reduce){.drawably-svg{animation:none}.drawably-svg .drawably-check,.drawably-svg .drawably-dot,.drawably-svg .drawably-knob{transition:none}}.drawably-chip{display:inline-flex;align-items:center;gap:8px;padding:3px 10px 3px 6px;cursor:pointer}.drawably-chip .drawably-checkbox{scale:.8}.drawably-tabs{display:flex;gap:18px}.drawably-tabs>*{cursor:pointer}.drawably-tooltip{display:inline-block;padding:2px 10px}.drawably-alert{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;padding:8px 12px}.drawably-alert [data-tag]{padding:1px 6px}.drawably-kbd{padding:2px 8px;font:500 13px/1.4 Geist Mono,ui-monospace,monospace}.drawably-quote{margin:0}.drawably-quote footer{margin-top:10px;padding-top:8px}.drawably-pager{display:flex;gap:6px}.drawably-pager>button{min-width:34px}.desktop-site .sketch-active{overflow:hidden;background:#f6f5ef}.desktop-site .sketch-active>.alt-paper{height:calc(100% - 70px);min-height:0;max-width:none;padding:0 28px;background:#f6f5ef}.desktop-site .sketch-landing{height:100%;min-height:0;display:grid;grid-template-rows:48px minmax(0,1fr) 48px;color:#363a36;--drawably-stroke: #687856;--drawably-ink: #687856}.sketch-signature{text-align:center;font:italic 24px Caveat,cursive;color:#677b99;align-self:end}.sketch-signature span{font:16px Georgia;margin-left:6px;color:#c79854}.sketch-stage{position:relative;max-width:1050px;width:100%;margin:auto;height:100%;max-height:660px;display:grid;grid-template-columns:140px minmax(0,1fr) 140px;grid-template-rows:1fr 1fr 1fr;align-items:center;gap:10px 30px}.sketch-introduction{grid-column:2;grid-row:1/4;text-align:center;max-width:490px;justify-self:center;padding-bottom:35px}.sketch-whisper{font:11px/1.6 ui-monospace,monospace;color:#7e8176;margin-bottom:23px}.desktop-site .sketch-introduction h1{font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:clamp(25px,3vw,39px);font-weight:400;letter-spacing:-1.5px;line-height:1.22;margin:0 0 28px}.sketch-introduction em{font-family:Georgia,serif;font-weight:400;color:#8b6749}.sketch-color{color:#728952}.sketch-underline{white-space:normal}.sketch-read,.sketch-close{font-size:13px;background:none;color:inherit;padding:7px 16px;min-height:34px}.sketch-doodle{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:4px;color:inherit;padding:4px;justify-self:center;width:120px}.sketch-doodle svg{width:96px;height:96px;stroke:#494b43;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}.sketch-doodle .sketch-wash{stroke:none;fill:var(--wash);opacity:.25}.sketch-doodle span{font:12px ui-monospace,monospace}.sketch-doodle:hover svg,.sketch-doodle:focus-visible svg{transform:rotate(-5deg) translateY(-4px)}.sketch-about{grid-column:1;grid-row:1;--wash: #a7ba7c}.sketch-projects{grid-column:1;grid-row:3;--wash: #e2b265}.sketch-experience{grid-column:3;grid-row:1;--wash: #92afc8}.sketch-skills{grid-column:3;grid-row:3;--wash: #b7a2c7}.sketch-contact{grid-column:2;grid-row:3;align-self:end;--wash: #cd9277}.sketch-footnote{font:10px/1.5 ui-monospace,monospace;text-align:center;color:#83857a;align-self:center;margin:0}.sketch-dialog{color:#363a36;background:#f6f5ef;width:min(620px,calc(100vw - 38px));max-height:80svh;overflow:auto;border:1px solid #a5aa97;border-radius:3px;padding:32px;box-shadow:0 18px 80px #141a2633}.sketch-dialog::backdrop{background:#20282065;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.sketch-close{float:right}.sketch-dialog h2{font:32px Georgia,serif;margin:18px 0 25px}.sketch-dialog h3{font-size:19px;margin:0 0 8px}.sketch-dialog p{font-size:16px;line-height:1.7;margin:8px 0}.sketch-dialog article+article{margin-top:28px}.sketch-dialog .sketch-meta{font-size:13px;color:#737a68}.sketch-contact-links{display:flex;gap:22px}[data-theme=dark] .desktop-site .sketch-active,[data-theme=dark] .desktop-site .sketch-active>.alt-paper,[data-theme=dark] .sketch-dialog{background:#262923;color:#e4e6d9}[data-theme=dark] .desktop-site .sketch-landing{color:#e4e6d9;--drawably-ink: #b7c69b}[data-theme=dark] .sketch-doodle svg{stroke:#d3d7c9}[data-theme=dark] .sketch-introduction em{color:#d5af8b}[data-theme=dark] .sketch-color{color:#b7c88f}[data-theme=dark] .sketch-whisper,[data-theme=dark] .sketch-footnote{color:#abb29e}@media(max-width:900px){.desktop-site .sketch-active>.alt-paper{height:calc(100% - 60px);padding:0 15px}.sketch-stage{grid-template-columns:90px minmax(0,1fr) 90px;gap:6px 10px}.sketch-doodle{width:85px}.sketch-doodle svg{width:74px;height:74px}.sketch-introduction{padding-bottom:35px}}@media(max-width:580px){.desktop-site .sketch-active>.alt-paper{height:calc(100% - 58px);padding:0 10px}.desktop-site .sketch-landing{grid-template-rows:38px minmax(0,1fr) 32px}.sketch-stage{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:85px minmax(0,1fr) 85px;gap:6px}.sketch-introduction{grid-column:1/4;grid-row:2;padding:0}.desktop-site .sketch-introduction h1{font-size:27px;letter-spacing:-1px;margin-bottom:20px}.sketch-whisper{font-size:9px;margin-bottom:14px}.sketch-about{grid-column:1;grid-row:1}.sketch-experience{grid-column:3;grid-row:1}.sketch-projects{grid-column:1;grid-row:3}.sketch-contact{grid-column:2;grid-row:3;align-self:center}.sketch-skills{grid-column:3;grid-row:3}.sketch-doodle svg{width:56px;height:56px}.sketch-doodle span{font-size:10px}.sketch-footnote{font-size:8px}.sketch-dialog{padding:22px}}@media(max-height:650px){.sketch-doodle svg{width:52px;height:52px}.sketch-whisper{display:none}.desktop-site .sketch-introduction h1{font-size:25px;margin-bottom:15px}.sketch-stage{max-height:none}.sketch-footnote{display:none}.desktop-site .sketch-landing{grid-template-rows:28px minmax(0,1fr) 8px}}@media(prefers-reduced-motion:reduce){.sketch-doodle svg{transition:none}.sketch-landing .drawably-svg{animation:none}}html,body.single-page-site{height:100%;overflow:hidden}.single-page-site #app{height:100%}.single-page-site #main{height:100svh;min-height:0;width:100%;max-width:none;padding:0;margin:0;border-radius:0}.desktop-site.single-page-site .sketch-active>.alt-paper{height:100%;padding:12px clamp(16px,5vw,90px);max-width:1300px;margin:auto;border-radius:0;box-sizing:border-box;background-image:none}.single-theme{position:fixed;right:24px;top:18px;z-index:3;background:none;border:0;color:inherit;font-size:23px;width:36px;height:36px;cursor:pointer}.single-page-site .sketch-landing{outline:none}.single-page-site button:focus-visible,.single-page-site a:focus-visible{outline:2px solid #829366;outline-offset:5px}.single-page-site .sketch-doodle,.single-page-site .sketch-read,.single-page-site .sketch-close{cursor:pointer}.single-page-site .sketch-dialog{--drawably-ink: #687856}@media(max-width:580px){.desktop-site.single-page-site .sketch-active>.alt-paper{padding:8px 18px}.single-theme{right:10px;top:9px}}.single-page-site{--spring-paper: #f6f5ef;--spring-ink: #363a3c;--spring-muted: #6d7478;--pink: #b95887;--accent: #af563e;--mint: #529489;--peach: #c78a57}[data-theme=dark] .single-page-site{--spring-paper: #191b1e;--spring-ink: #eeeef0;--spring-muted: #aaafb3;--pink: #ed9dbf;--accent: #eba487;--mint: #8bc5b4;--peach: #e6b18b}.desktop-site.single-page-site #main,.desktop-site.single-page-site .sketch-active>.alt-paper,.single-page-site .sketch-dialog{background:var(--spring-paper);color:var(--spring-ink)}.desktop-site.single-page-site .sketch-landing{color:var(--spring-ink);grid-template-rows:minmax(0,1fr) 28px 36px;position:relative;--drawably-ink: var(--accent);--drawably-stroke: var(--accent)}.single-page-site .sketch-stage{grid-row:1;z-index:1}.single-page-site .sketch-footnote{grid-row:2;color:var(--spring-muted)}.single-page-site .sketch-introduction em{color:var(--pink)}.single-page-site .sketch-color{color:var(--mint)}.single-page-site .sketch-underline{color:var(--accent)}.single-page-site .sketch-doodle svg{stroke:currentColor;stroke-width:1.6}.single-page-site .sketch-about{color:var(--pink);--wash: #ecb8d0}.single-page-site .sketch-projects{color:var(--accent);--wash: #cfc2ed}.single-page-site .sketch-experience{color:var(--mint);--wash: #a9d7cb}.single-page-site .sketch-skills{color:var(--peach);--wash: #f1cba9}.single-page-site .sketch-contact{color:#779abf;--wash: #bdd3ed}.single-page-site .sketch-doodle span{color:var(--spring-ink)}.sketch-style-picker{grid-row:3;display:flex;justify-content:center;align-items:center;gap:13px;z-index:1;font-size:11px;color:var(--spring-muted)}.sketch-style-picker button{border:0;background:none;padding:5px 0;color:inherit;cursor:pointer;font:inherit}.sketch-style-picker button[aria-pressed=true]{color:var(--pink);text-decoration:underline;text-underline-offset:5px}.single-page-site [data-nav-style=words] .sketch-doodle svg{display:none}.single-page-site [data-nav-style=words] .sketch-doodle{width:auto;padding:15px 5px}.single-page-site [data-nav-style=words] .sketch-doodle span{font:28px Caveat,cursive;color:inherit}.sketch-ambient{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:.23}.sketch-ambient svg{width:100%;height:100%;fill:none;stroke:var(--pink);stroke-width:1.3}.sketch-ambient circle{fill:var(--pink);stroke:none}.ambient-right{stroke:var(--mint);animation:ambient-drift 14s ease-in-out infinite alternate}.ambient-left{animation:ambient-drift 18s ease-in-out infinite alternate-reverse}.ambient-bottom{stroke:var(--accent)}@keyframes ambient-drift{0%{transform:translateY(-6px)}to{transform:translateY(12px)}}.single-page-site .sketch-dialog{border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);--drawably-ink: var(--accent);animation:panel-arrive .25s ease-out}.single-page-site .sketch-dialog h2{display:table;padding-right:8px}.single-page-site .sketch-dialog h3{display:table;color:var(--mint)}.single-page-site .sketch-dialog .sketch-meta{color:var(--spring-muted)}@keyframes panel-arrive{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-new(root){z-index:2}::view-transition-old(root){z-index:1}@media(max-width:580px){.sketch-style-picker{gap:9px;font-size:9px}.sketch-style-picker>span{display:none}.single-page-site [data-nav-style=words] .sketch-doodle span{font-size:23px}.sketch-ambient{opacity:.13}}@media(prefers-reduced-motion:reduce){.sketch-ambient g,.single-page-site .sketch-dialog{animation:none}}.landing-girl{width:180px;height:180px;margin:0 auto 5px}.landing-girl .avatar-button{position:relative;width:100%;height:100%;border:0;background:none;padding:0;cursor:pointer}.landing-girl canvas{width:100%;height:100%;opacity:0;transition:opacity .5s}.landing-girl .avatar-ready canvas{opacity:1}.landing-girl .sculpture-fallback{color:var(--pink);font-size:40px}.landing-socials{display:flex;justify-content:center;gap:19px;margin-top:19px;align-items:center}.landing-socials a,.landing-socials>span{display:grid;place-items:center;width:25px;height:28px;color:var(--spring-muted);transition:color .2s,transform .2s}.landing-socials svg{width:20px;height:20px}.landing-socials a:hover{color:var(--pink);transform:translateY(-2px)}.single-page-site .sketch-style-picker[hidden]{display:none}.nav-three{width:100px;height:100px;display:block;opacity:0;transition:opacity .4s;filter:drop-shadow(0 5px 4px #49375312)}.nav-three-ready .nav-three{opacity:1}.nav-three-ready>svg{display:none}.sketch-doodle:not(.nav-three-ready) .nav-three{position:absolute;pointer-events:none}.single-page-site .sketch-introduction{padding-bottom:45px}.single-page-site .sketch-contact{align-self:end}@media(max-width:580px){.landing-girl{width:120px;height:120px;margin-bottom:0}.nav-three{width:64px;height:64px}.single-page-site .sketch-introduction{padding:0}.single-page-site .sketch-introduction h1{font-size:24px;margin-bottom:14px}.landing-socials{margin-top:12px}.single-page-site .sketch-stage{grid-template-rows:80px minmax(0,1fr) 85px}}@media(max-height:720px)and (min-width:581px){.landing-girl{width:135px;height:135px}.single-page-site .sketch-introduction h1{font-size:29px}.single-page-site .sketch-introduction{padding-bottom:60px}.nav-three{width:80px;height:80px}}@media(max-height:620px){.landing-girl{width:85px;height:85px}.single-page-site .sketch-introduction h1{font-size:22px;margin-bottom:10px}.landing-socials{margin-top:9px}}@media(prefers-reduced-motion:reduce){.landing-girl canvas,.nav-three,.landing-socials a{transition:none}}.single-page-site .sketch-underline{--drawably-ink: #ce946b;--drawably-stroke: #ce946b}[data-theme=dark] .single-page-site .sketch-underline{--drawably-ink: #ecc09a;--drawably-stroke: #ecc09a}.single-page-site #main{position:relative;isolation:isolate}.portfolio-sky{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.morning-sky,.evening-sky{position:absolute;inset:0}.morning-sky{background:radial-gradient(ellipse at 86% 12%,#f7d99d30,transparent 40%),linear-gradient(180deg,#dcecf02b,transparent 48%)}.evening-sky{display:none;background:radial-gradient(ellipse at 85% 12%,#8c8aba16,transparent 42%),linear-gradient(180deg,#171b3428,transparent 70%)}.desktop-site.single-page-site .sketch-active>.alt-paper{background:transparent;position:relative}.sky-sun{position:absolute;right:12%;top:10%;width:48px;height:48px;border-radius:50%;background:#efd194;box-shadow:0 0 45px 20px #efd19424;opacity:.6}.sky-cloud{position:absolute;width:140px;height:29px;border-radius:50%;background:#fffdf7;opacity:.65;filter:blur(1px);animation:cloud-drift 28s ease-in-out infinite alternate}.sky-cloud:before,.sky-cloud:after{content:"";position:absolute;background:inherit;border-radius:50%}.sky-cloud:before{width:65px;height:45px;left:23px;bottom:4px}.sky-cloud:after{width:55px;height:35px;left:65px;bottom:2px}.cloud-one{left:7%;top:13%}.cloud-two{right:7%;top:24%;transform:scale(.75);animation-delay:-12s}.cloud-three{left:31%;bottom:7%;opacity:.35;transform:scale(.65);animation-delay:-8s}.sky-moon{position:absolute;right:12%;top:10%;width:44px;height:44px;border-radius:50%;background:linear-gradient(120deg,#ede5cb,#c5c2d0);opacity:.65;box-shadow:0 0 35px 10px #dfd8fc12}.sky-moon:before,.sky-moon:after{content:"";position:absolute;border-radius:50%;background:#9493ac35}.sky-moon:before{width:11px;height:11px;left:9px;top:10px}.sky-moon:after{width:7px;height:7px;right:8px;bottom:10px}.sky-star{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);background:#ede5ce;border-radius:50%;opacity:.3;animation:star-glimmer 7s ease-in-out var(--delay) infinite}.sky-star:nth-child(5n){border-radius:0;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);width:7px;height:7px}[data-theme=dark] .morning-sky{display:none}[data-theme=dark] .evening-sky{display:block}@keyframes cloud-drift{0%{translate:-12px 0}to{translate:20px -5px}}@keyframes star-glimmer{0%,to{opacity:.18}50%{opacity:.55}}@media(max-width:580px){.sky-sun,.sky-moon{right:16%;top:5%;width:30px;height:30px;opacity:.4}.cloud-one{left:-35px;top:8%;opacity:.45}.cloud-two{right:-65px;top:55%;opacity:.4}.cloud-three{display:none}.sky-star{opacity:.2}}@media(prefers-reduced-motion:reduce){.sky-cloud,.sky-star{animation:none}}.sky-sun,.sky-moon{left:5%;right:auto;top:5%;width:42px;height:42px}.sky-sun{background:#efcc83;opacity:.72;box-shadow:0 0 38px 12px #f1d39025;animation:sun-breathe 9s ease-in-out infinite}.sky-sun:before{content:"";position:absolute;inset:-14px;background:repeating-conic-gradient(from 0deg,#dcb56b 0deg 3deg,transparent 3deg 45deg);mask:radial-gradient(circle,transparent 0 27px,#000 28px 34px,transparent 35px);-webkit-mask:radial-gradient(circle,transparent 0 27px,#000 28px 34px,transparent 35px);animation:sun-rays-turn 75s linear infinite}.sky-moon{background:#e5dfc7;box-shadow:none;opacity:.78;clip-path:path("M29 1C12 -3 -2 11 1 27C4 43 25 50 38 35C20 40 8 16 29 1Z");animation:moon-sway 12s ease-in-out infinite}.sky-moon:before,.sky-moon:after{display:none}.sky-cloud{animation:cloud-travel 34s ease-in-out infinite alternate;will-change:transform;filter:blur(.6px)}.cloud-one{left:1%;top:20%;opacity:.65;--cloud-scale: .85;animation-duration:37s;animation-delay:-9s}.cloud-two{right:4%;top:12%;opacity:.7;--cloud-scale: 1.1;animation-duration:43s;animation-delay:-24s}.cloud-three{left:12%;bottom:9%;opacity:.4;--cloud-scale: .7;animation-duration:49s;animation-delay:-15s}@keyframes cloud-travel{0%{transform:translate(-35px) translateY(0) scale(var(--cloud-scale, 1))}50%{transform:translate(20px) translateY(-7px) scale(var(--cloud-scale, 1))}to{transform:translate(85px) translateY(2px) scale(var(--cloud-scale, 1))}}@keyframes sun-breathe{0%,to{transform:translateY(0);opacity:.65}50%{transform:translateY(-4px);opacity:.82}}@keyframes sun-rays-turn{to{rotate:360deg}}@keyframes moon-sway{0%,to{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-5px) rotate(3deg)}}@media(max-width:580px){.sky-sun,.sky-moon{left:6%;right:auto;top:3%;width:42px;height:42px;scale:.65;transform-origin:top left}.cloud-one{left:-55px;top:8%;--cloud-scale: .65;opacity:.5}.cloud-two{right:-55px;top:63%;--cloud-scale: .7;opacity:.45}}@media(prefers-reduced-motion:reduce){.sky-sun,.sky-sun:before,.sky-moon,.sky-cloud{animation:none}.sky-cloud{will-change:auto}}.single-page-site{--spring-paper: #f0f7fa}[data-theme=dark] .single-page-site{--spring-paper: #191b1e}.morning-sky{background:radial-gradient(ellipse at 9% 8%,#fff5d72b,transparent 25%),linear-gradient(180deg,#d7ebf5,#e7f2f8 42%,#f6fafb)}.morning-sky{background:linear-gradient(180deg,#acdafa,#cce9fb 44%,#edf7fc)}.sky-moon{left:auto;right:8%;top:7%;animation:moon-sway 12s ease-in-out infinite}.sky-moon.sky-arriving{animation:moon-arrive 1.1s cubic-bezier(.22,.7,.3,1) both}.sky-sun.sky-arriving{animation:sun-arrive 1.1s cubic-bezier(.22,.7,.3,1) both}@keyframes moon-arrive{0%{translate:-70vw -10px;opacity:.15}to{translate:0 0;opacity:.78}}@keyframes sun-arrive{0%{translate:70vw -10px;opacity:.15}to{translate:0 0;opacity:.72}}@media(min-width:581px){.single-page-site .sketch-contact{grid-column:3;grid-row:2;align-self:center;justify-self:end;translate:24px 0}.single-page-site .sketch-experience,.single-page-site .sketch-skills{justify-self:end}}@media(max-width:580px){.sky-moon{left:auto;right:14%;top:4%}.single-page-site .sketch-contact{grid-column:2;grid-row:3;align-self:end;translate:0 8px}}@media(prefers-reduced-motion:reduce){.sky-moon.sky-arriving,.sky-sun.sky-arriving{animation:none}}.desktop-site.single-page-site .sketch-landing{grid-template-rows:minmax(0,1fr)}.single-page-site .landing-girl{width:165px;height:165px}.desktop-site.single-page-site .sketch-introduction h1{font-size:clamp(24px,2.8vw,36px)}@media(max-height:720px)and (min-width:581px){.single-page-site .landing-girl{width:125px;height:125px}.desktop-site.single-page-site .sketch-introduction h1{font-size:27px}}@media(max-width:580px){.single-page-site .landing-girl{width:110px;height:110px}.desktop-site.single-page-site .sketch-introduction h1{font-size:23px}}@media(max-height:620px){.single-page-site .landing-girl{width:80px;height:80px}.desktop-site.single-page-site .sketch-introduction h1{font-size:21px}}@media(min-width:581px){.single-page-site .sketch-stage{grid-template-columns:140px minmax(0,1fr) 140px;grid-template-rows:minmax(0,1fr) minmax(0,1fr) 115px;gap:12px 30px;max-height:760px}.single-page-site .sketch-introduction{grid-column:2;grid-row:1/3;padding:0;align-self:center}.single-page-site .sketch-about{grid-column:1;grid-row:1;align-self:center;justify-self:center;translate:0 0}.single-page-site .sketch-projects{grid-column:1;grid-row:2;align-self:center;justify-self:center;translate:24px 0}.single-page-site .sketch-experience{grid-column:3;grid-row:1;align-self:center;justify-self:center;translate:0 0}.single-page-site .sketch-skills{grid-column:3;grid-row:2;align-self:center;justify-self:center;translate:-24px 0}.single-page-site .sketch-contact{grid-column:2;grid-row:3;align-self:center;justify-self:center;translate:0 0}}@media(min-width:581px)and (max-width:900px){.single-page-site .sketch-stage{grid-template-columns:95px minmax(0,1fr) 95px;gap:8px 12px;grid-template-rows:minmax(0,1fr) minmax(0,1fr) 105px}.single-page-site .sketch-projects{translate:10px 0}.single-page-site .sketch-skills{translate:-10px 0}}@media(max-width:580px){.single-page-site .sketch-stage{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:minmax(0,1fr) 74px 70px;gap:2px}.single-page-site .sketch-introduction{grid-column:1/-1;grid-row:1;align-self:center;padding:0 6px}.single-page-site .sketch-about{grid-column:1/3;grid-row:2;justify-self:start;align-self:center;translate:0 -12px}.single-page-site .sketch-experience{grid-column:4/6;grid-row:2;justify-self:end;align-self:center;translate:0 -12px}.single-page-site .sketch-projects{grid-column:1/3;grid-row:3;justify-self:center;align-self:start;translate:0 0}.single-page-site .sketch-skills{grid-column:4/6;grid-row:3;justify-self:center;align-self:start;translate:0 0}.single-page-site .sketch-contact{grid-column:3;grid-row:3;justify-self:center;align-self:end;translate:0 0}.single-page-site .sketch-doodle{width:65px}.single-page-site .nav-three{width:55px;height:55px}}@media(min-width:581px)and (max-height:650px){.single-page-site .sketch-stage{grid-template-rows:minmax(0,1fr) minmax(0,1fr) 85px;gap:4px 24px}.single-page-site .nav-three{width:65px;height:65px}}.single-page-site .sketch-dialog{width:min(900px,calc(100vw - 40px));height:min(720px,88svh);max-height:88svh;padding:0;overflow:hidden;border:1px solid #b9bbc5;border-radius:14px;background:#fcfbfd;color:var(--spring-ink);box-shadow:0 36px 100px #20223440,0 8px 24px #20223426,inset 0 1px #fff;animation:none}.single-page-site .sketch-dialog[open]{display:flex;flex-direction:column;animation:sketch-window-open .48s cubic-bezier(.2,.8,.2,1) both}.sketch-window-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:0 0 58px;padding:0 20px;background:linear-gradient(#f7f6fa,#e9e8ee);border-bottom:1px solid #d1d0d8;box-shadow:inset 0 1px #fff}.sketch-window-controls{display:flex;align-items:center;gap:9px;width:64px;flex-shrink:0}.single-page-site .sketch-close,.window-dot{display:block;width:13px;height:13px;min-height:0;padding:0;border-radius:50%;border:1px solid #0002;box-shadow:inset 0 1px 2px #ffffff60,0 1px 1px #0001;flex-shrink:0}.single-page-site .sketch-close{float:none;background:linear-gradient(#ff8178,#ec554b);color:#76221c;position:relative;line-height:10px;font:14px/10px sans-serif}.single-page-site .sketch-close:before{content:"";position:absolute;inset:-7px}.sketch-close span{opacity:0}.sketch-close:hover span,.sketch-close:focus-visible span{opacity:1}.window-yellow{background:linear-gradient(#ffd16a,#e9aa35)}.window-green{background:linear-gradient(#88d896,#54ae66)}.window-bar-spacer{width:64px;flex-shrink:0}.single-page-site .sketch-dialog h2{display:block;padding:0;margin:0;text-align:center;font:600 16px/1.3 -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:-.2px}.single-page-site .sketch-dialog-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:clamp(24px,5vw,52px);outline-offset:-5px}.single-page-site .sketch-dialog-content p{font-size:17px;line-height:1.8;max-width:68ch}.single-page-site .sketch-dialog-content article+article{margin-top:36px}.single-page-site .sketch-contact-links{flex-wrap:wrap;margin-top:24px}.single-page-site .sketch-dialog::backdrop{background:#22253740;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}[data-theme=dark] .single-page-site .sketch-dialog{background:#2c2b33;border-color:#595762;box-shadow:0 36px 100px #0008,0 8px 24px #0005,inset 0 1px #ffffff14}[data-theme=dark] .sketch-window-bar{background:linear-gradient(#45434d,#38363f);border-color:#24222b;box-shadow:inset 0 1px #ffffff14}@keyframes sketch-window-open{0%{opacity:0;transform:translate(var(--window-origin-x, 0px),var(--window-origin-y, 30px)) scale(.18) rotateX(12deg)}to{opacity:1;transform:translate(0) scale(1) rotateX(0)}}@media(max-width:580px){.single-page-site .sketch-dialog{width:calc(100vw - 20px);height:90svh;max-height:90svh}.sketch-window-bar{padding:0 15px;gap:8px}.single-page-site .sketch-dialog-content{padding:24px}.single-page-site .sketch-dialog-content p{font-size:16px}}@media(prefers-reduced-motion:reduce){.single-page-site .sketch-dialog[open]{animation:none}}.single-page-site .sketch-dialog{border-radius:18px;border-color:#ffffffa0;background:#fcfbfef5;box-shadow:0 28px 90px #26334a38,0 3px 12px #26334a20,inset 0 0 0 1px #fff8}.sketch-window-bar{flex-basis:40px;padding:0 16px;background:#efeff380;border:0;box-shadow:none;-webkit-backdrop-filter:blur(22px) saturate(1.25);backdrop-filter:blur(22px) saturate(1.25)}.single-page-site .sketch-dialog h2{font-size:13px;font-weight:600;color:var(--spring-muted)}.sketch-window-controls{gap:8px}.single-page-site .sketch-close,.window-dot{width:12px;height:12px;box-shadow:inset 0 1px 1px #fff4}.single-page-site .sketch-dialog-content{padding:30px 36px 40px}.single-page-site .sketch-dialog-content h3{color:var(--spring-ink);font:600 21px/1.3 -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:-.5px}.single-page-site .sketch-dialog-content .page-display{font-size:clamp(28px,4vw,40px);letter-spacing:-1.3px;max-width:540px;margin:0 0 22px}.single-page-site .sketch-dialog-content article+article{margin-top:0}.window-about{display:grid;grid-template-columns:110px 1fr;gap:28px;padding-top:30px}.about-monogram{width:100px;height:112px;border-radius:24px;background:linear-gradient(135deg,#e5afc9,#b683b2);box-shadow:inset 0 2px 2px #fff8,0 12px 24px #b683b22a;color:#fff7fc;font:italic 80px/1.2 Georgia;text-align:center;transform:rotate(-5deg)}.about-interests{display:flex;flex-wrap:wrap;gap:14px 22px;margin-top:28px;color:var(--pink);font-size:14px}.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.project-file{min-width:0;--folder-color: #bb96d1}.project-file:nth-child(2n){--folder-color: #d49b70}.project-file:nth-child(3n){--folder-color: #82ab92}.project-folder{width:55px;height:37px;border-radius:5px;background:linear-gradient(160deg,color-mix(in srgb,var(--folder-color),white 25%),var(--folder-color));position:relative;margin:12px 0 18px;box-shadow:inset 0 1px 1px #fff9,0 5px 9px #0001;transform:rotate(-4deg)}.project-folder:before{content:"";position:absolute;left:0;top:-6px;width:25px;height:8px;background:var(--folder-color);border-radius:4px 5px 0 0}.single-page-site .project-file .project-discipline{font-size:12px;color:var(--spring-muted);margin-bottom:5px}.single-page-site .project-file p{font-size:15px;line-height:1.65}.tool-labels{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--accent);margin:16px 0}.project-file summary{cursor:pointer;font-size:14px;color:var(--pink);padding:8px 0;list-style:none}.project-file summary span{display:inline-block;transition:transform .2s}.project-file details[open] summary span{transform:rotate(90deg)}.project-file h4{font-size:14px;margin:20px 0 4px}.experience-ledger{display:grid;gap:34px}.experience-entry{display:grid;grid-template-columns:46px 1fr;gap:18px}.company-mark{width:44px;height:44px;border-radius:12px;background:#e8dced;color:#856491;box-shadow:inset 0 1px 1px #fff9;font:600 23px/44px Georgia;text-align:center}.mark-1{background:#f3e1d5;color:#a26845}.mark-2{background:#e0e9df;color:#58775a}.experience-heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:baseline}.experience-heading>span{font-size:12px;color:var(--spring-muted)}.single-page-site .experience-entry .experience-role{font-size:13px;color:var(--pink);margin:0 0 10px}.single-page-site .experience-entry p{font-size:15px;line-height:1.7}.skills-shelves{display:grid;gap:30px}.skill-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:20px}.skill-item{display:flex;flex-direction:column;gap:10px;font-size:13px;align-items:center;text-align:center}.skill-symbol{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:linear-gradient(145deg,#e5d8f2,#c2addb);color:#62467d;font-size:17px;font-weight:600;box-shadow:inset 0 1px 2px #fff9,0 5px 12px #0000000c}.symbol-1{background:linear-gradient(145deg,#f4dfce,#e1b58f);color:#825635}.symbol-2{background:linear-gradient(145deg,#d7e9de,#a4c9b2);color:#3d7052}.symbol-3{background:linear-gradient(145deg,#f1dce8,#d9abc5);color:#8c4d74}.contact-page{max-width:570px;margin:12px auto}.contact-postmark{font-size:42px;color:var(--mint);margin-bottom:20px}.contact-directory{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:36px}.contact-directory a{color:var(--pink);text-decoration:none;font-size:17px}.contact-directory a:hover{text-decoration:underline}[data-theme=dark] .single-page-site .sketch-dialog{background:#2b2932f5;border-color:#77717e70;box-shadow:0 28px 90px #0007,inset 0 1px #ffffff18}[data-theme=dark] .sketch-window-bar{background:#3a37414d;border:0;box-shadow:none}@media(max-width:580px){.single-page-site .sketch-dialog-content{padding:24px}.project-gallery{grid-template-columns:1fr;gap:30px}.window-about{grid-template-columns:1fr;padding-top:10px}.about-monogram{width:65px;height:72px;font-size:52px}.skill-items{grid-template-columns:repeat(2,minmax(0,1fr))}.experience-entry{grid-template-columns:1fr}.experience-heading{display:block}.contact-directory{grid-template-columns:1fr}}.single-page-site .sketch-dialog[data-section=projects]{width:min(1120px,calc(100vw - 40px))}.project-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.single-page-site .project-file{padding:22px;border-radius:14px;background:#fff;border:1px solid #e8e4ed;box-shadow:0 3px 10px #39234606;transition:transform .2s,box-shadow .2s}.project-file:hover{transform:translateY(-3px);box-shadow:0 8px 20px #3923460d}.single-page-site .project-file h3{font-size:21px;margin:8px 0 12px}.single-page-site .project-file .project-discipline{color:var(--accent);font-size:11px}.project-file .tool-labels{gap:7px;margin:18px 0}.project-file .tool-labels span{padding:4px 7px;border-radius:5px;background:color-mix(in srgb,var(--accent) 9%,transparent);font-size:11px}.project-repository{margin:18px 0 5px}.project-repository a{font-size:14px;font-weight:600;color:var(--pink);text-decoration:none}.project-repository a:hover{text-decoration:underline}.project-file summary{font-size:12px;color:var(--spring-muted)}[data-theme=dark] .single-page-site .project-file{background:#333039;border-color:#49434f;box-shadow:0 3px 10px #0001}@media(max-width:950px){.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.project-gallery{grid-template-columns:1fr}.single-page-site .sketch-dialog[data-section=projects]{width:calc(100vw - 20px)}}@media(prefers-reduced-motion:reduce){.project-file{transition:none}.project-file:hover{transform:none}}.project-gallery{gap:34px 28px}.single-page-site .project-file,[data-theme=dark] .single-page-site .project-file{padding:0 0 12px;background:none;border:0;border-radius:0;box-shadow:none;transform:none}.project-file:hover{transform:none;box-shadow:none}.project-art{--art-color: #aa82b8;--art-paper: #fff8ec;--art-ink: #6f527b;background:radial-gradient(ellipse at 50% 60%,#e4d6ed80,transparent 70%);margin:0 0 14px}.project-file:nth-child(3n+2) .project-art{--art-color: #729b79;--art-ink: #45674c;background:radial-gradient(ellipse at 50% 60%,#d6e5d880,transparent 70%)}.project-file:nth-child(3n) .project-art{--art-color: #d39977;--art-ink: #916546;background:radial-gradient(ellipse at 50% 60%,#f0dfcf80,transparent 70%)}.project-art svg{width:100%;height:auto;display:block;overflow:visible}.project-art-object{filter:drop-shadow(0 6px 3px #3f254518);transform-origin:150px 100px;transition:transform .4s cubic-bezier(.2,.8,.2,1)}.project-file:hover .project-art-object,.project-file:focus-within .project-art-object{transform:translateY(-5px) rotate(-2deg)}.single-page-site .project-file h3{font-size:22px;letter-spacing:-.6px}.project-file .tool-labels{gap:6px 13px}.project-file .tool-labels span{padding:0;background:none;border-radius:0;font-size:12px}.project-repository{margin-top:14px}.project-repository a{display:inline-block;border-bottom:1px solid color-mix(in srgb,var(--pink),transparent 65%);padding-bottom:3px}[data-theme=dark] .project-art{--art-paper: #e9dfea;--art-ink: #513c59;background:radial-gradient(ellipse at 50% 60%,#77628135,transparent 70%)}[data-theme=dark] .project-file:nth-child(3n+2) .project-art{--art-paper: #e1eadf;background:radial-gradient(ellipse at 50% 60%,#617a6430,transparent 70%)}[data-theme=dark] .project-file:nth-child(3n) .project-art{--art-paper: #f0e3d9;background:radial-gradient(ellipse at 50% 60%,#92745e30,transparent 70%)}@media(prefers-reduced-motion:reduce){.project-art-object{transition:none}.project-file:hover .project-art-object,.project-file:focus-within .project-art-object{transform:none}}.evening-sky{background:radial-gradient(ellipse at 70% 0%,#2b3038,transparent 65%),linear-gradient(#17191c,#1c1f22)}.single-page-site .sketch-dialog{background:#fcfcfaf5;border-color:#ffffffa0}.sketch-window-bar{background:#eff0ee80}[data-theme=dark] .single-page-site .sketch-dialog{background:#24272af7;border-color:#60666c70}[data-theme=dark] .sketch-window-bar{background:#30343880}.about-monogram{background:linear-gradient(135deg,#dcad8a,#bd785d);box-shadow:inset 0 2px 2px #fff8,0 12px 24px #bd785d24}.company-mark{background:#eadfd5;color:#8c6245}.skill-symbol{background:linear-gradient(145deg,#f1e1cc,#d1b187);color:#78562e}.project-art{--art-color: #c78d66;--art-ink: #81563c;background:radial-gradient(ellipse at 50% 60%,#edddca80,transparent 70%)}[data-theme=dark] .project-art{--art-paper: #ebe5db;--art-ink: #785337;background:radial-gradient(ellipse at 50% 60%,#8a715035,transparent 70%)}.project-gallery{gap:16px;align-items:start}.single-page-site .project-file,[data-theme=dark] .single-page-site .project-file{--category: #a66d45;--category-ink: #815130;padding:15px 16px 12px;border:1px solid color-mix(in srgb,var(--category) 17%,transparent);border-radius:10px;background:color-mix(in srgb,var(--category) 3%,transparent);box-shadow:none}.single-page-site .project-file[data-category=Agents]{--category: #bf765b;--category-ink: #965039}.single-page-site .project-file[data-category="Machine Learning"]{--category: #6b9774;--category-ink: #476c4e}.single-page-site .project-file[data-category="Software Engineering"]{--category: #b28a40;--category-ink: #806223}.single-page-site .project-file[data-category="Data Engineering"]{--category: #548e91;--category-ink: #396e71}.single-page-site .project-file[data-category="Recommendation Systems"]{--category: #b7758b;--category-ink: #95546a}.single-page-site .project-file[data-category="Data Science"]{--category: #7d88a0;--category-ink: #59657f}.single-page-site .project-file .project-art{--art-color: var(--category);--art-ink: var(--category-ink);background:radial-gradient(ellipse at 50% 60%,color-mix(in srgb,var(--category) 12%,transparent),transparent 70%);max-width:220px;margin:0 auto 8px}.single-page-site .project-file .project-discipline{color:var(--category-ink);display:flex;align-items:center;gap:7px;font-size:11px}.project-discipline:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--category);flex-shrink:0}.single-page-site .project-file h3{font-size:20px;margin:6px 0 9px}.single-page-site .project-file p{font-size:14px;line-height:1.6}.project-file .tool-labels{margin:12px 0;gap:5px 10px}.project-file .tool-labels span{font-size:11px}.project-repository{margin:12px 0 2px}[data-theme=dark] .single-page-site .project-file{background:color-mix(in srgb,var(--category) 4%,transparent);border-color:color-mix(in srgb,var(--category) 24%,transparent)}[data-theme=dark] .single-page-site .project-file .project-discipline{color:color-mix(in srgb,var(--category) 65%,white)}.folder-instruction{color:var(--spring-muted);margin:0 0 30px!important;font-size:13px!important}.project-gallery{gap:34px 22px;grid-template-columns:repeat(2,minmax(0,1fr))}.single-page-site .project-file,[data-theme=dark] .single-page-site .project-file{position:relative;padding:16px 16px 10px;margin-top:14px;border:0;border-radius:0 12px 12px;background:var(--category);color:#242421;box-shadow:0 5px 10px #00000012;perspective:900px}.folder-tab{position:absolute;left:0;top:-21px;height:23px;padding:6px 15px 0;border-radius:9px 12px 0 0;background:var(--category);color:#20221f;font-size:10px;font-weight:600}.single-page-site .project-file[data-category=Agents]{--category: #dda98d}.single-page-site .project-file[data-category="Machine Learning"]{--category: #a6c3a1}.single-page-site .project-file[data-category="Software Engineering"]{--category: #dec087}.single-page-site .project-file[data-category="Data Engineering"]{--category: #96bfbb}.single-page-site .project-file[data-category="Recommendation Systems"]{--category: #d6a7b7}.single-page-site .project-file[data-category="Data Science"]{--category: #aab9ce}.folder-cover{transform-origin:top;transition:transform .48s cubic-bezier(.2,.8,.2,1);background:var(--category);position:relative;z-index:1}.folder-open .folder-cover{transform:rotateX(-8deg) translateY(-3px)}.single-page-site .project-file h3{color:#252723;font-size:21px;margin:0 0 14px;min-height:52px}.folder-overview{display:grid;grid-template-columns:minmax(0,1fr) 95px;gap:12px;align-items:center}.folder-preview{display:block;position:relative;background:#faf6ef;border-radius:5px;box-shadow:0 3px 6px #0002;text-decoration:none;transform:rotate(-2deg);transition:transform .25s;overflow:hidden}.folder-preview:hover{transform:rotate(0) translateY(-3px)}.single-page-site .folder-preview .project-art{margin:0;max-width:none;background:#faf6ef;--art-paper: #fff;--art-color: var(--category-ink)}.folder-preview>span{display:block;padding:2px 10px 8px;font-size:11px;color:#46423b}.folder-overview .tool-labels{display:flex;flex-direction:column;gap:9px;margin:0;color:#30352e}.folder-overview .tool-labels span{font-size:12px;font-weight:500}.folder-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 0 3px;border:0;background:none;color:#30352e;font-size:12px;font-weight:600;cursor:pointer}.folder-details{background:#fffaf1;color:#383b35;margin:12px -6px 0;padding:16px;border-radius:4px 4px 8px 8px;box-shadow:0 -3px 7px #0000000b;animation:folder-page-in .35s ease-out}.folder-details[hidden]{display:none}.folder-details a{font-size:13px;color:#75462e}.folder-details h4{margin:18px 0 6px}@keyframes folder-page-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1050px){.project-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.folder-overview{grid-template-columns:minmax(0,1fr) 80px}}@media(max-width:580px){.project-gallery{grid-template-columns:1fr}.single-page-site .project-file h3{min-height:0}}@media(prefers-reduced-motion:reduce){.folder-cover,.folder-preview{transition:none}.folder-details{animation:none}.folder-open .folder-cover{transform:none}}.project-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 16px}.single-page-site .project-file,[data-theme=dark] .single-page-site .project-file{padding:12px 12px 8px}.single-page-site .project-file h3{font-size:18px;line-height:1.3;min-height:46px;margin-bottom:9px}.folder-overview{grid-template-columns:minmax(0,1fr) 76px;gap:9px}.folder-preview{max-width:170px;width:100%;justify-self:center}.folder-overview .tool-labels{gap:7px}.folder-overview .tool-labels span{font-size:11px}.folder-tab{font-size:9px;padding-right:12px;padding-left:12px}.folder-toggle{padding-top:12px;font-size:11px}@media(max-width:800px){.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.project-gallery{grid-template-columns:1fr}.single-page-site .project-file h3{min-height:0}.folder-overview{grid-template-columns:minmax(0,1fr) 95px}}.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 22px}.project-file[hidden]{display:none!important}.single-page-site .project-file h3{font-size:20px;min-height:0;margin-bottom:8px}.folder-cover>.tool-labels{display:flex;flex-direction:row;flex-wrap:wrap;gap:5px 12px;margin:0 0 16px;color:#384036}.folder-cover>.tool-labels span{font-size:11px}.folder-overview{grid-template-columns:minmax(100px,.9fr) minmax(0,1.2fr);gap:15px;align-items:start}.single-page-site .project-file .folder-gist{font-size:13px;line-height:1.6;margin:0;color:#30352e}.folder-preview{max-width:180px}.project-filter{display:flex;align-items:center;gap:14px;margin-bottom:12px}.project-filter label{font-size:13px;color:var(--spring-muted)}.project-filter select{font:inherit;font-size:13px;color:var(--spring-ink);background:var(--spring-paper);border:1px solid color-mix(in srgb,var(--spring-muted) 35%,transparent);border-radius:7px;padding:8px 30px 8px 12px;max-width:100%;cursor:pointer}@media(max-width:580px){.project-gallery{grid-template-columns:1fr}.folder-overview{grid-template-columns:minmax(95px,.8fr) minmax(0,1.2fr)}.project-filter{flex-wrap:wrap}}.folder-copy{min-width:0;display:flex;flex-direction:column;gap:12px}.single-page-site .project-file .folder-gist{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;overflow:hidden}.folder-tool-logos{display:flex;flex-wrap:wrap;align-items:center;gap:12px;min-height:28px}.folder-tool-logos>span{position:relative;display:inline-flex;align-items:center}.folder-tool-logos img{width:25px;height:25px;object-fit:contain;display:block}.folder-tool-logos .tool-text{font-size:10px;color:#30352e;line-height:1.3}.tool-tooltip{display:none;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);background:#25282b;color:#fff;padding:5px 8px;border-radius:4px;white-space:nowrap;font-size:11px;z-index:3}.folder-tool-logos>span:hover .tool-tooltip,.folder-tool-logos>span:focus-visible .tool-tooltip{display:block}@media(max-width:580px){.single-page-site .project-file .folder-gist{-webkit-line-clamp:6}}.project-filter{display:flex;flex-wrap:wrap;gap:7px 14px;margin-bottom:18px}.project-category-tag{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:7px 0;color:var(--spring-muted);font:500 12px/1.4 -apple-system,BlinkMacSystemFont,sans-serif;cursor:pointer;transition:color .2s,border-color .2s}.project-category-tag:hover{color:var(--spring-ink)}.project-category-tag[aria-pressed=true]{color:var(--accent);border-bottom-color:var(--accent)}.project-category-tag:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.single-page-site .sketch-introduction em{color:#387d53}.single-page-site .sketch-introduction .sketch-color{position:relative;display:inline-block;color:#bb477a;font-weight:500;padding:0 .13em;text-shadow:0 2px 9px #d66c962e;isolation:isolate}.single-page-site .sketch-introduction .sketch-color:after{content:"";position:absolute;inset:.02em -.12em -.04em;border:1.5px solid #ce6a95;border-radius:48% 53% 46% 51%;transform:rotate(-9deg);box-shadow:0 0 9px #dd7da51c;pointer-events:none;z-index:-1}[data-theme=dark] .single-page-site .sketch-introduction em{color:#8dc69b}[data-theme=dark] .single-page-site .sketch-introduction .sketch-color{color:#f295bf;text-shadow:0 0 12px #ef78ad35}[data-theme=dark] .single-page-site .sketch-introduction .sketch-color:after{border-color:#da82aa;box-shadow:0 0 10px #ef78ad20}.single-page-site .sketch-introduction .sketch-color:after{content:none}.single-page-site .sketch-introduction .sketch-color{--drawably-ink: currentColor;--drawably-stroke: currentColor}.single-page-site .sketch-introduction .sketch-underline{color:inherit;--drawably-ink: var(--peach);--drawably-stroke: var(--peach)}.single-page-site .sketch-introduction .name-pop{font-family:inherit;font-style:normal;font-weight:500;position:relative;display:inline-block;margin:0 .1em}.name-spark{position:absolute;width:.38em;height:.7em;top:.25em;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;opacity:.7;pointer-events:none}.name-spark-left{right:calc(100% + .04em)}.name-spark-right{left:calc(100% + .02em)}.single-page-site .sketch-introduction .sketch-color{line-height:.85;vertical-align:baseline;padding:0 .05em;margin:0 .12em;--drawably-ink: #b98036;--drawably-stroke: #b98036}[data-theme=dark] .single-page-site .sketch-introduction .sketch-color{--drawably-ink: #e2b36d;--drawably-stroke: #e2b36d}.single-page-site .sketch-introduction .sketch-color>.drawably-svg{transform:rotate(-7deg);filter:none}.single-page-site .sketch-introduction .sketch-color{line-height:inherit;padding:0;margin:0}.single-page-site .sketch-introduction .sketch-color>.drawably-svg{transform:none}.single-page-site .sketch-introduction .sketch-underline{color:#946414}[data-theme=dark] .single-page-site .sketch-introduction .sketch-underline{color:#f0d477}.single-page-site .sketch-introduction .sketch-underline{color:#8254a5;--drawably-ink: #bf7155;--drawably-stroke: #bf7155}[data-theme=dark] .single-page-site .sketch-introduction .sketch-underline{color:#f0d477;--drawably-ink: #81b6ed;--drawably-stroke: #81b6ed}.single-page-site .sketch-introduction .sketch-underline{--drawably-ink: #368b97;--drawably-stroke: #368b97}[data-theme=dark] .single-page-site .sketch-introduction .sketch-underline{--drawably-ink: #81b6ed;--drawably-stroke: #81b6ed}.meadow-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.desktop-site.single-page-site .sketch-contact{position:fixed;left:50%;bottom:-4px;top:auto;margin:0;padding:0;translate:-50% 0;transform:none;gap:0;z-index:2}.single-page-site .sketch-contact>span{position:absolute;bottom:100%;left:50%;translate:-50% 0;white-space:nowrap;margin-bottom:2px}.desktop-site.single-page-site .sketch-contact{bottom:30px}.single-page-site .sketch-contact>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.mailbox-invitation{position:fixed;left:calc(50% + 51px);bottom:79px;z-index:2;pointer-events:none;color:#537645;transform:rotate(-5deg)}.mailbox-invitation span{font:22px Caveat,cursive;white-space:nowrap}.mailbox-invitation svg{display:block;width:125px;height:48px;margin-left:-27px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}[data-theme=dark] .mailbox-invitation{color:#a5bf88}@media(min-width:901px)and (min-height:721px){.desktop-site.single-page-site .sketch-introduction{transform:translateY(48px)}}@media(max-width:580px){.mailbox-invitation{left:calc(50% + 29px);bottom:60px}.mailbox-invitation span{font-size:17px}.mailbox-invitation svg{width:85px;height:36px;margin-left:-18px}}.single-page-site .sketch-introduction em.name-pop{color:#202122}[data-theme=dark] .single-page-site .sketch-introduction em.name-pop{color:#eeeef0}.single-page-site .sketch-introduction .sketch-underline,[data-theme=dark] .single-page-site .sketch-introduction .sketch-underline{--drawably-ink: #e6bd39;--drawably-stroke: #e6bd39}.mailbox-invitation{transform:none}.single-page-site .mailbox-invitation span{font:400 14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:.01em}@media(min-width:901px){.single-page-site .sketch-about{translate:28px 0}.single-page-site .sketch-experience{translate:-28px 0}}@media(min-width:581px)and (max-width:900px){.single-page-site .sketch-about{translate:12px 0}.single-page-site .sketch-experience{translate:-12px 0}}@media(max-width:580px){.single-page-site .mailbox-invitation span{font-size:11px}}@media(min-width:901px){.single-page-site .sketch-about{translate:60px 0}.single-page-site .sketch-experience{translate:-60px 0}}@media(min-width:581px)and (max-width:900px){.single-page-site .sketch-about{translate:24px 0}.single-page-site .sketch-experience{translate:-24px 0}}.mailbox-invitation{left:calc(50% + 40px);bottom:82px}.mailbox-invitation svg{width:110px;height:49px;margin:3px 0 0 -27px;transform:rotate(8deg);transform-origin:top right}.single-page-site .sketch-introduction .sketch-color{color:#a63967;--drawably-ink: #d995ac;--drawably-stroke: #d995ac;text-shadow:none}.single-page-site .sketch-introduction .sketch-underline{color:#665083;--drawably-ink: #c9a235;--drawably-stroke: #c9a235}[data-theme=dark] .single-page-site .sketch-introduction .sketch-color{color:#f2a6c3;--drawably-ink: #ba6b88;--drawably-stroke: #ba6b88;text-shadow:none}[data-theme=dark] .single-page-site .sketch-introduction .sketch-underline{color:#e7cf86;--drawably-ink: #9e90c5;--drawably-stroke: #9e90c5}@media(max-width:580px){.mailbox-invitation{left:calc(50% + 29px);bottom:64px}.mailbox-invitation svg{width:85px;height:38px;margin-left:-20px}}.single-page-site .mailbox-invitation,[data-theme=dark] .single-page-site .mailbox-invitation{color:var(--spring-ink)}.single-page-site .mailbox-invitation svg{transform:rotate(-12deg);stroke-dasharray:1 5;stroke-linecap:round}.single-page-site .mailbox-invitation svg{margin-top:-5px}.cloud-four{left:39%;top:7%;--cloud-scale: .52;opacity:.48;animation-duration:57s;animation-delay:-31s}.cloud-five{left:3%;top:62%;--cloud-scale: .58;opacity:.45;animation-duration:63s;animation-delay:-17s}.cloud-six{right:4%;top:74%;--cloud-scale: .72;opacity:.5;animation-duration:51s;animation-delay:-22s}.sky-bee{position:absolute;left:16%;top:41%;width:29px;height:24px;animation:bee-wander 19s ease-in-out infinite}.sky-bee svg{width:100%;height:100%;overflow:visible}.bee-wings{transform-box:fill-box;transform-origin:50% 90%;animation:bee-flutter .12s ease-in-out infinite alternate}@keyframes bee-flutter{to{transform:scaleY(.45) rotate(8deg)}}@keyframes bee-wander{0%,to{transform:translate(0) rotate(-9deg)}25%{transform:translate(38px,-22px) rotate(6deg)}50%{transform:translate(68px,9px) rotate(-5deg)}75%{transform:translate(22px,25px) rotate(8deg)}}.evening-sky{background:#1b1e21}.shooting-star{position:absolute;left:72%;top:17%;width:65px;height:1px;background:linear-gradient(90deg,transparent,#dbe6e5);border-radius:50%;opacity:0;animation:star-streak 23s linear infinite}@keyframes star-streak{0%,88%,to{opacity:0;transform:translate(0) rotate(145deg)}89%{opacity:.65}94%{opacity:0;transform:translate(-170px,119px) rotate(145deg)}}@media(max-width:580px){.cloud-four{--cloud-scale: .35}.cloud-five{display:none}.cloud-six{--cloud-scale: .4;right:-55px}.sky-bee{left:7%;top:32%;width:22px;animation-duration:24s}.sky-star:nth-child(n+42){display:none}}@media(prefers-reduced-motion:reduce){.sky-bee,.bee-wings{animation:none}.shooting-star{display:none}}.sky-star{animation-duration:var(--twinkle, 7s)}.sky-star:nth-child(5n){width:3px;height:3px}.sky-star:nth-child(11n){width:4px;height:4px;filter:drop-shadow(0 0 3px #dbe7ea70)}.shooting-star-second{left:37%;top:9%;animation-duration:37s;animation-delay:-13s;width:42px}.sky-garden{position:absolute;inset:0;pointer-events:none}.garden-flowers{position:absolute;width:95px;height:82px;bottom:29px;overflow:visible}.flowers-left{left:25px}.flowers-right{right:25px}.garden-bee{position:absolute;left:0;top:0;width:26px;height:22px;will-change:transform}.garden-bee svg{width:100%;height:100%;overflow:visible}.bee-resting .bee-wings{animation-play-state:paused;opacity:.7}[data-theme=dark] .garden-flowers{filter:brightness(.68) saturate(.75)}.garden-firefly{position:absolute;width:2px;height:2px;border-radius:50%;background:#d4dba3;box-shadow:0 0 6px 2px #bdcf7730;opacity:0;animation:firefly-drift 13s ease-in-out var(--delay) infinite}@keyframes firefly-drift{0%,to{opacity:0;translate:0 0}35%{opacity:.55}60%{opacity:.12;translate:8px -12px}80%{opacity:.4;translate:-4px -7px}}@media(max-width:580px){.garden-flowers{width:65px;height:56px;bottom:32px}.flowers-left{left:9px}.flowers-right{right:9px}.garden-bee{width:22px;height:19px}.garden-bee:nth-last-child(1){display:none}}@media(prefers-reduced-motion:reduce){.garden-bee{will-change:auto}.garden-firefly{animation:none;opacity:.3}}.bee-trails{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.bee-trails polyline{fill:none;stroke:#778361;stroke-width:1.2;stroke-dasharray:1 6;stroke-linecap:round;stroke-linejoin:round;transition:opacity .6s}@media(prefers-reduced-motion:reduce){.bee-trails{display:none}}.garden-flight-layer{position:fixed;inset:0;z-index:2;pointer-events:none;overflow:hidden}[data-theme=dark] .garden-flight-layer{display:none}.garden-flowers{filter:drop-shadow(0 2px 1px #314d2520)}[data-theme=dark] .garden-flowers{filter:brightness(.96) saturate(.95) drop-shadow(0 0 4px #eccf9c16)}.cursor-pollen{position:fixed;z-index:8;width:3px;height:3px;border-radius:50%;background:#a68b50;pointer-events:none}[data-theme=dark] .cursor-pollen{background:#ddd3a0;box-shadow:0 0 3px #ddd3a025}[data-theme=dark] .sky-garden{display:none}.single-page-site .sketch-dialog[data-section=about]{background:#fcfbf7}.single-page-site .sketch-dialog[data-section=about] .sketch-dialog-content{padding:32px clamp(24px,6vw,68px) 48px}.about-note{max-width:660px;margin:0 auto;text-align:left}.note-location{display:flex;align-items:center;gap:7px;margin:0 0 22px;color:#8a7435;font:500 12px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.note-location svg{width:21px;height:21px;flex:none}.single-page-site .about-note h3{margin:0 0 24px;font:650 clamp(27px,3vw,32px)/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-.7px;color:#282923}.single-page-site .about-note .note-body p{margin:0 0 24px;font:400 17px/1.8 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0;color:#45453f;max-width:none}.single-page-site .about-note .note-body p:last-child{margin-bottom:0}[data-theme=dark] .single-page-site .sketch-dialog[data-section=about]{background:#242523}[data-theme=dark] .single-page-site .about-note h3{color:#f1f0e9}[data-theme=dark] .single-page-site .about-note .note-body p{color:#d4d3ca}[data-theme=dark] .note-location{color:#d1b967}@media(max-width:580px){.single-page-site .sketch-dialog[data-section=about] .sketch-dialog-content{padding:24px 24px 36px}.single-page-site .about-note .note-body p{font-size:16px;line-height:1.75}}.about-note{position:relative;isolation:isolate}.about-note:before{content:"";position:absolute;inset:45px -20px 0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 10% 20%,#efd6b32b,transparent 55%),radial-gradient(ellipse at 90% 60%,#e1bdcf25,transparent 55%);animation:note-wash 18s ease-in-out infinite alternate}.single-page-site .about-note .note-body p{font-size:16px;line-height:1.8}.single-page-site .about-note h3{margin-bottom:10px}.note-sketches{position:relative;display:flex;align-items:center;gap:15px;margin:0 0 23px;padding:0 0 4px;max-width:410px}.note-picture{width:76px;height:70px;flex:none;transform:rotate(-4deg)}.note-picture:nth-child(2){width:63px;transform:rotate(3deg)}.note-picture:nth-child(3){transform:rotate(5deg)}.note-curl{width:105px;height:40px;align-self:flex-end;margin:0 0 5px 6px;fill:none;stroke:#a7869c;stroke-width:1.4;stroke-linecap:round;opacity:.55;transform:rotate(-8deg)}[data-theme=dark] .note-picture{filter:brightness(.92)}[data-theme=dark] .note-curl{stroke:#d1adc6}[data-theme=dark] .about-note:before{opacity:.4}@keyframes note-wash{0%{transform:translateY(-7px) scale(.97)}to{transform:translateY(12px) scale(1.03)}}@media(max-width:580px){.single-page-site .about-note .note-body p{font-size:15px}.note-sketches{gap:8px}.note-picture{width:65px;height:60px}.note-curl{width:65px;margin-left:0}}@media(prefers-reduced-motion:reduce){.about-note:before{animation:none}}.note-passage{display:flow-root;margin:0 0 25px}.note-passage:last-child{margin-bottom:0}.note-margin-art{float:right;margin:4px 0 10px 20px;width:77px;height:77px}.note-passage:nth-child(2) .note-margin-art{float:left;margin:4px 20px 10px 0}.note-margin-art .note-picture{width:100%;height:100%}.single-page-site .about-note .note-body .note-passage p{margin:0}.note-highlight{color:inherit;background:linear-gradient(transparent 35%,#e9d8a365 35%,#e9d8a365 92%,transparent 92%);padding:0 .06em;border-radius:2px}.note-highlight-rose{background:linear-gradient(transparent 35%,#e5bfd15c 35%,#e5bfd15c 92%,transparent 92%)}.note-ink-line{text-decoration:underline;text-decoration-color:#a18ab8;text-decoration-thickness:1.5px;text-underline-offset:4px;text-decoration-skip-ink:auto}.note-emphasis{font-style:italic;color:inherit}[data-theme=dark] .note-highlight{background:linear-gradient(transparent 35%,#b39a4938 35%,#b39a4938 92%,transparent 92%)}[data-theme=dark] .note-highlight-rose{background:linear-gradient(transparent 35%,#c18caa33 35%,#c18caa33 92%,transparent 92%)}[data-theme=dark] .note-ink-line{text-decoration-color:#b5a2cb}@media(max-width:580px){.note-margin-art{width:58px;height:62px;margin-left:12px}.note-passage:nth-child(2) .note-margin-art{margin-right:12px}}.career-timeline{list-style:none;margin:0 auto;padding:4px 0;max-width:780px}.career-stop{--career-accent: #956b45;position:relative;display:grid;grid-template-columns:135px minmax(0,1fr);gap:30px;padding-bottom:32px;animation:career-arrive .5s ease both;animation-delay:calc(var(--stop-index) * 90ms)}.career-stop-1{--career-accent: #a85475}.career-stop-2{--career-accent: #4c8069}.career-stop:last-child{padding-bottom:0}.career-stop:before{content:"";position:absolute;left:149px;top:12px;bottom:-12px;border-left:1px solid color-mix(in srgb,var(--spring-ink) 17%,transparent)}.career-stop:last-child:before{display:none}.career-stop:after{content:"";position:absolute;left:145px;top:9px;width:9px;height:9px;border-radius:50%;background:var(--career-accent);box-shadow:0 0 0 4px var(--spring-paper, #faf9f6)}.career-date{padding-top:5px;font:500 13px/1.5 -apple-system,BlinkMacSystemFont,sans-serif;color:var(--spring-muted)}.career-current{display:block;margin-top:7px;font-size:11px;color:var(--career-accent)}.career-story{min-width:0}.career-story header{display:flex;align-items:center;justify-content:space-between;gap:16px}.single-page-site .career-story h3{font:650 22px/1.25 -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:-.5px;margin:0}.single-page-site .career-story .career-role{font-size:13px;line-height:1.5;margin:5px 0 12px;color:var(--career-accent)}.career-sketch{flex:none;width:49px;height:49px;color:var(--career-accent);stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transform:rotate(-5deg)}.single-page-site .career-contributions p{font-size:15px;line-height:1.75;margin:0 0 9px}.career-topics{list-style:none;display:flex;flex-wrap:wrap;gap:5px 15px;padding:3px 0 0;margin:0;color:var(--career-accent);font-size:12px;line-height:1.7}.career-topics li{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--career-accent) 35%,transparent);text-underline-offset:4px}[data-theme=dark] .career-stop{--career-accent: #d6ac79}[data-theme=dark] .career-stop-1{--career-accent: #e49ab6}[data-theme=dark] .career-stop-2{--career-accent: #91bda4}[data-theme=dark] .career-stop:after{box-shadow:0 0 0 4px #242523}@keyframes career-arrive{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@media(max-width:580px){.career-stop{display:block;padding:0 0 30px 23px}.career-stop:before{left:4px;top:12px}.career-stop:after{left:0;top:8px}.career-date{padding:0 0 10px;font-size:12px}.career-current{display:inline;margin-left:10px}.single-page-site .career-story h3{font-size:21px}.career-sketch{width:42px;height:42px}}@media(prefers-reduced-motion:reduce){.career-stop{animation:none}}.toolkit-notebook{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 42px;max-width:780px;margin:0 auto;padding:8px 0 16px}.toolkit-chapter{--tool-ink: #80619c;position:relative;min-width:0;animation:career-arrive .5s ease both;animation-delay:calc(var(--chapter) * 70ms)}.toolkit-chapter-1{--tool-ink: #a65372}.toolkit-chapter-2{--tool-ink: #48836e}.toolkit-chapter-3{--tool-ink: #a27037}.toolkit-chapter header{display:flex;align-items:center;gap:12px}.toolkit-chapter header svg{width:39px;height:39px;flex:none;stroke:var(--tool-ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transform:rotate(-5deg)}.single-page-site .toolkit-chapter h3{font:650 21px/1.3 -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:-.4px;margin:0;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--tool-ink) 35%,transparent);text-decoration-thickness:3px;text-underline-offset:6px}.single-page-site .toolkit-chapter .toolkit-context{font-size:14px;line-height:1.7;color:var(--spring-muted);margin:12px 0 17px;max-width:32ch}.toolkit-tools{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.toolkit-tools li{display:flex;align-items:center;gap:9px;font-size:14px;line-height:1.5;min-width:0;transition:transform .25s ease}.toolkit-tools img{object-fit:contain;flex:none;filter:drop-shadow(0 1px 1px #0001)}.toolkit-dot{width:23px;height:23px;flex:none;display:grid;place-items:center}.toolkit-dot:before{content:"";width:7px;height:7px;background:var(--tool-ink);border-radius:42% 58% 55% 45%;transform:rotate(-15deg)}@media(hover:hover){.toolkit-tools li:hover{transform:translateY(-2px)}}[data-theme=dark] .toolkit-chapter{--tool-ink: #b8a1d4}[data-theme=dark] .toolkit-chapter-1{--tool-ink: #e19ab5}[data-theme=dark] .toolkit-chapter-2{--tool-ink: #93c3ae}[data-theme=dark] .toolkit-chapter-3{--tool-ink: #d7b47d}@media(max-width:620px){.toolkit-notebook{grid-template-columns:1fr;gap:32px}.single-page-site .toolkit-chapter .toolkit-context{max-width:none}.toolkit-tools{max-width:380px}}@media(prefers-reduced-motion:reduce){.toolkit-chapter{animation:none}.toolkit-tools li{transition:none}}.toolkit-chapter-4{--tool-ink: #50798b}.toolkit-chapter-5{--tool-ink: #997046}[data-theme=dark] .toolkit-chapter-4{--tool-ink: #99bccd}[data-theme=dark] .toolkit-chapter-5{--tool-ink: #d7b58c}.toolkit-tools li>span:last-child{overflow-wrap:anywhere}.toolkit-exploring{max-width:780px;margin:26px auto 8px;padding-top:12px}.single-page-site .toolkit-exploring>h3{font-size:22px;letter-spacing:-.4px;margin:0 0 23px;text-decoration:underline;text-decoration-color:#c8a15c;text-underline-offset:7px;text-decoration-thickness:3px}.exploring-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 42px}.single-page-site .exploring-grid h4{font-size:15px;font-weight:600;margin:0 0 7px;color:var(--spring-ink)}.single-page-site .exploring-grid p{font-size:14px;line-height:1.75;color:var(--spring-muted);margin:0}@media(max-width:620px){.exploring-grid{grid-template-columns:1fr;gap:20px}}[data-theme=dark] .toolkit-tools img.toolkit-monochrome{filter:invert(.88)}@media(max-width:580px){.single-page-site .sketch-stage{display:block}.single-page-site .sketch-introduction{position:fixed;left:16px;right:16px;top:45svh;width:auto;padding:0;translate:0 -50%}.single-page-site .sketch-about,.single-page-site .sketch-experience,.single-page-site .sketch-projects,.single-page-site .sketch-skills{position:fixed;width:84px;translate:-50% 0;margin:0}.single-page-site .sketch-about{left:23%;top:10svh}.single-page-site .sketch-experience{left:77%;top:10svh}.single-page-site .sketch-projects{left:23%;top:70svh}.single-page-site .sketch-skills{left:77%;top:70svh}.single-page-site .sketch-doodle>span{font-size:12px}}
