/* glass.css v3: glass tiles, cursor light, tilt, gradient rings, workflow pulse, 3D orbits. Loaded after refresh.css; js/glass.js injects the helper elements. */
@property --so{syntax:"<number>";inherits:true;initial-value:0}
@property --ang{syntax:"<angle>";inherits:false;initial-value:0deg}
:root{--glass-bg:linear-gradient(135deg,rgba(255,255,255,.09),rgba(255,255,255,.022) 55%,rgba(255,255,255,.05));--glass-border:rgba(255,255,255,.15);--glass-shadow:0 30px 80px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.16),inset 0 -1px 0 rgba(255,255,255,.03)}

/* ---- tiles ---- */
.workflow-visual,.workflow-node,.workflow-branches>div,.ownership-grid article,.dfy-offer,.dfy-scope span,.art-core{
  background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;
  -webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);
  box-shadow:var(--glass-shadow);position:relative;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .4s,box-shadow .5s,--so .4s}
.glass-tile{overflow:hidden}
.workflow-visual{border-radius:14px}
.workflow-node,.workflow-branches>div{border-radius:10px}
.ownership-grid{gap:16px;background:transparent;border:0;overflow:visible;border-radius:0}
.ownership-grid article{border-radius:16px}
.dfy-offer{border-radius:16px}
.dfy-offer>*,.ownership-grid article>*,.workflow-visual>*{position:relative;z-index:1}
.dfy-scope span{border-radius:100px}
/* sheen + cursor spotlight */
.glass-tile:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  background:radial-gradient(460px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,calc(.17*var(--so,0))),transparent 55%),linear-gradient(180deg,rgba(255,255,255,.085),transparent 36%)}
.glass-tile:hover{--so:1}
.glass-tile>.tile-border{position:absolute!important;inset:0;border-radius:inherit;padding:1px;pointer-events:none;z-index:3;
  background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.85),rgba(165,195,255,.4) 38%,transparent 68%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
  opacity:var(--so,0);transition:opacity .4s}
