/* ═══════════════════════════════════════════════════════════════
   GEETAI STUDIO — CORE V2.5
   Neutral base, per-page personality. Every page inherits this
   shell and overrides its accent via [data-page] attribute.
   ═══════════════════════════════════════════════════════════════ */

:root {
  /* ── Brand (single sitewide palette — do not introduce other colors) ── */
  --brand-teal: #126B78;
  --brand-teal-dark: #0d525c;
  --brand-teal-light: #1a8898;
  --brand-pearl: #F2EEE7;

  /* ── Surface ── */
  --paper: #faf9f6;
  --paper-2: #ffffff;
  --paper-3: var(--brand-pearl);
  --ink-bg: #0a0a0a;

  /* ── Ink ── */
  --ink: #0e0e0d;
  --ink-dim: rgba(14,14,13,0.76);
  --ink-muted: rgba(14,14,13,0.36);
  --ink-faint: rgba(14,14,13,0.14);
  --on-ink: #faf9f6;
  --on-ink-dim: rgba(250,249,246,0.62);
  --on-ink-faint: rgba(250,249,246,0.14);

  /* ── Accent — unified Sapphire Teal sitewide (no per-page variation) ── */
  --accent: var(--brand-teal);
  --accent-bright: var(--brand-teal-light);
  --accent-tint: #dcebed;
  --accent-gradient: linear-gradient(120deg, #1a8898 0%, #126B78 55%, #0d525c 100%);

  /* ── Glass depth system ── */
  --glass-1-bg: rgba(255,255,255,0.35);
  --glass-1-blur: 8px;
  --glass-1-border: rgba(255,255,255,0.4);
  --glass-2-bg: rgba(255,255,255,0.5);
  --glass-2-blur: 16px;
  --glass-2-border: rgba(255,255,255,0.55);
  --glass-3-bg: rgba(255,255,255,0.65);
  --glass-3-blur: 24px;
  --glass-3-border: rgba(255,255,255,0.7);
  --glass-teal-glow: 0 0 0 3px rgba(18,107,120,0.18);

  /* ── Lines / structure ── */
  --hair: rgba(14,14,13,0.09);
  --hair-strong: rgba(14,14,13,0.16);
  --hair-on-ink: rgba(250,249,246,0.14);

  /* ── Motion / shape ── */
  --ease: cubic-bezier(.16,1,.3,1);
  --ease-out: cubic-bezier(0,0,.2,1);
  --nav-h: 64px;
  --r-sm: 10px;
  --r-md: 18px;
  --r-lg: 28px;
  --r-xl: 36px;

  /* ── Type scale (fluid) — no eyebrow ── */
  --fs-h1: clamp(3.2rem, 7.5vw, 7rem);
  --fs-h2: clamp(2.4rem, 4.5vw, 4rem);
  --fs-h3: clamp(1.5rem, 2.4vw, 2.2rem);
  --fs-lead: clamp(1.1rem, 1.6vw, 1.35rem);
  --fs-body: 1.05rem;
  --fs-small: 0.85rem;
  --fs-meta: 0.75rem;

  /* ── Letter spacing ── */
  --ls-tight: -0.03em;
  --ls-normal: -0.015em;
  --ls-wide: 0.02em;

  /* ── Section rhythm ── */
  --sp-1: 8px; --sp-2: 16px; --sp-3: 24px; --sp-4: 40px;
  --sp-5: 64px; --sp-6: 120px; --sp-7: 180px;
  --container: 1180px;

  /* ── Signature aliases (inherit per-page accent) ── */
  --signature: var(--accent-bright);--signature-bright:var(--accent);--signature-gradient:var(--accent-gradient);
}

/* ── Per-page accents removed — brand requires ONE consistent accent (Sapphire Teal) sitewide ── */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-padding-top:var(--nav-h);background:var(--paper)}
body{
  font-family:'Inter',sans-serif;font-weight:400;
  background:var(--paper);color:var(--ink);
  overflow-x:clip;-webkit-font-smoothing:antialiased;
  line-height:1.6;
}
body::before{
  content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 85% 45% at 50% -10%,rgba(18,107,120,0.07) 0%,transparent 100%),
             radial-gradient(ellipse 60% 40% at 85% 90%,rgba(18,107,120,0.05) 0%,transparent 100%),
             radial-gradient(ellipse 50% 35% at 10% 60%,rgba(14,14,13,0.03) 0%,transparent 100%);
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--accent-tint);color:var(--ink)}
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:var(--paper)}
::-webkit-scrollbar-thumb{background:rgba(14,14,13,0.18);border-radius:3px}

/* ─── TYPE UTILITIES (no eyebrow) ─── */
.gv-h1{font-family:'Sora',sans-serif;font-weight:800;font-size:var(--fs-h1);letter-spacing:var(--ls-tight);line-height:1.02;color:var(--ink)}
.gv-h2{font-family:'Sora',sans-serif;font-weight:800;font-size:var(--fs-h2);letter-spacing:var(--ls-tight);line-height:1.08;color:var(--ink)}
.gv-h3{font-family:'Sora',sans-serif;font-weight:600;font-size:var(--fs-h3);letter-spacing:var(--ls-normal);line-height:1.22;color:var(--ink)}
.gv-lead{font-size:var(--fs-lead);color:var(--ink-dim);line-height:1.7;max-width:58ch;font-weight:450}
.gv-body{font-size:var(--fs-body);color:var(--ink-dim);line-height:1.75;max-width:68ch}
.gv-small{font-size:var(--fs-small);color:var(--ink-muted)}
.gv-meta{font-size:var(--fs-meta);color:var(--ink-muted);letter-spacing:0.3px}
.gv-accent-text{background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--accent)}
.gv-glow{background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--accent)}

