/* TeethJudge — "The Shade Guide". Clinical porcelain + UV whitening indigo.
   Display Anton (score) / Archivo (heads) · Space Mono (codes) · Inter (body). */
:root{
  --paper:#EAEEEC;        /* cool porcelain page */
  --card:#FFFFFF;         /* glossy enamel */
  --ink:#0E1416;
  --dim:#5C666A;
  --faint:#8A9498;
  --line:rgba(14,20,22,.11);
  --line-2:rgba(14,20,22,.06);
  --uv:#5B34FF;           /* whitening-light indigo — primary accent */
  --uv-soft:#EDE8FF;
  --mint:#0FA980;         /* dental mint — good scores */
  --amber:#B0782A;        /* stain warning — low scores */
  --shadow:0 1px 0 rgba(14,20,22,.04), 0 18px 44px -22px rgba(14,20,22,.30);
  --r:20px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--paper);color:var(--ink);
  font:400 16px/1.6 "Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible{outline:2.5px solid var(--uv);outline-offset:3px;border-radius:6px}
em{font-style:normal;color:var(--uv)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}

.sec-eyebrow{
  display:inline-block;font-family:"Space Mono",monospace;font-weight:700;
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--uv);
}

/* ---- nav ---- */
.nav{display:flex;align-items:center;justify-content:space-between;padding:26px 0 12px}
.nav-mark{display:flex;align-items:center;gap:10px;font:800 18px/1 "Archivo",sans-serif;letter-spacing:-.01em}
.nav-mark img{width:30px;height:30px;border-radius:8px}
.nav-links{display:flex;align-items:center;gap:20px;font-family:"Space Mono",monospace;font-size:12.5px;color:var(--dim)}
.nav-links a:hover{color:var(--ink)}
.soon{
  padding:5px 10px;border-radius:999px;background:var(--uv-soft);color:var(--uv);
  font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
}

/* ---- hero: asymmetric split ---- */
.hero{
  display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;
  padding:52px 0 40px;
}
.hero-copy{max-width:520px}
.kicker{
  font-family:"Space Mono",monospace;font-size:12.5px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--dim);
}
.headline{
  margin-top:16px;
  font:800 clamp(40px,6.4vw,68px)/.98 "Archivo",sans-serif;
  letter-spacing:-.03em;
}
.subhead{margin-top:20px;color:var(--dim);font-size:17px;max-width:440px}

.cta{margin-top:30px}
.btn{
  display:inline-flex;align-items:center;gap:12px;background:var(--ink);color:#fff;
  border-radius:14px;padding:13px 22px;transition:transform .16s cubic-bezier(.2,1,.4,1);
}
.btn .copy{display:flex;flex-direction:column;text-align:left;line-height:1.15}
.btn .lead{font-size:11px;font-weight:500;opacity:.72}
.btn .label{font:700 18px/1.1 "Archivo",sans-serif}
.cta-meta{
  list-style:none;margin:18px 0 0;display:flex;flex-wrap:wrap;gap:8px 10px;
  font-family:"Space Mono",monospace;font-size:12px;color:var(--dim);
}
.cta-meta li{padding:5px 11px;border:1px solid var(--line);border-radius:999px;background:var(--card)}

/* ---- the report card (hero right) ---- */
.report{
  background:var(--card);border:1px solid var(--line);border-radius:24px;
  box-shadow:var(--shadow);padding:24px 24px 22px;position:relative;overflow:hidden;
}
.report-head{
  display:flex;align-items:center;justify-content:space-between;
  font-family:"Space Mono",monospace;font-size:11.5px;letter-spacing:.06em;
  color:var(--faint);padding-bottom:16px;border-bottom:1px solid var(--line-2);
}
.report-state{
  color:var(--mint);font-weight:700;display:flex;align-items:center;gap:7px;
}
.report-state::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--mint)}
.verdict{text-align:center;padding:22px 0 6px}
.score-line{display:flex;align-items:baseline;justify-content:center;gap:6px}
.score{
  font-family:"Anton",sans-serif;font-weight:400;
  font-size:clamp(88px,20vw,124px);line-height:.82;letter-spacing:.01em;
  font-variant-numeric:tabular-nums;color:var(--ink);
}
.score-max{font-family:"Space Mono",monospace;font-size:20px;color:var(--faint)}
.stamp{
  margin-top:12px;font:800 clamp(18px,4.4vw,22px)/1.15 "Archivo",sans-serif;
  letter-spacing:-.01em;min-height:1.2em;
}
.pct{margin-top:6px;font-family:"Space Mono",monospace;font-size:12.5px;color:var(--dim);min-height:1.4em}

/* the shade guide */
.guide{margin-top:22px}
.guide-tabs{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:4px;height:46px}
.tab{background:var(--c);border:1px solid var(--line);border-radius:6px}
.tab:first-child{border-color:rgba(14,20,22,.16)}
.marker{
  position:absolute;top:-9px;bottom:-9px;width:4px;margin-left:-2px;
  background:var(--uv);border-radius:4px;
  box-shadow:0 0 0 3px rgba(91,52,255,.18);
  transition:left .05s linear;
}
.marker::after{
  content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%);
  border:5px solid transparent;border-top-color:var(--uv);
}
.guide-ends{
  display:flex;justify-content:space-between;margin-top:8px;
  font-family:"Space Mono",monospace;font-size:11px;color:var(--faint);
}

.tip{
  margin-top:20px;display:flex;gap:10px;align-items:flex-start;
  background:var(--paper);border-radius:12px;padding:13px 14px;
  font-size:13.5px;line-height:1.5;color:var(--ink);min-height:64px;
}
.judge{
  margin-top:16px;width:100%;border:0;cursor:pointer;
  font:700 15px/1 "Archivo",sans-serif;color:#fff;background:var(--uv);
  border-radius:13px;padding:15px;
  transition:transform .16s cubic-bezier(.2,1,.4,1),background .16s;
}
.judge:active{transform:scale(.985)}
.disclaim{margin-top:11px;text-align:center;font-size:11.5px;color:var(--faint)}

