:root{--surface:#fff;--on-accent:#fff;--soft:#f5f6f4;--dock-bg:rgba(255,255,255,.96);--hover-bg:#f0f3ee;--active-bg:#eef1ea;--input-line:#bfc4be;--placeholder:#777d77;--ink:#171918;--olive:#69735a;--copper:#b87855;--muted:#656a65;--line:#e5e7e4;--pad:clamp(24px,5vw,90px);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--surface);color:var(--ink);font-family:"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}::selection{background:var(--olive);color:var(--on-accent)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;border:0;background:none}img{max-width:100%;display:block}figure,h1,h2,h3,p{margin:0;font-weight:400}em{font-family:Georgia,"Times New Roman",serif;font-weight:400}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--olive);outline-offset:5px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:20px;z-index:600;background:var(--ink);color:var(--surface);padding:16px}.skip-link:focus{top:12px}
/* The existing signature is revealed through a brush mask, never redrawn. */
.signature-intro{display:none;position:fixed;inset:0;z-index:400;background:var(--surface);pointer-events:auto;align-items:center;justify-content:center;flex-direction:column;gap:32px}.intro-playing .signature-intro{display:flex;animation:intro-away .55s 2.05s var(--ease) forwards}.intro-signature{width:min(54vw,620px);height:auto;overflow:visible;color:var(--ink)}.intro-playing .intro-signature{animation:ink-color 2.05s ease both}.signature-stroke{stroke-dasharray:1;stroke-dashoffset:1}.intro-playing .signature-stroke{animation:write-signature 1.8s .1s cubic-bezier(.45,0,.15,1) forwards}.intro-playing .signature-ink{animation:finish-signature .01s 1.95s forwards}.intro-name{font-size:10px;letter-spacing:.35em;opacity:0}.intro-playing .intro-name{animation:name-in .6s 1.1s both}.intro-playing:not(.intro-revealing) .headline-line>span,.intro-playing:not(.intro-revealing) .hero-photo{animation-play-state:paused}.intro-playing .photo-float{animation-play-state:paused}
@keyframes write-signature{to{stroke-dashoffset:0}}@keyframes finish-signature{to{mask:none}}@keyframes ink-color{0%,15%{color:var(--ink)}45%{color:var(--olive)}75%{color:var(--copper)}100%{color:var(--ink)}}@keyframes intro-away{to{opacity:0;visibility:hidden;transform:translateY(-3%)}}@keyframes name-in{to{opacity:1}}
.button{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:16px 27px;border:1px solid var(--ink);border-radius:100px;background:var(--ink);color:var(--surface);font-size:13px;line-height:1.2;font-weight:500;overflow:hidden;transition:background .3s,border-color .3s,color .3s,transform .4s var(--ease),box-shadow .4s}.button:hover{background:var(--olive);border-color:var(--olive);color:var(--on-accent);transform:translateY(-2px);box-shadow:0 6px 18px #1719180c}.button:active{transform:translateY(0);box-shadow:none}.button-small{min-height:44px;padding:13px 23px}.button-outline{color:var(--ink);background:var(--surface);border-color:var(--line)}.button-outline:hover{background:var(--ink);border-color:var(--ink);color:var(--surface)}.text-link{display:inline-block;border-bottom:1px solid currentColor;padding:8px 0;font-size:13px}
.hero{height:240svh;min-height:1000px}.hero-sticky{height:100svh;min-height:720px;position:sticky;top:0;overflow:hidden;padding:138px var(--pad) 30px}.hero-label{font-size:12px;color:var(--muted)}.hero h1{font-size:clamp(70px,8.7vw,150px);line-height:.98;letter-spacing:-.065em;position:relative;z-index:4;margin-top:28px;pointer-events:none;will-change:transform,opacity}.headline-line{display:block;overflow:visible;padding-bottom:.12em}.headline-line>span{display:block;animation:title-in 1.35s var(--ease) both}.headline-line.second{margin-left:17vw}.headline-line.second>span{animation-delay:.15s}.hero h1 em{letter-spacing:-.065em}.hero-composition{position:absolute;left:0;top:45%;width:100%;height:47%}.hero-photo{position:absolute;aspect-ratio:4/5;will-change:transform;animation:photo-in 1.4s var(--ease) both}.photo-float{display:block;height:100%;width:100%;animation:photo-breathe var(--loop-duration,14s) ease-in-out infinite;animation-delay:var(--float-delay,0s)}.hero-photo img{width:100%;height:100%;object-fit:cover}.hp-space{width:16%;left:6%;top:6%;--float-delay:-2s}.hp-food{width:15%;left:25%;top:25%;--float-delay:-5s}.hp-portrait{width:21%;left:44%;top:-2%;z-index:3}.hp-fashion{width:16%;left:73%;top:18%;--float-delay:-3s}
.manifesto{height:120svh;min-height:0}.manifesto-sticky{height:65svh;min-height:300px;position:sticky;top:0;display:grid;place-items:center;overflow:hidden}.manifesto h2{width:100%;font-size:clamp(54px,9vw,145px);line-height:1.2;letter-spacing:-.065em;text-align:center}.word-stage{display:block;position:relative;height:1.55em;overflow:hidden}.word-slide{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;gap:.23em;white-space:nowrap;opacity:0;will-change:transform,opacity}.word-slide:first-child{opacity:1}.word-slide:nth-child(2) em{color:var(--copper)}.word-slide:nth-child(3) em{color:var(--olive)}.word-slide:nth-child(4) em{color:var(--ink)}
.section-pad{padding:110px var(--pad)}h2{font-size:clamp(46px,5.5vw,88px);letter-spacing:-.06em;line-height:1.08}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:55px}.work{padding-top:60px}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px 7vw;align-items:start}.project{min-width:0}.project:nth-child(even){margin-top:100px}.project-image{display:block;width:100%;padding:0;overflow:hidden;aspect-ratio:4/5;background:var(--soft);cursor:zoom-in}.project:nth-child(3n) .project-image{aspect-ratio:1.05}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease);transform:scale(1.01)}.project-image:hover img{transform:scale(1.045)}
.services{border-top:1px solid var(--line)}.service-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:12vw;margin-top:65px;align-items:center}.service-image{overflow:hidden;aspect-ratio:4/5}.service-image img{width:100%;height:100%;object-fit:cover}.service{border-bottom:1px solid var(--line)}.service:first-child{border-top:1px solid var(--line)}.service summary{list-style:none;font-size:clamp(20px,2.2vw,34px);letter-spacing:-.04em;cursor:pointer;padding:27px 0;transition:color .25s}.service summary::-webkit-details-marker{display:none}.service summary:hover,.service[open] summary{color:var(--olive)}.service>div{padding:0 24px 28px 0;animation:fade-up .5s var(--ease)}.service p{font-size:15px;line-height:1.7;color:var(--muted);max-width:370px}.service a{display:inline-flex;min-height:44px;align-items:center;font-size:12px;margin-top:14px;text-decoration:underline;text-underline-offset:6px}
.about{display:grid;grid-template-columns:1fr 1fr;gap:60px 12vw;border-top:1px solid var(--line)}.about-portrait{width:112px;height:140px;object-fit:cover;margin-top:45px;filter:grayscale(1)}.about-copy{padding-top:10px}.about-copy p{font-size:16px;line-height:1.8;color:var(--muted);margin-bottom:26px;max-width:510px}.about-copy .lead{font-size:clamp(26px,3.2vw,46px);line-height:1.25;letter-spacing:-.04em;color:var(--ink);margin-bottom:30px}.about-signature{width:160px;height:auto;margin-top:40px}.social-section{padding-top:50px}.social-links{margin-top:55px}.social-links a{display:grid;grid-template-columns:1fr 1.4fr;gap:30px;border-top:1px solid var(--line);padding:29px 0;align-items:center;transition:color .3s,padding .4s var(--ease)}.social-links a:last-child{border-bottom:1px solid var(--line)}.social-links a:hover{padding-left:10px;color:var(--olive)}.social-links span{font-size:13px;color:var(--muted)}.social-links strong{font-size:clamp(18px,2.4vw,38px);font-weight:400;letter-spacing:-.04em}
.contact{border-top:1px solid var(--line)}.contact h2{font-size:clamp(65px,9vw,145px);margin-bottom:65px}.contact-bottom{display:grid;grid-template-columns:1fr 1fr;gap:12vw}.contact-copy .button{background:var(--olive);border-color:var(--olive);color:var(--on-accent)}.contact-copy .button:hover{background:var(--ink);border-color:var(--ink);color:var(--surface)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:26px}form label{display:block;font-size:12px;margin-bottom:28px}.optional{color:var(--muted);font-size:10px}input,textarea,select{display:block;width:100%;color:var(--ink);background:var(--surface);border:0;border-bottom:1px solid var(--input-line);border-radius:0;padding:15px 0 12px;font-size:14px;line-height:1.5;min-height:48px}input::placeholder,textarea::placeholder{color:var(--placeholder)}select option{background:var(--surface);color:var(--ink)}textarea{resize:vertical;min-height:85px;max-height:250px}.form-note{font-size:11px;line-height:1.5;margin-top:18px;color:var(--muted)}#form-result{margin-top:25px}#form-result p{margin-bottom:15px;font-size:14px}footer{border-top:1px solid var(--line);padding:30px var(--pad);display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:11px;color:var(--muted)}footer a{padding:10px 0}
dialog{padding:0;border:0;max-width:none;max-height:none;inset:0;width:100%;height:100svh;background:var(--ink);color:var(--surface)}dialog::backdrop{background:#171918ed}.lightbox-top{display:flex;justify-content:flex-end;align-items:center;height:75px;padding:0 var(--pad)}.lightbox-top button{font-size:13px;min-height:44px;padding:10px 20px;border:1px solid #ffffff35;border-radius:100px}.lightbox-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:6vw;align-items:center;padding:0 var(--pad) 35px;height:calc(100svh - 75px)}.lightbox-image-wrap{height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.lightbox-image-wrap>img{max-height:calc(100% - 60px);min-height:0;max-width:100%;object-fit:contain}.lightbox-nav{display:flex;gap:16px}.lightbox-nav button{min-width:90px;min-height:44px;font-size:12px;border-radius:100px;border:1px solid #ffffff35;transition:background .25s}.lightbox-nav button:hover,.lightbox-top button:hover{background:#ffffff15}.lightbox-copy h2{font-size:clamp(34px,4.5vw,70px);letter-spacing:-.055em;margin-bottom:30px}.lightbox-copy .text-link{display:table;margin-bottom:30px;color:#d2d6cf}.lightbox-copy .button{background:var(--surface);color:var(--ink);border-color:var(--surface)}.reveal{opacity:1;transform:none}.js-motion .reveal{opacity:0;transform:translateY(32px);transition:opacity .9s var(--ease),transform 1s var(--ease)}.js-motion .reveal.visible{opacity:1;transform:none}.noscript{padding:30px;text-align:center}.noscript a{text-decoration:underline}.offscreen .photo-float{animation-play-state:paused}
@keyframes title-in{from{transform:translateY(110%) rotate(2deg)}to{transform:none}}@keyframes photo-in{from{opacity:0;translate:0 60px}to{opacity:1;translate:0 0}}@keyframes photo-breathe{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(.45deg)}}@keyframes fade-up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-height:800px) and (min-width:901px){.hero-sticky{min-height:680px;padding-top:115px}.hero h1{font-size:7.8vw;margin-top:20px}.hero-composition{top:43%}.hp-space,.hp-fashion{width:14%}.hp-food{width:13%;left:27%}.hp-portrait{width:18%;left:45%}}
@media(min-width:1800px){.hero-composition{max-width:1750px;left:50%;translate:-50% 0}.hero-sticky{max-height:1250px}.hero h1{max-width:1600px;margin-left:auto;margin-right:auto}}
@media(max-width:1000px){.hero h1{font-size:10vw}.headline-line.second{margin-left:8vw}.hp-space{width:20%;left:2%}.hp-food{width:21%;left:22%;top:29%}.hp-portrait{width:28%;left:43%}.hp-fashion{width:21%;left:77%}.section-heading{display:block}.service-layout{gap:6vw}.about{gap:55px 7vw}.contact-bottom{gap:6vw}.section-pad{padding-top:85px;padding-bottom:85px}.work{padding-top:45px}}
@media(max-width:600px){html{scroll-padding-top:20px}.intro-signature{width:72vw}.intro-name{font-size:8px;letter-spacing:.3em}.hero{height:220svh;min-height:1000px}.hero-sticky{min-height:650px;padding-top:115px}.hero-label{font-size:11px}.hero h1{font-size:13.5vw;line-height:1.05;margin-top:28px}.headline-line.second{margin-left:0}.hero-composition{top:45%;height:39%}.hp-space{width:29%;left:-12%;top:13%}.hp-food{width:31%;left:6%;top:26%}.hp-portrait{width:47%;left:30%;top:0}.hp-fashion{width:30%;left:81%;top:19%}.manifesto{height:120svh;min-height:0}.manifesto h2{font-size:12.6vw}.manifesto-sticky{min-height:300px}.word-stage{height:1.65em}.section-pad{padding:70px var(--pad)}h2{font-size:12vw}.section-heading{margin-bottom:32px}.work-grid{gap:22px 16px}.project:nth-child(even){margin-top:55px}.project:nth-child(3n) .project-image{aspect-ratio:4/5}.work{padding-top:35px}.service-layout{display:flex;flex-direction:column;align-items:stretch;gap:30px;margin-top:35px}.service-image{aspect-ratio:1.3}.service-image img{object-position:50% 35%}.service summary{font-size:23px;padding:25px 0}.service p{font-size:14px}.about{display:block}.about-heading{display:flex;align-items:center;justify-content:space-between;gap:25px}.about-portrait{width:70px;height:88px;margin:0}.about-copy{padding-top:40px}.about-copy .lead{font-size:29px}.about-copy p{font-size:14px}.about-signature{width:140px;margin-top:28px}.social-section{padding-top:25px}.social-links{margin-top:35px}.social-links a{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:25px 0}.social-links strong{font-size:27px}.social-links span{font-size:11px}.contact h2{font-size:17vw;margin-bottom:35px}.contact-bottom{grid-template-columns:1fr;gap:45px}.form-row{gap:20px}form label{font-size:11px}footer{display:grid;grid-template-columns:1fr 1fr;gap:15px 20px;font-size:10px}footer>span{justify-self:end}.lightbox-top{height:65px}.lightbox-layout{height:calc(100svh - 65px);grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:20px;padding-bottom:25px}.lightbox-copy h2{font-size:30px;margin-bottom:15px}.lightbox-copy .text-link{display:inline-flex;font-size:11px;margin:0 18px 0 0}.lightbox-copy .button{font-size:11px;padding:14px 18px;min-height:44px}.lightbox-nav button{font-size:11px}.lightbox-image-wrap{gap:8px}}
@media(max-width:360px){.form-row{grid-template-columns:1fr;gap:0}}
body.motion-off *,body.motion-off *:before,body.motion-off *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.motion-off .signature-intro{display:none}body.motion-off .hero{height:auto;min-height:0}body.motion-off .hero-sticky{position:relative}body.motion-off .hero h1{transform:none!important;opacity:1!important}body.motion-off .hero-photo{transform:rotate(var(--base-angle,0deg))!important;opacity:1!important}body.motion-off .manifesto{height:auto;min-height:0;padding:60px var(--pad)}body.motion-off .manifesto-sticky{position:relative;height:auto;min-height:0}body.motion-off .word-stage{height:auto;overflow:visible}body.motion-off .word-slide{position:relative;opacity:1!important;transform:none!important;line-height:1.5}body.motion-off .manifesto h2{font-size:clamp(36px,7vw,90px)}body.motion-off .reveal{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.signature-intro{display:none!important}.reveal{opacity:1!important;transform:none!important}.hero{height:auto;min-height:0}.hero-sticky{position:relative}.manifesto{height:auto;min-height:0;padding:60px var(--pad)}.manifesto-sticky{position:relative;height:auto;min-height:0}.word-stage{height:auto}.word-slide{position:relative;opacity:1!important;transform:none!important;line-height:1.5}.manifesto h2{font-size:clamp(36px,7vw,90px)}}

