*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;background:#001a4a}
body{
  font-family:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  color:var(--ink);
  background: url('../../assets/blueprint-background.webp') fixed center/cover no-repeat;
  background-color:#001a4a;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
:root{
  --ink:#0A0F1C;
  --navy:#002768;
  --navy-2:#001a4a;
  --red:#C8262A;
  --red-2:#A90100;
  --smoke:#5B6471;
  --mute:#C7CBD2;
  --hairline:#E5E7EB;
  --surface-alt:#F4F5F7;
  --surface:#FCFCFD;
  --white:#FFFFFF;

  --bg-dark: var(--ink);
  --accent: var(--red);
  --accent-ink: var(--white);
  --headline-a: var(--white);
  --headline-b: var(--accent);
  --headline-mute: var(--mute);

  --container: 1240px;
  --gap-step: 28px;
}

.display{
  font-family:"Archivo Black","Archivo",ui-sans-serif,system-ui,sans-serif;
  font-weight:900;text-transform:uppercase;letter-spacing:-0.01em;
  line-height:.98;text-wrap:balance;
}
.eyebrow{
  font-family:"Archivo",ui-sans-serif,system-ui,sans-serif;
  font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:12px;
}
.container{ max-width:var(--container); margin:0 auto; padding:0 32px; }
.eyebrow-accent{ color:var(--accent); }

.btn{
  display:inline-flex;align-items:center;gap:10px;padding:16px 26px;
  font-family:"Archivo",sans-serif;font-weight:800;letter-spacing:.06em;
  font-size:13px;text-transform:uppercase;text-decoration:none;
  background:var(--accent);color:var(--accent-ink);border:0;cursor:pointer;
  transition:transform .15s ease, filter .2s ease, background .2s ease;
}
.btn:hover{ filter:brightness(.92); }
.btn:active{ transform:translateY(1px); }
.btn-dark{ background:var(--ink); color:var(--white); }
.btn-ghost{ background:transparent; color:var(--white); border:2px solid rgba(255,255,255,.4); padding:14px 24px; }
.btn-ghost:hover{ background:rgba(255,255,255,.1); }
.btn:disabled{ opacity:.4; cursor:not-allowed; filter:none; }

a{ color:var(--accent); }
a:hover{ color:var(--red-2); }

.split .a{ color:var(--headline-a); }
.split .b{ color:var(--headline-b); }
.split .m{ color:var(--headline-mute); }

::selection{ background:var(--accent); color:var(--accent-ink); }

.bg-blueprint-dark,.bg-blueprint-navy,.bg-blueprint-red,.bg-blueprint-light{
  background-image:url('../../assets/blueprint-master.webp');
  background-size:cover;background-attachment:fixed;background-position:center;
}
.placeholder{ background:#20262F; }

@keyframes stepIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:translateY(0); } }
.step-in{ animation:stepIn .42s cubic-bezier(.2,.8,.2,1) both; }
@media (prefers-reduced-motion: reduce){ .step-in{ animation:none; } }

input,select,textarea{ font-family:inherit; }

@keyframes spin{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }
@keyframes spinY{ from{ transform:rotateY(0deg); } to{ transform:rotateY(360deg); } }
.logo-spin{ animation:none; }
header img{ animation:none; transform-origin:50% 50%; }

/* ── Wizard ── */
.wiz-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
@media (max-width:680px){ .wiz-grid, .wiz-dual{ grid-template-columns:1fr !important; } }

