﻿/* A floating guide only: this stylesheet never changes the portfolio layout. */
.portfolio-guide {
  --guide-size: 88px;
  --guide-height: 124px;
  position: fixed;
  z-index: 90;
  left: 0;
  top: 0;
  width: var(--guide-size);
  height: var(--guide-height);
  pointer-events: none;
  font-family: var(--sans);
  visibility: hidden;
  will-change: transform, opacity;
}
.portfolio-guide.is-positioned { visibility: visible; }
.guide-bubble {
  position: absolute;
  left: var(--bubble-left, 0px);
  bottom: calc(100% + 12px);
  width: 162px;
  padding: 11px 12px 12px;
  border: 1px solid #fff;
  border-radius: 18px 18px 16px 18px;
  background: #f3f3f0;
  color: #181818;
  box-shadow: 0 6px 24px #0003, inset 0 -2px 0 #00000009;
  pointer-events: auto;
  transform-origin: var(--thought-x, 50%) bottom;
  animation: thought-arrives .18s ease;
}
.guide-bubble::after {
  content: '';
  position: absolute;
  left: calc(var(--thought-x, 50%) - 4px);
  bottom: -8px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f3f3f0;
  box-shadow: 3px 8px 0 -2px #f3f3f0;
  pointer-events: none;
}
.guide-label {
  display: block;
  margin-bottom: 5px;
  padding-right: 14px;
  font-size: 10px;
  font-weight: 600;
  color: #62625d;
  line-height: 1.3;
}
.guide-label::before { content: ''; display: inline-block; width: 4px; height: 4px; margin: 0 5px 1px 0; border-radius: 50%; background: #7f8fd6; }
.guide-label:empty { display: none; }
.guide-text { margin: 0; font-size: 12px; font-weight: 500; line-height: 1.45; }
.guide-dismiss {
  position: absolute;
  right: 4px;
  top: 4px;
  width: 26px;
  height: 26px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #72726c;
  font: 17px/1 var(--sans);
  cursor: pointer;
}
.guide-dismiss:hover { color: #111; background: #00000008; }
.guide-mascot {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  pointer-events: auto;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
  transform-origin: 50% 90%;
}
.guide-mascot::before { content: ''; position: absolute; bottom: 2px; left: 27%; width: 46%; height: 5px; background: #0003; border-radius: 50%; filter: blur(3px); }
.guide-frame { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; opacity: 0; filter: drop-shadow(0 3px 5px #0004); transition: opacity .34s cubic-bezier(.22, .61, .36, 1); }
.portfolio-guide[data-mood='wave'] [data-pose='wave'],
.portfolio-guide[data-mood='thinker'] [data-pose='thinker'],
.portfolio-guide[data-mood='presenter'] [data-pose='presenter'],
.portfolio-guide[data-mood='celebrate'] [data-pose='celebrate'],
.portfolio-guide[data-mood='builder'] [data-pose='builder'],
.portfolio-guide[data-mood='proud'] [data-pose='proud'] { opacity: 1; }
.guide-mascot:hover { filter: brightness(1.03); }
.guide-mascot:focus-visible, .guide-restore:focus-visible { outline: 2px solid var(--white); outline-offset: 3px; border-radius: 10px; }
.guide-dismiss:focus-visible { outline: 2px solid #303030; outline-offset: 1px; }
.guide-restore { position: absolute; bottom: 0; right: 0; white-space: nowrap; padding: 8px 12px; border: 1px solid #41413e; border-radius: 999px; background: var(--panel); color: var(--soft); font: 11px/1.4 var(--sans); pointer-events: auto; cursor: pointer; }
.portfolio-guide.on-left .guide-restore { right: auto; left: 0; }
.portfolio-guide [hidden] { display: none !important; }
.portfolio-guide.is-hidden .guide-mascot, .portfolio-guide.is-hidden .guide-bubble { display: none; }
.portfolio-guide.is-hidden .guide-restore { display: block; }
.portfolio-guide.is-switching .guide-mascot, .portfolio-guide.is-switching .guide-bubble, .portfolio-guide.is-switching .guide-restore { pointer-events: none; }
@keyframes thought-arrives { from { opacity: 0; } to { opacity: 1; } }
.intro-brand { display: inline-flex; align-items: center; gap: 10px; }
.intro-brand img { width: 28px; height: 40px; object-fit: contain; }
.signature-empty { width: 64px; height: 90px; object-fit: contain; margin-bottom: 24px; }
.case-unavailable .case-btn { margin-top: 24px; }
.case-foot[hidden] { display: none !important; }
.case-icon:disabled { opacity: .3; cursor: default; }
.portfolio-guide.is-unavailable, .portfolio-guide.is-gaming, .portfolio-guide.is-at-arcade { visibility: hidden; }
@media (max-width: 1100px) {
  .portfolio-guide { --guide-size: 76px; --guide-height: 108px; }
}
@media (max-width: 767px) {
  .portfolio-guide { --guide-size: 48px; --guide-height: 68px; }
  .guide-bubble { width: 142px; padding: 10px 11px; bottom: calc(100% + 10px); }
  .guide-text { font-size: 11px; }
  .guide-label { font-size: 9px; margin-bottom: 4px; }
  .portfolio-guide.is-scrolling .guide-mascot { pointer-events: none; }
}
@media (prefers-reduced-motion: reduce) {
  .guide-frame { transition: none; }
  .guide-bubble { animation: none; }
}