.reveal-word{display:inline-block;overflow:visible;vertical-align:baseline;padding:.12em .16em .18em;margin:-.12em -.16em -.18em}.reveal-word>span{display:inline-block}.js-motion .reveal:has(.reveal-word){opacity:1;transform:none}.js-motion .reveal .reveal-word>span{opacity:0;transform:translateY(.6em);transition:transform 1s var(--ease),opacity .8s;transition-delay:var(--word-delay,0s)}.js-motion .reveal.visible .reveal-word>span{opacity:1;transform:none}body.motion-off .reveal-word>span{opacity:1!important;transform:none!important}@media(prefers-reduced-motion:reduce){.reveal-word>span{opacity:1!important;transform:none!important}}

/* A single, persistent navigation capsule, adapted from the supplied reference. */
:root{--dock-space:110px}
html{scroll-padding-bottom:var(--dock-space)}
.bottom-dock{position:fixed;z-index:200;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(980px,calc(100% - 48px));min-height:76px;padding:10px 12px 10px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid var(--line);border-radius:999px;background:var(--dock-bg);box-shadow:0 8px 36px #17191812;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.dock-brand{min-height:48px;min-width:80px;display:flex;align-items:center;justify-content:center;padding:8px 0}.dock-brand img{width:104px;height:auto}.dock-links{display:flex;align-items:center;gap:8px}.dock-links a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:48px;border-radius:999px;padding:14px 23px;font-size:13px;white-space:nowrap;transition:background .3s,color .3s,transform .3s var(--ease)}.dock-links a:hover{background:var(--hover-bg);transform:translateY(-2px)}.dock-links a[aria-current]{background:var(--active-bg);color:var(--olive)}.dock-links .dock-contact{background:var(--olive);color:var(--on-accent)}.dock-links .dock-contact:hover,.dock-links .dock-contact[aria-current]{background:var(--ink);color:var(--surface)}.dock-brand:focus-visible,.dock-links a:focus-visible{outline-offset:2px}
.hero-sticky{padding-top:80px}.hero h1{margin-top:25px}.hero-composition{top:42%}
.contact-location{font-size:12px;line-height:1.8;margin-top:25px;color:var(--muted)}
footer{padding-bottom:calc(var(--dock-space) + env(safe-area-inset-bottom));justify-content:space-between}
/* Word masks no longer clip italic overhangs or punctuation. */
h2{line-height:1.18}.contact h2{line-height:1.12}.word-stage{height:1.7em}.word-slide{padding:.15em .25em}.reveal-word>span{padding-right:.03em;margin-right:-.03em}
/* Photographs enter softly, then remain still for viewing. */
.work{overflow:clip}.project{--gallery-x:0px;--gallery-y:0px;--gallery-rotation:0deg;--gallery-opacity:1;transform:translate3d(var(--gallery-x),var(--gallery-y),0) rotate(var(--gallery-rotation));opacity:var(--gallery-opacity)}.project-image{position:relative}.gallery-visual{display:block;width:100%;height:100%;overflow:hidden}.project:focus-within{transform:none!important;opacity:1!important}
.intro-static .signature-intro{display:flex!important}.intro-static .signature-ink{mask:none}.intro-static .intro-name{opacity:1}
@media(max-height:800px) and (min-width:901px){.hero-sticky{padding-top:65px}.hero-composition{top:42%}}
@media(max-width:700px){.bottom-dock{width:calc(100% - 24px);min-height:62px;padding:7px 8px 7px 14px;gap:8px;bottom:max(12px,env(safe-area-inset-bottom))}.dock-brand{min-width:48px;min-height:44px}.dock-brand img{width:56px}.dock-links{gap:2px}.dock-links a{font-size:11px;min-height:44px;min-width:44px;padding:11px 12px}.hero-sticky{padding-top:65px}.hero-composition{top:41%}.contact h2{font-size:16.2vw}.bottom-dock+.hero{padding-top:0}}
@media(max-width:420px){.dock-brand img{width:47px}.dock-links a{padding:11px 8px}.bottom-dock{gap:5px}.dock-brand{min-width:46px}.hero-label{font-size:10px}.hero h1{margin-top:26px}}
@media(max-width:360px){.bottom-dock{padding-left:9px;gap:2px}.dock-links{gap:0}.dock-links a{padding:10px 7px;font-size:10px}.dock-brand{min-width:42px}.dock-brand img{width:40px}}
body.motion-off .project{transform:none!important;opacity:1!important}body.motion-off .gallery-visual img{transform:none!important}
@media(prefers-reduced-motion:reduce){.project{transform:none!important;opacity:1!important}.gallery-visual img{transform:none!important}.intro-static .signature-intro{display:flex!important}.intro-static .intro-signature{animation:none!important}}

/* The first-paint cover hands off directly to the signature, then the page. */
html.intro-active{overflow:hidden}
html.intro-pending .headline-line>span,html.intro-pending .hero-photo,html.intro-pending .photo-float{animation-play-state:paused}
.hero-photo a:focus-visible{outline-offset:6px}
.hero-label{position:relative;z-index:4;line-height:1.6;will-change:transform,opacity}
body.motion-off .hero-label{transform:none!important;opacity:1!important}
@media(prefers-reduced-motion:reduce){.hero-label{transform:none!important;opacity:1!important}}
.creative-tools{padding-top:5px;margin-top:32px}
.creative-tools p{font-size:12px;margin-bottom:24px}
.creative-tools ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;list-style:none;padding:0;margin:0;max-width:510px}
.creative-tools li{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;color:var(--ink)}
.creative-tools img{width:42px;height:42px;object-fit:contain}
.creative-tools li span{font-size:11px;line-height:1.45;max-width:88px}
@media(max-width:600px){.creative-tools{margin-top:26px}.creative-tools ul{gap:10px}.creative-tools li{gap:12px}.creative-tools img{width:36px;height:36px}.creative-tools li span{font-size:10px}}
@media(min-width:601px) and (max-width:900px){.creative-tools ul{gap:10px}.creative-tools img{width:36px;height:36px}.creative-tools li span{font-size:10px}}

