/* Entry screens for a device without a session (decision77): the chosen design in docs/design/2026-10-06-signup-claude,
   on the app's own palette tokens (decisions45-47) and Fraunces Soft. The five provider buttons follow each provider's
   published rules instead of the theme: white in every theme, Google Sans labels and unaltered logos. */
@font-face{font-family:"Google Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/app/fonts/google-sans-latin-500.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

.jv-app.jv-entry{display:block;grid-template-columns:none;grid-template-rows:none;height:100dvh;overflow:hidden;container:entry/inline-size;
  --stage:var(--jv-sidebar);--stage-muted:var(--jv-text-muted);--slide-ms:5600ms;--entry-ease:cubic-bezier(.2,.8,.2,1)}
.jv-app.jv-entry[data-palette="mocha"][data-theme="light"]{--stage-muted:#6b4c43}
.jv-app.jv-entry[data-palette="azure"][data-theme="light"]{--stage-muted:#5f6365}
.jv-entry h1,.jv-entry h2,.jv-entry p{margin:0}
.jv-entry h1:focus{outline:none}
.jv-entry-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.jv-entry .jv-icon{width:20px;height:20px;flex:none}
.jv-entry .jv-link{background:none;border:0;padding:0;font:inherit;cursor:pointer;color:var(--jv-accent);font-weight:550;text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,var(--jv-accent) 45%,transparent)}
.jv-entry .jv-link:hover{text-decoration-color:currentColor}
.jv-entry .jv-entry-quiet{color:var(--jv-text-muted);font-weight:500}

/* Buttons */
.jv-entry-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:0 20px;border-radius:12px;border:0;font:inherit;
  font-size:15.5px;font-weight:550;white-space:nowrap;cursor:pointer;background:var(--jv-surface);color:var(--jv-text);box-shadow:inset 0 0 0 1px var(--jv-border-strong);
  transition:background-color .15s var(--entry-ease),transform .15s var(--entry-ease),opacity .15s}
.jv-entry-button:hover:not(:disabled){background:var(--jv-hover)}
.jv-entry-button[data-primary]{background:var(--jv-btn);color:var(--jv-on-btn);box-shadow:none}
.jv-entry-button[data-primary]:hover:not(:disabled){background:color-mix(in oklab,var(--jv-btn) 86%,var(--jv-text))}
.jv-entry-button:active:not(:disabled){transform:scale(.98)}
.jv-entry-button:disabled{opacity:.5;cursor:default}
.jv-entry-button[aria-busy="true"]{opacity:1;pointer-events:none}
.jv-entry-ghost{background:none;box-shadow:none;color:var(--jv-text-muted)}
.jv-entry-wide{width:100%}
.jv-entry-spin{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:jvEntrySpin .8s linear infinite;flex:none}
@keyframes jvEntrySpin{to{transform:rotate(360deg)}}

/* Stage beside the account panel */
.jv-entry-auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,0fr);height:100%;transition:grid-template-columns .55s var(--entry-ease)}
.jv-entry:not([data-view="welcome"]) .jv-entry-auth{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr)}
.jv-entry-stage{--hero:176px;position:relative;margin:14px 0 14px 14px;border-radius:28px;background:var(--stage);display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:20px;padding:84px 32px 36px;overflow:hidden;min-width:0;min-height:0;isolation:isolate;transition:margin .55s var(--entry-ease)}
.jv-entry[data-view="welcome"] .jv-entry-stage{margin:14px;--hero:220px;gap:22px}
.jv-entry-brand{position:absolute;top:20px;left:22px;z-index:3;display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 12px 0 6px;border:0;border-radius:14px;
  background:none;font:inherit;font-weight:550;font-size:15.5px;color:var(--jv-text);cursor:pointer}
.jv-entry-brand:hover{background:color-mix(in oklab,var(--jv-text) 6%,transparent)}
.jv-entry-skip{position:absolute;top:24px;right:22px;z-index:3;height:36px;padding:0 14px;border:0;border-radius:999px;background:none;font:inherit;font-size:14.5px;
  font-weight:550;color:var(--stage-muted);cursor:pointer}
