:root{
  --parchment:#f8f4ed; --navy:#102151; --navy-soft:#2e3e6b; --ink:#151a28;
  --card:#faf8f4; --sand:#efe9dc; --sand-muted:#e8e3d9; --muted-text:#525a6f;
  --gold:#d59f15; --gold-ink:#0a1533; --turquoise:#2ba6a0; --hairline:#c8cdda; --danger:#bd2828;
  --radius:14px; --shadow:0 1px 3px rgba(16,33,81,.08),0 8px 24px rgba(16,33,81,.06);
}
*{box-sizing:border-box}
body{margin:0;background:var(--parchment);color:var(--ink);font-family:Vazirmatn,Vazirmatn VF,system-ui,sans-serif;line-height:1.9}
.col{max-width:640px;margin:0 auto;padding:24px 16px 48px}
.card{background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:28px 24px}
.hidden{display:none!important}
.badge{display:inline-block;background:var(--sand);color:var(--navy);border-radius:999px;padding:2px 14px;font-size:.8125rem;font-weight:600;margin:0 0 8px}
h1{font-size:1.6rem;line-height:1.5;color:var(--navy);margin:.2em 0 .4em}
h2{color:var(--navy);font-size:1.25rem}
.lede{color:var(--ink)}
.steps{padding-right:1.2em;margin:.6em 0}
.hint{background:var(--sand-muted);border-radius:var(--radius);padding:10px 14px;font-size:.9rem;color:var(--muted-text)}
.btn{display:block;width:100%;border:0;cursor:pointer;font:inherit;font-weight:700;border-radius:999px;padding:14px;margin-top:16px;transition:background .15s}
.btn.primary{background:var(--gold);color:var(--gold-ink)}
.btn.primary:hover{background:#c08f0f}
.btn.navy{background:var(--navy);color:var(--parchment);text-decoration:none}
.btn.navy:hover{background:var(--navy-soft)}
.btn.ghost{background:transparent;color:var(--navy);font-weight:600}
.phone{text-align:center;color:var(--muted-text);font-size:.9rem;margin:14px 0 0}
.phone a{color:var(--navy);font-weight:700;text-decoration:none;direction:ltr;unicode-bidi:embed}
.err{color:var(--danger);font-size:.9rem}
/* intro gold diamond tile */
.tile{height:64px;border-radius:12px;margin-bottom:16px;background-color:var(--navy);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='none' stroke='%23D4A017' stroke-width='0.6' stroke-opacity='0.18'%3E%3Cpath d='M40 0 L80 40 L40 80 L0 40 Z'/%3E%3Cpath d='M40 12 L68 40 L40 68 L12 40 Z'/%3E%3C/g%3E%3C/svg%3E")}
/* session */
.stages{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-bottom:20px}
.chip{background:var(--sand-muted);color:var(--muted-text);border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:600;position:relative}
.chip.active{background:var(--turquoise);color:var(--navy)}
.chip.done{background:var(--sand);color:var(--navy)}
.chip.done::after{content:" ✓"}
.orb-wrap{text-align:center;margin:8px 0 18px}
.orb{width:112px;height:112px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;font-size:44px;box-shadow:var(--shadow);transition:background .3s}
.orb.idle{background:var(--navy)}
.orb.assessor{background:var(--gold)}
.orb.listening{background:var(--turquoise)}
@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}
.orb.assessor,.orb.listening{animation:pulse 1.6s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.orb{animation:none!important}}
.orb-state{color:var(--muted-text);font-size:.9rem;margin:10px 0 0}
.transcript{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;min-height:120px;max-height:34vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.bubble{border-radius:12px;padding:8px 14px;max-width:88%}
.bubble.assessor{background:var(--sand);color:var(--navy);align-self:flex-start}
.bubble.student{background:var(--sand-muted);color:var(--ink);align-self:flex-end}
.bubble .en{direction:ltr;unicode-bidi:embed;font-size:1.0625rem;line-height:1.7;display:block}
.bubble .who{font-size:.72rem;color:var(--muted-text);display:block;margin-bottom:2px}
/* result */
.cefr{text-align:center;margin:14px 0}
.cefr-value{display:block;font-size:3rem;font-weight:800;color:var(--turquoise);direction:ltr}
.cefr-label{color:var(--muted-text);font-size:.9rem}
.course{background:var(--sand);border-radius:var(--radius);padding:12px 16px;text-align:center;margin:14px 0}
.course strong{display:block;font-size:1.15rem;color:var(--navy);margin-top:2px}
.subs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center;margin:14px 0}
.subs div{background:var(--sand-muted);border-radius:12px;padding:8px 4px}
.subs span{display:block;font-size:.75rem;color:var(--muted-text)}
.subs b{direction:ltr;unicode-bidi:embed;color:var(--navy)}
.sw{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.sw h3{font-size:.9rem;color:var(--navy);margin:0 0 6px}
.sw ul{margin:0;padding-right:1.1em;color:var(--ink);font-size:.9rem}
.btn-again{margin-top:8px;font-size:.875rem}
