:root{--sand:#e3c9a0;--sand-dark:#d1b184;--terracotta:#c1622d;--terracotta-dark:#9c4a1f;--clay:#6b3319;--dusk:#3c2a3e;--dusk-deep:#1a1114;--sage:#7c8a5e;--cream:#f8ecd8;--ink:#2b2320;--gold:#d9a441;--radius:18px;--shadow:0 12px 32px #3c201424;font-family:Poppins,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--dusk-deep);color:var(--cream);-webkit-font-smoothing:antialiased;margin:0}img{max-width:100%;display:block}a{color:inherit}.section{max-width:1120px;margin:0 auto;padding:88px 24px}.reveal{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(28px)}.reveal-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}.section-tag{text-transform:uppercase;letter-spacing:.14em;color:var(--gold);background:#d9a44129;border-radius:999px;margin-bottom:16px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-block}.section-title{color:#fffaf3;letter-spacing:-.01em;margin:0 0 14px;font-size:clamp(28px,4vw,42px);font-weight:700}.section-lead{color:#fffaf3bf;max-width:640px;margin:0 0 40px;font-size:18px;line-height:1.6}.btn{cursor:pointer;border:none;border-radius:999px;align-items:center;gap:8px;padding:15px 30px;font-size:16px;font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--terracotta);color:var(--cream);box-shadow:0 10px 24px #c1622d59}.btn-primary:hover{background:var(--terracotta-dark)}.btn-ghost{color:var(--cream);background:#ffffff24;border:1.5px solid #fffaf38c}.btn-ghost:hover{background:#ffffff3d}.btn-outline{color:var(--gold);border:1.5px solid var(--gold);background:0 0}.btn-outline:hover{background:#d9a4411a}.nav{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1a1114d9;border-bottom:1px solid #fffaf314;justify-content:space-between;align-items:center;padding:16px 28px;transition:box-shadow .25s,padding .25s;display:flex;position:sticky;top:0;box-shadow:0 0 #0000}.nav-scrolled{padding:11px 28px;box-shadow:0 8px 24px #00000040}.nav-brand{color:var(--cream);align-items:center;gap:10px;font-size:19px;font-weight:700;display:flex}.nav-brand-mark{object-fit:cover;border-radius:10px;flex-shrink:0;width:34px;height:34px}.nav-links{gap:26px;font-size:15px;font-weight:500;display:flex}.nav-links a{color:#fffaf3b8;padding-bottom:4px;text-decoration:none;transition:color .15s;position:relative}.nav-links a:hover,.nav-links a.nav-active{color:var(--gold)}.nav-links a.nav-active:after{content:"";background:var(--terracotta);border-radius:2px;height:2px;position:absolute;bottom:0;left:0;right:0}.hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:34px;height:34px;padding:0;display:none}.hamburger span{background:var(--cream);border-radius:2px;width:100%;height:2px;transition:transform .25s,opacity .25s;display:block}.hamburger-open span:first-child{transform:translateY(7px)rotate(45deg)}.hamburger-open span:nth-child(2){opacity:0}.hamburger-open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.mobile-menu{z-index:49;background:#1a1114f5;border-bottom:1px solid #fffaf314;flex-direction:column;max-height:0;transition:max-height .3s;display:flex;position:sticky;top:0;overflow:hidden}.mobile-menu-open{max-height:360px}.mobile-menu a{color:var(--cream);border-top:1px solid #fffaf314;padding:16px 28px;font-weight:600;text-decoration:none}.mobile-menu-phone{color:var(--gold)!important}.nav-cta{align-items:center;gap:14px;display:flex}.nav-phone{color:var(--cream);font-weight:600;text-decoration:none;display:none}@media (width>=760px){.nav-phone{align-items:center;gap:6px;display:inline-flex}}@media (width<=820px){.nav-links{display:none}.hamburger{display:flex}}@media (width<=460px){.nav{padding:12px 16px}.nav-brand{gap:8px;font-size:15px}.nav-brand-mark{width:28px;height:28px;font-size:15px}.nav-cta{gap:8px}.nav-cta .btn-primary{white-space:nowrap;padding:8px 14px!important;font-size:12.5px!important}}@media (width>=821px){.mobile-menu{display:none}}.site-bg{z-index:-3;transform-origin:0 100%;background-position:0 100%;background-size:cover;animation:50s ease-in-out infinite alternate site-kenburns;position:fixed;inset:0}@keyframes site-kenburns{0%{transform:scale(1.05)}to{transform:scale(1.14)}}.site-scrim{z-index:-2;background:linear-gradient(#1a1114b8 0%,#1a1114d1 40%,#1a1114eb 100%);position:fixed;inset:0}.site-clouds{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.cloud{filter:blur(6px);background:radial-gradient(closest-side,#fffaf329,#fffaf300 70%);border-radius:50%;position:absolute}.cloud-1{width:520px;height:220px;animation:70s linear infinite drift-right;top:6%;left:-35%}.cloud-2{opacity:.6;width:380px;height:160px;animation:95s linear -20s infinite drift-right;top:30%;left:-40%}.cloud-3{width:620px;height:260px;animation:110s linear -50s infinite drift-right;top:58%;left:-35%}.cloud-4{opacity:.55;width:300px;height:140px;animation:80s linear -10s infinite drift-right;top:82%;left:-25%}@keyframes drift-right{0%{transform:translate(0)}to{transform:translate(160vw)}}@media (prefers-reduced-motion:reduce){.site-bg{animation:none;transform:scale(1.05)}.cloud{animation:none}}.hero{align-items:center;min-height:88vh;display:flex;position:relative;overflow:hidden}.hero-vignette{background:radial-gradient(#140d0f4d 0%,#140d0f9e 100%);position:absolute;inset:0}.hero-scroll-cue{z-index:2;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.hero-scroll-icon{color:#fffaf3a6;animation:1.6s infinite hero-swipe;display:block}@keyframes hero-swipe{0%{opacity:.35;transform:translateY(6px)}50%{opacity:.85;transform:translateY(-6px)}to{opacity:.35;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.hero-scroll-icon{animation:none}}.hero-content{z-index:2;text-align:center;max-width:800px;color:var(--cream);margin:0 auto;padding:0 28px;position:relative}.hero-badge{background:#fffaf31f;border:1px solid #fffaf34d;border-radius:999px;align-items:center;gap:8px;margin-bottom:26px;padding:8px 16px;font-size:14px;display:inline-flex}.hero-title{letter-spacing:-.02em;margin:0 0 20px;font-size:clamp(38px,6vw,64px);font-weight:700;line-height:1.05}.hero-title em{color:var(--gold);font-style:normal}.hero-sub{color:#fffaf3db;max-width:560px;margin:0 auto 36px;font-size:clamp(16px,2vw,20px);line-height:1.6}.hero-actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-bottom:44px;display:flex}.hero-stats{flex-wrap:wrap;justify-content:center;gap:28px;display:flex}.hero-stat{text-align:center}.hero-stat-num{color:var(--gold);font-size:26px;font-weight:700}.hero-stat-label{color:#fffaf3b3;text-transform:uppercase;letter-spacing:.08em;font-size:13px}.services-grid{flex-wrap:wrap;justify-content:center;gap:22px;display:flex}.service-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius);max-width:320px;box-shadow:var(--shadow);background:#fffaf314;border:1px solid #fffaf329;flex:300px;padding:30px 26px}.service-icon{background:#c1622d1f;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:18px;font-size:26px;display:flex}.service-card h3{color:var(--cream);margin:0 0 10px;font-size:20px}.service-card p{color:#fffaf3b8;margin:0 0 14px;font-size:15px;line-height:1.6}.service-price{color:var(--gold);font-size:14px;font-weight:700}.gallery-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;grid-auto-flow:dense;gap:12px;display:grid}.gallery-tile{cursor:pointer;box-shadow:var(--shadow);background:0 0;border:none;border-radius:14px;padding:0;transition:transform .25s,box-shadow .25s;overflow:hidden}.gallery-tile:hover,.gallery-tile:focus-visible{outline:none;transform:scale(1.03);box-shadow:0 16px 36px #3c201438}.gallery-tile img{object-fit:cover;width:100%;height:100%;display:block}.g-big{grid-area:span 2/span 2}@media (width<=720px){.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}.g-big{grid-area:span 1/span 2}}.lightbox{z-index:100;background:#140c0aeb;justify-content:center;align-items:center;padding:40px;animation:.2s lightbox-fade;display:flex;position:fixed;inset:0}@keyframes lightbox-fade{0%{opacity:0}to{opacity:1}}.lightbox-img{border-radius:12px;max-width:min(90vw,1000px);max-height:85vh;box-shadow:0 20px 60px #00000080}.lightbox-close{color:var(--cream);cursor:pointer;background:#ffffff1f;border:none;border-radius:50%;width:42px;height:42px;font-size:18px;position:absolute;top:20px;right:24px}.lightbox-close:hover{background:#ffffff38}.lightbox-arrow{color:var(--cream);cursor:pointer;background:#ffffff1f;border:none;border-radius:50%;width:50px;height:50px;font-size:28px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-arrow:hover{background:#ffffff38}.lightbox-prev{left:20px}.lightbox-next{right:20px}.lightbox-count{color:#fffaf3bf;letter-spacing:.05em;font-size:14px;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}@media (width<=640px){.lightbox-arrow{width:40px;height:40px;font-size:22px}.lightbox-prev{left:8px}.lightbox-next{right:8px}}.about-wrap{grid-template-columns:1fr 1fr;align-items:center;gap:56px;display:grid}@media (width<=820px){.about-wrap{grid-template-columns:1fr}}.about-photo{border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.about-copy{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius);box-shadow:var(--shadow);background:#fffaf314;border:1px solid #fffaf329;padding:34px 32px}.about-copy p{color:#fffaf3bf;font-size:16.5px;line-height:1.75}.about-quote{border-left:3px solid var(--gold);color:var(--cream);margin:24px 0;padding-left:18px;font-style:italic}.team-grid{text-align:center;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:24px;margin-top:56px;display:grid}.team-card{border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffaf314;border:1px solid #fffaf329;padding:22px 16px 20px}.team-photo{object-fit:cover;width:120px;height:120px;box-shadow:var(--shadow);border:3px solid var(--cream);border-radius:50%;margin:0 auto 14px}.team-name{color:var(--cream);font-size:16px;font-weight:700}.team-role{color:#fffaf3a6;margin-top:2px;font-size:13px}.review-badges{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;display:grid}.review-badge{border-radius:var(--radius);color:var(--cream);background:#fffaf30f;border:1px solid #fffaf324;padding:26px;text-decoration:none;transition:background .15s,transform .15s}.review-badge:hover{background:#fffaf31f;transform:translateY(-3px)}.review-stars{color:var(--gold);letter-spacing:2px;margin-bottom:10px;font-size:18px}.review-score{font-size:30px;font-weight:700}.review-source{color:#fffaf3b8;margin-top:4px;font-size:14px}.book-wrap{grid-template-columns:1fr 1fr;align-items:stretch;gap:40px;display:grid}@media (width<=860px){.book-wrap{grid-template-columns:1fr}}.book-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius);box-shadow:var(--shadow);background:#fffaf314;border:1px solid #fffaf329;padding:34px}.book-panel h3{color:var(--cream);margin-top:0;font-size:22px}.book-list{margin:20px 0;padding:0;list-style:none}.book-list li{color:#fffaf3bf;align-items:flex-start;gap:12px;margin-bottom:14px;line-height:1.5;display:flex}.book-list li:before{content:"✓";color:var(--gold);font-weight:700}.book-preview-tag{color:var(--gold);letter-spacing:.06em;text-transform:uppercase;background:#d9a4412e;border-radius:999px;margin-bottom:16px;padding:5px 12px;font-size:12px;font-weight:700;display:inline-block}.contact-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--cream);background:linear-gradient(135deg,#9c4a1fd1,#6b3319e0);border:1px solid #fffaf324;flex-direction:column;justify-content:space-between;padding:34px;display:flex}.contact-panel h3{margin-top:0;font-size:22px}.contact-row{align-items:center;gap:12px;margin-bottom:16px;font-size:15px;display:flex}.hours-table{border-collapse:collapse;width:100%;margin-top:10px;font-size:14.5px}.hours-table td{border-bottom:1px solid #fffaf333;padding:6px 0}.hours-table td:last-child{text-align:right;font-weight:600}.footer{color:#fffaf3a6;text-align:center;background:0 0;border-top:1px solid #fffaf31f;padding:34px 24px;font-size:14px}.footer strong{color:var(--cream)}.footer-note{color:#fffaf366;margin-top:10px;font-size:12.5px}
