:root{--ek-chat-vh:100dvh;--ek-glass-edge:rgba(247,239,216,.34);--ek-glass-fill:rgba(35,38,30,.72);--ek-glass-glow:rgba(220,197,130,.28)}
body.ek-chat-open{position:fixed;inset:var(--ek-page-scroll) 0 auto;width:100%;overflow:hidden}

/* The project route remains a clear contact destination. The conversation lives in the floating guide. */
.guide-page{max-width:1000px;min-height:calc(100svh - 94px);margin:auto;padding-top:clamp(90px,13vh,150px);text-align:center;display:flex;flex-direction:column;align-items:center}
.guide-page .breadcrumbs{align-self:flex-start}.guide-page .overline{margin:12px 0 22px}.guide-page h1{max-width:850px;font-size:clamp(58px,7.4vw,104px);line-height:1.01}
.guide-page h1 .title-note{display:block;margin-top:10px;font:400 .62em/1.05 Caveat,cursive;color:var(--brass);letter-spacing:0;transform:rotate(-2deg)}
.guide-page-intro{max-width:590px;margin:34px auto 28px;color:var(--muted);font-size:17px;line-height:1.7}
.guide-page-actions{display:flex;justify-content:center;gap:13px;flex-wrap:wrap}.guide-page-actions .button{min-width:250px;border-radius:999px}
.guide-page-ask{font-weight:600;box-shadow:0 18px 48px -24px var(--ek-glass-glow),inset 0 1px rgba(255,255,255,.35)}
.guide-page-note{display:flex;align-items:center;gap:13px;margin-top:48px;padding:13px 18px;border:1px solid rgba(255,255,255,.13);border-radius:22px;background:rgba(255,255,255,.035);color:var(--muted);text-align:left;font-size:12px;line-height:1.55}
.guide-page-note p{margin:0}.guide-page-note strong{color:var(--chalk);font-weight:500}

