@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap');

:root{
  --bg:#fff;
  --ink:#1d1d1f;
  --ink-secondary:#6e6e73;

  /* Single source of brand truth */
  --brand-color: rgb(133,173,218);
  --line: rgba(133,173,218,.25);
  --line-accent: var(--brand-color);
  --brand-color-light: var(--brand-color);
  --brand-gradient: linear-gradient(135deg, var(--brand-color), var(--brand-color));

  --max-narrow:692px;
  --max-standard:980px;
  --max-wide:1280px;

  --shadow-sm:0 2px 8px rgba(0,0,0,0.08);
  --shadow-md:0 4px 16px rgba(0,0,0,0.1);
  --shadow-lg:0 8px 32px rgba(0,0,0,0.12)
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#000;
    --ink:#f5f5f7;
    --ink-secondary:#a1a1a6;
    --line: rgba(133,173,218,.25);
  }
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}

body{
  font-family:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:17px;line-height:1.47059;letter-spacing:-0.01em;background:var(--bg);color:var(--ink)
}

.skip-link{position:absolute;left:-9999px;z-index:999}
.skip-link:focus{left:20px;top:20px;background:var(--brand-gradient);color:#fff;padding:8px 12px;border-radius:8px;text-decoration:none;font-weight:600}

/* Nav (non-sticky), centred */
.global-nav{position:relative;background:rgba(255,255,255,0.95);border-bottom:1px solid var(--line)}
@media (prefers-color-scheme: dark){.global-nav{background:rgba(0,0,0,0.95)}}
.nav-content{max-width:var(--max-wide);margin:0 auto;padding:12px max(env(safe-area-inset-left),22px);padding-right:max(env(safe-area-inset-right),22px)}
.nav-centered{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center}
.nav-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.brand-logo{display:block}
.brand-text{font-size:18px;line-height:1.2;font-weight:700;letter-spacing:-0.01em}
.nav-links{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.nav-links a{font-size:15px;line-height:1.2;font-weight:500;padding:8px 12px;border-radius:10px;color:inherit;text-decoration:none;opacity:.9;transition:background .2s ease,opacity .2s ease}
.nav-links a:hover,.nav-links a:focus-visible{background:rgba(133,173,218,.1);opacity:1;outline:none}

/* Hero */
.hero-section{padding:60px max(env(safe-area-inset-left),22px) 80px max(env(safe-area-inset-right),22px);border-bottom:1px solid var(--line)}
@media (min-width:1068px){.hero-section{padding-top:80px;padding-bottom:100px}}
.hero-grid{max-width:var(--max-wide);margin:0 auto;display:grid;grid-template-columns:1fr;gap:48px}
@media (min-width:900px){.hero-grid{grid-template-columns:1.3fr 1fr;gap:64px;align-items:center}}
.hero-headline{font-size:48px;line-height:1.08;font-weight:600;letter-spacing:-.015em;margin-bottom:24px}
.hero-headline.single-line{white-space:normal}
@media (min-width:734px){.hero-headline{font-size:64px;line-height:1.05;letter-spacing:-.02em}}
@media (min-width:1068px){.hero-headline{font-size:72px}}
.hero-body{display:grid;gap:24px}
.hero-body p{font-size:19px;line-height:1.52632;letter-spacing:.004em;color:var(--ink-secondary);max-width:640px}
@media (min-width:1068px){.hero-body p{font-size:21px;line-height:1.47619}}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.btn-primary,.btn-text{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:980px;font-size:17px;line-height:1.17648;font-weight:500;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease}
.btn-primary{background:var(--brand-gradient);color:#fff;box-shadow:var(--shadow-md)}
.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}
.btn-text{background:transparent;color:var(--ink);padding-left:0;padding-right:0}
.btn-text:hover{color:var(--brand-color)}
.arrow{transition:transform .2s ease}
.btn-primary:hover .arrow{transform:translateX(2px)}
.hero-visual{display:grid;place-items:center}

/* Hero image */
.hero-image{
  width:100%;
  height:auto;
  aspect-ratio:1;
  object-fit:cover;
  border-radius:16px;
  display:block;
}

/* Sections */
.section{padding:80px max(env(safe-area-inset-left),22px);border-bottom:1px solid var(--line)}
@media (min-width:1068px){.section{padding-top:100px;padding-bottom:100px}}
.section-header{max-width:var(--max-wide);margin:0 auto 48px}
.section-title{font-size:40px;line-height:1.1;font-weight:600;letter-spacing:-.005em;margin-bottom:16px}
@media (min-width:734px){.section-title{font-size:48px;line-height:1.08349;letter-spacing:-.008em}}
.section-lede{font-size:19px;line-height:1.42105;letter-spacing:.004em;color:var(--ink-secondary);max-width:640px}
@media (min-width:1068px){.section-lede{font-size:21px;line-height:1.381}}
.section-content{max-width:var(--max-wide);margin:0 auto}
.section-content.narrow{max-width:var(--max-narrow)}
.section-content.centre{text-align:center;margin-left:auto;margin-right:auto}

/* Content split (retained for other sections) */
.content-split{display:grid;gap:32px;grid-template-columns:1fr}
@media (min-width:900px){.content-split{grid-template-columns:1.2fr 1fr;gap:64px}}

/* Physical: full-width paragraph below subheading */
.physical-stack{max-width:var(--max-wide);margin:0 auto;display:grid;gap:16px}
.physical-stack .subhead-with-rule{margin-bottom:0}
.physical-stack .intro-block{max-width:none}

/* Subheading with brand rule */
.subhead-with-rule{font-size:21px;line-height:1.19048;font-weight:600;letter-spacing:.011em;margin:0 0 12px 0;padding-bottom:12px;border-bottom:2px solid var(--line-accent);color:var(--ink)}

/* Intro block */
.intro-block{font-size:21px;line-height:1.47619;letter-spacing:.004em;color:var(--ink-secondary)}

/* Foundation — aligned at top */
.foundation-grid{display:grid;gap:48px;grid-template-columns:1fr}
@media (min-width:734px){.foundation-grid{grid-template-columns:repeat(3,1fr)}}
.foundation-card{display:grid;gap:12px;align-content:start}
.icon{width:32px;height:32px}
.foundation-title{font-size:21px;line-height:1.19048;font-weight:600;letter-spacing:.011em}
.foundation-text{font-size:17px;line-height:1.47059;letter-spacing:-.004em;color:var(--ink-secondary)}

/* Collections */
.collection-grid{display:grid;gap:24px;grid-template-columns:1fr}
@media (min-width:734px){.collection-grid{grid-template-columns:repeat(3,1fr)}}
.collection-card{display:flex;flex-direction:column;gap:16px;min-height:240px;transform-origin:center;transform:scale(1);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.collection-card.boxed{padding:28px 24px;border:1px solid var(--line-accent);border-radius:16px;background:var(--bg);box-shadow:var(--shadow-sm)}
.collection-card.boxed:hover{transform:scale(1.02);box-shadow:var(--shadow-md);border-color:var(--brand-color)}
.card-badge{font-size:11px;line-height:1;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-color)}
.card-badge.concept{color:var(--ink-secondary)}
.card-title{font-size:24px;line-height:1.16667;font-weight:600;letter-spacing:.009em}
.card-desc{font-size:17px;line-height:1.47059;letter-spacing:-.004em;color:var(--ink-secondary);flex:1}
.card-link{display:inline-flex;align-items:center;gap:6px;font-size:17px;line-height:1.17648;font-weight:500;color:var(--brand-color);text-decoration:none;transition:gap .2s ease}
.card-link:hover{gap:8px}
.card-link.disabled{color:var(--ink-secondary);pointer-events:none}
.arrow-small{flex-shrink:0;stroke:currentColor}

/* Process */
.process-grid{display:grid;gap:48px;grid-template-columns:1fr}
@media (min-width:734px){.process-grid{grid-template-columns:repeat(3,1fr)}}
.process-step{display:flex;flex-direction:column;gap:0}
.step-title{font-size:21px;line-height:1.19048;font-weight:600;letter-spacing:.011em;margin:0;padding-bottom:16px;border-bottom:2px solid var(--line-accent)}
.step-title.with-rule{padding-bottom:16px}
.step-text{font-size:17px;line-height:1.47059;letter-spacing:-.004em;color:var(--ink-secondary);margin-top:16px}

/* Contact — centred */
.contact-links{display:grid;gap:16px;margin-top:32px;text-align:center}
.contact-link{display:grid;gap:8px;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:border-color .2s ease;text-align:center}
.contact-link:hover{border-color:var(--line-accent)}
.link-label{font-size:12px;line-height:1;font-weight:600;letter-spacing:.06em;color:var(--ink-secondary);text-transform:uppercase}
.link-value{font-size:21px;line-height:1.19048;font-weight:600;letter-spacing:.011em;color:var(--brand-color)}

/* Footer */
.global-footer{padding:40px max(env(safe-area-inset-left),22px)}
.footer-content{max-width:var(--max-wide);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer-brand{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-secondary)}
.footer-links{display:flex;gap:16px;flex-wrap:wrap}
.footer-links a{font-size:14px;color:var(--ink-secondary);text-decoration:none;transition:color .2s ease}
.footer-links a:hover{color:var(--brand-color)}

/* Motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
