/* The homepage hero's 3D set, from the prototype (CHANGES 11, 24, 26, 32 and 39): sections/rootist_hero_set.
   The canvas (rootist-plinth-3d.js, started by rootist-hero.js) fills .rt-plinth-set, the copy sits on the light side of
   the wall, and the stage is the box the bottle is framed in: its base, and so the shelf's front edge, lands 81% of the
   way down, and the copy centres on the wall above it. Until the scene has drawn, the wall is this gradient, in the
   colours the scene paints, and a still of the scene (the poster) shows in the stage until the 3D fades in.
   Colours: ink #672c45, soft ink rgb(103 44 69 / 0.88). Display serif = the theme's 'Fraunces'; body = "Helvetica Neue".
   Title 80px/84px, 64px/68px from 1068px down, 48px/52px from 734px down (the scene stacks at 734px too); intro
   21px/29px, 19px/27px, 17px/25px. The set is the window's height less the header (118px) and 40px, 600px to 780px.
   The theme sets every h1 to 40px Helvetica Neue Condensed with !important (.rootist-store h1:not(...), specificity
   0,3,2) and every paragraph's margin to 0 (.rootist-store p), so the rules below that touch those carry the extra
   specificity, and the title's size !important. */
.rt-plinth { --rt-set: clamp(600px, calc(100svh - 158px), 780px); padding: 0 0 8px; }
/* Until the scene draws, the wall is this gradient, in the colours the scene paints: a pool of sun round the set,
   falling off to a deeper apricot at the far corner. */
