:root{--navy:#163f5f;--navy2:#0e3049;--blue:#2e719f;--emerald:#18806f;--gold:#c8952c;--bg:#f4f7f9;--card:#fff;--text:#142635;--muted:#66798a;--border:#dce6ec;--danger:#d64545;--shadow:0 14px 38px rgba(22,63,95,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,"Segoe UI",system-ui,-apple-system,Arial,sans-serif;color:var(--text);background:linear-gradient(180deg,#f9fbfc,#f2f6f8);min-height:100vh}a{color:inherit}.nav{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.nav-inner{max-width:1180px;margin:auto;height:68px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:14px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none}.brand img{width:38px;height:38px;object-fit:contain}.brand strong{display:block;color:var(--navy);font-size:14px}.brand span{display:block;color:var(--muted);font-size:10px;margin-top:2px}.nav-links{display:flex;align-items:center;gap:4px}.nav-links a{text-decoration:none;font-size:12px;font-weight:800;color:#4f6575;padding:9px 11px;border-radius:10px}.nav-links a:hover{background:#edf4f7;color:var(--navy)}.nav-links .accent{background:var(--navy);color:#fff}.container{max-width:1180px;margin:auto;padding:0 20px}.hero{padding:62px 0 48px;display:grid;grid-template-columns:1.15fr .85fr;gap:38px;align-items:center}.eyebrow{display:inline-flex;padding:6px 10px;border-radius:999px;background:#e9f6f2;border:1px solid #c5e5dc;color:#0e6b5a;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.hero h1{font-size:44px;line-height:1.06;letter-spacing:-.035em;margin:14px 0 15px;color:#102c40}.hero p{font-size:15px;line-height:1.75;color:var(--muted);max-width:650px;margin:0}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:1px solid transparent;border-radius:13px;padding:11px 15px;font-size:12px;font-weight:900;cursor:pointer}.btn-primary{background:var(--navy);color:#fff}.btn-success{background:var(--emerald);color:#fff}.btn-ghost{background:#fff;border-color:var(--border);color:var(--navy)}.hero-visual{background:linear-gradient(145deg,#eaf4f8,#fff);border:1px solid var(--border);border-radius:28px;min-height:330px;display:grid;place-items:center;position:relative;overflow:hidden;box-shadow:var(--shadow)}.hero-visual:before,.hero-visual:after{content:"";position:absolute;border-radius:999px}.hero-visual:before{width:210px;height:210px;background:rgba(24,128,111,.10);right:-65px;top:-55px}.hero-visual:after{width:180px;height:180px;background:rgba(200,149,44,.11);left:-65px;bottom:-70px}.hero-visual img{width:180px;height:180px;object-fit:contain;position:relative;z-index:2;filter:drop-shadow(0 12px 18px rgba(22,63,95,.15))}.section{padding:30px 0 56px}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:18px}.section-head h2{font-size:26px;margin:0;color:#18364b}.section-head p{font-size:12px;color:var(--muted);margin:5px 0 0}.candidate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.candidate-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:18px;box-shadow:var(--shadow)}.candidate-top{display:flex;gap:14px;align-items:center}.candidate-photo{width:78px;height:78px;border-radius:18px;object-fit:cover;border:1px solid var(--border);background:#eef3f6}.candidate-card h3{font-size:16px;margin:0 0 4px}.candidate-class{font-size:11px;color:var(--muted)}.candidate-box{margin-top:14px;padding:12px;border-radius:14px;background:#f6f9fb;border:1px solid #e6edf1;font-size:12px;line-height:1.6;color:#455c6c}.candidate-box strong{color:var(--navy)}.footer{border-top:1px solid var(--border);padding:22px 20px;text-align:center;color:#7c8d9a;font-size:11px;background:#fff}.center-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 15% 15%,#deedf5 0,transparent 35%),radial-gradient(circle at 90% 85%,#e3f1ed 0,transparent 35%),#f4f7f9}.scan-card{width:100%;max-width:570px;background:#fff;border:1px solid var(--border);border-radius:24px;padding:26px;box-shadow:0 20px 60px rgba(22,63,95,.14);text-align:center}.scan-logo{width:88px;height:88px;object-fit:contain}.scan-card h1{font-size:25px;margin:10px 0 6px}.scan-card p{color:var(--muted);font-size:12px;line-height:1.6;margin:0 0 18px}.scan-input{width:100%;padding:16px;border:2px solid #cbdbe5;border-radius:15px;text-align:center;font-size:19px;letter-spacing:.08em;outline:0}.scan-input:focus{border-color:#65a494;box-shadow:0 0 0 4px rgba(24,128,111,.11)}.hint{display:inline-flex;margin-top:13px;padding:8px 11px;border-radius:999px;background:#e9f6f2;border:1px solid #c4e4db;color:#0d6a59;font-size:10px;font-weight:900}.scan-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:16px}.alert{padding:11px 12px;border-radius:12px;font-size:12px;line-height:1.45;margin-bottom:13px;text-align:left}.alert-error{background:#fff0f0;border:1px solid #f0c6c6;color:#a33030}.vote-wrap{max-width:1200px;margin:auto;padding:28px 20px 44px}.vote-head{text-align:center;max-width:700px;margin:0 auto 24px}.vote-head h1{font-size:31px;margin:0 0 7px}.vote-head p{font-size:12px;color:var(--muted);line-height:1.6}.vote-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.vote-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:18px;box-shadow:var(--shadow);display:flex;flex-direction:column}.vote-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:15px;background:#eef3f6}.vote-card h2{font-size:18px;margin:14px 0 3px}.vote-card .class{font-size:11px;color:var(--muted)}.vote-card .vision{background:#f7fafb;border:1px solid #e5edf1;border-radius:13px;padding:11px;margin:12px 0;font-size:11px;line-height:1.55;color:#465d6d;flex:1}.vote-card form{margin-top:auto}.vote-card button{width:100%;border:0;background:var(--emerald);color:#fff;padding:12px;border-radius:12px;font-weight:900;cursor:pointer}.result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.result-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:18px;box-shadow:var(--shadow)}.result-row{display:flex;align-items:center;gap:14px}.result-photo{width:70px;height:70px;border-radius:16px;object-fit:cover}.result-num{margin-left:auto;text-align:right}.result-num strong{font-size:25px}.progress{height:9px;background:#e8eef2;border-radius:999px;overflow:hidden;margin-top:13px}.progress span{height:100%;display:block;background:linear-gradient(90deg,var(--emerald),#3ba18e);border-radius:inherit}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--border);border-radius:16px;padding:15px;text-align:center}.stat strong{display:block;font-size:26px;color:var(--navy)}.stat span{font-size:10px;color:var(--muted)}@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-visual{min-height:260px}.candidate-grid,.vote-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.nav-inner{height:auto;min-height:64px;align-items:flex-start;padding-top:11px;padding-bottom:11px}.nav-links{gap:2px;flex-wrap:wrap;justify-content:flex-end}.nav-links a{padding:7px 8px;font-size:10px}.brand span{display:none}.hero{padding-top:38px}.hero h1{font-size:34px}.candidate-grid,.vote-grid,.result-grid,.stats{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.scan-card{padding:20px}.vote-head h1{font-size:26px}}
