/* Additive homepage refinement: original copy, images and palette retained. */
html { scroll-padding-top: 0; }
html .shell { width: min(1280px, calc(100% - clamp(32px, 8vw, 160px))) !important; }
html .shell > section { scroll-margin-top: var(--sky-header-height, 84px); }
html .shell :is(a, button):focus-visible { outline: 2px solid #f2f0ed; outline-offset: 5px; border-radius: 4px; }
html .shell > header { position: sticky !important; top: 0 !important; z-index: 60 !important; padding-block: 12px !important; background: rgba(10,10,10,.9) !important; border-bottom: 1px solid rgba(242,240,237,.08); -webkit-backdrop-filter: blur(16px) !important; backdrop-filter: blur(16px) !important; }
html .shell > header > div { flex-wrap: wrap; justify-content: flex-end; min-width: 0; }
html .shell > header a { position: relative; display: inline-flex; align-items: center; min-height: 44px; transition: color .2s; }
html .shell > header a::after { content: ''; position: absolute; inset: auto 0 6px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .22s ease; }
html .shell > header a:is(:hover, :focus-visible, [aria-current="location"]) { color: #f2f0ed !important; }
html .shell > header a:is(:hover, :focus-visible, [aria-current="location"])::after { transform: scaleX(1); }
html .shell > header .conversation-return { min-height: 44px; flex: none; padding-inline: 15px !important; gap: 8px; color: #172018 !important; background: #dce7d7 !important; border-color: #dce7d7 !important; font-weight: 600; letter-spacing: .07em; box-shadow: 0 8px 22px rgba(0,0,0,.28); }
html .shell > header .conversation-return::after { display: none; }
html .shell > header .conversation-return:is(:hover, :focus-visible) { color: #172018 !important; background: #bcd1b2 !important; border-color: #cfe0c8 !important; transform: translateY(-1px); box-shadow: 0 11px 26px rgba(0,0,0,.38); }
html .shell > header .conversation-return svg { flex: none; }
.conversation-label-short { display: none; }
.mobile-nav-toggle { display: none; }
html .shell > header > .mobile-conversation-return { display: none !important; }
html .shell > header button { width: 44px !important; height: 44px !important; flex: none; }
html .shell > header .conversation-return,
html .shell > header .mobile-conversation-return { appearance: none; -webkit-appearance: none; font: inherit; cursor: pointer; }
html .shell > header .conversation-return { width: auto !important; height: 44px !important; }
html .shell #top { min-height: min(780px, calc(100svh - 72px)) !important; }
html .shell #top h1 { font-size: clamp(26px, 2.9vw, 42px) !important; }
.work-grid a { min-width: 0; transition: transform .25s ease, border-color .25s ease, background .25s ease !important; }
.work-grid a > span { min-width: 0; }
.work-grid a img { transition: transform .45s cubic-bezier(.2,.7,.2,1); }
.work-grid a:focus-visible { border-color: #a8a49c !important; }
#contact a { min-height: 48px; }
#contact a > span:last-child { transition: transform .2s ease, color .2s ease; }
#contact a:is(:hover, :focus-visible) > span:last-child { transform: translate(3px,-2px); color: #f2f0ed !important; }
#about button, #about a { min-height: 44px; display: inline-flex; align-items: center; }
.sky-journey { max-height: calc(100dvh - 32px) !important; overscroll-behavior: contain; }
.sky-journey button { min-width: 44px; min-height: 44px; }
@media (hover: hover) and (pointer: fine) {
  .work-grid a:not([aria-disabled="true"]):hover { transform: translateY(-4px); border-color: #55524c !important; }
  .work-grid a:not([aria-disabled="true"]):hover img { transform: scale(1.025); }
}
@media (max-width: 900px) {
  html .shell { width: calc(100% - 40px) !important; }
  html .shell #top { min-height: auto !important; padding-block: 40px 64px !important; }
  .cap-grid { grid-template-columns: minmax(0,1fr) !important; }
  .cap-grid > div:first-child { position: static !important; }
  html .shell > header > .mobile-conversation-return { width: 44px; min-width: 44px; padding: 0 !important; gap: 0; }
  html .shell > header > .mobile-conversation-return span { display: none; }
}
@media (max-width: 600px) {
  html .shell { width: calc(100% - 32px) !important; }
  html .shell > header { justify-content: flex-end !important; min-height: 68px; overflow: visible; }
  html .shell > header > .mobile-conversation-return { display: inline-flex !important; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 0 13px; border: 1px solid #dce7d7; border-radius: 999px; background: #dce7d7; color: #172018 !important; font-family: 'Google Sans Flex', system-ui, sans-serif; font-size: 10px !important; font-weight: 600; letter-spacing: .055em; text-transform: uppercase; box-shadow: 0 8px 22px rgba(0,0,0,.28); }
  html .shell > header > .mobile-conversation-return::after { display: none; }
  html .shell > header > .mobile-conversation-return:is(:hover,:focus-visible) { background: #bcd1b2; border-color: #cfe0c8; color: #172018 !important; }
  .mobile-conversation-return svg { width: 16px; height: 16px; flex: none; }
  html .shell > header > .primary-navigation { position: absolute; top: calc(100% + 8px); right: 0; width: min(300px, calc(100vw - 32px)); display: flex !important; flex-direction: column; align-items: stretch; gap: 0 !important; padding: 10px; border: 1px solid #292925; border-radius: 17px; background: rgba(18,18,16,.98); box-shadow: 0 22px 60px rgba(0,0,0,.58); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); opacity: 0; visibility: hidden; transform: translateY(-8px) scale(.98); transform-origin: top right; pointer-events: none; transition: opacity .2s ease, visibility .2s ease, transform .2s ease; }
  html .shell > header[data-nav-open="true"] > .primary-navigation { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
  html .shell > header .primary-navigation > a { width: 100%; min-height: 48px; justify-content: flex-start; padding: 0 12px; color: #aaa79f !important; font-size: 12px !important; letter-spacing: .07em; border-bottom: 1px solid #242420; }
  html .shell > header .primary-navigation > a::after { display: none; }
  html .shell > header .primary-navigation > a:is(:hover,:focus-visible,[aria-current="location"]) { color: #f2f0ed !important; background: #181815; border-radius: 10px; }
  html .shell > header .primary-navigation > .conversation-return { display: none !important; }
  .conversation-label-long { display: inline; }
  .conversation-label-short { display: none; }
  .mobile-nav-toggle { position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 44px; height: 44px; padding: 0; border: 1px solid #34342f; border-radius: 999px; background: #121210; color: #f2f0ed; cursor: pointer; }
  .mobile-nav-toggle span { display: block; width: 17px; height: 1.5px; border-radius: 999px; background: currentColor; transition: transform .22s ease, opacity .18s ease; }
  header[data-nav-open="true"] .mobile-nav-toggle span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
  header[data-nav-open="true"] .mobile-nav-toggle span:nth-child(2) { opacity: 0; }
  header[data-nav-open="true"] .mobile-nav-toggle span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
  html .shell #top h1 { font-size: clamp(23px, 5.9vw, 32px) !important; }
  html .shell #top h1 > span { min-width: 0; }
  .work-grid { grid-template-columns: minmax(0,1fr) !important; gap: 24px !important; }
  .work-grid a { padding: 10px 10px 20px !important; }
  #work > div:first-child { flex-wrap: wrap; gap: 10px; }
  html .shell > section { padding-block: 56px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html .shell *, html .shell *::before, html .shell *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  html .shell section[data-screen-label] > div { transform: none !important; }
}

/* Conversational portfolio drawer */
html.portfolio-chat-open,body.portfolio-chat-open{overflow:hidden!important;height:100%;overscroll-behavior:none}
.portfolio-chat-layer[hidden]{display:none!important}
.portfolio-chat-layer{position:fixed;inset:0;z-index:200;display:grid;grid-template-columns:minmax(0,1fr);isolation:isolate;pointer-events:none}
.portfolio-chat-layer[data-open="true"]{pointer-events:auto}
.portfolio-chat-layer[data-open="true"] .portfolio-chat-backdrop{pointer-events:none}
.portfolio-chat-panel{pointer-events:auto}
.portfolio-chat-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(0,0,0,.28);cursor:pointer;opacity:0;transition:opacity .28s ease;backdrop-filter:none;-webkit-backdrop-filter:none;touch-action:none}
.portfolio-chat-panel{position:fixed;z-index:2;top:78px;right:24px;width:min(35vw,560px);height:calc(100dvh - 102px);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:24px;background:linear-gradient(145deg,rgba(43,51,56,.7),rgba(12,17,20,.8));backdrop-filter:blur(28px) saturate(140%);-webkit-backdrop-filter:blur(28px) saturate(140%);box-shadow:-24px 0 80px rgba(0,0,0,.4),inset 1px 0 0 rgba(255,255,255,.06);transform:translateX(calc(100% + 48px));transition:transform .36s cubic-bezier(.22,.75,.22,1)}
.portfolio-chat-layer[data-open="true"] .portfolio-chat-backdrop{opacity:1}
.portfolio-chat-layer[data-open="true"] .portfolio-chat-panel{transform:none}
.portfolio-chat-header{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:70px;padding:12px 18px 12px 22px;border-bottom:1px solid #24282a;background:rgba(20,25,28,.25)}
.portfolio-chat-header>div{display:grid;gap:3px}
.portfolio-chat-header span{color:#737a7d;font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.portfolio-chat-header strong{color:#f0f2f2;font-size:14px;font-weight:500;letter-spacing:-.1px}
.portfolio-chat-close{display:grid!important;place-items:center;width:42px!important;height:42px!important;min-width:42px;border:1px solid #303639;border-radius:12px;background:#171b1d;color:#d9dddd;font:inherit;font-size:24px;line-height:1;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease}
.portfolio-chat-close:hover{border-color:#596267;background:#202628;color:#fff}
.portfolio-chat-close:focus-visible{outline:2px solid #f2f0ed;outline-offset:3px}
.portfolio-chat-close span{font-size:24px;line-height:1;transform:translateY(-1px)}
.portfolio-chat-frame{display:block;width:100%;height:100%;border:0;background:transparent;overscroll-behavior:contain}

@media(max-width:900px){
 .portfolio-chat-panel{top:0;right:0;width:100vw;height:100%;border-radius:0;border:0;transform:translateX(102%)}
 .portfolio-chat-header{min-height:64px;padding:10px 12px 10px 16px}
 .portfolio-chat-close{width:40px!important;height:40px!important;min-width:40px}
}

@media(prefers-reduced-motion:reduce){
 .portfolio-chat-backdrop,.portfolio-chat-panel{transition:none}
}

/* Persistent ask-the-portfolio composer. */
.portfolio-ask-dock {
  position: fixed;
  z-index: 75;
  left: 50%;
  bottom: max(20px, env(safe-area-inset-bottom));
  width: min(520px, calc(100vw - 32px));
  transform: translateX(-50%);
  isolation: isolate;
  transition: transform .28s ease, opacity .2s ease;
}
.portfolio-ask-dock .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.portfolio-ask-form {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 58px;
  padding: 7px 8px 7px 16px;
  border: 1px solid rgba(242,240,237,.25);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(10,12,13,.92), rgba(8,10,11,.84) 42%, rgba(20,31,24,.86));
  box-shadow: 0 22px 70px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.18), inset 0 -1px 0 rgba(255,255,255,.035);
  -webkit-backdrop-filter: blur(28px) saturate(155%);
  backdrop-filter: blur(28px) saturate(155%);
  transition: border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
.portfolio-ask-form::before {
  position: absolute;
  inset: 0;
  content: '';
  pointer-events: none;
  background: linear-gradient(108deg, transparent 12%, rgba(255,255,255,.08) 48%, transparent 82%);
  opacity: .55;
}
.portfolio-ask-form > * { position: relative; z-index: 1; }
.portfolio-ask-dock[data-open="true"] .portfolio-ask-form,
.portfolio-ask-form:focus-within {
  border-color: rgba(220,231,215,.58);
  background: linear-gradient(135deg, rgba(14,17,18,.96), rgba(10,13,14,.91) 42%, rgba(24,38,28,.92));
  box-shadow: 0 25px 76px rgba(0,0,0,.5), 0 0 0 4px rgba(220,231,215,.07), inset 0 1px 0 rgba(255,255,255,.22), inset 0 -1px 0 rgba(255,255,255,.04);
}
.portfolio-ask-mark {
  flex: none;
  color: #cfe2c7;
  font-size: 17px;
  line-height: 1;
}
.portfolio-ask-form input {
  min-width: 0;
  flex: 1;
  height: 42px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: #f2f0ed;
  font: 400 14px/1.3 'Google Sans Flex', system-ui, sans-serif;
}
.portfolio-ask-form input::placeholder { color: rgba(242,240,237,.58); }
.portfolio-ask-form button {
  display: grid;
  place-items: center;
  flex: none;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(220,231,215,.5);
  border-radius: 999px;
  background: #dce7d7;
  color: #172018;
  font: 500 21px/1 'Google Sans Flex', system-ui, sans-serif;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease;
}
.portfolio-ask-form button:hover { transform: translateY(-1px); background: #bcd1b2; }
.portfolio-ask-suggestions {
  position: absolute;
  right: 0;
  bottom: calc(100% + 12px);
  left: 0;
  display: grid;
  gap: 3px;
  margin: 0 12px;
  padding: 9px;
  border: 1px solid rgba(242,240,237,.24);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(10,12,13,.95), rgba(8,10,11,.89) 48%, rgba(20,31,24,.9));
  box-shadow: 0 24px 70px rgba(0,0,0,.46), inset 0 1px 0 rgba(255,255,255,.16), inset 0 -1px 0 rgba(255,255,255,.035);
  -webkit-backdrop-filter: blur(30px) saturate(160%);
  backdrop-filter: blur(30px) saturate(160%);
  animation: portfolioAskReveal .34s cubic-bezier(.2,.8,.2,1) both;
}
.portfolio-ask-suggestions[hidden] { display: none; }
.portfolio-ask-suggestions-label {
  padding: 4px 9px 7px;
  color: rgba(242,240,237,.5);
  font-size: 9px;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.portfolio-ask-suggestions button {
  width: 100%;
  min-height: 38px;
  padding: 8px 9px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: rgba(242,240,237,.78);
  font: 400 12px/1.35 'Google Sans Flex', system-ui, sans-serif;
  text-align: left;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.portfolio-ask-suggestions button:hover,
.portfolio-ask-suggestions button:focus-visible { background: rgba(255,255,255,.09); color: #fff; }
@keyframes portfolioAskReveal {
  from { opacity: 0; transform: translateY(14px) scale(.96); filter: blur(5px); }
  to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
@media (max-width: 600px) {
  .portfolio-ask-dock { bottom: max(12px, env(safe-area-inset-bottom)); width: calc(100vw - 24px); }
  .portfolio-ask-form { min-height: 54px; padding-left: 14px; }
  .portfolio-ask-form input { font-size: 13px; }
  .portfolio-ask-suggestions { margin-inline: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .portfolio-ask-dock, .portfolio-ask-suggestions { transition: none; animation: none; }
}

/* Compact sticky identity appears after leaving the landing viewport. */
html .shell > header { margin: 14px auto 0; width: calc(100% - 20px); padding: 9px 14px !important; border: 0 !important; border-radius: 999px; background: rgba(20,22,23,.78) !important; box-shadow: 0 14px 34px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.12); transition: padding .28s ease, background .28s ease, border-color .28s ease, box-shadow .28s ease, margin .28s ease; }
html .shell > header[data-hidden="true"] { transform: translateY(calc(-100% - 24px)); opacity: .02; pointer-events: none; }
html .shell > header { transition: transform .28s ease, opacity .2s ease, padding .28s ease, background .28s ease, box-shadow .28s ease, margin .28s ease; }
html .shell > header .primary-navigation { gap: 5px !important; }
html .shell > header .primary-navigation a { min-height: 36px; padding: 0 14px; border-radius: 999px; color: rgba(242,240,237,.72) !important; transition: background .22s ease, color .22s ease; }
html .shell > header .primary-navigation a:is(:hover,:focus-visible,[aria-current="location"]) { color: #fff !important; background: rgba(255,255,255,.14); }
html .shell > header .primary-navigation a::after { display: none; }
.scroll-brand { position: absolute; left: 0; top: 50%; width: 34px; height: 34px; opacity: 0; transform: translateY(-50%) scale(.82); pointer-events: none; transition: opacity .28s ease, transform .28s ease; }
.scroll-brand img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; border: 1px solid rgba(242,240,237,.28); }
html .shell > header[data-scrolled="true"] { margin-top: 8px; border: 0 !important; background: rgba(14,16,17,.72) !important; box-shadow: 0 14px 36px rgba(0,0,0,.3); backdrop-filter: blur(18px) saturate(130%) !important; -webkit-backdrop-filter: blur(18px) saturate(130%) !important; }
html .shell > header[data-scrolled="true"] .scroll-brand { opacity: 1; transform: translateY(-50%) scale(1); }
html .shell > header .conversation-return { color: #a8a49c !important; background: rgba(242,240,237,.045) !important; border-color: rgba(242,240,237,.22) !important; font-weight: 500; letter-spacing: .06em; box-shadow: none; }
html .shell > header .conversation-return:is(:hover,:focus-visible) { color: #f2f0ed !important; background: rgba(242,240,237,.1) !important; border-color: rgba(242,240,237,.46) !important; box-shadow: none; }
html .shell > header > .mobile-conversation-return { color: #f2f0ed !important; background: rgba(255,255,255,.1) !important; border-color: rgba(255,255,255,.28) !important; box-shadow: none; }
html .shell > header > .mobile-conversation-return:is(:hover,:focus-visible) { color: #fff !important; background: rgba(255,255,255,.18) !important; border-color: rgba(255,255,255,.48) !important; }
html .shell > header { position: relative !important; top: auto !important; }
html .shell > header[data-floating="true"] { position: fixed !important; top: 10px !important; left: 50%; width: min(1280px, calc(100% - 40px)); margin: 0; transform: translateX(-50%); z-index: 120 !important; }
html .shell > header[data-floating="true"][data-hidden="true"] { transform: translate(-50%, calc(-100% - 24px)); }
html .shell > header { position: sticky !important; top: 0 !important; left: auto; width: calc(100% - 20px); margin: 14px auto 0; transform: none; }
html .shell > header[data-hidden="true"] { transform: translateY(calc(-100% - 24px)); }
html .shell > header .scroll-brand { opacity: 1; transform: translateY(-50%) scale(1); }
html .shell > header .scroll-brand { display: none; }
html .shell > header { margin-top: 10px !important; }
html .shell > header { top: 10px !important; }

/* The conversation now lives as a compact response card above the composer. */
:root {
  --portfolio-ask-width: min(520px, calc(100vw - 32px));
  --portfolio-ask-collapsed-width: min(360px, calc(100vw - 32px));
  --portfolio-ask-bottom: max(20px, env(safe-area-inset-bottom));
}
html .shell > header .conversation-return,
html .shell > header > .mobile-conversation-return { display: none !important; }
.portfolio-ask-dock { width: var(--portfolio-ask-collapsed-width); bottom: var(--portfolio-ask-bottom); transition: width .36s cubic-bezier(.2,.8,.2,1), transform .28s ease, opacity .2s ease; }
.portfolio-ask-dock[data-expanded="true"] { width: var(--portfolio-ask-width); }
/* Colorful border beam for the compact composer; no React runtime required. */
@property --ask-beam-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}
.portfolio-ask-form::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  padding: 1.5px;
  border-radius: inherit;
  pointer-events: none;
  background: conic-gradient(from var(--ask-beam-angle), transparent 0deg 210deg, #658cff 250deg, #c87dff 280deg, #ffad83 305deg, #b5f5df 326deg, transparent 350deg);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  opacity: .7;
  animation: askBorderBeam 4.5s linear infinite;
  transition: opacity .25s ease;
}
.portfolio-ask-dock[data-expanded="true"] .portfolio-ask-form::after {
  opacity: 0;
  animation-play-state: paused;
}
@keyframes askBorderBeam { to { --ask-beam-angle: 360deg; } }
@media (prefers-reduced-motion: reduce) {
  .portfolio-ask-form::after { animation: none; }
}
.portfolio-ask-dock:not([data-expanded="true"]) .portfolio-ask-form { min-height: 46px; padding-block: 4px; }
.portfolio-ask-dock:not([data-expanded="true"]) .portfolio-ask-form button { display: none !important; }
.portfolio-ask-dock[data-expanded="true"] .portfolio-ask-form button,
.portfolio-ask-dock[data-chat-open="true"] .portfolio-ask-form button { display: grid; }
.portfolio-chat-layer {
  position: fixed;
  inset: auto;
  left: 50%;
  bottom: calc(var(--portfolio-ask-bottom) + 72px);
  width: var(--portfolio-ask-width);
  height: min(72svh, 640px);
  display: block;
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 74;
}
.portfolio-chat-layer[data-open="true"] { pointer-events: none; }
.portfolio-chat-backdrop { display: none; }
.portfolio-chat-panel {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 1px solid rgba(242,240,237,.24);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(10,12,13,.96), rgba(8,10,11,.92) 48%, rgba(20,31,24,.94));
  box-shadow: 0 28px 90px rgba(0,0,0,.56), inset 0 1px 0 rgba(255,255,255,.17), inset 0 -1px 0 rgba(255,255,255,.035);
  -webkit-backdrop-filter: blur(32px) saturate(160%);
  backdrop-filter: blur(32px) saturate(160%);
  opacity: 0;
  transform: translateY(24px) scale(.97);
  transition: opacity .38s cubic-bezier(.2,.8,.2,1), transform .42s cubic-bezier(.2,.8,.2,1);
}
.portfolio-chat-layer[data-open="true"] .portfolio-chat-panel { opacity: 1; transform: none; }
.portfolio-chat-panel { pointer-events: auto; }
.portfolio-chat-header {
  min-height: 54px;
  padding: 9px 12px 9px 18px;
  border-bottom: 1px solid rgba(242,240,237,.11);
  background: rgba(0,0,0,.18);
}
.portfolio-chat-header strong { font-size: 13px; }
.portfolio-chat-close { width: 36px !important; height: 36px !important; min-width: 36px; border-radius: 999px; background: rgba(255,255,255,.07); }
.portfolio-chat-frame { min-height: 0; }
@media (max-width: 600px) {
  :root { --portfolio-ask-width: calc(100vw - 24px); --portfolio-ask-collapsed-width: min(300px, calc(100vw - 32px)); --portfolio-ask-bottom: max(12px, env(safe-area-inset-bottom)); }
  .portfolio-chat-layer { bottom: calc(var(--portfolio-ask-bottom) + 64px); height: min(78svh, 640px); }
  .portfolio-chat-panel { border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .portfolio-chat-panel { transition: none; }
}
