/* Shared Guide styles are deliberately scoped; they never change the page shell. */
.imidjeologia-companion {
  --ig-ink:#1b211d; --ig-muted:#626b60; --ig-surface:#faf9f1; --ig-line:#1b211d28; --ig-lime:#d5ff65;
  position:relative; z-index:100; margin:0; padding:0; border:0; width:0; height:0;
  color:var(--ig-ink); font:400 14px/1.5 -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  text-align:left; font-synthesis:none;
}
.imidjeologia-companion *, .imidjeologia-companion *::before, .imidjeologia-companion *::after { box-sizing:border-box; }
.imidjeologia-companion [hidden] { display:none!important; }
.imidjeologia-companion :where(button,input) { font:inherit; color:inherit; }
.imidjeologia-companion button { cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; margin:0; }
.imidjeologia-companion button:disabled { cursor:default; }
.imidjeologia-companion :where(button,input,a):focus-visible { outline:2px solid var(--ig-ink); outline-offset:4px; }
.imidjeologia-companion a { color:inherit; text-decoration:none; }
.imidjeologia-companion :where(p,h2) { margin:0; }
.imidjeologia-companion .ig-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.imidjeologia-companion .ig-skip { position:fixed; left:12px; top:8px; padding:12px; border-radius:4px; background:var(--ig-ink); color:var(--ig-surface); font-size:13px; transform:translateY(-150%); }
.imidjeologia-companion .ig-skip:focus { transform:none; }
.imidjeologia-companion .ig-eyebrow { display:block; color:var(--ig-muted); font-size:10px; line-height:1.5; letter-spacing:.12em; text-transform:uppercase; }
.imidjeologia-companion .ig-rest { --ig-edge-y:0px; position:fixed; right:20px; bottom:max(18px,env(safe-area-inset-bottom)); display:flex; align-items:end; transform:translateY(var(--ig-edge-y)); transition:transform 1.15s cubic-bezier(.25,.7,.3,1); }
.imidjeologia-companion .ig-rest[data-dock=raised] { --ig-edge-y:-56px; }
.imidjeologia-companion .ig-open { width:78px; min-height:108px; display:flex; flex-direction:column; align-items:center; gap:2px; border:0; padding:0; background:none; filter:drop-shadow(0 3px 5px #1b211d10); }
.imidjeologia-companion .ig-figure { position:relative; display:block; width:76px; height:88px; transform-origin:50% 90%; }
.imidjeologia-companion [data-ig-image] { display:block; width:100%; height:100%; object-fit:contain; transform-origin:47% 86%; rotate:-12deg; }
.imidjeologia-companion .ig-seed { position:absolute; display:block; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 30% 25%,#e8ff9a 0 17%,#d5ff65 42%,#a6cf32 100%); box-shadow:inset -1px -1px 1px #728c2829; transform:translate(-50%,-50%); pointer-events:none; opacity:0; }
.imidjeologia-companion .ig-seed.is-placed { opacity:1; }
.imidjeologia-companion .ig-name { display:inline-flex; align-items:center; justify-content:center; gap:6px; font-size:10px; line-height:1.3; color:var(--ig-muted); padding:5px 0; }
.imidjeologia-companion .ig-caption { position:absolute; right:88px; bottom:36px; white-space:nowrap; padding:10px 13px; border-radius:22px 22px 4px 22px; background:var(--ig-surface); border:1px solid var(--ig-line); font-size:11px; opacity:0; visibility:hidden; pointer-events:none; transform:translateX(5px); transition:opacity .2s,transform .2s,visibility .2s; }
.imidjeologia-companion .ig-rest:hover .ig-caption, .imidjeologia-companion .ig-rest:focus-within .ig-caption { opacity:1; visibility:visible; transform:none; }
.imidjeologia-companion.ig-menu-open .ig-caption { opacity:0; visibility:hidden; }
.imidjeologia-companion .ig-menu { position:fixed; right:22px; bottom:134px; width:292px; max-width:calc(100vw -22px); max-height:calc(100dvh -152px); overflow:auto; overscroll-behavior:contain; padding:17px; border:1px solid var(--ig-line); border-radius:20px; background:var(--ig-surface); box-shadow:0 14px 55px #1b211d1c; }
.imidjeologia-companion .ig-menu>header { display:flex; justify-content:space-between; align-items:start; gap:10px; }
.imidjeologia-companion .ig-menu h2 { margin:5px 0 0; font-size:19px; font-weight:500; line-height:1.2; letter-spacing:-.035em; }
.imidjeologia-companion .ig-close { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; flex:0 0 auto; border:1px solid var(--ig-line); border-radius:50%; background:transparent; font-size:23px; line-height:1; padding:0; }
.imidjeologia-companion .ig-close:hover { background:#1b211d08; }
.imidjeologia-companion .ig-context { margin:10px 0 14px; color:var(--ig-muted); font-size:10px; line-height:1.6; overflow-wrap:anywhere; }
.imidjeologia-companion .ig-quick { display:grid; gap:7px; }
.imidjeologia-companion .ig-quick>button { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; text-align:left; padding:11px 13px; border:1px solid var(--ig-line); border-radius:12px; background:transparent; font-size:12px; line-height:1.5; }
.imidjeologia-companion .ig-quick>button:first-child { background:#d5ff652c; }
.imidjeologia-companion .ig-quick>button:hover { background:#d5ff6545; }
.imidjeologia-companion .ig-menu>footer { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:9px; }
.imidjeologia-companion .ig-menu>footer button { min-height:44px; border:0; padding:7px 0; background:none; font-size:10px; line-height:1.5; color:var(--ig-muted); }
.imidjeologia-companion .ig-menu>footer button:last-child { color:var(--ig-ink); text-align:right; }
.imidjeologia-companion .ig-hint { color:var(--ig-muted); font-size:10px; line-height:1.6; }
.imidjeologia-companion .ig-return { position:fixed; right:19px; bottom:max(17px,env(safe-area-inset-bottom)); display:flex; align-items:center; gap:8px; min-height:44px; max-width:calc(100vw -22px); padding:9px 13px; border:1px solid var(--ig-line); border-radius:24px; background:var(--ig-surface); color:var(--ig-ink); box-shadow:0 3px 14px #1b211d0d; font-size:11px; line-height:1.5; }
.imidjeologia-companion .ig-return>span { width:6px; height:6px; flex:0 0 auto; border-radius:50%; background:var(--ig-lime); }
.imidjeologia-companion .ig-return:hover { background:#edf3df; }
.imidjeologia-companion .ig-panel { position:fixed; right:24px; bottom:max(12px,env(safe-area-inset-bottom)); width:404px; max-width:calc(100vw -20px); height:min(740px,calc(100dvh -24px)); min-height:0; display:flex; flex-direction:column; background:var(--ig-surface); border:1px solid var(--ig-line); border-radius:24px; box-shadow:0 24px 100px #1b211d2b; overflow:hidden; }
.imidjeologia-companion .ig-header { display:flex; align-items:center; gap:10px; padding:15px 14px 12px 10px; flex:0 0 auto; }
.imidjeologia-companion .ig-portrait { position:relative; width:62px; height:68px; flex:0 0 auto; }
.imidjeologia-companion .ig-heading { flex:1; min-width:0; }
.imidjeologia-companion .ig-heading h2 { font-size:20px; line-height:1.2; letter-spacing:-.04em; font-weight:500; margin:4px 0 5px; }
.imidjeologia-companion .ig-heading>p { font-size:10px; line-height:1.5; color:var(--ig-muted); }
.imidjeologia-companion .ig-collapse { align-self:start; max-width:94px; flex:0 0 auto; min-height:44px; border:1px solid var(--ig-line); padding:8px; border-radius:12px; background:transparent; font-size:10px; line-height:1.5; }
.imidjeologia-companion .ig-chat-context { margin:0; padding:0 20px 10px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; flex:0 0 auto; }
.imidjeologia-companion .ig-context-dot { width:5px; height:5px; border-radius:50%; background:#71964c; }
.imidjeologia-companion .ig-chat-context>span:nth-child(2) { flex:1; min-width:110px; }
.imidjeologia-companion .ig-chat-context button { border:0; min-height:44px; padding:4px 0; background:none; font-size:10px; line-height:1.5; }
.imidjeologia-companion .ig-log { min-height:30px; flex:1; overflow:auto; overscroll-behavior:contain; padding:5px 20px 10px; scrollbar-width:thin; display:flex; flex-direction:column; gap:18px; }
.imidjeologia-companion .ig-message { min-width:0; flex:0 0 auto; line-height:1.6; padding:0; margin:0; border:0; }
.imidjeologia-companion .ig-speaker { display:block; color:var(--ig-muted); font-size:10px; line-height:1.5; margin-bottom:6px; }
.imidjeologia-companion .ig-message>p { font-size:14px; line-height:1.6; white-space:pre-line; overflow-wrap:anywhere; }
.imidjeologia-companion .ig-message-user { align-self:flex-end; max-width:92%; background:var(--ig-ink); color:var(--ig-surface); padding:12px 15px; border-radius:16px 16px 3px 16px; }
.imidjeologia-companion .ig-message-user .ig-speaker { color:#d1d7cc; font-size:9px; }
.imidjeologia-companion .ig-message-user>p { font-size:13px; }
.imidjeologia-companion .ig-intro>p:first-child { font-size:21px; line-height:1.3; letter-spacing:-.025em; }
.imidjeologia-companion .ig-intro .ig-intro-note { margin-top:10px; font-size:12px; line-height:1.6; color:var(--ig-muted); }
.imidjeologia-companion .ig-source { position:relative; margin:12px 0 0; border:1px solid var(--ig-line); border-radius:13px; padding:13px; background:#f1f1e6; }
.imidjeologia-companion .ig-source-label { display:flex; gap:7px; align-items:center; color:var(--ig-muted); font-size:10px; line-height:1.5; }
.imidjeologia-companion .ig-source-dot { width:7px; height:7px; border-radius:50%; background:var(--ig-lime); flex:0 0 auto; }
.imidjeologia-companion .ig-source>a { display:flex; justify-content:space-between; align-items:center; gap:15px; min-height:44px; padding:7px 0 5px; font-size:16px; line-height:1.35; font-weight:500; letter-spacing:-.025em; }
.imidjeologia-companion .ig-source>p { color:var(--ig-muted); font-size:12px; line-height:1.65; overflow-wrap:anywhere; }
.imidjeologia-companion .ig-source.ig-located { border-color:#8eaa54; box-shadow:inset 3px 0 0 var(--ig-lime); }
.imidjeologia-companion .ig-answer-links { display:flex; flex-wrap:wrap; gap:0 14px; margin-top:8px; }
.imidjeologia-companion .ig-answer-links a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:4px; font-size:11px; padding:6px 0; }
.imidjeologia-companion .ig-suggestions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:10px 20px; flex:0 0 auto; }
.imidjeologia-companion .ig-suggestions button { min-width:0; min-height:44px; border:1px solid var(--ig-line); border-radius:24px; background:transparent; padding:9px 12px; font-size:11px; line-height:1.4; white-space:normal; overflow-wrap:anywhere; text-align:left; }
.imidjeologia-companion .ig-suggestions button:hover { background:#d5ff652b; }
.imidjeologia-companion .ig-form { margin:0; padding:0 20px; flex:0 0 auto; }
.imidjeologia-companion .ig-entry { display:flex; align-items:center; background:var(--ig-surface); border:1px solid #1b211d4a; border-radius:14px; padding:4px; gap:5px; }
.imidjeologia-companion .ig-entry input { width:0; flex:1; min-width:0; min-height:42px; padding:9px; border:0; border-radius:10px; background:none; color:var(--ig-ink); font-size:16px; line-height:1.4; }
.imidjeologia-companion .ig-entry input:focus { outline:none; }
.imidjeologia-companion .ig-entry:focus-within { outline:2px solid var(--ig-ink); outline-offset:3px; }
.imidjeologia-companion .ig-entry input::placeholder { color:var(--ig-muted); font-size:13px; }
.imidjeologia-companion .ig-entry button { border:0; min-height:42px; border-radius:10px; padding:10px 12px; background:var(--ig-ink); color:var(--ig-surface); font-size:11px; white-space:nowrap; }
.imidjeologia-companion .ig-entry button span { margin-left:12px; }
.imidjeologia-companion .ig-error { color:#8d4234; margin:5px 0 0; font-size:11px; line-height:1.5; }
.imidjeologia-companion .ig-error:empty { display:none; }
.imidjeologia-companion .ig-help-footer { display:flex; justify-content:space-between; align-items:center; gap:12px; flex:0 0 auto; padding:10px 20px 5px; color:var(--ig-muted); font-size:10px; line-height:1.6; }
.imidjeologia-companion .ig-help-footer button { min-height:44px; border:0; background:none; padding:5px 0; color:var(--ig-muted); font-size:10px; white-space:nowrap; }
.imidjeologia-companion .ig-memory { flex:0 0 auto; padding:0 20px 10px; color:var(--ig-muted); font-size:10px; line-height:1.6; }
.imidjeologia-companion .ig-visibility { display:flex; justify-content:flex-end; flex:0 0 auto; border-top:1px solid var(--ig-line); padding:0 20px; }
.imidjeologia-companion .ig-visibility>button { min-height:44px; border:0; background:none; color:var(--ig-muted); font-size:11px; line-height:1.5; padding:8px 0; }
.imidjeologia-companion .ig-flying-seed { display:none; position:absolute; z-index:2; width:13px; height:13px; border-radius:50%; background:radial-gradient(circle at 30% 25%,#e8ff9a 0 17%,#d5ff65 42%,#a6cf32 100%); pointer-events:none; }
.imidjeologia-companion .ig-is-flying .ig-portrait .ig-seed { opacity:0!important; }
.imidjeologia-companion .ig-is-flying .ig-flying-seed { display:block; animation:ig-orb-return 1.15s cubic-bezier(.3,.1,.3,1) 1 both; }
.imidjeologia-companion[data-reaction=hello] .ig-figure img { animation:ig-hello 1.1s ease 1; }
.imidjeologia-companion[data-reaction=hello] .ig-figure .ig-seed { animation:ig-orb-hello 1.1s ease 1; }
.imidjeologia-companion[data-reaction=ack] :is(.ig-figure,.ig-portrait) img { animation:ig-listens .8s ease 1; }
.imidjeologia-companion[data-reaction=ack] .ig-seed { animation:ig-orb-listens .8s ease 1; }
.imidjeologia-companion[data-reaction=found] .ig-portrait img { animation:ig-found 1s ease 1; }
.imidjeologia-companion[data-reaction=found] .ig-portrait .ig-seed { animation:ig-orb-found 1s ease 1; }
.imidjeologia-companion[data-reaction=lead] .ig-figure img { animation:ig-leads 1.1s ease 1; }
.imidjeologia-companion[data-reaction=lead] .ig-figure .ig-seed { animation:ig-orb-leads 1.1s ease 1; }
.imidjeologia-companion.ig-paused *, .imidjeologia-companion.ig-paused *::before, .imidjeologia-companion.ig-paused *::after { animation:none!important; transition:none!important; }
@keyframes ig-hello { 0%,100%{transform:rotate(0)}35%{transform:rotate(-7deg) translateY(-2px)}65%{transform:rotate(3deg)} }
@keyframes ig-listens { 0%,100%{transform:rotate(0)}45%{transform:rotate(-4deg) translateY(-1px)} }
@keyframes ig-found { 0%,100%{transform:rotate(0)}45%{transform:rotate(6deg) translateX(2px)} }
@keyframes ig-leads { 0%,100%{transform:rotate(0)}45%{transform:rotate(-9deg) translateX(-4px)} }
@keyframes ig-orb-hello { 0%,100%{transform:translate(-50%,-50%)}40%{transform:translate(-100%,-90%)}70%{transform:translate(-40%,-110%)} }
@keyframes ig-orb-listens { 0%,100%{transform:translate(-50%,-50%)}45%{transform:translate(-110%,-20%)} }
@keyframes ig-orb-found { 0%,100%{transform:translate(-50%,-50%)}45%{transform:translate(-10%,-100%) scale(1.1)} }
@keyframes ig-orb-leads { 0%,100%{transform:translate(-50%,-50%)}45%{transform:translate(-140%,-70%)} }
@keyframes ig-orb-return { 0%,100%{opacity:1;transform:translate(0,0) scale(1)}8%{opacity:1;transform:translate(0,0) scale(1)}28%{opacity:1;transform:translate(var(--ig-mid-x),var(--ig-mid-y)) scale(.8)}48%,58%{opacity:1;transform:translate(var(--ig-dx),var(--ig-dy)) scale(.65)}78%{opacity:1;transform:translate(var(--ig-mid-x),var(--ig-mid-y)) scale(.8)}94%{opacity:1;transform:translate(0,0) scale(1)} }
@media(max-width:1099px),(hover:none) { .imidjeologia-companion .ig-rest[data-dock=raised] { --ig-edge-y:0px; } }
@media(max-width:700px) {
  .imidjeologia-companion .ig-rest { right:11px; bottom:max(13px,env(safe-area-inset-bottom)); }
  .imidjeologia-companion .ig-open { width:66px; min-height:94px; }
  .imidjeologia-companion .ig-figure { width:64px; height:76px; }
  .imidjeologia-companion .ig-name { font-size:9px; }
  .imidjeologia-companion .ig-caption { right:74px; bottom:31px; max-width:225px; white-space:normal; }
  .imidjeologia-companion .ig-menu { right:11px; bottom:117px; max-height:calc(100dvh -135px); }
  .imidjeologia-companion .ig-return { right:11px; bottom:max(13px,env(safe-area-inset-bottom)); }
  .imidjeologia-companion .ig-panel { right:10px; left:10px; width:auto; height:calc(100dvh -20px); max-height:740px; bottom:max(10px,env(safe-area-inset-bottom)); border-radius:21px; }
  .imidjeologia-companion .ig-header { padding:12px 12px 10px 8px; gap:7px; }
  .imidjeologia-companion .ig-portrait { width:50px; height:61px; }
  .imidjeologia-companion .ig-heading h2 { font-size:18px; }
  .imidjeologia-companion .ig-heading>p { font-size:9px; }
  .imidjeologia-companion :is(.ig-chat-context,.ig-log,.ig-form,.ig-suggestions,.ig-memory,.ig-visibility) { padding-inline:16px; }
  .imidjeologia-companion .ig-help-footer { padding-inline:16px; font-size:9px; gap:8px; }
  .imidjeologia-companion .ig-help-footer button { font-size:9px; }
}
@media(max-height:520px) { .imidjeologia-companion .ig-suggestions { display:none; } .imidjeologia-companion .ig-memory { display:none; } .imidjeologia-companion .ig-header { padding-block:7px; } .imidjeologia-companion .ig-portrait { height:45px; width:44px; } }
@media(prefers-reduced-motion:reduce) { .imidjeologia-companion *, .imidjeologia-companion *::before, .imidjeologia-companion *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
