/* Existing Jeremy/Wendy artwork; no third-party images or fonts. */
:root{--navy:#082443;--teal:#087f87;--muted:#587084}
[hidden]{display:none!important}
.launcher-stage{display:none;max-width:1050px;margin:0 auto;padding:70px 35px 210px}
.launcher-stage h2{font-size:clamp(32px,5vw,58px);line-height:1.12;letter-spacing:-1.5px;margin:22px 0}
.launcher-stage>p:not(.eyebrow){max-width:480px;color:var(--muted);line-height:1.7}
.launcher-page .launcher-stage,.chat-minimized .launcher-stage{display:block}
.chat-identity{display:flex;align-items:center;gap:12px;min-width:0}
.chat-avatar{width:58px;height:58px;object-fit:contain;flex-shrink:0}
.chat-controls{display:flex;align-items:center;gap:7px;flex-shrink:0}
.chat-disclosure{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 10px;flex-shrink:0}
#chat-about{margin-bottom:12px;flex-shrink:0}
#chat-about>summary{font-size:12px;color:var(--muted);margin-bottom:8px}
#chat-about:not([open]){margin-bottom:4px}
#close-chat{background:#e1ecee;color:var(--navy);font-size:24px;padding:3px 11px;min-width:40px;min-height:40px}
.chat-launcher{display:none;position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));width:244px;height:177px;border:0;padding:0;background:transparent;z-index:10;-webkit-tap-highlight-color:transparent}
.chat-minimized .chat-launcher{display:block}
.launcher-art{position:absolute;display:block;width:176px;aspect-ratio:4/3;top:0;left:34px;pointer-events:none}
.sprite{position:absolute;inset:0;background-image:url('/art/jeremy-wendy-stubble.png');background-size:200% 400%;background-position:0 0;background-repeat:no-repeat;opacity:0}
.launcher-art[data-loaded="true"] .sprite{opacity:1}
.launcher-art[data-loaded="true"] .fallback-pair{visibility:hidden}
.fallback-pair{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.fallback-pair img{width:55%;height:auto;object-fit:contain;margin:0 -4%}
.launcher-plaque{position:absolute;bottom:0;left:0;right:0;min-height:64px;padding:12px 29px 13px 13px;border:2px solid var(--teal);border-radius:21px;background:white;box-shadow:0 7px 19px #08244320;text-align:left;isolation:isolate;color:var(--navy)}
.launcher-plaque:after{content:"";position:absolute;right:24px;bottom:-8px;width:14px;height:14px;background:white;border-right:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:skewY(31deg);z-index:-1}
.launcher-plaque strong{display:block;font-size:20px;line-height:1.2;letter-spacing:-.5px;font-weight:800;white-space:nowrap}
.launcher-plaque>span{display:block;font-size:11px;color:var(--teal);font-weight:600;margin-top:3px}
.chat-symbol{position:absolute;right:11px;top:23px;width:18px;height:18px;fill:none;stroke:var(--teal);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.chat-launcher[data-animation-state="playing"] .sprite{animation:jeremy-wendy-greeting 1.9s steps(1,end) 1}
@keyframes jeremy-wendy-greeting{0%,10%{background-position:0 0}12%,20%{background-position:100% 0}22%,30%{background-position:0 33.333333%}32%,42%{background-position:100% 33.333333%}44%,52%{background-position:0 66.666667%}54%,62%{background-position:100% 66.666667%}64%,74%{background-position:0 100%}76%,100%{background-position:100% 100%}}
.launcher-page #chat-panel{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));width:440px;max-width:calc(100vw - 32px);height:min(760px,calc(100dvh - 44px));min-height:0;margin:0;padding:16px;background:#f5f8fa;border:1px solid #d4e3e8;border-radius:19px;box-shadow:0 15px 55px #08244326;z-index:11;overflow:auto;overscroll-behavior:contain}
.launcher-page .chat h1{font-size:22px;margin-bottom:5px}
.launcher-page .chat .eyebrow{font-size:9px;letter-spacing:1px}
.launcher-page .chat>header{margin-bottom:12px}
.launcher-page .notice{font-size:12px;margin-bottom:10px;padding:10px;flex-shrink:0}
.launcher-page #messages{min-height:150px;flex:1 1 200px;max-height:none}
.launcher-page #company-profile{padding:9px;margin-bottom:8px}
.launcher-page .fine,.launcher-page footer{font-size:10px}
.launcher-page #send{position:sticky;bottom:-16px;background:#f5f8fa;padding:10px 0 0;z-index:1}
.launcher-page #message{resize:none;max-height:110px}
@media(max-width:600px){
 .launcher-stage{padding:42px 24px 160px}
 .chat-launcher{right:max(17px,env(safe-area-inset-right));bottom:max(19px,env(safe-area-inset-bottom));width:108px;height:120px}
 .launcher-art{width:108px;left:0}
 .launcher-plaque{padding:8px 3px;min-height:36px;border-radius:13px;text-align:center}
 .launcher-plaque strong{font-size:12px;letter-spacing:-.35px}
 .launcher-plaque>span,.chat-symbol{display:none}
 .launcher-plaque:after{width:10px;height:10px;right:15px;bottom:-5px}
 .chat-avatar{width:43px;height:43px}
 .chat-controls{gap:4px}
 .chat header{gap:6px}
 .chat h1{font-size:20px}
 .chat .eyebrow{font-size:9px;letter-spacing:.8px}
 #new{padding:9px;font-size:11px}
 .launcher-page #chat-panel{right:8px;bottom:max(8px,env(safe-area-inset-bottom));width:calc(100vw - 16px);max-width:none;height:calc(100dvh - 16px - env(safe-area-inset-bottom));padding:12px;border-radius:15px}
 .launcher-page #send{bottom:-12px}
 .launcher-page .profile-fields{grid-template-columns:1fr;gap:9px}
 .launcher-page #send .row{flex-wrap:nowrap}
 .launcher-page #send .row button{flex-grow:0}
 .launcher-page .chat-avatar{width:34px;height:34px}
 .launcher-page .chat-identity{gap:7px}
 .launcher-page .chat h1{font-size:19px;white-space:nowrap}
 .launcher-page #new{padding:7px 6px;font-size:10px}
 .launcher-page #close-chat{min-width:32px;min-height:36px;padding:0 8px}
}
@media(prefers-reduced-motion:reduce){.chat-launcher .sprite{animation:none!important;background-position:0 0!important}}

@font-face{font-family:Manrope;src:url('/fonts/manrope-latin.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
:root{font-family:Manrope,system-ui,sans-serif;background:#eaf3f1;color:#153744}
body{background:#eaf3f1}
button,input,textarea{font-family:inherit}
.chat{background:#eaf3f1}
.chat h1{font-weight:800;letter-spacing:-.7px;line-height:1.18}
.chat>header{padding:12px;background:#113444;color:#fff;border-radius:15px;box-shadow:0 3px 0 #082532,0 8px 15px #17384915}
.chat header .eyebrow{color:#9cd8d1}
.chat-avatar{border-radius:10px;background:#edf5f3}
.chat-disclosure{color:#3d6870;margin:14px 2px 8px;font-weight:600}
.launcher-page #chat-panel{background:#eaf3f1;border-color:#c4dcd5;box-shadow:0 5px 0 #c3d6d0,0 18px 42px #163a4b26}
.launcher-page #send{background:#eaf3f1}
.chat button{border:1px solid #087480;background:linear-gradient(#158896,#087580);box-shadow:0 3px 0 #04535e,0 5px 8px #143b4420;color:#fff;transition:transform 100ms,box-shadow 100ms}
.chat button:hover:enabled{background:#138b96;transform:translateY(-1px)}
.chat button:active:enabled{transform:translateY(2px);box-shadow:0 1px 0 #04535e}
.chat button:disabled{transform:none;box-shadow:none}
.chat #new,.chat #close-chat{background:#eaf5f3;color:#133b45;border-color:#c7dfda;box-shadow:0 3px 0 #aecbc4}
.chat #prompt-choices button,.quick-replies button{background:linear-gradient(#fff,#edf7f4);color:#174b54;border:1px solid #afcfc5;box-shadow:0 3px 0 #abc8bf,0 5px 7px #18483d0f}
.chat #prompt-choices button:hover:enabled,.quick-replies button:hover:enabled{background:#fff}
article,.welcome-message{border:1px solid #cadfd9;border-bottom:3px solid #c3d8d1;box-shadow:0 5px 10px #123f4510;line-height:1.5}
article.message-bot,.welcome-message{margin-right:12px;background:#fff;border-radius:15px 15px 15px 5px}
article.message-you{margin-left:32px;background:#176571;border-color:#155966;border-bottom-color:#114552;color:#fff;border-radius:15px 15px 5px 15px}
article.message-you strong,article.message-you a{color:#daffff}
article strong,.welcome-message strong{font-weight:800;letter-spacing:.3px;color:#346d70}
article p,.welcome-message p{font-size:14px;line-height:1.65}
.quick-replies{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0 4px}
.quick-replies button{font-size:12px;text-align:left;line-height:1.4;max-width:100%;white-space:normal;overflow-wrap:anywhere;padding:9px 12px}
.reply-sources{display:flex;gap:6px;align-items:center;font-size:10px;color:#637d80;margin-top:9px;border-top:1px solid #eef4f2;padding-top:6px}
.reply-sources sup{font-size:10px;line-height:1}.reply-sources a{text-decoration:none;color:#548389}
.reply-sources a{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px}
.launcher-page .chat>header{position:sticky;top:0;z-index:3;flex-shrink:0}
.chat header .chat-disclosure{display:block;color:#afded8;font-size:10px;font-weight:500;margin:3px 0 0;line-height:1.3}
.reply-sources{color:#526c70}.reply-sources a{color:#426b73}
.chat button:hover:enabled{background:#0e7a85}
.chat #prompt-choices button:hover:enabled,.quick-replies button:hover:enabled{background:#fff}
#company-profile{background:#f8fcfa;border-color:#cbded8;box-shadow:0 2px 0 #d3e3dd}
.profile-tagline{font-size:12px;line-height:1.6;color:#436a6d}
.company-review{background:#f6fcf7;border:1px solid #b3d9bf;border-radius:12px;padding:10px;margin-bottom:10px;flex-shrink:0;box-shadow:0 2px 0 #c8dfce}
.company-review summary{font-size:11px;color:#2c6445;line-height:1.5}
.company-review[data-status="pending"]{background:#f5f8fc;border-color:#c4d6e3}
.company-review[data-status="unavailable"]{background:#faf6ef;border-color:#ddd2bd}
#company-review-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;max-height:130px;overflow:auto}
.company-tag{font-size:10px;line-height:1.4;background:#e9f4ed;color:#345f46;border-radius:6px;padding:4px 6px}
.company-tag.hazards{background:#f6efdf;color:#75622d}
#page-context-note{margin:0 2px 8px;color:#48747b;overflow-wrap:anywhere}
.launcher-page .chat h1{font-size:23px;white-space:normal}
@media(max-width:600px){
 .launcher-page .chat h1{font-size:19px;white-space:normal}
 .launcher-page .chat>header{padding:9px}
 .launcher-page .chat .eyebrow{font-size:8px}
 .chat button,input,textarea{font-size:16px}
 .quick-replies button,.chat #prompt-choices button{font-size:11px}
 article p,.welcome-message p{font-size:13px}
 article.message-you{margin-left:22px}
 article.message-bot,.welcome-message{margin-right:8px}
}
@media(prefers-reduced-motion:reduce){.chat button{transition:none;transform:none!important}}

/* Actual public store photos, held locally. Tiles navigate; they take no action. */
.product-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:9px;margin-top:14px;white-space:normal}
.product-tile{display:flex;align-items:center;gap:10px;min-width:0;padding:9px;border:1px solid #bfd7cf;border-bottom:3px solid #afc9c0;border-radius:11px;background:#f5faf8;box-shadow:0 3px 7px #153c3910;text-decoration:none;color:#214c54;transition:transform 120ms,box-shadow 120ms}
.product-tile:hover{background:#fff;transform:translateY(-1px);box-shadow:0 5px 10px #153c3920}
.product-tile:active{transform:translateY(1px)}
.product-thumbnail{position:relative;display:grid;place-items:center;width:72px;height:72px;flex:0 0 72px;background:#fff;border:1px solid #e0ebe7;border-radius:7px;overflow:hidden}
.product-thumbnail img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.product-image-placeholder{font-size:15px;font-weight:800;color:#4d7a7c}
.product-tile-info{display:flex;flex-direction:column;gap:6px;min-width:0}
.product-tile strong{font-size:12px;line-height:1.4;letter-spacing:0;color:#244d55;overflow-wrap:anywhere}
.product-tile-action{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:#447b7c}
.product-tile-action svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

/* One line until content needs more; never reserve a multi-line empty box. */
#send .row{align-items:flex-end;flex-wrap:nowrap;gap:8px}
#message,.launcher-page #message{height:44px;min-height:44px;max-height:144px;resize:none;padding:10px 12px;line-height:22px;overflow-y:hidden}
#send .row>button{min-height:44px;flex:0 0 auto;flex-grow:0}
#status:empty{display:none}
#status[data-processing="true"]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* Wendy is static at rest, cycles four run frames during work, then naps. */
.wendy-status{position:relative;display:block;width:44px;height:48px;flex:0 0 44px;align-self:flex-end;margin-bottom:0}
.wendy-sprite{position:absolute;left:0;bottom:0;width:44px;height:48px;background-image:url('/art/wendy-status.png');background-size:176px auto;background-repeat:no-repeat;background-position:0 0;image-rendering:pixelated}
.wendy-fallback{position:absolute;inset:0;width:44px;height:48px;object-fit:contain;image-rendering:pixelated}
.wendy-status[data-loaded="true"] .wendy-fallback{display:none}
.wendy-status:not([data-loaded="true"]) .wendy-sprite{display:none}
.wendy-status[data-state="processing"] .wendy-sprite{height:44px;background-position:0 -50px;animation:wendy-run 700ms steps(4,end) infinite}
.wendy-status[data-state="sleeping"] .wendy-sprite{height:32px;background-position:0 -100px}
.wendy-sleep{display:none;position:absolute;top:2px;right:1px;font-size:9px;line-height:1;font-weight:800;color:#56737d}
.wendy-status[data-state="sleeping"] .wendy-sleep{display:block}
.wendy-status[data-paused="true"] .wendy-sprite,.chat-minimized .wendy-sprite{animation-play-state:paused}
@keyframes wendy-run{from{background-position-x:0}to{background-position-x:-176px}}
@media(prefers-reduced-motion:reduce){.wendy-sprite{animation:none!important}.product-tile{transition:none;transform:none!important}}

/* The parent controls frame bounds; a minimized frame covers only the launcher. */
html.storefront-frame,body.storefront-frame{background:transparent;overflow:hidden}
.storefront-frame .launcher-stage{display:none!important}
.storefront-frame #unlock{display:none!important}
.storefront-frame #chat-panel{inset:6px;width:calc(100% - 12px);max-width:none;height:calc(100dvh - 12px);padding:12px;box-shadow:none}
.storefront-frame .chat-launcher{right:12px;bottom:12px}
.storefront-frame.storefront-desktop .chat-launcher{width:244px;height:177px}
.storefront-frame.storefront-desktop .launcher-art{width:176px;left:34px}
.storefront-frame.storefront-desktop .launcher-plaque{padding:12px 29px 13px 13px;min-height:64px;border-radius:21px;text-align:left}
.storefront-frame.storefront-desktop .launcher-plaque strong{font-size:20px;letter-spacing:-.5px}
.storefront-frame.storefront-desktop .launcher-plaque>span{display:block}
.storefront-frame.storefront-desktop .chat-symbol{display:block}
