/* GEODOMAS Resort polish layer · 2026-09-23 · additive, rollback-safe */
:root{
  --gold-2:#e4c58f;
  --paper-2:#f5f0e7;
  --shadow-soft:0 18px 55px rgba(7,19,15,.10);
  --shadow-card:0 24px 72px rgba(7,19,15,.16);
  --ease-premium:cubic-bezier(.22,1,.36,1);
}
html{scroll-padding-top:88px}
body{overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
::selection{background:#d8b77d;color:#07130f}
:focus-visible{outline:3px solid var(--gold);outline-offset:4px;border-radius:8px}
button,input,select,textarea{font:inherit}

/* Navigation */
.nav{transition:background .35s var(--ease-premium),box-shadow .35s var(--ease-premium),border-color .35s var(--ease-premium)}
.nav.is-scrolled{background:#06110ff7;border-bottom-color:#ffffff20;box-shadow:0 12px 42px #02080642}
.navin{position:relative}
.brand{display:inline-flex;align-items:center;gap:10px}
.brand:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px #caa46918}
.links>a:not(.btn){position:relative;transition:color .22s ease}
.links>a:not(.btn):after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--gold);transition:right .28s var(--ease-premium)}
.links>a:not(.btn):hover,.links>a[aria-current="true"]{color:#fff}
.links>a:not(.btn):hover:after,.links>a[aria-current="true"]:after{right:0}
.menu-toggle{display:none;position:relative;width:44px;height:44px;border:1px solid #ffffff32;border-radius:50%;background:#ffffff08;color:#fff;cursor:pointer;align-items:center;justify-content:center}
.menu-toggle span,.menu-toggle:before,.menu-toggle:after{content:"";position:absolute;width:18px;height:1.5px;background:currentColor;transition:.25s var(--ease-premium)}
.menu-toggle span{transform:translateY(0)}.menu-toggle:before{transform:translateY(-6px)}.menu-toggle:after{transform:translateY(6px)}
.menu-toggle[aria-expanded="true"] span{opacity:0}.menu-toggle[aria-expanded="true"]:before{transform:rotate(45deg)}.menu-toggle[aria-expanded="true"]:after{transform:rotate(-45deg)}
.nav-progress{position:absolute;left:0;bottom:-1px;height:1px;width:var(--scroll-progress,0%);background:linear-gradient(90deg,var(--gold),var(--gold-2));pointer-events:none;transition:width .08s linear}

/* Buttons */
.btn{position:relative;overflow:hidden;isolation:isolate;box-shadow:0 12px 28px #07130f1b;transition:transform .24s var(--ease-premium),box-shadow .24s var(--ease-premium),filter .24s}
.btn:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(105deg,#d8b478,#c89d5d);opacity:0;transition:opacity .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px #07130f2b;filter:none}.btn:hover:before{opacity:1}
.btn.ghost{box-shadow:none;background:#ffffff05;backdrop-filter:blur(12px)}
.btn.ghost:before{background:#ffffff10}.btn.ghost:hover{border-color:#ffffff88}

/* Hero */
.hero{min-height:clamp(720px,96svh,980px);padding:clamp(138px,17vh,190px) 0 clamp(64px,9vh,92px);background-position:center 46%;isolation:isolate}
.hero:before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 73% 34%,rgba(202,164,105,.11),transparent 29%),linear-gradient(180deg,transparent 55%,rgba(3,10,7,.30));pointer-events:none}
.hero .wrap{max-width:1180px;margin-left:max(24px,calc((100vw - var(--max))/2));margin-right:auto}
.hero h1{max-width:9.5ch;text-wrap:balance;text-shadow:0 5px 34px #0008}
.hero p{max-width:670px;line-height:1.56;text-shadow:0 2px 20px #0008}
.hero .actions{margin-top:34px}
.hero-note{gap:9px;border-top:0;padding-top:0;margin-top:44px}
.hero-note span{padding:8px 12px;border:1px solid #ffffff28;border-radius:999px;background:#07130f42;backdrop-filter:blur(10px)}
.concept{right:28px;bottom:26px;border-color:#ffffff30;background:#07130fc2;backdrop-filter:blur(12px)}

/* Section rhythm */
.section{padding:clamp(88px,9vw,132px) 0}
.section>.wrap{position:relative}
.soft{background:linear-gradient(180deg,#f0eadd 0%,#f6f2e9 100%)}
.archetypes{background:linear-gradient(180deg,#dfe4dc 0%,#e9ece5 100%)}
.dark{background:linear-gradient(180deg,#081711 0%,#06110e 100%)}
.split{gap:clamp(44px,6vw,82px)}
.head h2,.split h2,.component-intro h2,.archetype-head h2{max-width:12.5ch;text-wrap:balance}
.lead{line-height:1.7;max-width:64ch}
.ey{display:inline-flex;align-items:center;gap:10px}
.ey:before{content:"";width:22px;height:1px;background:currentColor;opacity:.58}

/* Facts */
.facts{border-top-color:#c2cbc3;margin-top:42px;gap:0}
.fact{position:relative;padding:24px 22px 12px 0}
.fact:not(:last-child):after{content:"";position:absolute;top:22px;right:18px;bottom:8px;width:1px;background:linear-gradient(transparent,#bec9c0,transparent)}
.fact strong{letter-spacing:-.02em}

/* Image cards */
.family,.scenario,.component-card,.archetype{border:1px solid #ffffff13;box-shadow:var(--shadow-soft);transform:translateZ(0);transition:transform .42s var(--ease-premium),box-shadow .42s var(--ease-premium),border-color .35s}
.family:hover,.scenario:hover,.component-card:hover,.archetype:hover{transform:translateY(-5px);box-shadow:var(--shadow-card);border-color:#ffffff30}
.family img,.scenario img,.component-card img,.archetype img{filter:saturate(.96) contrast(1.02);transition:transform .75s var(--ease-premium),filter .45s ease}
.family:hover img,.scenario:hover img,.component-card:hover img,.archetype:hover img{transform:scale(1.035);filter:saturate(1.03) contrast(1.03)}
.family:after,.scenario:after,.component-card:after,.archetype:after{background:linear-gradient(180deg,rgba(4,12,9,.03) 26%,rgba(4,12,9,.90) 100%)}
.family-content,.scenario-copy,.component-copy,.archetype-copy{transition:transform .42s var(--ease-premium)}
.family:hover .family-content,.scenario:hover .scenario-copy,.component-card:hover .component-copy,.archetype:hover .archetype-copy{transform:translateY(-4px)}
.tag{background:#07130f33;backdrop-filter:blur(8px)}

/* Components / editorial grid */
.component-grid{gap:18px}.component-card,.component-logic{border-radius:28px}
.component-logic{box-shadow:inset 0 1px 0 #ffffff0d,0 24px 70px #0002}
.component-legend span{background:#ffffff06;transition:background .2s,border-color .2s,transform .2s}
.component-legend span:hover{background:#ffffff0d;border-color:#ffffff32;transform:translateY(-2px)}
.component-link{border-bottom:1px solid transparent;transition:border-color .2s,color .2s}.component-link:hover{border-color:#f2d19a;color:#ffe0aa}
.component-cta{border-radius:22px;box-shadow:inset 0 1px 0 #ffffff0d}
.source-note{max-width:980px;line-height:1.65}

/* Flow / process */
.flow-card,.step{transition:transform .28s var(--ease-premium),border-color .28s,background .28s}
.flow-card:hover,.step:hover{transform:translateY(-4px);border-color:#ffffff38;background:#ffffff0c}
.flow-card h3,.step h3{letter-spacing:-.015em}
.route{gap:14px}
.step{min-height:215px}

/* Infrastructure */
.infra-map{box-shadow:var(--shadow-soft);border-color:#cfd6d0}
.infra-row{transition:background .2s ease;padding-left:8px;padding-right:8px;border-radius:12px}
.infra-row:hover{background:#f6f7f3}
.node{box-shadow:inset 0 0 0 1px #ffffff14}

/* Docs */
.doc{transition:padding-left .25s var(--ease-premium),background .25s}.doc:hover{padding-left:8px;background:linear-gradient(90deg,#caa4690d,transparent 62%)}
.doc:before{font-variant-numeric:tabular-nums}

/* PRE-DRAW */
.predraw{background:radial-gradient(circle at 80% 10%,#ffffff0a 0,transparent 34%),linear-gradient(135deg,#1b4134,#10261f 68%,#0a1914)}
.deliverable{transition:background .2s,border-color .2s,transform .2s}.deliverable:hover{background:#ffffff0e;border-color:#ffffff35;transform:translateY(-2px)}

/* Form */
.leadsec{background:radial-gradient(circle at 14% 18%,#ffffffbd,transparent 24%),linear-gradient(135deg,#dce6e1,#f4ecde)}
.form{position:relative;border:1px solid #ffffffcc;box-shadow:0 34px 90px #07131122,inset 0 1px 0 #fff;border-radius:30px;padding:34px}
.form:before{content:"PROJECT ASSESSMENT";display:block;margin-bottom:22px;color:#7b8c84;font-size:.64rem;font-weight:900;letter-spacing:.18em}
input,select,textarea{border-color:#cbd4cf;background:#fdfdfb;transition:border-color .18s,box-shadow .18s,background .18s}
input:hover,select:hover,textarea:hover{border-color:#9eaea6}
input:focus,select:focus,textarea:focus{outline:none;border-color:#8c7653;background:#fff;box-shadow:0 0 0 4px #caa46920}
label{color:#31463d;letter-spacing:.015em}
.check{padding:4px 0}.check input{accent-color:var(--forest)}
.status{font-size:.86rem}.status.is-success{color:#1f694b}.status.is-error{color:#9b3b31}
.form button[type="submit"]{min-width:220px}

/* Footer */
.foot{border-top:1px solid #ffffff10;background:linear-gradient(180deg,#06100d,#030806)}
.foot strong{letter-spacing:.12em;font-size:.78rem}.foot span{font-size:.8rem}

/* Progressive enhancement */
@media(prefers-reduced-motion:no-preference){
  .js-polish .reveal{opacity:0;transform:translateY(18px);transition:opacity .65s var(--ease-premium),transform .65s var(--ease-premium)}
  .js-polish .reveal.is-visible{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}

@media(max-width:1000px){
  .hero .wrap{margin-inline:auto}
  .fact:not(:last-child):after{display:none}
  .component-grid,.archetype-grid{gap:14px}
}

@media(max-width:760px){
  html{scroll-padding-top:72px}
  body.nav-open{overflow:hidden}
  .navin{height:68px}
  .menu-toggle{display:inline-flex;flex:0 0 auto}
  .links{position:fixed;z-index:31;left:14px;right:14px;top:78px;display:grid!important;gap:4px;padding:14px;border:1px solid #ffffff24;border-radius:22px;background:#07130ff7;box-shadow:0 24px 70px #0008;backdrop-filter:blur(24px);opacity:0;visibility:hidden;transform:translateY(-12px) scale(.985);transform-origin:top center;transition:.24s var(--ease-premium)}
  body.nav-open .links{opacity:1;visibility:visible;transform:none}
  .links>a,.links>a:not(.btn){display:flex!important;min-height:48px;align-items:center;padding:0 14px;border-radius:12px;color:#e4ece7}
  .links>a:not(.btn):after{display:none}.links>a:not(.btn):hover,.links>a[aria-current="true"]{background:#ffffff09}
  .links>.btn{margin-top:6px;color:var(--night);justify-content:center}
  .hero{min-height:820px;padding-top:118px;padding-bottom:50px;background-position:58% center}
  .hero:before{background:linear-gradient(180deg,#06110f66 0%,#06110f96 48%,#06110fe8 100%)}
  .hero h1{font-size:clamp(3.15rem,14.8vw,4.9rem);max-width:8.8ch;margin-top:.8rem}
  .hero p{font-size:1rem;max-width:34ch}
  .hero .actions{display:grid;grid-template-columns:1fr;margin-top:26px}.hero .actions .btn{width:100%}
  .hero-note{display:flex;flex-wrap:nowrap;overflow-x:auto;margin:32px -14px 0;padding:0 14px 8px;scrollbar-width:none}.hero-note::-webkit-scrollbar{display:none}.hero-note span{white-space:nowrap}
  .concept{font-size:.58rem;bottom:12px}
  .section{padding:76px 0}
  .head h2,.split h2,.component-intro h2,.archetype-head h2{max-width:10.5ch}
  .facts{grid-template-columns:repeat(2,1fr)}
  .fact{padding:18px 12px 12px 0}.fact strong{font-size:1.45rem}
  .family,.component-card,.archetype,.scenario,.archetype.feature,.archetype.feature-alt,.archetype.half{min-height:420px;border-radius:22px}
  .family-content,.scenario-copy,.component-copy,.archetype-copy{inset:auto 20px 20px}
  .component-legend{grid-template-columns:1fr 1fr;gap:8px}.component-legend span{padding:11px 12px}
  .component-cta{padding:20px}.component-cta .actions{display:grid}.component-cta .btn{width:100%}
  .route{grid-template-columns:1fr 1fr}.step{min-height:190px}
  .form{padding:24px 20px;border-radius:24px}
  .form button[type="submit"]{width:100%}
  .foot{padding:30px 0}.footin{gap:10px}
}

@media(max-width:430px){
  .brand{font-size:.72rem;letter-spacing:.11em}
  .route{grid-template-columns:1fr}.step{min-height:auto}
  .facts{grid-template-columns:1fr 1fr}
  .component-legend{grid-template-columns:1fr}
}

/* Mobile grid min-content containment */
.hero .wrap{min-width:0}
.hero .ey{max-width:100%;flex-wrap:wrap}
@media(max-width:760px){
  .hero .wrap{width:calc(100% - 28px);max-width:calc(100% - 28px);min-width:0}
  .hero .ey{display:flex;line-height:1.45}
  .hero-note{max-width:100%}
}
