/* Lucen Studios — v3 "Daylight spectrum"
   Built to /DESIGN.md (open-design 9-section schema). Warm high-key Swiss.
   Grotesque + mono. One honey accent + a 5-hue family spectrum. One dark beat.
   No glow, no glass, no bloom. Mobile-first. No framework.
   Fonts self-hosted (no Google Fonts CDN) for privacy/GDPR. */

/* ---------- self-hosted fonts ---------- */
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/hanken-grotesk-v12-latin_latin-ext-regular.woff2') format('woff2')}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/hanken-grotesk-v12-latin_latin-ext-500.woff2') format('woff2')}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/hanken-grotesk-v12-latin_latin-ext-600.woff2') format('woff2')}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/hanken-grotesk-v12-latin_latin-ext-700.woff2') format('woff2')}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:800;font-display:swap;src:url('../assets/fonts/hanken-grotesk-v12-latin_latin-ext-800.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/inter-v20-latin_latin-ext-regular.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/inter-v20-latin_latin-ext-500.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/inter-v20-latin_latin-ext-600.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/jetbrains-mono-v24-latin_latin-ext-500.woff2') format('woff2')}

:root {
  --daylight:#FBFAF6; --sand:#F3F0E8; --cloud:#FFFFFF;
  --ink:#171512; --ink-soft:#57524A; --ink-mute:#918B7E; --line:#E7E1D3;
  --honey:#A66E1C; --honey-hi:#C88A2E;
  --night:#16130D; --on-night:#F3EEE2; --on-night-soft:#B4AC9A; --night-line:#2A2519;

  --beauty:#D2637F; --fitness:#5C9E63; --learning:#5580C0; --home:#C0872B; --pets:#3FA093;

  --maxw:1200px; --r:18px; --r-sm:12px;
  --fd:"Hanken Grotesk","Inter",system-ui,sans-serif;
  --fb:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --fm:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--fb);color:var(--ink-soft);background:var(--daylight);
  line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;display:block}
a{color:var(--honey);text-decoration:none}
a:hover{color:#8a5a13}

h1,h2,h3,h4{font-family:var(--fd);font-weight:700;line-height:1.06;letter-spacing:-.025em;
  color:var(--ink);margin:0 0 .45em}
h1{font-size:clamp(2.8rem,6.5vw,5rem);font-weight:800}
h2{font-size:clamp(2rem,4vw,3rem)}
h3{font-size:1.3rem;letter-spacing:-.02em}
p{margin:0 0 1rem}
:focus-visible{outline:2px solid var(--honey);outline-offset:3px;border-radius:5px}
::selection{background:rgba(200,138,46,.24)}

/* ---- mono label (the craft device) ---- */
.mono{font-family:var(--fm);font-weight:500;font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-mute)}
.eyebrow{font-family:var(--fm);font-weight:500;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--honey);margin:0 0 1.1rem;display:inline-flex;align-items:center;gap:.7em}
.eyebrow::before{content:"";width:20px;height:1px;background:currentColor;opacity:.7}

/* ---- layout ---- */
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 26px}
@media(min-width:900px){.wrap{padding:0 40px}}
.section{padding:clamp(76px,10vw,128px) 0;position:relative}
.sand{background:var(--sand)}
.night{background:var(--night);color:var(--on-night-soft)}
.night h1,.night h2,.night h3{color:var(--on-night)}
.night .eyebrow{color:var(--honey-hi)}
.night .lead{color:var(--on-night-soft)}
.lead{font-size:clamp(1.08rem,1.9vw,1.28rem);line-height:1.55;color:var(--ink-soft);max-width:46ch}
.measure{max-width:60ch}.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}

/* ---- spectrum rule (signature divider) ---- */
.spectrum{display:flex;height:5px;width:100%;max-width:200px;border-radius:99px;overflow:hidden;margin:0}
.spectrum i{flex:1}
.spectrum i:nth-child(1){background:var(--beauty)}
.spectrum i:nth-child(2){background:var(--fitness)}
.spectrum i:nth-child(3){background:var(--learning)}
.spectrum i:nth-child(4){background:var(--home)}
.spectrum i:nth-child(5){background:var(--pets)}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--fb);font-weight:600;font-size:.98rem;
  padding:15px 28px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;text-decoration:none;
  white-space:nowrap;transition:transform .18s ease,background .18s ease,border-color .18s,color .18s,box-shadow .2s}
