@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Instrument+Serif:ital@0;1&display=swap";:root{--paper:#f7f7f2;--ink:#252923;--muted:#6c7168;--line:#dedfd5;--green:#55704e;--serif:"Instrument Serif", Georgia, serif;--sans:"DM Sans", Arial, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{background:var(--paper);color:var(--ink);font:15px/1.65 var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:6px}a:hover{color:var(--green)}::selection{background:#d9e4ce}h1,h2,h3,p,figure{margin:0}h3{letter-spacing:-.3px;font-size:16px;font-weight:550}p+p{margin-top:17px}button{cursor:pointer}.site-header,main,footer{width:min(1080px,100% - 96px);margin-inline:auto}.site-header{justify-content:space-between;align-items:center;height:110px;display:flex}.brand{letter-spacing:-.4px;font-size:17px;font-weight:600;text-decoration:none}nav{gap:30px;display:flex}nav a{color:var(--muted);font-size:14px;text-decoration:none}.skip{z-index:99;background:var(--ink);color:#fff;padding:10px 20px;position:fixed;top:-80px;left:20px}.skip:focus{top:15px}.hero{padding-top:57px;padding-bottom:86px}.eyebrow{letter-spacing:1.65px;color:var(--muted);align-items:center;gap:10px;font-size:10px;font-weight:500;display:flex}.status-dot{background:var(--green);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #e8edde}h1{font-family:var(--serif);letter-spacing:-2.3px;font-size:88px;font-weight:400;line-height:1.01}.hero h1{margin-top:24px}em{color:var(--green);font-weight:400}.hero-bottom{grid-template-columns:38% 1fr;align-items:start;gap:30px;margin-top:65px;display:grid}.portrait{padding:0 0 0 12px}.photo-stack{width:240px;height:267px;position:relative;transform:rotate(-4deg)}.photo-stack:before,.photo-stack:after{content:"";background:#fff;border:1px solid #e5e5db;position:absolute;inset:0;box-shadow:0 6px 13px #1d2d1820}.photo-stack:before{transform:rotate(9deg)}.photo-stack:after{transform:rotate(-3deg)}.portrait-placeholder{z-index:1;color:#56604d;background:#e5e8dd;border:9px solid #fff;border-bottom-width:30px;flex-direction:column;justify-content:space-between;align-items:center;height:100%;padding:19px 10px 14px;display:flex;position:relative;box-shadow:0 5px 12px #1d2d1815}.frame-index{font:8px var(--sans);letter-spacing:1.1px}.monogram{font:112px/.9 var(--serif);letter-spacing:-9px;position:relative}.monogram>span{font:24px var(--sans);letter-spacing:0;position:absolute;top:-9px;right:-26px}.photo-label{color:#616a59;font-size:9px}figcaption{color:#888d80;letter-spacing:.1px;margin-top:25px;font-size:10px}figcaption span{margin:0 5px}.intro{max-width:600px;padding-top:0}.intro p{font-size:15px;line-height:1.8}.intro-links{gap:26px;padding-top:7px;display:flex}.intro-links a{font-size:13px}.intro-links span{margin-left:5px}.section{border-top:1px solid var(--line);grid-template-columns:38% 1fr;gap:30px;padding:44px 0 48px;display:grid}.section-label{color:var(--muted);font-size:13px;font-weight:400;line-height:1.55}.project{border-bottom:1px solid var(--line);grid-template-columns:155px 1fr;gap:22px;margin-bottom:31px;padding:0 0 33px;text-decoration:none;display:grid}.project:last-child{border:0;margin:0;padding-bottom:0}.project-heading{align-items:center;gap:9px;margin-top:-4px;margin-bottom:8px;display:flex}.project-heading>span:last-child{margin-left:auto;font-size:17px;transition:transform .2s}.project:hover .project-heading>span:last-child{transform:translate(2px,-2px)}.project h3{white-space:nowrap;font-size:16px}.project p{color:var(--muted);font-size:13px;line-height:1.75}.project-meta{color:#7d8277;margin-top:12px;font-size:10px;display:block}.project-meta>span{margin:0 5px}.badge{color:#626b58;white-space:nowrap;background:#eaece3;border-radius:3px;padding:2px 7px;font-size:9px;line-height:1.6}.latest{color:#526943;background:#e3ebd9}.cover{border-radius:3px;flex-direction:column;justify-content:center;align-items:center;height:111px;transition:transform .25s;display:flex;position:relative;overflow:hidden}.cover-body svg{width:100%;height:100%}.cover-clean{color:#eff3d9;background:#233f34}.cover-word{letter-spacing:-.8px;font-size:16px;font-weight:600;position:relative}.cover-word>span{font-weight:400}.cover-word i{background:#a5ba7e;width:8px;height:3px;position:absolute;top:-9px;right:0}.cover-lines{opacity:.5;align-items:end;gap:4px;width:94px;height:20px;margin-top:10px;display:flex}.cover-lines span{background:#b1c29b;flex:1;height:12px}.cover-lines span:nth-child(2){height:18px}.cover-lines span:nth-child(3){height:24px}.cover-talent{color:#465a8d;background:#e5eafb;gap:0}.talent-mark{font:64px/.8 var(--serif);letter-spacing:-10px;margin-left:-12px}.talent-mark span{font:28px var(--sans);letter-spacing:-8px}.cover-talent .cover-word{letter-spacing:-.4px;margin-top:9px;font-size:12px}.cover-coffee{color:#745b3d;background:#ece4d3}.cover-coffee svg{height:77px}.coffee-word{letter-spacing:2px;margin-top:-6px;font-size:9px}.experience+.experience{margin-top:29px}.entry-top{justify-content:space-between;align-items:baseline;gap:14px;display:flex}.date{color:#858a7f;white-space:nowrap;font-size:10px}.experience .role{color:var(--ink);margin-top:2px;font-size:12px}.experience p:not(.role){color:var(--muted);margin-top:6px;font-size:13px}.experience .stack,.stack{line-height:1.8;color:#888d82!important;font-size:11px!important}.experience .stack{margin-top:7px!important}.exploration{border-bottom:1px solid var(--line);padding:20px 0;position:relative}.exploration:first-child{padding-top:0}.exploration:last-child{border:0;padding-bottom:0}.exploration summary{cursor:pointer;justify-content:space-between;align-items:center;gap:15px;list-style:none;display:flex}.exploration summary::-webkit-details-marker{display:none}.exploration-title{flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;display:flex}.expand{color:#89907e;font-size:20px;font-weight:400}.exploration[open] .expand{transform:rotate(45deg)}.exploration>p{color:var(--muted);margin-top:8px;font-size:13px;display:block}.exploration:not([open])>p{display:none}.exploration-more{color:#888d82;border-left:2px solid #d9dfcd;margin-top:10px;padding-left:13px;font-size:12px}.about p,.contact p{color:var(--muted);font-size:14px;line-height:1.85}.contact-title{font:50px/1.05 var(--serif);letter-spacing:-.6px;margin:-6px 0 24px}.contact p{max-width:460px}.contact-email{align-items:center;gap:14px;margin-top:25px;display:flex}.contact-email>a{letter-spacing:-.4px;font-size:18px}.copy-email{color:#7c8471;background:0 0;border:0;border-radius:4px;place-items:center;width:28px;height:28px;display:grid}.copy-email svg{stroke:currentColor;fill:none;stroke-width:1.4px;width:15px;height:15px}.socials{align-items:center;gap:25px;margin-top:20px;font-size:12px;display:flex}.pending-link{color:#979c90}.small{font-size:9px;display:block}.copy-status{min-height:20px;color:var(--green);margin-top:8px;font-size:11px;display:block}.contact{padding-bottom:50px}footer{border-top:1px solid var(--line);color:#8a9082;justify-content:space-between;align-items:center;gap:20px;padding:25px 0 35px;font-size:10px;display:flex}footer a{text-decoration:none}.back-link{color:var(--muted);font-size:12px;text-decoration:none}.cover-caption{color:#929789;margin:10px 0 30px;font-size:10px}.decision-list{color:var(--muted);margin:0;padding-left:18px;font-size:15px;line-height:1.9}.decision-list li+li{margin-top:12px}.tags{flex-wrap:wrap;gap:8px;display:flex}.tags span{border:1px solid var(--line);color:var(--muted);border-radius:3px;padding:5px 12px;font-size:12px}.not-found{min-height:65vh;padding-top:100px}.not-found h1{margin:15px 0 25px}.not-found a{margin-top:25px;display:inline-block}@media (width>=1450px){.hero{padding-top:74px}.hero h1{font-size:98px}.hero-bottom{margin-top:72px}.hero{padding-bottom:100px}}@media (width<=1050px){.site-header,main,footer{width:calc(100% - 64px)}.hero h1{font-size:76px}.hero-bottom,.section{grid-template-columns:30% 1fr;gap:35px}.photo-stack{width:185px;height:220px}.monogram{font-size:90px}.frame-index{font-size:6px}.photo-label{font-size:8px}.project{grid-template-columns:135px 1fr;gap:18px}.cover{height:100px}.project-heading{flex-wrap:wrap;gap:6px}.project-heading h3{font-size:15px}.entry-top{flex-wrap:wrap;gap:2px}.date{margin-left:auto}}@media (width<=720px){.site-header,main,footer{width:calc(100% - 40px)}.site-header{height:84px}.brand{font-size:16px}nav{gap:20px}nav a{font-size:12px}.hero{padding-top:35px;padding-bottom:48px}.hero h1{letter-spacing:-1.5px;font-size:64px}.eyebrow{letter-spacing:1.2px;font-size:8px}.hero-bottom{grid-template-columns:1fr;gap:34px;margin-top:42px}.portrait{padding-left:5px}.photo-stack{width:165px;height:188px}.frame-index{font-size:5px}.monogram{font-size:74px}.portrait-placeholder{border-width:7px 7px 20px;padding-top:13px}.photo-label{font-size:7px}figcaption{margin-top:20px;font-size:9px}.intro p{font-size:14px;line-height:1.85}.intro-links{gap:25px}.section{grid-template-columns:1fr;gap:25px;padding:30px 0 36px}.section-label{font-size:12px}.section-label br{display:none}.project{grid-template-columns:118px 1fr;gap:17px;margin-bottom:25px;padding-bottom:25px}.cover{height:90px}.project-heading{gap:5px}.project-heading h3{font-size:15px}.project-heading .badge{font-size:8px}.project p{font-size:12px;line-height:1.75}.project-meta{font-size:9px}.project-heading>span:last-child{display:none}.cover-word{font-size:13px}.cover-coffee svg{height:65px}.cover-lines{width:75px}.coffee-word{font-size:7px}.experience p:not(.role){font-size:13px}.entry-top{flex-wrap:nowrap;justify-content:space-between;gap:10px}.date{font-size:9px}.entry-top h3{font-size:15px}.contact-title{font-size:45px}.contact-email>a{font-size:16px}footer{flex-wrap:wrap;gap:12px;font-size:9px}footer>span:nth-child(2){display:none}.decision-list{font-size:14px}}@media (width<=380px){.hero h1{font-size:55px}.project{grid-template-columns:1fr}.cover{height:165px}.cover-word{font-size:28px}.cover-coffee svg{height:110px}.project-heading h3{font-size:17px}.project p{font-size:13px}.contact-email>a{font-size:14px}.entry-top{flex-wrap:wrap}.date{margin-left:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{body{background:#fff;font-size:11px}.site-header,footer,.skip{display:none}a{color:inherit;text-decoration:none}}:root{--paper:#f7f9f7;--ink:#2c392b;--muted:#697a69;--line:#dfe6de;--green:#539d50}body{background-color:var(--paper);background-image:radial-gradient(680px 350px at 95% 2%,#e3f8e370,#0000),radial-gradient(500px 400px at 4% 16%,#e6efde60,#0000),radial-gradient(#afc7ae35 .7px,#0000 .7px);background-repeat:no-repeat,no-repeat,repeat;background-size:auto,auto,22px 22px}.site-header{-webkit-backdrop-filter:blur(18px);background:linear-gradient(#ffffffc4,#f1f6f1b5);border:1px solid #fff;border-radius:12px;gap:25px;height:68px;margin-top:22px;padding:0 24px;box-shadow:0 1px #b8cab83b,0 8px 28px #59835711,inset 0 1px 1px #fff}.brand{white-space:nowrap}nav{gap:9px;margin-left:auto}nav a{border:1px solid #0000;border-radius:6px;padding:5px 12px;transition:background .2s,border-color .2s}nav a:hover{color:#539451;background:#ffffffb3;border-color:#d7e6d7}.desktop-clock{color:#758775;font-variant-numeric:tabular-nums;border-left:1px solid #d0ddd070;align-items:center;gap:8px;padding-left:22px;font-size:10px;display:flex}.clock-place{color:#8b9c8a;letter-spacing:1px;font-size:8px}.connection-light{background:#87b47f;border-radius:50%;width:5px;height:5px;box-shadow:0 0 0 2px #e5ecde}.hero{padding-top:68px}.hero .eyebrow{color:#889d87}.status-dot{background:#7eb97c;box-shadow:0 0 0 4px #e9f4e8}.hero h1{letter-spacing:-2.1px}.hero h1 em{color:#5d9b5b}.intro p{color:#516250}.intro-links{flex-wrap:wrap;gap:12px}.intro-links a{color:#576f56;background:linear-gradient(#fff 0%,#f8fbf8 44%,#e8efe7 50%,#f1f5f1 100%);border:1px solid #afc4af;border-radius:999px;justify-content:center;align-items:center;gap:14px;padding:6px 17px;font-size:12px;text-decoration:none;transition:box-shadow .18s,transform .18s;display:inline-flex;box-shadow:inset 0 1px 1px #fff,0 2px 4px #8ba48a18}.intro-links a:hover{transform:translateY(-1px);box-shadow:inset 0 1px 1px #fff,0 4px 10px #70a46e3b}.intro-links a:active{transform:translateY(1px)}.portrait{padding:0 28px 0 0;position:relative}.profile-window{background:linear-gradient(125deg,#f6f8f6,#d8dfd8 55%,#f0f3f0);border:1px solid #9eab9e;border-radius:8px;width:265px;padding:5px;transform:rotate(-3deg);box-shadow:inset 0 1px 1px #fff,0 12px 25px #45634320,0 2px 4px #5c785b15}.window-bar{color:#7a828b;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;height:23px;padding:0 3px 5px;font-family:Arial,sans-serif;line-height:1;display:flex}.window-icon{background:linear-gradient(#cbf2ca,#90c98e);border:1px solid #78a776;border-radius:2px;flex-shrink:0;width:10px;height:9px;box-shadow:inset 0 1px 1px #ffffffc4}.window-filename{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:8px;overflow:hidden}.window-decor{align-items:center;gap:3px;display:flex}.window-decor i{background:linear-gradient(#f9fef9,#cbddcb);border:1px solid #a3b3a3;border-radius:2px;width:9px;height:9px;position:relative;box-shadow:inset 0 1px 1px #fff}.window-decor i:first-child:after{content:"";border-top:1px solid #6e836d;position:absolute;bottom:2px;left:2px;right:2px}.window-decor i:nth-child(2):after{content:"";border:1px solid #6e836d;position:absolute;inset:2px}.window-decor i:last-child{background:linear-gradient(#edc4be,#d68b7d);border-color:#b68880}.window-decor i:last-child:before,.window-decor i:last-child:after{content:"";background:#fff;width:1px;height:5px;position:absolute;top:1px;left:3px;transform:rotate(45deg)}.window-decor i:last-child:after{transform:rotate(-45deg)}.hello-sticker{text-align:center;background:#fff;border:1px solid #cfd9cf;border-radius:3px;width:84px;line-height:1;position:absolute;top:171px;left:216px;overflow:hidden;transform:rotate(8deg);box-shadow:0 5px 12px #486e4718}.hello-sticker>span{color:#fff;font:600 10px/1 var(--sans);letter-spacing:2px;background:#75a674;padding:6px 0 1px;display:block}.hello-sticker>small{color:#f0f9f0;font:7px/1.6 var(--sans);background:#75a674;padding-bottom:3px;display:block}.hello-sticker strong{font:italic 34px/1.3 var(--serif);color:#536952;display:block}.portrait figcaption{color:#919f91;margin-top:24px;font-size:9px}.section{border-color:#dee8de}.section-label{color:#898}.folder-icon{background:linear-gradient(#caeec9,#9ace98);border:1px solid #8ab988;border-radius:2px 3px 3px;width:26px;height:19px;margin-bottom:11px;display:block;position:relative;transform:rotate(-5deg);box-shadow:inset 0 1px 1px #eefbed,0 2px 3px #749f7215}.folder-icon:before{content:"";background:#c5e7c4;border:1px solid #8ab988;border-bottom:0;border-radius:2px 3px 0 0;width:11px;height:5px;position:absolute;top:-5px;left:-1px}.project-window{background:linear-gradient(135deg,#f9fbf9,#d9e0d8 60%,#e9ede9);border:1px solid #acb9ac;border-radius:6px;align-self:start;min-width:0;padding:4px;transition:transform .2s,box-shadow .2s;box-shadow:inset 0 1px 1px #fff,0 5px 12px #5e7e5d18}.project-window .window-bar{gap:4px;height:16px;padding:0 1px 4px}.project-window .window-filename{font-size:6px}.project-window .window-icon,.project-window .window-decor i{width:7px;height:7px}.project-window .window-decor i:last-child:before,.project-window .window-decor i:last-child:after{height:3px;top:1px;left:2px}.project-window .window-decor i:nth-child(2):after{inset:1px}.project-window .cover{border:1px solid #738b7322;border-radius:2px;height:98px;transition:none}.project:hover .cover{transform:none}.project:hover .project-window{transform:translateY(-3px)rotate(-1deg);box-shadow:inset 0 1px 1px #fff,0 9px 17px #5e7e5d24}.project-heading>span:last-child{color:#83a282}.project p{color:#6e7f6e}.project-meta{color:#90a08f}.badge{color:#6e896d;background:#eaf0ea;border:1px solid #e0eadf}.latest{color:#60965e;background:linear-gradient(#f2fcf1,#e1f1e1);border-color:#cae2c9}.cover-body{color:#768775;background:radial-gradient(at 50% 25%,#f3eaf8,#dde8dc)}.cover-clean{background:linear-gradient(135deg,#395d54,#243c35)}.cover-talent{background:linear-gradient(145deg,#eefbee,#d2e7d1)}.cover-coffee{background:linear-gradient(145deg,#f1eadd,#e6dac4)}.experience .role{color:#5b705a}.stack{color:#8d9d8d!important}.exploration summary:hover .exploration-title{color:var(--green)}.exploration-more{border-color:#d2e2d1}.contact-title em{color:#5d9b5b}.contact-email>a{color:#4b764a}.copy-email{color:#849d83;background:linear-gradient(#ffffffad,#e8efe7ad);border:1px solid #d6e3d6;box-shadow:inset 0 1px #fff}.copy-email:hover{background:#e9f4e9}.socials a{color:#739472}.tags span{background:#ffffff70}.not-found h1{color:#568254}@media (width<=1050px){.portrait{padding-right:0}.profile-window{width:205px}.hello-sticker{width:74px;top:154px;left:156px}.hello-sticker strong{font-size:29px}.project-window .cover{height:88px}.desktop-clock{padding-left:16px}.hero h1{font-size:76px}.section{grid-template-columns:30% 1fr}}@media (width<=720px){.site-header{border-radius:9px;gap:10px;height:59px;margin-top:14px;padding:0 14px}.desktop-clock{display:none}nav{gap:0}nav a{padding:5px 9px}.hero{padding-top:43px}.hero h1{letter-spacing:-1.5px;font-size:64px}.hero-bottom{gap:33px;margin-top:40px}.portrait{padding:0 0 0 5px}.profile-window{width:230px}.hello-sticker{top:145px;left:195px}.portrait figcaption{margin-top:18px}.intro-links a{padding:7px 15px}.section{grid-template-columns:1fr;gap:23px}.section-label{align-items:center;gap:12px;display:flex}.folder-icon{flex-shrink:0;width:23px;height:17px;margin-bottom:0}.project-window .cover{height:85px}.project-window .window-filename{font-size:5px}.project-window .window-decor{gap:2px}.project-window .window-decor i{width:6px;height:6px}.project-window .window-decor i:nth-child(2){display:none}.hero .eyebrow{font-size:8px}}@media (width<=380px){.hero h1{font-size:55px}.site-header{padding:0 10px}.brand{font-size:15px}nav a{padding:4px 7px}.project-window .cover{height:155px}.project-window .window-filename{font-size:8px}.project-window .window-bar{height:21px}.project-window .window-decor i{width:8px;height:8px}.project-window .window-decor i:nth-child(2){display:block}.intro-links a{gap:10px;padding:7px 14px;font-size:11px}}@media print{body{background:#fff}.profile-window{box-shadow:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{--green:#467145;--paper:#f5f7f2;--ink:#29342b;--muted:#637163;--line:#dbe2d6}body{background-color:var(--paper)}.hero h1 em,.contact-title em{color:#557a47}.site-header{background:linear-gradient(#ffffffcf,#eef3e9b8)}.site-header nav a:hover{color:#3e663a}.hello-sticker>span,.hello-sticker>small{background:#608251}.intro-links a:first-child{color:#365f2f;background:linear-gradient(#f7fff0 0%,#e4efca 44%,#c6dda9 50%,#e2edca 100%);border-color:#9bb888}.brand-dot{color:#527747}.project-item{border-bottom:1px solid var(--line);margin-bottom:28px;padding-bottom:25px}.project-item:last-child{border:0;margin:0;padding-bottom:0}.project-item .project{border:0;margin:0;padding:0}.project-copy{min-width:0}.project-item .tech-stack{margin:15px 0 0 177px}.tech-stack{isolation:isolate;align-items:center;gap:6px;width:max-content;max-width:100%;padding-bottom:18px;display:flex;position:relative}.tech-tile{cursor:help;background:linear-gradient(145deg,#fff,#f1f4ed);border:1px solid #dce2d5;border-radius:8px;flex:none;place-items:center;width:32px;height:32px;padding:7px;transition:transform .18s,box-shadow .18s;display:grid;position:relative;box-shadow:inset 0 1px #fff,0 3px 7px #2d452916}.tech-tile svg{width:100%;height:100%}.tech-tile:hover,.tech-tile:focus-visible,.tech-tile[aria-pressed=true]{z-index:3;outline-offset:3px;transform:translateY(-7px);box-shadow:0 7px 14px #30482922}.tech-tooltip{font:11px/1.4 var(--sans);color:#3c5735;white-space:nowrap;opacity:0;pointer-events:none;z-index:5;background:var(--paper);border-radius:3px;padding:1px 5px;position:absolute;top:calc(100% + 9px);left:50%;transform:translate(-50%)}.tech-tile:hover .tech-tooltip,.tech-tile:focus-visible .tech-tooltip,.tech-tile[aria-pressed=true] .tech-tooltip{opacity:1}.tech-caption{text-align:center;font:9px/1.4 var(--sans);color:#78846e;transition:opacity .15s;position:absolute;bottom:-1px;left:0;right:0}:is(.tech-stack:has(.tech-tile:hover) .tech-caption,.tech-stack:has(.tech-tile:focus-visible) .tech-caption,.tech-stack:has([aria-pressed=true]) .tech-caption){opacity:0}.tech-fan{gap:0;padding-top:12px;padding-bottom:30px}.tech-fan .tech-tile{width:42px;height:44px;transform:translateY(var(--lift)) rotate(var(--tilt));margin-left:-3px;padding:10px;box-shadow:0 6px 14px #31452915}.tech-fan .tech-tile:first-child{margin-left:0}.tech-fan .tech-tile:hover,.tech-fan .tech-tile:focus-visible,.tech-fan .tech-tile[aria-pressed=true]{z-index:5;transform:translateY(-9px)rotate(0)}.tech-fan .tech-caption{bottom:0}.tech-pending{font:10px/1.5 var(--sans)!important;color:#7e8976!important;margin-top:12px!important}.experience{position:relative}.experience:has(.tech-fan){min-height:125px;padding-right:205px}.experience .entry-top{margin-right:-205px}.experience .tech-fan{position:absolute;top:27px;right:0}.experience .tech-pending{font-size:10px!important}.experience .stack{max-width:380px}.hero{padding-bottom:38px}.putting-strip{width:90%;max-width:860px;margin:0 auto 38px;padding:0 0 5px}#golf-course{touch-action:none;outline-offset:0;cursor:none;background:0 0;border:0;width:100%;height:132px;display:block}#golf-course:focus-visible{border-radius:8px;outline:none;box-shadow:0 2px #83a16b}#golf-course.is-dragging{cursor:none;touch-action:none}.putting-caption{color:#7e8976;justify-content:flex-end;align-items:baseline;gap:20px;padding:0 12px;font-size:10px;line-height:1.6;display:flex}.putting-totals{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:baseline;gap:14px;display:flex}.putting-totals b{color:#526b43;font-weight:500}.mock-label{color:#87917e;letter-spacing:.2px;font-size:8px}@media (width<=1050px){.project-item .tech-stack{margin-left:153px}.experience:has(.tech-fan){min-height:0;padding-right:0}.experience .entry-top{margin-right:0}.experience .tech-fan{margin-top:4px;position:relative;top:auto;right:auto}.experience .tech-fan .tech-tile{width:36px;height:38px;padding:8px}}@media (width<=720px){.hero{padding-bottom:20px}.project-item .tech-stack{margin-left:135px}.tech-tile{width:29px;height:29px;padding:6px}.tech-stack{gap:5px}.putting-strip{margin-bottom:27px}#golf-course{touch-action:none;height:112px}.putting-caption{flex-wrap:wrap;gap:7px;padding:0 8px;font-size:9px}.putting-totals{gap:11px}.mock-label{font-size:8px}.tech-fan .tech-tooltip{font-size:10px}}@media (width<=380px){.project-item .tech-stack{margin-left:0}}@media (prefers-reduced-motion:reduce){.tech-tile{transition:none}}@media print{.putting-strip,.tech-stack{display:none}}.experience-with-stack{outline:none}.experience-with-stack:focus-visible{box-shadow:-2px 0 #a1b48e}.experience-with-stack .tech-fan{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s,transform .45s cubic-bezier(.2,.8,.2,1),visibility 0s .4s;transform:translateY(10px)}.experience-with-stack .tech-fan .tech-tile{opacity:0;transition:opacity .3s,transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .2s;transition-delay:calc(var(--order) * 35ms);transform:translateY(16px)rotate(0)scale(.88)}.experience-with-stack:is(:hover,:focus-within) .tech-fan{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translateY(0)}.experience-with-stack:is(:hover,:focus-within) .tech-tile{opacity:1;transform:translateY(var(--lift)) rotate(var(--tilt)) scale(1)}.experience-with-stack:is(:hover,:focus-within) .tech-tile:is(:hover,:focus-visible){z-index:5;transition-delay:0s;transform:translateY(-9px)rotate(0)scale(1.08)}@media (prefers-reduced-motion:reduce){.experience-with-stack .tech-fan,.experience-with-stack .tech-tile{transition:none}}.window-decor{pointer-events:none;align-items:center;gap:4px;display:flex}.window-bar .window-decor i{background:linear-gradient(#ffb6a9,#e76d5c);border:1px solid #b86b60;border-radius:50%;width:9px;height:9px;display:block;position:relative;box-shadow:inset 0 1px 1px #ffffffa0}.window-bar .window-decor i:nth-child(2){background:linear-gradient(#ffe4a1,#e8b746);border-color:#ba963e}.window-bar .window-decor i:nth-child(3){background:linear-gradient(#b4e7a5,#6fbc64);border-color:#579c57}.window-bar .window-decor i:before,.window-bar .window-decor i:after{content:none}#experience .entry-top{flex-wrap:wrap;align-items:baseline;gap:16px}#experience .date{color:#8a918a;white-space:normal;font-size:15px;font-weight:400;line-height:1.5}#experience .entry-top h3{position:relative}div.project:hover{color:inherit}@media (width<=720px){#experience .experience-with-stack{padding-left:36px}#experience .date{font-size:14px}#experience .entry-top{gap:4px 12px}}.project-heading .badge.latest{margin-left:0;font-size:9px;display:inline-block;transform:none}a.project:hover .project-heading .badge.latest{transform:none}#about .entry-top{flex-wrap:wrap;align-items:baseline;gap:16px;margin-right:0}#about .date{color:#8a918a;white-space:normal;font-size:15px;font-weight:400;line-height:1.5}#about h3{position:relative}.education-logo{object-fit:contain;border-radius:6px;width:32px;height:32px;position:absolute;top:0;right:calc(100% + 12px)}@media (width<=720px){#about .experience{padding-left:42px}#about .date{font-size:14px}#about .entry-top{gap:4px 12px}.education-logo{right:calc(100% + 10px)}}.company-logo,.education-logo{object-fit:contain;border-radius:5px;width:25px;height:25px;position:absolute;top:1px;right:calc(100% + 12px)}@media (width<=720px){#about .experience{padding-left:36px}.company-logo,.education-logo{width:24px;height:24px;right:calc(100% + 10px)}}.company-logo[src="/logos/cleanhaul.jpg"],.education-logo[src="/logos/dlsu.png"]{mix-blend-mode:multiply}.project-cover-image{aspect-ratio:16/9;object-fit:contain;background:#f6f7f1;border:1px solid #cbd5c5;border-radius:2px;width:100%;height:auto;display:block}.project-item:hover .project-window,.project-item:focus-within .project-window{transform:translateY(-3px)rotate(-1deg);box-shadow:inset 0 1px 1px #fff,0 9px 17px #5e7e5d24}a.project .project-heading h3{text-underline-offset:4px;text-decoration:none;text-decoration-thickness:1px}a.project:hover .project-heading h3,a.project:focus-visible .project-heading h3{text-decoration:underline}a.project:hover,a.project:focus-visible{color:var(--green)}.project-visit{color:var(--green);margin-top:10px;font-size:11px;display:inline-block}@media (prefers-reduced-motion:reduce){.project-window{transition:none}.project-item:hover .project-window,.project-item:focus-within .project-window{transform:none}}.project-metric{color:inherit;font-weight:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px;transition:color .16s,background-color .16s,box-shadow .16s}.project-item:hover .project-metric,.project-item:focus-within .project-metric{color:#315d2c;background:#dcebcf;font-weight:600;box-shadow:2px 0 #dcebcf,-2px 0 #dcebcf}@media (prefers-reduced-motion:reduce){.project-metric{transition:none}}@media (width<=720px){footer{font-size:13px}}.section-label{font-size:16px}@media (width<=1050px){.section-label{font-size:15px}}@media (width<=380px){.section-label{font-size:17px}}.section-reveal{opacity:1;transition:opacity .85s,transform .85s cubic-bezier(.2,.65,.3,1);transform:translateY(0)}.section-reveal.reveal-pending:not(:focus-within){opacity:0;transform:translateY(14px)}@media (prefers-reduced-motion:reduce){.section-reveal,.section-reveal.reveal-pending:not(:focus-within){opacity:1;transition:none;transform:none}}@media print{.section-reveal,.section-reveal.reveal-pending:not(:focus-within){opacity:1;transition:none;transform:none}}#experience .date,#about .date{font-size:14px}footer>span.footer-copyright{display:inline}#personal .section-content>p,#contact .section-content>p{color:#000}.hello-sticker{translate:0 20px}#experience .experience-with-stack{min-height:0;padding-right:0}#experience .entry-top{margin-right:0}.experience-tools{grid-template-rows:0fr;transition:grid-template-rows .42s cubic-bezier(.2,.7,.3,1);display:grid}.experience-tools-inner{min-height:0;overflow:hidden}#experience .experience-tools .tech-fan{margin:0;padding-top:20px;padding-bottom:28px;position:relative;top:auto;right:auto}.experience-with-stack:is(:hover,:focus-within) .experience-tools{grid-template-rows:1fr}@media (prefers-reduced-motion:reduce){.experience-tools{transition:none}}@media (width<=720px),(hover:none) and (pointer:coarse){.experience-with-stack.scroll-active .experience-tools{grid-template-rows:1fr}.experience-with-stack.scroll-active .tech-fan{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translateY(0)}.experience-with-stack.scroll-active .tech-tile{opacity:1;transform:translateY(var(--lift)) rotate(var(--tilt)) scale(1)}.experience-with-stack.scroll-active .tech-tile:is(:hover,:focus-visible){transform:translateY(-9px)rotate(0)scale(1.08)}.project-item.scroll-active .project-metric{color:#315d2c;background:#dcebcf;font-weight:600;box-shadow:2px 0 #dcebcf,-2px 0 #dcebcf}}.putting-strip{position:relative}.golf-swipe-hint{left:var(--golf-ball-x,85%);top:var(--golf-ball-y,56px);pointer-events:none;z-index:1;color:#fffdf3;display:none;position:absolute}.golf-swipe-hand{filter:drop-shadow(0 2px 2px #18351755);transform-origin:50% 15%;width:30px;height:33px;animation:2.6s ease-in-out infinite golf-swipe;display:block}.golf-swipe-hand svg{width:100%;height:100%;display:block}@media (width<=720px),(hover:none) and (pointer:coarse){.golf-swipe-hint{display:block}.has-putted .golf-swipe-hint,.is-interacting .golf-swipe-hint{display:none}}@keyframes golf-swipe{0%,12%{opacity:0;transform:translate(5px,-2px)rotate(8deg)}22%{opacity:1;transform:translate(0)rotate(0)}65%{opacity:1;transform:translate(-48px)rotate(-8deg)}80%,to{opacity:0;transform:translate(-48px)rotate(-8deg)}}@media (prefers-reduced-motion:reduce){.golf-swipe-hand{animation:none;transform:translate(-8px)}}.profile-photo{aspect-ratio:1;object-fit:cover;border-radius:3px;width:100%;height:auto;display:block}.scroll-interactions .project-item:not(.scroll-active) .project-metric{color:inherit;box-shadow:none;font-weight:inherit;background:0 0}.scroll-interactions .project-item:not(.scroll-active) .project-window{transform:none}.scroll-interactions .project-item.scroll-active .project-window{transform:translateY(-3px)rotate(-1deg);box-shadow:inset 0 1px 1px #fff,0 9px 17px #5e7e5d24}.scroll-interactions .experience-with-stack:not(.scroll-active) .experience-tools{grid-template-rows:0fr}.scroll-interactions .experience-with-stack:not(.scroll-active) .tech-fan{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px)}.project-item:focus-visible{outline:2px solid var(--green);outline-offset:6px;border-radius:4px}@media (prefers-reduced-motion:reduce){.scroll-interactions .project-item.scroll-active .project-window{transform:none}}.project-copy>p{font-size:13px}:root{--portfolio-title-size:17px;--portfolio-body-size:16px;--portfolio-small-size:15px}.section-label,.project-heading h3,#experience h3,#about h3{font-size:var(--portfolio-title-size)}.intro p,.project-copy>p,#experience .experience p,#about .experience p,#personal .section-content>p,#contact .section-content>p{font-size:var(--portfolio-body-size);line-height:1.75}#experience .experience .role,#about .experience .role,#experience .date,#about .date,.intro-links a,.project-visit{font-size:var(--portfolio-small-size)}#about .experience .stack{font-size:var(--portfolio-small-size)!important}.site-header nav a{font-size:14px}.project-heading .badge.latest,.tech-caption,.tech-tooltip{font-size:11px}.putting-caption{font-size:12px}footer{font-size:15px}@media (width<=720px){.intro-links{flex-wrap:wrap;gap:12px}.putting-caption{font-size:12px}footer{font-size:14px}}.experience-tools{margin-inline:-12px}.experience-tools-inner{padding-inline:12px}.putting-strip,.putting-strip *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#golf-course{-webkit-user-drag:none}@media (width<=720px){.putting-strip{width:100%;max-width:none;margin-inline:0}.putting-caption{padding-inline:0}}.golf-ball-overlay{pointer-events:none;z-index:2;position:absolute;left:0}.hero .hero-bottom{margin-top:0}
