@font-face{font-family:'Squid Prize Money';src:url('fonts/squid-prize-money.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap;}
:root{
  --bg:#0c1210;
  --panel:#121a17;
  --panel-2:#161f1c;
  --line:#26332e;
  --line-soft:#1b2521;
  --teal:#28e0a5;
  --red:#e8453a;
  --text:#e7f3ee;
  --text-dim:#7b968b;
  --text-faint:#48605a;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background-color:#020704;
  background-image:linear-gradient(rgba(49,255,90,.055) 1px,transparent 1px),radial-gradient(circle at 50% 35%,rgba(34,150,57,.10),transparent 55%);
  background-size:100% 5px,100% 100%;
  background-attachment:fixed;
  color:var(--text);
  font-family:'JetBrains Mono',monospace;
  padding:32px 20px 60px;
}
.wrap{max-width:900px;margin:0 auto;}

.masthead{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  border-bottom:1px solid var(--line);
  padding-bottom:18px;
  margin-bottom:32px;
  gap:16px;
  flex-wrap:wrap;
}
.masthead h1{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;
  font-size:40px;
  letter-spacing:0.5px;
  margin:0;
  text-transform:uppercase;
}
.masthead .sub{
  font-size:11px;
  letter-spacing:2px;
  color:var(--text-faint);
  text-transform:uppercase;
  margin-top:4px;
}
.masthead .sub a{color:var(--text-faint);}
.masthead .sub a:hover{color:var(--teal);}

.auth{font-size:11px;letter-spacing:1px;text-transform:uppercase;text-align:right;}
.auth .tag{display:inline-block;padding:3px 8px;margin-bottom:6px;font-size:9px;letter-spacing:1px;}
.auth .tag.admin{background:var(--teal);color:#04241a;}
.auth .tag.viewer{background:var(--panel-2);color:var(--text-dim);border:1px solid var(--line-soft);}
.auth a{color:var(--text-dim);text-decoration:none;font-size:11px;letter-spacing:1px;}
.auth a:hover{color:var(--teal);}
.auth .row{display:block;}

.section-title{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;
  font-size:18px;
  text-transform:uppercase;
  letter-spacing:0.5px;
  margin:0 0 16px;
}

.hero{
  text-align:center;
  padding:40px 0 24px;
}
.logo{
  max-height:100px;
  max-width:220px;
  margin-bottom:16px;
}
.hero h1{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;
  font-size:clamp(32px,6vw,56px);
  text-transform:uppercase;
  letter-spacing:1px;
  margin:0;
}

.button-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin-bottom:32px;
}
.site-btn{
  display:inline-block;
  background:var(--panel);
  border:1px solid var(--line-soft);
  color:var(--text);
  font-family:'Barlow Condensed',sans-serif;
  font-weight:600;
  font-size:14px;
  letter-spacing:0.5px;
  text-transform:uppercase;
  text-decoration:none;
  padding:10px 18px;
  transition:border-color .15s;
}
.site-btn:hover{border-color:var(--teal);}
.site-btn.locked{
  color:var(--text-faint);
  opacity:0.6;
  cursor:default;
}
.padlock-small{
  font-size:11px;
  margin-left:4px;
}

.category-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:14px;
}
.category-card{
  position:relative;
  background:var(--panel);
  border:1px solid var(--line-soft);
  padding:20px;
  text-decoration:none;
  color:inherit;
  transition:border-color .15s;
  display:block;
}
.category-card.clickable:hover{border-color:var(--teal);}
.category-card .cat-name{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;
  font-size:19px;
  color:var(--text);
  text-transform:uppercase;
  letter-spacing:0.5px;
}
.category-card.locked{
  color:var(--text-faint);
  opacity:0.6;
}
.category-card.locked .cat-name{color:var(--text-faint);}
.category-card .padlock{
  position:absolute;
  top:14px;
  right:16px;
  font-size:15px;
  color:var(--text-faint);
}
.child-list{
  margin-top:12px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.child-link{
  font-size:12px;
  color:var(--teal);
  text-decoration:none;
}
.child-link:hover{text-decoration:underline;}
.child-link.disabled{color:var(--text-faint);cursor:default;}

.empty{color:var(--text-faint);font-size:12px;text-align:center;padding:30px;}

.panel{
  background:var(--panel);
  border:1px solid var(--line-soft);
  padding:24px;
  margin-bottom:20px;
}
.panel p{margin:0 0 14px;color:var(--text-dim);font-size:13px;}

.btn{
  display:inline-block;
  background:var(--teal);
  border:none;
  color:#04241a;
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;
  font-size:14px;
  letter-spacing:1px;
  text-transform:uppercase;
  padding:11px 22px;
  cursor:pointer;
  text-decoration:none;
}
.btn:hover{opacity:0.9;}
.btn.secondary{background:transparent;border:1px solid var(--line-soft);color:var(--text-dim);}
.btn.secondary:hover{border-color:var(--line);color:var(--text);}
.btn.deny{background:var(--red);color:#2a0b08;}

.field{margin-bottom:18px;}
.field label{
  display:block;
  font-size:10px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--text-faint);
  margin-bottom:6px;
}
.field input,
.field textarea{
  width:100%;
  background:var(--panel-2);
  border:1px solid var(--line-soft);
  color:var(--text);
  font-family:'JetBrains Mono',monospace;
  font-size:14px;
  padding:10px 12px;
  resize:vertical;
}
.field input:focus,
.field textarea:focus{outline:none;border-color:var(--teal);}

.link-row{
  background:var(--panel-2);
  border:1px solid var(--line-soft);
  padding:16px;
  margin-bottom:12px;
}
.link-row .field{margin-bottom:10px;}
.link-row .actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;}
.link-row .checkbox-label{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:var(--text-dim);
  margin-right:auto;
}

.child-row{
  background:var(--panel);
  border:1px solid var(--line-soft);
  padding:12px;
  margin-top:8px;
  margin-left:16px;
}
.child-row .field{margin-bottom:8px;}
.child-row .actions{display:flex;justify-content:flex-end;}

.form-error{color:var(--red);font-size:12px;margin-top:10px;}
.save-msg{color:var(--teal);font-size:12px;margin-top:10px;}

@media (max-width:640px){
  body{padding:20px 14px 48px;}
  .masthead h1{font-size:30px;}
  .auth{text-align:left;}
  .panel{padding:18px;}
  .field input,
  .field textarea,
  .btn{font-size:16px;}
}

.vote-page{min-height:100vh;padding:0;background:#090d0c;overflow-x:hidden;}
.vote-page:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:34px 34px;}
.vote-shell{min-height:100vh;display:flex;flex-direction:column;position:relative;}
.vote-topbar,.vote-footer{height:70px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,70px);background:rgba(12,18,16,.92);}
.vote-brand{display:flex;align-items:center;gap:12px;font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:1.5px;font-size:18px;}
.vote-brand img{width:34px;height:34px;object-fit:contain;}
.vote-live{font-size:10px;letter-spacing:2px;color:var(--text-dim);display:flex;align-items:center;gap:9px;}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 12px var(--teal);animation:livePulse 1.5s infinite;}
@keyframes livePulse{50%{opacity:.35;box-shadow:0 0 3px var(--teal)}}
.vote-main{width:min(1100px,calc(100% - 32px));margin:auto;text-align:center;padding:52px 0 64px;}
.round-label{color:var(--teal);font-size:10px;letter-spacing:4px;font-weight:700;margin-bottom:8px;}
.vote-main h1{font-family:'Barlow Condensed',sans-serif;font-size:clamp(46px,7vw,78px);line-height:.95;margin:0;letter-spacing:2px;}
.vote-subtitle{font-size:11px;color:var(--text-faint);letter-spacing:1px;margin:14px 0 38px;text-transform:uppercase;}
.vote-arena{display:grid;grid-template-columns:minmax(0,1fr) 130px minmax(0,1fr);align-items:stretch;gap:18px;}
.vote-side{position:relative;min-height:430px;border:1px solid var(--line);background:linear-gradient(145deg,#111a17,#0d1311);padding:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;transition:transform .25s,border-color .25s;}
.vote-side:before{content:"";position:absolute;inset:0;opacity:.18;pointer-events:none;}
.vote-o:before{background:radial-gradient(circle at 50% 35%,#1556a9 0,transparent 57%);}.vote-x:before{background:radial-gradient(circle at 50% 35%,#a91f31 0,transparent 57%);}
.vote-symbol{width:min(250px,70%);height:165px;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;}
.vote-symbol img{width:100%;height:100%;object-fit:contain;mix-blend-mode:screen;filter:contrast(1.12);}
.vote-name{font-family:'Barlow Condensed',sans-serif;font-size:13px;letter-spacing:5px;color:var(--text-dim);margin-top:8px;}
.vote-count{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:clamp(64px,9vw,104px);line-height:1;margin-top:4px;position:relative;z-index:2;font-variant-numeric:tabular-nums;}
.vote-percent{font-size:12px;letter-spacing:2px;color:var(--text-dim);margin-top:9px;}
.vote-meter{height:3px;width:80%;background:#202b27;margin-top:24px;overflow:hidden;}.vote-meter span{display:block;height:100%;width:0;transition:width .7s cubic-bezier(.2,.8,.2,1);}
.vote-o .vote-meter span{background:#3b8ff0;}.vote-x .vote-meter span{background:#ef4355;}
.vote-center{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-faint);}
.vote-center>span{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:38px;color:#4d625a;}
.total-label{font-size:8px;letter-spacing:2px;margin-top:24px;}.vote-center strong{font-family:'Barlow Condensed',sans-serif;font-size:26px;color:var(--text);margin-top:3px;}
.last-update{margin-top:24px;font-size:9px;letter-spacing:2px;color:var(--text-faint);}
.vote-footer{height:52px;border-top:1px solid var(--line);border-bottom:0;color:var(--text-faint);font-size:9px;letter-spacing:2px;}.vote-footer a{color:var(--text-faint);text-decoration:none}.vote-footer a:hover{color:var(--teal)}
.vote-bump{animation:cardBump .65s ease;}.vote-pop{position:absolute;right:22px;top:22px;color:var(--teal);font-size:15px;font-weight:700;letter-spacing:1px;animation:popUp 1.1s ease forwards;z-index:4;}
.vote-x .vote-pop{color:#ef4355;}@keyframes cardBump{35%{transform:scale(1.025);border-color:#50675e}100%{transform:scale(1)}}@keyframes popUp{0%{opacity:0;transform:translateY(8px)}25%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-25px)}}

.vote-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;}.vote-admin-card{background:var(--panel-2);border:1px solid var(--line-soft);padding:20px;text-align:center;}.vote-admin-card img{height:90px;max-width:150px;object-fit:contain;mix-blend-mode:screen}.vote-admin-total{font-family:'Squid Prize Money',sans-serif;font-size:46px;font-weight:700;margin:5px 0 12px}.quick-actions{display:flex;gap:7px;justify-content:center;flex-wrap:wrap}.quick-actions .btn{padding:8px 13px}.set-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.danger-row{margin-top:16px;border-top:1px solid var(--line-soft);padding-top:16px;display:flex;justify-content:flex-end}
@media(max-width:720px){.vote-topbar{height:58px}.vote-brand span{font-size:15px}.vote-arena{grid-template-columns:1fr 1fr;gap:9px}.vote-center{grid-column:1/-1;grid-row:2;flex-direction:row;gap:15px}.vote-center>span{display:none}.total-label{margin:0}.vote-side{min-height:330px;padding:18px 8px}.vote-symbol{height:110px;width:90%}.vote-count{font-size:60px}.vote-main{padding:35px 0}.vote-admin-grid,.set-grid{grid-template-columns:1fr}}

.minimal-vote-page{
  min-height:100vh;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:
    repeating-linear-gradient(to bottom,rgba(255,255,255,.025) 0,rgba(255,255,255,.025) 1px,transparent 1px,transparent 4px),
    radial-gradient(ellipse at 20% 42%,rgba(255,58,64,.11),transparent 34%),
    radial-gradient(ellipse at 80% 42%,rgba(0,177,255,.13),transparent 34%),
    #071011;
}
.minimal-vote-page:after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:radial-gradient(ellipse at center,transparent 46%,rgba(0,0,0,.42) 100%);
}
.minimal-vote{
  position:relative;
  width:min(94vw,1500px);
  display:grid;
  grid-template-rows:auto auto;
  row-gap:clamp(34px,5vh,72px);
  line-height:1;
}
.score-symbols{
  display:grid;
  grid-template-columns:1fr clamp(90px,11vw,180px) 1fr;
  align-items:center;
  justify-items:center;
  width:100%;
}
.score-symbols .minimal-symbol{
  font-family:'Squid Prize Money',sans-serif;
  font-size:clamp(82px,9vw,145px);
  font-weight:400;
  line-height:.72;
  transform:scaleX(.92);
}
.score-symbols .minimal-symbol-x{
  color:#ff3e48;
  text-shadow:0 0 6px rgba(255,62,72,.95),0 0 24px rgba(255,62,72,.38);
}
.score-symbols .minimal-symbol-o{
  color:#12aef1;
  text-shadow:0 0 6px rgba(18,174,241,.95),0 0 24px rgba(18,174,241,.38);
}
.score-colon{
  font-family:'Squid Prize Money',sans-serif;
  font-size:clamp(60px,6vw,96px);
  color:#7d8d89;
  line-height:1;
  transform:translateY(3px);
  text-shadow:0 0 7px rgba(125,141,137,.45);
}
.score-board{
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:clamp(110px,13vw,220px);
  width:100%;
  align-items:center;
}
.score-digits{
  display:flex;
  justify-content:center;
  gap:0;
}
.score-digit{
  position:relative;
  display:grid;
  place-items:center;
  width:clamp(112px,11vw,178px);
  height:clamp(112px,10.5vw,166px);
  margin:0;
  border:clamp(4px,.42vw,7px) solid #07100f;
  background:linear-gradient(180deg,rgba(24,35,31,.96) 0%,rgba(17,28,25,.98) 49.2%,rgba(14,24,21,.98) 50.8%,rgba(19,31,27,.96) 100%);
  box-shadow:
    inset 0 0 0 2px rgba(114,132,123,.34),
    inset 0 0 24px rgba(0,0,0,.44),
    0 0 0 2px rgba(0,0,0,.68),
    0 8px 24px rgba(0,0,0,.42);
  overflow:hidden;
  font-family:'Squid Prize Money',sans-serif;
  font-size:clamp(82px,8.8vw,138px);
  font-weight:400;
  line-height:1;
  text-align:center;
  color:#f3f1bd;
  text-shadow:0 0 7px rgba(255,250,186,.46),0 0 20px rgba(244,241,183,.15);
}
.score-digit+.score-digit{margin-left:clamp(2px,.25vw,4px)}
.score-digit:before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:50%;
  height:2px;
  background:rgba(0,0,0,.58);
  box-shadow:0 1px rgba(156,173,162,.16);
  z-index:10;
  pointer-events:none;
}
.score-digit:after{
  content:"";
  position:absolute;
  left:-6px;
  right:-6px;
  top:calc(50% - 9px);
  height:18px;
  border-left:7px solid #111b18;
  border-right:7px solid #111b18;
  z-index:4;
  pointer-events:none;
}
.score-digits-x{filter:drop-shadow(0 0 15px rgba(255,222,166,.06))}
.score-digits-o{filter:drop-shadow(0 0 16px rgba(0,190,255,.10))}
.score-digits-o .score-digit{
  color:#d6fff0;
  text-shadow:0 0 8px rgba(187,255,238,.48),0 0 22px rgba(0,207,255,.16);
  box-shadow:
    inset 0 0 0 2px rgba(30,139,148,.40),
    inset 0 0 24px rgba(0,47,51,.40),
    0 0 0 2px rgba(0,0,0,.68),
    0 0 24px rgba(0,190,255,.10),
    0 8px 24px rgba(0,0,0,.42);
}
.minimal-pulse{
  position:absolute;
  top:47%;
  width:42%;
  height:60%;
  pointer-events:none;
  opacity:0;
}
.minimal-pulse-x{left:0}
.minimal-pulse-o{right:0}
.minimal-pulse.vote-bump{animation:minimalBump .55s ease-out}
.minimal-pulse .vote-pop{display:none}
@keyframes minimalBump{0%{opacity:0}35%{opacity:.16;box-shadow:0 0 70px currentColor}100%{opacity:0}}
.minimal-pulse-x{color:#ff3e48}.minimal-pulse-o{color:#12aef1}
@media(max-width:700px){
  .minimal-vote{width:96vw;row-gap:30px}
  .score-symbols{grid-template-columns:1fr 58px 1fr}
  .score-board{column-gap:24px}
  .score-digit{width:15vw;height:18vw;min-width:48px;min-height:58px;border-width:2px;font-size:14vw}
  .score-digit+.score-digit{margin-left:1px}
  .score-digit:after{top:calc(50% - 5px);height:10px;border-left-width:4px;border-right-width:4px}
}