/* Compact contact, readable tools and restrained studio credit. */

.project-brief{align-self:start}.project-brief>summary{list-style:none;cursor:pointer;min-height:50px;max-width:100%;padding:16px 27px;font-size:13px;border-color:var(--ink)}.project-brief>summary::-webkit-details-marker{display:none}.project-brief>summary::marker{content:""}.project-brief[open]>summary{background:var(--ink);color:var(--surface)}.project-brief form{padding-top:28px}
input,textarea,select{font-size:16px}form label,.optional,.form-note{font-size:12px}
.contact-social{margin-top:48px}.contact-social>p{font-size:13px;color:var(--muted)}.contact-social .social-links{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:12px}.contact-social .social-links a{display:flex;gap:8px;min-height:44px;padding:8px 0;border:0}.contact-social .social-links strong{font-size:14px;letter-spacing:0}.contact-social .social-links span{font-size:12px}
.creative-tools li span{font-size:12px}.analit-credit{display:inline-flex;align-items:center;gap:8px;min-height:44px;white-space:nowrap}.analit-logo{display:block;position:relative;width:84px;height:22px;overflow:hidden}.analit-logo img{position:absolute;width:92px;max-width:none;height:92px;left:-4px;top:-36px}footer{flex-wrap:wrap;font-size:12px}.about-portrait{width:84px;height:84px}
@media(max-width:700px){.dock-links a{font-size:12px;padding-inline:10px}.creative-tools ul{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:24px}.contact-social .social-links a{flex-direction:column;align-items:flex-start;gap:4px}.contact h2{font-size:15vw}}
@media(max-width:360px){.dock-links a{font-size:12px;padding-inline:6px}.dock-brand img{width:32px}.dock-brand{min-width:34px}.bottom-dock{gap:0}.dock-links{gap:0}}
@media(max-width:600px){footer{display:flex;justify-content:space-between}.analit-credit{margin-left:auto}.creative-tools li span{font-size:12px}}

