/* ai-course.com.au — design-locked to the operator's scroll-morph hero reference.
   Register: near-white canvas, tracking-tight sans, blue accent, rounded photo cards. */
:root{
  --accent:#2563EB;
  --accent-deep:#1D4ED8;
  --ink:#111827;
  --ink-2:#0A0A0A;
  --muted:#6B7280;
  --muted-2:#9CA3AF;
  --hair:#E5E7EB;
  --bg-hero:#FAFAFA;
  --bg-soft:#F6F7F9;
  --bg-tint:#EEF3FE;
  --radius:16px;
  --font:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--font);background:#fff;color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}

/* ---------- header ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .25s,box-shadow .25s;background:transparent}
.site-header.scrolled{background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--hair)}
.header-in{max-width:1240px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.wordmark{font-weight:600;font-size:1.05rem;letter-spacing:-.02em;text-decoration:none;color:var(--ink-2);white-space:nowrap}
.wordmark .tld{color:var(--accent)}
.nav-links{display:none;align-items:center;gap:28px;list-style:none}
.nav-links a{text-decoration:none;font-size:.92rem;font-weight:500;color:var(--ink);opacity:.85;transition:opacity .15s}
.nav-links a:hover{opacity:1}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 24px;border-radius:999px;font-family:var(--font);font-size:.95rem;font-weight:600;text-decoration:none;cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s;border:1px solid transparent}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 8px 20px -10px rgba(37,99,235,.55)}
.btn-primary:hover{background:var(--accent-deep);transform:translateY(-1px);box-shadow:0 12px 26px -10px rgba(37,99,235,.6)}
.btn-ghost{background:#fff;border:1px solid var(--hair);color:var(--ink);box-shadow:0 1px 2px rgba(10,10,10,.04)}
.btn-ghost:hover{transform:translateY(-1px);border-color:#CBD2DA}
.btn-dark{background:var(--ink-2);color:#fff;box-shadow:0 8px 20px -12px rgba(10,10,10,.5)}
.btn-dark:hover{transform:translateY(-1px)}
.nav-cta{display:inline-flex;height:40px;padding:0 18px;font-size:.88rem}
.mobile-menu-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;background:none;border:0;cursor:pointer}
.mobile-menu-toggle span{display:block;height:2px;width:100%;background:var(--ink-2);border-radius:2px;transition:transform .25s,opacity .25s}
.mobile-menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.mobile-menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.mobile-menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(min-width:1024px){
  .nav-links{display:flex}
  .nav-cta{height:42px;padding:0 20px;font-size:.9rem}
  .mobile-menu-toggle{display:none !important}
}

/* mobile panel — full viewport, explicit pointer-events (G17b), display toggled in media */
.mobile-panel{display:none;position:fixed;inset:0;z-index:55;background:rgba(250,250,250,.98);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,visibility .25s}
@media(max-width:1023.98px){.mobile-panel{display:block}}
.mobile-panel.open{opacity:1;visibility:visible;pointer-events:auto}
.mobile-panel nav{display:flex;flex-direction:column;gap:8px;padding:110px 32px 40px}
.mobile-panel a{pointer-events:auto;text-decoration:none;font-size:1.6rem;font-weight:600;letter-spacing:-.02em;color:var(--ink-2);padding:12px 0;border-bottom:1px solid var(--hair)}
.mobile-panel .panel-cta{margin-top:24px;border-bottom:0;background:var(--accent);color:#fff;border-radius:999px;text-align:center;font-size:1.05rem;padding:16px 24px}

/* ---------- morph hero ---------- */
.morph-wrap{height:380vh;position:relative;background:var(--bg-hero)}
.morph-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;align-items:center;justify-content:center}
.m-card{position:absolute;left:50%;top:50%;width:60px;height:85px;margin:-42.5px 0 0 -30px;will-change:transform,opacity;opacity:0;perspective:1000px}
.m-flip{position:relative;width:100%;height:100%;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.7,.3,1.1)}
.m-face{position:absolute;inset:0;border-radius:12px;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotateY(0deg);box-shadow:0 14px 30px -14px rgba(10,10,10,.35);border:1px solid rgba(10,10,10,.06);background:#E5E7EB}
.m-face img{width:100%;height:100%;object-fit:cover}
.m-back{transform:rotateY(180deg);background:var(--ink-2);display:flex;align-items:center;justify-content:center;text-align:center;padding:6px}
/* hover-flip is a pointer-device signature moment; on touch devices the back face
   can never be reached and WebKit's backface handling is flaky — remove it there */
@media(hover:hover){.m-card:hover .m-flip{transform:rotateY(180deg)}}
@media(hover:none){.m-back{display:none}}
.m-back span{font-size:7px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);line-height:1.5}
.m-back strong{display:block;font-size:9px;font-weight:600;color:#fff;letter-spacing:0}
.m-intro{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;padding:0 24px;width:min(88vw,560px);filter:blur(10px)}
.m-intro .eyebrow{font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.m-intro h1{font-size:clamp(1.15rem,3.4vw,1.85rem);font-weight:700;letter-spacing:-.03em;line-height:1.18;color:var(--ink-2);max-width:15em;margin:0 auto}
.m-intro .intro-cta{margin-top:22px}
.m-intro .scroll-hint{margin-top:20px;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-2)}
/* intro children start hidden; app.js drives the circle-phase blur-in reveal */
.m-intro [data-intro-fade],.m-intro .scroll-hint{opacity:0}
/* non-functioning CTA ("Waitlist Coming") — styled like the primary pill, dead to input */
.btn-static{cursor:default;pointer-events:none;user-select:none}
.m-arc-copy{position:absolute;z-index:10;left:50%;top:10%;transform:translateX(-50%);width:min(92vw,860px);text-align:center;pointer-events:none;opacity:0}
.m-arc-copy .arc-head{font-size:clamp(1.7rem,4.8vw,3.2rem);font-weight:600;letter-spacing:-.03em;line-height:1.1;color:var(--ink-2);margin-bottom:16px}
.m-arc-copy p{font-size:clamp(.95rem,2.2vw,1.1rem);color:var(--muted);max-width:34em;margin:0 auto;line-height:1.65}
.m-arc-copy .arc-ctas{margin-top:26px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap;pointer-events:auto}
.m-scroll-release{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:10;opacity:0;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2);pointer-events:none}
/* static fallback: no JS or reduced motion — arc pre-formed, copy visible */
.no-js .m-card,.reduced-motion .m-card{opacity:1}
.no-js .m-intro,.reduced-motion .m-intro{display:none}
.no-js .m-arc-copy,.reduced-motion .m-arc-copy{opacity:1}
@media(max-width:767.98px){
  .m-card{width:48px;height:68px;margin:-34px 0 0 -24px}
  .m-arc-copy{top:13%}
  .m-intro{width:min(72vw,290px);padding:0}
  .m-intro .eyebrow{font-size:8.5px;letter-spacing:.14em;max-width:240px;margin-left:auto;margin-right:auto}
  .m-intro h1{font-size:1.02rem;max-width:13.5em}
  .m-intro .intro-cta{margin-top:16px}
  .m-intro .intro-cta .btn{height:40px;padding:0 20px;font-size:.85rem}
  .m-intro .scroll-hint{margin-top:14px;font-size:9px}
}

