
/* Keep columns 1-2 at their existing 12.5% widths; move every other gallery
   tile one column right so none can cover the fixed left anchor area. */
.tpg-grid{grid-template-columns:repeat(2,minmax(0,12.5%)) repeat(7,minmax(0,1fr))!important}
.tpg-grid>.tpg-tile.tpg-stack-green-v350,
.tpg-grid>.tpg-tile.tpg-stack-light-v350{grid-column:3!important}
.tpg-grid>.tpg-tile.tpg-v357-2{grid-column:4/span 2!important}
.tpg-grid>.tpg-tile.tpg-v357-3{grid-column:6/span 2!important}
.tpg-grid>.tpg-tile.tpg-v357-4{grid-column:8/span 2!important}
.tpg-grid>.tpg-tile.tpg-v357-5{grid-column:6/span 2!important}
.tpg-grid>.tpg-tile.tpg-v357-6{grid-column:8/span 2!important}
.tpg-grid>.tpg-tile.tpg-v357-7{grid-column:4/span 3!important}
.tpg-grid>.tpg-tile.tpg-v357-8{grid-column:7/span 3!important}


/* Only widen tile 1 to three fifths of viewport; height and all other tiles stay unchanged. */
.tpg-grid>.tpg-tile.tpg-feature-flip{width:60vw!important;max-width:none!important}