/* Camera cursor on desktop. Native cursors remain available for editing text. */
@media (pointer: fine) and (hover: hover) {
  body:not(.intro-playing):not(.intro-static),
  body:not(.intro-playing):not(.intro-static) :is(a, button, summary) {
    cursor: var(--camera-cursor) 16 16, pointer;
  }
  body :is(input, textarea) { cursor: text; }
}

.shutter-flash {
  position: fixed;
  z-index: 500;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, #fff 0 20%, transparent 72%);
  box-shadow: inset 0 0 0 1px var(--olive);
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  .shutter-flash { display: none; }
}

summary:focus-visible {
  outline: 2px solid var(--olive);
  outline-offset: 4px;
}

.reel-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 28px;
  margin-top: clamp(40px, 7vw, 86px);
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.reel-links ul {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.reel-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 14px;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.contact-instagram { min-height: 44px; padding-block: 14px; }

:root[data-theme="dark"] {
  --surface: #000;
  --ink: #fff;
  --olive: #b4c1a3;
  --copper: #dfaa89;
  --muted: #b4b8b4;
  --line: #303430;
  --on-accent: #000;
  --soft: #121512;
  --dock-bg: rgba(0, 0, 0, .96);
  --hover-bg: #1b201b;
  --active-bg: #232b23;
  --input-line: #676f67;
  --placeholder: #a5ada5;
  color-scheme: dark;
}

html { background: var(--surface); }
.theme-toggle {
  position: fixed;
  top: max(18px, env(safe-area-inset-top));
  right: var(--pad);
  z-index: 220;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-height: 44px;
  width: 44px;
  min-width: 44px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--ink);
  font-size: 13px;
}
.theme-toggle:hover { border-color: var(--muted); }
.theme-sun, [data-theme="dark"] .theme-moon { display: none; }
[data-theme="dark"] .theme-sun { display: block; }
.intro-playing .theme-toggle, .intro-static .theme-toggle { visibility: hidden; }

