.consent-banner{position:fixed;z-index:100;inset:auto 24px 24px;margin:auto;max-width:1120px;padding:24px 28px;border:1px solid var(--color-line-strong);border-radius:var(--radius-medium);background:color-mix(in srgb,var(--color-deep) 96%,transparent);box-shadow:0 18px 90px #0008;backdrop-filter:blur(20px);display:grid;grid-template-columns:1fr auto;gap:20px 32px;animation:consent-arrive var(--duration-normal) var(--ease-out)}
.consent-banner h2,.consent-dialog h2{font-family:var(--font-display);font-size:var(--text-card);margin:0 0 8px}.consent-banner p{font-size:var(--text-small);color:var(--color-muted);margin:0;max-width:650px}.consent-eyebrow{color:var(--color-accent);font:var(--weight-strong) var(--text-caption)/1.4 var(--font-mono);letter-spacing:.12em;display:block;margin-bottom:8px}.consent-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.consent-banner .consent-actions{grid-column:1/-1}.consent-actions .button{justify-content:center;min-height:46px;flex:1;padding:12px 18px}.consent-choice{border-color:var(--color-line-strong);background:var(--color-raised);color:var(--color-text)}.consent-choice:hover{border-color:var(--color-accent);background:var(--color-surface)}.consent-legal{display:flex;gap:20px;align-items:center;font-size:var(--text-small);color:var(--color-muted)}.consent-legal button,.consent-legal a{padding:4px 0;text-decoration:underline;text-underline-offset:4px}.consent-legal button:hover,.consent-legal a:hover{color:var(--color-accent)}
.consent-dialog{width:min(620px,calc(100% - 32px));max-width:620px;max-height:calc(100dvh - 32px);padding:28px;border:1px solid var(--color-line-strong);border-radius:var(--radius-medium);background:var(--color-deep);color:var(--color-text);overflow:auto}.consent-dialog::backdrop{background:#020906bb;backdrop-filter:blur(8px)}.consent-dialog[open]{animation:consent-arrive var(--duration-normal) var(--ease-out)}.consent-dialog>p{font-size:var(--text-small);color:var(--color-muted);margin:12px 0 20px}.consent-close{position:absolute;right:18px;top:14px;width:36px;height:36px;font-size:24px}.consent-dialog h2{padding-right:30px}.consent-options{display:grid;gap:10px;margin:20px 0}.consent-option{display:grid;grid-template-columns:1fr auto;gap:6px 20px;padding:16px;border:1px solid var(--color-line);border-radius:var(--radius-small);background:var(--color-surface)}.consent-option strong{font-size:var(--text-body)}.consent-option p{margin:0;color:var(--color-muted);font-size:var(--text-small);grid-column:1}.consent-switch{grid-column:2;grid-row:1/3;align-self:center;appearance:none;position:relative;width:44px;height:26px;border:1px solid var(--color-line-strong);border-radius:var(--radius-pill);background:var(--color-deep);cursor:pointer;transition:background var(--duration-fast)}.consent-switch:before{content:'';position:absolute;top:4px;left:4px;width:16px;height:16px;border-radius:50%;background:var(--color-muted);transition:transform var(--duration-fast),background var(--duration-fast)}.consent-switch:checked{background:var(--color-accent);border-color:var(--color-accent)}.consent-switch:checked:before{background:var(--color-ink);transform:translateX(18px)}.consent-switch:disabled{opacity:.45;cursor:not-allowed}.consent-option .consent-status{color:var(--color-subtle);font-size:var(--text-caption);font-weight:var(--weight-normal);display:block;margin-top:2px}.consent-option:has(input:focus-visible){border-color:var(--color-accent)}.consent-dialog .consent-actions{margin-top:20px}.consent-dialog .consent-legal{margin-top:20px}.consent-storage-warning{color:var(--color-accent)!important}.consent-notice{font-size:var(--text-small);color:var(--color-muted);line-height:1.5}.consent-notice summary{cursor:pointer;padding:8px 0;color:var(--color-text)}.consent-notice p{margin:8px 0}.consent-media-blocked{display:grid;place-content:center;text-align:center;min-height:240px;padding:24px;gap:14px}.consent-media-blocked p{margin:0;color:var(--color-muted)}.consent-media-blocked button{justify-self:center}
@keyframes consent-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
:root{--consent-control-size:44px;--consent-control-offset:16px;--consent-control-bottom:max(var(--consent-control-offset),env(safe-area-inset-bottom));--consent-banner-bottom:calc(var(--consent-control-bottom) + var(--consent-control-size) + 12px)}
.privacy-control{position:fixed;z-index:101;left:max(var(--consent-control-offset),env(safe-area-inset-left));bottom:var(--consent-control-bottom);width:var(--consent-control-size);height:var(--consent-control-size);display:grid;place-items:center;border:1px solid var(--color-line-strong);border-radius:var(--radius-pill);background:var(--color-deep);color:var(--color-accent);box-shadow:0 4px 24px #0005;transition:background var(--duration-fast),box-shadow var(--duration-normal),transform var(--duration-normal) var(--ease-out)}.privacy-control svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.privacy-control:hover{background:var(--color-raised);box-shadow:0 0 24px color-mix(in srgb,var(--color-accent) 20%,transparent);transform:translateY(-2px)}.privacy-control>span{position:absolute;left:calc(100% + 10px);padding:6px 10px;border-radius:var(--radius-small);background:var(--color-deep);border:1px solid var(--color-line);color:var(--color-text);font-size:var(--text-small);white-space:nowrap;pointer-events:none;opacity:0;transform:translateX(-5px);transition:opacity var(--duration-fast),transform var(--duration-fast)}.privacy-control:hover>span,.privacy-control:focus-visible>span{opacity:1;transform:translateX(0)}
.consent-banner{bottom:var(--consent-banner-bottom);max-height:calc(100dvh - var(--consent-banner-bottom) - 12px);overflow:auto}.consent-group{border:1px solid var(--color-line);border-radius:var(--radius-small);background:var(--color-surface);overflow:hidden}.consent-group>summary{display:flex;align-items:center;gap:12px;list-style:none;cursor:pointer;padding:16px;transition:background var(--duration-fast)}.consent-group>summary::-webkit-details-marker{display:none}.consent-group>summary:hover{background:var(--color-raised)}.consent-group>summary>span:first-child{flex:1;min-width:0}.consent-group strong{display:block;font-size:var(--text-body);line-height:1.4}.consent-group small{display:block;font-size:var(--text-small);color:var(--color-muted);margin-top:3px;line-height:1.5}.consent-group-status{font-size:var(--text-caption);color:var(--color-accent);white-space:nowrap}.consent-group svg{width:18px;height:18px;flex:none;fill:none;stroke:var(--color-accent);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--duration-normal) var(--ease-out)}.consent-group[open]>summary svg{transform:rotate(180deg)}.consent-group-content{display:grid;gap:8px;padding:0 12px 12px}.consent-group[open] .consent-group-content{animation:consent-group-reveal var(--duration-fast) var(--ease-out)}.consent-group-content .consent-option{background:var(--color-deep);padding:12px}.consent-group>summary:focus-visible{outline-offset:-4px}
@keyframes consent-group-reveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.consent-dialog{scrollbar-color:var(--color-raised) var(--color-deep);scrollbar-width:thin}.consent-option{line-height:1.5}.consent-dialog>p,.consent-option p{line-height:1.5}.consent-option strong{line-height:1.4}
@media(max-width:760px){.consent-banner{inset:auto 12px var(--consent-banner-bottom);padding:20px;grid-template-columns:1fr;gap:16px;overflow:auto}.consent-banner .consent-actions{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.consent-banner [data-consent-settings]{grid-column:1/-1;grid-row:1}.consent-banner h2{font-size:var(--text-card)}.consent-legal{gap:20px}.consent-dialog{padding:22px}.consent-dialog .consent-actions{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.consent-dialog .consent-actions .button{padding-inline:10px}.consent-dialog [data-consent-save]{grid-column:1/-1;grid-row:1}.consent-option{padding:13px;gap:6px 12px}.consent-group>summary{padding:13px;gap:8px}.consent-group-content{padding:0 8px 8px}}
@media(prefers-reduced-motion:reduce){.consent-banner,.consent-dialog[open],.consent-group[open] .consent-group-content{animation:none}.consent-switch,.consent-switch:before,.privacy-control,.privacy-control>span,.consent-group svg{transition:none}}

.consent-category{position:relative}.consent-group>summary{padding-right:76px}.consent-category-control{position:absolute;right:12px;top:10px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;cursor:pointer}.consent-category-control .consent-switch{margin:0;flex:none}.consent-category-control:has(input:disabled){cursor:not-allowed}.consent-switch:indeterminate{border-color:var(--color-accent);background:var(--color-raised)}.consent-switch:indeterminate:before{background:var(--color-accent);transform:translateX(9px)}
@media(max-width:480px){.consent-group-status{display:none}.consent-group>summary{padding-right:72px}.consent-category-control{right:10px;top:7px}}
