:root{--ivory:#fbf8f2;--cream:#f2ecdf;--stone:#e8e0d0;--ink:#201a16;--muted:#6f665d;--gold:#9b8258;--espresso:#1b1512;--line:rgba(32,26,22,.15);--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:14px}button,a{font:inherit;color:inherit}a{text-decoration:none}.site{overflow:hidden}.nav{position:fixed;z-index:20;top:0;left:0;right:0;height:78px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 4.5vw;color:#fff;transition:.45s ease;border-bottom:1px solid transparent}.nav.scrolled{background:rgba(251,248,242,.94);backdrop-filter:blur(10px);color:var(--ink);border-color:var(--line)}.logo{font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;font-size:18px}.navlinks{display:flex;gap:34px;text-transform:uppercase;font-size:10px;letter-spacing:.16em}.navlinks a{opacity:.86}.navlinks a:hover{opacity:1}.navright{text-align:right;text-transform:uppercase;font-size:10px;letter-spacing:.16em}.menu{display:none;background:none;border:0;color:inherit;font-size:24px}.hero{min-height:100svh;background:linear-gradient(90deg,rgba(24,18,14,.64),rgba(24,18,14,.18) 60%,rgba(24,18,14,.05)),url('assets/richie-hero.jpg') center/cover;display:flex;align-items:flex-end;color:#fff;padding:0 7vw 9vh;position:relative}.hero:after{content:'';position:absolute;inset:auto 0 0;height:28%;background:linear-gradient(transparent,rgba(0,0,0,.28))}.heroCopy{position:relative;z-index:1;max-width:900px}.kicker,.label{font-size:10px;letter-spacing:.22em;text-transform:uppercase}.kicker{color:#dfcfb0}.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(54px,8.4vw,132px);line-height:.86;margin:24px 0 28px;letter-spacing:-.045em}.hero h1 em{font-weight:400}.heroSub{max-width:460px;line-height:1.7;color:rgba(255,255,255,.78);font-size:14px}.heroActions{display:flex;gap:24px;margin-top:34px}.textBtn{display:inline-flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:.17em;font-size:10px;border-bottom:1px solid currentColor;padding-bottom:8px}.heroMeta{position:absolute;z-index:2;right:5vw;bottom:7vh;writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.18em;font-size:9px;opacity:.7}.section{max-width:1500px;margin:auto;padding:13vw 6vw}.intro{display:grid;grid-template-columns:1fr .85fr;gap:8vw;align-items:center}.intro h2,.statement h2,.closing h2{font:400 clamp(45px,6vw,92px)/.98 var(--serif);letter-spacing:-.04em;margin:24px 0}.intro h2 em,.statement h2 em,.closing h2 em{font-style:italic}.body{max-width:480px;color:var(--muted);line-height:1.9}.frame{position:relative}.frame img{width:100%;display:block}.frame:before{content:'';position:absolute;inset:12% -8% -8% 12%;background:var(--stone);z-index:-1}.frameTag{display:none;position:absolute;left:-30px;top:40%;font-family:var(--serif);font-size:18px;line-height:1.15;transform:rotate(-90deg);transform-origin:left top;color:var(--gold)}.collectionHead{display:flex;justify-content:space-between;align-items:end;margin-bottom:7vw}.collectionHead h2{font:400 clamp(52px,7vw,104px)/.9 var(--serif);margin:18px 0 0;letter-spacing:-.05em}.collectionHead .note{max-width:280px;color:var(--muted);line-height:1.7}.grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:3.2vw;row-gap:9vw}.card{display:block;cursor:pointer}.card .imgWrap{overflow:hidden;background:var(--stone);position:relative}.card img{width:100%;display:block;transition:transform 1s cubic-bezier(.2,.7,.2,1)}.card:hover img{transform:scale(1.018)}.card .meta{border-bottom:1px solid var(--line);padding:18px 0 14px;position:relative}.card .meta:after{content:'';position:absolute;left:0;bottom:-1px;width:0;height:1px;background:var(--gold);transition:.6s}.card:hover .meta:after{width:100%}.num{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}.card h3{font:400 clamp(24px,2.4vw,38px)/1.05 var(--serif);margin:8px 0}.card p{margin:0;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.12em}.arrow{float:right;font-size:12px;letter-spacing:.15em;text-transform:uppercase}.c1{grid-column:1/8}.c2{grid-column:9/13;margin-top:10vw}.c3{grid-column:1/6}.c4{grid-column:7/13;margin-top:6vw}.c5{grid-column:2/7}.c6{grid-column:8/13;margin-top:12vw}.chapter{background:var(--espresso);color:#fff}.chapterInner{max-width:1500px;margin:auto;display:grid;grid-template-columns:1.45fr .7fr;min-height:82vh}.chapterImg{background:var(--stone)}.chapterImg img{width:100%;height:100%;object-fit:cover}.chapterCopy{display:flex;flex-direction:column;justify-content:center;padding:9vw 7vw}.chapterCopy h2{font:400 clamp(42px,5vw,76px)/.98 var(--serif);margin:22px 0}.chapterCopy p{color:rgba(255,255,255,.62);line-height:1.9;max-width:370px}.gold{color:#d8c39a}.chapterLink{margin-top:34px;color:#d8c39a;width:max-content}.statement{text-align:center;padding:15vw 7vw}.statement .label{color:var(--gold)}.statement p{margin:34px auto 0;max-width:600px;color:var(--muted);line-height:1.9}.gift{background:var(--stone);max-width:none;padding:12vw 6vw}.giftInner{max-width:1500px;margin:auto}.giftTop{display:flex;justify-content:space-between;align-items:end;margin-bottom:5vw}.giftTop h2{font:400 clamp(48px,7vw,100px)/.9 var(--serif);margin:18px 0;letter-spacing:-.05em}.giftTop p{max-width:280px;color:var(--muted);line-height:1.7}.giftGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:2vw}.giftGrid a{display:block}.giftGrid img{width:100%;display:block;transition:transform .9s}.giftGrid a:hover img{transform:scale(1.015)}.giftGrid h3{font:400 24px var(--serif);margin:14px 0 0}.closing{min-height:90vh;background:linear-gradient(rgba(25,18,14,.22),rgba(25,18,14,.62)),url('assets/richie-dusk.jpg') center/cover;color:#fff;display:flex;align-items:flex-end;padding:10vw 7vw}.closing h2{font-size:clamp(60px,9vw,130px);margin:20px 0}.closing p{max-width:420px;color:rgba(255,255,255,.7);line-height:1.8}.footer{background:var(--espresso);color:#fff;padding:52px 6vw;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.12)}.footer nav{display:flex;gap:26px;text-transform:uppercase;letter-spacing:.14em;font-size:9px;color:rgba(255,255,255,.62)}.footer small{color:rgba(255,255,255,.4);letter-spacing:.1em}.detail{position:fixed;inset:0;z-index:50;background:var(--ivory);display:grid;grid-template-columns:62% 38%;animation:in .45s ease;overflow:auto}.detailVisual{background:var(--stone);padding:4vw;display:flex;align-items:center;justify-content:center;min-height:100vh}.detailVisual img{max-height:92vh;max-width:100%;object-fit:contain;display:block}.detailCopy{padding:8vw 7vw;display:flex;flex-direction:column;justify-content:center}.detailCopy .label{color:var(--gold)}.detailCopy h1{font:400 clamp(50px,6vw,92px)/.9 var(--serif);letter-spacing:-.05em;margin:24px 0}.detailCopy .sub{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.rule{height:1px;background:var(--line);margin:50px 0 30px}.detailCopy .body{max-width:420px}.variants{display:flex;gap:8px;margin:36px 0 0;overflow:auto;padding-bottom:8px}.variants button{border:0;background:none;padding:0;cursor:pointer;min-width:78px}.variants img{width:78px;height:56px;object-fit:cover;display:block;opacity:.58;transition:.3s}.variants button.active img,.variants button:hover img{opacity:1;outline:1px solid var(--gold)}.close{position:fixed;z-index:60;top:28px;right:32px;width:44px;height:44px;border:1px solid rgba(32,26,22,.2);background:rgba(251,248,242,.88);border-radius:50%;font-size:24px;cursor:pointer}.prevNext{display:flex;justify-content:space-between;margin-top:60px;border-top:1px solid var(--line);padding-top:18px;font-size:9px;letter-spacing:.16em;text-transform:uppercase}.hide{display:none}@keyframes in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(max-width:900px){.nav{grid-template-columns:1fr auto;height:68px;padding:0 5vw}.navlinks,.navright{display:none}.menu{display:block}.hero{padding:0 6vw 10vh;min-height:88svh}.heroMeta{display:none}.hero h1{font-size:clamp(54px,15vw,100px)}.section{padding:24vw 6vw}.intro{grid-template-columns:1fr;gap:18vw}.frame{width:88%;margin-left:auto}.collectionHead,.giftTop{display:block}.collectionHead .note,.giftTop p{margin-top:24px}.grid{grid-template-columns:1fr 1fr;gap:16vw 4vw}.c1,.c2,.c3,.c4,.c5,.c6{grid-column:auto;margin-top:0}.c1{grid-column:1/3}.c4{grid-column:1/3}.chapterInner{grid-template-columns:1fr}.chapterImg{min-height:60vw}.chapterCopy{padding:18vw 8vw}.giftGrid{grid-template-columns:1fr 1fr;gap:9vw 4vw}.detail{grid-template-columns:1fr}.detailVisual{min-height:48vh;padding:15vw 6vw 5vw}.detailVisual img{max-height:48vh}.detailCopy{padding:12vw 8vw 15vw}.close{top:16px;right:16px}.footer{display:block}.footer nav{margin-top:25px;flex-wrap:wrap}.footer small{display:block;margin-top:25px}}

/* Image viewer / download controls — intentionally isolated from the existing layout. */
.imgWrap .imageActions{position:absolute;right:12px;bottom:12px;display:flex;gap:7px;opacity:0;transform:translateY(5px);transition:opacity .22s ease,transform .22s ease;z-index:3}
.card:hover .imageActions,.card:focus-within .imageActions{opacity:1;transform:none}
.imageAction{appearance:none;border:1px solid rgba(255,255,255,.52);background:rgba(25,20,16,.74);color:#fff;padding:9px 11px;font:500 9px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;white-space:nowrap;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.imageAction:hover,.imageAction:focus-visible{background:rgba(25,20,16,.94);outline:none}
.detailVisual{position:relative}
.detailImageActions{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;gap:8px;z-index:2}
.detailAction{background:rgba(251,248,242,.9);border-color:rgba(32,26,22,.2);color:var(--ink)}
.detailAction:hover,.detailAction:focus-visible{background:#fff}
#viewerMount{display:none}
#viewerMount.viewerOpen{display:block}
.imageViewer{position:fixed;inset:0;z-index:100;background:rgba(18,14,12,.97);color:#fff;overflow:hidden}
.viewerStage{position:absolute;inset:76px 80px 58px;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;cursor:default}
.viewerStage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;transform-origin:center center;will-change:transform;user-select:none;-webkit-user-select:none;transition:transform .18s ease}
.viewerStage img.zoomed{cursor:grab}.viewerStage img.dragging{cursor:grabbing;transition:none}
.viewerTop{position:absolute;top:0;left:0;right:0;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid rgba(255,255,255,.12);z-index:3;background:rgba(18,14,12,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.viewerTitle{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.viewerControls{display:flex;gap:6px}.viewerControls button{border:1px solid rgba(255,255,255,.24);background:transparent;color:#fff;min-width:38px;height:34px;padding:0 12px;font:500 9px var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.viewerControls button:hover,.viewerControls button:focus-visible{background:rgba(255,255,255,.1);outline:none}
.viewerClose{position:absolute;right:26px;top:18px;z-index:5;width:40px;height:40px;border:1px solid rgba(255,255,255,.24);background:rgba(18,14,12,.65);color:#fff;border-radius:50%;font-size:23px;line-height:1;cursor:pointer;transform:translateX(0)}
.viewerTop .viewerControls{margin-right:54px}
.viewerArrow{position:absolute;top:50%;z-index:4;width:48px;height:48px;margin-top:-24px;border:1px solid rgba(255,255,255,.2);background:rgba(18,14,12,.48);color:#fff;border-radius:50%;font-size:32px;line-height:1;cursor:pointer}.viewerArrow:hover,.viewerArrow:focus-visible{background:rgba(255,255,255,.1);outline:none}.viewerArrowPrev{left:20px}.viewerArrowNext{right:20px}
.viewerHint{position:absolute;bottom:17px;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.45);white-space:nowrap;pointer-events:none}
@media(max-width:900px){.imgWrap .imageActions{opacity:1;transform:none;right:8px;bottom:8px}.imageAction{padding:8px 9px;font-size:8px}.detailImageActions{bottom:16px}.viewerTop{height:62px;padding:0 14px}.viewerTitle{font-size:8px;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewerTop .viewerControls{margin-right:46px}.viewerControls button{height:32px;min-width:34px;padding:0 9px;font-size:8px}.viewerStage{inset:62px 12px 48px}.viewerArrow{width:40px;height:40px;margin-top:-20px;font-size:27px}.viewerArrowPrev{left:8px}.viewerArrowNext{right:8px}.viewerClose{right:10px;top:11px;width:38px;height:38px}.viewerHint{font-size:7px;bottom:14px}.detailVisual{min-height:48vh}}
@media(max-width:520px){.imgWrap .imageActions{gap:5px}.imageAction{padding:7px 8px;letter-spacing:.08em}.viewerControls button{padding:0 7px}.viewerControls button:nth-child(2){display:none}.viewerArrow{width:36px;height:36px}.viewerHint{max-width:90%;text-align:center}.detailImageActions{gap:6px}.detailAction{padding:8px 9px}}
@media(prefers-reduced-motion:reduce){.imgWrap .imageActions,.imageViewer *,.viewerStage img{transition:none!important}}

/* Production responsive + mobile navigation hardening */
html{min-width:320px;overflow-x:clip}
body{min-width:320px;overflow-x:clip}
img,svg,video{max-width:100%}
button,a{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
body.menu-open{overflow:hidden}
.nav{isolation:isolate}
.desktopLinks{display:flex}
.mobileNav{display:none}
.card{min-width:0}
.cardMediaLink{display:block}
.card .meta{display:block;color:inherit}

@media (max-width:900px){
  .desktopLinks,.navright{display:none}
  .menu{display:block;justify-self:end;appearance:none;border:0;background:transparent;color:inherit;width:44px;height:44px;cursor:pointer;font-size:24px;line-height:1}
  .mobileNav{position:absolute;left:0;right:0;top:100%;max-height:calc(100svh - 68px);overflow-y:auto;overscroll-behavior:contain;background:rgba(251,248,242,.98);color:var(--ink);box-shadow:0 24px 60px rgba(32,26,22,.14);border-top:1px solid var(--line);padding:10px 6vw 28px}
  .mobileNav.open{display:flex;flex-direction:column}
  .mobileNav a{padding:16px 0;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.17em;text-transform:uppercase}
  .mobileNav .mobileExplore{margin-top:14px;padding:17px 18px;background:var(--espresso);color:#fff;border:0;text-align:center}
  .hero{min-height:88svh;padding:0 6vw 10vh}
  .hero h1{font-size:clamp(50px,14vw,100px);line-height:.9}
  .heroActions{flex-wrap:wrap;gap:18px 24px}
  .section{padding:20vw 6vw}
  .intro{grid-template-columns:1fr;gap:18vw}
  .frame{width:88%;margin-left:auto}
  .frameTag{left:-18px;font-size:15px;display:none}
  .collectionHead,.giftTop{display:block}
  .collectionHead .note,.giftTop p{margin-top:24px}
  .grid{grid-template-columns:1fr 1fr;gap:13vw 4vw}
  .c1,.c2,.c3,.c4,.c5,.c6{grid-column:auto;margin-top:0}
  .c1,.c4{grid-column:1/3}
  .imageActions{opacity:1!important;transform:none!important}
  .imageAction{padding:8px 9px;font-size:8px}
  .chapterInner{grid-template-columns:1fr}
  .chapterImg{min-height:60vw}
  .chapterCopy{padding:18vw 8vw}
  .giftGrid{grid-template-columns:1fr 1fr;gap:9vw 4vw}
  .detail{grid-template-columns:1fr}
  .detailVisual{min-height:48vh;padding:15vw 6vw 5vw}
  .detailVisual img{max-height:48vh}
  .detailCopy{padding:12vw 8vw 15vw}
  .close{top:16px;right:16px}
  .detailImageActions{bottom:16px}
  .footer{display:block}
  .footer nav{margin-top:25px;flex-wrap:wrap}
  .footer small{display:block;margin-top:25px}
}

@media (max-width: 900px) {
    .intro {
        grid-template-columns: 1fr;
        gap: 10vw !important;
    }
}

@media (max-width:520px){
  .nav{height:64px;padding:0 5vw}
  .mobileNav{max-height:calc(100svh - 64px)}
  .logo{font-size:16px}
  .hero{min-height:86svh;padding-bottom:8vh}
  .hero h1{font-size:clamp(46px,13.5vw,76px);letter-spacing:-.055em}
  .heroSub{font-size:13px}
  .grid,.giftGrid{grid-template-columns:1fr;gap:13vw}
  .c1,.c4{grid-column:auto}
  .collectionHead h2,.giftTop h2{font-size:clamp(48px,14vw,70px)}
  .card h3{font-size:28px}
  .frame{width:92%}
  .chapterImg{min-height:72vw}
  .detailVisual{min-height:42vh}
  .detailVisual img{max-height:42vh}
  .detailCopy h1{font-size:clamp(46px,13vw,72px)}
  .detailImageActions{left:50%;bottom:12px;max-width:calc(100% - 24px)}
  .detailAction{padding:8px 9px}
  .viewerStage{inset:62px 10px 48px}
}

@media (hover:none),(pointer:coarse){.card:hover img,.giftGrid a:hover img{transform:none!important}.card:hover .meta:after{width:0}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card img,.giftGrid img,.nav{transition:none}.imageViewer *{transition:none!important}}
