/* Landing variant of the shared colour roles (tokens.css): warmer paper in the
   light theme only. The dark theme uses the shared dark roles unchanged. */
:root:not([data-theme="dark"]) .landing-page{
  --page:#f6f6f2;
  --surface-muted:#e9eae6;
  --line:#d9d9d3;
  --line-strong:#bfc2c5;
  --ink:#171a1f;
  --muted:#626a75;
}
.landing-page{
  min-width:320px;
  background:var(--page);
  color:var(--ink);
}
.landing-page>header{
  height:84px;
  padding:0 max(28px,calc((100vw - 1360px)/2));
  background:var(--page);
  border-bottom:1px solid var(--line);
}
.public-brand{
  gap:11px;
  color:var(--ink);
}
.public-brand-symbol{
  display:block;
  width:48px;
  height:46px;
  flex:0 0 auto;
}
.public-brand-copy{
  display:grid;
  gap:2px;
  color:var(--ink)!important;
  line-height:1;
}
.public-brand-copy strong{
  font-family:'Roboto Condensed',Manrope,sans-serif;
  font-size:23px;
  font-weight:850;
  letter-spacing:-.5px;
}
.public-brand-copy small{
  color:var(--muted)!important;
  font-size:11px!important;
  font-weight:550!important;
  white-space:nowrap;
}
.landing-page #account .theme-picker{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--muted);
}
.landing-page #account .theme-picker select{
  width:auto;
  min-width:138px;
  background:var(--surface);
}
.landing-page #notice:not(:empty){
  margin:0;
}
.landing-page #app.landing-shell{
  max-width:1360px;
  min-height:auto;
  margin:0 auto;
  padding:46px 28px 56px;
}
.landing-hero{
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(460px,.96fr);
  align-items:stretch;
  gap:42px;
  min-height:560px;
}
.landing-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:32px 0 42px;
}
.landing-eyebrow{
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-bottom:19px;
  padding:7px 10px;
  border:1px solid var(--line-strong);
  border-radius:5px;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  letter-spacing:.09em;
  line-height:1;
}
.landing-copy h1{
  max-width:760px;
  margin:0;
  font-family:'Roboto Condensed',Manrope,sans-serif;
  font-size:clamp(56px,5vw,76px);
  font-weight:820;
  letter-spacing:-.045em;
  line-height:.97;
}
.landing-lead{
  max-width:670px;
  margin:27px 0 0;
  color:var(--muted);
  font-size:19px;
  line-height:1.55;
}
.landing-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:34px;
}
.landing-actions button{
  min-height:52px;
  padding:12px 22px;
  border-radius:7px;
  font-size:17px;
  font-weight:750;
}
.landing-actions .landing-primary,
.landing-actions .landing-tutor{
  min-width:210px;
}
.landing-actions .landing-primary{
  background:var(--inverse);
  border-color:var(--ink);
  color:var(--on-inverse);
}
.landing-actions .landing-primary:hover{
  background:var(--inverse-hover);
  border-color:var(--ink);
  color:var(--on-inverse);
}
.landing-actions .landing-secondary{
  background:transparent;
  border-color:var(--line-strong);
  color:var(--ink);
}
.landing-actions .landing-tutor{
  background:var(--accent);
  border-color:var(--accent-line);
  color:var(--on-accent);
}
.landing-actions .landing-tutor:hover{
  background:color-mix(in srgb,var(--accent) 88%,var(--ink));
  border-color:var(--accent-line);
  color:var(--on-accent);
}
.landing-points{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:28px;
}
.landing-points span{
  padding:6px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  font-size:12px;
  line-height:1;
}
.landing-showcase{
  position:relative;
  display:grid;
  align-content:center;
  gap:22px;
  min-width:0;
  overflow:hidden;
  padding:42px;
  background:var(--brand-surface);
  /* The brand surface is dark in both themes: keep the original light-theme mark. */
  --logo-backdrop:var(--brand-surface);
  --logo-stone:var(--on-brand);
  --logo-sprout:var(--lemon);
  border:1px solid var(--brand-surface-line);
  border-radius:18px;
  box-shadow:0 24px 54px #181b211f;
}
.landing-showcase:before{
  content:'';
  position:absolute;
  top:0;
  right:0;
  width:104px;
  height:12px;
  background:var(--accent);
  color:var(--on-accent);
}
.landing-logo-stage{
  display:grid;
  justify-items:start;
  gap:5px;
}
.landing-logo-stage>p{
  margin:0 0 0 144px;
  color:var(--on-brand-muted);
  font-size:13px;
  letter-spacing:.02em;
}
.brand-composition-landing{
  width:340px;
  height:126px;
}
.brand-composition-landing .brand-symbol{
  width:126px;
  height:120px;
  border-radius:18px;
}
.brand-composition-landing .brand-wordmark-text{
  position:absolute;
  z-index:3;
  left:144px;
  top:50%;
  display:block;
  color:var(--on-brand);
  font-family:'Roboto Condensed',Manrope,sans-serif;
  font-size:50px;
  font-weight:850;
  letter-spacing:-1.7px;
  line-height:1;
  transform:translateY(-50%);
  white-space:nowrap;
}
.landing-preview{
  position:relative;
  z-index:1;
  display:grid;
  overflow:hidden;
  background:var(--page);
  border:1px solid var(--line);
  border-radius:10px;
}
.landing-preview-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:13px 16px;
  border-bottom:1px solid var(--line);
}
.landing-preview-heading small{
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
}
.landing-live-dot{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--muted);
  font-size:11px;
}
.landing-live-dot:before{
  content:'';
  width:7px;
  height:7px;
  background:var(--accent);
  border:1px solid var(--accent-line);
  border-radius:50%;
  color:var(--on-accent);
}
.landing-preview-row{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-width:0;
  padding:14px 16px;
  color:var(--ink);
  border-bottom:1px solid var(--line);
}
.landing-preview-row:last-child{border-bottom:0}
.landing-preview-row>span:nth-child(2){
  display:grid;
  min-width:0;
  gap:2px;
}
.landing-preview-row strong{
  overflow:hidden;
  font-size:14px;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.landing-preview-row small{
  overflow:hidden;
  color:var(--muted);
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.landing-preview-time{
  font-size:14px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
}
.landing-preview-mark{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  background:var(--accent);
  border-radius:6px;
  font-size:16px;
  font-weight:850;
  color:var(--on-accent);
}
.landing-preview-mark.dark{
  background:var(--inverse);
  color:var(--on-inverse);
}
.landing-preview-status{
  padding:4px 7px;
  background:var(--surface-hover);
  border-radius:5px;
  color:var(--muted);
  font-size:10px;
  font-weight:750;
  white-space:nowrap;
}
.landing-preview-status.accent{
  background:var(--accent);
  color:var(--on-accent);
}
.landing-benefits{
  display:grid;
  grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr);
  gap:42px;
  margin-top:64px;
  padding-top:40px;
  border-top:1px solid var(--line);
}
.landing-benefits-heading h2{
  max-width:410px;
  margin:0;
  font-family:'Roboto Condensed',Manrope,sans-serif;
  font-size:37px;
  letter-spacing:-.025em;
  line-height:1.05;
}
.landing-feature-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.landing-feature{
  min-width:0;
  padding:22px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:10px;
}
.landing-feature-number{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
}
.landing-feature h3{
  margin:30px 0 10px;
  font-family:'Roboto Condensed',Manrope,sans-serif;
  font-size:22px;
  letter-spacing:-.02em;
}
.landing-feature p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}
.landing-audience{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  margin-top:40px;
  padding:25px 28px;
  background:var(--surface-hover);
  border-radius:10px;
}
.landing-audience>div{
  display:grid;
  gap:4px;
}
.landing-audience strong{font-size:17px}
.landing-audience span{color:var(--muted);font-size:14px}
.landing-audience .landing-text-button{
  flex:0 0 auto;
  background:var(--surface);
  border-color:var(--line-strong);
  color:var(--ink);
  font-weight:700;
}
.landing-page>footer{
  max-width:1360px;
  margin:0 auto;
  padding:26px 28px 34px;
  color:var(--muted);
  border-top:1px solid var(--line);
  font-size:12px;
  text-align:left;
}
.login-role-note{
  display:grid;
  gap:4px;
  margin:0 0 16px;
  padding:14px 16px;
  background:var(--accent);
  border:1px solid var(--accent-line);
  border-radius:8px;
  color:var(--on-accent);
}
.login-role-note strong{font-size:15px}
.login-role-note span{font-size:13px;line-height:1.45}
.tutor-role-confirmation{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--surface-muted);
  color:var(--ink);
  cursor:pointer;
}
.tutor-role-confirmation input{
  width:18px;
  height:18px;
  margin:1px 0 0;
  flex:0 0 18px;
}
.tutor-role-confirmation span{font-size:14px;line-height:1.4}
.login .login-existing-account{
  width:100%;
  margin-top:2px;
  background:transparent;
  border-color:var(--line-strong);
  color:inherit;
}
@media(max-width:1040px){
  .landing-hero{grid-template-columns:minmax(0,1fr) minmax(390px,.85fr);gap:28px}
  .landing-showcase{padding:30px}
  .brand-composition-landing{width:290px;height:108px}
  .brand-composition-landing .brand-symbol{width:108px;height:103px}
  .brand-composition-landing .brand-wordmark-text{left:124px;font-size:43px}
  .landing-logo-stage>p{margin-left:124px}
  .landing-benefits{grid-template-columns:1fr}
}
@media(max-width:800px){
  .landing-page>header{height:74px;padding:0 18px}
  .landing-page .public-brand-copy{display:grid!important}
  .public-brand-copy small{display:none}
  .landing-page #account .theme-picker>span{display:none}
  .landing-page #account .theme-picker select{min-width:124px}
  .landing-page #app.landing-shell{padding:28px 18px 40px}
  .landing-hero{grid-template-columns:1fr;min-height:0}
  .landing-copy{padding:12px 0 6px}
  .landing-copy h1{font-size:clamp(44px,11vw,62px)}
  .landing-lead{font-size:17px}
  .landing-showcase{min-height:520px}
  .landing-benefits{margin-top:44px;padding-top:32px}
  .landing-feature-grid{grid-template-columns:1fr}
  .landing-feature h3{margin-top:18px}
}
@media(max-width:520px){
  .public-brand-symbol{width:43px;height:41px}
  .public-brand-copy strong{font-size:20px}
  .landing-page #account .theme-picker select{min-width:0;width:116px;font-size:12px}
  .landing-copy h1{font-size:43px}
  .landing-lead{margin-top:20px}
  .landing-actions{align-items:stretch;flex-direction:column}
  .landing-actions button{width:100%}
  .landing-points{display:none}
  .landing-showcase{min-height:0;padding:30px 18px}
  .brand-composition-landing{width:270px;height:100px}
  .brand-composition-landing .brand-symbol{width:98px;height:94px}
  .brand-composition-landing .brand-wordmark-text{left:110px;font-size:39px}
  .landing-logo-stage>p{margin-left:110px;font-size:11px}
  .landing-preview-row{grid-template-columns:40px minmax(0,1fr);padding:13px 12px}
  .landing-preview-status{display:none}
  .landing-benefits-heading h2{font-size:32px}
  .landing-audience{align-items:stretch;flex-direction:column;padding:22px}
  .landing-audience .landing-text-button{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .brand-composition-landing .brand-symbol-motion{display:none}
}
