:root{--paper:#f3f0e8;--paper-2:#ece7dc;--paper-3:#e6e1d5;--ink:#1c1a17;--ink-2:#57534c;--ink-3:#8a857b;--line:#d8d2c6;--noir:#15130f;--noir-soft:#ece8df;--noir-mute:#9a948a;--display:"Playfair Display",Georgia,serif;--body:"Inter","Helvetica Neue",Arial,sans-serif;--script:"Parisienne",cursive;--maxw:1320px;--gut:clamp(20px,5vw,64px);--photo-filter:grayscale(0.28) sepia(0.10) contrast(1.04) brightness(0.96);--ease:cubic-bezier(0.22,1,0.36,1)}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--body);background:var(--paper);color:var(--ink);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{display:block;max-width:100%;height:auto}a{text-decoration:none}a,button{color:inherit}button{font:inherit;cursor:pointer;border:none;background:none}.serif{font-family:var(--display)}.eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2);font-weight:500}.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}.section{padding-block:clamp(56px,9vw,120px)}.section.flush-top{padding-top:0;padding-bottom:clamp(64px,9vw,128px)}.divider{border:0;border-top:1px solid var(--line)}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;border-bottom:1px solid transparent;transition:border-color .3s}.site-header:before{content:"";position:absolute;inset:0;z-index:-1;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:saturate(1.1) blur(8px);backdrop-filter:saturate(1.1) blur(8px)}.site-header.scrolled{border-bottom-color:var(--line)}.nav{display:flex;justify-content:space-between;padding-block:22px}.brand,.nav{align-items:center}.brand{display:inline-flex;gap:10px;font-family:var(--display);font-weight:600;font-size:16px;letter-spacing:.1em;white-space:nowrap}.brand svg{flex-shrink:0}.nav-links{display:flex;gap:clamp(18px,2.4vw,40px);list-style:none;align-items:center}.nav-links a{font-size:13.5px;letter-spacing:.02em;color:var(--ink-2);padding-bottom:4px;position:relative;transition:color .25s}.nav-links a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.nav-links a:hover{color:var(--ink)}.nav-links a:hover:after,.nav-links a[aria-current=page]:after{transform:scaleX(1)}.nav-links a[aria-current=page]{color:var(--ink)}.nav-toggle{display:none;width:30px;height:22px;position:relative}.nav-toggle span,.nav-toggle span:after,.nav-toggle span:before{content:"";position:absolute;left:0;height:1.5px;width:100%;background:var(--ink);transition:transform .3s var(--ease),opacity .2s}.nav-toggle span{top:50%;transform:translateY(-50%)}.nav-toggle span:before{top:-8px}.nav-toggle span:after{top:8px}.nav-open .nav-toggle span{background:transparent}.nav-open .nav-toggle span:before{transform:translateY(8px) rotate(45deg)}.nav-open .nav-toggle span:after{transform:translateY(-8px) rotate(-45deg)}@media (max-width:980px){.nav-toggle{display:block;z-index:60}.nav-links{position:fixed;inset:0;flex-direction:column;justify-content:center;gap:28px;background:var(--paper);transform:translateY(-100%);transition:transform .45s var(--ease);z-index:55}.nav-links a{font-size:22px;font-family:var(--display);color:var(--ink)}.nav-open .nav-links{transform:translateY(0)}}.btn-line{display:inline-flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;padding-bottom:8px;border-bottom:1px solid var(--ink);transition:gap .3s var(--ease),opacity .25s}.btn-line .arrow{transition:transform .3s var(--ease)}.btn-line:hover{gap:18px}.btn-line:hover .arrow{transform:translateX(4px)}.btn-solid{display:inline-flex;align-items:center;gap:14px;background:var(--ink);color:var(--paper);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;padding:16px 28px;transition:background .3s,gap .3s var(--ease)}.btn-solid:hover{background:#000;gap:20px}.btn-pill{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:12px 22px;color:var(--ink-2);transition:border-color .25s,color .25s}.btn-pill:hover{border-color:var(--ink);color:var(--ink)}.photo{display:block;position:relative;overflow:hidden;background:var(--paper-3)}.photo img{width:100%;height:100%;object-fit:cover;filter:var(--photo-filter);transition:transform 1.1s var(--ease),filter .6s}.photo:hover img{transform:scale(1.04)}.photo-link:hover img,a.photo:hover img{filter:grayscale(.12) sepia(.05) contrast(1.05) brightness(1)}.site-footer{background:var(--noir);color:var(--noir-soft);position:relative;overflow:hidden}.site-footer .footer-bg{position:absolute;inset:0;opacity:.22;background-size:cover;background-position:50%;filter:grayscale(.6) contrast(1.1) brightness(.55);-webkit-mask-image:linear-gradient(180deg,transparent,#000 60%);mask-image:linear-gradient(180deg,transparent,#000 60%)}.footer-inner{position:relative;padding-block:clamp(56px,8vw,96px);display:grid;grid-template-columns:1fr 1fr;grid-gap:48px;gap:48px}.footer-brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);letter-spacing:.1em;font-size:17px}.footer-nav{list-style:none;display:flex;flex-direction:column;gap:6px;margin-top:30px}.footer-nav a{font-family:var(--display);font-size:clamp(28px,4vw,46px);line-height:1.18;color:var(--noir-soft);transition:color .3s,padding-left .3s var(--ease)}.footer-nav a:hover{color:#fff;padding-left:10px}.footer-right{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;text-align:right}.footer-quote{font-family:var(--display);font-style:italic;font-size:clamp(18px,2vw,24px);line-height:1.5;max-width:22ch;color:var(--noir-soft);position:relative}.footer-quote .mark{font-size:64px;line-height:0;display:block;margin-bottom:22px;color:var(--noir-mute)}.footer-meta{margin-top:40px;display:flex;flex-direction:column;gap:18px;align-items:flex-end}.footer-copy{font-size:12px;color:var(--noir-mute);letter-spacing:.04em}.social{display:flex;gap:16px;align-items:center}.social a{width:22px;height:22px;display:grid;place-items:center;color:var(--ink-2);transition:color .25s,transform .25s}.social a:hover{color:var(--ink);transform:translateY(-2px)}.site-footer .social a{color:var(--noir-mute)}.site-footer .social a:hover{color:#fff}.social svg{width:17px;height:17px}@media (max-width:720px){.footer-inner{grid-template-columns:1fr;gap:40px}.footer-right{text-align:left}.footer-meta,.footer-right{align-items:flex-start}}.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.in{opacity:1;transform:none}.js-gsap .reveal{transition:none}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}.reveal{opacity:1;transform:none}}.hero{display:grid;grid-template-columns:.85fr 1.4fr;grid-gap:clamp(32px,5vw,72px);gap:clamp(32px,5vw,72px);align-items:center;padding-block:clamp(40px,6vw,72px) clamp(56px,8vw,96px);position:relative;overflow:hidden}.hero-copy,.hero-grid{position:relative;z-index:1}.hero-ambient{position:absolute;inset:-10% -8%;z-index:0;background-size:cover;background-position:50%;filter:blur(46px) saturate(1.3);transform:scale(1.12);opacity:0;transition:opacity .85s var(--ease);pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,transparent 20%,#000 56%);mask-image:linear-gradient(90deg,transparent,transparent 20%,#000 56%)}.hero-ambient[data-active=true]{opacity:.5}.hero-copy h1{font-family:var(--display);font-weight:500;font-size:clamp(44px,6vw,78px);line-height:1.02;letter-spacing:-.01em}.hero-copy .lede{margin-top:26px;color:var(--ink-2);max-width:34ch;font-size:15px}.hero-copy .btn-line{margin-top:40px}.hero-badge{display:flex;gap:14px;align-items:flex-start;margin-top:64px;padding-top:26px;border-top:1px solid var(--line);max-width:30ch}.hero-badge .rule{width:2px;align-self:stretch;background:var(--ink);flex:0 0 auto}.hero-badge p{font-size:12.5px;color:var(--ink-2);letter-spacing:.02em}.hero-social{margin-top:34px}.hero-grid{height:clamp(440px,62vh,680px)}.hero-col,.hero-grid{display:flex;gap:16px}.hero-col{flex:1 1;min-width:0;flex-direction:column;flex-grow:1;transition:flex-grow .6s var(--ease)}.hero-col:hover{flex-grow:1.9}.hero-grid:hover .hero-col:not(:hover){flex-grow:0.72}.hero-col .photo{flex:1 1;min-height:0;flex-grow:1;transition:flex-grow .6s var(--ease)}.hero-col .photo:hover{flex-grow:3.2}.hero-col:hover .photo:not(:hover){flex-grow:0.55}@media (max-width:960px){.hero{grid-template-columns:1fr}.hero-grid{height:clamp(380px,56vh,560px)}}@media (max-width:700px){.hero-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:42vw;height:auto}.hero-col{display:contents}.hero-col .photo{flex:none;transition:none}}.page-head{padding-block:clamp(48px,7vw,96px) clamp(28px,4vw,48px)}.page-head h1{font-family:var(--display);font-weight:500;font-size:clamp(40px,5.5vw,68px);line-height:1.04}.page-head .lede{margin-top:18px;color:var(--ink-2);max-width:46ch}.portfolio-layout{display:grid;grid-template-columns:180px 1fr;grid-gap:clamp(28px,4vw,56px);gap:clamp(28px,4vw,56px);align-items:start}.filters{list-style:none;display:flex;flex-direction:column;gap:14px;position:-webkit-sticky;position:sticky;top:110px}.filters button{font-size:14px;color:var(--ink-2);letter-spacing:.02em;transition:color .25s,padding-left .25s var(--ease);text-align:left}.filters button:hover{color:var(--ink)}.filters button.active{color:var(--ink);font-weight:500;padding-left:14px;position:relative}.filters button.active:before{content:"";position:absolute;left:0;top:50%;width:8px;height:1px;background:var(--ink);transform:translateY(-50%)}.work-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.work-grid .photo{aspect-ratio:4/5}.work-item{display:block}.work-item .cap{margin-top:12px;display:flex;justify-content:space-between;align-items:baseline;gap:12px}.work-item .cap .t{font-family:var(--display);font-size:17px}.work-item .cap .c{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.work-item{transition:opacity .4s,transform .4s}.work-item.hide{display:none}.load-more{margin-top:clamp(40px,5vw,64px)}.load-more button{width:100%;border:1px solid var(--line);padding:18px;display:flex;justify-content:center;align-items:center;gap:12px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);transition:border-color .25s,color .25s}.load-more button:hover{border-color:var(--ink);color:var(--ink)}@media (max-width:860px){.portfolio-layout{grid-template-columns:1fr}.filters{flex-direction:row;flex-wrap:wrap;gap:18px;position:static}.work-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.work-grid{grid-template-columns:1fr}}.project-back{padding-top:clamp(28px,4vw,44px)}.project-back a{font-size:12px;letter-spacing:.1em;color:var(--ink-2);display:inline-flex;gap:10px;align-items:center}.project-back a:hover{color:var(--ink)}.project-layout{display:grid;grid-template-columns:.7fr 1.6fr;grid-gap:clamp(28px,4vw,64px);gap:clamp(28px,4vw,64px);align-items:start;padding-block:clamp(28px,4vw,44px) clamp(40px,6vw,72px)}.project-info h1{font-family:var(--display);font-weight:500;font-size:clamp(34px,4.4vw,56px);line-height:1.05}.project-info .loc{margin-top:14px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.project-info p.body{margin-top:26px;color:var(--ink-2);max-width:30ch}.project-share{margin-top:40px}.project-share .eyebrow{margin-bottom:14px}.project-share .social{gap:18px}.project-media .photo.lead{aspect-ratio:16/10}.project-thumbs{margin-top:16px;display:grid;grid-template-columns:repeat(5,1fr);grid-gap:12px;gap:12px}.project-thumbs .photo{aspect-ratio:1/1;cursor:pointer}.project-thumbs .photo.active{outline:2px solid var(--ink);outline-offset:-2px}.project-nav{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:26px}.project-nav a{font-size:12px;letter-spacing:.1em;color:var(--ink-2);display:inline-flex;gap:10px;align-items:center}.project-nav a:hover{color:var(--ink)}@media (max-width:860px){.project-layout{grid-template-columns:1fr}.project-thumbs{grid-template-columns:repeat(5,1fr)}}.featured-story{position:relative;margin-bottom:clamp(40px,5vw,64px)}.featured-story .photo{aspect-ratio:21/9}.featured-story .overlay{position:absolute;inset:auto 0 0 0;padding:clamp(24px,4vw,44px);background:linear-gradient(0deg,rgba(10,9,7,.82),rgba(10,9,7,0));color:#f4f1ea}.featured-story .tag{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#cfc9bc}.featured-story h2{font-family:var(--display);font-weight:500;font-size:clamp(26px,3.4vw,40px);margin-top:8px}.featured-story p{color:#d7d2c6;margin-top:6px;max-width:42ch}.featured-story .btn-line{color:#f4f1ea;border-color:#f4f1ea;margin-top:22px}.featured-pill{position:absolute;top:clamp(20px,3vw,32px);left:clamp(20px,3vw,32px);background:var(--paper);color:var(--ink);font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:9px 16px}.story-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:clamp(20px,3vw,36px);gap:clamp(20px,3vw,36px)}.story-card .photo{aspect-ratio:4/3}.story-card h3{font-family:var(--display);font-weight:500;font-size:21px;margin-top:18px}.story-card p{color:var(--ink-2);margin-top:8px;font-size:14.5px}.story-card .btn-line{margin-top:18px;font-size:11px}@media (max-width:820px){.story-grid{grid-template-columns:1fr;gap:36px}}.about-layout{display:grid;grid-template-columns:.9fr 1.5fr;grid-gap:clamp(28px,5vw,72px);gap:clamp(28px,5vw,72px);align-items:center;padding-block:clamp(20px,3vw,40px) clamp(40px,6vw,64px)}.about-text h1{font-family:var(--display);font-weight:500;font-size:clamp(30px,3.8vw,46px);line-height:1.12}.about-text p{margin-top:22px;color:var(--ink-2);max-width:40ch;font-size:15px}.about-sign{font-family:var(--script);font-size:40px;line-height:1;margin-top:30px;color:var(--ink)}.about-text .btn-line{margin-top:28px}.about-photo .photo{aspect-ratio:4/3.1}.about-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:24px;gap:24px;border-top:1px solid var(--line);padding-top:clamp(36px,4vw,52px)}.about-stats .stat .n{font-family:var(--display);font-weight:500;font-size:clamp(34px,4vw,50px);line-height:1}.about-stats .stat .l{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-top:12px}@media (max-width:860px){.about-layout{grid-template-columns:1fr}.about-stats{grid-template-columns:repeat(2,1fr);gap:32px 24px}}.awards-layout{display:grid;grid-template-columns:.85fr 1.6fr;grid-gap:clamp(28px,4vw,72px);gap:clamp(28px,4vw,72px);align-items:start}.awards-intro{position:-webkit-sticky;position:sticky;top:120px}.awards-intro h1,.awards-intro h2{font-family:var(--display);font-weight:500;font-size:clamp(34px,4.2vw,54px);line-height:1.06}.awards-intro p{margin-top:18px;color:var(--ink-2);max-width:26ch}.award-row{display:grid;grid-template-columns:120px 1fr;grid-gap:24px;gap:24px;align-items:baseline;padding-block:clamp(24px,3vw,34px);border-top:1px solid var(--line);transition:padding-left .3s var(--ease)}.award-row:last-child{border-bottom:1px solid var(--line)}.award-row:hover{padding-left:12px}.award-row .year{font-family:var(--display);font-size:22px;color:var(--ink-2)}.award-row .title{font-size:18px;font-weight:500}.award-row .sub{font-size:13px;color:var(--ink-3);margin-top:4px;letter-spacing:.02em}@media (max-width:860px){.awards-layout{grid-template-columns:1fr;gap:40px}.awards-intro{position:static}.award-row{grid-template-columns:80px 1fr;gap:16px}}.journal-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:clamp(20px,3vw,36px);gap:clamp(20px,3vw,36px)}.journal-card .photo{aspect-ratio:3/4}.journal-card .meta{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:16px}.journal-card h3{font-family:var(--display);font-weight:500;font-size:22px;margin-top:8px}.journal-card p{color:var(--ink-2);margin-top:8px;font-size:14.5px}.journal-card .btn-line{margin-top:16px;font-size:11px}@media (max-width:820px){.journal-grid{grid-template-columns:1fr;gap:40px}}.news-section{border-top:1px solid var(--line)}.news-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:clamp(24px,3vw,36px)}.news-head h2{font-family:var(--display);font-weight:500;font-size:clamp(26px,3.4vw,40px);line-height:1.05}.news-controls{display:flex;gap:10px;flex:0 0 auto}.news-controls button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);color:var(--ink-2);font-size:22px;line-height:1;display:grid;place-items:center;transition:border-color .25s,color .25s,background .25s}.news-controls button:hover{border-color:var(--ink);color:var(--ink)}.news-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:4px}.news-track::-webkit-scrollbar{display:none}.news-card{flex-grow:0;flex-shrink:0;flex-basis:calc((100% - 48px) / 3);scroll-snap-align:start;display:block;color:inherit}.news-card .photo{aspect-ratio:16/10}.news-card h3{font-family:var(--display);font-weight:500;font-size:20px;margin-top:16px;line-height:1.25}.news-card p{color:var(--ink-2);margin-top:8px;font-size:14.5px}.news-link{display:inline-flex;gap:6px;align-items:center;margin-top:14px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);border-bottom:1px solid var(--ink);padding-bottom:6px;transition:gap .3s var(--ease),color .25s}a.news-card:hover .news-link{gap:12px;color:var(--ink)}@media (max-width:900px){.news-card{flex-basis:calc((100% - 24px) / 2)}}@media (max-width:600px){.news-card{flex-basis:86%}}.article-head{padding-block:clamp(36px,5vw,64px) clamp(20px,3vw,36px);max-width:760px}.article-head .meta{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.article-head h1{font-family:var(--display);font-weight:500;font-size:clamp(34px,5vw,60px);line-height:1.06;margin-top:14px}.article-head .lede{margin-top:18px;color:var(--ink-2);max-width:52ch;font-size:17px}.article-cover{aspect-ratio:16/9;margin-block:clamp(20px,3vw,36px)}.article-body{max-width:680px}.article-body p{color:var(--ink);margin-top:22px;font-size:17px;line-height:1.75}.article-body>:first-child{margin-top:0}.article-body h2{font-size:clamp(24px,3vw,32px);line-height:1.15;margin-top:40px}.article-body h2,.article-body h3{font-family:var(--display);font-weight:500}.article-body h3{font-size:clamp(20px,2.4vw,25px);line-height:1.2;margin-top:32px}.article-body ol,.article-body ul{margin-top:20px;padding-left:1.4em;color:var(--ink)}.article-body li{margin-top:8px;font-size:17px;line-height:1.7}.article-body blockquote{margin:30px 0;padding:6px 0 6px 24px;border-left:2px solid var(--ink);font-family:var(--display);font-style:italic;font-size:clamp(20px,2.4vw,26px);line-height:1.5;color:var(--ink)}.article-body a{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}.article-body a:hover{color:var(--ink-2)}.article-body img{display:block;width:100%;max-width:min(880px,92vw);height:auto;margin:clamp(28px,4vw,44px) auto;border-radius:2px}.article-body strong{font-weight:600}.contact-layout{display:grid;grid-template-columns:.85fr 1.4fr;grid-gap:clamp(32px,5vw,80px);gap:clamp(32px,5vw,80px);align-items:start;padding-block:clamp(28px,4vw,48px) clamp(48px,7vw,96px)}.contact-info h1{font-family:var(--display);font-weight:500;font-size:clamp(36px,5vw,60px);line-height:1.04}.contact-info .lede{margin-top:22px;color:var(--ink-2);max-width:28ch}.contact-details{list-style:none;margin-top:40px;display:flex;flex-direction:column;gap:18px}.contact-details li{display:flex;gap:14px;align-items:center;font-size:14.5px;color:var(--ink-2)}.contact-details svg{width:17px;height:17px;color:var(--ink);flex:0 0 auto}.contact-info .social{margin-top:40px}.contact-form{display:grid;grid-gap:28px;gap:28px}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:28px;gap:28px}.field{display:flex;flex-direction:column}.field label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px}.field input,.field textarea{font:inherit;font-size:15px;color:var(--ink);background:transparent;border:none;border-bottom:1px solid var(--line);padding:8px 0 12px;transition:border-color .3s}.field textarea{resize:vertical;min-height:110px}.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--ink)}.field input::placeholder,.field textarea::placeholder{color:var(--ink-3)}.form-note{font-size:13px;color:var(--ink-2);display:none}.form-note.show{display:block}@media (max-width:860px){.contact-layout,.field-row{grid-template-columns:1fr}}.gallery{display:grid;grid-gap:16px;gap:16px}.gallery-lead{position:relative;width:100%;min-height:340px;max-height:80vh;background:var(--paper-3);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;cursor:zoom-in}.gallery-lead img{width:100%;max-height:80vh;object-fit:contain;filter:var(--photo-filter);transition:filter .6s var(--ease)}.gallery-lead:hover img{filter:grayscale(.06) sepia(.03) contrast(1.04) brightness(1)}.gallery-zoom{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;background:rgba(20,18,15,.55);color:#fff;display:grid;place-items:center;font-size:17px;opacity:0;transition:opacity .3s,transform .3s var(--ease);pointer-events:none}.gallery-lead:hover .gallery-zoom{opacity:1}.gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;background:rgba(20,18,15,.5);color:#fff;font-size:26px;line-height:1;display:grid;place-items:center;opacity:0;transition:opacity .3s,background .2s}.gallery-lead:hover .gallery-nav{opacity:1}.gallery-nav:hover{background:rgba(20,18,15,.85)}.gallery-nav.prev{left:14px}.gallery-nav.next{right:14px}.gallery-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));grid-gap:10px;gap:10px}.gallery-thumb{position:relative;aspect-ratio:1;background:var(--paper-3);border:1px solid var(--line);overflow:hidden;padding:0;cursor:pointer;transition:transform .25s var(--ease),border-color .2s}.gallery-thumb img{width:100%;height:100%;object-fit:cover;filter:var(--photo-filter);transition:transform .6s var(--ease)}.gallery-thumb:hover{transform:translateY(-3px)}.gallery-thumb:hover img{transform:scale(1.06)}.gallery-thumb.active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(12,11,9,.95);display:grid;place-items:center;padding:clamp(16px,4vw,56px);cursor:zoom-out}.lightbox-img{max-width:92vw;max-height:88vh;width:auto;height:auto;object-fit:contain;cursor:default;box-shadow:0 30px 90px rgba(0,0,0,.55)}.lightbox-close{position:fixed;top:18px;right:22px;width:46px;height:46px;border-radius:50%;color:#fff;font-size:26px;line-height:1;background:rgba(255,255,255,.08);display:grid;place-items:center;transition:background .2s}.lightbox-close:hover{background:rgba(255,255,255,.2)}.lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:50%;color:#fff;font-size:34px;line-height:1;background:rgba(255,255,255,.08);display:grid;place-items:center;transition:background .2s}.lightbox-nav:hover{background:rgba(255,255,255,.2)}.lightbox-nav.prev{left:clamp(12px,3vw,40px)}.lightbox-nav.next{right:clamp(12px,3vw,40px)}.lightbox-count{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);color:#cfc9bc;font-size:13px;letter-spacing:.12em}@media (max-width:600px){.gallery-nav{display:none}.gallery-lead{min-height:260px}}.card-meta{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:16px}.story-card .card-meta+h3{margin-top:6px}.media-grid-public{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:clamp(20px,3vw,36px);gap:clamp(20px,3vw,36px)}@media (max-width:820px){.media-grid-public{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.media-grid-public{grid-template-columns:1fr}}.mm-card{display:block;text-align:left;padding:0;background:none;cursor:pointer;color:inherit}.mm-thumb{aspect-ratio:16/9}.mm-thumb .mm-noimg{place-items:center;color:var(--ink-3);text-transform:uppercase;letter-spacing:.2em;font-size:11px}.mm-play,.mm-thumb .mm-noimg{position:absolute;inset:0;display:grid}.mm-play{margin:auto;width:60px;height:60px;border-radius:50%;background:rgba(20,18,15,.55);color:#fff;place-items:center;transition:background .25s,transform .25s var(--ease)}.mm-play svg{width:24px;height:24px;margin-left:3px}.mm-card:hover .mm-play{background:rgba(20,18,15,.88);transform:scale(1.06)}.mm-card h3{font-family:var(--display);font-weight:500;font-size:20px;margin-top:16px}.mm-card p{color:var(--ink-2);margin-top:8px;font-size:14.5px}.mm-lightbox{position:fixed;inset:0;z-index:1000;background:rgba(12,11,9,.95);display:grid;place-items:center;padding:clamp(16px,4vw,56px);cursor:zoom-out}.mm-player{width:min(1100px,100%);aspect-ratio:16/9;background:#000;box-shadow:0 30px 90px rgba(0,0,0,.5);cursor:default}.mm-player iframe{width:100%;height:100%;border:0;display:block}.mm-invalid{color:#f4f1ea;display:grid;place-items:center;height:100%;padding:20px;text-align:center}.mm-invalid a{text-decoration:underline}.pub-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:clamp(20px,3vw,34px);gap:clamp(20px,3vw,34px)}@media (max-width:1000px){.pub-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:720px){.pub-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:440px){.pub-grid{grid-template-columns:1fr}}.pub-card .photo{aspect-ratio:3/4}.pub-card .card-meta{margin-top:14px}.pub-card h3{font-family:var(--display);font-weight:500;font-size:18px;margin-top:6px;line-height:1.25}.pub-card p{color:var(--ink-2);margin-top:6px;font-size:14px}.pub-card .btn-line{margin-top:14px;font-size:11px}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:1px}.admin{--a-bg:#f7f6f2;--a-surface:#ffffff;--a-line:#e4e0d6;--a-ink:#1c1a17;--a-ink-2:#6b665d;--a-ink-3:#9a948a;--a-accent:#1c1a17;--a-danger:#b4422f;--a-ok:#2f7d52;background:var(--a-bg);color:var(--a-ink);grid-template-columns:248px 1fr}.admin,.admin-login{min-height:100vh;font-family:var(--body);display:grid}.admin-login{place-items:center;background:var(--noir);padding:24px}.admin-login .card{background:#fff;width:100%;max-width:380px;padding:40px 36px;border-radius:4px}.admin-login .brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:18px;letter-spacing:.08em}.admin-login p.sub{color:#6b665d;font-size:14px;margin-top:8px}.admin-login form{margin-top:28px;display:grid;grid-gap:16px;gap:16px}.admin-login label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#9a948a}.admin-login input{width:100%;font:inherit;font-size:15px;margin-top:8px;padding:11px 13px;border:1px solid #e4e0d6;border-radius:4px;background:#faf9f6}.admin-login input:focus{outline:none;border-color:#1c1a17}.admin-login .err{color:#b4422f;font-size:13px}.admin-sidebar{background:var(--noir);color:var(--noir-soft);padding:26px 18px;display:flex;flex-direction:column;gap:6px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.admin-sidebar .brand{display:block;font-family:var(--display);letter-spacing:.05em;font-size:14.5px;padding:6px 12px 18px;color:#fff}.admin-sidebar .brand .brand-name{display:flex;align-items:center;gap:9px;white-space:nowrap}.admin-sidebar .brand small{display:block;font-family:var(--body);font-size:10px;letter-spacing:.2em;color:var(--noir-mute);margin-top:6px}.admin-nav{display:flex;flex-direction:column;gap:2px}.admin-nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:6px;font-size:14px;color:var(--noir-mute);transition:background .18s,color .18s}.admin-nav a:hover{color:#fff;background:rgba(255,255,255,.05)}.admin-nav a.active{color:#fff;background:rgba(255,255,255,.1)}.admin-nav a svg{width:17px;height:17px;flex:0 0 auto}.admin-nav .count{margin-left:auto;font-size:11px;background:rgba(255,255,255,.12);padding:1px 8px;border-radius:999px}.admin-sidebar .spacer{flex:1 1}.admin-sidebar .foot{border-top:1px solid rgba(255,255,255,.1);padding-top:14px;display:grid;grid-gap:6px;gap:6px}.admin-sidebar .foot a,.admin-sidebar .foot button{font-size:13px;color:var(--noir-mute);text-align:left;padding:8px 12px;border-radius:6px;transition:color .18s,background .18s;display:flex;align-items:center;gap:10px;width:100%}.admin-sidebar .foot a:hover,.admin-sidebar .foot button:hover{color:#fff;background:rgba(255,255,255,.05)}.admin-main{padding:0;min-width:0}.admin-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--a-bg) 90%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--a-line);padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-topbar h1{font-family:var(--display);font-weight:500;font-size:24px}.admin-topbar .sub{color:var(--a-ink-2);font-size:13px;margin-top:2px}.admin-content{padding:32px;max-width:1100px}.panel{background:var(--a-surface);border:1px solid var(--a-line);border-radius:8px;padding:22px 24px}.panel+.panel{margin-top:20px}.panel h2{font-family:var(--display);font-weight:500;font-size:18px;margin-bottom:4px}.panel .panel-sub{color:var(--a-ink-2);font-size:13px;margin-bottom:18px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:16px;gap:16px}.stat-card{background:var(--a-surface);border:1px solid var(--a-line);border-radius:8px;padding:20px;display:block;transition:border-color .18s,transform .18s}a.stat-card:hover{border-color:var(--a-ink);transform:translateY(-2px)}.stat-card .num{font-family:var(--display);font-size:34px;line-height:1}.stat-card .lbl{color:var(--a-ink-2);font-size:13px;margin-top:10px;letter-spacing:.02em}.table-wrap{background:var(--a-surface);border:1px solid var(--a-line);border-radius:8px;overflow:hidden}table.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--a-ink-3);font-weight:500;padding:14px 18px;background:#fbfaf7}.admin-table td,.admin-table th{border-bottom:1px solid var(--a-line)}.admin-table td{padding:13px 18px;vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:#fbfaf7}.admin-table .thumb{width:52px;height:52px;border-radius:5px;object-fit:cover;background:var(--paper-3)}.admin-table .row-title{font-weight:500}.admin-table .muted{color:var(--a-ink-3)}.admin-table .drag-handle{width:34px;padding-right:0;color:var(--a-ink-3);cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.admin-table .drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing;color:var(--a-ink)}.row-actions{text-align:right;white-space:nowrap}.row-actions>*{display:inline-flex;vertical-align:middle}.row-actions>*+*{margin-left:8px}.btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;font-size:13.5px;font-weight:500;padding:10px 16px;border-radius:6px;border:1px solid var(--a-line);background:#fff;color:var(--a-ink);transition:background .18s,border-color .18s,color .18s,opacity .18s;cursor:pointer}.btn:hover{border-color:var(--a-ink)}.btn svg{width:16px;height:16px}.btn-primary{background:var(--a-accent);color:#fff;border-color:var(--a-accent)}.btn-primary:hover{background:#000}.btn-danger{color:var(--a-danger);border-color:#e7c9c2;background:#fdf6f4}.btn-danger:hover{background:var(--a-danger);color:#fff;border-color:var(--a-danger)}.btn-sm{padding:6px 12px;font-size:12.5px}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:rgba(0,0,0,.05);border-color:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.form-grid{display:grid;grid-gap:20px;gap:20px;max-width:760px}.form-grid.two{grid-template-columns:1fr 1fr}.f{display:flex;flex-direction:column;gap:8px}.f.full{grid-column:1/-1}.f label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--a-ink-2);font-weight:500}.f .hint{font-size:12px;color:var(--a-ink-3)}.f input[type=email],.f input[type=number],.f input[type=password],.f input[type=text],.f select,.f textarea{font:inherit;font-size:14.5px;color:var(--a-ink);padding:10px 12px;border:1px solid var(--a-line);border-radius:6px;background:#fff;width:100%}.f textarea{resize:vertical;min-height:120px;line-height:1.6}.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--a-ink)}.f.check{flex-direction:row;align-items:center;gap:10px}.f.check input{width:18px;height:18px}.f.check label{text-transform:none;letter-spacing:0;font-size:14px;color:var(--a-ink);font-weight:400}@media (max-width:720px){.form-grid.two{grid-template-columns:1fr}}.image-field{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.image-field .preview{width:140px;height:140px;border-radius:8px;border:1px solid var(--a-line);background:var(--paper-3) center/cover no-repeat;flex:0 0 auto;overflow:hidden;display:grid;place-items:center;color:var(--a-ink-3);font-size:12px;text-align:center}.image-field .preview img{width:100%;height:100%;object-fit:cover}.image-field .controls{display:flex;flex-direction:column;gap:8px;min-width:220px}.uploading{font-size:13px;color:var(--a-ink-2)}.gallery-edit{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:12px;gap:12px;margin-top:6px}.gallery-edit .cell{position:relative;border:1px solid var(--a-line);border-radius:6px;overflow:hidden;aspect-ratio:1;background:var(--paper-3)}.gallery-edit .cell img{width:100%;height:100%;object-fit:cover}.gallery-edit .cell button.remove{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;display:grid;place-items:center;font-size:16px;line-height:1}.gallery-edit .cell button.remove:hover{background:var(--a-danger)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:16px;gap:16px}.media-card{border:1px solid var(--a-line);border-radius:8px;overflow:hidden;background:#fff;display:flex;flex-direction:column}.media-card .img{aspect-ratio:1;background:var(--paper-3) center/cover}.media-card .img img{width:100%;height:100%;object-fit:cover}.media-card .meta{padding:12px;display:flex;flex-direction:column;flex:1 1}.media-card .meta .name{font-size:12px;color:var(--a-ink-2);word-break:break-all}.media-card .meta .actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;margin-top:auto;padding-top:12px}.media-card .meta .actions>*{min-width:0}.media-card .meta .actions .btn{width:100%;padding-inline:8px}.media-card .meta .actions form{grid-column:1/-1}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.04em;padding:3px 9px;border-radius:999px;border:1px solid var(--a-line);color:var(--a-ink-2)}.badge.ok{color:var(--a-ok);border-color:#bfe0cb;background:#f1f8f3}.badge.muted{color:var(--a-ink-3)}.badge.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.flash{padding:12px 16px;border-radius:6px;font-size:14px;margin-bottom:20px}.flash.ok{background:#f1f8f3;color:var(--a-ok);border:1px solid #bfe0cb}.flash.err{background:#fdf6f4;color:var(--a-danger);border:1px solid #e7c9c2}.empty{text-align:center;padding:60px 20px;color:var(--a-ink-3)}.empty p{margin-top:8px}.page-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:16px;flex-wrap:wrap}.back-link{font-size:13px;color:var(--a-ink-2);display:inline-flex;gap:8px;align-items:center;margin-bottom:16px}.back-link:hover,.msg-body{color:var(--a-ink)}.msg-body{white-space:pre-wrap;line-height:1.7}@media (max-width:800px){.admin{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center}.admin-sidebar .brand{padding-bottom:0}.admin-sidebar .spacer{display:none}.admin-nav{flex-direction:row;flex-wrap:wrap}.admin-content{padding:20px}}.rte{border:1px solid var(--a-line);border-radius:6px;background:#fff;overflow:hidden}.rte-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:8px;border-bottom:1px solid var(--a-line);background:#fbfaf7;position:-webkit-sticky;position:sticky;top:0;z-index:2}.rte-sep{width:1px;align-self:stretch;background:var(--a-line);margin:2px 4px}.rte-btn{font:inherit;font-size:13px;line-height:1;padding:7px 10px;border-radius:5px;border:1px solid transparent;color:var(--a-ink-2);background:transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.rte-btn:hover{background:#efece4;color:var(--a-ink)}.rte-btn.active{background:var(--a-ink);color:#fff;border-color:var(--a-ink)}.rte-btn-primary{color:var(--a-ink);border-color:var(--a-line);background:#fff;font-weight:500}.rte-btn-primary:hover{border-color:var(--a-ink);background:#fff}.rte-btn:disabled{opacity:.5;cursor:not-allowed}.rte .ProseMirror,.rte-content{min-height:280px;max-height:60vh;overflow-y:auto;padding:18px 20px;font-size:15.5px;line-height:1.7;color:var(--a-ink);outline:none}.rte .ProseMirror>*+*{margin-top:14px}.rte .ProseMirror h2{font-size:24px}.rte .ProseMirror h2,.rte .ProseMirror h3{font-family:var(--display);font-weight:600;line-height:1.2}.rte .ProseMirror h3{font-size:20px}.rte .ProseMirror ol,.rte .ProseMirror ul{padding-left:1.5em}.rte .ProseMirror li{margin-top:4px}.rte .ProseMirror blockquote{border-left:3px solid var(--a-line);padding-left:16px;color:var(--a-ink-2);font-style:italic}.rte .ProseMirror a{color:#2a6df4;text-decoration:underline}.rte .ProseMirror img{display:block;max-width:100%;height:auto;border-radius:4px;margin:12px 0}.rte .ProseMirror img.ProseMirror-selectednode{outline:2px solid var(--a-ink);outline-offset:2px}.rte .ProseMirror p.is-editor-empty:first-child:before{content:"Write your story… use the toolbar to format and insert images.";color:var(--a-ink-3);float:left;height:0;pointer-events:none}