/* Shared finish for the private homepage. Photo ratios and saved crops stay intact. */
:root {
  --finish-gold: #d6bc84;
  --finish-ink: #f1e8d5;
  --finish-muted: #bcc6be;
  --finish-line: #c5a76d38;
  --finish-ease: cubic-bezier(.22, 1, .36, 1);
}
html { scrollbar-gutter: stable; }
html:has(dialog[open]) { overflow: hidden; }
body { background: #10191b; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:8px; left:12px; z-index:110; padding:14px 20px; background:#e7d2a7; color:#14201d; transform:translateY(-150%); border-radius:4px; }
.skip-link:focus { transform:translateY(0); }
:where(a,button,input,[tabindex]):focus-visible { outline:2px solid #e8c98b; outline-offset:5px; }
:where(button,a) { -webkit-tap-highlight-color:#d6bc8426; }
.site-header { box-shadow:0 8px 28px #0000001c; }
.preview-ribbon[hidden] { display:none; }
.site-header .parent-button { min-height:44px; border-radius:6px; background:linear-gradient(145deg,#3e7155,#305a44); box-shadow:inset 0 1px #ffffff12; transition:background 220ms, border-color 220ms; }
.site-header .parent-button:hover { border-color:#82a78b; }
.site-header .menu-toggle[aria-expanded=true] span:first-child { transform:translateY(4px) rotate(45deg); }
.site-header .menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-4px) rotate(-45deg); }
.site-header .menu-toggle span { transition:transform 220ms var(--finish-ease); }
.site-header nav .nav-pending { position:relative; display:flex; align-items:center; justify-content:center; gap:5px; min-height:44px; padding:0 14px; border:0; background:none; color:inherit; font:inherit; letter-spacing:inherit; white-space:nowrap; opacity:1; cursor:default; }
.site-header nav .nav-pending[hidden] { display:none; }
.site-header nav .nav-pending-status { flex:none; padding:2px 4px; border:1px solid #dfc795; border-radius:4px; background:#c8ad79; color:#242622; font-size:7px; font-weight:600; line-height:1.1; letter-spacing:0; box-shadow:0 1px 3px #0002; transform:translateY(-5px) rotate(-8deg); pointer-events:none; }
@media(max-width:1160px) { .site-header nav .nav-pending { padding-inline:9px; } }
@media(max-width:950px) { .site-header nav .nav-pending { justify-content:flex-start; gap:8px; min-height:48px; padding:0 16px; text-align:left; } }
.hero { background-image:radial-gradient(ellipse at 50% 42%,#86724818,transparent 55%),url('/homepage/assets/fine-grain.svg'); }
.gallery-heading { margin-inline:auto; max-width:1300px; font-size:9px; letter-spacing:2.5px; color:#d1bb93; }
.gallery-heading:after { background:linear-gradient(90deg,#c9ab7140,transparent); }
.hero .gallery-slogan { display:block; margin:0 auto 24px; padding:0 16px; font:400 clamp(30px,3.6vw,48px)/1.2 Georgia,'Times New Roman',serif; letter-spacing:-.8px; color:#f8f5ee; text-align:center; }
.hero .gallery-slogan em { color:#d6bc84; font-style:italic; }
.hero .gallery-slogan:after { display:none; }
.hero .hero-visual[hidden],.hero .carousel-arrows[hidden],#gallery-dialog [hidden] { display:none!important; }
.hero.gallery-empty .hero-inner { display:none; }
.gallery-library { min-width:0; }
.gallery-upload-bar { display:flex; align-items:center; flex-wrap:wrap; gap:12px 18px; padding:16px 0; border-bottom:1px solid #d6c9b0; }
#add-gallery-photo { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:10px 18px; border:1px solid #9b814e; border-radius:5px; background:#243a30; color:#f3e6c9; font-size:14px; font-weight:600; }
#add-gallery-photo span { font-size:22px; line-height:1; }
#add-gallery-photo:hover:not(:disabled) { background:#344d3e; }
.gallery-upload-bar #gallery-upload-help { margin:0; font-size:11px; line-height:1.65; color:#6c715f; }
.gallery-library[inert] { opacity:.6; }
#gallery-list .order-buttons { flex-wrap:wrap; }
#gallery-list .remove-photo { width:auto; min-height:36px; padding:0 10px; font-size:12px; color:#8d3b32; border-color:#be8477; background:#f7eae2; }
#gallery-list .remove-photo:hover:not(:disabled) { background:#efd6ca; }
#gallery-empty-editor { margin:0 0 16px; font-size:12px; line-height:1.7; }
#gallery-removed { margin-top:20px; padding-top:14px; border-top:1px solid #d6c9b0; }
#gallery-removed summary { cursor:pointer; padding:8px 0; font-size:12px; color:#5c614e; }
#gallery-removed-list { list-style:none; padding:0; margin:8px 0 0; display:grid; gap:10px; }
#gallery-removed-list li { display:grid; grid-template-columns:40px minmax(0,1fr); align-items:center; gap:8px; padding:8px; border:1px solid #ded5c3; border-radius:4px; }
#gallery-removed-list img { width:40px; height:40px; object-fit:cover; border-radius:2px; }
#gallery-removed-list span { font-size:11px; line-height:1.5; }
#gallery-removed-list button { grid-column:1/-1; min-height:40px; padding:6px 10px; border:1px solid #b6b391; border-radius:3px; color:#345132; background:#f3ead9; font-size:12px; }
.photo-grid .gallery-photo .photo-frame { border-radius:9px; }
.photo-grid .gallery-photo[data-position="0"] .photo-frame { border-color:#d2b67d68; box-shadow:0 20px 42px #0005,0 0 0 5px #d6bc8405; }
.hero-bottom { max-width:1200px; margin:0 auto; padding:9px 24px 16px; border-top-color:#c8ad7826; gap:32px; }
.hero-bottom a,.hero-bottom .hero-contact { min-height:44px; display:inline-flex; align-items:center; font-size:10px; letter-spacing:1.1px; }
.hero-bottom .hero-contact { border:1px solid #c5a76d38; border-radius:4px; padding:0 20px; color:#e3ceaa; background:#d6bc8408; transition:background 220ms; }
.hero-bottom .hero-contact:hover { background:#d6bc8414; }
.education.education-cinema { padding-top:52px; padding-bottom:54px; }
.education-cinema .section-heading { margin-bottom:30px; }
.education-cinema h2 { font-size:clamp(32px,3.4vw,46px); letter-spacing:-1.1px; }
.education-pair { gap:28px; }
.education-option { padding:22px 22px 20px; border:1px solid #d6bc842b; border-radius:8px; background:linear-gradient(145deg,#ffffff05,#0f201d15); }
.education-option-title { gap:12px; margin-bottom:19px; }
.education-option-title>span { border-bottom:1px solid #bda36d70; padding-bottom:5px; font-size:11px; }
.education-cinema .education-option-title h3 { font-size:27px; letter-spacing:-.4px; }
.education-cinema .education-media { padding:5px; border-radius:5px; border-color:#c0a87540; box-shadow:0 9px 22px #13201b28; }
.education-media:before,.education-media:after { display:none; }
.education-film { border-radius:2px; }
.education-film-footer { font-size:10px; color:#b6bdb3; }
.education-cinema .education-option>p { font-size:14px; line-height:1.7; margin-top:18px; max-width:44ch; color:#d0d6ca; }
.education-cinema .education-contact { padding:0 20px; min-height:46px; border:1px solid #c3a36d66; border-radius:4px; font-size:12px!important; background:#15251f24; }
.education-contact svg,.finale-whatsapp svg { transition:transform 220ms var(--finish-ease); }
.education-contact:hover svg,.finale-whatsapp:hover svg { transform:translateX(3px); }
.mentor.mentor-team { --mentor-gold:#d7b77c; background:#303438; color:#f4efe4; }
.mentor.mentor-team:before { background:none; }
.mentor-team .mentor-boardlines { display:none; }
.mentor-team .mentor-copy .eyebrow.light { color:var(--mentor-gold); font-size:13px; font-weight:700; line-height:1.6; letter-spacing:1px; gap:12px; text-shadow:0 1px 2px #13232244; }
.mentor-team .mentor-copy .eyebrow.light i { width:24px; flex-shrink:0; opacity:.75; }
.mentor-team h2 { color:#f4efe4; }
.mentor-team h2 em { color:var(--mentor-gold); }
.mentor-team .mentor-inner { gap:32px; padding-top:60px; padding-bottom:18px; }
.mentor-team .mentor-copy>p,.mentor-team .mentor-support p,.mentor-closing>p { font-size:14px; line-height:1.8; color:#cbd2c9; }
.mentor-team .mentor-copy>.mentor-lead { color:#f4efe4; }
.mentor-team .mentor-copy>.mentor-note { margin-top:14px; font-size:15px; line-height:1.8; color:#d0d4ce; }
.mentor-team .mentor-support { border-left:2px solid #c7ad76; padding:22px 20px 22px 24px; margin-top:45px; border-radius:0 8px 8px 0; background:#3a3e41; }
.mentor-team .mentor-support h3 { color:#e0c18a; font-size:28px; font-weight:600; line-height:1.3; letter-spacing:-.35px; }
.mentor-team .mentor-support p { font-size:15px; line-height:1.85; font-weight:400; color:#e6e7df; break-inside:avoid; }
.mentor-team .mentor-support p em { color:#e0c18a; font-weight:400; }
.mentor-team .portrait { max-width:250px; box-shadow:0 18px 42px #14262126,0 0 44px #fff4d91a; }
.mentor-team .portrait img { border:2px solid #c7ad76; }
.mentor-team .portrait:before { border-color:#c7ad7699; }
.mentor-team .portrait:after { border-color:#fff8e688; background:none; }
.mentor-team .portrait-orbit { border-color:#d6bc8459; }
.mentor-team .mentor-closing { position:relative; padding:20px 44px 28px; background:none; color:#f4efe4; border:0; text-align:center; }
.mentor-team .mentor-closing-inner { position:relative; display:block; max-width:860px; margin:0 auto; }
.mentor-team .mentor-care { margin:0 auto; max-width:800px; font-size:15px; line-height:1.7; color:#cbd2c9; }
.mentor-team .mentor-care em { color:var(--mentor-gold); font-style:italic; font-weight:600; }
.mentor-team .mentor-team-statement { margin:12px 0 0; color:#cbd2c9; font-size:15px; line-height:1.7; }
.mentor-team .mentor-team-statement>span:first-child { display:inline; font:inherit; letter-spacing:normal; }
.mentor-team .mentor-team-detail { display:inline; margin:0; font:inherit; color:inherit; }
.mentor-team .mentor-manifesto { position:relative; margin:18px auto 0; padding:0; border:0; }
.mentor-team .mentor-manifesto:before { content:none; }
.mentor-team .mentor-manifesto .personal-quote { position:relative; margin:0; color:#e4cca1; font-size:22px; line-height:1.45; }
.contact-finale .finale-card { border-radius:7px; border-color:#c5a76d48; background:linear-gradient(145deg,#d6bc8409,#101c1a55); }
.finale-card>a { min-height:72px; }
.finale-whatsapp { min-height:48px; border-radius:4px!important; }
.site-footer { max-width:none; margin:0; padding:27px max(28px,calc((100% - 1200px)/2)); grid-template-columns:1fr; gap:18px 40px; color:#d6d2c3; background:#10191b; border-top:1px solid #c5a76d2b; }
.site-footer .footer-brand { color:#e1cfac; font-size:22px; }
.site-footer .footer-brand span { color:#a7b1a6; }
.site-footer .footer-links { display:flex; align-items:center; gap:24px; font-size:11px; color:#b8c2b8; }
.site-footer a { display:inline-flex; align-items:center; min-height:44px; }
.site-footer a:hover { color:#f0d9a5; }
.site-footer .footer-note { display:flex; justify-content:space-between; align-items:center; gap:15px; padding-top:12px; border-color:#c5a76d20; color:#9ea99f; font-size:10px; }
.site-footer .footer-note a { min-height:32px; color:#d3bd94; }
#preview-dialog { color:var(--finish-ink); background:linear-gradient(145deg,#263630,#15211f); border-color:#b8a17770; max-height:calc(100svh - 32px); width:min(530px,calc(100vw - 32px)); padding:42px; border-radius:10px; }
#preview-dialog h2 { color:#f1e5cd; font-size:36px; line-height:1.12; }
#preview-dialog #dialog-text { color:#bdc7bb; font-size:14px; line-height:1.75; }
#preview-dialog .eyebrow { color:#d6bc84; }
#preview-dialog .dialog-close { width:44px; height:44px; min-height:44px; top:10px; right:10px; font-size:25px; background:#13201ee0; color:#e0c99e; }
#preview-dialog:not(.parent-login-dialog) .dialog-content { padding-top:12px; }
#preview-dialog #dialog-link { min-height:48px; border-radius:4px; }
.parent-login-dialog .dialog-content { padding:50px 34px 32px; }
.parent-login-fields input { height:48px; border-radius:5px; }
.parent-login-dialog .parent-login-help { color:#b6c0b3; font-size:11px; }
@media (min-width:761px) and (max-width:1000px) {
  .mentor-team .mentor-support { margin-top:0; padding:20px 22px; }
  .education-option { padding:16px 14px; }
}
@media (max-width:760px) {
  .site-header .parent-button { font-size:11px; padding-inline:12px; }
  .gallery-heading { padding:0 18px; letter-spacing:1.8px; font-size:8px; }
  .hero-bottom { margin:0 20px; padding:4px 0 13px; gap:18px; justify-content:space-between; }
  .hero-bottom a,.hero-bottom .hero-contact { font-size:9px; letter-spacing:.65px; }
  .hero-bottom .hero-contact { padding-inline:13px; }
  .education.education-cinema { padding:36px 20px 40px; }
  .education-cinema .section-heading { margin-bottom:24px; }
  .education-option { padding:18px 14px 20px; }
  .education-cinema .education-option-title h3 { font-size:25px; }
  .education-cinema .education-option>p { font-size:13px; }
  .mentor-team .mentor-inner { padding:40px 24px 18px; gap:28px; }
  .mentor-team .mentor-support { padding:20px 18px; margin-top:0; }
  .mentor-team .mentor-closing { padding:18px 24px 28px; }
  .mentor-team .mentor-care { font-size:15px; }
  .mentor-team .mentor-team-statement { margin-top:12px; }
  .mentor-team .mentor-manifesto { margin-top:16px; }
  .mentor-team .mentor-manifesto .personal-quote { font-size:20px; }
  .site-footer { padding:22px 24px; grid-template-columns:1fr; gap:6px; }
  .site-footer .footer-links { gap:20px; font-size:11px; flex-wrap:wrap; }
  .site-footer .footer-note { grid-column:1; font-size:9px; }
  #preview-dialog { padding:35px 24px 28px; }
  #preview-dialog h2 { font-size:32px; }
  .parent-login-dialog .dialog-content { padding:27px 24px; }
}
@media (max-width:640px) {
  .education-pair { gap:20px; }
  .education-pair-contact { justify-content:center; }
  .education-pair .education-film { aspect-ratio:4/3; }
  .meeting-cameras { width:72px; gap:7px; }
  .camera-name { font-size:8px; }
  .meeting-top { margin:6px; padding:6px; font-size:8px; gap:5px; }
  .meeting-live { font-size:6px; letter-spacing:.5px; }
  .meeting-workspace { padding:0 6px; gap:6px; }
  .shared-notes { width:49px; padding:10px 4px; }
  .shared-toolbar>span:last-child { display:none; }
  .meeting-bottom { padding:6px; font-size:7px; }
}
@media (prefers-reduced-motion:reduce) {
  .site-header .menu-toggle span,.education-contact svg,.finale-whatsapp svg { transition:none; }
}

/* The shared-screen preview lets the board and participant names do the talking. */
.lesson-meeting .meeting-bottom { display:grid; grid-template-columns:1fr auto 1fr; }
.lesson-meeting .meeting-tools { grid-column:2; }
.lesson-meeting .meeting-count { grid-column:3; justify-self:end; white-space:nowrap; }

/* First photograph is visible before the gallery module starts. */
@media(max-width:760px){.photo-grid .gallery-photo.hero-first{width:72%!important}}