/* Only monochrome marks change ink. Photos retain their original color. */
[data-theme="dark"] :is(.dock-brand img, .about-signature, .creative-tools img) {
  filter: brightness(0) invert(1);
}
[data-theme="dark"] .analit-logo img { filter: invert(1); }

dialog { background: var(--surface); color: var(--ink); }
.lightbox-top button, .lightbox-nav button { border-color: var(--line); }
.lightbox-nav button:hover, .lightbox-top button:hover { background: var(--hover-bg); }
.lightbox-copy .text-link { color: var(--muted); }
.lightbox-copy .button { background: var(--ink); color: var(--surface); border-color: var(--ink); }

.hp-space { --loop-duration: 16s; }
.hp-food { --loop-duration: 14s; }
.hp-portrait { --loop-duration: 18s; }
.hp-fashion { --loop-duration: 15s; }
.hero-photo:focus-within .photo-float { animation-play-state: paused; }
.hero-photo { animation-fill-mode: backwards; }
.creative-tools ul { row-gap: 28px; }

/* An inset focus treatment leaves the label clear and never changes field size. */
form :is(input, textarea, select) {
  margin-top: 8px;
  padding-inline: 12px;
  scroll-margin-block: 100px 130px;
  transition: background-color .2s, border-color .2s, box-shadow .2s;
}
form :is(input, textarea, select):focus {
  outline: none;
  background-color: var(--soft);
  border-bottom-color: var(--olive);
  box-shadow: 0 1px 0 var(--olive);
}
@media (forced-colors: active) {
  form :is(input, textarea, select):focus { outline: 2px solid Highlight; outline-offset: 2px; }
}

