/* ===== Good Drop motion + buy panel (motion rules: ease-out for enter/exit, transform/opacity only, reduced-motion off) ===== */
:root{--e-out:cubic-bezier(0.23,1,0.32,1);--e-io:cubic-bezier(0.645,0.045,0.355,1)}

/* hero: staggered entrance on first load (marketing page, so a little longer) */
@keyframes gdUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes gdPop{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
.js .hero .wrap>div:first-child>*{animation:gdUp 620ms var(--e-out) both}
.js .hero .wrap>div:first-child>*:nth-child(2){animation-delay:70ms}
.js .hero .wrap>div:first-child>*:nth-child(3){animation-delay:140ms}
.js .hero .wrap>div:first-child>*:nth-child(4){animation-delay:210ms}
.js .hero .wrap>div:first-child>*:nth-child(5){animation-delay:280ms}
.js .hero .wrap>div:last-child>img{animation:gdPop 800ms var(--e-out) 180ms both}
@media (prefers-reduced-motion:reduce){.js .hero .wrap>div:first-child>*,.js .hero .wrap>div:last-child>img{animation:none}}

/* scroll reveal */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity 560ms var(--e-out),transform 560ms var(--e-out);transition-delay:calc(var(--i,0) * 70ms)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}}

/* buttons: instant press feedback */
.btn{transition:transform 140ms var(--e-out),box-shadow 160ms ease,background-color 150ms ease}
.btn:active{transform:scale(.97)}
@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn:active{transform:none}}

/* price cards: gentle lift, only on devices with a real mouse */
.tier{transition:transform 220ms var(--e-out),box-shadow 220ms var(--e-out)}
@media (hover:hover) and (pointer:fine){.tier:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(19,35,61,.16)}}
.tier .btn{cursor:pointer}
.tier .see{display:block;margin-top:10px;text-align:center;font-family:var(--label);font-size:14px;font-weight:600;background:none;border:0;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;width:100%;padding:8px}
@media (prefers-reduced-motion:reduce){.tier{transition:none}.tier:hover{transform:none}}

/* page previews: tiny zoom on hover (desktop) */
.strip figure,.extras figure,.paths figure{overflow:visible}
.strip img,.extras img,.paths img{transition:transform 260ms var(--e-out)}
@media (hover:hover) and (pointer:fine){.strip figure:hover img,.extras figure:hover img{transform:translateY(-4px) scale(1.015)}}
@media (prefers-reduced-motion:reduce){.strip img,.extras img,.paths img{transition:none}}

/* sticky mobile bar slides in after the hero */
.sticky{transform:translateY(120%);transition:transform 300ms var(--e-out)}
.sticky.show{transform:none}
@media (prefers-reduced-motion:reduce){.sticky{transition:none}}

/* ===== buy panel ===== */
html.gd-lock{overflow:hidden}
.gd-bg{position:fixed;inset:0;background:rgba(10,18,32,.56);opacity:0;pointer-events:none;transition:opacity 200ms var(--e-out);z-index:40}
.gd-bg.open{opacity:1;pointer-events:auto;transition-duration:280ms}
.gd-panel{position:fixed;z-index:41;background:var(--paper);color:var(--ink);display:flex;flex-direction:column;
  top:0;right:0;bottom:0;width:min(520px,100vw);box-shadow:-20px 0 60px rgba(0,0,0,.25);
  transform:translateX(104%);transition:transform 220ms var(--e-out);will-change:transform;visibility:hidden}