/* ─── LAYOUT ─── */
.gv-container{max-width:var(--container);margin:0 auto;padding:0 clamp(20px,5vw,48px)}
.gv-section{padding:var(--sp-6) 0;position:relative}
.gv-section--tight{padding:var(--sp-5) 0}
.gv-section--ink{background:var(--ink-bg);color:var(--on-ink)}
.gv-section--ink .gv-h1,.gv-section--ink .gv-h2,.gv-section--ink .gv-h3{color:var(--on-ink)}
.gv-section--ink .gv-lead,.gv-section--ink .gv-body{color:var(--on-ink-dim)}
.gv-section--alt{background:var(--paper-3)}
.gv-grid{display:grid;gap:var(--sp-3)}
.gv-grid-2{grid-template-columns:repeat(2,1fr)}
.gv-grid-3{grid-template-columns:repeat(3,1fr)}
.gv-grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.gv-grid-3,.gv-grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.gv-grid-2,.gv-grid-3,.gv-grid-4{grid-template-columns:1fr}}

/* ─── CENTER HELPERS ─── */
.gv-center{text-align:center}
.gv-center .gv-lead,.gv-center .gv-body{margin-left:auto;margin-right:auto}
.gv-hero-center{text-align:center;max-width:800px;margin:0 auto}
.gv-hero-center .gv-lead{margin-left:auto;margin-right:auto}

/* ─── CARDS — glass ─── */
.gv-card{
  background:var(--glass-1-bg);backdrop-filter:blur(var(--glass-1-blur)) saturate(1.3);
  -webkit-backdrop-filter:blur(var(--glass-1-blur)) saturate(1.3);
  border:1px solid var(--glass-1-border);border-radius:var(--r-md);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.5),0 8px 28px -14px rgba(18,107,120,0.14);
  padding:var(--sp-4);transition:transform .5s var(--ease),border-color .4s var(--ease),box-shadow .5s var(--ease);
}
.gv-card:hover{transform:translateY(-4px);border-color:rgba(18,107,120,0.3);box-shadow:inset 0 1px 0 rgba(255,255,255,0.6),0 20px 48px -16px rgba(18,107,120,0.22)}
.gv-section--ink .gv-card{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.12)}

/* ─── GLASS CARD — Sign In page quality ─── */
.gv-glass{
  background:rgba(255,255,255,0.07);backdrop-filter:blur(28px) saturate(1.5);
  -webkit-backdrop-filter:blur(28px) saturate(1.5);
  border:1px solid rgba(255,255,255,0.08);border-radius:var(--r-xl);
  box-shadow:0 4px 24px rgba(0,0,0,0.04),0 1px 0 rgba(255,255,255,0.1) inset;
}
.gv-section--ink .gv-glass{border-color:rgba(250,249,246,0.06);background:rgba(250,249,246,0.04)}

/* ─── BUTTONS ─── */
.gv-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 28px;border-radius:999px;font-family:'Inter',sans-serif;
  font-size:12px;font-weight:600;letter-spacing:0.8px;text-transform:uppercase;
  cursor:pointer;white-space:nowrap;border:none;transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .4s var(--ease),color .4s var(--ease);
}
.gv-btn svg{width:14px;height:14px}
.gv-btn-primary{background:var(--ink);color:var(--on-ink)}
.gv-btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 34px -12px rgba(14,14,13,0.35)}
.gv-btn-accent{background:var(--ink);color:var(--on-ink)}
.gv-btn-accent:hover{transform:translateY(-2px);box-shadow:0 16px 34px -12px rgba(14,14,13,0.35)}
.gv-btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--hair-strong)}
.gv-btn-ghost:hover{border-color:var(--ink);background:rgba(14,14,13,0.03)}
.gv-section--ink .gv-btn-ghost{color:var(--on-ink);border-color:var(--hair-on-ink)}
.gv-section--ink .gv-btn-ghost:hover{border-color:var(--on-ink);background:rgba(250,249,246,0.06)}
.gv-section--ink .gv-btn-primary{background:var(--on-ink);color:var(--ink-bg)}

/* ═══════════════════════════════════════════════════════════════
   SHARED FILTER TOOLBAR (used by Deals & AI Tools)
   One reusable component — only data changes between pages.
   ═══════════════════════════════════════════════════════════════ */
.gv-toolbar{
  position:relative;z-index:40;
  width:100vw;margin-left:calc(-50vw + 50%);
  background:rgba(255,255,255,0.55);backdrop-filter:blur(28px) saturate(1.6);-webkit-backdrop-filter:blur(28px) saturate(1.6);
  border-top:1px solid rgba(0,0,0,0.06);border-bottom:1px solid rgba(0,0,0,0.06);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.6),0 4px 20px rgba(0,0,0,0.05);
  transition:box-shadow .3s var(--ease);
}
.gv-toolbar.is-stuck{
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.6),0 8px 32px rgba(0,0,0,0.1);
}
.gv-toolbar .gv-container{padding:16px 0;display:flex;flex-direction:column;gap:0}

