/* Unhinged Quiz styles. Loaded as a file so the security policy can block inline styles. */
/* Fonts are hosted on our own domain (no Google requests, so visitors' IPs stay private). Licences: /fonts/OFL-*.txt */
@font-face{font-family:"Anton";src:url(/fonts/anton.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Rubik";src:url(/fonts/rubik.woff2) format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/fonts/jetbrains-mono.woff2) format("woff2");font-weight:100 800;font-style:normal;font-display:swap}
/* Layout: one narrow "phone-first" column; tabloid sticker cards on a halftone page; one screen at a time (home → question → suspense → verdict) */
:root{
  --bg:#FFF6D6; --dots:#F2DE8C; --ink:#17130B; --card:#FFFFFF; --muted:#6B5F45;
  --hot:#FFD60A; --stamp:#E5342A; --pop:#2B59FF; --line:#17130B;
  --display:"Anton","Impact","Haettenschweiler","Arial Narrow Bold",sans-serif;
  --body:"Rubik",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#16130C; --dots:#2A2412; --ink:#FFF4D2; --card:#221D12; --muted:#BFAE84;
  --hot:#FFD60A; --stamp:#FF5247; --pop:#7C98FF; --line:#FFF4D2; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#16130C; --dots:#2A2412; --ink:#FFF4D2; --card:#221D12; --muted:#BFAE84;
  --hot:#FFD60A; --stamp:#FF5247; --pop:#7C98FF; --line:#FFF4D2; color-scheme:dark}

*{box-sizing:border-box}
html,body{min-height:100%}
body{
  background-color:var(--bg);
  background-image:radial-gradient(var(--dots) 1.4px,transparent 1.6px);
  background-size:14px 14px;
  color:var(--ink); font-family:var(--body); font-size:16px; line-height:1.5;
  padding-left:max(16px,env(safe-area-inset-left,0px));
  padding-right:max(16px,env(safe-area-inset-right,0px));
  padding-block:20px 48px;
}
.wrap{max-width:620px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,a:focus-visible{outline:3px solid var(--pop);outline-offset:3px}

header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.brand{font-family:var(--display);font-size:1.7rem;letter-spacing:.02em;line-height:1;text-transform:uppercase;background:none;border:0;padding:0}
.brand span{background:var(--hot);color:#17130B;padding:0 .2em;margin-left:.1em;display:inline-block;transform:rotate(-3deg)}

.lede h1{font-family:var(--display);font-weight:400;font-size:clamp(2.4rem,9vw,3.6rem);line-height:.95;text-transform:uppercase;margin:0;text-wrap:balance}
.lede p{margin:10px 0 0;color:var(--muted);max-width:46ch}

.grid{display:grid;gap:16px}
.qcard{
  text-align:left;background:var(--card);border:3px solid var(--line);border-radius:6px;
  box-shadow:6px 6px 0 var(--line);padding:18px 18px 16px;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;
  transition:transform .12s,box-shadow .12s;
}
.qcard:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--line)}
.qcard:active{transform:translate(3px,3px);box-shadow:3px 3px 0 var(--line)}
.qcard .face svg,.intro .face svg{width:76%;height:76%;display:block}
.face .letter{font-family:var(--display);font-size:2rem;color:#17130B}
.qcard .face{grid-row:span 2;font-size:2.6rem;width:64px;height:64px;display:grid;place-items:center;background:var(--hot);border:3px solid #17130B;border-radius:50%;transform:rotate(-6deg)}
.qcard h2{margin:0;font-family:var(--display);font-weight:400;font-size:1.45rem;line-height:1.05;text-transform:uppercase;text-wrap:balance}
.qcard .meta{font-family:var(--mono);font-size:.75rem;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}

.panel{background:var(--card);border:3px solid var(--line);border-radius:6px;box-shadow:6px 6px 0 var(--line);padding:22px 20px}
.progress{display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:var(--mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.bar{height:10px;border:2px solid var(--line);border-radius:999px;overflow:hidden;margin:8px 0 18px}
.bar i{display:block;height:100%;background:var(--stamp);transition:width .3s}
.qtext{font-size:clamp(1.3rem,5vw,1.6rem);font-weight:800;line-height:1.2;margin:0 0 18px;text-wrap:balance}
.answers{display:grid;gap:10px}
.answers.yn{grid-template-columns:1fr 1fr}
.ans{text-align:left;background:var(--bg);border:2px solid var(--line);border-radius:6px;padding:12px 14px;font-weight:500;line-height:1.3;transition:background .1s,transform .1s}
.answers.yn .ans{text-align:center;font-family:var(--display);font-size:1.6rem;text-transform:uppercase;padding:14px}
.ans:hover{background:var(--hot);color:#17130B;transform:translateX(3px)}
.answers.yn .ans:hover{transform:rotate(-2deg)}
.back{margin-top:16px;background:none;border:0;padding:0;color:var(--muted);font-size:.85rem;text-decoration:underline}

/* The meme box takes each GIF's own shape so nothing is cropped. Very tall GIFs are capped
   in height and centred on a dark background instead. */
.meme{position:relative;background:#111;border:3px solid var(--line);border-radius:6px;overflow:hidden;max-width:100%;box-shadow:6px 6px 0 var(--line)}
.meme img{display:block;width:100%;height:auto;max-height:min(68vh,560px);object-fit:contain;margin:0 auto}
.credit{position:absolute;right:6px;top:6px;z-index:3;font-family:var(--mono);font-size:.62rem;background:rgba(0,0,0,.6);color:#fff;padding:2px 6px;border-radius:3px}

.suspense{display:flex;flex-direction:column;gap:16px;text-align:center}
.suspense h2{font-family:var(--display);font-weight:400;font-size:2rem;text-transform:uppercase;margin:0}
.dots::after{content:"";animation:dots 1.2s steps(4) infinite}

.verdict{display:flex;flex-direction:column;gap:18px}
.stamp{align-self:flex-start;font-family:var(--display);text-transform:uppercase;color:var(--stamp);border:4px solid var(--stamp);border-radius:6px;padding:4px 14px;font-size:clamp(1.8rem,8vw,2.8rem);line-height:1.05;transform:rotate(-3deg);animation:slam .45s cubic-bezier(.2,1.6,.4,1) both;text-wrap:balance;max-width:100%}
.big{font-family:var(--display);font-size:clamp(4rem,22vw,7rem);line-height:.9;color:var(--stamp)}
.meter{height:22px;border:3px solid var(--line);border-radius:999px;overflow:hidden;background:var(--card)}
.meter i{display:block;height:100%;background:repeating-linear-gradient(-45deg,var(--stamp) 0 12px,#c22a20 12px 24px);width:0;transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.desc{font-size:1.08rem;margin:0;max-width:60ch}
.reasons{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.reasons li{background:var(--card);border:2px dashed var(--line);border-radius:6px;padding:10px 12px;font-size:.95rem}
.reasons li::before{content:attr(data-tag) " · ";font-family:var(--mono);font-size:.7rem;color:var(--stamp);letter-spacing:.05em}
.tally{display:grid;gap:6px}
.tally div{display:grid;grid-template-columns:7.5rem 1fr 2.6rem;gap:8px;align-items:center;font-size:.85rem;font-variant-numeric:tabular-nums}
.tally .t{height:10px;border:2px solid var(--line);border-radius:999px;overflow:hidden}
.tally .t i{display:block;height:100%;background:var(--pop)}
.row{display:flex;gap:10px;flex-wrap:wrap}
.btn{background:var(--hot);color:#17130B;border:3px solid #17130B;border-radius:6px;padding:10px 18px;font-weight:800;box-shadow:4px 4px 0 var(--line)}
.btn.alt{background:var(--card);color:var(--ink);border-color:var(--line)}
.btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--line)}
.toast{font-size:.85rem;color:var(--muted);min-height:1.2em}
.foot{font-size:.78rem;color:var(--muted);text-align:center}

/* share */
.share{display:grid;gap:14px;background:var(--card);border:3px solid var(--line);border-radius:6px;box-shadow:6px 6px 0 var(--line);padding:18px}
.next{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.share h3,.next h3{font-family:var(--display);font-weight:400;font-size:1.7rem;line-height:1;text-transform:uppercase;margin:0}
.share-body{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:520px){.share-body{grid-template-columns:1fr}.card-preview{max-width:280px}}
.card-preview{width:100%;aspect-ratio:4/5;border:3px solid var(--line);border-radius:6px;background:var(--bg);display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:.85rem;text-align:center;padding:0}
.card-preview img{width:100%;height:100%;object-fit:cover;display:block}
.share-actions{display:grid;gap:10px;min-width:0}
.socials{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.soc{display:block;text-align:center;text-decoration:none;color:var(--ink);background:var(--bg);border:2px solid var(--line);border-radius:6px;padding:9px 8px;font-weight:800;font-size:.9rem;line-height:1.2}
.soc:hover{background:var(--hot);color:#17130B}
.hint{margin:0;font-size:.82rem;color:var(--muted)}
/* friend landing */
.friend{background:var(--stamp);color:#fff;border:3px solid var(--line);border-radius:6px;box-shadow:6px 6px 0 var(--line);padding:18px 18px 20px;display:grid;gap:8px;justify-items:start}
.friend-tag{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;opacity:.9}
.friend-stamp{margin:0;font-family:var(--display);font-size:clamp(2rem,9vw,3rem);line-height:1;text-transform:uppercase;text-wrap:balance}
.friend-line{margin:0;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.friend .btn{margin-top:6px}

.lost{display:grid;gap:14px}
.lost .stamp{justify-self:start}
/* quiz link landing */
.intro{display:grid;gap:12px;justify-items:start}
.intro .face{font-size:2.6rem;width:72px;height:72px;display:grid;place-items:center;background:var(--hot);border:3px solid #17130B;border-radius:50%;transform:rotate(-6deg)}
.intro h1{font-family:var(--display);font-weight:400;font-size:clamp(2.2rem,8vw,3.2rem);line-height:.95;text-transform:uppercase;margin:4px 0 0;text-wrap:balance}
.intro .meta{margin:0;font-family:var(--mono);font-size:.78rem;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.intro-line{margin:0;max-width:46ch}

@keyframes slam{0%{transform:scale(2.4) rotate(-12deg);opacity:0}100%{transform:scale(1) rotate(-3deg);opacity:1}}
@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* small helpers (instead of inline style attributes) */
.gap-lg{gap:22px}
.unit-label{font-weight:800;text-transform:uppercase;letter-spacing:.04em}

/* quiz finder */
.finder{display:grid;gap:10px}
.finder input{font:inherit;font-size:1.05rem;width:100%;padding:12px 14px;border:3px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);box-shadow:4px 4px 0 var(--line)}
.finder input::placeholder{color:var(--muted)}
.finder input:focus-visible{outline:3px solid var(--pop);outline-offset:2px}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin}
.chip{flex:none;background:var(--card);color:var(--ink);border:2px solid var(--line);border-radius:999px;padding:6px 12px;font-weight:700;font-size:.85rem;white-space:nowrap}
.chip[aria-pressed="true"]{background:var(--hot);color:#17130B;border-color:#17130B}
.none{margin:0;font-weight:700;color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Anything marked hidden stays hidden, even if its class sets a display style. */
[hidden]{display:none!important}
