*{box-sizing:border-box}html,body{margin:0;height:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;background:linear-gradient(180deg,#fbfbfc 0%,#eceef2 100%);color:#111;-webkit-font-smoothing:antialiased;overscroll-behavior:none}
#app{max-width:760px;margin:0 auto;min-height:100%;padding:calc(env(safe-area-inset-top) + 16px) 22px calc(env(safe-area-inset-bottom) + 96px);display:flex;flex-direction:column;position:relative}
.top{display:flex;justify-content:space-between;align-items:center}
.brand{display:inline-flex;align-items:center;gap:10px;font-family:"Gotham","Montserrat","Avenir Next","Helvetica Neue",Futura,Arial,sans-serif;font-size:15px;font-weight:300;letter-spacing:.5em;color:#A31217;text-transform:uppercase}
.meta{display:flex;gap:12px;align-items:center}
.clock{font-size:14px;color:#111;font-variant-numeric:tabular-nums}
.tag{font-size:10px;letter-spacing:.16em;padding:3px 9px;border-radius:99px;border:1px solid #cfd2d7;color:#666;background:#fff}
.tag.live{color:#0a7d3c;border-color:#b6e3c8}.tag.off{color:#a15c00;border-color:#f0d39b}
.stage{position:relative;margin:3vh -8% 0}
.carimg{width:100%;height:auto;display:block;mix-blend-mode:multiply;pointer-events:none;user-select:none}
.name{text-align:center;font-size:15px;color:#555;margin-top:-18px}
.nums{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;margin-top:3vh}
.nums span{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#8a8d93}
.nums strong{display:block;font-weight:300;font-size:clamp(38px,11vw,64px);letter-spacing:-.03em;line-height:1.1}
.nums strong i{font-style:normal;font-size:.42em;color:#8a8d93;margin-left:2px}
.nums strong.sm{font-size:clamp(17px,4.6vw,24px);font-weight:400;padding-top:14px}
.bar{position:relative;height:3px;background:#dcdfe3;border-radius:3px;margin:20px 4px 0}
.bar i{display:block;height:100%;border-radius:3px;background:#111;width:0;transition:width .6s}
.bar b{position:absolute;top:-4px;width:2px;height:11px;background:#111;opacity:.5;left:80%}
.line{text-align:center;color:#6b6e75;font-size:13px;margin:16px 0 0;min-height:18px}
.plan{display:block;margin:22px auto 0;background:#111;color:#fff;border:0;border-radius:99px;padding:14px 30px;font-size:16px;text-decoration:none;text-align:center;cursor:pointer;font-family:inherit}
.fine{text-align:center;font-size:11.5px;color:#9a9da3;margin:10px 0 0}
.connect{position:fixed;inset:0;background:rgba(244,245,247,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:grid;place-items:center;z-index:5}
.connect[hidden]{display:none}
.card{text-align:center;max-width:320px;padding:28px}.card h1{font-weight:400;font-size:28px;margin:10px 0 6px}.card p{color:#666;font-size:14px;line-height:1.45}
.dock{position:fixed;left:0;right:0;bottom:0;padding:10px 16px calc(env(safe-area-inset-bottom) + 12px);background:linear-gradient(180deg,rgba(236,238,242,0),#eceef2 40%);z-index:3}
.dock form{max-width:720px;margin:0 auto;display:flex;gap:8px;background:#fff;border:1px solid #dcdfe3;border-radius:99px;padding:6px 6px 6px 18px;box-shadow:0 6px 24px rgba(0,0,0,.06)}
.dock input{flex:1;border:0;outline:0;font-size:16px;background:transparent;font-family:inherit;min-width:0}
.dock button{width:38px;height:38px;border-radius:50%;border:0;background:#111;color:#fff;font-size:18px;flex:none}.dock button.ic{background:transparent;color:#6b6e75;display:grid;place-items:center}.dock button.ic[aria-pressed=true]{color:#111;background:#eceef2}.dock button.ic.rec{background:#e82127;color:#fff;animation:pulse 1.2s ease-in-out infinite}.dock button[hidden]{display:none}@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(232,33,39,.15)}}
.sheet{position:fixed;left:0;right:0;bottom:0;top:18%;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.14);z-index:4;display:flex;flex-direction:column;padding-bottom:84px}
.sheet[hidden]{display:none}
.grab{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 8px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8a8d93}
.grab button{border:0;background:transparent;font-size:26px;color:#666}
.msgs{flex:1;overflow:auto;padding:4px 20px 20px;display:flex;flex-direction:column;gap:12px}
.m{max-width:88%;font-size:16px;line-height:1.45;white-space:pre-wrap}
.m.you{align-self:flex-end;background:#111;color:#fff;border-radius:18px 18px 4px 18px;padding:10px 14px}
.m.ai{align-self:flex-start;color:#111}
.m.err{color:#b3261e;font-size:13px}
@media (prefers-reduced-motion:no-preference){.fl{animation:dash 2.4s linear infinite}.fl.f{animation-duration:1.1s}@keyframes dash{to{stroke-dashoffset:-48}}.car{animation:fl 7s ease-in-out infinite}@keyframes fl{50%{transform:translateY(-2px)}}}

.dt{display:flex;align-items:center;gap:6px;margin:14px auto 0;border:0;background:transparent;color:#6b6e75;font:inherit;font-size:13px;letter-spacing:.04em;cursor:pointer;padding:6px 10px}
.dt svg{transition:transform .35s}.dt[aria-expanded=true] svg{transform:rotate(180deg)}
.details{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.2,.8,.2,1),opacity .35s;opacity:0}
.details.open{grid-template-rows:1fr;opacity:1}
.dinner{overflow:hidden;min-height:0}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;padding:6px 2px 4px}
.dgrid div{display:flex;justify-content:space-between;align-items:baseline;padding:11px 0;border-bottom:1px solid #e1e3e7;font-size:13px}
.dgrid span{color:#8a8d93;letter-spacing:.03em}.dgrid b{font-weight:500;font-size:16px;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:#111;text-align:right}
.dnote{grid-column:1/-1;color:#9a9da3;font-size:11.5px;margin:10px 0 0;text-align:center}
@media(max-width:420px){.dgrid{grid-template-columns:1fr}}

.line a{color:#111;text-decoration:underline}

.brand .sun{flex:none;margin-top:-2px}

.brand .wm{height:10px;width:auto;display:block}

.plan .sun{vertical-align:-3px;margin-right:8px}

.cable{position:absolute;left:0;top:0;width:100%;height:auto;aspect-ratio:1200/800;pointer-events:none;opacity:0;transition:opacity .5s}.stage.charging .cable{opacity:1}.cable .flow{stroke-dasharray:4 20;stroke-width:3;animation:fl .9s linear infinite}@keyframes fl{from{stroke-dashoffset:0}to{stroke-dashoffset:24}}.cable .cg>path:first-child{animation:pu 1.8s ease-in-out infinite}@keyframes pu{50%{opacity:.55}}

.stage .spin{position:absolute;left:0;top:0;width:100%;height:auto;aspect-ratio:1200/800;touch-action:pan-y;cursor:grab;pointer-events:auto;-webkit-user-select:none;user-select:none}.stage .spin:active{cursor:grabbing}.cable .cg{transition:none}.stage:not(.charging) .cable{opacity:0}
