/* =========================================================
   Projeto ampliado e Sobre mim
   ========================================================= */
.explore,.about{position:fixed;inset:0;z-index:50}
.explore[hidden],.about[hidden]{display:none}
.ex-backdrop{
  position:absolute;inset:0;background:rgb(8 44 170 / .72);
  backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px) saturate(1.1);
  opacity:0;transition:opacity var(--t-med) var(--ease-out);
}
.is-open .ex-backdrop{opacity:1}

.ex-frame{
  position:absolute;inset:18px 22px 22px;display:flex;flex-direction:column;
  border-radius:16px;overflow:hidden;background:var(--cream);color:var(--ink);
  box-shadow:0 0 0 3px var(--orange),0 40px 120px -20px rgb(2 10 50 / .7);
  transform-origin:0 0;
}
.ex-frame.is-animating{transition:transform .58s var(--ease-out),border-radius .58s var(--ease-out),opacity .3s}
.ex-bar{
  flex:none;height:58px;display:flex;align-items:center;gap:10px;padding:0 10px 0 12px;
  background:var(--cream);border-bottom:1px solid rgb(13 21 48 / .1);
}
.ex-bar .dots{margin:0 4px 0 6px}
.ex-back{
  display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px 0 10px;border-radius:999px;
  background:var(--ink);color:var(--cream);font-weight:600;font-size:15px;white-space:nowrap;
  transition:transform var(--t-fast) var(--ease-out),background-color var(--t-fast);
}
.ex-back:hover{background:var(--cobalt)}
.ex-back:active{transform:scale(.96)}
.ex-address{
  flex:1;min-width:0;height:34px;display:flex;align-items:center;gap:8px;padding:0 14px;border-radius:9px;
  background:var(--cream-2);font-family:var(--mono);font-size:13px;color:var(--ink-soft);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ex-address b{color:var(--ink);font-weight:600}
.seg{display:flex;padding:3px;border-radius:999px;background:var(--cream-2);flex:none}
.seg button{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:999px;font-size:14px;font-weight:600;color:var(--ink-soft);transition:background-color var(--t-fast),color var(--t-fast)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--cream)}
.seg button:not([aria-pressed="true"]):hover{color:var(--ink)}
.ex-info-toggle{height:40px;padding:0 14px;border-radius:999px;font-weight:600;font-size:14px;border:1.5px solid rgb(13 21 48 / .2);white-space:nowrap}
.ex-info-toggle[aria-expanded="true"]{background:var(--yellow);border-color:transparent}
.ex-visit{height:40px;padding:0 16px;font-size:15px;box-shadow:none;background:var(--orange)}
.ex-visit:hover{background:#ff8d58}
.ex-visit[hidden]{display:none}
.ex-close{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none;transition:background-color var(--t-fast)}
.ex-close:hover{background:var(--cream-2)}
.ex-close .ic{width:16px;height:16px}

.ex-body{flex:1;min-height:0;display:grid;grid-template-columns:1fr 0;transition:grid-template-columns .45s var(--ease-out)}
.ex-body.info-open{grid-template-columns:1fr minmax(320px,380px)}
.ex-stage{position:relative;min-width:0;overflow:hidden;background:var(--stage-bg,#111)}
.ex-stage::before{ /* textura sutil para o fundo do modo celular */
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle at 1px 1px,rgb(127 127 127 / .18) 1px,transparent 1.5px);background-size:22px 22px;
}

.device{position:absolute;left:0;top:0;transform-origin:0 0;background:var(--stage-bg,#111)}
.device iframe{display:block;width:100%;height:100%;border:0;background:var(--stage-bg,#111)}
.device-mobile{border-radius:44px;padding:12px;background:#0c0c0e;box-shadow:0 0 0 2px #2a2a30,0 30px 70px -20px rgb(0 0 0 / .6)}
.device-mobile iframe{border-radius:32px}
.device-mobile::before{content:"";position:absolute;top:3px;left:50%;width:46px;height:6px;margin-left:-23px;border-radius:99px;background:#26262c;z-index:2}

.ex-loading{
  position:absolute;inset:0;z-index:3;display:grid;place-items:center;
  transition:opacity .5s var(--ease-out);
}
.ex-loading img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;filter:saturate(.9)}
.ex-loading.is-done{opacity:0;pointer-events:none}
.ex-loading-chip{
  position:relative;display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:999px;
  background:var(--cream);color:var(--ink);font-weight:600;box-shadow:var(--shadow-ui)
}
.spinner{width:16px;height:16px;border-radius:50%;border:2.5px solid rgb(13 21 48 / .2);border-top-color:var(--orange);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ex-fallback{position:relative;max-width:420px;margin:16px;padding:22px;border-radius:16px;background:var(--cream);color:var(--ink);box-shadow:var(--shadow-ui);text-align:left}
.ex-fallback p{margin:0 0 14px}

.ex-info{min-width:0;overflow:auto;background:var(--cream);border-left:1px solid rgb(13 21 48 / .1);overscroll-behavior:contain}
.ex-info-in{padding:26px 26px 40px;width:min(380px,100%)}
.ex-kicker{margin:0 0 6px;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.ex-title{margin:0 0 12px;font-size:40px;line-height:.95;letter-spacing:-.045em;font-weight:900;color:var(--cobalt)}
.ex-summary{margin:0 0 18px;font-size:16.5px;line-height:1.5}
.ex-role{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px}
.chip{display:inline-flex;align-items:center;height:28px;padding:0 11px;border-radius:999px;background:var(--cream-2);font-size:13px;font-weight:600}
.chip-ink{background:var(--ink);color:var(--cream)}
.howto-btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;height:52px;padding:0 18px;border-radius:14px;
  background:var(--ink);color:var(--cream);font-weight:700;font-size:16px;transition:background-color var(--t-fast)
}
.howto-btn:hover{background:var(--cobalt)}
.howto-btn .plus{width:22px;height:22px;border-radius:50%;background:var(--orange);color:var(--ink);display:grid;place-items:center;transition:transform var(--t-med) var(--ease-out)}
.howto-btn[aria-expanded="true"] .plus{transform:rotate(45deg)}
.howto{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease-out)}
.howto.is-open{grid-template-rows:1fr}
.howto>div{overflow:hidden}
.howto h3{margin:22px 0 6px;font-size:13px;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}
.howto p{margin:0}
.howto ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.howto li{position:relative;padding-left:20px;line-height:1.45}
.howto li::before{content:"";position:absolute;left:2px;top:.55em;width:8px;height:8px;border-radius:2px;background:var(--orange);transform:rotate(45deg)}
.stack{display:flex;flex-wrap:wrap;gap:6px}
.ex-note{margin-top:20px!important;padding:12px 14px;border-radius:12px;background:var(--yellow);font-size:14px}
.ex-open-tab{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-weight:600;font-size:15px;color:var(--cobalt);text-decoration:underline;text-underline-offset:3px}

/* ---------- Sobre mim ---------- */
.about{display:grid;place-items:center;padding:20px}
.about-win{
  position:relative;width:min(960px,100%);max-height:calc(100dvh - 40px);display:flex;flex-direction:column;
  border-radius:18px;overflow:hidden;background:var(--cream);color:var(--ink);
  box-shadow:0 0 0 3px var(--orange),0 40px 120px -20px rgb(2 10 50 / .7);
  opacity:0;transform:translateY(24px) scale(.97);transition:opacity .4s var(--ease-out),transform .55s var(--ease-out);
}
.about.is-open .about-win{opacity:1;transform:none}
.about-bar{flex:none;height:52px;display:flex;align-items:center;gap:12px;padding:0 10px 0 16px;border-bottom:1px solid rgb(13 21 48 / .1)}
.about-body{overflow:auto;padding:clamp(22px,4vw,48px)}
.about-kicker{margin:0 0 10px;font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#b13c0b;font-weight:600}
.about-title{margin:0 0 28px;font-size:clamp(38px,6.4vw,76px);line-height:.9;letter-spacing:-.055em;font-weight:900;color:var(--cobalt)}
.about-cols{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(20px,4vw,48px);align-items:start}
.about-text p{margin:0 0 14px;font-size:17.5px;line-height:1.55}
.about-text strong{font-weight:700}
.about-facts{margin:0;display:grid;gap:0;border-top:2px solid var(--ink)}
.about-facts div{padding:14px 0;border-bottom:1px solid rgb(13 21 48 / .16)}
.about-facts dt{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:4px}
.about-facts dd{margin:0;font-weight:600;font-size:16px}
.about-ig{margin-top:22px;height:52px;font-size:17px}
.about-legal{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:22px 0 0;padding-top:16px;border-top:1px solid rgb(13 21 48 / .14);font-size:14px;color:var(--ink-soft)}
.about-legal a,.about-legal button{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:rgb(13 21 48 / .3);text-underline-offset:3px;border-radius:4px}
.about-legal a:hover,.about-legal button:hover{text-decoration-color:var(--orange)}

/* ---------- telas pequenas ---------- */
@media (max-width:1100px){
  .ex-bar .dots{display:none}
  .ex-bar .seg button span{display:none}
  .ex-back .long{display:none}
}
.app-mobile .ex-frame,
.explore.is-mobile .ex-frame{inset:0;border-radius:0;box-shadow:none}
.explore.is-mobile .ex-bar{height:60px;gap:8px;padding:0 10px;padding-top:env(safe-area-inset-top)}
.explore.is-mobile .ex-address,.explore.is-mobile .dots,.explore.is-mobile .ex-close{display:none}
.explore.is-mobile .ex-back span{display:inline}
.explore.is-mobile .seg{margin-left:auto}
.explore.is-mobile .seg button{padding:0 10px}
.explore.is-mobile .seg button span{display:none}
.explore.is-mobile .ex-visit{padding:0 12px;font-size:14px}
.explore.is-mobile .ex-visit-txt{display:none}
.explore.is-mobile .ex-back .long{display:none}
.explore.is-mobile .ex-info-toggle{display:inline-flex;align-items:center;height:40px;padding:0 12px;font-size:13.5px}
.explore.is-mobile .ex-body,.explore.is-mobile .ex-body.info-open{grid-template-columns:1fr;position:relative}
.explore.is-mobile .ex-info{
  position:absolute;left:0;right:0;bottom:0;max-height:78%;z-index:7;border-left:0;border-radius:20px 20px 0 0;
  box-shadow:0 -20px 50px -10px rgb(2 10 50 / .45);transform:translateY(102%);transition:transform .45s var(--ease-out);visibility:hidden;
}
.explore.is-mobile .ex-body.info-open .ex-info{transform:none;visibility:visible}
.ex-sheet-close{display:none}
.explore.is-mobile .ex-sheet-close{display:flex;margin:0 0 14px auto;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:999px;background:var(--cream-2);font-weight:600;font-size:14px}
.explore.is-mobile .ex-info-in{width:100%;padding:18px 20px 40px}
@media (max-width:767px){
  .about{padding:0}
  .about-win{max-height:100dvh;height:100dvh;border-radius:0;box-shadow:none}
  .about-cols{grid-template-columns:1fr}
}
