@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700;9..144,900&family=Noto+Sans+Devanagari:wght@500;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500;700&display=swap');

:root{
  --ink:#1B1B1B;
  --paper:#FBF7F0;
  --teal:#0F3D3E;
  --teal-deep:#0A2B2C;
  --saffron:#E8871E;
  --maroon:#8B3A3A;
  --line:#E4DDCF;
  --card:#FFFFFF;
  --muted:#6B6459;
  --good:#1E7A46;
  --bad:#C0392B;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Inter',sans-serif;}
h1,h2,h3,.display{font-family:'Fraunces',serif;font-weight:700;letter-spacing:-0.01em;margin:0;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px;}

/* header */
header{background:linear-gradient(100deg,var(--teal-deep) 0%, var(--teal) 55%, var(--saffron) 130%);color:#fff;position:sticky;top:0;z-index:50;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:1100px;margin:0 auto;flex-wrap:wrap;gap:12px;}
.logo{display:flex;align-items:center;gap:10px;font-family:'Fraunces',serif;font-weight:900;font-size:1.3rem;}
.logo .mark{width:36px;height:36px;border-radius:8px;background:rgba(255,255,255,0.14);display:flex;align-items:center;justify-content:center;font-family:'Noto Sans Devanagari',sans-serif;font-weight:700;font-size:1rem;border:1px solid rgba(255,255,255,0.35);}
nav.mainnav{display:flex;gap:22px;font-weight:600;font-size:0.9rem;flex-wrap:wrap;}
nav.mainnav a{opacity:0.92;}
nav.mainnav a:hover{opacity:1;text-decoration:underline;}

/* generic page hero */
.page-hero{padding:40px 24px 30px;color:#fff;background:linear-gradient(160deg, var(--teal-deep) 0%, var(--teal) 70%, #b9631a 150%);}
.page-hero .wrap h1{color:#fff;font-size:2rem;}
.page-hero .wrap p{color:rgba(255,255,255,0.82);margin-top:8px;max-width:560px;line-height:1.5;}

/* cards / grid */
.tools-section{padding:50px 24px;}
.section-head{max-width:1100px;margin:0 auto 28px;}
.section-head .kicker{font-family:'JetBrains Mono',monospace;color:var(--maroon);font-size:0.78rem;text-transform:uppercase;letter-spacing:0.08em;}
.section-head h2{font-size:1.7rem;margin-top:8px;}
.grid4{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card);}
.tool-card{padding:26px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.grid4 .tool-card:nth-child(4n){border-right:none;}
.tool-icon{width:46px;height:46px;border-radius:10px;background:var(--paper);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;margin-bottom:14px;font-size:1.3rem;}
.tool-card h3{font-size:1.05rem;font-family:'Fraunces',serif;}
.tool-card p{color:var(--muted);font-size:0.85rem;margin-top:6px;line-height:1.5;}
.tool-card:hover{background:#FFF9EF;}
@media(max-width:800px){.grid4{grid-template-columns:repeat(2,1fr);}.grid4 .tool-card:nth-child(2n){border-right:none;}}

/* footer */
footer{background:var(--teal-deep);color:rgba(255,255,255,0.75);padding:40px 24px 20px;margin-top:40px;}
.foot-bottom{max-width:1100px;margin:0 auto;padding-top:16px;border-top:1px solid rgba(255,255,255,0.12);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:0.82rem;color:rgba(255,255,255,0.55);}
.foot-links{max-width:1100px;margin:0 auto 16px;display:flex;gap:22px;flex-wrap:wrap;font-size:0.88rem;}

/* ===== TYPING TEST ===== */
.test-shell{max-width:900px;margin:34px auto;padding:0 24px;}
.test-panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:0 12px 30px rgba(0,0,0,0.05);}
.test-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:18px;}
.dur-select{display:flex;gap:8px;align-items:center;}
.dur-label{font-size:0.82rem;color:var(--muted);font-weight:600;margin-right:2px;}
.dur-btn{border:1px solid var(--line);background:var(--paper);padding:7px 14px;border-radius:8px;font-weight:600;font-size:0.85rem;cursor:pointer;}
.dur-btn.active{background:var(--teal);color:#fff;border-color:var(--teal);}
.dur-btn:disabled{opacity:0.45;cursor:not-allowed;}
.stat-pills{display:flex;gap:10px;flex-wrap:wrap;}
.pill{font-family:'JetBrains Mono',monospace;background:var(--paper);border:1px solid var(--line);padding:8px 14px;border-radius:10px;font-size:0.85rem;text-align:center;min-width:80px;}
.pill b{display:block;font-size:1.15rem;color:var(--teal);}
.text-display{
  font-size:1.25rem;line-height:2;padding:22px;background:var(--paper);border-radius:12px;
  border:1px solid var(--line);height:150px;overflow-y:auto;user-select:none;
}
.text-display.hindi{font-family:'Noto Sans Devanagari',sans-serif;}
.text-display span.correct{color:var(--good);}
.text-display span.incorrect{color:var(--bad);background:#FBE4E1;border-radius:2px;}
.text-display span.current{background:var(--saffron);color:#fff;border-radius:2px;}
textarea#typeInput{
  width:100%;margin-top:16px;padding:16px;font-size:1.15rem;border-radius:12px;
  border:1.5px solid var(--line);font-family:inherit;resize:none;height:90px;outline:none;
}
.text-display.hindi ~ textarea#typeInput{font-family:'Noto Sans Devanagari',sans-serif;}
textarea#typeInput:focus{border-color:var(--saffron);}
.test-actions{display:flex;justify-content:space-between;align-items:center;margin-top:16px;flex-wrap:wrap;gap:10px;}
.btn-primary{background:var(--saffron);color:var(--teal-deep);padding:12px 22px;border-radius:10px;font-weight:700;border:none;cursor:pointer;font-size:0.95rem;}
.btn-ghost{background:transparent;border:1.5px solid var(--line);padding:11px 20px;border-radius:10px;font-weight:600;cursor:pointer;font-size:0.95rem;}
.overlay-lock{position:relative;}
.overlay-lock::after{content:"Click here to start typing";position:absolute;inset:0;background:rgba(251,247,240,0.85);display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--muted);border-radius:12px;}
.overlay-lock.hide::after{display:none;}

/* name modal */
.modal-bg{position:fixed;inset:0;background:rgba(10,20,20,0.55);display:none;align-items:center;justify-content:center;z-index:100;}
.modal-bg.show{display:flex;}
.modal-box{background:#fff;border-radius:16px;padding:30px;max-width:420px;width:92%;box-shadow:0 20px 50px rgba(0,0,0,0.3);}
.modal-box h3{font-size:1.3rem;margin-bottom:6px;}
.modal-box p{color:var(--muted);font-size:0.9rem;margin-bottom:18px;}
.modal-box input[type=text]{width:100%;padding:13px 14px;border-radius:10px;border:1.5px solid var(--line);font-size:1rem;margin-bottom:16px;}
.modal-box input[type=text]:focus{outline:none;border-color:var(--saffron);}

/* word game */
.game-arena{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px;min-height:220px;position:relative;overflow:hidden;}
.game-word{font-size:2.4rem;font-family:'Fraunces',serif;font-weight:700;text-align:center;color:var(--teal);margin:24px 0;}
.game-word.hindi{font-family:'Noto Sans Devanagari',sans-serif;}
#gameInput{width:100%;text-align:center;font-size:1.3rem;padding:14px;border-radius:12px;border:1.5px solid var(--line);outline:none;}
#gameInput:focus{border-color:var(--saffron);}
#gameInput.correct-flash{border-color:var(--good);background:#EAF7EF;}
#gameInput.wrong-flash{border-color:var(--bad);background:#FBE4E1;}

/* result / certificate */
.cert{
  max-width:640px;margin:40px auto;background:#fff;border:3px solid var(--teal);border-radius:18px;
  padding:44px 40px;text-align:center;position:relative;
}
.cert::before{content:"";position:absolute;inset:10px;border:1px dashed var(--saffron);border-radius:12px;pointer-events:none;}
.cert .cert-kicker{font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:0.1em;color:var(--maroon);font-size:0.78rem;}
.cert h1{font-size:1.6rem;margin-top:14px;}
.cert .cert-name{font-family:'Fraunces',serif;font-size:2.1rem;color:var(--teal);margin:14px 0 6px;}
.cert .badge{display:inline-block;margin-top:8px;padding:8px 20px;border-radius:999px;font-weight:700;font-size:0.9rem;color:#fff;}
.cert-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:30px 0;}
.cert-stats .box{background:var(--paper);border-radius:12px;padding:16px 10px;border:1px solid var(--line);}
.cert-stats .box b{display:block;font-size:1.5rem;color:var(--teal);font-family:'JetBrains Mono',monospace;}
.cert-stats .box span{font-size:0.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.04em;}
.cert-meta{font-size:0.85rem;color:var(--muted);margin-top:10px;}
.cert-actions{display:flex;gap:12px;justify-content:center;margin-top:30px;flex-wrap:wrap;}
@media print{header,footer,.cert-actions,.no-print{display:none !important;}.cert{border:2px solid #000;box-shadow:none;margin:0;}}
