:root{--paper:#f6f5f0;--ink:#2e362c;--muted:#797d73;--line:#dcded5;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid #9e7557;outline-offset:6px}img{display:block;width:100%;height:100%;object-fit:cover}::selection{background:#bfc7b6;color:#1c241a}.collection-bar{display:flex;align-items:center;justify-content:space-between;background:#242923;color:#f5f5ed;min-height:65px;padding:10px 3.5%;gap:24px}.collection-brand{font-size:19px;font-weight:600;letter-spacing:3px;white-space:nowrap}.lens-icon{margin-right:6px}.collection-label{font-size:12px;letter-spacing:1px;margin-left:15px;color:#c0c5b9;font-weight:400}.collection-bar nav{display:flex;gap:5px}.style-link{padding:11px 18px;border-radius:4px;font-size:12px;color:#aab1a4;white-space:nowrap}.style-link span{font-size:14px;margin-left:8px}.style-link.active{background:#f1f1e7;color:#30372e}.style-link:hover:not(.active){background:#363d33;color:white}.collection-note{font-size:11px;letter-spacing:2px;color:#b6bcaf}.page-nav{display:flex;align-items:center;justify-content:space-between;padding:36px 5.5%;gap:25px}.wordmark{font-size:25px;font-weight:500;letter-spacing:3px;line-height:1.1}.wordmark span{display:block;font-size:10px;letter-spacing:2.5px;margin-top:7px}.page-nav nav{display:flex;gap:35px;font-size:14px}.page-nav nav a:hover{text-decoration:underline;text-underline-offset:7px}.nav-index{font-size:12px;color:var(--muted)}.minimal-hero{display:grid;grid-template-columns:1.05fr 1fr;margin:0 5.5%;min-height:605px}.minimal-intro{padding:52px 20px 0 0;position:relative}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:500}.minimal-intro h1{font-family:var(--serif);font-weight:400;font-size:clamp(85px,8.6vw,135px);line-height:.94;letter-spacing:-4px;margin:44px 0 27px}.minimal-intro h1 em{font-weight:400}.intro-line{font-size:15px;letter-spacing:2px;color:#777c70}.text-link{display:inline-flex;gap:40px;align-items:center;font-size:14px;margin-top:32px;border-bottom:1px solid #7d8276;padding:0 0 13px}.text-link span{font-size:24px;font-weight:400}.hero-bottom{position:absolute;bottom:9px;left:0;right:20px;display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;color:#8a8e82}.minimal-photo{position:relative;height:605px;background:#d5d7cc}.minimal-photo img{object-position:center}.photo-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:23px 26px;background:linear-gradient(transparent,rgba(0,0,0,.35));color:white;font-size:12px;letter-spacing:1px}.works-section{padding:92px 5.5% 75px}.section-title{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:35px}.section-title h2{font-family:var(--serif);font-size:38px;font-weight:400;margin:0}.section-title h2 span{font-family:var(--sans);font-size:13px;color:var(--muted);margin-left:20px;letter-spacing:1px}.section-number{font-size:12px;letter-spacing:2px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 25px}.work-card .work-image{display:block;height:360px;overflow:hidden;background:#dfe0d8;position:relative}.work-image img{transition:transform .7s}.work-image:hover img{transform:scale(1.04)}.work-caption{display:flex;justify-content:space-between;align-items:center;margin-top:15px;gap:15px}.work-caption h3{font-size:15px;font-weight:400;margin:0}.work-caption span{font-size:12px;color:var(--muted)}.work-card:nth-child(3n+2){padding-top:46px}.about-section{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:80px 5.5%;border-top:1px solid var(--line)}.about-section h2{font-family:var(--serif);font-size:60px;font-weight:400;line-height:1.1;margin:15px 0}.about-copy{max-width:460px;padding-top:25px}.about-copy p{line-height:2;color:var(--muted);margin:0 0 24px}.about-tags{display:flex;gap:12px;flex-wrap:wrap}.about-tags span{font-size:13px;border:1px solid var(--line);padding:9px 15px;border-radius:30px}.contact-section{background:var(--ink);color:var(--paper);padding:65px 5.5%;display:flex;justify-content:space-between;align-items:center;gap:30px}.contact-section h2{font-family:var(--serif);font-size:48px;font-weight:400;margin:12px 0}.contact-section p{font-size:14px;color:#c7cbbc;line-height:1.8}.contact-button{padding:18px 30px;border:1px solid #939b8a;background:transparent;font-size:14px;min-width:180px}.contact-button:hover{background:var(--paper);color:var(--ink)}footer{padding:25px 5.5%;display:flex;justify-content:space-between;font-size:12px;color:var(--muted);gap:20px}.contact-dialog{border:0;padding:40px;background:var(--paper);color:var(--ink);max-width:min(470px,90vw);border-radius:3px}.contact-dialog::backdrop{background:#0009;backdrop-filter:blur(5px)}.contact-dialog h2{font-family:var(--serif);font-size:40px;font-weight:400;margin:0 0 20px}.contact-dialog p{font-size:16px;line-height:1.8}.contact-dialog .close{display:block;margin-left:auto;border:0;background:transparent;font-size:24px}.contact-dialog .dialog-note{font-size:14px;color:var(--muted)}
@media(min-width:1600px){#site{max-width:1600px;margin:auto}.minimal-hero{min-height:710px}.minimal-photo{height:710px}}@media(max-width:1100px){.collection-note{display:none}.minimal-intro h1{font-size:100px}.minimal-hero{min-height:550px}.minimal-photo{height:550px}.work-card .work-image{height:300px}.page-nav{padding:30px 5.5%}.minimal-intro{padding-top:40px}}@media(max-width:760px){html{scroll-padding-top:25px}.collection-bar{padding:14px 5%;flex-wrap:wrap;gap:13px}.collection-label{display:none}.collection-brand{font-size:16px}.collection-bar nav{width:100%;gap:4px}.style-link{flex:1;padding:10px 6px;text-align:center;font-size:11px}.style-link span{font-size:13px;margin-left:3px}.page-nav{padding:26px 6%;gap:18px}.wordmark{font-size:20px}.page-nav nav{gap:18px;font-size:13px}.nav-index{display:none}.minimal-hero{display:block;margin:0 6%;min-height:auto}.minimal-intro{padding:34px 0 55px}.minimal-intro h1{font-size:clamp(70px,17vw,105px);letter-spacing:-2px;margin:30px 0 24px;line-height:.95}.intro-line{font-size:14px;letter-spacing:1px}.hero-bottom{display:none}.text-link{margin-top:20px}.minimal-photo{height:440px}.works-section{padding:60px 6%}.section-title h2{font-size:32px}.section-title h2 span{margin-left:12px;font-size:12px}.photo-grid{grid-template-columns:repeat(2,1fr);gap:28px 16px}.work-card .work-image{height:240px}.work-card:nth-child(3n+2){padding-top:0}.work-card:nth-child(even){padding-top:30px}.work-caption{align-items:start;flex-direction:column;gap:6px}.work-caption h3{font-size:14px}.about-section{grid-template-columns:1fr;gap:0;padding:55px 6%}.about-section h2{font-size:48px}.about-copy{padding-top:10px}.contact-section{display:block;padding:50px 6%}.contact-section h2{font-size:39px}.contact-button{margin-top:16px}footer{padding:22px 6%;flex-wrap:wrap}.eyebrow{font-size:11px;letter-spacing:1.5px}}@media(max-width:400px){.page-nav nav{gap:12px;font-size:12px}.work-card .work-image{height:205px}.minimal-photo{height:380px}.section-title h2 span{display:block;margin:9px 0 0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Each portfolio keeps its own composition; shared gallery behavior stays in app.js. */
body.social{--paper:#fff8ed;--ink:#223e78;--muted:#677a98;--line:#ded8cc}body.gallery{--paper:#f6f4f9;--ink:#4c425b;--muted:#867d94;--line:#ded9e7}.social .page-nav{padding-bottom:22px}.social .wordmark{font-weight:700;letter-spacing:-1px;font-size:29px}.social .wordmark span{letter-spacing:2px;font-weight:400}.social-hero{padding:20px 5.5% 55px;position:relative}.social-title-row{display:flex;align-items:center;justify-content:space-between;gap:40px}.social-title-row h1{font-size:clamp(60px,7.7vw,112px);font-weight:500;letter-spacing:-6px;line-height:1.02;margin:10px 0 28px}.social-title-row h1 em{font-family:var(--serif);font-weight:500;letter-spacing:-4px;background:linear-gradient(transparent 68%,#f2cc67 68%);padding:0 14px 0 0}.social-title-row p{font-size:14px;line-height:2;letter-spacing:1px;max-width:210px}.social-photo-strip{display:grid;grid-template-columns:.87fr 1.25fr .84fr;align-items:center;gap:45px;margin:15px 15px 0}.polaroid{background:#fff;padding:12px 12px 21px;box-shadow:0 6px 24px #233c7620;position:relative;display:block;transition:transform .35s}.polaroid:nth-child(1){transform:rotate(-5deg)}.polaroid:nth-child(2){transform:rotate(2deg)}.polaroid:nth-child(3){transform:rotate(6deg)}.polaroid:hover{transform:rotate(0deg) translateY(-7px)}.polaroid img{height:285px}.polaroid:nth-child(2) img{height:370px}.polaroid:before{content:'';position:absolute;width:95px;height:30px;background:#f1d992b8;top:-13px;left:calc(50% - 47px);transform:rotate(-7deg);z-index:1}.polaroid .handwritten{display:block;font-family:var(--serif);font-size:24px;font-style:italic;text-align:center;margin-top:17px}.stamp{display:inline-flex;border:1px solid #234379;border-radius:50%;width:115px;height:115px;align-items:center;justify-content:center;font-size:12px;text-align:center;line-height:1.8;transform:rotate(12deg);position:absolute;right:7%;top:180px;background:#f4cf70;z-index:2}.social-footnote{display:flex;justify-content:space-between;font-size:12px;letter-spacing:1px;margin-top:40px}.social .works-section{padding-top:42px}.social .section-title{border-bottom:1px solid #243e78}.social .section-title h2{font-family:var(--sans);font-size:33px;letter-spacing:-1px;font-weight:500}.social .work-card .work-image{height:330px;border-radius:0}.social .work-card:nth-child(3n+2){padding-top:0}.social .photo-grid{gap:10px}.social .work-caption{padding:10px 8px 23px}.social .about-section h2{font-family:var(--sans);font-size:48px;letter-spacing:-2px}.social .contact-section{background:#f4cc68;color:#223e78}.social .contact-section p{color:#4a5b74}.social .contact-button{border-color:#223e78}.social .contact-button:hover{background:#223e78;color:#fff8ed}.social .contact-section h2{font-family:var(--sans);font-size:43px;letter-spacing:-2px}.gallery .wordmark{font-family:var(--serif);font-size:30px;letter-spacing:2px}.gallery-hero{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;min-height:630px;padding:10px 5.5% 50px;position:relative;isolation:isolate;overflow:hidden}.gallery-intro{z-index:1;padding-bottom:40px}.gallery-intro h1{font-family:var(--serif);font-size:clamp(72px,7.4vw,112px);font-weight:400;line-height:1.04;letter-spacing:-3px;margin:35px 0 24px}.gallery-intro h1 em{color:#9b89ad}.gallery-intro p{font-size:15px;letter-spacing:3px;color:var(--muted)}.gallery-collage{height:560px;position:relative}.floating-frame{position:absolute;padding:12px;background:#fcfbfd;box-shadow:0 20px 45px #79658c1a;transition:transform .6s}.floating-frame img{object-fit:cover}.floating-frame.large{width:65%;height:400px;left:19%;top:25px;transform:rotate(-6deg);animation:float-a 8s ease-in-out infinite}.floating-frame.small{width:45%;height:280px;right:-1%;bottom:22px;transform:rotate(8deg);animation:float-b 9s ease-in-out infinite}.floating-frame.label{width:auto;height:auto;left:0;bottom:44px;padding:24px 30px;transform:rotate(-3deg);font-family:var(--serif);font-style:italic;font-size:27px;line-height:1.4;background:#e8e1f0}.gallery-orb{position:absolute;width:450px;height:450px;border-radius:50%;background:radial-gradient(ellipse,#dad0e9aa 0%,#e6e0ed44 50%,transparent 70%);right:18%;top:55px;z-index:-1;animation:drift 14s ease-in-out infinite}.gallery-orb.second{left:-140px;top:300px;width:350px;height:350px;background:radial-gradient(ellipse,#e7cfd755,transparent 70%)}.gallery-subnote{display:flex;justify-content:space-between;padding:0 5.5% 35px;font-size:12px;letter-spacing:2px;color:var(--muted)}.gallery .works-section{padding-top:45px}.gallery .section-title h2{font-size:42px}.gallery .photo-grid{grid-template-columns:1fr 1fr;gap:65px 60px;max-width:1050px;margin:auto}.gallery .work-card{padding:20px 20px 25px;background:#fdfcfe;box-shadow:0 10px 25px #77648908}.gallery .work-card:nth-child(even){margin-top:80px}.gallery .work-card:nth-child(3n+2){padding-top:20px}.gallery .work-card .work-image{height:380px}.gallery .work-caption{padding-top:7px}.gallery .about-section{background:#eee9f3}.gallery .contact-section{background:#4c425b}.gallery .contact-section p{color:#d8cfdf}.gallery .contact-button{border-color:#b1a4bf}.motion-toggle{border:1px solid #d4ccdf;border-radius:30px;background:transparent;padding:9px 15px;font-size:12px;display:inline-flex;align-items:center;gap:8px;position:absolute;right:5.5%;top:5px;z-index:4}.motion-toggle svg{width:12px;height:12px}.paused .floating-frame,.paused .gallery-orb{animation-play-state:paused}.image-count{font-variant-numeric:tabular-nums}.credit-link:hover{text-decoration:underline;text-underline-offset:4px}.credits-dialog{max-width:min(650px,92vw);max-height:80vh;overflow:auto}.credits-dialog ul{padding-left:20px;font-size:14px;line-height:1.9}.credits-dialog a{text-decoration:underline}.credits-dialog h2{font-size:33px}@keyframes float-a{50%{transform:rotate(-4deg) translateY(-12px)}}@keyframes float-b{50%{transform:rotate(6deg) translateY(14px)}}@keyframes drift{50%{transform:translate(35px,20px) scale(1.15)}}
@media(max-width:1100px){.social-photo-strip{gap:25px}.polaroid img{height:230px}.polaroid:nth-child(2) img{height:320px}.stamp{width:95px;height:95px;top:155px}.gallery-collage{height:500px}.floating-frame.large{height:355px}.floating-frame.small{height:245px}.gallery-hero{min-height:580px}.gallery .photo-grid{gap:35px}.gallery .work-card .work-image{height:320px}}
@media(max-width:760px){.social-title-row{display:block}.social-title-row h1{font-size:clamp(58px,14vw,95px);letter-spacing:-3px;margin-top:20px}.social-title-row h1 em{letter-spacing:-2px}.social-title-row p{max-width:none;margin-top:20px;font-size:14px}.social-hero{padding:10px 6% 40px}.social-photo-strip{gap:10px;margin:35px 0 0;grid-template-columns:1fr 1fr}.polaroid{padding:8px 8px 14px}.polaroid img{height:210px}.polaroid:nth-child(2) img{height:250px}.polaroid:nth-child(3){display:none}.polaroid .handwritten{font-size:21px;margin-top:12px}.stamp{top:auto;bottom:55px;right:8%;width:80px;height:80px;font-size:10px}.social-footnote{font-size:11px;letter-spacing:0;margin-top:30px}.social .work-card .work-image{height:230px}.social .work-caption{padding:6px 3px 20px}.social .section-title h2{font-size:29px}.social .contact-section h2{font-size:34px}.social .about-section h2{font-size:39px;letter-spacing:-1px}.gallery-hero{display:block;padding:30px 6% 20px;min-height:auto}.gallery-intro{padding-bottom:0}.gallery-intro h1{font-size:clamp(64px,17vw,95px);letter-spacing:-2px;margin:28px 0 20px}.gallery-intro p{letter-spacing:1px;font-size:14px}.gallery-collage{height:435px;margin-top:25px}.floating-frame.large{width:67%;height:315px;left:11%;top:10px;padding:9px}.floating-frame.small{height:220px;right:0;bottom:5px;padding:9px}.floating-frame.label{left:0;bottom:40px;padding:16px 20px;font-size:22px}.motion-toggle{top:12px;font-size:11px;padding:8px 11px}.gallery .photo-grid{gap:25px 15px}.gallery .work-card{padding:9px 9px 18px}.gallery .work-card .work-image{height:230px}.gallery .work-card:nth-child(3n+2){padding-top:9px}.gallery .work-card:nth-child(even){margin-top:45px;padding-top:9px}.gallery-subnote{font-size:10px;letter-spacing:1px;padding:15px 6% 20px}.gallery .section-title h2{font-size:33px}.gallery .about-section h2{font-size:43px}}@media(max-width:400px){.social-title-row h1{font-size:54px}.polaroid img{height:180px}.polaroid:nth-child(2) img{height:215px}.gallery .work-card .work-image{height:190px}.social .work-card .work-image{height:200px}.collection-bar nav .style-link:last-child{padding-left:2px;padding-right:2px}.collection-bar nav .style-link:last-child span{font-size:12px}}
.hero-image{display:block;height:100%}.photo-caption{pointer-events:none}.credit-link{border:0;background:none;padding:0;color:var(--muted);font-size:12px}.contact-dialog .dialog-dismiss{border-color:var(--line);min-width:auto;padding:12px 18px}.contact-dialog .dialog-dismiss:hover{background:var(--ink);color:var(--paper)}
/* Keep the decorative stamp below the introduction at desktop and tablet widths. */
@media(min-width:761px){.social-title-row p{max-width:260px}.stamp{top:245px}}
