diff --git a/v1/attorneys.html b/v1/attorneys.html index d8156c2..698758c 100644 --- a/v1/attorneys.html +++ b/v1/attorneys.html @@ -111,10 +111,10 @@ @@ -301,6 +304,14 @@ document.addEventListener("click", () => dd.classList.remove("open")); dd.querySelector(".dropdown-menu").addEventListener("click", (e) => e.stopPropagation()); } + const THEME_KEY = "abigail-theme"; + const root = document.documentElement; + if (localStorage.getItem(THEME_KEY) === "dark") root.classList.add("dark"); + const toggle = document.getElementById("themeToggle"); + if (toggle) toggle.addEventListener("click", () => { + root.classList.toggle("dark"); + localStorage.setItem(THEME_KEY, root.classList.contains("dark") ? "dark" : "light"); + }); diff --git a/v1/index.html b/v1/index.html new file mode 100644 index 0000000..54c7f08 --- /dev/null +++ b/v1/index.html @@ -0,0 +1,476 @@ + + + + + +Abigail — AI-native O-1 & EB-1 representation + + + + + + + + + + + +
+
+

Attorney-led O-1 & EB-1.
Powered by AI.

+

Abigail combines an AI drafting engine with Ivy / BigLaw-trained attorneys. Flat fees, 5-business-day prep, no retainers — for extraordinary-ability cases.

+ +
+ Flat fees.   No retainers.   Ivy / BigLaw attorneys. +
+
+
+ +
+
+
+

What we do.

+

Three coordinated layers — filing, evidence, lifecycle — under one engagement.

+
+ +
+
+
PILLAR 01
+

Filing

+

AI builds the petition narrative, evidence map, support letter frameworks, and forms. An Ivy / BigLaw-trained attorney reviews, annotates, and signs. 5-business-day turnaround.

+ See filing tiers → +
+
+
PILLAR 02
+

Evidence

+

Optional services that strengthen the criteria where applicants commonly fall short — press placement for Criterion 3 and peer-review intros for Criterion 4.

+ See evidence services → +
+
+
PILLAR 03
+

Lifecycle

+

Continuous attorney representation from intake to filing to RFE response to extension. One named attorney across the entire arc, not a rotating cast.

+ Meet the network → +
+
+
+
+ +
+
+
+
+
5 days
+
Target prep, intake to attorney-ready
+
+
+
Ivy / BigLaw
+
The credential floor for every reviewing attorney
+
+
+
Flat fees
+
No retainers, no hourly billing, no scope creep
+
+
+
150+
+
Founder's in-house immigration matters managed
+
+
+
+
+ +
+
+
+

The evidence layer.

+

Most O-1A and EB-1A denials trace to two criteria: published material and judging. We help close the gap before filing.

+
+ + +
+
+ +
+
+
+
+

From intake to filing-ready in five business days.

+

Most attorney-only firms quote 4–6 weeks. Even AI-assisted firms quote 2 weeks. Abigail's AI does the work in parallel with evidence collection — your package is ready when your last document arrives.

+ See how it works +
+
    +
  • + 01 +
    Intake & document uploadAI classifies, extracts, and runs consistency checks the moment you upload.
    +
  • +
  • + 02 +
    AI drafts your packagePetition narrative, support letter frameworks, evidence map, cover letter — all grounded in your facts.
    +
  • +
  • + 03 +
    Attorney reviews & signs3–5 business-day turnaround. Engagement via Abigail Legal Services, P.C.
    +
  • +
  • + 04 +
    Filed & trackedUSCIS receipt tracked. Alerts proactive. RFE response capability built in.
    +
  • +
+
+
+
+ +
+
+
+

Ready when you are.

+

Sign up to be matched with an attorney and start your filing. Or read the services overview first.

