:root{
  --charcoal:#2E3033;
  --charcoal-2:#3F4348;
  --ink:#1A1A1A;
  --paper:#F6F4EF;
  --paper-2:#EDEAE2;
  --taupe:#6E655C;
  --brass:#AD8A56;
  --brass-dark:#8E6F3E;
  --line:rgba(26,26,26,0.14);
  --line-on-dark:rgba(246,244,239,0.2);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter', sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{ font-family:'Fraunces', serif; font-weight:500; letter-spacing:-0.01em;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
@media(max-width:640px){.wrap{padding:0 20px;}}

/* NAV */
header.site-nav{
  position:sticky; top:0; z-index:50;
  background:rgba(246,244,239,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:1180px; margin:0 auto; padding:20px 32px;
  display:flex; align-items:center; justify-content:space-between;
}
.brand{display:flex; align-items:center; gap:12px;}
.brand-logo{height:42px; width:auto; max-width:150px; object-fit:contain; flex-shrink:0;}
.brand-text{display:flex; flex-direction:column; align-items:flex-end; line-height:1.1;}
.brand .name{font-family:'Fraunces',serif; font-size:18px; font-weight:600; letter-spacing:0.01em;}
.brand .tag{font-size:10px; color:var(--brass-dark); margin-top:3px; letter-spacing:0.08em; text-transform:uppercase; align-self:flex-end;}
nav.links{display:flex; align-items:center; gap:34px; font-size:14.5px;}
nav.links a{position:relative; padding-bottom:4px; color:var(--charcoal); white-space:nowrap;}
@media(max-width:1180px){nav.links{gap:24px;}}
nav.links a.active{color:var(--ink);}
nav.links a.active::after{
  content:''; position:absolute; left:0; right:0; bottom:-2px; height:1.5px; background:var(--brass);
}
.nav-cta{
  font-size:13.5px; padding:10px 20px; background:var(--brass); border:1px solid var(--brass);
}
nav.links a.nav-cta{color:var(--ink); padding:10px 20px; line-height:1.2;}
nav.links a.nav-cta::after{display:none;}
.nav-cta:hover{background:var(--brass-dark);}
nav.links a.nav-cta:hover{color:var(--paper);}
.menu-btn{display:none; background:none; border:none; font-size:22px; cursor:pointer;}
@media(max-width:1060px){
  nav.links{display:none;}
  .menu-btn{display:block;}
}
nav.links.mobile-open{
  display:flex; flex-direction:column; align-items:flex-start; position:absolute; top:70px; left:0; right:0;
  background:var(--paper); padding:20px 32px; border-bottom:1px solid var(--line); gap:18px;
}

/* PAGES */
.page{animation:fadein .4s ease;}
@keyframes fadein{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}

/* HERO SLIDER */
.btn{
  display:inline-block; line-height:normal; padding:14px 26px; font-size:14.5px; font-weight:500;
  border:1px solid var(--charcoal); cursor:pointer; background:none; font-family:inherit;
}
.btn-solid{background:var(--charcoal); color:var(--paper);}
.btn-solid:hover{background:var(--ink);}
.btn-ghost{color:var(--charcoal);}
.btn-ghost:hover{background:var(--paper-2);}

.hero-slider{position:relative; height:92vh; min-height:620px; max-height:900px; overflow:hidden; border-bottom:1px solid var(--line); background:var(--charcoal);}
.slide{position:absolute; inset:0; background-size:contain; background-repeat:no-repeat; background-position:center; opacity:0; transform:scale(0.94); transition:opacity 1.2s ease;}
.slide.active{opacity:1; animation:heroZoomOut 5s ease-out forwards;}
@keyframes heroZoomOut{from{transform:scale(0.94);} to{transform:scale(1);}}
.slide.placeholder{background:var(--charcoal); display:flex; align-items:center; justify-content:center;}
.slide.placeholder svg{width:100%; height:100%;}
.slider-overlay{
  position:absolute; inset:0; display:flex; align-items:flex-end;
  background:linear-gradient(to top, rgba(20,20,20,0.65), rgba(20,20,20,0.05) 55%);
  padding:64px 56px;
}
@media(max-width:640px){.slider-overlay{padding:36px 24px;}}
.slider-caption{color:var(--paper); max-width:640px;}
.slider-caption .kicker{color:var(--brass); font-size:13px; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:14px;}
.slider-caption h1{font-size:clamp(28px,4.2vw,48px); line-height:1.12; margin-bottom:18px;}
.slider-caption p{font-size:15.5px; color:rgba(246,244,239,0.85); max-width:480px; margin-bottom:26px;}
.slider-actions{display:flex; gap:14px; flex-wrap:wrap;}
.slider-actions .btn-solid{background:var(--brass); border-color:var(--brass); color:var(--ink);}
.slider-actions .btn-solid:hover{background:var(--brass-dark); color:var(--paper);}
.slider-actions .btn-ghost{color:var(--paper); border-color:rgba(246,244,239,0.6);}
.slider-actions .btn-ghost:hover{background:rgba(246,244,239,0.1);}
.slider-dots{position:absolute; bottom:26px; right:32px; display:flex; gap:9px; z-index:5;}
.dot{width:8px; height:8px; border-radius:50%; background:rgba(246,244,239,0.45); cursor:pointer; border:none; padding:0;}
.dot.active{background:var(--brass);}

.intro-block{max-width:760px;}
.intro-block p{color:var(--taupe); font-size:15.5px; margin-top:16px;}

.vmv-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media(max-width:760px){.vmv-grid{grid-template-columns:1fr;}}
.vmv-card{background:var(--paper);}
.vmv-img{aspect-ratio:16/10; overflow:hidden;}
.vmv-img svg{width:100%; height:100%; display:block;}
.vmv-body{padding:30px 30px 36px;}
.vmv-card .kicker{font-size:13px; color:var(--brass-dark); font-weight:500; letter-spacing:0.04em; margin-bottom:14px;}
.vmv-card p{font-size:14.5px; color:var(--taupe);}
.vmv-card ul{list-style:none; font-size:14.5px; color:var(--taupe);}
.vmv-card li{padding:8px 0; border-top:1px solid var(--line);}
.vmv-card li:first-child{border-top:none;}

/* STAT STRIP */
.stats{border-bottom:1px solid var(--line); background:var(--paper-2);}
.stats .wrap{display:grid; grid-template-columns:repeat(4,1fr); padding:36px 32px;}
@media(max-width:700px){.stats .wrap{grid-template-columns:repeat(2,1fr); gap:26px;}}
.stat b{font-family:'Fraunces',serif; font-size:30px; font-weight:500; display:block;}
.stat span{font-size:12.5px; color:var(--taupe);}

/* SECTION */
section{padding:88px 0;}
.section-head{max-width:600px; margin-bottom:52px;}
.section-head .kicker{font-size:13px; color:var(--brass-dark); font-weight:500; margin-bottom:14px;}
.section-head h2{font-size:clamp(26px,3vw,36px); line-height:1.15;}
.section-head p{color:var(--taupe); margin-top:14px; font-size:15.5px;}

/* CARDS GRID (rooms) */
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
@media(max-width:760px){.grid-2{grid-template-columns:1fr;}}
.unit-card{background:var(--paper); padding:0;}
.unit-photo{aspect-ratio:4/3; position:relative; overflow:hidden; background:var(--paper-2);}
.unit-photo svg{width:100%; height:100%;}
.unit-num{
  position:absolute; top:16px; left:16px; font-family:'Fraunces',serif; font-size:13px;
  background:var(--charcoal); color:var(--paper); padding:5px 11px;
}
.unit-body{padding:28px 30px 32px;}
.unit-body h3{font-size:20px; margin-bottom:8px;}
.unit-meta{display:flex; gap:16px; font-size:13px; color:var(--taupe); margin-bottom:14px;}
.unit-body p.desc{font-size:14.5px; color:var(--taupe); margin-bottom:18px;}
.unit-foot{display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--line); padding-top:18px;}
.price{font-family:'Fraunces',serif; font-size:19px;}
.price small{font-size:12px; color:var(--taupe); font-weight:400; font-family:'Inter',sans-serif;}
.book-link{font-size:13.5px; font-weight:500; border-bottom:1px solid var(--ink); padding-bottom:2px; cursor:pointer; background:none; border-top:none;border-left:none;border-right:none; font-family:inherit; color:var(--ink);}

/* AMENITY LIST */
.amenities{display:flex; flex-wrap:wrap; gap:12px; margin-top:40px;}
.amenities span{
  font-size:13px; padding:9px 16px; border:1px solid var(--line); color:var(--taupe);
}

/* SPLIT FEATURE (office / rooftop) */
.feature{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line);}
@media(max-width:800px){.feature{grid-template-columns:1fr;}}
.feature-img{background:var(--paper-2); min-height:360px;}
.feature-img svg{width:100%; height:100%;}
.feature-body{padding:52px 48px; display:flex; flex-direction:column; justify-content:center;}
@media(max-width:800px){.feature-body{padding:36px 26px;}}
.feature-body .kicker{font-size:13px; color:var(--brass-dark); font-weight:500; margin-bottom:16px;}
.feature-body h3{font-size:28px; margin-bottom:16px;}
.feature-body p{color:var(--taupe); font-size:15.5px; margin-bottom:22px;}
.feature-list{list-style:none; margin-bottom:28px;}
.feature-list li{
  font-size:14.5px; padding:10px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between;
}
.feature-list li:last-child{border-bottom:1px solid var(--line);}
.feature-price{font-family:'Fraunces',serif; font-size:22px; margin-bottom:20px;}
.feature-price small{font-size:12.5px; color:var(--taupe); font-family:'Inter',sans-serif; font-weight:400;}