/* one-time shine sweep when a tile reveals */
.glass-tile>.tile-shine{position:absolute!important;top:-30%;bottom:-30%;left:-70%;width:45%;pointer-events:none;z-index:2;opacity:0;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.2),transparent);transform:skewX(-18deg)}
.is-in>.tile-shine,.is-in .glass-tile>.tile-shine{animation:ci-shine 1.4s ease-out .3s both}
@keyframes ci-shine{0%{opacity:0;transform:skewX(-18deg) translateX(0)}12%{opacity:1}100%{opacity:0;transform:skewX(-18deg) translateX(480%)}}
/* 3D tilt + lift */
.ownership-grid article,.dfy-offer{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));will-change:transform}
@media (hover:hover){
.ownership-grid article:hover,.dfy-offer:hover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-6px) scale(1.012);border-color:rgba(255,255,255,.3)!important;box-shadow:0 46px 100px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.24)}
.workflow-node:hover,.workflow-branches>div:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.3)!important}
}
/* rotating gradient ring (dfy card, main node, core) */
.tile-ring{position:absolute!important;inset:-1px;border-radius:inherit;padding:1.5px;pointer-events:none;z-index:4;opacity:.95;
  background:conic-gradient(from var(--ang),transparent 0 58%,#7fa8ff 74%,#e2b6ff 84%,#ffffff 88%,transparent 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
  animation:ci-ring 7s linear infinite}
.node-main>.tile-ring{animation-duration:5s}
.art-core>.tile-ring{animation-duration:4s;padding:1.5px;inset:-1px}
@keyframes ci-ring{to{--ang:360deg}}

/* ---- ownership cards ---- */
.ownership-grid article:after{content:"";position:absolute;width:300px;height:300px;right:-120px;top:-140px;border-radius:50%;filter:blur(48px);opacity:.3;background:#3d91ff;pointer-events:none;z-index:0;transition:opacity .6s,transform .9s}
.ownership-grid article:nth-child(2):after{background:#f08a24}
.ownership-grid article:nth-child(3):after{background:#f0589e}
.ownership-grid article:hover:after{opacity:.58;transform:scale(1.25) translate(-20px,20px)}
.ownership-grid article h3{background:linear-gradient(100deg,#fff 30%,#bcd3ff 50%,#fff 70%);background-size:220% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;transition:background-position .9s ease}
.ownership-grid article:hover h3{background-position:0 0}
.pixel-icon{animation:ci-flick 2.8s ease-in-out infinite}
.ownership-grid article:nth-child(2) .pixel-icon{animation-delay:.9s}
.ownership-grid article:nth-child(3) .pixel-icon{animation-delay:1.8s}
@keyframes ci-flick{0%,100%{opacity:.75;filter:brightness(1)}50%{opacity:1;filter:brightness(1.6) drop-shadow(0 0 6px currentColor)}}

/* ---- workflow visual: live pulse ---- */
.node-main{background:linear-gradient(115deg,rgba(125,95,205,.38),rgba(70,80,150,.26))!important;border-color:#a68bf0b3!important;box-shadow:0 0 36px #8d62cf33,inset 0 1px 0 rgba(255,255,255,.2);animation:ci-nodeglow 3.4s ease-in-out infinite 1.3s}
@keyframes ci-nodeglow{0%,100%{box-shadow:0 0 36px #8d62cf33,inset 0 1px 0 rgba(255,255,255,.2)}18%{box-shadow:0 0 60px #a07cf088,inset 0 1px 0 rgba(255,255,255,.35)}}
.workflow-visual:after{content:"";position:absolute;width:360px;height:360px;left:-120px;bottom:-200px;border-radius:50%;background:radial-gradient(circle,#7a4ee655,transparent 62%);filter:blur(30px);pointer-events:none;z-index:0}
.status-pill{display:inline-flex;align-items:center;gap:5px}
.status-pill:before{content:"";width:5px;height:5px;border-radius:50%;background:#5fe3a1;box-shadow:0 0 0 0 #5fe3a1aa;animation:ci-ping 2s ease-out infinite}
@keyframes ci-ping{0%{box-shadow:0 0 0 0 #5fe3a1aa}100%{box-shadow:0 0 0 7px #5fe3a100}}
.connector-line{overflow:visible;z-index:1}
.connector-line:after{content:"";position:absolute;left:50%;top:0;width:5px;height:16px;margin-left:-2.5px;border-radius:3px;background:linear-gradient(180deg,transparent,#d9c8ff);box-shadow:0 0 10px #b89cff,0 0 20px #8d62cf;animation:ci-drop 3.4s cubic-bezier(.4,0,.6,1) infinite}
.workflow-node:not(.node-main)+.connector-line:after{animation-delay:.3s}
.node-main+.connector-line:after{animation-delay:1.7s}
@keyframes ci-drop{0%{transform:translateY(-16px);opacity:0}12%{opacity:1}30%{opacity:1}40%,100%{transform:translateY(36px);opacity:0}}
.node-check,.workflow-branches>div>span{display:inline-block;transform-origin:center}
.workflow-node:not(.node-main) .node-check{animation:ci-check 3.4s ease infinite 0s}
.node-main .node-check{animation:ci-check 3.4s ease infinite 1.4s}
.workflow-branches>div:first-child>span{animation:ci-check 3.4s ease infinite 2.6s}
.workflow-branches>div:last-child>span{animation:ci-check 3.4s ease infinite 2.75s}
@keyframes ci-check{0%,22%,100%{transform:scale(1);text-shadow:none;color:inherit}8%{transform:scale(1.5);text-shadow:0 0 14px #d9c8ff;color:#fff}}

/* ---- done for you: ambient, real 3D orbits, breathing core, sparks ---- */
.dfy-offer:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(circle at 50% 18%,#4a63d68a,transparent 42%),radial-gradient(circle at 92% 88%,#c2561e55,transparent 40%),radial-gradient(circle at 6% 70%,#6b3fb855,transparent 45%)}
.dfy-art{z-index:1;perspective:760px;transform-style:preserve-3d;overflow:visible;isolation:auto}
.dfy-art:before{content:"";position:absolute;inset:0;margin:auto;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,#5f8df6c0,transparent 66%);filter:blur(22px);animation:ci-halo 4.6s ease-in-out infinite;z-index:0}
.art-orbit{width:214px!important;height:214px!important;border-color:rgba(150,180,240,.3)!important;transform-style:preserve-3d;animation:ci-orbit3d var(--d,22s) linear infinite}
.orbit-one{--tx:74deg;--ty:0deg;--d:20s}
.orbit-two{--tx:52deg;--ty:58deg;--d:29s;animation-direction:reverse}
.orbit-three{--tx:62deg;--ty:-64deg;--d:24s}
@keyframes ci-orbit3d{from{transform:rotateY(var(--ty)) rotateX(var(--tx)) rotateZ(0deg)}to{transform:rotateY(var(--ty)) rotateX(var(--tx)) rotateZ(360deg)}}
.art-orbit:after{content:"";position:absolute;top:50%;left:-4px;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#bfe0ff;box-shadow:0 0 12px #8fc7fa,0 0 28px #5b9cff}
.orbit-two:after{background:#ffd9ad;box-shadow:0 0 12px #f2c08a,0 0 28px #f2a05a}
.orbit-three:after{background:#e9d2ff;box-shadow:0 0 12px #d7b8ff,0 0 24px #b58cff}
/* comet trail behind each dot */
.art-orbit:before{content:"";position:absolute;inset:-1px;border-radius:50%;border:2px solid #8fc7fa;filter:blur(.6px);-webkit-mask:conic-gradient(from 190deg,transparent 0deg,#000 80deg,transparent 80.5deg);mask:conic-gradient(from 190deg,transparent 0deg,#000 80deg,transparent 80.5deg);opacity:.8}
.orbit-two:before{border-color:#f2c08a;-webkit-mask:conic-gradient(from 270deg,#000 0deg,transparent 80deg);mask:conic-gradient(from 270deg,#000 0deg,transparent 80deg)}
.orbit-three:before{border-color:#d7b8ff}
.orbit-point{display:none}
.art-core{z-index:2;background:radial-gradient(circle at 35% 28%,#2b4f93,#10203f 70%)!important;border-color:#b9d5ff66!important;box-shadow:0 0 0 1px #ffffff10 inset,0 0 26px #5787d466,0 18px 40px #0008;animation:ci-breathe 4.6s ease-in-out infinite;color:#dbe8ff;overflow:visible}
.art-core:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.2),transparent 45%);pointer-events:none}
.core-glyph{display:inline-block;animation:ci-glyph 14s linear infinite;text-shadow:0 0 18px #9fc3ff,0 0 40px #5b8cff}
@keyframes ci-glyph{to{transform:rotate(360deg)}}
.spark{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:#fff;box-shadow:0 0 8px #bcd6ff,0 0 16px #7fa9ff;opacity:0;pointer-events:none;z-index:3;animation:ci-spark var(--d) ease-in-out var(--dl) infinite}
@keyframes ci-spark{0%,100%{opacity:0;transform:scale(.2)}50%{opacity:1;transform:scale(1)}}
.art-label{z-index:2}
@keyframes ci-breathe{0%,100%{transform:scale(1);box-shadow:0 0 0 1px #ffffff10 inset,0 0 26px #5787d466,0 18px 40px #0008}50%{transform:scale(1.07);box-shadow:0 0 0 1px #ffffff18 inset,0 0 54px #6f9cf0bb,0 22px 46px #0009}}
@keyframes ci-halo{0%,100%{opacity:.55;transform:scale(.92)}50%{opacity:1;transform:scale(1.1)}}
@media (prefers-reduced-motion:reduce){.art-orbit,.art-core,.core-glyph,.spark,.dfy-art:before,.tile-ring,.connector-line:after,.node-check,.workflow-branches>div>span,.pixel-icon,.node-main,.status-pill:before,.tile-shine{animation:none!important}}

/* ---- done-for-you quote dialog ---- */
.quote-dialog{max-width:640px;padding:40px 42px;background:linear-gradient(160deg,#141a27,#0f1420);border-color:#ffffff2e}
.quote-dialog .dialog-lead{margin-bottom:22px}
.q-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;margin-bottom:6px}
.q-full{grid-column:1/-1}
.quote-form label small{color:#7f8ca3;font-weight:400;font-size:10px}
.quote-form textarea,.quote-form select{width:100%;background:#1c2533;border:1px solid #53627a;border-radius:4px;min-height:48px;padding:12px 14px;color:white;font-size:16px;font-family:inherit}
.quote-form textarea{resize:vertical;line-height:1.5}
.quote-form select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#9fb0c8 50%),linear-gradient(135deg,#9fb0c8 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:38px}
.quote-form textarea::placeholder{color:#8390a7}
.quote-form input:focus,.quote-form textarea:focus,.quote-form select:focus{outline:none;border-color:#6ea8ff;box-shadow:0 0 0 3px #3d91ff33}
.quote-form .btn{margin-top:14px}
.q-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
#quoteHint{font-size:10px;line-height:1.5;color:#9facbf;margin:12px 0 0}
#quoteStatus{font-size:13px;line-height:1.55;color:#b7dccf;margin-top:14px;min-height:1em}
.quote-form.is-done .q-grid,.quote-form.is-done button,.quote-form.is-done #quoteHint{display:none}
.quote-form.is-done #quoteStatus{padding:18px;background:#233e39;border-radius:6px;color:#c3ecdc;font-size:14px}
@media (max-width:640px){.quote-dialog{padding:30px 22px}.q-grid{grid-template-columns:1fr;gap:12px}}