.wiz-opt{
  position:relative; text-align:left; cursor:pointer;
  background:rgba(255,255,255,.04);
  border:2px solid rgba(255,255,255,.16);
  color:var(--white); padding:18px 20px; display:flex; flex-direction:column; gap:4px;
  transition:border-color .18s ease, background .18s ease, transform .12s ease;
  font-family:"Archivo",sans-serif;
}
.wiz-opt:hover{ border-color:var(--accent); background:rgba(255,255,255,.07); }
.wiz-opt:active{ transform:translateY(1px); }
.wiz-opt[data-on="1"]{ background:var(--accent); border-color:var(--accent); }
.wiz-opt-lbl{ font-weight:700; font-size:16px; letter-spacing:.01em; line-height:1.25; }
.wiz-opt-sub{ font-size:13px; line-height:1.4; color:rgba(255,255,255,.6); }
.wiz-opt[data-on="1"] .wiz-opt-sub{ color:rgba(255,255,255,.85); }
.wiz-opt .tick{
  position:absolute; top:14px; right:14px; width:20px; height:20px;
  border:2px solid rgba(255,255,255,.3); border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.wiz-opt.box .tick{ border-radius:4px; }
.wiz-opt[data-on="1"] .tick{ border-color:var(--white); background:var(--white); }
.wiz-opt .tick svg{ width:12px; height:12px; opacity:0; }
.wiz-opt[data-on="1"] .tick svg{ opacity:1; }

.wiz-field-lbl{
  font-family:"Archivo",sans-serif; font-weight:800; font-size:12px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--accent);
  margin-bottom:10px; display:block;
}
.wiz-select, .wiz-input, .wiz-textarea{
  width:100%; padding:16px 18px; font-size:16px;
  background:rgba(255,255,255,.05); color:var(--white);
  border:2px solid rgba(255,255,255,.16); outline:none;
  transition:border-color .18s ease, background .18s ease;
}
.wiz-select:focus, .wiz-input:focus, .wiz-textarea:focus{
  border-color:var(--accent); background:rgba(255,255,255,.08);
}
.wiz-select{ cursor:pointer; appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23C8262A' d='M0 0h12L6 8z'/></svg>");
  background-repeat:no-repeat; background-position:right 18px center; padding-right:44px; }
.wiz-select option{ background:#0A0F1C; color:#fff; }
.wiz-input::placeholder, .wiz-textarea::placeholder{ color:rgba(255,255,255,.35); }
.wiz-textarea{ resize:vertical; min-height:150px; line-height:1.5; }

.wiz-bar-track{ height:5px; background:rgba(255,255,255,.12); overflow:hidden; }
.wiz-bar-fill{ height:100%; background:var(--accent); transition:width .45s cubic-bezier(.2,.8,.2,1); }

.wiz-sumrow{ display:flex; gap:20px; padding:18px 0; border-top:1px solid rgba(255,255,255,.12); align-items:flex-start; }
.wiz-sumrow:last-child{ border-bottom:1px solid rgba(255,255,255,.12); }
.wiz-sum-q{ flex:1; }
.wiz-edit{ background:none; border:0; color:var(--accent); font-family:"Archivo",sans-serif;
  font-weight:800; font-size:11px; letter-spacing:.08em; text-transform:uppercase; cursor:pointer;
  padding:4px 0; flex-shrink:0; }
.wiz-edit:hover{ text-decoration:underline; }

/* ── Owner console ── */
.oc-overlay{ position:fixed; inset:0; z-index:200; background:rgba(6,9,18,.82); backdrop-filter:blur(6px); display:flex; justify-content:flex-end; }
.oc-panel{ width:min(640px,100%); height:100%; background:#0A0F1C; border-left:3px solid var(--accent); display:flex; flex-direction:column; box-shadow:-30px 0 80px rgba(0,0,0,.5); }
.oc-head{ padding:22px 26px; border-bottom:1px solid rgba(255,255,255,.1); display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.oc-body{ padding:26px; overflow-y:auto; flex:1; }
.oc-x{ background:none; border:0; color:rgba(255,255,255,.5); font-size:24px; cursor:pointer; line-height:1; padding:4px 8px; }
.oc-x:hover{ color:#fff; }
.oc-card{ border:1px solid rgba(255,255,255,.12); padding:18px 20px; margin-bottom:14px; background:rgba(255,255,255,.02); }
.oc-lbl{ font-family:"Archivo",sans-serif; font-weight:800; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); }
.oc-fit{ display:inline-block; padding:4px 12px; font-family:"Archivo",sans-serif; font-weight:800; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.oc-num{ font-family:"Archivo Black",sans-serif; font-size:20px; color:var(--accent); line-height:1; }
.oc-spin{ width:34px; height:34px; border:3px solid rgba(255,255,255,.15); border-top-color:var(--accent); border-radius:50%; animation:spin 0.8s linear infinite; }
