:root {
  font-family: Inter, system-ui, sans-serif;
  color: #152c3d;
  background: #fff;
  font-synthesis: none;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
}
header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: white;
  border-bottom: 1px solid #dce5ec;
  padding: 24px max(5vw, 20px);
}
a {
  color: #075ea7;
  text-underline-offset: 4px;
}
header a {
  text-decoration: none;
}
.identity {
  font-size: 1.25rem;
  font-weight: 800;
  color: #132e42;
}
nav {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}
main {
  max-width: 1120px;
  margin: auto;
  padding: 24px;
}
.hero {
  padding: 64px 0 48px;
  max-width: 780px;
}
h1 {
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  line-height: 1.1;
  margin: 16px 0 24px;
  letter-spacing: -0.04em;
}
h2 {
  font-size: 1.7rem;
}
h3 {
  line-height: 1.4;
}
.lead {
  font-size: 1.2rem;
  line-height: 1.75;
  white-space: pre-line;
}
.eyebrow {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #407186;
}
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
  margin: 28px 0;
}
article,
.checkout,
form,
#recovery-code {
  background: white;
  border: 1px solid #dce5ec;
  border-radius: 16px;
  padding: 28px;
  margin: 24px 0;
}
.grid article {
  margin: 0;
}
.grid p {
  line-height: 1.6;
}
.button,
button {
  display: inline-block;
  background: #2455c5;
  color: white;
  border: 0;
  border-radius: 8px;
  padding: 13px 20px;
  font: inherit;
  font-weight: 650;
  cursor: pointer;
  text-decoration: none;
  margin: 4px 0;
}
button:disabled {
  opacity: 0.55;
  cursor: wait;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 3px solid #ecab19;
  outline-offset: 3px;
}
label {
  display: block;
  margin: 18px 0;
  line-height: 1.7;
}
input:not([type="checkbox"]),
select {
  display: block;
  padding: 12px;
  width: 100%;
  max-width: 480px;
  border: 1px solid #8097a8;
  border-radius: 6px;
  font: inherit;
}
input[type="checkbox"] {
  margin-right: 10px;
}
.price {
  font-size: 1.7rem;
  font-weight: 750;
}
.payment-disclosure {
  background: #fff6da;
  padding: 20px;
  border-left: 4px solid #d18b04;
  line-height: 1.6;
}
.operator {
  border-top: 1px solid #dce5ec;
  background: #eaf1f6;
  padding: 32px max(5vw, 20px);
  line-height: 1.6;
  margin-top: 48px;
}
output {
  display: block;
  overflow-wrap: anywhere;
  background: #edf4f8;
  padding: 16px;
  font-family: monospace;
}
[hidden] {
  display: none !important;
}
#message {
  line-height: 1.6;
  color: #8a2f15;
}
article a {
  overflow-wrap: anywhere;
}
@media (max-width: 640px) {
  header {
    align-items: flex-start;
    flex-direction: column;
  }
  main {
    padding: 20px;
  }
  article,
  .checkout,
  form {
    padding: 18px;
  }
  nav {
    gap: 16px;
  }
}

