@charset "UTF-8";
:root{--ink:#141414;--muted:#6c6970;--paper:#fbfafc;--line:#dedbe2;--accent:#77547d;--radius:5px;color-scheme:light;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:28px}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #795487;outline-offset:5px}button:disabled{opacity:.3;cursor:default}::selection{background:#e5d3ed}.wrap{width:min(1380px,calc(100% - 96px));margin-inline:auto}.skip{position:fixed;top:12px;left:12px;z-index:20;padding:14px;background:var(--ink);color:white;transform:translateY(-180%)}.skip:focus{transform:none}body:before{content:"";position:absolute;z-index:-1;inset:0 0 auto;height:970px;background:url('assets/pearl-background.webp') center 20%/cover no-repeat;opacity:.73;pointer-events:none;mask-image:linear-gradient(#000 72%,transparent)}.site-header{height:110px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-size:38px;font-weight:900;letter-spacing:-2.5px;display:inline-flex;align-items:center;gap:5px}.wordmark span{font-size:34px;line-height:1;font-weight:500}.site-header nav{display:flex;gap:37px;align-items:center;font-size:14px;font-weight:600}.site-header nav a:not(.nav-contact){padding:10px 0}.nav-contact{border:1px solid #b6b1b8;border-radius:30px;padding:13px 21px;display:flex;gap:25px;align-items:center}.nav-contact:hover{background:var(--ink);color:white;border-color:var(--ink)}.hero{padding-top:75px}.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:600;line-height:1.6;margin:0}.hero h1{font-family:'Arial Black',Arial,Helvetica,sans-serif;font-size:clamp(76px,10.6vw,158px);font-weight:900;letter-spacing:-.085em;line-height:1.08;margin:28px 0 48px}.period{color:#a47fa8}.hero-bottom{display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:end;padding-bottom:75px}.hero-bottom h2{font-size:clamp(32px,3.5vw,51px);line-height:1.07;font-weight:500;letter-spacing:-2.1px;margin:0}.hero-intro{max-width:390px;justify-self:end}.hero-intro p{font-size:16px;line-height:1.7;margin:0 0 25px;color:#555059}.text-link{font-size:14px;border-bottom:1px solid var(--ink);padding-bottom:7px;display:inline-flex;gap:28px;align-items:center;font-weight:600}.text-link:hover span{transform:translate(2px,2px)}.text-link span{transition:transform .2s}.hero-rule{display:flex;justify-content:space-between;border-top:1px solid #c9c3cd;padding-top:17px;font-size:10px;letter-spacing:1.2px;font-weight:600}.hero-rule span span{margin-left:22px}.work{padding-top:94px}.section-heading{display:flex;gap:20px;justify-content:space-between;align-items:baseline}.section-heading h2{font-weight:500;font-size:34px;letter-spacing:-1.2px;line-height:1.15;margin:0}.subtle-dot{color:#a47fa8}.work-count{font-size:10px;letter-spacing:1.3px;color:var(--muted);white-space:nowrap}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:29px 0 34px}.filters button{border:1px solid transparent;border-radius:30px;background:transparent;padding:10px 15px;font-size:12px;color:#615b64;transition:background .2s,color .2s}.filters button.active{background:var(--ink);color:white}.filters button:not(.active):hover{background:#eeebf0}.filters button span{opacity:.65;padding-left:8px}.project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 23px;min-height:200px}.project-card{display:block;width:100%;text-align:left;border:0;background:transparent;padding:0;min-width:0}.project-cover{width:100%;aspect-ratio:1;overflow:hidden;border-radius:var(--radius);background:#e7dfe7;position:relative}.project-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s cubic-bezier(.2,.7,.2,1),filter .3s}.project-card:hover .project-cover img{transform:scale(1.025);filter:brightness(.97)}.project-card:hover .card-label span:last-child{transform:translate(3px,-3px)}.card-label{display:flex;gap:10px;justify-content:space-between;align-items:baseline;padding-top:14px;font-size:13px;line-height:1.4;letter-spacing:-.15px}.card-label span:first-child{max-width:92%}.card-label span:last-child{font-size:16px;transition:transform .2s;flex-shrink:0}.gallery-note{display:flex;justify-content:space-between;padding:29px 0 0;border-top:1px solid var(--line);margin:50px 0 0;font-size:12px;color:var(--muted)}.about{padding-block:125px;display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:center}.about h2{font-size:clamp(38px,4.8vw,65px);font-weight:600;letter-spacing:-3px;line-height:1.02;margin:25px 0 0}.about-copy{max-width:480px}.about-copy p{font-size:15px;line-height:1.85;color:#625d66}.about-copy p:first-child{color:var(--ink);font-size:20px;line-height:1.6;margin-top:0}.about-copy .text-link{margin-top:15px}.contact{position:relative;overflow:hidden;padding-top:76px;background:#f2edf3}.contact:before{content:"";position:absolute;inset:0;background:url('assets/pearl-background.webp') center 92%/cover no-repeat;opacity:.65;pointer-events:none}.contact>.wrap{position:relative}.contact-row{display:flex;align-items:center;justify-content:space-between;gap:32px}.contact h2{font-size:clamp(58px,7.2vw,104px);font-weight:600;line-height:.98;letter-spacing:-5px;margin:31px 0 33px}.contact-circle{width:100px;height:100px;display:grid;place-items:center;border:1px solid #8c828e;border-radius:50%;font-size:54px;transition:background .2s,color .2s}.contact-circle:hover{background:var(--ink);color:white}.email{display:inline-block;font-size:20px;letter-spacing:-.4px;border-bottom:1px solid var(--ink);padding-bottom:5px;margin-bottom:75px}footer{border-top:1px solid #c9c3cd;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:28px;font-size:11px}footer .wordmark{font-size:30px}footer .wordmark span{font-size:27px}footer p{color:#69616d}dialog{border:0;border-radius:12px;max-width:none;width:min(1120px,94vw);max-height:92dvh;padding:28px 36px 22px;color:var(--ink);background:#fcfbfc;overscroll-behavior:contain;box-shadow:0 20px 120px #30253525}dialog::backdrop{background:#25202a80;backdrop-filter:blur(8px)}body.modal-open{overflow:hidden}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.dialog-top .eyebrow{color:var(--muted);letter-spacing:1.2px;font-size:10px}.icon-button{border:1px solid #d5cfd8;background:transparent;border-radius:50%;width:42px;height:42px;display:inline-grid;place-items:center;font-size:21px;flex-shrink:0}.icon-button:hover:not(:disabled){background:#eee8f0}.icon-button.close{font-size:30px;line-height:1}.dialog-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:end;margin:17px 0 25px}.dialog-heading h2{font-size:clamp(25px,3.3vw,43px);font-weight:600;letter-spacing:-1.5px;line-height:1.05;margin:0}.dialog-heading p{font-size:13px;line-height:1.65;color:#6b626d;margin:0;max-width:450px}.carousel-stage{height:min(59dvh,630px);display:flex;align-items:center;justify-content:center;background:#eee9ed;border-radius:5px;touch-action:pan-y;overflow:hidden}.carousel-stage img,.carousel-stage video{display:block;width:100%;height:100%;object-fit:contain}.carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:17px;font-size:12px;font-variant-numeric:tabular-nums}.carousel-controls>div{display:flex;gap:9px}.swipe-hint{font-size:9px;color:#8b818f;letter-spacing:1.2px}.scroll-gallery{display:flex;flex-direction:column;gap:22px;align-items:center}.scroll-gallery figure{margin:0;width:100%}.scroll-gallery figure.portrait{max-width:720px}.scroll-gallery img,.scroll-gallery video{display:block;width:100%;height:auto;border-radius:4px}.scroll-gallery figcaption{font-size:11px;color:var(--muted);margin-top:8px}.scroll-note{font-size:10px;letter-spacing:1px;color:var(--muted);padding-bottom:18px}.media-error{padding:24px;text-align:center;font-size:14px;color:var(--muted)}.load-message{font-size:14px;color:var(--muted)}[hidden]{display:none!important}
@media(min-width:1700px){body:before{background-position:center 18%}.hero{padding-top:105px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero{padding-top:60px}.hero h1{margin-bottom:40px}.hero-bottom{gap:35px;padding-bottom:60px}.hero-bottom h2{letter-spacing:-1.5px}.hero-intro p{font-size:14px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 20px}.section-heading h2{font-size:30px}.about{gap:50px;padding-block:100px}.about-copy p:first-child{font-size:18px}.contact h2{letter-spacing:-3.5px}}
@media(max-width:700px){.wrap{width:calc(100% - 36px)}.site-header{height:82px}.wordmark{font-size:32px}.wordmark span{font-size:29px}.site-header nav{gap:20px;font-size:12px}.nav-contact{padding:10px 13px;gap:13px}.hero{padding-top:45px}.eyebrow{font-size:9px;letter-spacing:1.3px}.hero h1{font-size:clamp(61px,13vw,90px);letter-spacing:-.075em;margin:28px 0 33px}.hero-bottom{grid-template-columns:1fr;gap:28px;padding-bottom:44px}.hero-bottom h2{font-size:36px;letter-spacing:-1.5px}.hero-intro{justify-self:start;max-width:100%}.hero-intro p{font-size:14px;margin-bottom:20px;line-height:1.7}.desktop-break{display:none}.hero-rule{font-size:8px;letter-spacing:.7px;padding-top:14px}.hero-rule span span{margin-left:5px}.work{padding-top:57px}.section-heading{align-items:center;gap:12px}.section-heading h2{font-size:25px;letter-spacing:-.9px;max-width:230px}.work-count{font-size:8px;letter-spacing:.8px}.filters{flex-wrap:nowrap;overflow-x:auto;max-width:calc(100% + 18px);margin:24px -18px 26px 0;padding-right:18px;padding-bottom:5px;scrollbar-width:none;gap:3px}.filters::-webkit-scrollbar{display:none}.filters button{white-space:nowrap;padding:10px 13px;font-size:11px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px 14px}.card-label{padding-top:10px;font-size:11px;line-height:1.45;gap:6px;letter-spacing:0}.card-label span:last-child{font-size:14px}.project-cover{border-radius:4px}.gallery-note{font-size:10px;margin-top:35px;padding-top:20px;line-height:1.6;gap:20px}.about{grid-template-columns:1fr;gap:30px;padding-block:75px}.about h2{font-size:49px;letter-spacing:-2px;margin-top:20px}.about-copy p:first-child{font-size:18px}.about-copy p{font-size:14px;line-height:1.8}.contact{padding-top:52px}.contact h2{font-size:57px;letter-spacing:-3px;margin-block:26px}.contact-circle{width:61px;height:61px;font-size:35px}.contact-row{gap:12px}.email{font-size:17px;margin-bottom:45px}footer{flex-wrap:wrap;padding-block:21px;gap:15px}footer p{order:3;flex-basis:100%;margin:0;font-size:10px}footer>a:last-child{margin-left:auto}dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:18px}.dialog-heading{grid-template-columns:1fr;gap:14px;margin-top:24px}.dialog-heading h2{font-size:32px;letter-spacing:-1.1px}.dialog-heading p{font-size:13px}.dialog-top{position:sticky;top:-18px;background:#fcfbfc;z-index:2;padding-block:5px}.dialog-top .eyebrow{max-width:75%}.carousel-stage{height:55dvh;min-height:220px}.carousel-controls{padding-top:15px}.swipe-hint{font-size:8px;letter-spacing:.5px}.scroll-gallery{gap:16px}.icon-button{width:42px;height:42px}body:before{height:900px;background-size:auto 1150px;background-position:center top;opacity:.8}}
@media(max-width:375px){.hero h1{font-size:59px}.site-header nav{gap:14px}.section-heading h2{font-size:23px}.contact h2{font-size:49px}.contact-circle{width:53px;height:53px}.card-label{font-size:10px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
.contact-links{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-bottom:75px}.contact-links .email{margin-bottom:0}.social-links{display:flex;gap:10px;align-items:center}.social-link{display:grid;place-items:center;width:44px;height:44px;border:1px solid #bcb0c2;border-radius:50%;transition:background .2s,color .2s,transform .2s}.social-link svg{width:22px;height:22px}.social-link:hover{background:var(--ink);color:white;transform:translateY(-2px)}@media(max-width:700px){.contact-links{gap:12px;margin-bottom:45px}.social-links{gap:7px}.contact-links .email{font-size:16px}.social-link{width:44px;height:44px}}

/* A simpler introduction lets the work lead. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero-bottom{display:block}.hero-intro{max-width:430px}.hero-rule{justify-content:flex-end}.section-heading{justify-content:flex-end}
body:before{opacity:1;filter:saturate(1.85)}.contact:before{opacity:1;filter:saturate(1.65)}
.hero-bottom{display:flex;flex-direction:column;align-items:flex-start}.hero-intro{justify-self:start;align-self:flex-start;margin-inline:0}
.hero-rule{justify-content:flex-start}

.media-post{display:flex;width:100%;height:100%;flex-direction:column;background:#132a42;padding:20px;gap:14px;align-items:center}.carousel-stage .media-post img{flex:1;min-height:0;width:100%;object-fit:contain}.media-post-caption{flex-shrink:0;display:block;border:1px solid #c9d4df;border-radius:24px;padding:12px 22px;color:#fff;font-size:13px;line-height:1.4}.media-post:hover .media-post-caption{background:#fff;color:#132a42}@media(max-width:700px){.media-post{padding:12px;gap:10px}}
.collage-frame{position:relative;aspect-ratio:1;width:min(100%,59dvh,630px);flex-shrink:0}.collage-frame>img{width:100%;height:100%;display:block}.collage-tile{position:absolute;background:transparent;border:0;padding:0;border-radius:0;cursor:zoom-in}.collage-tile:hover,.collage-tile:focus-visible{box-shadow:inset 0 0 0 3px #ffffffba;outline-offset:-5px}.tile-mark{position:absolute;right:9px;bottom:9px;width:27px;height:27px;display:grid;place-items:center;background:#141414bf;color:#fff;border-radius:50%;font-size:15px;line-height:1;pointer-events:none}.detail-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.detail-header h2{font-size:15px;line-height:1.5;font-weight:500;margin:0;color:#625b67}.detail-stage{height:min(75dvh,800px);display:flex;align-items:center;justify-content:center;background:#ede8ed;border-radius:5px}.detail-stage img,.detail-stage video{display:block;width:100%;height:100%;object-fit:contain}#media-dialog{width:min(1180px,96vw)}#media-dialog::backdrop{background:#18151dcc;backdrop-filter:blur(6px)}@media(max-width:700px){.collage-frame{width:min(100%,55dvh)}.tile-mark{right:5px;bottom:5px;width:23px;height:23px;font-size:13px}#media-dialog{width:100%}.detail-stage{height:78dvh}.detail-header{margin-bottom:18px}.detail-header h2{font-size:12px;max-width:80%}}
#project-dialog[open]:has(.carousel-stage){display:flex;flex-direction:column;height:92dvh;overflow:hidden}#project-dialog:has(.carousel-stage) .dialog-top,#project-dialog:has(.carousel-stage) .dialog-heading,#project-dialog:has(.carousel-stage) .carousel-controls{flex-shrink:0}#project-dialog:has(.carousel-stage) #project-media{min-height:0;flex:1;display:flex;align-items:center;justify-content:center}#project-dialog:has(.carousel-stage) .carousel-stage{height:100%;width:100%;min-height:0;container-type:size}#project-dialog .carousel-stage .collage-frame{width:100cqmin;height:100cqmin;max-width:100%;max-height:100%}@media(max-width:700px){#project-dialog[open]:has(.carousel-stage){height:100dvh}.dialog-heading{margin-top:18px;margin-bottom:18px}}
.work{padding-bottom:100px}.contact-links .cv-link{white-space:nowrap;gap:12px;font-size:16px;padding-bottom:5px}@media(max-width:700px){.work{padding-bottom:64px}.contact-links .cv-link{font-size:15px}}

/* Square mosaic inspired by the supplied layout; captions stay beneath the artwork. */
@media(min-width:901px){
  .work{container-type:inline-size}
  .project-grid{--mosaic-gap:40px;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:calc((100cqw - 6 * var(--mosaic-gap))/7);gap:var(--mosaic-gap);padding-bottom:34px}
  .project-card{grid-column:var(--column)/span var(--span);grid-row:var(--row)/span var(--span);position:relative;align-self:start;aspect-ratio:1}
  .project-cover{height:100%;border-radius:2px}
  .card-label{position:absolute;top:100%;left:0;right:0;padding-top:8px;font-size:11px;line-height:1.3;gap:5px}
  .card-label span:last-child{font-size:13px}
  .card-label span:first-child{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
}
@media(max-width:700px){
  .project-card:nth-child(5n+1){grid-column:1/-1}
}

/* Reveal once, with a small desktop scroll drift; no animation libraries. */
.ease-in{opacity:0;transform:translate3d(0,22px,0);transition:opacity 1.15s ease var(--entrance-delay,0ms),transform 1.25s cubic-bezier(.2,.65,.25,1) var(--entrance-delay,0ms)}
.ease-in.is-visible,.ease-in:focus-within{opacity:1;transform:translate3d(0,var(--drift,0px),0)}
@media(prefers-reduced-motion:reduce){.ease-in{opacity:1;transform:none!important;transition:none!important}}
.instagram-media{display:flex;flex-direction:column;width:min(100%,360px);height:100%;min-height:0;background:#fff}.instagram-media iframe{width:100%;flex:1;min-height:0;border:0;background:white}.instagram-fallback{flex-shrink:0;padding:12px 16px;text-align:center;font-size:12px;text-decoration:underline;text-underline-offset:4px;background:#fcfbfc}
@media(hover:hover) and (pointer:fine){
  html,body{cursor:url('assets/asterisk-cursor.svg') 16 16,auto}
  a,button,.collage-tile{cursor:url('assets/asterisk-cursor.svg') 16 16,pointer}
  button:disabled{cursor:default}
}
.site-header{justify-content:flex-end}
.chrome-name{display:inline-block;color:#73717c;background-image:linear-gradient(125deg,#272630 0%,#666774 10%,#edf6f0 18%,#b8b1d0 25%,#4c4959 31%,#f4dfee 38%,#fff 42%,#787d87 47%,#292933 51%,#d3eae4 58%,#faf1f7 65%,#a69db9 72%,#373742 80%,#e7e4ec 90%,#737783 100%);background-size:260% 260%;background-position:50% 50%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;-webkit-text-stroke:.45px #77717e;filter:drop-shadow(0 1px 0 #c9c4d0);animation:pearl-flow 11s ease-in-out infinite alternate}
@keyframes pearl-flow{from{background-position:calc(12% + var(--chrome-x,0px)) calc(30% + var(--chrome-y,0px))}to{background-position:calc(90% + var(--chrome-x,0px)) calc(70% + var(--chrome-y,0px))}}
@media(prefers-reduced-motion:reduce){.chrome-name{animation:none;background-position:50% 50%}}
.hero h1{letter-spacing:-.065em}
.chrome-name{letter-spacing:-.055em;padding:.08em .045em .2em 0;margin-block:-.08em -.2em;-webkit-text-stroke:.25px #77717e;filter:none}
footer{justify-content:flex-end}
