/* ondy-demo.css 1b9a60426bee: generated by ondy-src/build.mjs from ondy-src/. Do not edit this file. */
/* ==== ondy-src/core.css ==== */
/* Ask Ondy iPhone demo: core styles. Owner: architect (complete).
   Fonts (mobile-master 4.1), colour tokens (3), type roles with SF and Inter tracking (4.3), resets that undo the
   site's global element rules inside the phone (site-demos 1.3). Every rule is scoped under .ondy-phone or .ondy-root. */

@font-face{font-family:OndyInter;src:url('fonts/InterVariable.woff2') format('woff2');font-weight:100 900;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21FF,U+2212,U+2215}

.ondy-root{
  --ondy-page:#FFFFFF;--ondy-surface:#F4F4F5;--ondy-raised:#EDEDEF;--ondy-line:#E4E4E7;--ondy-ink:#0A0A0A;
  --ondy-secondary:#3F4249;--ondy-muted:#6B6E75;--ondy-inverse:#111111;--ondy-on-inverse:#FFFFFF;--ondy-panel:#FFFFFF;
  --ondy-face:#B4A5FF;--ondy-eye:#FFFFFF;--ondy-halo:#1875D8;
  --ondy-home-ink:#1B1D21;--ondy-home-muted:#636D84;--ondy-swap-disabled:#E0E6EC;
  --ondy-dock:#ECF0F8;--ondy-dock-mark:#656A76;--ondy-dock-selected:#23262E;--ondy-dock-disc:#17191C;--ondy-dock-disc-mark:#FFFFFF;
  --ondy-kb-body:#D1D3D9;--ondy-key:#FFFFFF;--ondy-key-fn:#ACB0BC;--ondy-key-shadow:#898A8D;--ondy-key-label:#000000;
  --ondy-kb-aux:#3C3F46;--ondy-kb-divider:#C4C5CC;--ondy-predict-highlight:#EBECEF;
  --ondy-autocorrect-box:#D8D8DC;--ondy-autocorrect-line:#8E8E93;--ondy-privacy:#FF9500;
  position:absolute;left:0;top:0;width:430px;height:932px;overflow:hidden;background:var(--ondy-page);
  font-family:-apple-system,BlinkMacSystemFont,OndyInter,sans-serif;font-size:17px;font-weight:400;line-height:normal;
  letter-spacing:0;color:var(--ondy-ink);text-align:left;white-space:nowrap;font-kerning:normal;font-synthesis:none;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
  -webkit-user-select:none;user-select:none;pointer-events:none;
}
.ondy-phone,.ondy-phone *,.ondy-phone *::before,.ondy-phone *::after{box-sizing:border-box}
/* The site sets svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.1}. Inside the phone an svg
   paints nothing unless its children or an .ondy- class say so; core.icon() sets inline size and paint. */
.ondy-phone svg{width:auto;height:auto;fill:none;stroke:none;stroke-width:1;vertical-align:top;overflow:visible;flex-shrink:0}
.ondy-icon{display:block}
.ondy-cjk{font-family:"PingFang SC","Hiragino Sans","Yu Gothic UI","Noto Sans JP",sans-serif;font-weight:500;letter-spacing:0}

/* Type roles (mobile-master 4.3). line-height already includes SwiftUI lineSpacing; --ondy-trim is half the spacing,
   for margin-block:calc(-1px * var(--ondy-trim)) on multi-line blocks (4.2). SF tracking first, Inter below. */