/* Temporary gallery inspection mode: retain both anchor tiles and all grid geometry. */
.tpg-grid{position:relative!important;background:#fff!important;isolation:isolate!important}
.tpg-grid>.tpg-tile:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:hidden!important}
/* Black track boundaries for the 9-column / 12-row gallery grid. */
.tpg-grid::after{content:"";position:absolute;inset:0;z-index:9999;pointer-events:none;box-sizing:border-box;border:1px solid #000;background-image:
linear-gradient(to right, transparent calc(12.500000% - 1px), #000 calc(12.500000% - 1px), #000 12.500000%, transparent 12.500000%),
linear-gradient(to right, transparent calc(25.000000% - 1px), #000 calc(25.000000% - 1px), #000 25.000000%, transparent 25.000000%),
linear-gradient(to right, transparent calc(35.714286% - 1px), #000 calc(35.714286% - 1px), #000 35.714286%, transparent 35.714286%),
linear-gradient(to right, transparent calc(46.428571% - 1px), #000 calc(46.428571% - 1px), #000 46.428571%, transparent 46.428571%),
linear-gradient(to right, transparent calc(57.142857% - 1px), #000 calc(57.142857% - 1px), #000 57.142857%, transparent 57.142857%),
linear-gradient(to right, transparent calc(67.857143% - 1px), #000 calc(67.857143% - 1px), #000 67.857143%, transparent 67.857143%),
linear-gradient(to right, transparent calc(78.571429% - 1px), #000 calc(78.571429% - 1px), #000 78.571429%, transparent 78.571429%),
linear-gradient(to right, transparent calc(89.285714% - 1px), #000 calc(89.285714% - 1px), #000 89.285714%, transparent 89.285714%),
repeating-linear-gradient(to bottom, #000 0px, #000 1px, transparent 1px, transparent calc(100% / 12));}
/* v403: removed obsolete black outlines on gallery anchor tiles. */


/* Eight equal columns for the temporary inspection grid. Preserve anchor dimensions. */
.tpg-grid{grid-template-columns:repeat(8,minmax(0,1fr))!important}
/* Keep hidden mosaic tiles inside the eight explicit tracks (avoid implicit ninth track). */
.tpg-grid>.tpg-tile.tpg-v357-4,.tpg-grid>.tpg-tile.tpg-v357-6{grid-column:7/span 2!important}
.tpg-grid>.tpg-tile.tpg-v357-8{grid-column:6/span 3!important}
/* Replace the former nine-column guide with eight equal-width guides. */
.tpg-grid::after{background-image:
repeating-linear-gradient(to right,#000 0px,#000 1px,transparent 1px,transparent 12.5%),
repeating-linear-gradient(to bottom,#000 0px,#000 1px,transparent 1px,transparent calc(100% / 12))!important}


/* Anchor 1: columns 1-3, rows 1-7. Anchor 14: column 1, rows 8-12. */
.tpg-grid>.tpg-tile.tpg-feature-flip{grid-column:1/span 3!important;grid-row:1/span 7!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-portrait-anchor-v349{grid-column:1/span 1!important;grid-row:8/span 5!important;width:100%!important}


/* Temporary 8 x 12 numbering, row-major 1..96. No gallery geometry changes. */
.tpg-grid>.tpg-cell-numbers-v369{position:absolute!important;inset:0!important;z-index:10000!important;display:grid!important;grid-template-columns:repeat(8,minmax(0,1fr))!important;grid-template-rows:repeat(12,minmax(0,1fr))!important;pointer-events:none!important;overflow:hidden!important}
.tpg-cell-numbers-v369>span{display:flex;align-items:flex-start;justify-content:flex-start;padding:3px;box-sizing:border-box;min-width:0;min-height:0;font:700 clamp(10px,1.1vw,15px)/1.1 Arial,sans-serif;color:#000;text-shadow:0 0 2px #fff}
.tpg-cell-numbers-v369>span>b{display:inline-block;background:rgba(255,255,255,.88);padding:2px 4px;border:1px solid #333;border-radius:2px}


/* Cells 58,59 / 66,67 / 74,75 / 82,83 / 90,91: columns 2-3, rows 8-12. */
.tpg-grid>.tpg-tile.tpg-v357-2{display:block!important;visibility:visible!important;grid-column:2/span 2!important;grid-row:8/span 5!important;width:100%!important;max-width:none!important}


/* Override the higher-specificity v365 hide rule for the single new tile. */
.tpg-grid>.tpg-tile.tpg-v357-2:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}


/* Cells 29,30 / 37,38 / 45,46 / 53,54 / 61,62: columns 5-6, rows 4-8. */
.tpg-grid>.tpg-tile.tpg-v357-3{display:block!important;grid-column:5/span 2!important;grid-row:4/span 5!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-v357-3:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}


/* Three additional 2-column x 4-row tiles; retain the temporary numbered grid. */
/* Cells 7,8,15,16,23,24,31,32 */
.tpg-grid>.tpg-tile.tpg-v357-4{display:block!important;grid-column:7/span 2!important;grid-row:1/span 4!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-v357-4:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}
/* Cells 39,40,47,48,55,56,63,64 */
.tpg-grid>.tpg-tile.tpg-v357-5{display:block!important;grid-column:7/span 2!important;grid-row:5/span 4!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-v357-5:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}
/* Cells 71,72,79,80,87,88,95,96 */
.tpg-grid>.tpg-tile.tpg-v357-6{display:block!important;grid-column:7/span 2!important;grid-row:9/span 4!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-v357-6:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}


/* Cropped gallery photos: horizontal center, vertical top. Keep the portrait anchor's contain/left alignment unchanged. */
.tpg-grid>.tpg-tile:not(.tpg-portrait-anchor-v349) img{object-position:center top!important}


/* Additional eight tiles, referenced to the numbered 8 x 12 grid. */
/* 68,69,76,77,84,85,92,93 */
.tpg-grid>.tpg-tile.tpg-v357-7{display:block!important;grid-column:4/span 2!important;grid-row:9/span 4!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-v357-7:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}
/* 70,78 */
.tpg-grid>.tpg-tile.tpg-v357-8{display:block!important;grid-column:6/span 1!important;grid-row:9/span 2!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-v357-8:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}
/* 86,94 */
.tpg-grid>.tpg-tile.tpg-v375-3{display:block!important;grid-column:6/span 1!important;grid-row:11/span 2!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-v375-3:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}
/* 14,22 */
.tpg-grid>.tpg-tile.tpg-v375-4{display:block!important;grid-column:6/span 1!important;grid-row:2/span 2!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-v375-4:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}
/* 13,21 */
.tpg-grid>.tpg-tile.tpg-v375-5{display:block!important;grid-column:5/span 1!important;grid-row:2/span 2!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-v375-5:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}
/* 12,20 */
.tpg-grid>.tpg-tile.tpg-v375-6{display:block!important;grid-column:4/span 1!important;grid-row:2/span 2!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-v375-6:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}
/* 28,36 */
.tpg-grid>.tpg-tile.tpg-v375-7{display:block!important;grid-column:4/span 1!important;grid-row:4/span 2!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-v375-7:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}
/* 44,52,60 */
.tpg-grid>.tpg-tile.tpg-v375-8{display:block!important;grid-column:4/span 1!important;grid-row:6/span 3!important;width:100%!important;max-width:none!important}
.tpg-grid>.tpg-tile.tpg-v375-8:not(.tpg-feature-flip):not(.tpg-portrait-anchor-v349){visibility:visible!important}


/* Clear numbered cells 4,5,6,12,13,14,20,21,22.
   The first row was already empty; hide the three tiles in rows 2-3. */
.tpg-grid>.tpg-tile.tpg-v375-4,
.tpg-grid>.tpg-tile.tpg-v375-5,
.tpg-grid>.tpg-tile.tpg-v375-6{display:none!important}


/* Reuse two hidden gallery tiles from v376; keep every other tile unchanged. */
/* Cells 4,5,12,13,20,21: columns 4-5, rows 1-3. */
.tpg-grid>.tpg-tile.tpg-v375-4{display:block!important;visibility:visible!important;grid-column:4/span 2!important;grid-row:1/span 3!important;width:100%!important;max-width:none!important}
/* Cells 6,14,22: column 6, rows 1-3. */
.tpg-grid>.tpg-tile.tpg-v375-5{display:block!important;visibility:visible!important;grid-column:6/span 1!important;grid-row:1/span 3!important;width:100%!important;max-width:none!important}


/* Replace the old tile at 4,5,12,13,20,21 with two new placements. */
/* 5,13,21: column 5, rows 1-3; reuse tile previously spanning columns 4-5. */
.tpg-grid>.tpg-tile.tpg-v375-4{display:block!important;visibility:visible!important;grid-column:5/span 1!important;grid-row:1/span 3!important}
/* 4,12: column 4, rows 1-2; reveal previously hidden tile. */
.tpg-grid>.tpg-tile.tpg-v375-6{display:block!important;visibility:visible!important;grid-column:4/span 1!important;grid-row:1/span 2!important;width:100%!important;max-width:none!important}
/* Replace 28,36 with 20,28,36: column 4, rows 3-5. */
.tpg-grid>.tpg-tile.tpg-v375-7{display:block!important;visibility:visible!important;grid-column:4/span 1!important;grid-row:3/span 3!important}


/* Keep old temporary coordinate guides hidden; remove numbered black overlay. */
.tpg-grid::after{display:none!important}
.tpg-grid>.tpg-cell-numbers-v369{display:none!important}


/* Tile 10: preserve uncropped portrait and flip animation, remove vertical centering gap. */
.tpg-grid>.tpg-tile.tpg-portrait-anchor-v349 .tpg-portrait-face{object-position:left top!important}


/* Tile 10: fill the entire cell; center horizontal crop, align image to top. */
.tpg-grid>.tpg-tile.tpg-portrait-anchor-v349 .tpg-portrait-face{
  object-fit:cover!important;
  object-position:center top!important;
}


/* Flip each ordinary visible gallery tile around its vertical axis. */
.tpg-grid>.tpg-tile.tpg-v382-animated{perspective:1200px;isolation:isolate}
.tpg-v382-rotor{position:absolute;inset:0;display:block;transform-style:preserve-3d;transition:transform 1050ms cubic-bezier(.3,.65,.3,1)}
.tpg-v382-face{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center top;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .45s ease}
.tpg-v382-back{transform:rotateY(180deg)}
.tpg-v382-rotor.is-turned{transform:rotateY(180deg)}
.tpg-tile.tpg-v382-animated:hover .tpg-v382-rotor{scale:1.045}
.tpg-tile.tpg-v382-animated:hover .tpg-v382-face{transform:none}
.tpg-tile.tpg-v382-animated:hover .tpg-v382-back{transform:rotateY(180deg)}
/* Both existing animated anchors also get a subtle zoom on hover. */
.tpg-tile.tpg-feature-flip:hover .tpg-feature-base{transform:scale(1.045)!important}
.tpg-tile.tpg-feature-flip:hover .tpg-flip-layer{transform:scale(1.045)}
.tpg-tile.tpg-portrait-anchor-v349:hover .tpg-portrait-rotor{scale:1.045}
.tpg-v382-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;border:0;border-radius:50%;width:42px;height:42px;background:#fffE;color:#222;font-size:28px;cursor:pointer;display:grid;place-items:center}
.tpg-v382-prev{left:12px}.tpg-v382-next{right:12px}
.tpg-dialog{position:fixed;inset:0;margin:auto;overflow:auto}
@media(prefers-reduced-motion:reduce){.tpg-v382-rotor{transition:none!important}}


.tpg-grid>.tpg-tile.tpg-v385-mosaic{isolation:isolate;overflow:hidden;perspective:1100px}
.tpg-v385-mosaic>.tpg-flip-layer{position:absolute;inset:0;z-index:3;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));pointer-events:none;perspective:1100px}
.tpg-v385-mosaic .tpg-flip-cell{position:relative;min-width:0;min-height:0;transform-style:preserve-3d}
.tpg-v385-mosaic .tpg-flip-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background-repeat:no-repeat}
.tpg-v385-mosaic .tpg-flip-back{transform:rotateY(180deg)}
.tpg-v385-mosaic .tpg-flip-cell.tpg-flip-go{animation:tpg-turn-v348 var(--turn-duration,850ms) cubic-bezier(.24,.68,.25,1) var(--turn-delay,0ms) both}
.tpg-v385-mosaic:hover>img{transform:scale(1.045)}


/* Animated rainbow only in the internal 3px gaps. */
.tpg-grid{
  gap:3px!important;
  column-gap:3px!important;
  row-gap:3px!important;
  padding:0!important;
  border:0!important;
  background-color:#f63b56!important;
  background-image:repeating-linear-gradient(90deg,
    #f63b56 0px,#ffb547 60px,#f8e765 120px,
    #58d8a5 180px,#53b7ff 240px,#9575ee 300px,#f63b56 360px)!important;
  background-size:360px 100%!important;
  background-repeat:repeat!important;
  background-position:0 0;
}
.tpg-grid>.tpg-tile{border:0!important;margin:0!important}