.jv-entry-skip:hover{background:color-mix(in oklab,var(--jv-text) 7%,transparent);color:var(--jv-text)}
.jv-entry-scene{position:relative;width:min(480px,100%);height:268px;flex:none;display:grid;place-items:center}
.jv-entry[data-view="welcome"] .jv-entry-scene{height:236px}
.jv-entry-hero{display:grid;place-items:center;transition:transform .6s var(--entry-ease)}
.jv-entry-hero .jv-mochi{width:var(--hero)!important;height:var(--hero)!important;transition:width .5s var(--entry-ease),height .5s var(--entry-ease)}
.jv-entry[data-stage="intro"] .jv-entry-scene[data-slide="3"] .jv-entry-hero{transform:translateY(-62px) scale(.78)}
.jv-entry[data-stage="intro"] .jv-entry-scene[data-slide="4"] .jv-entry-hero{transform:translateX(-96px)}
/* Slide 1 greets: two waves and a blink, then the still pose. */
.jv-entry-scene[data-slide="1"] .jv-entry-hero .av .armR{animation:mWave 1s ease-in-out .35s 2}
.jv-entry-scene[data-slide="1"] .jv-entry-hero .av .eyes{animation:mBlink .35s ease-in-out 2.4s 1}
.jv-entry-copy{max-width:420px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;min-height:6.4em}
.jv-entry-copy h2{font-size:28px;line-height:1.15;font-weight:550;letter-spacing:-.015em;text-wrap:balance;animation:jvEntryCopy .45s var(--entry-ease) both}
.jv-entry-copy p{color:var(--stage-muted);font-size:16px;line-height:1.5;text-wrap:pretty;animation:jvEntryCopy .45s var(--entry-ease) .05s both}
@keyframes jvEntryCopy{from{opacity:0;transform:translateY(6px)}}
.jv-entry-welcome-title{font-size:clamp(34px,4.1vw,50px);line-height:1.06;font-weight:550;letter-spacing:-.022em;text-wrap:balance}
.jv-entry[data-view="welcome"] .jv-entry-copy{max-width:640px;min-height:0;gap:14px}
.jv-entry[data-view="welcome"] .jv-entry-copy p{font-size:17px}
.jv-entry-welcome-actions{display:flex;gap:10px;width:min(440px,100%);flex:none}
.jv-entry-welcome-actions .jv-entry-button{flex:1}
.jv-entry-welcome-legal{flex:none}
.jv-entry-controls{display:flex;align-items:center;gap:4px}
.jv-entry-icon-button{width:40px;height:40px;border:0;border-radius:12px;display:grid;place-items:center;background:none;color:var(--stage-muted);cursor:pointer}
.jv-entry-icon-button:hover{background:color-mix(in oklab,var(--jv-text) 7%,transparent);color:var(--jv-text)}
.jv-entry-dots{display:flex;align-items:center}
.jv-entry-dot{height:40px;min-width:22px;padding:0 5px;border:0;border-radius:10px;display:grid;place-items:center;background:none;cursor:pointer}
.jv-entry-dot>span{display:block;position:relative;width:8px;height:8px;border-radius:999px;overflow:hidden;
  background:color-mix(in oklab,var(--stage-muted) 42%,transparent);transition:width .35s var(--entry-ease)}
.jv-entry-dot[aria-current="step"]>span{width:30px;background:color-mix(in oklab,var(--stage-muted) 26%,transparent)}
.jv-entry-dot i{position:absolute;inset:0;background:var(--jv-btn);transform-origin:left center;transform:scaleX(0)}
.jv-entry-dot[aria-current="step"] i{transform:scaleX(1)}
.jv-entry:is([data-playing="true"],[data-paused="true"]) .jv-entry-dot[aria-current="step"] i{animation:jvEntryFill var(--slide-ms) linear both}
.jv-entry[data-paused="true"] .jv-entry-dot[aria-current="step"] i{animation-play-state:paused}
@keyframes jvEntryFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.jv-entry-phone-intro{display:none}
.jv-entry-replay{font-size:15px}

