/* ---------- Tokens ---------- */
:root{
  --black:#0a0a0a;
  --white:#ffffff;
  --paper:#f4f4f2;
  --charcoal:#1f1f1f;
  --stone:#767671;
  --line:#dcdcd8;
  --radius:2px;
  --ease:cubic-bezier(.65,0,.35,1);
}

*{box-sizing:border-box; margin:0; padding:0;}

html{scroll-behavior:smooth;}

body{
  font-family:'Inter', -apple-system, sans-serif;
  background:var(--white);
  color:var(--black);
  min-height:100vh;
  overflow-x:hidden;
}

h1,h2,h3,.headline{
  font-family:'Archivo Black', 'Inter', sans-serif;
  font-weight:400;
  letter-spacing:-0.02em;
  line-height:0.95;
  text-transform:uppercase;
}

button{font-family:inherit; cursor:pointer; border:none; background:none;}
input, textarea{font-family:inherit;}

img{filter:grayscale(1) contrast(1.08); display:block;}

/* ---------- Progress bar ---------- */
.progress-track{
  position:fixed; top:0; left:0; right:0; height:3px;
  background:var(--line); z-index:50;
}
.progress-fill{
  height:100%; width:0%;
  background:var(--black);
  transition:width .5s var(--ease);
}

/* ---------- Screens ---------- */
.screen{
  display:none;
  min-height:100vh;
  width:100%;
}
.screen.active{display:flex; flex-direction:column;}

/* ---------- Cover ---------- */
.cover{
  position:relative;
  justify-content:center;
  align-items:flex-start;
  padding:8vh 8vw;
  color:var(--white);
  overflow:hidden;
}
.cover-bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
}
.cover-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,10,.55) 0%, rgba(10,10,10,.78) 55%, rgba(10,10,10,.92) 100%);
  z-index:0;
}
.cover-content{position:relative; z-index:1; max-width:820px;}
.eyebrow{
  display:inline-block;
  font-size:.75rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--white);
  margin-bottom:1.5rem;
  border:1px solid rgba(255,255,255,.35);
  padding:.4em .9em;
  border-radius:100px;
}
.cover-title{
  font-size:clamp(4rem, 12vw, 9rem);
  margin-bottom:.4rem;
}
.cover-tagline{
  font-family:'Archivo Black', sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:clamp(.95rem, 1.6vw, 1.3rem);
  color:var(--white);
  opacity:.85;
  margin-bottom:1.8rem;
}
.cover-sub{
  font-size:1.05rem;
  color:#e2e2e0;
  max-width:480px;
  margin-bottom:2.5rem;
  line-height:1.5;
}
.cover-tags{
  position:relative; z-index:1;
  margin-top:6vh;
  display:flex; flex-wrap:wrap; gap:.6em;
  font-size:.75rem; letter-spacing:.14em;
  color:#c9c9c6;
  text-transform:uppercase;
}
.cover-tags span{opacity:.85;}

/* ---------- Buttons ---------- */
.btn{
  font-size:.95rem;
  font-weight:600;
  letter-spacing:.02em;
  padding:1em 1.8em;
  border-radius:100px;
  transition:transform .25s var(--ease), background .25s, color .25s, border-color .25s;
  display:inline-flex; align-items:center; gap:.5em;
}
.btn-primary{
  background:var(--black);
  color:var(--white);
}
.btn-primary:hover{background:var(--charcoal); transform:translateY(-2px);}
.btn-ghost{
  background:transparent;
  color:var(--black);
  border:1.5px solid var(--black);
}
.btn-ghost:hover{background:var(--black); color:var(--white);}
.cover .btn-primary{background:var(--white); color:var(--black);}
.cover .btn-primary:hover{background:#e6e6e6;}
.btn-text{
  font-size:.8rem;
  color:var(--stone);
  text-decoration:underline;
  text-underline-offset:3px;
}
.btn-text:hover{color:var(--black);}

/* ---------- Quiz ---------- */
.screen.quiz{
  padding:0;
  flex-direction:row;
  align-items:stretch;
}
.quiz-visual{
  position:relative;
  width:42%;
  flex-shrink:0;
  overflow:hidden;
  background:var(--black);
}
.quiz-visual img{
  width:100%; height:100%;
  object-fit:cover;
  position:absolute; inset:0;
  transition:opacity .5s var(--ease);
}
.quiz-visual::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,10,.05), rgba(10,10,10,.35));
}
.quiz-main{
  flex:1;
  display:flex;
  flex-direction:column;
  background:var(--paper);
  padding:0 6vw;
  min-width:0;
}
.quiz-top{
  display:flex; justify-content:space-between; align-items:center;
  gap:1rem;
  padding:2.2rem 0 1rem;
}
.quiz-logo{
  font-family:'Archivo Black', sans-serif;
  font-size:.9rem;
  letter-spacing:.1em;
}
.quiz-count{
  font-family:'Archivo Black', sans-serif;
  font-size:.9rem;
  letter-spacing:.08em;
  color:var(--stone);
  margin-right:auto;
  margin-left:1.5rem;
}
.quiz-count #qNum{color:var(--black);}