.gd-panel.open{transform:none;transition-duration:320ms;visibility:visible}
.gd-panel:not(.open){transition:transform 220ms var(--e-out),visibility 0s linear 220ms}
.gd-scroll{overflow-y:auto;overscroll-behavior:contain;padding:28px 28px 34px;flex:1}
.gd-grip{display:none}
.gd-x{position:absolute;top:12px;right:14px;width:44px;height:44px;border-radius:50%;border:0;background:var(--sand);color:var(--navy);font-size:28px;line-height:1;cursor:pointer;z-index:2;transition:transform 140ms var(--e-out)}
.gd-x:active{transform:scale(.92)}
.gd-ov{font-family:var(--label);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}
.gd-title{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:38px;line-height:.95;color:var(--navy);margin:6px 50px 0 0}
.gd-sub{font-family:var(--label);font-size:16px;color:var(--stone);margin-top:6px}
.gd-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}
.gd-tier{border:2px solid var(--rule);background:#fff;border-radius:10px;padding:10px 6px;cursor:pointer;font-family:var(--label);color:var(--navy);transition:border-color 150ms ease,background-color 150ms ease,transform 120ms var(--e-out)}
.gd-tier b{display:block;font-family:var(--display);font-size:18px;text-transform:uppercase;line-height:1}
.gd-tier span{font-size:14px;color:var(--stone)}
.gd-tier.on{border-color:var(--navy);background:var(--navy);color:var(--paper)}
.gd-tier.on span{color:var(--ball)}
.gd-tier:active{transform:scale(.97)}
.gd-media{margin-top:16px;border-radius:10px;overflow:hidden;background:var(--navy)}
.gd-media img{width:100%;height:auto;display:block}
.gd-h{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:20px;color:var(--navy);margin:20px 0 8px}
.gd-incl,.gd-files{list-style:none;margin:0;padding:0;font-family:var(--label);font-size:15.5px;line-height:1.4}
.gd-incl li{position:relative;padding:7px 0 7px 28px;border-bottom:1px solid var(--rule)}
.gd-incl li::before{content:"✓";position:absolute;left:4px;top:6px;color:var(--ball-d);font-weight:800}
.gd-files{display:flex;flex-wrap:wrap;gap:6px}
.gd-files li{background:var(--sand);border-radius:6px;padding:6px 10px;font-size:13.5px}
@keyframes gdSwap{from{opacity:.25;transform:translateY(6px)}to{opacity:1;transform:none}}
.gd-media.swap,.gd-incl.swap,.gd-files.swap{animation:gdSwap 220ms var(--e-out)}
.gd-add{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-top:22px;padding:14px;border:2px dashed var(--navy-2);border-radius:12px;background:#fff;cursor:pointer;transition:background-color 160ms ease,border-color 160ms ease}
.gd-add input{position:absolute;opacity:0;width:1px;height:1px}
.gd-box{width:26px;height:26px;border-radius:7px;border:2px solid var(--navy);display:grid;place-items:center;background:#fff;transition:background-color 150ms ease}
.gd-box::after{content:"";width:12px;height:7px;border-left:3px solid var(--navy);border-bottom:3px solid var(--navy);transform:translateY(-2px) rotate(-45deg) scale(.6);opacity:0;transition:transform 160ms var(--e-out),opacity 120ms ease}
.gd-add.on{background:#F6FBD9;border-style:solid;border-color:var(--ball-d)}
.gd-add.on .gd-box{background:var(--ball)}
.gd-add.on .gd-box::after{opacity:1;transform:translateY(-2px) rotate(-45deg) scale(1)}
.gd-add input:focus-visible+.gd-box{outline:3px solid var(--ball);outline-offset:2px}
.gd-addtxt b{display:block;font-family:var(--label);font-size:15.5px;color:var(--navy)}
.gd-addtxt small{display:block;font-family:var(--label);font-size:13px;color:var(--stone);margin-top:2px;line-height:1.35}
.gd-addprice{font-family:var(--label);font-size:13px;color:var(--stone)}
.gd-form{margin-top:18px}
.gd-fields{display:grid;gap:10px}
.gd-fields label{font-family:var(--label);font-weight:700;font-size:14px;color:var(--navy)}
.gd-fields label span{font-weight:500;color:var(--stone)}
.gd-fields input{display:block;width:100%;margin-top:5px;font:16px var(--label);padding:13px 14px;border:2px solid var(--rule);border-radius:9px;background:#fff;color:var(--ink);transition:border-color 150ms ease}
.gd-fields input:focus{outline:none;border-color:var(--navy)}
.gd-sum{margin-top:16px;font-family:var(--label);font-size:15px}
.gd-sum div{display:flex;justify-content:space-between;padding:4px 0}
@keyframes gdIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.gd-sumadd{animation:gdIn 200ms var(--e-out)}
.gd-err{min-height:1.2em;margin:8px 0 4px;font-family:var(--label);font-size:14px;color:#B8352B}
.gd-pay{width:100%;justify-content:space-between;font-size:21px;padding:17px 20px}
.gd-pay.busy{opacity:.75;pointer-events:none}
.gd-pay.busy .gd-paytxt::after{content:"…"}
@keyframes gdBump{0%{transform:translateY(-6px);opacity:.3}100%{transform:none;opacity:1}}
.gd-total{display:inline-block}
.gd-total.bump{animation:gdBump 220ms var(--e-out)}
.gd-fine{font-family:var(--label);font-size:12.5px;color:var(--stone);text-align:center;margin-top:10px;line-height:1.45}

/* phones: bottom sheet */
@media (max-width:640px){
  .gd-panel{top:auto;left:0;right:0;bottom:0;width:100%;max-height:92vh;max-height:92dvh;border-radius:18px 18px 0 0;transform:translateY(104%);box-shadow:0 -20px 50px rgba(0,0,0,.25)}
  .gd-panel.open{transform:none}
  .gd-grip{display:block;width:44px;height:5px;border-radius:3px;background:var(--rule);margin:10px auto 0}
  .gd-scroll{padding:16px 18px calc(24px + env(safe-area-inset-bottom))}
  .gd-x{top:10px;right:10px}
  .gd-title{font-size:32px}
  .gd-tier b{font-size:16px}
}
@media (prefers-reduced-motion:reduce){
  .gd-bg,.gd-panel,.gd-panel:not(.open),.gd-tier,.gd-add,.gd-box,.gd-box::after,.gd-fields input,.gd-x{transition:none}
  .gd-media.swap,.gd-incl.swap,.gd-files.swap,.gd-sumadd,.gd-total.bump{animation:none}
}

/* order page */
.order-box{background:#fff;border:2px solid var(--rule);border-radius:14px;padding:26px;margin-top:26px}
.order-files{display:grid;gap:10px;margin-top:16px}
.order-files a{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;border-radius:10px;background:var(--sand);text-decoration:none;font-family:var(--label);font-weight:600;transition:background-color 150ms ease,transform 120ms var(--e-out)}
.order-files a:active{transform:scale(.98)}
.order-files a::after{content:"Download ↓";font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:16px;color:var(--navy);white-space:nowrap}
@media (hover:hover) and (pointer:fine){.order-files a:hover{background:var(--ball)}}
.spin{width:38px;height:38px;border-radius:50%;border:4px solid var(--rule);border-top-color:var(--navy);animation:gdSpin 800ms linear infinite;margin:10px 0}
@keyframes gdSpin{to{transform:rotate(360deg)}}
.offer-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:18px}
.offer-card{background:var(--navy);color:var(--paper);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:10px}
.offer-card img{border-radius:8px;max-height:240px;width:100%;object-fit:contain;background:#0d1a2e}
.offer-card h3{color:var(--ball)}
.offer-card p{font-family:var(--label);font-size:15px;color:var(--mist)}
.offer-card .btn{margin-top:auto}
@media (prefers-reduced-motion:reduce){.order-files a{transition:none}.spin{animation-duration:2.4s}}
.fbl{display:inline-flex;align-items:center;gap:6px}
