/* mike-palette: green, blue, brown */
/* == style.css == */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#080705;color:#f9f8f5;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}
main{max-width:1180px;margin:0 auto;padding:18px 20px 60px}
header{display:flex;align-items:center;justify-content:space-between;gap:18px;position:sticky;top:0;z-index:30;padding:10px 0 18px;margin-bottom:18px;background:linear-gradient(rgba(8, 7, 5, 0.961),rgba(8, 7, 5, 0.91),transparent)}
.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand strong{display:block;font-size:15px;letter-spacing:.19em}.brand small{display:block;margin-top:4px;color:#73777c;font-size:10px;letter-spacing:.22em}
.brand-dt{display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;width:58px!important;height:58px!important;flex:0 0 58px!important;border-radius:14px!important;background:#2f7c50!important;overflow:hidden!important;font-size:0!important;box-shadow:0 0 22px rgba(47, 124, 80, 0.125)!important}.brand-dt:before,.brand-dt:after{content:none!important}.brand-dt span,.brand-dt em{display:inline-block!important;font-family:Arial Black,Arial,sans-serif!important;font-weight:900!important;font-style:normal!important;line-height:1!important;letter-spacing:-.02em!important}.brand-dt span{font-size:30px!important;color:#fff!important}.brand-dt em{font-size:28px!important;color:#fff!important;transform:translateY(1px)!important}
.header-right{display:flex;align-items:center;gap:12px;min-width:0}.status{color:#619fd1;font-size:10px;letter-spacing:.12em;white-space:nowrap}.auth-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 15px;border:1px solid #ffffff26;border-radius:999px;background:#ffffff06;color:#f5f5f5;font-size:13px;font-weight:650;white-space:nowrap}.auth-btn:hover{border-color:rgba(94, 186, 134, 0.502);background:rgba(47, 124, 80, 0.071)}
.voice-hero{display:grid;grid-template-columns:1fr;gap:30px}.voice-box{height:820px;border:1px solid rgba(94, 186, 134, 0.502);border-radius:26px;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:32px;background:#050403;box-shadow:inset 0 0 110px #000,0 30px 90px #000;isolation:isolate}.voice-box:after{content:"DOER TOUGH";position:absolute;left:0;right:0;bottom:16px;text-align:center;color:#ffffff22;font-size:8px;font-weight:900;letter-spacing:.36em;z-index:8}.voice-box:before{display:none!important}
.voice-orb{width:430px;height:430px;flex:0 0 430px;margin-top:28px;border:0;border-radius:50%;position:relative;display:grid;place-items:center;background:#0a0907;box-shadow:0 0 0 2px rgba(47, 124, 80, 0.667),0 0 0 8px #0b0a08,0 0 0 10px #3978ac,0 0 0 13px #0d0b08,0 0 0 15px #2f7c50,0 0 0 18px #090806,0 0 35px rgba(57, 120, 172, 0.133);z-index:2;transition:transform .25s,box-shadow .25s}
/* Lightweight static ring: avoids continuous large-area gradient+mask repaints that can lock up browsers. */
.voice-orb:before{content:"";position:absolute;inset:-68px;border-radius:50%;border:2px dashed #619fd1;background:transparent;box-shadow:0 0 14px rgba(57, 120, 172, 0.333),0 0 0 12px #0a0806,0 0 0 14px rgba(47, 124, 80, 0.533);pointer-events:none}
.voice-orb:after{content:"";position:absolute;inset:-108px;border-radius:50%;border:1px solid rgba(94, 186, 134, 0.502);background:radial-gradient(ellipse 4px 28px at 50% 0,#3978ac 0 55%,transparent 60%),radial-gradient(ellipse 4px 28px at 50% 100%,#3978ac 0 55%,transparent 60%),radial-gradient(ellipse 28px 4px at 0 50%,#3978ac 0 55%,transparent 60%),radial-gradient(ellipse 28px 4px at 100% 50%,#3978ac 0 55%,transparent 60%);box-shadow:0 0 0 24px #090806,0 0 0 26px rgba(57, 120, 172, 0.2),0 0 24px rgba(47, 124, 80, 0.133);pointer-events:none}
.orb-core{width:270px;height:270px;position:relative;display:block!important;border-radius:50%;background:#0e0c0a;border:2px solid #d3c8b6;box-shadow:inset 0 0 0 7px #090806,inset 0 0 0 9px #29231c,0 0 0 2px rgba(47, 124, 80, 0.267),0 10px 30px #000;overflow:hidden;z-index:4;font-size:0!important;letter-spacing:0!important;transform:none!important;text-shadow:none!important}.orb-core:before{content:"";position:absolute;left:50%;top:21%;transform:translateX(-50%);width:78%;height:46%;background:url('/doertough-dt.svg') center/contain no-repeat;filter:none}.orb-core:after{content:"M I K E";position:absolute;left:50%;bottom:15%;transform:translateX(-50%);color:#619fd1;font-size:30px;font-weight:900;letter-spacing:.24em;line-height:1;text-shadow:0 0 10px #3978ac;white-space:nowrap}.orb-core span,.orb-core em{display:none!important}
.voice-state{display:flex;align-items:center;gap:10px;margin-top:28px;z-index:6;font-size:15px;font-weight:800;letter-spacing:.19em}.state-dot{width:14px;height:14px;flex:0 0 14px;border-radius:50%;background:#3978ac;box-shadow:0 0 0 7px rgba(57, 120, 172, 0.094),0 0 18px #3978ac}.voice-box:not(.is-listening):not(.is-speaking) .state-dot{background:#73777c;box-shadow:none}
.wave{height:42px;margin-top:16px;display:flex;align-items:center;justify-content:center;gap:6px;z-index:6}.wave i{display:block;width:4px;height:8px;border-radius:99px;background:#28221b;transition:height .15s,background .15s}.voice-box.is-listening .wave i,.voice-box.is-speaking .wave i{background:#3978ac;box-shadow:0 0 10px rgba(57, 120, 172, 0.333);animation:wave 620ms ease-in-out infinite alternate;animation-delay:var(--delay)}
.voice-hint{margin:10px 20px 0;color:#8b9197;text-align:center;font-size:14px;line-height:1.5;z-index:6}.voice-puck{width:min(560px,82%);height:76px;margin-top:22px;padding:9px 18px 9px 10px;border:1px solid rgba(97, 159, 209, 0.733);border-radius:999px;background:linear-gradient(135deg,#1a1612,#120f0c);color:#fff;display:flex;align-items:center;gap:14px;box-shadow:0 0 0 1px rgba(57, 120, 172, 0.133),0 0 28px rgba(57, 120, 172, 0.133),0 14px 34px #0009;z-index:7}.voice-puck:hover{border-color:#619fd1}.voice-puck.active{border-color:#619fd1;box-shadow:0 0 0 2px rgba(57, 120, 172, 0.2),0 0 36px rgba(57, 120, 172, 0.267),0 14px 34px #0009}.voice-puck-icon{width:58px;height:58px;flex:0 0 58px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 25%,#4f90c4,#3978ac 52%,#204360);color:#041018;box-shadow:inset 2px 2px 7px #fff6,0 0 20px rgba(57, 120, 172, 0.208)}.voice-puck-copy{min-width:0;flex:1;text-align:left;display:flex;flex-direction:column;gap:3px}.voice-puck-copy strong{font-size:14px;letter-spacing:.15em}.voice-puck-copy small{font-size:11px;color:#737b83;letter-spacing:.03em}.voice-puck-arrow{color:#619fd1;width:28px;height:28px;margin-right:4px}
.voice-box.is-listening .voice-orb{transform:scale(1.015);box-shadow:0 0 0 2px rgba(47, 124, 80, 0.667),0 0 0 8px #0b0a08,0 0 0 10px #3978ac,0 0 0 13px #0d0b08,0 0 0 15px #2f7c50,0 0 0 18px #090806,0 0 55px rgba(57, 120, 172, 0.2)}.voice-box.is-listening .voice-orb:before{animation:none}.voice-box.is-speaking .voice-orb{animation:orbTalk .7s ease-in-out infinite}.voice-box.is-speaking .state-dot{background:#478bc2;box-shadow:0 0 16px #3978ac}
.copy{padding:10px 0}.copy label{color:#619fd1;font-size:11px;font-weight:900;letter-spacing:.18em}.copy h1{font-size:clamp(48px,7vw,82px);line-height:.92;letter-spacing:-.06em;margin:16px 0 20px}.copy h1 span{color:#619fd1}.copy p{max-width:760px;color:#aaa;font-size:18px;line-height:1.6}.radar{margin-top:12px;border:1px solid #292929;background:#171717;color:#fff;border-radius:13px;padding:14px 20px;display:flex;align-items:center;gap:8px;font-weight:850}
.chat{display:flex;flex-direction:column;gap:12px;margin:28px 0 16px}.bubble{max-width:82%;padding:14px 17px;border-radius:18px;line-height:1.55;white-space:pre-wrap}.bubble.mike{background:#111;border:1px solid #292929}.bubble.user{align-self:flex-end;background:#2f7c50;color:#ffffff;font-weight:650}.error{margin:10px 0;padding:11px 14px;border:1px solid #5a2d20;background:#1b100c;color:#ffb39a;border-radius:12px;font-size:13px;line-height:1.45}
form{display:flex;gap:8px;position:sticky;bottom:10px;z-index:25;padding:8px;background:#090909e8;border:1px solid #202020;border-radius:16px}input{flex:1;min-width:0;background:#0d0d0d;color:#fff;border:1px solid #292929;border-radius:13px;padding:14px;outline:0}input:focus{border-color:rgba(94, 186, 134, 0.533);box-shadow:0 0 0 3px rgba(47, 124, 80, 0.094)}form button{width:50px;padding:0;border:0;border-radius:13px;background:#2f7c50;color:#ffffff;display:flex;align-items:center;justify-content:center}.read{background:#171717!important;color:#fff!important}
.auth-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px;background:#04080eb8;backdrop-filter:blur(6px)}.auth-card{position:relative;width:100%;max-width:380px;padding:30px 26px 22px;border-radius:18px;border:1px solid #ffffff1f;background:#1d1914;box-shadow:0 24px 70px #0008}.auth-card h2{margin:0 0 6px;font-size:21px}.auth-sub{margin:0 0 18px;font-size:13.5px;line-height:1.45;opacity:.68}.auth-close{position:absolute;top:12px;right:12px;width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:inherit;opacity:.55}.auth-form{display:flex;flex-direction:column;gap:10px}.auth-form input{width:100%;padding:12px 14px;border-radius:11px;background:#ffffff0a}.auth-form button[type=submit]{width:100%;margin-top:4px;padding:12px 16px;border:0;border-radius:11px;background:#2e7a4f;color:#ffffff;font-weight:700}.auth-error{padding:9px 11px;border-radius:9px;background:#dc3c3c24;border:1px solid #dc3c3c4d;font-size:13px}.auth-switch{display:block;width:100%;margin-top:14px;padding:6px;border:0;background:transparent;color:inherit;font-size:13px;opacity:.7}
@keyframes spectrumSpin{to{transform:rotate(360deg)}}@keyframes orbTalk{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}@keyframes wave{0%{height:8px;transform:scaleY(.6)}100%{height:var(--height);transform:scaleY(1)}}
@media(max-width:760px){main{padding:10px 10px 40px}header{margin-bottom:14px}.brand-dt{width:48px!important;height:48px!important;flex-basis:48px!important;border-radius:12px!important}.brand-dt span{font-size:25px!important}.brand-dt em{font-size:23px!important}.brand strong{font-size:13px}.brand small{font-size:9px}.header-right{gap:7px}.header-right .status{display:none}.voice-box{height:820px;padding-top:22px;border-radius:24px}.voice-orb{width:320px;height:320px;flex-basis:320px;margin-top:22px}.voice-orb:before{inset:-50px}.voice-orb:after{inset:-78px}.orb-core{width:205px;height:205px}.orb-core:after{font-size:23px;bottom:15%}.voice-state{margin-top:22px;font-size:12px;letter-spacing:.16em}.wave{height:38px;margin-top:14px;gap:4px}.wave i{width:3px}.voice-hint{font-size:12px;margin-top:9px}.voice-puck{width:88%;height:72px;margin-top:18px}.voice-puck-icon{width:54px;height:54px;flex-basis:54px}.voice-puck-copy strong{font-size:12px}.voice-puck-copy small{font-size:10px}.copy h1{font-size:50px}.copy p{font-size:16px}.bubble{max-width:94%}}
@media(max-width:390px){.voice-box{height:790px}.voice-orb{width:285px;height:285px;flex-basis:285px}.voice-orb:before{inset:-44px}.voice-orb:after{inset:-70px}.orb-core{width:185px;height:185px}.voice-state{margin-top:20px}.voice-puck{height:68px}.voice-puck-icon{width:50px;height:50px;flex-basis:50px}}
@media(prefers-reduced-motion:reduce){.voice-orb,.voice-orb:before,.voice-orb:after,.wave i{animation:none!important}}

.trust-row{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:0 18px;margin:18px 0 4px;padding:0}
.trust-row li{position:relative;color:#8ea0ad;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding-left:15px;line-height:2}
.trust-row li:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:#3978ac;box-shadow:0 0 8px rgba(57, 120, 172, 0.502)}
@media(max-width:760px){.trust-row{gap:0 14px;margin:14px 0 2px}.trust-row li{font-size:12px;padding-left:13px}}

/* ---- Pro checkout + homepage conversion --------------------------------
   Purely additive: new class names only, no existing rule edited or
   removed. Touches no animation and no .voice-box / .voice-orb /
   .voice-puck geometry. */

/* Header Pro button and, once subscribed, a quiet badge in its place. */
.pro-btn{display:flex;flex-direction:column;align-items:center;line-height:1.1;gap:1px;border:0;border-radius:999px;padding:8px 16px;background:#2f7c50;color:#ffffff;font-family:inherit;font-size:12px;font-weight:900;letter-spacing:.06em;cursor:pointer}
.pro-btn small{font-size:9px;font-weight:800;letter-spacing:.1em;opacity:.75}
.pro-badge{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border:1px solid rgba(94, 186, 134, 0.333);border-radius:999px;color:#69bf8e;font-size:11px;font-weight:800;letter-spacing:.1em}

/* Pro modal. Same visual language as the auth modal. */
.pro-overlay{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:20px;background:#04080ec7;backdrop-filter:blur(6px)}
.pro-card{position:relative;width:100%;max-width:420px;max-height:88vh;overflow-y:auto;padding:30px 26px 22px;border-radius:18px;border:1px solid #ffffff1f;background:#1d1914;box-shadow:0 24px 70px #0008;color:#f9f8f5}
.pro-close{position:absolute;top:12px;right:12px;width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:inherit;opacity:.55;cursor:pointer}
.pro-card label{color:#5eba86;font-size:11px;font-weight:900;letter-spacing:.18em}
.pro-card h2{margin:8px 0 2px;font-size:23px;line-height:1.2}
.pro-price{margin:6px 0 16px;font-size:30px;font-weight:900;letter-spacing:-.02em}
.pro-price small{font-size:14px;font-weight:700;opacity:.6}
.pro-features{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:11px}
.pro-features li{display:flex;gap:9px;font-size:14px;line-height:1.45;color:#dbd3c5}
.pro-features svg{flex-shrink:0;margin-top:3px;color:#69bf8e}
.pro-features strong{color:#f9f8f5}
.pro-error{margin-bottom:10px;padding:9px 12px;border:1px solid #6b3020;background:#24130d;color:#ffb08a;border-radius:10px;font-size:13px}
.pro-cta{width:100%;border:0;border-radius:13px;padding:15px;background:#2f7c50;color:#ffffff;font-family:inherit;font-size:15px;font-weight:900;cursor:pointer}
.pro-cta:disabled{opacity:.6;cursor:default}
.pro-note{margin:12px 0 0;font-size:11.5px;line-height:1.5;color:#8b98a3;text-align:center}
.pro-note a{color:inherit;text-decoration:underline}

/* Offer banner. */
.offer-banner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 10px;width:100%;margin:0 0 18px;padding:11px 16px;border:1px solid rgba(94, 186, 134, 0.349);border-radius:12px;background:linear-gradient(90deg,rgba(47, 124, 80, 0.059),rgba(47, 124, 80, 0.098));color:#f5f3f0;font-family:inherit;font-size:14px;line-height:1.45;text-align:center;cursor:pointer}
.offer-banner strong{color:#5eba86;font-weight:900}
.offer-banner-cta{display:inline-flex;align-items:center;gap:5px;color:#619fd1;font-weight:800;white-space:nowrap}

/* Center the hero copy. !important because public/style.css and
   mike-home-refinement.css both style .copy, and load order is not
   guaranteed once Vite injects the bundled sheet. */
.copy{text-align:center!important;align-items:center!important}
.copy h1,.copy p{margin-left:auto!important;margin-right:auto!important}
.copy p{max-width:660px}
.trust-row{justify-content:center!important}

/* One-tap demo prompts. */
.try-row{display:flex;flex-direction:column;align-items:center;gap:9px;margin-top:20px;width:100%}
.try-label{color:#7d8a94;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.try-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.try-chip{border:1px solid #41372c;background:#201b15;color:#e9e4db;border-radius:999px;padding:10px 16px;font-family:inherit;font-size:13.5px;font-weight:650;line-height:1.3;cursor:pointer}
.try-chip:disabled{opacity:.45;cursor:default}

.read:disabled{opacity:.4;cursor:default}

@media(max-width:760px){
  .pro-btn{padding:7px 12px;font-size:11px}
}
@media(max-width:380px){
  .copy h1{font-size:40px;letter-spacing:-.04em}
  .offer-banner{font-size:13px;padding:10px 12px}
  .try-chip{font-size:12.5px;padding:9px 13px}
  .pro-card{padding:24px 18px 18px}
}

/* == mike-weather-bar.css == */
.mike-weather-bar{position:relative;z-index:1200;width:100%;background:#07141d;border-bottom:1px solid #17303f;box-shadow:0 8px 26px #0007;color:#f5f7f9;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.mike-weather-shell{min-height:52px;max-width:1440px;margin:0 auto;display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;gap:0;padding:0 14px;overflow:hidden}
.mike-weather-shell>*{min-height:34px;display:flex;align-items:center;gap:8px;padding:0 18px;border-right:1px solid #20333f;white-space:nowrap}
.mike-weather-shell>*:last-child{border-right:0}
.mike-weather-place{font-size:14px}
.mike-weather-icon{font-size:20px}
.mike-weather-primary strong{font-size:26px;line-height:1}
.mike-weather-primary span,.mike-weather-shell small{color:#aeb8c0;font-size:12px}
.mike-weather-stat{font-size:13px;font-weight:750;color:#e5ebef}
.mike-weather-location{border:0;background:transparent;color:#31aaf4;font-weight:800;cursor:pointer}
.mike-weather-location:hover,.mike-weather-location:focus-visible{color:#72c5ff;outline:none}
.mike-weather-shell small{font-size:10px}
.mike-weather-bar[data-ready="1"] .mike-weather-icon{filter:drop-shadow(0 0 6px rgba(255,184,40,.28))}
.mike-weather-bar:not([data-ready="1"]) [data-weather-temp],
.mike-weather-bar:not([data-ready="1"]) [data-weather-highlow],
.mike-weather-bar:not([data-ready="1"]) [data-weather-rain],
.mike-weather-bar:not([data-ready="1"]) [data-weather-wind],
.mike-weather-bar:not([data-ready="1"]) [data-weather-updated]{display:none}
.mike-weather-bar[data-ready="1"] .mike-weather-location{display:none}
.mike-weather-bar:not([data-ready="1"]) .mike-weather-primary{border-right:1px solid #20333f}
.mike-weather-bar:not([data-ready="1"]) .mike-weather-primary span{font-size:13px}
.mike-weather-bar:not([data-ready="1"]) .mike-weather-location{border-right:0}

/* Weather bar owns location. Keep #mike-use-my-location in the DOM so the
   bar can click() it, but never show the duplicate chip on the homepage or
   through the games overlay. */
html body #mike-use-my-location{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
  z-index:0!important;
}

@media(max-width:980px){
  .mike-weather-shell{justify-content:flex-start;overflow-x:auto;scrollbar-width:none}
  .mike-weather-shell::-webkit-scrollbar{display:none}
  .mike-weather-shell>*{padding:0 14px}
  .mike-weather-primary strong{font-size:22px}
}

@media(max-width:640px){
  .mike-weather-bar{min-height:44px}
  .mike-weather-shell{
    min-height:44px;
    padding:0 12px;
    justify-content:flex-start;
    gap:12px;
    overflow:hidden;
  }
  .mike-weather-shell>*{
    padding:0;
    border-right:0;
    min-height:0;
    gap:6px;
  }
  .mike-weather-place{font-size:12px;font-weight:700}
  .mike-weather-icon{font-size:16px}
  .mike-weather-primary{gap:8px}
  .mike-weather-primary strong{font-size:20px}
  .mike-weather-primary span{font-size:12px;color:#d5dde3}
  .mike-weather-stat,
  .mike-weather-shell small{display:none!important}
  .mike-weather-location{padding:0;font-size:12px}
}

/* == mike-home-refinement.css == */
/* Mike AI homepage — approved reference lockup under the header. Voice behavior intentionally untouched. */
.voice-box{height:640px!important;justify-content:flex-start!important;padding-top:44px!important;border-color:rgba(94, 186, 134, 0.4)!important;background:radial-gradient(circle at 50% 35%,#191511 0%,#0b0907 48%,#050403 100%)!important;box-shadow:inset 0 0 90px #000,0 30px 90px #000!important;overflow:hidden;position:relative}.voice-box:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 38%,transparent 0 28%,rgba(57, 120, 172, 0.031) 28.5%,transparent 29%),radial-gradient(circle at 50% 38%,transparent 0 44%,rgba(47, 124, 80, 0.063) 44.5%,transparent 45%),radial-gradient(circle at 50% 38%,transparent 0 60%,rgba(57, 120, 172, 0.031) 60.5%,transparent 61%);pointer-events:none}.brand-dt{display:block!important;width:58px!important;height:58px!important;flex:0 0 58px!important;border-radius:14px!important;background:#2f7c50!important;border:0!important;box-shadow:0 0 18px rgba(47, 124, 80, 0.133)!important;font-size:0!important;color:transparent!important;position:relative!important;overflow:hidden!important}.brand-dt:before{content:'D'!important;position:absolute!important;inset:0!important;display:grid!important;place-items:center!important;font-family:Arial Black,Arial,sans-serif!important;font-weight:900!important;font-size:34px!important;color:#fff!important;padding-bottom:7px!important}.brand-dt:after{content:''!important;position:absolute!important;left:25px!important;bottom:0!important;width:7px!important;height:12px!important;background:#2f7c50!important}.brand-dt span,.brand-dt em{display:none!important}.voice-orb{width:330px!important;height:330px!important;flex:0 0 330px!important;background:radial-gradient(circle at 50% 42%,#1f1a15 0%,#0d0b09 52%,#050403 100%)!important;border:2px solid #cec3af!important;border-radius:50%!important;box-shadow:inset 0 0 0 8px #0b0907,inset 0 0 35px #000,0 0 0 10px #0b0907,0 0 0 12px rgba(47, 124, 80, 0.333),0 0 0 17px rgba(57, 120, 172, 0.169),0 0 30px #000,0 0 70px rgba(57, 120, 172, 0.094)!important;position:relative!important}.voice-orb:before{content:''!important;position:absolute!important;inset:-62px!important;border:2px solid #619fd1!important;border-radius:50%!important;box-shadow:0 0 18px rgba(57, 120, 172, 0.4),0 0 36px rgba(57, 120, 172, 0.133),0 0 0 13px #0b0907,0 0 0 15px rgba(47, 124, 80, 0.667),0 0 0 18px #070605!important;background:repeating-conic-gradient(from 0deg,#3978ac 0deg 1deg,transparent 1deg 7deg)!important;mask:radial-gradient(circle,transparent 0 78%,#000 78.5% 100%)!important;-webkit-mask:radial-gradient(circle,transparent 0 78%,#000 78.5% 100%)!important}.voice-orb:after{content:''!important;position:absolute!important;inset:-91px!important;border:0!important;border-radius:50%!important;background:repeating-conic-gradient(from 0deg,#2f7c50 0deg 1deg,transparent 1deg 10deg)!important;mask:radial-gradient(circle,transparent 0 86%,#000 86.5% 100%)!important;-webkit-mask:radial-gradient(circle,transparent 0 86%,#000 86.5% 100%)!important;box-shadow:0 0 22px rgba(47, 124, 80, 0.157)!important;pointer-events:none!important}.orb-core{width:65%!important;height:65%!important;display:grid!important;place-items:center!important;position:relative!important;font-size:0!important;letter-spacing:0!important;transform:none!important;text-shadow:none!important;z-index:3!important;background:radial-gradient(circle at 45% 32%,#2b241c 0%,#0e0c0a 62%,#050403 100%)!important;border:2px solid #c6b9a2!important;border-radius:50%!important;box-shadow:inset 0 0 0 6px #070605,inset 0 0 28px #000,0 0 22px #000,0 0 0 2px rgba(47, 124, 80, 0.267)!important}.orb-core span,.orb-core em{display:none!important}.orb-core:before{content:''!important;display:block!important;width:84%!important;height:68%!important;background:url('/doertough-dt.svg') center 24%/100% auto no-repeat!important;filter:drop-shadow(0 4px 4px #000)!important;position:absolute!important;top:2%!important;left:8%!important}.orb-core:after{content:'MIKE'!important;position:absolute!important;left:50%!important;bottom:7%!important;transform:translateX(-50%)!important;font-family:Inter,system-ui,sans-serif!important;font-size:25px!important;font-weight:900!important;letter-spacing:.30em!important;color:#619fd1!important;text-shadow:0 0 12px #3978ac,0 2px 7px #000!important;white-space:nowrap!important;display:block!important}.voice-state{margin-top:54px!important;font-size:15px!important;letter-spacing:.20em!important;z-index:4!important}.state-dot{width:12px!important;height:12px!important}.voice-box.is-listening .voice-orb,.voice-box.is-speaking .voice-orb{box-shadow:inset 0 0 0 8px #0b0907,inset 0 0 35px #000,0 0 0 10px #0b0907,0 0 0 13px rgba(57, 120, 172, 0.4),0 0 0 18px rgba(47, 124, 80, 0.2),0 0 40px #000,0 0 75px rgba(57, 120, 172, 0.157)!important}.voice-box.is-listening .voice-orb:before{animation:orbPulseBlue .9s ease-in-out infinite}.voice-box.is-speaking .voice-orb{animation:orbTalk .7s ease-in-out infinite}.voice-box.is-listening .state-dot{background:#3978ac!important;box-shadow:0 0 0 7px rgba(57, 120, 172, 0.094),0 0 18px #3978ac!important}.voice-box.is-speaking .state-dot{background:#478bc2!important;box-shadow:0 0 16px #3978ac!important}.wave{height:48px!important;margin-top:22px!important;gap:6px!important;z-index:4!important}.wave i{width:4px!important;background:#29221b!important}.voice-box.is-listening .wave i,.voice-box.is-speaking .wave i{background:#3978ac!important;box-shadow:0 0 10px rgba(57, 120, 172, 0.333)!important}.voice-hint{margin-top:12px!important;font-size:14px!important;z-index:4!important}.voice-puck{width:min(560px,84%)!important;height:78px!important;margin-top:24px!important;padding:9px 18px 9px 10px!important;border-color:rgba(97, 159, 209, 0.6)!important;background:linear-gradient(135deg,#1b1712,#120f0c)!important;box-shadow:0 0 0 1px rgba(57, 120, 172, 0.133),0 0 28px rgba(57, 120, 172, 0.133),0 14px 34px #0009!important;z-index:4!important}.voice-puck:hover{border-color:#619fd1!important}.voice-puck.active{border-color:#619fd1!important;box-shadow:0 0 0 2px rgba(57, 120, 172, 0.2),0 0 36px rgba(57, 120, 172, 0.267),0 14px 34px #0009!important}.voice-puck-icon{width:58px!important;height:58px!important;flex-basis:58px!important}.voice-puck-copy strong{font-size:14px!important}.voice-puck-copy small{font-size:11px!important}.voice-puck-arrow{color:#619fd1!important;width:27px!important;height:27px!important}.header-right .status{color:#619fd1!important}.copy{min-width:0}.copy label{color:#619fd1!important}.copy h1 span{color:#619fd1!important}@keyframes orbPulseBlue{0%,100%{transform:scale(.98);opacity:.72}50%{transform:scale(1.035);opacity:1}}
/* Reference-matching pass */
.voice-box:before{z-index:0;background:radial-gradient(circle at 50% 42%,transparent 0 31%,rgba(57, 120, 172, 0.035) 31.3% 31.8%,transparent 32%),radial-gradient(circle at 50% 42%,transparent 0 48%,rgba(47, 124, 80, 0.055) 48.2% 48.7%,transparent 49%),radial-gradient(circle at 50% 42%,transparent 0 66%,rgba(57, 120, 172, 0.04) 66.2% 66.6%,transparent 67%)}
.voice-orb{margin-top:4px!important}.voice-orb:before{inset:-54px!important;background:repeating-conic-gradient(from -3deg,rgba(57, 120, 172, 0.95) 0deg 1.1deg,transparent 1.1deg 6deg)!important;mask:radial-gradient(circle,transparent 0 80%,#000 80.5% 100%)!important;-webkit-mask:radial-gradient(circle,transparent 0 80%,#000 80.5% 100%)!important;border:2px solid rgba(97, 159, 209, 0.9)!important}.voice-orb:after{inset:-84px!important;background:repeating-conic-gradient(from 1deg,rgba(47, 124, 80, 0.9) 0deg 1deg,transparent 1deg 8deg)!important;mask:radial-gradient(circle,transparent 0 88%,#000 88.5% 100%)!important;-webkit-mask:radial-gradient(circle,transparent 0 88%,#000 88.5% 100%)!important}.orb-core{width:63%!important;height:63%!important}.orb-core:before{width:88%!important;height:70%!important;left:6%!important;top:1%!important;background-size:104% auto!important;background-position:center 24%!important}.orb-core:after{font-size:24px!important;bottom:6%!important}.voice-state{margin-top:52px!important}.voice-puck{margin-top:22px!important}
/* Final mobile fit: keep the full Mike control visible above the sticky chat bar. */
@media(max-width:760px){main{padding:10px 12px 40px}.brand-dt{width:48px!important;height:48px!important;flex-basis:48px!important}.brand-dt:before{font-size:29px!important}.brand-dt:after{left:21px!important;width:6px!important;height:10px!important}.voice-box{height:545px!important;padding-top:26px!important}.voice-orb{width:250px!important;height:250px!important;flex-basis:250px!important;margin-top:0!important}.voice-orb:before{inset:-40px!important}.voice-orb:after{inset:-62px!important}.orb-core{width:64%!important;height:64%!important}.orb-core:after{font-size:19px!important;letter-spacing:.24em!important}.voice-state{margin-top:28px!important;font-size:11px!important}.wave{height:38px!important;margin-top:10px!important;gap:4px!important}.wave i{width:3px!important}.voice-hint{font-size:12px!important;margin-top:5px!important}.voice-puck{height:68px!important;margin-top:8px!important;width:88%!important}.voice-puck-icon{width:50px!important;height:50px!important;flex-basis:50px!important}.voice-puck-copy strong{font-size:12px!important}.voice-puck-copy small{font-size:10px!important}.voice-puck-arrow{width:22px!important;height:22px!important}.copy h1{font-size:50px}.copy p{font-size:16px}}
@media(max-width:390px){.voice-box{height:520px!important;padding-top:22px!important}.voice-orb{width:226px!important;height:226px!important;flex-basis:226px!important}.voice-orb:before{inset:-36px!important}.voice-orb:after{inset:-56px!important}.voice-state{margin-top:25px!important}.voice-puck{height:64px!important;margin-top:7px!important}.voice-puck-icon{width:46px!important;height:46px!important;flex-basis:46px!important}}

/* == mike-mobile-fix.css == */
/* Mike AI mobile hero correction — visual only, voice behavior untouched. */
@media(max-width:760px){
  .voice-box{height:540px!important;min-height:540px!important;max-height:540px!important;padding-top:20px!important;overflow:hidden!important}
  .voice-orb{width:270px!important;height:270px!important;flex:0 0 270px!important;margin-top:10px!important}
  .voice-orb:before{inset:-24px!important;border:2px solid #619fd1!important;box-shadow:0 0 16px rgba(57, 120, 172, 0.333)!important}
  .voice-orb:after{inset:-42px!important;border:2px solid rgba(94, 186, 134, 0.4)!important;box-shadow:none!important}
  .orb-core{width:66%!important;height:66%!important;flex:0 0 auto!important;background-color:#0d0b08!important;background-position:50% 76%!important}
  .voice-orb .orb-core > span,.voice-orb .orb-core > em{font-size:64px!important;top:18%!important}
  .orb-core:after{font-size:18px!important;bottom:10%!important}
  .voice-state{margin-top:18px!important;font-size:12px!important;gap:12px!important}
  .voice-state .state-dot{width:20px!important;height:20px!important;background:#73777c!important;box-shadow:none!important}
  .wave{margin-top:10px!important;height:40px!important;gap:5px!important}
  .wave i{width:4px!important;height:10px!important}
  .voice-hint{font-size:12px!important;margin-top:6px!important}
  .voice-puck{width:90%!important;height:68px!important;min-height:68px!important;margin-top:12px!important}
  .voice-puck-icon{width:52px!important;height:52px!important;flex-basis:52px!important}
  .brand-dt{width:48px!important;height:48px!important;flex-basis:48px!important}
  .brand-dt:before{font-size:29px!important}
  .brand-dt:after{content:'T'!important;display:block!important;position:absolute!important;left:43%!important;top:20%!important;font-family:Arial Black,Arial,sans-serif!important;font-size:27px!important;font-weight:900!important;line-height:1!important;color:#5eba86!important;z-index:3!important}
}
@media(max-width:390px){
  .voice-box{height:520px!important;min-height:520px!important;max-height:520px!important;padding-top:18px!important}
  .voice-orb{width:250px!important;height:250px!important;flex-basis:250px!important;margin-top:8px!important}
  .voice-orb .orb-core > span,.voice-orb .orb-core > em{font-size:58px!important;top:18%!important}
  .orb-core:after{font-size:16px!important}
  .orb-core{background-size:64% 9px!important;background-position:50% 75%!important}
  .voice-state{margin-top:16px!important}
  .wave{height:36px!important;margin-top:8px!important}
  .voice-puck{height:64px!important;min-height:64px!important;margin-top:10px!important}
}

/* FINAL MIKE CORE — approved DT/MIKE lockup, crisp black core. */
.orb-core{position:relative!important;background-color:#0d0b08!important;background-image:linear-gradient(to bottom,#fff 0 4px,transparent 4px 8px,#2f7c50 8px 12px,transparent 12px)!important;background-repeat:no-repeat!important;background-size:64% 12px!important;background-position:50% 76%!important;border:1px solid #6b727b!important;box-shadow:inset 0 0 0 2px #110f0c,0 0 0 2px rgba(47, 124, 80, 0.4)!important;overflow:hidden!important;isolation:isolate!important}
.orb-core:before{content:""!important;display:none!important}
.orb-core:after{content:"M I K E"!important;position:absolute!important;left:50%!important;bottom:10%!important;top:auto!important;transform:translateX(-50%)!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;border:0!important;background:none!important;color:#619fd1!important;font-family:Inter,system-ui,sans-serif!important;font-size:17px!important;font-weight:900!important;letter-spacing:.25em!important;line-height:1!important;text-shadow:0 0 12px #3978ac,0 2px 7px #000!important;white-space:nowrap!important;z-index:50!important}
.voice-orb .orb-core > span,.voice-orb .orb-core > em{display:block!important;position:absolute!important;opacity:1!important;visibility:visible!important;mix-blend-mode:normal!important;margin:0!important;padding:0!important;font-family:Arial Black,Arial,sans-serif!important;font-size:58px!important;font-weight:900!important;line-height:.9!important;letter-spacing:-.11em!important;font-style:normal!important;top:18%!important;bottom:auto!important;z-index:60!important;text-shadow:0 3px 8px #000!important}
.voice-orb .orb-core > span{left:50%!important;transform:translateX(-101%)!important;color:#fff!important}
.voice-orb .orb-core > em{left:50%!important;transform:translateX(-2%)!important;color:#5eba86!important}
.voice-state{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;flex-wrap:nowrap!important;width:max-content!important;max-width:none!important;white-space:nowrap!important;gap:12px!important}
.voice-state .state-dot{flex:0 0 auto!important}
.voice-state strong{display:block!important;width:auto!important;max-width:none!important;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important;line-height:1.1!important;margin:0!important}
.brand-dt{font-size:0!important;color:transparent!important;position:relative!important;overflow:hidden!important;background:#2f7c50!important}
.brand-dt:before{content:'D'!important;position:absolute!important;left:22%!important;top:22%!important;display:block!important;font-family:Arial Black,Arial,sans-serif!important;font-weight:900!important;font-size:29px!important;line-height:1!important;color:#fff!important;padding:0!important;text-shadow:none!important;z-index:2!important}
.brand-dt:after{content:'T'!important;display:block!important;position:absolute!important;left:43%!important;top:20%!important;font-family:Arial Black,Arial,sans-serif!important;font-size:27px!important;font-weight:900!important;line-height:1!important;color:#5eba86!important;z-index:3!important}
@media(max-width:760px){
  .voice-orb{width:270px!important;height:270px!important;flex-basis:270px!important;margin-top:10px!important}
  .voice-orb:before{inset:-24px!important;border:2px solid #619fd1!important;box-shadow:0 0 16px rgba(57, 120, 172, 0.333)!important}
  .voice-orb:after{inset:-42px!important;border:2px solid rgba(94, 186, 134, 0.4)!important;box-shadow:none!important}
  .orb-core{width:66%!important;height:66%!important;background-color:#0d0b08!important;background-position:50% 76%!important}
  .voice-orb .orb-core > span,.voice-orb .orb-core > em{font-size:64px!important;top:18%!important}
  .orb-core:after{font-size:18px!important;bottom:10%!important}
  .voice-state{margin-top:18px!important;font-size:12px!important;gap:12px!important}
  .voice-state .state-dot{width:20px!important;height:20px!important;background:#73777c!important;box-shadow:none!important}
  .voice-box.is-listening .voice-state .state-dot,.voice-box.is-speaking .voice-state .state-dot{background:#3978ac!important;box-shadow:0 0 14px rgba(57, 120, 172, 0.533)!important}
  .wave{margin-top:10px!important;height:40px!important;gap:5px!important}
  .wave i{width:4px!important;height:10px!important}
  .voice-hint{font-size:12px!important;margin-top:6px!important}
  .voice-puck{width:90%!important;height:68px!important;min-height:68px!important;margin-top:12px!important}
  .voice-puck-icon{width:52px!important;height:52px!important;flex-basis:52px!important}
  .brand-dt{width:48px!important;height:48px!important;flex-basis:48px!important}
  .brand-dt:before{font-size:29px!important}
  .brand-dt:after{display:block!important;left:43%!important;top:20%!important;font-size:27px!important}
}
@media(max-width:390px){
  .voice-box{height:520px!important;min-height:520px!important;max-height:520px!important;padding-top:18px!important}
  .voice-orb{width:250px!important;height:250px!important;flex-basis:250px!important;margin-top:8px!important}
  .voice-orb .orb-core > span,.voice-orb .orb-core > em{font-size:58px!important;top:18%!important}
  .orb-core:after{font-size:16px!important}
  .orb-core{background-size:64% 9px!important;background-position:50% 75%!important}
  .voice-state{margin-top:16px!important}
  .wave{height:36px!important;margin-top:8px!important}
  .voice-puck{height:64px!important;min-height:64px!important;margin-top:10px!important}
}
.orb-core{background-position:50% 76%!important;background-size:64% 10px!important}
@media(max-width:390px){.orb-core{background-position:50% 75%!important;background-size:64% 9px!important}}
.voice-orb,.voice-orb:before,.voice-orb:after,.wave i,.state-dot{animation:none!important}
.voice-orb{transition:none!important}

/* APPROVED HOMEPAGE LOCKUP RESTORE — visual configuration only. */
.voice-box .voice-orb .orb-core{display:flex!important;flex-direction:row!important;align-items:flex-start!important;justify-content:center!important;padding-top:23%!important;background-position:50% 63%!important}
.voice-box .voice-orb .orb-core > span,.voice-box .voice-orb .orb-core > em{position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;display:block!important;flex:0 0 auto!important;font-size:78px!important;line-height:.82!important;letter-spacing:-.14em!important}
.voice-box .voice-orb .orb-core > span{color:#fff!important}
.voice-box .voice-orb .orb-core > em{color:#5eba86!important}
.voice-box .voice-orb .orb-core:after{bottom:7%!important;font-size:25px!important;letter-spacing:.30em!important}

@media(max-width:760px){
  .voice-box .voice-orb .orb-core{padding-top:23%!important;background-position:50% 63%!important}
  .voice-box .voice-orb .orb-core > span,.voice-box .voice-orb .orb-core > em{font-size:64px!important;line-height:.84!important;letter-spacing:-.12em!important}
  .voice-box .voice-orb .orb-core:after{bottom:8%!important;font-size:18px!important;letter-spacing:.25em!important}
}
@media(max-width:390px){
  .voice-box .voice-orb .orb-core{padding-top:22%!important;background-position:50% 63%!important}
  .voice-box .voice-orb .orb-core > span,.voice-box .voice-orb .orb-core > em{font-size:58px!important;line-height:.84!important;letter-spacing:-.12em!important}
  .voice-box .voice-orb .orb-core:after{bottom:8%!important;font-size:16px!important}
}

/* == mike-header-badge-fix.css == */
/* Mike AI header badge — final fix.
   The three earlier stylesheets (style.css, mike-home-refinement.css,
   mike-mobile-fix.css) all hide the real "D"/"T" text inside .brand-dt
   and fake the letters with ::before/::after { content: 'D' / 'T' },
   each redefining position/size with !important. That's fragile and is
   why this badge keeps breaking even when unrelated fixes ship.
   This file kills all of that and just styles the real letters directly
   with flexbox centering — no magic-number positioning, nothing to drift
   out of sync. Loaded last in index.html so it wins outright. */
.brand-dt{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:0!important;
}
.brand-dt:before,.brand-dt:after{content:none!important}
.brand-dt span,.brand-dt em{
  display:inline-block!important;
  font-family:'Arial Black',Arial,sans-serif!important;
  font-weight:900!important;
  font-style:normal!important;
  line-height:1!important;
  letter-spacing:-.02em!important;
}
.brand-dt span{font-size:30px!important;color:#fff!important}
.brand-dt em{font-size:28px!important;color:#fff!important;transform:translateY(1px)!important}

@media(max-width:760px){
  .brand-dt span{font-size:25px!important}
  .brand-dt em{font-size:23px!important;transform:translateY(1px)!important}
}

/* == mike-conversion-polish.css == */
/* Mike AI - homepage visual polish pass (conversion-focused, first-visit).
   Additive only: new depth/spacing/hover treatments on existing elements.
   No JSX/markup touched, no continuous animation added (keeps the existing
   "no continuous animation on the home screen" stability rule). */

/* Ambient depth behind the whole page instead of flat black. */
body{background:
  radial-gradient(1100px 560px at 50% -8%, rgba(47, 124, 80, 0.071), transparent 60%),
  radial-gradient(900px 520px at 88% 10%, rgba(57, 120, 172, 0.055), transparent 55%),
  #080705 !important;
}

/* Header gets a touch of separation once content scrolls under it. */
header{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid #ffffff0a}
.auth-btn{border-color:#ffffff26 !important;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.auth-btn:hover{border-color:#5eba86 !important;background:rgba(47, 124, 80, 0.078) !important;box-shadow:0 6px 18px rgba(47, 124, 80, 0.133)}

/* Hero: a little more depth and separation from the page. */
.copy label{text-shadow:0 0 18px rgba(57, 120, 172, 0.302)}
.copy h1{text-shadow:0 10px 34px #00000080}
.copy p{text-shadow:0 2px 10px #00000060}

/* Trust row reads as badges instead of a plain bulleted list. */
.trust-row{gap:10px 10px !important}
.trust-row li{background:#ffffff07;border:1px solid #ffffff14;border-radius:999px;padding:7px 14px 7px 24px !important;line-height:1.5}
.trust-row li:before{left:11px !important}

/* Start With Mike cards: clearer hierarchy and hover feedback. */
.action-starters{margin-top:30px !important;border-color:#ffffff16 !important}
.action-starters-grid .action-starter:hover{box-shadow:0 12px 28px #00000066,0 0 0 1px rgba(47, 124, 80, 0.188)}

/* Pricing card: a small "start free" flag and clearer included-items. */
.pricing{position:relative;margin-top:40px !important;overflow:visible}
.pricing:before{content:"START FREE - NO CARD";position:absolute;top:-15px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#2f7c50;color:#ffffff;font-size:10.5px;font-weight:900;letter-spacing:.12em;padding:7px 16px;border-radius:999px;box-shadow:0 8px 20px rgba(47, 124, 80, 0.267)}
.pricing-price strong{text-shadow:0 0 34px rgba(57, 120, 172, 0.2)}
.pricing-list li:before{background:#328556 !important;border-radius:50% !important;box-shadow:0 0 8px rgba(50, 133, 86, 0.533)}
.pricing-cta{transition:transform .15s ease,box-shadow .15s ease}
.pricing-cta:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(47, 124, 80, 0.267)}

@media(max-width:760px){
  .pricing:before{font-size:9.5px;padding:6px 13px}
  .action-starters{margin-top:22px !important}
  .pricing{margin-top:30px !important}
}

/* == mike-orb-center.css == */
/* Centers the DT / MIKE lockup inside the orb.
   The lockup was assembled by three different stylesheets: the letters absolutely
   positioned at top:18%, the two-tone rule as a background-position on the core,
   and "M I K E" pinned to bottom:%. Each piece was placed independently, so the
   group as a whole sat low and slightly off-axis, and every size change needed
   three numbers re-tuned by hand.
   This makes it one centered flex stack instead: D and T on one line, MIKE on the
   next with the rule carried above it, the whole group centred as a unit. Nothing
   here is a magic offset, so it stays centred at every breakpoint.
   Selectors are html body-prefixed on purpose: the bundled style.css loads last
   and carries .voice-box .voice-orb .orb-core rules of its own. */

html body .voice-box .voice-orb .orb-core,
html body .voice-orb .orb-core {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  align-content: center !important;
  justify-content: center !important;
  padding: 0 !important;
  background-image: none !important;
}

html body .voice-orb .orb-core > span,
html body .voice-orb .orb-core > em {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  margin: 0 !important;
}

/* MIKE takes a full row of its own and carries the white/orange rule above it,
   so the rule can never drift away from the text it underlines. text-indent
   cancels the trailing letter-space after the E, which otherwise pushes the
   visual centre of the word about 3px left of the box centre. */
html body .voice-orb .orb-core::after {
  position: static !important;
  transform: none !important;
  flex: 0 0 100% !important;
  width: 100% !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  text-align: center !important;
  text-indent: 0.25em !important;
  margin: 0 !important;
  padding-top: 0.62em !important;
  background-image: linear-gradient(to bottom, #fff 0 0.16em, transparent 0.16em 0.3em, #2f7c50 0.3em 0.46em, transparent 0.46em) !important;
  background-repeat: no-repeat !important;
  background-size: 5.6em 0.46em !important;
  background-position: 50% 0 !important;
}

/* == mike-money-playbook.css == */
.mike-money-playbook {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 9998;
  width: min(360px, calc(100vw - 36px));
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 14px;
  padding: 14px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: rgba(14,14,14,.97);
  color: #fff;
  box-shadow: 0 18px 55px rgba(0,0,0,.45);
  backdrop-filter: blur(12px);
}

.mike-money-playbook[hidden] { display: none; }

.mike-money-playbook__image {
  width: 92px;
  height: 118px;
  object-fit: cover;
  border-radius: 10px;
  background: #222;
}

.mike-money-playbook__body { min-width: 0; padding-right: 4px; }
.mike-money-playbook__eyebrow {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  opacity: .65;
  margin-bottom: 4px;
}
.mike-money-playbook__title { font-size: 17px; line-height: 1.15; font-weight: 800; }
.mike-money-playbook__tagline { margin-top: 5px; font-size: 12px; line-height: 1.35; opacity: .82; }
.mike-money-playbook__meta { margin-top: 7px; font-size: 12px; font-weight: 700; }
.mike-money-playbook__cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 10px;
  padding: 9px 12px;
  border-radius: 999px;
  background: #fff;
  color: #090909;
  text-decoration: none;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .04em;
}
.mike-money-playbook__cta:hover { transform: translateY(-1px); }
.mike-money-playbook__note { margin-top: 8px; font-size: 9px; line-height: 1.3; opacity: .48; }
.mike-money-playbook__close {
  position: absolute;
  top: 7px;
  right: 9px;
  width: 25px;
  height: 25px;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.09);
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

@media (max-width: 600px) {
  .mike-money-playbook {
    right: 10px;
    bottom: 10px;
    width: calc(100vw - 20px);
    grid-template-columns: 74px 1fr;
    gap: 11px;
    padding: 11px;
    border-radius: 15px;
  }
  .mike-money-playbook__image { width: 74px; height: 96px; }
  .mike-money-playbook__title { font-size: 15px; }
  .mike-money-playbook__tagline { font-size: 11px; }
  .mike-money-playbook__cta { margin-top: 8px; padding: 8px 10px; font-size: 10px; }
}

/* == mike-orb-alive.css == */
/* Mike AI voice orb activity polish — additive only.
   Uses the existing .is-listening / .is-speaking states so realtime voice logic stays untouched. */

.voice-box.is-listening .voice-orb {
  animation: mikeListenPulse 1.15s ease-in-out infinite;
  will-change: transform, box-shadow;
}

.voice-box.is-listening .voice-orb::before {
  animation: mikeListenRing 2.4s linear infinite;
}

.voice-box.is-listening .voice-orb::after {
  animation: mikeListenHalo 1.8s ease-in-out infinite;
}

.voice-box.is-speaking .voice-orb {
  animation: mikeSpeakPulse .72s ease-in-out infinite;
  will-change: transform, box-shadow;
}

.voice-box.is-speaking .voice-orb::before {
  animation: mikeSpeakRing 1.45s linear infinite;
}

.voice-box.is-speaking .voice-orb::after {
  animation: mikeSpeakHalo .95s ease-in-out infinite;
}

.voice-box.is-speaking .orb-core {
  animation: mikeCoreGlow .72s ease-in-out infinite;
}

@keyframes mikeListenPulse {
  0%,100% { transform:scale(1.008); box-shadow:0 0 0 2px rgba(47, 124, 80, 0.667),0 0 0 8px #0b0a08,0 0 0 10px #3978ac,0 0 0 13px #0d0b08,0 0 0 15px #2f7c50,0 0 0 18px #090806,0 0 42px rgba(57, 120, 172, 0.169); }
  50% { transform:scale(1.026); box-shadow:0 0 0 2px rgba(47, 124, 80, 0.8),0 0 0 8px #0b0a08,0 0 0 10px #478bc2,0 0 0 13px #0d0b08,0 0 0 15px #2f7c50,0 0 0 18px #090806,0 0 70px rgba(57, 120, 172, 0.333); }
}

@keyframes mikeListenRing {
  from { transform:rotate(0deg) scale(1); opacity:.7; }
  50% { opacity:1; }
  to { transform:rotate(360deg) scale(1.012); opacity:.7; }
}

@keyframes mikeListenHalo {
  0%,100% { transform:scale(1); opacity:.7; }
  50% { transform:scale(1.018); opacity:1; }
}

@keyframes mikeSpeakPulse {
  0%,100% { transform:scale(1); box-shadow:0 0 0 2px rgba(47, 124, 80, 0.667),0 0 0 8px #0b0a08,0 0 0 10px #3978ac,0 0 0 13px #0d0b08,0 0 0 15px #2f7c50,0 0 0 18px #090806,0 0 48px rgba(57, 120, 172, 0.231); }
  50% { transform:scale(1.042); box-shadow:0 0 0 2px rgba(47, 124, 80, 0.867),0 0 0 8px #0b0a08,0 0 0 10px #5392c6,0 0 0 13px #0d0b08,0 0 0 15px #2f7c50,0 0 0 18px #090806,0 0 88px rgba(57, 120, 172, 0.439); }
}

@keyframes mikeSpeakRing {
  from { transform:rotate(0deg) scale(1); opacity:.82; }
  to { transform:rotate(360deg) scale(1.02); opacity:1; }
}

@keyframes mikeSpeakHalo {
  0%,100% { transform:scale(1); opacity:.76; filter:brightness(1); }
  50% { transform:scale(1.028); opacity:1; filter:brightness(1.22); }
}

@keyframes mikeCoreGlow {
  0%,100% { box-shadow:inset 0 0 0 7px #090806,inset 0 0 0 9px #29231c,0 0 0 2px rgba(47, 124, 80, 0.267),0 10px 30px #000; }
  50% { box-shadow:inset 0 0 0 7px #090806,inset 0 0 0 9px #29231c,0 0 0 2px rgba(47, 124, 80, 0.502),0 0 30px rgba(57, 120, 172, 0.267),0 10px 30px #000; }
}

@media (prefers-reduced-motion: reduce) {
  .voice-box.is-listening .voice-orb,
  .voice-box.is-listening .voice-orb::before,
  .voice-box.is-listening .voice-orb::after,
  .voice-box.is-speaking .voice-orb,
  .voice-box.is-speaking .voice-orb::before,
  .voice-box.is-speaking .voice-orb::after,
  .voice-box.is-speaking .orb-core { animation:none!important; }
}

/* == mike-background-depth.css == */
/* Mike AI homepage background depth — additive visual layer only.
   Keeps content and layout untouched while adding restrained Doer Tough atmosphere. */

html {
  min-height: 100%;
  background: #070605;
}

body {
  min-height: 100vh;
  isolation: isolate;
  background-color: #080705 !important;
  background-image:
    radial-gradient(900px 620px at -6% 5%, rgba(47, 124, 80, 0.15), transparent 62%),
    radial-gradient(1050px 720px at 104% 13%, rgba(57, 120, 172, 0.14), transparent 64%),
    radial-gradient(720px 520px at 50% 42%, rgba(56, 48, 38, 0.11), transparent 68%),
    linear-gradient(180deg, #080705 0%, #0e0c09 43%, #090806 72%, #050403 100%) !important;
  background-attachment: fixed;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, .022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .018) 1px, transparent 1px),
    repeating-linear-gradient(118deg, transparent 0 118px, rgba(47, 124, 80, 0.018) 119px, transparent 120px 238px);
  background-size: 56px 56px, 56px 56px, auto;
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .72), rgba(0, 0, 0, .32) 52%, transparent 92%);
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .72), rgba(0, 0, 0, .32) 52%, transparent 92%);
  opacity: .48;
}

body::after {
  content: "";
  position: fixed;
  z-index: 0;
  pointer-events: none;
  width: min(920px, 78vw);
  height: min(920px, 78vw);
  left: 50%;
  top: 250px;
  transform: translateX(-50%);
  border-radius: 50%;
  background:
    radial-gradient(circle, transparent 0 46%, rgba(57, 120, 172, 0.035) 55%, transparent 68%),
    conic-gradient(from 210deg, transparent 0 22%, rgba(47, 124, 80, 0.035) 28%, transparent 35% 68%, rgba(57, 120, 172, 0.04) 76%, transparent 84%);
  filter: blur(2px);
  opacity: .7;
}

#root {
  position: relative;
  z-index: 1;
}

@media (max-width: 700px) {
  body {
    background-image:
      radial-gradient(560px 460px at -20% 4%, rgba(47, 124, 80, 0.28), transparent 66%),
      radial-gradient(620px 520px at 120% 12%, rgba(57, 120, 172, 0.25), transparent 68%),
      radial-gradient(520px 600px at 50% 48%, rgba(16, 55, 78, .18), transparent 70%),
      linear-gradient(180deg, #080705 0%, #14110e 48%, #050403 100%) !important;
    background-attachment: scroll;
  }

  body::before {
    background-size: 48px 48px, 48px 48px, auto;
    opacity: .62;
  }

  body::after {
    width: 118vw;
    height: 118vw;
    top: 330px;
    opacity: .78;
  }
}

@media (prefers-contrast: more) {
  body::before,
  body::after {
    opacity: .18;
  }
}

/* == mike-voice-first.css == */
/* Put Mike's primary voice experience first without changing component logic. */
.voice-hero > .voice-box {
  order: -1;
}

/* Preserve a comfortable handoff from the voice panel into the intro copy. */
.voice-hero > .copy {
  order: 0;
}


/* Keep the existing text composer inside Mike's panel, directly under status. */
.voice-box > form.voice-text-composer {
  position: relative !important;
  inset: auto !important;
  order: 0 !important;
  z-index: 3 !important;
  width: min(560px, calc(100% - 40px)) !important;
  max-width: 560px !important;
  margin: 16px auto 6px !important;
  transform: none !important;
  flex: 0 0 auto !important;
}

.voice-box > form.voice-text-composer:focus-within {
  border-color: rgba(97, 159, 209, 0.7) !important;
  box-shadow: 0 0 0 1px rgba(57, 120, 172, 0.22), 0 0 30px rgba(57, 120, 172, 0.12) !important;
}

.voice-box > form.voice-text-composer .sold-avg-input {
  flex: 0 0 104px !important;
  width: 104px !important;
  max-width: 104px !important;
  padding: 12px 8px !important;
  font-size: 12px !important;
}

@media (max-width: 700px) {
  .voice-box > form.voice-text-composer {
    width: calc(100% - 28px) !important;
    margin-top: 14px !important;
  }
}

/* Keep every voice control inside the panel on desktop too. The composer
   adds a full control row, so a fixed 640px hero clips the microphone puck. */
.voice-box {
  height: auto !important;
  min-height: 760px !important;
  padding-bottom: 26px !important;
  box-sizing: border-box;
}
.voice-puck {
  flex: 0 0 auto !important;
}

/* Mobile voice panel fit and true-center alignment. */
.voice-puck-copy {
  align-items: center !important;
  text-align: center !important;
}
.voice-puck-arrow {
  flex: 0 0 58px !important;
  margin-right: 0 !important;
}
@media (max-width: 760px) {
  .voice-box {
    height: auto !important;
    min-height: 700px !important;
    padding-bottom: 26px !important;
  }
  .voice-puck {
    flex: 0 0 auto !important;
    margin-bottom: 0 !important;
  }
  .voice-puck-arrow {
    flex-basis: 54px !important;
  }
}
@media (max-width: 390px) {
  .voice-box {
    min-height: 680px !important;
  }
  .voice-puck-arrow {
    flex-basis: 50px !important;
  }
}

/* Tighten the handoff from location to the voice meter. */
.voice-box #mike-use-my-location + .wave {
  margin-top: 6px !important;
}

/* Keep Mike's live text conversation directly beneath the composer. */
.voice-box > .chat {
  position: relative !important;
  order: 0 !important;
  z-index: 4 !important;
  width: min(560px, calc(100% - 40px)) !important;
  max-height: min(52vh, 560px) !important;
  margin: 10px auto 6px !important;
  padding: 0 2px 4px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overflow-anchor: none !important;
  scroll-snap-type: none !important;
  scroll-padding-top: 8px !important;
  overscroll-behavior: contain;
  min-height: 0 !important;
  flex: 1 1 auto !important;
  -webkit-overflow-scrolling: touch;
}
.voice-box > .chat:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.voice-box > .chat .bubble,
.voice-box > .chat .bubble.mike {
  max-width: 94% !important;
  scroll-snap-align: none !important;
  scroll-margin: 0 !important;
  overflow-anchor: none !important;
}
.voice-box.has-chat {
  height: auto !important;
  min-height: 640px !important;
  max-height: none !important;
  padding-bottom: 24px !important;
}
.voice-box.has-chat .wave {
  margin-top: 8px !important;
}
.voice-box.has-chat .voice-puck {
  margin-top: 10px !important;
}
@media(max-width:760px) {
  .voice-box > .chat {
    width: calc(100% - 28px) !important;
    max-height: min(48vh, 480px) !important;
    margin-top: 9px !important;
  }
  .voice-box.has-chat {
    height: auto !important;
    min-height: 540px !important;
    max-height: none !important;
    padding-bottom: 18px !important;
  }
}

/* == mike-home-declutter.css == */
/* Mike AI homepage declutter — layout only. All live actions stay visible and clickable. */

@media (min-width: 761px) {
  .voice-hero {
    min-height: 0 !important;
    height: auto !important;
  }

  .voice-hero > .voice-box {
    min-height: 620px !important;
    padding: 28px 24px 24px !important;
  }

  .voice-box .voice-orb {
    width: 290px !important;
    height: 290px !important;
    margin: 0 auto 8px !important;
  }

  .voice-box > form.voice-text-composer {
    margin-top: 0 !important;
  }

  .voice-box .wave {
    height: 24px !important;
    margin-top: 8px !important;
  }

  .voice-box .voice-hint {
    margin: 8px 0 12px !important;
  }

  .voice-box .voice-puck {
    min-height: 64px !important;
    height: 64px !important;
  }
}

.sample-exchange {
  margin-top: 18px !important;
}

.conversion-cta {
  margin-top: 16px !important;
  margin-bottom: 16px !important;
}

.action-starters {
  margin: 18px 0 12px !important;
  padding: 14px !important;
}

.action-starters-heading {
  margin-bottom: 10px !important;
}

.action-starter {
  min-height: 50px !important;
  padding: 11px 13px !important;
}

.vision-note-input {
  margin-top: 12px !important;
}

.vision-tab-row {
  margin-top: 10px !important;
}

.pricing {
  margin-top: 28px !important;
}

/* Keep the install prompt, but make it a compact lower-right card. */
#mike-install-prompt > div {
  left: auto !important;
  right: 16px !important;
  bottom: 16px !important;
  width: min(360px, calc(100vw - 32px)) !important;
  padding: 14px !important;
}

#mike-install-action {
  margin-top: 9px !important;
  padding: 9px 14px !important;
}

@media (max-width: 760px) {
  main {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  header {
    margin-bottom: 10px !important;
  }

  .voice-hero {
    min-height: 0 !important;
    height: auto !important;
  }

  .voice-hero > .voice-box {
    min-height: 0 !important;
    padding: 18px 12px 16px !important;
  }

  .voice-box .voice-orb {
    width: 205px !important;
    height: 205px !important;
    margin: 0 auto 8px !important;
  }

  .voice-box > form.voice-text-composer {
    width: 100% !important;
    margin: 0 !important;
  }

  .voice-box .wave {
    height: 22px !important;
    margin-top: 6px !important;
  }

  .voice-box .voice-hint {
    margin: 6px 0 10px !important;
  }

  .voice-box .voice-puck {
    width: 100% !important;
    min-height: 58px !important;
    height: 58px !important;
    margin: 0 !important;
  }

  .voice-photo-button,
  .voice-location-button,
  .vision-photo-button {
    margin-top: 8px !important;
  }

  .sample-exchange {
    margin-top: 14px !important;
    padding: 14px !important;
  }

  .conversion-cta {
    margin: 12px 0 !important;
  }

  .action-starters {
    margin: 12px 0 10px !important;
    padding: 12px !important;
  }

  .action-starters-heading {
    margin-bottom: 8px !important;
  }

  .action-starters-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }

  .action-starter {
    min-height: 58px !important;
    padding: 8px 6px !important;
    justify-content: center !important;
    text-align: center !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
  }

  .action-starter svg {
    display: none !important;
  }

  .action-starters-grid .action-starter span::before {
    display: block !important;
    margin: 0 0 4px !important;
    font-size: 15px !important;
  }

  .vision-note-input {
    margin-top: 8px !important;
  }

  .vision-tab-row {
    margin-top: 8px !important;
  }

  .pricing {
    margin-top: 22px !important;
    padding: 24px 18px !important;
  }
}

@media (max-width: 390px) {
  .action-starter {
    font-size: 11px !important;
  }
}


/* Mike orbit actions v2 */
html body .voice-hero > .voice-box {
  position: relative !important;
  overflow: hidden !important;
}

html body .voice-hero > .voice-box > .voice-orb {
  width: 260px !important;
  height: 260px !important;
  min-width: 260px !important;
  min-height: 260px !important;
  flex: 0 0 260px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important;
  box-sizing: border-box !important;
  margin: 34px auto 8px !important;
}

html body .voice-hero > .voice-box > .voice-orb::before,
html body .voice-hero > .voice-box > .voice-orb::after,
html body .voice-hero > .voice-box > .voice-orb > .orb-core {
  border-radius: 50% !important;
  box-sizing: border-box !important;
}

html body .voice-hero > .voice-box > .voice-orb > .orb-core {
  width: 66% !important;
  height: 66% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  flex: 0 0 66% !important;
  aspect-ratio: 1 / 1 !important;
}

html body .voice-box > .action-starters {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  order: -1 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  pointer-events: none !important;
  z-index: 8 !important;
}

html body .voice-box > .action-starters > .action-starters-heading {
  display: none !important;
}

html body .voice-box > .action-starters > .action-starters-grid {
  display: block !important;
  position: static !important;
}

html body .voice-box > .action-starters .action-starter,
html body .voice-box > button[aria-label="Ask Mike about a photo"] {
  position: absolute !important;
  width: 150px !important;
  min-height: 48px !important;
  height: auto !important;
  padding: 10px 12px !important;
  border-radius: 13px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  text-align: center !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  white-space: normal !important;
  pointer-events: auto !important;
  z-index: 9 !important;
}

html body .voice-box > .action-starters .action-starter:nth-child(1) {
  left: max(20px, calc(50% - 360px)) !important;
  top: 92px !important;
}

html body .voice-box > .action-starters .action-starter:nth-child(2) {
  left: max(20px, calc(50% - 360px)) !important;
  top: 154px !important;
}

html body .voice-box > .action-starters .action-starter:nth-child(3) {
  right: max(20px, calc(50% - 360px)) !important;
  top: 92px !important;
}

html body .voice-box > button[aria-label="Ask Mike about a photo"] {
  right: max(20px, calc(50% - 360px)) !important;
  top: 154px !important;
  margin: 0 !important;
}

html body .voice-box > .action-starters .action-starter svg {
  display: none !important;
}

@media (max-width: 760px) {
  html body .voice-hero > .voice-box {
    min-height: 560px !important;
    padding: 18px 10px 16px !important;
  }

  html body .voice-hero > .voice-box > .voice-orb {
    width: 176px !important;
    height: 176px !important;
    min-width: 176px !important;
    min-height: 176px !important;
    flex-basis: 176px !important;
    margin-top: 38px !important;
    margin-bottom: 46px !important;
  }

  html body .voice-box > .action-starters .action-starter,
  html body .voice-box > button[aria-label="Ask Mike about a photo"] {
    width: 82px !important;
    min-height: 52px !important;
    padding: 7px 5px !important;
    border-radius: 12px !important;
    font-size: 10.5px !important;
    letter-spacing: 0 !important;
  }

  html body .voice-box > .action-starters .action-starter:nth-child(1) {
    left: 8px !important;
    top: 84px !important;
  }

  html body .voice-box > .action-starters .action-starter:nth-child(2) {
    left: 8px !important;
    top: 146px !important;
  }

  html body .voice-box > .action-starters .action-starter:nth-child(3) {
    right: 8px !important;
    top: 84px !important;
  }

  html body .voice-box > button[aria-label="Ask Mike about a photo"] {
    right: 8px !important;
    top: 146px !important;
  }

  html body .voice-box > form.voice-text-composer {
    margin-top: 4px !important;
  }

  html body .voice-box .voice-puck {
    margin-top: 0 !important;
  }
}

@media (max-width: 390px) {
  html body .voice-hero > .voice-box > .voice-orb {
    width: 164px !important;
    height: 164px !important;
    min-width: 164px !important;
    min-height: 164px !important;
    flex-basis: 164px !important;
  }

  html body .voice-box > .action-starters .action-starter,
  html body .voice-box > button[aria-label="Ask Mike about a photo"] {
    width: 76px !important;
    font-size: 10px !important;
  }
}


/* Orbit the existing live Vision action as the fourth side tab. */
html body .voice-box > #mike-vision-wrap {
  position: absolute !important;
  right: max(20px, calc(50% - 360px)) !important;
  top: 154px !important;
  width: 150px !important;
  min-height: 48px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  order: -1 !important;
  display: block !important;
  z-index: 9 !important;
}

html body .voice-box > #mike-vision-wrap > #mike-vision-launcher {
  width: 100% !important;
  min-height: 48px !important;
  height: auto !important;
  padding: 9px 10px !important;
  border-radius: 13px !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
  white-space: normal !important;
}

@media (max-width: 760px) {
  html body .voice-box > #mike-vision-wrap {
    right: 8px !important;
    top: 146px !important;
    width: 82px !important;
    min-height: 52px !important;
  }

  html body .voice-box > #mike-vision-wrap > #mike-vision-launcher {
    min-height: 52px !important;
    padding: 6px 4px !important;
    font-size: 10px !important;
  }
}

@media (max-width: 390px) {
  html body .voice-box > #mike-vision-wrap {
    width: 76px !important;
  }

  html body .voice-box > #mike-vision-wrap > #mike-vision-launcher {
    font-size: 9.5px !important;
  }
}


/* Mike orbit actions v4 — balanced five-action ring. */
html body .voice-box > .action-starters .action-starter:nth-child(1) { top: 137px !important; }
html body .voice-box > .action-starters .action-starter:nth-child(2) { top: 199px !important; }
html body .voice-box > .action-starters .action-starter:nth-child(3) { top: 137px !important; }
html body .voice-box > #mike-vision-wrap { top: 199px !important; }

html body .voice-box > .vision-tab-row {
  position: absolute !important;
  left: 50% !important;
  top: 7px !important;
  transform: translateX(-50%) !important;
  width: 150px !important;
  min-height: 48px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  order: -1 !important;
  display: block !important;
  z-index: 10 !important;
}

html body .voice-box > .vision-tab-row > .vision-tab-btn {
  width: 100% !important;
  min-height: 48px !important;
  height: auto !important;
  padding: 9px 10px !important;
  border-radius: 13px !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
  white-space: normal !important;
}

@media (max-width: 760px) {
  html body .voice-box > .action-starters .action-starter:nth-child(1) { top: 87px !important; }
  html body .voice-box > .action-starters .action-starter:nth-child(2) { top: 149px !important; }
  html body .voice-box > .action-starters .action-starter:nth-child(3) { top: 87px !important; }
  html body .voice-box > #mike-vision-wrap { top: 149px !important; }
  html body .voice-box > .vision-tab-row {
    top: 2px !important;
    width: 82px !important;
    min-height: 52px !important;
  }
  html body .voice-box > .vision-tab-row > .vision-tab-btn {
    min-height: 52px !important;
    padding: 6px 4px !important;
    font-size: 10px !important;
    letter-spacing: 0 !important;
  }
}

@media (max-width: 390px) {
  html body .voice-box > .action-starters .action-starter:nth-child(1) { top: 81px !important; }
  html body .voice-box > .action-starters .action-starter:nth-child(2) { top: 143px !important; }
  html body .voice-box > .action-starters .action-starter:nth-child(3) { top: 81px !important; }
  html body .voice-box > #mike-vision-wrap { top: 143px !important; }
  html body .voice-box > .vision-tab-row { width: 76px !important; }
  html body .voice-box > .vision-tab-row > .vision-tab-btn { font-size: 9.5px !important; }
}


/* Mike orbit actions v5 — three clear tabs on each side. */
/* Desktop: three 48px tabs with 14px gaps, centered against the 260px orb. */
html body .voice-box > .action-starters .action-starter:nth-child(1) {
  left: max(20px, calc(50% - 375px)) !important;
  top: 107px !important;
}
html body .voice-box > .action-starters .action-starter:nth-child(2) {
  left: max(20px, calc(50% - 375px)) !important;
  top: 169px !important;
}
html body .voice-box > .action-starters .action-starter:nth-child(3) {
  right: max(20px, calc(50% - 375px)) !important;
  top: 107px !important;
}
html body .voice-box > #mike-vision-wrap {
  right: max(20px, calc(50% - 375px)) !important;
  top: 169px !important;
}
html body .voice-box > .vision-tab-row {
  left: max(20px, calc(50% - 375px)) !important;
  top: 231px !important;
  transform: none !important;
}
html body .voice-box > .mike-games-orbit {
  position: absolute !important;
  right: max(20px, calc(50% - 375px)) !important;
  top: 231px !important;
  width: 150px !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
  z-index: 10 !important;
}
html body .voice-box > .mike-games-orbit > .mike-games-orbit-button {
  width: 100% !important;
  min-height: 48px !important;
  height: auto !important;
  padding: 9px 10px !important;
  border: 1px solid #3a3126 !important;
  border-radius: 13px !important;
  background: #1a1612 !important;
  color: #f9f8f5 !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  line-height: 1.2 !important;
  text-align: center !important;
}

@media (max-width: 760px) {
  /* The 76px tabs leave a visible gutter beside the 176px orb. */
  html body .voice-box > .action-starters .action-starter,
  html body .voice-box > #mike-vision-wrap,
  html body .voice-box > .vision-tab-row,
  html body .voice-box > .mike-games-orbit {
    width: 76px !important;
  }
  html body .voice-box > .action-starters .action-starter:nth-child(1) {
    left: 8px !important;
    top: 60px !important;
  }
  html body .voice-box > .action-starters .action-starter:nth-child(2) {
    left: 8px !important;
    top: 118px !important;
  }
  html body .voice-box > .action-starters .action-starter:nth-child(3) {
    right: 8px !important;
    top: 60px !important;
  }
  html body .voice-box > #mike-vision-wrap {
    right: 8px !important;
    top: 118px !important;
  }
  html body .voice-box > .vision-tab-row {
    left: 8px !important;
    top: 176px !important;
    transform: none !important;
  }
  html body .voice-box > .mike-games-orbit {
    right: 8px !important;
    top: 176px !important;
    min-height: 52px !important;
  }
  html body .voice-box > .mike-games-orbit > .mike-games-orbit-button {
    min-height: 52px !important;
    padding: 6px 4px !important;
    font-size: 10px !important;
    letter-spacing: 0 !important;
  }
}

@media (max-width: 390px) {
  html body .voice-box > .action-starters .action-starter:nth-child(1),
  html body .voice-box > .action-starters .action-starter:nth-child(3) {
    top: 54px !important;
  }
  html body .voice-box > .action-starters .action-starter:nth-child(2),
  html body .voice-box > #mike-vision-wrap {
    top: 112px !important;
  }
  html body .voice-box > .vision-tab-row,
  html body .voice-box > .mike-games-orbit {
    top: 170px !important;
  }
  html body .voice-box > .mike-games-orbit > .mike-games-orbit-button {
    font-size: 9.5px !important;
  }
}


/* Mike orbit actions v6 — unified active treatment and centered orb. */
html body main,
html body .voice-hero,
html body .voice-hero > .voice-box {
  margin-inline: auto !important;
}

html body .voice-hero,
html body .voice-hero > .voice-box {
  width: 100% !important;
  box-sizing: border-box !important;
}

html body .voice-box > .voice-orb {
  align-self: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

html body .voice-box > .action-starters .action-starter,
html body .voice-box > #mike-vision-wrap > #mike-vision-launcher,
html body .voice-box > .vision-tab-row > .vision-tab-btn,
html body .voice-box > .mike-games-orbit > .mike-games-orbit-button {
  border: 1px solid rgba(94, 186, 134, 0.67) !important;
  background: #1a1109 !important;
  color: #ebe7df !important;
  box-shadow: inset 0 0 0 1px rgba(47, 124, 80, 0.04) !important;
  transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease, transform 160ms ease !important;
}

html body .voice-box > .action-starters .action-starter:hover,
html body .voice-box > #mike-vision-wrap > #mike-vision-launcher:hover,
html body .voice-box > .vision-tab-row > .vision-tab-btn:hover,
html body .voice-box > .mike-games-orbit > .mike-games-orbit-button:hover,
html body .voice-box > .action-starters .action-starter:focus-visible,
html body .voice-box > #mike-vision-wrap > #mike-vision-launcher:focus-visible,
html body .voice-box > .vision-tab-row > .vision-tab-btn:focus-visible,
html body .voice-box > .mike-games-orbit > .mike-games-orbit-button:focus-visible {
  border-color: #5eba86 !important;
  background: #24150d !important;
  box-shadow: 0 0 0 2px rgba(47, 124, 80, 0.14) !important;
}


/* Mike composer alignment v7 — center the orb over the actual typing field. */
@media (min-width: 761px) {
  html body .voice-box > form.voice-text-composer {
    position: relative !important;
    display: block !important;
  }

  html body .voice-box > form.voice-text-composer > input {
    width: 100% !important;
    box-sizing: border-box !important;
    padding-right: 74px !important;
  }

  html body .voice-box > form.voice-text-composer > button[aria-label="Send"] {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    margin: 0 !important;
    z-index: 2 !important;
  }
}


/* Mike composer send-button sizing v8. */
@media (min-width: 761px) {
  html body .voice-box > form.voice-text-composer > button[aria-label="Send"] {
    width: 50px !important;
    min-width: 50px !important;
    height: 52px !important;
    min-height: 52px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 14px !important;
  }
}


/* Mike composer spacing v11 — preserve the shared centerline and add visual separation. */
@media (min-width: 761px) {
  html body .voice-box > form.voice-text-composer {
    left: 0 !important;
    margin-top: 14px !important;
  }
}

/* == mike-hero-look.css == */
/* Mike AI homepage look — background photo, single-ring orb, one button family.
   Loaded LAST so it wins on equal specificity. Deliberately a standalone sheet:
   it touches no patch script, no src/main.jsx and no package.json, so it cannot
   collide with the other agent's build. Backing it out = deleting one <link>. */

/* ---- background ------------------------------------------------------- */
html body .voice-hero{
  position:relative;
  background-image:
    linear-gradient(180deg,rgba(2,6,10,.10) 0%,rgba(2,6,10,.03) 44%,rgba(2,6,10,.26) 100%),
    linear-gradient(90deg,rgba(46, 122, 79, 0.07) 0%,rgba(53, 139, 90, 0.03) 35%,rgba(57, 151, 98, 0.1) 72%,rgba(46, 122, 79, 0.03) 100%),
    url('/mike-hero-bg.jpg');
  background-size:cover;
  background-position:50% 42%;
  background-repeat:no-repeat;
}
/* Keep enough contrast for white text, but let the Charleston sunset, bridge,
   sky and water stay bright and visibly warm. */

@media (max-width:760px){
  html body .voice-hero{
    background-image:
      linear-gradient(180deg,rgba(2,6,10,.18) 0%,rgba(2,6,10,.08) 42%,rgba(2,6,10,.36) 100%),
      linear-gradient(90deg,rgba(46, 122, 79, 0.06),rgba(56, 148, 96, 0.08),rgba(46, 122, 79, 0.03)),
      url('/mike-hero-bg-mobile.jpg');
    background-position:50% 40%;
  }
}

/* Let more of the photo through while preserving enough glass for controls. */
html body .voice-hero > .voice-box{
  background:linear-gradient(180deg,rgba(17, 14, 11, 0.18),rgba(11, 9, 7, 0.3))!important;
  border-color:rgba(94, 186, 134, 0.38)!important;
  box-shadow:inset 0 0 80px rgba(0,0,0,.20),0 24px 58px rgba(0,0,0,.34)!important;
  backdrop-filter:blur(1px);
}

/* ---- orb: one clean ring, as in the mockup ---------------------------- */
html body .voice-hero > .voice-box > .voice-orb{
  border:0!important;
  background:radial-gradient(circle at 50% 38%,#1d1813 0%,#110e0b 60%,#090806 100%)!important;
  box-shadow:inset 0 0 60px #000,0 18px 50px rgba(0,0,0,.8)!important;
}
html body .voice-hero > .voice-box > .voice-orb::before{
  inset:-14px!important;
  border:6px solid #5eba86!important;
  background:none!important;
  mask:none!important;-webkit-mask:none!important;
  box-shadow:0 0 34px rgba(46, 122, 79, 0.53),0 0 90px rgba(46, 122, 79, 0.2),
             inset 0 0 26px rgba(46, 122, 79, 0.33)!important;
}
html body .voice-hero > .voice-box > .voice-orb::after{display:none!important}

/* ---- one button family ------------------------------------------------ */
/* The six actions live in four different containers. Geometry below is kept
   separate from their shared visual treatment so mobile can retain its compact
   controls without ever covering the orb. */
@media (min-width:761px){
  html body .voice-box .vision-tab-row > button,
  html body .voice-box .action-starters .action-starters-grid > button,
  html body .voice-box #mike-vision-wrap > button,
  html body .voice-box .mike-games-orbit > button{
    min-width:0!important;
    min-height:58px!important;
    height:58px!important;
    padding:14px 22px!important;
    border-radius:999px!important;
    background:linear-gradient(180deg,rgba(32, 27, 22, 0.88),rgba(22, 18, 14, 0.88))!important;
    color:#f6f4f0!important;
    font-size:15px!important;
    font-weight:700!important;
    letter-spacing:.005em!important;
    line-height:1.15!important;
    backdrop-filter:blur(6px);
    box-sizing:border-box!important;
  }

  /* Six-button desktop lockup: exactly three on each side of the orb.
     All rows share one top coordinate and one 74px rhythm, so they cannot
     drift vertically when the individual controls come from different DOM
     containers. The width shrinks safely on narrower desktops. */
  html body .voice-box{
    --mike-action-w:min(290px, calc(50% - 190px));
    --mike-action-x:max(24px, calc(50% - 465px));
  }

  html body .voice-box > .vision-tab-row{
    left:var(--mike-action-x)!important;
    right:auto!important;
    top:60px!important;
    width:var(--mike-action-w)!important;
    min-width:0!important;
    min-height:58px!important;
    transform:none!important;
  }
  html body .voice-box > #mike-vision-wrap{
    left:var(--mike-action-x)!important;
    right:auto!important;
    top:134px!important;
    width:var(--mike-action-w)!important;
    min-width:0!important;
    min-height:58px!important;
  }
  html body .voice-box > .action-starters .action-starter:nth-child(1){
    left:var(--mike-action-x)!important;
    right:auto!important;
    top:208px!important;
    width:var(--mike-action-w)!important;
  }

  html body .voice-box > .action-starters .action-starter:nth-child(3){
    right:var(--mike-action-x)!important;
    left:auto!important;
    top:60px!important;
    width:var(--mike-action-w)!important;
  }
  html body .voice-box > .action-starters .action-starter:nth-child(2){
    right:var(--mike-action-x)!important;
    left:auto!important;
    top:134px!important;
    width:var(--mike-action-w)!important;
  }
  html body .voice-box > .mike-games-orbit{
    right:var(--mike-action-x)!important;
    left:auto!important;
    top:208px!important;
    width:var(--mike-action-w)!important;
    min-width:0!important;
    min-height:58px!important;
  }

  html body .voice-box > .vision-tab-row > button,
  html body .voice-box > #mike-vision-wrap > button,
  html body .voice-box > .mike-games-orbit > button{
    width:100%!important;
    height:58px!important;
    min-height:58px!important;
  }
}

/* Visual treatment is shared at every breakpoint without changing mobile
   geometry: all six buttons carry the same orange border + halo. */
html body .voice-box .vision-tab-row > button,
html body .voice-box .action-starters .action-starters-grid > button,
html body .voice-box #mike-vision-wrap > button,
html body .voice-box .mike-games-orbit > button{
  border:1px solid rgba(94, 186, 134, 0.94)!important;
  box-shadow:
    0 0 0 1px rgba(46, 122, 79, 0.14),
    0 0 20px rgba(46, 122, 79, 0.44),
    0 10px 28px rgba(0,0,0,.42)!important;
}
html body .voice-box .vision-tab-row > button:hover,
html body .voice-box .action-starters .action-starters-grid > button:hover,
html body .voice-box #mike-vision-wrap > button:hover,
html body .voice-box .mike-games-orbit > button:hover,
html body .voice-box .vision-tab-row > button:focus-visible,
html body .voice-box .action-starters .action-starters-grid > button:focus-visible,
html body .voice-box #mike-vision-wrap > button:focus-visible,
html body .voice-box .mike-games-orbit > button:focus-visible{
  border-color:#5eba86!important;
  background:linear-gradient(180deg,rgba(44, 37, 30, 0.96),rgba(28, 24, 19, 0.96))!important;
  box-shadow:
    0 0 0 2px rgba(46, 122, 79, 0.22),
    0 0 30px rgba(46, 122, 79, 0.68),
    0 12px 30px rgba(0,0,0,.46)!important;
  outline:none!important;
}

/* "Find me a deal" had a heading above it that the mockup does not have. */
html body .voice-box .action-starters .action-starters-heading{display:none!important}

/* ---- hero title -------------------------------------------------------- */
/* Inserted by mike-hero-title.js as an absolutely positioned child of
   .voice-hero. It is OUT of layout on purpose: the room it needs comes from
   padding-top below, so the card and orb shift down together instead of the
   grid being rearranged around a new child. */
html body .voice-hero{padding-top:118px!important}

html body .voice-hero > #mike-hero-title{
  position:absolute!important;
  top:18px;left:0;right:0;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:0 16px;
  text-align:center;
  z-index:4;
  pointer-events:none;
}
html body .voice-hero > #mike-hero-title .mike-hero-title-main{
  font-family:Inter,system-ui,sans-serif;
  font-weight:900;
  color:#fff;
  font-size:clamp(30px,4.6vw,58px);
  line-height:1.04;
  letter-spacing:.01em;
  text-shadow:0 3px 18px rgba(0,0,0,.65);
}
html body .voice-hero > #mike-hero-title .mike-hero-title-main b{color:#5eba86;font-weight:900}
html body .voice-hero > #mike-hero-title .mike-hero-title-sub{
  font-size:clamp(10px,1.1vw,14px);
  letter-spacing:.32em;
  color:#f0ece6;
  font-weight:600;
  text-shadow:0 2px 10px rgba(0,0,0,.72);
}

@media (max-width:760px){
  html body .voice-hero{padding-top:92px!important}
  html body .voice-hero > #mike-hero-title{top:12px}
  html body .voice-hero > #mike-hero-title .mike-hero-title-sub{letter-spacing:.18em}
}

/* == mike-six-button-lock.css == */
/* Final visual + geometry lock for the six Mike homepage actions.
   Loaded last. Appearance and position only; handlers stay on the existing nodes. */

/* ---- header blend ----------------------------------------------------- */
html body main > header{
  position:relative!important;
  overflow:hidden!important;
  background-image:
    linear-gradient(90deg,rgba(11, 9, 7, 0.86) 0%,rgba(18,13,10,.68) 44%,rgba(13, 11, 9, 0.84) 100%),
    linear-gradient(180deg,rgba(46, 122, 79, 0.12) 0%,rgba(11, 9, 7, 0.55) 100%),
    url('/mike-hero-bg.jpg')!important;
  background-size:cover!important;
  background-position:50% 28%!important;
  background-repeat:no-repeat!important;
  border:1px solid rgba(94, 186, 134, 0.16)!important;
  border-bottom-color:rgba(97, 159, 209, 0.16)!important;
  box-shadow:
    inset 0 -1px 0 rgba(255,255,255,.025),
    0 14px 34px rgba(0,0,0,.30)!important;
  backdrop-filter:blur(8px) saturate(1.08)!important;
  -webkit-backdrop-filter:blur(8px) saturate(1.08)!important;
}
html body main > header::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(440px 120px at 9% 45%,rgba(46, 122, 79, 0.15),transparent 66%),
    radial-gradient(460px 140px at 90% 50%,rgba(57, 120, 172, 0.06),transparent 70%);
  z-index:0;
}
html body main > header > *{
  position:relative;
  z-index:1;
}
@media (max-width:760px){
  html body main > header{
    background-position:50% 30%!important;
    background-image:
      linear-gradient(90deg,rgba(11, 9, 7, 0.9),rgba(14,12,11,.72),rgba(13, 11, 9, 0.88)),
      linear-gradient(180deg,rgba(46, 122, 79, 0.1),rgba(11, 9, 7, 0.62)),
      url('/mike-hero-bg-mobile.jpg')!important;
  }
}

/* ---- six-action lock: 3 left, 3 right of the orb ---------------------- */
html body .voice-hero > .voice-box{
  position:relative!important;
  overflow:visible!important;
  --mike-rail-w:min(240px, calc((100% - 300px) / 2));
  --mike-rail-x:max(16px, calc(50% - 150px - var(--mike-rail-w) - 18px));
  --mike-row-1:56px;
  --mike-row-2:130px;
  --mike-row-3:204px;
  --mike-btn-h:58px;
}

html body .voice-hero > .voice-box > .voice-orb{
  width:260px!important;
  height:260px!important;
  min-width:260px!important;
  min-height:260px!important;
  flex:0 0 260px!important;
  margin:56px auto 12px!important;
  align-self:center!important;
  pointer-events:none!important;
}

html body .voice-box > .action-starters{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  pointer-events:none!important;
  z-index:12!important;
}
html body .voice-box > .action-starters > .action-starters-heading{
  display:none!important;
}
html body .voice-box > .action-starters > .action-starters-grid{
  display:block!important;
  position:static!important;
  width:0!important;
  height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}

html body .voice-box > .vision-tab-row,
html body .voice-box > #mike-vision-wrap,
html body .voice-box > .mike-games-orbit,
html body .voice-box > .action-starters .action-starters-grid > .action-starter{
  position:absolute!important;
  box-sizing:border-box!important;
  width:var(--mike-rail-w)!important;
  min-width:0!important;
  max-width:var(--mike-rail-w)!important;
  height:var(--mike-btn-h)!important;
  min-height:var(--mike-btn-h)!important;
  max-height:var(--mike-btn-h)!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  pointer-events:auto!important;
  z-index:13!important;
}

/* LEFT: Analyze Deal, Ask about a photo, Find me a deal */
html body .voice-box > .vision-tab-row{
  left:var(--mike-rail-x)!important;
  right:auto!important;
  top:var(--mike-row-1)!important;
  transform:none!important;
}
html body .voice-box > #mike-vision-wrap{
  left:var(--mike-rail-x)!important;
  right:auto!important;
  top:var(--mike-row-2)!important;
  display:block!important;
}
html body .voice-box > .action-starters .action-starters-grid > .action-starter:nth-child(1){
  left:var(--mike-rail-x)!important;
  right:auto!important;
  top:var(--mike-row-3)!important;
}

/* RIGHT: Help me write, Money, Play a game */
html body .voice-box > .action-starters .action-starters-grid > .action-starter:nth-child(3){
  right:var(--mike-rail-x)!important;
  left:auto!important;
  top:var(--mike-row-1)!important;
}
html body .voice-box > .action-starters .action-starters-grid > .action-starter:nth-child(2){
  right:var(--mike-rail-x)!important;
  left:auto!important;
  top:var(--mike-row-2)!important;
}
html body .voice-box > .mike-games-orbit{
  display:none!important;
  right:var(--mike-rail-x)!important;
  left:auto!important;
  top:var(--mike-row-3)!important;
}

html body .voice-box > .vision-tab-row > .vision-tab-btn:not(.vision-tab-primary){
  display:none!important;
}

html body .voice-box > .vision-tab-row > .vision-tab-btn,
html body .voice-box > #mike-vision-wrap > #mike-vision-launcher,
html body .voice-box > .mike-games-orbit > .mike-games-orbit-button{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:var(--mike-btn-h)!important;
  min-height:var(--mike-btn-h)!important;
  max-height:var(--mike-btn-h)!important;
  margin:0!important;
  padding:0 14px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  border:1px solid #5eba86!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,rgba(32, 27, 22, 0.94),rgba(20, 17, 13, 0.94))!important;
  color:#f9f8f5!important;
  box-shadow:0 0 0 1px rgba(46, 122, 79, 0.12),0 0 20px rgba(46, 122, 79, 0.42),0 10px 28px rgba(0,0,0,.42)!important;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif!important;
  font-size:15px!important;
  font-style:normal!important;
  font-weight:750!important;
  line-height:1.15!important;
  letter-spacing:0!important;
  text-align:center!important;
  text-transform:none!important;
  white-space:nowrap!important;
  text-decoration:none!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  z-index:14!important;
  transition:border-color 160ms ease,background 160ms ease,box-shadow 160ms ease,transform 160ms ease!important;
}

/* Starters are the positioned nodes themselves — never width:100% of the orb box. */
html body .voice-box > .action-starters .action-starters-grid > .action-starter{
  box-sizing:border-box!important;
  width:var(--mike-rail-w)!important;
  min-width:0!important;
  max-width:var(--mike-rail-w)!important;
  height:var(--mike-btn-h)!important;
  min-height:var(--mike-btn-h)!important;
  max-height:var(--mike-btn-h)!important;
  margin:0!important;
  padding:0 14px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  border:1px solid #5eba86!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,rgba(32, 27, 22, 0.94),rgba(20, 17, 13, 0.94))!important;
  color:#f9f8f5!important;
  box-shadow:0 0 0 1px rgba(46, 122, 79, 0.12),0 0 20px rgba(46, 122, 79, 0.42),0 10px 28px rgba(0,0,0,.42)!important;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif!important;
  font-size:15px!important;
  font-style:normal!important;
  font-weight:750!important;
  line-height:1.15!important;
  letter-spacing:0!important;
  text-align:center!important;
  text-transform:none!important;
  white-space:nowrap!important;
  text-decoration:none!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  z-index:14!important;
  transition:border-color 160ms ease,background 160ms ease,box-shadow 160ms ease,transform 160ms ease!important;
}

html body .voice-box > .vision-tab-row > .vision-tab-btn *,
html body .voice-box > #mike-vision-wrap > #mike-vision-launcher *,
html body .voice-box > .action-starters .action-starters-grid > .action-starter *,
html body .voice-box > .mike-games-orbit > .mike-games-orbit-button *{
  font:inherit!important;
  color:inherit!important;
  line-height:inherit!important;
  letter-spacing:inherit!important;
}

html body .voice-box > .action-starters .action-starters-grid > .action-starter svg,
html body .voice-box > .action-starters .action-starters-grid > .action-starter span::before{
  display:none!important;
  content:none!important;
}

html body .voice-box > .vision-tab-row > .vision-tab-btn:hover,
html body .voice-box > #mike-vision-wrap > #mike-vision-launcher:hover,
html body .voice-box > .action-starters .action-starters-grid > .action-starter:hover,
html body .voice-box > .mike-games-orbit > .mike-games-orbit-button:hover,
html body .voice-box > .vision-tab-row > .vision-tab-btn:focus-visible,
html body .voice-box > #mike-vision-wrap > #mike-vision-launcher:focus-visible,
html body .voice-box > .action-starters .action-starters-grid > .action-starter:focus-visible,
html body .voice-box > .mike-games-orbit > .mike-games-orbit-button:focus-visible{
  border-color:#6abf8f!important;
  background:linear-gradient(180deg,rgba(44, 37, 30, 0.98),rgba(28, 23, 18, 0.98))!important;
  box-shadow:0 0 0 2px rgba(46, 122, 79, 0.18),0 0 30px rgba(46, 122, 79, 0.66),0 12px 30px rgba(0,0,0,.46)!important;
  outline:none!important;
}

@media (max-width:760px){
  html body .voice-hero > .voice-box{
    --mike-orb:156px;
    --mike-rail-x:6px;
    --mike-gap:10px;
    --mike-rail-w:max(72px, calc((100% - var(--mike-orb) - (2 * var(--mike-rail-x)) - (2 * var(--mike-gap))) / 2));
    --mike-row-1:44px;
    --mike-row-2:104px;
    --mike-row-3:164px;
    --mike-btn-h:52px;
    min-height:620px!important;
    padding:16px 8px 18px!important;
  }
  html body .voice-hero > .voice-box > .voice-orb{
    width:var(--mike-orb)!important;
    height:var(--mike-orb)!important;
    min-width:var(--mike-orb)!important;
    min-height:var(--mike-orb)!important;
    flex-basis:var(--mike-orb)!important;
    margin:48px auto 10px!important;
  }
  html body .voice-box > .vision-tab-row > .vision-tab-btn,
  html body .voice-box > #mike-vision-wrap > #mike-vision-launcher,
  html body .voice-box > .action-starters .action-starters-grid > .action-starter,
  html body .voice-box > .mike-games-orbit > .mike-games-orbit-button{
    padding:0 5px!important;
    font-size:11px!important;
    white-space:normal!important;
    line-height:1.12!important;
    overflow:hidden!important;
  }
  /* Visible label only. Handler, aria-label, and photo picker stay the same. */
  html body .voice-box > #mike-vision-wrap > #mike-vision-launcher{
    font-size:0!important;
  }
  html body .voice-box > #mike-vision-wrap > #mike-vision-launcher::after{
    content:"Ask about a photo";
    font-size:11px!important;
    line-height:1.12!important;
    font-weight:750!important;
    color:inherit!important;
    white-space:normal!important;
    text-align:center!important;
  }
}

@media (max-width:390px){
  html body .voice-hero > .voice-box{
    --mike-orb:148px;
    --mike-rail-x:6px;
    --mike-row-1:40px;
    --mike-row-2:98px;
    --mike-row-3:156px;
    --mike-btn-h:50px;
  }
  html body .voice-hero > .voice-box > .voice-orb{
    width:var(--mike-orb)!important;
    height:var(--mike-orb)!important;
    min-width:var(--mike-orb)!important;
    min-height:var(--mike-orb)!important;
    flex-basis:var(--mike-orb)!important;
    margin:44px auto 8px!important;
  }
  html body .voice-box > .vision-tab-row > .vision-tab-btn,
  html body .voice-box > .action-starters .action-starters-grid > .action-starter,
  html body .voice-box > .mike-games-orbit > .mike-games-orbit-button{
    font-size:10px!important;
  }
  html body .voice-box > #mike-vision-wrap > #mike-vision-launcher::after{
    font-size:10px!important;
  }
}

/* == mike-orb-logo-fit.css == */
/* Scale the DT + MIKE lockup to the inner orb.
   Later sheets shrunk the orb (156px on phones) while the letters stayed
   58–78px, so D/T clipped the ring and MIKE was cut off at the bottom. */

html body .voice-hero .voice-box .voice-orb .orb-core {
  container-type: size;
  container-name: mike-orb-core;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  align-content: center !important;
  justify-content: center !important;
  padding: 10% 8% 14% !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html body .voice-hero .voice-box .voice-orb .orb-core > span,
html body .voice-hero .voice-box .voice-orb .orb-core > em {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  display: block !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  font-size: min(42px, 34cqw) !important;
  line-height: 0.82 !important;
  letter-spacing: -0.12em !important;
}

html body .voice-hero .voice-box .voice-orb .orb-core::after {
  position: static !important;
  transform: none !important;
  flex: 0 0 100% !important;
  width: 100% !important;
  margin: 0 !important;
  padding-top: 0.55em !important;
  bottom: auto !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  text-align: center !important;
  text-indent: 0.18em !important;
  font-size: min(13px, 11cqw) !important;
  letter-spacing: 0.18em !important;
  line-height: 1 !important;
  background-image: linear-gradient(
    to bottom,
    #fff 0 0.14em,
    transparent 0.14em 0.28em,
    #2f7c50 0.28em 0.42em,
    transparent 0.42em
  ) !important;
  background-repeat: no-repeat !important;
  background-size: 72% 0.42em !important;
  background-position: 50% 0 !important;
}

@media (max-width: 760px) {
  html body .voice-hero .voice-box .voice-orb .orb-core > span,
  html body .voice-hero .voice-box .voice-orb .orb-core > em {
    font-size: min(36px, 32cqw) !important;
  }
  html body .voice-hero .voice-box .voice-orb .orb-core::after {
    font-size: min(11px, 10cqw) !important;
    letter-spacing: 0.14em !important;
  }
}

@media (max-width: 390px) {
  html body .voice-hero .voice-box .voice-orb .orb-core > span,
  html body .voice-hero .voice-box .voice-orb .orb-core > em {
    font-size: min(32px, 30cqw) !important;
  }
  html body .voice-hero .voice-box .voice-orb .orb-core::after {
    font-size: min(10px, 9.5cqw) !important;
  }
}

/* == mike-orb-true-center.css == */
/* True-center the orb. Side actions measure from the orb, not the screen edge,
   so iOS padding / safe-area cannot drift it. Handlers and labels unchanged. */

html body .voice-hero > .voice-box{
  --mike-orb:260px;
  --mike-gap:16px;
  --mike-rail-w:min(240px, max(72px, calc(50% - (var(--mike-orb) / 2) - var(--mike-gap) - 8px)));
  align-items:center!important;
}

html body .voice-hero > .voice-box > .voice-orb{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  align-self:center!important;
  width:var(--mike-orb)!important;
  height:var(--mike-orb)!important;
  min-width:var(--mike-orb)!important;
  min-height:var(--mike-orb)!important;
  flex:0 0 var(--mike-orb)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Left rail sits `gap` off the orb's left edge. */
html body .voice-box > .vision-tab-row,
html body .voice-box > #mike-vision-wrap,
html body .voice-box > .action-starters .action-starters-grid > .action-starter:nth-child(1){
  left:auto!important;
  right:calc(50% + (var(--mike-orb) / 2) + var(--mike-gap))!important;
  width:var(--mike-rail-w)!important;
  min-width:0!important;
  max-width:var(--mike-rail-w)!important;
}

/* Right rail sits `gap` off the orb's right edge. */
html body .voice-box > .action-starters .action-starters-grid > .action-starter:nth-child(2),
html body .voice-box > .action-starters .action-starters-grid > .action-starter:nth-child(3),
html body .voice-box > .mike-games-orbit{
  right:auto!important;
  left:calc(50% + (var(--mike-orb) / 2) + var(--mike-gap))!important;
  width:var(--mike-rail-w)!important;
  min-width:0!important;
  max-width:var(--mike-rail-w)!important;
}

@media (max-width:760px){
  html body .voice-hero > .voice-box{
    --mike-orb:156px;
    --mike-gap:10px;
  }
}

@media (max-width:390px){
  html body .voice-hero > .voice-box{
    --mike-orb:148px;
    --mike-gap:8px;
  }
}

/* == mike-phone-clean.css == */
/* Phone home. The orbit lockup fits a desktop and collides on an iPhone:
   buttons cover the orb, Write and Money fall out, and the composer is cut off.
   Under 760px, stack a centered orb, a 2-column action grid, then the composer
   and the talk bar. Handlers and labels stay put. */

@media (max-width: 760px) {
  html body .voice-hero {
    padding-top: 78px !important;
  }

  html body .voice-hero > .voice-box {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    gap: 10px 8px !important;
    align-items: stretch !important;
    justify-items: stretch !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 14px 12px 16px !important;
    box-sizing: border-box !important;
  }

  html body .voice-hero > .voice-box > .voice-orb {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    position: relative !important;
    inset: auto !important;
    justify-self: center !important;
    align-self: center !important;
    width: 168px !important;
    height: 168px !important;
    min-width: 168px !important;
    max-width: 168px !important;
    min-height: 168px !important;
    max-height: 168px !important;
    flex: 0 0 168px !important;
    margin: 2px auto 2px !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
  }

  html body .voice-hero > .voice-box > .voice-orb::before {
    inset: -10px !important;
    border-width: 5px !important;
  }

  html body .voice-box > .vision-tab-row,
  html body .voice-box > #mike-vision-wrap,
  html body .voice-box > .mike-games-orbit {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    transform: none !important;
  }

  html body .voice-box > .vision-tab-row { grid-column: 1 !important; grid-row: 2 !important; }
  html body .voice-box > #mike-vision-wrap { grid-column: 1 !important; grid-row: 3 !important; }
  html body .voice-box > .mike-games-orbit { grid-column: 2 !important; grid-row: 4 !important; }

  html body .voice-box > .action-starters,
  html body .voice-box > .action-starters > .action-starters-grid {
    display: contents !important;
    position: static !important;
    inset: auto !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
    pointer-events: none !important;
  }

  html body .voice-box > .action-starters .action-starters-heading {
    display: none !important;
  }

  html body .voice-box .action-starters .action-starter:nth-child(1) {
    grid-column: 1 !important;
    grid-row: 4 !important;
  }
  html body .voice-box .action-starters .action-starter:nth-child(2) {
    grid-column: 2 !important;
    grid-row: 3 !important;
  }
  html body .voice-box .action-starters .action-starter:nth-child(3) {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }

  html body .voice-box > .vision-tab-row > button,
  html body .voice-box > #mike-vision-wrap > button,
  html body .voice-box .action-starters .action-starter,
  html body .voice-box > .mike-games-orbit > button {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 56px !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    border-radius: 18px !important;
    box-sizing: border-box !important;
    font-size: 13px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    overflow: visible !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  html body .voice-box > #mike-vision-wrap > #mike-vision-launcher {
    font-size: 0 !important;
  }
  html body .voice-box > #mike-vision-wrap > #mike-vision-launcher::after {
    content: "Ask about a photo";
    font-size: 13px !important;
    line-height: 1.15 !important;
    font-weight: 750 !important;
    white-space: normal !important;
  }

  html body .voice-box .action-starter svg {
    display: none !important;
  }

  html body .voice-box > .voice-state,
  html body .voice-box > form.voice-text-composer,
  html body .voice-box > .chat,
  html body .voice-box > .wave,
  html body .voice-box > .voice-hint,
  html body .voice-box > .voice-puck {
    grid-column: 1 / -1 !important;
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
  }

  html body .voice-box > .voice-state { grid-row: 5 !important; }
  html body .voice-box > form.voice-text-composer { grid-row: 6 !important; }
  html body .voice-box > .chat { grid-row: 7 !important; }
  html body .voice-box > .wave { grid-row: 8 !important; justify-self: center !important; }
  html body .voice-box > .voice-hint { grid-row: 9 !important; text-align: center !important; }
  html body .voice-box > .voice-puck {
    grid-row: 10 !important;
    height: auto !important;
    min-height: 64px !important;
  }

  html body .voice-box > form.voice-text-composer {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px !important;
    box-sizing: border-box !important;
  }

  html body .voice-box > form.voice-text-composer .sold-avg-input {
    flex: 0 0 84px !important;
    width: 84px !important;
    min-width: 0 !important;
    max-width: 84px !important;
    padding: 12px 8px !important;
    font-size: 12px !important;
  }

  html body .voice-box > form.voice-text-composer input:not(.sold-avg-input) {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  html body .voice-box > form.voice-text-composer button {
    flex: 0 0 46px !important;
    width: 46px !important;
    min-width: 46px !important;
    height: 46px !important;
  }
}

/* == mike-simple-home.css == */
/* Simple home screen — "What do you need done?"
   Loaded last among the static sheets. Selectors are prefixed with
   `html body` because the vite-bundled stylesheet is injected after every
   linked sheet and would otherwise win specificity ties. Everything here is
   scoped to the .simple-head header (added by scripts/patch-simple-home.mjs), so removing
   that patch restores the previous page exactly. */

html body { background: #16120e !important; }
html body::before, html body::after { display: none !important; }

/* Hide the old hero pieces and the floating extras. They stay in the DOM so
   their scripts keep working; they just are not part of this screen. */
html body .simple-head ~ .copy,
html body .voice-hero:has(> .simple-head) #mike-hero-title,
html body .simple-head ~ .voice-box .vision-tab-row,
html body .simple-head ~ .voice-box .voice-orb,
html body .simple-head ~ .voice-box .action-starters,
html body .simple-head ~ .voice-box .voice-state,
html body .simple-head ~ .voice-box .wave,
html body .simple-head ~ .voice-box .voice-hint,
html body .simple-head ~ .voice-box .voice-puck,
html body .simple-head ~ .voice-box .mike-games-orbit,
html body .voice-hero:has(> .simple-head) #mike-vision-wrap,
html body .voice-hero:has(> .simple-head) #mike-quick-actions,
html body .simple-head ~ .voice-box .sold-avg-input,
html body .simple-head ~ .voice-box .voice-text-composer > button[aria-label="Send"],
html body #mike-weather-bar,
html body #mike-money-playbook,
html body #mike-resale-deals,
html body main > .vision-note-input,
html body main > .sample-exchange,
html body main:has(.simple-head[data-signed-in]) > .conversion-cta,
html body main:has(.simple-head[data-paid]) > .pricing {
  display: none !important;
}

/* Page frame */
html body .voice-hero:has(> .simple-head) {
  display: block !important;
  position: static !important;
  width: 100% !important;
  max-width: 32rem !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 auto !important;
  padding: 24px 20px 32px !important;
  box-sizing: border-box !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: left !important;
  transform: none !important;
}

html body .simple-head { display: block; }
html body .simple-top { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
html body .simple-top strong {
  font: 800 30px/1 "Barlow Condensed", "Arial Narrow", "Roboto Condensed", Impact, system-ui, sans-serif;
  letter-spacing: .06em;
  color: #2f7c50;
}
html body .simple-top span { font-size: 14px; color: #9aa3ab; }
html body .simple-head h1 {
  margin: 20px 0 0 !important;
  padding: 0 !important;
  font: 800 clamp(40px, 11vw, 52px)/1.02 "Barlow Condensed", "Arial Narrow", "Roboto Condensed", Impact, system-ui, sans-serif !important;
  letter-spacing: -.005em !important;
  color: #f4f1ec !important;
  text-align: left !important;
  text-transform: none !important;
  background: none !important;
  -webkit-text-fill-color: #f4f1ec !important;
}
html body .simple-greeting { margin: 16px 0 0; font-size: 17px; line-height: 1.5; color: #e7e3dd; }

/* The existing voice box becomes a plain column: chat, then composer. */
html body .simple-head ~ .voice-box {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 16px 0 0 !important;
  padding: 0 !important;
  gap: 16px !important;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  transform: none !important;
  cursor: default !important;
}
html body .simple-head ~ .voice-box::before,
html body .simple-head ~ .voice-box::after { display: none !important; }

/* Conversation */
html body .simple-head ~ .voice-box .chat {
  order: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: none !important;
  border: 0 !important;
}
html body .simple-head ~ .voice-box .chat:empty { display: none !important; }
html body .simple-head ~ .voice-box .chat .bubble {
  max-width: 92% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #f4f1ec !important;
  font-size: 16px !important;
  line-height: 1.55 !important;
  text-align: left !important;
}
html body .simple-head ~ .voice-box .chat .bubble.user {
  align-self: flex-end !important;
  max-width: 85% !important;
  padding: 12px 16px !important;
  border-radius: 12px !important;
  background: #2f7c50 !important;
  color: #ffffff !important;
  font-weight: 600 !important;
}
html body .simple-head ~ .voice-box .chat .bubble.mike { align-self: flex-start !important; }

/* Composer */
html body .simple-head ~ .voice-box .voice-text-composer {
  order: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 12px !important;
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}
html body .simple-head ~ .voice-box .voice-text-composer #input {
  display: block !important;
  width: 100% !important;
  min-height: 72px !important;
  margin: 0 !important;
  padding: 14px 16px !important;
  box-sizing: border-box !important;
  border: 1px solid #3a3126 !important;
  border-radius: 12px !important;
  background: #221c16 !important;
  color: #f4f1ec !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  outline: none !important;
  flex: none !important;
}
html body .simple-head ~ .voice-box .voice-text-composer #input:focus { border-color: #5eba86 !important; }
html body .simple-head ~ .voice-box .voice-text-composer #input::placeholder { color: #8b949c !important; }

html body .simple-home-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  width: 100%;
}
html body .voice-box > form.voice-text-composer .simple-home-actions button.simple-btn,
html body .simple-home-actions .simple-btn {
  flex: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  border: 1px solid #3a3126 !important;
  border-radius: 12px !important;
  background: #221c16 !important;
  color: #f4f1ec !important;
  font: 600 16px/1.2 system-ui, -apple-system, "Segoe UI", sans-serif !important;
  cursor: pointer;
  box-shadow: none !important;
  height: auto !important;
  transform: none !important;
}
html body .simple-home-actions .simple-btn:disabled { opacity: .5; cursor: default; }
html body .voice-box > form.voice-text-composer .simple-home-actions button.simple-btn.is-on { border-color: #5eba86 !important; color: #5eba86 !important; }
/* Screen sharing and previous chats share the second action row. */
html body .voice-box > form.voice-text-composer .simple-home-actions button.simple-screen {
  grid-column: auto;
  padding: 10px 12px !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
}
/* Phone browsers without live capture can still send a screenshot. */
html body .voice-box > form.voice-text-composer .screen-share-help {
  width: 100%; box-sizing: border-box; padding: 14px;
  border: 1px solid #3a3126; border-radius: 12px;
  background: #221c16; color: #f4f1ec; text-align: left;
}
html body .screen-share-help p { margin: 0 0 12px; font-size: 14px; line-height: 1.45; }
html body .screen-share-help .screen-share-help-note { color: #c8bba5; font-size: 13px; }
html body .screen-share-help-actions { display: flex; flex-wrap: wrap; gap: 8px; }
html body .voice-box > form.voice-text-composer .screen-share-help-actions button {
  position: static !important; width: auto !important; min-height: 44px !important;
  flex: none !important; min-width: 0 !important; white-space: nowrap !important;
  height: auto !important; margin: 0 !important; padding: 10px 12px !important;
  border: 1px solid #4f4335 !important; border-radius: 8px !important;
  background: #2f2820 !important; color: #f4f1ec !important;
  font: 600 14px/1.3 system-ui, sans-serif !important; cursor: pointer;
}
html body .screen-share-help-actions button:disabled { opacity: .5; cursor: default; }
html body .voice-box > form.voice-text-composer .simple-home-actions button.simple-send {
  background: #2f7c50 !important;
  border-color: #5eba86 !important;
  color: #ffffff !important;
}

/* Keep the rest of the page (trial card, pricing, trust row, footer) in the
   same column width so it reads as one screen. */
html body main > .conversion-cta,
html body main > .pricing,
html body main > .trust-strip,
html body main > .fine,
html body main > .site-footer { max-width: 32rem !important; }

/* + menu inside "What's on your mind?": photos and video live here instead of
   in the button grid. */
html body .simple-head ~ .voice-box .voice-text-composer { position: relative !important; }
html body .simple-head ~ .voice-box .voice-text-composer #input { padding-left: 60px !important; }
html body .voice-text-composer .attach-wrap { position: absolute; top: 0; left: 0; z-index: 30; }
html body .voice-text-composer .attach-btn {
  position: absolute; top: 14px; left: 12px;
  width: 40px; height: 44px; padding: 0; margin: 0;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid #3a3126; border-radius: 10px;
  background: #2f2820; color: #f4f1ec;
  font: 500 26px/1 system-ui, -apple-system, "Segoe UI", sans-serif;
  cursor: pointer; box-shadow: none;
}
html body .voice-text-composer .attach-btn:hover:not(:disabled),
html body .voice-text-composer .attach-btn.is-open { border-color: #5eba86; color: #5eba86; }
html body .voice-text-composer .attach-btn:focus-visible { outline: 2px solid #5eba86; outline-offset: 2px; }
html body .voice-text-composer .attach-btn:disabled { opacity: .5; cursor: default; }
html body .voice-text-composer .attach-menu {
  position: absolute; top: 64px; left: 8px;
  min-width: 210px; width: max-content; max-width: calc(100vw - 48px); padding: 6px;
  display: flex; flex-direction: column; gap: 2px;
  border: 1px solid #3a3126; border-radius: 12px;
  background: #221c16; box-shadow: 0 12px 32px rgba(0, 0, 0, .45);
}
html body .voice-text-composer .attach-item {
  display: block; width: 100%; margin: 0;
  padding: 12px 14px; text-align: left; white-space: nowrap;
  border: 0; border-radius: 8px; background: transparent; color: #f4f1ec;
  font: 600 15px/1.2 system-ui, -apple-system, "Segoe UI", sans-serif;
  cursor: pointer;
}
html body .voice-text-composer .attach-item:hover,
html body .voice-text-composer .attach-item:focus-visible { background: #2f2820; color: #5eba86; outline: none; }


/* A selected chat photo stays staged until the user sends it with a message. */
html body .voice-text-composer .composer-photo {
  display: flex; align-items: center; gap: 10px;
  width: 100%; box-sizing: border-box; padding: 9px 10px;
  border: 1px solid #2f7c50; border-radius: 12px;
  background: rgba(47, 124, 80, .12); color: #f4f1ec;
}
html body .voice-text-composer .composer-photo img {
  width: 44px; height: 44px; flex: 0 0 44px;
  border-radius: 8px; object-fit: cover;
}
html body .voice-text-composer .composer-photo span { display: grid; gap: 2px; min-width: 0; flex: 1; }
html body .voice-text-composer .composer-photo strong { font-size: 13px; }
html body .voice-text-composer .composer-photo small { color: #c8bba5; font-size: 11px; }
html body .voice-text-composer .composer-photo button {
  width: 32px; height: 32px; padding: 0; border: 0; border-radius: 8px;
  background: #2f2820; color: #f4f1ec; font-size: 20px; cursor: pointer;
}

/* Oct 2026: one sign-up card on the home screen. The "Score your next deal"
   trial card duplicated the pricing card's own Start button directly below
   it, so it is hidden for everyone (signed-in visitors already had it hidden
   above). It stays in the DOM; the pricing card's button runs the same
   checkout. */
html body main > .conversion-cta { display: none !important; }

/* Oct 2 2026: line the bottom of the page up.
   The trust row and the disclaimer are centred in the page column, but the
   footer underneath them was left-aligned, 20px wider than the composer on
   each side, and its links wrapped wherever they ran out of room, leaving
   "Refunds" and "What is Mike AI?" alone on a line on a phone. The footer is
   now centred on the same column as the composer and headline. Layout only:
   no markup, links, or colours change. */
html body main > .site-footer {
  width: calc(100% - 40px) !important;
  max-width: calc(32rem - 40px) !important;
  padding: 28px 0 40px;
  text-align: center;
}
html body main > .site-footer .footer-top {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
html body main > .site-footer .footer-brand { text-align: left; }
/* Row spacing comes from the link padding, not a row gap, so the phone-width
   line break below does not add a gap of its own. The padding also makes each
   link a taller tap target. */
html body main > .site-footer .footer-links {
  justify-content: center;
  gap: 0 6px;
}
html body main > .site-footer .footer-links a { padding: 7px 8px; }
/* The second link group carries an inline margin-top of 16px in the markup. */
html body main > .site-footer > .footer-links { margin-top: 0 !important; }
/* The copyright line may run 20px past the column on each side (the width it
   had before) so the address does not wrap on a 360px phone. */
html body main > .site-footer .footer-fine { margin: 14px -20px 0; }

/* Neither link group fits on one line in this column, at any screen width.
   Break each after its second link so the rows come out even instead of
   leaving one link stranded. If a group gains or loses a link, revisit the
   nth-child below. */
html body main > .site-footer .footer-links::before {
  content: "";
  flex-basis: 100%;
  height: 0;
  order: 1;
}
html body main > .site-footer .footer-links a:nth-child(n+3) { order: 2; }
@media (max-width: 340px) {
  html body main > .site-footer .footer-links a { padding: 7px 5px; }
}

/* The page column is 32rem at every width, so the three trust claims never
   fit on one row: on a desktop the third wrapped to its own line with a stray
   separator dot in front of it. Stack them at every width, as on a phone. */
html body main > .trust-strip { flex-direction: column; gap: 7px; }
html body main > .trust-strip li { white-space: normal; text-align: center; line-height: 1.5; }
html body main > .trust-strip li + li::before { display: none; }

html body .simple-home-actions .simple-btn.is-listening {
  border-color: #2f7c50 !important;
  color: #9ad4b3 !important;
  opacity: 1 !important;
}
html body .simple-home-actions .simple-btn.is-talking {
  border-color: #5eba86 !important;
  color: #5eba86 !important;
  opacity: 1 !important;
}
html body .voice-live-bar {
  position: fixed;
  z-index: 90;
  left: 50%;
  bottom: calc(18px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: calc(100vw - 24px);
  padding: 8px 8px 8px 16px;
  border-radius: 999px;
  background: #1d1813;
  border: 1px solid #3a3126;
  box-shadow: 0 12px 32px #000c;
}
html body .voice-live-state {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: #f4f1ec;
  font: 700 15px/1.2 system-ui, -apple-system, "Segoe UI", sans-serif;
  white-space: nowrap;
}
html body .voice-live-state .state-dot {
  width: 10px;
  height: 10px;
  flex: 0 0 10px;
  border-radius: 50%;
  background: #9aa3ab;
  box-shadow: none;
}
html body .voice-live-state.is-listening { color: #9ad4b3; }
html body .voice-live-state.is-listening .state-dot {
  background: #307e52;
  box-shadow: 0 0 10px #307e52;
  animation: mike-listen-pulse 1.2s ease-in-out infinite;
}
html body .voice-live-state.is-talking { color: #acdbc0; }
html body .voice-live-state.is-talking .state-dot {
  background: #2f7c50;
  box-shadow: 0 0 10px #2f7c50;
  animation: mike-talk-pulse .7s ease-in-out infinite;
}
@keyframes mike-listen-pulse { 50% { transform: scale(1.25); opacity: .65; } }
@keyframes mike-talk-pulse { 50% { transform: scale(1.45); opacity: .8; } }
html body .voice-live-bar .voice-exit {
  position: static;
  left: auto;
  bottom: auto;
  transform: none;
  min-width: 88px;
  box-shadow: none;
}
html body .voice-exit {
  position: fixed;
  z-index: 90;
  left: 50%;
  bottom: calc(18px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  min-width: 148px;
  min-height: 52px;
  padding: 0 28px;
  border: 0;
  border-radius: 999px;
  background: #c62828;
  color: #fff;
  font: 800 17px/1 system-ui, -apple-system, "Segoe UI", sans-serif;
  letter-spacing: .04em;
  box-shadow: 0 12px 32px #000c;
  cursor: pointer;
}

/* Positioning hero (2026-10-10): lead with the photo/listing action. */
.simple-head h1.hero-positioning{font-size:clamp(1.75rem,6.4vw,2.6rem);line-height:1.08;max-width:22ch;overflow-wrap:anywhere}
.simple-head .hero-photo-cta{display:block;width:100%;max-width:420px;margin:16px 0 6px;padding:15px 18px;border:0;border-radius:14px;background:#205537;color:#fff;font:800 1.05rem/1.2 inherit;cursor:pointer;box-shadow:0 8px 24px rgba(32, 85, 55, 0.28)}
.simple-head .hero-photo-cta:disabled{opacity:.6}
.simple-head .hero-alt{margin:4px 0 0;color:#a9a9a9;font-size:.9rem}

/* Desktop: the page column was 32rem (512px) at every width since the
   Sep 24 simple home screen, so a desktop looked like the phone layout.
   From 1024px up the column is 56rem; phones and tablets are unchanged. */
@media (min-width: 1024px) {
  html body .voice-hero:has(> .simple-head) { max-width: 56rem !important; }
  html body main > .site-footer { max-width: calc(56rem - 40px) !important; }
}

/* Desktop: centre the narrow hero pieces inside the wide column. */
@media (min-width: 1024px) {
  html body .simple-head { text-align: center; }
  html body .simple-head h1.hero-positioning { margin-left: auto !important; margin-right: auto !important; text-align: center !important; }
  html body .simple-head .hero-photo-cta,
  html body .simple-head .sample-deal { margin-left: auto; margin-right: auto; }
  html body .simple-head .sample-deal { text-align: left; }
}

/* Signed-out visitors: voice and screen sharing both need an account, so the
   microphone mode picker and the screen-share buttons wait until sign-in.
   They sat between the headline and the chat box, where a first-time visitor
   has no use for them. Same signed-in marker the rules above use. */
html body main:not(:has(.simple-head[data-signed-in])) .voice-input-controls,
html body main:not(:has(.simple-head[data-signed-in])) .voice-box > form.voice-text-composer .simple-home-actions button.simple-btn.simple-screen,
html body main:not(:has(.simple-head[data-signed-in])) button.vision-tab-screen {
  display: none !important;
}

/* Homepage tabs: Vehicle / Property / Estimate (Phase 2). Phones: full
   column width like the photo button; desktop: centred like the other hero
   pieces. */
.simple-head .hero-tabs{max-width:420px;margin:16px 0 0}
.simple-head .hero-tablist{display:flex;gap:6px;padding:4px;border:1px solid #2c2c2c;border-radius:12px;background:#111}
.simple-head .hero-tab{flex:1;min-height:44px;border:0;border-radius:9px;background:transparent;color:#cfcac2;font:700 .95rem/1 inherit;cursor:pointer}
.simple-head .hero-tab.is-active{background:#205537;color:#fff}
.simple-head .hero-tab:focus-visible,.simple-head .hero-try:focus-visible{outline:2px solid #619fd1;outline-offset:2px}
.simple-head .hero-try{min-height:44px;margin:12px 0 0;padding:10px 14px;border:1px solid #5eba86;border-radius:10px;background:transparent;color:#9bd4b4;font:700 .95rem/1.2 inherit;cursor:pointer}
@media (min-width: 1024px) {
  html body .simple-head .hero-tabs { margin-left: auto; margin-right: auto; }
}

/* == mike-owner-chat-alignment.css == */
/* Owner-requested chat presentation: every message starts on the left.
   Mike's replies are white; the sender's messages are Doer Tough green.

   The home layout (mike-simple-home.css) styles these same bubbles with
   `html body .simple-head ~ .voice-box .chat ...` and !important, so the rules
   here use that same selector, with !important, and this file is linked after
   it. The plain `.chat` rules below cover any chat outside that layout. */

.chat,
.chat .bubble,
.chat .bubble.user,
.chat .bubble.mike,
.chat .rich-message {
  text-align: left;
}

.chat .bubble,
.chat .bubble.user,
.chat .bubble.mike {
  align-self: flex-start;
}

.chat .bubble.mike {
  color: #ffffff;
}

.chat .bubble.user {
  color: #5eba86;
  background: #0d1712;
  border: 1px solid rgba(94, 186, 134, 0.4);
}

.chat .bubble a,
.chat .bubble.mike a,
.chat .bubble.user a {
  color: inherit;
}

html body .simple-head ~ .voice-box .chat .bubble.mike {
  align-self: flex-start !important;
  color: #ffffff !important;
}

html body .simple-head ~ .voice-box .chat .bubble.user {
  align-self: flex-start !important;
  color: #5eba86 !important;
  background: #0d1712 !important;
  border: 1px solid rgba(94, 186, 134, 0.4) !important;
}

/* == mike-mobile-pricing-header.css == */
/* Oct 10 2026: phones (390px).
   1. Header never overflows: the status pill hides, buttons shrink and wrap
      onto a second row inside the header instead of pushing the page wider.
   2. A slim trial bar keeps the price and "Start 7 days free" in view until
      the pricing card itself scrolls into view.
   3. The session-check placeholder holds the Sign in slot (no flicker). */
.auth-pending { opacity: .55; pointer-events: none; }
.mobile-trial-bar { display: none; }
@media (max-width: 760px) {
  html body header { min-width: 0 !important; max-width: calc(100vw - 24px) !important; box-sizing: border-box !important; }
  html body header .brand { flex: 0 0 auto; min-width: 0; }
  html body header .brand strong { white-space: nowrap; }
  html body header .brand small { display: none; }
  html body header { flex-wrap: wrap !important; row-gap: 8px !important; height: auto !important; }
  html body header .header-right { min-width: 0 !important; flex: 1 1 auto !important; display: flex !important; justify-content: flex-end !important; flex-wrap: wrap !important; gap: 6px !important; overflow: visible !important; }
  html body header .header-right .status { display: none !important; }
  html body header .header-right .auth-btn { flex: 0 0 auto; white-space: nowrap; padding: 8px 10px !important; font-size: 13px !important; max-width: 11rem; overflow: hidden; text-overflow: ellipsis; }
  .mobile-trial-bar { display: flex; position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 40; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 10px 10px 14px; border: 1px solid #2f7c50; border-radius: 14px; background: rgba(16, 20, 18, .96); color: #f4f1ec; font: 500 13px/1.25 system-ui, -apple-system, "Segoe UI", sans-serif; box-shadow: 0 10px 28px rgba(0, 0, 0, .5); transition: transform .2s ease, opacity .2s ease; }
  .mobile-trial-bar strong { color: #fff; }
  .mobile-trial-bar button { flex: 0 0 auto; border: 0; border-radius: 10px; padding: 11px 14px; background: #2f7c50; color: #ffffff; font: 800 14px/1 inherit; cursor: pointer; }
  .mobile-trial-bar.is-hidden { transform: translateY(140%); opacity: 0; pointer-events: none; }
  html body main { padding-bottom: 84px; }
  html body main > .pricing .pricing-cta { display: block !important; width: 100% !important; box-sizing: border-box; }
}
/* Not while chatting or with the keyboard up on a short screen. */
@media (max-width: 760px) and (max-height: 560px) { .mobile-trial-bar { display: none; } }
html body main:has(.voice-box.has-chat) .mobile-trial-bar,
html body:has(.auth-overlay) .mobile-trial-bar { display: none !important; }
.word-file-shortcut{display:inline-block;margin-top:8px;padding:5px 10px;border:1px solid rgba(255,255,255,.25);border-radius:8px;background:transparent;color:inherit;font-size:12px;cursor:pointer}
