
/* reset */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Raleway',sans-serif;background:#f6f6f6;color:#e0dbd2;overflow-x:hidden;cursor:none;}

/* grain */
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:9950;opacity:.22;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.04'/%3E%3C/svg%3E");}

/* cursor */
#c1{position:fixed;top:0;left:0;width:9px;height:9px;background:#C9A227;border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);}
#c2{position:fixed;top:0;left:0;width:36px;height:36px;border:1.5px solid rgba(201,162,39,.5);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:transform .15s ease,border-color .15s;}

/* nav link */
.nl{position:relative;font-family:'Raleway',sans-serif;font-size:.80rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:#6e8196;text-decoration:none;padding-bottom:3px;transition:color .28s;}
.nl::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1.5px;background:linear-gradient(90deg,#C9A227,#F0C93A);transform:scaleX(0);transform-origin:left;transition:transform .32s cubic-bezier(.16,1,.3,1);}
.nl:hover,.nl.on{color:#C9A227;}
.nl.on::after,.nl:hover::after{transform:scaleX(1);}
.nl.on::after{filter:drop-shadow(0 0 4px rgba(201,162,39,.65));}

/* mobile menu */
#mob{max-height:0;opacity:0;overflow:hidden;transition:max-height .38s ease,opacity .32s ease;}
#mob.open{max-height:400px;opacity:1;}

/* grid bg */
.gbg{background-image:linear-gradient(rgba(201,162,39,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(201,162,39,.032) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(ellipse 78% 68% at 58% 44%,black 12%,transparent 76%);}

/* clip */
.cut   {clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px));}
.cut-lg{clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px));}
.cut-sm{clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px));}

/* reveal */
.rv{opacity:0;transform:translateY(36px);transition:opacity .72s cubic-bezier(.16,1,.3,1),transform .72s cubic-bezier(.16,1,.3,1);}
.rv.in{opacity:1;transform:translateY(0);}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}

