/* Shared, self-contained privacy controls. */
.pp-banner,.pp-dialog,.pp-video-controls{font:400 14px/1.55 "IBM Plex Sans",Arial,sans-serif;color:#f5f3eb;text-align:left;letter-spacing:normal;text-transform:none}
.pp-banner *,.pp-dialog *,.pp-video-controls *{box-sizing:border-box;cursor:auto!important}
.pp-banner button,.pp-dialog button,.pp-video-controls button,.pp-banner a,.pp-dialog a,.pp-video-controls a{cursor:pointer!important}
.pp-banner{position:fixed;z-index:10010;bottom:20px;right:20px;width:min(580px,calc(100% - 40px));padding:24px;background:#101113;border:1px solid #77766d;border-radius:12px;box-shadow:0 12px 60px #0009;max-height:calc(100dvh - 40px);overflow:auto}
.pp-banner[hidden]{display:none!important}
.pp-title{font:600 21px/1.25 "IBM Plex Sans",Arial,sans-serif;margin:0 0 12px;color:#fff}
.pp-text{margin:0 0 12px;color:#e0dfd8;font-size:14px;line-height:1.55}
.pp-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.pp-button{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;flex:1 1 auto;border:1px solid #9c9c92!important;border-radius:6px;background:#242528!important;color:#faf9f2!important;font:500 14px/1.3 "IBM Plex Sans",Arial,sans-serif!important;letter-spacing:normal!important;text-transform:none!important;padding:11px 15px;text-decoration:none!important;text-align:center}
.pp-button:hover{background:#383a3e!important;border-color:#faf9f2!important}
.pp-button:focus-visible,.pp-policy-link:focus-visible,.pp-dialog input:focus-visible,[data-privacy-settings]:focus-visible{outline:3px solid #ffd16b!important;outline-offset:3px}
.pp-policy-link{display:inline-block;color:#f2d18b!important;text-decoration:underline!important;text-underline-offset:3px;font:inherit;min-height:24px}
.pp-dialog{width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:26px;border:1px solid #77766d;border-radius:12px;background:#101113;overflow:auto}
.pp-dialog::backdrop{background:#000b}
.pp-category{display:flex;align-items:flex-start;gap:14px;border-top:1px solid #595a5d;margin:14px 0;padding-top:16px;cursor:pointer!important}
.pp-category input{flex:none;width:21px;height:21px;accent-color:#e8bc65;margin-top:3px;cursor:pointer!important}
.pp-category strong{display:block;font-size:16px;font-weight:600}
.pp-description{display:block;color:#d0d0c8;margin-top:5px}
.pp-video{position:relative;background:#101113;border:1px solid #55565a;border-radius:8px;overflow:hidden;min-height:280px;width:100%}
.pp-video>img{display:block;width:100%;height:150px;object-fit:cover;opacity:.75}
.pp-video-controls{padding:18px}
.pp-video .pp-video-frame{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;position:relative}
.pp-video-loaded>img,.pp-video-loaded>[data-privacy-video-controls]{display:none}
.pp-contact-note{max-width:680px;margin:22px auto 0;color:#c7c8bf;font:400 14px/1.6 "IBM Plex Sans",Arial,sans-serif}
.pp-contact-note a{color:inherit;text-decoration:underline;text-underline-offset:3px}
[data-privacy-settings]{background:none;border:0;padding:0;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer!important}
@media(max-width:600px){.pp-banner{bottom:8px;right:8px;width:calc(100% - 16px);padding:18px;max-height:calc(100dvh - 16px)}.pp-dialog{padding:20px}.pp-actions{flex-direction:column}.pp-button{width:100%}.pp-title{font-size:19px}.pp-video{min-height:0}.pp-contact-note{padding:0 16px}}
@media(prefers-reduced-motion:reduce){.pp-banner *,.pp-dialog *,.pp-video *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Secondary privacy text follows the portfolio typography. */
footer .footer-privacy{order:3;flex:1 0 100%;display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;color:#aab4ae;font:500 11px/1.6 "IBM Plex Mono",monospace;letter-spacing:.04em}
footer .footer-privacy a,footer .footer-privacy a:visited{display:inline-flex;align-items:center;min-height:32px;color:inherit;font:inherit;letter-spacing:inherit;text-decoration:none;cursor:pointer}
footer .footer-privacy a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
footer .footer-privacy a:focus-visible,.pp-contact-note a:focus-visible{outline:2px solid #ffd16b;outline-offset:4px}
#contact .pp-contact-note{max-width:520px;margin:0 auto;color:#aab4ae;font:400 12px/1.7 "IBM Plex Sans",Arial,sans-serif;letter-spacing:normal;text-align:center}
@media(max-width:600px){footer .footer-privacy{gap:6px 12px;font-size:10px}#contact .pp-contact-note{max-width:100%;padding:0 16px}}