/* Introduction scenes: decorations visible at rest; the keyed layer replays its entrance on every slide. */
.jv-entry-decor{position:absolute;inset:0;pointer-events:none}
.jv-entry-chip{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:17px;background:var(--jv-surface);
  box-shadow:inset 0 0 0 1px var(--jv-border),var(--jv-shadow);display:grid;place-items:center;color:var(--jv-text-2);animation:jvEntryPop .5s var(--entry-ease) both}
.jv-entry-chip .jv-icon{width:26px;height:26px}
.jv-entry-chip.c1{transform:translate(-160px,-34px) rotate(-6deg)}
.jv-entry-chip.c2{transform:translate(136px,-92px) rotate(5deg);animation-delay:.22s}
.jv-entry-chip.c3{transform:translate(154px,46px) rotate(-3deg);animation-delay:.44s}
.jv-entry-tick{position:absolute;right:-7px;bottom:-7px;width:22px;height:22px;border-radius:50%;background:var(--jv-ok);color:var(--jv-bg);display:grid;place-items:center;
  box-shadow:0 0 0 2px var(--stage);animation:jvEntryPop .35s var(--entry-ease) both}
.jv-entry-tick .jv-icon{width:13px;height:13px;stroke-width:2.4}
.jv-entry-chip.c1 .jv-entry-tick{animation-delay:1.9s}.jv-entry-chip.c2 .jv-entry-tick{animation-delay:2.6s}.jv-entry-chip.c3 .jv-entry-tick{animation-delay:3.3s}
@keyframes jvEntryPop{from{opacity:0;scale:.6}}
.jv-entry-links{position:absolute;left:50%;top:50%;width:400px;height:268px;margin:-134px 0 0 -200px;overflow:visible}
.jv-entry-links path{fill:none;stroke:var(--jv-border-strong);stroke-width:2;stroke-linecap:round;stroke-dasharray:3 6;animation:jvEntryFade 1s var(--entry-ease) .35s both}
@keyframes jvEntryFade{from{opacity:0}}
.jv-entry-agent{position:absolute;left:50%;top:50%;width:70px;height:70px;margin:-35px 0 0 -35px;animation:jvEntryPop .5s var(--entry-ease) both}
.jv-entry-agent.a1{transform:translate(-138px,74px);animation-delay:.55s}.jv-entry-agent.a2{transform:translate(0,92px);animation-delay:.75s}
.jv-entry-agent.a3{transform:translate(138px,74px);animation-delay:.95s}
.jv-entry-card{position:absolute;left:50%;top:50%;width:206px;margin:-66px 0 0 -6px;padding:14px;border-radius:18px;background:var(--jv-surface);text-align:left;
  box-shadow:inset 0 0 0 1px var(--jv-border),var(--jv-shadow);display:grid;gap:8px;animation:jvEntrySlide .55s var(--entry-ease) .25s both}
@keyframes jvEntrySlide{from{opacity:0;translate:14px 0}}
.jv-entry-card .k{font-size:12.5px;color:var(--jv-warn);font-weight:550;display:flex;align-items:center;gap:6px}
.jv-entry-card .k::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.jv-entry-card .t{font-size:15px;font-weight:550}
.jv-entry-card .a{display:flex;gap:6px}
.jv-entry-card .a span{flex:1;height:32px;border-radius:9px;display:grid;place-items:center;font-size:13px;font-weight:550;box-shadow:inset 0 0 0 1px var(--jv-border-strong);color:var(--jv-text-2)}
.jv-entry-card .a .pri{background:var(--jv-btn);color:var(--jv-on-btn);box-shadow:none}
.jv-entry-card[data-press] .a .pri{animation:jvEntryPress .35s var(--entry-ease)}
@keyframes jvEntryPress{50%{scale:.94}}
.jv-entry-card .done{display:none;align-items:center;gap:6px;font-size:13.5px;font-weight:550;color:var(--jv-ok);height:32px}
.jv-entry-card .done .jv-icon{width:18px;height:18px}
.jv-entry-card[data-approved] .a{display:none}.jv-entry-card[data-approved] .done{display:flex}