/* buttons */
.btn-g{display:inline-block;font-family:'Cinzel',serif;font-size:.66rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;color:#090b0e;background:#C9A227;padding:14px 36px;cursor:none;clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px));box-shadow:0 0 28px rgba(201,162,39,.32);transition:background .28s,transform .22s,box-shadow .28s;}
.btn-g:hover{background:#F0C93A;transform:translateY(-3px);box-shadow:0 0 55px rgba(201,162,39,.62);}
.btn-o{display:inline-block;font-family:'Cinzel',serif;font-size:.66rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;color:#C9A227;padding:13px 36px;border:1px solid rgba(201,162,39,.48);cursor:none;clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px));transition:all .28s;}
.btn-o:hover{background:rgba(201,162,39,.08);border-color:#C9A227;transform:translateY(-3px);}

/* hero badge */
.hbg{font-family:'Cinzel',serif;font-size:.92rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#C9A227;padding:10px 22px;background:rgba(9,13,18,.93);border:1px solid rgba(201,162,39,.36);white-space:nowrap;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));animation:glowPulse 2.8s ease-in-out infinite;}

/* service card */
.sc{position:relative;overflow:hidden;transition:transform .32s cubic-bezier(.16,1,.3,1),background .28s;cursor:none;}
.sc::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#C9A227 50%,transparent);transform:scaleX(0);transition:transform .42s cubic-bezier(.16,1,.3,1);}
.sc::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 85% 80% at 0% 0%,rgba(201,162,39,.07) 0%,transparent 65%);opacity:0;transition:opacity .38s;}
.sc:hover{transform:translateY(-6px);}
.sc:hover::before{transform:scaleX(1);}
.sc:hover::after{opacity:1;}

/* portfolio card */
.pc{position:relative;overflow:hidden;cursor:none;border:1px solid rgba(201,162,39,.16);transition:border-color .38s,transform .38s cubic-bezier(.16,1,.3,1),box-shadow .38s;}
/* shimmer line */
.pc .ps{position:absolute;top:0;left:0;right:0;height:2px;z-index:5;background:linear-gradient(90deg,transparent,#C9A227,transparent);transform:scaleX(0);transform-origin:left;transition:transform .48s cubic-bezier(.16,1,.3,1);}
/* 4 corner brackets */
.pc .ca,.pc .cb,.pc .cc,.pc .cd{position:absolute;width:18px;height:18px;z-index:5;transition:width .38s cubic-bezier(.16,1,.3,1),height .38s,border-color .38s;}
.pc .ca{top:10px;left:10px;border-top:2px solid rgba(201,162,39,0);border-left:2px solid rgba(201,162,39,0);}
.pc .cb{top:10px;right:10px;border-top:2px solid rgba(201,162,39,0);border-right:2px solid rgba(201,162,39,0);}
.pc .cc{bottom:10px;left:10px;border-bottom:2px solid rgba(201,162,39,0);border-left:2px solid rgba(201,162,39,0);}
.pc .cd{bottom:10px;right:10px;border-bottom:2px solid rgba(201,162,39,0);border-right:2px solid rgba(201,162,39,0);}
/* bg zoom */
.pc .pb{transition:transform .58s cubic-bezier(.16,1,.3,1);}
/* gold tint */
.pc .pt{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse 80% 55% at 50% 25%,rgba(201,162,39,.07) 0%,transparent 65%);opacity:0;transition:opacity .38s;}
/* info bar */
.pc .pi{position:absolute;bottom:0;left:0;right:0;z-index:3;padding:16px 18px 15px;background:linear-gradient(180deg,transparent 0%,rgba(9,11,14,.82) 48%,rgba(9,11,14,.97) 100%);transform:translateY(5px);transition:transform .38s cubic-bezier(.16,1,.3,1);}
.pc .pi .pct{font-family:'Cinzel',serif;font-size:.52rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:rgba(201,162,39,.4);margin-bottom:5px;transition:color .28s;}
.pc .pi .pnm{font-family:'Cinzel',serif;font-weight:600;font-size:.9rem;color:rgba(224,219,210,.52);transition:color .28s;}
.pc .pn{position:absolute;top:12px;right:14px;z-index:5;font-family:'Cinzel',serif;font-size:.52rem;letter-spacing:.22em;color:rgba(201,162,39,.18);transition:color .32s;}
/* hover */
.pc:hover{border-color:rgba(201,162,39,.72);transform:translateY(-7px);box-shadow:0 18px 55px rgba(0,0,0,.58),0 6px 28px rgba(201,162,39,.14);}
.pc:hover .ps{transform:scaleX(1);}
.pc:hover .ca{width:28px;height:28px;border-top-color:#C9A227;border-left-color:#C9A227;}
.pc:hover .cb{width:28px;height:28px;border-top-color:#C9A227;border-right-color:#C9A227;}
.pc:hover .cc{width:28px;height:28px;border-bottom-color:#C9A227;border-left-color:#C9A227;}
.pc:hover .cd{width:28px;height:28px;border-bottom-color:#C9A227;border-right-color:#C9A227;}
.pc:hover .pb{transform:scale(1.07);}
.pc:hover .pt{opacity:1;}
.pc:hover .pi{transform:translateY(0);}
.pc:hover .pi .pct{color:#C9A227;}
.pc:hover .pi .pnm{color:#e0dbd2;}
.pc:hover .pn{color:rgba(201,162,39,.78);}

/* form */
.fi{width:100%;background:#111820;color:#e0dbd2;font-family:'Raleway',sans-serif;font-size:.84rem;padding:13px 17px;border:1px solid rgba(201,162,39,.16);outline:none;resize:none;cursor:none;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));transition:border-color .28s,box-shadow .28s;}
.fi::placeholder{color:rgba(130,148,165,.34);}
.fi:focus{border-color:rgba(201,162,39,.52);box-shadow:0 0 22px rgba(201,162,39,.08);}
.fi option{background:#0d1117;}

/* ticker */
.tw{overflow:hidden;white-space:nowrap;}
.ti{display:inline-flex;animation:ticker 24s linear infinite;}