.btn:hover{transform:translateY(-2px)}
.btn--primary{background:var(--honey);color:#fff}
.btn--primary:hover{background:var(--honey-hi);color:#fff;box-shadow:0 12px 30px -12px rgba(166,110,28,.55)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--ink);color:var(--ink)}
.night .btn--ghost{color:var(--on-night);border-color:var(--night-line)}
.night .btn--ghost:hover{border-color:var(--on-night);color:var(--on-night)}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:60;background:rgba(251,250,246,.82);
  backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;height:70px}
.brand{display:inline-flex;align-items:center;gap:11px;font-family:var(--fd);font-weight:800;
  font-size:1.2rem;color:var(--ink);letter-spacing:-.03em}
.brand:hover{color:var(--ink)}
.brand__mark{width:28px;height:28px}
.nav__links{display:flex;align-items:center;gap:30px}
.nav__links a{color:var(--ink-soft);font-weight:500;font-size:.96rem}
.nav__links a:hover{color:var(--ink)}
.nav__toggle{display:none;background:none;border:0;padding:8px;cursor:pointer;color:var(--ink)}
.nav__toggle svg{width:24px;height:24px}
@media(max-width:840px){
  .nav__links{position:fixed;inset:70px 0 auto 0;flex-direction:column;gap:0;background:var(--daylight);
    border-bottom:1px solid var(--line);padding:10px 26px 22px;transform:translateY(-130%);
    transition:transform .3s cubic-bezier(.2,.7,.2,1);align-items:stretch}
  .nav__links[data-open="true"]{transform:translateY(0)}
  .nav__links a{padding:15px 0;border-bottom:1px solid var(--line)}
  .nav__links .btn{margin-top:14px;justify-content:center}
  .nav__toggle{display:inline-flex}
}

/* ---- hero ---- */
.hero{padding:clamp(56px,7vw,96px) 0 clamp(64px,8vw,112px)}
.hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero__meta{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.hero h1{max-width:13ch}
.hero h1 em{font-style:normal;color:var(--honey)}
.hero .lead{margin-top:1.3rem;font-size:clamp(1.1rem,1.9vw,1.34rem);max-width:42ch}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:2rem}
.hero__note{margin-top:1.7rem}
@media(max-width:900px){.hero__grid{grid-template-columns:1fr;gap:44px}}

/* spectrum panel — the app families as a stack of light (hero signature) */
.panel{background:var(--cloud);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:0 30px 60px -40px rgba(23,21,18,.32);overflow:hidden}
.panel__head{display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;border-bottom:1px solid var(--line)}
.prow{display:flex;align-items:center;gap:14px;padding:15px 20px;border-bottom:1px solid var(--line);
  animation:rise .6s cubic-bezier(.2,.8,.2,1) backwards}
.prow:last-child{border-bottom:0}
.prow__sw{width:30px;height:30px;border-radius:9px;flex:none}
.prow__nm{font-family:var(--fd);font-weight:700;font-size:1rem;color:var(--ink);letter-spacing:-.02em}
.prow__st{margin-left:auto;font-family:var(--fm);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-mute);border:1px solid var(--line);border-radius:99px;padding:4px 9px}
.prow:nth-child(2){animation-delay:.05s}.prow:nth-child(3){animation-delay:.12s}
.prow:nth-child(4){animation-delay:.19s}.prow:nth-child(5){animation-delay:.26s}.prow:nth-child(6){animation-delay:.33s}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---- product cards (mock-UI previews) ---- */
.lumes{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:2.6rem}
.lume{background:var(--cloud);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .22s ease,border-color .22s}
.lume:hover{transform:translateY(-3px);border-color:var(--h);box-shadow:0 24px 44px -28px rgba(23,21,18,.4)}
.lume__screen{position:relative;aspect-ratio:16/10;overflow:hidden;
  background:linear-gradient(160deg,color-mix(in srgb,var(--h) 22%,var(--cloud)),color-mix(in srgb,var(--h) 8%,var(--cloud)))}
