/* All module styles are namespaced; no global reset, scroll handler or type rule. */
.veesi-ai { --vai-ivory:#fbf9f4; --vai-ink:#121314; --vai-blue:#123feb; --vai-frame:1; --vai-identity:1; --vai-material:1; --vai-dimensions:1; --vai-availability:1; --vai-x:0%; --vai-scale:1; position:relative; background:var(--vai-ivory); color:var(--vai-ink); font-family:Arial,Helvetica,sans-serif; isolation:isolate; }
.veesi-ai *, .veesi-ai *::before, .veesi-ai *::after { box-sizing:border-box; }
.veesi-ai .vai-stage { position:relative; overflow:hidden; padding:48px max(5.2vw,24px) 24px; min-height:760px; }
.veesi-ai .vai-heading-row { display:grid; grid-template-columns:1fr 220px; gap:32px; position:relative; z-index:5; max-width:1560px; margin:auto; }
.veesi-ai .vai-eyebrow { display:flex; gap:12px; align-items:center; color:#656c7c; font-size:11px; font-weight:600; letter-spacing:.19em; text-transform:uppercase; margin:0 0 18px; }
.veesi-ai .vai-dot { width:10px; height:10px; flex:none; border-radius:50%; background:#eff200; }
.veesi-ai .vai-heading { font-size:clamp(42px,5.45vw,90px); font-weight:650; letter-spacing:-.068em; line-height:.98; margin:0; }
.veesi-ai .vai-heading span { display:block; }
.veesi-ai .vai-aside { align-self:end; padding-bottom:5px; }
.veesi-ai .vai-aside p { font-size:clamp(14px,1.4vw,21px); color:#6e7585; letter-spacing:-.03em; line-height:1.3; margin:0 0 25px; }
.veesi-ai .vai-link { display:flex; justify-content:space-between; gap:12px; padding:6px 0; border-bottom:1px solid; color:inherit; font-size:14px; text-decoration:none; }
.veesi-ai .vai-link:focus-visible { outline:3px solid #173bef; outline-offset:5px; }
.veesi-ai .vai-art { position:relative; width:min(1390px,100%); height:clamp(475px,43vw,640px); margin:28px auto 0; }
.veesi-ai .vai-website { position:absolute; inset:58px 0 25px; margin:0; border:1px solid #e3ddd4; background:#eee9e0; transform:perspective(1300px) rotateX(5deg) rotateZ(1.3deg); transform-origin:50% 100%; box-shadow:0 12px 30px #78654412; }
.veesi-ai .vai-sitebar { display:flex; align-items:center; justify-content:space-between; height:45px; padding:0 3%; background:#f4f0e9; }
.veesi-ai .vai-brand { font-family:Georgia,'Times New Roman',serif; font-size:30px; font-weight:400; letter-spacing:-.07em; line-height:1; }
.veesi-ai .vai-site-nav { display:flex; gap:28px; font-size:9px; padding-right:8%; }
.veesi-ai .vai-photo { position:relative; height:calc(100% - 83px); overflow:hidden; background:linear-gradient(120deg,#e8ded0,#c4b5a1); }
.veesi-ai .vai-photo img { width:100%; height:100%; display:block; object-fit:cover; object-position:50% 58%; }
.veesi-ai .vai-site-copy { position:absolute; top:17%; left:4.5%; width:30%; }
.veesi-ai .vai-site-copy h3 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(27px,3.5vw,55px); font-weight:400; line-height:1; letter-spacing:-.055em; max-width:340px; margin:0 0 13px; }
.veesi-ai .vai-site-copy p { font-size:clamp(11px,1vw,15px); line-height:1.28; max-width:190px; margin:0; }
.veesi-ai .vai-concept-button { display:inline-block; font-size:10px; padding:10px 18px; margin-top:22px; border:1px solid #4b463e; background:#fbf9f0d9; border-radius:30px; }
.veesi-ai .vai-product-strip { display:flex; gap:26px; justify-content:space-between; align-items:center; padding:0 2%; height:38px; font-size:11px; color:#474743; white-space:nowrap; background:#fdfbf6; }
.veesi-ai .vai-product-strip span+span { border-left:1px solid #a6a29c; padding-left:25px; }
.veesi-ai .vai-lens { position:absolute; z-index:3; width:49%; aspect-ratio:1; top:-3%; right:1%; transform:translateX(var(--vai-x)) scale(var(--vai-scale)); transform-origin:50% 65%; }
.veesi-ai .vai-glass { position:absolute; inset:2.8%; overflow:hidden; border-radius:50%; opacity:var(--vai-frame); background:linear-gradient(140deg,#ffffff5c,#ffffff09 40%,#cce1f512 72%,#fff9); box-shadow:inset 0 0 0 1px #fcffff, inset 6px 6px 9px #c5cfdd4d, inset -4px -6px 9px #86908e3b; }
.veesi-ai .vai-glass::before { content:''; position:absolute; inset:2.2%; border:1px solid #fff; border-radius:50%; box-shadow:0 0 2px 2px #64758455, inset 3px 3px 6px #9da69980; z-index:4; pointer-events:none; }
.veesi-ai .vai-reflection { position:absolute; top:7%; left:12%; right:12%; height:20%; border-radius:50%; background:linear-gradient(174deg,#fff9,#fff0 70%); pointer-events:none; }
.veesi-ai .vai-reading { position:absolute; inset:11% 10% 9%; display:flex; flex-direction:column; justify-content:center; }
.veesi-ai .vai-read-head { flex:0 0 auto; display:flex; gap:12px; align-items:center; justify-content:space-between; padding:9px 0 14px; background:#fbf9f4f7; opacity:var(--vai-identity); }
.veesi-ai .vai-read-head .vai-brand { font-size:clamp(34px,4.1vw,66px); }
.veesi-ai .vai-read-head p { font-size:clamp(11px,1.18vw,18px); letter-spacing:-.04em; margin:6px 0 0; }
.veesi-ai .vai-thumb { position:relative; flex:0 0 29%; width:29%; aspect-ratio:1.25; border-radius:6px; overflow:hidden; }
.veesi-ai .vai-thumb img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:65% 50%; }
.veesi-ai .vai-rows { flex:0 0 auto; margin:0; display:block; }
.veesi-ai .vai-row { border-top:1px solid #b9bebc; display:grid; grid-template-columns:1.12fr .38fr 1fr; gap:12px; align-items:center; background:#fbf9f4f7; padding:14px 0; min-height:59px; font-size:clamp(11px,1.1vw,16px); line-height:1.3; }
.veesi-ai .vai-row dt { font-weight:600; letter-spacing:-.035em; }
.veesi-ai .vai-row dd { margin:0; color:#42474c; }
.veesi-ai .vai-row:nth-child(1) { opacity:var(--vai-material); }
.veesi-ai .vai-row:nth-child(2) { opacity:var(--vai-dimensions); }
.veesi-ai .vai-row:nth-child(3) { opacity:var(--vai-availability); }
.veesi-ai .vai-connector { display:block; position:relative; height:1px; background:#6485ff; }
.veesi-ai .vai-connector::after { content:''; position:absolute; width:5px; height:5px; right:0; top:-2px; border-radius:50%; background:#173df0; }
.veesi-ai .vai-frame { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.veesi-ai .vai-circle { stroke-dasharray:100; stroke-dashoffset:calc(100 - var(--vai-frame) * 100); }
.veesi-ai .vai-glint { opacity:var(--vai-frame); }
.veesi-ai .vai-ribbon { position:absolute; bottom:0; right:-12%; width:110%; height:30%; pointer-events:none; z-index:4; overflow:visible; }
.veesi-ai .vai-floor { position:absolute; bottom:-6%; left:25%; width:90%; height:12%; transform:rotate(-3deg); background:radial-gradient(ellipse,#2e48d440,transparent 68%); }
.veesi-ai .vai-note { position:relative; z-index:6; margin:20px 0 0; text-align:right; color:#6c7078; font-size:10px; letter-spacing:.04em; }
.veesi-ai .vai-asset-placeholder { display:none; }
.veesi-ai.vai-asset-failed .vai-asset-placeholder { display:block; position:absolute; right:8%; bottom:12%; font-family:Georgia,serif; font-size:32px; color:#655644; }
.veesi-ai.vai-asset-failed img { visibility:hidden; }
.veesi-ai[data-vai-motion=scroll] { height:339.076932svh; }
.veesi-ai[data-vai-motion=scroll] .vai-stage { position:sticky; top:0; height:100svh; min-height:0; padding-top:clamp(24px,4.4vh,52px); }
.veesi-ai[data-vai-motion=scroll] .vai-art { height:min(43vw, calc(100svh - 310px)); min-height:390px; }
.veesi-ai[data-vai-motion=scroll] .vai-lens { width:min(49%, calc(100svh - 300px)); }
@media (min-width:1600px) { .veesi-ai .vai-stage { padding-inline:max(5.2vw,calc((100vw - 1560px)/2)); } }
@media (max-width:1000px) and (min-width:761px) { .veesi-ai .vai-heading-row { grid-template-columns:1fr 160px; gap:18px; } .veesi-ai .vai-heading { font-size:5.5vw; } .veesi-ai .vai-row { gap:8px; padding:10px 0; } .veesi-ai .vai-read-head { padding-bottom:10px; } .veesi-ai .vai-stage { padding-inline:4%; } }
@media (max-width:760px), (max-height:620px) {
  .veesi-ai .vai-stage { padding:32px 6% 26px; min-height:0; }
  .veesi-ai .vai-heading-row { display:block; }
  .veesi-ai .vai-heading { font-size:clamp(30px,8.5vw,58px); line-height:1.02; letter-spacing:-.06em; }
  .veesi-ai .vai-eyebrow { font-size:9px; letter-spacing:.14em; gap:8px; margin-bottom:15px; }
  .veesi-ai .vai-dot { width:8px; height:8px; }
  .veesi-ai .vai-aside { display:flex; align-items:center; gap:20px; justify-content:space-between; margin-top:22px; }
  .veesi-ai .vai-aside p { font-size:13px; margin:0; }
  .veesi-ai .vai-link { font-size:11px; max-width:140px; }
  .veesi-ai .vai-art { height:auto; margin-top:26px; display:flex; flex-direction:column; }
  .veesi-ai .vai-website { position:relative; inset:auto; width:100%; transform:rotate(1.2deg); min-height:0; }
  .veesi-ai .vai-sitebar { height:32px; }
  .veesi-ai .vai-brand { font-size:24px; }
  .veesi-ai .vai-site-nav { gap:12px; font-size:7px; padding-right:0; }
  .veesi-ai .vai-photo { height:auto; aspect-ratio:1.55; }
  .veesi-ai .vai-site-copy { left:5%; top:12%; width:43%; }
  .veesi-ai .vai-site-copy h3 { font-size:clamp(22px,4.7vw,35px); margin:0 0 8px; }
  .veesi-ai .vai-site-copy p { display:none; }
  .veesi-ai .vai-concept-button { font-size:8px; padding:6px 10px; margin-top:8px; }
  .veesi-ai .vai-product-strip { height:auto; padding:10px 3%; display:grid; grid-template-columns:1fr 1fr; gap:8px; font-size:9px; white-space:normal; }
  .veesi-ai .vai-product-strip span+span { padding:0; border:0; }
  .veesi-ai .vai-lens { position:relative; top:auto; right:auto; width:min(100%,440px); margin:-3px auto 0; transform:none; }
  .veesi-ai .vai-reading { inset:10% 10% 9%; }
  .veesi-ai .vai-read-head .vai-brand { font-size:clamp(31px,8vw,49px); }
  .veesi-ai .vai-read-head p { font-size:clamp(10px,2.5vw,14px); }
  .veesi-ai .vai-read-head { padding:7px 0 10px; }
  .veesi-ai .vai-row { min-height:0; padding:11px 0; gap:9px; font-size:clamp(10px,2.7vw,14px); }
  .veesi-ai .vai-ribbon { bottom:-2%; right:-12%; width:120%; height:20%; }
  .veesi-ai .vai-floor { bottom:-3%; left:0; width:115%; height:9%; }
  .veesi-ai .vai-note { margin-top:24px; text-align:left; font-size:9px; }
}
/* Keep the mobile reading block inside the circle's central safe rectangle.
   Two columns leave readable text room without placing labels near the rim. */
@media (max-width:760px) {
  .veesi-ai .vai-reading { inset:50% auto auto 50%; width:66%; height:auto; transform:translate(-50%,-50%); }
  .veesi-ai .vai-read-head { gap:8px; padding:0 0 7px; line-height:1; }
  .veesi-ai .vai-read-head .vai-brand { font-size:clamp(26px,7vw,36px); }
  .veesi-ai .vai-read-head p { font-size:clamp(10px,2.55vw,12px); line-height:1.2; margin:3px 0 0; }
  .veesi-ai .vai-thumb { flex-basis:26%; width:26%; }
  .veesi-ai .vai-row { grid-template-columns:.95fr 1.2fr; gap:8px; padding:3px 0; font-size:clamp(11px,2.8vw,14px); line-height:1.25; }
  .veesi-ai .vai-connector { display:none; }
  .veesi-ai .vai-ribbon { height:8%; bottom:-3%; }
  .veesi-ai .vai-note { margin-top:36px; }
}
/* Reduced-motion geometry is controlled only by configure() / data-vai-motion.
   A media CSS collapse before the change listener would lose the old geometry.
   No-JS and initial reduced users already receive the complete static default. */
