/* ============================================
   VELARIS — DESIGN SYSTEM · MOBILE FIRST
   Base = 375px. Enhance with min-width.
   ============================================ */

:root{
  --ink:#161616;--black:#000000;--white:#ffffff;
  --paper:#fbfaf7;--paper-soft:#f7f5f0;
  --muted:#77716a;--stone:#aaa39a;
  --hair:rgba(22,22,22,.08);--hair-strong:rgba(22,22,22,.18);
  --error:#8a3d2e;
  --font:'Inter','Helvetica Neue',Arial,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --mark-weight:200;--mark-tracking:.42em;
  --touch:48px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;background:var(--paper);-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{font-family:var(--font);background:var(--paper);color:var(--ink);font-weight:300;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;letter-spacing:.01em;}
img,svg{max-width:100%;display:block;}
a{color:inherit;}
button{cursor:pointer;font-family:var(--font);}
::selection{background:var(--ink);color:var(--paper);}

/* ─── Mark ─── */
.mark{font-family:var(--font);font-weight:var(--mark-weight);letter-spacing:var(--mark-tracking);text-transform:uppercase;color:var(--ink);}

/* ============ NAV MOBILE FIRST ============ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:.9rem 1.4rem;
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(251,250,247,.94);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--hair);
  transition:padding .4s var(--ease);
}
.nav.solid{background:rgba(251,250,247,.97);}
.nav .mark{font-size:.72rem;text-decoration:none;}
.nav-links{display:none;}
.nav-link{font-family:var(--font);font-weight:400;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .3s var(--ease);padding:.4rem 0;}
.nav-link:hover,.nav-link.active{color:var(--ink);}
.nav-link.active{border-bottom:1px solid var(--ink);}
.nav-cta{display:none;}

/* Hamburger */
.nav-burger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:var(--touch);height:var(--touch);background:none;border:none;padding:12px;margin-right:-12px;z-index:110;-webkit-tap-highlight-color:transparent;}
.nav-burger-line{display:block;height:1px;background:var(--ink);transition:transform .35s var(--ease),opacity .25s,width .3s var(--ease);transform-origin:center;}
.nav-burger-line:first-child{width:22px;}
.nav-burger-line:last-child{width:14px;}
.nav-burger.open .nav-burger-line:first-child{transform:rotate(45deg) translate(4px,4px);width:20px;}
.nav-burger.open .nav-burger-line:last-child{transform:rotate(-45deg) translate(4px,-4px);width:20px;}

