@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400&family=Inter:wght@400;500&display=swap");:root{--bg:#faf8f5;--text:#1a1613;--secondary:#6b635b;--accent:#b8543a;--accent-soft:rgba(184,84,58,.14);--col:640px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:Fraunces,Georgia,serif;font-weight:400;font-optical-sizing:auto;font-variation-settings:"opsz" 20;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body:before{content:"";inset:0;opacity:.035;z-index:1;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}body:before,nav{position:fixed;pointer-events:none}nav{top:0;left:0;right:0;padding:1.75rem 2.5rem;display:flex;justify-content:space-between;align-items:center;z-index:10;background:linear-gradient(to bottom,var(--bg) 60%,transparent)}nav>*{pointer-events:auto}nav .name{font-family:Inter,system-ui,sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text);text-decoration:none}nav .links{display:flex;gap:2rem}nav .links a{font-family:Inter,system-ui,sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text);text-decoration:none;position:relative;transition:color .3s ease}nav .links a:hover{color:var(--accent)}nav .links a:after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:1px;background:var(--accent);transition:width .35s ease}nav .links a:hover:after{width:100%}main{z-index:2}.hero,main{position:relative}.hero{min-height:100vh;display:flex;align-items:center;padding:4rem 2.5rem}.hero-inner{max-width:var(--col);margin:0 auto;width:100%}.hero h1{font-family:Fraunces,Georgia,serif;font-weight:400;font-variation-settings:"opsz" 144;font-size:clamp(44px,7.4vw,88px);line-height:1.06;letter-spacing:-.025em;color:var(--text);opacity:0;animation:heroFade 1.4s ease .2s forwards}.hero h1 .em{color:var(--accent);font-style:italic;font-weight:400}@keyframes heroFade{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.hero-scroll{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);font-family:Inter,sans-serif;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--secondary);opacity:0;animation:heroFade 1.4s ease 1.5s forwards}.content{max-width:var(--col);margin:0 auto;padding:0 2.5rem}.beat{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s ease}.beat.visible{opacity:1;transform:translateY(0)}.beat-mission{padding:6rem 0 4rem}.beat-bridge{padding:2rem 0;text-align:right}.beat-proof{padding:4rem 0 5rem}.beat-fit,.beat-people{padding:5rem 0}.beat-personal{padding:6rem 0 4rem}.beat-deeper{padding:4rem 0 2rem}.beat-contact{padding:3rem 0 5rem}.beat-mission p{font-size:26px;line-height:1.5;margin-bottom:1.8rem;font-weight:400;letter-spacing:-.005em}.beat-mission p:last-child{margin-bottom:0;font-style:italic;font-size:22px;color:var(--secondary);margin-top:.5rem}.beat-bridge p{font-family:Fraunces,serif;font-style:italic;font-size:16px;color:var(--secondary);letter-spacing:.01em;line-height:1.55;max-width:380px;margin-left:auto}.section-opener{font-family:Fraunces,serif;font-variation-settings:"opsz" 96;font-size:clamp(28px,3.6vw,36px);line-height:1.18;letter-spacing:-.018em;color:var(--text);margin-bottom:2.4rem;font-weight:400}.section-opener .em{color:var(--accent);font-style:italic}.project{margin-bottom:2.4rem;padding-left:1.5rem;position:relative}.project:last-child{margin-bottom:0}.project:before{content:"";position:absolute;left:0;top:14px;width:.6rem;height:1px;background:var(--accent)}.project p{font-size:19px;line-height:1.65;color:var(--text)}.project-name{font-style:italic;color:var(--text);font-weight:500}.beat-people p{font-size:19px;line-height:1.7;margin-bottom:1.5rem;color:var(--text)}.beat-people p:last-child{margin-bottom:0;font-style:italic;color:var(--text);font-size:20px}.beat-fit .list-item{margin-bottom:1.4rem;padding-left:1.5rem;position:relative;font-size:19px;line-height:1.6}.beat-fit .list-item:before{content:"—";position:absolute;left:0;top:0;color:var(--accent)}.beat-fit .list-item:last-of-type{margin-bottom:2rem}.beat-fit .closer{font-size:18px;line-height:1.65;color:var(--secondary);font-style:italic;padding-top:1rem;border-top:1px solid var(--accent-soft)}.photo-block{margin:0 auto 3rem;max-width:320px}.photo-block img{width:100%;height:auto;display:block;filter:saturate(.95) contrast(1.02)}.beat-personal p{font-size:19px;line-height:1.7;margin-bottom:1.5rem}.beat-personal p:last-child{margin-bottom:0;font-style:italic;color:var(--text)}.beat-deeper p{font-size:17px;line-height:1.8;margin-bottom:.5rem;color:var(--text)}.beat-deeper a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--accent-soft);padding-bottom:2px;transition:border-color .3s ease,color .3s ease}.beat-deeper a:hover{color:var(--accent);border-bottom-color:var(--accent)}.beat-contact p{font-size:18px;line-height:1.6;color:var(--text)}.contact-link{color:var(--text);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:2px;transition:color .3s ease}.contact-link:hover,.section-mark{color:var(--accent)}.section-mark{text-align:center;padding:2.5rem 0;font-family:Fraunces,serif;font-style:italic;font-size:22px;opacity:.55;letter-spacing:.3em}footer{padding:6rem 2.5rem 4rem;text-align:center;font-family:Inter,sans-serif;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--secondary);position:relative;z-index:2}footer .sep{color:var(--accent);margin:0 .5rem}.placeholder{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:4rem 2.5rem;max-width:var(--col);margin:0 auto;position:relative;z-index:2}.placeholder h1{font-family:Fraunces,serif;font-variation-settings:"opsz" 120;font-size:clamp(40px,6vw,64px);line-height:1.08;letter-spacing:-.022em;font-weight:400;margin-bottom:1.5rem}.placeholder h1 .em{color:var(--accent);font-style:italic}.placeholder p{font-size:20px;line-height:1.65;color:var(--secondary);margin-bottom:2rem;max-width:480px}.placeholder .back-link{font-family:Inter,sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:3px;transition:color .3s ease}.placeholder .back-link:hover{color:var(--accent)}@media (max-width:700px){nav{padding:1.25rem 1.5rem}nav .links{gap:1.25rem}nav .links a,nav .name{font-size:10.5px;letter-spacing:.14em}.hero{padding:5rem 1.5rem 4rem}.content{padding:0 1.5rem}.beat-mission{padding:4rem 0 3rem}.beat-mission p{font-size:22px}.beat-mission p:last-child{font-size:19px}.beat-bridge{padding:1.5rem 0;text-align:left}.beat-bridge p{margin-left:0;max-width:100%}.beat-proof{padding:3rem 0 4rem}.beat-fit,.beat-people{padding:3.5rem 0}.beat-personal{padding:4rem 0 3rem}.photo-block{max-width:100%}.section-opener{font-size:25px;margin-bottom:1.8rem}.beat-fit .list-item,.beat-people p,.beat-personal p,.project p{font-size:17px}.beat-people p:last-child{font-size:18px}.beat-contact p,.beat-deeper p{font-size:16px}footer{padding:4rem 1.5rem 2.5rem}.section-mark{padding:1.5rem 0;font-size:18px}.placeholder{padding:3rem 1.5rem}.placeholder p{font-size:18px}}@media (prefers-reduced-motion:reduce){.beat,.hero h1,.hero-scroll{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}}.resume{max-width:760px;margin:0 auto;padding:7rem 2.5rem 4rem;position:relative;z-index:2}.resume-header{margin-bottom:3.5rem;padding-bottom:2rem;border-bottom:1px solid var(--accent-soft)}.resume-header h1{font-family:Fraunces,serif;font-variation-settings:"opsz" 120;font-size:clamp(38px,5.5vw,58px);line-height:1.08;letter-spacing:-.022em;font-weight:400;margin-bottom:.75rem}.resume-meta{font-size:15px;color:var(--secondary);line-height:1.6;margin-bottom:1.5rem}.resume-meta a{color:var(--secondary);text-decoration:none;border-bottom:1px solid var(--accent-soft);padding-bottom:1px;transition:color .3s ease,border-color .3s ease}.resume-meta a:hover{color:var(--accent);border-bottom-color:var(--accent)}.resume-actions{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.pdf-link{font-family:Inter,sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--bg);background:var(--accent);text-decoration:none;padding:.75rem 1.4rem;transition:background .3s ease,transform .2s ease;display:inline-block}.pdf-link:hover{background:#9a442f}.back-link{font-family:Inter,sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:3px;transition:color .3s ease}.back-link:hover{color:var(--accent)}.resume-section{margin-bottom:3.5rem}.resume-section.intro p{font-family:Fraunces,serif;font-size:20px;line-height:1.65;color:var(--text);font-style:italic;margin-bottom:0}.resume-section-title{font-family:Inter,sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--secondary);margin-bottom:2rem;padding-bottom:.75rem;border-bottom:1px solid var(--accent-soft)}.role{margin-bottom:2.25rem}.role:last-child{margin-bottom:0}.role.compressed{opacity:.85}.role-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.25rem;flex-wrap:wrap}.role-head h3{font-family:Fraunces,serif;font-size:20px;font-weight:500;line-height:1.3;color:var(--text);letter-spacing:-.01em}.role-dates{font-family:Inter,sans-serif;font-size:12px;font-weight:400;letter-spacing:.08em;color:var(--secondary);white-space:nowrap}.role-company{font-family:Fraunces,serif;font-style:italic;font-size:16px;color:var(--secondary);margin-bottom:.9rem}.role-note{font-size:15px;color:var(--secondary);line-height:1.55;margin-top:.5rem}.role ul{list-style:none;padding:0;margin:0}.role ul li{font-size:16px;line-height:1.65;color:var(--text);padding-left:1.25rem;position:relative;margin-bottom:.75rem}.role ul li:last-child{margin-bottom:0}.role ul li:before{content:"—";position:absolute;left:0;top:0;color:var(--accent);font-family:Fraunces,serif}.recognition-list{list-style:none;padding:0;margin:0}.recognition-list li{font-size:16px;line-height:1.7;color:var(--text);padding-left:1.25rem;position:relative;margin-bottom:.5rem}.recognition-list li:before{content:"—";position:absolute;left:0;top:0;color:var(--accent)}.recognition-list strong{font-weight:500;color:var(--text)}.skills-list{display:grid;grid-gap:1.1rem;gap:1.1rem}.skills-list>div{display:grid;grid-template-columns:160px 1fr;grid-gap:1.5rem;gap:1.5rem;align-items:baseline}.skills-list dt{font-family:Inter,sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--secondary)}.skills-list dd{font-size:16px;line-height:1.6;color:var(--text);margin:0}.resume-footer{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--accent-soft)}@media (max-width:700px){.resume{padding:5rem 1.5rem 3rem}.resume-header h1{font-size:34px}.resume-meta{font-size:14px}.resume-section.intro p,.role-head h3{font-size:18px}.role-dates{font-size:11.5px}.recognition-list li,.role ul li,.role-company,.skills-list dd{font-size:15px}.skills-list>div{grid-template-columns:1fr;gap:.35rem}.resume-actions{gap:1rem}}.work-page{max-width:760px;margin:0 auto;padding:7rem 2.5rem 4rem;position:relative;z-index:2}.work-header{margin-bottom:4rem}.eyebrow{font-family:Inter,sans-serif;font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:1.25rem}.work-header h1{font-family:Fraunces,serif;font-variation-settings:"opsz" 144;font-size:clamp(38px,5.8vw,64px);line-height:1.06;letter-spacing:-.025em;font-weight:400;margin-bottom:1.5rem;color:var(--text)}.work-header h1 .em{color:var(--accent);font-style:italic}.lede{font-family:Fraunces,serif;font-style:italic;font-size:19px;line-height:1.55;color:var(--secondary);max-width:560px}.work-list{border-top:1px solid var(--accent-soft)}.work-item{padding:2.4rem 0;border-bottom:1px solid var(--accent-soft)}.work-item.has-page{background:linear-gradient(90deg,rgba(184,84,58,.02),transparent);margin:0 -1rem;padding:2.4rem 1rem}.work-item.compressed{opacity:.8}.work-item-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.85rem;flex-wrap:wrap}.work-item h2{font-family:Fraunces,serif;font-variation-settings:"opsz" 96;font-size:24px;font-weight:500;line-height:1.2;letter-spacing:-.015em;color:var(--text)}.work-item h2 a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:2px;transition:color .3s ease}.work-item h2 a:hover,.work-item-badge{color:var(--accent)}.work-item-badge{display:inline-block;font-family:Inter,sans-serif;font-size:9.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;background:var(--accent-soft);padding:3px 8px;border-radius:3px;vertical-align:middle;margin-left:.5rem;position:relative;top:-2px}.work-item-meta{font-family:Inter,sans-serif;font-size:11.5px;font-weight:400;letter-spacing:.08em;color:var(--secondary);white-space:nowrap}.work-item p{font-size:17px;line-height:1.65;color:var(--text);margin-bottom:.9rem}.work-item p:last-child{margin-bottom:0}.work-item em{font-style:italic;color:var(--text);font-weight:500}.read-more{display:inline-block;font-family:Inter,sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:2px;margin-top:.75rem;transition:opacity .3s ease}.read-more:hover{opacity:.75}.work-footer{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--accent-soft)}.case-study{max-width:720px;margin:0 auto;padding:7rem 2.5rem 4rem;position:relative;z-index:2}.case-header{margin-bottom:4rem;padding-bottom:3rem;border-bottom:1px solid var(--accent-soft)}.case-header h1{font-family:Fraunces,serif;font-variation-settings:"opsz" 144;font-size:clamp(36px,5.4vw,56px);line-height:1.08;letter-spacing:-.022em;font-weight:400;margin-bottom:1.5rem;color:var(--text)}.case-header h1 .em{color:var(--accent);font-style:italic}.case-header .lede{font-style:normal;font-size:20px;line-height:1.6;color:var(--text);margin-bottom:2.5rem;max-width:620px}.case-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:1.25rem 2rem;gap:1.25rem 2rem;padding-top:1.5rem;border-top:1px solid var(--accent-soft)}.case-facts>div{display:block}.case-facts dt{font-family:Inter,sans-serif;font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--secondary);margin-bottom:.25rem}.case-facts dd{font-family:Fraunces,serif;font-size:15px;line-height:1.4;color:var(--text)}.case-facts dd a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--accent-soft);padding-bottom:1px;transition:color .3s ease,border-color .3s ease}.case-facts dd a:hover{color:var(--accent);border-bottom-color:var(--accent)}.case-section{margin-bottom:3.5rem}.case-section-title{font-family:Inter,sans-serif;font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:1.5rem}.case-section p{font-size:18px;line-height:1.7;margin-bottom:1.35rem;color:var(--text)}.case-section p:last-child{margin-bottom:0}.case-section strong{font-weight:600;color:var(--text)}.case-section em{font-style:italic;color:var(--text)}.case-section a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--accent-soft);padding-bottom:1px;transition:color .3s ease,border-color .3s ease}.case-section a:hover{color:var(--accent);border-bottom-color:var(--accent)}.case-reflection{background:linear-gradient(135deg,rgba(184,84,58,.03),transparent 60%);padding:2.5rem 2rem;margin-left:-2rem;margin-right:-2rem;border-radius:2px}.case-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1rem;gap:1rem;margin:2.25rem 0 1.75rem}.case-gallery figure{margin:0;display:flex;flex-direction:column;align-items:stretch}.case-gallery img{width:100%;height:auto;display:block;border-radius:14px;box-shadow:0 1px 0 rgba(26,22,19,.04),0 12px 28px -16px rgba(26,22,19,.18);background:#0d1330}.case-gallery figcaption{font-family:Inter,sans-serif;font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--secondary);margin-top:.7rem;text-align:center}.case-footer{margin-top:5rem;padding-top:2.5rem;border-top:1px solid var(--accent-soft);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.primary-link{font-family:Inter,sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--bg);background:var(--accent);text-decoration:none;padding:.75rem 1.4rem;transition:background .3s ease;display:inline-block}.primary-link:hover{background:#9a442f}@media (max-width:700px){.work-page{padding:5rem 1.5rem 3rem}.work-header h1{font-size:32px}.lede{font-size:17px}.work-item{padding:1.8rem 0}.work-item.has-page{margin:0 -.5rem;padding:1.8rem .5rem}.work-item h2{font-size:21px}.work-item p{font-size:16px}.work-item-meta{font-size:11px}.case-study{padding:5rem 1.5rem 3rem}.case-header h1{font-size:30px}.case-header .lede{font-size:18px}.case-facts{grid-template-columns:1fr;gap:1rem}.case-facts dd{font-size:14px}.case-section{margin-bottom:2.5rem}.case-section p{font-size:16px}.case-reflection{padding:2rem 1.25rem;margin-left:-1.25rem;margin-right:-1.25rem}.case-gallery{grid-template-columns:repeat(2,1fr);gap:.75rem;margin:1.75rem 0 1.25rem}.case-gallery img{border-radius:10px}.case-gallery figcaption{font-size:9.5px;margin-top:.5rem}.case-footer{flex-direction:column-reverse;align-items:stretch;gap:1.25rem}.primary-link{text-align:center}}