/* Floating invitation */
.ek-chat-trigger{position:fixed;right:22px;bottom:22px;z-index:45;display:flex;align-items:center;gap:11px;min-height:62px;padding:7px 16px 7px 7px;border:1px solid var(--ek-glass-edge);border-radius:999px;color:#f4eddd;background:linear-gradient(145deg,rgba(68,72,57,.78),rgba(24,27,21,.79));-webkit-backdrop-filter:blur(24px) saturate(145%);backdrop-filter:blur(24px) saturate(145%);box-shadow:0 18px 50px -20px rgba(0,0,0,.8),inset 0 1px rgba(255,255,255,.3),inset 0 -1px rgba(0,0,0,.35);isolation:isolate;overflow:hidden}
.ek-chat-trigger:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 16% 8%,rgba(255,247,218,.25),transparent 32%),linear-gradient(105deg,transparent 36%,rgba(255,255,255,.13) 50%,transparent 64%);background-size:auto,230% 100%;background-position:0 0,-160% 0;pointer-events:none}
.ek-trigger-face,.ek-chat-face{display:grid;place-items:center;flex:none;width:47px;height:47px;border:1px solid rgba(243,225,170,.35);border-radius:50%;color:#e1c982;background:linear-gradient(145deg,rgba(236,217,159,.2),rgba(255,255,255,.04));box-shadow:inset 0 1px rgba(255,255,255,.28),0 8px 24px -15px rgba(223,200,126,.9)}
.ek-trigger-face svg,.ek-chat-face svg{width:100%;height:100%}.ek-trigger-copy{display:grid;text-align:left;line-height:1.1}.ek-trigger-copy strong{font-size:14px;font-weight:600;letter-spacing:.01em}.ek-trigger-copy small{margin-top:5px;color:#c7c1ae;font-size:12px;font-weight:400}
.ek-trigger-dot{width:6px;height:6px;border-radius:50%;background:#d6c07d;box-shadow:0 0 0 4px rgba(214,192,125,.1),0 0 16px rgba(214,192,125,.8)}
.ek-chat-trigger[aria-expanded=true]{opacity:0;pointer-events:none}
.ek-chat-trigger[hidden]{display:none!important}
.ek-chat-trigger.is-over-hero{top:112px;right:22px;bottom:auto;width:58px;min-height:58px;padding:5px;justify-content:center}
.ek-chat-trigger.is-over-hero .ek-trigger-copy,.ek-chat-trigger.is-over-hero .ek-trigger-dot{display:none}
.ek-chat-trigger.is-over-hero .ek-trigger-face{width:46px;height:46px}

/* Modal is visually a floating glass conversation on wide screens and a native-feeling sheet on phones. */
.ek-chat-dialog{position:fixed;inset:auto 22px 92px auto;width:min(430px,calc(100vw - 32px));height:min(680px,calc(var(--ek-chat-vh) - 116px));max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:30px;background:transparent;color:var(--chalk);overflow:visible}
.ek-chat-dialog::backdrop{background:rgba(5,7,5,.2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.ek-chat-shell{height:100%;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(247,239,216,.3);border-radius:30px;background:linear-gradient(145deg,rgba(50,54,43,.88),rgba(20,23,18,.94));-webkit-backdrop-filter:blur(30px) saturate(150%);backdrop-filter:blur(30px) saturate(150%);box-shadow:0 34px 90px -35px rgba(0,0,0,.95),inset 0 1px rgba(255,255,255,.3),inset 0 -1px rgba(0,0,0,.5);isolation:isolate}
.ek-chat-shell:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 14% 0,rgba(242,223,165,.16),transparent 30%),radial-gradient(circle at 100% 70%,rgba(155,141,91,.1),transparent 40%)}
.ek-chat-header{display:flex;align-items:center;gap:11px;padding:14px;border-bottom:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.025)}
.ek-chat-header .ek-chat-face{width:43px;height:43px}.ek-chat-title{display:grid;min-width:0;flex:1;line-height:1.1}.ek-chat-title strong{font-size:14px;font-weight:600}.ek-chat-title small{margin-top:5px;color:#bbb5a4;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ek-chat-clear,.ek-chat-close{border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.045);color:#d8d2c2}.ek-chat-clear{min-height:46px;padding:8px 12px;border-radius:999px;font-size:13px}.ek-chat-close{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;font-size:23px;line-height:1}
.ek-chat-messages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px 17px 10px;scrollbar-width:thin;scrollbar-color:rgba(216,196,137,.4) transparent}
.ek-message{width:fit-content;max-width:88%;margin-bottom:12px;padding:12px 14px;border:1px solid rgba(255,255,255,.1);border-radius:18px 18px 18px 5px;background:rgba(255,255,255,.055);box-shadow:inset 0 1px rgba(255,255,255,.08);font-size:13px;line-height:1.55;color:#e6e0d1;overflow-wrap:anywhere;white-space:pre-line}
.ek-message p{margin:0}.ek-message.owner{margin-left:auto;border-color:rgba(224,203,140,.22);border-radius:18px 18px 5px 18px;background:linear-gradient(145deg,rgba(218,198,139,.19),rgba(255,255,255,.06));color:#f4eddd}
.ek-message.typing{display:flex;gap:4px;padding:15px 17px}.ek-message.typing i{width:5px;height:5px;border-radius:50%;background:#d3c08a}
.ek-chat-retry{margin-top:10px;padding:7px 12px;border:1px solid rgba(225,207,151,.3);border-radius:999px;background:rgba(225,207,151,.08);color:#ede2c4;font-size:11px}
.ek-chat-quick{display:flex;gap:7px;padding:8px 14px 10px;overflow-x:auto;scrollbar-width:none}.ek-chat-quick::-webkit-scrollbar{display:none}.ek-chat-quick button{flex:none;min-height:46px;padding:8px 13px;border:1px solid rgba(225,207,151,.22);border-radius:999px;background:rgba(255,255,255,.035);color:#e5dfcf;font-size:13px;white-space:nowrap}
.ek-chat-composer{display:flex;align-items:flex-end;gap:6px;margin:0 13px;padding:5px 5px 5px 15px;border:1px solid rgba(255,255,255,.2);border-radius:23px;background:rgba(6,9,6,.3);box-shadow:inset 0 1px rgba(255,255,255,.08)}
.ek-chat-composer textarea{flex:1;min-width:0;max-height:112px;padding:8px 0;border:0;outline:0;resize:none;background:transparent;color:#f1ebdc;font:16px/1.4 Arial,Helvetica,sans-serif}.ek-chat-composer textarea::placeholder{color:#aaa595}.ek-chat-composer button{display:grid;place-items:center;flex:none;width:40px;height:40px;border:1px solid rgba(245,231,188,.36);border-radius:50%;background:linear-gradient(145deg,rgba(229,208,145,.28),rgba(255,255,255,.08));color:#f3e9ce;font-size:18px;box-shadow:inset 0 1px rgba(255,255,255,.25),0 8px 20px -14px #e1ca86}
.ek-chat-composer:focus-within{border-color:rgba(228,209,151,.55);box-shadow:0 0 0 3px rgba(210,190,132,.09),inset 0 1px rgba(255,255,255,.13)}
.ek-chat-status{min-height:36px;margin:0;padding:8px 17px 10px;color:#c1bcac;font-size:12px;line-height:1.35;text-align:center}
.ek-chat-dock{display:none}
.ek-chat-dialog .sr-only,.guide-page .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}

@media (hover:hover) and (pointer:fine){
  .ek-chat-trigger:hover:before{background-position:0 0,130% 0}.ek-chat-trigger:hover{border-color:rgba(248,235,197,.55);box-shadow:0 22px 58px -21px rgba(0,0,0,.9),0 0 0 1px rgba(225,205,144,.08),0 0 34px -15px rgba(225,205,144,.55),inset 0 1px rgba(255,255,255,.38)}
  .ek-chat-clear:hover,.ek-chat-close:hover,.ek-chat-quick button:hover,.ek-chat-retry:hover{border-color:rgba(238,221,169,.38);background:rgba(235,218,165,.1);box-shadow:0 10px 24px -18px rgba(229,207,142,.8),inset 0 1px rgba(255,255,255,.14)}
  .mobile-action .ek-chat-dock:hover{color:#fff5d7;text-shadow:0 0 14px rgba(244,230,180,.4);background:rgba(255,255,242,.055)}
  .ek-chat-composer button:hover{background:linear-gradient(145deg,rgba(237,218,159,.38),rgba(255,255,255,.12));box-shadow:0 0 20px -6px rgba(229,205,134,.55),inset 0 1px rgba(255,255,255,.32)}
}

@media (max-width:760px){
  .guide-page{min-height:calc(100svh - 74px);padding-top:72px;padding-bottom:125px}.guide-page .breadcrumbs{align-self:stretch;text-align:left}.guide-page h1{font-size:clamp(54px,15vw,74px)}.guide-page-intro{margin-top:27px;font-size:15px}.guide-page-actions{width:100%}.guide-page-actions .button{width:100%;min-width:0}.guide-page-note{margin-top:32px;width:100%}
  .mobile-action.has-ek-guide{display:grid;grid-template-columns:minmax(62px,.75fr) minmax(74px,.8fr) minmax(122px,1.35fr);align-items:center;gap:3px;padding-left:10px;padding-right:10px}
  .mobile-action.has-ek-guide>a{justify-content:center;min-width:0;padding-left:7px;padding-right:7px;white-space:nowrap}
  .mobile-action.has-ek-guide .call-link{padding-right:7px;border-right:1px solid rgba(255,255,255,.13)}
  .mobile-action .ek-chat-dock{display:flex;min-width:0;min-height:46px;padding:3px 7px;align-items:center;justify-content:center;gap:6px;border:0;border-right:1px solid rgba(255,255,255,.13);border-radius:0;background:transparent;color:#fff7df;font-size:13px;line-height:1.1}
  .ek-dock-face{display:grid;place-items:center;width:27px;height:27px;flex:none;color:#e1c982}.ek-dock-face svg{width:100%;height:100%}
  .ek-chat-trigger{right:14px;bottom:calc(78px + env(safe-area-inset-bottom));min-height:58px;padding:6px 13px 6px 6px}.ek-chat-trigger.is-start-route{bottom:calc(18px + env(safe-area-inset-bottom))}.ek-trigger-face{width:44px;height:44px}.ek-trigger-copy small{display:none}
  .ek-chat-trigger.is-over-hero{top:88px;right:14px;bottom:auto;width:54px;min-height:54px;padding:5px}.ek-chat-trigger.is-over-hero .ek-trigger-face{width:42px;height:42px}
  .ek-chat-dialog{inset:auto 0 0 0;width:100%;height:min(82dvh,var(--ek-chat-vh));margin:0;border-radius:30px 30px 0 0}.ek-chat-dialog::backdrop{background:rgba(4,6,4,.48);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.ek-chat-shell{border-radius:30px 30px 0 0;border-left:0;border-right:0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom)}
  .ek-chat-header{padding:12px 13px}.ek-chat-title small{max-width:185px}.ek-chat-messages{padding-top:18px}.ek-message{max-width:91%}.ek-chat-quick{padding-left:12px;padding-right:12px}.ek-chat-status{padding-bottom:9px}
}

@media (max-width:360px){.ek-trigger-copy{display:none}.ek-chat-trigger{padding-right:7px}.ek-trigger-dot{display:none}.ek-chat-title small{max-width:130px}.ek-chat-clear{display:none}}

@media (prefers-reduced-motion:no-preference){
  .ek-chat-trigger,.ek-chat-trigger:before,.ek-chat-dock,.ek-chat-clear,.ek-chat-close,.ek-chat-quick button,.ek-chat-retry,.ek-chat-composer button{transition:transform .22s cubic-bezier(.2,.8,.2,1),border-color .22s ease,background .22s ease,box-shadow .22s ease,opacity .18s ease,background-position .65s cubic-bezier(.2,.8,.2,1)}
  .ek-chat-trigger:hover{transform:translateY(-2px)}.ek-chat-trigger:active,.ek-chat-dock:active,.ek-chat-clear:active,.ek-chat-close:active,.ek-chat-quick button:active,.ek-chat-retry:active,.ek-chat-composer button:active{transform:scale(.96);transition-duration:.08s}
  .ek-chat-dialog[open] .ek-chat-shell{animation:ek-chat-enter .32s cubic-bezier(.16,1,.3,1) both}.ek-message{animation:ek-message-enter .24s cubic-bezier(.16,1,.3,1) both}.ek-message.typing i{animation:ek-thinking 1s ease-in-out infinite}.ek-message.typing i:nth-child(2){animation-delay:.13s}.ek-message.typing i:nth-child(3){animation-delay:.26s}
  @keyframes ek-chat-enter{from{opacity:0;transform:translateY(16px) scale(.975)}to{opacity:1;transform:none}}
  @keyframes ek-message-enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
  @keyframes ek-thinking{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
}

@media (prefers-reduced-motion:reduce){.ek-chat-trigger,.ek-chat-dialog,.ek-message{animation:none!important;transition:none!important}}
