.entrance-page{background:var(--paper);color:var(--ink);min-height:100dvh}.entrance-shell{width:min(760px,calc(100% - 40px));margin:0 auto;padding:36px 0}.entrance-brand{display:block;width:150px}.entrance-brand img{display:block;width:100%;height:auto}.entrance-tagline{font-weight:700;color:var(--muted);margin:12px 0 32px}.entrance-shell h1{font-size:clamp(32px,5vw,54px);line-height:1.08;letter-spacing:-1.5px;margin:0 0 16px}.entrance-lead{font-size:18px;line-height:1.5;color:var(--muted);margin:0 0 28px}.entrance-choices{display:grid;gap:14px}.entry-choice{display:flex;align-items:center;justify-content:space-between;gap:14px;border-radius:20px;padding:24px;color:#111;text-decoration:none}.entry-choice strong{display:block;font-size:19px;font-weight:900;letter-spacing:.4px}.entry-choice small{display:block;font-size:16px;line-height:1.4;margin-top:7px}.entry-choice>span:last-child{font-size:36px;font-weight:900}.entry-teacher{background:var(--green)}.entry-student{background:var(--pink)}.entry-self{background:var(--yellow,#f6c744)}.entry-choice[aria-current=true]{outline:3px solid #111;outline-offset:3px}.entry-login-panel{padding:24px;border:1px solid var(--line);border-radius:20px;background:#fff;margin-top:24px}.entry-login-panel h2{font-size:26px;margin:0 0 10px}.entry-login-panel label{display:block;font-weight:700;margin:16px 0}.entry-login-panel input{display:block;width:100%;border:1px solid var(--line);border-radius:12px;min-height:50px;padding:12px;margin-top:7px;font-size:16px}.entry-primary{width:100%;min-height:52px;border:0;border-radius:12px;background:var(--blue);color:#fff;font-weight:900;font-size:14px;padding:14px;cursor:pointer}.entry-login-panel>a{display:block;margin-top:16px;color:var(--blue);font-weight:700}.entrance-shell footer{display:flex;gap:24px;margin-top:32px;font-size:14px;color:var(--muted)}#entry-status{line-height:1.5;color:var(--blue);font-weight:700}.self-layout{max-width:760px;margin:auto;padding:28px 20px 48px}.self-layout h1{font-size:clamp(34px,5vw,52px);letter-spacing:-1.5px;line-height:1.1}.self-panel{border:1px solid var(--line);border-radius:20px;padding:24px;background:#fff;margin:20px 0}.self-panel h2{font-size:24px;margin:0 0 14px}.self-panel p{line-height:1.5}.self-panel button{margin:8px 0}.self-header{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:1000px;margin:auto;padding:24px 20px}.self-header nav{display:flex;gap:18px;font-size:14px}.self-layout .pupil-library-entries a{display:block;padding:16px;border-left:5px solid var(--green);background:#f7f2e8;margin:12px 0;border-radius:12px;color:var(--blue)}@media(min-width:900px) and (max-height:850px){.entrance-shell{padding-block:22px}.entrance-brand{width:100px}.entrance-tagline{margin-bottom:18px}.entrance-shell h1{font-size:40px}.entry-choice{padding:18px 24px}.entrance-lead{margin-bottom:20px}}@media(max-width:430px){.entry-choice{padding:20px 16px}.entry-choice strong{font-size:17px}.entry-choice small{font-size:14px}}

@media(max-width:760px){.entrance-shell{width:calc(100% - 40px);padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom))}.entrance-brand{width:130px}.entrance-tagline{margin:10px 0 28px}.entrance-shell h1{font-size:34px;letter-spacing:-1px}.entrance-lead{font-size:15px;margin-bottom:22px}.entry-choice{padding:20px 16px;border-radius:20px;min-height:94px}.entry-choice strong{font-size:16px}.entry-choice small{font-size:14px}.entrance-choices{gap:12px}.entry-login-panel{padding:20px}.entry-login-panel h2{font-size:26px}.entrance-shell footer{font-size:12px;gap:20px}}

/* One complete entrance screen, including sources, at the current viewport. */
html:has(.entrance-page){height:100%;overflow:hidden}
.entrance-page{height:100dvh;min-height:0;overflow:hidden;position:relative}
.entrance-page .entrance-shell{position:absolute;top:0;left:50%;transform-origin:top center;transform:translateX(-50%) scale(var(--entrance-scale,1));padding-block:16px;width:min(760px,calc(100vw - 32px))}
.entrance-page .entrance-brand{width:clamp(70px,12vh,110px)}
.entrance-page .entrance-tagline{margin:6px 0 16px;font-size:16px}
.entrance-page h1{font-size:clamp(26px,4.2vh,40px);margin-bottom:10px}
.entrance-page .entrance-lead{font-size:14px;margin-bottom:16px;line-height:1.35}
.entrance-page .entrance-choices{gap:10px}
.entrance-page .entry-choice{padding:14px 18px;min-height:70px;border-radius:18px}
.entrance-page .entry-choice strong{font-size:16px}.entrance-page .entry-choice small{font-size:12px;margin-top:4px}
.entrance-page #entry-status:empty{display:none}
.entrance-page .site-source-strip{margin-top:16px;padding:10px 0;flex-direction:column;align-items:stretch;gap:8px}
.entrance-page .source-strip-copy{max-width:none}.entrance-page .source-links{flex:none}
.entrance-page footer{margin-top:10px;gap:18px;font-size:11px;flex-wrap:wrap}
