/* Hero story: the Arribeira example told in three scenes (OTAs → site → bookings) */
.story{position:relative}
.story__caps{display:grid;margin:0 0 1rem;min-height:4.6rem}
.story__cap{grid-area:1/1;opacity:0;transform:translateY(8px);transition:opacity .45s var(--ease),transform .6s var(--ease);visibility:hidden}
.story__cap.on{opacity:1;transform:none;visibility:visible}
.story__k{display:inline-flex;align-items:center;gap:.5rem;font:700 .9rem/1 var(--body);letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.story__k b{display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--accent);color:var(--ink);font:700 .9rem/1 var(--display)}
.story__t{margin-top:.45rem;font:700 clamp(1.3rem,1rem + 1.1vw,1.75rem)/1.12 var(--display);letter-spacing:-.03em;text-wrap:balance}
.story .stage{aspect-ratio:560/440}
.story .stage__canvas{height:440px}
.js .story__caps{animation:fadeup .8s .2s var(--ease) both}

/* Shared pieces */
.sc{position:absolute;inset:0;pointer-events:none}
.sc>*{transition:opacity .55s var(--ease),transform .8s var(--ease),filter .55s var(--ease)}
.hc{position:absolute;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 1px 0 var(--line),0 26px 50px -28px #20202070;color:var(--ink);font-family:var(--body)}
.no-trans,.no-trans *{transition:none!important}

/* Scene 1: OTA listings */
.ota{left:28px;top:94px;width:262px}
.ota__ph{height:138px;background:#0c3440 center 45%/cover}
.ota__bd{padding:12px 14px 14px}
.ota h4{margin:0;font:700 18px/1.15 var(--display);letter-spacing:-.02em}
.ota__mt{display:flex;justify-content:space-between;margin-top:6px;font-size:14px;color:var(--muted)}
.ota__mt b{color:var(--ink);font-weight:700}
.ota__st{color:#b8860b;letter-spacing:.04em}
.ota__chs{display:flex;gap:8px;margin-top:12px}
.ota__chs span{display:flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;background:var(--ink);color:#fff;font:700 13px/1 var(--body)}
.ota__chs i{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.chk{left:316px;top:150px;z-index:2;width:214px;padding:16px 16px 10px}
.chk p{font:700 15px/1.2 var(--display);letter-spacing:-.02em;margin-bottom:10px}
.chk ul{list-style:none;margin:0;padding:0}
.chk li{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);font:600 15px/1.2 var(--body);color:var(--muted);transition:color .3s}
.chk li i{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--stone);flex:none;position:relative;transition:background .3s,border-color .3s}
.chk li.on{color:var(--ink)}
.chk li.on i{background:var(--ink);border-color:var(--ink)}
.chk li.on i::after{content:"";position:absolute;left:7px;top:3.5px;width:5px;height:10px;border:solid var(--accent);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.sc1:not(.on)>*{opacity:0;transform:translateY(24px)}
.sc1.on .chk{transition-delay:.3s}
.sc1.out>*{opacity:0;transform:translateX(-40px) scale(.96);transition-delay:0s}

/* Scene 2: the example website, desktop + phone */
.brw{left:18px;top:30px;width:430px;height:300px;border-radius:14px;background:#fff}
.brw__bar{height:30px;display:flex;align-items:center;gap:6px;padding:0 12px;border-bottom:1px solid var(--line)}
.brw__bar i{width:9px;height:9px;border-radius:50%;background:var(--stone)}
.brw__bar span{margin-left:10px;font:600 12px/1 var(--body);color:var(--muted);background:var(--ground-2);padding:4px 12px;border-radius:999px}
.brw img{width:100%;height:calc(100% - 30px);object-fit:cover;object-position:top left}
.hs-tag{position:absolute;left:34px;top:350px;display:flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:999px;background:var(--ink);color:#fff;font:600 15px/1 var(--body)}
.hs-tag img{width:24px;height:24px;border-radius:6px;background:#fff}
.sc2:not(.on) .brw{opacity:0;transform:translateY(30px) scale(.97)}
.sc2:not(.on) .hs-tag{opacity:0;transform:translateY(12px)}
.sc2.on .hs-tag{transition-delay:.5s}
.sc2.dim .brw{opacity:.35;transform:translateX(-26px) scale(.94);filter:blur(1.5px)}
.sc2.dim .hs-tag{opacity:0}

/* The phone travels from scene 2 into scene 3 */
.hs-phone{position:absolute;left:372px;top:104px;width:156px;height:316px;border-radius:24px;background:#fff;overflow:hidden;box-shadow:0 0 0 5px #202020,0 30px 60px -26px #202020aa;z-index:3;transform-origin:0 0;transition:opacity .55s var(--ease),transform .9s var(--ease)}
.hs-phone img{position:absolute;left:0;top:0;width:100%;height:auto;transition:opacity .4s,transform 3.2s cubic-bezier(.45,0,.2,1)}
.hs-phone .ph-book{opacity:0}
.hs-phone:not(.on){opacity:0;transform:translateY(40px)}
.hs-phone.scroll .ph-home{transform:translateY(-54%)}
.hs-phone.book{transform:translate(-322px,-82px) scale(1.24)}
.hs-phone.book .ph-home{opacity:0}
.hs-phone.book .ph-book{opacity:1}
.tap{position:absolute;left:80px;top:208px;width:67px;height:30px;border-radius:9px;box-shadow:0 0 0 3px var(--accent);opacity:0;transform:scale(.9);transition:opacity .25s,transform .35s var(--ease)}
.hs-phone.tapped .tap{opacity:1;transform:none}

/* Scene 3: bookings land in the operator's system */
.sys{left:262px;top:44px;width:276px;padding:14px 14px 6px}
.sys__h{display:flex;align-items:center;gap:8px;font:700 15px/1.2 var(--display);letter-spacing:-.02em;padding-bottom:10px}
.sys__h i{width:28px;height:28px;border-radius:8px;background:var(--ground-2);flex:none;position:relative}
.sys__h i::before{content:"";position:absolute;left:7px;right:7px;top:9px;bottom:7px;border:2px solid var(--ink);border-top-width:4px;border-radius:2px}
.hs-bk{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:10px 4px;border-top:1px solid var(--line);font-size:14px;line-height:1.25;transition:opacity .5s var(--ease),transform .7s var(--ease),background .4s}
.hs-bk small{grid-column:1;grid-row:1/3;align-self:center;font:700 12px/1 var(--body);padding:6px 8px;border-radius:999px;border:1.5px solid var(--line);white-space:nowrap}
.hs-bk b{font-weight:700}
.hs-bk span{color:var(--muted)}
.hs-bk--new{background:color-mix(in srgb,var(--accent) 22%,transparent);border-radius:10px;border-top-color:transparent;margin:0 -4px;padding-inline:8px}
.hs-bk--new small{background:var(--accent);border-color:var(--ink)}
.toast{left:262px;top:322px;width:276px;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:999px;background:var(--accent);box-shadow:0 22px 40px -22px #20202080}
.toast .ok{width:38px;height:38px;border-radius:50%;background:var(--ink);flex:none;position:relative}
.toast .ok::after{content:"";position:absolute;left:14px;top:9px;width:8px;height:15px;border:solid var(--accent);border-width:0 3px 3px 0;transform:rotate(45deg)}
.toast b{display:block;font:700 16px/1.15 var(--display);letter-spacing:-.02em}
.toast span{display:block;font-size:14px;line-height:1.2}
.sc3:not(.on)>*{opacity:0;transform:translateX(30px)}
.sc3.on .sys{transition-delay:.35s}
.sc3:not(.new) .hs-bk--new{opacity:0;transform:translateY(-12px);height:0;padding-block:0;overflow:hidden}
.sc3:not(.new) .toast{opacity:0;transform:translateY(16px) scale(.96)}
.cur2{position:absolute;left:0;top:0;z-index:5;width:28px;height:32px;opacity:0;pointer-events:none;filter:drop-shadow(0 3px 4px #0004);transition:opacity .3s,transform 1.1s cubic-bezier(.3,.7,.2,1)}
.cur2 svg{width:100%;height:100%;transform-origin:4px 3px;transition:transform .12s}
.cur2.on{opacity:1}
.cur2.press svg{transform:scale(.84)}

/* Progress steps under the stage, also scene buttons */
.story__steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:1rem 0 0;padding:0;list-style:none}
.story__steps button{all:unset;box-sizing:border-box;display:block;width:100%;cursor:pointer;position:relative;padding-top:.85rem;min-height:var(--tap);font:600 clamp(.8rem,1.5vw,.98rem)/1.25 var(--body);text-align:center;color:var(--muted);text-wrap:balance}
.story__steps button::before,.story__steps button::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;border-radius:4px;background:var(--stone)}
.story__steps button::after{background:var(--ink);transform:scaleX(var(--p,0));transform-origin:left}
.story__steps button[aria-current="step"]{color:var(--ink)}
.story__steps button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