/* The owner's other signed-in device while this one waits for approval: an explanation, not a control. */
.jv-entry-device{display:flex;flex-direction:column;align-items:center;gap:14px}
.jv-entry-phone{width:258px;height:min(480px,58vh);border-radius:38px;background:var(--jv-bg);padding:48px 14px 18px;position:relative;
  box-shadow:0 0 0 7px #1c1c1e,0 0 0 8px #48484a,var(--jv-shadow)}
.jv-entry-phone::before{content:"";position:absolute;top:16px;left:50%;width:72px;height:7px;margin-left:-36px;border-radius:9px;background:#1c1c1e}
.jv-entry-request{background:var(--jv-surface);border-radius:20px;padding:14px;display:grid;gap:10px;box-shadow:inset 0 0 0 1px var(--jv-border)}
.jv-entry-request .head{display:flex;align-items:center;gap:8px;font-weight:550;font-size:14px}
.jv-entry-request p{font-size:14px;line-height:1.45}
.jv-entry-request .code{font-family:var(--jv-mono);font-size:13px;color:var(--jv-text-muted)}
.jv-entry-request .acts{display:flex;gap:8px}
.jv-entry-request .acts span{flex:1;height:38px;border-radius:10px;display:grid;place-items:center;font-size:14px;font-weight:550;box-shadow:inset 0 0 0 1px var(--jv-border-strong)}
.jv-entry-request .acts .pri{background:var(--jv-btn);color:var(--jv-on-btn);box-shadow:none}
.jv-entry-device-caption{font-size:13.5px;color:var(--stage-muted)}
.jv-entry-device-inline{display:none}

/* Account panel */
.jv-entry-panel{position:relative;min-width:0;min-height:0;overflow:hidden auto;display:flex;flex-direction:column;transition:opacity .4s var(--entry-ease) .12s}
.jv-entry[data-view="welcome"] .jv-entry-panel{opacity:0;pointer-events:none;transition:none}
.jv-entry-pane{width:100%;max-width:404px;margin:auto;padding:34px 26px 40px;display:flex;flex-direction:column;gap:18px;animation:jvEntryPane .32s var(--entry-ease) both}
@keyframes jvEntryPane{from{opacity:0;transform:translateY(8px)}}
.jv-entry-pane h1{font-size:28px;line-height:1.15;font-weight:550;letter-spacing:-.015em;text-wrap:balance}
.jv-entry-head{display:flex;flex-direction:column;gap:8px}
.jv-entry-lead{color:var(--jv-text-muted);font-size:15.5px;text-wrap:pretty}
.jv-entry-lead strong{color:var(--jv-text);font-weight:550;overflow-wrap:anywhere}
.jv-entry-tile{width:48px;height:48px;border-radius:15px;background:var(--jv-surface-2);display:grid;place-items:center;color:var(--jv-text-2);flex:none}
.jv-entry-tile .jv-icon{width:24px;height:24px}
.jv-entry-tile.small{width:38px;height:38px;border-radius:11px}
.jv-entry-tile.small .jv-icon{width:20px;height:20px}
.jv-entry-back{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px 0 6px;margin:-6px 0 -6px -6px;border:0;border-radius:10px;
  background:none;font:inherit;font-size:14px;font-weight:550;color:var(--jv-text-muted);cursor:pointer}
.jv-entry-back:hover{background:var(--jv-hover);color:var(--jv-text)}
.jv-entry-back .jv-icon{width:16px;height:16px}
.jv-entry-pane-mochi{display:none}

/* Provider buttons follow each provider's rules, not the theme (decision77). */
.jv-entry-providers{display:flex;flex-direction:column;gap:8px}
.jv-entry .jv-entry-provider{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:42px;padding:0 46px;border:0;border-radius:12px;background:#fff;
  color:#1f1f1f;box-shadow:inset 0 0 0 1px #747775;font:500 15px/20px "Google Sans",Roboto,Arial,sans-serif;letter-spacing:.1px;font-variation-settings:normal;cursor:pointer;
  transition:background-color .15s,opacity .15s,transform .15s}
.jv-entry-provider:hover:not(:disabled){background:#f1f3f4}
.jv-entry-provider:active:not(:disabled){transform:scale(.99)}
.jv-entry[data-theme="dark"] .jv-entry-provider{box-shadow:none}
.jv-entry-provider .logo{position:absolute;left:13px;top:50%;width:20px;height:20px;margin-top:-10px;display:grid;place-items:center}
.jv-entry-provider .logo svg{width:20px;height:20px;display:block}
.jv-entry-provider .pspin{position:absolute;right:14px;top:50%;margin-top:-8px;color:#5f6368}
.jv-entry-providers[data-busy] .jv-entry-provider:not([aria-busy="true"]){opacity:.4}
.jv-entry-provider-status{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--jv-text-muted)}
.jv-entry-note{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--jv-text-muted);line-height:1.45}
.jv-entry-note .jv-icon{width:16px;height:16px;margin-top:1px}
.jv-entry-divider{display:flex;align-items:center;gap:12px;color:var(--jv-text-muted);font-size:13.5px}
.jv-entry-divider::before,.jv-entry-divider::after{content:"";flex:1;height:1px;background:var(--jv-border)}
.jv-entry[data-palette="mocha"][data-theme="light"] .jv-entry-divider::before,.jv-entry[data-palette="mocha"][data-theme="light"] .jv-entry-divider::after{background:var(--jv-border-strong)}

/* Forms */
.jv-entry-form{display:flex;flex-direction:column;gap:14px}
.jv-entry-field{display:flex;flex-direction:column;gap:6px}
.jv-entry-field label,.jv-entry-label-row label{font-size:14px;font-weight:550;color:var(--jv-text-2)}
.jv-entry-label-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.jv-entry-label-row .jv-link{font-size:13.5px}
.jv-entry-input{height:46px;width:100%;padding:0 14px;border-radius:12px;background:var(--jv-surface);border:1px solid var(--jv-input-border);color:var(--jv-text);font:inherit;
  font-size:15.5px;transition:border-color .15s,box-shadow .15s}
.jv-entry-input::placeholder{color:var(--jv-text-subtle);opacity:.85}
.jv-entry-input:focus{outline:none;border-color:var(--jv-accent);box-shadow:0 0 0 3px var(--jv-accent-soft)}
.jv-entry-input[aria-invalid="true"]{border-color:var(--jv-bad)}
.jv-entry-input[aria-invalid="true"]:focus{box-shadow:0 0 0 3px color-mix(in oklab,var(--jv-bad) 20%,transparent)}
.jv-entry-password{position:relative}
.jv-entry-password .jv-entry-input{padding-right:50px}
.jv-entry-reveal{position:absolute;right:3px;top:3px;width:40px;height:40px;border:0;border-radius:10px;display:grid;place-items:center;background:none;color:var(--jv-text-muted);cursor:pointer}
.jv-entry-reveal:hover{background:var(--jv-hover);color:var(--jv-text)}
.jv-entry-error{display:flex;gap:6px;align-items:flex-start;color:var(--jv-bad);font-size:13.5px;line-height:1.4}
.jv-entry-error .jv-icon,.jv-entry-rule .jv-icon{width:16px;height:16px;margin-top:1px}
.jv-entry-rule{display:flex;gap:6px;align-items:center;font-size:13.5px;color:var(--jv-text-muted)}
.jv-entry-rule[data-ok]{color:var(--jv-ok)}
.jv-entry-rule[data-error]{color:var(--jv-bad)}
.jv-entry-banner{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;font-size:14.5px;line-height:1.45;
  background:color-mix(in oklab,var(--jv-bad) 8%,var(--jv-bg));box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--jv-bad) 32%,transparent)}
