
/* AORILA — Vivet design study. Monochrome, one weight, sharp corners. */
:root{
  --bg:#ffffff; --ink:#000000; --hair:#dfdfdf; --btn-hover:#262626;
  --scrim:rgba(0,0,0,.15);
  --font:"Helvetica Now Text",Helvetica,Arial,"Helvetica Neue",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;-webkit-text-size-adjust:100%;overflow-x:clip}
body{font-family:var(--font);font-weight:400;color:var(--ink);background:var(--bg);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:13px;line-height:1.6;
  min-height:100vh;display:flex;flex-direction:column}
h1,h2,h3,h4,h5,h6{font-weight:400}
a{color:var(--ink);text-decoration:none}
button{font-family:var(--font);font-weight:400;background:none;border:0;cursor:pointer;color:var(--ink)}
img{display:block;max-width:100%}
.u{text-transform:uppercase;letter-spacing:.13em;font-size:11px}
::selection{background:#000;color:#fff}

/* ---------- header ---------- */
.header{position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  height:calc(48px + env(safe-area-inset-top));
  padding:env(safe-area-inset-top) max(24px, env(safe-area-inset-right)) 0 max(24px, env(safe-area-inset-left));
  transition:transform .28s ease,background-color .2s ease;background:transparent}
.header--hidden{transform:translateY(-100%)}
.header--solid{background:var(--bg)}
body:not(:has(main.home)) .header{background:#fff}
.header__nav{display:flex;gap:28px;align-items:center}
.header__link{font-size:11px;letter-spacing:.13em;text-transform:uppercase;padding:6px 0;position:relative}
.header__wordmark{position:absolute;left:50%;top:calc(env(safe-area-inset-top) + 24px);transform:translate(-50%,-50%);
  font-size:14px;letter-spacing:.42em;text-transform:uppercase;text-indent:.42em;white-space:nowrap}
.header__wordmark img{display:block;height:20px;width:auto}
.header__tools{display:flex;gap:24px;align-items:center}
.header__menu-btn{display:none}

/* dropdown */
.scrim{position:fixed;inset:0;background:var(--scrim);opacity:0;pointer-events:none;
  transition:opacity .2s ease;z-index:58}
.scrim--on{opacity:1;pointer-events:auto}
.navdrop{position:fixed;top:48px;left:0;bottom:0;width:480px;max-width:88vw;background:var(--bg);
  z-index:59;padding:28px 32px;transform:translateX(-12px);opacity:0;pointer-events:none;
  transition:transform .2s ease,opacity .2s ease;overflow-y:auto}
.navdrop--on{transform:none;opacity:1;pointer-events:auto}
.navdrop--right{left:auto;right:0;transform:translateX(12px)}
.navdrop--right.navdrop--on{transform:none}
.navdrop a{display:block;padding:15px 0;font-size:14px;text-transform:uppercase;letter-spacing:.06em;
  color:rgba(0,0,0,.8);border-bottom:1px solid var(--hair)}
.navdrop a:hover{color:#000}
.navdrop a:last-child{border-bottom:0}

/* ---------- hero ---------- */
.stack{position:relative;overflow:clip;height:100svh}
.stack__pin{height:calc(100svh + 300px)}
.stack__word{position:sticky;top:56svh;z-index:2;text-align:center;pointer-events:none}
.stack__word > span{font-size:clamp(44px,7.2vw,104px);letter-spacing:.4em;text-indent:.4em;
  text-transform:uppercase;color:#000}
.stack__word > h1.hero-word{margin:0;font-weight:700;font-size:clamp(34px,5.4vw,76px);
  letter-spacing:.14em;text-indent:.14em;text-transform:uppercase;color:#000}
.stack__pad{height:150px}
.stack__media{position:absolute;inset:0;z-index:0}
.stack__media img{width:100%;height:100%;object-fit:cover;will-change:transform}
.stack__shade{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to top,rgba(0,0,0,.15),rgba(0,0,0,0) 42%)}
.hero-delivery{margin:20px 0 0;font-size:13px;letter-spacing:.24em;text-transform:uppercase;font-weight:600}
.hero-cta{margin-top:18px;display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:auto}
.hero-cta .btn{width:min(240px,70vw);text-decoration:none}
.hero-deposit{margin:0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}

/* ---------- footer ---------- */
.footer{border-top:1px solid #000;padding:96px max(24px, env(safe-area-inset-right)) calc(72px + env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px;width:100%;max-width:none;margin-top:auto}
main{flex:1 0 auto}
.fcol__head{display:flex;justify-content:space-between;align-items:center;width:100%;
  padding:0 0 18px;font-size:12px;letter-spacing:.13em;pointer-events:none}
.fcol__head .pm{display:none}
.fcol__body a{display:block;padding:7px 0;font-size:13px;color:rgba(0,0,0,.82)}
.fcol__body a:hover{color:#000}

/* ---------- buttons ---------- */
.btn{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;
  width:100%;height:48px;background:var(--ink);color:#fff;border:0;border-radius:0;
  font-size:13px;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;
  transition:background-color .18s ease}
.btn:hover{background:var(--btn-hover)}
.btn .rl{position:relative;display:block;height:1.35em;line-height:1.35em;overflow:hidden}
.btn .rl i{display:block;font-style:normal;transition:transform .18s cubic-bezier(.25,.46,.45,.94)}
.btn .rl i + i{position:absolute;left:0;right:0;top:0;transform:translateY(100%)}
.btn:hover .rl i{transform:translateY(-100%)}
.btn:hover .rl i + i{transform:translateY(0)}
.btn--outline{background:#fff;color:#000;border:1px solid #000}
.btn--outline:hover{background:#000;color:#fff}
.btn[disabled]{opacity:.45;cursor:default}
.btn[disabled]:hover{background:#000}
.txtbtn{font-size:11px;letter-spacing:.13em;text-transform:uppercase}

/* ---------- collection grid ---------- */
.toolbar{display:flex;justify-content:flex-end;padding:14px 24px;border-bottom:1px solid var(--ink)}
.grid{display:grid;grid-template-columns:repeat(5,1fr);
  border-left:1px solid var(--ink)}
.card{border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);display:block}
.divisions-grid{grid-template-columns:repeat(2,1fr)}
.card__media{position:relative;aspect-ratio:3/4;overflow:hidden;background:#fff}
.card__media img,.card__media .tile{width:100%;height:100%;object-fit:cover;object-position:22% 50%;
  transition:transform .35s ease}
.card:hover .card__media img{transform:scale(1.03)}
.tile{display:flex;align-items:center;justify-content:center;text-align:center;padding:20px}
.tile span{font-size:12px;letter-spacing:.28em;text-indent:.28em;text-transform:uppercase;line-height:2.2}
.card__qv{position:absolute;left:0;right:0;bottom:0;height:44px;background:#000;color:#fff;
  font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  transform:translateY(100%);transition:transform .2s ease}
.card:hover .card__qv{transform:none}
.card__info{padding:12px 14px 16px}
.card__price{font-size:12px;margin-bottom:4px}
.card__title{font-size:13px;letter-spacing:.06em;text-transform:uppercase}

/* ---------- filter drawer ---------- */
.drawer{position:fixed;top:0;right:0;bottom:0;width:440px;max-width:92vw;background:var(--bg);
  z-index:70;transform:translateX(102%);transition:transform .2s ease;
  display:flex;flex-direction:column}
.drawer--on{transform:none}
.drawer__head{display:flex;justify-content:space-between;align-items:center;
  padding:18px 24px;border-bottom:1px solid var(--hair);font-size:12px;letter-spacing:.13em;text-transform:uppercase}
.drawer__body{flex:1;overflow-y:auto;padding:8px 24px 24px}
.drawer__foot{padding:16px 24px;border-top:1px solid var(--hair)}
.facet{border-bottom:1px solid var(--hair)}
.facet__head{display:flex;justify-content:space-between;align-items:center;width:100%;
  padding:16px 0;font-size:12px;letter-spacing:.13em;text-transform:uppercase}
.facet__body{max-height:0;overflow:hidden;transition:max-height .25s ease}
.facet--open .facet__body{max-height:400px}
.facet__body .opt-row{padding:4px 0 16px;display:flex;flex-direction:column;gap:12px}
.check{display:flex;align-items:center;gap:12px;font-size:13px;cursor:pointer}
.check input{appearance:none;width:16px;height:16px;border:1px solid #000;border-radius:0;cursor:pointer;position:relative;flex:none}
.check input:checked{background:#000}
.radio{display:flex;align-items:center;gap:12px;font-size:13px;cursor:pointer}
.radio input{appearance:none;width:16px;height:16px;border:1px solid #000;border-radius:50%;cursor:pointer;flex:none}
.radio input:checked{background:#000;box-shadow:inset 0 0 0 3px #fff}
.pricerow{display:flex;gap:12px;padding-bottom:16px}
.pricerow input{width:100%;height:40px;border:1px solid #000;border-radius:0;padding:0 12px;
  font-family:var(--font);font-size:13px}

/* ---------- product page ---------- */
.product{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100svh - 48px)}
.product__info{padding:72px 56px 96px;max-width:640px}
.product__info h1{font-size:28px;letter-spacing:.06em;text-transform:uppercase;line-height:1.25;margin-bottom:10px}
.product__price{font-size:15px;margin-bottom:26px}
.product__opts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}
.opt{min-width:90px;height:48px;padding:0 16px;border:1px solid #000;border-radius:0;
  display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:.04em;background:#fff}
.opt--sel{background:#000;color:#fff}
.product__note{font-size:12px;color:rgba(0,0,0,.62);line-height:1.7;margin:18px 0 30px;max-width:420px}
.product__gallery{position:relative;background:#fff;border-left:1px solid var(--ink)}
.gslide{position:absolute;inset:0;display:none}
.gslide--on{display:block}
.gslide img,.gslide .tile{width:100%;height:100%;object-fit:cover}
.gslide--fit img{object-fit:contain;background:#fff}
.gal__arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;
  display:flex;align-items:center;justify-content:center;font-size:20px;z-index:3;background:rgba(255,255,255,.7)}
.gal__arrow--l{left:12px}.gal__arrow--r{right:12px}
.gal__dots{position:absolute;bottom:18px;left:0;right:0;display:flex;gap:8px;justify-content:center;z-index:3}
.gal__dots button{width:8px;height:8px;border-radius:50%;border:1px solid #000;background:transparent;padding:0}
.gal__dots button.on{background:#000}
.acc{border-top:1px solid var(--hair)}
.acc:last-child{border-bottom:1px solid var(--hair)}
.acc__head{display:flex;justify-content:space-between;align-items:center;width:100%;
  padding:18px 0;font-size:12px;letter-spacing:.13em;text-transform:uppercase;text-align:left}
.acc__body{max-height:0;overflow:hidden;transition:max-height .3s ease}
.acc__body p{font-size:13px;line-height:1.7;padding:0 0 22px;max-width:440px;color:rgba(0,0,0,.85)}
.badge{display:inline-block;border:1px solid #000;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;padding:6px 10px;margin-bottom:14px}

/* ---------- policy / simple pages ---------- */
.page{max-width:560px;margin:0 auto;padding:110px 24px 130px}
.page h1{font-size:clamp(40px,6vw,64px);line-height:1.05;margin-bottom:36px;letter-spacing:-.01em}
.page h2{font-size:20px;margin:34px 0 12px}
.page p{font-size:13px;line-height:1.7;margin-bottom:16px;color:rgba(0,0,0,.88)}
.page a{text-decoration:underline;text-underline-offset:3px}
.page--narrow{max-width:480px}
/* ---------- status page ---------- */
.status-summary{font-size:18px;font-weight:600;letter-spacing:.01em;margin:0 0 28px}
.status-list{border:1px solid var(--hair);border-radius:12px;overflow:hidden;margin:0 0 24px}
.status-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--hair)}
.status-row:last-child{border-bottom:0}
.status-name{font-size:15px;font-weight:600}
.status-host{font-size:12px;color:#8a8a8a;margin-top:4px;letter-spacing:.04em}
.status-pill{flex:none;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:8px 14px;border-radius:999px;background:#eee;color:#666}
.status-pill--up{background:#e6f4ea;color:#137333}
.status-pill--down{background:#fce8e6;color:#a50e0e}
.status-note{font-size:12px;color:#8a8a8a;letter-spacing:.03em}
.journal__row{display:block;padding:26px 0;border-bottom:1px solid var(--hair)}
.journal__row h2{font-size:20px;margin:0 0 8px;letter-spacing:.01em}
.journal__row p{font-size:13px;color:rgba(0,0,0,.7);margin:0}
.journal__tag{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(0,0,0,.55);
  display:block;margin-bottom:8px}

/* ---------- mobile menu ---------- */
.mnav{position:fixed;top:0;left:0;bottom:0;width:min(420px,100vw);background:var(--bg);z-index:70;
  transform:translateX(-102%);transition:transform .2s ease;overflow-y:auto;
  padding:calc(14px + env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left))}
.mnav--on{transform:none}
.mnav__top{display:flex;justify-content:space-between;align-items:center;height:34px;margin-bottom:12px}
.mnav a.mlink{display:block;padding:15px 0;font-size:14px;text-transform:uppercase;letter-spacing:.06em;
  border-bottom:1px solid var(--hair)}
.mnav .sub a{display:block;padding:12px 0 12px 16px;font-size:13px;text-transform:uppercase;
  letter-spacing:.06em;color:rgba(0,0,0,.8);border-bottom:1px solid var(--hair)}
.mnav__acc{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center}
/* ---------- auth pages (standalone, no header/footer) ---------- */
.authpage{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:56px 24px}
.auth-card{width:100%;max-width:400px;border:1px solid var(--ink);background:#fff;padding:40px 36px 34px}
.auth-card--hover{border:1px solid var(--hair);border-radius:16px;box-shadow:0 30px 70px rgba(0,0,0,.16),0 4px 14px rgba(0,0,0,.08);transform:translateY(-6px)}
.btn--round{border-radius:999px}
.auth-wordmark{display:block;text-align:center;font-size:15px;letter-spacing:.42em;text-indent:.42em;text-transform:uppercase;margin-bottom:30px}
.auth-card h1{font-size:23px;letter-spacing:.05em;text-transform:uppercase;line-height:1.35;margin-bottom:10px}
.auth-card .lede{font-size:13px;color:rgba(0,0,0,.68);margin-bottom:28px}
.auth-card label{display:block;font-size:11px;letter-spacing:.13em;text-transform:uppercase;margin-bottom:20px}
.auth-card input{display:block;width:100%;height:48px;margin-top:9px;border:1px solid #000;border-radius:0;
  padding:0 14px;font-family:var(--font);font-size:14px;background:#fff}
.auth-card input:focus{outline:2px solid #000;outline-offset:-2px}
.auth-card .btn{margin-top:8px}
.auth-err{display:none;background:#000;color:#fff;font-size:12.5px;letter-spacing:.03em;line-height:1.6;
  padding:13px 15px;margin-bottom:24px}
.auth-err--on{display:block}
.auth-alt{margin-top:24px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(0,0,0,.65)}
.auth-alt a{text-decoration:underline;text-underline-offset:3px}
/* ---------- mobile ---------- */
@media (max-width:900px){
  .header{padding:env(safe-area-inset-top) max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left))}
  .header__nav{display:none}
  .header__menu-btn{display:flex;align-items:center;min-height:44px;min-width:44px;font-size:11px;letter-spacing:.13em;text-transform:uppercase}
  .header__wordmark{font-size:12px}
  .header__wordmark img{height:16px}
  .header__tools{display:none}
  .header__account{display:none}
  .page{padding:calc(88px + env(safe-area-inset-top)) 20px 72px}
  .grid{grid-template-columns:repeat(2,1fr)}
  .product{grid-template-columns:1fr}
  .product__gallery{border-left:0;border-top:1px solid var(--ink);min-height:80svw;order:-1}
  .product__info{padding:40px 24px 72px}
  .footer{grid-template-columns:1fr;gap:0;padding:48px max(20px, env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left))}
  .fcol{padding-bottom:8px}
  .fcol__body a{padding:12px 0}
  .mnav{width:100%}
  .mnav a.mlink{padding:18px 0}
  .drawer{width:100vw;max-width:100vw}
}

.stack__media video{width:100%;height:100%;object-fit:cover}

/* ---------- homepage schematic grid backdrop ---------- */
main.home .stack{
  background-color:#f2f2ed;
  background-image:linear-gradient(#d8d8d3 1px,transparent 1px),linear-gradient(90deg,#d8d8d3 1px,transparent 1px);
  background-size:40px 40px}

/* ---------- scrolling homepage ---------- */
.home-band{max-width:720px;margin:0 auto;padding:120px 24px 80px}
.home-band--tight{padding-top:80px;padding-bottom:120px}
.home-band--list{max-width:860px}
.home-kicker{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(0,0,0,.5);margin:0 0 18px}
.home-band h2,.home-split__copy h2,.home-reserve h2{
  font-size:clamp(32px,4.8vw,56px);line-height:1.08;letter-spacing:-.02em;margin:0 0 22px}
.home-lede{font-size:17px;line-height:1.6;color:rgba(0,0,0,.78);margin:0 0 28px;max-width:560px}
.home-textlink{display:inline-block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  border-bottom:1px solid #000;padding-bottom:4px}
.home-split{display:grid;grid-template-columns:1.1fr 0.9fr;min-height:72vh;border-top:1px solid var(--ink)}
.home-split__media{background:#fff;border-right:1px solid var(--ink);min-height:520px}
.home-split__media img{width:100%;height:100%;object-fit:cover;object-position:18% 50%}
.home-split__copy{padding:96px 56px;display:flex;flex-direction:column;justify-content:center}
.home-split__copy p{font-size:15px;line-height:1.7;color:rgba(0,0,0,.8);margin:0 0 18px;max-width:420px}
.home-facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.home-fact{padding:48px 28px 52px;border-right:1px solid var(--ink)}
.home-fact:last-child{border-right:0}
.home-fact b{display:block;font-size:clamp(28px,3vw,40px);letter-spacing:-.03em;font-weight:400;margin-bottom:10px}
.home-fact span{font-size:13px;color:rgba(0,0,0,.58);line-height:1.45}
.home-list{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin:36px 0 0}
.home-list h3{font-size:15px;letter-spacing:.04em;text-transform:uppercase;margin:0 0 10px}
.home-list p{font-size:14px;line-height:1.65;color:rgba(0,0,0,.72);margin:0}
.home-reserve{padding:120px 24px;text-align:center;border-top:1px solid var(--ink);background:#fafafa}
.home-reserve .home-lede{margin-left:auto;margin-right:auto}
.home-reserve__row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.home-reserve__row .btn{width:auto;min-width:200px;text-decoration:none}
@media (max-width:900px){
  .home-split{grid-template-columns:1fr}
  .home-split__media{border-right:0;border-bottom:1px solid var(--ink);min-height:70vw}
  .home-split__copy{padding:56px 24px 72px}
  .home-facts{grid-template-columns:repeat(2,1fr)}
  .home-fact:nth-child(2){border-right:0}
  .home-fact:nth-child(1),
  .home-fact:nth-child(2){border-bottom:1px solid var(--ink)}
  .home-list{grid-template-columns:1fr;gap:28px}
  .home-band,.home-reserve{padding:88px 24px}
  .home-reserve__row .btn{min-width:0;flex:1 1 200px}
}

/* ---------- presale (products) ---------- */
.presale{max-width:1120px;margin:0 auto;padding:120px 24px 110px;text-align:center}
.presale__eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:rgba(0,0,0,.55);margin:0 0 16px}
.presale h1{font-size:clamp(48px,7vw,84px);line-height:1.02;letter-spacing:-.02em;margin:0 0 16px}
.presale__tag{font-size:clamp(17px,2.2vw,23px);line-height:1.5;color:rgba(0,0,0,.72);max-width:640px;margin:0 auto 14px}
.presale__price{font-size:15px;margin:0 0 30px}
.presale__ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:0 0 18px}
.presale__ctas .btn{width:auto;min-width:220px;text-decoration:none}
.presale__note{font-size:12px;color:rgba(0,0,0,.55);margin:0 0 64px}
.presale__media{margin:0 -24px 72px;background:#fff}
.presale__media img{display:block;width:100%;height:auto}
.presale__specs{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;max-width:980px;margin:0 auto 76px}
.presale__spec b{display:block;font-size:24px;letter-spacing:-.01em;margin-bottom:8px}
.presale__spec span{font-size:13px;color:rgba(0,0,0,.6);line-height:1.5}
.presale__accs{max-width:720px;margin:0 auto;text-align:left}
@media(max-width:720px){.presale__specs{grid-template-columns:repeat(2,1fr);gap:24px}.presale__ctas .btn{min-width:0;flex:1 1 220px}}

.blank{display:block;min-height:0;background:#fff}
.blank main{min-height:calc(100svh + 32px)}
.blank .footer{margin-top:0}
.blank .header{background:#fff}
