/* Cowboy Phil — shared un-inlineable styles: tokens, resets, keyframes, hover systems */
:root{
  --ease:cubic-bezier(0.22,1,0.36,1);
  --bg:#100e0a; --bg2:#15120d; --surface:#1b1710; --surface2:#221d15;
  --border:rgba(201,162,75,.16); --border-hover:rgba(201,162,75,.5);
  --text:#efe9dc; --muted:#a89e8a; --faint:#736b59;
  --gold:#c9a24b; --gold-2:#e0c076; --sage:rgba(150,168,140,.14);
  --overlay:rgba(12,10,7,.55); --shadow:0 24px 60px -22px rgba(0,0,0,.65);
  --serif:'Geist',system-ui,sans-serif; --sans:'Geist',system-ui,sans-serif; --mono:'Geist Mono',monospace;
  --body:'Geist',system-ui,sans-serif;
}
[data-theme="light"]{
  --bg:#f4efe4; --bg2:#efe8d9; --surface:#fffdf7; --surface2:#f7f1e5;
  --border:rgba(120,90,30,.16); --border-hover:rgba(150,110,35,.55);
  --text:#211a0f; --muted:#5f5747; --faint:#8a8271;
  --gold:#9a7420; --gold-2:#b98f2e; --sage:rgba(90,110,80,.13);
  --overlay:rgba(24,18,9,.34); --shadow:0 24px 60px -24px rgba(60,45,15,.3);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
/* active nav underline — nav markup is byte-identical across pages */
body[data-page="home"] .cp-desk-nav a[href="index.html"]::after,
body[data-page="about"] .cp-desk-nav a[href="about.html"]::after,
body[data-page="services"] .cp-desk-nav a[href="services.html"]::after,
body[data-page="contact"] .cp-desk-nav a[href="contact.html"]::after{ width:100%; }
/* JS-free loader auto-hide so content is visible without the runtime */
#cp-loader{ animation:cp-loader-out .6s var(--ease) 1.5s forwards; }
@keyframes cp-loader-out{ to{ opacity:0; visibility:hidden; } }
@media (prefers-reduced-motion:reduce){ #cp-loader{ animation:none; display:none; } }
body{
  background:var(--bg); color:var(--text); font-family:var(--sans);
  font-size:18px; line-height:1.6; -webkit-font-smoothing:antialiased;
  overflow-x:hidden; transition:background .5s var(--ease),color .5s var(--ease);
  cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Crect x='11' y='3' width='6' height='8' rx='3' fill='%23e0c076'/%3E%3Crect x='12.5' y='10' width='3' height='9' fill='%23cdd0d6'/%3E%3Cpath d='M12.5 19h3l-1.5 5z' fill='%23a7abb4'/%3E%3C/svg%3E") 14 24, auto;
}
html[data-font="dys"] body, html[data-font="dys"] input, html[data-font="dys"] button, html[data-font="dys"] textarea, html[data-font="dys"] select{ font-family:'Lexend',sans-serif !important; letter-spacing:.01em; }
h1,h2,h3,h4{ font-family:var(--sans); font-weight:600; line-height:1.04; margin:0; letter-spacing:-.015em; }
p{ margin:0; text-wrap:pretty; }
::selection{ background:var(--gold); color:#100e0a; }
a{ color:var(--gold); text-decoration:none; }
a:hover{ color:var(--gold-2); }
body::-webkit-scrollbar{ width:11px; } body::-webkit-scrollbar-track{ background:var(--bg2); }
body::-webkit-scrollbar-thumb{ background:var(--border-hover); border-radius:9px; border:3px solid var(--bg2); }
img{ display:block; max-width:100%; }
img[data-failed]{ opacity:0 !important; }
.cp-imgwrap{ position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(135deg,var(--surface2),var(--bg2)); }
.cp-imgwrap::before{ content:''; position:absolute; inset:0; background-image:repeating-linear-gradient(45deg,transparent,transparent 11px,rgba(201,162,75,.045) 11px,rgba(201,162,75,.045) 22px); }
.cp-imgwrap > img{ position:relative; z-index:1; width:100%; height:100%; object-fit:cover; }
.cp-ph-label{ position:absolute; inset:0; z-index:0; display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); text-align:center; padding:18px; }

/* link underline-draw */
.cp-link{ position:relative; color:var(--text); }
.cp-link::after{ content:''; position:absolute; left:0; bottom:-4px; height:1.5px; width:0; background:var(--gold); transition:width .4s var(--ease); }
.cp-link:hover::after{ width:100%; }
.cp-link:hover{ color:var(--text); }

/* card hover system */
.cp-card{ transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease); }
.cp-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--border-hover) !important; }
.cp-card .cp-card-img{ transition:transform .7s var(--ease); }
.cp-card:hover .cp-card-img{ transform:scale(1.06); }
.cp-card .cp-card-arrow{ transition:transform .3s var(--ease); }
.cp-card:hover .cp-card-arrow{ transform:translateX(4px); }