.jv-entry-banner-icon{color:var(--jv-bad);margin-top:1px}
.jv-entry-banner-icon .jv-icon{width:16px;height:16px}
.jv-entry-banner[data-kind="info"]{background:color-mix(in oklab,var(--jv-accent) 8%,var(--jv-bg));box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--jv-accent) 28%,transparent)}
.jv-entry-banner[data-kind="info"] .jv-entry-banner-icon{color:var(--jv-accent)}
.jv-entry-switch{font-size:15px;color:var(--jv-text-muted);text-align:center}
.jv-entry-legal{font-size:13px;color:var(--jv-text-muted);text-align:center;line-height:1.5}
.jv-entry-nowrap{white-space:nowrap}
.jv-entry-code{position:relative;display:flex;gap:8px}
.jv-entry-code-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;font-size:16px;caret-color:transparent;border:0;padding:0;cursor:text;z-index:1}
.jv-entry-slot{flex:1;min-width:0;height:56px;border-radius:12px;background:var(--jv-surface);border:1px solid var(--jv-input-border);display:grid;place-items:center;
  font-size:24px;font-weight:550;font-variant-numeric:tabular-nums;color:var(--jv-text)}
.jv-entry-slot[data-gap]{margin-left:6px}
.jv-entry-code:focus-within .jv-entry-slot[data-current]{border-color:var(--jv-accent);box-shadow:0 0 0 3px var(--jv-accent-soft)}
.jv-entry-code[data-invalid] .jv-entry-slot{border-color:var(--jv-bad)}
.jv-entry-resend{font-size:14px;color:var(--jv-text-muted);text-align:center}
.jv-entry-wait{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--jv-text-2)}
.jv-entry-match{font-size:14.5px;color:var(--jv-text-2)}
.jv-entry-match .jv-code{font-family:var(--jv-mono);font-size:14px}
.jv-entry-device-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--jv-surface);box-shadow:inset 0 0 0 1px var(--jv-border)}
.jv-entry-device-row strong{display:block;font-weight:550;font-size:15px}
.jv-entry-device-row span:not(.jv-entry-tile){display:block;font-size:13px;color:var(--jv-text-muted)}
.jv-entry-row-actions{display:flex;gap:10px;flex-wrap:wrap}
.jv-entry-row-actions .jv-entry-button{flex:1}
.jv-entry-stack{display:flex;flex-direction:column;gap:10px}
.jv-entry-start{align-self:flex-start;font-size:13.5px}
.jv-entry-toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:20;padding:11px 16px;border-radius:12px;
  background:var(--jv-text);color:var(--jv-bg);font-size:14px;max-width:calc(100vw - 32px);text-align:center;animation:jvEntryPane .25s var(--entry-ease) both}
