/* Isolated cookie component; no portfolio selectors or global element rules. */
.analytics-consent{position:fixed;z-index:10000;bottom:20px;left:0;right:0;margin-inline:auto;width:min(420px,90%);color:#fff;font:14px/1.5 Arial,Helvetica,sans-serif;box-sizing:border-box}
.analytics-consent *{box-sizing:border-box}.analytics-consent[hidden],.analytics-consent [hidden]{display:none!important}
.analytics-scroll{max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#777 var(--ink);clip-path:polygon(0 0,calc(100% - 46px) 0,calc(100% - 48px) 12px,calc(100% - 35px) 17px,calc(100% - 38px) 29px,calc(100% - 22px) 31px,calc(100% - 18px) 44px,calc(100% - 5px) 42px,100% 52px,100% 100%,0 100%);background:var(--ink)}
.analytics-face{padding:28px 30px 20px}
.analytics-face h2{font:600 22px/1.2 Arial,Helvetica,sans-serif;letter-spacing:-.6px;color:#fff;margin:0 0 14px}
.analytics-face .analytics-copy{font:15px/1.55 Arial,Helvetica,sans-serif;color:#fff;margin:0 0 24px}
.analytics-actions{display:flex;gap:12px;flex-wrap:wrap}.analytics-actions button{flex:1;appearance:none;border:1px solid #fff;border-radius:0;background:transparent;color:#fff;min-height:44px;padding:10px 14px;font:14px Arial,Helvetica,sans-serif;cursor:pointer}
.analytics-actions button:hover{background:#fff;color:var(--ink)}
.analytics-consent button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.analytics-more{display:block;appearance:none;border:0;border-radius:0;background:transparent;color:#bbb;font:11px/1.5 Arial,Helvetica,sans-serif;text-decoration:underline;text-underline-offset:3px;margin:8px auto 0;padding:12px 16px;min-height:40px;cursor:pointer}
.analytics-details{padding:20px 30px 12px;background:var(--ink);color:#ccc;font:11px/1.65 Arial,Helvetica,sans-serif;border-top:1px solid #333}
.analytics-details h3{font:600 12px/1.5 Arial,Helvetica,sans-serif;color:#fff;margin:0 0 12px}.analytics-details p{margin:0 0 12px}.analytics-details b{color:#fff}.analytics-details a{color:#ccc;text-decoration:underline}
.analytics-dismiss{margin:0 auto;padding-bottom:18px}
.analytics-crumb{position:absolute;background:var(--ink);pointer-events:none}
.analytics-crumb.c1{width:12px;height:9px;right:19px;top:-17px;transform:rotate(23deg);clip-path:polygon(0 0,100% 14%,75% 100%,15% 78%)}
.analytics-crumb.c2{width:7px;height:6px;right:-3px;top:4px;transform:rotate(-18deg)}
.analytics-crumb.c3{width:10px;height:8px;right:-16px;top:30px;transform:rotate(32deg);clip-path:polygon(10% 0,100% 25%,70% 100%,0 65%)}
.analytics-crumb.c4{width:4px;height:4px;right:11px;top:23px;transform:rotate(22deg)}
.analytics-settings{display:block;appearance:none;background:none;border:0;padding:0;margin-top:14px;color:#666;font:12px/1.5 Arial,Helvetica,sans-serif;text-decoration:underline;cursor:pointer}.analytics-settings:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
/* Match the mobile shell and CV card width; keep the desktop panel centered. */
@media(max-width:760px){.analytics-consent{width:min(520px,88%)}}
@media(max-width:600px){.analytics-consent{bottom:12px}.analytics-face{padding:26px 22px 16px}.analytics-details{padding:18px 22px 12px}.analytics-actions{gap:8px}.analytics-actions button{padding:10px 8px}}

/* A shared bottom row keeps credits and privacy aligned with the site shell. */
.footer-meta{display:flex;align-items:baseline;justify-content:space-between;gap:16px 32px;margin-top:40px}
.footer-meta .footer-credit{display:block;margin:0;font:12px/1.6 Arial,Helvetica,sans-serif;color:var(--muted)}
.footer-meta .analytics-settings{flex-shrink:0;margin:0;font:12px/1.6 Arial,Helvetica,sans-serif;color:var(--muted)}
@media(max-width:760px){.footer-meta{flex-direction:column;align-items:flex-start;gap:12px;margin-top:32px}.footer-meta .analytics-settings{order:-1}}
body:has(.about-page) .footer-meta,body:has(.contact-page) .footer-meta{margin-top:0}