@media (max-width: 600px) {
  .theme-toggle { top: max(12px, env(safe-area-inset-top)); right: 16px; }
  .hero-sticky { padding-top: 88px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
}
@media (max-height: 650px) and (min-width: 601px) {
  .hero-sticky { min-height: 100svh; padding-top: 64px; }
  .hero h1 { font-size: min(8vw, 15svh); margin-top: 14px; }
  .hero-composition { top: 47%; }
  .hp-space, .hp-food, .hp-portrait, .hp-fashion { width: min(16vw, 30svh); }
}
@media (max-height: 500px) and (min-width: 601px) {
  .hero h1 { font-size: min(7vw, 10svh); margin-top: 12px; }
  .hero-composition { top: 50%; height: 12%; }
  .hp-space, .hp-food, .hp-fashion { width: min(14vw, 18svh); }
  .hp-portrait { width: min(17vw, 21svh); }
  .bottom-dock { min-height: 62px; padding: 7px 12px 7px 20px; bottom: max(12px, env(safe-area-inset-bottom)); }
  .dock-brand img { width: 70px; }
}

:root { --camera-cursor: url("../img/camera-cursor.svg"); }
:root[data-theme="dark"] { --camera-cursor: url("../img/camera-cursor-night.svg"); }

/* The full collection is an alpha cutout: the same garments work on both surfaces. */
.merch {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.3fr);
  gap: 2vw;
  align-items: center;
  min-height: min(88svh, 900px);
  border-top: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink);
}
.merch-copy, .merch-art { min-width: 0; }
.merch-copy { position: relative; z-index: 1; }
.merch h2 { font-size: clamp(40px, 4.8vw, 82px); line-height: 1.14; }
.merch h2 > span, .merch h2 > em { display: block; }
.merch h2 > em { font-size: 1.2em; padding-bottom: .12em; }
.merch-copy .button { margin-top: 30px; }
.merch .button { border-color: var(--ink); }
.merch-visual { display: block; width: 100%; height: auto; animation: merch-drift 16s ease-in-out infinite; }
.offscreen .merch-visual { animation-play-state: paused; }
@keyframes merch-drift { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

/* Hide only the page scrollbar, after the replacement is ready. Inner scrollers stay native. */
html.film-scroll-ready { scrollbar-width: none; }
html.film-scroll-ready::-webkit-scrollbar { display: none; width: 0; }
.film-scroll {
  position: fixed;
  z-index: 230;
  top: 80px;
  bottom: 104px;
  right: 0;
  width: 24px;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  cursor: grab;
}
.film-scroll-thumb { position: absolute; top: 0; left: 0; width: 100%; height: 24px; will-change: transform; }
.film-scroll-thumb::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #000;
  transform: translate(-50%, -50%);
}
[data-theme="dark"] .film-scroll-thumb::after { background: #fff; }
.film-scroll:focus-visible { outline: none; }
.film-scroll:focus-visible .film-scroll-thumb::after { outline: 2px solid var(--olive); outline-offset: 3px; }
.film-scroll.is-dragging { cursor: grabbing; }
.intro-playing .film-scroll, .intro-static .film-scroll, .modal-open .film-scroll { visibility: hidden; }
@media (max-width: 900px) {
  .merch { grid-template-columns: 1fr; gap: 24px; min-height: 0; padding-block: 80px; }
  .merch h2 { font-size: clamp(40px, 7.5vw, 70px); }
  .merch-art { width: min(100%, 760px); justify-self: center; }
}
@media (max-width: 600px) {
  .merch { padding-block: 64px; gap: 24px; }
  .merch h2 { font-size: clamp(34px, 9.8vw, 58px); }
  .merch-copy .button { margin-top: 22px; }
  .film-scroll { top: 76px; bottom: 90px; width: 20px; }
}
@media (forced-colors: active) {
  html.film-scroll-ready { scrollbar-width: auto; }
  html.film-scroll-ready::-webkit-scrollbar { display: initial; width: auto; }
  .film-scroll { display: none; }
}