/* ---------- shared section chrome ---------- */
section.band{padding:96px 0}
.eyebrow-line{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}
.eyebrow-line::before{content:"";width:26px;height:2px;background:var(--accent);border-radius:2px}
h2.sec{font-size:clamp(1.6rem,3.6vw,2.5rem);font-weight:600;letter-spacing:-.03em;line-height:1.12;color:var(--ink-2);max-width:22em}
.sec-sub{margin-top:14px;font-size:1.05rem;color:var(--muted);max-width:42em}

/* value strip */
.value-strip{background:#fff}
.value-grid{display:grid;gap:20px;margin-top:44px;grid-template-columns:1fr}
@media(min-width:768px){.value-grid{grid-template-columns:repeat(3,1fr)}}
.value-card{border:1px solid var(--hair);border-radius:var(--radius);padding:28px;background:#fff;box-shadow:0 1px 2px rgba(10,10,10,.03)}
.value-card .num{font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--accent)}
.value-card h3{margin-top:10px;font-size:1.12rem;font-weight:600;letter-spacing:-.015em;color:var(--ink-2)}
.value-card p{margin-top:8px;font-size:.95rem;color:var(--muted)}

/* weeks — numbered curriculum rail */
.weeks{background:var(--bg-soft)}
.week-list{margin-top:52px;display:grid;gap:16px}
.week-row{display:grid;grid-template-columns:72px 1fr;gap:20px;align-items:start;background:#fff;border:1px solid var(--hair);border-radius:var(--radius);padding:26px 28px;transition:transform .18s,box-shadow .18s}
.week-row:hover{transform:translateY(-2px);box-shadow:0 16px 34px -22px rgba(10,10,10,.25)}
.week-num{font-size:1.9rem;font-weight:600;letter-spacing:-.04em;color:var(--accent);line-height:1}
.week-num small{display:block;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2);margin-bottom:6px}
.week-row h3{font-size:1.15rem;font-weight:600;letter-spacing:-.015em;color:var(--ink-2)}
.week-row p{margin-top:6px;font-size:.96rem;color:var(--muted)}
@media(min-width:900px){
  .week-list{grid-template-columns:repeat(2,1fr)}
}

/* who it's for */
.who{background:#fff}
.who-grid{display:grid;gap:20px;margin-top:44px;grid-template-columns:1fr}
@media(min-width:768px){.who-grid{grid-template-columns:1fr 1fr}}
.who-col{border-radius:var(--radius);padding:32px}
.who-col.yes{background:var(--bg-tint);border:1px solid #DBE7FD}
.who-col.no{background:var(--bg-soft);border:1px solid var(--hair)}
.who-col h3{font-size:.8rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:18px}
.who-col.yes h3{color:var(--accent)}
.who-col.no h3{color:var(--muted)}
.who-col ul{list-style:none;display:grid;gap:12px}
.who-col li{display:flex;gap:12px;font-size:.98rem;color:var(--ink)}
.who-col.no li{color:var(--muted)}
.who-col .tick{flex:0 0 auto;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-top:2px}
.who-col.yes .tick{background:var(--accent);color:#fff}
.who-col.no .tick{background:#D6DAE0;color:#fff}
.who-col .tick svg{width:11px;height:11px}

/* format strip */
.format{background:#fff;padding-top:0}
.format-rail{display:grid;gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:var(--radius);overflow:hidden;grid-template-columns:1fr}
@media(min-width:768px){.format-rail{grid-template-columns:repeat(3,1fr)}}
.format-cell{background:#fff;padding:30px 28px}
.format-cell .k{font-size:1.5rem;font-weight:600;letter-spacing:-.03em;color:var(--ink-2)}
.format-cell .k .acc{color:var(--accent)}
.format-cell p{margin-top:6px;font-size:.92rem;color:var(--muted)}

/* founder */
.founder{background:var(--bg-tint)}
.founder-grid{display:grid;gap:40px;align-items:center;grid-template-columns:1fr}
@media(min-width:900px){.founder-grid{grid-template-columns:1.2fr 1fr}}
.founder blockquote{font-size:clamp(1.15rem,2.6vw,1.55rem);font-weight:500;letter-spacing:-.02em;line-height:1.4;color:var(--ink-2);max-width:24em}
.founder .attrib{margin-top:22px;display:flex;align-items:center;gap:14px}
.founder .attrib .avatar{width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.05rem}
.founder .attrib .who-line strong{display:block;font-size:.98rem;font-weight:600;color:var(--ink-2)}
.founder .attrib .who-line span{font-size:.85rem;color:var(--muted)}
.founder-side{background:#fff;border:1px solid #DBE7FD;border-radius:var(--radius);padding:30px}
.founder-side p{font-size:.95rem;color:var(--muted)}
.founder-side .links{margin-top:18px}

/* register band (dark) */
.register{background:var(--ink-2);color:#fff}
.register .eyebrow-line{color:#93B4F8}
.register .eyebrow-line::before{background:#93B4F8}
.register h2.sec{color:#fff}
.register .sec-sub{color:#A6ADBA}
.register-grid{display:grid;gap:48px;margin-top:12px;grid-template-columns:1fr}
@media(min-width:900px){.register-grid{grid-template-columns:1fr 1fr}}
.register form{display:grid;gap:14px;margin-top:8px}
.field label{display:block;font-size:.82rem;font-weight:600;letter-spacing:.02em;color:#C6CCD6;margin-bottom:6px}
.field input,.field textarea{width:100%;background:#141821;border:1px solid #262C38;border-radius:12px;color:#fff;font-family:var(--font);font-size:.98rem;padding:13px 16px;transition:border-color .15s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent)}
.field textarea{min-height:110px;resize:vertical}
.hp-field{position:absolute;left:-9999px;top:-9999px;height:1px;width:1px;overflow:hidden}
.form-note{font-size:.8rem;color:#7C8494}
.form-status{font-size:.95rem;font-weight:600;min-height:1.4em}
.form-status.ok{color:#6EE7A0}
.form-status.err{color:#FCA5A5}
.register .facts{list-style:none;display:grid;gap:16px;margin-top:30px}
.register .facts li{display:flex;gap:12px;font-size:.98rem;color:#C6CCD6}
.register .facts .dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:9px}

/* ---------- sub-page hero ---------- */
.page-hero{background:var(--bg-hero);padding:170px 0 72px}
.page-hero h1{font-size:clamp(1.9rem,4.5vw,3rem);font-weight:600;letter-spacing:-.03em;line-height:1.1;color:var(--ink-2);max-width:20em}
.page-hero .lede{margin-top:16px;font-size:1.08rem;color:var(--muted);max-width:40em}
.breadcrumbs{font-size:.82rem;color:var(--muted-2);margin-bottom:22px}
.breadcrumbs a{color:var(--muted);text-decoration:none}
.breadcrumbs a:hover{color:var(--ink)}

/* about */
.bio-grid{display:grid;gap:40px;grid-template-columns:1fr}
@media(min-width:900px){.bio-grid{grid-template-columns:1.4fr 1fr}}
.bio-body p{margin-bottom:18px;font-size:1.02rem;color:#374151}
.bio-card{background:var(--bg-soft);border:1px solid var(--hair);border-radius:var(--radius);padding:30px;height:fit-content}
.bio-card .avatar-lg{width:76px;height:76px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.7rem;margin-bottom:18px}
.bio-card h3{font-size:1.1rem;font-weight:600;color:var(--ink-2)}
.bio-card .role{font-size:.88rem;color:var(--muted);margin-bottom:14px}
.bio-card p{font-size:.9rem;color:var(--muted)}

/* faq */
.faq-list{display:grid;gap:12px;margin-top:8px}
details.qa{border:1px solid var(--hair);border-radius:14px;background:#fff;overflow:hidden}
details.qa summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;font-size:1.02rem;font-weight:600;letter-spacing:-.01em;color:var(--ink-2)}
details.qa summary::-webkit-details-marker{display:none}
details.qa summary::after{content:"+";font-size:1.3rem;font-weight:400;color:var(--accent);transition:transform .2s;flex:0 0 auto}
details.qa[open] summary::after{transform:rotate(45deg)}
details.qa .qa-a{padding:0 24px 22px;font-size:.97rem;color:var(--muted);max-width:60em}

/* waitlist panel (replaces the register form — teaser mode) */
.waitlist-panel{display:flex;align-items:center;justify-content:center;border:1px dashed #2A3140;border-radius:var(--radius);padding:48px 30px;min-height:220px}
.btn-lg{height:58px;padding:0 36px;font-size:1.08rem}
.footer-col li{font-size:.94rem;color:var(--muted)}

/* contact page */
.contact-band{background:#fff;padding:0 0 96px}
.contact-grid{display:grid;gap:48px;grid-template-columns:1fr}
@media(min-width:900px){.contact-grid{grid-template-columns:1fr 1fr}}
.contact-grid .register-panel{background:var(--ink-2);border-radius:var(--radius);padding:38px;color:#fff}
.contact-aside h2{font-size:1.5rem;font-weight:600;letter-spacing:-.02em;color:var(--ink-2)}
.contact-aside p{margin-top:12px;color:var(--muted)}
.contact-aside .facts{list-style:none;display:grid;gap:14px;margin-top:26px}
.contact-aside .facts li{display:flex;gap:12px;font-size:.97rem;color:#374151}
.contact-aside .facts .dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:9px}

/* ---------- footer ---------- */
footer.site-footer{background:var(--bg-hero);border-top:1px solid var(--hair);padding:64px 0 32px}
.footer-grid{display:grid;gap:40px;grid-template-columns:1fr}
@media(min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr}}
.footer-grid .blurb{font-size:.92rem;color:var(--muted);max-width:26em;margin-top:14px}
.footer-col h4{font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin-bottom:16px}
.footer-col ul{list-style:none;display:grid;gap:10px}
.footer-col a{text-decoration:none;font-size:.94rem;color:var(--ink);opacity:.8}
.footer-col a:hover{opacity:1}
.nap{margin-top:18px;font-size:.88rem;color:var(--muted)}
.footer-base{margin-top:52px;padding-top:24px;border-top:1px solid var(--hair);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--muted)}
.footer-credit a{color:var(--ink);font-weight:500}

/* ---------- mobile sticky CTA (G8 — design-locked styling; no phone line exists yet) ---------- */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;transform:translateY(110%);transition:transform .3s}
.sticky-cta.show{transform:none}
.sticky-cta a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;height:56px;font-size:.98rem;font-weight:600;text-decoration:none;background:var(--accent);color:#fff}
@media(min-width:1024px){.sticky-cta{display:none}}

/* 404 */
.err-hero{min-height:70vh;display:flex;align-items:center;background:var(--bg-hero);padding:140px 0 80px}
.err-hero .code{font-size:11px;font-weight:700;letter-spacing:.22em;color:var(--accent);text-transform:uppercase;margin-bottom:14px}
