/* RagnoMath — Sky & parchment.
   Original styling inspired by the warmth of classic online adventures.
   Fonts are self-hosted; licence notices are in /fonts/. */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500 700;font-display:swap;src:url('/fonts/cormorant-garamond-latin.woff2') format('woff2')}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:400 800;font-display:swap;src:url('/fonts/nunito-sans-latin.woff2') format('woff2')}
:root{
  --rm-ink:#263c53;--rm-muted:#53667a;--rm-blue:#315e87;--rm-blue-dark:#234968;
  --rm-sky:#e5eff7;--rm-paper:#fffcf4;--rm-paper-deep:#f5eddc;
  --rm-line:#bccbd7;--rm-gold:#b58b48;--rm-gold-light:#eddbac;
  --rm-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --rm-text:"Nunito Sans","Trebuchet MS","Segoe UI",sans-serif;
  --ink:var(--rm-ink);--muted:var(--rm-muted);--blue:var(--rm-blue);--blue-hi:#789bb9;
  --gold:#e4c783;--gold-d:#c4a15c;--window:var(--rm-paper);--window-2:#e4ecf3;
  --page:#edf2f5;--line:var(--rm-line);--font-kid:var(--rm-text);--font-pixel:var(--rm-text);
}
body.rm-site,body.rm-staff,body.rm-game{font-family:var(--rm-text);color:var(--rm-ink);-webkit-font-smoothing:antialiased}
body.rm-site,body.rm-staff{
  background:radial-gradient(ellipse at 85% 0,#d5e6f3a6,transparent 45%),
    radial-gradient(ellipse at 8% 22%,#fff7e2,transparent 48%),#f8f7f1;
}
body.rm-site a,body.rm-staff a{color:var(--rm-blue-dark);text-underline-offset:4px}
body.rm-site h1,body.rm-site h2,body.rm-site h3,.rm-staff .class-head h3{
  font-family:var(--rm-display);font-weight:700;letter-spacing:-.025em;color:var(--rm-ink);
}
.rm-site h1{line-height:1.02;letter-spacing:-.04em}
.rm-site h2{font-size:clamp(28px,3.2vw,38px);line-height:1.12}
.rm-site h3{font-size:26px;line-height:1.2}
.rm-site .eyebrow{color:#786039;font-size:11px;letter-spacing:.19em;font-weight:800}
.rm-site .fine,.rm-site .shop-fine,.rm-site .lead,.rm-site .card p{color:var(--rm-muted)}
.rm-site .lead{font-size:20px;line-height:1.65}
.rm-site>header{max-width:1180px;padding:22px 26px;border-bottom:1px solid #c6cfcc}
.rm-site>header nav{font-size:14px;gap:24px;align-items:center}
.rm-site>header nav a{text-decoration:none;font-weight:700}
.rm-site>header nav a:hover{text-decoration:underline}
.rm-site .wordmark,.rm-staff .brand,.rm-staff .logo,body.rm-game .logo{
  font-family:var(--rm-display);font-weight:700;letter-spacing:-.055em;color:var(--rm-blue-dark);
}
.rm-site .wordmark{font-size:36px;line-height:1.1;white-space:nowrap;text-shadow:0 1px #fff}
.rm-site .wordmark::before{content:'✧';display:inline-block;margin-right:9px;color:#98713c;font-size:.72em;vertical-align:8%;font-family:Georgia,serif}
.rm-site .nav-login{border:1px solid #a3b4c3;padding:9px 14px;border-radius:6px;background:#ffffff75}
.rm-site .panel,.rm-site .card,.rm-staff .win,body.rm-game .win,.rm-site dialog,.rm-staff dialog{
  border:1px solid var(--rm-line);border-radius:10px;
  background:linear-gradient(130deg,#fffefa,var(--rm-paper));
  box-shadow:inset 0 0 0 3px #fffefa,0 2px 0 #b6c2cc5c,0 12px 28px #243d5410;
}
.rm-site .card{position:relative;border-top:3px solid #b9ccdc}
.rm-site .card.featured,.rm-site .membership-grid .featured{background:linear-gradient(135deg,#e7eff6,#fbf7eb);border-color:#a7bcd0;color:var(--rm-ink)}
.rm-site .card.featured a,.rm-site .membership-grid .featured a{color:var(--rm-blue-dark)}
.rm-site .button,.rm-site button,.rm-staff .btn,body.rm-game .btn{
  font-family:var(--rm-text);font-weight:800;border:1px solid #204563;border-radius:7px;
  background:linear-gradient(#3c6a93,#2d567c);color:#fffdf5;
  box-shadow:inset 0 1px 0 #ffffff38,0 2px 0 #1c3d5950;
  text-shadow:none;transition:background .15s,box-shadow .15s,transform .15s;
}
.rm-site .button:hover,.rm-site button:hover:not(:disabled),.rm-staff .btn:hover:not(:disabled),body.rm-game .btn:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px);box-shadow:inset 0 1px 0 #ffffff38,0 4px 12px #243e5425}
.rm-site .button.secondary,.rm-site .action-inline,.rm-site .child-list button,.rm-site .family-tabs button,
.rm-staff .btn:not(.go):not(.danger):not(.quiet),body.rm-game .btn:not(.go):not(.danger){
  color:var(--rm-blue-dark);background:linear-gradient(#fffdf8,#ece9df);border-color:#b7b9ae;box-shadow:inset 0 1px #fff,0 2px 0 #344b5b20;
}
.rm-site .card.featured .button,.rm-staff .btn.go,body.rm-game .btn.go{
  color:#41351e;background:linear-gradient(#f3dda4,#dfbf76);border-color:#ac8848;box-shadow:inset 0 1px #fff4d6,0 2px 0 #7d613535;
}
.rm-staff .btn.quiet{color:var(--rm-blue-dark);background:transparent;border-color:transparent;box-shadow:none}
.rm-staff .btn.danger,body.rm-game .btn.danger{color:white;background:#9e4552;border-color:#803541}
.rm-site .family-tabs button[aria-selected=true]{background:var(--rm-blue);color:white;border-color:var(--rm-blue-dark)}
.rm-site .button:focus-visible,.rm-site button:focus-visible,.rm-site a:focus-visible,.rm-staff :focus-visible,body.rm-game :focus-visible{outline:3px solid #956925;outline-offset:4px}
.rm-site input:not([type=checkbox]):not([type=radio]),.rm-site select,.rm-site textarea,
.rm-staff input:not([type=checkbox]):not([type=radio]),.rm-staff select,.rm-staff textarea,
body.rm-game input:not([type=checkbox]):not([type=radio]),body.rm-game select,body.rm-game textarea{
  font-family:var(--rm-text);border:1px solid #9eb2c3;border-radius:6px;background:#fffefb;color:var(--rm-ink);box-shadow:inset 0 2px 4px #263b5010;
}
.rm-site input[type=checkbox],.rm-staff input[type=checkbox],body.rm-game input[type=checkbox],.rm-site progress{accent-color:var(--rm-blue)}
.rm-site .notice,.rm-site .adult-steps,.rm-site .evidence-cards article,.rm-site .topic-control,.rm-site .step-chip,.rm-site .tag,.rm-site .empty-state,
.rm-staff .setup-checklist{background:#eaf0f5;border-color:#bbccda;color:var(--rm-ink);border-radius:8px}
.rm-site .adult-steps b,.rm-site .evidence-cards strong,.rm-site .family-message,.rm-site .preset-library summary{color:var(--rm-blue-dark)}
.rm-site .child-list button[aria-current=true]{background:#e3edf5;border-color:#98b0c6;box-shadow:inset 4px 0 var(--rm-blue)}
.rm-site .class-code-summary{background:#faf2df;border:1px solid #d8c394;border-radius:8px}
.rm-site .report-jumps{background:#f7fafcf2;border-color:#b8cad9;border-radius:8px}
.rm-site .report-jumps a{color:var(--rm-blue-dark);background:#e5edf4;border-radius:5px}
.rm-site th,.rm-site td{border-bottom-color:#d5dfe6}
.rm-site th{background:#e9f0f5}
.rm-site .family-form fieldset{border-color:#bacbd8;border-radius:7px}
.rm-site>footer{border-top:1px solid #c1b89d;color:var(--rm-muted);font-size:14px}
.rm-site>footer .wordmark{font-size:30px}
.rm-site>footer nav{font-size:13px}
.rm-site dialog::backdrop,.rm-staff dialog::backdrop{background:#1d344b70;backdrop-filter:blur(4px)}

/* The public entrance: a light, illustrated adventure journal. */
.landing main{padding-top:38px}
.landing .pilot-hero{gap:52px;grid-template-columns:1.16fr 1fr;padding:15px 0 42px}
.landing .pilot-hero h1{font-size:clamp(52px,5.6vw,74px);max-width:620px;margin:18px 0 22px;line-height:1}
.landing .pilot-hero h1 em{font-style:normal;color:var(--rm-blue);font-weight:500}
.landing .pilot-hero .lead{font-size:19px;max-width:490px}
.landing .pilot-hero .fine{font-size:12px;margin:17px 0}
.landing .pilot-hero .actions{gap:10px;margin-top:28px}
.landing .pilot-hero .button{font-size:14px;padding:13px 18px}
.landing .demo-link{font-size:14px;text-decoration:none;border-bottom:1px solid #a6b7c6;padding:3px 0}
.landing .adventure-window{border:1px solid #aabfcf;border-radius:12px;background:var(--rm-paper);transform:rotate(1deg);box-shadow:0 5px 0 #a8b8c440,0 23px 45px #253d551c;position:relative}
.landing .window-heading{background:linear-gradient(#ecf3f9,#d2e2ef);color:#34536f;border-bottom:1px solid #aabfcf;padding:13px 20px;font-size:10px;letter-spacing:.16em;box-shadow:inset 0 2px #fff9}
.landing .window-heading span:last-child{color:#93703b;font-size:15px;line-height:1}
.landing .island-scene{height:300px;background:radial-gradient(ellipse at 17% 14%,#fffdf4 0 5%,transparent 18%),radial-gradient(ellipse at 83% 16%,#ffffffbd,transparent 24%),linear-gradient(#bed9ed 0,#e6f0f4 49%,#9fc8db 49%,#6da5c1 100%)}
.landing .island-scene::before{inset:88px 28px 48px;border:10px solid #eddeb3;background:linear-gradient(145deg,#abcaa0,#7fa77f);box-shadow:0 12px 0 #4e819d60,0 22px 26px #3b72955c}
.landing .island-path{top:100px;height:137px;border-color:#dbcb99;left:27%;right:27%;border-width:12px}
.landing .island-scene .hero-art{padding-top:91px;gap:6px}
.landing .island-scene .hero-art img{width:87px;height:95px;filter:drop-shadow(0 9px 4px #25405336)}
.landing .scene-label{bottom:17px;left:18%;right:18%;background:#fff9e9ed;border:1px solid #b3a88b;border-radius:5px;padding:5px;color:#38536a;font-size:11px;letter-spacing:.08em;box-shadow:0 2px 7px #274e6922}
.landing .adventure-window>p{font-size:13px;color:var(--rm-muted);padding:6px 22px;line-height:1.7}
.landing .pilot-strip{border:1px solid #c5bb9f;border-left:3px solid #b8995d;border-radius:8px;background:#f4eddd;font-size:14px;padding:20px 24px;box-shadow:inset 0 0 0 3px #fff9ef}
.landing .pilot-strip>strong{color:#52687d;min-width:180px}
.landing .step-number{font-family:var(--rm-display);font-size:30px;color:#8e713c;font-weight:600}
.landing .grid h3{font-size:28px;margin:10px 0}
.landing .grid .card{padding:26px}
.landing .grid .card p{font-size:15px;line-height:1.7}
.landing details{border-color:#d3dfe7}
.landing summary{font-size:16px;color:var(--rm-blue-dark);padding:3px 0}
.landing .closing{border-top:1px solid #c6b997;padding-top:35px}

/* Shared blue window frames, with readable controls for teachers and children. */
.rm-staff .topbar{background:linear-gradient(#fafcfe,#e4edf5);border-bottom:1px solid #b6cad9;padding:18px 28px;color:var(--rm-ink);box-shadow:0 2px 8px #253d5110}
.rm-staff .brand{font-size:32px;letter-spacing:-.04em}
.rm-staff .brand small{font-family:var(--rm-text);font-size:12px;letter-spacing:.02em;color:var(--rm-muted)}
.rm-staff .tb{color:var(--rm-blue-dark)}
.rm-staff .tb:hover{background:#dbe7f0}
.rm-staff .logo{font-size:4.4rem;line-height:1.08;text-shadow:0 2px #fff;letter-spacing:-.06em}
.rm-staff .auth-wrap .sub{font-size:12px;text-transform:uppercase;letter-spacing:.15em;color:#75613e;margin-top:10px}
.rm-staff .auth-wrap{padding-top:40px}
.rm-staff .win-title,body.rm-game .win-title{
  background:linear-gradient(#edf4fa,#ccdeed);color:#294b69;border-bottom:1px solid #a5bdd0;
  box-shadow:inset 0 1px #fff;text-shadow:none;padding:11px 16px;font-family:var(--rm-text);font-weight:800;
}
.rm-staff .win-title h2{font-family:var(--rm-text);font-size:16px;color:#294b69}
.rm-staff .class-list button{border-color:#cedce5;background:#fffdf6;border-radius:7px;color:#2e4f6c}
.rm-staff .class-list button[aria-current=true]{background:#e5eef6;border-color:#9cb6cc;box-shadow:inset 4px 0 #50799b}
.rm-staff .class-head h3{font-size:32px}
.rm-staff .roster th{background:#e9f0f6;color:#35536f}
.rm-staff .roster td{border-color:#d8e0e6}
.rm-staff .roster tbody tr:hover{background:#eef4f9}
.rm-staff .table-wrap{border-color:#bdcdd9;border-radius:8px}
.rm-staff .setup-checklist h2{font-family:var(--rm-display);font-size:26px}

/* Game scenery stays in its own palette; frames match the website. */
body.rm-game .win{box-shadow:inset 0 0 0 2px #fffdf6,0 3px 0 #2e4d6840,0 14px 32px #18344a30}
body.rm-game #title{background:radial-gradient(ellipse at 20% 18%,#fffdf1e6,transparent 38%),radial-gradient(ellipse at 80% 90%,#adcbb570,transparent 50%),linear-gradient(#d5e7f4,#edf2ef 60%,#eee6d2)!important}
body.rm-game #title .logo{font-size:clamp(58px,11vw,104px);color:#2c567d;text-shadow:0 2px 0 #fff,0 5px 18px #365b7d20;line-height:1.03}
body.rm-game #title .tag{font-family:var(--rm-text);color:#51687d;text-shadow:none;font-size:clamp(13px,2.5vw,18px);font-weight:600;letter-spacing:.01em}
body.rm-game #title .linkish{color:#315779;text-shadow:none}
body.rm-game .start-win{border-top:3px solid #bfa164}
body.rm-game .node-tag{border-color:#9cafbc!important;background:#fffaf0f5!important;color:#294b66!important;box-shadow:0 4px 12px #213d5735!important}
body.rm-game .node.current .node-tag{outline-color:#bc8f3e}
body.rm-game .node-tag small{color:#4d6071}
body.rm-game .win-title button,body.rm-game #modal-close{color:#294b69}
body.rm-game #modal-close{background:#fffaf0;border:1px solid #afbdc8}
body.rm-game .shop-wallet{background:#fcf0d1;border-color:#d6b978;border-radius:8px}
body.rm-game .shop-totals>div{background:#e9eff4;border-color:#bfcedb;border-radius:8px}
body.rm-game .shop-catalogue li{border-color:#bccdda!important;border-radius:8px!important;background:#fffdf6}
body.rm-game .shop-catalogue .nm small,body.rm-game .shop-step,body.rm-game .shop-fine{color:#53687a}
body.rm-game .calendar-grid caption{background:#3a6387}
body.rm-game .calendar-grid th{background:#dce8f2}
body.rm-game .calendar-grid td{border-color:#becdda;background:#fcfbf2}
body.rm-game .calendar-grid td:nth-child(n+6){background:#f9ebd1}
body.rm-game .pi-world-head,body.rm-game .pi-mission,body.rm-game .pi-world-foot,body.rm-game .pi-purse{background:#fff9ed!important;border-color:#9bb4c8!important;color:#2b4a64!important;border-radius:9px!important}
body.rm-game .pi-world-head{background:linear-gradient(#eef4fa,#d6e4ef)!important}
body.rm-game .pi-world-head h1{font-family:var(--rm-display)!important;color:#294d70!important;font-size:clamp(28px,4vw,38px)!important}
body.rm-game .pi-object small,body.rm-game .pi-king b,body.rm-game .pi-king small{border-color:#a6bacb!important;color:#2f4d65!important;background:#fffaf0!important}
/* Home is part of the title/map layout, never a floating island overlay. */
body.rm-game .rm-home-link{position:static;color:#294f70;background:#fffaf0e8;padding:8px 12px;border:1px solid #a7bac8;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;min-height:44px;font:700 13px var(--rm-text);text-decoration:none;white-space:nowrap}
body.rm-game .map-home{margin-left:auto}
body.rm-game .title-home{background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:4px}
body.rm-game .adult-feedback-link{padding:12px 16px;background:#e7eff6;border-radius:7px;color:#294f70;font:15px/1.5 var(--rm-text)}
body.rm-game .adult-feedback-link a{color:#294f70;font-weight:700}
.feedback-layout>section{margin-top:0}
body.rm-site .feedback-layout h1{font-size:54px}
@media(max-width:800px){
  .landing .pilot-hero{grid-template-columns:1fr;gap:28px;padding-top:0}
  .landing .pilot-hero h1{font-size:clamp(49px,9vw,65px);max-width:620px}
  .landing .adventure-window{width:100%;max-width:540px;transform:none;margin:auto}
  .landing .pilot-strip{align-items:flex-start}
}
@media(max-width:600px){
  .rm-site>header{padding:18px 20px;gap:18px}
  .rm-site>header nav{gap:12px 18px;font-size:13px}
  .rm-site .wordmark{font-size:33px}
  .rm-site main{padding-left:20px;padding-right:20px}
  .landing .pilot-hero .actions>a{width:100%;text-align:center}
  .landing .pilot-hero .lead{font-size:17px}
  .landing .island-scene{height:275px}
  .rm-site .panel,.rm-site .card{padding:22px}
  .rm-staff .logo{font-size:3.7rem}
  .rm-staff .topbar{padding:16px}
  .rm-staff .brand{font-size:28px}
  body.rm-game .title-wrap{gap:12px}
}
@media(prefers-reduced-motion:reduce){.rm-site *, .rm-staff *, body.rm-game *{scroll-behavior:auto!important;transition:none!important}}
@media print{
  body.rm-site,body.rm-staff,body.rm-game{background:white!important;color:#182c3d}
  .rm-site .panel,.rm-site .card,.rm-staff .win{box-shadow:none;background:white}
  .rm-site h1{font-size:30px}.rm-site h2{font-size:24px}
}
