/* Styles for the hub (/) and vendor pages (/claude/, /aws/). Exam pages use app.css. */
:root{--bg:#f5f7fa;--surface:#fff;--border:#dce1e8;--text:#2C3E50;--text-2:#4a5568;--text-m:#8b90a0;--ac:#1B4F8A;--ac-h:#1A2E45;--rl:14px;--r:10px;--sh:0 1px 3px rgba(26,46,69,.06);--sh-m:0 4px 14px rgba(26,46,69,.1)}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}
.hdr{background:linear-gradient(135deg,#1B4F8A,#1A2E45);color:#fff;padding:2.5rem 1.5rem 2rem;text-align:center;box-shadow:0 4px 20px rgba(27,79,138,.35)}
.hdr h1{font-size:1.6rem;font-weight:800;letter-spacing:-.03em}
.hdr .sub{font-size:.88rem;opacity:.85;margin-top:.4rem;max-width:34rem;margin-left:auto;margin-right:auto;line-height:1.55}
.container{max-width:960px;margin:0 auto;padding:0 1rem 2rem}
.intro{font-size:.85rem;color:var(--text-2);line-height:1.7;margin:1.25rem 0 .5rem}
.exams{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:0 0 1rem}
.exam{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:1.25rem;margin:0;box-shadow:var(--sh);transition:border-color .15s,box-shadow .15s,transform .15s}
.exam:hover{border-color:var(--ac);box-shadow:var(--sh-m);transform:translateY(-2px)}
.exam .top{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;flex-wrap:wrap}
.exam .code{font-family:'JetBrains Mono',monospace;font-weight:600;font-size:.72rem;color:var(--ac);background:#EEF5FB;padding:.15rem .5rem;border-radius:20px}
.pill{font-size:.65rem;font-weight:600;padding:.15rem .5rem;border-radius:20px;text-transform:uppercase;letter-spacing:.03em}
.live{background:#ecfdf5;color:#065f46}
.soon{background:#FDF0EB;color:#8B2500}
.exam h2{font-size:1.05rem;font-weight:700;margin-bottom:.2rem}
.exam .name{font-size:.78rem;color:var(--text-m);margin-bottom:.5rem}
.exam p{font-size:.82rem;color:var(--text-2);line-height:1.65;margin-bottom:.6rem}
.facts{display:flex;gap:.4rem;flex-wrap:wrap}
.fact{font-size:.72rem;color:var(--text-2);background:var(--bg);border-radius:6px;padding:.22rem .5rem}
.go{margin-top:auto;padding-top:.7rem;font-size:.85rem;font-weight:600;color:var(--ac)}
.more{background:var(--surface);border:1px dashed var(--border);border-radius:var(--rl);padding:1rem 1.25rem;margin:0 0 1rem;text-align:center}
.more h3{font-size:.85rem;font-weight:700;margin-bottom:.2rem}
.more p{font-size:.78rem;color:var(--text-2);line-height:1.6}
.foot{text-align:center;padding:1.5rem 1rem;font-size:.72rem;color:var(--text-m);line-height:1.7}
.foot a{color:#2E86C1;text-decoration:none}
.notice{margin:0 0 1rem;padding:.8rem 1rem;border-left:3px solid var(--ac);background:#EEF5FB;border-radius:0 8px 8px 0}
.notice strong{display:block;font-size:.82rem;color:#1A2E45;margin-bottom:.2rem}
.notice p{font-size:.78rem;color:var(--text-2);line-height:1.65}
@media(max-width:720px){.exams{grid-template-columns:1fr}}
@media(max-width:500px){.hdr h1{font-size:1.35rem}}
/* Gloss finish, matching app.css: lit top edges, layered shadows and a
   one-time light sweep across the header. */
body{background:radial-gradient(1100px 480px at 50% -160px,rgba(46,134,193,.13),transparent 70%),radial-gradient(800px 520px at 100% 0,rgba(0,151,167,.06),transparent 65%),var(--bg);min-height:100vh}
.hdr{position:relative;overflow:hidden;background:linear-gradient(135deg,#2a6db3 0%,#1B4F8A 42%,#1A2E45 100%);box-shadow:0 12px 32px -10px rgba(27,79,138,.6),inset 0 -1px 0 rgba(255,255,255,.08)}
.hdr::before{content:'';position:absolute;left:0;right:0;top:0;height:48%;background:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.03) 70%,rgba(255,255,255,0));pointer-events:none}
.hdr::after{content:'';position:absolute;top:-20%;bottom:-20%;left:-50%;width:35%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-18deg);animation:gloss-sweep 2.6s cubic-bezier(.3,.6,.3,1) .35s 1 both;pointer-events:none}
@keyframes gloss-sweep{from{left:-50%}to{left:130%}}
.hdr>*{position:relative;z-index:1}
.hdr h1{text-shadow:0 1px 2px rgba(0,0,0,.28),0 0 24px rgba(120,180,240,.25)}
.exam{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#f8fafd 100%);border-color:rgba(27,79,138,.11);box-shadow:inset 0 1px 0 #fff,0 1px 2px rgba(26,46,69,.05),0 10px 28px -14px rgba(26,46,69,.22)}
.exam::after{content:'';position:absolute;top:0;bottom:0;left:-70%;width:45%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);transform:skewX(-18deg);transition:left .7s ease;pointer-events:none}
.exam:hover::after{left:130%}
.exam:hover{border-color:rgba(27,79,138,.45);box-shadow:inset 0 1px 0 #fff,0 2px 4px rgba(26,46,69,.06),0 18px 36px -14px rgba(27,79,138,.35),0 0 0 3px rgba(46,134,193,.12)}
.exam .code{background:linear-gradient(180deg,#f2f8fd,#dcebf8);box-shadow:inset 0 1px 0 #fff}
.pill,.fact{box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.fact{background:linear-gradient(180deg,#f8fafd,#eef2f7)}
.notice{background:linear-gradient(180deg,#f2f8fd,#e6f0fa);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.more{background:linear-gradient(180deg,#fff,#f8fafd)}
@media (prefers-reduced-motion:reduce){.hdr::after,.exam::after{display:none}.exam:hover{transform:none}}
/* Glass finish, matching app.css. */
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(520px 420px at 8% 22%,rgba(0,151,167,.16),transparent 70%),radial-gradient(620px 480px at 92% 30%,rgba(91,56,182,.12),transparent 70%),radial-gradient(700px 520px at 30% 92%,rgba(46,134,193,.16),transparent 70%),radial-gradient(520px 420px at 85% 88%,rgba(192,82,42,.08),transparent 70%)}
.hdr::before{background:linear-gradient(180deg,rgba(255,255,255,.17),rgba(255,255,255,.04) 70%,rgba(255,255,255,0))}
.notice{margin:.5rem 0 2rem}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 .exam,.more,.notice{backdrop-filter:blur(16px) saturate(170%);-webkit-backdrop-filter:blur(16px) saturate(170%);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 12px 32px -14px rgba(27,79,138,.3)}
 .exam,.more{background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.56));border-color:rgba(255,255,255,.75)}
 .more{border-style:dashed;border-color:rgba(27,79,138,.18)}
 .notice{background:linear-gradient(180deg,rgba(238,245,252,.82),rgba(226,239,250,.64))}
 .exam:hover{border-color:rgba(255,255,255,.95);box-shadow:inset 0 1px 0 #fff,0 0 0 3px rgba(46,134,193,.14),0 20px 40px -16px rgba(27,79,138,.42)}
 .fact{background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(240,245,250,.55))}
}
/* Site admin, opened only by /#admin. Lists every exam's own admin panel
   (each exam keeps its own custom questions) plus site-wide visitor metrics. */
.adm-ov{position:fixed;inset:0;z-index:50;background:rgba(26,46,69,.45);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem;overflow-y:auto}
.adm-ov[hidden]{display:none}
.adm{width:100%;max-width:520px;background:linear-gradient(180deg,#fff,#f8fafd);border:1px solid rgba(27,79,138,.12);border-radius:var(--rl);box-shadow:inset 0 1px 0 #fff,0 24px 60px -20px rgba(26,46,69,.45)}
.adm-hd{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}
.adm-hd h2{font-size:1rem;font-weight:700}
.adm-x{border:0;background:none;font-size:1.4rem;line-height:1;color:var(--text-m);cursor:pointer;padding:.1rem .4rem;border-radius:6px}
.adm-x:hover{background:var(--bg)}
.adm-bd{padding:1.1rem 1.25rem 1.3rem}
.adm-bd h3{font-size:.8rem;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .5rem}
.adm-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1.2rem}
.adm-stat{text-align:center;padding:.6rem .3rem;border-radius:8px;background:linear-gradient(180deg,#f8fafd,#eef2f7);box-shadow:inset 0 1px 0 #fff}
.adm-stat b{display:block;font-size:1.25rem;font-weight:800;color:var(--ac)}
.adm-stat span{font-size:.7rem;color:var(--text-m)}
.adm-ex{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .8rem;margin-bottom:.45rem;border:1px solid var(--border);border-radius:8px;text-decoration:none;color:inherit;background:#fff}
.adm-ex:hover{border-color:var(--ac);background:#f4f9fe}
.adm-ex b{font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--ac)}
.adm-ex span{font-size:.8rem;color:var(--text-2)}
.adm-note{font-size:.72rem;color:var(--text-m);line-height:1.55;margin-top:.8rem}

/* Vendor sections on the hub, and the breadcrumb on vendor pages. */
.vendor{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;flex-wrap:wrap;margin:1.5rem 0 .65rem}
.vendor h2{font-size:1.05rem;font-weight:800;color:var(--ac-h)}
.vendor a{font-size:.8rem;font-weight:600;color:var(--ac);text-decoration:none}
.vendor a:hover{text-decoration:underline}
.crumb{position:absolute;left:1.5rem;top:2.5rem;z-index:2;font-size:.75rem;font-weight:600;color:#fff;opacity:.8;text-decoration:none}
.crumb:hover{opacity:1;text-decoration:underline}
@media(max-width:700px){.crumb{position:static;display:block;text-align:left;margin:-1rem 0 .8rem}}