/* ─── Top Row: Search (centered) + Sort (far right) ─── */
.gv-tb-top{
  display:flex;align-items:center;justify-content:center;gap:16px;
  position:relative;padding:0 0 14px;
}
.gv-tb-top .gv-search-wrap{
  max-width:640px;width:100%;flex-shrink:1;
  background:rgba(255,255,255,0.35);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);
  border:1px solid rgba(0,0,0,0.08);padding:13px 20px;
}
.gv-tb-sort{
  position:absolute;right:0;top:50%;transform:translateY(-50%);
  display:flex;align-items:center;gap:8px;flex-shrink:0;
}
.gv-tb-sort-label{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap}
.gv-tb-sort-select{
  padding:11px 32px 11px 14px;border-radius:999px;
  background:rgba(255,255,255,0.35);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);
  border:1px solid rgba(0,0,0,0.08);
  font-family:'Inter',sans-serif;font-size:12px;font-weight:600;color:var(--ink);
  cursor:pointer;outline:none;transition:border-color .3s var(--ease),box-shadow .3s var(--ease);
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23787672' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m6 9 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat:no-repeat;background-position:right 12px center;background-size:14px;
}
.gv-tb-sort-select:hover{border-color:rgba(0,0,0,0.14)}
.gv-tb-sort-select:focus{border-color:var(--accent);box-shadow:var(--glass-teal-glow)}

/* ─── Toggle Arrow Button ─── */
.gv-toolbar-toggle-wrap{display:flex;justify-content:center;margin-bottom:0}
.gv-toolbar-toggle-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:50%;border:1px solid rgba(0,0,0,0.08);
  background:rgba(255,255,255,0.45);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  color:var(--ink-muted);cursor:pointer;overflow:hidden;
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.gv-toolbar-toggle-btn:hover{
  background:rgba(255,255,255,0.7);color:var(--ink);
  border-color:rgba(0,0,0,0.14);box-shadow:0 2px 12px rgba(0,0,0,0.06);
}
.gv-toolbar-toggle-btn span{
  display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;line-height:1;transition:transform .3s var(--ease);
}
.gv-toolbar.expanded .gv-toolbar-toggle-btn span{transform:rotate(180deg)}

/* ─── Expandable Filter Panel ─── */
.gv-toolbar-panel{
  overflow:hidden;max-height:0;opacity:0;
  display:flex;flex-direction:column;gap:12px;padding-top:0;
  transition:max-height .35s var(--ease),opacity .25s var(--ease),padding-top .35s var(--ease);
}
.gv-toolbar.expanded .gv-toolbar-panel{
  max-height:800px;opacity:1;padding-top:14px;
}
.gv-toolbar-panel .gv-filter-group:first-child{padding-top:14px;border-top:1px solid rgba(0,0,0,0.06)}

/* ─── Filter Groups & Chips ─── */
.gv-filter-group{display:flex;flex-wrap:wrap;gap:8px}
.gv-search-wrap{
  display:flex;align-items:center;gap:10px;
  background:var(--paper-2);border:1px solid var(--hair);
  border-radius:999px;padding:11px 18px;max-width:420px;width:100%;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.gv-search-wrap:focus-within{border-color:var(--accent);box-shadow:var(--glass-teal-glow)}
.gv-search-wrap svg{width:16px;height:16px;color:var(--ink-muted);flex-shrink:0}
.gv-search-wrap input{
  border:none;outline:none;background:transparent;font-family:'Inter',sans-serif;
  font-size:0.9rem;color:var(--ink);width:100%;
}
.gv-search-wrap input::placeholder{color:var(--ink-muted)}
.gv-chip{
  flex-shrink:0;display:inline-flex;align-items:center;gap:6px;
  padding:9px 16px;border-radius:999px;border:1px solid rgba(0,0,0,0.08);
  background:rgba(255,255,255,0.6);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  color:var(--ink-dim);font-family:'Inter',sans-serif;
  font-size:12px;font-weight:600;letter-spacing:0.2px;cursor:pointer;white-space:nowrap;
  box-shadow:0 2px 8px rgba(0,0,0,0.04);
  transition:all .25s var(--ease);
}
.gv-chip span{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--ink-muted);transition:color .25s var(--ease)}
.gv-chip:hover{border-color:rgba(0,0,0,0.14);color:var(--ink);background:rgba(255,255,255,0.8);transform:scale(1.02);box-shadow:0 4px 14px rgba(0,0,0,0.06)}
.gv-chip.active{
  background:#126B78;border-color:#126B78;
  color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 4px 18px rgba(18,107,120,0.25);
  backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);
}
.gv-chip.active span{color:rgba(255,255,255,0.8)}

@media(max-width:640px){
  .gv-toolbar{top:0}
  .gv-tb-top .gv-search-wrap{max-width:100%}
  .gv-toolbar .gv-container{gap:10px}
}

/* ═══════════════════════════════════════════════════════════════
   GLASS MORPHISM DESIGN SYSTEM
   Depth levels 1 (light) / 2 (medium) / 3 (strong). Sapphire Teal
   is the only glow/border-accent color anywhere in this system.
   ═══════════════════════════════════════════════════════════════ */
.glass-1,.glass-2,.glass-3{
  position:relative;border-radius:var(--r-md);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease),background .35s var(--ease);
  will-change:transform;
}
.glass-1{
  background:var(--glass-1-bg);backdrop-filter:blur(var(--glass-1-blur)) saturate(1.3);
  -webkit-backdrop-filter:blur(var(--glass-1-blur)) saturate(1.3);
  border:1px solid var(--glass-1-border);
  box-shadow:0 4px 20px -8px rgba(18,107,120,0.10);
}
.glass-2{
  background:var(--glass-2-bg);backdrop-filter:blur(var(--glass-2-blur)) saturate(1.4);
  -webkit-backdrop-filter:blur(var(--glass-2-blur)) saturate(1.4);
  border:1px solid var(--glass-2-border);
  box-shadow:0 8px 32px -10px rgba(18,107,120,0.14);
}
.glass-3{
  background:var(--glass-3-bg);backdrop-filter:blur(var(--glass-3-blur)) saturate(1.5);
  -webkit-backdrop-filter:blur(var(--glass-3-blur)) saturate(1.5);
  border:1px solid var(--glass-3-border);
  box-shadow:0 16px 48px -12px rgba(18,107,120,0.18);
}
.gv-section--ink .glass-1,.gv-section--ink .glass-2,.gv-section--ink .glass-3{
  background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.12);
}