.quiz-body{
  flex:1;
  display:flex;
  align-items:center;
  padding:2rem 0 4rem;
}
.question-wrap{
  width:100%;
  max-width:720px;
  animation:fadeUp .45s var(--ease);
}
@keyframes fadeUp{
  from{opacity:0; transform:translateY(18px);}
  to{opacity:1; transform:translateY(0);}
}

.q-tag{
  display:inline-block;
  font-size:.7rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--black);
  background:rgba(10,10,10,.08);
  padding:.35em .8em;
  border-radius:100px;
  margin-bottom:1.2rem;
}
.q-title{
  font-size:clamp(1.6rem, 2.6vw, 2.4rem);
  margin-bottom:2rem;
  max-width:22ch;
}
.question-wrap--wide .q-title{max-width:34ch;}

.q-desc{
  font-family:'Inter', sans-serif;
  font-size:.95rem;
  line-height:1.6;
  color:var(--stone);
  max-width:56ch;
  margin:-1rem 0 1.8rem;
}

/* text / textarea / date inputs */
.q-input{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:2px solid var(--line);
  padding:.6em .1em;
  font-size:1.3rem;
  color:var(--black);
  transition:border-color .25s;
}
.q-input:focus{outline:none; border-color:var(--black);}
.q-input::placeholder{color:var(--stone);}
textarea.q-input{resize:none; min-height:5.5em; line-height:1.5; font-size:1.1rem;}

/* pills (single choice) */
.pills{display:flex; flex-wrap:wrap; gap:.7rem;}
.pill{
  padding:.9em 1.5em;
  border:1.5px solid var(--line);
  border-radius:100px;
  font-size:.95rem;
  font-weight:500;
  color:var(--black);
  background:var(--white);
  transition:all .2s var(--ease);
}
.pill:hover{border-color:var(--black);}
.pill.active{
  background:var(--black);
  border-color:var(--black);
  color:var(--white);
}

/* chips (multi choice) */
.chip{
  padding:.9em 1.5em;
  border:1.5px solid var(--line);
  border-radius:100px;
  font-size:.95rem;
  font-weight:500;
  background:var(--white);
  transition:all .2s var(--ease);
  display:inline-flex; align-items:center; gap:.5em;
}
.chip:hover{border-color:var(--black);}
.chip.active{
  background:var(--charcoal);
  border-color:var(--charcoal);
  color:var(--white);
}
.chip .dot{
  width:7px; height:7px; border-radius:50%;
  border:1.5px solid currentColor;
}
.chip.active .dot{background:currentColor;}

/* slider */
.slider-wrap{padding-top:1rem;}
.slider-labels{
  display:flex; justify-content:space-between;
  font-size:.85rem; color:var(--stone); margin-bottom:1rem;
  text-transform:uppercase; letter-spacing:.04em;
}
input[type="range"]{
  -webkit-appearance:none;
  width:100%;
  height:2px;
  background:var(--line);
  border-radius:2px;
  outline:none;
}
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:22px; height:22px;
  border-radius:50%;
  background:var(--black);
  cursor:pointer;
  border:4px solid var(--paper);
  box-shadow:0 0 0 1.5px var(--black);
}
input[type="range"]::-moz-range-thumb{
  width:22px; height:22px; border-radius:50%;
  background:var(--black); cursor:pointer;
  border:4px solid var(--paper);
  box-shadow:0 0 0 1.5px var(--black);
}

