:root{
  --accent:#8a6f12;
  --accent-dark:#6b560c;
  --accent-soft:#f8f3dc;
  --gold:#c4a22c;
  --gold-light:#e6d283;
  --danger:#b3261e;
  --ink:#0c0a08;
  --ink-2:#3e3b36;
  --muted:#6b665c;
  --bg:#ffffff;
  --bg-alt:#f8f6ef;
  --line:#e9e5d7;
  --radius:20px;
  --grad-gold:linear-gradient(135deg,#ecdb8e 0%,#c4a22c 55%,#a8861a 100%);
  --shadow:0 12px 34px -14px rgba(12,10,8,.22);
  --shadow-lg:0 30px 60px -22px rgba(12,10,8,.38);
  --header-h:84px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{font-family:'Inter',system-ui,sans-serif;color:var(--ink-2);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased;animation:pagein .6s ease both;overflow-x:hidden}
@keyframes pagein{from{opacity:0}to{opacity:1}}
::selection{background:var(--gold);color:var(--ink)}
::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-track{background:var(--bg-alt)}
::-webkit-scrollbar-thumb{background:var(--gold);border-radius:10px;border:3px solid var(--bg-alt)}
h1,h2,h3,h4,h5,h6{font-family:'Sora','Inter',sans-serif;color:var(--ink);line-height:1.18;letter-spacing:-.025em;text-wrap:balance}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:8px}
.container{width:min(1160px,100% - 2.5rem);margin-inline:auto}
section{padding:7rem 0;position:relative}
.alt{background:var(--bg-alt)}

/* Progress bar */
#progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:80;background:var(--grad-gold);transform:scaleX(0);transform-origin:0 50%}

/* Header */
.site-header{position:sticky;top:0;z-index:70;background:rgba(255,255,255,.78);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid transparent;transition:box-shadow .3s,border-color .3s,background .3s}
.site-header.scrolled{background:rgba(255,255,255,.94);border-color:var(--line);box-shadow:0 10px 30px -18px rgba(12,10,8,.35)}
.nav{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);transition:height .3s}
.site-header.scrolled .nav{height:68px}
.logo{display:flex;align-items:center}
.logo img{height:68px;width:auto;transition:height .3s,transform .3s}
.logo:hover img{transform:scale(1.04)}
.site-header.scrolled .logo img{height:52px}
.menu{display:flex;gap:.3rem;list-style:none;padding:.3rem;border-radius:999px;background:rgba(12,10,8,.04)}
.menu a{display:block;padding:.55rem 1.25rem;border-radius:999px;font-weight:500;font-size:.95rem;color:var(--ink-2);transition:background .25s,color .25s}
.menu a:hover{background:#fff;color:var(--accent)}
.menu a.active{background:var(--ink);color:var(--gold-light)}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;border-radius:12px}
.burger span,.burger span::before,.burger span::after{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;position:relative;margin:auto;transition:.25s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0}
.burger span::before{top:-7px}.burger span::after{top:7px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.burger[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}

/* Eyebrow */
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-size:.78rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-dark);background:var(--accent-soft);border:1px solid rgba(196,162,44,.35);padding:.45rem 1rem;border-radius:999px;margin-bottom:1.3rem}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(196,162,44,.6);animation:pulse 2.2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(196,162,44,0)}100%{box-shadow:0 0 0 0 rgba(196,162,44,0)}}