.ondy-t-greeting{font-size:28px;font-weight:500;line-height:33.41px;color:var(--ondy-ink);letter-spacing:-0.6px;--ondy-trim:0}
.ondy-t-title{font-size:15px;font-weight:500;line-height:17.90px;color:var(--ondy-ink);letter-spacing:0;--ondy-trim:0}
.ondy-t-placeholder{font-size:17px;font-weight:400;line-height:20.29px;color:var(--ondy-muted);letter-spacing:0;--ondy-trim:0}
.ondy-t-draft{font-size:17px;font-weight:400;line-height:20.29px;color:var(--ondy-ink);letter-spacing:0;--ondy-trim:0}
.ondy-t-bubble{font-size:16px;font-weight:400;line-height:23.09px;color:var(--ondy-on-inverse);letter-spacing:0;--ondy-trim:2}
.ondy-t-lead{font-size:16px;font-weight:400;line-height:24.09px;color:var(--ondy-ink);letter-spacing:0;--ondy-trim:2.5}
.ondy-t-phrase{font-size:18px;font-weight:500;line-height:25.48px;color:var(--ondy-ink);letter-spacing:0;--ondy-trim:2}
.ondy-t-phrase-cjk{font-family:"PingFang SC","Hiragino Sans","Yu Gothic UI","Noto Sans JP",sans-serif;font-size:18px;font-weight:500;line-height:25.48px;color:var(--ondy-ink);letter-spacing:0;--ondy-trim:2}
.ondy-t-pron{font-size:14px;font-weight:400;line-height:19.71px;color:var(--ondy-muted);letter-spacing:0;--ondy-trim:1.5}
.ondy-t-meaning{font-size:15px;font-weight:400;line-height:21.90px;color:var(--ondy-secondary);letter-spacing:0;--ondy-trim:2}
.ondy-t-more{font-size:13px;font-weight:500;line-height:15.51px;color:var(--ondy-muted);letter-spacing:0;--ondy-trim:0}
.ondy-t-detail{font-size:15px;font-weight:400;line-height:22.90px;color:var(--ondy-secondary);letter-spacing:0;--ondy-trim:2.5}
.ondy-t-listening{font-size:15px;font-weight:400;line-height:17.90px;color:var(--ondy-muted);letter-spacing:0;--ondy-trim:0}
.ondy-t-home-placeholder{font-size:23px;font-weight:500;line-height:32.45px;color:var(--ondy-home-muted);letter-spacing:-0.3px;--ondy-trim:2.5}
.ondy-t-home-pair{font-size:30px;font-weight:500;line-height:35.80px;color:var(--ondy-home-ink);letter-spacing:-0.7px;--ondy-trim:0}
.ondy-t-paste{font-size:13px;font-weight:500;line-height:15.51px;color:var(--ondy-home-muted);letter-spacing:0;--ondy-trim:0}
.ondy-t-status{font-size:17px;font-weight:600;line-height:20.29px;color:#000;letter-spacing:0}
.ondy-t-key-upper{font-size:21px;font-weight:400;color:#000;letter-spacing:0}
.ondy-t-key-lower{font-size:24px;font-weight:400;color:#000;letter-spacing:0}
.ondy-t-key-sym{font-size:23px;font-weight:400;color:#000;letter-spacing:0}
.ondy-t-key-word{font-size:16px;font-weight:400;color:#000;letter-spacing:0}
.ondy-t-key-hash{font-size:15px;font-weight:400;color:#000;letter-spacing:0}
.ondy-t-predict{font-size:16px;font-weight:400;color:#000;letter-spacing:0}
.ondy-t-callout{font-size:36px;font-weight:400;color:#000;letter-spacing:0}

.ondy-root[data-ondy-font=inter] .ondy-t-greeting{letter-spacing:-0.035em}
.ondy-root[data-ondy-font=inter] .ondy-t-title{letter-spacing:-0.016em}
.ondy-root[data-ondy-font=inter] .ondy-t-placeholder,.ondy-root[data-ondy-font=inter] .ondy-t-draft{letter-spacing:-0.025em}
.ondy-root[data-ondy-font=inter] .ondy-t-bubble,.ondy-root[data-ondy-font=inter] .ondy-t-lead,.ondy-root[data-ondy-font=inter] .ondy-t-meaning{letter-spacing:-0.019em}
.ondy-root[data-ondy-font=inter] .ondy-t-phrase{letter-spacing:-0.018em}
.ondy-root[data-ondy-font=inter] .ondy-t-pron{letter-spacing:-0.022em}
.ondy-root[data-ondy-font=inter] .ondy-t-detail,.ondy-root[data-ondy-font=inter] .ondy-t-listening{letter-spacing:-0.012em}
.ondy-root[data-ondy-font=inter] .ondy-t-home-placeholder{letter-spacing:-0.038em}
.ondy-root[data-ondy-font=inter] .ondy-t-home-pair{letter-spacing:-0.029em}
.ondy-root[data-ondy-font=inter] .ondy-t-key-word{letter-spacing:-0.024em}
.ondy-root[data-ondy-font=inter] .ondy-t-predict{letter-spacing:-0.02em}

/* ==== ondy-src/phone.css ==== */
/* Ask Ondy iPhone demo: phone styles. Owner: phone builder. Prefixes: .ondy-phone .ondy-bezel .ondy-screen .ondy-l-*
   .ondy-status* .ondy-island .ondy-indicator .ondy-touch*. Spec: mobile-master 2, 12.
   STRUCTURE (architect, keep): the wrapper, bezel, scaled screen and the layer slots in z-order. */
.ondy-phone{position:relative;flex:none;margin-inline:auto}
.ondy-bezel{position:absolute;inset:0;border:4px solid #e5e9ed;border-radius:calc(55px * var(--ondy-k, 1) + 4px);background:#fff;box-shadow:0 22px 52px #1b354d12;pointer-events:none}
.ondy-screen{position:absolute;left:0;top:0;width:430px;height:932px;transform-origin:0 0;overflow:hidden;background:#fff}
.ondy-screen--corners{border-radius:55px}
.ondy-l{position:absolute;left:0;top:0;width:430px;height:932px;pointer-events:none}
.ondy-l-home{z-index:1}.ondy-l-home-over{z-index:2}.ondy-l-ask{z-index:3}.ondy-l-flight{z-index:4}.ondy-l-keyboard{z-index:5}.ondy-l-chrome{z-index:6}
.ondy-l-touch{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:visible}
/* Status bar (mobile-master 2.3): time centred on x 60.5 with its baseline at 35.6 (line box 20.29, baseline 16.18 below its top). */
.ondy-status{position:absolute;left:0;top:0;width:430px;height:59px}
.ondy-status-time{position:absolute;left:20.5px;top:19.42px;width:80px;text-align:center;font-feature-settings:"tnum" 0}
.ondy-phone .ondy-status-glyphs{position:absolute;left:0;top:0;width:430px;height:59px}
.ondy-status-pct{font-family:-apple-system,BlinkMacSystemFont,OndyInter,sans-serif;font-size:11.4px;font-weight:700;fill:#fff;letter-spacing:-0.2px}
.ondy-island{position:absolute;left:152px;top:11.33px;width:126px;height:37.33px;border-radius:18.67px;background:#000}
.ondy-status-privacy{position:absolute;left:415.4px;top:26.7px;width:5.3px;height:5.3px;border-radius:50%;background:var(--ondy-privacy);opacity:0}
.ondy-indicator{position:absolute;left:137.8px;top:918.7px;width:154.3px;height:5.3px;border-radius:2.65px;background:#000}
/* Touch indicator (mobile-master 12), page px, same look as the site's tour touch. */
.ondy-touch-dot,.ondy-touch-ring{position:absolute;left:0;top:0;border-radius:50%;will-change:transform,opacity}
.ondy-touch-dot{width:30px;height:30px;background:#2884ffd9;border:2px solid #fff;box-shadow:0 5px 16px #2884ff55}
.ondy-touch-ring{width:38px;height:38px;border:2px solid #2884ff}

/* ==== ondy-src/home.css ==== */
/* Ask Ondy iPhone demo: Home (mobile-master 8.1, 8.2). Every size in points. */
.ondy-home{position:absolute;left:0;top:0;width:430px;height:932px}
.ondy-home-page{position:absolute;inset:0;background:var(--ondy-page)}
.ondy-home-abs{position:absolute;left:0;top:0}
.ondy-home-line{position:absolute;left:0;top:0;line-height:1.1934em}
.ondy-phone .ondy-home-wordmark{position:absolute;width:128.1px;height:21.6px;max-width:none}
.ondy-home-pairrow{position:absolute;display:flex;align-items:flex-start;height:35.8px}
.ondy-home-pairrow .ondy-home-line{position:relative}
.ondy-home-chev{position:relative;margin-left:10.4px;top:6.6px}
.ondy-home-dock{position:absolute;left:0;top:0;width:430px;height:932px}
.ondy-home-mark{position:absolute;width:26.46px;height:26.46px;transform-origin:50% 50%}
.ondy-home-disc{position:absolute;width:70px;height:70px;border-radius:50%;background:var(--ondy-dock-disc);display:flex;align-items:center;justify-content:center}

/* ==== ondy-src/ask.css ==== */
/* Ask Ondy iPhone demo: the Ask screen (mobile-master 8.3 to 8.7). Every size in points. */
.ondy-ask{position:absolute;left:0;top:0;width:430px;height:932px;background:var(--ondy-page)}
.ondy-ask-abs{position:absolute;left:0;top:0}
.ondy-ask-centre{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.ondy-ask-hcircle{position:absolute;width:36px;height:36px;border-radius:50%;background:var(--ondy-raised)}
.ondy-ask-title{position:absolute;left:0;top:76.02px;width:430px;text-align:center;line-height:1.1934em;opacity:0}
.ondy-ask-welcome{position:absolute;left:0;top:0;width:430px;height:932px}
.ondy-ask-faceslot{position:absolute;left:175px;top:346.7px;width:80px;height:80px}
.ondy-ask-greeting{position:absolute;left:0;width:430px;text-align:center}
.ondy-ask-convo{position:absolute;left:0;top:0;width:430px;height:932px}
.ondy-ask-turn{position:absolute;left:0;top:0;width:430px;height:932px}
.ondy-ask-bubble{position:absolute;border-radius:18px;background:var(--ondy-inverse);padding:10px 15px}
.ondy-ask-bubbletext{margin-block:-2px}
.ondy-ask-bline{white-space:pre}
.ondy-ask-card{position:absolute;border-radius:18px;background:var(--ondy-surface);overflow:hidden}
.ondy-ask-dots{position:absolute;left:0;top:0;width:62px;height:42px}
.ondy-ask-dot{position:absolute;top:18px;width:6px;height:6px;border-radius:50%;background:var(--ondy-ink)}
.ondy-ask-dot:nth-child(1){left:17px}.ondy-ask-dot:nth-child(2){left:28px}.ondy-ask-dot:nth-child(3){left:39px}
.ondy-ask-cardcontent{position:absolute;left:0;top:0;width:394px;height:200px}
.ondy-ask-line{position:absolute;left:18px;top:0;line-height:1.1934em;white-space:pre}
.ondy-ask-cardcontent .ondy-ask-line{left:18px}
.ondy-ask-lead,.ondy-ask-detail{left:18px}
.ondy-ask-actions{position:absolute;left:0;width:430px}
.ondy-ask-mark{position:absolute;width:18px;height:18px}
.ondy-ask-halo{position:absolute;border-radius:50%;background:#EEF3FC}
.ondy-ask-more{position:absolute;right:18px;top:0;height:100%;display:flex;align-items:center;gap:6px}
.ondy-ask-morelabel{line-height:1.1934em;transform-origin:50% 50%}
.ondy-ask-chev{width:13px;height:13px;transform-origin:50% 50%}
.ondy-ask-composer{position:absolute;left:0;top:0;width:430px;height:932px}
.ondy-ask-box{position:absolute;left:14px;width:402px;border-radius:26px;background:var(--ondy-surface);box-shadow:inset 0 0 0 0.5px var(--ondy-line)}
.ondy-ask-row{position:absolute;left:0;top:0;width:430px;height:0}
.ondy-ask-circle{position:absolute;width:32px;height:32px;border-radius:50%}
.ondy-ask-plus{top:-16px}
.ondy-ask-field{position:absolute;left:64px;top:0;width:260px;height:0}
.ondy-ask-fline{position:absolute;left:0;top:0;line-height:1.1934em;white-space:pre}
.ondy-ask-markbox{position:absolute;height:21.3px;border-radius:4px;background:var(--ondy-autocorrect-box)}
.ondy-ask-markline{position:absolute;height:1px;background:var(--ondy-autocorrect-line)}
.ondy-ask-caret{position:absolute;width:2px;height:21.4px;border-radius:1px;background:var(--ondy-ink)}
.ondy-ask-plainmic{position:absolute;left:336.5px;top:-9.5px;width:19px;height:19px;display:flex;justify-content:center}
.ondy-ask-primary{position:absolute;left:374px;top:-16px;width:32px;height:32px}
.ondy-ask-primarycircle{left:0;top:0}
.ondy-ask-close{left:31px;top:-9px;width:18px;height:18px}
.ondy-ask-listenslot{position:absolute;left:62px;top:-20px;width:40px;height:40px}
.ondy-ask-listening{position:absolute;left:106px;top:-8.95px;line-height:1.1934em}
.ondy-ask-words{position:absolute;left:66px;top:0;line-height:1.1934em;white-space:pre}
.ondy-ask-word{display:inline-block;white-space:pre}
.ondy-ask-recstop,.ondy-ask-recsend{top:-16px}
.ondy-phone .ondy-ask-ring{inset:0;padding:1.5px;z-index:1}

/* ==== ondy-src/face.css ==== */
/* Ask Ondy iPhone demo: Ondy's face (mobile-master 7, 8.2). */
.ondy-flight{position:absolute;inset:0}
.ondy-flight-disc{position:absolute;border-radius:50%;background:var(--ondy-dock-disc);overflow:hidden}
.ondy-flight-blue{position:absolute;inset:0;border-radius:50%;background:var(--ondy-face);clip-path:inset(0 round 50%)}
.ondy-flight-eye{position:absolute;border-radius:999px;background:var(--ondy-eye)}
.ondy-face{position:absolute;left:0;top:0;width:80px;height:80px}
.ondy-phone .ondy-face-skin{position:absolute;inset:0;border-radius:50%;overflow:visible;clip-path:circle(50% at 50% 50%);background:var(--ondy-face);transform-origin:40px 80px}
.ondy-phone .ondy-face-skin>canvas[data-ai='fill'],.ondy-phone .ondy-flight-blue>canvas[data-ai='fill']{left:-10px;top:-10px;width:calc(100% + 20px);height:calc(100% + 20px);filter:blur(3px)}
.ondy-phone .ondy-face-svg{position:absolute;left:0;top:0;width:80px;height:80px;overflow:visible}
.ondy-listen{position:absolute;left:0;top:0;width:40px;height:40px}
.ondy-phone .ondy-listen-svg{width:40px;height:40px}

/* ==== ondy-src/keyboard.css ==== */
/* Ask Ondy iPhone demo: iOS light keyboard (mobile-master 8.6, 10). Points, relative to the keyboard top (585.8 when up). */
.ondy-kb{position:absolute;left:0;top:585.8px;width:430px;height:346.2px;background:var(--ondy-kb-body)}
.ondy-kb-predict{position:absolute;left:0;top:0;width:430px;height:51px}
.ondy-kb-cells{position:absolute;inset:0}
.ondy-kb-cell{position:absolute;top:13.1px;width:143.33px;text-align:center;line-height:24.7px;height:24.7px}
.ondy-kb-divider{position:absolute;top:13.1px;width:1px;height:24.7px;background:var(--ondy-kb-divider)}
.ondy-kb-highlight{position:absolute;top:6px;width:135.3px;height:38.7px;border-radius:8px;background:var(--ondy-predict-highlight)}
.ondy-kb-layer{position:absolute;inset:0}
.ondy-kb-key{position:absolute;border-radius:5.5px;background:var(--ondy-key);box-shadow:0 0.6px 0 var(--ondy-key-shadow);display:flex;align-items:center;justify-content:center}
.ondy-kb-fn,.ondy-kb-fn-word,.ondy-kb-fn-hash,.ondy-kb-shift{background:var(--ondy-key-fn)}
.ondy-kb-label{display:block;line-height:1;text-align:center}
.ondy-kb-lower{position:relative;top:-2.9px;font-size:25px}
.ondy-kb-key .ondy-t-key-upper{position:relative;top:-0.8px}
.ondy-kb-key .ondy-t-key-word{position:relative;top:-0.5px}
.ondy-kb-space .ondy-t-key-word{top:-1.8px}
.ondy-kb-symlabel{position:relative;top:-0.6px}
.ondy-kb-glyph{display:flex;align-items:center;justify-content:center}
.ondy-kb-shift .ondy-kb-glyph{transform:translate(0.9px,-0.4px) scale(1.095,0.968)}
.ondy-kb-aux{position:absolute;width:28px;height:28px}
.ondy-kb-callout{position:absolute;left:0;top:0;width:430px;height:346.2px}
.ondy-phone .ondy-kb-callout-svg{position:absolute;left:0;top:0;width:430px;height:346.2px;overflow:visible;filter:drop-shadow(0 0.6px 0.3px rgba(0,0,0,0.32))}
.ondy-kb-callout-char{position:absolute;width:80px;text-align:center;line-height:1.1934em;font-weight:300}

/* ==== ondy-src/director.css ==== */
/* Ask Ondy iPhone demo: director styles. The director draws nothing; keep this file empty of rules. */

/* ==== ondy-src/page.css ==== */
/* Ask Ondy iPhone demo: page styles. Owner: architect (complete).
   The #ask-ondy section around the phone and the harness page. Mirrors the #iphone section's grid, widths and
   breakpoints (site-demos 1.5, 10.4) without reusing its classes. */
.ondy-section{background:#fff}
.ondy-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:100px}
.ondy-copy .section-head p:not(.eyebrow){max-width:415px}
.ondy-copy>.tag{display:inline-block;margin-top:25px}
.ondy-stage{display:flex;flex-direction:column;align-items:center;min-width:0;width:100%}
.ondy-device{width:340px;max-width:100%}
.ondy-controls{margin-top:22px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.ondy-control{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 16px;border-radius:10px;background:#191c20;color:#fff;font-size:12px;line-height:1}
.ondy-control svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.1}
.ondy-caption{margin-top:14px;font-size:12px;max-width:350px;color:#69788a;line-height:1.6;text-align:center}
@media(hover:hover) and (pointer:fine){.ondy-control:hover{background:#303843;color:#fff}}
@media(max-width:1190px){.ondy-grid{gap:50px}}
@media(min-width:701px) and (max-width:960px){.ondy-grid{grid-template-columns:minmax(0,1fr) minmax(0,306px);gap:26px}.ondy-device{width:306px}}
@media(max-width:700px){.ondy-grid{display:flex;flex-direction:column;gap:35px;align-items:stretch}.ondy-copy>.tag{margin-top:18px}.ondy-device{width:340px}}
@media(max-width:370px){.ondy-device{width:292px}}

/* Harness: the phone alone at 430 x 932 CSS px, top left, no page chrome. */
.ondy-harness-body{margin:0;background:#fff;overflow:hidden}
.ondy-harness{position:absolute;left:0;top:0;width:430px;height:932px}

/* Buttons laid over the phone's controls (page.js). Invisible; the phone draws the control itself. */
.ondy-hits{position:absolute;inset:0;z-index:8;pointer-events:none}
.ondy-phone .ondy-hit{position:absolute;display:block;margin:0;padding:0;border:0;background:transparent;box-shadow:none;min-width:0;min-height:0;color:transparent;font-size:0;line-height:0;cursor:pointer;pointer-events:auto;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}
.ondy-phone .ondy-hit:focus{outline:none}
.ondy-phone .ondy-hit:focus-visible{outline:2px solid #2884ff;outline-offset:2px}

/* ==== ondy-src/mark.css ==== */
/* Ask Ondy heading: the blue "Ondy." and the face laid over its O (mark.js). */
/* The 800 face holds only O, n, d, y and the full stop, so it has a family of its own. Named Respond, it was chosen
   for any Respond text heavier than 500 (the everyday heading is 540) and every other letter fell back to Arial. */
@font-face{font-family:RespondOndy;src:url('fonts/RespondSans-800-Ondy.woff2') format('woff2');font-weight:800;font-display:swap;unicode-range:U+2E,U+4F,U+64,U+6E,U+79}
.ondy-section .section-head h2 span{color:inherit}
.ondy-section .section-head h2 .ondy-word{color:#1875d8;font-weight:800}
.ondy-section .section-head h2 .ondy-word{font-family:RespondOndy,Respond,Arial,sans-serif}
.ondy-o{position:relative}
.ondy-section .section-head h2 .ondy-word.is-live .ondy-o{color:transparent}
.ondy-o-base{display:inline-block;width:0;height:0;margin:0;padding:0;overflow:hidden;vertical-align:baseline}
.ondy-o .ondy-mark{position:absolute;left:0;top:0;width:.878em;height:1.26em;overflow:visible;fill:none;stroke:none;pointer-events:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}
.ondy-mark .ondy-mark-hit{pointer-events:all;cursor:pointer}

/* ==== ondy-src/hello.css ==== */
/* Ask Ondy section: "Say hello to Ondy", Ondy, and the advanced pill (hello.js; Chris's mockup, 25 September 2026).
   Sizes are his mockup's, measured off it at 2000 px wide: the two titles are 6.05vw and 4.7vw (capped where the
   second would no longer fit its column on two lines), the words in the
   pills are 0.89 and 0.91 of their titles, and each pill's padding is in the pill word's em, set so the capital line and the
   baseline sit where his do (the face's line box is 1em with its baseline 0.908em down and its capitals 0.745em
   tall). The pills' canvases are painted by ai-gradient.js; the Ondy pill is its own stacking context, so its glow
   sits behind its white face and still spills out round it. */
@font-face{font-family:OndyJakarta;src:url('fonts/PlusJakartaSans-Bold.ttf') format('truetype');font-weight:700;font-display:swap;unicode-range:U+4F,U+61,U+63-65,U+6E,U+76,U+79}
.ondy-hello{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:clamp(64px,12.9vw,209px)}
.ondy-hello-title{margin:0;font-size:clamp(44px,6.05vw,98px);font-weight:500;letter-spacing:-.035em;line-height:1.2;color:#23292f}
.ondy-name,.ondy-adv{position:relative;display:inline-flex;align-items:baseline;isolation:isolate;border-radius:999px;white-space:nowrap;vertical-align:baseline;font-size:.89em;line-height:1}
.ondy-name-word,.ondy-adv-word{position:relative;z-index:3;font-family:OndyJakarta,Respond,Arial,sans-serif;font-weight:700}

/* "Ondy": white, with the gradient round it and a soft glow. */
.ondy-name{padding:.319em .736em .437em .642em;margin-left:.24em}
.ondy-name-face{position:absolute;inset:0;z-index:1;border-radius:inherit;background:#fff}
.ondy-name>.ai-ring{z-index:2;inset:0;padding:.111em}
.ondy-name>canvas.ai-halo{position:absolute;z-index:0;left:-.26em;top:-.26em;width:calc(100% + .52em);height:calc(100% + .52em);border-radius:999px;filter:blur(.19em);opacity:.55;pointer-events:none}
.ondy-name-word{color:#17191c;letter-spacing:-.035em}

/* Ondy. Until he drops in the space is his; without script it stays empty. */
.ondy-buddy{position:relative;width:clamp(150px,16.15vw,262px);aspect-ratio:1;margin-top:clamp(40px,5.2vw,84px);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
.ondy-buddy-skin{position:absolute;inset:0;border-radius:50%;overflow:visible;clip-path:circle(50% at 50% 50%);transform-origin:50% 100%;background:linear-gradient(160deg,#ff94bb,#b4a5ff 45%,#8dbeff 78%,#86d39a)}
.ondy-buddy-skin>canvas[data-ai='fill']{left:-24px;top:-24px;width:calc(100% + 48px);height:calc(100% + 48px);filter:blur(8px)}
.ondy-buddy-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none;stroke:none;pointer-events:none}

/* "Your advanced translator buddy." The pill is the gradient with white words; its colours follow the pointer. */
.ondy-section .section-head h2.ondy-buddy-title{color:#23292f;font-size:clamp(38px,4.7vw,76px);line-height:1.3}
.ondy-adv{font-size:.91em;padding:.123em .796em .236em .641em;margin-left:.297em}
.ondy-adv-fill{position:absolute;inset:0;z-index:1;border-radius:inherit;clip-path:inset(0 round 999px);background:linear-gradient(100deg,#b4a5ff,#ff94bb 40%,#ff9f8c 70%,#8dbeff)}
.ondy-adv-fill>canvas[data-ai='fill']{left:-8%;top:-30%;width:116%;height:160%;filter:blur(8px)}
.ondy-section .section-head h2 .ondy-adv-word{color:#fff;letter-spacing:-.035em}
@media(max-width:700px){.ondy-hello{margin-bottom:56px}.ondy-section .section-head h2.ondy-buddy-title{font-size:clamp(30px,11vw,48px)}}
