/* Mina — mobile homepage V3 "insane sci-fi one-piece" (≤900px), per the
   uploaded design package. Desktop (>900px) keeps the PC command center.
   Graphic redesign only: same top bar controls, same data-open targets. */

#homeCcMobile{display:none;}

@media (max-width:900px){

  /* Swap layouts: hide the desktop PC shell, show the mobile page. */
  body.home-cc-active #homeCommandCenter>.home-cc-shell{display:none!important;}

  body.home-cc-active #homeCommandCenter{
    display:block!important;
    padding:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch;
    background:
      radial-gradient(circle at 50% -10%, rgba(255,217,111,.09), transparent 24%),
      radial-gradient(circle at 10% 6%, rgba(108,90,255,.12), transparent 22%),
      radial-gradient(circle at 90% 14%, rgba(213,108,255,.10), transparent 20%),
      radial-gradient(circle at 50% 110%, rgba(100,233,255,.08), transparent 26%),
      linear-gradient(180deg,#03050a 0%,#07101a 38%,#03060b 100%);
    background-color:#03050a;
  }

  #homeCcMobile{
    display:block;
    position:relative;
    min-height:100%;
    padding:12px 0 0;
    box-sizing:border-box;
    color:#f7faff;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  #homeCcMobile *{box-sizing:border-box;}

  /* ── Ambient FX layers (fixed, hidden with the page, canvas throttled) ── */
  .ccm3-fx{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;}
  .ccm3-net{position:absolute;inset:0;width:100%;height:100%;opacity:.9;}
  .ccm3-aurora{
    position:absolute;inset:-12%;opacity:.45;filter:blur(56px) saturate(150%);
    will-change:transform;transform:translateZ(0);
    background:
      radial-gradient(circle at 18% 28%,rgba(105,88,255,.32),transparent 27%),
      radial-gradient(circle at 80% 20%,rgba(213,103,255,.22),transparent 24%),
      radial-gradient(circle at 52% 74%,rgba(76,229,255,.15),transparent 24%);
    animation:ccm3Aurora 16s ease-in-out infinite alternate;
  }
  .ccm3-beam,.ccm3-beam2{
    position:absolute;opacity:.10;filter:blur(9px);
    background:linear-gradient(90deg,transparent,rgba(255,216,111,.38),rgba(100,233,255,.20),transparent);
  }
  .ccm3-beam{inset:-8% 12% auto -18%;height:34vh;transform:rotate(-12deg);animation:ccm3Beam 13s linear infinite;}
  .ccm3-beam2{inset:20% -20% auto 56%;height:28vh;transform:rotate(19deg);animation:ccm3Beam2 15s linear infinite;}
  .ccm3-grain{
    position:absolute;inset:0;opacity:.035;mix-blend-mode:soft-light;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E");
  }

  @keyframes ccm3Aurora{0%{transform:translate3d(-2%,-2%,0) scale(1.02)}50%{transform:translate3d(2%,2%,0) scale(1.1)}100%{transform:translate3d(-1%,3%,0) scale(1.04)}}
  @keyframes ccm3Beam{0%{transform:translateX(-6%) rotate(-12deg)}50%{transform:translateX(8%) rotate(-9deg)}100%{transform:translateX(-1%) rotate(-12deg)}}
  @keyframes ccm3Beam2{0%{transform:translateX(0) rotate(19deg)}50%{transform:translateX(-8%) rotate(15deg)}100%{transform:translateX(1%) rotate(19deg)}}
  @keyframes ccm3Spin{to{transform:rotate(360deg)}}
  @keyframes ccm3Marquee{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(-50%,0,0)}}
  @keyframes ccm3Pulse{0%,100%{opacity:.45}50%{opacity:1}}
  @keyframes ccm3Scan{0%{transform:translateY(-120%)}100%{transform:translateY(260%)}}
  @keyframes ccm3Float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
  @keyframes ccm3Float2{0%,100%{transform:translate3d(-50%,-50%,54px) rotate(-3deg)}50%{transform:translate3d(-50%,-54%,54px) rotate(3deg)}}
  @keyframes ccm3AdZoom{0%,100%{transform:scale(1) translateX(0)}50%{transform:scale(1.06) translateX(-8px)}}
  @keyframes ccm3Sweep{0%{transform:translateX(-120%) skewX(-22deg)}100%{transform:translateX(260%) skewX(-22deg)}}
  @keyframes ccm3Load{0%{transform:translateX(-38%)}50%{transform:translateX(54%)}100%{transform:translateX(-38%)}}
  @keyframes ccm3Scene{0%{transform:rotateX(-18deg) rotateY(0)}100%{transform:rotateX(-18deg) rotateY(360deg)}}
  @keyframes ccm3Orbit{0%,100%{opacity:.35}50%{opacity:1}}

  /* ── Top bar (same controls as V2, over the new surface) ── */
  .ccm-topbar{
    position:relative;z-index:2;
    display:flex;align-items:center;gap:10px;
    padding:4px 14px 12px;
  }
  .ccm-menu{
    width:42px;height:42px;flex:0 0 auto;
    display:grid;place-items:center;
    border-radius:13px;
    border:1px solid rgba(140,120,255,.45);
    background:linear-gradient(160deg,rgba(90,70,200,.35),rgba(40,30,90,.35));
    color:#dcd6ff;
    box-shadow:0 0 14px rgba(120,90,255,.35);
    cursor:pointer;
  }
  .ccm-menu svg{width:20px;height:20px;}
  .ccm-logo{
    height:74px;width:auto;flex:0 0 auto;
    margin:-22px -6px -22px -10px;
    mix-blend-mode:screen;
    pointer-events:none;user-select:none;-webkit-user-drag:none;
  }
  .ccm-spacer{flex:1 1 auto;}
  .ccm-upgrade{
    height:40px;flex:0 0 auto;
    display:inline-flex;align-items:center;gap:6px;
    padding:0 14px;
    border-radius:999px;
    border:1px solid rgba(255,200,60,.55);
    background:linear-gradient(160deg,rgba(120,85,10,.55),rgba(60,40,5,.6));
    color:#ffd75e;font-weight:800;font-size:13px;
    box-shadow:0 0 16px rgba(255,190,40,.25);
    cursor:pointer;
  }
  .ccm-upgrade svg{width:16px;height:16px;}
  /* Offer strip: a normal in-flow block under the top bar. Deliberately NOT
     fixed and NOT sticky — this page scrolls inside a position:fixed
     container, and anything layered over that stops iOS painting mid-scroll.
     Static content simply adds height, exactly like the cards below it. */
  .ccm-saleStrip{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    width:calc(100% - 28px); margin:0 14px 10px; padding:10px 14px;
    border:1px solid rgba(245,197,66,.5); border-radius:14px;
    background:linear-gradient(96deg,rgba(120,84,10,.42),rgba(60,42,8,.32));
    color:#f5c542; font:inherit; font-weight:800; text-align:left; cursor:pointer;
    box-shadow:0 6px 18px rgba(0,0,0,.28);
  }
  .ccm-saleStrip:active{transform:translateY(1px);}
  /* Both halves were nowrap and together they exceed the strip on a 390px
     phone, so the timer printed on top of the word "Discount". The row is
     allowed to wrap instead: they sit side by side when they fit and stack
     when they do not, which cannot collide at any width or font size. */
  .ccm-saleStrip{flex-wrap:wrap; row-gap:2px;}
  .ccm-saleStrip-msg{font-size:13.5px; letter-spacing:.01em; min-width:0;}
  .ccm-saleStrip-msg b{color:#ffe9a8;}
  .ccm-saleStrip-time{
    font-size:13px; font-weight:900; color:#ffe9a8; white-space:nowrap;
    font-variant-numeric:tabular-nums;   /* digits must not jitter each second */
  }
  @media (max-width:399px){
    .ccm-saleStrip{gap:6px; padding:9px 12px;}
    .ccm-saleStrip-msg{font-size:12.5px;}
    .ccm-saleStrip-time{font-size:12px;}
  }

  /* Sale label tiers. The top bar has only 10-80px of slack, so the label
     sheds words as the screen narrows instead of pushing the profile avatar
     off the edge. Text visibility only — nothing is positioned or resized.
       wide   "Upgrade 40% discount"
       phone  "Upgrade 40%"
       narrow "40% OFF"   (shorter than the original "Upgrade", so it always fits) */
  .ccm-upg-off{display:none;}
  @media (max-width:436px){ .ccm-upg-word{display:none;} }
  @media (max-width:385px){ .ccm-upg-verb{display:none;} .ccm-upg-off{display:inline;} }
  .ccm-profile{
    width:40px;height:40px;flex:0 0 auto;
    display:grid;place-items:center;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.2);
    background:rgba(255,255,255,.05);
    color:#dfe2ee;cursor:pointer;
  }
  .ccm-profile svg{width:19px;height:19px;}

  /* ── One-piece surface ── */
  .ccm3-surface{
    position:relative;z-index:1;
    width:min(100%,470px);margin:0 auto;
    border-left:1px solid rgba(255,255,255,.08);
    border-right:1px solid rgba(255,255,255,.08);
    background:linear-gradient(180deg,rgba(10,15,23,.94),rgba(5,9,15,.97));
    box-shadow:0 28px 100px rgba(0,0,0,.58);
    overflow:hidden;
  }
  .ccm3-surface::after{
    content:"";position:absolute;left:0;right:0;top:0;height:2px;pointer-events:none;
    background:linear-gradient(90deg,transparent,rgba(45,255,155,.72),rgba(100,233,255,.62),transparent);
    box-shadow:0 0 20px rgba(45,255,155,.2);
    animation:ccm3Pulse 2.4s ease-in-out infinite;
  }

  .ccm3-section{position:relative;padding:22px 18px 24px;border-bottom:1px solid rgba(255,255,255,.10);}
  .ccm3-section.tight{padding-top:16px;padding-bottom:16px;}
  .ccm3-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px;}
  .ccm3-title h3{margin:0;font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:#f4f7ff;}
  .ccm3-title span{font-size:12px;line-height:1.45;color:#bdc6da;text-align:right;max-width:190px;overflow-wrap:anywhere;}

  /* ── Marquee model-button rail (decorative) ── */
  .ccm3-logoRail{
    position:relative;height:100px;display:flex;align-items:center;overflow:hidden;
    border-bottom:1px solid rgba(255,255,255,.10);
    background:
      linear-gradient(90deg,rgba(255,216,111,.035),rgba(255,255,255,.01),rgba(141,124,255,.035)),
      radial-gradient(circle at 50% 0%, rgba(255,255,255,.04), transparent 48%);
  }
  /* Buttons are live; freeze the marquee while a finger is on the rail so a
     moving button is easy to hit. */
  .ccm3-logoRail:active .ccm3-logoTrack{animation-play-state:paused;}
  .ccm3-logoRail::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);
  }
  .ccm3-logoTrack{display:flex;align-items:center;width:max-content;animation:ccm3Marquee 24s linear infinite;padding-left:14px;}
  .ccm3-logoBtn{
    width:156px;height:72px;flex:0 0 auto;margin-right:12px;position:relative;
    display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:10px;padding:0 14px 0 10px;
    font:inherit;text-align:left;cursor:pointer;
    transition:transform .2s cubic-bezier(.2,.8,.2,1);
    clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));
    border:1px solid rgba(255,255,255,.12);
    background:
      linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.035) 18%,rgba(255,255,255,.015) 60%,rgba(0,0,0,.18)),
      linear-gradient(145deg,rgba(16,20,28,.96),rgba(8,12,18,.98));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10),inset 0 -16px 28px rgba(0,0,0,.24),0 14px 32px rgba(0,0,0,.20);
    overflow:hidden;
  }
  .ccm3-logoBtn::before{
    content:"";position:absolute;inset:1px;clip-path:inherit;pointer-events:none;
    background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 34%,transparent 66%,rgba(0,0,0,.18));
  }
  .ccm3-edge{
    position:absolute;left:0;top:0;bottom:0;width:4px;
    background:linear-gradient(180deg,currentColor,transparent 22%,transparent 78%,currentColor);
    opacity:.9;filter:drop-shadow(0 0 8px currentColor);
  }
  .ccm3-logoIcon{
    width:40px;height:40px;position:relative;display:grid;place-items:center;
    border:1px solid rgba(255,255,255,.11);
    clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
    background:
      linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.04) 34%,rgba(0,0,0,.18)),
      radial-gradient(circle at 32% 22%,rgba(255,255,255,.16),transparent 34%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 -8px 14px rgba(0,0,0,.18);
  }
  .ccm3-logoIcon svg{width:20px;height:20px;position:relative;z-index:1;}
  .ccm3-glyph{position:relative;z-index:1;font-size:13px;font-weight:900;letter-spacing:.04em;font-style:normal;}
  .ccm3-logoInfo{position:relative;z-index:1;min-width:0;padding-right:2px;}
  .ccm3-logoInfo strong{display:block;font-size:11.5px;line-height:1.12;color:#f7faff;overflow-wrap:anywhere;}
  .ccm3-logoInfo small{display:block;margin-top:5px;font-size:8px;line-height:1.15;letter-spacing:.10em;text-transform:uppercase;color:#aeb9d4;}
  .ccm3-logoBtn.gold{color:#ffd96f;} .ccm3-logoBtn.blue{color:#8fcaff;}
  .ccm3-logoBtn.purple{color:#dc96ff;} .ccm3-logoBtn.green{color:#96ffd2;} .ccm3-logoBtn.cyan{color:#64e9ff;}
  .ccm3-logoBtn:active{transform:scale(.96);}

  /* ── Hero ── */
  .ccm3-hero{
    background:
      radial-gradient(circle at 78% 20%,rgba(255,216,111,.055),transparent 20%),
      linear-gradient(180deg,rgba(255,255,255,.018),transparent 24%);
  }
  .ccm3-kicker{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:830;letter-spacing:.16em;text-transform:uppercase;color:#dce5fb;}
  .ccm3-kicker i{width:8px;height:8px;background:radial-gradient(circle,#fff,#2dff9b 58%,transparent 72%);box-shadow:0 0 12px rgba(45,255,155,.72);}
  /* Phones stack copy above the reactor; wider mobile/tablet gets 2 columns. */
  .ccm3-heroGrid{display:grid;grid-template-columns:1fr;gap:10px;align-items:center;margin-top:10px;}
  @media (min-width:480px){.ccm3-heroGrid{grid-template-columns:1.03fr .97fr;}}
  .ccm3-heroCopy h1{margin:0;font-size:clamp(36px,11vw,58px);line-height:.94;font-weight:900;letter-spacing:-.06em;overflow-wrap:normal;word-break:normal;hyphens:none;}
  .ccm3-heroCopy h1 .grad{
    background:linear-gradient(90deg,#fff 0%,#f8ddb2 18%,#ffd86f 38%,#a5d2ff 58%,#8d7cff 78%,#d56cff 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .ccm3-heroCopy p{margin:13px 0 0;font-size:13px;line-height:1.6;color:#ccd4e7;}
  @media (min-width:480px){.ccm3-heroCopy p{max-width:228px;}}
  .ccm3-heroActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;}
  .ccm3-tagRow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
  .ccm3-tag{
    padding:8px 10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02);
    font-size:10px;font-weight:780;letter-spacing:.08em;text-transform:uppercase;color:#dce5f8;
  }

  /* Shared beveled buttons + press flash */
  .ccm3-btn,.ccm3-tool{
    position:relative;overflow:hidden;
    min-height:48px;padding:12px 16px;border:1px solid rgba(255,255,255,.09);
    background:rgba(255,255,255,.025);display:inline-flex;align-items:center;justify-content:center;
    gap:9px;font-size:13px;font-weight:850;letter-spacing:.03em;color:#f7faff;cursor:pointer;
    clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
    transition:transform .22s cubic-bezier(.2,.8,.2,1),border-color .22s ease,background .22s ease,color .22s ease;
    text-align:center;
  }
  .ccm3-btn.primary{background:linear-gradient(135deg,rgba(255,205,105,.18),rgba(141,124,255,.22) 54%,rgba(213,108,255,.18));border-color:rgba(255,216,111,.24);}
  .ccm3-tool{border-color:rgba(45,255,155,.28);background:linear-gradient(135deg,rgba(18,140,88,.44),rgba(7,55,33,.44));box-shadow:0 0 20px rgba(45,255,155,.14),inset 0 1px 0 rgba(255,255,255,.05);}
  .ccm3-btn:active,.ccm3-tool:active,.ccm3-row:active,.ccm3-node:active,.ccm3-ad:active{transform:scale(.985);}
  .is-pressed{
    color:#07130d!important;
    background:linear-gradient(135deg,#76ffc2,#28ff98)!important;
    border-color:rgba(186,255,222,.98)!important;
    box-shadow:0 0 0 1px rgba(255,255,255,.28) inset,0 0 24px rgba(45,255,155,.58)!important;
  }
  .is-pressed *{color:#07130d!important;}

  /* ── Hero reactor visual ── */
  .ccm3-heroVisual{position:relative;height:300px;display:flex;align-items:center;justify-content:center;}
  .ccm3-reactor{position:relative;width:216px;height:216px;}
  .ccm3-ringA,.ccm3-ringB,.ccm3-ringC{position:absolute;left:50%;top:50%;translate:-50% -50%;border:1px solid rgba(255,255,255,.08);}
  .ccm3-ringA{width:212px;height:84px;border-color:rgba(255,216,111,.44);animation:ccm3Spin 10s linear infinite;}
  .ccm3-ringB{width:184px;height:184px;border-style:dashed;border-color:rgba(141,124,255,.22);animation:ccm3Spin 16s linear infinite reverse;}
  .ccm3-ringC{width:240px;height:240px;border-color:rgba(255,255,255,.05);}
  .ccm3-core{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(45deg);
    width:142px;height:142px;border:1px solid rgba(255,255,255,.13);
    background:linear-gradient(180deg,rgba(18,22,31,.99),rgba(8,11,18,.97));
    box-shadow:0 0 50px rgba(255,216,111,.11),0 0 100px rgba(141,124,255,.15);
  }
  .ccm3-core::before{content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.07);}
  .ccm3-coreInner{
    position:absolute;inset:30px;display:grid;place-items:center;transform:rotate(-45deg);
    border:1px solid rgba(255,255,255,.11);overflow:hidden;
    background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.24),rgba(255,216,111,.16) 18%,rgba(119,91,255,.2) 40%,rgba(8,10,18,.97) 68%);
  }
  .ccm3-coreInner::after{
    content:"";position:absolute;left:0;right:0;top:-80%;height:48%;
    background:linear-gradient(180deg,transparent,rgba(255,255,255,.18),transparent);
    filter:blur(10px);animation:ccm3Scan 3.8s ease-in-out infinite;
  }
  .ccm3-coreInner svg{width:58px;height:58px;position:relative;z-index:1;color:#fff;}
  .ccm3-node{
    position:absolute;width:52px;height:52px;display:grid;place-items:center;cursor:pointer;
    clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px));
    border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.035);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
    animation:ccm3Float 5.8s ease-in-out infinite;
    font-size:13px;font-weight:900;
  }
  .ccm3-node.n1{left:-12px;top:22px;color:#ffd96f;animation-delay:.2s;}
  .ccm3-node.n2{right:-12px;top:8px;color:#8fcaff;animation-delay:1.2s;}
  .ccm3-node.n3{left:4px;bottom:12px;color:#dc96ff;animation-delay:1.8s;}
  .ccm3-node.n4{right:2px;bottom:16px;color:#96ffd2;animation-delay:2.4s;}

  /* ── Studio rows ── */
  .ccm3-rows{display:grid;}
  .ccm3-row{
    display:grid;grid-template-columns:58px 1fr auto;align-items:start;gap:14px;
    width:100%;padding:16px 0;border:0;border-top:1px solid rgba(255,255,255,.055);
    background:transparent;color:#f7faff;text-align:left;cursor:pointer;
    transition:transform .22s cubic-bezier(.2,.8,.2,1);
  }
  .ccm3-row:first-child{border-top:0;}
  .ccm3-rowIcon{width:58px;height:58px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);}
  .ccm3-rowIcon svg{width:26px;height:26px;}
  .ccm3-rowCopy{min-width:0;}
  .ccm3-rowCopy strong{display:block;font-size:18px;line-height:1.05;letter-spacing:-.02em;}
  .ccm3-rowCopy small{display:block;margin-top:7px;font-size:12px;line-height:1.48;color:#c7d0e4;max-width:260px;}
  .ccm3-rowMeta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
  .ccm3-meta{padding:5px 8px;border:1px solid rgba(255,255,255,.06);font-size:10px;font-weight:760;letter-spacing:.06em;text-transform:uppercase;color:#dbe3f7;}
  .ccm3-rowArrow{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.08);margin-top:8px;font-weight:800;}

  /* ── Free tools row ──
     Three across so the whole offer reads in one glance without scrolling.
     Deliberately louder than a studio row (teal border, filled tag) because
     "free" is the thing a first-time visitor is scanning for, and it was
     previously invisible on this screen. */
  .ccm3-freeGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
  .ccm3-freeCard{
    display:flex;flex-direction:column;align-items:flex-start;gap:6px;
    padding:14px 11px 12px;border:1px solid rgba(94,234,212,.32);
    background:linear-gradient(180deg,rgba(94,234,212,.08),rgba(94,234,212,.02));
    color:#f7faff;text-align:left;text-decoration:none;cursor:pointer;font:inherit;
    transition:border-color .18s ease,transform .18s cubic-bezier(.2,.8,.2,1);
  }
  .ccm3-freeCard:active{transform:scale(.97);}
  .ccm3-freeCard:focus-visible{outline:2px solid #5eead4;outline-offset:2px;}
  /* No icon — the title carries the card. It gets the extra room the glyph
     used to take, so it can sit heavier and still wrap on two lines.
     The page sets a break-anywhere rule globally, which in a 111px column
     split "background" as "backgroun / d". Titles wrap at spaces only. */
  .ccm3-freeCard strong{
    font-size:14.5px;font-weight:850;line-height:1.2;letter-spacing:-.015em;
    overflow-wrap:normal;word-break:normal;hyphens:none;
  }
  .ccm3-freeCard small{font-size:10.5px;line-height:1.4;color:#c7d0e4;}
  .ccm3-freeTag{
    margin-top:auto;padding:3px 7px;background:#5eead4;color:#062018;
    font-size:9.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;
  }
  /* Under ~350px three columns squeeze the labels to two characters a line. */
  @media (max-width:349px){
    .ccm3-freeGrid{grid-template-columns:1fr;}
    .ccm3-freeCard{flex-direction:row;align-items:center;gap:10px;padding:13px 12px;}
    .ccm3-freeCard small{display:none;}
    .ccm3-freeTag{margin-top:0;margin-left:auto;}
  }

  /* ── Video ad stage (opens Video Studio) — auto-height flow layout ── */
  .ccm3-ad{
    position:relative;display:block;width:100%;overflow:hidden;cursor:pointer;
    border:1px solid rgba(255,255,255,.055);padding:12px 14px 16px;text-align:left;color:#f7faff;
    background:linear-gradient(135deg,rgba(17,22,42,.94),rgba(8,12,26,.97));
    transition:transform .22s cubic-bezier(.2,.8,.2,1);
  }
  .ccm3-adBackdrop{
    position:absolute;inset:0;
    background:
      radial-gradient(circle at 20% 20%,rgba(84,215,255,.28),transparent 22%),
      radial-gradient(circle at 78% 72%,rgba(255,92,113,.28),transparent 20%),
      linear-gradient(115deg,transparent 0 34%,rgba(255,255,255,.04) 35%,transparent 37%,transparent 62%,rgba(255,255,255,.04) 63%,transparent 65%);
    animation:ccm3AdZoom 8.8s ease-in-out infinite;
  }
  .ccm3-adHUD{position:relative;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;z-index:2;}
  .ccm3-hudTag,.ccm3-hudLive{
    min-height:28px;padding:0 10px;border:1px solid rgba(255,255,255,.08);display:inline-flex;align-items:center;
    background:rgba(0,0,0,.24);font-size:10px;font-weight:820;letter-spacing:.15em;text-transform:uppercase;color:#f4f7ff;
  }
  .ccm3-hudLive i{width:8px;height:8px;margin-right:8px;background:radial-gradient(circle,#fff,#ff5970 58%,transparent 72%);box-shadow:0 0 10px rgba(255,92,113,.68);}
  .ccm3-adContent{position:relative;display:grid;grid-template-columns:1.04fr .96fr;gap:16px;align-items:end;margin-top:18px;z-index:2;}
  .ccm3-adText b{display:block;font-size:29px;line-height:1;font-weight:900;letter-spacing:-.035em;overflow-wrap:anywhere;}
  .ccm3-adText b .g{background:linear-gradient(90deg,#fff,#ffd86f,#8fcaff);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .ccm3-adText small{display:block;margin-top:11px;font-size:12px;line-height:1.58;color:#d7dff2;max-width:210px;overflow-wrap:anywhere;}
  .ccm3-adPreview{position:relative;display:block;height:118px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(255,255,255,.012));}
  .ccm3-adPreview::before{
    content:"";position:absolute;inset:0;opacity:.45;
    background:
      linear-gradient(transparent 94%,rgba(255,255,255,.08) 94%),
      linear-gradient(90deg,transparent 94%,rgba(255,255,255,.08) 94%);
    background-size:100% 22px,22px 100%;
  }
  .ccm3-adPreview::after{
    content:"";position:absolute;left:-46%;top:0;bottom:0;width:48%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
    animation:ccm3Sweep 3.8s linear infinite;
  }
  .ccm3-adPlay{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;
    width:52px;height:52px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);
    background:rgba(255,255,255,.14);backdrop-filter:blur(10px);
  }
  .ccm3-adPlay::before{content:"";margin-left:4px;border-left:14px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent;}
  .ccm3-adProgress{position:absolute;left:0;right:0;bottom:0;height:6px;background:rgba(255,255,255,.14);}
  .ccm3-adProgress span{position:absolute;left:0;top:0;bottom:0;width:36%;background:linear-gradient(90deg,#2dff9b,#afffda);box-shadow:0 0 16px rgba(45,255,155,.48);animation:ccm3Load 4.1s ease-in-out infinite;}

  /* ── 3D motion viewer (opens the GLB viewer) — auto-height flow layout ── */
  .ccm3-viewer{
    position:relative;overflow:hidden;perspective:1200px;padding-top:12px;
    border:1px solid rgba(255,255,255,.055);
    background:
      radial-gradient(circle at 50% 30%,rgba(255,216,111,.055),transparent 20%),
      radial-gradient(circle at 50% 62%,rgba(45,255,155,.05),transparent 24%),
      linear-gradient(180deg,rgba(17,22,34,.95),rgba(7,11,17,.99));
  }
  .ccm3-viewer::before{
    content:"";position:absolute;inset:0;opacity:.28;pointer-events:none;
    background:
      linear-gradient(transparent 95%,rgba(255,255,255,.06) 95%),
      linear-gradient(90deg,transparent 95%,rgba(255,255,255,.05) 95%);
    background-size:100% 24px,24px 100%;
  }
  .ccm3-viewerHUD{position:relative;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding:0 12px;z-index:6;}
  .ccm3-viewerStage{
    position:relative;height:258px;margin-top:4px;
    display:flex;align-items:center;justify-content:center;
    transform-style:preserve-3d;
  }
  .ccm3-scene{
    position:relative;width:230px;height:230px;transform-style:preserve-3d;
    animation:ccm3Scene 18s linear infinite;
  }
  .ccm3-platform{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotateX(90deg);
    width:226px;height:226px;border:1px solid rgba(255,255,255,.08);
    box-shadow:0 0 22px rgba(100,233,255,.12),inset 0 0 34px rgba(141,124,255,.08);
  }
  .ccm3-platform::before{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.05);}
  .ccm3-platform::after{content:"";position:absolute;inset:42px;border:1px solid rgba(45,255,155,.10);}
  .ccm3-orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(255,255,255,.14);border-radius:50%;animation:ccm3Orbit 2.8s ease-in-out infinite;}
  .ccm3-orbit.o1{width:186px;height:186px;transform:translate3d(-50%,-50%,0) rotateX(70deg);}
  .ccm3-orbit.o2{width:156px;height:156px;transform:translate3d(-50%,-50%,0) rotateY(70deg);animation-delay:.7s;}
  .ccm3-orbit.o3{width:202px;height:88px;transform:translate3d(-50%,-50%,34px) rotateZ(24deg);animation-delay:1.2s;}
  .ccm3-cube{
    position:absolute;left:50%;top:50%;width:100px;height:100px;transform-style:preserve-3d;
    transform:translate3d(-50%,-50%,54px);animation:ccm3Float2 3.8s ease-in-out infinite;
  }
  .ccm3-cube i{
    position:absolute;inset:0;border:2px solid rgba(183,196,255,.96);
    background:rgba(141,124,255,.08);box-shadow:inset 0 0 34px rgba(100,233,255,.08);
  }
  .ccm3-cube .f1{transform:translateZ(50px);} .ccm3-cube .f2{transform:rotateY(180deg) translateZ(50px);}
  .ccm3-cube .f3{transform:rotateY(90deg) translateZ(50px);} .ccm3-cube .f4{transform:rotateY(-90deg) translateZ(50px);}
  .ccm3-cube .f5{transform:rotateX(90deg) translateZ(50px);} .ccm3-cube .f6{transform:rotateX(-90deg) translateZ(50px);}
  .ccm3-sat{
    position:absolute;width:42px;height:42px;display:grid;place-items:center;z-index:5;
    clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
    border:1px solid rgba(255,255,255,.11);background:linear-gradient(145deg,rgba(255,255,255,.1),rgba(255,255,255,.02));
    box-shadow:0 0 20px rgba(100,233,255,.12);
    animation:ccm3Float 4.6s ease-in-out infinite;
  }
  .ccm3-sat svg{width:18px;height:18px;}
  .ccm3-sat.s1{left:34px;top:64px;color:#ffd96f;}
  .ccm3-sat.s2{right:32px;top:92px;color:#64e9ff;animation-delay:1.1s;}
  .ccm3-sat.s3{left:64px;bottom:64px;color:#d56cff;animation-delay:1.8s;}
  .ccm3-sat.s4{right:52px;bottom:78px;color:#2dff9b;animation-delay:2.4s;}
  .ccm3-particle{
    position:absolute;width:10px;height:10px;border-radius:50%;z-index:5;
    background:radial-gradient(circle,#fff,#64e9ff 58%,transparent 72%);box-shadow:0 0 14px rgba(100,233,255,.72);
  }
  .ccm3-particle.p1{left:12%;top:26%;}
  .ccm3-particle.p2{right:16%;top:16%;background:radial-gradient(circle,#fff,#ffd96f 58%,transparent 72%);box-shadow:0 0 14px rgba(255,216,111,.7);}
  .ccm3-particle.p3{left:18%;bottom:16%;background:radial-gradient(circle,#fff,#d56cff 58%,transparent 72%);box-shadow:0 0 14px rgba(213,108,255,.66);}
  .ccm3-particle.p4{right:12%;bottom:22%;}
  .ccm3-viewerText{
    position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;
    padding:15px 16px 17px;border-top:1px solid rgba(255,255,255,.055);
    background:linear-gradient(180deg,rgba(4,8,14,.26),rgba(4,8,14,.7));z-index:6;
  }
  .ccm3-viewerText strong{display:block;font-size:16px;line-height:1.25;letter-spacing:-.02em;overflow-wrap:anywhere;}
  .ccm3-viewerText small{display:block;margin-top:6px;color:#c7d0e4;font-size:11px;line-height:1.48;max-width:245px;overflow-wrap:anywhere;}

  /* ── Model battles: swipeable compare-poster row ──
     Lives at the TOP of the surface (replaced the decorative marquee rail),
     so it keeps the rail's separator line under it. */
  .ccm3-battlesTop{padding-top:14px;border-bottom:1px solid rgba(255,255,255,.10);padding-bottom:16px;}
  /* Marquee moved to the bottom in the swap with the battle posters */
  .ccm3-logoRailBottom{border-bottom:0;border-top:1px solid rgba(255,255,255,.10);margin-top:6px;}

  .ccm3-battlesHead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 10px;}
  .ccm3-battlesHead b{font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#f4f7ff;}
  .ccm3-battlesHead small{font-size:10px;letter-spacing:.06em;color:#8f9ab5;text-align:right;}
  .ccm3-battles{
    display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
    padding:2px 2px 6px;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .ccm3-battles::-webkit-scrollbar{display:none;}
  /* Rolling variant: the posters loop like the old marquee rail (the track
     holds two copies of the set; -50% = one full set). A finger on the rail
     pauses it so the moving links are easy to tap. */
  .ccm3-battlesRoll{overflow:hidden;scroll-snap-type:none;}
  .ccm3-battleTrack{display:flex;gap:12px;width:max-content;animation:ccm3Marquee 34s linear infinite;}
  .ccm3-battlesRoll:active .ccm3-battleTrack{animation-play-state:paused;}
  .ccm3-battle{
    flex:0 0 76%;scroll-snap-align:center;display:block;overflow:hidden;
    border:1px solid rgba(255,255,255,.12);
    clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));
    background:linear-gradient(160deg,rgba(17,22,42,.94),rgba(8,12,26,.97));
  }
  .ccm3-battleTrack .ccm3-battle{flex:0 0 min(74vw,330px);}
  .ccm3-battle img{width:100%;height:auto;display:block;-webkit-user-drag:none;}
  /* Promo banner (e.g. Mina Academy) is a full-width landscape hero ABOVE the
     swipe row — not squeezed in beside the tall portrait comparison cards, so
     it shows whole, uncropped, with no empty black gap next to it. */
  .ccm3-promoBanner{
    display:block;width:100%;margin:0 0 14px;overflow:hidden;
    border:1px solid rgba(255,255,255,.12);
    clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px));
    background:linear-gradient(160deg,rgba(17,22,42,.94),rgba(8,12,26,.97));
  }
  .ccm3-promoBanner img{width:100%;height:auto;display:block;-webkit-user-drag:none;}

  /* ── Stats ── */
  .ccm3-stats{display:grid;grid-template-columns:repeat(4,1fr);}
  .ccm3-stat{text-align:center;padding:0 8px;}
  .ccm3-stat + .ccm3-stat{border-left:1px solid rgba(255,255,255,.055);}
  .ccm3-stat b{display:block;font-size:22px;margin-bottom:4px;}
  .ccm3-stat b.gold{color:#ffd96f;}
  .ccm3-stat span{display:block;font-size:11px;line-height:1.26;color:#bcc5db;}

  /* ── CTA + page links + footer ── */
  .ccm3-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;}
  .ccm3-ctaCopy strong{display:block;font-size:16px;}
  .ccm3-ctaCopy small{display:block;margin-top:4px;font-size:11px;line-height:1.35;color:#bcc5dc;max-width:210px;}
  .ccm3-links{display:flex;gap:10px;}
  .ccm3-links .ccm3-btn{flex:1;}
  .ccm-footer{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:18px 0 6px;}
  .ccm-domain{
    display:inline-flex;align-items:center;gap:7px;
    padding:9px 22px;border-radius:999px;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(16,16,38,.8);
    color:#c9cde0;font-size:12px;font-weight:700;
  }
  .ccm-domain svg{width:12px;height:12px;}
  .ccm3-copyright{font-size:11px;color:#8a90a8;font-weight:600;}

  /* Reduced motion: kill every decorative animation. */
  @media (prefers-reduced-motion:reduce){
    #homeCcMobile *,#homeCcMobile *::before,#homeCcMobile *::after{animation:none!important;transition:none!important;}
  }
}

/* Small phones: single-column hero and ad, block section titles. */
@media (max-width:395px){
  .ccm3-logoRail{height:94px;}
  .ccm3-logoBtn{width:146px;height:68px;margin-right:10px;padding:0 12px 0 9px;grid-template-columns:38px minmax(0,1fr);gap:9px;}
  .ccm3-logoIcon{width:38px;height:38px;}
  .ccm3-logoInfo strong{font-size:11px;}
  .ccm3-logoInfo small{font-size:7.5px;letter-spacing:.09em;}
  .ccm3-heroGrid,.ccm3-adContent{grid-template-columns:1fr;}
  .ccm3-heroCopy p{max-width:none;}
  .ccm3-heroVisual{height:262px;}
  .ccm3-reactor{transform:scale(.9);}
  .ccm3-title{display:block;margin-bottom:16px;}
  .ccm3-title h3{line-height:1.3;}
  .ccm3-title span{display:block;max-width:none;text-align:left;margin-top:8px;}
  .ccm3-ad{padding:12px 12px 14px;}
  .ccm3-adContent{margin-top:16px;gap:14px;}
  .ccm3-adText b{font-size:27px;line-height:1.02;}
  .ccm3-adText small{max-width:none;}
  .ccm3-adPreview{height:150px;}
  .ccm3-viewerStage{height:272px;}
  .ccm3-viewerText{flex-direction:column;align-items:stretch;padding:15px 14px 16px;}
  .ccm3-viewerText small{max-width:none;}
  .ccm3-viewerText .ccm3-btn{width:100%;}
  .ccm3-stats{grid-template-columns:repeat(2,1fr);gap:16px 0;}
  .ccm3-stat:nth-child(3){border-left:0;}
  .ccm3-cta{flex-direction:column;align-items:stretch;text-align:center;}
  .ccm3-ctaCopy small{max-width:none;}
}
/* Very small phones. */
@media (max-width:350px){
  .ccm3-hudTag,.ccm3-hudLive{font-size:8px;letter-spacing:.10em;padding:0 8px;}
  .ccm3-adText b{font-size:24px;}
  .ccm3-viewerStage{height:250px;}
  .ccm3-scene{transform:scale(.9);}
}
