/* IDA STUDIO · V27 artisan polish — overlays existing V26 without touching signature Navy materials. */
.ida-brand-system{
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  gap:2px;min-width:0;flex:none;position:relative;
}
.ida-brand-row{display:flex;align-items:center;justify-content:flex-start;gap:3px;white-space:nowrap;position:relative;min-width:0}
.ida-brand-row .brand{display:inline-flex;flex-direction:row;align-items:center;width:auto;flex:none}
.ida-brand-row .brand-lockup{height:42px;display:flex;align-items:center;gap:0}
.ida-brand-row .brand-mark{font-size:30px;letter-spacing:.18em;line-height:1}
.ida-brand-caption{display:block;line-height:1.3;font-size:8px;font-weight:600;letter-spacing:.235em;color:var(--muted)}
.ida-penrose-assistant.ida-guide-launch{
  flex:none;width:53px;height:53px;min-height:48px;min-width:48px;
  display:grid;place-items:center;padding:4px;border-radius:50%;margin:-3px 0 -3px -2px;
}
.ida-penrose-assistant .penrose-mark{width:40px;height:40px;transform-origin:50% 50%}
.ida-penrose-assistant .penrose-mark svg{width:40px;height:40px;display:block}
.ida-penrose-assistant .penrose-mark svg path{vector-effect:non-scaling-stroke}
.ida-penrose-assistant:hover .penrose-mark,.ida-penrose-assistant:focus-visible .penrose-mark{filter:drop-shadow(0 0 12px rgba(var(--accent-rgb),.35))}
.ida-penrose-assistant:focus-visible{outline:2px solid var(--accent2);outline-offset:0}
/* Explanatory chat thought, attached to the icon itself. Never blocks other controls. */
.ida-v27-assistant-hint{
  position:absolute;top:calc(100% + 10px);left:10px;z-index:160;
  display:flex;align-items:center;gap:10px;width:max-content;max-width:min(285px,calc(100vw - 35px));
  padding:11px 15px 11px 12px;border:1px solid rgba(129,184,220,.46);border-radius:17px 17px 17px 5px;
  background:linear-gradient(123deg,rgba(250,253,255,.98),rgba(224,241,252,.97) 58%,rgba(233,228,252,.96));
  color:#182c41;text-align:left;box-shadow:inset 0 1px rgba(255,255,255,.98),0 13px 45px rgba(24,58,94,.21),0 0 26px rgba(123,174,232,.14);
  -webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);
  font:500 11.5px/1.5 "Avenir Next","Helvetica Neue",sans-serif;letter-spacing:.015em;
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px) scale(.97);
  transition:opacity .42s ease,transform .42s ease,visibility .42s;
}
.ida-v27-assistant-hint::before{
  content:"";position:absolute;width:10px;height:10px;top:-6px;left:114px;
  transform:rotate(45deg);background:rgba(244,250,255,.97);
  border-left:1px solid rgba(129,184,220,.45);border-top:1px solid rgba(129,184,220,.45);
}
.ida-v27-assistant-hint.is-visible{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);
}
.ida-v27-chat-orb{width:27px;height:27px;display:grid;place-items:center;flex:none;border-radius:11px;
  color:#3b6c94;background:radial-gradient(circle at 31% 23%,#fff,#d7edfa 45%,#a8c9ef 100%);
  border:1px solid rgba(112,171,213,.5);box-shadow:inset 0 1px 3px #fff,0 5px 11px rgba(61,113,150,.18);
  animation:ida-v27-orb-float 4s ease-in-out infinite;
}
.ida-v27-chat-orb svg{width:18px;height:18px}
.ida-v27-hint-text{min-width:0;max-width:205px;display:block}
html[data-theme="navy"] .ida-v27-assistant-hint,
html[data-ida-universe="borealis"] .ida-v27-assistant-hint,
html[data-ida-universe="nebula"] .ida-v27-assistant-hint{
  color:#e8f4ff;border-color:rgba(112,199,255,.38);
  background:linear-gradient(125deg,rgba(16,35,64,.97),rgba(22,44,72,.95),rgba(40,35,88,.93));
  box-shadow:inset 0 1px rgba(255,255,255,.14),0 15px 38px rgba(0,0,0,.34),0 0 25px rgba(69,144,227,.12);
}
html[data-theme="navy"] .ida-v27-assistant-hint::before{background:rgba(16,35,64,.97);border-color:rgba(112,199,255,.38)}
@keyframes ida-v27-orb-float{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-2px) rotate(5deg)}}
/* More dimensional chromatic edges throughout Classic, including nested controls. */
html[data-theme="ivory"] .ida-v25-rim{
  opacity:.96;padding:1.85px;
  background:conic-gradient(from var(--ida-v25-angle,0deg),
    rgba(97,175,235,.67),rgba(142,111,234,.98),rgba(244,125,191,.94),
    rgba(228,165,109,.9),rgba(102,197,199,.94),rgba(90,163,239,.85),rgba(97,175,235,.67));
  filter:drop-shadow(0 0 3px rgba(145,120,238,.16));
  animation-duration:12s;
}
html[data-theme="ivory"] .ida-v25-illuminated{
  border-color:rgba(126,137,209,.30);
  box-shadow:inset 1px 1px rgba(255,255,255,.95),inset -1px -1px rgba(129,123,205,.12),
   0 14px 36px rgba(119,93,147,.10),0 0 23px rgba(91,164,216,.085);
}
html[data-theme="ivory"] .ida-choice,
html[data-theme="ivory"] .ida-feature-grid label,
html[data-theme="ivory"] .ida-v26-option,
html[data-theme="ivory"] .ida-configurator input:not([type=checkbox]):not([type=radio]),
html[data-theme="ivory"] .ida-configurator textarea,
html[data-theme="ivory"] .ida-configurator select,
html[data-theme="ivory"] .ida-v26-dialog,
html[data-theme="ivory"] .ida-guide-panel,
html[data-theme="ivory"] .ida-summary,
html[data-theme="ivory"] .ida-v26-launch{
  border:1.3px solid transparent;
  background:linear-gradient(137deg,rgba(255,255,255,.92),rgba(252,241,250,.75) 56%,rgba(228,248,251,.74)) padding-box,
   conic-gradient(from var(--ida-v25-angle,30deg),#72b5da,#a78de3,#dd83bc,#eac19a,#72c4bc,#72b5da) border-box;
  box-shadow:inset 1px 1px rgba(255,255,255,.98),0 5px 23px rgba(118,100,177,.09);
}
html[data-theme="ivory"] .ida-choice:hover,
html[data-theme="ivory"] .ida-feature-grid label:hover,
html[data-theme="ivory"] .ida-v26-option:hover{
  box-shadow:0 9px 25px rgba(127,107,202,.16),0 0 17px rgba(111,179,225,.12);transform:translateY(-2px);
}
html[data-theme="ivory"] .ida-choice:has(input:checked),
html[data-theme="ivory"] .ida-feature-grid label:has(input:checked){
  background:linear-gradient(145deg,rgba(245,237,255,.96),rgba(238,251,250,.94)) padding-box,
  conic-gradient(from var(--ida-v25-angle,30deg),#72b5da,#a78de3,#dd83bc,#eac19a,#72c4bc,#72b5da) border-box;
  box-shadow:0 0 0 1px rgba(143,125,213,.12),0 8px 25px rgba(123,103,177,.15);
}
html[data-theme="ivory"] .ida-v26-dialog::backdrop{background:rgba(20,24,49,.49)}
html[data-theme="ivory"] .ida-configurator::after{opacity:.55}
.ida-choice-glyph-design svg{display:block;width:27px;height:27px;stroke-width:1.3;color:var(--accent2);filter:drop-shadow(0 0 6px rgba(var(--accent-rgb),.1))}
.ida-choice:hover .ida-choice-glyph-design svg{transform:rotate(18deg) scale(1.07);transition:transform .55s cubic-bezier(.2,1.3,.4,1)}
/* Lively background star current for Classic only, behind readable content. */
.ida-v27-stardust{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;display:none;contain:strict}
html[data-theme="ivory"] .ida-v27-stardust{display:block}
.ida-v27-star{
  position:absolute;width:var(--s,2px);height:var(--s,2px);border-radius:50%;
  background:var(--c,#83bce9);box-shadow:0 0 9px 1px var(--c,#83bce9),0 0 17px var(--c,#83bce9);
  opacity:var(--o,.65);animation:ida-v27-twinkle var(--dur,7s) ease-in-out infinite alternate;
  animation-delay:var(--delay,0s);
}
.ida-v27-star:nth-child(7n)::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1px;background:linear-gradient(90deg,transparent,var(--c),transparent);transform:translate(-50%,-50%) rotate(45deg);opacity:.65}
@keyframes ida-v27-twinkle{0%,100%{opacity:calc(var(--o,.65)*.38);filter:brightness(.8)}50%{opacity:var(--o,.65);filter:brightness(1.2)}}
html[data-theme="ivory"] body{isolation:isolate}
html[data-theme="ivory"] .section,html[data-theme="ivory"] .hero,html[data-theme="ivory"] .subpage-heading,
html[data-theme="ivory"] .subpage-main,html[data-theme="ivory"] .subpage-trail,
html[data-theme="ivory"] .footer{position:relative;z-index:1}
html[data-theme="ivory"] .hero{
  background:radial-gradient(ellipse at 50% 45%,rgba(174,188,251,.18),transparent 54%),
  linear-gradient(145deg,rgba(247,244,237,.93),rgba(242,240,255,.87));
}
html[data-theme="ivory"] .topbar{
  box-shadow:0 6px 33px rgba(91,95,162,.10),inset 0 -1px rgba(174,111,212,.14);
}
/* Text / links / icon motion that communicates affordance and never impairs reading. */
.desktop-nav a,.mobile-nav a,.ida-v26-option-text strong,.service-card h3,
.project-card h3,.ida-choice strong,.text-link,.btn{
  transition:color .3s,transform .36s cubic-bezier(.22,1,.35,1),letter-spacing .45s,text-shadow .4s,border-color .3s,box-shadow .3s;
}
.desktop-nav a,.mobile-nav a{position:relative}
.desktop-nav a::after,.mobile-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--accent2),transparent);
  transform:scaleX(0);transform-origin:center;transition:transform .4s cubic-bezier(.2,.7,.2,1);
}
.desktop-nav a:hover::after,.desktop-nav a:focus-visible::after,
.mobile-nav a:hover::after,.mobile-nav a:focus-visible::after{transform:scaleX(1)}
.desktop-nav a:hover,.desktop-nav a:focus-visible{color:var(--accent2);transform:translateY(-1px);letter-spacing:.025em}
.mobile-nav a:hover,.mobile-nav a:focus-visible{color:var(--accent2);transform:translateX(3px)}
.service-card:hover h3,.project-card:hover h3,.ida-choice:hover strong{transform:translateX(2px);letter-spacing:-.01em}
.ida-v27-motion-glyph{transition:transform .55s cubic-bezier(.19,1.35,.35,1),filter .5s;transform-origin:50% 50%;display:inline-grid;place-items:center}
a:hover .ida-v27-motion-glyph,button:hover .ida-v27-motion-glyph,
.ida-choice:hover .ida-v27-motion-glyph{transform:rotate(12deg) scale(1.1);filter:drop-shadow(0 0 5px rgba(var(--accent-rgb),.25))}
.ida-v27-motion-glyph[data-ida-motion-kind="arrow"]{transition:transform .35s}
a:hover .ida-v27-motion-glyph[data-ida-motion-kind="arrow"],
button:hover .ida-v27-motion-glyph[data-ida-motion-kind="arrow"]{transform:translate(4px,-3px)}
html[data-theme="ivory"] .ida-v25-typography{transition:letter-spacing .75s,text-shadow .5s,transform .8s}
html[data-theme="ivory"] .ida-v25-typography:hover{text-shadow:0 0 25px rgba(130,105,205,.24)}
/* Both desktop and iPhone retain a balanced logo / tools row. */
@media(min-width:1024px){
  .ida-brand-row .brand-mark{font-size:32px}
  .ida-penrose-assistant.ida-guide-launch{width:55px;height:55px}
  .ida-penrose-assistant .penrose-mark,.ida-penrose-assistant .penrose-mark svg{width:43px;height:43px}
}
@media(max-width:670px){
  .topbar{gap:7px;padding-inline:12px}
  .ida-brand-system{gap:0}
  .ida-brand-row{gap:0}
  .ida-brand-row .brand-lockup{height:35px}
  .ida-brand-row .brand-mark{font-size:25px;letter-spacing:.16em}
  .ida-brand-caption{font-size:6.7px;letter-spacing:.16em;white-space:nowrap}
  .ida-penrose-assistant.ida-guide-launch{width:46px;height:46px;min-width:42px;min-height:42px;padding:3px;margin:0 0 0 -1px}
  .ida-penrose-assistant .penrose-mark,.ida-penrose-assistant .penrose-mark svg{width:36px;height:36px}
  .ida-v27-assistant-hint{top:calc(100% + 14px);left:2px;max-width:min(275px,calc(100vw - 22px));font-size:11px}
  .ida-v27-assistant-hint::before{left:108px}
  .ida-v27-star:nth-child(n+61){display:none}
  .ida-choice-glyph-design svg{width:25px;height:25px}
}
@media(max-width:380px){
  .topbar{padding-inline:9px;gap:3px}
  .ida-brand-row .brand-mark{font-size:23px;letter-spacing:.12em}
  .ida-penrose-assistant.ida-guide-launch{width:42px;height:42px}
  .ida-penrose-assistant .penrose-mark,.ida-penrose-assistant .penrose-mark svg{width:35px;height:35px}
  .ida-brand-caption{font-size:6.3px;letter-spacing:.105em}
}
@media(prefers-reduced-motion:reduce){
  .ida-v27-assistant-hint,.ida-v27-motion-glyph,.desktop-nav a,.mobile-nav a{transition:none!important}
  .ida-v27-chat-orb,.ida-v27-star{animation:none!important}
  html[data-theme="ivory"] .ida-v25-rim{animation:none!important}
}
html[data-ida-motion-off="true"] .ida-v27-chat-orb,
html[data-ida-motion-off="true"] .ida-v27-star{animation-play-state:paused!important}
@media(forced-colors:active){
 .ida-v27-assistant-hint{background:Canvas;color:CanvasText;border:1px solid CanvasText}
 .ida-v27-stardust{display:none!important}
}
