:root{
--bg0:#050d1d;
--bg1:#071327;
--panel:#0d1f3d;
--panel2:#10254a;
--line:rgba(255,255,255,.10);
--text:#f1f5ff;
--soft:#c8d4f2;
--muted:rgba(241,245,255,.72);
--accent:#3ea6ff;
--accent2:#22c55e;
--warn:#ff6b35;
--shadow: 0 18px 50px rgba(0,0,0,.35);
--radius: 18px;
--max: 1120px;
--tap: 48px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
margin:0;
font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
color:var(--text);
background:
radial-gradient(1200px 700px at 18% -10%, rgba(62,166,255,.22), transparent 60%),
radial-gradient(900px 600px at 86% 8%, rgba(34,197,94,.14), transparent 55%),
linear-gradient(180deg, var(--bg0), var(--bg1));
line-height:1.55;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
a{color:inherit}
.container{
max-width:var(--max);
margin:0 auto;
padding: 0 max(16px, env(safe-area-inset-left)) 0 max(16px, env(safe-area-inset-right));
}
/* Topbar */
.topbar{
position:sticky; top:0; z-index:50;
backdrop-filter:saturate(140%) blur(12px);
background:linear-gradient(180deg, rgba(5,13,29,.92), rgba(5,13,29,.66));
border-bottom:1px solid var(--line);
}
.topbar-inner{
display:flex; align-items:center; justify-content:space-between; gap:12px;
padding: 12px 0;
padding-top: calc(12px + env(safe-area-inset-top));
}
.brand{
display:flex; align-items:center; gap:10px;
text-decoration:none;
min-height:var(--tap);
}
.badge{
width:38px; height:38px; border-radius:12px;
background:linear-gradient(135deg, rgba(62,166,255,.85), rgba(34,197,94,.65));
box-shadow:0 12px 30px rgba(0,0,0,.35);
flex:0 0 auto;
}
.brand strong{font-weight:900; letter-spacing:.2px}
.brand .sub{display:block; font-size:13px; color:var(--muted); margin-top:2px}
.nav{display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end;}
.navlinks{display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end;}
.navlinks a{
text-decoration:none; font-weight:800; font-size:14px;
color:rgba(241,245,255,.88);
padding:10px 12px;
border:1px solid transparent;
border-radius:12px;
min-height:var(--tap);
display:inline-flex; align-items:center;
}
.navlinks a:hover{border-color:var(--line); background:rgba(255,255,255,.04)}
.burger{
width:var(--tap); height:var(--tap);
border-radius:14px;
border:1px solid var(--line);
background:rgba(255,255,255,.06);
color:var(--text);
display:none;
align-items:center;
justify-content:center;
cursor:pointer;
user-select:none;
}
.burger:active{transform:translateY(1px)}
.burger svg{width:22px; height:22px; opacity:.92}
/* Mobile drawer */
.drawer{
display:none;
border-top:1px solid var(--line);
padding:10px 0 14px;
}
.drawer a{
display:flex; align-items:center;
min-height:var(--tap);
padding: 10px 12px;
border-radius:14px;
text-decoration:none;
font-weight:900;
color:rgba(241,245,255,.92);
border:1px solid rgba(255,255,255,.08);
background:rgba(255,255,255,.03);
margin-top:10px;
}
@media (max-width: 860px){
.navlinks{display:none}
.burger{display:flex}
.drawer.open{display:block}
}
/* Typography */
h1{
margin: 0 0 10px;
font-size: clamp(30px, 5.2vw, 52px);
line-height:1.08;
font-weight:900;
letter-spacing:-.6px;
}
h2{
margin:0 0 10px;
font-size: clamp(22px, 3.6vw, 36px);
font-weight:900;
letter-spacing:-.3px;
}
h3{margin:0 0 8px; font-size:19px; font-weight:900}
p{margin:0 0 12px; font-size: clamp(16px, 2.2vw, 19px); color:var(--soft)}
.small{font-size:14px; color:var(--muted)}
/* Buttons */
.btnrow{display:flex; gap:12px; flex-wrap:wrap; margin-top:14px}
.btn{
display:inline-flex; align-items:center; justify-content:center; gap:10px;
min-height:var(--tap);
padding: 12px 16px;
border-radius:14px;
text-decoration:none;
font-weight:900;
border:1px solid transparent;
user-select:none;
transition:transform .12s ease, filter .2s ease, background .2s ease;
cursor:pointer;
}
.btn:active{transform:translateY(1px)}
.btn.success{
background:linear-gradient(135deg, rgba(34,197,94,.92), rgba(16,185,129,.92));
box-shadow:0 16px 40px rgba(34,197,94,.18);
color:#fff;
}
.btn.primary{
background:linear-gradient(135deg, rgba(62,166,255,.95), rgba(29,78,216,.95));
box-shadow:0 16px 40px rgba(29,78,216,.22);
color:#fff;
}
.btn.secondary{
background:rgba(255,255,255,.06);
border-color:var(--line);
color:rgba(241,245,255,.92);
}
.btn.ghost{
background:transparent;
border-color:var(--line);
color:rgba(241,245,255,.92);
}
.btn:hover{filter:brightness(1.05)}
/* Sections / Cards */
.section{padding: 26px 0}
.wrap{padding: 18px 0 80px}
.panel{
margin-top:14px;
background:linear-gradient(180deg, rgba(16,37,74,.78), rgba(13,31,61,.78));
border:1px solid var(--line);
border-radius:var(--radius);
box-shadow:var(--shadow);
padding:18px;
}
.card{
background:rgba(255,255,255,.04);
border:1px solid var(--line);
border-radius:18px;
padding:14px;
}
.grid{
display:grid;
grid-template-columns: repeat(3, 1fr);
gap:14px;
margin-top:12px;
}
@media (max-width: 980px){ .grid{grid-template-columns:1fr} }
.grid2{
display:grid;
grid-template-columns: 1fr 1fr;
gap:12px;
}
@media(max-width: 900px){ .grid2{grid-template-columns:1fr} }
.hr{height:1px; background:var(--line); margin:14px 0}
/* Hero blocks */
.hero{
border-radius:22px;
border:1px solid var(--line);
overflow:hidden;
box-shadow:var(--shadow);
}
.hero-inner{padding:22px}
.kicker{
display:inline-flex; align-items:center; gap:10px;
font-weight:900; font-size:14px;
padding:8px 12px;
border-radius:999px;
background:rgba(62,166,255,.12);
border:1px solid rgba(62,166,255,.25);
color:rgba(241,245,255,.90);
}
.dot{
width:8px; height:8px; border-radius:999px;
background:var(--accent);
box-shadow:0 0 0 6px rgba(62,166,255,.15);
}
/* FAQ */
.faq{margin-top:12px; display:grid; gap:12px}
details{
border:1px solid var(--line);
border-radius:16px;
background:rgba(255,255,255,.03);
padding:12px 14px;
}
summary{
cursor:pointer;
font-weight:900;
font-size:16px;
color:rgba(241,245,255,.92);
list-style:none;
}
summary::-webkit-details-marker{display:none}
details p{margin:10px 0 0; color:var(--soft)}
/* Forms */
.field{margin-top:10px; display:grid; gap:8px}
label{font-weight:900; font-size:14px; color:rgba(241,245,255,.90)}
input, select, textarea{
width:100%;
min-height:var(--tap);
padding:12px 12px;
border-radius:14px;
border:1px solid var(--line);
background:rgba(255,255,255,.04);
color:var(--text);
font-size:16px;
outline:none;
}
textarea{min-height:96px; resize:vertical}
input::placeholder, textarea::placeholder{color:rgba(241,245,255,.45)}
/* Question blocks */
.q{
margin-top:12px;
border:1px solid var(--line);
background:rgba(255,255,255,.03);
border-radius:18px;
padding:14px;
}
.q h2{
margin:0 0 10px;
font-size:18px;
font-weight:900;
letter-spacing:-.2px;
}
.options{display:grid; gap:10px}
.opt{
display:flex; gap:10px; align-items:flex-start;
border:1px solid var(--line);
background:rgba(255,255,255,.04);
padding:12px;
border-radius:16px;
cursor:pointer;
user-select:none;
}
.opt input{margin-top:3px; transform:scale(1.1)}
.opt b{display:block}
.opt span{display:block; font-size:14px; color:var(--muted); margin-top:2px}
/* Result / Alert */
.alert{
display:none;
margin-top:12px;
border:1px solid rgba(255,107,53,.28);
background:rgba(255,107,53,.10);
border-radius:18px;
padding:14px;
}
.alert b{display:block; margin-bottom:6px}
.result{
display:none;
margin-top:14px;
border:1px solid rgba(62,166,255,.22);
background:rgba(62,166,255,.08);
border-radius:18px;
padding:16px;
}
.result h3{margin:0 0 6px; font-size:20px; font-weight:900}
.next{
margin-top:12px;
padding:12px;
border-radius:16px;
border:1px solid rgba(34,197,94,.25);
background:rgba(34,197,94,.10);
}
/* Pills */
.kpi{display:flex; gap:10px; flex-wrap:wrap; margin-top:10px}
.pill{
display:inline-flex; align-items:center; gap:8px;
border:1px solid var(--line);
background:rgba(255,255,255,.04);
color:rgba(241,245,255,.88);
padding:8px 10px;
border-radius:999px;
font-weight:900;
font-size:13px;
}
/* Table */
.tablewrap{
overflow:auto;
border-radius:16px;
border:1px solid var(--line);
background:rgba(255,255,255,.02);
margin-top:10px;
}
table{
width:100%;
border-collapse:separate;
border-spacing:0;
min-width:540px;
}
th, td{
padding:10px 10px;
border-bottom:1px solid var(--line);
font-size:14px;
color:rgba(241,245,255,.90);
vertical-align:top;
}
th{
background:rgba(255,255,255,.04);
text-align:left;
font-weight:900;
position:sticky;
top:0;
z-index:1;
}
tr:last-child td{border-bottom:none}
.miniInput{
min-height:auto;
padding:10px;
border-radius:12px;
font-size:14px;
}
/* Footer */
.footer{
border-top:1px solid var(--line);
padding: 22px 0 40px;
margin-top:12px;
color:var(--muted);
font-size:14px;
padding-bottom: calc(40px + env(safe-area-inset-bottom));
}