@font-face{font-family:'Dawning of a New Day';src:url('assets/dawning-of-a-new-day.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{--black:#050505;--white:#f6f3f0;--pink:#f593b7;--muted:#a4a0a2;--project-soft-focus:saturate(.85) blur(4px);--script:'Dawning of a New Day',cursive;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--black);color:var(--white);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default}img{display:block;max-width:100%;height:auto}button{background:none;border:0;padding:0}a:focus-visible,button:focus-visible{outline:2px solid var(--pink);outline-offset:7px}::selection{background:var(--pink);color:var(--black)}.section-width{width:min(1160px,calc(100% - 120px));margin-inline:auto}.pink{color:var(--pink)}.skip-link{position:fixed;top:12px;left:20px;z-index:999;background:var(--pink);color:#000;padding:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}
.header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:14px 42px;position:relative;z-index:20;gap:32px;background:var(--black)}.brand{width:140px;flex:none}.brand img{width:100%;height:55px;object-fit:contain}.desktop-nav{display:flex;gap:48px;align-items:center;margin-left:26px}.nav-link{position:relative;font-size:11px;text-transform:uppercase;letter-spacing:1.25px;color:var(--pink);white-space:nowrap;line-height:28px}.nav-link::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s}.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1)}.pill{display:inline-flex;align-items:center;justify-content:center;gap:18px;border:1px solid #dc8fa6;border-radius:30px;padding:11px 20px;font-size:10px;line-height:1;transition:background .25s,color .25s,border-color .25s}.pill:hover{background:var(--pink);color:#10070b;border-color:var(--pink)}.header-contact{color:#f6dce6;min-width:124px}.menu-toggle,.mobile-nav{display:none}
.hero{height:min(790px,calc(100svh - 100px));min-height:580px;position:relative;overflow:hidden}.hero-inner{height:100%;max-width:1440px;margin:auto;position:relative;isolation:isolate}.hero h1{position:absolute;top:31%;left:24%;margin:0;font-family:var(--script);font-size:clamp(105px,12.5vw,188px);font-weight:400;line-height:1.1;white-space:nowrap;letter-spacing:1px;z-index:2}.hero-note{position:absolute;left:39%;top:68%;font-family:var(--script);font-size:clamp(23px,2.1vw,32px);color:var(--pink);margin:0;z-index:2}.tulip{position:absolute;height:95%;width:auto;max-width:none;right:-35px;top:-1%;object-fit:contain;z-index:1;pointer-events:none}
.about{min-height:790px;display:grid;grid-template-columns:360px 1fr;gap:110px;align-items:center;padding:115px 80px 170px}.portrait-wrap{width:330px;transform:rotate(-2deg);transition:transform .5s}.portrait-wrap:hover{transform:rotate(0)}.portrait{width:100%;height:auto}.about-copy{max-width:440px}.about h2{font-size:80px;font-weight:400;letter-spacing:-3px;line-height:1;margin:0 0 28px}.about p{font-size:17px;line-height:1.42;margin:0 0 22px;font-weight:400;letter-spacing:-.15px}.skills{padding:10px 0 0;margin:0;list-style:none;font-size:13px;line-height:1.4;color:#aaa4a7}
.work{position:relative;isolation:isolate;padding-top:80px;padding-bottom:85px}.work::before{content:'';position:absolute;inset:200px 0 0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 140% 30% at 80% 40%,rgba(255,197,193,.94) 0%,rgba(217,161,160,.83) 30%,rgba(161,124,126,.52) 60%,transparent 100%)}.work-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:130px}.work-heading h2{font-size:78px;font-weight:400;line-height:.98;letter-spacing:-3px;text-transform:uppercase;margin:0}.work-count{font-size:10px;letter-spacing:2px;color:#9a8e93;padding-bottom:6px}.project-list{display:flex;flex-direction:column;gap:100px}.project{width:76%;margin:0}.project:nth-child(odd){align-self:flex-end}.project:nth-child(even){align-self:flex-start}.project:nth-child(3){margin-right:-15px}.project:nth-child(4){margin-left:20px}.project:nth-child(5){margin-right:-15px}.project-hit{position:relative;display:block;width:100%;aspect-ratio:2048/1151;overflow:hidden;border-radius:16px;background:#d8d5d3;text-align:left;isolation:isolate}.project-image{width:100%;height:100%;object-fit:cover;transition:filter .65s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}.project-hit::after{content:'';position:absolute;inset:0;background:rgba(255,255,255,.76);opacity:0;transition:opacity .5s;z-index:1;pointer-events:none}.project-hover{position:absolute;left:30px;right:130px;bottom:30px;z-index:2;color:#080808;opacity:0;transform:translateY(12px);transition:opacity .45s,transform .45s;pointer-events:none}.project-hover strong{display:block;font-size:clamp(20px,2vw,28px);font-weight:600;line-height:1.13;letter-spacing:-.5px;margin-bottom:16px}.project-hover span{display:block;font-size:14px;line-height:1.45}.static-arrow{position:absolute;bottom:27px;right:28px;width:85px;height:85px;border:1.3px solid #080808;border-radius:50%;align-items:center;justify-content:center;color:#080808;font-size:41px;z-index:3;opacity:0;display:flex;transition:opacity .3s}.project-caption{margin-top:18px;display:grid;grid-template-columns:1fr auto;gap:6px 24px}.project-caption h3{font-size:16px;line-height:1.25;font-weight:500;margin:0;letter-spacing:-.2px}.project-caption p{font-size:13px;line-height:1.4;margin:0;max-width:600px;grid-column:1;color:#e8e0e1}.project-number{font-size:10px;font-variant-numeric:tabular-nums;color:#c3b7b9;grid-column:2;grid-row:1;padding-top:3px}.work-end{display:flex;justify-content:center;margin-top:75px}.work-end .pill{text-transform:uppercase;font-size:9px;letter-spacing:.5px}.project-cursor{position:fixed;left:0;top:0;width:106px;height:106px;border:1.4px solid #080808;border-radius:50%;color:#080808;z-index:40;pointer-events:none;opacity:0;visibility:hidden;transform:translate(-50%,-50%) scale(.7);transition:opacity .18s,visibility .18s,scale .2s;display:grid;place-items:center;background:rgba(255,255,255,.08);box-shadow:0 2px 9px #00000012;will-change:left,top}.project-cursor svg{width:44px;height:44px}.project-cursor.visible{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}.project-hit:focus-visible .project-image{filter:var(--project-soft-focus);transform:scale(1.025)}.project-hit:focus-visible::after{opacity:1}.project-hit:focus-visible .project-hover{opacity:1;transform:translateY(0)}.project-hit:focus-visible .static-arrow{opacity:1}
@media(hover:hover) and (pointer:fine){.project-hit:hover{cursor:none}.project-hit:hover .project-image{filter:var(--project-soft-focus);transform:scale(1.025)}.project-hit:hover::after{opacity:1}.project-hit:hover .project-hover{opacity:1;transform:translateY(0)}.project-hit:hover:not(.cursor-tracking) .static-arrow{opacity:1}}
.eyebrow{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#ada2a6;margin:0 0 30px}
dialog{position:fixed;border:1px solid #393236;border-radius:0;background:#0b090a;color:var(--white);padding:0;width:calc(100% - 64px);max-width:1320px;max-height:calc(100svh - 64px);overscroll-behavior:contain}dialog::backdrop{background:#000c;backdrop-filter:blur(8px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;padding:26px 40px;border-bottom:1px solid #ffffff1c;position:sticky;top:0;background:#0b090af5;z-index:5}.dialog-brand{font-family:var(--script);font-size:31px;color:var(--pink)}.close-dialog{display:flex;gap:20px;align-items:center;font-size:11px;text-transform:uppercase;letter-spacing:1px}.close-dialog span{font-size:29px;font-weight:200}.dialog-content{padding:45px 60px 55px}.dialog-content .eyebrow{margin-bottom:16px}.dialog-content h2,.gallery-content h2{font-size:clamp(30px,4vw,56px);font-weight:400;letter-spacing:-1.5px;max-width:950px;line-height:1.1;margin:0 0 26px}.dialog-hero-image{width:100%;border-radius:10px;margin:35px 0;max-height:65vh;object-fit:contain;background:#e1dcda}.project-overview{display:grid;grid-template-columns:1fr 2fr;gap:60px;padding-top:4px}.project-overview dl{font-size:13px;line-height:1.6;margin:0}.project-overview dt{color:#9f9399;font-size:10px;letter-spacing:1px;text-transform:uppercase;margin-bottom:5px}.project-overview dd{margin:0 0 20px}.project-overview h3{font-size:24px;font-weight:400;margin:0 0 15px}.project-overview p{font-size:16px;line-height:1.6;color:#c6bfc2;margin:0}.dialog-bottom{display:flex;justify-content:space-between;margin-top:60px;padding-top:25px;border-top:1px solid #ffffff20;gap:30px}.dialog-bottom button{font-size:12px;line-height:1.5;text-align:left}.dialog-bottom button:last-child{color:var(--pink)}.gallery-content{padding:45px 60px 60px}.gallery-content>.eyebrow{margin-bottom:20px}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px 24px;margin-top:40px}.gallery-item{text-align:left}.gallery-item img{aspect-ratio:2048/1151;object-fit:cover;width:100%;border-radius:8px;transition:filter .3s}.gallery-item:hover img{filter:saturate(.85) blur(2px)}.gallery-item h3{font-size:16px;font-weight:400;margin:14px 0 6px;line-height:1.3}.gallery-item p{font-size:11px;color:#b8afb3;margin:0;line-height:1.4}
@media(min-width:1600px){.hero h1{left:23%}.tulip{right:0}.hero{height:850px}}
@media(max-width:1100px){.header{padding-inline:30px}.desktop-nav{gap:27px}.section-width{width:calc(100% - 80px)}.hero{min-height:530px;height:660px}.hero h1{left:18%;top:31%;font-size:14vw}.hero-note{left:32%;top:66%}.tulip{right:-100px;height:95%}.about{padding:100px 35px 130px;grid-template-columns:300px 1fr;gap:65px;min-height:650px}.portrait-wrap{width:290px}.about h2{font-size:70px}.about p{font-size:15px}.project{width:80%}.work-heading h2{font-size:65px}.work-heading{margin-bottom:100px}.project-list{gap:85px}.project-hover{left:25px;bottom:25px}.project-hover span{font-size:12px}.project-hover strong{font-size:23px}}
@media(max-width:760px){html{scroll-padding-top:32px}.section-width{width:calc(100% - 44px)}.header{height:82px;padding:12px 22px;gap:15px}.brand{width:114px}.brand img{height:45px}.desktop-nav{display:none}.header-contact{margin-left:auto;min-width:0;padding:10px 13px;font-size:9px;gap:11px}.menu-toggle{display:flex;width:30px;height:32px;flex-direction:column;justify-content:center;gap:7px;margin-left:6px}.menu-toggle span{display:block;width:27px;height:1px;background:var(--pink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-nav:not([hidden]){display:flex;position:absolute;top:82px;left:0;right:0;flex-direction:column;align-items:flex-start;gap:25px;padding:30px 30px 40px;background:#0b090afc;border-bottom:1px solid #3d2933;box-shadow:0 25px 35px #0005}.mobile-nav a,.mobile-nav button{font-size:14px;color:var(--pink)}.hero{height:640px;min-height:0;max-height:calc(100svh - 82px)}.hero h1{left:8%;top:30%;font-size:clamp(75px,18vw,136px);line-height:1.2;letter-spacing:0}.tulip{height:90%;right:-90px;top:0;opacity:.92}.hero-note{left:19%;top:65%;font-size:24px}.about{display:grid;grid-template-columns:42% 1fr;gap:26px;padding:75px 0 105px;min-height:560px;align-items:center}.portrait-wrap{width:100%}.about h2{font-size:54px;margin-bottom:20px;letter-spacing:-1px}.about p{font-size:12px;line-height:1.4;margin-bottom:17px}.skills{font-size:10px;line-height:1.45;padding-top:0}.work{padding-top:40px;padding-bottom:55px}.work-heading{margin-bottom:65px}.work-heading h2{font-size:49px;letter-spacing:-2px}.work-count{font-size:8px;letter-spacing:1px}.project{width:92%}.project:nth-child(3),.project:nth-child(5){margin-right:0}.project:nth-child(4){margin-left:0}.project-list{gap:58px}.project-hit{border-radius:9px}.project-caption{margin-top:12px;gap:6px 10px}.project-caption h3{font-size:13px}.project-caption p{font-size:11px;line-height:1.4}.project-number{font-size:8px}.project-hover{left:18px;bottom:18px;right:70px}.project-hover strong{font-size:19px;margin-bottom:8px}.project-hover span{font-size:10px}.static-arrow{width:50px;height:50px;right:15px;bottom:18px;font-size:26px}.work::before{inset:120px 0 0;background:radial-gradient(ellipse 160% 32% at 70% 42%,rgba(255,197,193,.92),rgba(217,161,160,.7) 36%,rgba(161,124,126,.4) 65%,transparent)}.work-end{margin-top:45px}.project-cursor{width:85px;height:85px}.project-cursor svg{width:35px;height:35px}dialog{width:calc(100% - 20px);max-height:calc(100svh - 30px)}.dialog-top{padding:16px 20px}.dialog-brand{font-size:26px}.close-dialog{font-size:9px;gap:12px}.dialog-content,.gallery-content{padding:30px 22px}.dialog-content h2,.gallery-content h2{font-size:32px;letter-spacing:-.8px}.dialog-hero-image{margin:24px 0}.project-overview{grid-template-columns:1fr;gap:12px}.project-overview dl{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.project-overview dt:nth-of-type(2){grid-column:2;grid-row:1}.project-overview dd:nth-of-type(2){grid-column:2;grid-row:2}.project-overview h3{font-size:22px}.project-overview p{font-size:14px}.gallery-grid{grid-template-columns:1fr;gap:28px}.dialog-bottom{gap:25px;margin-top:36px}.dialog-bottom button{font-size:11px}}
@media(max-width:420px){.hero{height:560px}.hero h1{font-size:20vw;left:7%;top:31%}.hero-note{left:21%;top:64%;font-size:21px}.tulip{right:-116px;height:86%;top:4%}.about{gap:23px;padding-top:65px;padding-bottom:90px;min-height:0}.about h2{font-size:48px}.about p{font-size:11px}.skills{font-size:9px}.project{width:96%}.project-hover strong{font-size:17px}.project-hover span{font-size:9px}.header-contact{padding:9px 11px;gap:8px}.work-heading h2{font-size:43px}}
@media(hover:none),(pointer:coarse){.project-cursor{display:none}.project-hit:active .project-image{filter:saturate(.85) blur(2px)}.project-hit .static-arrow{opacity:1;width:42px;height:42px;bottom:14px;right:14px;font-size:24px;background:#fff9;border-color:#1119}.project-hit:focus-visible .static-arrow{background:transparent}}

/* A handwritten entrance, then a small pink light sweep on hover. */
.hero h1{overflow:visible;animation:name-arrive 1.65s cubic-bezier(.22,.72,.18,1) .12s backwards}
.name-ink{display:inline-block;/* Give the font’s deep y descender room in the painted text layer. */padding:0 .08em .45em;margin:0 -.08em -.45em;overflow:visible;background:linear-gradient(110deg,#f6f3f0 0%,#f6f3f0 34%,#ffd9e9 43%,#f593b7 49%,#fff1f7 55%,#f6f3f0 65%,#f6f3f0 100%);background-size:270% 100%;background-position:100% 50%;background-clip:text;-webkit-background-clip:text;color:transparent;transition:filter .4s}
.name-sparkle{position:absolute;right:-.1em;top:.12em;font:normal .12em/1 Arial,sans-serif;color:var(--pink);opacity:0;transform:scale(.2) rotate(-35deg);transition:opacity .4s,transform .65s cubic-bezier(.22,.72,.18,1);pointer-events:none}
@keyframes name-arrive{0%{clip-path:inset(-45% 100% -70% -10%);opacity:0;transform:translateY(12px);filter:blur(3px)}25%{opacity:1}100%{clip-path:inset(-45% -20% -70% -10%);opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes name-shine{from{background-position:100% 50%}to{background-position:0% 50%}}
@media(hover:hover) and (pointer:fine){.hero h1:hover .name-ink{animation:name-shine 1.5s ease both;filter:drop-shadow(0 0 12px #f593b72b)}.hero h1:hover .name-sparkle{opacity:.9;transform:scale(1) rotate(25deg)}}


/* Contact footer follows the supplied screenshot. */
.contact{position:relative;isolation:isolate;overflow:hidden;padding:96px 0 34px}
.contact::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(158deg,#050505 17%,#050505 28%,#a38588 49%,#efb7b7 66%,#ffe4d7 82%,#fff7e5 100%)}
.contact .contact-inner{width:90%;max-width:1320px;margin-inline:auto}
.contact h2{font-size:clamp(27px,5.65vw,76px);font-weight:400;line-height:1.18;letter-spacing:0;margin:0 0 28px;color:#fff}
.contact .contact-button{border:1px solid #fff;border-radius:30px;min-height:26px;padding:6px 11px;font-size:10px;font-weight:600;line-height:12px;color:#fff;gap:0}
.contact .contact-button:hover{background:#fff;color:#32272d}
.contact .footer-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:74px;color:#fff;font-size:15px;line-height:21px}
.contact .footer-bottom .email{display:inline-block;font-size:15px;color:#fff;white-space:nowrap;text-decoration:none}
.contact .resume-link{font-size:15px;color:#fff;line-height:21px}
.contact .resume-link:hover{text-decoration:underline;text-underline-offset:3px}


/* The four pink Home navigation links follow the supplied header reference. */
.home-header{gap:24px}
.home-header .desktop-nav{display:flex;flex:1;justify-content:space-evenly;gap:clamp(12px,2vw,28px);margin-left:0}
.home-header .nav-link{font-size:clamp(9px,.97vw,14px);font-weight:400;line-height:1.2;letter-spacing:0;color:#ef94b3}
.home-header .nav-link::after{height:1px;bottom:0}
@media(max-width:760px){
  .home-header{height:auto;min-height:82px;flex-wrap:wrap;gap:14px 15px;padding-bottom:20px}
  .home-header .desktop-nav{order:3;display:flex;flex:0 0 100%;width:100%;justify-content:space-between;gap:clamp(8px,2vw,16px);margin:0}
  .home-header .nav-link{font-size:clamp(9px,1.4vw,11px);line-height:1.4}
  .home-header .menu-toggle{display:none}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Project titles and modal next links use the same native navigation as their covers. */
.project-caption h3 a:hover{text-decoration:underline;text-underline-offset:4px}
.dialog-bottom a{font-size:12px;line-height:1.5;color:var(--pink)}

/* Larger contact and portfolio actions, shared across all pages. */
.header-contact{font-size:16px;line-height:1.2;min-height:48px;padding:13px 24px;gap:22px;white-space:nowrap}
.work-end .pill{font-size:16px;line-height:1.2;min-height:52px;padding:15px 30px;gap:24px;white-space:nowrap}
.contact .contact-button{font-size:16px;line-height:1.25;min-height:46px;padding:12px 22px;white-space:nowrap}
@media(max-width:760px){
.header-contact{font-size:13px;min-height:44px;padding:11px 16px;gap:14px}
.work-end .pill{font-size:15px;min-height:48px;padding:14px 26px;gap:20px}
.contact .contact-button{font-size:15px;min-height:44px;padding:11px 20px}
}

/* Readable titles and descriptions below every project cover. */
.project-caption{margin-top:22px;gap:10px 24px}
.project-caption h3{font-size:22px;line-height:1.3}
.project-caption p{font-size:18px;line-height:1.5;max-width:780px}
@media(max-width:760px){
.project-caption{margin-top:16px;gap:8px 12px}
.project-caption h3{font-size:17px;line-height:1.35}
.project-caption p{font-size:14px;line-height:1.5}
}

/* Vector arrows keep their line appearance on iOS and Android. */
.arrow-icon{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.12em;overflow:visible}
.static-arrow .arrow-icon{width:1em;height:1em}