.rt-plinth-set { position: relative; overflow: hidden; overflow: clip; background:radial-gradient(40% 62% at 100% 0%, rgb(214 166 132 / 0.5), rgb(214 166 132 / 0) 72%), radial-gradient(64% 110% at 77% 45%, #fdebd7 0%, #fde4d3 48%, #fddbcb 100%); }
.rt-plinth-grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); column-gap: clamp(40px, 6vw, 96px); align-items: center; min-height: var(--rt-set); }
.rt-plinth-copy { padding: 40px 0; margin-bottom: calc(var(--rt-set) * 0.19); }
.rootist-store .rt-plinth .rt-eyebrow { margin: 0 0 16px; font: 700 12px/16px "Helvetica Neue", Helvetica, Arial, sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: rgb(103 44 69 / 0.88); }
.rootist-store .rt-plinth .rt-plinth-copy h1.rt-title { margin: 0; font-family: 'Fraunces', Georgia, serif; font-weight: 500; font-size: 80px !important; line-height: 84px !important; letter-spacing: -0.015em; color: #672c45; text-wrap: balance; }
.rt-plinth .rt-title sup { position: static; font-size: 0.6em; line-height: 0; vertical-align: super; }
.rootist-store .rt-plinth p.rt-intro { margin: 20px 0 0; max-width: 32em; font: 400 21px/29px "Helvetica Neue", Helvetica, Arial, sans-serif; letter-spacing: 0.011em; color: rgb(103 44 69 / 0.88); text-wrap: balance; }
.rt-plinth .rt-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 32px; }
/* The quiz button is the site's outlined button (.rt-button: plum edge, clear fill, 48px), the quieter of the pair. */
/* BioBrew's REVIEWS.io aggregate, as that page displays it (dated in the footnote). Stars fill to the rating. */
.rt-plinth .rt-rating { display: inline-flex; align-items: center; gap: 10px; margin-top: 28px; color: rgb(103 44 69 / 0.88); font: 400 14px/18px "Helvetica Neue", Helvetica, Arial, sans-serif; text-decoration: none; }
.rt-plinth .rt-rating strong { color: #672c45; font-weight: 700; }
.rt-plinth .rt-rating:focus-visible { outline: 3px solid #672c45; outline-offset: 4px; border-radius: 4px; }
.rt-plinth .rt-stars {
  --fill: calc(var(--rating) / 5 * 100%);
  flex: none;
  width: 90px;
  height: 17px;
  background: linear-gradient(90deg, #672c45 var(--fill), rgb(103 44 69 / 0.22) var(--fill));
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 17'%3E%3Cpath d='M9 0l2.6 5.6 6.1.7-4.5 4.2 1.2 6.1L9 13.6l-5.4 3 1.2-6.1L.3 6.3l6.1-.7z'/%3E%3C/svg%3E") 0 0 / 18px 17px repeat-x;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 17'%3E%3Cpath d='M9 0l2.6 5.6 6.1.7-4.5 4.2 1.2 6.1L9 13.6l-5.4 3 1.2-6.1L.3 6.3l6.1-.7z'/%3E%3C/svg%3E") 0 0 / 18px 17px repeat-x;
}
.rt-plinth-stage { position: relative; align-self: stretch; margin: 0; }
/* The poster (CHANGE 55): a still of the whole scene, one per layout, covering the set and shown at once, under the canvas.
   It sits under the copy (z-index -1 inside the grid) and over the canvas; once the 3D has drawn, rootist-hero.js
   marks the section .is-live and the poster fades away. Without WebGL it simply stays. Its edges fade into the wall. */
.rt-plinth-poster { position: absolute; inset: 0; z-index: 0; pointer-events: none; transition: opacity 0.6s ease 0.15s; }
/* Each still is anchored at the stage's centre as captured (72% across at 1920, 80% at 1440 and 1024) and the shelf's
   bottom edge, so the bottle sits where the 3D will put it when the screen's shape differs a little. */
.rootist-store .rt-plinth .rt-plinth-poster img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 80% 100%; }
@media (min-width: 1600px) { .rootist-store .rt-plinth .rt-plinth-poster img { object-position: 72% 100%; } }
@media (max-width: 734px) { .rootist-store .rt-plinth .rt-plinth-poster img { object-position: 50% 100%; } }
.rt-plinth.is-live .rt-plinth-poster { opacity: 0; }
/* The leaf shade sits over the opaque scene and poster, under the copy. It takes no clicks, so a click still mists.
   The palm fronds are inlined because the theme serves .svg assets as text/plain, and multiplied over the wall
   at the top left so the copy side shares the set's dappled light. */
.rt-plinth-set { --rt-leaf-shadow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 1000' width='1600' height='1000'%3E%3Cdefs%3E%3Cfilter id='soft' x='-10%25' y='-10%25' width='120%25' height='120%25'%3E%3CfeGaussianBlur stdDeviation='10'/%3E%3C/filter%3E%3C/defs%3E%3Cg filter='url(%23soft)' fill='%233b2418' stroke='%233b2418'%3E%3Cpath d='M-140 -80 L-118 -75 L-96 -69 L-74 -64 L-52 -58 L-31 -52 L-9 -45 L13 -39 L34 -32 L56 -24 L78 -17 L99 -9 L120 -1 L142 7 L163 16 L184 25 L206 34 L227 43 L248 53 L269 62 L290 72 L311 83 L332 94 L353 104 L374 116 L394 127 L415 139 L436 151 L456 163 L477 175 L498 188 L518 201 L538 214 L559 228 L579 242 L599 256 L620 270 L640 285 L660 300 L680 315 L700 330' fill='none' stroke-width='6' stroke-linecap='round'/%3E%3Cpath d='M-37 -54 Q22 16 86 16 Q35 -7 -37 -54Z'/%3E%3Cpath d='M-37 -54 Q-27 42 9 80 Q-3 34 -37 -54Z'/%3E%3Cpath d='M14 -38 Q94 50 174 56 Q107 28 14 -38Z'/%3E%3Cpath d='M14 -38 Q31 86 72 139 Q55 78 14 -38Z'/%3E%3Cpath d='M65 -21 Q161 82 253 94 Q173 61 65 -21Z'/%3E%3Cpath d='M65 -21 Q86 126 131 190 Q110 118 65 -21Z'/%3E%3Cpath d='M115 -3 Q222 111 323 128 Q235 91 115 -3Z'/%3E%3Cpath d='M115 -3 Q139 161 185 233 Q162 154 115 -3Z'/%3E%3Cpath d='M166 17 Q278 139 385 160 Q291 120 166 17Z'/%3E%3Cpath d='M166 17 Q191 191 236 269 Q213 185 166 17Z'/%3E%3Cpath d='M216 38 Q330 165 439 188 Q343 146 216 38Z'/%3E%3Cpath d='M216 38 Q240 217 285 298 Q262 211 216 38Z'/%3E%3Cpath d='M265 61 Q378 188 485 213 Q391 170 265 61Z'/%3E%3Cpath d='M265 61 Q288 239 330 320 Q309 233 265 61Z'/%3E%3Cpath d='M315 85 Q422 209 524 235 Q434 192 315 85Z'/%3E%3Cpath d='M315 85 Q334 257 374 335 Q355 252 315 85Z'/%3E%3Cpath d='M364 110 Q462 228 557 253 Q475 212 364 110Z'/%3E%3Cpath d='M364 110 Q380 271 416 345 Q400 266 364 110Z'/%3E%3Cpath d='M413 137 Q500 246 585 269 Q512 229 413 137Z'/%3E%3Cpath d='M413 137 Q425 282 457 349 Q444 278 413 137Z'/%3E%3Cpath d='M461 166 Q534 261 608 281 Q546 246 461 166Z'/%3E%3Cpath d='M461 166 Q469 291 497 349 Q488 288 461 166Z'/%3E%3Cpath d='M510 196 Q567 276 628 291 Q579 261 510 196Z'/%3E%3Cpath d='M510 196 Q513 298 537 345 Q531 295 510 196Z'/%3E%3Cpath d='M558 227 Q598 289 644 299 Q609 275 558 227Z'/%3E%3Cpath d='M558 227 Q557 303 576 338 Q575 300 558 227Z'/%3E%3Cpath d='M605 260 Q627 301 657 304 Q638 287 605 260Z'/%3E%3Cpath d='M605 260 Q600 307 616 327 Q618 304 605 260Z'/%3E%3Cpath d='M653 294 Q652 310 664 304 Q663 297 653 294Z'/%3E%3Cpath d='M653 294 Q644 306 655 309 Q660 304 653 294Z'/%3E%3Cpath d='M-40 -200 L-12 -195 L16 -191 L44 -186 L71 -181 L99 -175 L126 -170 L154 -165 L181 -159 L208 -153 L235 -147 L262 -141 L289 -134 L316 -128 L342 -121 L369 -114 L395 -107 L422 -100 L448 -93 L474 -85 L500 -78 L526 -70 L552 -62 L578 -54 L603 -45 L629 -37 L654 -28 L680 -19 L705 -10 L730 -1 L755 8 L780 18 L805 27 L830 37 L854 47 L879 57 L903 67 L928 78 L952 88 L976 99 L1000 110' fill='none' stroke-width='5' stroke-linecap='round'/%3E%3Cpath d='M83 -178 Q130 -116 183 -115 Q143 -137 83 -178Z'/%3E%3Cpath d='M83 -178 Q93 -98 127 -68 Q116 -107 83 -178Z'/%3E%3Cpath d='M144 -166 Q209 -88 276 -81 Q222 -108 144 -166Z'/%3E%3Cpath d='M144 -166 Q162 -62 201 -20 Q184 -70 144 -166Z'/%3E%3Cpath d='M205 -154 Q283 -63 362 -51 Q296 -82 205 -154Z'/%3E%3Cpath d='M205 -154 Q228 -30 271 21 Q250 -38 205 -154Z'/%3E%3Cpath d='M265 -140 Q353 -39 440 -24 Q366 -58 265 -140Z'/%3E%3Cpath d='M265 -140 Q292 -2 338 57 Q313 -9 265 -140Z'/%3E%3Cpath d='M324 -126 Q419 -18 511 1 Q432 -36 324 -126Z'/%3E%3Cpath d='M324 -126 Q354 23 402 86 Q375 15 324 -126Z'/%3E%3Cpath d='M383 -110 Q482 2 576 22 Q494 -16 383 -110Z'/%3E%3Cpath d='M383 -110 Q414 43 462 110 Q434 36 383 -110Z'/%3E%3Cpath d='M442 -94 Q541 19 635 40 Q553 1 442 -94Z'/%3E%3Cpath d='M442 -94 Q472 61 519 128 Q492 54 442 -94Z'/%3E%3Cpath d='M500 -78 Q596 34 688 56 Q608 17 500 -78Z'/%3E%3Cpath d='M500 -78 Q529 74 574 141 Q548 68 500 -78Z'/%3E%3Cpath d='M558 -60 Q648 47 736 68 Q660 31 558 -60Z'/%3E%3Cpath d='M558 -60 Q584 85 626 148 Q602 79 558 -60Z'/%3E%3Cpath d='M615 -41 Q697 58 778 78 Q709 43 615 -41Z'/%3E%3Cpath d='M615 -41 Q637 93 677 152 Q656 87 615 -41Z'/%3E%3Cpath d='M671 -22 Q744 68 817 86 Q755 53 671 -22Z'/%3E%3Cpath d='M671 -22 Q690 98 725 151 Q708 93 671 -22Z'/%3E%3Cpath d='M727 -2 Q788 77 851 91 Q799 62 727 -2Z'/%3E%3Cpath d='M727 -2 Q741 101 772 146 Q759 96 727 -2Z'/%3E%3Cpath d='M783 19 Q831 84 882 95 Q841 70 783 19Z'/%3E%3Cpath d='M783 19 Q792 103 818 139 Q809 98 783 19Z'/%3E%3Cpath d='M838 40 Q871 91 910 97 Q882 77 838 40Z'/%3E%3Cpath d='M838 40 Q842 103 863 129 Q858 98 838 40Z'/%3E%3Cpath d='M892 63 Q910 96 935 97 Q920 83 892 63Z'/%3E%3Cpath d='M892 63 Q891 101 907 116 Q906 97 892 63Z'/%3E%3Cpath d='M946 86 Q945 98 954 92 Q955 86 946 86Z'/%3E%3Cpath d='M946 86 Q938 95 949 96 Q954 91 946 86Z'/%3E%3Cpath d='M-200 230 L-184 235 L-168 241 L-152 247 L-137 253 L-121 259 L-106 266 L-90 273 L-75 281 L-60 289 L-45 297 L-30 305 L-15 314 L-0 324 L14 333 L29 343 L43 353 L58 364 L72 375 L86 386 L100 398 L114 409 L128 422 L142 434 L155 447 L169 460 L182 474 L196 488 L209 502 L222 517 L235 532 L248 547 L261 563 L274 579 L286 595 L299 612 L311 629 L324 646 L336 664 L348 682 L360 700' fill='none' stroke-width='5' stroke-linecap='round'/%3E%3Cpath d='M-103 267 Q-46 325 13 320 Q-36 303 -103 267Z'/%3E%3Cpath d='M-103 267 Q-100 354 -71 390 Q-77 348 -103 267Z'/%3E%3Cpath d='M-57 291 Q17 364 90 365 Q28 343 -57 291Z'/%3E%3Cpath d='M-57 291 Q-51 401 -20 450 Q-28 396 -57 291Z'/%3E%3Cpath d='M-11 317 Q73 403 153 409 Q84 383 -11 317Z'/%3E%3Cpath d='M-11 317 Q-5 444 24 502 Q17 440 -11 317Z'/%3E%3Cpath d='M34 347 Q121 440 205 452 Q132 422 34 347Z'/%3E%3Cpath d='M34 347 Q38 482 65 545 Q59 478 34 347Z'/%3E%3Cpath d='M78 380 Q163 477 245 492 Q174 459 78 380Z'/%3E%3Cpath d='M78 380 Q78 515 102 579 Q99 513 78 380Z'/%3E%3Cpath d='M121 416 Q199 511 276 529 Q211 495 121 416Z'/%3E%3Cpath d='M121 416 Q118 545 138 607 Q138 543 121 416Z'/%3E%3Cpath d='M164 455 Q231 544 300 562 Q243 529 164 455Z'/%3E%3Cpath d='M164 455 Q157 571 173 628 Q176 570 164 455Z'/%3E%3Cpath d='M205 498 Q259 575 316 591 Q271 561 205 498Z'/%3E%3Cpath d='M205 498 Q195 596 209 643 Q214 595 205 498Z'/%3E%3Cpath d='M245 544 Q284 606 328 618 Q295 593 245 544Z'/%3E%3Cpath d='M245 544 Q234 618 245 655 Q252 618 245 544Z'/%3E%3Cpath d='M284 593 Q306 636 337 642 Q317 624 284 593Z'/%3E%3Cpath d='M284 593 Q273 640 282 664 Q290 641 284 593Z'/%3E%3Cpath d='M323 645 Q325 665 340 662 Q337 653 323 645Z'/%3E%3Cpath d='M323 645 Q312 661 321 670 Q328 662 323 645Z'/%3E%3Cpath d='M1800 -160 L1781 -155 L1762 -150 L1744 -144 L1725 -138 L1707 -132 L1688 -126 L1670 -119 L1652 -112 L1635 -105 L1617 -98 L1599 -91 L1582 -83 L1565 -75 L1547 -67 L1530 -58 L1514 -50 L1497 -41 L1480 -32 L1464 -22 L1448 -12 L1431 -3 L1415 7 L1399 18 L1384 28 L1368 39 L1352 50 L1337 62 L1322 73 L1307 85 L1292 97 L1277 109 L1262 122 L1248 134 L1233 147 L1219 160 L1205 174 L1191 188 L1177 201 L1164 216 L1150 230' fill='none' stroke-width='5' stroke-linecap='round'/%3E%3Cpath d='M1701 -130 Q1666 -53 1664 -10 Q1689 -46 1701 -130Z'/%3E%3Cpath d='M1701 -130 Q1635 -90 1596 -61 Q1648 -69 1701 -130Z'/%3E%3Cpath d='M1652 -112 Q1614 -10 1608 45 Q1636 -4 1652 -112Z'/%3E%3Cpath d='M1652 -112 Q1570 -54 1518 -20 Q1583 -35 1652 -112Z'/%3E%3Cpath d='M1605 -93 Q1565 28 1556 92 Q1587 34 1605 -93Z'/%3E%3Cpath d='M1605 -93 Q1511 -20 1450 19 Q1525 -2 1605 -93Z'/%3E%3Cpath d='M1559 -72 Q1518 62 1510 131 Q1540 67 1559 -72Z'/%3E%3Cpath d='M1559 -72 Q1458 11 1391 53 Q1472 29 1559 -72Z'/%3E%3Cpath d='M1514 -50 Q1475 91 1466 163 Q1496 95 1514 -50Z'/%3E%3Cpath d='M1514 -50 Q1411 40 1342 85 Q1424 57 1514 -50Z'/%3E%3Cpath d='M1469 -25 Q1433 115 1426 188 Q1453 120 1469 -25Z'/%3E%3Cpath d='M1469 -25 Q1368 66 1301 112 Q1382 82 1469 -25Z'/%3E%3Cpath d='M1426 1 Q1393 136 1389 206 Q1413 140 1426 1Z'/%3E%3Cpath d='M1426 1 Q1330 90 1267 136 Q1344 106 1426 1Z'/%3E%3Cpath d='M1384 28 Q1355 154 1353 218 Q1374 157 1384 28Z'/%3E%3Cpath d='M1384 28 Q1297 112 1240 156 Q1310 127 1384 28Z'/%3E%3Cpath d='M1342 58 Q1318 168 1319 224 Q1336 171 1342 58Z'/%3E%3Cpath d='M1342 58 Q1266 132 1219 172 Q1279 146 1342 58Z'/%3E%3Cpath d='M1302 89 Q1281 180 1285 227 Q1299 182 1302 89Z'/%3E%3Cpath d='M1302 89 Q1239 150 1202 185 Q1251 163 1302 89Z'/%3E%3Cpath d='M1262 122 Q1246 190 1252 225 Q1263 192 1262 122Z'/%3E%3Cpath d='M1262 122 Q1214 167 1189 195 Q1226 179 1262 122Z'/%3E%3Cpath d='M1224 156 Q1211 199 1219 221 Q1227 200 1224 156Z'/%3E%3Cpath d='M1224 156 Q1192 182 1179 203 Q1204 194 1224 156Z'/%3E%3Cpath d='M1186 192 Q1176 204 1185 211 Q1192 205 1186 192Z'/%3E%3Cpath d='M1186 192 Q1172 195 1173 206 Q1184 206 1186 192Z'/%3E%3C/g%3E%3C/svg%3E"); }
.rt-plinth-light { position: absolute; top: 0; left: 0; z-index: 1; width: min(1180px, 88%); aspect-ratio: 1600 / 1000; pointer-events: none; background: var(--rt-leaf-shadow) 0 0 / 100% 100% no-repeat; mix-blend-mode: multiply; opacity: 0.065; transform: translate(-6%, -8%); }
/* The 3D fades in once it has drawn. */
.rt-plinth [data-rt-3d] { position: absolute; inset: 0; z-index: 1; opacity: 0; pointer-events: none; transition: opacity 0.8s ease; }
.rt-plinth [data-rt-3d].is-ready { opacity: 1; }
.rt-plinth [data-rt-3d] canvas { display: block; width: 100%; height: 100%; }
/* The hero's exit: as the page moves on, the set sinks behind its edge at about two thirds of the scroll, so the stage
   reads as a room beyond the page; the copy dissolves line by line as it slides under the header; and a faint warm shade
   (the colour of the leaf shadows) gathers along the set's bottom edge, where the page passes over it. The 3D camera's own lowering adds the depth
   between the camellia, the bottle and the wall. Scroll-driven (no script, nothing pinned or held), so it follows the
   scroll exactly, both ways. Each timeline is inset by the stuck header (83px), so the set only starts to sink once its
   top is under the header and no gap opens above it; the set clips (overflow: clip) rather than hides, because a
   hidden overflow is a scroll container and the lines' timelines would bind to it and never move. Without
   scroll-driven animations, and under reduced motion, it's the plain scroll. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .rt-plinth-set { view-timeline: --rt-plinth-set block; view-timeline-inset: 83px 0px; }
    .rt-plinth-poster, .rt-plinth [data-rt-3d], .rt-plinth-light { animation: rt-plinth-sink linear both; animation-timeline: --rt-plinth-set; animation-range: exit 0% exit 100%; }
    .rt-plinth-set::after { content: ""; position: absolute; inset: auto 0 0; z-index: 1; height: 72px; pointer-events: none; background: linear-gradient(to top, rgb(96 52 28 / 0.15), rgb(96 52 28 / 0)); opacity: 0; animation: rt-plinth-shade linear both; animation-timeline: --rt-plinth-set; animation-range: exit 0% exit 45%; }
    .rt-plinth-copy > * { animation: rt-plinth-line linear both; animation-timeline: view(block 83px 0px); animation-range: exit -30% exit 70%; }
  }
}
@keyframes rt-plinth-sink { to { transform: translate3d(0, 34%, 0); } }
@keyframes rt-plinth-shade { to { opacity: 1; } }
@keyframes rt-plinth-line { to { opacity: 0; transform: translateY(-14px); } }
.rootist-store .rt-plinth p.rt-footnotes { margin: 20px auto 0; font: 400 12px/16px "Helvetica Neue", Helvetica, Arial, sans-serif; color: rgb(103 44 69 / 0.88); }
@media (max-width: 1068px) {
  .rt-plinth-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 360px); }
  .rootist-store .rt-plinth .rt-plinth-copy h1.rt-title { font-size: 64px !important; line-height: 68px !important; }
  .rootist-store .rt-plinth p.rt-intro { font-size: 19px; line-height: 27px; }
}
@media (max-width: 734px) {
  /* Stacked: the copy on the light top of the wall, the bottle's stage under it. */
  .rt-plinth-set { background: radial-gradient(150% 62% at 50% 80%, #fbe0c5 0%, #fde4d3 48%, #fddbcb 100%); }
  .rt-plinth-grid { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .rt-plinth-copy { padding: 36px 0 0; margin-bottom: 0; }
  .rt-plinth-stage { height: 440px; }
  .rt-plinth-light { width: 150%; transform: translate(-22%, -6%); }
  .rootist-store .rt-plinth .rt-plinth-copy h1.rt-title { font-size: 48px !important; line-height: 52px !important; }
  .rootist-store .rt-plinth p.rt-intro { font-size: 17px; line-height: 25px; letter-spacing: -0.01em; }
  .rt-plinth .rt-actions { margin-top: 28px; }
  /* Both buttons share the column's width, side by side where they fit and full width, one above the other, where
     they don't (a 390px phone), so the pair's edges line up with the copy's either way. */
  .rt-plinth .rt-actions .rt-button { flex: 1 1 auto; padding-inline: 20px; }
  .rt-plinth .rt-rating { gap: 8px; }
}
/* Oct 5 (Briton: "a super soft fade out below instead of the harsh line"): the set dissolves into the page over its last
   fifth, on an eased ramp so there is no visible start to the fade. The copy and the bottle sit above it. */
.rt-plinth-set { --rt-fade: clamp(110px, 21%, 180px); -webkit-mask-image: linear-gradient(to bottom, #000 0, #000 calc(100% - var(--rt-fade)), rgb(0 0 0 / 0.93) calc(100% - var(--rt-fade) * 0.8), rgb(0 0 0 / 0.75) calc(100% - var(--rt-fade) * 0.6), rgb(0 0 0 / 0.48) calc(100% - var(--rt-fade) * 0.4), rgb(0 0 0 / 0.2) calc(100% - var(--rt-fade) * 0.2), transparent 100%); mask-image: linear-gradient(to bottom, #000 0, #000 calc(100% - var(--rt-fade)), rgb(0 0 0 / 0.93) calc(100% - var(--rt-fade) * 0.8), rgb(0 0 0 / 0.75) calc(100% - var(--rt-fade) * 0.6), rgb(0 0 0 / 0.48) calc(100% - var(--rt-fade) * 0.4), rgb(0 0 0 / 0.2) calc(100% - var(--rt-fade) * 0.2), transparent 100%); }
