/* ==========================================================
   Westchester — shared styles (loaded on every page)
   ========================================================== */
:root{
  --paper:#fcfbf9;--white:#fff;--tint:#f4efe7;--line:#e7e2d9;
  --navy:#13233f;--navy-2:#243b63;--ink:#13233f;
  --text-body:#3d4a5f;--text-muted:#5f6b7d;
  --red:#c23b3f;--red-dark:#a52f33;--red-tint:#f8ebe9;
  --green:#1f7a4d;--green-tint:#e6f1eb;
  --sans:'Onest','DM Sans','Segoe UI',system-ui,-apple-system,sans-serif;
  --serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --radius:8px;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
button,input,select,textarea{font:inherit;color:inherit}
a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--red);outline-offset:3px}
[hidden]{display:none!important}
fieldset{border:0;min-width:0}
legend{float:left;width:100%}
legend+*{clear:both}
.wrapper{width:100%;max-width:1200px;margin:0 auto;padding:0 32px}

/* ---------- Header ---------- */
.header{position:relative;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0}
.header::after{content:'';position:absolute;bottom:0;left:50%;width:100vw;height:1px;background:var(--line);transform:translateX(-50%)}
.logo{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}
.logo-mark{display:block;width:58px;height:52px;flex-shrink:0;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALsAAACoCAQAAAAS21fUAAA690lEQVR42u3dd5wV1f0//ufM3N2lN6UIKooUsWDvvWKJJZrYNZaUj0bT84kmJp+YYokxpleNsfeu2HvD3kVBQVEERHrd3Tszvz/u2cvd3bvLQsTy/Tk8gC1zZ855nfd59/f7RDvowFVQdKK/Kir4/Gp9pRL/cZxE2rEPFDr4WG5wlp5ykVz+OdLlKxLJES/PhzoGey4x3f2+KJOIRJ+j3QJ6rg3/f4Swl9b0Kl+USpzuwY5vp/+nr0RqL6dLLPJM4AofKeyp3H3m6IEBHvsc8fJ1JHjcNLHso4Y9l5jpYfvjQD9S/zneIrkuDgZXszJgL7GZW+2v0eo28NRKYTNRxd/qnDJf5uer3Z9X/P3oroLUaP3klriLjoO+PLBncvdrkGBHT/0XYnUpuFEZnFy2UqCpRjzN35t3YDnbQoSvI/Kad0UrC/bIJK/aBDv67XIMtHKquawdcDvppqs+anXXVUE/NVhVVznq9FEnF0lEYdpRmSQyudRMi0Uii0yTWGwa5ppvkZmWWNim8hsHBTAPo1v27GKZ1WwvE7sPieLKgL304EdsIreVrhYGfbUtam6aRtpqErW666GXvvroZ3X9raKzPhI99NRF7Uqg8swc9WZoMNcCs83woUneNcNCCyyUtaDVSFImk+pEEstsrrOi2G3Lu1+W1+p80LcU9bOpR8QV3H0pRWdhoEunsYoB+ulrkEEGWVt/PXVtF9y8THXt8fC8glm0z9BisT5YrdXvi5aYb673TfSOqT7wvmlmWdyMdkt7Ia9gSqVrJxR84Pnl4+zLB3uGpyxWh+08IpaJy1DnFYPsY6DhRljTIGtYXZ82oM1acPulPP+jNsjyChbS9F0kVtBNN6tZ167lexeZabK3vOVtb3nLh4oVoC5dgsh24HkLlkeLWX7YI1O8ZjNsKZLKy/TexUBrG2ZjQw3UX68qAjmv2Bel/2Mf1xUtQ9PJK5aiiy7WCJAy33TvmeQVr5noXYvLAPe1gVzkcdHKgz0WqdHoSZthQzkGGGF9Q61nfQNaPCuVVzCf+L+g07ziSc3ZV+m5lTstacFwohVYjrzinbHuuhtq5zCn903yqnHGe8GGuikquE8uUqjChFYY9ibIUlkwfsc6SWawew20uu7NKDqrADpZbiaQlzdvUv5pFrQWZW7e+slxO0Bn5adXPrMJ0qjNOVdbhFhiDWvYMeyCxXIFSzSqqzAfE1H5HW3DukNbcMeiCibC6kZYz462tEbF5JpD3VEe2/T5YvgqaePeEnVPMlukjwE6YZ4JcplIrNYGUi+Xd1ZsPZkFMrE+VUkqbfauVCySyTo4g8oliMs/azTV6x71mnHeKO/FWNxMfi0T9qhCR6k12LY2t7GNdWsxgeUVfWkFfeUtPtloroXmmeV9ve0VYFzsd/7uvTCqNf2f4/zD/1R8bra51qr4/jWXOksnNXqZJ7Gagt4GWdfpcrnYbE97W1dDratnK1izZqxxWQQUtfrZOC94xhNesaBi72QdpfaeRtrOdkYZXKaaLNBY1EF+nDcTnCWgF6iXS/TGEv823gcm+VBqpnnh08O8IReZaT9jbeFr1vSe3xjvaJd4x3hj/EFnFxpge0WPe94PcZqdbes9Tzvbq7o7Um6a9z2N9b0ilbjad0wL7xlgb7+xinFeMtRAq1ZRaovtsqPms61kf++b4HEPetWUjlB7LDfMWbY1oJlwXParVdmAzSnjQn/zoqLYKvZzoXetCTZX9AJOt56XnK+bN/WUG+1eR7osPGOyde3vKpnYxY7V3Xt6BAp+2pa4yQEyMfZ3m609Xt4BW9vA43jO5vijfcx3md/iCVs7xZ+DNjbSIGtY03pWN0ifFgwp79ACZIG/l655XvRL97ak+EIrBpMZ4qBgXy5bOJa2ZemeqGKI0002wWQvOcihUgVfc4GBvmMVd3vAzf6hTierucswtzlAbrTtHW6Bv5mul2vcq5OfokEitab1PYVGBQuRm6NLEF/zgpAr8fjMu3L9FKUKcuvZxGTwd7mjnQw2MtHtOuMl7G8bE/zbsxX7/RI7+LUNrWctfStQSIPca81kKvd2Jhfrbgdbu0fSPuyZyP3GGSFvR8tpWlMVizLPPC97w6te91KZYTDfoQoedIH1jdUNp9rbg2bppNERhsl0keEtW4sc6c8mGeGfIkMNk6sNTtZfawj6RIzF5lgzUHsh7NREUVxBkYlLnecFe7kPvCoyAoskCnZzgwFSL9jWzZjpKvV+5BS3+ZFZenjX7+ToaRWb28qWhukfZhyh2KYUKOGSy6Wub23DFloBWtDgz/5SxbGTBw0iKT+UBR71jBc9pVFPb4TJHmVDwwzwmm95U4Nad4uN1s0isTo/cqfJRkoNkYn1U6PRLAWZjf3FRhYbJzdILBMFJXHPZgpiqr4Nt0CmET0UcKvXpE7zQ7lIo8jlvqafTG5jB+rjNfN8Vy71gkVY2wBf9Z5fqTPKXD/wLwuMcL9rEFvPJv6ol6JCGb1iG+wnk3jWuNZCtVDVBXCb3wVf31LpnlRsoWlexS5iz9sHbOFw6+vl/9xrHf8Jz9rSa8410boWyI1FF7nUZi42XJ1L7C1CT7UazUKmk5MwydxW/pa0mapZsFtZhqRl73+JFGbgKUfK3GaUWqXch4KdPe11W/uFQ9XY1o3o7z/2likEjWmwTG64VG9096HcUE9ikif92WNecaZejvS4L9reltYKKGZVZdq1coWWRFwN9thkj9hd1oKNzDLNHZ7xmnfMtaaJcht7zEN+6hLrgpHuNNmb1pK5wigne1oD1pEb6yg/MEpBd8eAo8PQeutpoRnhPQ1qNCq2ouUk8O6mce6hX+CwU9zeymCaYr6pQcinconMaR7wjEmOdq4fOkom0s9XgsYyGQVriLGBTXTDEq9guFxubWs7yNrq9Jf7gpn+5E9Y014OMjr4qJqPOHNvNTdZoaobIHe13YPSN9frXvKcFzyrqznhnu/4PiLdbOty9FdUVGMIFnvP2mqd5Ej/8gByBznDbJe72vq2sbM99ZaFhaVOL+/7MEBWEOmmk4ayObV0GpXkcbZh4evn3drMBoBv+bUZNpeUP5fr7X6/cpEZXnK0m1yqLljCMAl9DURulOfkmGoy1pXKPKfRDrqqU6PR0ba2gdR2uvinf9rK2XZuBnwm9qIXquntcRtxpDvUB8f9j2zt6/5urAPc5H3P6iR2rwFBmmeetLreEjWSQPNTJaapNVmuKJdbwxjrouhFf3eYzdwbhF8kV6M35gSQY/TVF+9LK0ZYdL/ZFcswU1G9ekWzmm3rWeZgDfS1uiVyN/l9eG5353jBqXqLXO8HYrlCYJ7vYYAeQYCXLPRXLcEuCmod4gdyGxmNTOo2DVK/dIfpTvOkvTwoqrDrM7mX5dU0weqwx6a4IXx3gutdIZFYYCer2dS3ZF5xmlgqlppgvaADsY5anGdPQ801JWzuSGZrzxjjVDvrjkm+aGKggwx9MSvsNFI1NhWZbEpwP2RyE+zmCUnZ3RRLFBSCZrM0MhSVA8ypb/muyJl+jUsdIlU00FmeMlTianPD82KpKVgryJAm7eQZxP7kz37pXaNFrvVbFCTGoo+RUv2caX31zmim1UQiN1cX+3Gb3sZrwm+3cJDDfVnqTuej6KfWFPm9VxQw3Tzrlae7mv54ziRb6G6KOUHzidHV3s7ygJecJLbApQH2HKtgToVTla/JLXGHWIOiBpEXxEGZrAmOiyaAS9ZlTVDm8nKWVuZQX7XEOBvjFdcGz3i9ob4nVSyb8MzzIYa08Bu9hE4ec4qfiWyERrlcot5z2FQfRY3mmik2r4Ip5hLzPFQ9ABK3Ga5+0RKJXKZR5rd6iJ1hqkg358oVfQu5idigbGp1sg62NMED/s8c70vt4WH8yD0aNcis5S82E5lZfluqHxYoBjUskdnDUTLneFcnBZ3MdX4wjmaYp6BghlnIzfShgoI5Zmow2zsyBcPC8jT4mQX6o1biJbFi2ZbuFrwymdwUMwO1L4UtNQEbme5FG8ttGIzDHG94G7tL1Klxo+kyIytAzuQe8WHYvx2EPTbJo+GrGrlBzpCZ61SJ3FCRGg+4SORlDA+rnAV6eddcmYNtoGi2e72E3ztbjVxuMdat2I61EkMULDLRmxaWl/CfvmiSdX3duU403NNS3Tytn+8rKtpTf/NMs6oDFRV9w6pusJrdFRUdbgPrGWVt56IH3pL6X1PU6mSRS2RG6yYN+3GKFKs1S0P5wLsYpZNRNtPZkLDfMjysKPYbX3K2bztJrptTm7n4Ipe0hXChzaBG7ga7l7lo6hSXeMElDjfas3KNYj9whIlYu+LxwzHDFCOt6XmJlyWmY3f3eNoW6GyRZ2V2CBN4xJkmKCraGDeElD86u8F//NsVUpHB9ra7Tc302yCKU51008mfNIR9GdvWb80xTWyW98UWa7S6edbFJq4z1up21cf9ZtnUmUEizZV6QyK2WdmMTzHeXGwql1loFwV/9Z4zwQPoaSt3uR497eAXNihrMrnEB+7WRoJeoU1Hf+J2i3UOoQUSf7CjyHe8brzEsS40yy9M0Eu/Co/OYDR6y3qBo9+C6RhqjP38yCiv+JO3HOWgMMh3TbaWnQ3Q0xq2CUsYyUWOdawGmUhdeMdA32821prgY2m6Tm5j9+Z+6ACPeMQrZtva3o7XJbg5jnVTEMF/sLUD1QVkJiGykUzRBWKpU63rTInFnsEoYyzxU7+3utsVKrz5qYIbzVMb1NlleiDjiuDGfXYtPyqVON5F+IcH3WKarY1Tq2gXdwcAU4kJRsr9xikmGu9WF2ArY13m5LLluZ4TnVzVmdTaRx9V2KK5QrPQSwmcYguTqlriSDUfv8CnI3d5wtumes84nbyrj8g5XjbFI1YxvuyX/5evO9d3RV6whcxPnCExwQi5m+xXoSxmIpt5PoyxVbSp0CyaVAzqWndb2MOONpCXhx3JnONWs/2v2EjdnGcvmaJRZXqKjQsS4TSnWwIGGWQ3HGm0GeYrWCPsjqhVeEEzp2mTgZQ3y1yJWu3QwjL3bx6WoDS7psh/Us5YGG10uHOueqvIRD5wm7n4wLo2tbURXnOe2MYSjJVhJ4ncfETmiysIIJL7lds95pXw01i8NBunUI6VlqhkfTvYzdZWr8Lti/r6pRMt0mgDudEOcY0k6DHkYkd5Ti+DrG2okda1pr66hoGUTKBqwbX2nMt5K99M3mYoeumUo6q/jdtQIdKybtOzrGic5xyTve4VT3ramPKibuop/TwuspodEPmgyogikX3sg3EecJexPgiQF+Sypk3bw9b2soNNAgDVIkkFqa/7j6fERopkfmuMBdatyHS51BKrl3l9ZSC6MgzSEuZctfTQtp2qHUnPyFo9rWXmZWunQ94s+algiCHB1feBcV71pG76ONDUEJ2abjW13gX9pC2eXGKKI410ktnGutvdXivRfrRDYm+H28mgCidm1CZVJJ61ldTt9lGvznmudbceregrbScm2TyxYVnpHKVw2aJybD4NgcHmoYWegbkkui4zGyJvlhfT1lJUD9aRe96dHvG86fi1HzvXqXjKZi328NJQaNMuS73kTrd4Ktrh0ZCIk4Ucr2gZIi7xLVd4ycCqIrEUU4nanGZb23y+mWZaaI7Z6k0z3wwzLbLIHDnmBUkRSS1qpR3EuoUJJ3qpk+mkl856GKCTgTrrrqvuellVH53bjJJVJk9VX4ClJDLHax6yk23d6CCM9kO7tIlf6flNBPFitMO1vhRCZR1NuMjMLafX5W3kWi0NYbde/3nmmGqy900xxwdm+9CH5mj4GLLDuuitvy766m6wAda2mr5VlyJtM5umkn5L4vqPLvGsL7qhKr03B7+orqRAHuhsI1qJuWXBH7W5JVsOdJ4PTTXZ28Z7xwdmmFu1GqQlS8pb/auqWK0uPqMWupK2clZ01sdq+lnXMGsbaKDuLXII0rJMaql9LYX/fV30qoJL6yyd5/ws2iGW6eZU39eprF4tm+KjNmPlJaDfN9Ekb5nkHVPMbsUWli5OXuE7/DhyIZtXjORVrMjeeupjHUOta5gh+jebe9pqth0j2BK2c53tPI3RDk0mxgZ+6UAUWz20+mZpSdOzvG2SccZ50ztmtKCsuJzB+PFBvDxLEZX1n5Y7oofBhhtpfcOtrXcLObZ0f2btyMVcqoCrne5NJCUrNQohjYOc2Q67aUnZuchCb3jaE141qexRrDR7Po0wd2xHxBXspela1drWt4WDDKhgJ00ZNG2ptiU0X3Ga24Iani91DpT80938r+/o3ordNBedH5pgA13FjnFpFaizzxjQy94LzfNBL3eE1HjjjTK4Aqe0bPs2Zy0LnO13FgeHXTNTukTHC/zMpX7tyy0i4REaTPSiJz3tFXO8Yn3MRp005K+nyzmhz8LS5M1shFghMIzE1c7QxWAb2dYmhuvXikeU6Px6p3u9ub+o0MrxlJjgEPv7dUiaJ1d0s/94rBzAXppHXofiCpVKfrJ13LHlLHupEKhNjKdWYolxxrkK3fU3wmaOMjSQaS7xuh+7MbCWtL30pGJw197jQodJJSIFow3znMc951X15eQgLZLwqm3QTGsfZ8kHFDcL+H68V4ZCRY3J8jKeUmJJpEZDmOEimZ7661TBls90poXiFl7SNvx1GWotLoeviHS3kY0ch3HGut+DQSWs6fAGbdqkaRjmNn7hULM+AVYTy2xnrlfKhJNWGWV7VyHYqUVFkeF2sqfNrN1i7rFbLFRbzQxsK8zRoJs9m2WmZIFCRhrpOIvEUklVQ3spRdQa4aUysLFMarDtbWZL23krxEJ9ArCv50y/dqfxIU+guYczXUYtUgm1Yb5qe5saWZGUt1TPy8QO9VT15xTaGFhqM6s2E6pLK9QykS7hJbXtTC51mQ2tW+63klnDTxyuR7hj7CfE4XM8Z1Xn+40JnnONWzV1DIjkBtjXhe0CX9oh36yQiSWGWmhBdju0pWbEbVLqvlWFTkmWJ1W84K0F5v/4kh66BRdyZiNjfUMPqaL6AHv0CfH1iWYpqrGeo9ziHoMDicUY5QLHl3PF2ubtuVRRJpdIWpmPMTa0ZkWgaJmwp2J7LkNYtgd7LLOWcxX1s45SQLy76wzUEAZZq8GYFdImPgpqj832rERRJlW0u3sNDLY068r8xUbNMtKqY5AotFN4lqqzbXWM46qg5YZYnw54Gpa0AXvu+7opSmyHGrmjDdUYUopSkRtNbJls/7GqjxcFWzRR0GCoP4QsArYS6+T37Xy+scPMbPe2B1DtZ9sqLJPrRm0MIFLU2QFhe20VaHr/8nYrKqj300/QXErFbvBKOQG6RuYgQ6WKam2Pop1t3SajSTukCsTYvnoLiLa20c7tPnhpyHlJG8sx1OpBYO+iiwZ1hgZvcynb+1gTlq8VyEfMZiL1vomCxqAox7YFIw0Kiu+X2vGylGREsd360xIOQ6uhHFel1Ro7Vv1dCbi0wm1bbd0j9A1Tya1hPbFGBbEaBZHH7OKqT4zBLDXbH3ao+WpEUo0yvcUYLQlcfYs2ZU8WsCsEk69Y9b5IUWKHjsLOuoa0kMAlqd2kxzR4xrxy+l1L1ary/xQby/zIYBPc7xzb2t6jn4IWb6nENTbyF9MlOomtKRPZpuyDXLVdkZ+42x+8oiEI1pKTJO8Y3yhU1UK2EZVbbWahXilBZoLH3G+sid4o69/NpXfpJbMrNmidTZzpQbuU76qRfQocYZkak5zsF3Y03KG+5153lD0q7flvSt75Z/1YYm1b28X2hlfg1RRzKsm2gmLL2VY3l7YpPyAJj5jlKXe6z+tBQHSvAjq5rT2rqFR71FMulunpelOc6UC1phhvxscSNe0Ihy8pBB+4Dud71hU2DNIqx/uBCFtTfAmD1RXwpjddpsb6drSHrfQNZmVTGeXahhm3bNhTsQ0Vy3bpJPe53WPlyqJEJFMbvDEfNlMah3rQdp5TY6bn7CyVWOwEa5vh9vCJWSZ5Q6Mf+PATpvhe+uludcNso5e3jPFtFwUva45ng8jdUObVsgIQhQVpKkMrpS82esEL/mgV29jHboH2cw1qbGlcS5u3UMUHXhc+NNHtbvREWP9SMlmpSDhXCCAuLVKMZL6lzgmeFWOMXeQinQyR6xv4fKyPPjbzjEXVM78/pqug6Bh/qIgR7YoGu/tQU4D+rrAA51rVZs0YT0kudQ5KRlOzi1hmptvcptYW9vEFo9RhGxcvS6SWVKvT/Mme1vctD1giCRReLOeS0LWFEyyS6uFQuaOtrkHkckU17rZErigNHC/TgGftYZFPMgKVilzkOZEliorS4GHKraookZjiKbFGa9nRprZqpsOXKHcVlamCJXyiYH495ic2to3feNr9rWdaqGpb/aX821xWVefoJEF9OX5acp711aibb/uhGlMdYoYTJG5xQIX8T9zpKHNCsVZ1UddaP+pYDk9UlRMnbWTyzLePO2xSbrnVKLZId697ztEuslCdet/VSe4oT1Y8ZUoZu7xqIKQpkXessc32xzLMpURBImpDJYrQJxj5jRU/2zAEq7+mn6JaN5rnWJc43vfdY5Kp3veII+xtZmBYxap/siq0WezAn7b057TqvZnYdLv4j1hBQUGNxNvOs4EbrOc8sUarOU4msnUz6JqoPWkjL6ZJ3U7Kqb0dcvwuW6fuEiIqlayiW4gm9fRL35Ar+LcFfmWW3/mdzmqloUSrJEpXt1XZD1LppnrexAphG8ntoO8yEn+aqP19Y1sJ6tEh57g56TxqusRcx/mL/axlnrlecZ+5DvN3qwX+/wPdNYqtrZc55XK0GQGD9h0oeUVleIdgX7YvZpUK2JurVbHccc4xya42c3robcFii4P3Iw32a1/XVX3+47argC6W+nlF37r2r+t8ucILkshs686qd440PeS5POOZZr/5nqv9wG+lhjsp8PRCM6QWlpXoGSsq0VdU+Sq9vrJEfVaFc+Fwv3aWaf7tRFtY1WzdxQZ6xkkSqUzkeU/YoiIJu2kDb2WUl8oqV4Qr7KxYTgFvy7OUKripFcWdrKgxzDMKfTESt3s9tJHI9LKNd8y2BEXzXeM0p/qbhb6tU/m9lbJvVqD2LlYw/2FFYS81+ZkX1MnStJ+vcAqMsIktXO02mzb73D/KNmCi6FbbtJoWfN3JZdhT3ORcvQObSdq0OWu958YKFhlLjXBolfqPxPXBFIrkOhsjNV8DUtNc4WxXOcEfHSIP/Huu+RWfn6uU/76Kd1YsULOisK9K4HFR0F1jL3jOJsGNtJpT5XbVN/QNyKVqPOXf5fBwhsv9WDe5yHzTK2KQG6tTH+io1ML8dkeG/JS3W/DTXI3B4XM3WlTRzSLCFt5RXzbbB+oqk5jh9rA8mcRUf3VSuXPlajbxmMm+5YEwy0zuNfUhlFdyfczXvcxqPybY8zK1zwn8c4gaE6T+7p9hukNsbrY+svCGojpLfDW4C5rgnexBX1BU4z2bNIOzuWczcpmjRFKJ77i9wpFWUPR1fwlpJldr2QjlSlcFDp7r5WVdpWJ3mFXRCiXyS4fqXWZ3me1MtbpvaAxGYRT6szeWeftC3dF/RcOS8QrCXsqCnRo2/YnGIHa5yQHWIeq8FhSpokzBIgd6tVkqRCxybRDCI20UVMDSn7wZ+8g9YVpwFR+pqKF8X71iiPrGXvBkq8ybNDw1VbSrAWEvXleRJpqJTXOCOCxELJHppsGBimXyuF6k0R4hirwgcPf+/014a3n1mEwStt/0sAhrG+J7Mov8VBS6BLxogoIaBQWxsXZyVwsfeyp3m1lB8zhSU7JT1EqpTMxzc1iK3a0aKkZKGvE6dg80d0NVObG06+qX5FKJSe5pFtFPJW52tFSh3AMsMc4gnUOexDnmy+3rDv3CKEsazMCPD/aShr5K2VrLMFDuLFvjErfiLLk7/MJXnOK7TrGT7TzTyseeS8zyQPhu/1CI3lbD1utDXnJv+4pCa8tYbn+1igpS11TVc0qlDkUD7R0W9DZLFJq9I5W4zHausaicaHqZ1FsiBa+7SKy3v0kMD7BPrVAsPhbeHsmtEk5gmhq8G71ECi61mfm+bjWbqHGDt73dASPsKgeLpdayUzOu3VxLiTxsvOFSuYNdXNZy4tCBKfK4N9rMbYllDgwdeXOXVjFhUomnHGpIKJGc5V2nmORGJzvaYvzFGvKQX9Dkg1zNCuY+rAiTYVU1IlloZFmaQqOhLpb7wPOO8YE3ykvayebONLzK2zLc4u3QjurgNgVUqZHIjeH9u1lDJpbIjbJxUCwvbWc2mchXwvI875mquZepOkz0vOc97x2Z6+3oLBt4Bt90uHpRubK2RO39RK3s7JUIe6mYcn65zdQMpXLhA50m09OWHtKoaFW7Ot0znnaa7qo1Zy1ocF3gwPvqpdjGJDJcqaigqIu9NeW0HBXiYAvbybqJZYbbNCzP5VX7GSX4o7t8sVwMF7tTre29hV38MQjjJuW0RO19WzTgXcm8fc0Q4pgboJwQislTP7eG/jq73gjXeMN9fml9TPZqG5yXG2QSqX72adMcykRe9FwINhwe4vY1vhSecbMpbQbFYxwWGjEU3al6thuL7ekGL7rcIYbKPKXUL2aAy8VBLL8TPj1NqfdY3xVTIVcM9sFgWpk2Hy0LolrftgU28Iwv6yNT1CD3ZGgKVM3vPdYbYqncIdpL7+OGoG5ub6QMuxoctO2r2qkcSiUOCyzmYa+1KQEelGmwuiNc7WXXqPGU3aXOtppiUCzfLsOeocaAjwv2vAz7lGCAc6t5oR1fbjd74se6BZdXyYX8p3Yi8LlbA5vZxaqtSsiby4ESxRYcBg4LoL7ngTZrSRK5rYwILOaaNuac4gEz1QQtv5Mve9Bsq9vEoaHjWe59E8NIppsrollT9ZUKe1ZmMu8EvSYx0x9FoXpvrdAAoamKp1Hi1hYHqLRcxqtC0lIPB7fLZl73TJjk/groGcAeY0ELlbA5+zgmSIDZrmtDo8oVzPV3kSyk1qY2MFruOJ2CtRK50eLwnrkhirzOx8PbSweaDSzD3mTnnWV88D73sJam4ywzjWpMcWI7FJGKvOj5wLUPa0clS+T+HcYwykYYE6q8r2mTOUWKejowfHevmVVZXdM4fmeamuBFKkmKznYt99ub51xRKAIuBl1m6McFO/31leNtyhUfixxqcYiVLiLEFWM1XrSHKe0m3iUyF5a59ogqTVuXMoLrzVZQFDsK15uhxjgPtvn8BHvpH/SQS9utHY3McZiFCiGqVgo7rqkpv+s07wa5UMqooNQZLft4YB8cWq1NLuvUmcQLjkXsNrNQEGv0lO/ZuHW6QlU4F4QEiP3aHFWJnd0TrNj9dTbbtbhS2iYN5zg8tFZ5u4VToDUbSzxktDeCPCrt2dkijWpc5a/NjLk3g3JRuyKa+4rAPgKRud4PQy2VnBRc42ue8H9W9QtH2tf6tnK+Lxi8jIHlYtM9FeA8uJ2gYiRyY2AAQ+wkcgVttbhUymdY1S7h7be3cgpU03kes76vutnMEBG73wtqPODY4J9vmsl45KHvZbTyRWoT7FPMFstd4muh4i12oW3V6+xRVxhjAnZxq30tK1M+FrkieFq2sln1Bq3BeXa3OYHqDpJ73lFebnOhEhykRzCzLlgmQ4ilfmZ7FzrQujaxjUkS33WzvdUHtpMryAK15+oM/jhgzzEybLJMDXr6p78EN1aNUtJOJwVdsY1rlI5Aaz/wlcrdHrhq5IR2nQSz3Ba+O0BPi1zezrMzHB/4dhtNjluoC3W+7XqD8aEXvKhoNQ86UL1YLNXN9Y6WYXJIvh32ccCeSkIh4KvhdffKneRZ+0g1SixWKn5daGdjrCq31jKpLBeb5t7AZnZv3e+8GTiXEqzaPSsaFVZ3Cmxo86Cx37TMPRfJDdPdKsboi7pyAmmNgkxqX884yGQkZnk3ZEevdE2mlLm+ujzAnuFumUbD3e4ig6QWyfWUO9BdemkU6dFmPknzcVwcuPYwu7YJUSr3oLdDns0h8nYWKMaBEkWJelctc/EjDFSj0XruNVi9TGSxHEWr+LvbjDDT80GPf4sAe75yYY8xJJxe+mZwvI7zlIJGmWM9ay/TRQoGukZts6yAZbEZ7vFeCHkc3q6rusHNAabR+rZp1ZZKto4JLOY+b3bo3Ls4cPhRHjYEtebJNfofL/iGRqmxZgXUXgfDllk8/JFQe0mgzg/eiUju7BC/KervVtuZZISfqVEMyaUftqmJN7cSF7hFU3FmrzbhzHFlYDPd7dNmM8NYbnNDw9Jft1zn+iUarelKBX19KHazv1ldKpa4uIza68itqd/yc/fl12Q2RGRyyIxNxW71QNC5UwVXio22b9BGcrkXdLQn03XBeOpbbjlb3Zp81ouBxg5vsxUVnBCk0UJ3dKD/R473wrhrpLZ0mMzr/mN/jaGk+TU3hbMzS7Bnuhq2/Dgu3+0ZNgITmmXAfjUodYncIIMN1b+i1d9VHUrhSUUe9WZo9H1sOzuuRtHVmtL0hlfdS5FU73LK6xjT2jSomsP+hklhISO570ic4mipmtDU84cagxrJxNDGYaOVS+2RTOcguV+lIq9loqOUEo5KsdBOIdGhUeIhj7dLkc239g1hqb5gtTbYTK4B16sPIY/Dq84iEdlFn+AUuLyDynGNoltC7CkWGamX9QKBNSj4tzHBZshEZpgowiYrV5Mp5b8MkBKaBi9VKm+3r+mlhkzl0vCSG+w4kS4dkvUlX2RWEUGqdkTnUJdKjPdo2EMHVBVpudzRwSkw3T0d9Jw0yp1vtprwxC4h5y1TVOs+36gQy4nMSygdGpCuPNhjrBe6wbzcbCKpxB22cXM4JyPyskiNt+xpkjU9FA4aWRabiT3vyWDUHFkFqhi7OcqGItcFsbmR9VtZtbHUAHuGN15hUQdYTCTS30iTHaEYNKpShmdRrOBy+7U6Tv3Z4IXs1YF85P9KpG6AxHvB+9jcjTTJgQ70hJc8aZFrXGUrr+FbNg9MqCOjuS7kVO5kWCuuneFQmRPkbg1Wbeww1WrrDtKlIlOgIywu9wuX4077m6rgLTOVqk/f9hVHWaxlg+cS8fUOru6VBHtetsle19Ci8qh0DlnsZtsb7UqbO8XhZkqs75syJ3RIuy2ZX5GCosT+LcZX6gOzvdiBupjioTCCL7cqME8pJ3KM81IHujRFino7yCb2FrnDVi5wqa5+b7yf2MQlrdrk5pigQSQK7SxWEuwZwTHweotPRlaRSkVqRaa5VeIAiTqpP6vDRoZWb/HRyuf9pnFhUl9qAVeMI9Sot7pDcXso0xpi82Z7qVQzuFnY+Bd3qDlmgn2tKnO+GrXe9TVd5H5sA2eaoxDs4uawTzM1HHu00kRqyVHUP6iPLbnibS6wjlSDVJ2JXnSCVL0T7awoD/lUy67HSCxxTdCatrJ1BdcuNZA4NoxkG1xnZlBbv9pqTkeqCS0lrtLRQMQeco1G+KEGNWocZYzFUrUKiorqmmX45mL1Ieaw1sqEnd4hi2RSMy6XyNztBC+4zt5q1ONvtrKa7s4M7tIm67YjO+oK9RKpyD4qW95HtjRIpiByGz5wUxjFfrpWqJupgkPC14+Vk2GXJc4ZLpJInW5TRdsa6IJQ6l/U2wlecpDKPLq4HNhcY3n9MssnUnuFmqVpraD6uzm6OdgYL/u1gf6D/e2mV7kZTtcOMrLYeHcG5fBgtRVw5r4S9J2p7hGJ3BDaqfW3V9lJkMhtZ70QWrmsQ3MsHTC3WmBQnfxK7n/M9ZCiRhs7zysusJabW+2cUsv8VZc3tLd81N4rVBzPbra6pdT881AvN8KPvewQt/imXSrqNhd1UNbHIhcH+EbaLEiESKqP/cI9t4YI/kOmhlSKo5updkcHmp/v1uXWqRO5ba3jQH9TdIqxnvU9A/EPH7RKgZoeYI+XT4VcPmovHa02rwXsJeDP9VLof1rUxyXWNNyO5eOaI693cGClCNJUiUa5L4YFT0T2tmqo6Lg4vHOhWwJJbKdnOES65CArXXf4sAMae9OJYgsqrPETMc6T/mgrsUZFs51VxckxJaC4Un0yvQIwWRWbsN4RIVulIJfbWF3wVuQisz2mm8YOnRqfWOjhsFiH6q4Y0iQOD9nmb3iqHCe6OPgiVw2hw6TsWEhwYYdRSGVeDc8ndpgl/miLcuV5wSmmVpESJcW1c7np5kphMiVxMtuCViIkk3jVgRZLNKqsX8vDIWizXeVHbUZJW15NEaQ17aZUVjms3HfrGsWQQBR5puxHP5oQ0z00NDp/z8Md4rmxzA4G+Ue52XlPg/TSM4jvRjX+6fJWVag5PggxgGRlwZ6X17aXrlW0klTiPrubEPoRlbqblxqyPuY8DHR2G8eGtNZm7vBWyIs8IrzrQHVSBQ0VR3onGl0bPrWrITKp/nYPY7t6mZkCTXrYKPfY1v3ukGgoN+MslSNQ60onVsm8b2r1swJdjpePycwBdW003UwlHre1800L2/1dufHecJRGPfTFhTotk8eXYvPXazq9aID6iuTRZ71YZjEZLgt5AbUOAl/UNTgFruyAWlfKcrtUnV4i3zBDrbmhk0gW7OVfOaL1OWHhKml2i9voEPgRwV56eA+rtKGDp2KzfM8GjnenuS40zes29LZIfwOlNvKddhtbVvoiGxUUdbWPyAY2DjrNPyviSZnYa2VOv58IXy47BV7ogFMglvm1UXIbyb3rIHeaarrpEonZLrWVn7ZoRlt5rRGoPVuZTGZ28ES3nZJTau0x00X2tq5z/cr+RgRPYakT0ffaKR6oDHk87/UA56Fyh4gVJZa4s1mcKFaZfj3EIDuGsXXEKRBLDXeyosjmqPGo06zrZ+51k69b3zGerziPuPU1OKiR2fJ1x1k+2D8MbKY9Q78k6gpi0yxykYkukYvsHbZ03w6kKy3NZo+ws2H2D89+2LRmEyylX5fO7Y4dYL/gRiu6qQPiNMY3A/9fzwBFXGiCCxzji/5lqqQdF14WkCjVdkQrj9rnhDzXUct4ZhIijzVS/2MTx8rLymRue8vuEJPhusCja/0pxCsj/2kx5kxsgkfD077hG5rKB8Yv0ylQKi/+QhCr3W0sd7xNnRR0k0JQDdqOtdUZgVJi3kpz/CZy41HqZNpeCmepX0umUeIet/iDnuH+OGzn+mX4IzOxVzwb2MxodXKJ6ca0enPlYgy3cfhq2U6BSCI3IjQ/zuT6K/iTm9yrJuynpJ1KxpLncVA4H34lB/WeRWqjtjo1i3GMrxltsK7lXMWif4XE5NI9a/iVmmWkccRBe2/aaSmuNreVSpjK3VE+wT0P5tZty3AKxHJF3QwPGY2RyDzn6exENErLFeHtOTF2CH0IXlpen8zy1KXmBAOkk9EuqLqJIyxyMZaYZZGFJnvU+c7weLkZ/UKz/cSuDvVuO204M9zgLN0rOmtcolqbqMRMYxwWHAdFBTeY0W6Dz1imzj996NYyXS+0q5MdYprV9RQbaBWr28BPvVM18yELrovEBBOWF/aWpwMvS8ft7A1r4F57tME7E6mf+FUzPWKeupAj1qjgMsd41qYm2tNb7XDgROpm+0kVgqq4cYtuBEsNngPL59llYru5vx3YY5nVXGknJ7nTxFDuPltXL7rLQdasKHt80k4aq2gyscxgr6sRu8DX283a/K+DegWL3Y6iHQ1rg82kEr/2N0lo8pAq6qEuaNs1Io9ijswQd+nfDo+PRK4PBnuGmzRW1YAyuTtNloQGKxM90g71lUC/z05Ss0w2O0DaW62NnG69AHo9XjVafVX1sRTp6iQN7SrylcfbSw8vlY7X+nab1mYmcZKfKigEPb4pB3KuqXJjMFFsiXVc2c4ISlx7jiRUjFzZBpi5JJBDqS/erRrbKSCL1LreSPUSs6UeqwjX1QanRqZRndccYG5VfbykxXxdrsabHlr+E3WWD/ZU7AlPK0gdZ602hGIpO+VXvmBCuZt/KrNYD4/YxlSluu2CRrs4LjicqsM5wxi5RpFnKjqPVrsuKztgr2uH+mKpX9hGgzqNJuHfnvd0SLDLQsOhWI0xdvBWGyXGicxXraVB5J8altcRtvwJG7HcWSKpLn7ZJoPIQ8rSpk7xjAWhNXNnFzvE9lJx6PKbyP1QbSjQSqpS58VhSf7ZjvcyFXnKa2KxcZ6oSn2ltoOp4b4vVaOUX5a40T9sbrZEJA6nF0zxDfua1YapVOov9jOZgg9duCKnRy1vh42i2E3G2lqDo1zs3jZFVyqxwJ/92UBr6amHhe7zkt8pOMdbhLj/cFt5zMBywCBrAefDJhpibhtF60vpr+h6I0UulrYScHGF4XNs+bepXOpgf3eezLFiS8z2prtca2bVNulL33WOfurVOauiD9NK0mSW6hdbe1yjGu/a2Jx2tn7UIoMlkvuRs/3QP8xUEw60PNV5xnvFv9xKC8gKis7zbTf5UrvTS6Q29rzFNmylHZU+t44jzfYnLxgVihxfMcrRLnGR49FDor7cYLHtdxUU7e9mDWqNs0lVPecjZzIlKh7rt2o1WNOlVc6+rmQ2RU3HjtSqVVDnHCc71xkuK1PTFoousZ9bPGSLFh2QSq0gEjcu45TuVOQVU7zVAvRSLsC6LvGyM0zU2VqhNC3yV8e5xIWOl4RQ5aJgmbbNNhJFa/l3aGX41XIjueWl3cFW4Ercb09rWWI9Pd0ROpW3rf+UOgWnMqnEkyb7hUhnXUL9/iXGOV6ttR1jrrEtznWarsbFoZil/V04391eq9A9Sl1YT3GVLdR4yE8M851QmD9eozP81A+C8C5IxOUO1W1ReqqXu62lXp2fuLIDB8d8REymiQMP8pSB6tX5azhcpG2DoVZXgwwwyhbW19t0a+gXHF2Re+2B831HvVqRM/3kIzlEopTM8Q9fR4NaX3KDDT0TxOkM/dzs37qZ6EWLO/C8Go3WcoNNLNHJlY5YXiPpv4W9iZfer7cGte50nGkhzbrand/0+yo5hJHcVDPc7v+k1vOiOPSL/JY/NQM+affEl+YsM2v25vN9R6NYYpKR6q1hsvlq1ak8RvkdL3rFOHM8YGHVnVsqJdjDfwy0RCd323eFz59cYSZT2pZTPeAg3S2xrkO8YTzBsdRyyK/pZDssCb/NNbXkrPOu35mC2Q7ULxhGe7jWhxXMIu/wqPJmoB/hXI3B6fZn90vMMUV/g0JpWBTy8XsZYQcH2dKlzboWN+2aglTsx/6thyU6udeBGv6bsxZWFPaSq+BddxqtryVWcaRVjbWobJVW3tngHk/bQn9JsAnzYL++p85pOnnGYmk4EitTo86t/9VpBiX/0U16lIt5vukDmS/7qVHBvq48drx07tgXzW4BZqQgk9nU1Y6VydS62iGWdCjF7yPUZCp1+MRLtne/TlJFJ3vWscHKS1qxmjE2cZKx4cCcUnfICf5gIz93qred5OJQopLIfbmdhj4djQ3sbU2ZWCr2J6/axROu8aKjQxijqUNkQcHzDna8+c1AjxTkivo5z1jbq5co+LXD1P93oK84b6/cyolfORX16vC4X4RTLZpz5CZePdQo6+vsLS95IbRvHewsh3vPxf5Hn+DVOcalKy6yJFJXOSScB/OcH/mxXb3uJA9gE1+0lyF6WuRDT7jCnSEaurR9eayIbr7h+1aTSdWY5iQ3NrvvE4K9Sdjs6g82CBoD9zs/dAYoVChkUasc8dLSlEzwUb7tIN2CzzxxsePVaexguVlLDYYeJobiltwH+pvoDJeW209BH33MN7vsqEgrPp2ij6/4pnXKBHWFH3r/vyCFj4S3Vxo0iYku1mBTXWWKhjrC3hpNslheocPkwXiKxcHIyjR1KpruTR9aW58g7B50p2Kgq6bzSKM2/Ypx+blCjKmTr+gdPKKv+6GvebFFH9/FZlkoDfVWWfnnudww3/VPX9ZHvYKCV3zDmeZ/VKej/ffUXslChvixY9TINarFu650sdfCHaqogU3ug939ylaajt6pN1Nfb7rdPV4OYfO2dkzUqoSmYKhtHGBXdaFN6LsWetnfPNTMvojKrcqF/hmlbMfdfNUXdCpT+Xt+6x+WdFiN/RhhXzr9jXzb4TqVGU6jB13hjpCSXA38YU4PvQGaNIt6N7ndQXbWB+8Zb4JJXjPeG60YQumrNa1lbYMMM9J6uuMlt9k5nJDXdP3JT81tcR59FMIjsL5DHGQDyoTzjr+6wCwf8fHRHx3sSz19rOtrjtRfqSC4dDjcra71UEhmTsrsZW1H+o7e4WhjgZMnHrM9YiNtbhsbGKKPOjztt66r6NnEar7q+FDG0uAD4zzncc9433YeDc/NQ7AvMtFPXKUpD3kp4Gva22EhJN0Y/P8v+JfLzFsOc+0Tgr0S+lUd4lhbBDhKWZOT3e06DwdTvEbmmpC52FRwHgff+nc10Ix5dNbfRr5hb+843WXhtL6f+w4uc6PXzTSvwshP1PmBM6iwnUt9fN90jKdFQYsaZLSD7ahbuLOAxcb4tzvDWffpR38s10cPe6X6xfaOcEBoYNjU+3+S293qMQvRyR4OtXPoGkyjh5ztvjI9RuWDAZuuDZxpP+f7nnXdbLjT/SukOzfBHVUkiu7inLD0Tdf77naGt7G63XzRLnoEX2lpdM+7xnWhAdtKgXzlwd5c1PUy2qF21bPZ9N4xxrUe04CuNrCqgiUmGV9WSps/rekcmRQn+qP7jTTP4V4OTCtv4RxokgGxfexgiMRCb3jGXXK97OtLdtO92V6c5FZXeyKI2OijZiwfD+zKXLxEqQPt5Ut21LUZ+BPd7UZ3t/IbtreTChp832/NM9gctaHpSHsaVqUX8csOs4NezUbxnjFu9FBgUYV2nb+fCdibGyAMtpcD7KBbs2m/6kY3h0OnljXpRGozD3nIVh514DIYQSQJXLy7XRxir1Bb2sTwJrvbLR4yrwWR+OzD3lpRW9NeDratbgSzm9yjLnazDyvEcnUf0qpe9pZt7eZeP3dGm6rd0n0z0lEODbXSTSzlPXe50cPhPKXqVsX/A7AvFbaVStuX7Kg26CwFTHetizzXBrMp/ewhowwzW+p7zrOXu6oWuJQ+XbCfE+yhFg1qRJjqLjc0o/Ds4z5C9OOGvTX4IxzgIFtVUGLuNn90r9anUCdSJ/qrHTwafDd32sg6lrQQpqVl6O5IJxpVsaPmu8e17gxZ+p8I4J8k7K3B38KRvmQQ4cBL7vMbdzczVWK5gd7xdyeHlia5/qb4l/+poPeSFtTF13zb2hVM5WlXui5UTX+CgH/ysC8FvyQUe9nf8XaqoM47/MLYMvUmUlf4gtUtCNRdUPS/zjHC+Ip7ONapRpR9KvNd5yKPfDoA/7TA3ty2ZTsnO0htgD7zZz83W0EutZEXnOLPZXdWFCJU4+xczm/f3G/tVIZ8igv8JxxE9DEohh+f4/ejufLgI2Gy692kkw3VaBTZxiEmeEOi1Lfl5834eKmB/RBXh0MqfupiQ4Kz9j2/9PWQvBq3WeL4/2tqb033o/zEIWWqPcdpbfram9jNEBfZMeySOc7359BJ/lND458+am9O97HYNNcZa0ODpDI72sZdFqmrmlRaq9EuxljfEjUSlznUzaELx6eIxpubH5++Kwth8Lts7VdiBUvs6QFrhlNLW9qt9Q5ylwHqdTLZgY72toKoau3H57AvE/rEEj+1m4k6WWJ9D1i7VZFvQaMjXS/RqM4NtgxtET+1kH+6YUcoLH7A1u7VyRJD3Gutcj8mgacf6TKpXI2fOzg0Ac0+1fP6lMNecpclZtjLhQH4uw0oV5Ekig5wmRSRo50R6PxTf8Wf/iGG8N1X/UMnSwwzRpegsae2d00wtg5xmZpPP51/WjWZ6jQfSdxqXRtbYg1ruV5Bpr/79VRU41hXqSmfVf05tX+kauVxntFJvSMdq4gLDFCv1i9d+lkC/dNoLrWzM6WGe06dyEID7Odq9eo8Zodw0O1nZyqDPztjzRXMMNcXFHUxzOH6iCywpzl8lkD/bFF7ieIzT9pCUUGpjuo0Z380eYmf8/b2af5UpTKeVOxtf1yRk2A+h335lcn7PRxKDiK/s+i/Kj/4HPblGPFfNDU0uWxFaqA/h31F6L10skwBt4bjFD+H/WPg7YkFbgfXLqNI+HPYP0rtS+R2TPdoBw6x+hz2j+jK5J7E8+Z9NlnMZxX2yPs+8ORndPyf2WHHuNVTnzXb9LNrpTZx99wAC1vUkX6Grv8PZBnY35ddXfIAAAAASUVORK5CYII=") center/contain no-repeat}
.logo-text{display:flex;flex-direction:column;gap:6px}
.logo-name{font-family:var(--serif);font-size:28px;line-height:1;letter-spacing:-.01em}
.logo-name i{font-style:normal;color:var(--red)}
.logo-sub{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}
.nav-actions{display:flex;align-items:center;gap:22px}
.nav-link{padding:6px 0;color:var(--ink);font-size:15px;font-weight:500;text-decoration:none;transition:color .2s}
.lang-btn{display:flex;align-items:center;gap:10px;height:44px;padding:0 16px 0 12px;background:var(--white);border:1px solid var(--line);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:border-color .2s}
.lang-btn::before{content:'';width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313233f' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c3.5 3.5 3.5 14.5 0 18M12 3c-3.5 3.5-3.5 14.5 0 18'/%3E%3C/svg%3E") center/contain no-repeat}


/* ---------- Buttons ---------- */
.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;height:56px;padding:0 28px;background:var(--red);color:#fff;border:0;border-radius:4px;font-size:16px;font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .2s}
a.btn-primary::after{content:'\2197';font-weight:400}
.btn-primary:disabled{opacity:.6;cursor:progress}
.btn-primary.nav-cta{height:48px;padding:0 22px;font-size:15px}
.btn-block{width:100%}
.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 22px;background:var(--white);border:1px solid var(--line);border-radius:4px;color:var(--ink);font-size:15px;font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer;transition:border-color .2s}
.btn-outline:disabled{opacity:.5;cursor:not-allowed}
.btn-link{display:inline-flex;gap:10px;padding:4px 0;border-bottom:1px solid var(--ink);color:var(--ink);font-size:16px;font-weight:500;text-decoration:none;transition:color .2s,border-color .2s}
.btn-link::after{content:'\2193'}

/* ---------- Home hero ---------- */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:72px 0 104px}
.hero-copy{min-width:0}
.hero-badge{display:inline-flex;align-items:center;gap:10px;margin-bottom:34px;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.hero-badge::before{content:'';flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--red)}
.hero h1{margin-bottom:32px;font-size:clamp(38px,5.4vw,76px);font-weight:500;line-height:1.04;letter-spacing:-.025em}
.hero h1 span{display:block;font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.02em;color:var(--red)}
.hero-subtitle{max-width:480px;margin-bottom:44px;font-size:18px;line-height:1.85;color:var(--text-muted)}
.hero-actions{display:flex;align-items:center;gap:36px;flex-wrap:wrap}
.hero-visual{position:relative;width:100%;max-width:520px;aspect-ratio:1/1.08;justify-self:end}
.hero-ring{position:absolute;top:-38px;right:-34px;width:180px;height:180px;border:1px solid #cfd8e6;border-radius:50%}
.hero-arch{position:absolute;inset:0;overflow:hidden;border-radius:999px 999px 14px 14px;background:radial-gradient(circle at 72% 22%,rgba(194,59,63,.42),transparent 52%),linear-gradient(160deg,var(--navy-2),var(--navy))}
.hero-quote{position:absolute;inset:22% 13% 34%;display:flex;flex-direction:column;justify-content:center;gap:18px;color:#fff}
.hero-quote p{font-family:var(--serif);font-size:clamp(26px,3vw,40px);font-style:italic;line-height:1.18}
.hero-quote cite{font-size:13px;font-style:normal;letter-spacing:.04em;color:#b6c0d1}
.hero-note{position:absolute;left:-28px;bottom:-34px;z-index:2;display:flex;align-items:center;gap:16px;max-width:310px;padding:24px 28px 24px 22px;background:var(--navy);color:#fff;border-radius:2px;box-shadow:0 0 0 8px var(--paper)}
.hero-note-icon{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border:1px solid rgba(255,255,255,.28);border-radius:50%;font-size:20px}
.hero-note p{font-family:var(--serif);font-size:21px;line-height:1.3}
.hero-note small{display:block;margin-top:6px;font-family:var(--sans);font-size:12px;line-height:1.4;color:#b6c0d1}

/* ---------- Sections & cards ---------- */
.section-title{margin-bottom:28px;font-family:var(--serif);font-size:clamp(28px,3vw,36px);font-weight:400;letter-spacing:-.01em}
.features{padding-bottom:72px;scroll-margin-top:24px}
.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.feature-card{display:flex;flex-direction:column;padding:34px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);color:inherit;text-decoration:none;transition:border-color .2s,transform .2s}
.feature-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:20px;background:var(--red-tint);border-radius:50%;font-size:24px}
.feature-card h3{margin-bottom:10px;font-size:21px;font-weight:600}
.feature-card p{font-size:15px;line-height:1.7;color:var(--text-muted)}
.feature-more{margin-top:auto;padding-top:22px;font-size:14px;font-weight:600;color:var(--red)}
.feature-more::after{content:' \2197'}
.panel{padding:34px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}

/* ---------- Sub-page heading ---------- */
.page-head{max-width:740px;padding:56px 0 36px}
.page-head .hero-badge{margin-bottom:22px}
.page-head h1{margin-bottom:16px;font-size:clamp(32px,4.4vw,52px);font-weight:500;line-height:1.08;letter-spacing:-.02em}
.page-desc{max-width:620px;font-size:17px;line-height:1.75;color:var(--text-muted)}

/* ---------- Form controls (form + test) ---------- */
.field{margin-bottom:22px}
.field-label{display:block;margin-bottom:8px;font-size:14px;font-weight:600}
.is-required>.field-label::after{content:' *';color:var(--red)}
.input{width:100%;height:52px;padding:0 16px;background:var(--paper);border:1px solid var(--line);border-radius:6px;font-size:16px;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
textarea.input{height:auto;padding:14px 16px;line-height:1.65;resize:vertical}
.input,.inline-input{color:var(--ink)}
.input::placeholder,.inline-input::placeholder{color:#9aa3b1}
.input:focus{background:#fff;border-color:var(--red);box-shadow:0 0 0 3px rgba(194,59,63,.14)}
.choice{display:flex;align-items:center;gap:12px;padding:13px 14px;background:var(--paper);border:1px solid var(--line);border-radius:6px;font-size:15px;line-height:1.45;cursor:pointer;transition:border-color .2s,background .2s}
.choice:has(input:checked){background:var(--red-tint);border-color:var(--red)}
.choice:has(input:focus-visible){outline:2px solid var(--red);outline-offset:2px}
.choice input[type=checkbox],.choice input[type=radio]{flex-shrink:0;width:17px;height:17px;accent-color:var(--red)}
.form-error{margin-top:14px;padding:12px 14px;background:var(--red-tint);border-left:3px solid var(--red);border-radius:4px;font-size:14px;line-height:1.5;color:var(--red-dark)}

.footer{margin-top:48px;padding:32px 0;border-top:1px solid var(--line);text-align:center;font-size:14px;color:var(--text-muted)}

/* ---------- One-time intro (home page) ---------- */
.intro-overlay{position:fixed;inset:0;z-index:9999;pointer-events:none;overflow:hidden}
.intro-glow{position:absolute;top:50%;left:50%;width:62vmin;height:62vmin;margin:-31vmin 0 0 -31vmin;border-radius:50%;background:radial-gradient(circle,rgba(194,59,63,.22) 0%,rgba(194,59,63,.08) 40%,transparent 72%);transform:scale(.12);opacity:0;animation:introGlow 1.9s cubic-bezier(.16,.8,.32,1) forwards}
@keyframes introGlow{0%{transform:scale(.12);opacity:0}30%{opacity:1}100%{transform:scale(1.6);opacity:0}}
.intro-particle{position:absolute;bottom:-10px;width:5px;height:5px;border-radius:50%;background:var(--red);opacity:0;animation-name:introFloat;animation-timing-function:ease-out;animation-fill-mode:forwards}
@keyframes introFloat{0%{opacity:0;transform:translateY(0) scale(.6)}15%{opacity:.8}100%{opacity:0;transform:translateY(-70vh) scale(1)}}
/* ---- Phone / touch friendliness ---- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
a,button,label,input,select,textarea,summary{touch-action:manipulation;-webkit-tap-highlight-color:rgba(194,59,63,.14)}
body{min-height:100vh;min-height:100dvh}
input,select,textarea,button{font-family:inherit}
select,textarea{font-size:16px}
/* Bigger invisible tap area for text links, look unchanged */
.btn-link,.feature-more{position:relative}
.btn-link::before,.feature-more::before{content:'';position:absolute;inset:-12px -6px}
@media (pointer:coarse){
  .nav-link{display:inline-flex;align-items:center;min-height:44px;padding:0}
  .lang-btn{min-height:44px}
}

/* Hover only where a real pointer exists (avoids sticky hover on phones) */
@media (hover:hover){
  .nav-link:hover{color:var(--red)}
  .lang-btn:hover{border-color:var(--red)}
  .btn-primary:hover{background:var(--red-dark)}
  .btn-outline:hover{border-color:var(--ink)}
  .btn-link:hover{color:var(--red);border-color:var(--red)}
  a.feature-card:hover{border-color:var(--red);transform:translateY(-4px)}
  .choice:hover{border-color:var(--red)}
}



/* ---------- Responsive ---------- */
@media(max-width:900px){
  .hero{grid-template-columns:1fr;gap:72px;padding:48px 0 88px}
  .hero-visual{justify-self:center;max-width:440px}
  .hero-note{left:-8px}
}
@media(max-width:640px){
  .wrapper{padding:0 20px}
  .header{flex-wrap:wrap;gap:16px;padding:18px 0}
  .logo-name{font-size:25px}
  .logo-mark{width:51px;height:46px}
  .nav-actions{width:100%;flex-wrap:wrap;gap:12px 16px}
  .nav-actions .lang-btn{margin-left:auto}
  .btn-primary.nav-cta{order:3;flex:1 1 100%}
  .btn-primary{height:52px;padding:0 22px;font-size:15px}
  .hero{padding:36px 0 80px}
  .hero-badge{margin-bottom:24px;letter-spacing:.14em}
  .hero h1{margin-bottom:24px}
  .hero-subtitle{margin-bottom:32px;font-size:16px}
  .hero-actions{gap:24px}
  .hero-ring{top:-18px;right:-10px;width:110px;height:110px}
  .hero-note{max-width:260px;padding:18px 20px 18px 16px}
  .hero-note p{font-size:18px}
  .feature-card,.panel{padding:26px 22px}
  .page-head{padding:36px 0 24px}
  .page-desc{font-size:16px}
}


/* ===== Motion layer ===== */
/* Everything below is decoration. The reduced-motion rule at the very end switches it all off. */
@keyframes mRise{from{opacity:0;transform:translateY(24px)}}
@keyframes mFade{from{opacity:0}}
@keyframes mPop{from{opacity:0;transform:scale(.9)}}
@keyframes mSlideLeft{from{opacity:0;transform:translateX(-32px)}}
@keyframes mDrop{from{opacity:0;transform:translateY(-16px)}}
@keyframes mArch{from{opacity:0;transform:translateY(36px) scale(.95)}}
@keyframes mFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes mSpin{to{transform:rotate(360deg)}}
@keyframes mBob{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
@keyframes mShake{10%,90%{transform:translateX(-1px)}20%,80%{transform:translateX(3px)}30%,50%,70%{transform:translateX(-5px)}40%,60%{transform:translateX(5px)}}
@keyframes mSheen{from{transform:translateX(-130%) skewX(-18deg)}to{transform:translateX(340%) skewX(-18deg)}}
@keyframes mBlob{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(5vw,-4vh) scale(1.18)}}
@keyframes mCheck{from{opacity:0;transform:scale(0) rotate(-120deg)}60%{transform:scale(1.18) rotate(8deg)}to{opacity:1;transform:none}}
@keyframes mChoice{50%{transform:scale(1.025)}}
@keyframes mDot{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.7);opacity:.45}}
@keyframes mLang{from{opacity:.2;transform:translateY(8px)}}
@keyframes mWiggle{0%,100%{transform:rotate(0)}20%{transform:rotate(-14deg)}40%{transform:rotate(11deg)}60%{transform:rotate(-7deg)}80%{transform:rotate(4deg)}}
@keyframes mRipple{from{transform:scale(0);opacity:.45}to{transform:scale(1);opacity:0}}
@keyframes mGrow{from{transform:scaleX(0)}}

/* Soft colour drifting slowly behind the page */
body::before,body::after{content:'';position:fixed;z-index:-1;width:46vmax;height:46vmax;border-radius:50%;pointer-events:none}
body::before{top:-20vmax;right:-16vmax;background:radial-gradient(circle,rgba(194,59,63,.14),transparent 66%);animation:mBlob 24s ease-in-out infinite}
body::after{bottom:-24vmax;left:-18vmax;background:radial-gradient(circle,rgba(36,59,99,.13),transparent 66%);animation:mBlob 30s ease-in-out infinite reverse}

/* Thin progress line while scrolling (added by script.js) */
.scroll-progress{position:fixed;top:0;left:0;right:0;z-index:9000;height:3px;background:linear-gradient(90deg,var(--red),#e0686c);transform:scaleX(0);transform-origin:left;pointer-events:none}

/* Leaving a page */
body{transition:opacity .18s ease}
body.is-leaving{opacity:0}
main.lang-flip{animation:mLang .45s ease}

/* ---- Header ---- */
.header{animation:mDrop .65s cubic-bezier(.2,.7,.2,1) backwards}
.logo-mark{transition:transform .5s cubic-bezier(.3,1.5,.5,1)}
.logo:hover .logo-mark{transform:rotate(-8deg) scale(1.08)}
.nav-actions>*{animation:mFade .7s ease backwards}
.nav-actions>*:nth-child(2){animation-delay:0.170s}
.nav-actions>*:nth-child(3){animation-delay:0.240s}
.nav-actions>*:nth-child(4){animation-delay:0.310s}
.nav-actions>*:nth-child(5){animation-delay:0.380s}
.nav-actions>*:nth-child(6){animation-delay:0.450s}
.nav-actions>*:nth-child(7){animation-delay:0.520s}
.nav-link{position:relative}
.nav-link::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.nav-link:hover::after,.nav-link.is-current::after{transform:scaleX(1)}

/* ---- Buttons ---- */
.btn-primary{position:relative;overflow:hidden;transition:background .2s,transform .2s,box-shadow .25s}
.btn-primary::before{content:'';position:absolute;top:0;left:0;width:42%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);transform:translateX(-130%) skewX(-18deg);pointer-events:none}
.btn-primary:active{transform:scale(.97)}
.btn-primary .ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.55);pointer-events:none;animation:mRipple .6s ease-out forwards}
a.btn-primary::after{display:inline-block;transition:transform .25s}
.btn-outline{transition:border-color .2s,transform .2s,box-shadow .25s}
.btn-outline:active{transform:scale(.97)}
.btn-link::after{display:inline-block;animation:mBob 1.9s ease-in-out infinite}
@media (hover:hover){
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 26px -14px rgba(194,59,63,.75)}
  .btn-primary:hover::before{animation:mSheen .85s ease}
  a.btn-primary:hover::after{transform:translate(3px,-3px)}
  .btn-outline:hover{transform:translateY(-1px);box-shadow:0 10px 20px -16px rgba(19,35,63,.6)}
  .lang-btn:hover::before{animation:mSpin .9s ease}
}

/* ---- Home hero ---- */
.hero-badge::before{animation:mDot 2.2s ease-out infinite}
.hero-badge{animation:mRise .7s .1s cubic-bezier(.2,.7,.2,1) backwards}
.hero h1{animation:mRise .85s .2s cubic-bezier(.2,.7,.2,1) backwards}
.hero h1 span{animation:mSlideLeft .95s .6s cubic-bezier(.2,.7,.2,1) backwards}
.hero-subtitle{animation:mRise .85s .4s cubic-bezier(.2,.7,.2,1) backwards}
.hero-actions>*{animation:mPop .65s .65s cubic-bezier(.2,.8,.3,1.2) backwards}
.hero-actions>*:nth-child(2){animation-delay:.8s}
/* the pointer parallax (translate) is written by script.js straight onto these three; the soft light is a real element
   (.arch-light) that is moved, so following the pointer never repaints the arch */
.hero-visual{animation:mFloat 9s ease-in-out 1.8s infinite;transition:translate .5s ease-out}
.hero-arch{animation:mArch 1.1s .25s cubic-bezier(.2,.7,.2,1) backwards}
.arch-light{position:absolute;left:0;top:0;width:432px;height:432px;margin:-216px 0 0 -216px;background:radial-gradient(circle closest-side,rgba(255,255,255,.16),transparent);pointer-events:none;will-change:translate;transition:translate .35s ease-out}
.hero-quote p{animation:mRise 1s .75s cubic-bezier(.2,.7,.2,1) backwards}
.hero-quote cite{animation:mFade 1s 1.3s ease backwards}
.hero-ring{border-style:dashed;border-color:#b9c6da;animation:mFade 1s .9s ease backwards,mSpin 60s linear 1.9s infinite;transition:translate .5s ease-out}
.hero-note{animation:mSlideLeft .95s 1.05s cubic-bezier(.2,.7,.2,1) backwards;transition:translate .5s ease-out}
.hero-note-icon{animation:mPop .7s 1.5s cubic-bezier(.2,.8,.3,1.4) backwards}

/* ---- Revealed while scrolling (class added by script.js) ---- */
.reveal{opacity:0}
.reveal.is-visible{opacity:1;animation:mRise .75s var(--d,0s) cubic-bezier(.2,.7,.2,1) backwards}

/* ---- Cards: light that follows the pointer, a gentle tilt, icon that bounces ---- */
.features-grid,.library-grid,.block-grid{perspective:1000px}
.feature-card,.material-card,.block-card{position:relative;overflow:hidden;transition:border-color .2s,transform .25s,rotate .25s ease-out,box-shadow .3s!important}
.feature-card::before,.material-card::before,.block-card::before{content:'';position:absolute;inset:0;background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(194,59,63,.10),transparent 62%);opacity:0;transition:opacity .3s;pointer-events:none}
.feature-icon{transition:transform .4s cubic-bezier(.3,1.6,.5,1),background .3s}
.feature-more::after{display:inline-block;transition:transform .25s}
@media (hover:hover){
  .feature-card:hover::before,.material-card:hover::before,.block-card:hover::before{opacity:1}
  a.feature-card:hover,.material-card:hover,.block-card:hover{box-shadow:0 22px 40px -28px rgba(19,35,63,.55)}
  a.feature-card:hover .feature-icon{transform:scale(1.14) rotate(-7deg);background:#f3d9d6}
  a.feature-card:hover .feature-more::after{transform:translate(3px,-3px)}
}
.chip{transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.material-card:hover .chip{transform:translateY(-2px)}

/* ---- Lists that are drawn by scripts: each item rises in turn ---- */
.library-grid>.material-card,.hw-list>.hw-card,.question-list>.question,.metrics>.metric,.teacher-stats>.teacher-stat{animation:mRise .6s cubic-bezier(.2,.7,.2,1) backwards}
.library-grid>.material-card:nth-child(2){animation-delay:0.055s}
.library-grid>.material-card:nth-child(3){animation-delay:0.110s}
.library-grid>.material-card:nth-child(4){animation-delay:0.165s}
.library-grid>.material-card:nth-child(5){animation-delay:0.220s}
.library-grid>.material-card:nth-child(6){animation-delay:0.275s}
.library-grid>.material-card:nth-child(7){animation-delay:0.330s}
.library-grid>.material-card:nth-child(8){animation-delay:0.385s}
.library-grid>.material-card:nth-child(9){animation-delay:0.440s}
.library-grid>.material-card:nth-child(10){animation-delay:0.495s}
.library-grid>.material-card:nth-child(11){animation-delay:0.550s}
.library-grid>.material-card:nth-child(12){animation-delay:0.605s}
.hw-list>.hw-card:nth-child(2){animation-delay:0.055s}
.hw-list>.hw-card:nth-child(3){animation-delay:0.110s}
.hw-list>.hw-card:nth-child(4){animation-delay:0.165s}
.hw-list>.hw-card:nth-child(5){animation-delay:0.220s}
.hw-list>.hw-card:nth-child(6){animation-delay:0.275s}
.hw-list>.hw-card:nth-child(7){animation-delay:0.330s}
.hw-list>.hw-card:nth-child(8){animation-delay:0.385s}
.hw-list>.hw-card:nth-child(9){animation-delay:0.440s}
.hw-list>.hw-card:nth-child(10){animation-delay:0.495s}
.hw-list>.hw-card:nth-child(11){animation-delay:0.550s}
.hw-list>.hw-card:nth-child(12){animation-delay:0.605s}
/* the test dashboard's block cards have their own entrance (course.css) */
.question-list>.question:nth-child(2){animation-delay:0.060s}
.question-list>.question:nth-child(3){animation-delay:0.120s}
.question-list>.question:nth-child(4){animation-delay:0.180s}
.question-list>.question:nth-child(5){animation-delay:0.240s}
.question-list>.question:nth-child(6){animation-delay:0.300s}
.question-list>.question:nth-child(7){animation-delay:0.360s}
.question-list>.question:nth-child(8){animation-delay:0.420s}
.question-list>.question:nth-child(9){animation-delay:0.480s}
.question-list>.question:nth-child(10){animation-delay:0.540s}
.metrics>.metric:nth-child(2){animation-delay:0.070s}
.metrics>.metric:nth-child(3){animation-delay:0.140s}
.metrics>.metric:nth-child(4){animation-delay:0.210s}
.metrics>.metric:nth-child(5){animation-delay:0.280s}
.metrics>.metric:nth-child(6){animation-delay:0.350s}
.metrics>.metric:nth-child(7){animation-delay:0.420s}
.metrics>.metric:nth-child(8){animation-delay:0.490s}
.teacher-stats>.teacher-stat:nth-child(2){animation-delay:0.080s}
.teacher-stats>.teacher-stat:nth-child(3){animation-delay:0.160s}
.teacher-stats>.teacher-stat:nth-child(4){animation-delay:0.240s}
.teacher-stats>.teacher-stat:nth-child(5){animation-delay:0.320s}
.teacher-stats>.teacher-stat:nth-child(6){animation-delay:0.400s}
.learn-list>li{animation:mRise .6s cubic-bezier(.2,.7,.2,1) backwards}
.learn-list>li:nth-child(2){animation-delay:0.160s}
.learn-list>li:nth-child(3){animation-delay:0.220s}
.learn-list>li:nth-child(4){animation-delay:0.280s}
.learn-list>li:nth-child(5){animation-delay:0.340s}
.learn-list>li:nth-child(6){animation-delay:0.400s}
.learn-list>li:nth-child(7){animation-delay:0.460s}
.learn-list>li:nth-child(8){animation-delay:0.520s}
.learn-list>li:nth-child(9){animation-delay:0.580s}
.learn-list>li:nth-child(10){animation-delay:0.640s}
.library-filters{animation:mRise .6s .1s cubic-bezier(.2,.7,.2,1) backwards}
.reader{animation:mRise .65s cubic-bezier(.2,.7,.2,1) backwards}
details[open]>.hw-body,details[open]>.rec-body{animation:mFade .35s ease}
.page-head>*{animation:mRise .7s cubic-bezier(.2,.7,.2,1) backwards}
.page-head>*:nth-child(1){animation-delay:.05s}
.page-head>*:nth-child(2){animation-delay:.15s}
.page-head>*:nth-child(3){animation-delay:.25s}

/* ---- Forms and test ---- */
.form-card,.register-card,.teacher-card,.finish-panel{animation:mRise .7s cubic-bezier(.2,.7,.2,1) backwards}
.input{transition:border-color .2s,box-shadow .25s,background .2s,transform .2s}
.input:focus{transform:translateY(-1px)}
.choice:has(input:checked){animation:mChoice .3s ease}
.form-error{animation:mShake .5s ease}
.method{transition:border-color .2s,background .25s,transform .2s}
.method:active{transform:scale(.97)}
.success-card{animation:mRise .6s cubic-bezier(.2,.7,.2,1)}
.success-mark{animation:mCheck .8s .15s cubic-bezier(.2,.9,.3,1.2) backwards}
.register-done .success-mark{animation:mCheck .8s .15s cubic-bezier(.2,.9,.3,1.2) backwards}
.result{animation:mRise .7s cubic-bezier(.2,.7,.2,1) backwards}
.result-level{animation:mCheck .9s .3s cubic-bezier(.2,.9,.3,1.2) backwards}
.teacher-lock svg{animation:mWiggle 1.2s .6s ease}
.status{transition:background .3s,color .3s}
.word-count{transition:color .2s}

/* ---- Teachers' panel extras ---- */
.rec>summary{transition:background .2s}
@media (hover:hover){.rec>summary:hover{background:var(--paper)}}

/* header wraps on medium screens */
@media(max-width:1180px){
  .header{flex-wrap:wrap;gap:14px 24px}
  .nav-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px 18px;min-width:0}
}
/* ---------- Profile photo ---------- */
.profile{position:relative;flex-shrink:0}
.profile-btn{display:grid;place-items:center;width:44px;height:44px;padding:0;overflow:hidden;background:linear-gradient(160deg,var(--navy-2),var(--navy));border:2px solid var(--white);border-radius:50%;box-shadow:0 0 0 1px var(--line);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}
.profile-pic{display:grid;place-items:center;width:100%;height:100%}
.profile-pic img,.profile-big img{display:block;width:100%;height:100%;object-fit:cover}
.profile-menu{position:absolute;right:0;top:calc(100% + 12px);z-index:300;width:min(300px,88vw);padding:22px 20px 18px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 26px 50px -24px rgba(19,35,63,.55);text-align:center;animation:mPop .2s ease}
.profile-big{display:grid;place-items:center;width:104px;height:104px;margin:0 auto 12px;overflow:hidden;background:linear-gradient(160deg,var(--navy-2),var(--navy));border-radius:50%;color:#fff;font-family:var(--serif);font-size:36px}
.profile-name{margin-bottom:14px;font-family:var(--serif);font-size:20px;overflow-wrap:anywhere}
.profile-choose{display:flex;width:100%;cursor:pointer}
.profile-remove{display:block;margin:10px auto 0;padding:6px 8px;background:none;border:0;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;text-decoration:underline}
.profile-note{margin-top:12px;font-size:12.5px;line-height:1.5;color:var(--text-muted)}
.profile-logout{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:16px;padding:11px 14px;background:none;border:1px solid var(--line);border-radius:6px;font-size:14px;font-weight:600;color:var(--red-dark);cursor:pointer;transition:background .2s,border-color .2s}
.profile-logout:disabled{opacity:.6;cursor:default}
@media (hover:hover){.profile-logout:not(:disabled):hover{background:var(--red-tint);border-color:var(--red)}}
@media (hover:hover){.profile-btn:hover{transform:scale(1.06);box-shadow:0 0 0 2px var(--red)}}
@media(max-width:640px){.profile{order:2}}

/* ---------- Smooth scrolling: keep the page cheap to move ---------- */
/* Parts that move on every scroll frame get their own layer, so moving them never repaints what is around them. */
.has-story .hero-copy{will-change:transform,opacity}
.has-story .hero-arch,.has-story .hero-note{will-change:transform}
.word-field,.arch-symbols,.finale-sparks{contain:layout paint style}
/* The hero's endless loops (and the sparks of the closing band) stand still while that part is off screen (class set by
   story.js). Pausing them while scrolling was tried and made the browser stall, so they are left running there. */
.hero.is-offscreen .hero-badge::before,.hero.is-offscreen .hero-visual,.hero.is-offscreen .hero-ring,.hero.is-offscreen .hero-arch::after,
.hero.is-offscreen .arch-symbols span,.hero.is-offscreen .hero-quote::before,.hero.is-offscreen .hero-note::after,.hero.is-offscreen .hero-note-icon,
.finale.is-offscreen .finale-sparks i{animation-play-state:paused}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}.intro-overlay{display:none}}
