/* REDTRAPZ — unified visual system */
:root{
  color-scheme:dark;
  --red:#ed1732;--red-hot:#ff2946;--red-deep:#8d0a1d;
  --bg:#070707;--surface:#0d0b0c;--surface-2:#141012;--surface-3:#1b1215;
  --line:#342126;--line-hot:#642331;--text:#f5eff0;--muted:#a3979a;--dim:#71666a;
  --font:'DM Sans',Arial,sans-serif;--display:'Barlow Condensed',Impact,sans-serif;
  --shadow:0 24px 70px #0009;--glow:0 0 32px #ed173222;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 12% 8%,#4b07101f,transparent 35%),radial-gradient(ellipse at 88% 90%,#3a07101a,transparent 32%),var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit}
button,input{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--red-hot);outline-offset:3px}
::selection{background:var(--red);color:#fff}
.grain{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E")}
[hidden]{display:none!important}

/* Public navigation */
.public-body{background:#060506;overflow-x:hidden}
.public-header{height:84px;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5.5vw,88px);background:#080708ed;border-bottom:1px solid #45151f;backdrop-filter:blur(16px)}
.public-header:after{content:"";position:absolute;left:0;bottom:-1px;width:clamp(100px,20vw,300px);height:2px;background:linear-gradient(90deg,var(--red),transparent);box-shadow:0 0 16px #ed173255}
.public-brand{display:flex;align-items:center;gap:13px;text-decoration:none;min-width:0}
.public-brand img{width:76px;height:60px;object-fit:contain}
.public-brand span{font:900 23px var(--display);letter-spacing:1.4px;color:var(--red)}
.public-brand small{display:block;margin-top:2px;font:700 8px var(--font);letter-spacing:2px;color:#b3a7aa}
.public-header nav{display:flex;align-items:center;gap:clamp(15px,2.7vw,40px)}
.public-header nav a,.mobile-login{font-size:10px;font-weight:800;letter-spacing:1.1px;text-decoration:none;color:#cfc5c7;transition:color .2s,border-color .2s,background .2s}
.public-header nav a:hover{color:#fff}
.public-header nav .nav-login{padding:13px 18px;border:1px solid #8f1b30;color:#fff;background:#ed17320d}
.public-header nav .nav-login:hover{background:var(--red);border-color:var(--red)}
.nav-login span{color:var(--red-hot);margin-right:8px}
.mobile-login{display:none;color:var(--red-hot)}

/* Public hero */
.public-hero{height:min(850px,calc(100svh - 84px));min-height:650px;position:relative;display:grid;place-items:center;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 50% 40%,#5b081633,transparent 43%),linear-gradient(115deg,#050505,#12090b 50%,#050505)}
.public-hero:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.045;background:repeating-linear-gradient(135deg,transparent 0 58px,#fff 59px,transparent 60px 118px)}
.public-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#000b,transparent 22%,transparent 78%,#000b),linear-gradient(0deg,#060506 0,transparent 22%,transparent 80%,#06050688)}
.hero-backdrop{position:absolute;inset:0;background:radial-gradient(ellipse at center,#9e0b2420,transparent 58%);pointer-events:none}
.hero-content{position:relative;width:min(1040px,92%);display:flex;flex-direction:column;align-items:center;text-align:center;padding:44px 0 86px}
.hero-tag{padding:10px 15px;border:1px solid #63202c;background:#090708b8;color:#c9bdc0;font-size:9px;font-weight:800;letter-spacing:2.3px}
.hero-tag span{display:inline-block;width:7px;height:7px;margin-right:9px;border-radius:50%;background:var(--red);box-shadow:0 0 12px var(--red)}
.hero-logo{width:min(790px,90vw);max-height:360px;object-fit:contain;margin:16px 0 3px}
.hero-content h1{margin:12px 0 18px;font:900 clamp(42px,6.5vw,82px)/.9 var(--display);letter-spacing:.4px;text-shadow:0 5px 26px #000}
.hero-content h1 i{font-style:normal;color:var(--red-hot)}
.hero-content>p{margin:0 0 29px;color:#c3b7ba;font-size:12px;letter-spacing:1.8px}
.hero-cta{display:inline-flex;align-items:center;gap:28px;padding:16px 23px;background:linear-gradient(105deg,#b50c27,var(--red));color:#fff;text-decoration:none;font-size:10px;font-weight:900;letter-spacing:1.3px;box-shadow:0 8px 30px #ed173233;transition:transform .2s,filter .2s,box-shadow .2s}
.hero-cta:hover{transform:translateY(-3px);filter:brightness(1.12);box-shadow:0 12px 38px #ed173255}
.hero-cta b{font-size:18px}
.hero-edge{position:absolute;bottom:0;left:0;right:0;padding:13px 5%;background:linear-gradient(90deg,#b30b25,#ed1732 50%,#b30b25);color:#fff;text-align:center;font:800 12px var(--display);letter-spacing:3px;box-shadow:0 -6px 28px #ed173222}
.hero-index{position:absolute;left:clamp(20px,5vw,75px);bottom:75px;padding-left:10px;border-left:2px solid var(--red);color:#9b8d91;font-size:8px;letter-spacing:2px;writing-mode:vertical-rl}

/* Shared sections */
.intro-section,.what-section,.values-section{position:relative;padding:clamp(76px,9vw,124px) clamp(24px,10vw,160px)}
.section-marker{padding-bottom:15px;border-bottom:1px solid #38252a;color:#9b8c90;font-size:9px;font-weight:800;letter-spacing:2.3px}
.red-overline{color:var(--red-hot);font-size:9px;font-weight:900;letter-spacing:2.4px}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%;padding-top:54px}
.intro-grid h2,.what-heading h2,.values-copy h2{margin:20px 0;font:900 clamp(54px,7vw,90px)/.86 var(--display);letter-spacing:-1px;text-transform:uppercase}
.intro-grid h2 em,.what-heading h2 em,.values-copy h2 em{color:var(--red);font-style:normal}
.intro-copy{padding:22px 0 0 28px;border-left:2px solid #8e182b}
.intro-copy p,.values-copy>p:not(.red-overline){margin:0 0 20px;color:#b9aeb1;font-size:13px;line-height:2}
.signature{display:inline-block;margin-top:18px;padding:13px 0;border-top:1px solid #51212b;border-bottom:1px solid #51212b;color:#f2e9eb;font:800 12px var(--display);letter-spacing:1.8px}
.signature b{padding:0 9px;color:var(--red)}
.what-section{overflow:hidden;background:linear-gradient(135deg,#0d090a,#160a0e 52%,#080708);border-top:1px solid #2d171d;border-bottom:1px solid #2d171d}
.what-section:after{content:"REDTRAPZ";position:absolute;right:-25px;bottom:-45px;color:#fff;opacity:.018;pointer-events:none;font:900 clamp(120px,20vw,270px)/1 var(--display)}
.what-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:28px;padding:44px 0}
.what-heading .red-overline{grid-column:1/-1;margin:0}
.what-heading h2{margin:0}
.what-lead{max-width:430px;margin:0 0 7px;color:#b9aeb1;font-size:13px;line-height:1.9}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.feature-card{position:relative;min-height:235px;padding:27px;border:1px solid #43232b;background:linear-gradient(145deg,#1b1013,#0b090a);box-shadow:inset 0 1px #ffffff08,0 14px 30px #0004;transition:transform .22s,border-color .22s,box-shadow .22s}
.feature-card:before{content:"";position:absolute;top:0;left:0;width:46px;height:3px;background:var(--red);box-shadow:0 0 13px #ed1732}
.feature-card:hover{transform:translateY(-5px);border-color:#9b263a;box-shadow:0 18px 38px #0008,0 0 22px #ed17321c}
.feature-number{position:absolute;top:20px;right:21px;color:#80636a;font:800 12px var(--display)}
.feature-icon{margin:0 0 27px;color:var(--red-hot);font-size:27px}
.feature-card h3{margin:0 0 11px;font:800 22px var(--display);letter-spacing:.4px}
.feature-card p{margin:0;color:#afa3a6;font-size:11px;line-height:1.85}
.values-section{display:grid;grid-template-columns:1.1fr .9fr;gap:10%;background:radial-gradient(ellipse at 15% 55%,#9e0b201e,transparent 52%),#090708}
.values-copy .section-marker{margin-bottom:42px}
.values-copy h2{font-size:clamp(48px,6vw,78px)}
.values-copy>p:not(.red-overline){max-width:490px}
.text-link{display:inline-block;margin-top:14px;padding-bottom:9px;border-bottom:1px solid #812034;color:var(--red-hot);font-size:10px;font-weight:900;letter-spacing:1.4px;text-decoration:none}
.text-link:hover{color:#fff}
.values-list{align-self:center;border-top:1px solid #49242d}
.values-list div{display:grid;grid-template-columns:44px 1fr;gap:5px;padding:21px 0;border-bottom:1px solid #49242d;transition:padding .2s}
.values-list div:hover{padding-left:8px}
.values-list strong{grid-row:span 2;color:var(--red);font:800 18px var(--display)}
.values-list span{font:800 20px var(--display);letter-spacing:1px}
.values-list small{color:#a39599;font-size:10px}
.closing-band{position:relative;display:flex;align-items:center;gap:28px;overflow:hidden;padding:34px clamp(24px,8vw,120px);background:linear-gradient(105deg,#8f091e,#c40e2b 50%,#87091d);border-top:1px solid #f04459;border-bottom:1px solid #4b0711}
.closing-band:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.055;background:repeating-linear-gradient(135deg,transparent 0 34px,#fff 35px,transparent 36px 70px)}
.closing-band>*{position:relative;z-index:1}
.closing-band img{width:90px;height:76px;object-fit:contain}
.closing-band div{flex:1}
.closing-band p{margin:0 0 8px;font-size:8px;font-weight:900;letter-spacing:2px}
.closing-band h2{margin:0;font:900 clamp(25px,4vw,45px) var(--display)}
.closing-band h2 em{color:#22070c;font-style:normal}
.closing-band>a{padding:14px 18px;border:1px solid #ffffff88;color:#fff;text-decoration:none;font-size:10px;font-weight:900;letter-spacing:1px;transition:background .2s}
.closing-band>a:hover{background:#ffffff1c}
.public-footer{display:flex;justify-content:space-between;gap:20px;padding:23px clamp(24px,5vw,76px);border-top:1px solid #32151d;background:#060506;color:#817478;font-size:8px;font-weight:800;letter-spacing:1.1px}
.public-footer a{color:#d1c4c7;text-decoration:none}
.public-footer a:hover{color:var(--red-hot)}

/* Login / first setup */
.back-home{position:fixed;top:22px;left:clamp(18px,4vw,48px);z-index:5;display:inline-flex;align-items:center;gap:9px;color:#c9bec1;text-decoration:none;font-size:10px;font-weight:800;letter-spacing:1.2px;transition:color .2s}
.back-home span{color:var(--red);font-size:18px}
.back-home:hover{color:#fff}
.page{min-height:100vh;display:grid;place-items:center;padding:76px 24px 40px}
.auth-layout{width:min(1100px,100%);min-height:640px;display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden;border:1px solid #47232b;background:#0b090a;box-shadow:var(--shadow),var(--glow)}
.brand-panel{position:relative;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:58px 7%;border-right:1px solid #4b2029;background:radial-gradient(ellipse at 45% 25%,#5d0b1b35,transparent 48%),linear-gradient(145deg,#18090d,#090809 70%)}
.brand-panel:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.025;background:repeating-linear-gradient(135deg,transparent 0 44px,#fff 45px,transparent 46px 90px)}
.brand-logo-wrap{position:relative;display:grid;place-items:center;width:100%;max-width:570px;min-height:170px;margin:0 auto 25px}
.brand-logo{width:100%;height:auto;max-height:280px;object-fit:contain}
.logo-fallback{display:flex;flex-direction:column;align-items:center;color:var(--red);font:900 clamp(55px,8vw,100px)/.8 var(--display);text-shadow:4px 5px #31000a}
.logo-fallback .crown{color:white;font-size:85px}
.brand-kicker,.eyebrow,.auth-topline,.auth-bottom,.brand-foot,.dash-kicker,.side-label,.stat-card small,.stat-card span{font:700 9px var(--font);letter-spacing:1.8px}
.brand-kicker{margin:10px 0 14px;color:var(--red-hot)}
.brand-panel h1{margin:0;font:900 clamp(48px,6vw,78px)/.88 var(--display);letter-spacing:.5px;text-transform:uppercase}
.brand-panel h1 em{color:var(--red);font-style:normal}
.brand-panel>p{margin:20px 0 32px;color:#c8bfc0;font-size:13px;letter-spacing:1.1px}
.brand-rule{width:100%;height:2px;background:linear-gradient(90deg,var(--red),transparent)}
.brand-foot{display:flex;justify-content:space-between;margin-top:18px;color:#8c7b80;font-size:8px}
.auth-panel{display:flex;flex-direction:column;justify-content:center;padding:52px clamp(28px,5vw,64px) 30px;background:linear-gradient(160deg,#121011,#0a090a 78%)}
.auth-topline{display:flex;align-items:center;gap:10px;margin-bottom:46px;color:#c4b9bc;font-size:9px}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 12px var(--red)}
.auth-form .eyebrow{color:var(--red-hot);font-size:9px}
.auth-form h2{margin:12px 0;font:800 42px/1 var(--display);text-transform:uppercase}
.auth-form h2 em{color:var(--red);font-style:normal}
.sub{margin:0 0 26px;color:var(--muted);font-size:12px;line-height:1.75}
.auth-form label{display:block;margin:17px 0 8px;color:#c2b6b9;font-size:9px;font-weight:800;letter-spacing:1.3px}
.auth-form input{width:100%;height:48px;padding:0 14px;border:1px solid #443137;border-radius:3px;outline:none;background:#080708;color:#fff;font:13px var(--font);transition:border-color .2s,box-shadow .2s}
.auth-form input:focus{border-color:var(--red);box-shadow:0 0 0 3px #ed17321b}
.auth-form input::placeholder{color:#74686c}
.primary-btn{width:100%;height:50px;margin-top:25px;padding:0 17px;border:0;background:linear-gradient(100deg,#a90a24,#f01836);color:#fff;font:800 11px var(--font);letter-spacing:1.2px;cursor:pointer;transition:filter .2s,transform .2s,opacity .2s}
.primary-btn:hover{filter:brightness(1.14);transform:translateY(-1px)}
.primary-btn:disabled{cursor:wait;opacity:.65;transform:none}
.primary-btn span{float:right;font-size:18px;line-height:12px}
.form-message{min-height:18px;margin:12px 0 0;color:#ff7888;font-size:11px;line-height:1.5}
.auth-bottom{display:flex;justify-content:space-between;gap:10px;margin-top:auto;padding-top:28px;color:#76696d;font-size:7px}
.state-message{color:#c9bfc1;font-size:12px;line-height:1.7}
.state-message strong{color:var(--red);font:800 30px var(--display)}
.state-message p{color:var(--muted)}

/* Member dashboard */
.dashboard{width:min(1360px,100%);min-height:720px;overflow:hidden;border:1px solid #47232b;background:#0b090a;box-shadow:var(--shadow),var(--glow)}
.dash-header{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);background:#0e0c0d}
.dash-brand{display:flex;align-items:center;gap:12px;color:var(--red);font:900 22px var(--display);letter-spacing:1px}
.dash-brand img{width:58px;height:50px;object-fit:contain}
.dash-brand small{display:block;color:#a09598;font:700 8px var(--font);letter-spacing:2px}
.dash-user{display:flex;align-items:center;gap:14px;font-size:12px}
.dash-user small{color:var(--red-hot);font-size:9px;letter-spacing:1px}
.logout-btn{padding:9px 13px;border:1px solid #672536;background:#170b0f;color:#ff8493;font-size:9px;font-weight:800;letter-spacing:.7px;cursor:pointer;transition:background .2s,color .2s}
.logout-btn:hover{background:var(--red);color:#fff}
.dash-body{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:640px}
.sidebar{padding:28px 16px;border-right:1px solid var(--line);background:#0d0b0c}
.side-label{padding:0 12px 16px;color:#817478;font-size:8px}
.side-link{width:100%;display:block;margin:3px 0;padding:13px 12px;border:0;border-left:2px solid transparent;background:transparent;color:#b4a9ac;text-align:left;cursor:pointer;font-size:12px;transition:background .18s,color .18s,border-color .18s}
.side-link:hover,.side-link.active{border-left-color:var(--red);background:linear-gradient(90deg,#3a101a,#1a1013);color:#fff}
.dash-content{padding:42px clamp(24px,5vw,64px)}
.dash-kicker{color:#9a8b8f;font-size:9px}
.dash-kicker span{color:var(--red-hot)}
.dash-content h1{margin:12px 0 0;font:800 46px/1.05 var(--display)}
.dash-intro{color:var(--muted);font-size:12px;line-height:1.7}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:34px 0}
.stat-card,.welcome-card{padding:22px;border:1px solid #40262d;background:linear-gradient(145deg,#181114,#0e0c0d)}
.stat-card small,.stat-card span{display:block;color:#a19498;font-size:8px}
.stat-card strong{display:block;margin:12px 0;color:#fff;font:800 28px var(--display)}
.welcome-card{position:relative;padding:30px}
.red-line{position:absolute;top:0;left:0;width:80px;height:3px;background:var(--red);box-shadow:0 0 15px #ed173255}
.welcome-card .eyebrow{color:var(--red-hot)}
.welcome-card h2{margin:10px 0;font:800 30px var(--display)}
.welcome-card p{max-width:620px;margin:0;color:#b1a5a8;font-size:12px;line-height:1.85}

/* Responsive layouts */
@media(max-width:850px){
 .auth-layout{grid-template-columns:1fr}
 .brand-panel{padding:35px 8%;border-right:0;border-bottom:1px solid #4b2029}
 .brand-logo-wrap{min-height:100px;max-width:360px;margin-bottom:18px}
 .brand-logo{max-height:160px}
 .brand-panel h1{font-size:48px}
 .brand-panel>p{margin:12px 0 20px}
 .auth-panel{padding:35px 8%}
 .auth-topline{margin-bottom:30px}
 .dash-body{grid-template-columns:1fr}
 .sidebar{display:flex;gap:4px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px;scrollbar-width:thin}
 .side-label{display:none}
 .side-link{width:auto;flex:0 0 auto;white-space:nowrap}
 .dash-content{padding:30px 22px}
 .public-header{height:74px}
 .public-brand img{width:66px;height:52px}
 .public-header nav{gap:12px}
 .public-header nav a{font-size:8px}
 .public-header nav a:not(.nav-login){display:none}
 .public-hero{height:auto;min-height:660px}
 .hero-logo{max-height:300px}
 .intro-section,.what-section,.values-section{padding:78px 7%}
 .intro-grid,.values-section{grid-template-columns:1fr;gap:25px}
 .intro-copy{padding-top:0}
 .what-heading{grid-template-columns:1fr}
 .what-heading .red-overline{grid-column:auto}
 .feature-grid{grid-template-columns:1fr}
 .feature-card{min-height:180px}
 .values-copy .section-marker{margin-bottom:34px}
 .closing-band{flex-wrap:wrap}
 .closing-band div{min-width:65%}
 .closing-band>a{margin-left:118px}
 .public-footer{flex-wrap:wrap}
 .public-footer span:nth-child(2){order:3;width:100%}
}
@media(max-width:560px){
 .page{padding:62px 12px 16px}
 .auth-layout{min-height:calc(100vh - 78px)}
 .brand-panel{padding:28px 7%}
 .brand-panel h1{font-size:42px}
 .brand-foot{font-size:7px}
 .auth-panel{padding:28px 7%}
 .auth-form h2{font-size:36px}
 .auth-bottom{font-size:6px}
 .stats-grid{grid-template-columns:1fr}
 .dash-header{height:auto;min-height:72px;padding:12px 14px;gap:12px}
 .dash-brand{font-size:18px}
 .dash-user{gap:7px;font-size:10px;flex-wrap:wrap;justify-content:flex-end}
 .logout-btn{padding:7px}
 .dash-content h1{font-size:38px}
 .public-header{height:68px;padding:0 18px}
 .public-header nav{display:none}
 .mobile-login{display:block}
 .hero-content{padding:48px 0 92px}
 .hero-tag{font-size:7px;letter-spacing:1.3px}
 .hero-content h1{font-size:42px}
 .hero-content>p{font-size:9px;letter-spacing:1px}
 .hero-edge{font-size:9px;letter-spacing:2px}
 .hero-index{display:none}
 .intro-grid h2,.what-heading h2{font-size:57px}
 .closing-band img{width:70px}
 .closing-band>a{margin-left:0}
 .public-footer{font-size:7px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}