/* Weekly Styles · app-feel polish layer (ws-polish.css) */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .28s; animation-timing-function: cubic-bezier(.22,1,.36,1); }
html { -webkit-tap-highlight-color: transparent; text-size-adjust: 100%; }
body { animation: wsPageIn .45s cubic-bezier(.22,1,.36,1) both; }
@keyframes wsPageIn { from { opacity: 0; } to { opacity: 1; } }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
::selection { background: var(--ink, #0A0A0A); color: var(--paper, #FAFAF7); }
:focus-visible { outline: 2px solid var(--ink, #0A0A0A); outline-offset: 3px; border-radius: 6px; }
.hero :focus-visible, .drop-banner :focus-visible { outline-color: var(--paper, #FAFAF7); }

/* Topbar: lift shadow once scrolled, hide on scroll down (mobile) */
.topbar { transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .25s ease, background .25s ease; will-change: transform; }
.ws-scrolled .topbar { box-shadow: 0 6px 24px rgba(10,10,10,.06); }
@media (max-width: 760px) { .ws-hide-bar .topbar { transform: translateY(-105%); } }

/* Press feedback — feels like native taps */
a, button, .path-card, .brand-tile, .cta-pill { -webkit-touch-callout: none; }
.btn-primary, .btn-ghost, .cta-pill, .founder-cta, .icon-btn { transition: transform .18s cubic-bezier(.22,1,.36,1), background .18s, color .18s, box-shadow .18s; }
.btn-primary:active, .btn-ghost:active, .cta-pill:active, .founder-cta:active { transform: scale(.96); }
.path-card, .brand-tile { transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease; }
.path-card:active, .brand-tile:active { transform: scale(.985); }
@media (hover: hover) {
  .path-card:hover, .brand-tile:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -18px rgba(10,10,10,.35); }
}

/* Scroll reveal (only when JS is running) */
.ws-js [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); transition-delay: var(--d, 0ms); }
.ws-js [data-reveal].ws-in { opacity: 1; transform: none; }

/* Hero entrance */
.ws-js .hero-meta, .ws-js .hero-eyebrow, .ws-js .hero h1, .ws-js .lede, .ws-js .hero-ctas, .ws-js .hero-foot { animation: wsRise .8s cubic-bezier(.22,1,.36,1) both; }
.ws-js .hero-eyebrow { animation-delay: .08s; } .ws-js .hero h1 { animation-delay: .16s; }
.ws-js .lede { animation-delay: .3s; } .ws-js .hero-ctas { animation-delay: .4s; } .ws-js .hero-foot { animation-delay: .5s; }
@keyframes wsRise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* Menu sheet: smoother open/close + drag handle */
.menu-sheet { transition: opacity .25s ease; }
.menu-sheet.ws-closing { opacity: 0; }
.menu-sheet.ws-closing .menu-sheet-card { transform: translateY(100%); transition: transform .28s cubic-bezier(.4,0,1,1); }
.menu-sheet-card { touch-action: pan-x; will-change: transform; }
.ws-lock { overflow: hidden; }

/* Mobile sticky action bar */
.ws-dock { position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); z-index: 60; display: flex; gap: 8px; padding: 8px; border-radius: 999px; background: rgba(10,10,10,.88); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 14px 40px -12px rgba(0,0,0,.45); transform: translateY(140%); transition: transform .45s cubic-bezier(.22,1,.36,1); max-width: 460px; margin: 0 auto; }
.ws-dock.ws-show { transform: none; }
.ws-dock a { display: flex; align-items: center; justify-content: center; gap: 8px; border-radius: 999px; font: 700 13px/1 'Albert Sans', system-ui, sans-serif; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; transition: transform .18s cubic-bezier(.22,1,.36,1); }
.ws-dock a:active { transform: scale(.95); }
.ws-dock .ws-dock-main { flex: 1; background: var(--paper, #FAFAF7); color: var(--ink, #0A0A0A); padding: 15px 18px; }
.ws-dock .ws-dock-wa { width: 46px; flex: 0 0 46px; background: #25D366; color: #fff; }
.ws-dock svg { width: 18px; height: 18px; }
@media (min-width: 761px) { .ws-dock { display: none; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .ws-js [data-reveal] { opacity: 1; transform: none; }
  @view-transition { navigation: none; }
}