/* Hero */
.hero{--hx:72%;--hy:0%;position:relative;overflow:hidden;color:#fff;padding:8rem 0 17rem;background:radial-gradient(700px 480px at var(--hx) var(--hy),rgba(196,162,44,.55),transparent 65%),radial-gradient(600px 420px at 0% 100%,rgba(196,162,44,.16),transparent 60%),linear-gradient(170deg,#2b2508 0%,#0c0a08 60%)}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(230,210,131,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(230,210,131,.07) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse at 50% 30%,#000 20%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 20%,transparent 75%);pointer-events:none}
.hero .container{position:relative;z-index:2;max-width:900px;text-align:center}
.hero .eyebrow{background:rgba(255,255,255,.07);color:var(--gold-light);border-color:rgba(230,210,131,.3);backdrop-filter:blur(6px)}
.hero h1{color:#fff;font-size:clamp(2.7rem,7.2vw,5.4rem);font-weight:700;letter-spacing:-.035em;line-height:1.04}
.hero h1 span{display:inline-block;padding-bottom:.14em;background:linear-gradient(100deg,#f3e6a6 0%,#c4a22c 40%,#f3e6a6 80%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 6s linear infinite}
@keyframes shimmer{to{background-position:-220% 0}}
.hero .eyebrow,.hero h1{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
.hero h1{animation-delay:.12s}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.hero-art{position:absolute;left:0;right:0;bottom:1rem;width:100%;height:340px;z-index:1;pointer-events:none}
.hero-art .area{opacity:0;animation:fadein 1.6s 1.4s forwards}
.hero-art .path{stroke-dasharray:2600;stroke-dashoffset:2600;animation:draw 2.8s .5s cubic-bezier(.5,.1,.2,1) forwards;filter:drop-shadow(0 0 10px rgba(230,210,131,.65))}
.hero-art .node{opacity:0;animation:fadein .5s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadein{to{opacity:1}}
.orb{position:absolute;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f3e6a6,#a8861a 70%);opacity:.5;filter:blur(1px);animation:float 9s ease-in-out infinite;pointer-events:none}
.orb.o1{width:18px;height:18px;left:12%;top:24%}
.orb.o2{width:10px;height:10px;left:84%;top:18%;animation-delay:-3s}
.orb.o3{width:26px;height:26px;left:90%;top:52%;animation-delay:-6s;opacity:.35}
.orb.o4{width:12px;height:12px;left:6%;top:58%;animation-delay:-4s}
@keyframes float{50%{transform:translateY(-22px)}}

/* Features */
.features{margin-top:-6.5rem;padding:0 0 3rem;z-index:3}
.grid{display:grid;gap:1.5rem}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{--mx:50%;--my:0%;position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2.1rem 1.8rem;box-shadow:var(--shadow);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.card::after{content:"";position:absolute;inset:0;background:radial-gradient(320px circle at var(--mx) var(--my),rgba(196,162,44,.2),transparent 60%);opacity:0;transition:opacity .35s;pointer-events:none}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:rgba(196,162,44,.6)}
.card:hover::after{opacity:1}
.card::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--grad-gold);transform:scaleX(0);transform-origin:0 50%;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.card:hover::before{transform:scaleX(1)}
.card h4{font-size:1.2rem;margin:1.2rem 0 .6rem}
.card h6{font-size:1.15rem;margin:1.2rem 0 .6rem;font-family:'Sora',sans-serif}
.card p{color:var(--muted);font-size:.97rem}
.icon{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(145deg,#fbf6e0,#f1e4aa);color:var(--accent-dark);box-shadow:inset 0 0 0 1px rgba(196,162,44,.35);transition:transform .4s cubic-bezier(.2,.7,.2,1),background .3s,color .3s}
.card:hover .icon{transform:rotate(-6deg) scale(1.08);background:var(--ink);color:var(--gold-light)}
.icon svg{width:27px;height:27px}

/* Headings */
.head{max-width:700px;margin-bottom:3.2rem}
.head.center{margin-inline:auto;text-align:center}
.head h2{font-size:clamp(2rem,4.4vw,3rem)}
.head p{margin-top:1.1rem;color:var(--muted);font-size:1.1rem}

/* Split + mockups */
.split{display:grid;grid-template-columns:1.02fr .98fr;gap:5rem;align-items:center}
.split h4{font-size:clamp(1.6rem,3vw,2.3rem);margin-bottom:1.2rem}
.split p{color:var(--muted);font-size:1.07rem}
.split .btn{margin-top:1.8rem}
.split.reverse .mock{order:-1}
.mock{position:relative;aspect-ratio:5/4;max-width:100%;border-radius:32px;overflow:hidden;background:radial-gradient(circle at 85% 8%,rgba(230,210,131,.5),transparent 55%),linear-gradient(160deg,#a8861a 0%,#4a3d0e 48%,#0c0a08 100%);box-shadow:var(--shadow-lg);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.mock:hover{transform:translateY(-6px) rotate(-.6deg)}
.mock svg{position:absolute;inset:0;width:100%;height:100%}
.mock .sheet{transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.js .mock .bar{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0);transition:transform .9s cubic-bezier(.2,.8,.2,1) var(--d,0s)}
.js .mock .line{stroke-dasharray:700;stroke-dashoffset:700;transition:stroke-dashoffset 2s ease .3s}
.js .mock .fade{opacity:0;transition:opacity .8s ease var(--d,.6s)}
.js .in .mock .bar,.js .mock.in .bar{transform:none}
.js .in .mock .line,.js .mock.in .line{stroke-dashoffset:0}
.js .in .mock .fade,.js .mock.in .fade{opacity:1}
.js .mock .sheet.s1{transform:rotate(0) translateX(0)}
.js .mock .sheet.s2{transform:rotate(0) translateX(0)}
.js .mock.in .sheet.s1{transform:rotate(-9deg) translate(-26px,6px)}
.js .mock.in .sheet.s2{transform:rotate(7deg) translate(24px,0)}

/* Buttons */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:.55rem;font-weight:600;font-size:.97rem;padding:.9rem 1.8rem;border-radius:999px;border:0;cursor:pointer;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,background .3s;font-family:inherit}
.btn-primary{background:var(--grad-gold);color:var(--ink);box-shadow:0 14px 28px -10px rgba(138,111,18,.7)}
.btn-primary::after{content:"";position:absolute;top:0;bottom:0;width:60%;left:-80%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .7s}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 20px 34px -12px rgba(138,111,18,.8)}
.btn-primary:hover::after{left:130%}
.btn-ghost{color:var(--accent);padding:.6rem 0;font-weight:600}
.btn-ghost::after{content:"→";transition:transform .25s}
.btn-ghost:hover::after{transform:translateX(6px)}

/* CTA */
.cta{position:relative;overflow:hidden;text-align:center;border-radius:36px;padding:5.5rem 2rem;color:var(--ink);background:linear-gradient(135deg,#f0e1a0 0%,#d2b43f 45%,#a8861a 100%);box-shadow:var(--shadow-lg)}
.cta::before,.cta::after{content:"";position:absolute;border-radius:50%;border:1.5px solid rgba(12,10,8,.14);pointer-events:none}
.cta::before{width:560px;height:560px;right:-180px;top:-260px}
.cta::after{width:360px;height:360px;left:-110px;bottom:-190px}
.cta .eyebrow{background:rgba(12,10,8,.1);color:var(--ink);border-color:rgba(12,10,8,.2)}
.cta .eyebrow::before{background:var(--ink)}
.cta h2{color:var(--ink);font-size:clamp(1.8rem,3.8vw,2.7rem);max-width:780px;margin:0 auto 2.2rem;position:relative}
.cta .btn{background:var(--ink);color:var(--gold-light);font-size:1.05rem;padding:1.05rem 2.5rem;position:relative;box-shadow:0 16px 30px -12px rgba(12,10,8,.6)}
.cta .btn:hover{transform:translateY(-3px) scale(1.02)}

/* Page banner */
.banner{position:relative;overflow:hidden;padding:6.5rem 0 5rem;color:#fff;background:radial-gradient(600px 400px at 85% 0%,rgba(196,162,44,.5),transparent 65%),linear-gradient(170deg,#2b2508 0%,#0c0a08 70%)}
.banner::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(230,210,131,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(230,210,131,.07) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(to bottom,#000,transparent);-webkit-mask-image:linear-gradient(to bottom,#000,transparent)}
.banner .container{position:relative}
.banner h2{color:#fff;font-size:clamp(2.4rem,6vw,4rem);animation:rise .8s both}
.banner p{margin-top:1rem;color:#d9d3bd;font-size:1.15rem;max-width:620px;animation:rise .8s .12s both}

/* About */
.dark{background:radial-gradient(700px 420px at 90% 0%,rgba(196,162,44,.38),transparent 65%),linear-gradient(170deg,#241f08 0%,#0c0a08 75%);color:#d9d3bd}
.dark .eyebrow{background:rgba(255,255,255,.07);color:var(--gold-light);border-color:rgba(230,210,131,.3)}
.dark .head h2{color:#fff}
.dark .head p{color:#d9d3bd}
.dark .card{border-color:rgba(230,210,131,.18)}
.block-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
.block-head .head{margin:0}
.tile{padding:0;display:flex;flex-direction:column}
.tile .img{aspect-ratio:4/3;background:linear-gradient(145deg,var(--accent-soft),#f1eee0);display:grid;place-items:center;overflow:hidden}
.tile .img img{width:100%;height:100%;object-fit:contain;padding:1.4rem;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.tile:hover .img img{transform:scale(1.09)}
.tile .body{padding:1.6rem 1.7rem 1.9rem;display:flex;flex-direction:column;flex:1}
.tile h4{margin:0 0 .5rem;font-size:1.18rem}
.tile .btn-ghost{margin-top:auto;padding-top:1.1rem}

/* Contact */
.contact-card{text-align:center;padding:3rem 2rem}
.contact-card .icon{margin:0 auto;width:74px;height:74px;border-radius:22px}
.contact-card .icon svg{width:32px;height:32px}
.contact-card h4{font-size:1.35rem;margin:1.3rem 0 .6rem}
.contact-card p{font-size:1.12rem;color:var(--ink);font-weight:500;word-break:break-word}
.contact-card p a{background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 2px no-repeat;transition:background-size .35s,color .25s;padding-bottom:2px}
.contact-card p a:hover{color:var(--accent);background-size:100% 2px}
.contact-card .btn{margin-top:1.4rem}
.contact-grid{max-width:860px;margin-inline:auto}

/* Forms & modal */
label{display:block;font-weight:600;font-size:.92rem;color:var(--ink);margin-bottom:1.15rem}
input,textarea{display:block;width:100%;margin-top:.45rem;padding:.9rem 1.1rem;font:inherit;font-weight:400;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:14px;transition:border-color .2s,box-shadow .2s}
input:hover,textarea:hover{border-color:#d8cfa5}
input:focus,textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 4px rgba(196,162,44,.28)}
input.invalid,textarea.invalid{border-color:var(--danger)}
textarea{resize:vertical}
.contact-form{max-width:780px;margin-inline:auto;padding:2.8rem}
.contact-form:hover{transform:none;box-shadow:var(--shadow-lg)}
.form-msg{min-height:1.4rem;margin-bottom:1rem;font-size:.95rem;color:var(--danger)}
.form-msg.ok{color:#14804a}
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1.25rem;background:rgba(12,10,8,.65);backdrop-filter:blur(6px)}
.modal[hidden]{display:none}
.modal-box{position:relative;width:min(430px,100%);background:#fff;border-radius:26px;padding:2.4rem;box-shadow:var(--shadow-lg);border-top:4px solid var(--gold);animation:rise .35s both}
.modal-box h4{font-size:1.6rem;margin-bottom:1.5rem}
.modal-close{position:absolute;top:.8rem;right:1rem;border:0;background:none;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--muted)}
.modal-close:hover{color:var(--ink)}
.modal-box .btn{width:100%;justify-content:center}

/* Footer */
.footer{background:var(--bg-alt);color:var(--muted);padding:2.2rem 0;font-size:.95rem;border-top:1px solid var(--line)}
.footer .container{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.footer .logo img{height:60px}
.footer ul{list-style:none;display:flex;gap:1.8rem}
.footer a{transition:color .2s}
.footer a:hover{color:var(--accent)}

/* Reveal on scroll */
.js .reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform .8s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal.card.in:hover{transform:translateY(-8px)}

@media (max-width:980px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr;gap:3rem}
  .split.reverse .mock{order:0}
  section{padding:5rem 0}
  .hero{padding:6.5rem 0 16rem}
}
@media (max-width:720px){
  :root{--header-h:72px}
  .logo img{height:56px}
  .site-header.scrolled .nav{height:64px}
  .burger{display:block}
  .menu{position:absolute;top:100%;left:0;right:0;flex-direction:column;border-radius:0;background:#fff;padding:1rem 1.25rem 1.5rem;border-bottom:1px solid var(--line);box-shadow:var(--shadow);display:none}
  .menu.open{display:flex}
  .menu a{padding:.95rem 1rem}
  .grid-4,.grid-3,.grid-2{grid-template-columns:1fr}
  .hero{padding:5rem 0 13rem}
  .hero-art{height:240px;bottom:1rem;opacity:.75}
  .features{margin-top:-5.5rem}
  .block-head{align-items:flex-start}
  .contact-form{padding:1.8rem 1.4rem}
  .cta{padding:4rem 1.4rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal,.hero-art .area,.hero-art .node{opacity:1;transform:none}
  .hero-art .path{stroke-dashoffset:0}
  .js .mock .bar{transform:none}.js .mock .line{stroke-dashoffset:0}.js .mock .fade{opacity:1}
}