+ +
+
+
+ + + + + + + diff --git a/v1/judging.html b/v1/judging.html index e97cb91..91c67c8 100644 --- a/v1/judging.html +++ b/v1/judging.html @@ -104,10 +104,10 @@ @@ -323,6 +326,14 @@ document.querySelectorAll(".faq-q").forEach(q => { q.addEventListener("click", () => q.parentElement.classList.toggle("open")); }); + const THEME_KEY = "abigail-theme"; + const root = document.documentElement; + if (localStorage.getItem(THEME_KEY) === "dark") root.classList.add("dark"); + const toggle = document.getElementById("themeToggle"); + if (toggle) toggle.addEventListener("click", () => { + root.classList.toggle("dark"); + localStorage.setItem(THEME_KEY, root.classList.contains("dark") ? "dark" : "light"); + }); diff --git a/v1/login.html b/v1/login.html index 680cb0e..9d84a11 100644 --- a/v1/login.html +++ b/v1/login.html @@ -212,13 +212,31 @@ @@ -309,5 +327,26 @@ + + diff --git a/v1/petitions.html b/v1/petitions.html index 677019d..4ea4f5f 100644 --- a/v1/petitions.html +++ b/v1/petitions.html @@ -151,10 +151,10 @@ @@ -494,6 +497,14 @@ card.style.display = (tag === "all" || tags.includes(tag)) ? "" : "none"; }); })); + const THEME_KEY = "abigail-theme"; + const root = document.documentElement; + if (localStorage.getItem(THEME_KEY) === "dark") root.classList.add("dark"); + const toggle = document.getElementById("themeToggle"); + if (toggle) toggle.addEventListener("click", () => { + root.classList.toggle("dark"); + localStorage.setItem(THEME_KEY, root.classList.contains("dark") ? "dark" : "light"); + }); diff --git a/v1/press.html b/v1/press.html index 6ce4c34..f3c4fc9 100644 --- a/v1/press.html +++ b/v1/press.html @@ -91,10 +91,10 @@ @@ -302,6 +305,14 @@ document.addEventListener("click", () => dd.classList.remove("open")); dd.querySelector(".dropdown-menu").addEventListener("click", (e) => e.stopPropagation()); } + const THEME_KEY = "abigail-theme"; + const root = document.documentElement; + if (localStorage.getItem(THEME_KEY) === "dark") root.classList.add("dark"); + const toggle = document.getElementById("themeToggle"); + if (toggle) toggle.addEventListener("click", () => { + root.classList.toggle("dark"); + localStorage.setItem(THEME_KEY, root.classList.contains("dark") ? "dark" : "light"); + }); diff --git a/v1/services.html b/v1/services.html index c5f99bb..f731f96 100644 --- a/v1/services.html +++ b/v1/services.html @@ -61,10 +61,10 @@ @@ -254,6 +257,14 @@ document.addEventListener("click", () => dd.classList.remove("open")); dd.querySelector(".dropdown-menu").addEventListener("click", (e) => e.stopPropagation()); } + const THEME_KEY = "abigail-theme"; + const root = document.documentElement; + if (localStorage.getItem(THEME_KEY) === "dark") root.classList.add("dark"); + const toggle = document.getElementById("themeToggle"); + if (toggle) toggle.addEventListener("click", () => { + root.classList.toggle("dark"); + localStorage.setItem(THEME_KEY, root.classList.contains("dark") ? "dark" : "light"); + }); diff --git a/v1/styles.css b/v1/styles.css index 920399f..6f01ac1 100644 --- a/v1/styles.css +++ b/v1/styles.css @@ -43,11 +43,75 @@ nav .container { .nav-links a.active { color: var(--signal); font-weight: 500; } .nav-cta { background: var(--ink); color: var(--paper); - padding: 8px 16px; border-radius: 8px; - font-size: 14px; font-weight: 500; - transition: background 0.15s; + padding: 9px 18px; border-radius: 999px; + font-size: 14px; font-weight: 600; + transition: background 0.15s, transform 0.1s; } .nav-cta:hover { background: var(--ink-2); } +.nav-cta:active { transform: scale(0.97); } + +/* Login link in nav */ +.nav-login { + color: var(--mute); + font-size: 14px; + transition: color 0.15s; +} +.nav-login:hover { color: var(--ink); } + +/* Theme toggle */ +.theme-toggle { + background: transparent; + border: 0; + width: 32px; height: 32px; + border-radius: 50%; + cursor: pointer; + display: inline-flex; align-items: center; justify-content: center; + color: var(--mute); + transition: color 0.15s, background 0.15s; + padding: 0; +} +.theme-toggle:hover { + color: var(--ink); + background: var(--paper-2); +} +.theme-toggle .icon-moon { display: inline-block; } +.theme-toggle .icon-sun { display: none; } +html.dark .theme-toggle .icon-moon { display: none; } +html.dark .theme-toggle .icon-sun { display: inline-block; } + +/* Dark mode palette */ +html.dark { + --ink: #F5F5F0; + --ink-2: #2A2F3D; + --paper: #0A0E1A; + --paper-2: #14192A; + --rule: #2A2F3D; + --rule-dark: #3A3F4D; + --mute: #8A8F99; + --mute-2: #5A5F69; +} +html.dark body { background: var(--paper); color: var(--ink); } +html.dark .card, +html.dark .what-card, +html.dark .anti-card, +html.dark .role-card, +html.dark .pet-card, +html.dark .lead-form, +html.dark .mock, +html.dark .anatomy-wrap, +html.dark .compare-table, +html.dark .case-table, +html.dark .post-card, +html.dark .visa-card, +html.dark .reason-card, +html.dark .situation-card, +html.dark .tier-card { background: var(--ink-2); } +html.dark .field input, +html.dark .field select, +html.dark .field textarea { background: var(--paper-2); color: var(--ink); } +html.dark nav { background: rgba(10,14,26,0.85); } +html.dark .chip { background: var(--ink-2); border-color: var(--rule); color: var(--mute-2); } +html.dark .chip.active { background: var(--ink); color: var(--paper); } /* Resources dropdown */ .nav-dropdown { position: relative; } diff --git a/v1/vercel.json b/v1/vercel.json index 21e3cd0..63bb185 100644 --- a/v1/vercel.json +++ b/v1/vercel.json @@ -1,9 +1,7 @@ { "cleanUrls": true, "trailingSlash": false, - "rewrites": [ - { "source": "/", "destination": "/services" } - ], + "rewrites": [], "headers": [ { "source": "/(.*)",