/* Personal portfolio: photographic ABS cartridges and the Card Swap shelf. */
body.cv08 #personal-projects{background:none;border:0;box-shadow:none;border-radius:0;padding:0}
body.cv08 #personal-projects:before{display:none}
body.cv08 #personal-projects.gallery{display:grid;grid-template-columns:minmax(220px,.82fr) minmax(0,1.18fr);gap:32px;align-items:center;min-height:650px;isolation:isolate}
.cartridge-browser{position:relative;z-index:20;align-self:center;padding:0 4px 0 0;min-width:0}
.cartridge-summary{min-height:134px;margin-bottom:22px}
.cartridge-summary h3{font:850 clamp(25px,2vw,38px)/1.25 MiSans,sans-serif;color:#d7d8d2;letter-spacing:-.025em;margin:0 0 10px}
.cartridge-category{font-size:13px;color:#a8ac9c;margin:0 0 12px}
.cartridge-description{font-size:14px;line-height:1.85;color:#949794;max-width:350px;min-height:3.7em;text-wrap:pretty}
.cartridge-index{display:grid;gap:0;max-width:345px;border-top:1px solid #ffffff0c}
.cartridge-index button{display:flex;align-items:center;gap:13px;width:100%;padding:11px 8px 11px 2px;border-bottom:1px solid #ffffff0b;text-align:left;color:#8e9290;font:650 16px/1.25 MiSans,sans-serif;transition:color 180ms ease;scale:1}
.cartridge-index button i{width:5px;height:5px;flex:0 0 auto;border-radius:1px;background:#5a5d58;transition:background 180ms,box-shadow 180ms}
.cartridge-index button svg{width:17px;height:17px;margin-left:auto;opacity:0;transition:opacity 180ms}
.cartridge-index button[aria-pressed=true]{color:#e0e6d7}
.cartridge-index button[aria-pressed=true] i{background:#d6f75c;box-shadow:0 0 9px #d6f75c45}
.cartridge-index button[aria-pressed=true] svg{opacity:.85;color:#bfd65d}
.cartridge-index button:hover{color:#f0f2eb}
.cartridge-index button:focus-visible{outline:2px solid #c2d579;outline-offset:3px;border-radius:3px}
.cartridge-controls{display:flex;align-items:center;gap:14px;margin-top:24px;color:#a9afa6}
.cartridge-controls button{display:grid;place-items:center;width:36px;height:36px;border:1px solid #555a53;border-radius:50%;background:linear-gradient(#363934,#232522);box-shadow:inset 0 1px #ffffff13,0 2px 3px #0005;color:#bfc6b8}
.cartridge-controls button:hover{color:#e2f69b;border-color:#97a573}
.cartridge-controls svg{width:16px;height:16px}
.cartridge-counter{font-size:12px;font-weight:600;min-width:46px;text-align:center;font-variant-numeric:tabular-nums}
.cartridge-controls .cartridge-pause{margin-left:12px;border:0;background:none;box-shadow:none;color:#888f82}
.cartridge-controls .cartridge-pause[aria-pressed=true]{color:#d6f75c}
.cartridge-stage{position:relative;min-width:0;height:650px;overflow:hidden;isolation:isolate}
.cartridge-scene{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;filter:drop-shadow(8px 15px 10px #0008)}
body.cv08 #personal-projects.gallery .has-3d .project-track{z-index:2}
body.cv08 #personal-projects.gallery .has-3d .project{filter:none}
#personal-projects.gallery .has-3d .cartridge{opacity:0}
#personal-projects.list .cartridge-scene{display:none}
body.cv08 #personal-projects.gallery .project-track{position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;padding:0;overflow:visible;perspective:1200px;perspective-origin:50% 50%;isolation:isolate}
body.cv08 #personal-projects.gallery .project{position:absolute;top:58%;left:38%;display:block;width:clamp(244px,18vw,345px);max-width:none;height:auto;margin:0;padding:0;transform-origin:center;transform-style:preserve-3d;transition:opacity 350ms;backface-visibility:hidden;filter:drop-shadow(1px 2px 1px #000b) drop-shadow(8px 18px 9px #0008);border:0;border-radius:0;background:none;box-shadow:none;will-change:transform;overflow:visible}
body.cv08 #personal-projects.gallery .project:last-child:nth-child(3n + 1){grid-column:auto}
body.cv08 #personal-projects.gallery .project-info,body.cv08 #personal-projects.gallery .project-elements,body.cv08 #personal-projects.gallery .project-description,body.cv08 #personal-projects.gallery .project-arrow{display:none}
body.cv08 #personal-projects .cartridge-space{position:relative;display:block;width:100%;padding:0;perspective:none}
.cartridge{position:relative;display:block;aspect-ratio:904/1173;width:100%;isolation:isolate;transform:translateZ(0)}
.cartridge-shell{position:absolute;left:-13.6%;top:-8.2%;width:127.1%!important;max-width:none!important;height:116.6%!important;pointer-events:none;z-index:1}
.cartridge-label{position:absolute;left:10.3%;top:14%;width:80.2%;height:71.8%;overflow:hidden;border-radius:4.3%/3.3%;background:#121618;box-shadow:inset 0 0 2px #0008,0 1px 1px #ffffff16;isolation:isolate;display:block;z-index:2}
.cartridge-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.cartridge-label:before{display:none}
.cartridge-label:after{content:'';position:absolute;inset:0;z-index:5;pointer-events:none;background:linear-gradient(117deg,#fff1,transparent 28%,#0001);mix-blend-mode:soft-light;opacity:.16}
.cartridge-front:hover .cartridge-label{box-shadow:inset 0 0 2px #0008,0 1px 1px #ffffff16}
.cartridge-front:hover .cartridge-label:after{background:radial-gradient(ellipse at var(--shine-x,50%) var(--shine-y,30%),#ffffff40,transparent 65%);opacity:.16}
.cartridge-open-hint{position:absolute;left:0;right:0;bottom:5px;text-align:center;font-size:12px;color:#858a83;pointer-events:none;z-index:20}
body.cv08 #personal-projects.gallery .project:focus-visible{outline:2px solid #d0e58e;outline-offset:8px;border-radius:15px}
body.cv08 #personal-projects.list{display:block}
#personal-projects.list .cartridge-browser,#personal-projects.list .cartridge-open-hint{display:none}
#personal-projects.list .cartridge-stage{height:auto;overflow:visible;isolation:auto}
body.cv08 #personal-projects.list .project-track{position:relative;height:auto;perspective:none}
body.cv08 #personal-projects.list .project{transform:none!important;opacity:1!important;filter:none;will-change:auto}
body.cv08 #personal-projects.list .case-space{width:72px;transform:rotate(-3deg)}
@media(prefers-reduced-motion:reduce){#personal-projects .project,.cartridge-index button{transition:none!important;will-change:auto!important}}
