/* LULYGraphics — final polish pass
   Small finishing layer only: no new sections, no layout replacement. */

:root{
  --luly-polish-orange:#ff6a00;
  --luly-polish-orange-soft:#ff9a45;
}

/* ---------- Global tactile finish ---------- */
html{scrollbar-color:#7a3510 #070707}
::selection{background:rgba(255,106,0,.82);color:#fff}

:where(a,button,input,textarea,select,[tabindex]):focus-visible{
  outline:2px solid rgba(255,139,42,.92)!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 5px rgba(255,106,0,.12)!important;
}

.navbar.luly-navbar,
.navbar.fixed-top.luly-navbar{
  transition:background .28s ease,border-color .28s ease,box-shadow .28s ease,backdrop-filter .28s ease!important;
}
.navbar.luly-navbar:not(.luly-polish-scrolled){
  background:linear-gradient(180deg,rgba(6,6,6,.82),rgba(6,6,6,.56))!important;
  box-shadow:0 8px 28px rgba(0,0,0,.18)!important;
}
.navbar.luly-navbar.luly-polish-scrolled{
  background:linear-gradient(180deg,rgba(5,5,5,.965),rgba(8,6,4,.91))!important;
  border-bottom-color:rgba(255,126,30,.28)!important;
  box-shadow:0 14px 42px rgba(0,0,0,.46),0 0 24px rgba(255,106,0,.055)!important;
  backdrop-filter:blur(22px) saturate(145%)!important;
  -webkit-backdrop-filter:blur(22px) saturate(145%)!important;
}
.navbar.luly-navbar .brand-logo{transition:transform .28s cubic-bezier(.2,.8,.2,1),filter .28s ease}
.navbar.luly-navbar .navbar-brand:hover .brand-logo{transform:translateY(-1px) rotate(-3deg);filter:drop-shadow(0 0 9px rgba(255,106,0,.36))}

/* Shine is intentionally only on primary conversion buttons. */
.luly-btn-primary,.luly-nav-order,.finish-btn-primary{
  position:relative;isolation:isolate;overflow:hidden;
}
.luly-btn-primary::after,.luly-nav-order::after,.finish-btn-primary::after{
  content:"";position:absolute;z-index:2;top:-50%;bottom:-50%;left:-52%;width:34%;
  transform:skewX(-19deg);pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);
  opacity:0;transition:left .58s cubic-bezier(.2,.75,.2,1),opacity .18s ease;
}
.luly-btn-primary:hover::after,.luly-nav-order:hover::after,.finish-btn-primary:hover::after{left:122%;opacity:.72}

/* Existing reveal animations: slightly softer landing, still fast. */
.reveal-on-scroll.will-reveal{
  transition-timing-function:cubic-bezier(.16,.8,.24,1)!important;
  transition-duration:.64s!important;
}

/* ---------- HOME: interactive orbit hero finish ---------- */
body.luly-home-page .luly-orbit-hero{
  --hero-light-x:70%;
  --hero-light-y:42%;
  --feature-clean:0;
}
body.luly-home-page .luly-orbit-hero::after{
  content:"";position:absolute;z-index:3;left:0;right:0;bottom:-2px;height:19vh;pointer-events:none;
  background:linear-gradient(180deg,transparent 0%,rgba(5,5,7,.46) 58%,#070604 100%);
}
body.luly-home-page .luly-orbit-noise{opacity:.065}
body.luly-home-page .luly-orbit-vignette{
  background:
    radial-gradient(circle at var(--hero-light-x) var(--hero-light-y),rgba(255,126,35,.105),transparent 17%),
    radial-gradient(ellipse at 66% 45%,transparent 18%,rgba(5,5,7,.11) 43%,rgba(5,5,7,.69) 77%,#050507 100%);
  transition:background-position .16s ease;
}
body.luly-home-page .luly-orbit-halo{
  opacity:calc(.96 - var(--feature-clean) * .56);
  transition:opacity .22s linear;
}
body.luly-home-page .luly-orbit-stage-wrap::before{
  content:"";position:absolute;z-index:-1;width:68%;aspect-ratio:1;left:50%;top:48%;transform:translate(-50%,-50%);
  border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,106,0,.085),rgba(255,106,0,.018) 42%,transparent 70%);
  filter:blur(18px);opacity:.8;
}

/* Specular highlight makes the central L feel like a real glossy object, not a flat image. */
body.luly-home-page .luly-orbit-core .core-face{overflow:hidden}
body.luly-home-page .luly-orbit-core .core-face::after{
  content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;
  background:
    radial-gradient(circle at var(--core-light-x,65%) var(--core-light-y,28%),rgba(255,255,255,.22),rgba(255,170,96,.07) 15%,transparent 34%),
    linear-gradient(125deg,rgba(255,255,255,.055),transparent 38% 64%,rgba(255,106,0,.08));
  mix-blend-mode:screen;opacity:.76;
}
body.luly-home-page .luly-orbit-core{
  filter:drop-shadow(0 26px 42px rgba(0,0,0,.5)) drop-shadow(0 0 25px rgba(255,106,0,.15));
}

/* As the GTA piece becomes the hero frame, remove unnecessary compositor effects.
   The image is already physically resized in CSS by JS; this keeps it crisp. */
body.luly-home-page .luly-orbit-card[data-card="featured"]{
  contain:layout style;
}
body.luly-home-page .luly-orbit-hero.is-focus-mode .luly-orbit-stage{
  will-change:auto;
}
body.luly-home-page .luly-orbit-hero.is-focus-mode .luly-orbit-card[data-card="featured"]{
  transform:translate(var(--card-x),var(--card-y)) rotate(var(--card-rz));
  will-change:auto;
}
body.luly-home-page .luly-orbit-hero.is-focus-mode .luly-orbit-card[data-card="featured"] .luly-orbit-card-inner{
  transform:none!important;will-change:auto;
  box-shadow:0 28px 78px rgba(0,0,0,.48),0 0 0 1px rgba(255,128,34,.18);
}
body.luly-home-page .luly-orbit-hero.is-focus-mode .luly-orbit-card[data-card="featured"] img{
  transform:none!important;filter:saturate(1.015) contrast(1.015);will-change:auto;
}
body.luly-home-page .luly-orbit-card[data-card="featured"] .card-glare{
  opacity:calc(1 - var(--feature-clean));
}
body.luly-home-page .luly-orbit-card[data-card="featured"] .card-meta{
  opacity:calc(1 - var(--feature-clean) * .72);
  transition:opacity .18s linear;
}
body.luly-home-page .luly-orbit-card[data-card="featured"]::after{
  opacity:calc(.45 - var(--feature-clean) * .30);
}
body.luly-home-page .luly-orbit-copy{
  filter:blur(calc(var(--feature-clean) * .65px));
}
body.luly-home-page .luly-orbit-title .impact{filter:drop-shadow(0 8px 28px rgba(255,106,0,.095))}
body.luly-home-page .luly-orbit-caption{transition:opacity .18s ease;opacity:calc(.72 - var(--feature-clean) * .42)}

/* Cards elsewhere: premium edge rather than a large glow. */
.luly-service-card,.portfolio-tile,.thumbnail-deck,.transform-machine{
  transition:border-color .28s ease,box-shadow .32s ease,transform .3s cubic-bezier(.2,.8,.2,1);
}
.luly-service-card:hover,.portfolio-tile:hover{
  border-color:rgba(255,145,60,.36)!important;
}
.portfolio-tile img{transition:transform .52s cubic-bezier(.16,.8,.24,1),filter .34s ease!important}
.portfolio-tile:hover img{filter:saturate(1.045) contrast(1.025)}

/* ---------- RIDE: cleaner game-like night ---------- */
body .stage{
  background:
    radial-gradient(ellipse at 51% 61%,rgba(255,106,0,.012),transparent 22%),
    linear-gradient(180deg,#000 0%,#000 44%,#010101 57%,#020101 64%,#000 100%)!important;
}
body .stage:after{
  background:
    linear-gradient(90deg,rgba(0,0,0,.78),transparent 11%,transparent 89%,rgba(0,0,0,.77)),
    linear-gradient(0deg,rgba(0,0,0,.58),transparent 24%,transparent 86%,rgba(0,0,0,.26))!important;
}
body .stars{filter:none!important}
body .ride-star{filter:none;box-shadow:0 0 3px rgba(255,255,255,.28)}
body .ride-star.orange{box-shadow:0 0 4px rgba(255,106,0,.72),0 0 8px rgba(255,106,0,.16)}
body .ride-star.big{box-shadow:0 0 5px rgba(255,255,255,.55),0 0 10px rgba(255,106,0,.11)}

/* Billboard light exists in the world, but it stays subtle and never relights the car. */
body .billboard:after{
  opacity:calc(var(--near,0) * .48)!important;
  filter:blur(7px)!important;
  background:linear-gradient(180deg,rgba(255,221,184,.055),rgba(255,106,0,.032) 38%,transparent 82%)!important;
}
body .road-light-pool{
  background:radial-gradient(ellipse at 44% 44%,rgba(255,218,181,.105),rgba(255,106,0,.075) 31%,rgba(255,106,0,.018) 59%,transparent 76%)!important;
  filter:blur(6px)!important;
  mix-blend-mode:screen;
}
body .road{
  background:
    linear-gradient(180deg,rgba(255,255,255,.022),transparent 11%),
    linear-gradient(180deg,#111 0%,#070707 100%)!important;
}
body .road::after{
  background:
    linear-gradient(180deg,rgba(255,255,255,.018),transparent 35%),
    radial-gradient(ellipse at 42% 30%,rgba(255,106,0,.026),transparent 31%)!important;
}
body .guardrail{box-shadow:0 1px 0 rgba(255,255,255,.12),0 8px 16px rgba(0,0,0,.74),0 -1px 10px rgba(255,106,0,.095)!important}
body .board-shell{border-color:rgba(255,122,28,.18)!important}
body .billboard{transition:filter .1s linear}
body .car-wrap{filter:drop-shadow(0 26px 21px rgba(0,0,0,.74))!important}

@media (max-width:860px){
  body.luly-home-page .luly-orbit-hero::after{height:8vh}
  body.luly-home-page .luly-orbit-noise{opacity:.035}
  body.luly-home-page .luly-orbit-vignette{background:radial-gradient(circle at 50% 54%,rgba(255,106,0,.07),transparent 25%),linear-gradient(180deg,transparent,rgba(5,5,7,.44))}
}

@media (prefers-reduced-motion:reduce){
  .navbar.luly-navbar,.brand-logo,.luly-btn-primary::after,.luly-nav-order::after,.finish-btn-primary::after,.portfolio-tile img{transition:none!important}
  .luly-btn-primary::after,.luly-nav-order::after,.finish-btn-primary::after{display:none!important}
  body.luly-home-page .luly-orbit-core .core-face::after{opacity:.34}
}