/* Mobile fullscreen menu */
.nav-mobile{
  position:fixed;inset:0;background:var(--paper);z-index:99;
  display:flex;flex-direction:column;
  padding:5.5rem 2rem 3rem;
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  transform:translateY(-6px);
  transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s;
}
.nav-mobile.open{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0);}
.nav-mobile-list{list-style:none;flex:1;}
.nav-mobile-item{border-bottom:1px solid var(--hair);}
.nav-mobile-link{
  display:flex;align-items:center;justify-content:space-between;
  text-decoration:none;color:var(--ink);
  font-weight:200;font-size:2rem;letter-spacing:-.01em;
  padding:1.2rem 0;
  transition:opacity .25s var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.nav-mobile-link:hover{opacity:.5;}
.nav-mobile-link em{font-style:normal;font-size:.52rem;letter-spacing:.34em;text-transform:uppercase;color:var(--stone);font-weight:500;}
.nav-mobile-foot{margin-top:2rem;font-size:.5rem;letter-spacing:.42em;text-transform:uppercase;color:var(--stone);font-weight:500;}

@media (min-width:768px){
  .nav{padding:1.1rem 2.4rem;}
  .nav-links{display:flex;align-items:center;gap:2rem;}
  .nav-cta{display:inline-block;font-family:var(--font);font-weight:400;font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:.6rem 0;border-bottom:1px solid var(--ink);transition:opacity .3s var(--ease);}
  .nav-cta:hover{opacity:.5;}
  .nav-burger{display:none;}
  .nav-mobile{display:none !important;}
}

/* ============ FOOTER ============ */
footer.foot{padding:2rem 1.4rem;display:flex;flex-direction:column;gap:.8rem;border-top:1px solid var(--hair);}
.foot .mark{font-size:.72rem;}
.foot-c{font-size:.54rem;letter-spacing:.34em;text-transform:uppercase;color:var(--stone);font-weight:400;}
@media (min-width:600px){footer.foot{flex-direction:row;justify-content:space-between;align-items:center;padding:2.4rem;}}

/* ============ AUTH ============ */
.auth-page{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;}
.auth-main{flex:1;display:flex;flex-direction:column;padding-top:4.5rem;}
.auth-aside{display:none;}
.auth-form-wrap{flex:1;padding:2.8rem 1.6rem 4rem;display:flex;flex-direction:column;justify-content:center;}
.auth-form-inner{max-width:440px;width:100%;margin:0 auto;}
.auth-form-step{font-size:.52rem;letter-spacing:.5em;text-transform:uppercase;color:var(--stone);font-weight:500;margin-bottom:1.4rem;}
.auth-form-h1{font-weight:200;font-size:clamp(2rem,6vw,2.6rem);line-height:1.08;letter-spacing:-.02em;margin-bottom:.6rem;}
.auth-form-h1 em{font-style:italic;font-weight:300;color:var(--muted);}
.auth-form-sub{font-size:.92rem;line-height:1.75;color:var(--muted);font-weight:300;margin-bottom:2.2rem;}
@media (min-width:900px){
  .auth-main{flex-direction:row;padding-top:0;}
  .auth-aside{display:flex;flex:0 0 45%;position:relative;background:var(--ink);color:var(--paper);padding:5rem 4rem;flex-direction:column;justify-content:space-between;overflow:hidden;}
  .auth-aside::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(251,250,247,.05),transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(251,250,247,.04),transparent 50%);pointer-events:none;}
  .auth-aside-content{position:relative;z-index:2;max-width:360px;}
  .auth-aside-eyebrow{font-size:.56rem;letter-spacing:.5em;text-transform:uppercase;color:var(--stone);font-weight:500;margin-bottom:2.4rem;}
  .auth-aside h1{font-weight:200;font-size:clamp(2rem,2.8vw,2.8rem);line-height:1.08;letter-spacing:-.02em;color:var(--paper);margin-bottom:1.6rem;}
  .auth-aside h1 em{font-style:italic;font-weight:300;color:var(--stone);}
  .auth-aside p{font-size:.96rem;line-height:1.85;color:var(--stone);font-weight:300;}
  .auth-aside-foot{position:relative;z-index:2;font-size:.56rem;letter-spacing:.34em;text-transform:uppercase;color:var(--stone);font-weight:500;}
  .auth-aside-stars{position:absolute;inset:0;pointer-events:none;opacity:.55;}
  .auth-aside-stars .s{position:absolute;background:var(--paper);border-radius:50%;animation:twinkle 6s ease-in-out infinite;}
  @keyframes twinkle{0%,100%{opacity:.15;}50%{opacity:.7;}}
  .auth-form-wrap{padding:5rem 4rem;}
}

/* ============ FORMS ============ */
.field{margin-bottom:1.8rem;position:relative;}
.field label{display:block;font-size:.52rem;letter-spacing:.4em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:.5rem;}
.field input,.field select{
  width:100%;background:transparent;border:none;
  border-bottom:1px solid var(--hair-strong);outline:none;
  padding:.6rem 0 .9rem;
  font-family:var(--font);font-size:16px;font-weight:300;
  color:var(--ink);letter-spacing:.005em;
  transition:border-color .3s var(--ease);
  -webkit-appearance:none;appearance:none;border-radius:0;
  min-height:var(--touch);
}
.field input::placeholder{color:var(--stone);font-weight:300;}
.field input:focus,.field select:focus{border-bottom-color:var(--ink);}
.field input[type="date"]::-webkit-calendar-picker-indicator,
.field input[type="time"]::-webkit-calendar-picker-indicator{filter:invert(.4);cursor:pointer;padding:8px;}
.field-row{display:grid;grid-template-columns:1fr;gap:0;}
.field-help{display:block;font-size:.52rem;letter-spacing:.2em;text-transform:uppercase;color:var(--stone);margin-top:.4rem;}
@media (min-width:500px){.field-row{grid-template-columns:1fr 1fr;gap:1.6rem;}}