/* ─── GLASS BUTTON ─── */
.glass-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 26px;border-radius:999px;font-family:'Inter',sans-serif;
  font-size:12px;font-weight:600;letter-spacing:0.6px;
  cursor:pointer;white-space:nowrap;color:var(--ink);
  background:var(--glass-1-bg);backdrop-filter:blur(var(--glass-1-blur)) saturate(1.3);
  -webkit-backdrop-filter:blur(var(--glass-1-blur)) saturate(1.3);
  border:1px solid var(--glass-1-border);
  box-shadow:0 4px 16px -6px rgba(18,107,120,0.14);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease);
}
.glass-btn:hover{
  transform:translateY(-2px);
  background:var(--glass-2-bg);backdrop-filter:blur(var(--glass-2-blur));
  border-color:rgba(18,107,120,0.35);
  box-shadow:0 10px 28px -8px rgba(18,107,120,0.28),var(--glass-teal-glow);
}
.glass-btn:active{transform:translateY(0) scale(0.97);transition-duration:.12s}
.glass-btn:focus-visible{outline:none;box-shadow:var(--glass-teal-glow)}
.glass-btn-primary{
  background:linear-gradient(135deg,rgba(18,107,120,0.92),rgba(13,82,92,0.95));
  color:#fff;border-color:rgba(255,255,255,0.25);
  box-shadow:0 8px 24px -8px rgba(18,107,120,0.45);
}
.glass-btn-primary:hover{
  background:linear-gradient(135deg,rgba(26,136,152,0.95),rgba(18,107,120,0.98));
  box-shadow:0 14px 34px -8px rgba(18,107,120,0.55),var(--glass-teal-glow);
}

/* ─── GLASS CARD ─── */
.glass-card{
  background:var(--glass-1-bg);backdrop-filter:blur(var(--glass-1-blur)) saturate(1.3);
  -webkit-backdrop-filter:blur(var(--glass-1-blur)) saturate(1.3);
  border:1px solid var(--glass-1-border);border-radius:var(--r-md);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.5),0 8px 28px -12px rgba(18,107,120,0.16);
  padding:var(--sp-4);color:var(--ink);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);
}
.glass-card:hover{
  transform:translateY(-4px);
  border-color:rgba(18,107,120,0.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.6),0 20px 48px -16px rgba(18,107,120,0.26);
}

/* ─── GLASS INPUT ─── */
.glass-input{
  width:100%;padding:13px 18px;border-radius:var(--r-sm);
  background:var(--glass-1-bg);backdrop-filter:blur(var(--glass-1-blur));
  -webkit-backdrop-filter:blur(var(--glass-1-blur));
  border:1px solid var(--glass-1-border);color:var(--ink);
  font-family:'Inter',sans-serif;font-size:14px;outline:none;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease);
}
.glass-input::placeholder{color:var(--ink-muted)}
.glass-input:focus{
  border-color:var(--brand-teal);background:var(--glass-2-bg);
  box-shadow:var(--glass-teal-glow);
}

/* ─── GLASS DROPDOWN / MENU ─── */
.glass-dropdown{
  background:var(--glass-3-bg);backdrop-filter:blur(var(--glass-3-blur)) saturate(1.4);
  -webkit-backdrop-filter:blur(var(--glass-3-blur)) saturate(1.4);
  border:1px solid var(--glass-3-border);border-radius:var(--r-md);
  box-shadow:0 20px 48px -12px rgba(18,107,120,0.22);
  overflow:hidden;
}
.glass-dropdown a,.glass-dropdown button{
  display:block;width:100%;text-align:left;padding:11px 18px;
  background:transparent;border:none;color:var(--ink);font-size:13px;cursor:pointer;
  transition:background .2s var(--ease),color .2s var(--ease);
}
.glass-dropdown a:hover,.glass-dropdown button:hover{background:rgba(18,107,120,0.08);color:var(--brand-teal)}

