/* intro-swan-v47 · Steam to Snow first screen: "Golden mist" (swans in warm steam over an icy lake), filmed from the site's own photo */
.st-swan{position:absolute;inset:0;z-index:1;overflow:hidden;background:#0d1420;transition:opacity .35s linear;contain:strict}
.st-swan[data-off]{visibility:hidden}
.sw-hero{position:absolute;inset:0;overflow:hidden}
.sw-hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;background:#0d1420;transform-origin:50% 70%;will-change:transform;filter:saturate(1.08) contrast(1.06);animation:swKb 20s ease-in-out infinite alternate}
@keyframes swKb{from{transform:scale(1.01)}to{transform:scale(1.08) translate3d(-1.2%,-.6%,0)}}
.sw-hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(255,140,60,.55) 0,rgba(255,150,70,.25) 30%,rgba(255,170,90,0) 52%,rgba(90,160,255,0) 62%,rgba(60,130,230,.45) 100%);mix-blend-mode:soft-light}
.sw-hero::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(28,14,8,.86) 0,rgba(28,14,8,.66) 26%,rgba(28,14,8,.18) 44%,rgba(0,0,0,0) 52%,rgba(0,0,0,0) 68%,rgba(5,16,34,.55) 82%,rgba(4,12,26,.92) 100%)}
.sw-glow{position:absolute;left:-10%;right:-10%;top:46%;height:120px;z-index:3;background:radial-gradient(60% 50% at 50% 50%,rgba(255,200,140,.35),transparent 70%);filter:blur(6px);pointer-events:none;animation:swGlow 6s ease-in-out infinite alternate}
@keyframes swGlow{from{opacity:.75}to{opacity:1}}
.sw-fx{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}
.sw-grain{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:.12;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
body.sw-on #fx{opacity:0;transition:opacity .4s}
/* first caption = title over the film */
.cap[data-c="0"]{top:calc(var(--safet) + 76px);bottom:0;display:block}
.cap[data-c="0"] .kick{font:500 13px Kanit,sans-serif;padding:4px 12px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.cap[data-c="0"] h1{margin:14px 0 10px;font:700 58px/.98 Kanit,sans-serif;letter-spacing:-1.5px}
.cap[data-c="0"] h1 span{display:block;background:linear-gradient(90deg,#ff8a4a,#ffd3a6);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 18px rgba(255,120,50,.35))}
.cap[data-c="0"] h1 span+span{background:linear-gradient(90deg,#f2f9ff,#8fcfff);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 4px 18px rgba(124,196,255,.35))}
.cap[data-c="0"] .sw-sub{margin:0;font:600 18px Kanit,sans-serif;color:#fff}
.cap[data-c="0"] .sw-meta{margin:6px 0 0;font-size:15px;line-height:1.6;color:rgba(255,248,240,.86)}
.cap[data-c="0"] .sw-sub,.cap[data-c="0"] .sw-meta{text-shadow:0 1px 12px rgba(0,0,0,.5),0 0 2px rgba(18,10,7,.35)}
.cap[data-c="0"] .sw-chips{display:flex;gap:6px;align-items:center;margin-top:14px;font:600 11px Kanit,sans-serif;letter-spacing:.16em}
.sw-chips i{font-style:normal;color:#fff;opacity:.7}
.sw-chip{padding:5px 10px;border-radius:99px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.sw-chip.k{background:rgba(170,62,18,.72);border:1px solid rgba(255,190,140,.6);color:#fff1e4}
.sw-chip.h{background:rgba(20,70,150,.6);border:1px solid rgba(190,225,255,.5);color:#e3f2ff}
.cap[data-c="0"] .cue{position:absolute;left:0;bottom:calc(var(--safeb) + 30px);margin:0!important;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.cap[data-c="0"] .sw-route{position:absolute;right:0;bottom:calc(var(--safeb) + 32px);font:600 11px Kanit,sans-serif;letter-spacing:.2em;color:rgba(215,238,255,.82);text-align:right;line-height:1.8}
.story.sw-in .cap[data-c="0"]>*{animation:swRise 1s cubic-bezier(.2,.8,.2,1) both}
.story.sw-in .cap[data-c="0"]>h1{animation-delay:.15s}
.story.sw-in .cap[data-c="0"]>.sw-sub{animation-delay:.35s}
.story.sw-in .cap[data-c="0"]>.sw-meta{animation-delay:.45s}
.story.sw-in .cap[data-c="0"]>.sw-chips{animation-delay:.6s}
.story.sw-in .cap[data-c="0"]>.cue,.story.sw-in .cap[data-c="0"]>.sw-route{animation-delay:.8s}
.story.sw-in .cap[data-c="0"]>.cue{animation-name:swRise,bob;animation-duration:1s,1.8s;animation-delay:.8s,1.8s;animation-iteration-count:1,infinite;animation-timing-function:cubic-bezier(.2,.8,.2,1),ease-in-out}
@keyframes swRise{from{opacity:0;transform:translateY(18px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@media (prefers-reduced-motion:reduce){.sw-hero video,.sw-glow,.story.sw-in .cap[data-c="0"]>*{animation:none!important}.sw-fx{display:none}}
body.hx-rm .sw-hero video,body.hx-rm .sw-glow,body.hx-rm .story.sw-in .cap[data-c="0"]>*{animation:none!important}body.hx-rm .sw-fx{display:none}
