:root{
  --bg:#f6f9ff;
  --panel:#ffffff;
  --panel2:#f3f8ff;
  --text:#0f172a;
  --muted:#64748b;
  --border:rgba(15,23,42,.10);
  --brand:#1677ff;
  --brand2:#46a3ff;
  --danger:#e11d48;
  --ok:#16a34a;
  --shadow: 0 10px 30px rgba(15,23,42,.10);
  --shadow2: 0 8px 22px rgba(15,23,42,.08);
  --radius: 14px;
  --radius-sm: 10px;
  --fs-12:12px;
  --fs-13:13px;
  --fs-14:14px;
  --fs-16:16px;
  --fs-18:18px;
  --fs-24:24px;
  --lh:1.55;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "PingFang SC","Microsoft YaHei", sans-serif;
  background:
    radial-gradient(1000px 520px at 20% 6%, rgba(22,119,255,.18), transparent 60%),
    radial-gradient(900px 520px at 92% 14%, rgba(70,163,255,.14), transparent 62%),
    radial-gradient(900px 600px at 50% 110%, rgba(22,119,255,.10), transparent 60%),
    var(--bg);
  color:var(--text);
  font-size: var(--fs-14);
  line-height: var(--lh);
}
.app{height:100%;display:flex;flex-direction:column}
.topbar{
  height:56px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 16px;
  border-bottom:1px solid var(--border);
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(14px);
}
.brand{font-weight:800;letter-spacing:.2px}
.hint{color:var(--muted);font-size:var(--fs-12);line-height:1.6}
.authSplit{
  width:min(1100px, 96vw);
  margin: 0 auto;
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap:16px;
  align-items:stretch;
}
.authLeft{
  border:1px solid var(--border);
  border-radius:18px;
  overflow:hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.75));
  position:relative;
  padding:22px;
  min-height: 520px;
  box-shadow: var(--shadow2);
}
.authLeft::before{
  content:"";
  position:absolute;
  inset:-60% -40%;
  background:
    radial-gradient(640px 360px at 22% 18%, rgba(22,119,255,.22), transparent 62%),
    radial-gradient(640px 360px at 70% 30%, rgba(236,72,153,.15), transparent 62%),
    radial-gradient(680px 420px at 40% 86%, rgba(85,214,160,.14), transparent 60%);
  pointer-events:none;
}
.authLeft__inner{position:relative}
.authTitle{font-weight:900;font-size:var(--fs-24);letter-spacing:.2px}
.authSub{margin-top:10px;line-height:1.75;color:var(--muted);max-width:520px}
.authPoints{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.authPoint{
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px;
  background: rgba(255,255,255,.72);
}
.authPoint__t{font-weight:800}
.authPoint__d{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.6}
.authRight{
  border:1px solid var(--border);
  border-radius:18px;
  overflow:hidden;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(14px);
  padding:18px;
  box-shadow: var(--shadow);
}
.authRight__title{font-weight:900;font-size:var(--fs-18);letter-spacing:.2px}
.authRight__meta{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.6}
@media (max-width: 920px){
  .authSplit{grid-template-columns:1fr; gap:12px}
  .authLeft{min-height:auto}
}
.captcha{
  width:120px;
  height:40px;
  border-radius:10px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.9);
}
.projectList{display:flex;flex-direction:column;gap:8px}
.projectItem{
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
}
.projectItem__top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.projectItem__name{font-weight:850;letter-spacing:.1px}
.projectItem__meta{font-size:var(--fs-12);color:var(--muted);margin-top:6px;line-height:1.6}
.projectItem__actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.badge{
  display:inline-flex;
  align-items:center;
  padding:2px 8px;
  border-radius:999px;
  border:1px solid var(--border);
  background: rgba(22,119,255,.08);
  color: #0b3a82;
  font-size:var(--fs-12);
}

