:root{--ink:#ece4d8;--progress:0;--lamp:0;--burst:0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:45px}body{margin:0;background:#000;color:var(--ink);font-family:'Cormorant Garamond',Georgia,serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}header{position:absolute;top:0;left:0;width:100%;padding:30px 6%;display:flex;justify-content:space-between;align-items:center;z-index:5;color:#dbd4ca}.signature{font-family:'Parisienne',cursive;font-size:34px}nav{display:flex;gap:28px;font:12px Arial,sans-serif;letter-spacing:1px}.micro,.tab-label,.open-label,.ticket-no,.placeholder-note,small{font-family:Arial,sans-serif;font-size:11px;letter-spacing:1.6px;line-height:1.6}.hand{font-family:'La Belle Aurore',cursive;font-size:27px;font-weight:400;letter-spacing:0}.grain{position:fixed;inset:0;pointer-events:none;z-index:8;opacity:clamp(0,calc((var(--progress) - .35)*.025),.015);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23888' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.hero{height:145svh;min-height:900px}.hero-stage{height:100svh;min-height:650px;position:sticky;top:0;overflow:hidden}.hero-title{position:absolute;top:38%;left:26%;right:7%}.hero-title>.micro{color:#9c9690}h1{position:relative;font-weight:400;font-size:clamp(88px,10.6vw,168px);line-height:1.05;letter-spacing:-5px;margin:24px 0 22px;white-space:nowrap}h1 em{font-family:'Parisienne',cursive;font-weight:400}h1>span{font:35px Georgia;position:absolute;right:0;top:-20px;color:#cebaa0}.subtitle{font:14px Arial,sans-serif;letter-spacing:2px;line-height:1.6}.lamp-wrap{position:absolute;left:5%;top:13%;width:240px;height:250px}.lamp{width:100%;height:100%;object-fit:contain;mix-blend-mode:screen;opacity:calc(.025 + var(--lamp)*.975);filter:brightness(calc(.15 + var(--lamp)));mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent)}.lamp-note{position:absolute;bottom:-30px;left:15px;width:200px;transform:rotate(-7deg);font-size:21px;line-height:1.4;color:#d1b89a;opacity:var(--lamp)}.lamp-flecks{position:absolute;left:70%;top:50%;font:19px Georgia;line-height:2;color:#ffe7bd;opacity:var(--burst);text-shadow:0 0 8px #ffdead80;transform:translate(calc(var(--lamp)*40px),calc(var(--lamp)*45px))}.scroll-note{position:absolute;bottom:45px;left:0;right:0;display:flex;align-items:center;flex-direction:column;gap:14px;color:#bbb2a4}.scroll-note .micro{font-size:10px}.greeting{min-height:700px;display:flex;align-items:center;justify-content:center;padding:100px 8%;text-align:center}.greeting h2{font-size:150px;margin:25px 0;font-weight:400}.greeting h2 .hand{font-size:40px;display:block;margin-top:-8px}.greeting p{font-size:25px;line-height:1.6}.greeting-note{display:block;margin-top:45px;color:#d0bda3}.section{max-width:1400px;margin:auto;padding:120px 9%}.section-heading{margin-bottom:85px}h2{font-size:clamp(55px,6vw,87px);font-weight:400;line-height:1.08;letter-spacing:-2px;margin:24px 0}h2 em,h3 em{font-weight:400}.section-heading>.hand{display:block;margin-top:20px}.work-layout{display:grid;grid-template-columns:1.25fr .8fr;gap:80px 65px;align-items:start}.case{border:0;text-align:left;background:#f1e9dc;padding:15px 15px 22px;position:relative;cursor:pointer;box-shadow:2px 15px 35px #0002;color:#57484a;transition:transform .3s}.case-major{transform:rotate(-3deg)}.case-small{margin-top:160px;transform:rotate(4deg)}.case-wide{grid-column:1/-1;width:69%;justify-self:end;transform:rotate(-2deg)}.case:hover,.case:focus-visible{transform:rotate(0) translateY(-6px)}.tab-label{position:absolute;top:-29px;left:14px;background:#e0c5bf;padding:9px 20px 3px;border-radius:8px 8px 0 0;font-size:10px}.project-art{padding:35px;min-height:350px;display:flex;flex-direction:column;justify-content:space-between;gap:35px;border:1px solid #987d7520}.blush{background:#e8c8ce}.blue{background:#cbdce4}.butter{background:#ede0b1}.display-art{font-size:clamp(35px,4.5vw,66px);line-height:1.04;font-weight:400}.display-art em{font-family:'Parisienne';font-size:1.14em}.project-art>.hand{font-size:23px}.case-small .project-art{padding:28px;min-height:260px}.case-small .display-art{font-size:41px}.case-wide .project-art{min-height:270px}.project-bottom{display:flex;gap:20px;justify-content:space-between;align-items:end;padding:22px 10px 0}.project-bottom strong{display:block;font-size:27px;font-weight:400}.project-bottom small{display:block;font-size:10px;margin-top:6px;letter-spacing:1px}.open-label{font-size:9px;text-align:right}.placeholder-note{opacity:.7;letter-spacing:.6px;font-size:12px;margin:40px 0 0}.made .section-heading{text-align:center}.made-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:75px;align-items:center}.photo-piece,.film-piece{border:0;cursor:pointer;position:relative;text-align:left;box-shadow:0 15px 25px #0002;transition:transform .3s}.photo-piece{background:#f1eee5;color:#635759;padding:18px 18px 25px;transform:rotate(-6deg)}.photo-space{height:340px;background:#c8cbd0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;color:#515561}.photo-space .hand{font-size:37px}.photo-corners{font-size:55px;font-weight:300;opacity:.35}.photo-piece>.hand{display:block;margin-top:20px;font-size:24px}.photo-piece>small{font-size:8px}.tape{width:90px;height:28px;position:absolute;left:35%;top:-12px;background:#decebbaa;transform:rotate(5deg);z-index:2}.film-piece{background:#282528;padding:24px 18px;color:#e4d8c8;transform:rotate(3deg);border-top:9px dashed #b9ae9c;border-bottom:9px dashed #b9ae9c}.film-piece>.micro{font-size:9px}.screen-space{height:255px;background:#373139;margin-top:20px;display:flex;flex-direction:column;gap:20px;align-items:center;justify-content:center}.play{font-size:60px}.film-piece .project-bottom{padding:20px 0 0}.film-piece strong{font-size:23px}.film-piece .project-bottom>span{font:10px Arial}.photo-piece:hover,.film-piece:hover{transform:rotate(0) translateY(-4px)}.made-note{grid-column:1/-1;text-align:center;margin:0;line-height:1.6}.films .section-heading{margin-left:5%}.film-folder{position:relative;aspect-ratio:1.5;max-width:1050px;margin:auto;transform:rotate(-2deg);color:#4a505a}.film-folder>img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.folder-title{position:absolute;left:12%;top:24%;width:30%}.folder-title h3{font-size:clamp(38px,5vw,70px);font-weight:400;line-height:1;margin:30px 0}.folder-title .hand{font-size:27px;color:#657b99}.film-list{position:absolute;left:52%;top:17%;width:32%;height:68%;display:flex;flex-direction:column;justify-content:space-evenly}.film-list article{padding:8px 0;border-bottom:1px dashed #77777755}.ticket-no{font-size:8px;letter-spacing:1px}.film-list h4{font-size:26px;margin:8px 0;font-weight:400}.film-list .hand{font-size:19px;line-height:1.3;margin:7px 0;color:#7c6872}.films .placeholder-note{text-align:center}.about-layout{display:grid;grid-template-columns:.85fr 1.2fr;gap:85px;align-items:center}.portrait{background:#f4eee4;padding:18px 18px 30px;color:#75616d;position:relative;transform:rotate(-5deg);box-shadow:0 12px 25px #4c3d3217}.portrait-space{background:#dbbfc7;aspect-ratio:4/5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:40px;text-align:center}.portrait-space .hand{font-size:34px}.portrait>.hand{display:block;margin:20px 0 0}.bio-paper{background:#eee5cd;padding:45px 40px;box-shadow:1px 10px 20px #65544b12;transform:rotate(2deg);color:#544e52}.bio-paper>.micro{font-size:9px}.bio-paper h3{font-size:45px;font-weight:400;line-height:1.1;margin:25px 0}.bio-paper>p:not(.micro){font-size:21px;line-height:1.55}.bio-paper>.hand{display:block;font-size:23px;margin-top:25px;color:#788398}.contact-links{display:flex;gap:24px;align-items:center}.contact-links button{background:none;border:0;border-bottom:1px solid #85787b70;padding:6px 0;font-size:20px;cursor:pointer}.ending{padding:120px 6% 70px;text-align:center}.closing-collection{display:block;width:min(630px,85%);margin:0 auto 50px;mix-blend-mode:multiply;mask-image:linear-gradient(transparent,#000 20%,#000 80%,transparent)}.ending h2{font-size:clamp(60px,8vw,115px)}.ending h2 em{font-family:'Parisienne'}.ending>.hand{color:#8b7780;font-size:30px}.ending .contact-links{justify-content:center;margin:45px 0 90px}.back-top{font-size:10px}footer{padding:30px 6%;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #94877930}footer .micro{font-size:9px}#particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3}.particle{position:absolute;color:#e7cda1;font-family:Georgia;opacity:var(--alpha);text-shadow:0 0 6px #eecb9040;animation:drift 9s ease-in-out infinite alternate;animation-delay:var(--delay)}@keyframes drift{to{transform:translate(12px,-20px) rotate(20deg)}}.light-meter{position:fixed;bottom:17px;right:20px;display:flex;align-items:center;gap:14px;font:9px Arial;letter-spacing:1px;z-index:9;opacity:.6}.light-meter i{height:1px;width:55px;background:#9995}.light-meter b{display:block;height:2px;background:currentColor}.reveal{opacity:.12;filter:brightness(.65);transition:opacity 1s,filter 1s}.reveal.visible{opacity:1;filter:brightness(1)}dialog{max-width:780px;width:calc(100% - 35px);max-height:85svh;overflow:auto;padding:55px;border:1px solid #c6b4b5;background:#f5ece1;color:#55494d;box-shadow:0 20px 80px #0003}dialog::backdrop{background:#19161999;backdrop-filter:blur(7px)}dialog h2{font-size:60px}dialog p{font-size:22px;line-height:1.5}dialog .micro{font-size:11px}.close{position:absolute;top:14px;right:20px;background:none;border:0;font:30px Georgia;cursor:pointer}.detail-sections{border-top:1px solid #b9a69b;margin-top:30px}.detail-sections h3{font-size:29px;font-weight:400}.detail-sections p{font-size:19px}:focus-visible{outline:2px solid #a089b1;outline-offset:6px}@media(max-width:900px){.hero-title{left:25%;top:42%}h1{font-size:11.5vw;letter-spacing:-3px}.lamp-wrap{width:190px;height:210px}.subtitle{font-size:12px}.section{padding:100px 7%}.work-layout{gap:70px 35px}.project-art{padding:25px}.case-small .display-art{font-size:32px}.project-bottom{padding-left:0;padding-right:0}.project-bottom strong{font-size:23px}.open-label{font-size:8px}.made-layout{gap:40px}.photo-space{height:270px}.screen-space{height:210px}.folder-title{top:20%}.folder-title h3{font-size:45px}.folder-title .micro{font-size:8px}.film-list h4{font-size:21px}.film-list .hand{font-size:15px}.about-layout{gap:40px}.bio-paper{padding:30px}.bio-paper h3{font-size:35px}.bio-paper>p:not(.micro){font-size:19px}}@media(max-width:600px){header{padding:22px 7%}.signature{font-size:28px}nav{gap:18px;font-size:11px}.hero{min-height:1000px}.hero-stage{min-height:680px}.lamp-wrap{width:155px;height:175px;left:4%;top:15%}.lamp-note{font-size:17px;width:155px;bottom:-18px}.hero-title{left:9%;right:8%;top:47%}h1{font-size:18vw;white-space:normal;letter-spacing:-3px;line-height:1.05}h1>span{font-size:25px;right:0}.hero-title .micro{font-size:9px}.subtitle{font-size:11px;letter-spacing:1.1px}.scroll-note{bottom:40px}.scroll-note .hand{font-size:22px}.greeting{min-height:650px;padding:90px 8%}.greeting h2{font-size:120px}.greeting p{font-size:21px}.greeting-note{font-size:23px}.section{padding:90px 8%}.section-heading{margin-bottom:65px}h2{font-size:50px;letter-spacing:-1.5px}.section-heading>.hand{font-size:24px}.work-layout{grid-template-columns:1fr;gap:65px}.case-small{margin-top:0;width:83%;justify-self:end}.case-wide{grid-column:auto;width:95%}.project-art{min-height:300px}.display-art{font-size:49px}.case-small .display-art{font-size:40px}.case-small .project-art{min-height:240px}.case-wide .project-art{min-height:260px}.placeholder-note{font-size:11px}.made-layout{grid-template-columns:1fr;gap:60px}.photo-piece{width:85%;justify-self:start}.film-piece{width:94%;justify-self:end}.photo-space{height:270px}.screen-space{height:200px}.made-note{font-size:24px}.film-folder{aspect-ratio:auto;background:#cbdce1;padding:30px 25px;transform:rotate(-2deg);box-shadow:2px 12px 25px #5a444420}.film-folder>img{display:none}.folder-title{position:static;width:100%;margin-bottom:30px}.folder-title h3{font-size:48px;margin:20px 0}.folder-title .hand{font-size:23px}.film-list{position:static;width:100%;height:auto;background:#f7f0e2;padding:20px}.film-list article{padding:20px 0}.film-list h4{font-size:27px}.film-list .hand{font-size:20px}.ticket-no{font-size:9px}.about-layout{grid-template-columns:1fr;gap:65px}.portrait{width:80%;margin:auto}.bio-paper{padding:30px 25px}.bio-paper h3{font-size:39px}.bio-paper>p:not(.micro){font-size:20px}.ending{padding:80px 7%}.ending h2{font-size:58px}.ending>.micro{font-size:9px}.ending>.hand{font-size:27px}.ending .contact-links{gap:17px}.closing-collection{width:100%}footer>.micro{display:none}dialog{padding:45px 25px}dialog h2{font-size:45px}.light-meter{font-size:8px;bottom:10px;right:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;filter:none}.lamp-flecks{transform:none}}

.contact-links a{border-bottom:1px solid #85787b70;padding:6px 0;font-size:20px}.resume-pending{font-size:20px;opacity:.45;padding:6px 0}

.hero-stage{background:var(--page,#000)}

/* Handwritten identity, paper folders, and lace correspondence. */
:root{--serif:'Cormorant Garamond',Georgia,serif;--script:'Parisienne',cursive}
.hand,.display-art em,.signature{font-family:var(--script)}
nav,.micro,.tab-label,.open-label,.ticket-no,.placeholder-note,small,.subtitle,.film-piece .project-bottom>span{font-family:var(--serif);font-size:14px}
header{color:#eee6d7}.signature img{width:90px;height:58px;object-fit:cover;mix-blend-mode:screen;filter:invert(1) grayscale(1)}
.hero{height:110svh;min-height:760px}.hero-stage{min-height:700px}
.hero-title{top:17%;left:18%;right:18%;text-align:center}
h1{margin:0 auto;line-height:1;letter-spacing:0;max-width:750px}
h1 img{width:100%;display:block;mix-blend-mode:screen;filter:grayscale(1) invert(1);max-height:480px;object-fit:contain}
.subtitle{font-size:clamp(25px,3vw,43px);letter-spacing:.4px;margin:5px 0 30px;line-height:1.2}
.hero-title>.micro{color:#dbd3c5}
.lace-ribbon{position:absolute;pointer-events:none;mix-blend-mode:screen;filter:grayscale(1);opacity:.65}
.hero-lace{width:280px;right:-95px;top:80px;transform:rotate(12deg)}
.greeting{position:relative;isolation:isolate;min-height:680px}
.lace-medallion{position:absolute;width:min(630px,90vw);height:530px;z-index:-1;border:14px double #e9dfcc55;border-radius:45% 45% 43% 43%;outline:3px dotted #f4e9d880;outline-offset:9px;background:radial-gradient(ellipse at center,transparent 66%,#eee5d01c 67%,transparent 69%);box-shadow:0 0 0 18px #e9dfcc0c}
.greeting h2{font-size:115px}.greeting-note{color:inherit}
.work-layout{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.case,.case-major,.case-small,.case-wide{transform:none;margin:0;width:100%;grid-column:auto;align-self:stretch;display:flex;flex-direction:column;padding:0;background:transparent;box-shadow:none}
.case .tab-label{position:absolute;top:auto;bottom:120px;left:0;padding:12px 20px 18px;background:#dbc1ba;border-radius:12px 20px 0 0;z-index:2;letter-spacing:.5px;font-size:12px}
.case:nth-child(2) .tab-label{background:#b9cdd2}
.case .project-art{width:90%;margin:auto;min-height:260px;padding:25px 20px 60px;border:9px solid #f4efdf;box-shadow:0 2px 15px #0002;gap:20px}
.case .display-art{font-size:36px}.case .project-art>.hand{font-size:21px}
.case .project-bottom{position:relative;z-index:3;background:#e3c9c0;width:100%;min-height:140px;margin-top:-28px;padding:28px 22px;align-items:start;flex-direction:column;gap:14px;border-radius:0 10px 12px 12px;box-shadow:0 12px 18px #0002;border-top:1px solid #ffffff65}
.case:nth-child(2) .project-bottom{background:#c6d7db}.case:nth-child(3) .project-bottom{background:#e1d5b3}
.case:nth-child(3):before{content:'03 / RESEARCH';position:absolute;bottom:120px;left:0;background:#d7cba6;padding:12px 20px 18px;border-radius:12px 20px 0 0;font-size:12px;z-index:2}
.case .project-bottom strong{font-size:28px}.case .project-bottom small,.case .open-label{font-size:12px}
.case:hover,.case:focus-visible{transform:translateY(-7px)}
.made-layout{grid-template-columns:.8fr 1.3fr;gap:60px}.film-library{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:center}.film-strip{background:#282629;padding:22px 23px;position:relative;display:grid;gap:12px}
.film-strip:before,.film-strip:after{content:'';position:absolute;top:8px;bottom:8px;width:8px;background:repeating-linear-gradient(to bottom,#e9e0cc 0 10px,transparent 10px 20px)}.film-strip:before{left:6px}.film-strip:after{right:6px}
.film-frame{border:1px solid #b4a7a16b;background:#51484d;color:#eee5d4;aspect-ratio:1.6;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:15px;font-size:23px}.film-frame:hover{background:#71646b}.film-frame .play{font-size:30px}
.film-titles{display:grid;gap:30px}.film-titles h3{font-size:25px;font-weight:400;margin:8px 0}.film-titles .micro{font-size:12px}
.watch-book{position:relative;max-width:930px;margin:auto;background:#c3d3d4;padding:35px;border-radius:6px 18px 18px 6px;box-shadow:8px 14px 25px #544c4425;color:#514d51}
.book-spread{display:grid;grid-template-columns:1fr 1fr;perspective:1200px;background:#f4efdf;box-shadow:3px 3px 0 #dbd4c4,6px 6px 0 #eee8d8}
.book-left,.book-right{padding:36px;min-height:460px;position:relative}
.book-left{border-right:1px solid #ccc2ae;background:linear-gradient(90deg,#f4efdf 93%,#d8d0bd)}
.book-right{background:linear-gradient(90deg,#e1d9c8,#faf5e8 8%);transform-origin:left center}
.book-right.turning{animation:page-turn .65s ease-in-out}
@keyframes page-turn{0%{transform:rotateY(0)}50%{transform:rotateY(-85deg);opacity:.4}100%{transform:rotateY(0);opacity:1}}
.cover-mount{position:relative;margin:20px auto;background:#e9e1d0;padding:12px 12px 32px;box-shadow:2px 6px 10px #0002;max-width:220px}
.cover-mount:before{content:'';position:absolute;z-index:2;left:48%;top:-10px;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#eee4cf,#8a8071 65%);box-shadow:2px 4px 3px #0005}
.film-cover{width:100%;aspect-ratio:2/3;object-fit:cover;filter:grayscale(1) sepia(.25);display:block}
.cover-placeholder{aspect-ratio:2/3;background:linear-gradient(145deg,#a7a9a1,#626961);display:grid;place-content:center;text-align:center;color:#efe8d8;gap:12px}.cover-placeholder span{font-size:40px}
.book-right h3{font-size:42px;line-height:1.1;font-weight:400;margin:24px 0}.book-right .hand{font-size:27px;line-height:1.5}
.book-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:28px}.book-controls button{border:1px solid #716b6255;background:#f4efdf;padding:10px 18px;cursor:pointer;font-size:17px;min-height:44px}
.book-hint{font-size:15px;text-align:center;margin-bottom:0}
.about-layout{gap:50px}.bio-paper{transform:none}.ending{position:relative;overflow:hidden}
.envelope{position:relative;width:min(650px,100%);margin:65px auto 55px;padding:0 45px 125px;isolation:isolate;color:#625057}
.envelope:before{content:'';position:absolute;left:0;right:0;bottom:0;height:70%;background:#dbc0c4;clip-path:polygon(0 27%,50% 0,100% 27%,100% 100%,0 100%);z-index:-1}
.envelope:after{content:'';position:absolute;inset:48% 0 0;background:linear-gradient(30deg,#e4c5ca,#eed5d6);clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);filter:drop-shadow(0 -2px 2px #71585b20);z-index:2}
.letter{position:relative;padding:40px 25px 100px;background:#f5efde;border:7px double #cdbbac;box-shadow:0 5px 25px #72545a22;outline:3px dotted #e1d7bd;outline-offset:-15px}
.letter h3{font-size:42px;font-weight:400;margin:20px 0}.ending .letter .contact-links{margin:30px 0;gap:18px;flex-wrap:wrap}.letter>.hand{font-size:29px}.envelope-seal{position:absolute;z-index:3;bottom:68px;left:calc(50% - 25px);width:50px;height:50px;border-radius:50%;background:#ac7c87;color:#f4dfdb;font-size:30px;display:grid;place-content:center;box-shadow:0 3px 4px #0002}
.light-meter{display:none}.reveal{opacity:1;filter:none}
@media(max-width:900px){.work-layout{grid-template-columns:1fr;gap:65px;max-width:560px;margin:auto}.case .project-art{min-height:240px}.made-layout{grid-template-columns:1fr}.film-library{max-width:600px;width:100%;margin:auto}.book-left,.book-right{padding:25px}.hero-title{left:10%;right:10%;top:25%}}
@media(max-width:600px){.hero-title{left:6%;right:6%;top:26%}.hero{min-height:740px;height:100svh}.hero-stage{min-height:740px}.hero-lace{width:190px;right:-90px;top:100px;opacity:.45}.subtitle{font-size:28px;margin-top:30px}h1{max-width:430px}.signature img{width:65px;height:45px}.greeting h2{font-size:95px}.lace-medallion{height:520px}.film-library{gap:18px;grid-template-columns:1fr .9fr}.film-titles h3{font-size:22px}.film-frame{min-height:90px}.watch-book{padding:18px}.book-spread{grid-template-columns:1fr}.book-left{min-height:0;border-right:0;padding:15px}.cover-mount{max-width:165px;margin:15px auto}.book-right{min-height:230px;padding:24px;background:#faf5e8}.book-right h3{font-size:34px;margin:15px 0}.book-right .hand{font-size:24px}.book-controls{gap:8px}.book-controls button{padding:8px 10px;font-size:16px}.envelope{padding:0 20px 100px}.letter{padding:35px 14px 80px}.letter h3{font-size:32px}.ending .letter .contact-links{gap:14px}.contact-links a,.resume-pending{font-size:18px}nav{font-size:15px;gap:15px}}

h1 img,.signature img{filter:grayscale(1) invert(1) contrast(2.6);mix-blend-mode:screen}.lace-ribbon{filter:grayscale(1) contrast(1.4)}.intro-lace{width:190px;left:-65px;top:80px;opacity:.5}.ending-lace{width:240px;right:-80px;top:160px;filter:grayscale(1) invert(1);mix-blend-mode:multiply;opacity:.22}

.cover-atlas{background-image:url('assets/watchlist-covers.png');background-size:1407.142857% 383.809524%;background-position:1.420765% 3.187919%;background-repeat:no-repeat}
#watch-note:empty{display:none}
#watch-title{overflow-wrap:anywhere}

/* Clean supplied calligraphy: suppress the reference checkerboard at display time. */
h1 img{filter:grayscale(1) invert(1) contrast(8);mix-blend-mode:screen;max-height:none;width:100%;height:auto}
.hero-title{top:25%}
.hero-title h1{margin:35px auto 40px;max-width:800px}
@media(max-width:600px){.hero-title{top:28%}.hero-title h1{margin:35px auto}.subtitle{margin-top:25px}}

/* A continuous shelf of moving images. */
.films.section{max-width:1600px;padding-left:5%;padding-right:5%}
.reel{position:relative;background:#252428;color:#eee5d5;padding:26px 0 22px;isolation:isolate}
.reel:before,.reel:after{content:'';height:10px;position:absolute;left:0;right:0;background:repeating-linear-gradient(90deg,transparent 0 13px,#cabfae 13px 26px,transparent 26px 38px)}
.reel:before{top:8px}.reel:after{bottom:8px}
.reel-window{overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.reel-window::-webkit-scrollbar{display:none}
.reel-track{display:flex;width:max-content}
.reel-group{display:flex;gap:22px;padding:12px 22px 12px 0}
.reel-card{flex:0 0 170px;width:170px;border:0;background:transparent;padding:0;text-align:left;cursor:pointer}
.reel-card .film-cover{border:5px solid #e6ddcb;box-shadow:0 3px 10px #0005;transition:filter .3s,transform .3s;display:block}
.reel-card:hover .film-cover,.reel-card:focus-visible .film-cover{filter:none;transform:translateY(-4px)}
.reel-title{display:block;font-size:19px;line-height:1.15;margin-top:14px;min-height:44px}
.reel-year{display:block;font-size:14px;margin-top:6px;color:#c8bbad}
.reel-edge{position:absolute;z-index:2;top:26px;bottom:22px;width:55px;border:0;color:#f4ead7;cursor:pointer;font-size:32px;background:linear-gradient(90deg,#252428f5,#25242855)}
.reel-left{left:0}.reel-right{right:0;background:linear-gradient(-90deg,#252428f5,#25242855)}
.reel-edge:hover{background:#65555bd9}.reel-controls{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:15px}
.reel-controls button{background:transparent;border:1px solid currentColor;padding:10px 18px;font-size:17px;cursor:pointer;min-height:44px}
.reel-hint{font-size:18px;opacity:.8}
.reel-detail-cover{display:block;width:min(240px,100%);margin:20px auto}
@media(max-width:600px){.reel-card{flex-basis:140px;width:140px}.reel-group{gap:16px;padding-right:16px}.reel-title{font-size:17px;min-height:60px}.reel-edge{width:34px;font-size:24px}.reel-hint{font-size:16px}.reel-controls .micro{font-size:12px}}

header .signature img{width:96px;height:64px;object-fit:contain;filter:grayscale(1) invert(1) contrast(8);mix-blend-mode:screen}
footer .signature img{width:105px;height:70px;object-fit:contain;filter:grayscale(1) contrast(8);mix-blend-mode:multiply}
@media(max-width:600px){header .signature img{width:75px;height:50px}footer .signature img{width:90px;height:60px}}

/* Soft edge shading keeps navigation integrated with the film strip. */
.reel-edge{width:76px;background:linear-gradient(90deg,rgba(37,36,40,.94) 0%,rgba(37,36,40,.62) 38%,rgba(37,36,40,.2) 72%,transparent 100%)}
.reel-right{background:linear-gradient(270deg,rgba(37,36,40,.94) 0%,rgba(37,36,40,.62) 38%,rgba(37,36,40,.2) 72%,transparent 100%)}
.reel-edge:hover{background:linear-gradient(90deg,rgba(37,36,40,.98) 0%,rgba(37,36,40,.72) 38%,rgba(37,36,40,.24) 72%,transparent 100%)}
.reel-right:hover{background:linear-gradient(270deg,rgba(37,36,40,.98) 0%,rgba(37,36,40,.72) 38%,rgba(37,36,40,.24) 72%,transparent 100%)}
@media(max-width:600px){.reel-edge{width:46px}}

/* Bare navigation arrows: no rectangular overlay in any state. */
.reel-edge,.reel-right,.reel-edge:hover,.reel-right:hover,.reel-edge:focus-visible,.reel-edge:active{background:none;box-shadow:none;border:0;text-shadow:0 1px 3px #000,0 0 8px #000;color:#fff8e9}
.reel-edge:hover{color:#fff}

/* Sleek supporting typography; preserve the handwritten identity and script accents. */
:root{--serif:'Avenir Next','Avenir','Helvetica Neue',Helvetica,Arial,sans-serif}
body{font-family:var(--serif);font-weight:300}
nav,.micro,.tab-label,.open-label,.ticket-no,.placeholder-note,small,.subtitle,.film-piece .project-bottom>span{font-family:var(--serif);font-weight:300}
h2,h3,h4,.project-bottom strong,.display-art,.reel-title,.reel-year{font-weight:300}
h2{letter-spacing:-1.5px}
h2 em,h3 em{font-family:var(--serif);font-weight:300}
.ending h2 em,.display-art em,.hand,.signature{font-family:var(--script);font-weight:400}
.close,.play,.reel-edge{font-family:var(--serif)}
.greeting p,.bio-paper>p:not(.micro){line-height:1.7}
.micro,.tab-label,.open-label,.ticket-no{letter-spacing:1px}
.reel-title{font-size:16px;line-height:1.35;min-height:66px}
.reel-year{font-size:13px}
@media(max-width:600px){.reel-title{font-size:14px;min-height:76px}.subtitle{font-size:25px}.greeting p,.bio-paper>p:not(.micro){font-size:18px}}

/* One supporting type weight, including component-specific headings and controls. */
body,body *{font-weight:300!important;font-synthesis:none}
body .hand,body .signature,body .display-art em,body .ending h2 em{font-weight:400!important}
body button,body input,body textarea,body select{font-family:var(--serif)}

/* Scalloped sage stationery in a simple ivory envelope. */
.envelope{width:min(620px,100%);padding:0 26px 0;margin:65px auto 60px;min-height:570px;isolation:isolate}
.envelope:before{left:0;right:0;bottom:0;height:58%;background:#e7e2d6;clip-path:polygon(0 0,16% 25%,84% 25%,100% 0,100% 100%,0 100%);filter:drop-shadow(0 5px 10px #665a4320);z-index:0}
.letter{position:relative;z-index:1;min-height:510px;padding:120px 35px 200px;background-color:#a5b8ae;color:#273f37;border:10px solid #e8e4d8;border-radius:48% 48% 9px 9px / 36% 36% 9px 9px;outline:none;box-shadow:0 2px 6px #4a514528;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='5'%3E%3Cpath d='M0 0h5M0 0v5' stroke='%23fff' stroke-opacity='.13' stroke-width='.6'/%3E%3C/svg%3E")}
.letter h3{font-family:var(--script);font-size:56px;line-height:1.2;margin:0 0 26px}
.letter h3 em{font-family:inherit;font-style:normal}
.ending .letter .contact-links{position:relative;z-index:4;margin:24px 0 0;gap:26px}
.letter .contact-links a{font-size:18px;border-color:#526f61}
.envelope:after{inset:auto 0 0;height:190px;z-index:2;border-radius:25px 25px 3px 3px;clip-path:polygon(5% 0,95% 0,100% 100%,0 100%);background:linear-gradient(110deg,#e6e1d5,#f0ebdf 55%,#e8e3d8);box-shadow:0 -2px 3px #69634f26,0 12px 20px #4c443518;border-top:1px solid #fff9;filter:none}
@media(max-width:600px){.envelope{min-height:440px;padding:0 14px}.letter{min-height:400px;padding:90px 15px 150px;border-width:7px}.letter h3{font-size:40px}.ending .letter .contact-links{gap:18px}.envelope:after{height:140px}.letter .contact-links a{font-size:17px}}

.contact-envelope{position:relative;width:min(620px,100%);margin:55px auto 60px}
.contact-envelope>img{display:block;width:100%;height:auto;mix-blend-mode:multiply}
.ending .contact-envelope .contact-links{position:absolute;top:47%;left:20%;right:20%;margin:0;justify-content:center;gap:32px;color:#263d34;z-index:1}
.contact-envelope .contact-links a{font-size:19px;min-height:44px;display:flex;align-items:center;border-bottom:1px solid #52665a}
@media(max-width:600px){.ending .contact-envelope .contact-links{gap:22px;left:15%;right:15%;top:46%}.contact-envelope .contact-links a{font-size:15px}}

/* Page-native stationery, without a photographic rectangle. */
.contact-envelope{width:min(590px,100%);filter:drop-shadow(0 12px 12px #685d4810)}
.envelope-graphic{display:block;width:100%;height:auto;overflow:visible}
.envelope-heading{position:absolute;top:25%;left:10%;right:10%;margin:0;color:#344e40;font-family:var(--script);font-size:clamp(40px,6vw,72px);font-weight:400!important;line-height:1.2;transform:rotate(-5deg)}
.ending .contact-envelope .contact-links{top:54%;left:18%;right:18%;gap:32px;color:#344e40}
.contact-envelope .contact-links a{font-size:18px;border-color:#718575;min-height:44px}
@media(max-width:600px){.envelope-heading{font-size:clamp(34px,10vw,52px)}.ending .contact-envelope .contact-links{top:52%;gap:25px}.contact-envelope .contact-links a{font-size:14px}}

.envelope-heading{top:22%;left:13%;right:13%;transform:none;mix-blend-mode:multiply}
.envelope-heading svg{display:block;width:100%;height:auto;filter:grayscale(1) brightness(1.65) contrast(4)}

.envelope-heading{top:17%;left:17%;right:17%;margin:0;mix-blend-mode:normal}
.envelope-heading img{display:block;width:100%;height:auto;filter:none}
@media(max-width:600px){.envelope-heading{top:17%;left:17%;right:17%}}

/* Final pairing: editorial headings with clean supporting type. */
:root{--serif:'Avenir Next','Avenir','Helvetica Neue',Arial,sans-serif;--script:var(--serif)}
body{font-family:var(--serif)}
body h1,body h2,body h3,body h4,body h2 em,body h3 em,body .ending h2 em,body .display-art,body .display-art em,body .project-bottom strong{font-family:'Playfair Display',Georgia,serif;font-weight:400!important;font-style:normal}
body .hand,body .signature,body .reel-title,body .reel-year{font-family:var(--serif);font-weight:300!important;font-style:normal}
body .hand{font-size:22px;line-height:1.5}
body .greeting h2 .hand{font-size:32px}
@media(max-width:600px){body .hand{font-size:19px}body .greeting h2 .hand{font-size:28px}}

.about-photo-strip{position:relative;height:720px;display:flex;align-items:center;justify-content:center;overflow:visible}
.about-photo-strip img{height:100%;width:auto;max-width:none;display:block;filter:drop-shadow(5px 10px 8px #42362b24)}
@media(max-width:900px){.about-photo-strip{height:610px}}
@media(max-width:600px){.about-photo-strip{height:620px;width:100%;overflow:hidden}.about-layout{gap:35px}}

/* Balance the narrow photo strip with the biography and contain image overflow. */
.about-layout{grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:40px;align-items:center}
.about-photo-strip{height:630px;min-width:0;overflow:hidden}
.about-photo-strip img{height:100%;width:auto;flex-shrink:0}
.bio-paper{min-width:0;width:100%}
@media(max-width:900px){.about-layout{grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:24px}.about-photo-strip{height:550px}}
@media(max-width:600px){.about-layout{grid-template-columns:minmax(0,1fr);gap:28px}.about-photo-strip{height:540px;width:100%}}

.cursor-stars{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:100;contain:strict}
.cursor-star{position:absolute;display:block;font-family:Georgia,serif;color:#e9d7ac;line-height:1;text-shadow:0 0 5px #f6e5bb88;pointer-events:none;animation:cursor-star-fade 1.05s ease-out forwards}
@keyframes cursor-star-fade{0%{opacity:0;transform:translate(-50%,-50%) scale(.45)}15%{opacity:.9}100%{opacity:0;transform:translate(calc(-50% + var(--star-x)),calc(-50% + var(--star-y))) rotate(var(--star-rotation)) scale(.15)}}
@media(prefers-reduced-motion:reduce),(hover:none){.cursor-stars{display:none}}


/* Physical archive: a permanent folder and three sequentially withdrawn postcards. */
.archive-scroll{overflow-x:auto;overflow-y:hidden;padding:32px 8px 24px;scrollbar-width:thin;scrollbar-color:#9ba88f transparent}
.project-archive{--paper:220px;--space:24px;position:relative;isolation:isolate;perspective:1500px;width:calc(var(--paper)*4 + var(--space)*3 + 20px);min-height:410px}
.archive-back{position:absolute;left:0;top:40px;width:var(--paper);height:300px;background:#8fA18c;border-radius:7px;box-shadow:0 14px 22px #211c2725}
.archive-cover{position:absolute;left:0;top:40px;width:var(--paper);height:300px;padding:24px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;border:1px solid #7f937953;border-radius:6px 12px 12px 6px;background:linear-gradient(100deg,#b9c6ab,#a8b79e);color:#344739;z-index:5;cursor:pointer;transform-origin:left center;transition:transform .85s cubic-bezier(.22,.75,.22,1);box-shadow:inset 5px 0 5px #35463515,2px 5px 9px #0002}
.archive-tab{position:absolute;top:-25px;left:-1px;padding:8px 15px;background:#b9c6ab;border-radius:8px 16px 0 0;font-size:10px;letter-spacing:1px}
.archive-name{font-family:'Playfair Display',Georgia,serif;font-size:35px;line-height:1.2}
.archive-cover>.micro{font-size:10px;line-height:1.7}.archive-action{font-size:13px}
.archive-postcards{position:absolute;inset:0;pointer-events:none}
.archive-card{position:absolute;left:0;top:40px;width:var(--paper);height:300px;padding:18px;border:8px solid #f3eddf;outline:1px solid #c8bfac;box-shadow:2px 7px 13px #27201b22;color:#554b48;display:flex;flex-direction:column;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;opacity:1;z-index:calc(4 - var(--card));transform:translateX(calc(24px + var(--card)*12px)) translateY(calc(-8px - var(--card)*8px)) scale(.97);transition:transform 1.05s cubic-bezier(.22,.8,.22,1),box-shadow .35s;transition-delay:calc((2 - var(--card))*.16s)}
.archive-card:after,.archive-cover:after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='p'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.4' filter='url(%23p)'/%3E%3C/svg%3E")}
.postcard-stamp{align-self:flex-end;border:2px dotted #827966;padding:5px 9px;font-size:25px;line-height:1;display:flex;gap:5px;align-items:center}.postcard-stamp small{font-size:10px}
.archive-card .micro{font-size:10px;letter-spacing:.8px}
.postcard-art{font-family:'Playfair Display',Georgia,serif;font-size:27px;line-height:1.15}
.postcard-title{border-top:1px solid #716b6255;padding-top:12px;font-size:14px}
.is-open .archive-cover{transform:rotateY(-24deg);box-shadow:8px 8px 16px #0002}
.is-open .archive-postcards{pointer-events:auto}
.is-open .archive-card{transform:translateX(calc((var(--card) + 1)*(var(--paper) + var(--space)))) translateY(0) scale(1);transition-delay:calc(var(--card)*.22s)}
.is-open .archive-card:hover,.is-open .archive-card:focus-visible{transform:translateX(calc((var(--card) + 1)*(var(--paper) + var(--space)))) translateY(-12px) scale(1.02);z-index:6;box-shadow:3px 17px 23px #27201b30;transition-delay:0s}
.is-open .archive-postcards:has(.archive-card:hover) .archive-card:not(:hover){translate:0 5px}
.archive-card{transition:transform 1.05s cubic-bezier(.22,.8,.22,1),translate .45s,box-shadow .35s}
.archive-close{position:absolute;top:365px;left:0;padding:10px 0;border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;font-size:14px;z-index:6}
.archive-close[hidden]{display:none}
dialog.case-study-sheet[open]{animation:study-pull .65s cubic-bezier(.22,.8,.22,1);border:10px solid #e8dfcc;background:#faf4e8}
@keyframes study-pull{from{transform:translateY(140px) scale(.94)}to{transform:translateY(0) scale(1)}}
@media(max-width:1100px){.project-archive{--paper:195px;--space:20px}}
@media(max-width:600px){.project-archive{--paper:200px;--space:20px}.archive-scroll{margin-right:-7%;padding-right:24px}}
@media(prefers-reduced-motion:reduce){.archive-cover,.archive-card{transition:none!important}dialog.case-study-sheet[open]{animation:none}}

.elevator-pitch{padding:55px 8% 85px;text-align:center}
.pitch-paper{position:relative;isolation:isolate;max-width:850px;margin:auto;padding:85px 110px;background:#eee6d4;color:#4d5948;border-radius:80px 80px 28px 28px;box-shadow:0 10px 30px #0002}
.pitch-paper:before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.pitch-border{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);color:#9a7c79;pointer-events:none}
.pitch-paper p{position:relative;font-family:var(--serif);font-size:21px;line-height:1.7;margin:0}
.pitch-paper p+p{margin-top:20px}
.pitch-next{display:inline-block;margin-top:32px;font-size:12px}
@media(max-width:600px){.elevator-pitch{padding:25px 6% 55px}.pitch-paper{padding:70px 35px;border-radius:55px 55px 22px 22px}.pitch-paper p{font-size:18px}.pitch-border{opacity:.65}}

.pitch-section{padding:55px 7% 100px;display:flex;justify-content:center}
.pitch-card{position:relative;isolation:isolate;width:min(880px,100%);padding:85px 100px 65px;background:#f1eadb;color:#454c3c;border-radius:46% 46% 12px 12px / 12% 12% 12px 12px;box-shadow:0 16px 35px #0002;outline:1px solid #c7bda6;outline-offset:-13px;text-align:center}
.pitch-card:before{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;opacity:.2;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.3' filter='url(%23n)'/%3E%3C/svg%3E")}
.pitch-ornament{position:absolute;inset:18px;width:calc(100% - 36px);height:calc(100% - 36px);color:#879574;pointer-events:none;opacity:.85}
.pitch-copy{position:relative;font-family:'Playfair Display',Georgia,serif;font-size:27px;line-height:1.65;margin:0;font-weight:400!important}
.pitch-link{display:inline-block;margin-top:30px;font-size:14px;letter-spacing:1px;border-bottom:1px solid #879574;padding-bottom:7px}
@media(max-width:600px){.pitch-section{padding:25px 6% 65px}.pitch-card{padding:65px 38px 45px}.pitch-copy{font-size:20px;line-height:1.7}.pitch-ornament{opacity:.5}}

/* Compact lace introduction beneath the creative title. */
.hero{height:auto;min-height:100svh}
.hero-stage{position:relative;height:auto;min-height:100svh;overflow:visible;padding:140px 6% 70px}
.hero-title{position:relative;top:auto;left:auto;right:auto;max-width:850px;margin:auto}
.hero-title h1{max-width:640px;margin:25px auto}
.lace-pitch{position:relative;isolation:isolate;width:min(500px,100%);aspect-ratio:735 / 501;margin:26px auto 0;display:grid;place-items:center}
.lace-pitch img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;mix-blend-mode:screen;z-index:-1}
.lace-pitch p{width:69%;margin:0;color:#4c493e;font-family:'Avenir Next',Avenir,sans-serif;font-size:17px;line-height:1.65;text-align:center}
@media(max-width:600px){.hero-stage{padding:115px 6% 45px}.hero-title{top:auto;left:auto;right:auto}.hero-title h1{margin:20px auto}.lace-pitch{margin-top:20px}.lace-pitch p{font-size:14px;line-height:1.45;width:70%}}
/* Let the lace sit quietly below the title. */
.lace-pitch{margin-top:72px;opacity:.82}
.lace-pitch img{filter:brightness(.64) sepia(.16);opacity:.84}
.lace-pitch p{color:#292d27}
@media(max-width:600px){.lace-pitch{margin-top:52px}}

.text-editor{position:fixed;bottom:18px;left:18px;z-index:100;background:#eee8dc;color:#3b4037;border:1px solid #b8b4a7;border-radius:10px;padding:10px 14px;box-shadow:0 4px 22px #0002;font:14px/1.5 'Avenir Next',sans-serif;max-width:min(340px,calc(100vw - 36px))}
.text-editor button{border:1px solid #999e8f;border-radius:5px;background:transparent;padding:7px 12px;cursor:pointer;font:inherit}
.text-editor p{margin:8px 0 12px}.editor-actions{display:flex;gap:8px;flex-wrap:wrap}.editor-status{display:block;font-size:12px;max-width:280px}.editor-status:empty{display:none}
.text-editor [hidden]{display:none!important}
.editing-text [data-edit-id]{outline:1px dashed #b69e79;outline-offset:5px;cursor:text;min-width:12px;min-height:1em}
.editing-text [data-edit-id]:focus{outline:2px solid #a18b69;background:#c7bba622}
.editing-text .cursor-stars{display:none}
.photography-scroll{height:620svh;position:relative}
.photography-pin{height:100svh;min-height:480px;position:sticky;top:0;overflow:hidden}
.photography-heading{position:absolute;left:9%;top:8%;z-index:1;pointer-events:none}
.photography-title{font-family:'Playfair Display',Georgia,serif;font-size:clamp(38px,5vw,72px);line-height:1.2;margin:15px 0}
.photography-hint{font:14px 'Avenir Next',sans-serif;opacity:.7}
.photography-pin canvas{display:block;width:100%;height:100%}
.photo-scroll-meter{position:absolute;bottom:7%;left:9%;width:110px;height:1px;background:#9b887455}
.photo-scroll-progress{display:block;height:1px;background:currentColor;width:0}
.photo-static{display:none}
.photo-piece[hidden]{display:none!important}
.made-layout{display:block}.made-layout .film-library{max-width:850px;margin:auto}
@media(max-width:600px){.photography-scroll{height:650svh}.photography-heading{top:9%;left:7%}.photography-hint{font-size:12px}}
@media(prefers-reduced-motion:reduce){.photography-scroll{height:auto}.photography-pin{position:relative;height:auto;min-height:0;padding:65px 0}.photography-heading{position:relative;top:auto;left:auto;margin:0 7% 35px}.photography-pin canvas,.photo-scroll-meter{display:none}.photo-static{display:flex;overflow-x:auto;gap:12px;padding:30px 7%;background:#70472588;border-block:14px dotted #cdb68e}.photo-static img{height:250px;max-width:85vw;object-fit:contain;flex:none}}

@media(prefers-reduced-motion:reduce){.photo-static{background:#70767b66;border-color:#b6bdc2}}
.photography-scroll{height:auto}
.photography-pin{position:relative;height:80svh;min-height:540px}
.film-entrance{display:block;position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;padding:0;cursor:pointer}
.film-entrance:focus-visible{outline:1px solid currentColor;outline-offset:-12px}
.gallery-direct{position:absolute;bottom:10%;left:9%;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:6px;z-index:2}
.photo-scroll-meter,.photo-static{display:none}
@media(prefers-reduced-motion:reduce){.photography-pin{height:80svh;padding:0}.photography-pin canvas{display:block}.photography-heading{position:absolute;top:8%;left:9%;margin:0}}

/* A closer transition from the photography entrance to film recommendations. */
.photography-pin{height:62svh;min-height:440px}
.photography-scroll + .films.section{padding-top:35px}
@media(max-width:600px){.photography-pin{height:58svh;min-height:390px}.photography-scroll + .films.section{padding-top:25px}}

/* Compact spacing and a consistent type hierarchy. */
.hero,.hero-stage{min-height:0}
.hero-stage{padding-top:120px;padding-bottom:40px}
.hero-title h1{max-width:560px;margin:16px auto}
.subtitle{font-size:clamp(23px,2.8vw,35px);margin-bottom:12px}
.section{padding-top:60px;padding-bottom:60px}
.section-heading{margin-bottom:35px}
h2{font-size:clamp(38px,4.6vw,62px);line-height:1.12;margin:15px 0;letter-spacing:-1px}
.section-heading .hand{font-size:19px;line-height:1.5;margin-top:12px}
.photography-title{font-size:clamp(36px,4.6vw,60px)}
.photography-pin{height:420px;min-height:420px}
.photography-heading{top:5%}
.gallery-direct{bottom:6%}
.photography-scroll + .films.section{padding-top:25px}
.about.section{padding-bottom:15px}
.about-layout{gap:35px;align-items:center}
.bio-paper{padding:30px}
.bio-paper h3{font-size:clamp(29px,3.2vw,42px);line-height:1.15}
.bio-paper>p:not(.micro){font-size:17px;line-height:1.65}
.bio-paper>.hand{font-size:19px}
.made-note[hidden],.about .contact-links[hidden]{display:none!important}
.ending{padding:15px 7% 35px}
.contact-envelope{max-width:490px;margin:0 auto 18px}
.ending .contact-links{gap:18px;flex-wrap:wrap;justify-content:center}
.ending .contact-links a{font-size:16px}
.film-project-details{display:grid;gap:24px;margin-top:25px}
.film-project-details section{padding:0 0 20px;border-bottom:1px solid #a8997d55}
.film-project-details h3{font:400 27px 'Playfair Display',serif;margin:0 0 10px}
.film-project-details p{font:17px/1.65 'Avenir Next',sans-serif;margin:0}
@media(max-width:600px){.section{padding-top:40px;padding-bottom:40px}.hero-stage{padding:100px 6% 25px}.section-heading{margin-bottom:25px}.photography-pin{height:365px;min-height:365px}.about.section{padding-bottom:10px}.bio-paper{padding:24px}.ending{padding-top:10px}.ending .contact-links{gap:12px}.ending .contact-links a{font-size:14px}}

/* Six-frame scroll preview; the complete collection remains on its own page. */
.photography-scroll{height:460svh}
.photography-pin{position:sticky;top:0;height:100svh;min-height:480px}
.film-entrance{cursor:default}
.gallery-direct{left:50%;bottom:8%;transform:translateX(-50%);padding:12px 22px;border:1px solid currentColor;border-radius:3px;background:#d4d0c522;white-space:nowrap}
.gallery-direct[hidden]{display:none!important}
@media(max-width:600px){.photography-scroll{height:480svh}.photography-pin{height:100svh;min-height:440px}}
@media(prefers-reduced-motion:reduce){.photography-scroll{height:auto}.photography-pin{position:relative;height:75svh;min-height:440px}.gallery-direct{bottom:5%}}

/* The gallery link follows the trailing end of the film. */
.photography-pin .gallery-direct{bottom:auto;transform:translateY(-50%);padding:10px 14px;font-size:14px}
@media(max-width:600px){.photography-pin .gallery-direct{font-size:12px;padding:9px 11px}}

dialog.aisff-dialog{width:min(1200px,94vw);max-width:94vw;padding:35px}
.aisff-website>a{display:inline-block;font-size:14px;margin:0 0 15px;border-bottom:1px solid;padding-bottom:5px}
.aisff-website iframe{display:block;width:100%;height:68vh;min-height:350px;border:1px solid #b7b5ac;border-radius:3px;background:white}
@media(max-width:600px){dialog.aisff-dialog{padding:30px 15px}.aisff-website iframe{height:65svh;min-height:300px}}

.aisff-reflections{margin-top:35px}.aisff-reflections p:empty{min-height:24px}
/* Keep the opening viewport focused on the name and creative title. */
.hero{min-height:100svh}
.hero-stage{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:110px 6% 60px}
.hero-title{width:100%;margin:0 auto}
.hero-title>.micro{display:none}
@media(max-width:600px){.hero-stage{min-height:100svh;padding:95px 6% 50px}}

/* A brief welcome bridges the opening title and selected work. */
.welcome-intro{max-width:850px;margin:0 auto;padding:45px 32px 55px;text-align:center}
.welcome-intro p{margin:0;font-family:"Avenir Next",Avenir,sans-serif;font-size:20px;font-weight:400;line-height:1.85;color:inherit}
@media(max-width:600px){.welcome-intro{padding:30px 25px 40px}}

/* Serif creative title and a more spacious portrait introduction. */
.hero-title .subtitle{font-family:'Playfair Display',Georgia,serif;font-weight:400;letter-spacing:.2px;font-size:clamp(21px,2.5vw,31px)}
@media(orientation:portrait){
  .welcome-intro{max-width:850px;padding:70px clamp(38px,8vw,80px) 85px}
}

@media(orientation:landscape){
  .welcome-intro{width:94%;max-width:1200px;padding-left:24px;padding-right:24px}
  .welcome-intro p{text-wrap:balance}
}

.aisff-overview-title{font-size:28px;margin:0 0 20px}.aisff-reflections ul{padding-left:24px;margin:14px 0 32px;line-height:1.8}.aisff-reflections li{padding-left:5px;margin:10px 0}

.eevm-links{display:flex;flex-wrap:wrap;gap:18px 28px;margin:20px 0 35px}.eevm-links a{border-bottom:1px solid;padding-bottom:5px}.eevm-reflections ul{padding-left:24px;margin:14px 0 32px;line-height:1.8}.eevm-reflections li{padding-left:5px;margin:10px 0}

.aisff-overview-title,.aisff-reflections h3{text-transform:lowercase}

dialog.eevm-dialog{width:min(1200px,94vw);max-width:94vw;padding:35px}
.eevm-embeds{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px;margin:20px 0 40px}
.eevm-embed{min-width:0}.eevm-embed>a{display:inline-block;margin:0 0 15px;border-bottom:1px solid;padding-bottom:5px}
.eevm-embed iframe{display:block;width:100%;height:600px;max-height:70vh;border:1px solid #b7b5ac;border-radius:3px;background:white}
@media(max-width:760px){dialog.eevm-dialog{padding:30px 15px}.eevm-embeds{grid-template-columns:1fr}.eevm-embed iframe{height:540px;max-height:none}}

.eevm-reflections h3{text-transform:lowercase}

/* Temporary visibility switches on body; remove the attributes to restore. */
body[data-hide-third-case-study="true"] .archive-card[data-detail="research"],
body[data-hide-film-projects="true"] #made{display:none!important}
body[data-hide-third-case-study="true"] .project-archive{width:calc(var(--paper)*3 + var(--space)*2 + 20px)}
