
/* Smile Gallery */
.sy-sg{padding:3rem 0 4rem}
.sy-sg-w{width:min(76rem,calc(100% - 2.5rem));margin:0 auto}
.sy-sg-label{display:block;font-family:"Geist Mono",monospace;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;margin:0 0 1rem;color:#a8384a;font-weight:400}
.sy-crumbs{font-size:.875rem;margin:0 0 1.25rem;color:#54514a}.sy-crumbs a{color:inherit}
.sy-sg h1{font-weight:300;font-size:clamp(3.2rem,7vw,6.5rem);line-height:.95;letter-spacing:-.05em;margin:0}
.sy-sg h2{font-weight:300;font-size:clamp(2rem,3.6vw,3rem);letter-spacing:-.03em;line-height:1.05;margin:0}
.sy-sg-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,35rem);gap:4rem;align-items:center}
.sy-sg-lede{font-size:1.2rem;line-height:1.55;color:#54514a;max-width:42ch;margin:1.25rem 0 0}
.sy-sg-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;list-style:none;padding:0}.sy-sg-badges li{padding:.45rem .9rem;border-radius:999px;background:#f1ece2;font-size:.875rem;color:#3a3833}
.sy-sg-stats{list-style:none;padding:0;margin:1.75rem 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.sy-sg-stats li{border-top:1px solid #d9d4c8;padding-top:.75rem}.sy-sg-stats b{display:block;font-weight:300;font-size:clamp(2.1rem,3.4vw,3.1rem);letter-spacing:-.04em;line-height:1}
.sy-sg-stats span{color:#54514a;font-size:.875rem}
.sy-sg-heroslider{position:relative}
.sy-cmp{position:relative;overflow:hidden;border-radius:1rem;background:#ece6d8;aspect-ratio:300/288;user-select:none;-webkit-user-select:none;touch-action:pan-y;--p:50%}
.sy-cmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.sy-cmp-b{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.sy-cmp-tag{position:absolute;top:.75rem;z-index:3;font-family:"Geist Mono",monospace;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;
 background:rgba(20,18,16,.45);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.3rem .6rem;border-radius:999px}
.sy-cmp-tag.l{left:.75rem}.sy-cmp-tag.r{right:.75rem}
.sy-cmp-h{position:absolute;top:0;bottom:0;left:var(--p);width:2px;margin-left:-1px;background:#fff;z-index:2;pointer-events:none;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.sy-cmp-h i{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2.75rem;height:2.75rem;border-radius:50%;background:rgba(255,254,248,.94);
 -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:grid;place-items:center;font-style:normal;color:#a8384a;box-shadow:0 6px 18px rgba(0,0,0,.2);transition:transform .15s ease-out}
.sy-cmp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:4;margin:0}
.sy-cmp input:active~.sy-cmp-h i{transform:translate(-50%,-50%) scale(.92)}
.sy-cmp:focus-within{outline:3px solid rgba(168,56,74,.45);outline-offset:3px}
.sy-cmp.is-hero{box-shadow:0 30px 70px rgba(34,30,25,.18)}
.sy-sg-hint{position:absolute;left:50%;bottom:-1.1rem;transform:translateX(-50%);background:#222;color:#fff;font-family:"Geist Mono",monospace;font-size:.75rem;letter-spacing:.1em;
 padding:.55rem .9rem;border-radius:999px;animation:sySgNudge 2.4s ease-in-out infinite;transition:opacity .3s;white-space:nowrap;pointer-events:none}
.sy-sg-heroslider.used .sy-sg-hint{opacity:0}
@keyframes sySgNudge{0%,100%{transform:translateX(-50%)}50%{transform:translateX(calc(-50% + 8px))}}
.sy-sg figure{margin:0}.sy-sg figcaption{margin-top:.6rem;color:#54514a;font-size:.95rem;text-align:left}.sy-sg figcaption b{color:#222;font-weight:500}
.sy-sg-sec{width:min(76rem,calc(100% - 2.5rem));margin:6rem auto 0}
.sy-sg-sh{display:flex;justify-content:space-between;align-items:flex-end;gap:1.25rem;flex-wrap:wrap;margin-bottom:1.75rem}.sy-sg-sh p{color:#54514a;margin:0}
.sy-sg-feat{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.sy-sg-feat .sy-cmp{max-width:32rem;margin:0 auto}
.sy-sg-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.1rem}
.sy-sg-rev{text-align:center;max-width:48rem}
.sy-sg blockquote{border:0!important;padding:0!important;quotes:none;margin:.75rem 0;font-weight:300;font-size:clamp(1.6rem,3vw,2.5rem);letter-spacing:-.02em;line-height:1.2}
.sy-sg blockquote::before,.sy-sg blockquote::after{content:none}.sy-sg cite{font-style:normal;color:#54514a}.sy-stars{color:#d8a33a;letter-spacing:3px}
.sy-sg-tx{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}
.sy-sg-tx a{background:#f6f3ea;border-radius:1rem;overflow:hidden;color:#222;text-decoration:none;transition:transform .1s ease-out}.sy-sg-tx a:active{transform:scale(.97)}
.sy-sg-tx img{width:100%;aspect-ratio:4/3;object-fit:contain;padding:1rem;display:block}.sy-sg-tx b{display:block;font-weight:400;padding:0 1.1rem 1.1rem}
.sy-sg-cta{width:min(76rem,calc(100% - 2.5rem));margin:6rem auto 0;background:#222;color:#fffef8;border-radius:1rem;padding:3rem;display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap}
.sy-sg-cta h2{color:#fffef8}.sy-sg-cta p{color:#d9d4c8;margin:.5rem 0 0;max-width:60ch}.sy-sg-cta .sy-sg-label{color:#fffef8;opacity:.8}
.sy-btns{display:flex;flex-wrap:wrap;gap:.6rem}
.sy-btns a{display:inline-flex;align-items:center;min-height:48px;padding:0 1.25rem;border-radius:.25rem;text-decoration:none;font-size:1rem;transition:transform .1s ease-out}
.sy-btns a:active{transform:scale(.97)}.sy-btns .is-light{background:#fffef8;color:#222}.sy-btns .is-line{border:1px solid currentColor;color:inherit}
@media (max-width:991px){.sy-sg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sy-sg-hero{grid-template-columns:minmax(0,1fr);gap:2.5rem}.sy-sg-tx{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.sy-sg{padding-top:2rem}.sy-sg-feat{grid-template-columns:minmax(0,1fr)}.sy-sg-grid{grid-template-columns:1fr 1fr;gap:.6rem}
 .sy-sg-stats b{font-size:1.8rem}.sy-sg-sec,.sy-sg-cta{margin-top:4rem}.sy-sg-cta{padding:2rem}.sy-cmp-tag{font-size:.6rem}.sy-sg-grid .sy-cmp-h i{width:2.2rem;height:2.2rem}}
@media (prefers-reduced-motion:reduce){.sy-sg-hint{animation:none}.sy-cmp-h i,.sy-btns a,.sy-sg-tx a{transition:none}}
@media (prefers-reduced-transparency:reduce){.sy-cmp-tag,.sy-cmp-h i{background:#fffef8;color:#222;-webkit-backdrop-filter:none;backdrop-filter:none}}

/* header glass (scripts/header_glass.py) */
.navigation .nav-bar.is-main,.navigation .mobile-navbar{background-color:rgba(255,254,248,.84)!important;
 -webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),0 1px 0 rgba(34,30,25,.06),0 10px 30px rgba(34,30,25,.08);
 transition:background-color .25s ease,box-shadow .25s ease}
.navigation .nav-link,.navigation .mobile-navbar .login-button,.navigation .mobile-navbar .login-button *{color:#222!important;transition:color .25s ease}
.navigation .nav-divider{background-color:rgba(34,30,25,.14)!important;transition:background-color .25s ease}
.navigation .menu-bar{background-color:#222!important;transition:background-color .25s ease}
.sy-logo-swap{position:relative;display:block;line-height:0}
.sy-logo-swap .is-white{position:absolute;left:0;top:0;height:100%;width:auto;opacity:0;transition:opacity .25s ease}
.sy-logo-swap .is-colour{transition:opacity .25s ease}
html.sy-over .navigation .nav-bar.is-main,html.sy-over .navigation .mobile-navbar{background-color:rgba(20,18,16,.24)!important;
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
html.sy-over .navigation .nav-link,html.sy-over .navigation .mobile-navbar .login-button,
html.sy-over .navigation .mobile-navbar .login-button *{color:#fff!important}
html.sy-over .navigation .nav-divider{background-color:rgba(255,255,255,.32)!important}
html.sy-over .navigation .menu-bar{background-color:#fff!important}
html.sy-over .sy-logo-swap .is-white{opacity:1}html.sy-over .sy-logo-swap .is-colour{opacity:0}
@media (prefers-reduced-transparency:reduce){
 .navigation .nav-bar.is-main,.navigation .mobile-navbar{background-color:#fffef8!important;-webkit-backdrop-filter:none;backdrop-filter:none}
 html.sy-over .navigation .nav-bar.is-main,html.sy-over .navigation .mobile-navbar{background-color:rgba(20,18,16,.72)!important}}
@media (prefers-reduced-motion:reduce){.navigation *,.sy-logo-swap img{transition:none!important}}