/* Modal */
.modalMask{
  position:fixed;
  inset:0;
  background: rgba(15,23,42,.42);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index:9999;
}
.modal{
  width:min(860px, 96vw);
  max-height:min(78vh, 820px);
  display:flex;
  flex-direction:column;
  border-radius:18px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(16px);
  overflow:hidden;
  box-shadow: var(--shadow);
}
.modal__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 12px 10px 14px;
  border-bottom:1px solid var(--border);
}
.modal__title{font-weight:900;letter-spacing:.2px}
.modal__body{padding:12px; overflow:auto}
.modal__right{display:flex;gap:10px;align-items:center}
.groupTitle{
  margin:10px 0 6px;
  color:#0f2a5a;
  font-weight:750;
  font-size:12px;
  letter-spacing:.2px;
}
.noteInput{
  width:100%;
  height:34px;
  border-radius:10px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.9);
  color: var(--text);
  padding:6px 10px;
  outline:none;
}
.noteInput:focus{border-color:rgba(22,119,255,.55);box-shadow:0 0 0 3px rgba(22,119,255,.16)}

/* Home dashboard */
.home{
  flex:1;
  display:flex;
  min-height:0;
}
.home__left{
  width:300px;
  min-width:300px;
  border-right:1px solid var(--border);
  padding:14px;
  background: rgba(255,255,255,.72);
}
.home__main{
  flex:1;
  min-width:0;
  padding:18px;
  overflow:auto;
}
.cards{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap:14px;
}
.assetsGrid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:10px;
}
/* When groupTitle is inside grid, make it full-width */
.assetsGrid .groupTitle{
  grid-column: 1 / -1;
  margin-top: 8px;
}
.assetTile{
  border:1px solid var(--border);
  border-radius:14px;
  overflow:hidden;
  background: rgba(255,255,255,.92);
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
}
.assetTile__thumb{
  width:100%;
  height:92px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: linear-gradient(135deg, rgba(22,119,255,.08), rgba(70,163,255,.05));
}
.assetTile__thumbImg{
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
}
.assetTile__body{padding:10px}
.assetTile__title{font-weight:850;font-size:var(--fs-12);line-height:1.35;max-height:2.7em;overflow:hidden;letter-spacing:.1px}
.assetTile__meta{margin-top:6px;font-size:var(--fs-12);color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap;line-height:1.5}
.assetTile__actions{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.card{
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  background: rgba(255,255,255,.92);
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.card:hover{
  transform: translateY(-2px);
  border-color: rgba(22,119,255,.28);
  background: rgba(255,255,255,.98);
}
.card__thumb{
  width:100%;
  height:132px;
  object-fit:cover;
  display:block;
  background: rgba(255,255,255,.04);
}
.card__thumb--empty{
  background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
}
.card__body{padding:12px 12px 10px}
.card__title{font-weight:900;margin-bottom:6px;letter-spacing:.1px}
.card__meta{font-size:var(--fs-12);color:var(--muted);margin-bottom:10px;line-height:1.6}
.card__actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* Dense actions in cards/lists */
.projectItem .btn--tiny,
.assetTile .btn--tiny,
.card .btn--tiny{
  height:28px;
  padding:0 10px;
}
.assetPreviewWrap{
  position:relative;
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  background: rgba(255,255,255,.92);
  display:flex;
  align-items:center;
  justify-content:center;
}
.assetPreviewImg{
  max-height:70vh;
  max-width:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
  background: rgba(255,255,255,.04);
}
.assetWatermark{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity: var(--wmOpacity, .28);
  transform: rotate(calc(var(--wmAngle, -18) * 1deg));
  display:block;
  overflow:hidden;
  font-weight:900;
  letter-spacing:1.2px;
  font-size: calc(var(--wmFontSize, 28) * 1px);
  color: rgba(255,255,255,.9);
  text-shadow: 0 2px 10px rgba(0,0,0,.35);
}
.assetWatermarkGrid{
  position:absolute;
  inset:-60% -60%;
  display:grid;
  gap: calc(var(--wmGap, 28) * 1px);
  justify-content:start;
  align-content:start;
  padding: calc(var(--wmGap, 28) * 1px);
}
.assetWatermarkCell{
  white-space:pre-line;
  line-height:1.25;
  user-select:none;
}
.assetWatermark::before{
  content:"";
  position:absolute;
  inset:-40%;
  background:
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,.18) 0px,
      rgba(255,255,255,.18) 1px,
      rgba(255,255,255,0) 1px,
      rgba(255,255,255,0) calc(var(--wmGap, 28) * 1px)
    );
  opacity:.35;
}
.assetWatermark > *{position:relative}
.authCard{position:relative; overflow:hidden}
.authHero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.authHero__title{font-size:20px;font-weight:900;letter-spacing:.4px}
.authHero__sub{font-size:12px;color:var(--muted);margin-top:4px}
.authTabs{display:flex;gap:8px}
.authCard{padding:16px}
.authHero{margin-bottom:14px}
.authHero__title{font-size:24px}
.authHero__sub{font-size:13px; line-height:1.5}
.main{flex:1;display:flex;min-height:0}
.sidebar{
  width:360px;
  min-width:360px;
  padding:12px;
  overflow:auto;
  border-right:1px solid var(--border);
  background: rgba(255,255,255,.66);
}
.sidebarTabs{
  position: sticky;
  top: 0;
  z-index: 5;
  display:flex;
  gap:8px;
  padding:8px 0 12px;
  background: linear-gradient(180deg, rgba(246,249,255,.96), rgba(246,249,255,0));
  backdrop-filter: blur(10px);
}
.sidebarTab{
  width:38px;
  height:34px;
  border-radius: var(--radius-sm);
  border:1px solid var(--border);
  background: rgba(255,255,255,.9);
  color:#0f2a5a;
  font-weight:900;
  cursor:pointer;
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
}
.sidebarTab:hover{background: rgba(22,119,255,.06)}
.sidebarTab--active{
  border-color: rgba(22,119,255,.35);
  background: rgba(22,119,255,.10);
  color:#0b3a82;
}
.panel--tabHidden{display:none !important}
.sidebar--right{
  width:320px;
  min-width:320px;
  border-right:0;
  border-left:1px solid var(--border);
}
.panel{
  background: rgba(255,255,255,.92);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:12px;
  margin-bottom:12px;
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
}
.panel__title{font-weight:900;margin-bottom:10px;color:#0f2a5a;font-size:var(--fs-16);letter-spacing:.15px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}
.label{color:var(--muted);font-size:12px}
.input{
  flex:1;
  min-width:0;
  height:36px;
  padding:6px 10px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  background: rgba(255,255,255,.92);
  color:var(--text);
  outline:none;
}
.input:focus{border-color:rgba(22,119,255,.55);box-shadow:0 0 0 3px rgba(22,119,255,.16)}
.input--color{
  width:64px;
  height:40px;
  flex:0;
  padding:0;
  border-radius:12px;
}
.colorPick{
  display:flex;
  align-items:center;
  gap:10px;
  padding:6px 10px;
  border:1px solid var(--border);
  border-radius:12px;
  background: rgba(255,255,255,.92);
  cursor:pointer;
  user-select:none;
}
.colorPick:hover{background: rgba(22,119,255,.06)}
.colorPick__label{
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
}
.colorPick input[type="color"]{
  cursor:pointer;
  border:0;
}
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.swatch{
  width:28px;height:28px;border-radius:10px;
  border:1px solid rgba(15,23,42,.10);
  cursor:pointer;
  box-shadow: inset 0 0 0 2px rgba(15,23,42,.06);
}
.swatch:hover{transform: translateY(-1px)}
.btn{
  height:36px;
  padding:0 10px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  background: linear-gradient(180deg, rgba(22,119,255,.96), rgba(22,119,255,.86));
  color:#ffffff;
  cursor:pointer;
  font-weight:600;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow: 0 6px 16px rgba(22,119,255,.18);
}
.btn:hover{filter: brightness(1.03)}
.btn--secondary{
  background: rgba(22,119,255,.08);
  color:#0b3a82;
  box-shadow:none;
}
.btn--secondary:hover{background: rgba(22,119,255,.12)}
.btn--danger{
  background: rgba(225,29,72,.10);
  color:#9f1239;
  border-color: rgba(225,29,72,.25);
  box-shadow:none;
}
.btn--danger:hover{background: rgba(225,29,72,.14)}
.btn--tiny{height:30px;border-radius:9px;font-weight:600;font-size:12px;padding:0 10px}
.canvasWrap{flex:1;min-width:0;display:flex;flex-direction:column}
.canvasToolbar{
  height:46px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 12px;
  border-bottom:1px solid var(--border);
  background: rgba(255,255,255,.72);
}
.canvasStage{
  flex:1;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px;
  overflow:hidden; /* no native scroll, use canvas pan/zoom */
}
/* Fabric.js 会生成两个 canvas：
   - lower-canvas：真正绘制内容
   - upper-canvas：交互层（必须透明，否则会“盖白”看不到底图/文字）
*/
canvas{
  border-radius:14px;
  border:1px solid rgba(15,23,42,.10);
  box-shadow: 0 18px 46px rgba(15,23,42,.14);
}
canvas.lower-canvas{ background:#fff; }
canvas.upper-canvas{ background: transparent !important; }
.status{color:var(--muted);font-size:12px}
.result{
  font-size:12px;
  color:var(--muted);
  line-height:1.5;
  word-break:break-all;
}
.result a{color:var(--brand)}
.isHidden{display:none !important}

/* Layers */
.layersList{display:flex;flex-direction:column;gap:8px}
.layerRow{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background: rgba(255,255,255,.92);
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
}
.layerRow--active{border-color: rgba(22,119,255,.35); background: rgba(22,119,255,.06)}
.layerThumb{
  width:34px;
  height:34px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  background: rgba(22,119,255,.06);
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 34px;
  min-width:34px;
  min-height:34px;
  font-size:12px;
  color: var(--muted);
}
.layerThumb img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:cover;display:block}
.layerBtn{
  width:30px;height:30px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  background: rgba(22,119,255,.06);
  color: var(--text);
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;
}
.layerBtn:hover{background: rgba(22,119,255,.10)}
.layerName{
  flex:1;
  height:30px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  background: rgba(255,255,255,.92);
  color: var(--text);
  padding:0 10px;
  outline:none;
}

/* Admin tables (business density) */
.adminTableWrap{overflow:auto}
.adminTable{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  font-size: var(--fs-12);
}
.adminTable th,
.adminTable td{
  padding:10px 10px;
  border-bottom:1px solid rgba(15,23,42,.08);
  text-align:left;
  vertical-align:top;
  white-space:nowrap;
}
.adminTable thead th{
  position:sticky;
  top:0;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  font-weight:800;
  color:#0f2a5a;
  z-index:1;
}
.adminTable tbody tr:nth-child(2n){
  background: rgba(22,119,255,.03);
}
.adminTable tbody tr:hover{
  background: rgba(22,119,255,.06);
}
.adminTable .adminTable__cell--wrap{
  white-space:normal;
  min-width:220px;
  line-height:1.5;
}

/* VIP page (enterprise landing) */
.vipWrap{flex:1;min-height:0;overflow:auto;padding:28px 18px}
.vipContainer{max-width:1200px;margin:0 auto}
.vipHero{
  position:relative;
  border:1px solid var(--border);
  border-radius: calc(var(--radius) + 6px);
  overflow:hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.78));
  box-shadow: var(--shadow);
}
.vipHero::before{
  content:"";
  position:absolute;
  inset:-60% -40%;
  background:
    radial-gradient(900px 420px at 18% 18%, rgba(22,119,255,.22), transparent 62%),
    radial-gradient(780px 380px at 76% 20%, rgba(70,163,255,.16), transparent 62%),
    radial-gradient(860px 520px at 50% 88%, rgba(22,119,255,.10), transparent 62%);
  pointer-events:none;
}
.vipHero__inner{position:relative;display:grid;grid-template-columns:1.35fr .65fr;gap:18px;padding:26px}
.vipHero__kicker{
  display:inline-flex;align-items:center;gap:10px;
  font-size:var(--fs-12);color:#0b3a82;
  background: rgba(22,119,255,.08);
  border:1px solid rgba(22,119,255,.18);
  border-radius:999px;
  padding:6px 10px;
  width:max-content;
}
.vipHero__title{margin-top:12px;font-size:44px;line-height:1.1;font-weight:950;letter-spacing:.1px}
.vipHero__desc{margin-top:12px;max-width:720px;color:var(--muted);font-size:var(--fs-14);line-height:1.75}
.vipHero__cta{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.vipPills{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}
.vipPill{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:999px;
  border:1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.84);
  font-size:var(--fs-12);color:#0f2a5a;
}
.vipStatusCard{
  border:1px solid rgba(15,23,42,.10);
  border-radius: var(--radius);
  background: rgba(255,255,255,.90);
  box-shadow: 0 8px 22px rgba(15,23,42,.08);
  padding:14px;
}
.vipStatusTop{display:flex;align-items:center;justify-content:space-between;gap:10px}
.vipStatusTitle{font-weight:900;color:#0f2a5a;letter-spacing:.15px}
.vipStatusGrid{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vipKV{border:1px solid rgba(15,23,42,.08);border-radius:12px;background:rgba(22,119,255,.03);padding:10px}
.vipKV__k{font-size:var(--fs-12);color:var(--muted)}
.vipKV__v{margin-top:6px;font-weight:900;color:#0f2a5a}
.vipNote{margin-top:10px;color:var(--muted);font-size:var(--fs-12);line-height:1.6}

.vipSection{margin-top:16px}
.vipSection__title{font-size:var(--fs-18);font-weight:950;color:#0f2a5a;letter-spacing:.15px;margin:0 0 10px}

.vipPricing{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.vipPlan{
  border:1px solid rgba(15,23,42,.10);
  border-radius: calc(var(--radius) + 2px);
  background: rgba(255,255,255,.92);
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
  padding:16px;
  position:relative;
}
.vipPlan--hot{
  border-color: rgba(22,119,255,.28);
  box-shadow: 0 14px 34px rgba(22,119,255,.14);
}
.vipPlan__badge{
  position:absolute;top:12px;right:12px;
  font-size:var(--fs-12);
  padding:6px 10px;border-radius:999px;
  background: rgba(22,119,255,.10);
  border:1px solid rgba(22,119,255,.22);
  color:#0b3a82;font-weight:900;
}
.vipPlan__name{font-weight:950;font-size:18px;color:#0f2a5a}
.vipPlan__price{margin-top:10px;font-size:30px;font-weight:950;color:#0f172a;letter-spacing:.1px}
.vipPlan__price span{font-size:var(--fs-12);font-weight:700;color:var(--muted)}
.vipPlan__list{margin-top:10px;color:var(--muted);font-size:var(--fs-12);line-height:1.75}
.vipPlan__list div{margin:6px 0}
.vipPlan__actions{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}

.vipGrid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.vipFeature{
  border:1px solid rgba(15,23,42,.10);
  border-radius: var(--radius);
  background: rgba(255,255,255,.92);
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
  padding:14px;
}
.vipFeature__t{font-weight:950;color:#0f2a5a}
.vipFeature__d{margin-top:8px;color:var(--muted);font-size:var(--fs-12);line-height:1.7}

.vipFaq{display:grid;grid-template-columns:1fr;gap:10px}
.vipFaqItem{
  border:1px solid rgba(15,23,42,.10);
  border-radius: var(--radius);
  background: rgba(255,255,255,.92);
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
  padding:14px;
}
.vipFaqQ{font-weight:950;color:#0f2a5a}
.vipFaqA{margin-top:8px;color:var(--muted);font-size:var(--fs-12);line-height:1.7}

@media (max-width: 980px){
  .vipHero__inner{grid-template-columns:1fr}
  .vipHero__title{font-size:36px}
  .vipPricing{grid-template-columns:1fr}
  .vipGrid3{grid-template-columns:1fr}
}
.layerName:focus{border-color:rgba(22,119,255,.55);box-shadow:0 0 0 3px rgba(22,119,255,.16)}
.layerDrag{cursor:grab}
.layerDrag:active{cursor:grabbing}