/* CTA BAND */
.cta-band{background:var(--charcoal); color:var(--paper); padding:80px 0;}
.cta-band .wrap{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:24px;}
.cta-band h2{font-size:clamp(24px,3vw,32px); max-width:520px;}
.cta-band .btn-solid{background:var(--brass); border-color:var(--brass); color:var(--ink);}
.cta-band .btn-solid:hover{background:var(--brass-dark); color:var(--paper);}

/* FOOTER */
footer{border-top:1px solid var(--line); padding:56px 0 34px;}
footer .wrap{display:grid; grid-template-columns:2fr 1fr 1fr; gap:40px;}
@media(max-width:700px){footer .wrap{grid-template-columns:1fr; gap:30px;}}
footer .f-brand{font-family:'Fraunces',serif; font-size:19px; margin-bottom:12px;}
footer p{color:var(--taupe); font-size:13.5px; max-width:320px;}
footer h4{font-size:12.5px; text-transform:uppercase; letter-spacing:0.06em; color:var(--taupe); margin-bottom:14px;}
footer ul{list-style:none;}
footer li{font-size:14px; padding:5px 0;}
.social-icons{display:flex; gap:14px; margin-top:18px;}
.social-icons a{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border:1px solid var(--line); color:var(--charcoal);
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.social-icons a:hover{background:var(--brass); border-color:var(--brass); color:var(--paper);}
.social-icons svg{width:17px; height:17px;}
.footer-bottom{
  max-width:1180px; margin:40px auto 0; padding:24px 32px 0; border-top:1px solid var(--line);
  font-size:12.5px; color:var(--taupe);
}

/* BOOKING PAGE */
.booking-wrap{display:grid; grid-template-columns:1fr 1fr; gap:56px; padding:70px 0 100px;}
@media(max-width:860px){.booking-wrap{grid-template-columns:1fr; gap:40px;}}
.form-group{margin-bottom:20px;}
.form-group label{display:block; font-size:13px; color:var(--taupe); margin-bottom:7px;}
.form-group input, .form-group select, .form-group textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); background:var(--paper);
  font-family:inherit; font-size:14.5px; color:var(--ink);
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{
  outline:2px solid var(--brass); outline-offset:1px; border-color:var(--brass);
}
.row-2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.summary-box{background:var(--paper-2); border:1px solid var(--line); padding:32px; align-self:start; position:sticky; top:100px;}
.summary-box h3{font-size:18px; margin-bottom:20px;}
.sum-line{display:flex; justify-content:space-between; font-size:14.5px; padding:11px 0; border-top:1px solid var(--line);}
.sum-line.total{font-family:'Fraunces',serif; font-size:19px; border-top:1.5px solid var(--ink); margin-top:6px; padding-top:16px;}
.pay-btn{width:100%; margin-top:24px; padding:16px; font-size:15px;}
.booking-note{font-size:12.5px; color:var(--taupe); margin-top:14px; line-height:1.6;}
#buy-tickets, #raffleTC{scroll-margin-top:90px;}
.confirm-box{display:none; background:var(--paper-2); border:1px solid var(--brass); padding:28px; margin-top:20px; font-size:14px;}
.confirm-box.show{display:block;}

