@font-face{font-family:Bangers;src:url(/assets/fonts/Bangers.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Comic Neue";src:url(/assets/fonts/ComicNeue-Bold.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:SG;src:url(/assets/fonts/SpaceGrotesk.woff2) format("woff2");font-weight:300 700;font-display:swap}
:root{--paper:#fff8e7;--ink:#111;--yel:#ffd400;--red:#ff2e3b;--cyan:#00b7ff;--pink:#ff3ea5;--green:#19d27a}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--paper);color:var(--ink);font:500 17px/1.45 SG,system-ui,sans-serif;
  background-image:radial-gradient(rgba(0,0,0,.07) 1.2px,transparent 1.4px);background-size:14px 14px}
a{color:inherit}
.cabar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;padding:10px 16px;background:var(--ink);color:#fff;font:700 14px SG}
.cabar code{background:#fff;color:var(--ink);padding:4px 8px;border-radius:6px;font:700 13px ui-monospace,Menlo,Consolas,monospace;word-break:break-all}
.cabar b{font:400 22px Bangers;letter-spacing:.04em;color:var(--yel)}
.cabar button,.cabar a{font:700 13px SG;background:var(--yel);color:var(--ink);border:2px solid #fff;border-radius:8px;padding:5px 10px;cursor:pointer;text-decoration:none}
.top{display:flex;justify-content:space-between;align-items:center;max-width:1180px;margin:0 auto;padding:18px 16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand span{font:400 34px/1 Bangers;letter-spacing:.04em;-webkit-text-stroke:1px var(--ink)}
.top nav{display:flex;gap:16px;font-weight:700}
.top nav a{text-decoration:none;border-bottom:3px solid var(--yel)}
main{max-width:1180px;margin:0 auto;padding:0 16px}
.hero{text-align:center;padding:30px 0 20px}
.kicker{display:inline-block;background:var(--ink);color:var(--yel);font:400 20px Bangers;letter-spacing:.08em;padding:4px 14px;transform:rotate(-2deg);margin:0}
.hero h1{font:400 clamp(58px,11vw,132px)/.9 Bangers;letter-spacing:.02em;margin:18px 0 10px;color:#fff;
  -webkit-text-stroke:3px var(--ink);text-shadow:6px 6px 0 var(--ink)}
.hero h1 span{color:var(--yel)}
.sub{font:400 clamp(26px,4vw,40px) Bangers;letter-spacing:.04em;margin:6px 0 22px;color:var(--red);-webkit-text-stroke:1px var(--ink)}
.bubble-form{position:relative;display:flex;gap:10px;max-width:760px;margin:0 auto;background:#fff;border:4px solid var(--ink);border-radius:40px;padding:10px;box-shadow:8px 8px 0 var(--ink)}
.bubble-form::after{content:"";position:absolute;left:60px;bottom:-26px;border:14px solid transparent;border-top:18px solid var(--ink)}
.bubble-form input{flex:1;min-width:0;border:0;outline:0;font:600 18px ui-monospace,Menlo,Consolas,monospace;padding:10px 14px;background:transparent}
.pow{font:400 26px/1 Bangers;letter-spacing:.06em;background:var(--red);color:#fff;border:3px solid var(--ink);border-radius:30px;padding:12px 24px;cursor:pointer;box-shadow:4px 4px 0 var(--ink);transition:transform .08s}
.pow:hover{transform:translate(-2px,-2px) rotate(-2deg)}
.pow:active{transform:translate(2px,2px)}
.btn{font:700 15px SG;background:#fff;border:3px solid var(--ink);border-radius:12px;padding:10px 16px;cursor:pointer;box-shadow:3px 3px 0 var(--ink);text-decoration:none;display:inline-block}
.hint{margin:30px auto 0;max-width:620px;color:#444}
.stage{margin:20px auto 40px;text-align:center}
@keyframes wob{to{transform:rotate(2deg) scale(1.04)}}
.err{display:inline-block;background:#fff;border:4px solid var(--red);padding:12px 18px;font-weight:700}
.out canvas{width:100%;max-width:820px;height:auto;border:4px solid var(--ink);box-shadow:10px 10px 0 var(--ink);background:#fff}
.actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:22px 0}
.press h2{font:400 54px Bangers;letter-spacing:.03em;margin:30px 0 16px;-webkit-text-stroke:1px var(--ink);color:var(--cyan);text-shadow:4px 4px 0 var(--ink)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px;margin-bottom:50px}
.card{display:flex;flex-direction:column;gap:8px;background:#fff;border:3px solid var(--ink);padding:14px;box-shadow:5px 5px 0 var(--ink);text-decoration:none;transition:transform .1s}
.card:hover{transform:rotate(-1.2deg) translate(-2px,-2px)}
.card img,.card .ph{width:64px;height:64px;border-radius:50%;border:3px solid var(--ink);object-fit:cover;background:var(--yel)}
.card b{font:400 24px/1.05 Bangers;letter-spacing:.03em}
.card span{font:700 13px SG;color:#555}
.empty{grid-column:1/-1;font-weight:700;color:#555}
.foot{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;max-width:1180px;margin:0 auto;padding:24px 16px 40px;border-top:4px solid var(--ink);font-size:14px}
@media (max-width:600px){.bubble-form{flex-direction:column;border-radius:26px}.pow{width:100%}.top nav a:first-child{display:none}.press h2{font-size:42px}}
.loader{display:inline-flex;flex-direction:column;align-items:center;gap:14px;background:#fff;border:4px solid var(--ink);padding:28px 34px 22px;box-shadow:8px 8px 0 var(--ink);max-width:460px;width:100%;
  background-image:radial-gradient(rgba(0,0,0,.06) 1.2px,transparent 1.4px);background-size:12px 12px}
.ring{--p:0%;width:150px;height:150px;border-radius:50%;display:grid;place-items:center;border:4px solid var(--ink);box-shadow:5px 5px 0 var(--ink);
  background:conic-gradient(var(--red) 0 calc(var(--p) * .25),var(--yel) 0 calc(var(--p) * .5),var(--cyan) 0 calc(var(--p) * .75),var(--pink) 0 var(--p),#f3eee2 0);transition:background .1s}
.ring span{width:98px;height:98px;border-radius:50%;background:#fff;border:4px solid var(--ink);display:grid;place-items:center;font:400 34px Bangers;letter-spacing:.03em}
.loader b{font:400 30px Bangers;letter-spacing:.05em;color:var(--red);-webkit-text-stroke:1px var(--ink);min-height:36px;animation:wob .5s ease-in-out infinite alternate}
.loader .bar{width:100%;height:18px;border:3px solid var(--ink);border-radius:12px;overflow:hidden;background:#f3eee2}
.loader .bar i{display:block;height:100%;width:0;background:repeating-linear-gradient(45deg,var(--yel) 0 12px,#ffb800 12px 24px);border-right:3px solid var(--ink);animation:slide 1s linear infinite;background-size:34px 34px}
@keyframes slide{to{background-position:34px 0}}
.loader small{color:#555;font-weight:700}
