/* Reviews travel across a compact stage, from the cup on the left to the right-hand catcher. */
.dice-scene{--die-size:clamp(210px,17vw,240px);--catcher-width:clamp(280px,28vw,400px);position:relative;isolation:isolate;background:var(--deep);border-block:1px solid var(--line);padding-block:54px 48px}
.dice-intro{position:relative;z-index:4;width:min(1000px,calc(100% - 80px));margin:0 auto;text-align:center}
.dice-intro .eyebrow{margin-bottom:14px}
.dice-intro h2{font-size:clamp(42px,4.2vw,60px)}
.dice-description{font-size:18px;line-height:1.6;color:var(--soft);margin-top:16px}
.dice-scroll-hint,.dice-swipe-hint{display:none;font-size:12px;line-height:1.6;color:var(--muted);margin-top:12px;letter-spacing:.025em}
.dice-active .dice-scroll-hint{display:block}
.dice-window{position:relative;width:100%;overflow:hidden;margin-top:12px}
.dice-window:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}
.dice-runway{position:relative;width:100%;height:calc(var(--die-size) + 145px);perspective:1800px;perspective-origin:50% 50%}
.dice-cup{position:absolute;z-index:3;top:-22px;left:-2px;width:clamp(250px,22vw,340px);max-width:none;transform-origin:0 45%;pointer-events:none}
.dice-cup img{width:100%;height:auto;max-width:none}
.review-die{position:absolute;width:var(--die-size);height:var(--die-size);transform-style:preserve-3d;transform:rotateX(-12deg) rotateY(-18deg) rotateZ(var(--rest-rotation));z-index:2;scroll-snap-align:center}
.review-die-1{left:calc(22% - var(--die-size)/2);top:62px;--rest-rotation:-5deg}
.review-die-2{left:calc(50% - var(--die-size)/2);top:48px;--rest-rotation:5deg}
.review-die-3{left:calc(100% - var(--catcher-width)*.79 - var(--die-size)/2);top:70px;--rest-rotation:-3deg}
.dice-catcher{position:absolute;z-index:1;right:-2px;top:calc(70px + var(--die-size)*1.12 - var(--catcher-width)*.245);width:var(--catcher-width);pointer-events:none}
.catcher-visual{width:100%;transform-origin:100% 70%}
.dice-catcher img{width:100%;height:auto;max-width:none;transform:scaleX(-1)}
.dice-booking{width:min(670px,calc(100% - 48px));margin:8px auto 0;text-align:center}
.dice-booking .text-link{font-size:22px;line-height:1.4;color:var(--accent);text-align:left;gap:24px}
.dice-booking .text-link>span{flex-shrink:0}
.die-stars{display:block;color:#b38320;font-size:18px;line-height:1;letter-spacing:.08em;text-shadow:0 1px 0 #fff}
.die-face{position:absolute;inset:0;border:1px solid #b89ea4;border-radius:11px;background:linear-gradient(135deg,#fff7f9,#efdce2);backface-visibility:hidden;box-shadow:inset 3px 3px 2px #ffffff80,inset -3px -3px 4px #08060718;color:var(--ink)}
.die-front{transform:translateZ(calc(var(--die-size)/2));padding:25px;display:flex;flex-direction:column;justify-content:center;gap:9px;text-align:center;box-shadow:inset 3px 3px 2px #ffffffc0,inset -3px -3px 4px #08060715}
.die-front blockquote{font-size:clamp(17px,1.3vw,19px);line-height:1.3;letter-spacing:-.02em;flex:0}
.die-front figcaption{font-size:11px;line-height:1.5;color:#66414e}
.die-front figcaption>span{padding-inline:3px}
.die-front a{text-decoration:underline;text-underline-offset:3px}
.die-front a:hover{color:#100b0d}
.die-front a:focus-visible{outline-color:#962b4c}
.die-back{transform:rotateY(180deg) translateZ(calc(var(--die-size)/2))}
.die-right{transform:rotateY(90deg) translateZ(calc(var(--die-size)/2));background:linear-gradient(135deg,#d9b9c4,#b68b9b)}
.die-left{transform:rotateY(-90deg) translateZ(calc(var(--die-size)/2));background:linear-gradient(135deg,#efd4df,#c6a1b0)}
.die-top{transform:rotateX(90deg) translateZ(calc(var(--die-size)/2));background:linear-gradient(135deg,#fff9fb,#f3e1e8)}
.die-bottom{transform:rotateX(-90deg) translateZ(calc(var(--die-size)/2));background:#c1a0ac}
.pip{position:absolute;width:14%;height:14%;border-radius:50%;background:#26121b;box-shadow:inset 2px 3px 4px #0008;transform:translate(-50%,-50%)}
.pip-1{left:25%;top:25%}.pip-2{left:25%;top:50%}.pip-3{left:75%;top:25%}.pip-5{left:50%;top:50%}.pip-7{left:25%;top:75%}.pip-8{left:75%;top:50%}.pip-9{left:75%;top:75%}
.front-pip{width:7%;height:7%;background:#1b0d13;box-shadow:inset 2px 2px 3px #000a,0 1px 0 #fff}
.front-pip-1{left:11%;top:11%}.front-pip-2{left:89%;top:11%}.front-pip-3{left:11%;top:89%}.front-pip-4{left:89%;top:89%}


.dice-active .review-die{will-change:transform,opacity}
.dice-active .dice-cup{will-change:transform}
/* Smaller screens retain the horizontal scene in a native, keyboard-accessible scroll area. */
@media(max-width:999px){
 .dice-scene{--die-size:210px;--catcher-width:240px;padding-block:44px 38px}
 .dice-intro{width:calc(100% - 48px);max-width:660px}
 .dice-intro h2{font-size:44px}
 .dice-description{font-size:17px;max-width:520px;margin:16px auto 0}
 .dice-swipe-hint{display:block}
 .dice-window{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#a55b74 #211017;margin-top:6px}
 .dice-runway{width:max(960px,100%);height:355px}
 .dice-cup{width:230px;top:-4px;transform:none!important}
 .review-die{opacity:1!important;transform:rotateX(-12deg) rotateY(-18deg) rotateZ(var(--rest-rotation))!important;will-change:auto}
 .review-die-1{left:85px;top:62px}
 .review-die-2{left:375px;top:48px}
 .review-die-3{left:665px;top:70px}
 .die-front blockquote{font-size:17px}
 .die-front figcaption{font-size:10px}
 .dice-booking{margin-top:22px;max-width:510px}
 .dice-booking .text-link{font-size:20px}
}
@media(max-width:570px){
 .dice-intro{width:calc(100% - 40px);max-width:420px}
 .dice-intro h2{font-size:42px}
 .dice-intro h2 em{display:block}
 .dice-description{font-size:16px}
}
@media(prefers-reduced-motion:reduce){
 .dice-cup{transform:none!important;will-change:auto}
 .review-die{transform:rotateX(-12deg) rotateY(-18deg) rotateZ(var(--rest-rotation))!important;opacity:1!important;will-change:auto}
 .dice-scroll-hint{display:none!important}
}