/* ---- the scale ---- */
.scale{padding:64px 0 8px}
.scale-head{max-width:560px;margin-bottom:26px}
.scale-head h2{margin-top:12px;font:800 clamp(26px,4.4vw,38px)/1.06 "Archivo",sans-serif;letter-spacing:-.02em}
.scale-strip{list-style:none;display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.band{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:14px 12px 16px;display:flex;flex-direction:column;gap:6px;
  position:relative;overflow:hidden;
}
.band::before{content:"";display:block;height:8px;border-radius:5px;background:var(--c);border:1px solid var(--line);margin-bottom:8px}
.band-code{font-family:"Space Mono",monospace;font-size:11px;color:var(--faint);letter-spacing:.05em}
.band-emoji{font-size:22px;line-height:1}
.band-name{font:700 14px/1.15 "Archivo",sans-serif}
.band-range{font-family:"Space Mono",monospace;font-size:11.5px;color:var(--dim)}

/* ---- steps ---- */
.steps{padding:64px 0 8px}
.steps-row{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.step{border-top:2px solid var(--ink);padding-top:16px}
.step-n{font-family:"Space Mono",monospace;font-size:13px;font-weight:700;color:var(--uv)}
.step h3{margin:8px 0 8px;font:800 21px/1 "Archivo",sans-serif;letter-spacing:-.01em}
.step p{color:var(--dim);font-size:14.5px}

/* ---- face-off ---- */
.faceoff{padding:64px 0 8px}
.fo-inner{
  background:var(--ink);color:#fff;border-radius:24px;padding:40px;
  display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center;
}
.fo-copy .sec-eyebrow{color:#fff}
.fo-copy h2{margin:12px 0 14px;font:800 clamp(28px,4.6vw,40px)/1.02 "Archivo",sans-serif;letter-spacing:-.02em}
.fo-copy p{color:rgba(255,255,255,.66);font-size:15.5px;max-width:380px}
.fo-duel{display:flex;align-items:center;justify-content:center;gap:16px}
.fo-card{
  flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  border-radius:18px;padding:22px 14px;text-align:center;position:relative;
}
.fo-win{border-color:var(--uv);box-shadow:0 0 0 3px rgba(91,52,255,.28)}
.fo-crown{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:26px}
.fo-score{display:block;font-family:"Anton",sans-serif;font-size:54px;line-height:1;font-variant-numeric:tabular-nums}
.fo-tag{display:block;margin-top:8px;font-family:"Space Mono",monospace;font-size:12px;color:rgba(255,255,255,.6)}
.fo-vs{font-family:"Anton",sans-serif;font-size:20px;color:rgba(255,255,255,.5)}

/* ---- details ---- */
.details{padding:64px 0 8px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.detail{border-top:1px solid var(--line);padding-top:16px}
.detail-key{font:800 16px/1.2 "Archivo",sans-serif;letter-spacing:-.01em}
.detail p{margin-top:8px;color:var(--dim);font-size:14.5px}

/* ---- price ---- */
.price{padding:72px 0 20px;max-width:640px}
.price h2{margin:14px 0 16px;font:800 clamp(30px,5.4vw,48px)/1.02 "Archivo",sans-serif;letter-spacing:-.02em}
.price p{color:var(--dim);font-size:16px}
.price-fine{margin-top:14px;font-family:"Space Mono",monospace;font-size:13px;color:var(--faint)}
.price-fine a{color:var(--uv);font-weight:700}

/* ---- legal pages ---- */
.legal{max-width:700px;margin:0 auto;padding:36px 0 20px}
.legal h1{font:800 clamp(30px,5vw,40px)/1.08 "Archivo",sans-serif;letter-spacing:-.02em}
.legal .meta{margin:10px 0 28px;font-family:"Space Mono",monospace;font-size:12.5px;color:var(--faint)}
.legal h2{margin:32px 0 8px;font:800 20px/1.25 "Archivo",sans-serif;letter-spacing:-.01em}
.legal p,.legal li{color:#323b3e;font-size:15.5px;line-height:1.65}
.legal ul{padding-left:20px;margin:8px 0}
.legal li{margin:4px 0}
.legal a{color:var(--uv);font-weight:600}
.legal strong{color:var(--ink)}

/* ---- footer ---- */
.foot{
  margin-top:76px;padding:26px 0 46px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:14px;
  font-family:"Space Mono",monospace;font-size:12.5px;color:var(--dim);
}
.foot-links{display:flex;gap:18px}
.foot-links a:hover{color:var(--ink)}

@media (hover:hover) and (pointer:fine){
  .btn:hover{transform:translateY(-2px)}
  .judge:hover{background:#4a27e0}
  .nav-links a{transition:color .15s}
}

/* ---- responsive ---- */
@media (max-width:860px){
  .hero{grid-template-columns:1fr;gap:34px}
  .hero-copy{max-width:none}
  .report{max-width:440px;margin:0 auto;width:100%}
  .fo-inner{grid-template-columns:1fr;gap:28px;padding:32px 26px}
  .scale-strip{grid-template-columns:repeat(3,1fr)}
  .details{grid-template-columns:1fr}
}
@media (max-width:560px){
  .nav .soon{display:none}
  .headline br{display:none}
  .steps-row{grid-template-columns:1fr;gap:22px}
  .scale-strip{grid-template-columns:repeat(2,1fr)}
  .fo-copy h2 br{display:none}
  .foot{flex-direction:column;align-items:flex-start;gap:10px}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}
