@media(pointer:fine){
  .portfolio-assistant button:hover,
  .portfolio-assistant [role="button"]:hover{cursor:pointer}
  .portfolio-assistant input{cursor:text}
}

/* PORTFOLIO ASSISTANT */
  body.assistant-open-mobile{overflow:hidden}
  .portfolio-assistant-backdrop{display:none}
  .portfolio-assistant{
    --assistant-footer-offset:0px;
    --assistant-ground:#f8f6f2;
    --assistant-ink:#1c1917;
    --assistant-ink-soft:#5c554e;
    --assistant-coral:#ff4d00;
    --assistant-hairline:rgba(28,25,23,.12);
    --assistant-user:#e6dfda;
    --assistant-ease:var(--ease,cubic-bezier(.22,1,.36,1));
    position:fixed;
    right:max(1.5rem,env(safe-area-inset-right));
    bottom:calc(max(1.5rem,env(safe-area-inset-bottom)) + var(--assistant-footer-offset));
    z-index:90;
    font-family:var(--prose,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);
    transition:bottom .25s var(--assistant-ease);
  }
  .portfolio-assistant-launcher{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.58rem;
    min-height:48px;
    padding:.78rem 1.05rem;
    border:1px solid rgba(28,25,23,.16);
    border-radius:999px;
    background:rgba(248,246,242,.94);
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
    box-shadow:0 12px 32px rgba(28,25,23,.14),0 1px 0 rgba(255,255,255,.75) inset;
    color:var(--assistant-ink);
    font-family:inherit;
    font-size:.88rem;
    font-weight:600;
    line-height:1;
    white-space:nowrap;
    opacity:0;
    transform:translateY(12px);
    transition:opacity .5s var(--assistant-ease) 3.2s,transform .5s var(--assistant-ease) 3.2s,border-color .3s,box-shadow .3s,background .3s;
  }
  .loaded .portfolio-assistant-launcher,.portfolio-assistant-launcher.is-ready{opacity:1;transform:none}
  .portfolio-assistant-launcher.is-ready{transition-delay:0s}
  .portfolio-assistant-launcher:hover{
    background:rgba(255,255,255,.98);
    border-color:rgba(255,77,0,.38);
    box-shadow:0 16px 38px rgba(28,25,23,.18),0 1px 0 rgba(255,255,255,.82) inset;
  }
  .portfolio-assistant-launcher:focus-visible,.portfolio-assistant-close:focus-visible,.portfolio-assistant-suggestion:focus-visible,.portfolio-assistant-send:focus-visible,.portfolio-assistant-input:focus-visible{
    outline:2px solid var(--assistant-coral);
    outline-offset:3px;
  }
  .portfolio-assistant-spark{color:var(--assistant-coral);font-size:.88rem;line-height:1;transform:translateY(-.02em)}
  .portfolio-assistant-panel{
    position:absolute;
    right:0;
    bottom:calc(100% + .8rem);
    display:flex;
    flex-direction:column;
    width:min(25rem,calc(100vw - 3rem));
    max-height:min(44rem,calc(100dvh - 7.5rem));
    overflow:hidden;
    border:1px solid rgba(28,25,23,.14);
    border-radius:1.25rem;
    background:rgba(248,246,242,.98);
    -webkit-backdrop-filter:blur(18px);
    backdrop-filter:blur(18px);
    box-shadow:0 26px 70px rgba(28,25,23,.22),0 1px 0 rgba(255,255,255,.78) inset;
    color:var(--assistant-ink);
    opacity:0;
    pointer-events:none;
    transform:translateY(12px) scale(.985);
    transform-origin:bottom right;
    transition:opacity .28s ease,transform .38s var(--assistant-ease);
  }
  .portfolio-assistant-panel.is-open{opacity:1;pointer-events:auto;transform:none}
  .portfolio-assistant-panel[hidden],.portfolio-assistant-backdrop[hidden]{display:none}
  .portfolio-assistant-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.25rem 1rem;border-bottom:1px solid var(--assistant-hairline)}
  .portfolio-assistant-title{font-family:var(--slab,Georgia,serif);font-size:1.45rem;font-weight:340;line-height:1.1;letter-spacing:-.01em}
  .portfolio-assistant-description{max-width:none;margin-top:.42rem;color:var(--assistant-ink-soft);font-size:.82rem;line-height:1.5}
  .portfolio-assistant-close{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:2.25rem;
    height:2.25rem;
    border:1px solid var(--assistant-hairline);
    border-radius:50%;
    background:transparent;
    color:var(--assistant-ink);
    font-family:inherit;
    font-size:1.2rem;
    line-height:1;
    transition:background .25s,border-color .25s,transform .25s var(--assistant-ease);
  }
  .portfolio-assistant-close:hover{background:rgba(28,25,23,.05);border-color:rgba(28,25,23,.25);transform:rotate(3deg)}
  .portfolio-assistant-body{min-height:0;overflow-y:auto;padding:1.1rem 1.25rem 1rem;overscroll-behavior:contain}
  .portfolio-assistant-section-label{margin-bottom:.65rem;font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace);font-size:.61rem;letter-spacing:.18em;text-transform:uppercase;color:var(--assistant-ink-soft)}
  .portfolio-assistant-suggestions{display:grid;gap:.48rem}
  .portfolio-assistant-suggestion{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    width:100%;
    padding:.72rem .78rem;
    border:1px solid var(--assistant-hairline);
    border-radius:.78rem;
    background:rgba(255,255,255,.42);
    color:var(--assistant-ink);
    font-family:inherit;
    font-size:.78rem;
    line-height:1.35;
    text-align:left;
    transition:border-color .25s,background .25s,transform .25s var(--assistant-ease);
  }
  .portfolio-assistant-suggestion:hover{border-color:rgba(255,77,0,.34);background:rgba(255,255,255,.78);transform:translateX(2px)}
  .portfolio-assistant-suggestion span:last-child{flex:0 0 auto;color:var(--assistant-coral);font-size:.92rem}
  .portfolio-assistant-thread{display:flex;flex-direction:column;gap:.7rem;margin-top:1rem}
  .portfolio-assistant-message{max-width:88%;margin:0;padding:.76rem .82rem;border-radius:.92rem;font-size:.79rem;line-height:1.5}
  .portfolio-assistant-message.user{align-self:flex-end;border:1px solid rgba(28,25,23,.1);border-bottom-right-radius:.28rem;background:var(--assistant-user);color:var(--assistant-ink)}
  .portfolio-assistant-message.assistant{align-self:stretch;max-width:100%;padding:.22rem 0 .3rem;border:0;border-radius:0;background:transparent;color:var(--assistant-ink)}
  .portfolio-assistant-message.assistant.is-loading{display:flex;align-items:center;gap:.32rem;min-height:1.75rem;color:var(--assistant-ink-soft);font-style:normal}
  .portfolio-assistant-thinking-label{color:var(--assistant-ink);font-weight:600;line-height:1}
  .portfolio-assistant-thinking-icon{
    flex:0 0 auto;
    display:grid;
    place-items:center;
    width:1.55rem;
    height:1.55rem;
  }
  .portfolio-assistant-thinking-rotor{
    display:grid;
    place-items:center;
    width:1.35rem;
    height:1.35rem;
    transform-origin:50% 50%;
    animation:portfolio-assistant-shape-rotate 3.2s linear infinite;
    will-change:transform;
  }
  .portfolio-assistant-thinking-shape{
    width:1.35rem;
    height:1.35rem;
    background:var(--assistant-coral);
    -webkit-clip-path:polygon(50% 10%,65.3% 13%,78.3% 21.7%,87% 34.7%,90% 50%,87% 65.3%,78.3% 78.3%,65.3% 87%,50% 90%,34.7% 87%,21.7% 78.3%,13% 65.3%,10% 50%,13% 34.7%,21.7% 21.7%,34.7% 13%);
    clip-path:polygon(50% 10%,65.3% 13%,78.3% 21.7%,87% 34.7%,90% 50%,87% 65.3%,78.3% 78.3%,65.3% 87%,50% 90%,34.7% 87%,21.7% 78.3%,13% 65.3%,10% 50%,13% 34.7%,21.7% 21.7%,34.7% 13%);
    animation:portfolio-assistant-shape-morph 5.15s cubic-bezier(.32,.06,.2,1) infinite,portfolio-assistant-shape-size 5.15s cubic-bezier(.32,.06,.2,1) infinite;
    will-change:clip-path,transform;
  }
  @keyframes portfolio-assistant-shape-rotate{
    from{transform:rotate(0deg)}
    to{transform:rotate(360deg)}
  }
  @keyframes portfolio-assistant-shape-size{
    0%,4%{transform:scale(.92)}
    25%,29%{transform:scale(.82)}
    50%,54%{transform:scale(.98)}
    75%,79%{transform:scale(1)}
    100%{transform:scale(.92)}
  }
  @keyframes portfolio-assistant-shape-morph{
    0%,4%{
      -webkit-clip-path:polygon(50% 10%,65.3% 13%,78.3% 21.7%,87% 34.7%,90% 50%,87% 65.3%,78.3% 78.3%,65.3% 87%,50% 90%,34.7% 87%,21.7% 78.3%,13% 65.3%,10% 50%,13% 34.7%,21.7% 21.7%,34.7% 13%);
      clip-path:polygon(50% 10%,65.3% 13%,78.3% 21.7%,87% 34.7%,90% 50%,87% 65.3%,78.3% 78.3%,65.3% 87%,50% 90%,34.7% 87%,21.7% 78.3%,13% 65.3%,10% 50%,13% 34.7%,21.7% 21.7%,34.7% 13%);
    }
    25%,29%{
      -webkit-clip-path:polygon(50% 10%,70% 10%,90% 10%,90% 30%,90% 50%,90% 70%,90% 90%,70% 90%,50% 90%,30% 90%,10% 90%,10% 70%,10% 50%,10% 30%,10% 10%,30% 10%);
      clip-path:polygon(50% 10%,70% 10%,90% 10%,90% 30%,90% 50%,90% 70%,90% 90%,70% 90%,50% 90%,30% 90%,10% 90%,10% 70%,10% 50%,10% 30%,10% 10%,30% 10%);
    }
    50%,54%{
      -webkit-clip-path:polygon(50% 10%,60% 20%,70% 30%,80% 40%,90% 50%,80% 60%,70% 70%,60% 80%,50% 90%,40% 80%,30% 70%,20% 60%,10% 50%,20% 40%,30% 30%,40% 20%);
      clip-path:polygon(50% 10%,60% 20%,70% 30%,80% 40%,90% 50%,80% 60%,70% 70%,60% 80%,50% 90%,40% 80%,30% 70%,20% 60%,10% 50%,20% 40%,30% 30%,40% 20%);
    }
    75%,79%{
      -webkit-clip-path:polygon(50% 10%,59.6% 26.9%,78.3% 21.7%,73.1% 40.4%,90% 50%,73.1% 59.6%,78.3% 78.3%,59.6% 73.1%,50% 90%,40.4% 73.1%,21.7% 78.3%,26.9% 59.6%,10% 50%,26.9% 40.4%,21.7% 21.7%,40.4% 26.9%);
      clip-path:polygon(50% 10%,59.6% 26.9%,78.3% 21.7%,73.1% 40.4%,90% 50%,73.1% 59.6%,78.3% 78.3%,59.6% 73.1%,50% 90%,40.4% 73.1%,21.7% 78.3%,26.9% 59.6%,10% 50%,26.9% 40.4%,21.7% 21.7%,40.4% 26.9%);
    }
    100%{
      -webkit-clip-path:polygon(50% 10%,65.3% 13%,78.3% 21.7%,87% 34.7%,90% 50%,87% 65.3%,78.3% 78.3%,65.3% 87%,50% 90%,34.7% 87%,21.7% 78.3%,13% 65.3%,10% 50%,13% 34.7%,21.7% 21.7%,34.7% 13%);
      clip-path:polygon(50% 10%,65.3% 13%,78.3% 21.7%,87% 34.7%,90% 50%,87% 65.3%,78.3% 78.3%,65.3% 87%,50% 90%,34.7% 87%,21.7% 78.3%,13% 65.3%,10% 50%,13% 34.7%,21.7% 21.7%,34.7% 13%);
    }
  }
  .portfolio-assistant-form{display:flex;align-items:center;gap:.55rem;padding:.85rem;border-top:1px solid var(--assistant-hairline);background:rgba(248,246,242,.98)}
  .portfolio-assistant-input{
    min-width:0;
    flex:1;
    height:2.75rem;
    padding:0 .85rem;
    border:1px solid var(--assistant-hairline);
    border-radius:999px;
    background:rgba(255,255,255,.62);
    color:var(--assistant-ink);
    font-family:inherit;
    font-size:.8rem;
  }
  .portfolio-assistant-input::placeholder{color:rgba(92,85,78,.72)}
  .portfolio-assistant-input:focus{border-color:rgba(255,77,0,.45)}
  .portfolio-assistant-input:disabled{opacity:.65}
  .portfolio-assistant-send{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:2.75rem;
    height:2.75rem;
    border:0;
    border-radius:50%;
    background:var(--assistant-coral);
    color:var(--assistant-ground);
    line-height:1;
    transition:transform .25s var(--assistant-ease),background .25s;
  }
  .portfolio-assistant-send svg{display:block;width:1.1rem;height:1.1rem;transform:translateX(.06rem)}
  .portfolio-assistant-send:hover{background:var(--assistant-coral);transform:translateY(-1px)}
  .portfolio-assistant-send:disabled{opacity:.5;cursor:wait;transform:none}
  .portfolio-assistant-meta{padding:0 .95rem .75rem;color:var(--assistant-ink-soft);font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace);font-size:.56rem;line-height:1.4;letter-spacing:.08em;text-align:center}

  @media(max-width:720px){
    .portfolio-assistant{left:var(--pad);right:var(--pad);bottom:calc(max(1rem,env(safe-area-inset-bottom)) + var(--assistant-footer-offset))}
    .portfolio-assistant-launcher{margin-left:auto;min-height:46px;padding:.74rem .95rem;font-size:clamp(.78rem,3.3vw,.86rem)}
    .portfolio-assistant-backdrop{
      position:fixed;
      inset:0;
      z-index:88;
      display:block;
      background:rgba(28,25,23,.38);
      -webkit-backdrop-filter:blur(5px);
      backdrop-filter:blur(5px);
      opacity:0;
      transition:opacity .28s ease;
    }
    .portfolio-assistant-backdrop.is-open{opacity:1}
    .portfolio-assistant-panel{
      position:fixed;
      z-index:91;
      left:0;
      right:0;
      bottom:0;
      width:auto;
      max-height:calc(100dvh - .75rem);
      border-radius:1.35rem 1.35rem 0 0;
      transform:translateY(102%);
      transform-origin:bottom center;
      opacity:1;
      box-shadow:0 -20px 60px rgba(28,25,23,.25),0 1px 0 rgba(255,255,255,.78) inset;
      padding-bottom:env(safe-area-inset-bottom);
    }
    .portfolio-assistant-panel.is-open{transform:none}
    .portfolio-assistant-header{padding:1.1rem var(--pad) .95rem}
    .portfolio-assistant-title{font-size:1.35rem}
    .portfolio-assistant-description{font-size:.8rem}
    .portfolio-assistant-body{padding:1rem var(--pad)}
    .portfolio-assistant-form{padding:.8rem var(--pad)}
    .portfolio-assistant-meta{padding-left:var(--pad);padding-right:var(--pad)}
    body.assistant-open-mobile .portfolio-assistant-launcher{opacity:0;pointer-events:none;transform:translateY(10px)}
  }

  @media(max-width:420px){
    .portfolio-assistant{left:1rem;right:1rem}
    .portfolio-assistant-launcher{padding:.72rem .85rem;font-size:.76rem;gap:.5rem}
    .portfolio-assistant-header{padding-left:1.1rem;padding-right:1.1rem}
    .portfolio-assistant-body{padding-left:1.1rem;padding-right:1.1rem}
    .portfolio-assistant-form{padding-left:1.1rem;padding-right:1.1rem}
    .portfolio-assistant-description{max-width:29ch}
  }

  @media(prefers-reduced-motion:reduce){
    .portfolio-assistant,.portfolio-assistant-launcher,.portfolio-assistant-panel,.portfolio-assistant-backdrop,.portfolio-assistant-suggestion,.portfolio-assistant-close,.portfolio-assistant-send{transition:none!important}
    .portfolio-assistant-launcher{opacity:1;transform:none}
    .portfolio-assistant-thinking-rotor,.portfolio-assistant-thinking-shape{animation:none}
    .portfolio-assistant-thinking-shape{transform:scale(.92)}
  }