/* ─── REVEAL (IntersectionObserver-driven) ─── */
.gv-reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.gv-reveal.in{opacity:1;transform:translateY(0)}
.gv-reveal-left{opacity:0;transform:translateX(-30px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.gv-reveal-left.in{opacity:1;transform:translateX(0)}
.gv-reveal-right{opacity:0;transform:translateX(30px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.gv-reveal-right.in{opacity:1;transform:translateX(0)}
.gv-reveal-stagger .gv-reveal:nth-child(1){transition-delay:0s}
.gv-reveal-stagger .gv-reveal:nth-child(2){transition-delay:0.1s}
.gv-reveal-stagger .gv-reveal:nth-child(3){transition-delay:0.2s}
.gv-reveal-stagger .gv-reveal:nth-child(4){transition-delay:0.3s}
@media(prefers-reduced-motion:reduce){.gv-reveal,.gv-reveal-left,.gv-reveal-right{opacity:1;transform:none;transition:none}}

/* ─── PAGE ENTRANCE TRANSITIONS ─── */
[data-entrance="fade"]{animation:entranceFade .8s var(--ease) both}
[data-entrance="slide-up"]{animation:entranceSlideUp .8s var(--ease) both}
[data-entrance="scale-in"]{animation:entranceScale .7s var(--ease) both}
[data-entrance="reveal-right"]{animation:entranceRevealRight .9s var(--ease) both}
[data-entrance="reveal-image"]{animation:entranceRevealImage 1s var(--ease) both}
[data-entrance="mask"]{animation:entranceMask .9s var(--ease) both}
@keyframes entranceFade{from{opacity:0}to{opacity:1}}
@keyframes entranceSlideUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
@keyframes entranceScale{from{opacity:0;transform:scale(0.92)}to{opacity:1;transform:scale(1)}}
@keyframes entranceRevealRight{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes entranceRevealImage{from{clip-path:inset(0 100% 0 0);opacity:0}to{clip-path:inset(0 0 0 0);opacity:1}}
@keyframes entranceMask{from{clip-path:inset(0 0 100% 0);opacity:0}to{clip-path:inset(0 0 0 0);opacity:1}}

/* ─── CURSOR (desktop only) ─── */
@media(hover:hover)and(pointer:fine){
  #cursor-ring,#cursor-dot{position:fixed;pointer-events:none;z-index:99999;transform:translate(-50%,-50%);top:0;left:0;will-change:transform}
  #cursor-ring{width:30px;height:30px;border-radius:50%;border:1px solid rgba(14,14,13,0.3);transition:transform .08s var(--ease),width .3s var(--ease),height .3s var(--ease),border-color .3s var(--ease),opacity .3s;opacity:0}
  #cursor-dot{width:4px;height:4px;border-radius:50%;background:var(--ink);transition:transform .02s linear,opacity .3s;opacity:0}
  #cursor-ring.show,#cursor-dot.show{opacity:1}
  #cursor-ring.cursor-hover{width:42px;height:42px;border-color:var(--accent);background:rgba(100,116,139,0.08)}
}

/* ─── GRAIN ─── */
#noise{
  position:fixed;inset:0;z-index:99998;pointer-events:none;opacity:0.04;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-repeat:repeat;background-size:256px 256px;mix-blend-mode:multiply;
}

/* ─── SOFT AMBIENT GLOW ─── */
#bg-orb{
  position:fixed;top:-10%;left:50%;z-index:0;pointer-events:none;
  width:min(900px,90vw);height:min(900px,90vw);margin-left:calc(min(900px,90vw) * -0.5);
  background:radial-gradient(circle at 50% 50%,var(--accent) 0%,transparent 55%);
  border-radius:50%;transition:transform 3s var(--ease),opacity 2s;will-change:transform;opacity:0.06;
}

/* ─── PRELOADER ─── */
#preloader{
  position:fixed;inset:0;z-index:999999;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;
  background:var(--paper);transition:opacity .6s ease,transform .6s ease;
}
#preloader .preloader-ring{width:34px;height:34px;border:1px solid var(--hair-strong);border-top-color:var(--accent);border-radius:50%;animation:preloaderSpin .8s linear infinite}
#preloader .preloader-logo{font-family:'Cinzel',serif;font-size:15px;font-weight:700;letter-spacing:3px;color:var(--ink)}
.preloader-done{opacity:0;transform:scale(0.98);pointer-events:none}
@keyframes preloaderSpin{to{transform:rotate(360deg)}}

/* ─── NAV ─── */
.plat-nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;
  height:var(--nav-h);padding:0 4%;
  background:rgba(250,249,246,0.55);
  backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5);
  border-bottom:1px solid rgba(18,107,120,0.08);
  box-shadow:0 8px 32px -16px rgba(18,107,120,0.12);
  transition:background .5s var(--ease),border-color .5s var(--ease),box-shadow .5s var(--ease);
}
.plat-nav.scrolled{
  background:rgba(250,249,246,0.75);
  border-bottom-color:rgba(18,107,120,0.14);
  box-shadow:0 12px 36px -14px rgba(18,107,120,0.18);
}
.plat-logo{display:flex;align-items:center;gap:10px;padding-top:8px}
.plat-logo:hover{opacity:.8}
.plat-logo-mark{height:44px;width:auto;border-radius:6px;object-fit:contain}
.plat-logo-text{display:flex;flex-direction:column;line-height:1.15}
.plat-logo-name{font-family:'Cinzel',serif;font-weight:700;font-size:15px;letter-spacing:2px;color:var(--ink)}
.plat-logo-sub{font-size:9px;letter-spacing:2px;color:var(--ink-muted);margin-top:-1px}
.plat-links{display:flex;gap:2px;list-style:none;align-items:center}
.plat-links a{
  padding:9px 14px;border-radius:999px;position:relative;
  font-size:11px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;
  color:var(--ink-dim);transition:color .3s var(--ease);white-space:nowrap;cursor:pointer;
}
.plat-links a:hover{color:var(--ink)}
.plat-links a.active{color:var(--ink)}
.plat-links a.active::after{content:'';position:absolute;left:14px;right:14px;bottom:3px;height:2px;background:var(--accent);border-radius:2px}
.plat-cta{
  padding:11px 26px;border-radius:999px;background:linear-gradient(120deg,#1a8898 0%,#126B78 55%,#0d525c 100%);border:none;
  color:#fff;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;
  transition:all .4s var(--ease);font-family:'Inter',sans-serif;cursor:pointer;white-space:nowrap;
  min-height:44px;display:inline-flex;align-items:center;
}
.plat-cta:hover{background:var(--brand-teal-dark);transform:translateY(-2px);box-shadow:0 14px 30px -10px rgba(18,107,120,0.4)}

/* ─── MOBILE: touch target minimum 48px ─── */
@media(max-width:768px){
  .gv-btn,.plat-cta,.gv-chip{min-height:44px}
  .gv-toolbar-toggle-btn{width:44px;height:44px}
  .plat-links a{padding:12px 14px}
}

/* ─── FOOTER ─── */
.plat-footer{padding:var(--sp-6) 5% var(--sp-4);text-align:center;border-top:1px solid var(--hair);background:var(--paper-3)}
.plat-footer-logo{display:flex;align-items:center;justify-content:center;gap:10px;font-family:'Cinzel',serif;font-weight:700;font-size:15px;letter-spacing:2px;margin-bottom:20px;color:var(--ink)}
.plat-footer-links{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-bottom:16px}
.plat-footer-links a{font-size:10px;letter-spacing:1.5px;color:var(--ink-dim);text-transform:uppercase;transition:color .3s}
.plat-footer-links a:hover{color:var(--accent)}
.plat-footer-copy{font-size:10px;color:var(--ink-muted);letter-spacing:.5px}

/* ─── FLOATING LOGO (right side, click scrolls to top/home) ─── */
#gvFloatLogo{
  position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:996;
  width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,0.5);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);
  border:1px solid var(--hair);cursor:pointer;transition:all .5s var(--ease);opacity:.7;
}
#gvFloatLogo img{width:20px;height:20px;object-fit:contain}
#gvFloatLogo:hover{opacity:1;background:rgba(255,255,255,0.85);border-color:var(--hair-strong);box-shadow:0 12px 28px -10px rgba(14,14,13,0.18);transform:translateY(-50%) scale(1.08)}
@media(max-width:900px){#gvFloatLogo{right:12px;width:38px;height:38px}#gvFloatLogo img{width:17px;height:17px}}

/* ─── BACK TO TOP ─── */
.gv-back-top{
  position:fixed;right:24px;bottom:84px;z-index:997;
  width:44px;height:44px;border-radius:50%;
  background:var(--ink);border:none;color:var(--on-ink);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,0.15);
  transition:all .4s var(--ease);
  opacity:0;transform:translateY(20px) scale(0.9);pointer-events:none;
}
.gv-back-top.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.gv-back-top:hover{background:var(--accent);transform:translateY(-4px) scale(1.08)}
.gv-back-top svg{width:18px;height:18px}

