.consent-banner{z-index:60;left:8px;right:8px;bottom:max(8px, env(safe-area-inset-bottom));background:var(--panel);max-width:560px;color:var(--ink);margin:0 auto;padding:12px 14px 6px;position:fixed}.consent-banner .consent-text{margin-bottom:10px;font-size:13px;line-height:1.45}@media (min-width:600px){.consent-banner{padding:16px 18px 8px;bottom:16px}.consent-banner .consent-text{font-size:14px}}.consent-title{font:600 15px/1.3 var(--ui);letter-spacing:.02em;color:var(--ink);margin:0 0 6px}.consent-text{font:14px/1.5 var(--ui);color:var(--muted);margin:0 0 12px}.consent-text.small{margin:12px 0 0;font-size:13px}.consent-text a{color:var(--gold2)}.consent-note{font:13px/1.5 var(--ui);color:var(--ink);border-left:3px solid var(--gold);background:var(--panel2);margin:0 0 12px;padding:8px 10px}.consent-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.consent-btn{min-height:44px;font:600 14px/1.2 var(--ui);background:var(--btn);color:var(--btnInk);padding:6px 8px}.consent-btn.wide{width:100%;margin:4px 0 10px}.consent-link{min-height:32px;font:500 14px var(--ui);color:var(--ink);text-underline-offset:4px;margin:4px auto 0;padding:4px 10px;text-decoration:underline;display:block}.consent-btn:focus-visible,.consent-link:focus-visible,.consent-x:focus-visible,.consent-rows input:focus-visible,.consent-text a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}html.consent-open{overflow:hidden}.consent-dialog{background:var(--page);width:min(520px,100vw - 24px);max-width:none;max-height:calc(100dvh - 24px);color:var(--ink);border:0;padding:0;overflow-y:auto}.consent-dialog::backdrop{background:#000000b3}.consent-body{padding:18px 18px 16px}.consent-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.consent-dialog .consent-title{font-family:var(--display);margin:0;font-size:28px;font-weight:500;line-height:1.1}.consent-x{width:40px;height:40px;color:var(--muted);flex:none;place-items:center;font-size:26px;line-height:1;display:grid}.consent-rows{margin:4px 0 12px;padding:0;list-style:none}.consent-rows li{border-top:1px solid var(--line);grid-template-columns:28px minmax(0,1fr);align-items:start;gap:10px;padding:12px 0;display:grid}.consent-rows input{width:24px;height:24px;accent-color:var(--gold);cursor:pointer;margin:1px 0 0}.consent-on{width:24px;height:24px;font:700 14px var(--ui);color:var(--gold2);place-items:center;display:grid}.consent-name{font:600 15px/1.3 var(--ui);color:var(--ink);cursor:pointer;margin:0 0 2px;display:block}.consent-rows .consent-text{margin:0;font-size:13px}[data-theme=traditional] .consent-banner{border:1px solid var(--line);box-shadow:inset 0 0 0 4px var(--panel), inset 0 0 0 5px #c9a45c2e, 0 18px 40px #0000008c;border-radius:6px}[data-theme=traditional] .consent-banner .consent-title{font:600 18px/1.2 var(--sc);letter-spacing:.1em;text-transform:lowercase;color:var(--gold)}[data-theme=traditional] .consent-btn{box-shadow:0 0 0 1px var(--page), 0 0 0 2px var(--gold);border-radius:3px}[data-theme=traditional] .consent-dialog{box-shadow:0 0 0 1px var(--gold), 0 24px 60px #0009;border-radius:6px}[data-theme=anime] .consent-banner{border:3px solid var(--gold);box-shadow:6px 6px 0 var(--accent);background:#000}[data-theme=anime] .consent-title{font:900 italic 20px/1 var(--display);text-transform:uppercase;letter-spacing:.02em;color:var(--gold)}[data-theme=anime] .consent-dialog .consent-title{color:var(--ink);font-size:34px;line-height:.9}[data-theme=anime] .consent-btn{font:800 16px/1.1 var(--display);text-transform:uppercase;letter-spacing:.04em;box-shadow:4px 4px 0 var(--accent);border:2px solid #000;transform:skew(-8deg)}[data-theme=anime] .consent-link{font:700 italic 15px var(--display);text-transform:uppercase;letter-spacing:.06em}[data-theme=anime] .consent-dialog{border:3px solid var(--gold);box-shadow:8px 8px 0 var(--accent);background:#0d0f16}[data-theme=anime] .consent-rows li{border-top:2px solid var(--line)}[data-theme=anime] .consent-note{border-left-width:5px}@media (prefers-reduced-motion:no-preference){.consent-banner{animation:consent-up .35s var(--ease) both}.consent-dialog[open]{animation:.22s ease-out both consent-in}}@keyframes consent-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes consent-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}