.q-hint{
  margin-top:1rem;
  font-size:.8rem;
  color:var(--stone);
}

/* matrix (rows with 3-way choice) */
.matrix-wrap{
  max-height:52vh;
  overflow-y:auto;
  padding-right:.5rem;
  border-top:1px solid var(--line);
}
.matrix-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  padding:1rem 0;
  border-bottom:1px solid var(--line);
}
.matrix-label{
  font-size:.95rem;
  font-weight:500;
  flex:1 1 220px;
}
.matrix-options{display:flex; flex-wrap:wrap; gap:.5rem;}
.pill-sm{
  padding:.55em 1.1em;
  font-size:.8rem;
  border:1.5px solid var(--line);
  border-radius:100px;
  background:var(--white);
  color:var(--black);
  transition:all .2s var(--ease);
}
.pill-sm:hover{border-color:var(--black);}
.pill-sm.active{
  background:var(--black);
  border-color:var(--black);
  color:var(--white);
}

/* ---------- Nav footer ---------- */
.quiz-nav{
  display:flex; justify-content:space-between; align-items:center;
  padding:1.5rem 0 2.5rem;
  border-top:1px solid var(--line);
}

/* ---------- Summary ---------- */
.summary{
  position:relative;
  color:var(--white);
  align-items:center;
  padding:8vh 6vw;
  overflow:hidden;
}
.summary-bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
}
.summary-overlay{
  position:absolute; inset:0;
  background:rgba(8,8,8,.88);
  z-index:0;
}
.summary-content{position:relative; z-index:1; width:100%; max-width:760px; margin:0 auto;}
.summary .eyebrow{color:var(--white); border-color:rgba(255,255,255,.35);}
.summary-title{
  font-size:clamp(2rem, 5vw, 3.4rem);
  margin:1.2rem 0 1rem;
}
.summary .cover-sub{color:#c9c9c6; margin-bottom:2.5rem;}

.summary-list{
  border-top:1px solid rgba(255,255,255,.18);
  margin-bottom:2.5rem;
}
.summary-item{
  display:flex; justify-content:space-between; gap:2rem;
  padding:1.1rem 0;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.summary-item .s-q{
  font-size:.85rem; color:#b3b3af; max-width:40%;
}
.summary-item .s-a{
  font-size:1rem; font-weight:500; text-align:right; max-width:55%;
}
.summary-actions{display:flex; gap:1rem; flex-wrap:wrap;}
.summary .btn-ghost{color:var(--white); border-color:rgba(255,255,255,.5);}
.summary .btn-ghost:hover{background:var(--white); color:var(--black);}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .screen.quiz{flex-direction:column;}
  .quiz-visual{width:100%; height:22vh; min-height:140px; max-height:220px;}
}

@media (max-width:720px){
  .cover{padding:6vh 6vw; align-items:flex-start;}
  .cover-title{font-size:clamp(3rem, 16vw, 4.5rem);}
  .quiz-main{padding:0 6vw;}
  .quiz-body{padding:1.5rem 0 3rem; align-items:flex-start;}
  .quiz-top{flex-wrap:wrap; padding:1.4rem 0 .8rem; row-gap:.4rem;}
  .quiz-count{margin-left:0;}
  .q-title{font-size:1.5rem; max-width:none;}
  .quiz-nav{flex-direction:row-reverse; justify-content:space-between;}
  .summary-item{flex-direction:column; gap:.3rem;}
  .summary-item .s-q, .summary-item .s-a{max-width:100%; text-align:left;}
  .summary-actions{flex-direction:column;}
  .summary-actions .btn{width:100%; justify-content:center;}
  .matrix-row{flex-direction:column; align-items:flex-start;}
  .matrix-wrap{max-height:44vh;}
}

@media (min-width:1400px){
  .quiz-body{padding:3rem 0 5rem;}
}

/* ---------- Print ---------- */
@media print{
  .progress-track, .quiz-top, .quiz-nav, .summary-actions, .cover, .quiz, .summary-bg, .summary-overlay{display:none !important;}
  .screen.summary{display:flex !important; background:#fff !important; color:#000 !important; padding:0;}
  .summary .eyebrow, .summary .cover-sub{color:#444 !important; border-color:#ccc !important;}
  .summary-item{border-color:#ccc !important;}
  .summary-item .s-q{color:#555 !important;}
}