/* ─── MOBILE NAV ─── */
.mobile-nav-overlay{
  display:none;position:fixed;inset:0;z-index:999;
  background:rgba(250,249,246,0.7);backdrop-filter:blur(40px) saturate(1.6);-webkit-backdrop-filter:blur(40px) saturate(1.6);
  flex-direction:column;align-items:center;justify-content:center;gap:2px;
}
.mobile-nav-overlay.open{display:flex;animation:fadeIn .35s var(--ease)}
.mobile-nav-overlay a{font-family:'Sora',sans-serif;font-size:22px;font-weight:600;color:var(--ink-dim);letter-spacing:-0.01em;padding:14px 0;transition:color .25s,transform .25s}
.mobile-nav-overlay a:hover{color:var(--ink)}
.mobile-nav-overlay a:active{transform:scale(0.96)}
.mobile-nav-overlay .active{color:var(--accent)}
.mobile-nav-close{position:absolute;top:24px;right:5%;background:none;border:none;color:var(--ink);font-size:28px;cursor:pointer;opacity:.5;transition:opacity .25s,transform .25s;width:44px;height:44px;display:flex;align-items:center;justify-content:center}
.mobile-nav-close:hover{opacity:1}
.mobile-nav-close:active{transform:scale(0.9)}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:8px;z-index:1001;transition:transform .15s}
.hamburger:active{transform:scale(0.92)}
.hamburger span{display:block;width:22px;height:1.5px;background:var(--ink);border-radius:1px;transition:all .3s var(--ease)}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(4.5px,4.5px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(4.5px,-4.5px)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* ─── MOBILE: touch-optimised buttons ─── */
.gv-btn:active,.glass-btn:active,.plat-cta:active,.af-fcard-btn:active,.af-card-buy:active,.tc-buy:active{transform:scale(0.97);transition:transform .12s ease}
@media(max-width:768px){
  .gv-btn,.glass-btn,.plat-cta,.af-fcard-btn,.af-card-buy,.tc-buy{transition:transform .12s ease,opacity .12s ease!important}
}

/* ─── MOBILE: smooth scrolling + momentum ─── */
html{
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
}
@media(max-width:768px){
  body{overflow-x:clip;overscroll-behavior-y:contain}
}

/* ─── MOBILE: typography refinements ─── */
@media(max-width:768px){
  .gv-h1{font-size:clamp(1.8rem,6vw,2.4rem)!important;line-height:1.15!important}
  .gv-h2{font-size:clamp(1.3rem,5vw,1.7rem)!important;line-height:1.2!important}
  .gv-lead{font-size:0.92rem!important;line-height:1.6!important;max-width:90vw!important}
  .gv-body{font-size:0.88rem!important;line-height:1.6!important}
}

/* ─── MOBILE: GPU-accelerated animations ─── */
.gv-reveal,.bv-reveal,.ab-hero-action-line,.ab-hero-support,.tc-card,.tc-chip,.af-fcard,.af-card,.af-chip{
  will-change:transform,opacity;
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
}

/* ─── MOBILE: card refinements ─── */
@media(max-width:768px){
  .gv-card,.tc-card,.af-card,.pv-card{padding:clamp(14px,3vw,20px) clamp(12px,3vw,16px)!important;border-radius:var(--r-md)!important}
  .gv-grid:not(.gv-grid-keep){grid-template-columns:1fr;gap:var(--sp-2)!important}
}
/* ─── SMALL MOBILE: tighter spacing ─── */
@media(max-width:400px){
  :root{--sp-4:28px;--sp-5:40px;--sp-6:48px}
  .gv-container{padding:0 16px}
  .plat-nav{padding:0 16px}
  .plat-footer{padding:32px 16px 24px}
  .plat-footer-links{gap:10px}
  .plat-footer-links a{font-size:9px}
  .mobile-nav-overlay a{font-size:17px}
}

/* ─── TABLET: toolbar refinements ─── */
@media(max-width:900px){
  .gv-tb-top .gv-search-wrap{max-width:100%}
  .gv-tb-sort{position:static;transform:none;margin-left:auto}
}
/* ─── MOBILE: sticky & search — sort below search ─── */
@media(max-width:640px){
  .gv-tb-top{flex-wrap:wrap;gap:8px;padding-bottom:10px}
  .gv-tb-top .gv-search-wrap{max-width:100%;order:1}
  .gv-tb-sort{order:2;width:100%;justify-content:flex-end}
  .gv-toolbar-toggle-btn{width:40px;height:40px}
  .gv-toolbar .gv-container{padding:10px 0}
  .gv-toolbar-panel .gv-filter-group:first-child{padding-top:10px}
}
/* ─── MOBILE: filter chips scrollable ─── */
@media(max-width:600px){
  .gv-filter-group{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
  .gv-filter-group::-webkit-scrollbar{display:none}
  .gv-chip{flex-shrink:0;padding:8px 14px;font-size:11px}
}

/* ─── MOBILE: hero refinements ─── */
@media(max-width:768px){
  .gv-hero-center{max-width:100%}
}
@media(max-width:480px){
  .gv-section:first-of-type{padding-top:calc(var(--nav-h) + var(--sp-3));min-height:60vh}
  .gv-hero-center{max-width:100%}
}

/* ─── MOBILE: prevent horizontal overflow globally ─── */
body,html{max-width:100vw;overflow-x:clip}

/* ─── UNIVERSAL: Sign In page design language ─── */
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(26,136,152,.28)}
.gv-glass,.gv-card{animation:glassEntrance .75s var(--ease) both}
@keyframes glassEntrance{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.gv-glass,.gv-card{animation:none}}

/* ─── RESPONSIVE ─── */
@media(max-width:1100px){.plat-links a{padding:9px 10px;font-size:10px}}
@media(max-width:900px){.plat-links,.plat-cta{display:none}.hamburger{display:flex}}
@media(max-width:768px){.plat-logo-mark{height:28px}.plat-logo-name{font-size:13px}}
@media(max-width:576px){
  :root{--sp-6:64px;--sp-7:88px;--nav-h:56px}
  .plat-footer{padding:40px 5% 28px;padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
  .plat-footer-links{gap:12px}
  .plat-footer-links a{font-size:9px}
  .mobile-nav-overlay a{font-size:19px;padding:14px 24px}
  .mobile-nav-overlay{padding:calc(var(--nav-h) + 20px) 24px calc(24px + env(safe-area-inset-bottom,0px))}
}

/* ─── CHAT WIDGET PANEL ─── */
#cwpOverlay{position:fixed;inset:0;z-index:9990;background:rgba(14,14,13,0.35);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .4s}
#cwpOverlay.open{opacity:1;pointer-events:auto}
#cwpPanel{position:fixed;top:0;right:clamp(-420px,-100vw,0px);bottom:0;z-index:9991;width:min(400px,92vw);background:var(--paper-2);border-left:1px solid var(--hair);display:flex;flex-direction:column;transition:right .5s var(--ease);box-shadow:-20px 0 60px rgba(14,14,13,.12)}
#cwpPanel.open{right:0}
.cwp-header{display:flex;align-items:center;gap:10px;padding:18px 20px;border-bottom:1px solid var(--hair);flex-shrink:0}
.cwp-header img{height:28px;width:auto;border-radius:4px}
.cwp-header h3{font-family:'Cinzel',serif;font-size:14px;font-weight:600;color:var(--ink);flex:1;letter-spacing:1px}
.cwp-close{width:32px;height:32px;border-radius:50%;border:1px solid var(--hair);background:transparent;color:var(--ink-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .3s;flex-shrink:0}
.cwp-close:hover{border-color:var(--hair-strong);color:var(--ink);background:var(--paper-3)}
.cwp-tabs{display:flex;border-bottom:1px solid var(--hair);flex-shrink:0}
.cwp-tab{flex:1;padding:12px 6px;text-align:center;font-size:10px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;color:var(--ink-dim);background:transparent;border:none;border-bottom:2px solid transparent;transition:all .3s;font-family:'Inter',sans-serif}
.cwp-tab:hover{color:var(--ink)}
.cwp-tab.active{color:var(--ink);border-bottom-color:var(--accent)}
.cwp-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}
.cwp-page{display:none;flex-direction:column;height:100%;position:absolute;inset:0}
.cwp-page.active{display:flex}
.cwp-msgs{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.cwp-msgs::-webkit-scrollbar{width:3px}
.cwp-msgs::-webkit-scrollbar-thumb{background:var(--hair-strong);border-radius:2px}
.cwp-msg{max-width:88%;padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.6;animation:msgIn .3s var(--ease);word-wrap:break-word}
@keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.cwp-msg.bot{align-self:flex-start;background:var(--paper-3);border:1px solid var(--hair);color:var(--ink-dim);border-bottom-left-radius:4px}
.cwp-msg.user{align-self:flex-end;background:var(--ink);border:1px solid var(--ink);color:var(--on-ink);border-bottom-right-radius:4px}
.cwp-msg .typing-dots{display:flex;gap:4px;padding:2px 0}
.cwp-msg .typing-dots span{width:6px;height:6px;border-radius:50%;background:var(--ink-muted);animation:typingDot 1.4s infinite}
.cwp-msg .typing-dots span:nth-child(2){animation-delay:.2s}
.cwp-msg .typing-dots span:nth-child(3){animation-delay:.4s}
@keyframes typingDot{0%,60%,100%{opacity:.3}30%{opacity:1}}
.cwp-input-row{display:flex;gap:8px;padding:12px 18px 16px;border-top:1px solid var(--hair);flex-shrink:0;background:var(--paper-2)}
.cwp-input{flex:1;padding:12px 16px;border-radius:999px;border:1px solid var(--hair);background:var(--paper-3);color:var(--ink);font-family:'Inter',sans-serif;font-size:13px;outline:none;transition:border-color .3s}
.cwp-input:focus{border-color:var(--hair-strong)}
.cwp-input::placeholder{color:var(--ink-muted)}
.cwp-send{width:42px;height:42px;border-radius:50%;border:none;background:var(--ink);color:var(--on-ink);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .3s}
.cwp-send:hover{background:var(--accent);transform:scale(1.08)}
.cwp-send svg{width:16px;height:16px}
.cwp-suggestions{display:flex;gap:6px;flex-wrap:wrap;padding:8px 18px 0}
.cwp-suggestions button{font-size:10px;padding:5px 12px;border-radius:999px;border:1px solid var(--hair);background:transparent;color:var(--ink-muted);cursor:pointer;transition:all .3s}
.cwp-suggestions button:hover{border-color:var(--hair-strong);color:var(--ink)}
.cwp-form{padding:20px;display:flex;flex-direction:column;gap:12px;flex:1}
.cwp-form label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-muted)}
.cwp-form input,.cwp-form textarea{padding:12px 16px;border-radius:12px;border:1px solid var(--hair);background:var(--paper-3);color:var(--ink);font-family:'Inter',sans-serif;font-size:13px;outline:none;transition:border-color .3s}
.cwp-form input:focus,.cwp-form textarea:focus{border-color:var(--hair-strong)}
.cwp-form textarea{min-height:100px;resize:vertical}
.cwp-form .cwp-send-email{padding:12px;border-radius:999px;border:none;background:var(--ink);color:var(--on-ink);cursor:pointer;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;transition:all .3s}
.cwp-form .cwp-send-email:hover{background:var(--accent)}
.cwp-wa-page{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px 20px;text-align:center;flex:1}
.cwp-wa-page svg{width:48px;height:48px;stroke:var(--accent)}
.cwp-wa-page h4{font-family:'Cinzel',serif;font-size:18px;color:var(--ink)}
.cwp-wa-page p{font-size:12px;color:var(--ink-dim);line-height:1.6;max-width:280px}
.cwp-wa-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:999px;background:var(--ink);color:var(--on-ink);font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;text-decoration:none;transition:all .3s}
.cwp-wa-btn:hover{background:var(--accent)}
#cwpToggleBtn{position:fixed;right:24px;bottom:22px;z-index:998;width:52px;height:52px;border-radius:50%;background:var(--ink);border:1px solid var(--ink);color:var(--on-ink);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 34px -10px rgba(14,14,13,0.35);transition:all .4s var(--ease);opacity:0;transform:translateY(20px) scale(0.9);pointer-events:none}
#cwpToggleBtn.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
#cwpToggleBtn:hover{background:var(--accent);transform:translateY(-4px) scale(1.08)}
#cwpToggleBtn svg{width:22px;height:22px}
@media(max-width:640px){#cwpPanel{width:100vw;max-width:100vw;right:-100vw}.cwp-msg{max-width:92%}}

/* ─── PER-PAGE HERO ANIMATIONS ─── */
@keyframes wordDrop{to{opacity:1;transform:translateY(0)}}
@keyframes charFade{to{opacity:1}}
@keyframes wordSlide{to{opacity:1;transform:translateX(0)}}
@keyframes letterUnblur{to{filter:blur(0);opacity:1}}
@keyframes clipReveal{to{clip-path:inset(0 0 0 0)}}
@keyframes scaleIn{to{opacity:1;transform:scale(1)}}
@keyframes fadeRotateIn{to{opacity:1;transform:translateY(0) rotateX(0)}}
@keyframes defaultHeroIn{to{opacity:1;transform:translateY(0)}}
@keyframes leadIn{to{opacity:1;transform:translateY(0)}}

*:focus-visible{outline:2px solid #1a8898;outline-offset:2px;border-radius:4px}
main{outline:none;min-height:70vh}

@media(max-width:360px){
  body{font-size:14px}
  .gv-section{padding:40px 12px}
  .gv-title{font-size:1.4rem}
  .gv-lead{font-size:.85rem}
  .gv-hero{padding:60px 12px 40px}
  .bento-grid{grid-template-columns:1fr;gap:12px}
  .tools-grid{grid-template-columns:1fr}
}
