@font-face{font-family:Geist;src:url('./fonts/geist-sans-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Geist;src:url('./fonts/geist-sans-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Geist;src:url('./fonts/geist-sans-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Caveat;src:url('./fonts/caveat-latin.woff2') format('woff2');font-weight:400 700;font-display:swap}
:root{
  color-scheme:light;
  --page:#edf3f9;--surface:#fff;--ink:#191b1e;--muted:#636970;--accent:#0874cb;
  --line:#dfe4e9;--wash:#f5f8fb;--reply:#f0f4f8;--accent-soft:#e9f3fc;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;
  --radius:24px;--bubble:18px;--small:13px;--body:16px;--title:54px;
  --frame-width:min(1260px,calc(100vw - 160px));--frame-height:max(670px,min(800px,calc(100svh - 152px)));
  --duration:360ms;--ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box;letter-spacing:0}
body{margin:0;font-family:Geist,Arial,sans-serif;color:var(--ink);background:var(--page);overflow-x:hidden}
button,input,select{font:inherit;color:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}
button:disabled{cursor:default;opacity:.35}button{border:0}svg{width:18px;height:18px;flex:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.masthead{height:80px;max-width:1440px;margin:auto;padding:0 var(--s6);display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}
.brand{font-size:var(--body);font-weight:600;display:flex;align-items:center;gap:var(--s3)}
.brand span{font-size:var(--small);font-weight:400;color:var(--muted);border-left:1px solid var(--line);padding-left:var(--s3)}
.masthead h1{margin:0;font:500 14px Geist,Arial,sans-serif;color:var(--muted)}
.back-link{display:flex;gap:var(--s2);align-items:center;font-size:var(--small)}
.deck{height:var(--frame-height);position:relative;isolation:isolate}
.project-card{position:absolute;left:50%;top:0;width:var(--frame-width);height:100%;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;transform:translateX(-50%);opacity:0;visibility:hidden;transition:transform var(--duration) var(--ease),opacity var(--duration) var(--ease);z-index:0}
.project-card.is-active{visibility:visible;opacity:1;z-index:3;transform:translateX(-50%)}
.project-card.is-before,.project-card.is-after{visibility:visible;opacity:.7;z-index:1}
.project-card.is-before{transform:translateX(calc(-150% - 20px)) translateY(24px) scale(.95)}
.project-card.is-after{transform:translateX(calc(50% + 20px)) translateY(24px) scale(.95)}
.card-header{min-height:60px;flex:none;padding:var(--s4) var(--s6);display:flex;align-items:center;justify-content:space-between;gap:var(--s4);border-bottom:1px solid var(--line);font-size:var(--small)}
.project-category{color:var(--muted)}.case-link{display:flex;align-items:center;gap:var(--s2);white-space:nowrap}.case-link:hover{color:var(--accent)}
.project-content{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--s6);padding:var(--s6);flex:1;min-height:0;overflow:auto;align-items:center}
.project-copy{min-width:0}.hand-note{color:var(--accent);font:500 26px/1.1 Caveat,cursive;margin:0 0 var(--s3)}
.project-copy h2{font-size:var(--title);font-weight:600;line-height:1.06;margin:0 0 var(--s5);text-wrap:balance}
.project-summary{font-size:var(--body);line-height:1.65;color:var(--muted);max-width:42ch;margin:0 0 var(--s5)}
.project-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);padding-top:var(--s4);margin:0;border-top:1px solid var(--line)}
.project-facts div{min-width:0}.project-facts dt{color:var(--muted);font-size:12px;margin-bottom:var(--s1)}.project-facts dd{font-size:14px;margin:0;line-height:1.5;font-weight:600}
.project-note{font-size:12px;color:var(--muted);line-height:1.5;margin:var(--s4) 0 0}.project-note:empty{display:none}
.project-visual{margin:0;min-width:0;align-self:stretch;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:pan-y}
.project-visual img{width:100%;height:100%;max-height:370px;object-fit:contain;display:block}
.project-chat{flex:none;padding:var(--s4) var(--s6) var(--s5);border-top:1px solid var(--line);background:var(--wash)}
.conversation{height:68px;display:flex;flex-direction:column;gap:var(--s2);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;margin-bottom:var(--s3);padding:var(--s1) 2px;transition:height 220ms var(--ease)}
.project-chat.has-messages .conversation{height:146px}
.message-row{display:flex;gap:var(--s2);align-items:flex-end;flex:none}.message-row.user{justify-content:flex-end}
.message-avatar{height:28px;width:28px;object-fit:cover;object-position:50% 12%;border:1px solid var(--line);border-radius:50%;background:var(--surface);flex:none}
.bubble{max-width:min(84%,780px);padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--bubble) var(--bubble) var(--bubble) var(--s1);font-size:14px;line-height:1.55;overflow-wrap:anywhere;animation:bubble-in 220ms var(--ease) both;transform-origin:bottom left}
.bubble p{margin:0}.message-row.user .bubble{background:var(--accent);border-color:var(--accent);color:var(--surface);border-radius:var(--bubble) var(--bubble) var(--s1) var(--bubble);transform-origin:bottom right}
.bubble a,.bubble button{display:inline-flex;align-items:center;color:var(--accent);margin-top:var(--s2);font-size:var(--small);background:transparent;padding:0;text-decoration:underline;text-underline-offset:3px}
.question-suggestions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s3)}
.suggestion{min-height:32px;border:1px solid var(--line);background:var(--surface);padding:6px 12px;font-size:var(--small);line-height:1.4;border-radius:18px;text-align:left;max-width:100%;white-space:normal}
.suggestion:hover{border-color:var(--accent);color:var(--accent)}
.composer{display:flex;align-items:center;gap:var(--s2);border:1px solid var(--line);border-radius:30px;background:var(--surface);padding:6px 6px 6px 20px}
.composer:focus-within{border-color:var(--accent)}.composer input{width:100%;min-width:0;border:0;background:transparent;font-size:15px;outline:none;padding:var(--s2) 0}.composer input::placeholder{color:var(--muted)}
.send-button{height:40px;width:40px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--surface);flex:none}.send-button svg{width:22px;height:22px}.send-button:active{transform:scale(.96)}
.typing-dots{display:flex;align-items:center;gap:var(--s1);height:22px;min-width:26px}.typing-dots span{width:5px;height:5px;border-radius:50%;background:var(--muted);animation:typing-dot 900ms ease-in-out infinite}.typing-dots span:nth-child(2){animation-delay:120ms}.typing-dots span:nth-child(3){animation-delay:240ms}
.project-navigation{display:flex;align-items:center;justify-content:center;gap:var(--s5);height:72px;padding:0 var(--s4)}
.icon-button{height:40px;width:40px;display:grid;place-items:center;border:1px solid var(--line);background:var(--surface);border-radius:50%}.icon-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.project-picker{display:flex;align-items:center;gap:var(--s3);font-size:var(--small)}.project-picker select{max-width:220px;border:0;background:transparent;padding:var(--s2) 0;cursor:pointer;font-weight:600}.project-picker span{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes bubble-in{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes typing-dot{0%,60%,100%{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@media(min-width:1600px){:root{--frame-width:min(1440px,calc(100vw - 240px));--title:64px}.project-visual img{max-height:440px}.project-content{gap:var(--s7);padding:var(--s6) var(--s7)}}
@media(max-width:1000px){:root{--frame-width:calc(100vw - 80px);--title:42px;--s6:24px}.project-content{gap:var(--s5)}.brand span{display:none}.project-summary{font-size:15px}.project-note{font-size:11px}}
@media(max-width:700px){
  :root{--frame-width:calc(100vw - 24px);--title:34px;--radius:20px;--frame-height:auto;--s6:20px}
  .masthead{height:64px;padding:0 var(--s4)}.masthead h1{display:none}.back-link{font-size:12px}.brand{font-size:14px}
  .deck{height:auto;min-height:0}.project-card{display:none;position:relative;left:auto;width:var(--frame-width);height:auto;min-height:calc(100svh - 136px);margin:auto;transform:none!important;transition:none}.project-card.is-active{display:flex}.project-card.is-before,.project-card.is-after{display:none}
  .card-header{min-height:48px;padding:var(--s3) var(--s4);font-size:11px}.card-header .case-link{font-size:12px}.case-link svg{height:14px;width:14px}
  .project-content{display:flex;flex-direction:column;gap:var(--s4);padding:var(--s5) var(--s4);overflow:visible;align-items:stretch}
  .hand-note{font-size:23px;margin-bottom:var(--s2)}.project-copy h2{margin-bottom:var(--s3)}.project-summary{font-size:14px;line-height:1.6;max-width:none;margin-bottom:var(--s4)}.project-facts{gap:var(--s3);padding-top:var(--s3)}.project-facts dd{font-size:12px}.project-facts dt{font-size:11px}.project-note{font-size:11px}
  .project-visual img{height:190px;max-height:none}.project-chat{padding:var(--s3) var(--s4) var(--s4)}.conversation{height:70px}.project-chat.has-messages .conversation{height:180px}.bubble{max-width:88%;font-size:13px}.message-avatar{width:26px;height:26px}
  .question-suggestions{gap:6px}.suggestion{font-size:12px;min-height:40px;padding:7px 10px}.composer{padding-left:14px}.composer input{font-size:16px}.send-button{height:40px;width:40px}.project-navigation{gap:var(--s4);height:72px}.project-picker{gap:var(--s2)}.project-picker select{max-width:170px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){.project-card,.bubble,.suggestion,.composer{border:1px solid CanvasText}.send-button{background:ButtonFace;color:ButtonText}}