/* ============ BUTTONS ============ */
.btn-primary{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--ink);color:var(--paper);
  font-family:var(--font);font-size:.66rem;font-weight:500;
  letter-spacing:.38em;text-transform:uppercase;text-decoration:none;
  padding:1.2rem 2rem;min-height:var(--touch);
  border:none;cursor:pointer;
  transition:opacity .25s var(--ease),transform .15s;
  white-space:nowrap;-webkit-tap-highlight-color:transparent;
}
.btn-primary:hover{opacity:.85;}
.btn-primary:active{opacity:.7;transform:scale(.98);}
.btn-primary:disabled{opacity:.35;cursor:not-allowed;transform:none;}
.btn-primary.full{width:100%;}
@media (min-width:768px){.btn-primary{padding:1.1rem 2.4rem;}.btn-primary:hover{letter-spacing:.43em;}}

.btn-ghost{
  display:inline-flex;align-items:center;
  background:transparent;color:var(--ink);
  font-family:var(--font);font-size:.62rem;font-weight:500;
  letter-spacing:.32em;text-transform:uppercase;text-decoration:none;
  padding:.6rem 0;min-height:var(--touch);
  border:none;border-bottom:1px solid var(--ink);cursor:pointer;
  transition:opacity .25s var(--ease);-webkit-tap-highlight-color:transparent;
}
.btn-ghost:hover{opacity:.55;}

/* ============ AUTH META ============ */
.auth-meta-row{display:flex;flex-direction:column;gap:1rem;margin-top:2rem;}
.auth-meta-link{font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);text-decoration:none;font-weight:500;transition:color .3s var(--ease);}
.auth-meta-link:hover{color:var(--ink);}
.auth-meta-link strong{color:var(--ink);font-weight:500;border-bottom:1px solid var(--ink);}
@media (min-width:500px){.auth-meta-row{flex-direction:row;justify-content:space-between;align-items:center;}}

/* ============ ALERTS ============ */
.alert{margin-bottom:1.4rem;padding:.9rem 1.1rem;font-size:.86rem;font-weight:300;border-left:2px solid var(--ink);background:rgba(22,22,22,.04);color:var(--ink);display:none;}
.alert.show{display:block;}
.alert.err{border-left-color:var(--error);}
.alert.ok{border-left-color:var(--ink);}

/* ============ REVEAL ============ */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal.d1{transition-delay:.1s;}
.reveal.d2{transition-delay:.2s;}
.reveal.d3{transition-delay:.3s;}
.reveal.d4{transition-delay:.4s;}

/* ============ LOADING ============ */
.orbit{display:inline-block;width:20px;height:20px;border:1px solid var(--hair-strong);border-radius:50%;border-top-color:var(--ink);animation:spin 1.2s linear infinite;flex-shrink:0;}
.orbit.sm{width:14px;height:14px;}
@keyframes spin{to{transform:rotate(360deg);}}

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

/* ─── Instagram footer link ─── */
.foot-ig{
  display:inline-flex;
  align-items:center;
  color:var(--stone);
  text-decoration:none;
  transition:color .3s var(--ease),transform .3s var(--ease);
  -webkit-tap-highlight-color:transparent;
  flex-shrink:0;
}
.foot-ig:hover{color:var(--ink);transform:scale(1.1);}
.foot-ig svg{display:block;}
