/* Physics Virtual Lab — page-specific styles only.
   Main Rython header/footer continue to use /css/style.css, responsive.css and footer.css. */
.pl-page{font-family:Inter,sans-serif;color:#081b4b;background:#fff}
.pl-page *{box-sizing:border-box}
.pl-container{width:min(1280px,calc(100% - 64px));margin:auto}
.pl-hero{padding:26px 0 0;background:radial-gradient(circle at 18% 25%,rgba(37,99,235,.09),transparent 30%),linear-gradient(120deg,#fbfdff,#f4f8ff)}
.pl-breadcrumb{font-size:13px;color:#64748b;margin-bottom:42px}.pl-breadcrumb span{margin:0 10px;color:#94a3b8}
.pl-hero-grid{display:grid;grid-template-columns:1.03fr .97fr;min-height:350px}
.pl-copy{padding:0 0 46px}.pl-back{display:inline-block;margin-bottom:22px;color:#2563eb;font-size:14px;font-weight:700}
.pl-copy h1{margin:0;font-size:clamp(44px,5vw,66px);line-height:1;letter-spacing:-3px;font-weight:800}.pl-copy h1 span{background:linear-gradient(90deg,#2563eb,#7047f5);-webkit-background-clip:text;color:transparent}
.pl-copy h2{margin:13px 0 13px;font-size:19px;color:#52617c}.pl-copy>p{max-width:620px;margin:0;color:#52617c;font-size:15px;line-height:1.75}
.pl-benefits{display:flex;gap:38px;margin-top:24px}.pl-benefits>div{display:flex;align-items:center;gap:11px;font-size:12px;line-height:1.4}.pl-benefits b{display:grid;place-items:center;width:45px;height:45px;border-radius:12px;background:#eaf2ff;color:#2563eb;font-size:20px}
.pl-hero-art{position:relative;overflow:hidden;min-height:330px;background:radial-gradient(circle at 65% 50%,rgba(37,99,235,.11),transparent 52%)}
.pl-formula{position:absolute;color:#8eb0f7;font-weight:700;opacity:.6}.f1{left:37%;top:27%;font-size:18px}.f2{right:9%;top:19%;font-size:19px}.f3{left:17%;bottom:18%;font-size:17px}.pl-atom{position:absolute;left:10%;top:14%;font-size:56px;color:#a8c3ff}
.pl-pendulum{position:absolute;left:36%;bottom:34px;width:180px;height:140px;border-top:5px solid #a9c1ec}.pl-pendulum:before,.pl-pendulum:after{content:"";position:absolute;top:0;width:2px;height:95px;background:#9fb8e7}.pl-pendulum:before{left:52px}.pl-pendulum:after{right:52px}.pl-pendulum i{position:absolute;bottom:24px;width:24px;height:24px;border-radius:50%;background:#a7c1ee;box-shadow:0 3px 6px #7995c6}.pl-pendulum i:first-child{left:40px}.pl-pendulum i:nth-child(2){right:40px}.pl-pendulum span{position:absolute;left:25px;right:25px;bottom:12px;height:10px;border-radius:10px;background:#6f91d3}
.pl-balance{position:absolute;right:7%;bottom:38px;width:220px;height:210px}.pl-balance:before{content:"";position:absolute;left:105px;top:20px;width:10px;height:155px;background:#7597d8;border-radius:8px}.pl-balance span{position:absolute;left:25px;top:57px;width:170px;height:6px;background:#7192d0;transform:rotate(-5deg)}.pl-balance i,.pl-balance b{position:absolute;top:62px;width:75px;height:70px;border-bottom:7px solid #8ba8df;border-radius:0 0 50% 50%}.pl-balance i{left:0}.pl-balance b{right:0}.pl-balance:after{content:"";position:absolute;left:66px;bottom:10px;width:90px;height:14px;border-radius:50% 50% 4px 4px;background:#6e90d2}
.pl-library{padding:0 0 90px;background:#fff}.pl-library .pl-container{position:relative;margin-top:-1px;padding:28px;border:1px solid #e7eef9;border-radius:20px;background:#fff;box-shadow:0 18px 55px rgba(8,27,75,.07)}
.pl-toolbar{display:flex;gap:18px;align-items:center;padding-bottom:23px;border-bottom:1px solid #e7eef9}.pl-search{height:46px;min-width:255px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid #cfdcf0;border-radius:9px}.pl-search input{width:100%;border:0;outline:0;font:500 13px Inter;color:#334155}.pl-filters{display:flex;gap:10px;flex-wrap:wrap}.pl-filters button{height:44px;padding:0 17px;border:1px solid #dbe5f2;border-radius:9px;background:#fff;color:#253653;font:700 12px Inter;cursor:pointer}.pl-filters button.active,.pl-filters button:hover{background:#2563eb;border-color:#2563eb;color:#fff}
.pl-section-head{display:flex;justify-content:space-between;align-items:center;margin:25px 0 22px}.pl-section-head h2{margin:0;font-size:23px}.pl-line{display:block;width:34px;height:3px;margin-top:9px;background:#2563eb;border-radius:3px}
.pl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.pl-card{overflow:hidden;border:1px solid #e1e8f2;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(8,27,75,.06);transition:.25s}.pl-card:hover{transform:translateY(-4px);box-shadow:0 15px 32px rgba(8,27,75,.1)}
.pl-thumb,.pl-placeholder{height:210px;position:relative;overflow:hidden;background:#eef5ff}.pl-refraction{background:linear-gradient(#f2f7ff 0 50%,#cfe4f7 50%)}.pl-interface{position:absolute;left:0;right:0;top:50%;height:2px;background:#7591b2}.pl-normal{position:absolute;left:50%;top:20px;bottom:20px;border-left:1px dashed #617c9c}.pl-ray{position:absolute;height:3px;background:#243d64;transform-origin:right center}.pl-ray.incident{width:145px;left:calc(50% - 145px);top:67px;transform:rotate(37deg)}.pl-ray.refracted{width:125px;left:50%;top:50%;transform-origin:left center;transform:rotate(51deg);background:#2563eb}.pl-refraction .air,.pl-refraction .water{position:absolute;left:20px;font-size:12px;font-weight:700}.pl-refraction .air{top:34px}.pl-refraction .water{bottom:35px}.pl-thumb-note{position:absolute;right:12px;top:12px;padding:5px 8px;border-radius:6px;background:#fff;color:#64748b;font-size:9px}
.pl-card-body{padding:18px}.pl-tag{display:inline-block;padding:5px 8px;border-radius:7px;background:#edf4ff;color:#2563eb;font-size:10px;font-weight:800}.pl-card h3{margin:10px 0 7px;font-size:18px}.pl-card p{min-height:48px;margin:0 0 17px;color:#52617c;font-size:13px;line-height:1.55}.pl-card a{color:#2563eb;font-size:13px;font-weight:800}.pl-card a span{margin-left:8px;font-size:18px}
.pl-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#f7faff,#edf4ff);color:#6f83a4}.pl-placeholder span{font-size:35px}.pl-placeholder small{font-size:11px}.pl-coming{opacity:.82}.pl-soon{color:#8290a8;font-size:12px;font-weight:700}
.pl-empty{display:none;padding:50px;text-align:center;color:#64748b}.pl-suggest{display:flex;align-items:center;gap:20px;margin-top:28px;padding:22px 26px;border-radius:15px;background:linear-gradient(90deg,#f1f7ff,#f8fbff)}.pl-suggest-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#dceaff;color:#2563eb;font-size:26px}.pl-suggest h3{margin:0 0 5px;font-size:17px}.pl-suggest p{margin:0;color:#64748b;font-size:13px}
@media(max-width:1000px){.pl-container{width:min(100% - 36px,1280px)}.pl-hero-grid{grid-template-columns:1fr}.pl-hero-art{display:none}.pl-toolbar{align-items:stretch;flex-direction:column}.pl-search{width:100%}.pl-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.pl-container{width:calc(100% - 24px)}.pl-hero{padding-top:18px}.pl-breadcrumb{margin-bottom:28px}.pl-copy h1{font-size:43px;letter-spacing:-2px}.pl-copy h2{font-size:17px;line-height:1.4}.pl-copy>p{font-size:14px}.pl-benefits{flex-direction:column;gap:13px}.pl-library .pl-container{padding:15px;border-radius:15px}.pl-filters{flex-wrap:nowrap;overflow:auto;padding-bottom:4px}.pl-filters button{flex:0 0 auto}.pl-grid{grid-template-columns:1fr}.pl-thumb,.pl-placeholder{height:190px}.pl-suggest{align-items:flex-start;padding:18px}.pl-suggest-icon{width:48px;height:48px;flex:0 0 48px}}


/* =========================================
   EXPERIMENT THUMBNAILS
========================================= */

.pl-image-thumb{
  position:relative;
  width:100%;
  height:210px;
  overflow:hidden;
  background:#f1f5f9;
}

.pl-image-thumb img{
  width:100%;
  height:100%;
  display:block;

  object-fit:cover;
  object-position:center;

  transition:
    transform .45s ease,
    filter .45s ease;
}

.pl-card:hover .pl-image-thumb img{
  transform:scale(1.035);
}


/* preview label */

.pl-thumb-note{
  position:absolute;
  top:12px;
  right:12px;

  padding:6px 9px;

  background:rgba(255,255,255,.94);

  border:1px solid rgba(226,232,240,.9);
  border-radius:7px;

  box-shadow:
    0 3px 10px rgba(8,27,75,.08);

  color:#64748b;

  font-size:9px;
  font-weight:600;

  backdrop-filter:blur(5px);
}


/* =========================================
   THUMBNAIL FALLBACK
========================================= */

.pl-thumbnail-fallback{
  display:flex;
  align-items:center;
  justify-content:center;

  background:
    radial-gradient(
      circle at 50% 30%,
      rgba(37,99,235,.12),
      transparent 45%
    ),
    linear-gradient(
      135deg,
      #f8fbff,
      #edf4ff
    );
}

.pl-fallback-content{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;

  text-align:center;

  color:#64748b;
}

.pl-fallback-content span{
  font-size:32px;
  color:#2563eb;
}

.pl-fallback-content strong{
  color:#334155;
  font-size:14px;
}

.pl-fallback-content small{
  font-size:10px;
}


/* Mobile */

@media(max-width:620px){

  .pl-image-thumb{
    height:190px;
  }

}
