/* Indexed — visibility scan journey.
 *
 * Recreated in the production stack from the 2026-09-05 design handoff
 * (design_handoff_indexed/scan/app/v7/pages/scan.css). Plain CSS served as a
 * static asset: no Babel, no React, no design-editor runtime. The rules below
 * are the handoff's own, minus the build/offer/checkout/mock-site blocks that
 * are out of scope for this journey, plus a token bridge that binds the
 * handoff's variables to the brand faces the locked report already ships.
 *
 * Screens: entry, confirm, scanning, report summary, verify.
 * The unlocked full report is the locked export, not this stylesheet.
 */
:root{
  --ix-display:'DM Sans',system-ui,-apple-system,sans-serif;
  --ix-mono:'DM Mono',ui-monospace,Menlo,monospace;
  --ix-body:'DM Sans',system-ui,-apple-system,sans-serif;
  --ix-serif:'Playfair Display',Georgia,'Times New Roman',serif;
}
/* Indexed brand type (Han 2026-10-05), self-hosted: DM Sans for text and headings, Playfair Display italic for accent
   words. Same hashed files as src/lib/brand-fonts.js. No 600 file exists, so 600 is answered by the 700 file. */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/visibility-assets/locked/582ba58213f47190ad79f8e1ce62e32e552acb3b8df983971ef196d49940c5af.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}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/visibility-assets/locked/00db8acb2d5586d2cea860f7fe2aa4291bf004822a67406d31318ba3ce6f8970.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}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:600 700;font-display:swap;src:url('/visibility-assets/locked/447c7d9123f4abdf77c36f83aa35edbef8043640e813039b56b650e22968dd70.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}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400 500;font-display:swap;src:url('/visibility-assets/locked/1888492b17d03cb2bfa7e28f736f639345ca519f2fb05ca29e81259dc269be12.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}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:600 700;font-display:swap;src:url('/visibility-assets/locked/112cbbb0737fe43cc782a0877f938f1c90862884f0a1e48e523e44ec1d1d16b4.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}
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 400; font-display: swap; src: url("https://beindexed.ai/visibility-assets/locked/a0d054c4af557de20afd6ca59f47ab353bcaec49c63ff04b6c9d39d0f8910557.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; }
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 500; font-display: swap; src: url("https://beindexed.ai/visibility-assets/locked/a0d054c4af557de20afd6ca59f47ab353bcaec49c63ff04b6c9d39d0f8910557.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; }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url("https://beindexed.ai/visibility-assets/locked/fd7521f3531a5ccfc655b25c4f22e9871df3ec141ad79bb27fde20d0df347b6d.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; }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url("https://beindexed.ai/visibility-assets/locked/0e263db52797086e763679c54f84ded8cc1249879bc27dca2bd5dd446f6d9f36.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; }
@font-face { font-family: 'Inter'; font-style: italic; font-weight: 400 600; font-display: swap; src: url("https://beindexed.ai/visibility-assets/locked/7ddd9658a57d7c5811b4f6aa43625433d72c05ac83c46a231ef3dfd88813c8a1.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; }
@font-face{font-family:'Inter';font-style:normal;font-weight:300 800;font-display:swap;src:url('/visibility-assets/locked/c940764593d0fe5d596be327ca7558855e018039fb78509aa21921fd3644c3e4.woff2') format('woff2')}
*{box-sizing:border-box}
body.sc-page{margin:0;font-family:var(--ix-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
.sc a{color:inherit}
.sc-skip{position:absolute;left:-9999px}
.sc-skip:focus{left:16px;top:10px;z-index:40;background:var(--sc-btn);color:#fff;padding:10px 14px}
:where(.sc) :is(a,button,input,summary):focus-visible{outline:2px solid var(--sc-acc);outline-offset:3px}
/* Scan — the journey as a stage. Night ink for discovery, paper for the report, cobalt for
   confirmation. Left: one idea in words. Right: the business materialising. */
.sc{position:relative;isolation:isolate;min-height:100vh;background:var(--sc-bg,#0b0d12);color:var(--sc-ink,#fffde2);display:grid;grid-template-rows:auto minmax(0,1fr);transition:background 1.2s cubic-bezier(.22,.8,.18,1),color 1.2s}
.sc[data-theme="night"]{--sc-bg:#0b0d12;--sc-ink:#fffde2;--sc-mid:rgba(255,253,226,.68);--sc-faint:rgba(255,253,226,.42);--sc-rule:rgba(255,253,226,.14);--sc-card:rgba(255,253,226,.05);--sc-acc:#7ea0ff;--sc-btn:#1740a9}
.sc[data-theme="paper"]{--sc-bg:#ffffff;--sc-ink:#0a0a0a;--sc-mid:rgba(10,10,10,.68);--sc-faint:rgba(10,10,10,.42);--sc-rule:rgba(10,10,10,.12);--sc-card:#f5f1ea;--sc-acc:#1740a9;--sc-btn:#1740a9}
.sc[data-theme="gate"]{--sc-bg:#040b22;--sc-ink:#fffde2;--sc-mid:rgba(255,253,226,.8);--sc-faint:rgba(255,253,226,.5);--sc-rule:rgba(255,253,226,.2);--sc-card:rgba(255,253,226,.07);--sc-acc:#9fe0ff;--sc-btn:#fffde2}
.sc[data-theme="gate"] .sc-btn{color:#0f2f87}
.sc[data-theme="gate"] .sc-top img{filter:invert(1) brightness(1.9)}
/* Han 2026-09-20: the gate/preview background was a bright cyan core directly under the words,
   which is where the contrast complaint came from -- pale type on a near-white centre, and it
   did not read as the premium mark. The light is pushed off-centre and deepened, so the type
   sits on deep cobalt and the glow is behind and beside it rather than under it. The SAME
   background now carries from the design preview through 04a and the screens after it. */
.sc[data-theme="gate"] .sc-main{background:radial-gradient(ellipse 52% 46% at 74% 22%,rgba(63,195,255,.5) 0%,rgba(20,90,200,.6) 26%,rgba(8,26,72,.96) 60%,#040b22 100%);transition:background .6s cubic-bezier(.22,.8,.18,1)}
.sc[data-theme="gate"] .sc-main::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 34% 40% at 18% 84%,rgba(90,220,255,.3),transparent 72%);animation:sc-alive 42s ease-in-out infinite alternate}
.sc[data-theme="cobalt"]{--sc-bg:#0f2f87;--sc-ink:#fffde2;--sc-mid:rgba(255,253,226,.78);--sc-faint:rgba(255,253,226,.5);--sc-rule:rgba(255,253,226,.2);--sc-card:rgba(255,253,226,.07);--sc-acc:#fffde2;--sc-btn:#fffde2}
.sc-wave{position:fixed;inset:-20%;z-index:-2;pointer-events:none;opacity:0;transition:opacity 1.4s;background:radial-gradient(ellipse 30% 22% at 70% 28%,rgba(120,170,255,.4),transparent 70%),radial-gradient(ellipse 26% 40% at 88% 55%,rgba(40,90,220,.45),transparent 70%),radial-gradient(ellipse 30% 30% at 18% 78%,rgba(60,110,240,.25),transparent 70%);filter:blur(34px);animation:sc-drift 56s ease-in-out infinite alternate}
.sc[data-theme="night"] .sc-wave,.sc[data-theme="cobalt"] .sc-wave{opacity:1}
@keyframes sc-drift{from{transform:translate3d(-2%,-1%,0) scale(1.02)}to{transform:translate3d(2%,2%,0) scale(1.08)}}
.sc-grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}
/* top bar */
.sc-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;height:64px;padding:0 clamp(20px,4vw,48px);border-bottom:1px solid var(--sc-rule);backdrop-filter:blur(12px)}
.sc-top img{height:22px;display:block;transition:filter .6s}
.sc[data-theme="night"] .sc-top img,.sc[data-theme="cobalt"] .sc-top img{filter:invert(1) brightness(1.9)}
.sc-rail{display:flex;gap:6px;align-items:center}
.sc-rail i{display:block;width:26px;height:2px;background:var(--sc-rule);transition:background .4s}
.sc-rail i.done{background:var(--sc-ink)}
.sc-rail i.on{background:var(--sc-acc)}
.sc-top .ix-mono{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--sc-faint);white-space:nowrap}
.sc-top a{color:var(--sc-mid);font-family:var(--ix-mono,ui-monospace,monospace);font-size:10px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
/* layout */
.sc-main{position:relative;z-index:1;display:grid;align-content:start}
.sc-step{max-width:1280px;margin:0 auto;width:100%;box-sizing:border-box;padding:clamp(40px,7vh,88px) clamp(20px,4vw,48px) clamp(80px,10vh,140px);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,88px);align-items:start;transition:opacity .7s cubic-bezier(.22,.8,.18,1),transform .7s cubic-bezier(.22,.8,.18,1)}
.sc-main.pre .sc-step{opacity:0;transform:translateY(16px)}
.sc-main.pre .sc-rise,.sc-main.pre .sc-tile,.sc-main.pre .sc-sp .w i{animation:none}
.sc-step.one{grid-template-columns:1fr;max-width:1000px}
.sc-step.center{grid-template-columns:1fr;justify-items:center;text-align:center;padding-top:clamp(60px,14vh,160px)}
.sc-step.center .sc-lead{margin:0 auto}
.sc-words{display:grid;gap:clamp(18px,3vh,30px);align-content:start;position:sticky;top:96px}
.sc-stage{position:relative;min-height:420px}
.sc-k{display:block;font-family:var(--ix-mono,ui-monospace,monospace);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--sc-acc)}
/* Han 2026-09-20 (#20): line-height was 1, which is shorter than the line actually is. The
   animated .w spans add .08em of padding for the reveal, so two lines touched -- the collision
   he marked. 1.06 clears the descenders without changing the type size. */
.sc-h{margin:0;font-family:var(--ix-display);font-weight:500;font-size:clamp(34px,4.6vw,60px);line-height:1.06;letter-spacing:-.035em;max-width:16ch;text-wrap:balance}
/* Han 2026-09-20: two lines, exactly as written -- "One link." then "Indexed does the rest."
   14ch wrapped the second line into a third, which is not the break he asked for. The line
   breaks are already explicit in the markup, so the measure only has to be wide enough not to
   fight them. */
.sc-h.xl{font-size:clamp(44px,6.4vw,92px);max-width:24ch}
.sc-lead{margin:0;font-size:clamp(16px,1.25vw,19px);line-height:1.55;color:var(--sc-mid);max-width:48ch;text-wrap:pretty}
.sc-lead b{color:var(--sc-ink);font-weight:500}
.sc-fine{font-family:var(--ix-mono,ui-monospace,monospace);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--sc-faint)}
/* split-word reveal */
.sc-sp .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em}
.sc-sp .w i{display:inline-block;font-style:inherit;animation:sc-w .9s cubic-bezier(.22,.8,.18,1) backwards;animation-delay:calc(var(--i)*55ms + .1s)}
@keyframes sc-w{from{transform:translateY(110%)}to{transform:none}}
.sc-rise{animation:sc-rise .9s cubic-bezier(.22,.8,.18,1) backwards;animation-delay:var(--d,0ms)}
@keyframes sc-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
/* buttons + input */
.sc-btn{appearance:none;border:1px solid var(--sc-btn);background:var(--sc-btn);color:#fff;font:inherit;font-weight:500;font-size:15px;padding:15px 26px;cursor:pointer;white-space:nowrap;transition:transform .35s cubic-bezier(.22,.8,.18,1),background .2s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:10px}
.sc[data-theme="cobalt"] .sc-btn{color:#1740a9}
.sc-btn:hover{transform:translateY(-2px)}
.sc-back{position:relative;z-index:1;padding:16px 56px 0}
.sc-back a{display:inline-flex;align-items:center;min-height:44px;color:var(--sc-mid);font-size:14px;text-decoration:none}
.sc-back a:hover{text-decoration:underline;color:var(--sc-ink)}
.sc-back a:focus-visible{outline:2px solid var(--sc-acc);outline-offset:4px}
@media(max-width:700px){.sc-back{padding:12px 20px 0}}
/* Proposed two-direction step: reuses the locked gate shell and tokens. */
.sc-direction-review{max-width:1312px;margin:auto;padding:60px 56px;box-sizing:border-box}
.sc-direction-options{border:0;padding:0;margin:40px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.sc-direction-options legend{margin-bottom:20px}
.sc-direction-card{display:block;border:1px solid var(--sc-rule);background:var(--sc-card);padding:28px;cursor:pointer;overflow-wrap:anywhere}
.sc-direction-card input{accent-color:var(--sc-acc);width:24px;height:24px;margin:0 14px 20px 0}
.sc-direction-card:has(input:checked){border-color:var(--sc-acc);box-shadow:inset 0 0 0 1px var(--sc-acc)}
.sc-direction-card:focus-within{outline:2px solid var(--sc-acc);outline-offset:5px}
.sc-direction-card h2{font-size:28px;line-height:1.2;margin:10px 0 20px}
.sc-direction-review button:disabled{opacity:.55;cursor:not-allowed;transform:none}
@media(max-width:700px){.sc-direction-options{grid-template-columns:1fr}.sc-direction-card{padding:24px}.sc-direction-review{padding:24px 20px}}
.sc-btn.ghost{background:none;color:var(--sc-ink);border-color:var(--sc-rule)}
.sc-btn.ghost:hover{border-color:var(--sc-ink)}
.sc-verr{margin:0;width:min(460px,100%);box-sizing:border-box;text-align:left;line-height:1.5}
.sc-btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.sc-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
/* Han 2026-09-20 (#11): the two answers sit side by side, "Not us" to the right.
   nowrap is the point -- the Yes form is taller than the No form because the human check sits
   above its button, and wrapping is what pushed "Not us" underneath. The buttons are aligned to
   each other at the bottom. Everything stays nested in its own form: the turnstile script finds
   its widget, token field and button by descendant lookup, so moving them would break it. */
.sc-choose{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;width:100%}
/* Each answer keeps its own form. They sit side by side while both fit and wrap together when
   they do not, which is what stops "Not us" spilling out of the framed column on 01b. */
.sc-choose>form{display:grid;gap:12px;min-width:0;flex:1 1 0}
/* Equal halves, so both answers fit the framed column at any desktop width and the label wraps
   inside its own button rather than pushing "Not us" onto a line of its own. */
.sc-choose .sc-btn{white-space:normal;text-align:center}
.sc-bar{container-type:inline-size;display:flex;gap:8px;padding:8px;background:rgba(255,253,226,.06);border:1px solid var(--sc-rule);width:min(720px,100%);box-sizing:border-box;transition:border-color .3s,box-shadow .5s}
.sc-bar:focus-within{border-color:var(--sc-acc);box-shadow:0 0 0 6px rgba(126,160,255,.12),0 30px 80px -30px rgba(126,160,255,.5)}
.sc-bar input{flex:1;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:clamp(17px,1.4vw,20px);padding:14px 16px;color:var(--sc-ink)}
/* Han 2026-09-20 final pass: reduce the enlarged hint by 25%, fitting narrow inputs; uppercase copy
   types into the placeholder without changing the customer's entered value. */
.sc-bar input::placeholder{color:var(--sc-faint);font-size:min(clamp(13.5px,1.05vw,15px),3cqw);letter-spacing:.02em}
.sc-marq{overflow:hidden;width:100%;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.sc-marq>div{display:flex;gap:44px;width:max-content;animation:sc-marq 152s linear infinite}
.sc-marq span{font-family:var(--ix-mono,ui-monospace,monospace);font-size:12px;letter-spacing:.06em;color:var(--sc-faint);white-space:nowrap}
.sc-marq span::before{content:"“"}
.sc-marq span::after{content:"”"}
@keyframes sc-marq{to{transform:translateX(-50%)}}
.sc-prov{display:flex;gap:clamp(12px,1.8vw,28px);flex-wrap:wrap;justify-content:center}
.sc-prov span{font-family:var(--ix-mono,ui-monospace,monospace);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--sc-faint);display:inline-flex;align-items:center;gap:8px;transition:color .4s}
.sc-prov span img{width:18px;height:18px;display:block;object-fit:contain;opacity:.6;transition:opacity .4s,filter .4s}
.sc[data-theme="night"] .sc-prov span img,.sc[data-theme="cobalt"] .sc-prov span img{filter:brightness(0) invert(1);opacity:.7}
.sc-prov span img[src*="copilot"],.sc-prov span img[src*="grok"]{filter:none;opacity:.7}
.sc[data-theme="night"] .sc-prov span img[src*="copilot"],.sc[data-theme="night"] .sc-prov span img[src*="grok"]{filter:none}
.sc-prov span.on{color:var(--sc-ink)}
.sc-prov span.on img{opacity:1}
.sc-board .hd img{width:16px;height:16px;display:block;margin:0 auto;object-fit:contain;opacity:.7}
.sc[data-theme="night"] .sc-board .hd img{filter:brightness(0) invert(1)}
@keyframes sc-pulse{50%{opacity:.35}}
/* profile assembly */
.sc-prof{position:relative;display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:auto;gap:8px}
.sc-tile{position:relative;overflow:hidden;background:var(--sc-card);animation:sc-fly 1s cubic-bezier(.22,.8,.18,1) backwards;animation-delay:var(--d)}
.sc-tile img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:1}
@keyframes sc-fly{from{opacity:0;transform:translate(var(--x,0),var(--y,40px)) scale(.86)}to{opacity:1;transform:none}}
.sc-tile.card{grid-column:span 3;grid-row:span 2;aspect-ratio:auto;padding:20px;display:grid;gap:12px;align-content:start;border:1px solid var(--sc-rule);min-width:0}
.sc-tile.card img{width:56px;height:56px;border-radius:50%}
.sc-tile.card strong{display:block;font-family:var(--ix-display);font-weight:500;font-size:clamp(17px,1.5vw,21px);letter-spacing:-.02em;line-height:1.1;text-wrap:balance}
.sc-tile.card span{display:block;font-size:13px;color:var(--sc-mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-tile.card span span{display:inline}
.sc-tile.card p{margin:0;font-size:12.5px;line-height:1.5;color:var(--sc-mid);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.sc-tile.card .m{display:flex;flex-wrap:wrap;gap:6px 14px;font-family:var(--ix-mono,ui-monospace,monospace);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--sc-faint);border-top:1px solid var(--sc-rule);padding-top:12px}
.sc-tile.card .m b{color:var(--sc-ink);font-weight:500;margin-right:4px}
.sc-tile.g{grid-column:span 2}
/* event log */
.sc-log{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--sc-rule)}
.sc-log li{display:grid;grid-template-columns:64px 1fr auto;gap:16px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--sc-rule);opacity:.28;transition:opacity .4s;font-size:14.5px}
.sc-log li small{display:block;color:var(--sc-faint);font-size:12px;margin-top:2px}
.sc-log li.on,.sc-log li.done{opacity:1}
.sc-log .t{font-family:var(--ix-mono,ui-monospace,monospace);font-size:11px;letter-spacing:.1em;color:var(--sc-faint)}
.sc-log .s{font-family:var(--ix-mono,ui-monospace,monospace);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--sc-faint)}
.sc-log li.on .s{color:var(--sc-acc)}
.sc-log li.on .s::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--sc-acc);margin-right:8px;animation:sc-pulse 1.2s infinite}
.sc-wait{padding:16px 18px;background:var(--sc-card);border:1px solid var(--sc-rule);font-size:14px;color:var(--sc-mid);line-height:1.5}
/* the measurement board: 6 questions × 5 assistants */
.sc-board{display:grid;gap:10px}
.sc-board .q{display:grid;grid-template-columns:minmax(0,1fr) repeat(5,38px);gap:6px;align-items:center}
.sc-board .q>span{font-size:13.5px;color:var(--sc-mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .4s}
.sc-board .q.live>span{color:var(--sc-ink)}
.sc-board .q>span::before{content:"“"}
.sc-board .q>span::after{content:"”"}
.sc-cell{height:38px;border:1px solid var(--sc-rule);position:relative;transition:transform .5s cubic-bezier(.34,1.5,.64,1),background .3s,border-color .3s}
.sc-cell.lit{transform:scale(1)}
.sc-cell.lit.a{background:var(--sc-acc);border-color:var(--sc-acc)}
.sc-cell.lit.n{border-color:var(--sc-ink)}
.sc-cell.lit.m{border-style:dashed}
.sc-cell.lit.u{background:repeating-linear-gradient(135deg,var(--sc-faint) 0 2px,transparent 2px 4px)}
.sc-cell.pop{animation:sc-pop .5s cubic-bezier(.34,1.5,.64,1) both}
@keyframes sc-pop{from{transform:scale(.4)}to{transform:none}}
.sc-board .hd{display:grid;grid-template-columns:minmax(0,1fr) repeat(5,38px);gap:6px;font-family:var(--ix-mono,ui-monospace,monospace);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--sc-faint);text-align:center}
.sc-board .hd span:first-child{text-align:left}
/* Narrow columns: a heading clips rather than overrunning the next column. */
.sc-board .hd span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-score{display:flex;align-items:baseline;gap:16px}
.sc-score b{font-family:var(--ix-display);font-weight:500;font-size:clamp(96px,11vw,170px);line-height:.85;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.sc-score span{font-family:var(--ix-mono,ui-monospace,monospace);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--sc-faint);line-height:1.5}
.sc-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--sc-mid)}
.sc-legend>span{display:inline-flex;align-items:center;gap:8px}
.sc-legend span span{display:inline}
.sc-legend i{width:10px;height:10px;display:inline-block;border:1px solid var(--sc-ink)}
/* actions */
.sc-acts{display:grid;border-top:1px solid var(--sc-ink)}
.sc-act{display:grid;grid-template-columns:52px 1fr;gap:18px;padding:24px 0;border-bottom:1px solid var(--sc-rule);align-items:start}
.sc-act b{font-family:var(--ix-display);font-weight:500;font-size:38px;line-height:.9;letter-spacing:-.04em;color:var(--sc-acc)}
.sc-act h3{margin:0 0 8px;font-family:var(--ix-display);font-weight:500;font-size:clamp(19px,1.6vw,24px);letter-spacing:-.02em;line-height:1.15}
.sc-act p{margin:0;font-size:14.5px;line-height:1.55;color:var(--sc-mid)}
.sc-act .ev{margin-top:10px;font-family:var(--ix-mono,ui-monospace,monospace);font-size:11px;letter-spacing:.06em;color:var(--sc-faint)}
.sc-lock{position:relative;overflow:hidden;min-height:340px;border:1px solid var(--sc-rule)}
.sc-lock>*:not(.sc-lockmsg){filter:blur(8px);pointer-events:none;user-select:none;max-height:340px;overflow:hidden;padding:24px}
.sc-lock::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(251,250,246,.2),rgba(251,250,246,.94) 60%)}
.sc-lockmsg{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;gap:14px;text-align:center;padding:24px}
.sc-lockmsg strong{font-family:var(--ix-display);font-weight:500;font-size:22px;letter-spacing:-.02em}
.sc-lockmsg p{margin:0;color:var(--sc-mid);font-size:14px;max-width:36ch}
/* forms */
/* Han 2026-09-20: 03's matrix rain. Blue over the light paper theme, each column at its own
   speed and opacity. Decoration: it sits under everything, takes no pointer events, and is
   removed entirely for a customer who asked for reduced motion. */
.sc-rain{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;
 mask-image:linear-gradient(180deg,transparent,#000 12%,#000 72%,transparent)}
.sc-rain span{position:absolute;top:0;left:var(--x);
 font-family:var(--ix-mono,ui-monospace,monospace);font-size:15px;line-height:1.32;
 letter-spacing:.04em;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;
 color:#1f4fd8;opacity:var(--o);
 animation:sc-rain-fall var(--dur) linear var(--delay) infinite}
.sc-rain span::before{content:attr(data-g)}
@keyframes sc-rain-fall{from{transform:translateY(-100%)}to{transform:translateY(100vh)}}
/* The rain is behind the page, and the paper theme's own surfaces stay above it. The words sit
   on a soft wash of the page colour so the rain reads as background rather than running through
   the sentence the customer is trying to read. */
.sc[data-theme=paper] .sc-main,.sc[data-theme=paper] .sc-top{position:relative;z-index:1}
.sc[data-theme=paper] [data-screen=verify] .sc-words{position:relative}
.sc[data-theme=paper] [data-screen=verify] .sc-words::before{content:"";position:absolute;
 inset:-48px -64px;z-index:-1;pointer-events:none;
 background:radial-gradient(ellipse 60% 55% at 50% 45%,var(--sc-bg) 0%,var(--sc-bg) 46%,transparent 78%)}
/* Han 2026-10-03: the rain ran through the verify copy and inputs. The card is now a frosted, near-opaque
   surface (the scan start page's treatment: white wash plus backdrop blur) and the rain is masked out of
   the card's whole column and out of the header band, so it only falls in the side gutters. Below 840px
   there is no gutter (390 is full-width card), so the rain is not drawn at all. */
.sc[data-theme=paper] [data-screen=verify] .sc-words::before{display:none}
[data-screen=verify] .sc-words{box-sizing:border-box;width:min(580px,100%);position:relative;z-index:2;padding:clamp(24px,4vw,40px) clamp(20px,4vw,40px);border:1px solid var(--sc-rule);background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(11px) saturate(1.05);backdrop-filter:blur(11px) saturate(1.05);box-shadow:0 24px 60px -36px rgba(23,64,169,.35)}
.sc[data-step=verify] .sc-rain{z-index:0;
 -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(50% - 340px),transparent calc(50% - 340px),transparent calc(50% + 340px),#000 calc(50% + 340px),#000 100%),linear-gradient(180deg,transparent 0,transparent 120px,#000 200px,#000 calc(100% - 260px),transparent calc(100% - 130px));
 -webkit-mask-composite:source-in;
 mask-image:linear-gradient(90deg,#000 0,#000 calc(50% - 340px),transparent calc(50% - 340px),transparent calc(50% + 340px),#000 calc(50% + 340px),#000 100%),linear-gradient(180deg,transparent 0,transparent 120px,#000 200px,#000 calc(100% - 260px),transparent calc(100% - 130px));
 mask-composite:intersect}
@media (max-width:839px){.sc[data-step=verify] .sc-rain{display:none}}
@media (prefers-reduced-motion:reduce){.sc-rain{display:none}}

.sc-form{display:grid;gap:14px;width:min(460px,100%)}
/* Han 2026-09-20 (#22, #26): the single action on a screen runs the full width of the field it
   belongs to, and its reassurance sits beneath rather than beside it. */
.sc-actions.wide{display:grid;width:100%}
.sc-actions.wide .sc-btn{width:100%;justify-content:center;text-align:center}
.sc-form label{font-family:var(--ix-mono,ui-monospace,monospace);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sc-mid)}
.sc-form input{border:1px solid var(--sc-rule);background:var(--sc-card);color:var(--sc-ink);font:inherit;font-size:17px;padding:14px 16px;outline:0;width:100%;box-sizing:border-box;transition:border-color .3s}
.sc-form input:focus{border-color:var(--sc-acc)}
.sc-code{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;max-width:360px}
.sc-code input{text-align:center;font-family:var(--ix-mono,ui-monospace,monospace);font-size:26px;padding:14px 0}
.sc-code input:not(:placeholder-shown){border-color:var(--sc-acc);animation:sc-pop .4s cubic-bezier(.34,1.5,.64,1)}
/* full report */
.sc-qs{display:grid;border-top:1px solid var(--sc-rule)}
.sc-qs button{appearance:none;border:0;border-bottom:1px solid var(--sc-rule);background:none;font:inherit;text-align:left;padding:14px 0;display:grid;grid-template-columns:1fr auto;gap:16px;cursor:pointer;color:var(--sc-ink);font-size:15px;transition:padding-left .4s}
.sc-qs button:hover{padding-left:8px}
.sc-qs button.on{color:var(--sc-acc)}
.sc-qs button>span:last-child{font-family:var(--ix-mono,ui-monospace,monospace);font-size:11px;letter-spacing:.1em;color:var(--sc-faint)}
.sc-qs button>span:first-child{font-size:15px}
.sc-qs button>span:first-child span{display:inline;font:inherit;color:inherit}
.sc-tabs{display:flex;gap:6px;flex-wrap:wrap}
.sc-tabs button{appearance:none;border:1px solid var(--sc-rule);background:none;font:inherit;font-size:13px;padding:8px 14px;cursor:pointer;color:var(--sc-mid)}
.sc-tabs button.on{border-color:var(--sc-ink);color:var(--sc-ink)}
.sc-ans{background:var(--sc-card);border:1px solid var(--sc-rule);padding:24px;display:grid;gap:14px;min-height:200px}
.sc-ans .who{display:flex;justify-content:space-between;gap:12px;font-family:var(--ix-mono,ui-monospace,monospace);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sc-faint)}
.sc-ans p{margin:0;font-size:15px;line-height:1.6}
.sc-ans mark{background:rgba(23,64,169,.14);color:inherit;padding:0 2px}
.sc-lb{display:grid;gap:10px}
.sc-lb-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;font-size:14px}
.sc-lb-row .bar{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:12px;align-items:center}
.sc-lb-row i{display:block;height:8px;background:var(--sc-ink);transform-origin:left;animation:sc-bar 1.2s cubic-bezier(.22,.8,.18,1) backwards;animation-delay:var(--d)}
.sc-lb-row.you i{background:var(--sc-acc)}
.sc-lb-row.you{color:var(--sc-acc);font-weight:500}
@keyframes sc-bar{from{transform:scaleX(0)}to{transform:none}}
.sc-note{padding:16px 18px;border-left:2px solid var(--sc-acc);background:var(--sc-card);font-size:14px;line-height:1.5;color:var(--sc-mid)}
/* the composing site */
.sc-compose{position:relative;display:grid;gap:18px}
@keyframes sc-frame{from{opacity:0;transform:perspective(1600px) rotateX(8deg) translateY(40px)}to{opacity:1;transform:none}}
/* offer */
.sc-offer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(18px,2.4vw,32px)}
/* checkout */
.sc-check{display:grid;gap:22px}
/* confirmation */
.sc-verify{display:grid;gap:14px;list-style:none;margin:0;padding:0}
@media (max-width:900px){
.sc-step{grid-template-columns:1fr;gap:32px}
.sc-words{position:static}
.sc-rail{display:none}
.sc-bar{flex-direction:column}
/* Side by side is a desktop arrangement; on a phone they stack, Yes first. */
.sc-choose{flex-wrap:wrap}
.sc-choose>form{width:100%}
.sc-bar .sc-btn{width:100%}
.sc-prof{grid-template-columns:repeat(3,1fr)}
.sc-tile.card{grid-column:span 3;grid-row:auto}
.sc-tile.g{grid-column:span 1}
.sc-board .q,.sc-board .hd{grid-template-columns:minmax(0,1fr) repeat(5,28px)}
.sc-cell{height:28px}}
/* `.sc *` left the shell element itself out, so the 1.2s theme cross-fade on `.sc` kept running
   for readers who asked for less motion. The element is included now. */
@media (prefers-reduced-motion:reduce){.sc,.sc *{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}
@media (prefers-reduced-motion:reduce){.sc-wave,.sc-grain{animation:none!important}}
/* hidden documents never advance animations; show the resting state */
.sc.still .sc-step{opacity:1!important;transform:none!important;transition:none!important}
.sc.still .sc-rise,.sc.still .sc-tile,.sc.still .sc-sp .w i,.sc.still .sc-browser,.sc.still .sc-lb-row i,.sc.still .sc-portal,.sc.still .sc-phone{animation:none!important;opacity:1;transform:none}
/* sticky next bar */
.sc-next{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px clamp(20px,4vw,48px);background:var(--sc-bg);border-top:1px solid var(--sc-rule);box-shadow:0 -20px 60px -30px rgba(0,0,0,.35)}
.sc-main{padding-bottom:88px}
/* gate + build room */
.sc-speed{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}
/* preview with device toggle */
.sc-prevhead{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}
/* offer: domains + live toggle */
.sc-doms{display:grid;gap:8px;border-top:1px solid var(--sc-rule);padding-top:16px}
.sc-dom{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--sc-rule);cursor:pointer;transition:border-color .2s}
.sc-dom.on{border-color:var(--sc-acc)}
.sc-dom input{accent-color:var(--sc-acc)}
.sc-dom>b{font-weight:500;font-size:15px;font-family:var(--ix-body,inherit);letter-spacing:0;text-transform:none}
.sc-dom>span{font-family:var(--ix-mono,ui-monospace,monospace);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--sc-faint)}
.sc-dom.on>span{color:var(--sc-acc)}
.sc-dom span span,.sc-live span span{display:inline;font:inherit;color:inherit}
.sc-live{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:14px 16px;border:1px solid var(--sc-rule);cursor:pointer;background:var(--sc-card)}
.sc-live.on{border-color:var(--sc-acc)}
.sc-live input{position:absolute;opacity:0;pointer-events:none}
.sc-live .tg{width:38px;height:22px;border-radius:999px;background:var(--sc-rule);position:relative;transition:background .3s;margin-top:2px}
.sc-live .tg::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .3s cubic-bezier(.34,1.5,.64,1)}
.sc-live.on .tg{background:var(--sc-acc)}
.sc-live.on .tg::after{transform:translateX(16px)}
.sc-live>div>b{display:block;font-weight:500;font-size:15px}
.sc-live>div>span{display:block;font-size:13px;line-height:1.5;color:var(--sc-mid);margin-top:4px}
/* details strip */
.sc-details{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px;padding:16px 0;border-top:1px solid var(--sc-rule);border-bottom:1px solid var(--sc-rule);font-size:13px;line-height:1.5}
.sc-details dt{font-family:var(--ix-mono,ui-monospace,monospace);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--sc-faint);margin-bottom:3px}
.sc-details dd{margin:0;color:var(--sc-mid)}
/* confirmation morphs into the portal shell */
.sc-railin{position:fixed;top:64px;left:0;bottom:0;width:220px;padding:28px 22px;display:grid;gap:14px;align-content:start;background:#fbfaf6;color:#0a0a0a;border-right:1px solid rgba(10,10,10,.1);transform:translateX(-100%);transition:transform .9s cubic-bezier(.22,.8,.18,1);z-index:25}
.sc-railin b{font-family:var(--ix-display);font-weight:500;font-size:18px;letter-spacing:-.02em;margin-bottom:10px}
.sc-railin span{font-size:14px;color:rgba(10,10,10,.6);padding:6px 0}
.sc-railin span.on{color:#1740a9;font-weight:500}
.sc-step.morph .sc-railin{transform:none}
.sc-step.morph .sc-words,.sc-step.morph .sc-stage{opacity:0;transform:translateX(40px);transition:opacity .7s,transform .9s cubic-bezier(.22,.8,.18,1)}
.sc[data-theme="cobalt"] .sc-btn.ghost{color:var(--sc-ink);border-color:rgba(255,253,226,.5)}
@media (max-width:900px){.sc-details{grid-template-columns:1fr}.sc-railin{display:none}.sc-next{flex-direction:column;align-items:stretch}.sc-next .sc-fine{display:none}}
/* scanning: one live status line; the full log folds under it */
.sc-status{display:grid;gap:6px;padding:16px 0;border-top:1px solid var(--sc-rule);border-bottom:1px solid var(--sc-rule)}
.sc-status b{font-family:var(--ix-display);font-weight:500;font-size:clamp(20px,1.8vw,26px);letter-spacing:-.02em;display:flex;align-items:center;gap:12px}
.sc-status b::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sc-acc);animation:sc-pulse 1.2s infinite;flex:none}
.sc-status small{color:var(--sc-faint);font-size:13px}
.sc-status-active b::before{width:12px;height:12px;border:2px solid var(--sc-acc);border-right-color:transparent;background:transparent;animation:sc-loading 1s linear infinite}
.sc-status-active b{animation:sc-status-in .45s ease-out}
[data-poll-state]:empty{display:none}
@keyframes sc-loading{to{transform:rotate(360deg)}}
@keyframes sc-status-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
/* Indeterminate motion never fills a cell or advances a stage. */
[data-screen="scanning"]{position:relative;isolation:isolate}
[data-screen="scanning"]::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 70% 35%,rgba(67,116,255,.16),transparent 62%);animation:sc-breathe 16s ease-in-out infinite alternate}
[data-screen="scanning"] .sc-cell{overflow:hidden}
.sc-pending::after,.sc-skeleton::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 15%,rgba(126,160,255,.24) 50%,transparent 85%);transform:translateX(-120%);animation:sc-sweep 7.2s ease-in-out infinite;animation-delay:calc(var(--cell,0) * .26s)}
.sc-question-enter{animation:sc-status-in .65s ease-out both;animation-delay:calc(var(--row,0) * .13s)}
.sc-recorded{animation:sc-pop .45s ease-out both}
.sc-preparing{display:grid;gap:18px}
.sc-preparing small{color:var(--sc-faint)}
.sc-skeleton{position:relative;overflow:hidden;display:block;height:14px;background:var(--sc-card);border-radius:2px}
.sc-skeleton:nth-of-type(2){width:86%;--cell:2}
.sc-skeleton:nth-of-type(3){width:68%;--cell:4}
@keyframes sc-sweep{0%,15%{transform:translateX(-120%)}75%,100%{transform:translateX(120%)}}
@keyframes sc-breathe{from{opacity:.35}to{opacity:1}}
[data-screen="scanning"].sc-motion-paused::before,[data-screen="scanning"].sc-motion-paused *,[data-screen="scanning"].sc-motion-paused *::before,[data-screen="scanning"].sc-motion-paused *::after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){[data-screen="scanning"]::before,[data-screen="scanning"] *,[data-screen="scanning"] *::before,[data-screen="scanning"] *::after{animation:none!important;transition:none!important}.sc-pending::after,.sc-skeleton::after{display:none}}
@media(prefers-reduced-motion:reduce){.sc-status-active b,.sc-status-active b::before{animation:none!important}}
.sc-status .n{font-family:var(--ix-mono,ui-monospace,monospace);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sc-faint)}
details.sc-fold summary{list-style:none;cursor:pointer;font-family:var(--ix-mono,ui-monospace,monospace);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sc-faint);padding:10px 0}
details.sc-fold summary::-webkit-details-marker{display:none}
details.sc-fold[open] summary{color:var(--sc-mid)}
/* gate: pointer-reactive gradient */
.sc-gate{position:relative;overflow:hidden;--mx:50%;--my:40%}
/* live toggle: white card + expander */
.sc-live{background:#fff;border-color:rgba(10,10,10,.14)}
.sc-live.on{border-color:var(--sc-acc)}
.sc-live .more{appearance:none;border:0;background:none;padding:0;font:inherit;font-size:13px;color:var(--sc-acc);cursor:pointer;text-decoration:underline;text-underline-offset:3px;justify-self:start}
.sc-live-more{grid-column:1/-1;display:grid;gap:10px;padding-top:12px;border-top:1px solid rgba(10,10,10,.1);font-size:13.5px;line-height:1.5;color:var(--sc-mid)}
.sc-live-more li{display:grid;grid-template-columns:12px 1fr;gap:10px}
.sc-live-more li::before{content:"";width:6px;height:6px;background:var(--sc-acc);margin-top:7px}
.sc-live-more ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
/* teaser locks more */
.sc-lock.tall{min-height:520px}
.sc-lock.tall>*:not(.sc-lockmsg){max-height:520px}
/* leaving for the portal: the whole page settles to the portal's warm white behind the rail */
.sc-step.morph{transition:background 1s}
html.sc-leave .sc{background:#f7f4ee!important;transition:background .8s}
html.sc-leave .sc-top,html.sc-leave .sc-wave,html.sc-leave .sc-grain,html.sc-leave .sc-next{opacity:0;transition:opacity .6s}
html.sc-leave .sc-railin{width:232px;background:#fbfaf6}
/* ── mobile polish (phones) ─────────────────────────────── */
@media (max-width:720px){
.sc-step{padding:80px 16px 120px;gap:26px}
.sc-h{font-size:clamp(30px,9vw,44px)}
.sc-k{font-size:9px}
.sc-lead{font-size:16px}
.sc-words{gap:16px}
.sc-form{flex-direction:column;align-items:stretch;gap:10px}
.sc-form input{width:100%;font-size:16px;min-height:50px}
.sc-form .sc-btn,.sc-btn{min-height:48px;justify-content:center;text-align:center}
.sc-marq b{font-size:13px;padding:0 14px}
.sc-logos{gap:12px}
.sc-logos img{height:16px}
/* profile grid: card full width, six photos two-up */
.sc-prof{grid-template-columns:repeat(2,1fr);gap:8px}
.sc-tile.card{grid-column:1/-1}
.sc-tile.g{grid-column:span 1}
/* the answer board: question on its own row, cells six-up beneath */
.sc-board{gap:14px}
.sc-board .hd{grid-template-columns:repeat(6,1fr)}
.sc-board .hd span:first-child{display:none}
.sc-board .q{grid-template-columns:repeat(6,1fr);gap:5px}
.sc-board .q>span:first-child{grid-column:1/-1;font-size:13.5px;white-space:normal}
.sc-cell{height:32px}
/* report */
.sc-score b{font-size:clamp(56px,17vw,84px)}
.sc-actions li{padding:14px 0}
.sc-details,.sc-schema,.sc-offer,.sc-thumbs-site{grid-template-columns:1fr}
.sc-thumbs{grid-template-columns:repeat(2,1fr)}

/* build room */
.sc-mile{padding:13px 0;gap:10px}
.sc-mile b{font-size:14.5px}
.sc-reveal{padding:16px}
.sc-swatch i{width:24px;height:24px}
/* device toggle + frames */
.sc-prevhead{gap:12px}
.sc-devs{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100%}
.sc-devs button{flex:none;min-height:42px}
.sc-browser.big .sc-site{--sh:min(58vh,440px)}
.sc-browser.big .sc-site .xv-scroll>.ms .sg{height:calc(min(58vh,440px)/var(--z,1))}
.sc-browser.big.phone{max-width:100%}
.sc-thumbs-site{grid-template-columns:1fr}
.sc-thumb .sc-site{--sh:180px}
/* offer + checkout */
.sc-doms{grid-template-columns:1fr}
.sc-dom{min-height:56px}
.sc-plan{padding:20px 16px}
.sc-plan .price{font-size:clamp(38px,11vw,56px)}
.sc-cardrow{grid-template-columns:1fr}
.sc-cardrow input{grid-column:1/-1!important;font-size:16px;min-height:48px}
.sc-live{padding:14px;gap:12px}
.sc-live b{font-size:14.5px}
/* sticky next bar: thumb-reachable, safe-area aware */
.sc-next{left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-radius:0;flex-direction:column;align-items:stretch;gap:8px}
.sc-next .sc-btn{width:100%;justify-content:center;min-height:50px}
.sc-next .sc-fine{text-align:center;order:-1}
.sc-portal{grid-template-columns:1fr;padding:20px 16px}
}
/* --- server-rendered additions ----------------------------------------------
 * The handoff drives its screens from React state. These rules cover the same
 * structures as plain markup: real links instead of click handlers, a <form>
 * for every state change, and honest empty/pending states.
 */
.sc-main{min-height:calc(100vh - 64px)}
.sc-step{animation:sc-rise .7s cubic-bezier(.22,.8,.18,1) backwards}
.sc-facts{display:grid;gap:0;border-top:1px solid var(--sc-rule);margin:0}
.sc-facts>div{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--sc-rule)}
.sc-facts dt{font-family:var(--ix-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sc-faint);margin:0}
.sc-facts dd{margin:0;font-size:14.5px;color:var(--sc-ink);overflow-wrap:anywhere}
.sc-facts dd.unknown{color:var(--sc-faint)}
.sc-details>div{min-width:0}
.sc-details dd{overflow-wrap:anywhere}
.sc-board .q,.sc-board .hd{grid-template-columns:minmax(0,1fr) repeat(var(--sc-cols,3),38px)}
@media (max-width:900px){.sc-board .q,.sc-board .hd{grid-template-columns:minmax(0,1fr) repeat(var(--sc-cols,3),28px)}}
@media (max-width:720px){[data-screen="scanning"] .sc-board .q,[data-screen="scanning"] .sc-board .hd{grid-template-columns:repeat(var(--sc-cols,3),minmax(0,1fr))}[data-screen="scanning"] .sc-board .q>span:first-child{grid-column:1/-1}[data-screen="scanning"] .sc-board .hd>span:first-child{display:none}}
.sc-cell.lit.a{background:var(--sc-acc);border-color:var(--sc-acc)}
.sc-pend{padding:14px 16px;border:1px dashed var(--sc-rule);color:var(--sc-faint);font-size:13.5px}
.sc-err{padding:14px 16px;border-left:2px solid #9b1c1c;background:var(--sc-card);color:var(--sc-ink);font-size:14px}
.sc-lockmsg form{display:grid;gap:12px;justify-items:center;width:min(380px,100%)}
.sc-lockmsg input{border:1px solid var(--sc-rule);background:var(--sc-card);color:var(--sc-ink);font:inherit;font-size:16px;padding:13px 15px;width:100%}
.sc-code input{width:100%}
.sc-form .sc-code{margin-bottom:6px;width:100%;max-width:none}
.sc-q-list{display:grid;border-top:1px solid var(--sc-rule);margin:0;padding:0;list-style:none}
.sc-q-list a{display:grid;grid-template-columns:1fr auto;gap:16px;padding:14px 0;border-bottom:1px solid var(--sc-rule);text-decoration:none;color:var(--sc-ink);font-size:15px;transition:padding-left .4s}
.sc-q-list a:hover{padding-left:8px}
.sc-q-list a[aria-current="true"]{color:var(--sc-acc)}
.sc-turnstile{display:grid;gap:10px;justify-items:start}
.sc-verr{margin:0;width:min(460px,100%);box-sizing:border-box;text-align:left;line-height:1.5}
.sc-btn[disabled]{opacity:.45;cursor:not-allowed}
.sc-q-list .n{font-family:var(--ix-mono);font-size:11px;letter-spacing:.1em;color:var(--sc-faint)}
.sc-teaser-right{display:grid;gap:36px;min-width:0}
.sc a.sc-btn{color:#fff}
.sc-unpublished p{font-size:13px;line-height:1.5;color:var(--sc-mid);margin:6px 0 0;max-width:48ch}
.sc-lock-placeholder{display:grid;gap:20px}
.sc-placeholder-row{display:grid;grid-template-columns:44px 1fr;gap:18px;padding:18px 0}
.sc-placeholder-row b{font-family:var(--ix-display);font-size:38px;color:var(--sc-acc)}
.sc-placeholder-row i{display:block;height:12px;background:var(--sc-mid);opacity:.4;margin:12px 0}
.sc-placeholder-row i:first-child{height:20px;width:85%}
.sc-placeholder-row i:last-child{width:65%}
.sc-report-board .hd span{overflow:hidden;text-overflow:ellipsis;letter-spacing:0}
.sc-report-board .hd svg{width:16px;height:16px;display:block;margin:0 auto;opacity:.7}
.sc-legend .sc-cell{width:9px;height:9px;min-width:9px;display:inline-block}
.sc-cell.lit.m{border-style:dashed}
.sc-cell.lit.u{background:repeating-linear-gradient(135deg,#999 0 2px,transparent 2px 4px)}
.sc-next{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px clamp(20px,4vw,48px);background:var(--sc-bg);border-top:1px solid var(--sc-rule);box-shadow:0 -20px 60px -30px rgba(0,0,0,.35)}
@media(max-width:900px){.sc-next{flex-direction:column;align-items:stretch}.sc-next .sc-fine{display:none}}
@media(max-width:720px){.sc-next{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.sc-next .sc-btn{width:100%;min-height:50px}.sc-report-board .q,.sc-report-board .hd{grid-template-columns:repeat(var(--sc-cols,3),minmax(0,1fr))}.sc-report-board .hd>span:first-child,.sc-report-board .q>span:first-child{grid-column:1/-1}.sc-report-board .q>span:first-child{white-space:normal}}

/* 03b resend (D-5). Separate form so the code form keeps one submit; visually a quiet aside. */
.sc-resend{display:grid;justify-items:center;gap:14px;margin-top:22px;padding-top:20px;border-top:1px solid var(--sc-rule);width:min(460px,100%);max-width:none}
/* The email box here is the approved .sc-form field (shared rule above); it runs the full width of the form. */
.sc-resend .sc-resend-h{margin:0;font-weight:400;text-align:center}
.sc-help{margin:0;max-width:44ch;font-size:14px;line-height:1.55;color:var(--sc-mid);text-align:center;text-wrap:pretty}
.sc-verr{margin:0;width:min(460px,100%);box-sizing:border-box;text-align:left;line-height:1.5}
.sc-btn[disabled]{opacity:.6;cursor:progress;transform:none}

/* Row 26 — real per-assistant cell state from /status. A cell says only whether that
   assistant has been asked, has answered, or was unavailable. It never shows an outcome:
   outcomes open with the report. Unknown or absent state leaves the cell pending. */
.sc-cell[data-cell-state]{transition:background-color 400ms var(--sc-ease,cubic-bezier(.165,.84,.44,1)),border-color 400ms var(--sc-ease,cubic-bezier(.165,.84,.44,1))}
.sc-cell[data-cell-state=asking]{border-color:var(--sc-acc);animation:sc-cell-asking 1.5s ease-in-out infinite}
.sc-cell[data-cell-state=answered]{background:var(--sc-acc);border-color:var(--sc-acc)}
.sc-cell[data-cell-state=unavailable]{background:repeating-linear-gradient(135deg,currentColor 0 2px,transparent 2px 4px);opacity:.45}
@keyframes sc-cell-asking{0%,100%{opacity:.35}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.sc-cell[data-cell-state=asking]{animation:none;opacity:.8}.sc-cell[data-cell-state]{transition:none}}

/* 01b profile card — designed shape, populated only with what the resolver knows. Every
   unread element is a skeleton, never a placeholder value and never an invented avatar. */
.sc-avatar{display:block;width:54px;height:54px;border-radius:50%;background:rgba(255,253,226,.12)}
.sc-skel-line{display:block;height:10px;border-radius:3px;background:linear-gradient(100deg,rgba(255,253,226,.08) 30%,rgba(255,253,226,.18) 50%,rgba(255,253,226,.08) 70%);background-size:220% 100%;animation:sc-skel 3.2s linear infinite;margin-top:8px;width:60%}
.sc-skel-line.wide{width:88%;height:9px;margin-top:14px}
.sc-tile-unread{background:rgba(255,253,226,.05);border:1px solid rgba(255,253,226,.08);min-height:74px;animation:sc-skel-fade 700ms var(--sc-ease,cubic-bezier(.165,.84,.44,1)) both;animation-delay:var(--d,0ms)}
@keyframes sc-skel{from{background-position:120% 0}to{background-position:-100% 0}}
@keyframes sc-skel-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.sc-skel-line,.sc-tile-unread{animation:none}.sc-skel-line{background:rgba(255,253,226,.12)}}

/* ---- 02 measuring: the screen lightens toward 03 (Han 2026-09-20, #18 and #19) -------------
   Five steps, one per PROGRESS_STAGE, driven by data-lighten on the section. The white is a
   shader laid over the night background rather than a different theme, so nothing else about
   the screen changes as it lifts; the ink follows it to blue so the text stays readable at
   every step rather than only at the ends. scan-progress.js updates the attribute as real
   progress is recorded, so the light never runs ahead of the measurement. */
.sc-lighten{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;
 background:radial-gradient(ellipse 120% 90% at 50% 40%,#fff 0%,#f6f8ff 55%,#eef2ff 100%);
 transition:opacity 2.4s cubic-bezier(.4,0,.2,1)}
.sc-main:has([data-lighten="0"]) .sc-lighten{opacity:0}
.sc-main:has([data-lighten="1"]) .sc-lighten{opacity:.22}
.sc-main:has([data-lighten="2"]) .sc-lighten{opacity:.45}
.sc-main:has([data-lighten="3"]) .sc-lighten{opacity:.72}
.sc-main:has([data-lighten="4"]) .sc-lighten{opacity:.94}
/* The ink travels with the light: pale on night, blue once the page is white. */
/* `color` is computed on .sc and inherited, so redefining --sc-ink further down does nothing on
   its own: the step has to take the colour again for the new value to reach the text. */
.sc-main:has([data-lighten]) .sc-step{position:relative;z-index:1;color:var(--sc-ink)}
.sc-main:has([data-lighten]) .sc-h{color:var(--sc-ink)}
.sc-main:has([data-lighten]) .sc-lead,.sc-main:has([data-lighten]) .sc-status small{color:var(--sc-mid)}
.sc-main:has([data-lighten]) .sc-fine,.sc-main:has([data-lighten]) .sc-k{color:var(--sc-faint)}
.sc-main:has([data-lighten="2"]) .sc-step{--sc-ink:#cfe0ff;--sc-mid:#b9cdf5}
.sc-main:has([data-lighten="3"]) .sc-step{--sc-ink:#1b3f9e;--sc-mid:#38539f;--sc-faint:#6c82c4;--sc-rule:#1b3f9e33}
.sc-main:has([data-lighten="4"]) .sc-step{--sc-ink:#12276b;--sc-mid:#26397e;--sc-faint:#5a6fae;--sc-rule:#12276b2e}
.sc-main:has([data-lighten="3"]) .sc-step *,.sc-main:has([data-lighten="4"]) .sc-step *{transition:color 1.6s ease}
@media (prefers-reduced-motion:reduce){.sc-lighten{transition:none}}

/* Han 2026-09-20 (#17): Rumi's band spans both columns beneath the step. */
.sc-band{grid-column:1/-1;display:grid;justify-items:start;padding-top:8px}
@media (max-width:900px){.sc-band{justify-items:stretch}}

/* The top bar sits OUTSIDE .sc-main, so the lightening rules above never reached it and it
   faded into the white it was sitting on. It follows the same ramp, and the logo stops being
   inverted once the page is light enough that a white mark would vanish. */
.sc:has([data-lighten="2"]) .sc-top{--sc-ink:#1b3f9e;--sc-mid:#38539f;--sc-faint:#6c82c4;--sc-rule:#1b3f9e2e;color:var(--sc-ink)}
.sc:has([data-lighten="3"]) .sc-top,.sc:has([data-lighten="4"]) .sc-top{--sc-ink:#12276b;--sc-mid:#26397e;--sc-faint:#5a6fae;--sc-rule:#12276b30;color:var(--sc-ink)}
.sc:has([data-lighten="3"]) .sc-top a,.sc:has([data-lighten="4"]) .sc-top a,
.sc:has([data-lighten="3"]) .sc-top .ix-mono,.sc:has([data-lighten="4"]) .sc-top .ix-mono{color:var(--sc-mid)}
.sc:has([data-lighten="3"]) .sc-top img,.sc:has([data-lighten="4"]) .sc-top img{filter:none}
.sc:has([data-lighten="3"]) .sc-rail i.done,.sc:has([data-lighten="4"]) .sc-rail i.done{background:#12276b}

/* Rumi's block sets its own cream ink, which vanishes once the page is white. Under the ramp she
   takes the same blue as everything else. Her markup and script hooks are untouched. */
.sc-main:has([data-lighten="2"]) .rumi-wait{color:#1b3f9e;border-top-color:#1b3f9e2e}
.sc-main:has([data-lighten="3"]) .rumi-wait,.sc-main:has([data-lighten="4"]) .rumi-wait{color:#12276b;border-top-color:#12276b30}
.sc-main:has([data-lighten="3"]) .rumi-caret,.sc-main:has([data-lighten="4"]) .rumi-caret{background:#12276b}
.sc-main:has([data-lighten="3"]) .rumi-code,.sc-main:has([data-lighten="4"]) .rumi-code{color:#3a53a8}
/* A recorded cell is marked by its border, which was --sc-ink: invisible once ink went pale and
   then blue-on-white at one step. It reads as a filled blue cell on the light end instead. */
.sc-main:has([data-lighten="3"]) .sc-cell.lit.n,.sc-main:has([data-lighten="4"]) .sc-cell.lit.n{border-color:#1f4fd8;background:#1f4fd81f}
.sc-main:has([data-lighten="3"]) .sc-cell,.sc-main:has([data-lighten="4"]) .sc-cell{border-color:#12276b26}

/* ---- directions (Han 2026-09-20, #28 #29 #30) ---------------------------------------------- */
.sc-direction-options{border:0;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2.4vw,32px)}
.sc-slot{display:grid;gap:10px;align-content:start}
.sc-slot-label{color:var(--sc-acc)}
.sc-direction-card{display:grid;gap:10px;align-content:start;min-height:230px;padding:22px;border:1px solid var(--sc-rule);background:var(--sc-card);cursor:pointer;transition:border-color .3s,background .3s,transform .5s cubic-bezier(.34,1.4,.64,1)}
.sc-direction-card:hover{border-color:var(--sc-acc)}
.sc-direction-card:has(input:checked){border-color:var(--sc-acc);background:color-mix(in srgb,var(--sc-acc) 12%,transparent)}
.sc-direction-card h2{margin:0;font-family:var(--ix-display);font-weight:500;font-size:clamp(20px,2vw,26px);line-height:1.15}
/* An empty slot is the shape of the card that will fill it, not a sentence about one. */
.sc-direction-card.empty{border-style:dashed;background:none;cursor:default}
.sc-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media (max-width:900px){.sc-direction-options{grid-template-columns:1fr}}
/* #30: the wave runs behind the directions screen as it does behind night and cobalt. */
.sc[data-theme="gate"] .sc-wave{opacity:.9}

/* ---- 01b confirm (Han 2026-09-20, #10 #13) ------------------------------------------------- */
/* #10: one frame. The two columns were two loose stacks at different heights; they now sit in a
   single bordered panel on a shared top line, with one padding and one rule between them, so the
   screen reads as one object instead of two. Content, order and markup are unchanged. */
[data-screen=confirm]{align-items:stretch;gap:0}
[data-screen=confirm] .sc-words,[data-screen=confirm] .sc-stage{padding:clamp(24px,3vw,36px);border:1px solid var(--sc-rule);background:var(--sc-card);align-content:start}
[data-screen=confirm] .sc-stage{border-left:0;min-height:0}
[data-screen=confirm] .sc-words{border-right:0}
@media (max-width:900px){
 [data-screen=confirm] .sc-words{border-right:1px solid var(--sc-rule);border-bottom:0}
 [data-screen=confirm] .sc-stage{border-left:1px solid var(--sc-rule);border-top:0}
}
/* #13: the confirm background moves. Two slow drifting fields over the night wave, so the page
   is alive while the customer decides rather than a still frame. */
[data-screen=confirm]::before{content:"";position:fixed;inset:-10%;z-index:-1;pointer-events:none;
 background:radial-gradient(ellipse 28% 30% at 22% 30%,rgba(126,160,255,.26),transparent 68%),
            radial-gradient(ellipse 24% 26% at 78% 68%,rgba(40,90,220,.22),transparent 70%);
 filter:blur(30px);animation:sc-confirm-drift 44s ease-in-out infinite alternate}
@keyframes sc-confirm-drift{from{transform:translate3d(-2%,-2%,0) scale(1.02)}to{transform:translate3d(3%,2%,0) scale(1.1)}}
@media (prefers-reduced-motion:reduce){[data-screen=confirm]::before{animation:none}}


/* ---- scans closed (Han 2026-09-20, #14 #15) ------------------------------------------------ */
/* #14: the closed page is the confirm page, so it matches by construction; this panel sits over
   it rather than replacing it with a different screen. */
.sc-closed{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px;
 background:color-mix(in srgb,#040b22 72%,transparent);backdrop-filter:blur(6px);
 animation:sc-closed-in .5s cubic-bezier(.22,.8,.18,1) both}
@keyframes sc-closed-in{from{opacity:0}to{opacity:1}}
.sc-closed-card{width:min(460px,100%);max-height:calc(100vh - 40px);overflow:auto;display:grid;gap:14px;
 padding:clamp(24px,3vw,34px);border:1px solid var(--sc-rule);background:var(--sc-bg);
 box-shadow:0 60px 120px -60px rgba(0,0,0,.8);animation:sc-closed-rise .6s cubic-bezier(.22,.8,.18,1) both}
@keyframes sc-closed-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.sc-closed-card .rumi-wait{padding:14px 0 0;max-width:none}
.sc-closed-card .rumi-fact{font-size:15px;min-height:4.6em;margin:10px 0 0;max-width:none}
.sc-closed-card .sc-form{width:100%}
.sc-closed-card .sc-verr{margin:0;width:min(460px,100%);box-sizing:border-box;text-align:left;line-height:1.5}
.sc-btn[disabled]{opacity:.5;cursor:not-allowed}

/* ---- Han 2026-09-20: the marks on 01, lit in turn ------------------------------------------ */
/* The names were type; these are the surfaces' own marks. Each lights in sequence and holds, so
   the row reads as three things being asked one after another rather than three static logos. */
.sc-prov-glow span{position:relative;flex-direction:column;gap:10px}
.sc-prov-glow span svg{width:26px;height:26px;display:block;opacity:.32;
 animation:sc-prov-lit 12s ease-in-out infinite;animation-delay:calc(var(--i)*1.8s)}
.sc-prov-glow span i{font-style:normal;font-size:10px;letter-spacing:.18em;opacity:.5;
 animation:sc-prov-lit-text 12s ease-in-out infinite;animation-delay:calc(var(--i)*1.8s)}
@keyframes sc-prov-lit{0%,62%,100%{opacity:.3;filter:none}
 18%,40%{opacity:1;filter:drop-shadow(0 0 14px rgba(126,160,255,.85))}}
@keyframes sc-prov-lit-text{0%,62%,100%{opacity:.45}18%,40%{opacity:1}}
@media (prefers-reduced-motion:reduce){
 .sc-prov-glow span svg,.sc-prov-glow span i{animation:none;opacity:.85}}

/* ---- Han 2026-09-20: every screen's background is alive ------------------------------------ */
/* The wave drifts on every theme now, not only night and cobalt, and a slow pulse rides over it
   so a still screenshot and a live screen do not look the same. Decoration only. */
.sc .sc-wave{opacity:1}
.sc[data-theme="paper"] .sc-wave{opacity:.5;filter:blur(46px)}
.sc::after{content:"";position:fixed;inset:-20%;z-index:-2;pointer-events:none;
 background:radial-gradient(ellipse 34% 30% at 26% 32%,rgba(126,160,255,.2),transparent 70%),
            radial-gradient(ellipse 30% 34% at 74% 70%,rgba(40,90,220,.18),transparent 72%);
 filter:blur(44px);animation:sc-alive 38s ease-in-out infinite alternate}
@keyframes sc-alive{from{transform:translate3d(-3%,-2%,0) scale(1.02);opacity:.75}
 to{transform:translate3d(3%,3%,0) scale(1.12);opacity:1}}
@media (prefers-reduced-motion:reduce){.sc::after{animation:none}}

/* ---- scans-closed panel, Han 2026-09-20 ---------------------------------------------------- */
.sc-closed-title{margin:0;font-family:var(--ix-display);font-weight:500;letter-spacing:-.03em;
 font-size:clamp(26px,3vw,36px);line-height:1.1;color:var(--sc-ink)}
/* The panel is already Rumi's, so her own label row and rule are not repeated inside it. */
[data-rumi-closed] .rumi-wait{border-top:0;padding-top:4px}
[data-rumi-closed] .rumi-row{display:none}
[data-rumi-closed] .rumi-figure{width:clamp(96px,26vw,140px);margin:0 auto}
[data-rumi-closed] .rumi-byline{justify-content:center}
[data-rumi-closed] .rumi-fact{text-align:center;font-size:clamp(17px,2.2vw,21px);min-height:5.4em}

/* Han 2026-09-20: the dot field lights in a shifting order rather than drifting as one sheet.
   Three overlapping cycles at different periods mean no two passes light the same dots in the
   same sequence, which is what he asked for. Decoration; it stops for reduced motion. */
.sc[data-theme="gate"] .sc-main::after{content:"";position:absolute;inset:0;pointer-events:none;
 background-image:radial-gradient(circle at center,rgba(150,205,255,.9) 1.1px,transparent 1.7px);
 background-size:15px 15px;
 -webkit-mask-image:radial-gradient(ellipse 26% 24% at 20% 30%,#000 0%,transparent 70%),
             radial-gradient(ellipse 22% 26% at 76% 64%,#000 0%,transparent 72%),
             radial-gradient(ellipse 30% 20% at 52% 88%,#000 0%,transparent 70%);
 mask-image:radial-gradient(ellipse 26% 24% at 20% 30%,#000 0%,transparent 70%),
             radial-gradient(ellipse 22% 26% at 76% 64%,#000 0%,transparent 72%),
             radial-gradient(ellipse 30% 20% at 52% 88%,#000 0%,transparent 70%);
 -webkit-mask-composite:source-over;
 animation:sc-dots-a 26s ease-in-out infinite alternate,sc-dots-b 17s ease-in-out infinite alternate}
@keyframes sc-dots-a{from{opacity:.25;background-position:0 0}to{opacity:.7;background-position:22px 16px}}
@keyframes sc-dots-b{from{-webkit-mask-position:0 0;mask-position:0 0}to{-webkit-mask-position:60px -40px;mask-position:60px -40px}}
@media (prefers-reduced-motion:reduce){.sc[data-theme="gate"] .sc-main::after{animation:none;opacity:.4}}
/* Type on the preview/gate background is cream on deep cobalt, which is the premium pairing. */
.sc[data-theme="gate"] .sc-lead,.sc[data-theme="gate"] .sc-note{color:var(--sc-mid)}
.sc[data-theme="gate"] .sc-direction-card{background:rgba(4,11,34,.55);backdrop-filter:blur(6px)}
.sc[data-theme="gate"] .sc-direction-card.empty{background:rgba(4,11,34,.3)}

/* As 02 lightens to white, Rumi's cream fill would vanish with it, so the light values come back
   through the design's own variables rather than by swapping her markup. */
.sc-main:has([data-lighten="3"]) .rumi,.sc-main:has([data-lighten="4"]) .rumi{--rumi-navy:#12276b;--rumi-ink:#0D0D0D;--rumi-accent:#054FFF}

/* Local final UI review: keep the animated light/rain inside its stage and let grid
   children shrink. Long labels must wrap rather than widen the phone viewport. */
.sc{overflow:clip;min-width:0}
.sc-main,.sc-words,.sc-stage{min-width:0}
@media(max-width:420px){.sc-top{gap:10px;padding-inline:16px}.sc-top .ix-mono{font-size:9px;letter-spacing:.08em}}

/* Final review: primary confirmation owns three quarters of the action row. */
[data-screen=confirm] .sc-choose{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);align-items:end}
[data-screen=confirm] .sc-choose>form{width:100%;min-width:0}
[data-screen=confirm] .sc-choose .sc-btn{width:100%;padding-inline:8px;overflow-wrap:anywhere}

/* Confirmation actions span both content columns at the bottom of the frame. */
[data-screen=confirm]>.sc-words,[data-screen=confirm]>.sc-stage{border-bottom:0}
[data-screen=confirm]>.sc-confirm-bottom{grid-column:1/-1;display:grid;gap:16px;padding:clamp(24px,3vw,36px);border:1px solid var(--sc-rule);border-top:0;background:var(--sc-card);min-width:0}

/* Human check remains with the explanatory text; its submit action stays in the footer. */
[data-screen=confirm] #sc-confirm-form{display:grid;gap:12px;min-width:0;max-width:100%}
[data-screen=confirm] .sc-confirm-primary{display:grid;min-width:0;width:100%}

@media(max-width:720px){
 [data-screen=confirm] .sc-choose{grid-template-columns:minmax(0,1fr)}
}

/* Centered closed panel: compact square on desktop, content-safe on phones. */
.sc-closed-card[data-rumi-closed]{width:min(560px,100%);aspect-ratio:1;box-sizing:border-box;align-content:center;gap:16px;padding:28px;text-align:center}
.sc-closed-card[data-rumi-closed] .rumi-wait{padding:0;border:0}
.sc-closed-card[data-rumi-closed] .rumi-figure{width:112px;margin:0 auto}
.sc-closed-card[data-rumi-closed] .rumi-byline{margin:8px 0;gap:8px;font-size:12px}
.sc-closed-card[data-rumi-closed] .rumi-fact{font-size:18px;line-height:1.4;min-height:0;margin:8px auto 0;max-width:42ch}
.sc-closed-card[data-rumi-closed] .sc-form{gap:8px;text-align:left}
.sc-closed-card[data-rumi-closed] .sc-fine{font-size:9px;line-height:1.5}
.sc-closed-card[data-rumi-closed] .sc-btn{padding:12px;min-height:48px;font-size:14px}
@media(max-width:520px){
 .sc-closed{padding:16px}
 .sc-closed-card[data-rumi-closed]{aspect-ratio:auto;padding:22px;gap:14px}
 .sc-closed-card[data-rumi-closed] .rumi-figure{width:96px}
 .sc-closed-card[data-rumi-closed] .rumi-fact{font-size:16px}
}
/* The uncropped portrait uses transparent negative space; lift its ink on dark scan surfaces. */
.rumi-figure rumi-face [fill="#152833"]{fill:var(--sc-ink,#fffde2)}
.rumi-figure rumi-face [stroke="#152833"]{stroke:var(--sc-ink,#fffde2)}
.rumi-figure rumi-face [fill="#fff"]{fill:var(--sc-bg,#0b0d10)}
/* White closed panel with dark portrait ink and readable form controls. */
.sc-closed-card[data-rumi-closed]{--sc-bg:#fff;--sc-ink:#152833;--sc-mid:#53616a;--sc-faint:#66737c;--sc-rule:#dce1e5;--sc-card:#f5f7f9;background:#fff;color:var(--sc-ink)}
.sc-closed-card[data-rumi-closed] .rumi-wait{color:var(--sc-ink)}
.sc-closed-card[data-rumi-closed] .rumi-star{color:#1740a9}

/* Align the facial axis (x=120.34), rather than the asymmetric hair bounds. */
.sc-closed-card[data-rumi-closed]>.rumi-figure{width:180px;margin:0 auto;transform:translateX(-2.17%)}
.sc-closed-card[data-rumi-closed] .sc-closed-message{font-size:18px;line-height:1.4;margin:0 auto;max-width:36ch;color:var(--sc-ink)}
@media(max-width:520px){
 .sc-closed-card[data-rumi-closed]>.rumi-figure{width:156px}
 .sc-closed-card[data-rumi-closed] .sc-closed-message{font-size:16px}
}

.sc-closed-card[data-rumi-closed]{position:relative;padding-top:56px;gap:12px}
.sc-closed-header{position:absolute;top:18px;left:28px;right:28px;display:flex;align-items:center;justify-content:space-between;font:14px var(--ix-mono,monospace)}
.sc-closed-header a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 12px;border:1px solid var(--sc-rule);color:var(--sc-ink);text-decoration:none;font:12px var(--ix-mono,monospace)}
.sc-closed-header a:hover{background:var(--sc-card)}
.sc-closed-header a:focus-visible{outline:2px solid #1740a9;outline-offset:3px}
@media(max-width:520px){.sc-closed-header{left:22px;right:22px;top:14px}.sc-closed-card[data-rumi-closed]{padding-top:64px}}

/* Measuring companion, separate from scan content. */
.sc-rumi-float{position:fixed;right:24px;bottom:48px;z-index:25;--sc-ink:#152833;--sc-bg:#fff}
.sc-rumi-float>summary{display:block;list-style:none;width:76px;height:76px;border-radius:50%;padding:4px;background:#fff;border:1px solid #dce1e5;box-shadow:0 8px 28px #0003;cursor:pointer}
.sc-rumi-float>summary::-webkit-details-marker{display:none}
.sc-rumi-float>summary:focus-visible{outline:3px solid #1740a9;outline-offset:4px}
.sc-rumi-popup{position:absolute;right:0;bottom:92px;width:min(340px,calc(100vw - 40px));max-height:60vh;overflow:auto;padding:20px;background:#fff;color:#152833;border:1px solid #dce1e5;box-shadow:0 12px 40px #0003}
.sc-rumi-popup .rumi-wait{padding:0;border:0;color:#152833}
.sc-rumi-popup .rumi-figure{display:none}
.sc-rumi-popup .rumi-row .sc-k{color:#53616a;font-size:11px}
.sc-rumi-popup .rumi-byline{margin:8px 0;font-size:12px}
.sc-rumi-popup .rumi-wait .rumi-fact{font-size:18px;min-height:0;margin:12px 0 0}
.sc-rumi-popup button:focus-visible{outline-color:#1740a9}
@media(max-width:520px){.sc-rumi-float{right:16px;bottom:48px}.sc-rumi-float>summary{width:64px;height:64px}.sc-rumi-popup{bottom:80px}}

/* Keep a clear dark/light boundary instead of pale text over mid-tone stages. */
.sc-main:has([data-lighten="1"]) .sc-lighten{opacity:.06}
.sc-main:has([data-lighten="2"]) .sc-lighten{opacity:.1}
.sc-main:has([data-lighten="3"]) .sc-lighten{opacity:.96}
.sc-main:has([data-lighten="4"]) .sc-lighten{opacity:1}
.sc-main:has([data-lighten]) .sc-step{--sc-ink:#fff;--sc-mid:#edf2ff;--sc-faint:#d7e2ff}
.sc-main:has([data-lighten="3"]) .sc-step,.sc-main:has([data-lighten="4"]) .sc-step{--sc-ink:#102957;--sc-mid:#243d61;--sc-faint:#334968}
.sc:has([data-lighten="2"]) .sc-top{--sc-ink:#fff;--sc-mid:#edf2ff;--sc-faint:#d7e2ff;color:#fff}
.sc:has([data-lighten="2"]) .sc-top a,.sc:has([data-lighten="2"]) .sc-top .ix-mono{color:#edf2ff}
.sc[data-theme="paper"]{--sc-ink:#102238;--sc-mid:#34465b;--sc-faint:#46586b;--sc-card:#f3f5f8}
.sc[data-theme="paper"] .sc-wave{opacity:.16}
.sc-rumi-close{display:block;margin:0 0 8px auto;border:1px solid #ccd3dc;padding:8px 12px;background:#fff;color:#152833;font:12px var(--ix-mono,monospace);cursor:pointer;min-height:36px}

/* Shared concept/build atmosphere */
.sc:has(.sc-atmosphere):not([data-atmosphere=off]){background:#102743;--sc-ink:#fff;--sc-mid:#e1ebf6;--sc-faint:#bdcfe4;--sc-rule:#a8c5e544}
.sc-atmosphere{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:0}
.sc-atmosphere.ready{opacity:1}
.sc[data-atmosphere=off] .sc-atmosphere{display:none}
.sc:has(.sc-atmosphere):not([data-atmosphere=off]) .sc-wave,.sc:has(.sc-atmosphere):not([data-atmosphere=off]) .sc-dots{display:none}
.sc:has(.sc-atmosphere):not([data-atmosphere=off]) .sc-main{background:linear-gradient(90deg,#06162eaa,#071b3640)}
.sc:has(.sc-atmosphere):not([data-atmosphere=off]) .sc-main::before{display:none}
.sc:has(.sc-atmosphere):not([data-atmosphere=off]) .sc-top{background:#07182dcc;color:#fff}
.sc:has(.sc-atmosphere):not([data-atmosphere=off]) .sc-stage{background:#091e3940}

/* ---- Han 2026-09-27: readable type over the animated field ---------------------------------
   "The texture contrast is too subtle, so it's hard to read." Measured against the worst
   background pixel under every text run, across the shader's cycle, at 1440 and 390 wide
   (evidence: ~/indexed-release-evidence/contrast-motion-20260927/). Nothing is hidden and no copy
   or layout moves: the text gets a surface it can be read on, and pending states stay distinct
   by weight and marker rather than by near-invisibility. */

/* Measuring. The locked background sheet already gives dense reading screens a white field
   under content (".sc[data-step=measuring] .sc-main"), but this screen renders as
   data-step="scanning", so the rule never reached it and the step lines, provider chips and
   board sat directly on the grain. Same field, same values, on the step's real name. */
.sc[data-step=scanning] .sc-main{background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.94) 82%,rgba(255,255,255,.78))!important;min-height:calc(100vh - 64px)}
/* On that field the ink is the locked sheet's dark blue at every lightening step. */
.sc[data-step=scanning] .sc-main .sc-step{--sc-ink:#102b59;--sc-mid:#244572;--sc-faint:#2c4a74;--sc-rule:#102b5933;color:var(--sc-ink)}
.sc[data-step=scanning] .sc-status small,.sc[data-step=scanning] .sc-preparing,.sc[data-step=scanning] .sc-preparing small,
.sc[data-step=scanning] .sc-board .hd span,.sc[data-step=scanning] .sc-board .q>span,.sc[data-step=scanning] details.sc-fold summary,
.sc[data-step=scanning] .sc-details dt,.sc[data-step=scanning] .sc-details dd{color:var(--sc-mid)!important;opacity:1!important}
.sc[data-step=scanning] .sc-board .q>span{color:var(--sc-ink)!important}
/* Provider chips: the locked sheet forces them white for the blue field, which is white on
   white here. Pending reads in the mid ink with an open ring; answered reads in full ink,
   heavier, with a filled dot. */
.sc[data-step=scanning] .sc-prov span{color:var(--sc-mid)!important;opacity:1!important;font-weight:500}
.sc[data-step=scanning] .sc-prov span::before{content:"";width:7px;height:7px;border-radius:50%;border:1.5px solid currentColor;box-sizing:border-box;flex:none}
.sc[data-step=scanning] .sc-prov span.on{color:var(--sc-ink)!important;font-weight:700}
.sc[data-step=scanning] .sc-prov span.on::before{background:currentColor}
.sc[data-step=scanning] .sc-prov img{filter:none!important}
.sc[data-step=scanning] .sc-prov svg{fill:currentColor!important}


/* Night screens without the shader (stopped, and the night steps after it): the small type was
   cream at 42%, which the drifting glow takes under 4.5:1. */
.sc[data-theme="night"]{--sc-mid:rgba(255,253,226,.8);--sc-faint:rgba(255,253,226,.7)}
.sc[data-theme="night"] .sc-pend{color:var(--sc-mid)}
/* Rumi's measuring popup is white: her status line and typing glyphs were pale blue at 65-80%. */
.sc-rumi-popup .rumi-byline [data-rumi-state]{opacity:1;color:#53616a}
.sc-rumi-popup .rumi-code{color:#1740a9;opacity:1}
/* === Locked UI 2026-10-05: the customer-journey world ========================================================
   Scan entry, confirm, measuring, stopped, teaser and verify (handoff 2026-10-05-indexed-ui-lock,
   source/previews/customer-journey/page.css: the cj-entry, cj-confirm, cj-measuring, cx-scan-wait,
   jr-* and cj-verify rules, by value). The shell marks these screens data-theme="world", so none of
   the night/paper/gate theme rules above reach them and every rule below is scoped to that value;
   the directions screen and the other themes are untouched. Presentation only: no selector here is
   read by a script. Measuring shows elapsed time and an indeterminate bar, never a percentage. */
/* tokens + ground */
.sc[data-theme=world]{--jw-ink:#102442;--jw-sub:#546985;--jw-line:#17396321;--jw-glass:#ffffff9c;--jw-blue:#1740a9;--jw-em:#234fba;--jw-aqua:#67c7c4;--sc-bg:#f4f9ff;--sc-ink:#102442;--sc-mid:#546985;--sc-faint:#546985;--sc-rule:#17396321;--sc-card:#ffffff80;--sc-acc:#1740a9;--sc-btn:#1740a9;--ix-display:'DM Sans',system-ui,-apple-system,sans-serif;--ix-body:'DM Sans',system-ui,-apple-system,sans-serif;--ix-mono:'DM Mono',ui-monospace,Menlo,monospace;background:radial-gradient(ellipse at 80% 20%,#d4e7fb,#f8fbff);color:var(--jw-ink);font-family:var(--ix-body);transition:none}
.sc[data-theme=world]::after{display:none}
.sc[data-theme=world] .sc-wave,.sc[data-theme=world] .sc-grain,.sc[data-theme=world] .sc-lighten,.sc[data-theme=world] .sc-rain{display:none}
.sc[data-theme=world] .jw-world{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:0;transition:opacity .9s ease}
.sc[data-theme=world] .jw-world.ready{opacity:1}
.sc[data-theme=world] .jw-grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.075;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.84' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23g)' opacity='.6' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.sc[data-theme=world] :is(a,button,input,summary):focus-visible{outline:2px solid #1740a9;outline-offset:3px}

/* journey bar (the shell header, same markup) */
html body .sc[data-theme=world] header.sc-top{position:sticky;top:0;z-index:20;height:auto;min-height:72px;gap:24px;padding:14px clamp(20px,4vw,56px);background:#eef6ffb8!important;background-image:none!important;-webkit-backdrop-filter:blur(18px) saturate(1.1)!important;backdrop-filter:blur(18px) saturate(1.1)!important;border-bottom:1px solid var(--jw-line)!important;color:var(--jw-ink)!important;font-family:var(--ix-body)}
html body .sc[data-theme=world] header.sc-top a,html body .sc[data-theme=world] header.sc-top span{color:var(--jw-ink)!important}
html body .sc[data-theme=world] header.sc-top>a:first-child{flex:none;width:118px!important;height:34px!important;background:#0b1a37!important;-webkit-mask:url('/v2/media/brand/indexed-logo-white.png') left center/contain no-repeat;mask:url('/v2/media/brand/indexed-logo-white.png') left center/contain no-repeat}
html body .sc[data-theme=world] header.sc-top>a:first-child img{opacity:0!important;width:118px!important}
html body .sc[data-theme=world] header.sc-top>a:last-child{flex:none;display:inline-flex;align-items:center;min-height:38px;padding:0 16px;border:1px solid var(--jw-line);border-radius:40px;background:#ffffff66;font:500 12px/1 var(--ix-body);letter-spacing:0;text-transform:none;text-decoration:none}
html body .sc[data-theme=world] header.sc-top>a:last-child:hover{background:#95b8f526}
html body .sc[data-theme=world] header.sc-top .sc-rail{display:flex;gap:clamp(14px,2.2vw,34px);margin:0 auto;counter-reset:jw-step}
html body .sc[data-theme=world] header.sc-top .sc-rail i{counter-increment:jw-step;display:flex;align-items:center;gap:7px;width:auto;height:auto;background:none!important;font:400 13px/1.2 var(--ix-body);font-style:normal;color:var(--jw-sub);opacity:.5;white-space:nowrap}
html body .sc[data-theme=world] header.sc-top .sc-rail i::before{content:counter(jw-step,decimal-leading-zero);font:10px var(--ix-mono);padding-bottom:4px;border-bottom:1px solid transparent}
html body .sc[data-theme=world] header.sc-top .sc-rail i::after{content:attr(title)}
html body .sc[data-theme=world] header.sc-top .sc-rail i.done{opacity:.75}
html body .sc[data-theme=world] header.sc-top .sc-rail i.done::before{content:"✓"}
html body .sc[data-theme=world] header.sc-top .sc-rail i.on{opacity:1;color:var(--jw-ink)}
html body .sc[data-theme=world] header.sc-top .sc-rail i.on::before{border-bottom-color:var(--jw-aqua)}
html body .sc[data-theme=world] header.sc-top .ix-mono{display:none;font:10px var(--ix-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--jw-sub)!important}

/* layout */
.sc[data-theme=world] .sc-main{min-height:calc(100vh - 73px);padding-bottom:0;background:none}
.sc[data-theme=world] .sc-back{padding:18px clamp(20px,4vw,56px) 0;max-width:1560px;margin:0 auto;width:100%;box-sizing:border-box}
.sc[data-theme=world] .sc-back a{color:var(--jw-sub);font-size:13px}
.sc[data-theme=world] .sc-back a:hover{color:var(--jw-ink)}
html body .sc[data-theme=world] .sc-main .sc-step{--sc-ink:#102442;--sc-mid:#546985;--sc-faint:#546985;--sc-rule:#17396321;color:var(--jw-ink);max-width:1560px;padding:40px clamp(20px,4vw,56px) 70px;gap:50px}
.sc[data-theme=world] .sc-main .sc-step::before{display:none}
.sc[data-theme=world] .sc-words{position:static;gap:0;min-width:0}
.sc[data-theme=world] .sc-k{font:11px/1.65 var(--ix-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--jw-sub);margin:0 0 24px}
html body .sc[data-theme=world] .sc-main .sc-h{font-family:var(--ix-display);font-weight:500;line-height:1.07;letter-spacing:-.045em;color:var(--jw-ink);max-width:none;margin:0 0 24px;font-size:clamp(40px,4.8vw,70px);text-wrap:balance}
html body .sc[data-theme=world] .sc-main .sc-h .sc-line-em{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:500;letter-spacing:-.03em;color:var(--jw-em)}
.sc[data-theme=world] .sc-h .sc-line-em .w{padding:0 .08em .24em 0;margin:0 -.08em -.24em 0}
html body .sc[data-theme=world] .sc-main .sc-lead{font-size:16px;line-height:1.7;color:var(--jw-sub);max-width:54ch;margin:0 0 28px}
.sc[data-theme=world] .sc-lead b{color:var(--jw-ink);font-weight:600}
html body .sc[data-theme=world] .sc-main .sc-fine{font:11px/1.6 var(--ix-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--jw-sub)}
.sc[data-theme=world] .jw-h2{margin:0 0 20px;font-family:var(--ix-display);font-weight:500;font-size:clamp(27px,3vw,42px);line-height:1.15;letter-spacing:-.045em;color:var(--jw-ink)}
.sc[data-theme=world] .jw-h2 em{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:500;letter-spacing:-.03em;font-size:.88em}

/* actions */
.sc[data-theme=world] .sc-btn{min-height:68px;padding:20px 34px;border-radius:9px;border:1px solid #5579ce;background:#1740a9;color:#fff;font:600 18px/1.3 var(--ix-body);white-space:normal;text-align:center;box-shadow:0 15px 40px -12px #1740a975,inset 0 1px #ffffff38;transition:box-shadow .4s,transform .4s,opacity .4s,background .25s}
.sc[data-theme=world] .sc-btn:hover:not(:disabled){transform:translateY(-2px);background:#204dbb;box-shadow:0 18px 50px -12px #1740a990,inset 0 1px #ffffff55}
.sc[data-theme=world] .sc-btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.sc[data-theme=world] .sc-btn.ghost,.sc[data-theme=world] .sc-next a.sc-btn{min-height:56px;padding:15px 25px;border:1px solid var(--jw-line);background:var(--jw-glass);color:var(--jw-ink);font:500 14px/1.3 var(--ix-body);box-shadow:none}
.sc[data-theme=world] .sc-btn.ghost:hover:not(:disabled),.sc[data-theme=world] .sc-next a.sc-btn:hover{background:#95b8f526;border-color:var(--jw-line);box-shadow:none}
.sc[data-theme=world] .sc-err{padding:13px 16px;border:1px solid #9c342633;border-left:2px solid #9c3426;border-radius:9px;background:#fffffbd9;color:#7c2a1f;font-size:14px;line-height:1.5;text-align:left}
.sc[data-theme=world] .sc-pend{padding:14px 16px;border:1px dashed #17396340;border-radius:12px;background:#ffffff59;color:var(--jw-sub);font-size:14px;line-height:1.55;text-align:left}
.sc[data-theme=world] .sc-wait{padding:16px 18px;border:1px solid var(--jw-line);border-radius:14px;background:#ffffff80;color:var(--jw-sub);font-size:14px;line-height:1.6;margin:0 0 18px;max-width:480px}
.sc[data-theme=world] .sc-note{padding:18px;border:1px solid var(--jw-line);border-left:1px solid var(--jw-line);border-radius:14px;background:#ffffff80;color:var(--jw-sub);font-size:14px;text-align:left;display:grid;gap:10px}
.sc[data-theme=world] .sc-note input{width:100%;box-sizing:border-box;padding:14px 16px;border:1px solid #b5cbe4;border-radius:9px;background:#ffffff90;color:#17314f;font:inherit}

/* 01 entry */
.sc[data-theme=world][data-step=entry] .sc-main .sc-step.center{display:block;max-width:1120px;min-height:calc(100svh - 190px);padding-top:55px;text-align:center}
.sc[data-theme=world][data-step=entry] .sc-words{display:block}
.sc[data-theme=world] .jw-mark{display:block;width:52px;height:52px;margin:0 auto 26px;object-fit:contain;filter:drop-shadow(0 8px 20px #1740a926)}
html body .sc[data-theme=world][data-step=entry] .sc-main .sc-h{font-size:clamp(42px,5vw,74px)}
html body .sc[data-theme=world][data-step=entry] .sc-main .sc-lead{max-width:540px;margin:0 auto 32px}
.sc[data-theme=world] .sc-bar{container-type:normal;display:flex;flex-direction:row;align-items:center;gap:6px;width:auto;max-width:720px;height:auto;margin:0 auto 18px;padding:6px;background:#f9fcffc4;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border:1px solid #adc6e6;border-radius:12px;box-shadow:0 24px 80px -22px #123b8355;transition:box-shadow .3s,border-color .3s}
.sc[data-theme=world] .sc-bar:focus-within{border-color:#8fb0e0;box-shadow:0 20px 60px #1740a919,0 24px 80px -22px #123b8355}
.sc[data-theme=world] .sc-bar[data-error=true]{border-color:#9c3426;box-shadow:0 0 0 3px #9c34261f}
.sc[data-theme=world] .sc-bar input{flex:1;min-width:0;border:0;outline:0;background:none;padding:16px 18px;font:400 16px/1.4 var(--ix-body);color:#17314f;text-overflow:clip}
.sc[data-theme=world] .sc-bar input::placeholder{color:#71819b;letter-spacing:0;opacity:1}
.sc[data-theme=world] .sc-bar input:focus-visible{outline:0}
.sc[data-theme=world] .sc-bar .sc-btn{flex-shrink:0}
.sc[data-theme=world] .sc-entry-err{max-width:720px;margin:0 auto 18px;box-sizing:border-box}
html body .sc[data-theme=world][data-step=entry] .sc-main .sc-free{display:block;margin:0;text-align:center}
.sc[data-theme=world] .jw-asks{display:grid;gap:18px;justify-items:center;width:100%;max-width:860px;margin:64px auto 0;padding-top:24px;border-top:1px solid var(--jw-line)}
html body .sc[data-theme=world][data-step=entry] .sc-main .sc-marq-label{font:10px var(--ix-mono);letter-spacing:.14em}
.sc[data-theme=world] .sc-marq>div{animation-duration:210s}
.sc[data-theme=world] .sc-marq span{font:400 14px/1.4 var(--ix-body);letter-spacing:0;color:var(--jw-sub)}
.sc[data-theme=world] .sc-prov{gap:clamp(16px,2.4vw,30px)}
.sc[data-theme=world] .sc-prov span{font:10px var(--ix-mono);letter-spacing:.14em;color:var(--jw-sub)}
.sc[data-theme=world] .sc-prov-glow span{flex-direction:row;gap:8px}
.sc[data-theme=world] .sc-prov-glow span svg{width:18px;height:18px;opacity:.75;fill:currentColor;filter:none;animation:none}
.sc[data-theme=world] .sc-prov-glow span i{font-style:normal;font-size:10px;opacity:1;animation:none}

/* 01b confirm */
.sc[data-theme=world][data-step=confirm] .sc-main .sc-step{display:block;max-width:732px;text-align:center;padding-top:28px}
.sc[data-theme=world][data-step=confirm] .sc-main .sc-step::before{display:none}
html body .sc[data-theme=world][data-step=confirm] .sc-main .sc-h{font-size:clamp(40px,5vw,66px)}
html body .sc[data-theme=world][data-step=confirm] .sc-main .sc-lead{max-width:520px;margin:0 auto 30px}
.sc[data-theme=world][data-step=confirm] .sc-step .sc-words,.sc[data-theme=world][data-step=confirm] .sc-step .sc-stage{display:block;padding:0;border:0;background:none;min-height:0}
.sc[data-theme=world][data-step=confirm] .sc-prof{display:block}
.sc[data-theme=world][data-step=confirm] .sc-tile.card{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:6px 18px;padding:16px;border:1px solid var(--jw-line);border-radius:15px;background:#ffffff80;text-align:left;animation:none}
.sc[data-theme=world][data-step=confirm] .sc-avatar{width:74px;height:74px;border-radius:8px;background:linear-gradient(135deg,#d7e6fb,#b9d4f3 55%,#c6ece9)}
.sc[data-theme=world][data-step=confirm] .sc-tile.card strong{font:600 18px/1.3 var(--ix-body);letter-spacing:-.01em;color:var(--jw-ink);overflow-wrap:anywhere}
.sc[data-theme=world][data-step=confirm] .sc-tile.card span{font-size:13px;color:var(--jw-sub);white-space:normal}
html body .sc[data-theme=world][data-step=confirm] .sc-main .sc-tile.card .sc-fine{grid-column:1/-1;margin:8px 0 0;padding-top:12px;border-top:1px solid var(--jw-line);font:12px/1.5 var(--ix-body);letter-spacing:0;text-transform:none;display:block;-webkit-line-clamp:unset}
.sc[data-theme=world][data-step=confirm] .sc-facts{margin:14px 0 0;border-top:0;text-align:left}
.sc[data-theme=world][data-step=confirm] .sc-facts>div{grid-template-columns:minmax(96px,150px) minmax(0,1fr);padding:9px 16px;border-bottom:1px solid var(--jw-line)}
.sc[data-theme=world][data-step=confirm] .sc-facts dt{font:10px/1.8 var(--ix-mono);letter-spacing:.12em;color:var(--jw-sub)}
.sc[data-theme=world][data-step=confirm] .sc-facts dd{font-size:13px;color:var(--jw-ink)}
.sc[data-theme=world][data-step=confirm] #sc-confirm-form{display:block;margin:26px 0 20px}
.sc[data-theme=world] .sc-turnstile{display:grid;gap:9px;justify-items:start;text-align:left;min-height:84px}
html body .sc[data-theme=world] .sc-main .sc-turnstile .sc-fine{font:12px/1.5 var(--ix-body);letter-spacing:0;text-transform:none;color:#6a7e99;margin:0}
.sc[data-theme=world][data-step=confirm] .sc-step>.sc-confirm-bottom{display:grid;gap:16px;padding:0;border:0;background:none}
.sc[data-theme=world][data-step=confirm] .sc-choose{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:stretch}
.sc[data-theme=world][data-step=confirm] .sc-choose .sc-btn{width:100%;padding-inline:20px}
.sc[data-theme=world][data-step=confirm] .sc-choose>form{display:block;width:100%}

/* 02 measuring */
.sc[data-theme=world][data-step=scanning] .sc-main .sc-step{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;min-height:630px}
html body .sc[data-theme=world][data-step=scanning] .sc-main,html body .sc[data-theme=world][data-step=stopped] .sc-main{background:none!important}
.sc[data-theme=world][data-step=scanning] .sc-words{display:block}
html body .sc[data-theme=world][data-step=scanning] .sc-main .sc-lead{max-width:420px;margin-bottom:0}
.sc[data-theme=world] .jw-wait{max-width:480px;margin:28px 0;padding:22px 24px;background:#f7fcffb5;border:1px solid #ffffffc9;border-radius:20px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 20px 60px -30px #16478255}
.sc[data-theme=world] .jw-wait-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.sc[data-theme=world] .jw-wait .sc-status{display:grid;gap:4px;padding:0;border:0;min-width:0}
html body .sc[data-theme=world] .sc-main .jw-wait .sc-status .n{font:10px var(--ix-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--jw-sub)}
.sc[data-theme=world] .jw-wait .sc-status b{display:block;font:600 15px/1.4 var(--ix-body);letter-spacing:0;color:var(--jw-ink);animation:none}
.sc[data-theme=world] .jw-wait .sc-status b::before{display:none}
html body .sc[data-theme=world] .sc-main .jw-wait .sc-status small{font-size:13px;line-height:1.5;color:var(--jw-sub)!important}
.sc[data-theme=world] .jw-wait-time{flex:none;font:12px/1.8 var(--ix-mono);color:#31537b;white-space:nowrap}
.sc[data-theme=world] .jw-wait-time:has([data-elapsed]:empty){visibility:hidden}
.sc[data-theme=world] .jw-track{height:5px;border-radius:5px;overflow:hidden;background:#1740a920;margin:18px 0}
.sc[data-theme=world] .jw-track i{display:block;width:38%;height:100%;border-radius:5px;background:linear-gradient(90deg,#1944b6,#2795ae,#8fe5d9);animation:jw-scan-loading 2.6s ease-in-out infinite}
.sc[data-theme=world] .jw-wait-note{font-size:14px;line-height:1.6;margin:0 0 6px;color:var(--jw-ink)}
.sc[data-theme=world] .jw-wait-fine{display:block;font-size:12px;line-height:1.5;color:#486789}
html body .sc[data-theme=world] .sc-main [data-poll-state]{font:12px/1.6 var(--ix-body);letter-spacing:0;text-transform:none;max-width:480px;margin:0 0 12px}
.sc[data-theme=world] details.sc-fold{max-width:480px}
.sc[data-theme=world] details.sc-fold summary{font:10px var(--ix-mono);letter-spacing:.14em;color:var(--jw-sub)}
.sc[data-theme=world] .sc-details{border-color:var(--jw-line)}
.sc[data-theme=world][data-step=scanning] .sc-stage{display:grid;gap:24px;align-content:start;min-height:0;padding:30px;background:#ffffff94;border:1px solid var(--jw-line);border-radius:18px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 25px 60px #13386716}
.sc[data-theme=world][data-step=scanning] .sc-prov{justify-content:flex-start}
.sc[data-theme=world][data-step=scanning] .sc-board{gap:0}
.sc[data-theme=world][data-step=scanning] .sc-board .q,.sc[data-theme=world][data-step=scanning] .sc-board .hd{grid-template-columns:minmax(0,1fr) repeat(var(--sc-cols,3),56px)}
.sc[data-theme=world][data-step=scanning] .sc-board .hd{padding:0 0 12px;font:500 11px/1.4 var(--ix-body);letter-spacing:0;text-transform:none}
.sc[data-theme=world][data-step=scanning] .sc-board .q{padding:12px 0;border-top:1px solid var(--jw-line)}
.sc[data-theme=world][data-step=scanning] .sc-board .q>span{font-size:13.5px;white-space:normal;overflow:visible;line-height:1.5}
.sc[data-theme=world][data-step=scanning] .sc-cell{border-radius:8px;border-color:#17365b33;justify-self:center;width:100%}
.sc[data-theme=world][data-step=scanning] .sc-cell[data-cell-state=asking]{border-color:#2795ae}
.sc[data-theme=world][data-step=scanning] .sc-cell[data-cell-state=answered],.sc[data-theme=world][data-step=scanning] .sc-cell.lit.n{background:#1740a924;border-color:#1740a9}
.sc[data-theme=world] .sc-pending::after,.sc[data-theme=world] .sc-skeleton::after{background:linear-gradient(110deg,transparent 15%,#2795ae3d 50%,transparent 85%)}
html body .sc[data-theme=world][data-step=scanning] .sc-main .sc-stage>.sc-fine{font:12px/1.65 var(--ix-body);letter-spacing:0;text-transform:none;color:var(--jw-sub);margin:0}
.sc[data-theme=world][data-step=scanning] .sc-preparing{border:0;background:none;padding:0;font-size:14px}
.sc[data-theme=world] .sc-skeleton{background:#1740a914;border-radius:5px}

/* Rumi: one portrait, the launcher */
.sc[data-theme=world] .sc-rumi-float{right:24px;bottom:20px;font-family:var(--ix-body)}
.sc[data-theme=world] .sc-rumi-float>summary,.sc[data-theme=world]~.ix-rumi-guide summary{display:flex;align-items:center;gap:18px;width:auto;height:auto;min-width:230px;min-height:96px;box-sizing:border-box;padding:10px 24px 10px 10px;border:1px solid #a8c5e75c;border-radius:48px;background:#f5f9fff0;color:#17314f;box-shadow:0 18px 60px #0a275334;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.sc[data-theme=world] .sc-rumi-float>summary::before,.sc[data-theme=world]~.ix-rumi-guide summary::before{content:"Rumi";order:2;font:500 21px/1 'DM Sans',system-ui,sans-serif;color:#17314f}
.sc[data-theme=world] .sc-rumi-float>summary rumi-face,.sc[data-theme=world]~.ix-rumi-guide summary rumi-face{display:block;flex:none;width:72px;height:72px}
.sc[data-theme=world] .sc-rumi-popup{bottom:112px;border-radius:18px;border:1px solid #ffffffc9;background:#f7fcfff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 30px 70px -30px #16478280}
.sc[data-theme=world] .sc-rumi-close{border-radius:40px;border-color:var(--jw-line);background:#ffffffb3}
body.sc-page .sc[data-theme=world]~.ix-rumi-guide{right:24px;bottom:20px;color:#17314f;font:400 15px/1.55 'DM Sans',system-ui,sans-serif;--ix-display:'DM Sans',system-ui,sans-serif;--ix-body:'DM Sans',system-ui,sans-serif}
.sc[data-theme=world]~.ix-rumi-guide[data-unread="true"] summary::after{right:6px;top:6px;border-color:#eaf2f9}
.sc[data-theme=world] .sc-rumi-float[data-unread="true"]>summary::after{right:6px;top:6px;border-color:#eaf2f9}
.sc[data-theme=world]~.ix-rumi-guide aside{bottom:112px;border-radius:18px;border:1px solid #ffffffc9;background:#f7fcfff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 30px 70px -30px #16478280}
.sc[data-theme=world]~.ix-rumi-guide strong{font:500 20px/1.2 'DM Sans',system-ui,sans-serif}

/* 03 teaser */
.sc[data-theme=world][data-step=report] .sc-main .sc-step{display:block}
.sc[data-theme=world] .jw-heading{display:grid;grid-template-columns:1.5fr 1fr;gap:50px;align-items:end;margin:30px 0 48px}
.sc[data-theme=world][data-step=report] .sc-words{display:block}
html body .sc[data-theme=world][data-step=report] .sc-main .sc-h{font-size:clamp(44px,5vw,76px)}
html body .sc[data-theme=world][data-step=report] .sc-main .sc-h .sc-line-em{color:var(--jw-ink)}
html body .sc[data-theme=world][data-step=report] .sc-main .sc-lead{font-size:17px;line-height:1.75;max-width:58ch;margin:0}
.sc[data-theme=world] .jw-business{display:flex;gap:16px;align-items:center;padding:20px;border:1px solid var(--jw-line);border-radius:14px;background:#ffffff75;min-width:0}
.sc[data-theme=world] .jw-business img{flex:none;width:40px;height:40px;object-fit:contain}
.sc[data-theme=world] .jw-business b{display:block;font-weight:600;overflow-wrap:anywhere}
.sc[data-theme=world] .jw-business small{display:block;color:var(--jw-sub);font-size:13px}
.sc[data-theme=world] .jw-overview{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:28px;align-items:start}
.sc[data-theme=world] .jw-card{min-width:0;padding:34px;background:#ffffff94;border:1px solid var(--jw-line);border-radius:18px;box-shadow:0 20px 70px #173b7a08;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.sc[data-theme=world] .jw-card>.sc-k{margin-bottom:22px}
.sc[data-theme=world] .sc-unpublished{margin:0 0 6px}
.sc[data-theme=world] .sc-unpublished p{font-size:15px;line-height:1.75;color:var(--jw-sub);max-width:none;margin:6px 0 0}
.sc[data-theme=world] .sc-score{margin:0 0 6px}
.sc[data-theme=world] .sc-score b{font-size:clamp(56px,6vw,84px);color:var(--jw-blue)}
.sc[data-theme=world] .sc-report-board{gap:0;margin-top:30px;max-width:100%;overflow-x:auto}
.sc[data-theme=world] .sc-report-board .hd,.sc[data-theme=world] .sc-report-board .q{grid-template-columns:minmax(0,1fr) repeat(var(--sc-cols,3),minmax(54px,110px));gap:0;padding:17px 9px;border-top:1px solid var(--jw-line);align-items:center}
.sc[data-theme=world] .sc-report-board .hd{font:500 12px/1.4 var(--ix-body);letter-spacing:0;text-transform:none;color:var(--jw-ink)}
.sc[data-theme=world] .sc-report-board .hd svg{opacity:1;fill:currentColor}
.sc[data-theme=world] .sc-report-board .q>span{font-size:13px;line-height:1.6;color:var(--jw-ink);white-space:normal;overflow:visible}
.sc[data-theme=world] .sc-report-board .sc-cell,.sc[data-theme=world] .sc-legend .sc-cell{width:13px;height:13px;min-width:13px;justify-self:center;border:1px solid #17365b;background:none;transform:none}
.sc[data-theme=world] .sc-report-board .sc-cell.lit.a,.sc[data-theme=world] .sc-legend .sc-cell.lit.a{background:#1740a9;border-color:#1740a9}
.sc[data-theme=world] .sc-report-board .sc-cell.lit.n,.sc[data-theme=world] .sc-legend .sc-cell.lit.n{border-color:#17365b;background:none}
.sc[data-theme=world] .sc-report-board .sc-cell.lit.m,.sc[data-theme=world] .sc-legend .sc-cell.lit.m{border-style:dashed;border-color:#7d8ca2}
.sc[data-theme=world] .sc-report-board .sc-cell.lit.u,.sc[data-theme=world] .sc-legend .sc-cell.lit.u{background:repeating-linear-gradient(135deg,#aab6ca 0 2px,transparent 2px 4px);border-color:#879bb6}
.sc[data-theme=world] .sc-legend{gap:14px;margin-top:24px;font-size:12px;color:var(--jw-sub)}
.sc[data-theme=world] .sc-legend>span{gap:7px}
.sc[data-theme=world] .jw-action{display:block}
.sc[data-theme=world] .jw-action .sc-act{display:block;padding:0;border:0}
.sc[data-theme=world] .jw-action .sc-act>b{display:block;font:400 38px/1 var(--ix-mono);letter-spacing:0;color:#1740a94d}
.sc[data-theme=world] .jw-action .sc-act h3{margin:16px 0;font:500 29px/1.2 var(--ix-display);letter-spacing:-.045em;color:var(--jw-ink);overflow-wrap:anywhere}
.sc[data-theme=world] .jw-action .sc-act p{font-size:15px;line-height:1.75;color:var(--jw-sub)}
.sc[data-theme=world] .jw-action .sc-act .ev{margin:22px 0 0;padding-left:16px;border-left:2px solid var(--jw-aqua);font:400 16px/1.5 var(--ix-body);letter-spacing:0;color:var(--jw-blue)}
.sc[data-theme=world] .jw-unlock{border-top:1px solid var(--jw-line);padding-top:26px;margin-top:28px}
.sc[data-theme=world] .jw-unlock .sc-lock-placeholder{gap:8px;margin:0 0 24px;opacity:.55;filter:blur(1.2px);pointer-events:none;user-select:none}
.sc[data-theme=world] .jw-unlock .sc-placeholder-row{grid-template-columns:34px 1fr;gap:14px;padding:6px 0}
.sc[data-theme=world] .jw-unlock .sc-placeholder-row b{font:400 20px/1 var(--ix-mono);color:#1740a94d}
.sc[data-theme=world] .jw-unlock .sc-placeholder-row i{height:8px;margin:0 0 8px;border-radius:4px;background:#54698566;opacity:1}
.sc[data-theme=world] .jw-unlock .sc-placeholder-row i:first-child{height:11px}
.sc[data-theme=world] .jw-unlock .sc-lockmsg{position:static;display:block;padding:0;text-align:left;justify-items:normal;place-content:normal}
.sc[data-theme=world] .jw-unlock .sc-lockmsg strong{display:block;font:500 24px/1.2 var(--ix-display);letter-spacing:-.045em;color:var(--jw-ink)}
.sc[data-theme=world] .jw-unlock .sc-lockmsg p{font-size:15px;line-height:1.7;color:var(--jw-sub);max-width:none;margin:15px 0 24px}
.sc[data-theme=world] .jw-unlock .sc-lockmsg .sc-btn{display:flex;width:100%;box-sizing:border-box;min-height:80px;font-size:21px;box-shadow:0 16px 38px #1740a931}
.sc[data-theme=world] .jw-unlock .sc-lockmsg small{display:block;font-size:12px;margin-top:18px;color:var(--jw-sub)}
.sc[data-theme=world] .jw-inside{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin:70px 0 0;padding-top:42px;border-top:1px solid var(--jw-line)}
.sc[data-theme=world] .jw-inside .jw-h2{font-size:42px;margin:0}
.sc[data-theme=world] .jw-inside ol{list-style:none;padding:0;margin:0;display:grid;gap:22px}
.sc[data-theme=world] .jw-inside b{font-weight:500}
.sc[data-theme=world] .jw-inside li span{display:block;font-size:15px;color:var(--jw-sub);margin-top:5px}
.sc[data-theme=world] .sc-next{position:static;display:flex;justify-content:flex-start;max-width:1560px;width:100%;box-sizing:border-box;margin:0 auto;padding:0 clamp(20px,4vw,56px) 90px;background:none;border:0;box-shadow:none}
.sc[data-theme=world] .sc-next .sc-fine{display:none}

/* 03b verify */
.sc[data-theme=world][data-step=verify] .sc-main .sc-step.center{display:block;max-width:732px;padding-top:28px;text-align:center}
.sc[data-theme=world][data-step=verify] [data-screen=verify] .sc-words{display:block;width:auto;padding:0;border:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
html body .sc[data-theme=world][data-step=verify] .sc-main .sc-h{font-size:clamp(40px,5vw,66px)}
html body .sc[data-theme=world][data-step=verify] .sc-main .sc-lead{max-width:480px;margin:0 auto 30px}
.sc[data-theme=world][data-step=verify] .sc-verr{width:100%;max-width:400px;margin:0 auto 14px}
.sc[data-theme=world][data-step=verify] .sc-form{display:grid;gap:11px;justify-items:stretch;width:100%;max-width:400px;box-sizing:border-box;margin:35px auto 0;padding:30px;text-align:left;background:#f8fcff80;border:1px solid #ffffffd0;border-radius:24px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 35px 80px -35px #1643794d}
.sc[data-theme=world][data-step=verify] .sc-verr+.sc-form{margin-top:0}
html body .sc[data-theme=world][data-step=verify] .sc-main .sc-form label{font:12px/1.5 var(--ix-body);letter-spacing:0;text-transform:none;color:var(--jw-sub)}
.sc[data-theme=world][data-step=verify] .sc-form input{padding:16px;border:1px solid #b5cbe4;border-radius:9px;background:#ffffff90;color:#17314f;font:400 16px/1.4 var(--ix-body)}
.sc[data-theme=world][data-step=verify] .sc-form input:focus{border-color:#1740a9}
.sc[data-theme=world][data-step=verify] .sc-form .sc-code{gap:8px;margin:0}
.sc[data-theme=world][data-step=verify] .sc-form .sc-code input,.sc[data-theme=world][data-step=verify] .sc-form #sc-code{font:500 26px/1.2 var(--ix-mono);text-align:center;padding:14px 0}
.sc[data-theme=world][data-step=verify] .sc-form #sc-code{letter-spacing:.38em}
.sc[data-theme=world][data-step=verify] .sc-form .sc-actions.wide{margin-top:15px}
html body .sc[data-theme=world][data-step=verify] .sc-main .sc-form>.sc-fine{font:12px/1.5 var(--ix-body);letter-spacing:0;text-transform:none;text-align:left}
.sc[data-theme=world][data-step=verify] .sc-help{font-size:12px;line-height:1.6;color:var(--jw-sub);text-align:left;max-width:none}
.sc[data-theme=world][data-step=verify] .sc-resend{margin-top:20px;border-top:1px solid #ffffffd0}
html body .sc[data-theme=world][data-step=verify] .sc-main .sc-resend-h{font:500 15px/1.4 var(--ix-body);letter-spacing:0;text-transform:none;color:var(--jw-ink);text-align:left;margin:0}

/* scans closed / stopped: the same panel on the world */
.sc[data-theme=world] .sc-closed{background:#dbe8f8b3;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.sc[data-theme=world] .sc-closed-card[data-rumi-closed]{aspect-ratio:auto;width:min(520px,100%);border:1px solid #ffffffd0;border-radius:24px;background:#f9fcfff2;box-shadow:0 35px 80px -35px #1643794d;font-family:var(--ix-body)}
.sc[data-theme=world] .sc-closed-header,.sc[data-theme=world] .sc-closed-header a{font:500 13px/1 var(--ix-body)}
.sc[data-theme=world] .sc-closed-header a{border-radius:40px;border-color:var(--jw-line);padding:0 14px}
.sc[data-theme=world] .sc-closed-title{font:500 clamp(26px,3vw,34px)/1.12 var(--ix-display);letter-spacing:-.045em;color:#102442}
.sc[data-theme=world] .sc-closed-card[data-rumi-closed] .sc-closed-message{color:#546985}
.sc[data-theme=world] .sc-closed-card[data-rumi-closed] .sc-form label{font:12px/1.5 var(--ix-body);letter-spacing:0;text-transform:none;color:#546985}
.sc[data-theme=world] .sc-closed-card[data-rumi-closed] .sc-form input:not([type=checkbox]){padding:14px 16px;border:1px solid #b5cbe4;border-radius:9px;background:#ffffff;color:#17314f;font:400 16px/1.4 var(--ix-body)}
.sc[data-theme=world] .sc-closed-card[data-rumi-closed] .sc-btn{min-height:56px;padding:14px 20px;font-size:16px}
.sc[data-theme=world] .sc-closed-card[data-rumi-closed] .sc-btn.ghost{min-height:48px;font-size:14px}
html body .sc[data-theme=world] .sc-main .sc-closed-card[data-rumi-closed] .sc-fine{font:12px/1.5 var(--ix-body);letter-spacing:0;text-transform:none}
.sc[data-theme=world] .sc-notify-consent{color:#546985}

@keyframes jw-scan-loading{from{transform:translateX(-110%)}to{transform:translateX(365%)}}

@media(max-width:1100px){
html body .sc[data-theme=world] header.sc-top .sc-rail{gap:16px}
html body .sc[data-theme=world] header.sc-top .sc-rail i{font-size:12px}
}
@media(max-width:900px){
html body .sc[data-theme=world] header.sc-top .sc-rail{display:none}
html body .sc[data-theme=world] header.sc-top .ix-mono{display:block;margin-left:auto}
html body .sc[data-theme=world] header.sc-top{min-height:60px;gap:14px}
.sc[data-theme=world][data-step=scanning] .sc-main .sc-step{grid-template-columns:1fr;gap:30px;min-height:0}
.sc[data-theme=world] .jw-heading{grid-template-columns:1fr;gap:26px}
.sc[data-theme=world] .jw-overview{grid-template-columns:1fr}
.sc[data-theme=world] .sc-next{flex-direction:row;align-items:center}
}
@media(max-width:640px){
html body .sc[data-theme=world] header.sc-top>a:first-child{width:96px!important;height:28px!important}
html body .sc[data-theme=world] header.sc-top .ix-mono{font-size:9px;letter-spacing:.1em;white-space:normal;text-align:right}
html body .sc[data-theme=world] .sc-main .sc-step{padding:30px 20px 50px}
.sc[data-theme=world] .sc-k{font-size:10px;margin-bottom:19px}
html body .sc[data-theme=world] .sc-main .sc-h,html body .sc[data-theme=world][data-step] .sc-main .sc-h{font-size:40px;line-height:1.12}
html body .sc[data-theme=world] .sc-main .sc-lead,html body .sc[data-theme=world][data-step] .sc-main .sc-lead{font-size:16px;line-height:1.75}
.sc[data-theme=world] .sc-btn{min-height:62px;padding:16px 22px;font-size:17px}
.sc[data-theme=world] .sc-btn.ghost,.sc[data-theme=world] .sc-next a.sc-btn{min-height:48px;font-size:15px}
.sc[data-theme=world][data-step=entry] .sc-main .sc-step.center{min-height:calc(100svh - 170px);padding-top:35px}
.sc[data-theme=world] .jw-mark{width:38px;height:38px;margin-bottom:23px}
.sc[data-theme=world] .sc-bar{flex-direction:column;align-items:stretch;gap:5px}
.sc[data-theme=world] .sc-bar input{padding:14px 12px}
.sc[data-theme=world] .sc-bar .sc-btn{width:100%;min-height:52px}
.sc[data-theme=world] .jw-asks{margin-top:44px}
.sc[data-theme=world][data-step=confirm] .sc-tile.card{grid-template-columns:56px minmax(0,1fr);padding:12px;gap:6px 12px}
.sc[data-theme=world][data-step=confirm] .sc-avatar{width:56px;height:56px}
.sc[data-theme=world][data-step=confirm] .sc-tile.card strong{font-size:15px}
.sc[data-theme=world][data-step=confirm] .sc-facts>div{grid-template-columns:1fr;gap:0;padding:9px 12px}
.sc[data-theme=world][data-step=scanning] .sc-board .q,.sc[data-theme=world][data-step=scanning] .sc-board .hd{grid-template-columns:repeat(var(--sc-cols,3),minmax(0,1fr))}
.sc[data-theme=world] .jw-wait{padding:20px 16px}
.sc[data-theme=world] .jw-wait-head{flex-direction:column;gap:8px}
.sc[data-theme=world][data-step=scanning] .sc-stage{padding:22px 16px}
.sc[data-theme=world] .jw-heading{margin:12px 0 32px;gap:28px}
.sc[data-theme=world] .jw-business{padding:15px}
.sc[data-theme=world] .jw-card{padding:24px 18px}
.sc[data-theme=world] .jw-h2{font-size:29px}
.sc[data-theme=world] .jw-action .sc-act h3{font-size:28px}
.sc[data-theme=world] .sc-report-board .hd,.sc[data-theme=world] .sc-report-board .q{grid-template-columns:repeat(var(--sc-cols,3),minmax(0,1fr));padding:14px 4px;row-gap:12px}
.sc[data-theme=world] .sc-report-board .hd>span:first-child{display:none}
.sc[data-theme=world] .sc-report-board .q>span:first-child{grid-column:1/-1}
.sc[data-theme=world] .jw-unlock .sc-lockmsg .sc-btn{min-height:72px;font-size:19px}
.sc[data-theme=world] .jw-inside{grid-template-columns:1fr;margin-top:45px}
.sc[data-theme=world] .jw-inside .jw-h2{font-size:34px}
.sc[data-theme=world] .sc-next{padding:0 20px 120px}
.sc[data-theme=world] .sc-next a.sc-btn{width:100%}
.sc[data-theme=world][data-step=verify] .sc-form{padding:22px 16px}
.sc[data-theme=world] .sc-rumi-float{right:12px;bottom:12px}
body.sc-page .sc[data-theme=world]~.ix-rumi-guide{right:12px;bottom:12px}
.sc[data-theme=world] .sc-rumi-float>summary,.sc[data-theme=world]~.ix-rumi-guide summary{min-width:154px;min-height:80px;padding:8px 16px 8px 8px;gap:12px}
.sc[data-theme=world] .sc-rumi-float>summary::before,.sc[data-theme=world]~.ix-rumi-guide summary::before{font-size:17px}
.sc[data-theme=world] .sc-rumi-float>summary rumi-face,.sc[data-theme=world]~.ix-rumi-guide summary rumi-face{width:62px;height:62px}
.sc[data-theme=world] .sc-rumi-popup,.sc[data-theme=world]~.ix-rumi-guide aside{bottom:92px}
}
@media(max-width:360px){
html body .sc[data-theme=world] .sc-main .sc-h,html body .sc[data-theme=world][data-step] .sc-main .sc-h{font-size:35px}
html body .sc[data-theme=world] .sc-main .sc-step{padding-inline:17px}
}
@media(prefers-reduced-motion:reduce){
.sc[data-theme=world] .jw-world{transition:none}
.sc[data-theme=world] .jw-track i{animation:none;transform:translateX(80%)}
.sc[data-theme=world] .sc-btn{transition:none;transform:none}
}
/* === end customer-journey world === */
