.photo{display:block;width:100%;padding:0;border:0;text-align:left;color:inherit;font:inherit;cursor:pointer}.photo:focus-visible{outline:3px solid #c5f16a;outline-offset:3px}.photo:after,.card:hover .photo:after,.card:focus-within .photo:after{animation:none;opacity:0}.card.scanning .photo:after{height:28%;top:-30%;border-bottom:3px solid #e4ffc9;background:linear-gradient(transparent,#92ff6644);box-shadow:0 10px 24px #a7ff7499;animation:identify-scan 1.2s linear forwards;opacity:1;z-index:2}.card.scanning .photo img{filter:saturate(.4) contrast(1.1)}.scan-hint{position:absolute;bottom:15px;left:12px;right:12px;z-index:3;background:#0c1a12d9;border:1px solid #b8ef7255;border-radius:7px;color:#d8f5bc;padding:10px 7px;text-align:center;font:10px monospace;letter-spacing:.4px;backdrop-filter:blur(8px)}.identified .scan-hint{color:#d4ffb1;border-color:#c5f16a99}.person{position:relative}.person>span:not(.arrow):not(.name-placeholder){opacity:0;transform:translateY(7px);transition:opacity .35s,transform .35s}.person .arrow,.person>.site-status{opacity:0;transition:opacity .3s}.name-placeholder{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#96aa9a;font-size:14px;transition:opacity .2s}.identified .person>span:not(.name-placeholder),.identified .person>.site-status{opacity:1;transform:none}.identified .name-placeholder{opacity:0}.effects-off .person>span:not(.name-placeholder),.effects-off .person>.site-status{opacity:1;transform:none}.effects-off .name-placeholder,.effects-off .scan-hint{display:none}@keyframes identify-scan{0%{top:-30%;opacity:0}8%{opacity:1}92%{opacity:1}100%{top:100%;opacity:0}}@media(prefers-reduced-motion:reduce){.person>span:not(.name-placeholder),.person>.site-status{opacity:1;transform:none}.name-placeholder,.scan-hint{display:none}}

/* Compact directory: portraits appear immediately below navigation. */
header{height:76px}#teachers{padding-top:12px}.section-head{padding:18px 0 24px}.section-head h2{margin-top:7px;font-size:30px}.section-head .eyebrow{font-size:9px;letter-spacing:1.7px}@media(max-width:760px){header{height:68px}#teachers{padding-top:6px}.section-head{gap:14px;padding:14px 0 20px}.section-head h2{font-size:27px}.section-head .eyebrow{display:none}}
.scan-hint{font:600 15px/1.4 Manrope,Arial,sans-serif;padding:12px 9px;letter-spacing:0}.name-placeholder{font-size:16px}.python-list{display:flex;align-items:flex-end;flex-wrap:wrap;gap:7px 3px;padding:22px 20px;margin:0 0 26px;border:1px solid #b9ec6d35;border-radius:14px;background:#111c16ed;font:14px/1.5 Consolas,monospace}.python-prefix{color:#d4d9e4;padding-bottom:7px;white-space:nowrap}.python-item{display:flex;flex-direction:column;align-items:center;gap:5px;background:transparent;border:1px solid transparent;border-radius:7px;padding:3px 4px 6px;color:#c5f16a;font:inherit;cursor:pointer}.python-index{font-size:11px;color:#8da995;line-height:1}.python-item:hover,.python-item:focus-visible{background:#c5f16a18;border-color:#c5f16a66;outline:none}.python-item:hover .python-index{color:#e3ffc1}.python-comma{color:#b3c4ba;padding-bottom:7px}.card{scroll-margin:25px}@media(max-width:680px){.python-list{font-size:12px;padding:16px 10px;gap:6px 1px}.scan-hint{font-size:15px}}
/* Readable first name and patronymic on every screen size. */
.person small{font-size:18px;line-height:1.45;font-weight:500;color:#c3d1c7;margin-top:7px}.person{min-height:110px}@media(max-width:760px){.person small{font-size:16px}}@media(max-width:480px){.person small{font-size:18px}}
.section-head .eyebrow{font-size:12px;letter-spacing:1.8px}@media(max-width:760px){.section-head .eyebrow{display:flex;font-size:11px}}@media(max-width:480px){header .logo{font-size:16px}header .mark{margin-right:8px}}
body>header{z-index:10}.site-menu{position:relative}.menu-toggle{display:flex;align-items:center;gap:24px;background:#c5f16a;color:#172015;border:1px solid #c5f16a;border-radius:12px;padding:12px 20px;font:700 14px Manrope,Arial,sans-serif;cursor:pointer}.menu-toggle:hover{background:#d6ff8b}.menu-toggle>span{font:22px/1 monospace}.menu-toggle:focus-visible,.menu-panel a:focus-visible{outline:2px solid #c5f16a;outline-offset:4px}.menu-panel{position:absolute;right:0;top:calc(100% + 12px);min-width:300px;max-width:calc(100vw - 40px);background:#142019;border:1px solid #c5f16a66;border-radius:14px;padding:18px;box-shadow:0 20px 60px #0009;font:14px/1.6 Consolas,monospace}.menu-panel[hidden]{display:none}.menu-tag{color:#99be78}.menu-panel ul{list-style:none;padding:8px 0 8px 12px;margin:0}.menu-panel a{display:flex;align-items:center;gap:9px;padding:10px 8px;border-radius:6px;color:#e4f2dd;white-space:nowrap}.menu-panel a:hover{background:#c5f16a15;color:#c5f16a}@media(max-width:480px){.menu-toggle{padding:10px 12px;gap:12px;font-size:12px}.menu-panel{min-width:280px;font-size:13px}}
.menu-toggle{background:transparent;color:#c5f16a;border:1px solid #c5f16a;border-radius:8px;padding:8px 14px;gap:16px;font-weight:500;box-shadow:none}.menu-toggle:hover{background:#c5f16a0d}.menu-toggle>span{font-size:18px}@media(max-width:480px){.menu-toggle{padding:7px 11px;gap:10px}}
.header-controls{display:flex;align-items:center;gap:18px}.language-switch{display:flex;border:1px solid #c5f16a40;border-radius:7px;padding:3px;gap:2px}.language-switch button{border:0;background:transparent;color:#9eb493;font:12px Consolas,monospace;padding:6px 7px;border-radius:4px;cursor:pointer}.language-switch button[aria-pressed="true"]{background:#c5f16a1f;color:#d7ffa1}.language-switch button:focus-visible{outline:2px solid #c5f16a;outline-offset:2px}@media(max-width:480px){.header-controls{gap:8px}header{flex-wrap:wrap;height:auto!important;min-height:76px;gap:12px;padding-top:12px;padding-bottom:12px}.language-switch button{padding:5px}.menu-toggle{padding:7px 9px}}
/* Keep navigation aligned to the right even when the header wraps. */
.header-controls{margin-left:auto;flex-shrink:0}.menu-panel{min-width:0;width:300px;max-width:calc(100vw - 56px)}.menu-panel a{white-space:normal}.menu-panel a>.menu-tag{flex-shrink:0}.menu-panel a>span:not(.menu-tag){min-width:0;overflow-wrap:anywhere}@media(max-width:480px){.header-controls{margin-left:auto;justify-content:flex-end}.menu-panel{width:280px;max-width:calc(100vw - 40px)}}
.person .teacher-site-label{display:block;margin-top:10px;font-size:13px;line-height:1.5;font-weight:500;color:#c5f16a;text-decoration:underline;text-underline-offset:3px}.person:hover .teacher-site-label{color:#e2ffb2}.person:has(.teacher-site-label){min-height:140px}