/* hero ken burns */
.cp-kb{ animation:cp-kb 24s var(--ease) infinite alternate; }
@keyframes cp-kb{ from{ transform:scale(1.05) translate(0,0);} to{ transform:scale(1.18) translate(-1.5%,-2%);} }
@keyframes cp-grain{ 0%{transform:translate(0,0)}10%{transform:translate(-4%,-3%)}30%{transform:translate(3%,-5%)}50%{transform:translate(-3%,4%)}70%{transform:translate(4%,2%)}90%{transform:translate(-2%,-4%)}100%{transform:translate(0,0)} }
@keyframes cp-spin{ to{ transform:rotate(360deg);} }
@keyframes cp-float{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }

/* range inputs */
input[type=range]{ -webkit-appearance:none; appearance:none; height:4px; border-radius:4px; background:var(--border); outline:none; }
input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width:16px; height:16px; border-radius:50%; background:var(--gold); cursor:pointer; }
input[type=range]::-moz-range-thumb{ width:16px; height:16px; border:none; border-radius:50%; background:var(--gold); cursor:pointer; }

/* overlay panels (search, settings drawer, mobile menu) */
.cp-panel{ position:fixed; inset:0; z-index:80; transition:opacity .35s var(--ease), visibility .35s; }
.cp-panel[data-open="false"]{ opacity:0; visibility:hidden; pointer-events:none; }
.cp-scrim{ position:absolute; inset:0; background:var(--overlay); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.cp-sheet{ position:absolute; transition:transform .5s var(--ease); }
.cp-drawer-sheet{ top:0; right:0; height:100%; width:min(400px,90vw); }
.cp-panel[data-open="false"] .cp-drawer-sheet{ transform:translateX(100%); }
.cp-search-sheet{ top:0; left:0; right:0; }
.cp-panel[data-open="false"] .cp-search-sheet{ transform:translateY(-100%); }
.cp-menu-sheet{ top:0; right:0; height:100%; width:min(340px,86vw); }
.cp-panel[data-open="false"] .cp-menu-sheet{ transform:translateX(100%); }

/* contact dropdown */
[data-contact-menu]{ transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s; }
[data-contact-menu][data-open="false"]{ opacity:0; visibility:hidden; transform:translateY(8px); pointer-events:none; }
[data-contact-menu][data-open="true"]{ opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto; }
@media (hover:hover){ [data-contact-wrap]:hover [data-contact-menu], [data-contact-wrap]:focus-within [data-contact-menu]{ opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto; } }

/* settings toggle buttons active state */
[data-set-theme][data-active="true"], [data-set-font][data-active="true"], [data-set-read][data-active="true"]{ background:var(--gold) !important; color:#100e0a !important; border-color:var(--gold) !important; }

/* header icon hover */
.cp-ibtn{ transition:background .3s var(--ease), color .3s var(--ease); }
.cp-ibtn:hover{ background:var(--sage); color:var(--gold-2); }

/* social hover glow */
.cp-social{ transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease); }
.cp-social:hover{ transform:translateY(-3px); color:var(--gold-2); border-color:var(--border-hover); box-shadow:0 0 22px -4px var(--gold); }

/* mic listening pulse */
[data-mic][data-listening="true"]{ color:#100e0a; background:var(--gold) !important; animation:cp-float 1s ease-in-out infinite; }

/* responsive helpers */
.cp-desk-nav{ display:flex; }
.cp-hamburger{ display:none !important; }
@media (max-width:920px){ .cp-desk-nav{ display:none !important; } .cp-hamburger{ display:inline-flex !important; } .cp-cta-label{ display:none; } }
@media (max-width:600px){ .cp-phone-num{ display:none; } }
.cp-btn{ transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease), color .3s var(--ease); }
.cp-btn:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -12px var(--gold); }

@media (prefers-reduced-motion: reduce){
  .cp-kb, #cp-grain, [data-mic]{ animation:none !important; }
  .cp-sheet, .cp-panel, .cp-card, .cp-btn{ transition:opacity .2s linear !important; }
  *{ scroll-behavior:auto !important; }
}

/* alternating editorial rows */
.cp-row{ display:flex; gap:clamp(30px,4.5vw,70px); align-items:center; }
.cp-row:nth-child(even){ flex-direction:row-reverse; }
.cp-row > *{ flex:1 1 0; min-width:0; }
@media (max-width:820px){ .cp-row, .cp-row:nth-child(even){ flex-direction:column; align-items:stretch; } }

/* footer: prevent long email token from overflowing its grid column */
footer [data-reveal]{ min-width:0; }
footer a[href^="mailto:"]{ white-space:nowrap; font-size:14px; }
