/* Photo Booth: dark frosted glass with fine contours; original photos stay clear. */
.bio-photobooth-slot{position:relative;grid-column:1 / -1;min-width:0;width:100%;rotate:0;isolation:isolate}
.pb-gallery,.pb-dialog{--pb-title:rgba(42,40,39,.72);--pb-frame:rgba(18,19,21,.74);--pb-toolbar:rgba(43,41,40,.74);--pb-text:#f5f7fa;--pb-blue:#5aa7ff;--pb-reflection-x:24%;--pb-reflection-y:0%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--pb-text);font-size:12px;line-height:1.35;letter-spacing:0;text-align:left;color-scheme:dark}
/* A small paper backing and the portfolio's own crepe tape connect the window to the pinboard. */
.bio-photobooth-slot::before{content:'';position:absolute;inset:-3px -2px -4px;z-index:-1;background:var(--paper-fill);rotate:-.6deg;clip-path:polygon(0 1%,21% 0,48% .5%,74% 0,100% .8%,99.6% 28%,100% 61%,99.2% 100%,72% 99.4%,43% 100%,0 99%,.5% 63%);filter:drop-shadow(0 3px 4px #0004);pointer-events:none}
.bio-photobooth-slot::after,.bio-photobooth-slot .pb-gallery::before{content:'';position:absolute;z-index:2;width:62px;height:16px;pointer-events:none;background:var(--tape-skin),color-mix(in srgb,var(--tape-kraft) var(--tape-alpha),transparent);clip-path:var(--tape-end);opacity:.88}
.bio-photobooth-slot::after{top:-7px;right:22px;rotate:7deg}
.bio-photobooth-slot .pb-gallery::before{bottom:-5px;left:18px;width:53px;height:14px;rotate:-8deg}
.pb-gallery{position:relative;width:100%;min-width:0}
.pb-gallery *,.pb-dialog *{box-sizing:border-box}
/* Clip decorative overscan without creating an internally scrollable window. */
.pb-window{position:relative;isolation:isolate;width:100%;min-width:0;overflow:clip;border:1px solid #ffffff18;border-radius:14px;background:rgba(29,30,32,.82);box-shadow:0 12px 30px -14px #0009;backdrop-filter:blur(20px) saturate(1.18);-webkit-backdrop-filter:blur(20px) saturate(1.18);transform-origin:50% 20%}
.pb-window::after{content:none;position:absolute;inset:0;z-index:4;border:1px solid #ffffff0c;border-radius:inherit;box-shadow:inset 0 -1px 1px #ffffff07;pointer-events:none}
.pb-glass-backdrop{position:absolute;inset:-35px;z-index:-2;background-image:var(--pb-photo-surface);background-size:cover;background-position:center;filter:blur(24px) saturate(.9) brightness(.64);opacity:.28;pointer-events:none}
.pb-glass-reflection{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at var(--pb-reflection-x) var(--pb-reflection-y),#ffffff24 0%,#e0c9a00c 28%,transparent 58%),linear-gradient(125deg,#ffffff0d 0%,transparent 30%,transparent 58%,#e5d2b008 100%);pointer-events:none}
.pb-titlebar{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 35px;min-height:35px;padding:0 82px;background:linear-gradient(180deg,#ffffff0a,#ffffff00),var(--pb-title);border-top:0;border-bottom:1px solid #ffffff09;box-shadow:none;backdrop-filter:blur(16px) saturate(1.15);-webkit-backdrop-filter:blur(16px) saturate(1.15);user-select:none}
.pb-title{overflow:hidden;color:#f4f5f7;font-size:13px;font-weight:500;line-height:1;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 3px #0008}
.pb-window-controls{position:absolute;left:6px;top:3px;display:flex;gap:0}
.pb-window-control{position:relative;display:block;width:23px;height:26px;margin:0;padding:0;border:0;background:transparent;border-radius:4px;cursor:pointer}
.pb-window-control::before{content:'';position:absolute;left:5px;top:7px;width:12px;height:12px;border-radius:50%;box-shadow:inset 0 1px 1px #ffffff6b,inset 0 0 0 1px #0002,0 1px 2px #0003}
.pb-close::before{background:#ff5f57}.pb-minimize::before{background:#febc2e}.pb-zoom::before{background:#28c840}
.pb-window-control::after{position:absolute;inset:0;display:grid;place-items:center;padding-bottom:1px;color:#242424;font-size:12px;font-weight:600;opacity:0}
.pb-close::after{content:'×'}.pb-minimize::after{content:'−'}.pb-zoom::after{content:'+'}
.pb-window-controls:hover .pb-window-control::after,.pb-window-control:focus-visible::after{opacity:1}
.pb-content{min-width:0}
.pb-picture-wrap{min-width:0;padding:3px 3px 0;background:var(--pb-frame)}
.pb-stage{position:relative;display:block;aspect-ratio:3 / 2;width:100%;min-width:0;margin:0;padding:0;overflow:hidden;border:0;border-radius:3px;background:#111;color:var(--pb-text);box-shadow:none;line-height:0;cursor:zoom-in}
.pb-photo{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:100%;margin:0;object-fit:contain;object-position:center;user-select:none}
.pb-caption{margin:0;padding:7px 3px 4px;color:#e1e1e1;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.pb-error{position:absolute;bottom:8px;left:8px;right:8px;z-index:3;display:block;padding:7px 9px;border-radius:3px;background:#202020e8;color:#fff;font-size:12px;line-height:1.4;text-align:center}
.pb-filmstrip{display:flex;align-items:center;gap:7px;min-width:0;height:72px;padding:8px 10px;overflow-x:auto;overflow-y:hidden;background:linear-gradient(90deg,#ffffff02,#ffffff09 50%,#ffffff00),rgba(34,35,38,.72);box-shadow:none;backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);scrollbar-width:thin;scrollbar-color:#9babc270 transparent;overscroll-behavior-x:contain}
.pb-thumbnail{flex:0 0 76px;display:flex;align-items:center;justify-content:center;width:76px;height:51px;margin:0;padding:0;border:1px solid transparent;border-radius:4px;background:#181818;box-shadow:none;cursor:pointer;transition:transform 180ms ease,box-shadow 180ms ease}
.pb-thumbnail img{display:block;width:100%;height:100%;max-width:100%;object-fit:contain;border-radius:1px;user-select:none}
.pb-thumbnail[aria-current=true]{outline:1px solid var(--pb-blue);outline-offset:0;box-shadow:none}
.pb-thumbnail:hover{transform:translateY(-1px)}
.pb-toolbar{display:grid;grid-template-columns:minmax(42px,1fr) auto minmax(65px,1fr);align-items:center;gap:8px;min-height:47px;padding:6px 10px;border-top:1px solid #ffffff0c;border-bottom:0;background:linear-gradient(180deg,#ffffff0a,#ffffff00),var(--pb-toolbar);box-shadow:none;backdrop-filter:blur(18px) saturate(1.18);-webkit-backdrop-filter:blur(18px) saturate(1.18);color:#f2f5fa}
.pb-counter{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;color:#dedede}
.pb-navigation,.pb-actions{display:flex;align-items:center;gap:5px}
.pb-actions{justify-self:end}
.pb-tool{display:flex;align-items:center;justify-content:center;flex:0 0 29px;width:29px;height:28px;margin:0;padding:4px;border:1px solid transparent;border-radius:7px;background:linear-gradient(180deg,#ffffff08,#ffffff00),rgba(77,79,84,.36);color:#fff;box-shadow:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);text-decoration:none;cursor:pointer;transition:background-color 160ms ease,transform 160ms ease}
.pb-tool:hover{background-color:#ffffff16;transform:translateY(-1px)}.pb-tool:active{background-color:#0000001c;transform:translateY(0);box-shadow:inset 0 1px 2px #0003}
.pb-tool:disabled{opacity:.35;cursor:default}
.pb-icon{display:block;flex:0 0 18px;width:18px;height:18px;line-height:0}
.pb-icon svg{display:block;width:100%;height:100%}
.pb-launcher,.pb-restore{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:57px;padding:12px 15px;border:1px solid #ffffff18;border-radius:12px;background:linear-gradient(140deg,#ffffff08,#ffffff00),rgba(37,38,41,.84);box-shadow:none;backdrop-filter:blur(18px) saturate(1.18);-webkit-backdrop-filter:blur(18px) saturate(1.18);color:#f4f6fa;font:500 12px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer}
.pb-launcher{box-shadow:0 8px 17px -9px #0008}
.pb-launcher:hover,.pb-restore:hover{background-color:#36373b}
.pb-restore{position:relative;border:0;border-top:1px solid #ffffff14;border-radius:0}
.pb-dismiss{position:absolute;right:10px;top:0;height:32px;padding:0 2px;border:0;background:transparent;color:#dedede;font:400 11px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer}
.pb-dismiss:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.pb-empty{padding:30px 16px;color:#e5e5e5;font-size:13px;text-align:center}
.pb-gallery :focus-visible,.pb-dialog :focus-visible{outline:2px solid #9cc6ff;outline-offset:3px}
.pb-gallery .pb-stage:focus-visible,.pb-dialog .pb-stage:focus-visible{outline-offset:-3px}
.pb-window:focus-visible{outline-offset:4px}
.pb-dialog{position:fixed;inset:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);width:min(1080px,calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px) - 32px));height:min(860px,calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 40px));height:min(860px,calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 40px));max-width:calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px) - 32px);max-height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 40px);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 40px);margin:auto;padding:0;border:0;border-radius:14px;overflow:hidden;background:transparent;box-shadow:0 24px 90px #0009;overscroll-behavior:contain;transform-origin:50% 50%}
.pb-dialog::backdrop{background:#090d165e;backdrop-filter:blur(7px) saturate(.85);-webkit-backdrop-filter:blur(7px) saturate(.85)}
.pb-dialog .pb-window{display:flex;flex-direction:column;height:100%;max-height:100%;box-shadow:none}
.pb-dialog .pb-content{display:flex;flex:1;flex-direction:column;min-height:0}
.pb-dialog .pb-picture-wrap{display:flex;flex:1;flex-direction:column;min-height:0;padding:3px 3px 0}
.pb-dialog .pb-stage{flex:1;aspect-ratio:auto;min-height:0;cursor:default}
.pb-dialog .pb-caption{flex:0 0 auto;max-height:4em;overflow-y:auto}
.pb-dialog .pb-filmstrip{flex:0 0 84px;height:84px;padding:10px 12px;gap:8px}
.pb-dialog .pb-thumbnail{flex-basis:88px;width:88px;height:59px}
.pb-dialog .pb-toolbar{flex:0 0 48px;padding-right:12px;padding-left:12px}
.pb-gallery [hidden],.pb-dialog [hidden]{display:none!important}
@media(max-width:420px){
  .pb-titlebar{padding-right:76px;padding-left:76px}
  .pb-picture-wrap{padding:3px 3px 0}
  .pb-filmstrip{height:66px;padding:7px 8px}
  .pb-toolbar{gap:5px;padding-right:8px;padding-left:8px}
  .pb-dialog{width:calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px) - 16px);max-width:calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px) - 16px);height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);max-height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px)}
  .pb-dialog .pb-picture-wrap{padding:3px 3px 0}
  .pb-dialog .pb-filmstrip{flex-basis:72px;height:72px;padding:7px 9px}
  .pb-dialog .pb-thumbnail{flex-basis:76px;width:76px;height:51px}
}
@media(max-height:420px){
  .pb-dialog{height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 16px);height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 16px);max-height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 16px);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 16px)}
  .pb-dialog .pb-picture-wrap{padding:3px 3px 0}
  .pb-dialog .pb-filmstrip{flex-basis:58px;height:58px;padding:6px 9px}
  .pb-dialog .pb-thumbnail{flex-basis:63px;width:63px;height:42px}
  .pb-dialog .pb-toolbar{flex-basis:40px;min-height:40px;padding-top:4px;padding-bottom:4px}
}
@media(prefers-reduced-motion:reduce){.pb-gallery *,.pb-dialog *{transition:none!important;animation:none!important}.pb-thumbnail:hover,.pb-tool:hover,.pb-tool:active{transform:none}.pb-dialog::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}}