.editorial-image {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
}
.editorial-body {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

body {
  overflow-wrap: anywhere;
}
header {
  border-bottom: 3px solid var(--school-accent, #ffffff);
}
fieldset {
  min-width: 0;
}
img {
  max-width: 100%;
}

/* Curated public themes: no owner-supplied styles or markup. */
.theme-ocean{--website-accent:#075ea7}.theme-forest{--website-accent:#196144}.theme-purple{--website-accent:#663399}.theme-terracotta{--website-accent:#99452f}.theme-neutral{--website-accent:#474747}
body[class*="theme-"] a{color:var(--website-accent)}body[class*="theme-"] .button{background:var(--website-accent);color:#fff}
.public-hero-layout{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:3rem;margin-block:2rem}.public-hero-layout .hero{padding:1rem 0;max-width:none}.public-hero-layout .editorial-image,.creator-portrait{width:100%;height:auto;max-height:560px;object-fit:cover;border-radius:20px;grid-column:2;grid-row:1}.public-hero-layout .hero{grid-column:1;grid-row:1}.hero-layout-editorial .public-hero-layout{grid-template-columns:1fr;text-align:center;max-width:900px;margin-inline:auto}.hero-layout-editorial .public-hero-layout .hero,.hero-layout-editorial .public-hero-layout .editorial-image,.hero-layout-editorial .creator-portrait{grid-column:1;grid-row:auto}.hero-layout-banner .public-hero-layout{position:relative;isolation:isolate;overflow:hidden;border-radius:20px;min-height:440px;padding:3rem;background:#152c3d;color:#fff}.hero-layout-banner .public-hero-layout .editorial-image,.hero-layout-banner .creator-portrait{position:absolute;inset:0;width:100%;height:100%;max-height:none;z-index:-2;opacity:.45}.hero-layout-banner .public-hero-layout:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,25,35,.75),rgba(10,25,35,.1));z-index:-1}.hero-layout-banner .public-hero-layout .hero{grid-column:1/-1;max-width:650px}.hero-layout-banner .public-hero-layout a{color:#fff}@media(max-width:700px){.public-hero-layout{grid-template-columns:1fr;gap:1rem}.public-hero-layout .hero,.public-hero-layout .editorial-image,.creator-portrait{grid-column:1;grid-row:auto}.hero-layout-banner .public-hero-layout{padding:1.5rem;min-height:380px}}

.resource-thumbnail{width:100%;height:auto;max-height:320px;object-fit:contain;background:#f5f8fb;border-radius:12px;margin-bottom:1rem}.hero-layout-editorial .public-hero-layout .hero{order:-1}

.website-photo{overflow:hidden;aspect-ratio:16/9;border-radius:14px;background:#edf2f7}.website-photo img{width:100%;height:100%;object-fit:cover}.website-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.website-footer{padding:2rem;background:#edf4fa}.website-footer nav{display:flex;flex-wrap:wrap;gap:1rem}.school-notice{padding:1.25rem;border:1px solid #dce5ec;border-radius:12px;margin-block:1rem}.priority-urgent{border-left:5px solid #b02020;background:#fff3f3}.home-announcement{position:relative;background:#eff6fc;padding:1rem 3rem 1rem 1rem;border-radius:12px}.home-announcement.popup{position:fixed;right:1rem;bottom:1rem;width:min(520px,calc(100vw - 2rem));max-height:75vh;overflow:auto;z-index:10;background:white;box-shadow:0 10px 40px #1235;border:2px solid #075ea7}.notice-dismiss{position:absolute;right:.5rem;top:.5rem;min-width:44px;min-height:44px;font-size:1.5rem}.home-announcement[hidden]{display:none}@media(max-width:600px){.website-gallery{grid-template-columns:1fr}.website-footer{padding:1.25rem}}
/* Public School shell only; the primary SOMO application is unaffected. */
body.school-public-site{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}
.school-public-site>header,.school-public-site>footer{flex-shrink:0}
body.school-public-site>main{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:clamp(24px,4vw,48px) 24px}
.school-public-site .website-page-introduction{max-width:72ch;line-height:1.7;margin:0 0 24px}
.school-public-site .website-content-section{margin-block:24px}
.school-public-site .website-empty-state{max-width:760px;padding:24px;border:1px solid #dce5ec;border-radius:14px;background:#f6f9fb;margin-block:24px}
.school-public-site .website-empty-state h2{font-size:1.2rem;margin:0 0 10px}
.school-public-site .website-empty-state p{line-height:1.6;margin:0;color:#425466}
.school-public-site .school-website-footer{padding:28px max(5vw,20px);background:#edf4fa;border-top:1px solid #dce5ec}
.school-public-site .school-footer-description{max-width:65ch;line-height:1.6;margin:8px 0 20px}
.school-public-site .platform-attribution{border-top:1px solid #dce5ec;padding-top:16px;margin-top:20px;font-size:.9rem;line-height:1.6}
.school-public-site .platform-attribution p{margin:4px 0}
@media(max-width:640px){body.school-public-site>main{padding:24px 20px}.school-public-site .website-empty-state{padding:20px}.school-public-site .school-website-footer nav{gap:12px 18px}}

/* Shared School website glass shell. Original media, text and theme identity remain intact. */
body.school-public-site {
  --school-glass:rgba(255,255,255,.72);
  background:radial-gradient(circle at 6% 15%,#e5d0ef88,transparent 27%),radial-gradient(circle at 96% 45%,#b9e9ed88,transparent 32%),#f1f5fa;
  color:#172b40;
}
body.school-public-site>header,
body.school-public-site .school-website-footer,
body.school-public-site :is(.website-empty-state,.website-card,.school-notice,.home-announcement,.card,.panel) {
  background:var(--school-glass);border:1px solid #ffffffd9;border-radius:22px;
  box-shadow:0 12px 36px #2c476317,inset 0 1px 0 #fff;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
}
body.school-public-site>header {margin:12px;width:calc(100% - 24px);}
body.school-public-site .school-website-footer {border-radius:24px 24px 0 0;}
body.school-public-site :is(button,.button,input:not([type=checkbox]):not([type=radio]),select,textarea) {
  min-height:44px;border-radius:16px;border:1px solid #a1b5c7;
}
body.school-public-site :is(button,.button) {border-radius:99px;box-shadow:0 5px 14px #3449681a,inset 0 1px 0 #ffffffa0;}
body.school-public-site :is(input:not([type=checkbox]):not([type=radio]),select,textarea) {background:#ffffffe0;color:#172b40;}
body.school-public-site :is(a,button,input,select,textarea,summary):focus-visible {outline:3px solid #1949b5;outline-offset:4px;}
body.school-public-site .home-announcement[hidden] {display:none;}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {body.school-public-site {--school-glass:rgba(250,252,255,.97);}}
@media(max-width:640px) {body.school-public-site>header {padding:18px;flex-wrap:wrap;}body.school-public-site>header nav {flex-wrap:wrap;}body.school-public-site :is(.school-notice,.home-announcement) {backdrop-filter:blur(8px);}}
@media(prefers-reduced-motion:reduce) {body.school-public-site {scroll-behavior:auto;}body.school-public-site :is(button,.button) {transition:none;}}
@media(forced-colors:active) {body.school-public-site {background:Canvas;color:CanvasText;}body.school-public-site :is(header,.school-website-footer,.panel,.card) {background:Canvas;border:1px solid CanvasText;box-shadow:none;}}