.mock{position:absolute;inset:16% 15%;display:flex;flex-direction:column;gap:8px}
.mock__ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--h);color:#fff;margin-bottom:4px}
.mock__ic svg{width:20px;height:20px}
.mock__bar{height:8px;border-radius:5px;background:color-mix(in srgb,var(--h) 26%,#fff)}
.mock__bar.w70{width:70%}.mock__bar.w45{width:45%}
.mock__pill{align-self:flex-start;margin-top:auto;font-family:var(--fm);font-size:.6rem;letter-spacing:.06em;
  text-transform:uppercase;padding:5px 10px;border-radius:99px;background:var(--h);color:#fff;opacity:.92}
.lume__body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.lume__tag{font-family:var(--fm);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:12px}
.lume__tag b{color:var(--h);font-weight:500}
.lume__body h3{margin-bottom:.4rem}
.lume__body p{color:var(--ink-soft);font-size:.97rem;margin-bottom:1.1rem}
.lume__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
.who{font-size:.8rem;color:var(--ink-mute)}
.lume__link{margin-top:14px;font-size:.92rem;font-weight:600}
.f-beauty{--h:var(--beauty)}.f-fitness{--h:var(--fitness)}.f-learning{--h:var(--learning)}
.f-home{--h:var(--home)}.f-pets{--h:var(--pets)}.f-more{--h:#A89C86}
.lume.f-more{border-style:dashed}
.lume.f-more .lume__screen{background:var(--sand)}

/* ---- maxims (dark section) ---- */
.maxims{display:grid;gap:1px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:2.8rem;
  background:var(--night-line);border:1px solid var(--night-line);border-radius:var(--r);overflow:hidden}
.maxim{background:var(--night);padding:30px 26px}
.maxim .k{font-family:var(--fm);font-size:.66rem;letter-spacing:.14em;color:var(--on-night-soft)}
.maxim b{font-family:var(--fd);font-weight:700;font-size:1.22rem;letter-spacing:-.02em;color:var(--on-night);
  display:block;margin:.5rem 0 .5rem}
.maxim b i{font-style:normal;color:var(--honey-hi)}
.maxim p{margin:0;font-size:.95rem;color:var(--on-night-soft)}

/* ---- founders ---- */
.founder{display:grid;grid-template-columns:240px 1fr;gap:48px;align-items:center}
.founder__photo{width:240px;height:288px;border-radius:var(--r);overflow:hidden;position:relative;
  background:var(--sand);display:grid;place-items:center;border:1px solid var(--line)}
.founder__photo::before{content:"";position:absolute;inset:0;
  background:linear-gradient(150deg,color-mix(in srgb,var(--home) 16%,var(--sand)),var(--sand))}
.founder__mono{position:relative;font-family:var(--fd);font-weight:800;font-size:3.2rem;color:var(--honey);letter-spacing:-.03em}
.founder__cap{font-family:var(--fm);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);margin-top:12px;text-align:center}
@media(max-width:640px){.founder{grid-template-columns:1fr;justify-items:start}}

/* ---- chips ---- */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:1.7rem}
.chip{background:var(--cloud);border:1px solid var(--line);border-radius:999px;padding:10px 17px;font-size:.92rem;color:var(--ink-soft)}

/* ---- waitlist ---- */
.waitlist{max-width:520px}
.waitlist form{display:flex;gap:10px;margin-top:1.5rem;flex-wrap:wrap}
.waitlist input[type=email]{flex:1 1 240px;min-width:0;font:inherit;padding:15px 17px;border-radius:12px;
  border:1.5px solid var(--line);background:var(--cloud);color:var(--ink)}
.waitlist input:focus{outline:none;border-color:var(--honey)}
.night .waitlist input{background:rgba(255,255,255,.05);border-color:var(--night-line);color:var(--on-night)}
.night .waitlist input::placeholder{color:var(--on-night-soft)}
.form-msg{margin-top:1rem;font-size:.92rem;min-height:1.2em}
.form-msg[data-state=ok]{color:var(--fitness)}
.form-msg[data-state=err]{color:#c25a4e}
.night .form-msg[data-state=ok]{color:#8fce97}

/* ---- generic form (partner) ---- */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.field label{font-size:.85rem;font-weight:600;color:var(--ink)}
.field input,.field textarea{font:inherit;padding:14px 16px;border-radius:12px;border:1.5px solid var(--line);background:var(--cloud);color:var(--ink)}
.field :focus{outline:none;border-color:var(--honey)}
.field textarea{min-height:140px;resize:vertical}
.form-card{background:var(--cloud);border:1px solid var(--line);border-radius:var(--r);padding:30px;
  box-shadow:0 24px 50px -40px rgba(23,21,18,.3);max-width:560px}

/* ---- prose ---- */
.prose{max-width:66ch}
.prose h2{margin-top:2.6rem}.prose h3{margin-top:1.9rem}
.prose ul{padding-left:1.2rem}.prose li{margin-bottom:.55rem}
.prose a{text-decoration:underline;text-underline-offset:3px}

/* ---- page header ---- */
.phead{padding:clamp(60px,8vw,104px) 0 clamp(28px,5vw,52px)}
.phead__meta{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.phead h1{font-size:clamp(2.4rem,5.5vw,3.6rem)}

/* steps (partner) */
.steps{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.step .k{font-family:var(--fm);font-size:.68rem;letter-spacing:.12em;color:var(--honey)}
.step b{font-family:var(--fd);font-weight:700;font-size:1.12rem;color:var(--ink);display:block;margin:.5rem 0 .3rem}
.step p{color:var(--ink-soft);font-size:.96rem;margin:0}

/* ---- footer ---- */
.footer{background:var(--night);color:var(--on-night-soft);padding:72px 0 42px}
.footer a{color:var(--on-night-soft)}.footer a:hover{color:var(--on-night)}
.footer__top{display:flex;flex-wrap:wrap;gap:44px;justify-content:space-between}
.footer__brand{max-width:330px}
.footer__brand .brand{color:var(--on-night)}
.footer__brand .brand__mark{width:26px;height:26px}
.footer__brand p{font-size:.92rem;margin-top:14px;color:var(--on-night-soft)}
.footer__spectrum{margin-top:18px}
.footer__cols{display:flex;gap:58px;flex-wrap:wrap}
.footer__col h4{font-family:var(--fm);font-size:.7rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--honey-hi);margin:0 0 15px}
.footer__col a{display:block;font-size:.94rem;margin-bottom:11px}
.footer__bar{margin-top:52px;padding-top:26px;border-top:1px solid var(--night-line);display:flex;
  flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:.84rem;color:var(--on-night-soft)}

/* ---- reveal ---- */
.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.js .reveal.is-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none;transition:none}
  .prow,.btn:hover,.lume:hover{animation:none;transform:none}
}
