/* 終幕の照明。元案の斜光・逆光・瓶の光沢を、瓶画像の形に沿って重ねる。 */
.has-bottle-light{isolation:isolate;--bl-x:29%;--bl-foot:95%;--bl-power:1;--bl-beam-turn:16deg;--bl-shine-x:36%}
.has-bottle-light .bottle-bg{z-index:0;opacity:.12;filter:saturate(.38)}
.has-bottle-light .bottle-halo{opacity:0}
.has-bottle-light .final-bottle{z-index:2;filter:brightness(1.2) contrast(1.035) drop-shadow(-.8px 0 1px #eed1a47a) drop-shadow(1px 0 1.4px #efd7ac57) drop-shadow(14px 20px 30px #0009)}
.has-bottle-light .bottle-copy{z-index:4}
.bl-light{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;opacity:var(--bl-power);contain:paint}
.bl-backlight{position:absolute;left:var(--bl-x);top:48%;width:min(70vw,900px);height:116%;transform:translate(-50%,-50%);background:radial-gradient(ellipse at center,rgba(211,155,82,.24) 0%,rgba(166,108,43,.12) 24%,rgba(102,69,32,.035) 48%,transparent 70%)}
/* 形を子に切り出し、その外側でぼかす。切断面まで滲む光にする。 */
.bl-beam{position:absolute;left:calc(var(--bl-x) - min(25vw,320px) + 12vh);top:-25%;width:min(50vw,640px);height:140%;transform-origin:50% 0;transform:rotate(var(--bl-beam-turn));filter:blur(13px);mix-blend-mode:screen}
.bl-beam::before{content:"";position:absolute;inset:0;clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);background:linear-gradient(90deg,transparent 0%,rgba(246,220,175,.04) 20%,rgba(255,236,196,.19) 49%,rgba(249,222,179,.09) 76%,transparent 100%);mask-image:linear-gradient(#0000,#000 16%,#000 53%,#0000 91%);-webkit-mask-image:linear-gradient(#0000,#000 16%,#000 53%,#0000 91%)}
.bl-beam-fine{width:min(19vw,250px);left:calc(var(--bl-x) - min(9.5vw,125px) + 12vh);opacity:.5;filter:blur(5px)}
.bl-beam-fine::before{background:linear-gradient(90deg,transparent 6%,rgba(255,238,209,.07) 24%,rgba(255,246,219,.32) 50%,rgba(255,225,171,.05) 78%,transparent 96%)}
.bl-floor{position:absolute;left:var(--bl-x);top:var(--bl-foot);width:min(59vw,700px);height:27%;transform:translate(-50%,-50%) scaleY(.35);background:radial-gradient(ellipse,rgba(255,236,199,.38) 0%,rgba(209,164,99,.19) 17%,rgba(157,109,59,.055) 42%,transparent 68%);filter:blur(5px);mix-blend-mode:screen}
.bl-contact{position:absolute;left:var(--bl-x);top:var(--bl-foot);width:min(22vw,260px);height:4.5%;transform:translate(-50%,-48%);background:radial-gradient(ellipse,rgba(0,0,0,.85) 12%,rgba(0,0,0,.48) 36%,transparent 72%)}
.bl-reflection{position:absolute;z-index:3;pointer-events:none;opacity:var(--bl-power);transform-origin:50% 50%;-webkit-mask-image:linear-gradient(transparent,transparent);mask-image:linear-gradient(transparent,transparent);-webkit-mask-position:center;mask-position:center;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;contain:paint}
.bl-gloss{position:absolute;inset:0;background:linear-gradient(90deg,transparent calc(var(--bl-shine-x) - 10%),rgba(255,237,205,.07) calc(var(--bl-shine-x) - 4%),rgba(255,245,227,.3) var(--bl-shine-x),rgba(241,213,166,.08) calc(var(--bl-shine-x) + 2%),transparent calc(var(--bl-shine-x) + 8%));-webkit-mask-image:linear-gradient(#000 0%,#000 34%,#0007 44%,#0000 58%);mask-image:linear-gradient(#000 0%,#000 34%,#0007 44%,#0000 58%);mix-blend-mode:screen}
.bl-shoulder{position:absolute;inset:0;background:linear-gradient(90deg,transparent calc(var(--bl-shine-x) - 1%),rgba(255,249,235,.33) var(--bl-shine-x),transparent calc(var(--bl-shine-x) + 1%));-webkit-mask-image:linear-gradient(#0000 4%,#000 12%,#000 21%,#0000 44%);mask-image:linear-gradient(#0000 4%,#000 12%,#000 21%,#0000 44%)}
@media(max-width:600px){
 .bl-backlight{width:120vw;height:100%;top:49%}
 .bl-beam{width:82vw;left:calc(var(--bl-x) - 41vw + 10vh);filter:blur(11px)}
 .bl-beam-fine{width:30vw;left:calc(var(--bl-x) - 15vw + 10vh);filter:blur(5px);opacity:.46}
 .bl-floor{width:89vw;height:17%}
 .bl-contact{width:38vw;height:3.8%}
}
@media(prefers-reduced-motion:reduce){.bl-beam{transform:rotate(16deg)}}

/* 首から肩、ラベルへ。幅のある光の溜まりを動かし、走査線にしない。 */
.has-bottle-light{--bl-sweep-x:48%;--bl-sweep-y:72%;--bl-sweep-gain:.42;--bl-neck-light:.66}
.bl-reveal-pass{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 64% 26% at var(--bl-sweep-x) var(--bl-sweep-y),rgba(255,239,201,.38) 0%,rgba(248,220,169,.19) 31%,rgba(223,183,119,.055) 57%,transparent 80%);opacity:var(--bl-sweep-gain);mix-blend-mode:screen}
.bl-gloss,.bl-shoulder{opacity:var(--bl-neck-light)}
@media(prefers-reduced-motion:reduce){.bl-reveal-pass{background:radial-gradient(ellipse 64% 26% at 48% 72%,rgba(255,239,201,.16),rgba(248,220,169,.07) 38%,transparent 80%);opacity:1}}

