:root{--y:#d87945;--y2:#f0b766;--ys:#a95631;--d:#171d1c;--bg:#f8f7f4;--l:#efeee8;--t:#1c2321;--c:#fff;--g:#65706b;--r:14px;--sh:0 18px 50px -32px rgba(24,31,29,.38);--e:cubic-bezier(.2,.75,.2,1);color-scheme:light}
@media(prefers-color-scheme:dark){:root{--bg:#0d1311;--l:#151c19;--t:#edf0eb;--c:#1b2420;--g:#a4aea8;--ys:#f0b766;--sh:0 18px 50px -30px #000b;color-scheme:dark}}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--t);font:clamp(15px,.3vw + 14px,17px)/1.7 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}a{color:inherit}h1,h2,h3{line-height:1.12;letter-spacing:-.02em}
.wrap,.w{width:min(1180px,100% - 40px);margin-inline:auto}
header,.top{position:sticky;top:0;z-index:50;background:rgba(15,19,26,.55);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);color:#fff;transition:background .4s,box-shadow .4s}
header.sm,.top.sm{background:rgba(15,19,26,.93);box-shadow:0 8px 30px -10px #0008}
.bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;min-height:80px;transition:min-height .4s var(--e)}.sm .bar{min-height:62px}
.logo{text-decoration:none;font-size:1.55rem;font-weight:300;letter-spacing:.5px;color:#fff}.logo b{color:var(--y);font-weight:800}.logo small{display:block;font-size:.58rem;letter-spacing:5px;text-transform:uppercase;margin-top:-5px;color:#9aa3b2}
nav{display:flex;flex-wrap:wrap;align-items:center}
nav a{position:relative;text-decoration:none;color:#fff;padding:8px 14px;font-size:.95rem;cursor:pointer;transition:color .3s}
nav a:not(.btn):after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;background:var(--y);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--e)}
nav a.on,nav a:hover{color:var(--y)}nav a:not(.btn).on:after,nav a:not(.btn):hover:after{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;gap:.55em;background:linear-gradient(135deg,var(--y),var(--y2));color:#171d1c!important;padding:14px 24px;border:0;border-radius:8px;font:inherit;font-weight:700;line-height:1.2;cursor:pointer;text-decoration:none;box-shadow:0 10px 26px -12px rgba(216,121,69,.68);transition:transform .35s var(--e),box-shadow .35s}
.btn:after{content:"\2192";transition:transform .3s var(--e)}.btn:hover{transform:translateY(-3px);box-shadow:0 16px 32px -10px rgba(216,121,69,.72)}.btn:hover:after{transform:translateX(5px)}
nav .btn{padding:10px 22px;margin-left:12px;color:#111!important}nav .btn:hover{color:#111!important}
.btn.o{background:none;box-shadow:none;border:2px solid rgba(255,255,255,.65);color:#fff!important}.btn.o:hover{background:#fff;color:#111!important}
.hero{position:relative;min-height:min(88vh,820px);display:grid;align-items:center;color:#fff;background:var(--d);overflow:hidden;padding:clamp(90px,14vw,160px) 0 clamp(80px,10vw,120px)}
.hero.s,.hero.page{min-height:0;padding:clamp(70px,10vw,120px) 0}
.hero .bg,.hero>svg{position:absolute;inset:-10% 0 auto 0;width:100%;height:120%;opacity:.5;background:center/cover;will-change:transform}
.hero:before{content:"";position:absolute;z-index:1;width:60vmax;height:60vmax;right:-22vmax;top:-26vmax;background:radial-gradient(circle,rgba(245,168,0,.38),transparent 62%);animation:float 14s ease-in-out infinite alternate}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(95deg,rgba(15,19,26,.93) 10%,rgba(15,19,26,.35))}
.hero .wrap,.hero .w{position:relative;z-index:2}.hero .wrap>*,.hero .w>*{animation:up 1s var(--e) both}.hero .wrap>*:nth-child(2),.hero .w>*:nth-child(2){animation-delay:.15s}.hero .wrap>*:nth-child(3),.hero .w>*:nth-child(3){animation-delay:.3s}
.hero h1{font-size:clamp(2.3rem,6.2vw,4.8rem);margin:0 0 .4em;max-width:16ch;font-weight:800}.hero.s h1,.hero.page h1{font-size:clamp(2rem,5vw,3.6rem);max-width:none}
.hero em{font-style:normal;background:linear-gradient(90deg,var(--y),var(--y2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{font-size:clamp(1.05rem,1.6vw,1.3rem);color:#d6dbe4;max-width:560px}
@keyframes float{to{transform:translate(-9vmax,11vmax) scale(1.25)}}@keyframes up{from{opacity:0;transform:translateY(32px)}}@keyframes fade{from{opacity:0}}
section{padding:clamp(60px,9vw,120px) 0}.alt{background:var(--l)}
h2{font-size:clamp(1.8rem,3.6vw,2.8rem);margin:0 0 .4em;font-weight:800}h2:after{content:"";display:block;width:60px;height:5px;border-radius:9px;background:linear-gradient(90deg,var(--y),var(--y2));margin-top:12px}
.lead{max-width:64ch;font-size:clamp(1.05rem,1.4vw,1.2rem);color:var(--g)}
.grid3,.g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:clamp(18px,2.4vw,32px);margin-top:clamp(26px,4vw,48px)}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px;margin-top:30px}
.card{background:var(--c);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;border:1px solid rgba(128,138,155,.14);transition:transform .5s var(--e),box-shadow .5s}
.card.in:hover,.card:not(.rv):hover{transform:translateY(-8px);box-shadow:0 26px 54px -18px rgba(15,19,26,.35)}
.im{height:210px;overflow:hidden;position:relative;background:#222a36}.im:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(0,0,0,.28));pointer-events:none}
.im>i,.im>svg{display:block;width:100%;height:100%;transition:transform .9s var(--e)}.im>i{background:center/cover}.card:hover .im>i,.card:hover .im>svg{transform:scale(1.09)}
.in{padding:24px 26px 28px}.card h3{margin:0 0 8px;font-size:1.25rem}.card p{margin:.3em 0;color:var(--g)}.card small{color:var(--ys);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;font-size:.75rem}
.ck{padding:0;list-style:none;margin:12px 0 0}.ck li{padding:3px 0 3px 26px;position:relative;font-size:.93rem}.ck li:before{content:"\2713";position:absolute;left:0;color:var(--y);font-weight:800}
.num{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--y),var(--y2));color:#111;font-weight:800;margin-bottom:10px}
.quote p{font-style:italic;color:var(--t)}.tm .im{display:grid;place-items:center;background:linear-gradient(160deg,#2a303a,#0d1015) center/cover}.tm .im span{font-size:4rem;color:var(--y);font-weight:800;position:relative;z-index:1}
.split,.sp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(30px,6vw,80px);align-items:center}
.ceo{aspect-ratio:4/5;border-radius:var(--r);background:linear-gradient(160deg,#2a303a,#0d1015) center/cover;box-shadow:16px 16px 0 var(--y),var(--sh);display:grid;place-items:center;color:var(--y);text-align:center;font-size:.9rem;margin:0 16px 16px 0}
.stats,.st{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:24px;text-align:center}
.stats b,.st b{display:block;font-size:clamp(2.4rem,5vw,4rem);line-height:1.1;font-weight:800;background:linear-gradient(135deg,var(--y),var(--y2));-webkit-background-clip:text;background-clip:text;color:transparent}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:28px;margin-top:36px}.steps div{border-top:3px solid var(--y);padding-top:16px}.steps b{font-size:3rem;line-height:1;color:var(--y)}.steps p{color:var(--g)}
details{background:var(--c);border-radius:14px;padding:16px 22px;margin:12px 0;box-shadow:var(--sh);border:1px solid rgba(128,138,155,.14)}summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:12px}
summary::-webkit-details-marker{display:none}summary:after{content:"+";color:var(--y);font-size:1.5rem;line-height:1;transition:transform .35s var(--e)}details[open] summary:after{transform:rotate(45deg)}details[open] p{animation:up .5s var(--e)}details p{color:var(--g)}
input,textarea,select{width:100%;padding:14px 16px;border:1.5px solid rgba(128,138,155,.35);border-radius:12px;background:var(--c);color:var(--t);font:inherit;transition:border-color .25s,box-shadow .25s}
input:focus,textarea:focus,select:focus{outline:0;border-color:var(--y);box-shadow:0 0 0 4px rgba(245,168,0,.22)}form.f{display:grid;gap:14px}
.ok,.er{padding:14px 18px;border-radius:12px;margin-bottom:14px}.ok{background:#e6f7e9;color:#14532d;border-left:4px solid #2e9d4a}.er{background:#fdeaea;color:#7f1d1d;border-left:4px solid #c33}
.map{width:100%;height:340px;border:0;border-radius:var(--r);margin-top:20px;box-shadow:var(--sh)}.soc a{margin-right:16px;color:var(--ys);font-weight:700}.pre{white-space:pre-line}
.band{position:relative;background:var(--d);color:#fff;text-align:center;overflow:hidden}.band .bg{position:absolute;inset:0;background:center/cover;opacity:.28}.band .wrap{position:relative}.band h2:after{margin-inline:auto}
footer{background:#0a0d12;color:#9aa3b2;padding:70px 0 0}footer h4{color:#fff;margin:0 0 10px}footer .grid3{margin-top:0}.copy{text-align:center;border-top:1px solid #1d222b;padding:20px;margin:40px 0 0;font-size:.85rem}
.rv{opacity:0;transform:translateY(34px);transition:opacity .8s var(--e),transform .8s var(--e)}.rv.in{opacity:1;transform:none}
#mn,.burger{display:none}
@media(max-width:860px){.split,.sp{grid-template-columns:1fr}.ceo{max-width:380px}
.burger{display:block;color:#fff;font-size:2rem;cursor:pointer;line-height:1}
#mn~nav{position:absolute;top:100%;left:0;right:0;background:rgba(15,19,26,.97);flex-direction:column;align-items:stretch;padding:0 20px;max-height:0;overflow:hidden;opacity:0;transition:max-height .5s var(--e),opacity .4s,padding .4s}
#mn:checked~nav{max-height:520px;opacity:1;padding:10px 20px 26px}#mn~nav a{padding:12px 0}#mn~nav .btn{margin:10px 0 0;justify-content:center}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}html{scroll-behavior:auto}}

/* Architecture and construction finish */
.top{border-bottom:1px solid rgba(255,255,255,.1)}
.logo{font-weight:500;letter-spacing:-.04em}.logo b{color:var(--y2)}
.eyebrow{font-size:.76rem!important;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:#f0b766!important}
.hero:before{background:radial-gradient(circle,rgba(216,121,69,.3),transparent 64%)}
.hero:after{background:linear-gradient(95deg,rgba(17,24,22,.94) 8%,rgba(17,24,22,.42) 76%,rgba(17,24,22,.2))}
.hero h1{max-width:14ch;letter-spacing:-.045em}
.hero p{max-width:58ch}
.btn.o{border-radius:8px}
.card{box-shadow:0 10px 34px -24px rgba(24,31,29,.42)}
.card:not(.rv):hover{box-shadow:0 24px 48px -22px rgba(24,31,29,.32)}
.im{height:clamp(210px,23vw,290px)}
input,textarea,select{border-radius:8px}
footer a{color:#f0b766;text-decoration:none}footer a:hover{text-decoration:underline}
body.admin{--bg:#f8f7f4;--l:#efeee8;--t:#1c2321;--c:#fff;--g:#65706b;--ys:#a95631;background:#f1f2ef;color:#1c2321;color-scheme:light}
.admin .eyebrow{color:var(--ys)!important}
.admin .bar{gap:16px}
.admin-tabs{display:flex!important;flex-wrap:wrap;gap:5px;padding:9px 0}
.admin-tabs a{border-radius:7px;padding:9px 11px!important;font-size:.88rem}
.admin-tabs a.on{background:rgba(240,183,102,.17);color:#f0b766}
.admin-main{max-width:980px!important;padding-top:34px!important;padding-bottom:64px!important}
.admin-main>h2{margin-bottom:8px}
.admin-intro{color:#65706b;margin:0 0 26px}
.admin-form,.admin-item{background:#fff;border:1px solid #e3e6e1;border-radius:12px;padding:clamp(18px,3vw,28px);box-shadow:0 16px 40px -34px rgba(24,31,29,.45)}
.admin-form label,.admin-item label{display:grid;gap:8px;color:#343c38}
.admin-form label>b,.admin-item label>b{font-size:.92rem}
.admin-form input[type=file],.admin-item input[type=file]{background:#f7f8f6}
.upload-note{display:block;color:#65706b;font-size:.85rem;margin-top:-5px}
.upload-preview{display:block;width:min(100%,360px);max-height:210px;object-fit:cover;border-radius:8px;border:1px solid #e3e6e1;background:#f1f2ef}
.upload-preview[hidden]{display:none}
.admin-delete{margin:-5px 0 18px}.admin-delete button{border:0;background:none;color:#a33b35;text-decoration:underline;cursor:pointer;font:inherit;padding:4px 0}
.admin-login{max-width:440px;padding:clamp(48px,10vh,100px) 20px;margin:auto}.admin-login h1{font-size:2rem}.admin-login .admin-form{margin-top:24px}
.admin-section-title{margin:34px 0 14px}
.admin-item{margin-bottom:16px}
.admin .ok,.admin .er{border-radius:8px}
@media(max-width:860px){.admin .bar{align-items:center}.admin-tabs{max-height:56vh!important;overflow:auto!important}.admin-tabs a{padding:10px 9px!important}.hero h1{max-width:13ch}}

.burger{transition:transform .3s var(--e),color .3s}
#mn:checked+.burger{transform:rotate(90deg);color:var(--y2)}
.form-status{margin:12px 0 0;padding:0;min-height:0;color:var(--t)}
.form-status:empty{display:none}
.form-status.is-loading,.form-status.is-success,.form-status.is-error{padding:12px 16px;border-radius:10px}
.form-status.is-loading,.form-status.is-success{background:#e6f7e9;color:#14532d}
.form-status.is-error{background:#fdeaea;color:#7f1d1d}
.form-status.is-loading:before{content:"";display:inline-block;width:1em;height:1em;margin-right:9px;vertical-align:-.15em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
.f button:disabled{opacity:.72;cursor:wait;transform:none;box-shadow:none}
@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.form-status.is-loading:before{animation:none;border-right-color:currentColor}}

/* Responsive text sizing and safe wrapping */
html{overflow-x:clip}
body{overflow-x:clip;overflow-wrap:break-word}
h1,h2,h3{min-width:0;text-wrap:balance;overflow-wrap:break-word}
p,li,summary,label,small{overflow-wrap:anywhere;text-wrap:pretty}
input,textarea,select,button{min-width:0;max-width:100%}
iframe,svg,video{max-width:100%}
.wrap,.w,.bar,.grid3>*,.two>*,.steps>*,.split>*,.sp>*,.card,.in{min-width:0}
.wrap>p:not(.lead){max-width:min(72ch,100%)}
.btn{white-space:normal;text-align:center;justify-content:center}
.budget-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,170px);gap:10px;min-width:0}
.field-note{margin:-8px 0 0;color:var(--g);font-size:.84rem;line-height:1.45}

@media(max-width:640px){
 .wrap,.w{width:calc(100% - 32px)}
 .bar{min-height:68px;flex-wrap:nowrap;gap:8px}
 .logo{font-size:1.35rem}
 .logo small{letter-spacing:.25em}
 .hero{min-height:min(80vh,740px);padding:96px 0 72px}
 .hero h1{font-size:clamp(2.05rem,9.5vw,3.3rem);line-height:1.08;max-width:12ch}
 .hero.s h1,.hero.page h1{font-size:clamp(1.8rem,8vw,3rem);max-width:100%}
 h2{font-size:clamp(1.65rem,7.4vw,2.25rem)}
 section{padding:clamp(44px,11vw,70px) 0}
 .in{padding:20px 18px 22px}
 .im{height:clamp(180px,56vw,230px)}
 .stats,.st{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}
 .stats b,.st b{font-size:clamp(1.9rem,8vw,2.5rem)}
 .steps{grid-template-columns:1fr;gap:22px}
 .map{height:260px}
 .ceo{width:min(100%,340px);margin:0 auto 16px;box-shadow:10px 10px 0 var(--y),var(--sh)}
 .admin-tabs{flex-wrap:nowrap;white-space:nowrap;max-width:100%;overflow-x:auto!important;overflow-y:hidden!important;max-height:none!important;-webkit-overflow-scrolling:touch}
 .admin-tabs a{flex:0 0 auto}
}

@media(max-width:380px){
 .wrap,.w{width:calc(100% - 28px)}
 .in{padding:18px 16px 20px}
 .btn{padding:12px 16px}
 .stats,.st{gap:16px 8px}
}

@media(max-width:480px){
 .budget-row{grid-template-columns:minmax(0,1fr)}
}