/* RAFFLE */
.raffle-banner{display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap; padding:8px 0;}
.raffle-banner-text{max-width:620px;}
.raffle-banner-text p{color:rgba(246,244,239,0.8); margin-top:12px; font-size:15px;}
.raffle-stats{display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media(max-width:1000px){.raffle-stats{grid-template-columns:repeat(3,1fr);}}
@media(max-width:760px){.raffle-stats{grid-template-columns:repeat(2,1fr);}}
.raffle-stat{background:var(--paper); padding:22px 18px; text-align:center;}
.raffle-stat b{font-family:'Fraunces',serif; font-size:20px; display:block; margin-bottom:4px;}
.raffle-stat span{font-size:12px; color:var(--taupe);}
.raffle-table-wrap{overflow-x:auto; border:1px solid var(--line); background:var(--paper);}
.raffle-table{width:100%; border-collapse:collapse; font-size:14px; min-width:560px;}
.raffle-table th, .raffle-table td{padding:13px 16px; text-align:left; border-top:1px solid var(--line);}
.raffle-table th{background:var(--paper-2); font-weight:600; border-top:none; font-size:12.5px; text-transform:uppercase; letter-spacing:0.03em; color:var(--taupe);}
.raffle-table td:nth-child(2), .raffle-table td:nth-child(3), .raffle-table td:nth-child(4),
.raffle-table th:nth-child(2), .raffle-table th:nth-child(3), .raffle-table th:nth-child(4){text-align:right;}
.raffle-table tfoot td{font-family:'Fraunces',serif; font-size:15px; border-top:1.5px solid var(--ink);}
.raffle-tc{border-top:1px solid var(--line);}
.tc-item{border-bottom:1px solid var(--line); background:var(--paper);}
.tc-q{width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:20px 22px; display:flex; justify-content:space-between; align-items:center; font-family:inherit; font-size:15px; font-weight:500; color:var(--ink);}
.tc-q .plus{font-family:'Fraunces',serif; font-size:18px; color:var(--brass-dark); transition:transform .25s ease;}
.tc-item.open .tc-q .plus{transform:rotate(45deg);}
.tc-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.tc-item.open .tc-a{max-height:1200px;}
.tc-a-inner{padding:0 22px 22px; color:var(--taupe); font-size:14px; line-height:1.7;}
.tc-a-inner ul{padding-left:18px; margin-top:6px;}

.badge-demo{
  display:inline-block; font-size:11.5px; background:var(--paper-2); color:var(--taupe);
  padding:5px 12px; border:1px solid var(--line); margin-bottom:18px;
}

[hidden]{display:none !important;}
.pay-btn:disabled, .btn:disabled{opacity:0.6; cursor:wait;}

/* ADMIN DASHBOARD */
.admin-user{display:flex; align-items:center; gap:16px; font-size:13.5px; color:var(--taupe);}
.admin-small-btn{padding:9px 16px; font-size:13px;}
.admin-login{max-width:420px; margin:0 auto; position:static;}
.admin-error{color:#9B2C2C; min-height:1em;}
.admin-head{display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap;}
.admin-progress{height:6px; background:var(--paper-2); border:1px solid var(--line); margin-top:20px;}
.admin-progress span{display:block; height:100%; width:0; min-width:2px; background:var(--brass);}
.admin-filters{display:grid; grid-template-columns:1fr 220px auto; gap:16px; align-items:end; margin:32px 0 20px;}
.admin-filters .btn{margin-bottom:20px;}
@media(max-width:760px){.admin-filters{grid-template-columns:1fr;} .admin-filters .btn{margin-bottom:0;}}
.admin-orders{min-width:900px;}
.admin-orders td{vertical-align:top;}
.raffle-table.admin-orders td:nth-child(2), .raffle-table.admin-orders th:nth-child(2),
.raffle-table.admin-orders td:nth-child(3), .raffle-table.admin-orders th:nth-child(3){text-align:left;}
.raffle-table.admin-orders td:nth-child(4), .raffle-table.admin-orders th:nth-child(4),
.raffle-table.admin-orders td:nth-child(5), .raffle-table.admin-orders th:nth-child(5){text-align:right;}
.admin-sub{font-size:12px; color:var(--taupe); margin-top:3px; word-break:break-all;}
.admin-codes{font-size:12.5px; font-family:ui-monospace, SFMono-Regular, Menlo, monospace;}
.admin-status{display:inline-block; font-size:11.5px; padding:3px 10px; border:1px solid var(--line);}
.admin-status-paid{background:var(--brass); border-color:var(--brass); color:var(--ink);}
.admin-status-pending{color:var(--taupe);}

/* SIMULATED CHECKOUT (testing only) */
.sim-ref{font-size:12px; word-break:break-all; text-align:right; max-width:60%;}
.sim-cancel{margin-top:10px;}
.admin-status-test{border-style:dashed; color:var(--taupe); margin-top:4px;}

/* MODALS (order confirmation, success, simulated checkout) */
body.modal-open{overflow:hidden;}
.modal-overlay{position:fixed; inset:0; z-index:100; background:rgba(26,26,26,0.55); display:flex; align-items:center; justify-content:center; padding:20px; animation:overlayIn .25s ease;}
.modal-dialog{position:static; width:100%; max-width:440px; max-height:calc(100vh - 40px); overflow-y:auto; background:var(--paper); animation:dialogIn .4s cubic-bezier(.2,.8,.2,1);}
.modal-dialog .sum-line span:last-child{text-align:right; max-width:62%; word-break:break-word;}
.modal-lead{font-size:14px; color:var(--taupe); margin:-8px 0 18px;}
.modal-error{color:#9B2C2C; font-size:13px; min-height:1em; margin-top:12px;}
@keyframes overlayIn{from{opacity:0;} to{opacity:1;}}
@keyframes dialogIn{from{opacity:0; transform:translateY(18px) scale(.98);} to{opacity:1; transform:none;}}

.confirm-check{display:flex; gap:10px; align-items:flex-start; margin-top:20px; font-size:13.5px; color:var(--taupe); cursor:pointer;}
.confirm-check input{margin-top:3px; width:16px; height:16px; accent-color:var(--brass); flex-shrink:0;}
.confirm-check a{color:var(--ink); border-bottom:1px solid var(--brass);}

.success-mark{width:64px; height:64px; margin:4px auto 18px; display:block;}
.success-mark circle{fill:none; stroke:var(--brass); stroke-width:2; stroke-dasharray:166; stroke-dashoffset:166; animation:drawStroke .6s cubic-bezier(.65,0,.45,1) forwards;}
.success-mark path{fill:none; stroke:var(--ink); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:48; stroke-dashoffset:48; animation:drawStroke .35s cubic-bezier(.65,0,.45,1) .55s forwards;}
@keyframes drawStroke{to{stroke-dashoffset:0;}}
.modal-success{text-align:center;}
.modal-success .sum-line{text-align:left;}
.ticket-codes{display:flex; flex-wrap:wrap; justify-content:center; gap:8px; max-height:190px; overflow-y:auto; margin:6px 0 18px;}
.ticket-codes span{font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:12.5px; padding:6px 10px; border:1px solid var(--brass); background:var(--paper-2); animation:popIn .35s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i, 0) * 45ms + .7s);}
@keyframes popIn{from{opacity:0; transform:translateY(6px) scale(.92);} to{opacity:1; transform:none;}}

.btn.loading{position:relative; color:transparent !important; pointer-events:none;}
.btn.loading::after{content:''; position:absolute; left:50%; top:50%; width:16px; height:16px; margin:-8px 0 0 -8px; border:2px solid currentColor; border-color:var(--paper) var(--paper) transparent transparent; border-radius:50%; animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.form-error{color:#9B2C2C; font-size:13px; margin-top:12px; min-height:1em;}
.form-group input.invalid{border-color:#9B2C2C; animation:shake .35s ease;}
@keyframes shake{25%{transform:translateX(-4px);} 75%{transform:translateX(4px);}}

/* MOTION */
.btn{transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;}
.btn:hover{transform:translateY(-1px); box-shadow:0 6px 16px rgba(26,26,26,0.12);}
.btn:active{transform:translateY(0); box-shadow:none;}
nav.links a:not(.nav-cta)::after{content:''; position:absolute; left:0; right:0; bottom:-2px; height:1.5px; background:var(--brass); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;}
nav.links a:not(.nav-cta):hover::after, nav.links a.active:not(.nav-cta)::after{transform:scaleX(1);}
.unit-card, .vmv-card{position:relative; transition:transform .35s ease, box-shadow .35s ease;}
.unit-card:hover, .vmv-card:hover{transform:translateY(-4px); box-shadow:0 14px 30px rgba(26,26,26,0.08); z-index:1;}
.vmv-img img, .unit-photo svg{transition:transform .7s ease;}
.vmv-card:hover .vmv-img img, .unit-card:hover .unit-photo svg{transform:scale(1.04);}
.book-link{transition:letter-spacing .25s ease, border-color .25s ease;}
.book-link:hover{letter-spacing:0.02em; border-color:var(--brass);}
.raffle-table tbody tr{transition:background .2s ease;}
.raffle-table tbody tr:hover{background:var(--paper-2);}
.tc-item{transition:background .2s ease;}
.tc-item:hover{background:var(--paper-2);}
.social-icons a:hover{transform:translateY(-2px);}
.social-icons a{transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;}

.slider-caption > *{animation:fadeUp .9s cubic-bezier(.2,.8,.2,1) both;}
.slider-caption > *:nth-child(2){animation-delay:.15s;}
.slider-caption > *:nth-child(3){animation-delay:.3s;}
.slider-caption > *:nth-child(4){animation-delay:.45s;}
@keyframes fadeUp{from{opacity:0; transform:translateY(20px);} to{opacity:1; transform:none;}}

/* Scroll reveal: js/main.js adds .reveal, then .in when the element scrolls into view */
.js-reveal .reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); transition-delay:var(--d, 0ms);}
.js-reveal .reveal.in{opacity:1; transform:none;}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; animation-delay:0s !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
}
.admin-email-failed{color:#9B2C2C; cursor:help;}
.admin-check-btn{padding:6px 12px; font-size:12px; margin-top:8px;}