.jv-entry[data-palette="mocha"][data-theme="light"] :is(.jv-entry-lead,.jv-entry-legal,.jv-entry-switch,.jv-entry-note){color:#6b4c43}

/* Phone */
@container entry (max-width:760px){
  .jv-entry-auth,.jv-entry:not([data-view="welcome"]) .jv-entry-auth{display:flex;flex-direction:column}
  .jv-entry-stage,.jv-entry[data-view="welcome"] .jv-entry-stage{margin:8px;border-radius:26px;padding:70px 18px 22px;gap:14px;flex:1 1 auto;--hero:148px}
  .jv-entry[data-view="welcome"] .jv-entry-stage{--hero:172px}
  .jv-entry-scene{height:226px;width:100%}
  .jv-entry[data-view="welcome"] .jv-entry-scene{height:196px}
  .jv-entry-decor{scale:.74}
  .jv-entry-copy{min-height:5.6em}
  .jv-entry-copy h2{font-size:25px}
  .jv-entry-copy p{font-size:15.5px}
  .jv-entry-welcome-title{font-size:34px}
  .jv-entry[data-view="welcome"] .jv-entry-copy p{font-size:16px}
  .jv-entry-welcome-actions{flex-direction:column;width:100%;margin-top:auto}
  .jv-entry-welcome-actions .jv-entry-button{flex:none;width:100%}
  .jv-entry-brand{top:12px;left:12px}
  .jv-entry-skip{top:15px;right:12px}
  .jv-entry-arrow{display:none}
  .jv-entry[data-step="intro"] .jv-entry-scene{margin-top:auto}
  .jv-entry[data-step="intro"] .jv-entry-phone-intro{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:auto}
  /* Everywhere except welcome and the intro step, the stage is a compact header above the panel. */
  .jv-entry:not([data-view="welcome"]):not([data-step="intro"]) .jv-entry-stage{flex:0 0 64px;margin:0;padding:0;border-radius:0;background:var(--jv-bg)}
  .jv-entry:not([data-view="welcome"]):not([data-step="intro"]) .jv-entry-stage>:not(.jv-entry-brand){visibility:hidden!important;position:absolute!important;pointer-events:none!important}
  .jv-entry:not([data-view="welcome"]):not([data-step="intro"]) .jv-entry-brand{top:10px;left:12px}
  .jv-entry-panel{flex:1 1 auto}
  .jv-entry[data-view="welcome"] .jv-entry-panel,.jv-entry[data-step="intro"] .jv-entry-panel{display:none}
  .jv-entry-pane{margin:0 auto;padding:6px 20px 40px;gap:16px}
  .jv-entry-pane h1{font-size:26px}
  .jv-entry-provider{height:44px}
  .jv-entry-pane-mochi{display:block;margin:0 auto}
  .jv-entry-device-inline{display:flex;margin-top:4px}
  .jv-entry-device-inline .jv-entry-phone{width:100%;max-width:300px;height:auto;padding:42px 12px 14px}
}

@media (prefers-reduced-motion:reduce){
  .jv-entry *,.jv-entry *::before,.jv-entry *::after{animation-play-state:paused!important;transition:none!important}
  /* Only the introduction resumes a retained timeline. Other entry copy must render its static final pose. */
  .jv-entry:not([data-stage="intro"]) *,.jv-entry:not([data-stage="intro"]) *::before,.jv-entry:not([data-stage="intro"]) *::after,
  .jv-entry-panel,.jv-entry-panel *,.jv-entry-toast{animation:none!important}
}

/* Preserve each CSS animation timeline while the shared intro clock is paused or hidden. */
.jv-entry[data-paused="true"] .jv-entry-stage *,.jv-entry[data-paused="true"] .jv-entry-stage *::before,.jv-entry[data-paused="true"] .jv-entry-stage *::after{animation-play-state:paused!important}
@container entry (max-width:760px){.jv-entry[data-stage="intro"][data-step="form"] .jv-entry-stage *{animation-play-state:paused!important}}

/* Preserve the two introduction-only agent loops across reduced-motion toggles; the entry pause rule stops them. */
.jv-entry-stage .ag-once.ag-working .whole{animation-name:agBob!important;animation-duration:.7s!important;animation-timing-function:ease-in-out!important;animation-iteration-count:var(--agN)!important}
.jv-entry-stage .ag-once.ag-working .f{animation-name:agSway!important;animation-duration:.7s!important;animation-timing-function:ease-in-out!important;animation-iteration-count:var(--agN)!important}

/* Pause at the start of an entrance must not leave explanatory copy or its decorative containers invisible.
   Opacity overrides the presentation only; the paused animation retains its existing elapsed time. */
.jv-entry[data-paused="true"] :is(.jv-entry-copy h2,.jv-entry-copy p,.jv-entry-chip,.jv-entry-agent,.jv-entry-links path,.jv-entry-card){opacity:1!important}
