:root{
  --paper:#f3f0e9;
  --ink:#111;
  --muted:#756f67;
  --line:rgba(17,17,17,.14);
  --red:#8c1f28;
  --pad:clamp(14px,3vw,48px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}
body.locked{overflow:hidden}
img,video{display:block;max-width:100%}
button,a{font:inherit}
button{cursor:pointer}
.brand{font-weight:780;letter-spacing:.11em}
.eyebrow{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-weight:720}
.xx{font-family:"Bodoni 72","Didot","Bodoni MT",Georgia,serif;font-weight:500;letter-spacing:-.1em;color:var(--red);font-size:1.35rem}
.topbar{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:14px var(--pad);background:rgba(243,240,233,.88);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.topbar a{color:var(--ink);text-decoration:none}
.topActions{display:flex;gap:18px;align-items:center}
.topbar button{border:0;background:none;color:var(--ink);padding:3px 0}
.gridBtn{width:26px;height:26px;border:0;background:transparent!important;padding:3px!important;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:3px}
.gridBtn span{display:block;border:1.5px solid currentColor;border-radius:1px}
.hero{padding:clamp(58px,8vw,105px) var(--pad) clamp(44px,6vw,78px)}
.hero h1{font:400 clamp(3.6rem,10vw,8rem)/.89 "Bodoni 72","Didot",Georgia,serif;letter-spacing:-.065em;margin:14px 0 22px;max-width:1100px}
.hero p{color:var(--muted);font-size:1.03rem;margin:0 0 24px}
.gridSection{padding:0 var(--pad) 100px}
.masonryGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:start}
.tile{position:relative;overflow:hidden;background:#ddd;cursor:zoom-in;border:0;padding:0;width:100%;text-align:left;aspect-ratio:4/5}
.tile img,.tile video{width:100%;height:100%;object-fit:cover;transition:transform .35s ease,filter .35s ease}
.tile:hover img,.tile:hover video{transform:scale(1.012);filter:brightness(.97)}
.tile .playIcon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.48);border:1.5px solid rgba(255,255,255,.92);box-shadow:0 5px 20px rgba(0,0,0,.25);pointer-events:none;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.tile .playIcon::after{content:"";width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:14px solid #fff;margin-left:3px}
footer{border-top:1px solid var(--line);padding:72px var(--pad) 95px;display:flex;justify-content:space-between;align-items:end}
footer a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink)}

.viewer{position:fixed;inset:0;z-index:100;background:#050505;color:#fff;opacity:0;visibility:hidden;transition:opacity .2s ease}
.viewer.open{opacity:1;visibility:visible}
.viewerTop{position:fixed;z-index:120;top:0;left:0;right:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));background:linear-gradient(180deg,rgba(0,0,0,.68),rgba(0,0,0,0));pointer-events:none}
.viewerTop>*{pointer-events:auto}
.closeViewer{justify-self:start;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:2rem;line-height:1}
.viewerTop .brand{justify-self:center}
.viewerGridBtn{justify-self:end;color:#fff}
.viewerStream{position:absolute;inset:0;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
.viewerItem{min-height:100svh;scroll-snap-align:start;scroll-snap-stop:always;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:max(64px,calc(env(safe-area-inset-top) + 56px)) 18px max(28px,env(safe-area-inset-bottom));position:relative}
.viewerMedia{width:100%;display:flex;justify-content:center;align-items:center;min-height:0;flex:1}
.viewerMedia img,.viewerMedia video{max-width:min(100%,1300px);max-height:calc(100svh - 150px);width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none}
.viewerMedia video{background:#000}
.caption{width:min(920px,100%);min-height:34px;padding:13px 4px 2px;color:rgba(255,255,255,.84);font-size:.96rem;line-height:1.5;text-align:left}
.viewerItem.hasCaption .viewerMedia img,.viewerItem.hasCaption .viewerMedia video{max-height:calc(100svh - 190px)}

@media(max-width:1000px){.masonryGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:start}}
@media(max-width:700px){
  .topbar{padding:13px 14px}
  .hero{padding:46px 14px 36px}
  .hero h1{font-size:clamp(3rem,17vw,5.2rem)}
  .gridSection{padding:0 5px 72px}
  .masonryGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:start}
  .tile{position:relative;overflow:hidden;background:#ddd;cursor:zoom-in;border:0;padding:0;width:100%;text-align:left;aspect-ratio:4/5}
  .tile .playIcon{width:46px;height:46px}
  footer{padding:62px 16px 82px}
  .viewerItem{padding-left:0;padding-right:0}
  .viewerMedia img,.viewerMedia video{max-width:100%;width:100%;max-height:calc(100svh - 122px);object-fit:contain}
  .caption{padding:14px 18px 4px}
  .viewerItem.hasCaption .viewerMedia img,.viewerItem.hasCaption .viewerMedia video{max-height:calc(100svh - 170px)}
}


/* FINAL EXACT-ORDER BUILD
   Row-major visual order: left-to-right, then top-to-bottom. */
.masonryGrid{
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:12px !important;
  columns:auto !important;
}
.tile{
  width:100% !important;
  margin:0 !important;
  aspect-ratio:4/5;
  break-inside:auto !important;
}
.tile img,.tile video{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
@media (max-width:1100px){
  .masonryGrid{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
}
@media (max-width:820px){
  .masonryGrid{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
}
@media (max-width:600px){
  .masonryGrid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:8px !important}
}
