/* Perspective, tilt and cube layers. */
.experience-ledger article.depth-card,.education-list article.depth-card,.box-info-contact.depth-card,.review-card.depth-card{position:relative;transform-style:preserve-3d;transform:perspective(1400px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:box-shadow .3s;background:var(--bg)}
.experience-ledger article.depth-card{padding-inline:20px;border-radius:6px}
.experience-ledger .ledger-symbol{transform:translateZ(35px);text-shadow:0 12px 18px #0002}
.education-list article.depth-card{padding:24px;border:1px solid var(--line);border-radius:5px}
.box-info-contact.depth-card{padding:30px;border:1px solid var(--line);border-radius:10px 2px 10px 2px;background:linear-gradient(135deg,var(--surface),var(--bg))}
.box-info-contact.depth-card h3{transform:translateZ(22px)}
.box-info-contact.depth-card:before{content:"↗";float:right;color:var(--accent);font-size:45px;line-height:1;transform:translateZ(35px)}
.review-card.depth-card .stars{display:inline-block;transform:translateZ(22px)}
.skull-trigger{display:inline-grid;place-items:center;vertical-align:middle;width:30px;height:32px;margin-left:12px;padding:3px;border:0;background:transparent;color:var(--accent);border-radius:50%;cursor:help;transform:rotate(-8deg);transition:transform .3s}
.skull-trigger:hover,.skull-trigger:focus-visible{transform:rotate(9deg) scale(1.12)}
.skull-trigger svg,.skull-bubble svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.skull-bubble{position:fixed;z-index:100;display:flex;gap:14px;align-items:center;width:260px;max-width:calc(100vw - 24px);padding:18px;background:var(--raised);color:var(--text);border:1px solid var(--accent);border-radius:18px 18px 18px 3px;box-shadow:0 16px 38px #0003;pointer-events:none;animation:aside-pop .25s ease-out}
.skull-bubble svg{width:52px;height:52px;flex-shrink:0;color:var(--accent);stroke-dasharray:180;stroke-dashoffset:180;animation:skull-draw .65s ease forwards}
.skull-bubble span{font:13px/1.5 var(--mono);letter-spacing:-.03em}
@keyframes aside-pop{from{opacity:0;transform:translateY(8px) rotate(-3deg) scale(.92)}to{opacity:1;transform:none}}
@keyframes skull-draw{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.skull-bubble,.skull-bubble svg{animation:none;stroke-dashoffset:0}.skull-trigger{transition:none}}
.hero{perspective:1600px}
.systems-console.depth-card{overflow:visible;transform-style:preserve-3d;transform:perspective(1300px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:box-shadow .35s}
.systems-console .console-top{border-radius:8px 8px 0 0;background:var(--surface)}
.systems-console .console-tabs,.systems-console .console-detail{background:var(--surface)}
.systems-console .console-detail{border-radius:0 0 8px 8px}
.systems-console .console-top{transform:translateZ(14px)}
.systems-console .system-tag{transform:translateZ(45px);box-shadow:0 10px 24px #0002}
.system-art{transform-style:preserve-3d}
.system-art .core{opacity:0}
.depth-scene{position:absolute;inset:0;display:grid;place-items:center;perspective:800px;pointer-events:none;transform:translateZ(40px)}
.engine-cube{--edge:104px;position:relative;width:var(--edge);height:var(--edge);transform-style:preserve-3d;animation:engine-turn 24s linear infinite}
.cube-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;border:1px solid var(--accent);background:var(--surface);color:var(--accent);box-shadow:inset 0 0 22px var(--accent-soft);font:36px/1 var(--mono);backface-visibility:hidden}
.cube-face:before{content:"";position:absolute;inset:7px;border:1px solid var(--line)}
.cube-face small{font:8px var(--mono);letter-spacing:.15em}
.cube-front{transform:translateZ(52px)}.cube-back{transform:rotateY(180deg) translateZ(52px)}.cube-right{transform:rotateY(90deg) translateZ(52px)}.cube-left{transform:rotateY(-90deg) translateZ(52px)}.cube-top{transform:rotateX(90deg) translateZ(52px)}.cube-bottom{transform:rotateX(-90deg) translateZ(52px)}
@keyframes engine-turn{from{transform:rotateX(-16deg) rotateY(-25deg)}to{transform:rotateX(-16deg) rotateY(335deg)}}
.project-image.depth-card,.credential-art.depth-card,.portrait-panel.depth-card{transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:box-shadow .3s;isolation:isolate}
.depth-card:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--shine-x,50%) var(--shine-y,40%),var(--depth-glow),transparent 62%);opacity:var(--shine-opacity,0);transition:opacity .4s;z-index:4}
:root{--depth-glow:#ffffff15}html[data-theme=light]{--depth-glow:#ffffff80}
.depth-card.depth-active{box-shadow:0 22px 45px #0003}
.project-image.depth-card{margin:8px 6px 12px}
.credential-art.depth-card{margin:8px 6px 20px}
.carousel-track{padding-top:8px;padding-bottom:12px}
.portrait-caption,.portrait-stamp{transform:translateZ(24px)}
.portrait-stamp{transform:translateZ(40px) rotate(8deg)}
.systems-console.depth-active .orbital-particle{animation-duration:12s}
.depth-paused .engine-cube,.depth-paused .orbital-particle{animation-play-state:paused}
@media(hover:none),(pointer:coarse){.depth-card{--tilt-x:0deg!important;--tilt-y:0deg!important}.engine-cube{animation-duration:36s}.systems-console.depth-card{transform:none}}
@media(prefers-reduced-motion:reduce){.engine-cube{animation:none;transform:rotateX(-16deg) rotateY(-25deg)}.depth-card{transform:none!important}.depth-card:after{display:none}.systems-console .console-top,.systems-console .system-tag,.depth-scene{transform:none}}
