/* Kenwren layout + themes (data-skin on ). (c) 2026 CyberMax. */ :root{--k-a:#2A1B3D;--k-b:#5B2A86;--k-hi:#FFD166;--k-ink:#fff} :root[data-skin=sunrise]{--k-a:#3D1F1B;--k-b:#C2412D;--k-hi:#FFE08A} :root[data-skin=lagoon]{--k-a:#0B2E3A;--k-b:#14808A;--k-hi:#B8FFF0} :root[data-skin=bubblegum]{--k-a:#3A1235;--k-b:#D9479A;--k-hi:#FFF1A8} :root[data-skin=paper]{--k-a:#EFE7D6;--k-b:#DCCFB4;--k-hi:#C2412D;--k-ink:#11141B} .stage{margin-top:8px;background:linear-gradient(160deg,var(--k-a),var(--k-b));color:var(--k-ink);border-radius:26px;padding:22px 18px;box-shadow:var(--shadow);min-height:420px} .stage h1{color:var(--k-ink)}.stage h1 em{color:var(--k-hi);font-style:normal} .stage h2{margin:6px 0 14px;font-size:clamp(22px,5.4vw,30px);text-wrap:balance} .stage .muted{color:var(--k-ink);opacity:.78} .kick{margin:0;color:var(--k-hi);font-weight:800;font-size:13px;letter-spacing:.06em;text-transform:uppercase} .lede{font-size:18px;opacity:.9;margin:6px 0 18px} .btn.big{min-height:56px;font-size:19px;padding:12px 26px;background:var(--k-hi);color:#11141B} .stage .btn.ghost{color:var(--k-ink);border-color:rgba(255,255,255,.35)} :root[data-skin=paper] .stage .btn.ghost{border-color:rgba(0,0,0,.2)} .how{display:flex;gap:10px;flex-wrap:wrap;list-style:none;padding:0;margin:22px 0 0}.how li{background:rgba(255,255,255,.1);border-radius:12px;padding:8px 12px;font-size:14px} #name-form input,.linkbox input{flex:1;min-width:0;font:inherit;font-size:18px;padding:12px 14px;border-radius:12px;border:2px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);color:var(--k-ink)} #name-form input::placeholder{color:var(--k-ink);opacity:.55} :root[data-skin=paper] #name-form input,:root[data-skin=paper] .linkbox input{border-color:rgba(0,0,0,.2);background:#fff} #packs{margin-top:14px}#packs .chip{background:rgba(255,255,255,.12);color:var(--k-ink);border-color:rgba(255,255,255,.3)}#packs .chip[aria-pressed=true]{background:var(--k-hi);color:#11141B;border-color:var(--k-hi)} .bar{height:8px;border-radius:99px;background:rgba(255,255,255,.18);overflow:hidden}.bar i{display:block;height:100%;width:0;background:var(--k-hi);transition:width .25s} .opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 14px} .opt{min-height:74px;padding:12px;border-radius:16px;border:2px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:var(--k-ink);font:inherit;font-weight:800;font-size:17px;cursor:pointer;touch-action:manipulation;transition:transform .1s,background .15s} .opt:hover{transform:translateY(-2px);border-color:var(--k-hi)}.opt[aria-pressed=true]{background:var(--k-hi);color:#11141B;border-color:var(--k-hi)} :root[data-skin=paper] .opt{border-color:rgba(0,0,0,.18);background:#fff} @media (max-width:420px){.opts{grid-template-columns:1fr}.opt{min-height:56px}} .linkbox{display:flex;gap:8px;margin:12px 0} .score{font-size:72px;font-weight:900;margin:0;color:var(--k-hi);line-height:1} .recap,.board{padding-left:24px}.recap li,.board li{padding:5px 0;border-bottom:1px solid rgba(255,255,255,.15)}.board li b{float:right}.board li.me{color:var(--k-hi);font-weight:800} .stage a{color:var(--k-hi)} .err{background:#FF5C5C;color:#fff;border-radius:10px;padding:8px 12px;font-weight:700} .skins{justify-content:center;margin:10px 0}.skins button{width:36px;height:36px;border-radius:50%;border:3px solid var(--line);cursor:pointer;position:relative} .skins button[aria-pressed=true]{border-color:var(--ink)}.skins button.locked::after{content:"🔒";position:absolute;right:-6px;bottom:-6px;font-size:12px} .stage details{margin-top:14px} #packs{flex-wrap:wrap!important;overflow:visible!important;margin:14px 0 0!important;padding:0!important} /* solo mode: map, clue card, pips, stars, juice */ .stage{position:relative} .solo-strip{margin-top:22px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18)}.solo-strip .kick{margin-bottom:8px}.solo-strip p.small{margin:8px 0 0} .streak{font-weight:900;font-size:18px;background:rgba(255,255,255,.12);border-radius:999px;padding:6px 12px} .hud{display:flex;align-items:center;gap:8px;justify-content:space-between;margin-bottom:6px}.hud b{flex:1;text-align:center;font-size:15px} .hud .btn.sm{min-width:44px} .goal{margin:0 0 10px;font-size:15px;background:rgba(0,0,0,.18);border-radius:10px;padding:7px 10px}.goal .beat{color:var(--k-hi)} :root[data-skin=paper] .goal{background:rgba(0,0,0,.06)} .pips{display:flex;gap:6px;margin:0 0 10px}.pips i{flex:1;height:8px;border-radius:9px;background:rgba(255,255,255,.2)}.pips i.ok{background:#2FD3A0}.pips i.no{background:#FF5C5C} .clue-card{background:rgba(255,255,255,.1);border:2px solid rgba(255,255,255,.22);border-radius:16px;padding:10px 14px;margin-bottom:10px} :root[data-skin=paper] .clue-card{background:#fff;border-color:rgba(0,0,0,.12)} .clue-card .who{margin:0 0 4px;font-size:18px}.clue-card #so-emoji{font-size:26px} .clue-card ul{margin:0;padding-left:20px}.clue-card li{padding:2px 0;font-size:15px;transition:background .2s} .clue-card li.now,.clue-card li.hint{background:rgba(255,209,102,.22);border-radius:6px;outline:2px solid var(--k-hi);outline-offset:1px} .clue-card .hid{display:none;margin:0;font-size:28px;text-align:center} .clue-card.hidden ul{display:none}.clue-card.hidden .hid{display:block} .peek,.tbar{height:6px;border-radius:9px;background:rgba(255,255,255,.2);overflow:hidden;margin:8px 0}.peek i,.tbar i{display:block;height:100%;width:100%;background:var(--k-hi)} .tbar i{background:#FF8A5C} #so-ready{margin-top:6px} #s-solo h2{margin:4px 0 10px;font-size:clamp(19px,4.6vw,24px)} .opt.right{background:#2FD3A0!important;color:#11141B!important;border-color:#2FD3A0!important}.opt.wrong{background:#FF5C5C!important;color:#fff!important;border-color:#FF5C5C!important} .opt.hint{border-color:var(--k-hi);box-shadow:0 0 0 3px rgba(255,209,102,.4)} .opt:disabled{cursor:default} .hand{position:absolute;left:0;top:0;font-size:38px;pointer-events:none;z-index:5;margin:-6px 0 0 -12px;filter:drop-shadow(0 3px 4px rgba(0,0,0,.4))} .stars{font-size:52px;letter-spacing:6px;line-height:1;margin:4px 0}.stars span{opacity:.25;display:inline-block}.stars span.on{opacity:.25}.stars span.pop{opacity:1;color:var(--k-hi);animation:pop .35s ease-out} @keyframes pop{0%{transform:scale(.3)}70%{transform:scale(1.25)}100%{transform:scale(1)}} .grid{font-size:22px;letter-spacing:2px;margin:6px 0} #s-done .row{margin-top:10px} .pack h3{margin:14px 0 2px;font-size:17px}.pack h3 small{font-weight:600;opacity:.75}.passtag{background:linear-gradient(135deg,#FFB547,#FF6A3D);color:#11141B;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:800} .pack p.small{margin:0 0 8px} .nodes{display:grid;grid-template-columns:repeat(5,1fr);gap:8px} .node{display:flex;flex-direction:column;align-items:center;gap:0;padding:6px 2px;border-radius:14px;border:2px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:var(--k-ink);font:inherit;cursor:pointer;min-height:70px;touch-action:manipulation} :root[data-skin=paper] .node{background:#fff;border-color:rgba(0,0,0,.12)} .node .nn{font-weight:900;font-size:14px}.node .em{font-size:22px;line-height:1.1}.node .st{font-size:11px;color:var(--k-hi);letter-spacing:1px} .node.done{border-color:var(--k-hi)}.node.boss{border-style:dashed}.node.progress{opacity:.45}.node.pass{opacity:.8} .node.cur{box-shadow:0 0 0 3px var(--k-hi);animation:pulse 1.4s ease-in-out infinite} @keyframes pulse{50%{box-shadow:0 0 0 6px rgba(255,209,102,.35)}} .shake{animation:shake .38s} @keyframes shake{20%{transform:translateX(-8px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}} canvas.fx{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:98} @media (max-width:420px){.nodes{gap:6px}.node{min-height:64px}.stars{font-size:44px}} @media (max-width:420px){.top nav{display:none}.top .icon{padding:8px 7px}}