*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}.landing{min-height:100vh;color:#fff;background:radial-gradient(circle at 50% -10%,#1d7ada,#0757ae 35%,#043d83 100%);display:flex;justify-content:center;position:relative;overflow:hidden;padding:6vh 20px 30px}.login{width:min(520px,94vw);text-align:center;z-index:2}.login h1{font-family:Georgia,serif;font-weight:500;font-size:clamp(42px,5vw,68px);line-height:.95;margin:0 0 28px}.login p{font-size:17px}.field{display:flex;border:1px solid #ffffffc9;border-radius:10px;padding:0 18px;background:#003d8066}.field input{width:100%;border:0;outline:0;background:transparent;color:#fff;padding:16px;font-size:16px}.field input::placeholder{color:#dbe9fb}.primary{width:100%;margin-top:10px;padding:16px;border:0;border-radius:10px;background:#fff6ea;color:#0753a7;font-weight:900;cursor:pointer}.note{font-size:13px;color:#dcecff;margin-top:13px}.city{position:absolute;left:50%;bottom:-3%;transform:translateX(-50%);width:min(1200px,96vw)}.adminlink{position:absolute;bottom:15px;color:#fff;z-index:3;text-decoration:none;font-family:Georgia,serif}.flash{background:#ffffff17;border:1px solid #ffffff55;padding:10px;border-radius:10px;margin:12px 0}.portal,.adminbody{min-height:100vh;background:#eef4fb;color:#10213c;padding:28px}.shell{max-width:1180px;margin:auto}.top{display:flex;justify-content:space-between;gap:16px;align-items:center}.eyebrow{color:#5270a0;font-weight:900}.hero,.card,.module{background:#fff;border:1px solid #dce6f3;border-radius:24px;padding:24px;box-shadow:0 18px 50px #21456d12}.hero{margin-top:20px;background:linear-gradient(135deg,#10294b,#214c79);color:#fff}.modules{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:18px}.module{text-decoration:none;color:#10213c}.module b{font-size:24px}.muted{color:#6b7890}.unitselect{padding:10px;border:1px solid #dce6f3;border-radius:10px}.btn{display:inline-block;padding:10px 14px;background:#1557b8;color:#fff;border-radius:9px;text-decoration:none;font-weight:800}@media(max-width:760px){.city{width:150vw;bottom:1%}.login h1{font-size:44px}.modules{grid-template-columns:1fr}.portal,.adminbody{padding:18px}.top{align-items:flex-start;flex-direction:column}}

/* v0.9 landing: UI is HTML only; background asset is cropped to building-only region. */
.landing-v09{display:block;padding:42px 20px 0;min-height:100vh;background:radial-gradient(circle at 50% -15%,#207ad5 0,#0757ae 36%,#043d83 100%);overflow:hidden}
.login-v09{position:relative;margin:0 auto;width:min(650px,94vw);z-index:3}
.login-v09 h1{margin:0 0 22px;font-family:Georgia,serif;font-weight:500;line-height:1.02}
.login-v09 h1 span{display:block;white-space:nowrap}
.login-v09 h1 span:first-child{font-size:clamp(38px,4vw,58px)}
.login-v09 h1 span:last-child{font-size:clamp(42px,4.5vw,64px);margin-top:5px}
.login-v09 p{margin:0 0 18px;font-size:17px}
.buildings-v09{position:absolute;z-index:1;left:50%;transform:translateX(-50%);bottom:0;width:min(1200px,100vw);height:min(49vw,500px);background-image:none;background-repeat:no-repeat;background-size:100% auto;background-position:center bottom}
.admin-v09{left:50%;transform:translateX(-50%);bottom:12px;z-index:4}
@media(max-width:700px){.landing-v09{padding-top:36px}.login-v09 h1 span:first-child{font-size:34px}.login-v09 h1 span:last-child{font-size:42px}.buildings-v09{width:150vw;height:63vw;background-size:100% auto}.admin-v09{bottom:8px}}

.landing-v13{position:relative;display:block;min-height:100vh;overflow:hidden;padding:36px 20px 0;background:#0b5eaa}
.login-v13{position:relative;z-index:3;width:min(650px,94vw);margin:0 auto;text-align:center}
.login-v13 h1{margin:0 0 22px;font-family:Georgia,serif;font-weight:500;line-height:1.02;color:#fff}
.login-v13 h1 span{display:block;white-space:nowrap}.login-v13 h1 span:first-child{font-size:clamp(38px,4vw,58px)}.login-v13 h1 span:last-child{font-size:clamp(42px,4.5vw,64px);margin-top:5px}
.login-v13 p{margin:0 0 18px;color:#fff;font-size:17px}
.buildings-v13{position:absolute;z-index:1;left:50%;bottom:0;transform:translateX(-50%);width:min(1500px,100vw);height:min(58vw,610px);background:url('/assets/buildings-v13.png') center bottom/100% auto no-repeat;pointer-events:none}
@media(max-width:700px){.landing-v13{padding-top:30px}.login-v13 h1 span:first-child{font-size:33px}.login-v13 h1 span:last-child{font-size:41px}.buildings-v13{width:165vw;height:82vw}}

/* v1.0 FINAL landing */
.landing-v13{background:#0b5eaa!important}
.buildings-v13{background-image:url('/assets/buildings-v13.png')!important}
.adminlink,.admin-v09{display:none!important}

/* v1.0.1 FINAL landing tuning — approved artwork unchanged */
.landing-v13{
  min-height:100vh;
  padding:24px 18px 0!important;
  background:#0b5eaa!important;
}
.login-v13{
  width:min(540px,92vw)!important;
}
.login-v13 h1{
  margin:0 0 14px!important;
  line-height:.98!important;
}
.login-v13 h1 span:first-child{
  font-size:clamp(30px,3.1vw,45px)!important;
}
.login-v13 h1 span:last-child{
  font-size:clamp(34px,3.5vw,50px)!important;
  margin-top:3px!important;
}
.login-v13 p{
  margin:0 0 12px!important;
  font-size:14px!important;
}
.login-v13 .field{
  min-height:42px!important;
  padding:0 14px!important;
  border-radius:9px!important;
}
.login-v13 .field input{
  padding:11px 8px!important;
  font-size:14px!important;
}
.login-v13 .primary{
  margin-top:8px!important;
  padding:12px 14px!important;
  font-size:13px!important;
  border-radius:9px!important;
}
.login-v13 .flash{
  margin:8px 0!important;
  padding:8px 10px!important;
  font-size:13px!important;
}
/* Artwork itself is unchanged. It is rendered smaller and its edges/top are
   masked into the exact page background, eliminating the rectangular seam. */
.buildings-v13{
  width:min(1120px,88vw)!important;
  height:min(43vw,440px)!important;
  bottom:0!important;
  background-image:url('/assets/buildings-v13.png')!important;
  background-size:100% auto!important;
  background-position:center bottom!important;
  -webkit-mask-image:
    linear-gradient(to bottom,transparent 0%,#000 17%,#000 88%,transparent 100%),
    linear-gradient(to right,transparent 0%,#000 7%,#000 93%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:
    linear-gradient(to bottom,transparent 0%,#000 17%,#000 88%,transparent 100%),
    linear-gradient(to right,transparent 0%,#000 7%,#000 93%,transparent 100%);
  mask-composite:intersect;
}
@media(max-width:700px){
  .landing-v13{padding-top:20px!important}
  .login-v13 h1 span:first-child{font-size:29px!important}
  .login-v13 h1 span:last-child{font-size:35px!important}
  .login-v13 p{font-size:13px!important}
  .buildings-v13{
    width:132vw!important;
    height:68vw!important;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 16%,#000 92%,transparent 100%);
    mask-image:linear-gradient(to bottom,transparent 0%,#000 16%,#000 92%,transparent 100%);
  }
}

/* v1.0.3 — bring approved artwork closer to login, without changing artwork */
.buildings-v13{
  bottom:auto!important;
  top:285px!important;
  width:min(1120px,88vw)!important;
  height:min(43vw,440px)!important;
  background-position:center top!important;
}
@media(max-width:700px){
  .buildings-v13{
    top:270px!important;
    width:132vw!important;
    height:68vw!important;
  }
}

/* v1.0.4 — seamless artwork uses pre-feathered transparent PNG; no CSS mask dependency */
.buildings-v13{
  -webkit-mask-image:none!important;
  mask-image:none!important;
  top:275px!important;
  width:min(1080px,86vw)!important;
  height:min(42vw,425px)!important;
}
@media(max-width:700px){
  .buildings-v13{top:260px!important;width:128vw!important;height:66vw!important}
}
.admin-modules{grid-template-columns:repeat(3,minmax(0,1fr))}.is-session-timer{font-size:12px;color:#61718a;text-align:right;margin-bottom:6px}@media(max-width:900px){.admin-modules{grid-template-columns:1fr}}

.admin-hero{margin-top:28px}.unit-form{margin-bottom:14px}
