:root{--paper: #fffafc;--ink: #120d10;--pink: #ff5fa8;--green: #5f7f62;--blush: #ffd3e6;--mint: #c3d3b3;--petal: #ffb3d6;--border: 3px solid var(--ink);--shadow: 6px 6px 0 var(--ink);--radius: 26px;--max: 1100px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Bricolage Grotesque,system-ui,sans-serif;font-size:18px;line-height:1.55}a{color:inherit}h1,h2,h3{line-height:1.05;margin:0;letter-spacing:-.02em}p{margin:0 0 1em}.nav{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:var(--paper);border-bottom:var(--border)}.logo{font-weight:800;font-size:1.2rem;text-decoration:none;background:var(--pink);color:var(--ink);border:var(--border);border-radius:14px;padding:2px 12px;box-shadow:3px 3px 0 var(--ink)}.nav nav{display:flex;align-items:center;gap:8px;font-weight:600;overflow-x:auto}.tab{text-decoration:none;white-space:nowrap;border:3px solid transparent;border-radius:999px;padding:4px 16px}.tab:hover{background:var(--blush)}.tab.active{background:var(--pink);border-color:var(--ink);font-weight:800}.hero{max-width:var(--max);margin:0 auto;padding:56px 24px 0;display:grid;grid-template-columns:1fr 1.5fr;gap:40px;align-items:center}.page{min-height:70vh}.page>.page-title,.page>.timeline,.page>.about-grid,.page>.project-grid,.page>.contact{max-width:var(--max);margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}.page-title{font-size:clamp(2rem,5vw,3.4rem);font-weight:800;padding-top:56px;padding-bottom:28px}.page>.about-grid,.page>.project-grid,.page>.timeline{padding-bottom:72px}.places-band{margin-top:0;background:#24242d;color:#fff;border-top:var(--border);border-bottom:var(--border)}.places{max-width:var(--max);margin:0 auto;padding:36px 24px 40px}.small-h{font-family:Space Mono,monospace;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:18px}.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.marquee-track{display:flex;gap:32px;width:max-content;padding:8px 0;animation:logo-scroll 30s linear infinite}.marquee:hover .marquee-track,.marquee.paused .marquee-track{animation-play-state:paused}@keyframes logo-scroll{to{transform:translate(calc(-50% - 16px))}}.logo-slot{flex:none;width:160px;margin:0;padding:12px 8px 16px;display:flex;flex-direction:column;align-items:center;gap:10px;background:none;border:0;font:inherit;color:inherit;cursor:pointer}.logo-box{width:140px;height:140px;padding:8px;display:flex;align-items:center;justify-content:center;transition:transform .2s}.logo-slot.current{background:#36363f;border-radius:24px}.logo-slot:hover .logo-box,.logo-slot.active .logo-box{transform:translateY(-6px) scale(1.05)}.logo-name{text-align:center;font-weight:700;font-size:.85rem;line-height:1.2}.logo-slot.active .logo-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.logo-slot:focus-visible{outline:3px solid var(--ink);outline-offset:4px;border-radius:18px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:20px;background:#120d108c;animation:fade-in .2s ease both}.modal{color:var(--ink);position:relative;width:min(560px,100%);max-height:90vh;overflow:auto;padding:32px 28px 28px;background:#fff;border:var(--border);border-radius:var(--radius);box-shadow:8px 8px 0 var(--pink);animation:modal-pop .35s cubic-bezier(.34,1.4,.64,1) both}.modal-logo{display:block;width:96px;height:96px;object-fit:contain;margin-bottom:14px}.modal h3{font-size:1.6rem;margin-bottom:10px}.modal p{margin:0}.modal a{display:inline-block;margin-top:12px;font-weight:800}.modal-close{position:absolute;top:12px;right:12px;width:40px;height:40px;display:grid;place-items:center;font:inherit;font-weight:800;line-height:1;cursor:pointer;background:var(--blush);border:var(--border);border-radius:50%}.modal-close:hover{background:var(--pink)}@keyframes fade-in{0%{opacity:0}}@keyframes modal-pop{0%{opacity:0;transform:translateY(20px) scale(.9)}}.logo-img{width:100%;height:100%;object-fit:contain}.logo-stub{width:100%;height:100%;display:grid;place-items:center;border:2px dashed var(--pink);border-radius:18px;background:var(--blush);font-family:Space Mono,monospace;font-size:.8rem;font-weight:700}.headshot-wrap{position:relative;justify-self:center;width:min(100%,380px)}.headshot{position:relative;z-index:1;display:block;width:100%;height:auto;border:0;background:none}.headshot-wrap:before{content:"";position:absolute;left:4%;right:4%;top:10%;bottom:0;background:var(--petal);border-radius:999px 999px 0 0;transform-origin:bottom center;animation:arch-pop .7s .1s cubic-bezier(.34,1.4,.64,1) both}.headshot-wrap:after{content:"";position:absolute;top:0;right:-8px;width:96px;height:96px;border-radius:50%;background:var(--mint);animation:circle-pop .6s .55s cubic-bezier(.34,1.56,.64,1) both}.headshot{animation:rise-in .7s .3s cubic-bezier(.22,1,.36,1) both}@keyframes highlight-sweep{to{background-size:100% 100%}}@keyframes arch-pop{0%{opacity:0;transform:scale(.8,.2)}to{opacity:1;transform:scale(1)}}@keyframes circle-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes rise-in{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}@keyframes chip-pop{0%{opacity:0;transform:scale(.3) rotate(var(--rot))}to{opacity:1;transform:scale(1) rotate(var(--rot))}}.chip{position:absolute;z-index:2;white-space:nowrap;font-weight:800;font-size:.9rem;padding:8px 16px;background:#fff;border:var(--border);border-radius:999px;box-shadow:4px 4px 0 var(--ink)}.chip-pink{background:var(--pink)}.chip-green{background:var(--green);color:#fff}.chip-blush{background:var(--blush)}.chip{--rot: -3deg;transform:rotate(var(--rot));animation:chip-pop .5s cubic-bezier(.34,1.56,.64,1) both}.chip-1{bottom:17%;left:-30px;animation-delay:.8s}.chip-2{bottom:6%;left:-30px;animation-delay:.95s}.hello{font-family:Playfair Display,Georgia,serif;font-style:italic;font-weight:700;font-size:clamp(1.3rem,2.2vw,1.7rem);color:var(--green);margin:0 0 6px}.eyebrow{font-family:Space Mono,monospace;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;color:var(--green)}.hero h1{font-size:clamp(2rem,4.4vw,3.4rem);font-weight:800;max-width:18ch;margin-bottom:20px}.hl{padding:0 .12em;border-radius:14px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.hl-blush{background:linear-gradient(var(--petal),var(--petal)) no-repeat left center;background-size:0% 100%;animation:highlight-sweep .9s 1.1s ease-out forwards;font-family:Playfair Display,Georgia,serif;font-style:italic;font-weight:700}.lede{max-width:40ch;font-size:1.25rem}.cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}.btn{display:inline-block;font:inherit;color:inherit;cursor:pointer;font-weight:800;text-decoration:none;border:var(--border);border-radius:14px;padding:12px 22px;box-shadow:4px 4px 0 var(--ink);transition:transform .12s,box-shadow .12s}.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}.btn-pink{background:var(--pink);color:var(--ink)}.btn-pink,.btn-ghost{color:var(--ink)}.btn-green{background:var(--green);color:#fff}.btn-blush{background:var(--blush)}.btn-ghost{background:var(--paper)}.section{max-width:var(--max);margin:0 auto;padding:88px 24px 0}.section h2{font-size:clamp(2rem,5vw,3.4rem);font-weight:800;margin-bottom:32px}.num{font-family:Space Mono,monospace;font-size:.4em;vertical-align:middle;background:var(--ink);color:var(--paper);border-radius:8px;padding:4px 10px;margin-right:10px}.card{background:#fff;border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px}.card-mint{background:var(--mint)}.card-pink{background:var(--pink);color:var(--ink)}.card-green{background:var(--green);color:var(--paper)}.card-blush{background:var(--blush)}.card h3{font-size:1.6rem;margin-bottom:14px}.about-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:28px;align-items:start}.avail{background:var(--paper);border:var(--border);border-radius:12px;padding:10px 14px;margin:0}.stats{display:grid;gap:16px}.stat{display:flex;align-items:center;gap:16px;background:var(--petal);border:var(--border);border-radius:var(--radius);box-shadow:4px 4px 0 var(--ink);padding:14px 18px}.stat:nth-child(2){background:var(--mint)}.stat:nth-child(3){background:#fff}.stat-n{font-size:2.8rem;font-weight:800;line-height:1}.stat-l{font-size:.95rem;line-height:1.25}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.project-grid .card{display:flex;flex-direction:column;transition:transform .15s}.project-grid .card:hover{transform:translateY(-6px) rotate(-.6deg)}.project-grid p{font-size:1rem;flex:1}.tags{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:8px}.tags li{font-family:Space Mono,monospace;font-size:.75rem;font-weight:700;background:var(--paper);color:var(--ink);border:2px solid var(--ink);border-radius:999px;padding:2px 10px}.timeline{display:grid;gap:22px}.job{display:grid;grid-template-columns:1fr 1.6fr;gap:24px;background:#fff;border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px 26px}.job-head{display:flex;align-items:center;gap:18px}.app-icon{flex:none;width:76px;height:76px;border-radius:22.5%;display:grid;place-items:center;box-shadow:0 8px 16px #120d1047,0 2px 4px #120d1033,inset 0 1.5px #ffffff8c,inset 0 -2px #0000001f}.app-icon svg{width:40px;height:40px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}.icon-pink{background:linear-gradient(160deg,#ff9ccb,#ff3d96)}.icon-green{background:linear-gradient(160deg,#a9bf9a,#5f7f62)}.icon-black{background:linear-gradient(160deg,#4a4a4a,#0d0d0d)}.job h3{font-size:1.4rem}.job-org{font-weight:800;margin:6px 0 0}.job-when{font-family:Space Mono,monospace;font-size:.8rem;margin:2px 0 0}.job ul{margin:0;padding-left:1.1em}.job li{margin-bottom:8px}.contact{text-align:center;padding-top:88px;padding-bottom:88px}.contact h2{font-size:clamp(2.6rem,8vw,5.5rem);margin-bottom:12px}.contact .cta{justify-content:center}.footer{display:flex;justify-content:space-between;padding:20px 24px;background:var(--ink);color:var(--paper);font-family:Space Mono,monospace;font-size:.85rem}@media (max-width: 860px){.hero,.about-grid,.passions,.project-grid,.job{grid-template-columns:1fr}.headshot-wrap{width:min(78%,300px);margin-top:12px}.nav{flex-direction:column;align-items:stretch;gap:10px}.logo{align-self:flex-start}.hero{padding-top:40px;padding-bottom:40px}.chip{font-size:.8rem;padding:6px 12px}.chip-1,.chip-2{left:-6px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.marquee-track{animation:none}.marquee{overflow-x:auto}.btn,.project-grid .card,.logo-box{transition:none}.modal-backdrop,.modal{animation:none}.headshot,.headshot-wrap:before,.headshot-wrap:after,.chip{animation:none}.hl-blush{animation:none;background-size:100% 100%}}@media (min-width: 861px){.home-page{--band-h: 264px;--hero-top: 28px;height:calc(100vh - 132px);height:calc(100dvh - 132px);min-height:520px;display:flex;flex-direction:column}.nav{height:72px;padding-top:0;padding-bottom:0}.footer{height:60px;align-items:center}.home-page .hero{flex:1;min-height:0;width:100%;padding-top:var(--hero-top);padding-bottom:0}.home-page .hero>div:not(.headshot-wrap){align-self:center}.home-page .headshot-wrap{width:auto;align-self:end}.home-page .headshot{width:auto;max-width:100%;height:clamp(220px,calc(100vh - 132px - var(--band-h) - var(--hero-top)),520px);height:clamp(220px,calc(100dvh - 132px - var(--band-h) - var(--hero-top)),520px)}.home-page .places-band{height:var(--band-h);display:flex;align-items:center}.home-page .places{width:100%;padding-top:0;padding-bottom:0}.home-page .small-h{margin-bottom:10px}.home-page .logo-slot{width:148px}.home-page .logo-box{width:120px;height:120px}}.about-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:48px;align-items:stretch}.about-right{display:flex;flex-direction:column;justify-content:center;gap:28px}.about-blurb{font-size:1.15rem;line-height:1.6}.about-blurb p:last-child{margin-bottom:0}.portrait{position:relative;width:100%;max-width:380px;min-height:420px;justify-self:center}.portrait:before{content:"";position:absolute;left:4%;right:4%;top:8%;bottom:0;background:var(--petal);border-radius:999px 999px 0 0}.portrait-img{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;object-fit:contain;object-position:bottom center}.passions{display:flex;flex-direction:column;gap:16px}.passion{display:flex;align-items:center;gap:16px;width:100%;padding:16px 20px;text-align:left;font:inherit;color:inherit;cursor:pointer;background:#fff;border:var(--border);border-radius:var(--radius);box-shadow:5px 5px 0 var(--pink);transition:transform .15s,box-shadow .15s}.passion:hover{transform:translate(-2px,-4px);box-shadow:7px 9px 0 var(--pink)}.passion:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.passion h3{font-size:1.25rem;margin-bottom:2px}.passion p{margin:0;font-size:.95rem}.passion .app-icon{width:60px;height:60px}.passion .app-icon svg{width:32px;height:32px}.plus{margin-left:auto;flex:none;width:34px;height:34px;display:grid;place-items:center;font-weight:800;font-size:1.3rem;line-height:1;background:var(--blush);border:var(--border);border-radius:50%}.passion:hover .plus{background:var(--pink)}.modal-wide{width:min(960px,100%);max-height:94vh;padding:12px 8px 8px;color:#fff;background:transparent;border:0;border-radius:0;box-shadow:none}.modal-backdrop:has(.modal-wide){padding:10px;background:#120d10d1}.modal-wide .modal-close{color:var(--ink)}.modal-head{display:flex;align-items:center;gap:16px;margin-bottom:16px;padding-right:44px}.modal-head h3{margin:0}.modal-wide p{margin:0 0 .8em}.modal-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:16px}.modal-photos:empty{display:none}.modal-photos img{display:block;width:100%;height:auto;border:var(--border);border-radius:18px}@media (max-width: 860px){.portrait{max-width:300px;min-height:340px}}.explore{font-family:Playfair Display,Georgia,serif;font-style:normal;font-weight:700;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.1;margin:0}.about-pager{max-width:var(--max);margin:0 auto;padding:0 24px 72px}.pager-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.pager-label{font-family:Space Mono,monospace;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.pager-controls{display:flex;align-items:center;gap:12px}.chev{width:44px;height:44px;display:grid;place-items:center;font:inherit;font-size:1.6rem;font-weight:800;line-height:1;padding-bottom:3px;cursor:pointer;color:var(--ink);background:var(--blush);border:var(--border);border-radius:50%;transition:background .15s,transform .15s}.chev:hover:not(:disabled){background:var(--pink);transform:scale(1.06)}.chev:disabled{opacity:.3;cursor:default}.pager-dots{display:flex;gap:8px}.dot{width:10px;height:10px;padding:0;cursor:pointer;background:transparent;border:2px solid var(--ink);border-radius:50%}.dot.on{background:var(--pink);border-color:var(--pink)}.pager-viewport{overflow:hidden}.pager-track{--slide-gap: 96px;display:flex;gap:var(--slide-gap);transition:transform .5s cubic-bezier(.65,0,.35,1)}.pager-slide{flex:0 0 100%;min-width:0}.hobbies-slide{min-height:420px;display:flex;flex-direction:column;justify-content:center;gap:16px}.hobbies-note{margin:0;font-size:1.1rem}@media (prefers-reduced-motion: reduce){.pager-track{transition:none}}.hobbies-slide{min-height:0;justify-content:flex-start}.hobby-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.hobby{position:relative;margin:0;aspect-ratio:4 / 3;overflow:hidden;border-radius:22px;background:var(--blush)}.hobby-pink{background:var(--petal)}.hobby-green{background:var(--green)}.hobby-blush{background:var(--blush)}.hobby-mint{background:var(--mint)}.hobby img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.hobby:hover img{transform:scale(1.05)}.hobby figcaption{position:absolute;right:12px;top:12px;padding:6px 14px;font-weight:800;color:var(--ink);background:#fff;border-radius:999px}@media (max-width: 860px){.hobby-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 861px){.home-page{--band-h: clamp(170px, 27vh, 264px);--hero-top: clamp(12px, 3vh, 28px);--box: clamp(64px, calc(var(--band-h) - 144px), 120px);min-height:0}.home-page .hello{font-size:clamp(1.1rem,min(2.2vw,3.2vh),1.7rem)}.home-page .hero h1{font-size:clamp(1.6rem,min(4.4vw,7.2vh),3.4rem);margin-bottom:clamp(8px,2vh,20px)}.home-page .lede{font-size:clamp(.95rem,2.1vh,1.25rem)}.home-page .cta{margin-top:clamp(12px,2.5vh,28px)}.home-page .cta .btn{padding:clamp(8px,1.5vh,12px) 20px}.home-page .logo-box{width:var(--box);height:var(--box);padding:4px}.home-page .logo-slot{width:calc(var(--box) + 36px);padding:8px 6px 10px;gap:6px}.home-page .logo-name{font-size:clamp(.72rem,1.7vh,1rem);line-height:1.25}.home-page .small-h{margin-bottom:6px}}@media (min-width: 861px) and (max-height: 760px){.nav{height:56px}.footer{height:44px}.home-page{height:calc(100vh - 100px);height:calc(100dvh - 100px)}.home-page .headshot{height:clamp(180px,calc(100vh - 100px - var(--band-h) - var(--hero-top)),520px);height:clamp(180px,calc(100dvh - 100px - var(--band-h) - var(--hero-top)),520px)}}@media (min-width: 861px) and (max-height: 600px){.home-page{--band-h: 150px;--box: 52px}.home-page .logo-slot{width:calc(var(--box) + 64px)}.home-page .lede{max-width:52ch;font-size:.95rem;line-height:1.45}}.vol-layout .portrait{position:sticky;top:96px;align-self:start}.vol-layout .about-right{justify-content:flex-start}.vol-layout .job{grid-template-columns:1fr;gap:14px}@media (max-width: 860px){.vol-layout .portrait{position:static}}.page>.vol-layout{padding-bottom:0;min-height:calc(100vh - 282px);min-height:calc(100dvh - 282px);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:stretch}.vol-layout .portrait{position:relative;top:auto;align-self:stretch;max-width:560px;min-height:420px}.vol-layout .about-right{padding-bottom:72px}@media (max-width: 860px){.page>.vol-layout{min-height:0}.vol-layout .about-right{padding-bottom:48px}.vol-layout .portrait{max-width:320px;align-self:auto}}.vol-layout .portrait-img{inset:auto;left:-14%;bottom:0;width:128%;height:108%;max-width:none}.vol-layout .portrait:before{left:8%;right:8%;top:12%}@media (max-width: 860px){.vol-layout .portrait-img{left:-6%;width:112%;height:104%}.vol-layout .portrait{margin-top:16px}}@media (min-width: 861px){.page:not(.home-page){--chrome: 132px;height:calc(100vh - var(--chrome));height:calc(100dvh - var(--chrome));min-height:0;display:flex;flex-direction:column;overflow-y:auto}.page:not(.home-page)>.page-title{flex:none;width:100%;font-size:clamp(1.6rem,min(5vw,6.5vh),3.4rem);padding-top:clamp(12px,3.5vh,56px);padding-bottom:clamp(6px,2vh,28px)}.page:not(.home-page)>.timeline,.page:not(.home-page)>.project-grid,.page:not(.home-page)>.about-pager,.page:not(.home-page)>.vol-layout,.page:not(.home-page)>.contact{flex:1 1 0;min-height:0;width:100%;padding-bottom:clamp(12px,3vh,40px)}.page:not(.home-page)>.contact{display:flex;flex-direction:column;justify-content:center;padding-top:0}.timeline{grid-auto-rows:minmax(0,1fr);gap:clamp(10px,2.2vh,22px)}.job{align-items:center;padding:clamp(10px,2vh,24px) clamp(16px,2vw,26px);gap:clamp(12px,2vh,24px);min-height:0}.job h3{font-size:clamp(1rem,2.7vh,1.4rem)}.job-org{margin-top:2px;font-size:clamp(.85rem,2vh,1rem)}.job-when{font-size:clamp(.68rem,1.6vh,.8rem)}.job li{font-size:clamp(.78rem,1.95vh,1rem);line-height:1.35;margin-bottom:clamp(2px,.8vh,8px)}.job .app-icon{width:clamp(44px,8.5vh,76px);height:clamp(44px,8.5vh,76px)}.job .app-icon svg{width:52%;height:52%}.project-grid{grid-template-rows:minmax(0,1fr);gap:clamp(12px,2vw,28px)}.project-grid .card{padding:clamp(12px,2.4vh,26px);min-height:0;overflow:hidden}.project-grid .card h3{font-size:clamp(1.05rem,3vh,1.6rem);margin-bottom:clamp(6px,1.5vh,14px)}.project-grid p{font-size:clamp(.78rem,1.95vh,1rem);line-height:1.4}.about-pager{display:flex;flex-direction:column}.pager-bar{flex:none;margin-bottom:clamp(8px,2vh,32px)}.pager-viewport{flex:1 1 0;min-height:0}.pager-track,.pager-slide{height:100%}.about-pager .about-layout{height:100%;gap:clamp(20px,3vw,48px)}.about-pager .portrait,.vol-layout .portrait{min-height:0;max-height:100%;height:100%;align-self:stretch}.about-right{gap:clamp(8px,2.2vh,28px);min-height:0}.explore{font-size:clamp(1.2rem,3.6vh,2.2rem)}.passions{gap:clamp(8px,1.8vh,16px)}.passion{padding:clamp(8px,1.8vh,16px) clamp(12px,1.5vw,20px);gap:clamp(10px,1.5vw,16px)}.passion h3{font-size:clamp(.95rem,2.5vh,1.25rem)}.passion p{font-size:clamp(.75rem,1.8vh,.95rem)}.passion .app-icon{width:clamp(40px,7.5vh,60px);height:clamp(40px,7.5vh,60px)}.passion .app-icon svg{width:52%;height:52%}.hobbies-slide{height:100%;min-height:0;gap:clamp(8px,2vh,16px)}.hobby-grid{flex:1 1 0;min-height:0;grid-template-rows:repeat(2,minmax(0,1fr))}.hobby{aspect-ratio:auto;height:100%}.page>.vol-layout,.page:not(.home-page)>.vol-layout{min-height:0;padding-bottom:0}.vol-layout .about-right{justify-content:stretch;padding-bottom:clamp(12px,3vh,40px)}.vol-layout .about-right>.timeline{flex:1 1 0;min-height:0}.vol-layout .job{gap:clamp(6px,1.2vh,14px)}}@media (min-width: 861px) and (max-height: 760px){.page:not(.home-page){--chrome: 100px}}@media (min-width: 861px){.job{align-content:center}.page:not(.home-page)>.timeline,.page:not(.home-page)>.project-grid,.page:not(.home-page)>.about-pager{padding-bottom:clamp(16px,3vh,40px)}}@media (min-width: 861px){.timeline{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.timeline .job{grid-template-columns:1fr;align-content:start;align-items:start;gap:clamp(4px,1vh,12px);overflow:hidden}.job li{margin-bottom:clamp(1px,.5vh,5px)}.page>.vol-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr)}}@media (min-width: 861px){.page>.timeline{grid-template-rows:minmax(0,3fr) minmax(0,2fr)}.page>.vol-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr)}.vol-layout .timeline{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:auto;align-content:center;gap:clamp(6px,1.6vh,16px)}.vol-layout .job{overflow:visible;padding:clamp(8px,1.6vh,18px) clamp(14px,1.6vw,22px);gap:clamp(3px,.8vh,8px)}.vol-layout .job-head{gap:12px}.vol-layout .job .app-icon{width:clamp(32px,5.5vh,46px);height:clamp(32px,5.5vh,46px)}.vol-layout .job-head>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 12px}.vol-layout .job h3,.vol-layout .job-org,.vol-layout .job-when{margin:0}}@media (min-width: 861px) and (max-height: 640px){.job .app-icon{width:34px;height:34px}.job h3{font-size:.95rem}.job-org,.job-when{font-size:.72rem}.job-head>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px}.job-head h3,.job-org,.job-when{margin:0}.job li{font-size:.74rem;line-height:1.28;margin-bottom:1px}.timeline .job{padding:8px 14px;gap:3px}.page>.vol-layout{grid-template-columns:minmax(0,.55fr) minmax(0,1.5fr)}}@media (min-width: 861px){.page>.vol-layout{grid-template-columns:minmax(0,.72fr) minmax(0,1.5fr)}.vol-layout .job li{font-size:clamp(.74rem,1.8vh,.95rem);line-height:1.3}}@media (min-width: 861px) and (max-height: 640px){.page>.vol-layout{grid-template-columns:minmax(0,.5fr) minmax(0,1.5fr)}}@media (min-width: 861px) and (max-height: 560px){.timeline .job{padding:6px 12px;gap:2px}.job .app-icon{width:30px;height:30px}.job li{font-size:.7rem;line-height:1.22}.vol-layout .timeline{gap:6px}.page:not(.home-page)>.page-title{padding-top:8px;padding-bottom:4px}}@media (min-width: 861px) and (max-height: 640px){.job .app-icon svg{width:18px;height:18px}}.job{position:relative;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:transform .15s,box-shadow .15s}.job:hover{transform:translate(-2px,-4px)}.job:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.job .plus{position:absolute;top:12px;right:12px;width:30px;height:30px;margin:0;font-size:1.1rem}.job:hover .plus{background:var(--pink)}.job-teaser{margin:0;font-size:clamp(.8rem,1.9vh,1rem);line-height:1.35}.job-head{padding-right:34px}.modal-sub{margin:2px 0 0;font-weight:800}.modal-when{display:inline-block;margin-left:10px;font-family:Space Mono,monospace;font-size:.8rem;font-weight:400}.modal-points{margin:0;padding-left:1.2em;max-height:64vh;overflow-y:auto}.modal-points li{margin-bottom:.55em;line-height:1.45}@media (min-width: 861px){.page>.timeline{grid-template-rows:none;grid-auto-rows:auto;align-content:center}.timeline .job{align-content:center;overflow:visible;padding:clamp(12px,2.4vh,26px) clamp(16px,2vw,26px);gap:clamp(6px,1.4vh,14px)}.job h3{font-size:clamp(1rem,2.7vh,1.4rem)}.job-org{font-size:clamp(.85rem,2vh,1rem)}.job-when{font-size:clamp(.7rem,1.6vh,.8rem)}.job .app-icon{width:clamp(40px,8vh,64px);height:clamp(40px,8vh,64px)}.job .app-icon svg{width:52%;height:52%}}@media (min-width: 861px){.page>.timeline{grid-template-rows:repeat(2,minmax(0,1fr));align-content:stretch}}.modal-backdrop:has(.modal-wide){-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-points{max-height:calc(100vh - 170px);max-height:calc(100dvh - 170px)}.modal-points li{font-size:clamp(.85rem,2.1vh,1.05rem);margin-bottom:.45em}.jobs-col{display:flex;flex-direction:column;justify-content:center;gap:clamp(10px,2.2vh,22px);min-height:0;position:relative;z-index:2}.jobcard{position:relative;flex:1 1 0;min-height:0;max-height:190px;display:flex;align-items:stretch;padding:0;overflow:hidden;background:#fff;border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);text-align:left;font:inherit;color:inherit;cursor:pointer;transition:transform .15s}button.jobcard:hover{transform:translate(-2px,-4px)}button.jobcard:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.jobcard-logo{flex:none;height:100%;aspect-ratio:1 / 1;display:grid;place-items:center;background:#fff0f7;border-right:var(--border)}.jobcard-logo img{width:100%;height:100%;padding:12%;object-fit:contain}.jobcard-logo .app-icon{width:58%;height:58%}.jobcard-logo .app-icon svg{width:50%;height:50%}.jobcard-q{font-size:clamp(2rem,7vh,4rem);font-weight:800;line-height:1;color:var(--pink)}.jobcard-text{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:8px 46px 8px clamp(12px,1.6vw,22px)}.jobcard-text h3{margin:0;font-size:clamp(.95rem,2.8vh,1.5rem);line-height:1.15}.jobcard-text p{margin:4px 0 0;font-weight:800;font-size:clamp(.8rem,2vh,1rem)}.jobcard .plus{position:absolute;top:10px;right:10px;width:28px;height:28px;margin:0;font-size:1.05rem}button.jobcard:hover .plus{background:var(--pink)}.jobcard-next{background:var(--blush);cursor:default}.jobcard-next .jobcard-logo{background:var(--petal)}.modal-logo-img{flex:none;width:64px;height:64px;padding:6px;object-fit:contain;background:#fff;border-radius:16px}.vol-layout .jobs-col{flex:1 1 0}.exp-layout{display:flex;flex-direction:column;gap:18px;max-width:var(--max);margin:0 auto;padding:0 24px 48px}.exp-layout .portrait{order:-1;max-width:300px;min-height:300px;margin:0 auto}.exp-layout .portrait:before{left:8%;right:8%;top:12%}.exp-layout .portrait-img{inset:auto;left:-8%;bottom:0;width:116%;height:106%;max-width:none}.exp-layout .jobcard{flex:none;min-height:92px}.exp-layout .jobcard-logo{width:92px;height:auto}@media (min-width: 861px){.page:not(.home-page)>.exp-layout{flex:1 1 0;min-height:0;width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1fr);gap:clamp(16px,2.4vw,36px);align-items:stretch;padding-bottom:clamp(16px,3vh,40px)}.exp-layout .portrait{order:0;max-width:none;min-height:0;height:100%;margin:0}.exp-layout .jobcard{flex:1 1 0;min-height:0}.exp-layout .jobcard-logo{width:auto;height:100%}}@media (max-width: 860px){.vol-layout .jobcard{flex:none;min-height:92px}.vol-layout .jobcard-logo{width:92px;height:auto}}.jobcard{max-height:150px}@media (min-width: 861px){.page:not(.home-page)>.exp-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.7fr) minmax(0,1.15fr)}}.snap{align-self:flex-end;flex:none;height:0;display:flex;align-items:flex-end;margin-left:6px;transition:transform .2s}.snap:hover{transform:translateY(-3px) scale(1.05)}.snap img{display:block;height:clamp(80px,22vh,190px);width:auto;object-fit:contain}.snap-stub{height:clamp(56px,11vh,90px);aspect-ratio:1 / 1;display:grid;place-items:center;font-family:Space Mono,monospace;font-size:.7rem;font-weight:700;border:2px dashed var(--pink);border-radius:50%}@media (min-width: 861px) and (max-height: 560px){.home-page{--band-h: 140px;--box: 48px;--hero-top: 8px}.home-page .lede{font-size:.85rem;line-height:1.35}.home-page .hero h1{font-size:clamp(1.4rem,min(4vw,6.4vh),3rem);margin-bottom:6px}.home-page .cta{margin-top:10px}.home-page .cta .btn{padding:7px 18px}.home-page .logo-slot{width:calc(var(--box) + 56px)}.home-page .logo-name{font-size:.68rem}.home-page .small-h{font-size:.7rem;margin-bottom:2px}}@media (min-width: 861px) and (max-height: 560px){.snap img{height:16vh}.home-page .lede{max-width:44ch}}@media (min-width: 861px){.page:not(.home-page)>.exp-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,.9fr) minmax(0,1.05fr)}.exp-layout .portrait-img{left:-30%;width:160%;height:112%}.exp-layout .portrait:before{left:4%;right:4%;top:10%}}@media (max-width: 860px){.exp-layout .portrait{max-width:340px;min-height:340px}.exp-layout .portrait-img{left:-12%;width:124%;height:108%}}.modal-points+.modal-photos{margin-top:14px}.modal-points+.modal-photos img{max-height:24vh;object-fit:cover}.jobcard-eyebrow{margin-bottom:4px;font-family:Space Mono,monospace;font-size:clamp(.62rem,1.5vh,.78rem);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--pink)}.jobcard-next .jobcard-text p{font-size:clamp(.72rem,1.7vh,.9rem);line-height:1.25}.jobcard-next .jobcard-logo{background:#fff0f7}.jobcard-next{background:var(--green);color:var(--paper)}.jobcard-next .jobcard-logo{background:var(--mint)}button.card{position:relative;font:inherit;text-align:left;cursor:pointer}button.card:not(.card-green):not(.card-pink){color:var(--ink)}button.card .plus{position:absolute;top:12px;right:12px;width:30px;height:30px;margin:0;font-size:1.1rem;color:var(--ink)}button.card:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.project-grid .card h3{padding-right:34px}.project-grid .card .tags{margin-top:auto;padding-top:8px}.modal-project-title{margin:0 0 10px;padding-right:48px;font-size:clamp(1.3rem,3.6vh,2rem)}.modal-tags{margin:0 0 14px}.modal-body{margin:0;font-size:clamp(.9rem,2.2vh,1.1rem);line-height:1.5}@media (min-width: 861px){.project-grid{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.project-grid .card{grid-column:span 2}.project-grid .card:nth-child(5){grid-column:2 / span 2}}.project-grid .card{justify-content:center}.project-grid .card h3{margin-bottom:8px}.project-grid .card p{flex:none}
