@import url(https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,500;6..72,700&display=swap);:root{--bg:#f4f5f1;--paper:#fdfdfb;--surface:#fff;--ink:#1e2a27;--muted:#66716e;--line:#d9dedb;--accent:#0f766e;--accent-hover:#0d5f59;--shadow:0 18px 44px #11201c14;--radius-lg:22px;--radius-md:14px}*{box-sizing:border-box}body{background:radial-gradient(900px 320px at -10% -10%,#0f766e1c,#0000 55%),radial-gradient(900px 320px at 110% -20%,#0e749014,#0000 62%),#f4f5f1;background:radial-gradient(900px 320px at -10% -10%,#0f766e1c,#0000 55%),radial-gradient(900px 320px at 110% -20%,#0e749014,#0000 62%),var(--bg);color:#1e2a27;color:var(--ink);font-family:Manrope,sans-serif;margin:0}.page-shell{min-height:100vh;padding:28px 18px 46px}.hero{animation:rise-in .55s ease;background:linear-gradient(145deg,#ffffffd6,#ffffff9e);border:1px solid #ffffffa6;border-radius:24px;box-shadow:0 18px 44px #11201c14;box-shadow:var(--shadow);margin:0 auto 28px;max-width:1080px;padding:30px 30px 24px}.eyebrow{color:#0f766e;color:var(--accent);font-size:.75rem;font-weight:700;letter-spacing:.14em;margin:0;text-transform:uppercase}.hero h1{font-family:Newsreader,serif;font-size:clamp(1.9rem,2vw + 1.2rem,3rem);font-weight:700;line-height:1.07;margin:8px 0 10px}.hero-subtitle{color:#66716e;color:var(--muted);margin:0;max-width:66ch}.search-bar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.search-bar input{background:#fdfdfb;background:var(--paper);border:1px solid #d9dedb;border:1px solid var(--line);border-radius:12px;color:#1e2a27;color:var(--ink);flex:1 1;font-size:.95rem;min-width:240px;padding:12px 14px}.search-bar input:focus-visible,button:focus-visible,textarea:focus-visible{outline:2px solid #0f766e61;outline-offset:2px}.result-count{background:#0f766e14;border-radius:999px;color:#66716e;color:var(--muted);font-size:.84rem;padding:7px 12px}.container{margin:0 auto;max-width:1080px}.teachers-grid{grid-gap:16px;display:grid;gap:16px}.teacher-card{animation:rise-in .45s ease;background:#fff;background:var(--surface);border:1px solid #d9dedb;border:1px solid var(--line);border-radius:22px;border-radius:var(--radius-lg);box-shadow:0 1px 0 #0b1c1708;padding:18px}.teacher-card:nth-child(2n){animation-delay:.05s}.teacher-card:nth-child(3n){animation-delay:.1s}.teacher-head{align-items:center;display:flex;gap:14px}.teacher-card img{border:1px solid #0f766e40;border-radius:20px;height:72px;object-fit:cover;width:72px}.teacher-card h2{font-size:1.08rem;line-height:1.3;margin:0}.comment-meta{color:#66716e;color:var(--muted);font-size:.85rem;margin:6px 0 0}.ratings-panel{background:#fbfcfb;border:1px solid #d9dedb;border:1px solid var(--line);border-radius:14px;border-radius:var(--radius-md);margin-top:14px;padding:12px}.ratings-summary{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.ratings-summary p{color:#66716e;color:var(--muted);font-size:.9rem;margin:0}.ratings-summary p strong{color:#1e2a27;color:var(--ink);font-size:1.02rem}.ratings-summary p span,.ratings-summary>span{color:#66716e;color:var(--muted)}.ratings-summary>span{background:#0f766e14;border-radius:999px;font-size:.8rem;padding:5px 10px}.ratings-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px}.ratings-grid p{background:#fff;border:1px solid #e6ebe8;border-radius:10px;color:#39504b;font-size:.82rem;margin:0;padding:8px 10px}.rate-form{border-top:1px dashed #d9dedb;border-top:1px dashed var(--line);margin-top:14px;padding-top:12px}.rate-form h3{color:#66716e;color:var(--muted);font-size:.92rem;letter-spacing:.08em;margin:0 0 10px;text-transform:uppercase}.metric-row{align-items:center;border-bottom:1px dashed #e3e8e4;display:flex;gap:12px;justify-content:space-between;padding:10px 0}.metric-row:last-of-type{border-bottom:0}.metric-head p{font-size:.88rem;font-weight:600;margin:0}.metric-head span{color:#66716e;color:var(--muted);display:block;font-size:.77rem;margin-top:2px}.stars-input{display:flex;gap:4px}.star-button{background:#fff;border:1px solid #d9dedb;border:1px solid var(--line);border-radius:8px;color:#a1aea9;font-size:1rem;height:30px;line-height:1;margin-top:0;padding:0;width:30px}.star-button:hover{background:#f0f6f5;color:#6a817b;transform:none}.star-button.active{background:#fffaf0;border-color:#f7c469;color:#f59e0b}.rate-form>button{margin-top:12px}.rate-form>button:disabled{cursor:not-allowed;opacity:.7}.toggle-comments-button,button{background:#0f766e;background:var(--accent);border:0;border-radius:11px;color:#fff;cursor:pointer;font-size:.88rem;font-weight:600;margin-top:14px;padding:9px 14px;transition:background-color .18s ease,transform .18s ease}.toggle-comments-button:hover,button:hover{background:#0d5f59;background:var(--accent-hover);transform:translateY(-1px)}.comments-section{border-top:1px dashed #d9dedb;border-top:1px dashed var(--line);margin-top:14px;padding-top:14px}.comments-section h3{color:#66716e;color:var(--muted);font-size:.92rem;letter-spacing:.08em;margin:0 0 12px;text-transform:uppercase}.comments-section ul{grid-gap:8px;display:grid;gap:8px;list-style:none;margin:0;padding:0}.comment{background:#f8faf9;border:1px solid #e7ece8;border-radius:14px;border-radius:var(--radius-md);padding:10px 12px}.comment strong{color:#66716e;color:var(--muted);font-size:.82rem}.comment p{line-height:1.45;margin:5px 0 0}.comment-form{margin-top:10px}textarea{background:#fdfdfb;background:var(--paper);border:1px solid #d9dedb;border:1px solid var(--line);border-radius:12px;color:#1e2a27;color:var(--ink);font:inherit;min-height:84px;padding:11px 12px;resize:vertical;width:100%}.loading{background:#fff;background:var(--surface);border:1px solid #d9dedb;border:1px solid var(--line);border-radius:22px;border-radius:var(--radius-lg);color:#66716e;color:var(--muted);padding:28px;text-align:center}@media (max-width:720px){.page-shell{padding:14px 12px 26px}.hero{border-radius:18px;padding:20px 16px}.teacher-card{border-radius:16px;padding:14px}.teacher-card img{border-radius:16px;height:60px;width:60px}.ratings-grid{grid-template-columns:1fr}.metric-row{align-items:flex-start;flex-direction:column}}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}