:root{--ink:#0b1220;--muted:#94a3b8;--line:#e5e7eb;--soft:#ffffff;--card:#ffffff;--gold:#d4af37;--gold-2:#c39a1f;--popular-start:#fff8e1;--popular-end:#ffe082;--promo-start:#fee2e2;--promo-end:#ef4444;--max:1400px}*{box-sizing:border-box}html,body{margin:0}body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:#fff}.hero-v2{position:relative;height:70vh;min-height:460px;color:#fff;overflow:hidden;isolation:isolate}.hero-v2__bg{position:absolute;inset:0;background:radial-gradient(80% 90% at 70% 20%,rgb(212 175 55 / .18),transparent 60%),linear-gradient(180deg,rgb(0 0 0 / .25),rgb(0 0 0 / .55)),url(../img/bg/luxury-beachfront-villa-with-infinity-pool.jpg) center/cover no-repeat;transform:scale(1.04);filter:saturate(105%) contrast(102%);z-index:-1}.hero-v2__inner{position:absolute;left:clamp(20px,6vw,80px);bottom:clamp(96px,18vh,140px);max-width:min(680px,82vw)}.hero-v2__eyebrow{display:inline-flex;gap:12px;align-items:center;font-weight:700;letter-spacing:.18em;font-size:.85rem;color:var(--gold);text-transform:uppercase}.hero-v2__eyebrow::before{content:"";width:44px;height:2px;background:var(--gold);border-radius:2px}.hero-v2__title{margin:.4rem 0 .25rem;font-size:clamp(32px,6vw,64px);line-height:1.12;font-weight:800;background:linear-gradient(90deg,#fff,#fff,var(--gold));-webkit-background-clip:text;background-clip:text;color:#fff0;text-shadow:0 0 18px rgb(212 175 55 / .35)}.hero-v2__title span{opacity:.9;font-weight:700}.hero-v2__desc{margin-top:.4rem;font-size:clamp(14px,2.2vw,18px);color:#e5e7eb;opacity:.9}.hero-v2__arrow{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);background:none;border:none;cursor:pointer;animation:arrowFloat 2s infinite ease-in-out}.hero-v2__arrow svg{stroke:#d1d5db;opacity:.7;transition:opacity .2s ease}.hero-v2__arrow:hover svg{opacity:1;transform:translateY(2px);transition:.18s ease}.hero-v2__arrow span{font-weight:700;font-size:.9rem;letter-spacing:.4px;color:#fff;text-shadow:0 2px 8px rgb(0 0 0 / .45)}@keyframes arrowFloat{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,6px)}}.projects-v2{padding:clamp(56px,8vw,110px) 20px;background:#f7f7f8;color:var(--ink);text-align:center}.projects-v2 h2{font-size:clamp(24px,4vw,36px);margin:0 0 .25rem}.projects-v2 p{color:#475569;max-width:860px;margin:0 auto}@media (max-width:640px){.hero-v2{min-height:420px}.hero-v2__inner{bottom:120px}}.toolbar{position:sticky;top:0;z-index:40;background:rgb(255 255 255 / .9);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}.toolbar .inner{max-width:var(--max);margin:auto;padding:12px 16px;display:grid;grid-template-columns:1fr;gap:10px}.bottom{display:flex;gap:10px}.search{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:12px 16px;min-height:48px}.search input{flex:1;border:none;outline:none;background:#fff0;font-size:16px}.select{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:12px 14px;min-height:48px}.select select{border:none;outline:none;background:#fff0;font-weight:700}.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:12px 14px;font-weight:700}.btn:hover{background:#f7f7f7}@media (max-width:600px){.search input{font-size:14px}.search,.select,.btn{padding:8px 10px;min-height:40px}}@media (min-width:601px){.toolbar .inner{grid-template-columns:1fr auto auto;align-items:center}.bottom{display:contents}}.filter{background:#fff;border-bottom:none}.chips{max-width:var(--max);margin:auto;padding:12px 16px 10px;display:flex;gap:10px;overflow:auto}.chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;color:#111;font-weight:700;white-space:nowrap;cursor:pointer;transition:background .12s,transform .12s,box-shadow .12s,border-color .12s}.chip:hover{background:#f9fafb;transform:translateY(-1px)}.chip.active{border-color:var(--gold);background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#0b1220;box-shadow:0 8px 18px rgb(212 175 55 / .25)}.catalog{background:var(--soft);padding:24px 0 6px}.container{max-width:var(--max);margin:auto;padding:0 20px}.grid{display:grid;gap:28px}@media (min-width:700px){.grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1200px){.grid{grid-template-columns:repeat(3,1fr)}}.card{position:relative;display:block;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 10px 28px rgb(2 6 23 / .10);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.card__media{position:relative;aspect-ratio:16/10;background:#0b1220;overflow:hidden}.card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease,box-shadow .2s ease}.card:hover .card__media img{transform:scale(1.05)}.card__meta{padding:14px 16px 35px}.card__title{margin:0 0 6px;font-size:1.12rem;line-height:1.35;font-weight:800}.card__desc{margin:0;color:#475569}.taglist{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.taglist span{font-size:.82rem;font-weight:700;color:#0b1220;background:#f3f4f6;border:1px solid #e5e7eb;padding:6px 12px;border-radius:999px}.ribbon-stack{position:absolute;left:14px;top:14px;display:flex;gap:8px;flex-wrap:wrap;z-index:2}.ribbon{padding:8px 12px;border-radius:999px;font-size:.8rem;font-weight:900;letter-spacing:.2px;color:#0b1220;background:rgb(255 255 255 / .92);border:1px solid #fff;backdrop-filter:saturate(140%) blur(4px);box-shadow:0 10px 22px rgb(2 6 23 / .12)}.more{position:absolute;right:18px;bottom:18px;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;font-weight:800;font-size:.9rem;background:#fff;border:1px solid var(--line);color:#0b1220;box-shadow:0 10px 22px rgb(2 6 23 / .12);text-decoration:none;transition:background .2s ease,transform .25s ease}.more:hover{background:#f7f7f7;transform:translateX(2px)}.card:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-color:var(--gold)}.pager{background:#fff;border-top:1px solid var(--line);margin-top:8px}.pager__inner{max-width:var(--max);margin:auto;padding:16px 16px;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.pager__btn,.pager__num{min-width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:#fff;font-weight:700;cursor:pointer}.pager__btn{transition:.15s transform,.15s background}.pager__btn:hover{background:#f7f7f7;transform:translateY(-1px)}.pager__btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.pager__num.active{border-color:var(--gold);box-shadow:0 10px 22px rgb(212 175 55 / .18)}.pager__info{color:#334155;font-weight:700;margin-left:6px}.ellipsis{color:#94a3b8;padding:0 6px}@media (max-width:1024px){.pager__btn,.pager__num{min-width:38px;height:38px;font-size:.95rem}.pager__info{font-size:.9rem}}@media (max-width:600px){.pager__inner{gap:6px}.pager__btn,.pager__num{min-width:34px;height:34px;font-size:.85rem}.pager__info{display:block;width:100%;text-align:center;margin-top:8px;font-size:.85rem}}.imgcard{position:relative;display:block;overflow:hidden;border-radius:18px;text-decoration:none;color:inherit;background:#fff;border:1px solid rgb(0 0 0 / .06);box-shadow:0 8px 20px rgb(0 0 0 / .06);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.imgcard__media{aspect-ratio:16/10;background:#0b1220}.imgcard__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .35s ease}.imgcard__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px 16px;background:linear-gradient(180deg,#fff0 0%,rgb(0 0 0 / .55) 70%,rgb(0 0 0 / .65) 100%);color:#fff}.imgcard__title{margin:0 0 4px;font-weight:800;font-size:1.02rem}.imgcard__sub{margin:0;opacity:.9;font-weight:600;font-size:.92rem}@media (hover:hover){.imgcard:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgb(0 0 0 / .14);border-color:rgb(212 175 55 / .35)}.imgcard:hover .imgcard__media img{transform:scale(1.06);filter:brightness(1.05) saturate(106%)}}.imgcard .ribbon-stack{position:absolute;left:12px;top:12px;display:flex;gap:8px}#backToTop{position:fixed;bottom:40px;right:40px;display:none;background:#3f3f3f;color:#fff;border:none;border-radius:50%;width:45px;height:45px;font-size:22px;cursor:pointer;box-shadow:0 4px 8px rgb(0 0 0 / .3);transition:background 0.3s;z-index:999}#backToTop:hover{background:#555}