/*
Theme Name: Fenzi 2026
Theme URI: https://fenzi.com/
Author: Fenzi Media Group
Description: Custom theme for Fenzi Media Group. Page text is edited in WordPress: open a page and use the "Fenzi page text" fields. Site-wide text is under Appearance > Fenzi Site Text.
Version: 1.2.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: fenzi
*/

/* Layout: sticky glass header + hash-routed pages (one <section data-page> per WordPress page). Each service owns a color + icon so it is recognizable everywhere it appears. */
:root{
  --blue:#0057BF; --blue-2:#0072FF; --orange:#FF7900; --orange-2:#FF9D00; --ember:#DD4200; --gold:#EDB059;
  --lemon:#FFF44F; --lemon-ink:#1A1A12; --navy:#061E46;
  /* Service identity */
  --s-ai:var(--lemon); --s-brand:var(--orange); --s-ads:var(--blue); --s-col:var(--ember); --s-web:var(--blue-2); --s-social:var(--gold);
  --bg:#FFFFFF; --mist:#F2F2FA; --surface:#FFFFFF; --ink:#12151C; --muted:#5B6172; --line:#E3E4EE; --link:#0057BF; --head-bg:rgba(255,255,255,.78);
  --title:#0057BF; --net:0,87,191;
  --shadow:0 1px 2px rgba(18,21,28,.06),0 10px 30px rgba(18,21,28,.08);
  --f-display:"Roboto",Helvetica,Arial,sans-serif; --f-body:"Open Sans",Arial,sans-serif; --f-mono:"Roboto Mono",ui-monospace,Menlo,monospace;
  --wrap:1180px; --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.65 var(--f-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--f-display);line-height:1.1;margin:0;text-wrap:balance;letter-spacing:-.015em}
h1{font-size:clamp(2.5rem,6vw,4.8rem);font-weight:900}
h2{font-size:clamp(1.9rem,3.6vw,2.8rem);font-weight:900}
h3{font-size:1.2rem;font-weight:700}
p{margin:0}
a{color:var(--link)}
:focus-visible{outline:3px solid var(--lemon);outline-offset:2px;box-shadow:0 0 0 5px var(--blue)}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:clamp(16px,4vw,32px)}
.band{padding-block:clamp(56px,8vw,104px)}
.band.mist{background:var(--mist);--bg-band:var(--mist)}
.stack{display:grid;gap:16px}
.lede{font-size:1.125rem;color:var(--muted);max-width:56ch}
.eyebrow{font:500 .76rem/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--orange)}
.head{display:grid;gap:14px;margin-bottom:44px;max-width:720px}

/* Lemon marker that draws itself in */
.hl{background:linear-gradient(var(--lemon),var(--lemon)) no-repeat 0 88%/0% 38%;transition:background-size .9s var(--ease) .2s;padding:0 .06em}
.hl.drawn,.no-js .hl{background-size:100% 38%}
.on-dark .hl{background:none;color:var(--lemon)}
.tag-new{display:inline-flex;align-items:center;gap:6px;background:var(--lemon);color:var(--lemon-ink);font:700 .66rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;padding:5px 8px;border-radius:3px;position:relative;overflow:hidden}
.tag-new::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.8) 50%,transparent 70%);transform:translateX(-100%);animation:shine 3.2s var(--ease) infinite}
@keyframes shine{60%,100%{transform:translateX(100%)}}

/* Buttons: shine sweep + lift */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;font:700 .8rem/1 var(--f-display);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:16px 26px;border-radius:4px;border:0;cursor:pointer;color:#fff;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translateX(-120%);transition:transform .7s var(--ease)}
.btn:hover{transform:translateY(-3px);box-shadow:0 6px 0 var(--lemon),0 14px 30px rgba(0,87,191,.18)}
.btn:hover::before{transform:translateX(120%)}
.btn .arr{transition:transform .25s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn-orange{background:linear-gradient(90deg,var(--orange),var(--orange-2))}
.btn-blue{background:linear-gradient(90deg,var(--blue),var(--blue-2))}
.btn-lemon{background:var(--lemon);color:var(--lemon-ink)}
.btn-lemon:hover{box-shadow:0 6px 0 var(--orange),0 14px 30px rgba(0,0,0,.2)}
.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}
.btn-ghost:hover{box-shadow:inset 0 0 0 2px var(--ink),0 6px 0 var(--lemon)}
.link-arrow{font:700 .78rem/1 var(--f-display);letter-spacing:.1em;text-transform:uppercase;color:var(--link);text-decoration:none;display:inline-flex;gap:8px;align-items:center}
.link-arrow span{transition:transform .25s var(--ease)}
a:hover>.link-arrow span,.link-arrow:hover span{transform:translateX(5px)}

/* Scroll progress + header */
.progress{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--orange),var(--lemon));z-index:80;pointer-events:none}
.topbar{background:var(--gold);color:#2A1D05;font:500 .8rem/1 var(--f-display)}
.topbar .wrap{display:flex;justify-content:space-between;gap:16px;padding-block:9px;flex-wrap:wrap}
.topbar span{user-select:all}
.topbar .tb-right{display:flex;gap:18px;flex-wrap:wrap}
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--head-bg);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
header.site.scrolled{box-shadow:var(--shadow)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:14px;transition:padding .3s var(--ease)}
header.site.scrolled .wrap{padding-block:8px}
.logo{display:inline-flex;flex-direction:column;text-decoration:none;line-height:1}
.logo b{font:500 2rem/.9 var(--f-display);letter-spacing:.02em;display:inline-flex}
.logo b .f{color:var(--orange)} .logo b .z{color:var(--blue-2)}
.logo:hover b .f{animation:nudge .5s var(--ease)} .logo:hover b .z{animation:nudge .5s var(--ease) .08s}
@keyframes nudge{40%{transform:translateY(-3px)}}
.logo small{font:500 .62rem/1 var(--f-display);letter-spacing:.2em;color:var(--muted);margin-top:4px}
nav.main{display:flex;align-items:center;gap:2px}
nav.main>a,nav.main button.dd{position:relative;font:700 .8rem/1 var(--f-display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:12px;border-radius:4px;background:none;border:0;cursor:pointer}
nav.main>a:not(.cta)::after,nav.main button.dd::after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:3px;background:var(--lemon);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
nav.main>a:hover::after,nav.main>a[aria-current="page"]::after,nav.main button.dd:hover::after{transform:scaleX(1)}
.has-dd{position:relative}
.dd-menu{position:absolute;top:calc(100% + 6px);left:-8px;width:min(560px,90vw);background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:4px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s var(--ease)}
.has-dd:hover .dd-menu,.has-dd:focus-within .dd-menu{opacity:1;visibility:visible;transform:none}
.dd-menu a{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:center;padding:10px;border-radius:8px;text-decoration:none;color:var(--ink)}
.dd-menu a:hover{background:var(--mist)}
.dd-menu a b{display:block;font:700 .92rem/1.2 var(--f-display)}
.dd-menu a small{color:var(--muted);font-size:.8rem;line-height:1.3}
nav.main>a.cta{margin-left:8px;padding:14px 18px;background:linear-gradient(90deg,var(--orange),var(--orange-2));color:#fff}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer;color:var(--ink)}
@media (max-width:980px){
  .burger{display:block}
  nav.main{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:8px 16px 16px;max-height:80vh;overflow:auto}
  nav.main.open{display:flex}
  .dd-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0;width:auto;grid-template-columns:1fr}
  nav.main button.dd{display:none}
  nav.main .cta{margin:8px 0 0;justify-content:center}
  }

/* Service badge (identity) */
.sv{--c:var(--orange);width:44px;height:44px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c);flex:none;transition:transform .4s var(--ease),background .3s}
.sv svg{width:24px;height:24px}
.sv.sm{width:36px;height:36px;border-radius:8px}.sv.sm svg{width:20px;height:20px}
.sv.ai{--c:var(--s-ai);background:var(--lemon);color:var(--lemon-ink)}
.sv.brand{--c:var(--s-brand)} .sv.ads{--c:var(--s-ads)} .sv.col{--c:var(--s-col)} .sv.web{--c:var(--s-web)} .sv.social{--c:var(--s-social)} .sv.team{--c:var(--muted)}

/* Interactive card: tilt + cursor spotlight */
.fx{position:relative;transform-style:preserve-3d;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s;will-change:transform}
.fx::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--lemon) 30%,transparent),transparent 45%)}
.fx:hover{box-shadow:var(--shadow)}
.fx:hover::before{opacity:1}
.fx:hover .sv{transform:translateZ(30px) rotate(-6deg) scale(1.08)}

/* Hero */
.hero{position:relative;overflow:hidden;background:
  radial-gradient(800px 420px at 100% 0%,color-mix(in srgb,var(--orange-2) 16%,transparent),transparent 70%),
  radial-gradient(700px 380px at 0% 100%,color-mix(in srgb,var(--blue-2) 14%,transparent),transparent 70%),var(--bg)}
.net{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;padding-block:clamp(56px,8vw,110px)}
.hero h1{color:var(--title)}
.rotator{display:inline-grid;vertical-align:top;overflow:hidden;height:1.65em;line-height:1.65}
.rotator span{color:var(--orange)!important}
.rotator span{grid-area:1/1;transition:transform .6s var(--ease),opacity .6s;font-weight:700;color:var(--ink)}
.rotator span:not(.on){transform:translateY(110%);opacity:0}
.rotator span.out{transform:translateY(-110%);opacity:0}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.orbit{position:relative;aspect-ratio:1;max-width:440px;width:100%;margin-inline:auto}
.orbit .ring{position:absolute;inset:0;border:1px dashed color-mix(in srgb,var(--blue) 35%,transparent);border-radius:50%;animation:spin 40s linear infinite}
.orbit .ring.r2{inset:16%;animation-duration:28s;animation-direction:reverse;border-color:color-mix(in srgb,var(--orange) 40%,transparent)}
.orbit .core{position:absolute;inset:34%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#2E86FF,var(--blue) 60%,var(--navy));display:grid;place-items:center;box-shadow:0 0 0 10px color-mix(in srgb,var(--blue) 12%,transparent),0 20px 50px rgba(0,87,191,.35);animation:pulse 4s ease-in-out infinite}
.orbit .core b{font:500 clamp(1.3rem,3vw,1.9rem)/1 var(--f-display);color:#fff;letter-spacing:.02em}
.orbit .core b i{font-style:normal;color:var(--orange-2)}
@keyframes pulse{50%{box-shadow:0 0 0 22px color-mix(in srgb,var(--blue) 6%,transparent),0 20px 50px rgba(0,87,191,.35)}}
@keyframes spin{to{transform:rotate(360deg)}}
.sat{position:absolute;left:50%;top:50%;width:0;height:0;animation:spin 40s linear infinite}
.sat a{position:absolute;transform:translate(-50%,-50%) translateY(calc(var(--r) * -1));text-decoration:none}
.sat a .pill{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 12px 6px 6px;box-shadow:var(--shadow);font:700 .78rem/1 var(--f-display);color:var(--ink);white-space:nowrap;animation:spin 40s linear infinite reverse;transition:transform .3s var(--ease)}
.sat a:hover .pill{border-color:var(--orange)}
.sat a .pill .sv{width:28px;height:28px;border-radius:999px}.sat a .pill .sv svg{width:16px;height:16px}
.orbit:hover .ring,.orbit:hover .sat,.orbit:hover .sat a .pill{animation-play-state:paused}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.orbit{max-width:300px}}

/* Inner page heroes */
.phero{position:relative;overflow:hidden;background:var(--mist);border-bottom:1px solid var(--line)}
.phero .wrap{position:relative;padding-block:clamp(48px,7vw,92px);display:grid;gap:18px}
.phero h1{font-size:clamp(2.2rem,5vw,3.8rem)}
.phero .lede{max-width:52ch}
.phero.blue{background:linear-gradient(130deg,var(--navy) 10%,var(--blue) 70%,var(--blue-2));color:#fff;border:0}
.phero.blue .lede{color:#D6E4FF} .phero.blue .eyebrow{color:var(--lemon)}
.phero.orange{background:linear-gradient(130deg,var(--orange-2) 15%,var(--orange) 60%,var(--ember));color:#fff;border:0}
.phero.orange .lede{color:#FFF1E2}
.phero.orange .eyebrow{color:var(--lemon-ink);background:var(--lemon);justify-self:start;padding:6px 8px;border-radius:3px}
.phero .gridlines{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(90deg,transparent,#000 60%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 60%);animation:drift 18s linear infinite}
.phero:not(.blue):not(.orange) .gridlines{background-image:linear-gradient(color-mix(in srgb,var(--blue) 8%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--blue) 8%,transparent) 1px,transparent 1px)}
@keyframes drift{to{background-position:44px 44px}}
.crumbs{font:500 .76rem/1 var(--f-mono);letter-spacing:.06em;opacity:.8}
.crumbs a{color:inherit}

/* Grids & cards */
.grid{display:grid;gap:20px}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:960px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.g3,.g2,.g4{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:26px;display:flex;flex-direction:column;gap:12px;min-width:0}
.card p{color:var(--muted)}

/* Bento services */
.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tile{--c:var(--orange);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--ink);min-width:0;overflow:hidden}
.tile::after{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:var(--c);transform:scaleX(.18);transform-origin:left;transition:transform .45s var(--ease)}
.tile:hover::after{transform:scaleX(1)}
.tile p{color:var(--muted);font-size:.95rem}
.tile .link-arrow{margin-top:auto;padding-top:6px}
.tile.ai{--c:var(--lemon);grid-column:span 2;grid-row:span 2;background:linear-gradient(150deg,var(--navy),var(--blue));color:#fff;border:0;padding:32px}
.tile.ai h3{font-size:clamp(1.6rem,3vw,2.2rem)}
.tile.ai p{color:#D6E4FF;font-size:1.05rem;max-width:40ch}
.tile.ai .link-arrow{color:var(--lemon)}
.tile.ai .mini{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.tile.ai .mini span{font:500 .72rem/1 var(--f-mono);letter-spacing:.04em;padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.25);color:#fff}
.tile.brand{--c:var(--s-brand)} .tile.ads{--c:var(--s-ads)} .tile.col{--c:var(--s-col)} .tile.web{--c:var(--s-web)} .tile.social{--c:var(--s-social)} .tile.team{--c:var(--muted)}
.tile.wide{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:26px 28px}
.tile.wide .txt{display:grid;gap:8px;min-width:0}
.tile.wide .txt h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tile.wide .link-arrow{margin:0;padding:0;white-space:nowrap}
.tag-partner{font:700 .64rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;padding:5px 8px;border-radius:3px;background:color-mix(in srgb,var(--gold) 26%,transparent);color:var(--ink)}
.reels{display:flex;gap:10px}
.reel{position:relative;width:62px;aspect-ratio:9/16;border-radius:10px;overflow:hidden;background:linear-gradient(160deg,var(--gold),var(--orange));transition:transform .4s var(--ease)}
.reel:nth-child(2){background:linear-gradient(160deg,var(--orange),var(--ember));transform:translateY(-8px)}
.reel:nth-child(3){background:linear-gradient(160deg,var(--blue-2),var(--blue))}
.reel::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-40%,-50%);border-left:12px solid #fff;border-top:8px solid transparent;border-bottom:8px solid transparent}
.reel::after{content:"";position:absolute;left:6px;right:6px;bottom:7px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--lemon) var(--p,40%),rgba(255,255,255,.35) 0)}
.tile.wide:hover .reel{transform:translateY(-6px)}
.tile.wide:hover .reel:nth-child(2){transform:translateY(-14px)}
.tile.wide .chips span{font-size:.7rem}
@media (max-width:960px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.tile.wide{grid-template-columns:auto 1fr}.tile.wide .reels{display:none}}
@media (max-width:560px){.tile.wide{grid-template-columns:1fr}}
@media (max-width:560px){.bento{grid-template-columns:1fr}.tile.ai{grid-column:auto;grid-row:auto}}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.stat{border-left:4px solid var(--lemon);padding:4px 0 4px 18px}
.stat b{display:block;font:900 clamp(2.2rem,4vw,3rem)/1 var(--f-display);color:var(--title);font-variant-numeric:tabular-nums}
.stat span{color:var(--muted);font-size:.92rem}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Marquee */
.marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee .track{display:flex;gap:12px;width:max-content;animation:marq 38s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.marquee span{border:1px solid var(--line);border-radius:999px;padding:10px 18px;font:700 .9rem/1 var(--f-display);color:var(--muted);background:var(--surface);white-space:nowrap;transition:color .2s,border-color .2s}
.marquee span:hover{color:var(--ink);border-color:var(--orange)}
@keyframes marq{to{transform:translateX(-50%)}}

/* Work */
.work{display:grid;grid-template-columns:1.1fr .9fr;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.work .art{position:relative;background:linear-gradient(140deg,#2F5D3A,#7A9C3E);min-height:300px;display:grid;place-items:center;padding:32px;color:#fff;text-align:center;overflow:hidden}
.work .art::before{content:"";position:absolute;width:160%;height:160%;background:conic-gradient(from 0deg,transparent,rgba(255,255,255,.12),transparent 30%);animation:spin 12s linear infinite}
.work .art div{position:relative;transition:transform .5s var(--ease)}
.work:hover .art div{transform:scale(1.06)}
.work .art b{font:900 clamp(1.8rem,4vw,2.8rem)/1 var(--f-display)}
.work .art small{display:block;font:500 .72rem/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;margin-top:10px;opacity:.85}
.work .body{padding:32px;display:grid;gap:16px;align-content:start}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{font:500 .74rem/1 var(--f-mono);letter-spacing:.04em;padding:8px 11px;border-radius:999px;background:var(--mist);color:var(--ink);transition:background .2s,transform .2s}
.chips span:hover{background:var(--lemon);color:var(--lemon-ink);transform:translateY(-2px)}
@media (max-width:860px){.work{grid-template-columns:1fr}}

/* Testimonials slider */
.qwrap{position:relative;max-width:900px}
.quote{display:none}
.quote.on{display:grid;gap:22px;animation:qin .6s var(--ease)}
@keyframes qin{from{opacity:0;transform:translateY(14px)}}
.quote p{font:500 clamp(1.15rem,2.2vw,1.5rem)/1.5 var(--f-display);color:var(--ink)}
.quote p::before{content:"\201C";display:block;font:900 4rem/.6 var(--f-display);color:var(--orange);margin-bottom:12px}
.quote footer{font:700 1rem/1.3 var(--f-display)}
.quote footer small{display:block;font:400 .86rem/1.4 var(--f-body);color:var(--muted)}
.qnav{display:flex;gap:10px;margin-top:28px;align-items:center}
.qnav button{width:44px;height:6px;border-radius:3px;border:0;background:var(--line);cursor:pointer;padding:0;position:relative;overflow:hidden}
.qnav button.on::after{content:"";position:absolute;inset:0;background:var(--orange);transform-origin:left;animation:fill 7s linear forwards}
@keyframes fill{from{transform:scaleX(0)}}

/* CTA band */
.cta-band{position:relative;overflow:hidden;background:linear-gradient(130deg,var(--orange) 25%,var(--ember) 100%);color:#fff}
.cta-band::before{content:"";position:absolute;inset:-50%;background:radial-gradient(circle at 30% 50%,rgba(255,244,79,.25),transparent 30%);animation:spin 20s linear infinite}
.cta-band .wrap{position:relative;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-block:60px}
.cta-band .eyebrow{color:var(--lemon)}
.cta-band h2{max-width:22ch}

/* Steps (real sequence) */
.timeline{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:20px;position:relative;padding-top:34px}
.timeline::before{content:"";position:absolute;top:13px;left:14px;right:14px;height:2px;background:var(--line)}
.timeline::after{content:"";position:absolute;top:13px;left:14px;right:14px;height:2px;background:linear-gradient(90deg,var(--orange),var(--lemon));transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease)}
.timeline.in::after{transform:scaleX(1)}
.tl{position:relative;display:grid;gap:8px;align-content:start}
.timeline::before,.timeline::after{z-index:0}
.tl::before{content:"";position:absolute;top:-28px;left:0;width:16px;height:16px;box-sizing:border-box;border-radius:50%;background:#fff;border:3px solid var(--orange);z-index:2;transition:background .3s,transform .3s}
.tl:hover::before{background:var(--lemon);transform:scale(1.3)}
.tl small{font:500 .7rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--orange)}
.tl p{color:var(--muted);font-size:.95rem}
@media (max-width:860px){.timeline{grid-template-columns:1fr;padding-top:0;padding-left:34px}.timeline::before,.timeline::after{top:8px;bottom:8px;left:7px;right:auto;width:2px;height:auto}.timeline::after{transform:scaleY(0);transform-origin:top}.timeline.in::after{transform:scaleY(1)}.tl::before{top:4px;left:-34px}}

/* Advertising: channel explorer */
.loop{display:flex;align-items:center;justify-content:center;gap:clamp(8px,2vw,22px);flex-wrap:wrap;margin-top:6px}
.loop .node{font:900 clamp(1rem,2.4vw,1.5rem)/1 var(--f-display);padding:14px 18px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);animation:glow 4s infinite;animation-delay:calc(var(--i) * 1s)}
@keyframes glow{0%,20%{background:var(--lemon);color:var(--lemon-ink);border-color:var(--lemon)}30%,100%{background:rgba(255,255,255,.12);color:#fff}}
.loop i{font-style:normal;color:var(--lemon);font-weight:900}
.explorer{display:grid;grid-template-columns:260px 1fr;gap:28px;align-items:stretch}
.explorer>*{min-width:0}
.tabs{display:grid;gap:8px;align-content:start}
.tabs button{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:center;text-align:left;padding:12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font:700 .95rem/1.2 var(--f-display);transition:border-color .2s,transform .2s,box-shadow .2s}
.tabs button small{display:block;font:400 .78rem/1.3 var(--f-body);color:var(--muted)}
.tabs button:hover{transform:translateX(4px)}
.tabs button[aria-selected="true"]{border-color:var(--orange);box-shadow:inset 4px 0 0 var(--lemon),var(--shadow)}
.panel{display:none;grid-template-columns:1fr 1fr;gap:28px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px}
.panel.on{display:grid;animation:qin .5s var(--ease)}
.panel>*{min-width:0}
.panel h3{font-size:1.6rem}
.panel p{color:var(--muted)}
.panel .chips{margin-top:4px}
@media (max-width:860px){.explorer{grid-template-columns:1fr}.tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{grid-template-columns:1fr}}
@media (max-width:420px){.tabs{grid-template-columns:1fr}}

/* Mock illustrations */
.mock{position:relative;background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:18px;min-height:240px;display:grid;place-items:center;overflow:hidden}
.mag{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:300px;aspect-ratio:1.5;background:var(--surface);box-shadow:var(--shadow);border-radius:4px;transform:perspective(600px) rotateX(12deg) rotateZ(-3deg);transition:transform .5s var(--ease)}
.mock:hover .mag{transform:perspective(600px) rotateX(0) rotateZ(0)}
.mag>div{padding:12px;display:grid;gap:6px;align-content:start}
.mag>div:first-child{border-right:1px solid var(--line)}
.ln{height:6px;border-radius:3px;background:var(--line)} .ln.s{width:60%} .ln.t{height:12px;width:80%;background:var(--muted);opacity:.5}
.adblk{background:linear-gradient(140deg,var(--orange),var(--ember));border-radius:3px;color:#fff;display:grid;place-items:center;font:900 .9rem/1 var(--f-display);height:100%;min-height:90px;text-align:center;padding:8px}
.adblk small{display:block;font:500 .55rem/1 var(--f-mono);letter-spacing:.1em;margin-top:4px;color:var(--lemon)}
.browser{width:100%;max-width:330px;background:var(--surface);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}
.browser .bar{display:flex;gap:5px;padding:8px 10px;border-bottom:1px solid var(--line)}
.browser .bar i{width:8px;height:8px;border-radius:50%;background:var(--line)}
.browser .bar i:first-child{background:var(--orange)}
.chart{display:flex;align-items:flex-end;gap:8px;height:130px;padding:14px}
.chart span{flex:1;background:linear-gradient(var(--blue-2),var(--blue));border-radius:3px 3px 0 0;height:var(--h);transform-origin:bottom;animation:grow 1.2s var(--ease) both;animation-delay:calc(var(--i) * .1s)}
.chart span:last-child{background:var(--lemon)}
@keyframes grow{from{transform:scaleY(.05)}}
.kpi{display:flex;justify-content:space-between;padding:0 14px 14px;font:500 .7rem/1 var(--f-mono);color:var(--muted)}
.kpi b{color:var(--ink)}
.phone{width:170px;aspect-ratio:9/17;background:var(--surface);border-radius:26px;border:6px solid var(--ink);box-shadow:var(--shadow);padding:10px;display:grid;gap:8px;align-content:start;transform:rotate(4deg);transition:transform .5s var(--ease)}
.mock:hover .phone{transform:rotate(0) translateY(-6px)}
.phone .img{height:110px;border-radius:8px;background:linear-gradient(140deg,var(--gold),var(--orange))}
.phone .row{display:flex;gap:8px;align-items:center;font:700 .72rem/1 var(--f-display)}
.heart{color:var(--ember);animation:beat 1.6s infinite}
@keyframes beat{15%{transform:scale(1.35)}30%{transform:scale(1)}}
.search{width:100%;max-width:330px;display:grid;gap:10px}
.search .q{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:10px 14px;font:500 .8rem/1 var(--f-mono);box-shadow:var(--shadow)}
.search .q .caret{width:2px;height:14px;background:var(--orange);animation:blink 1s steps(1) infinite}
.res{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:grid;gap:5px}
.res.top{border-color:var(--lemon);box-shadow:0 0 0 3px color-mix(in srgb,var(--lemon) 60%,transparent);animation:rise 3s var(--ease) infinite alternate}
.res b{font:700 .82rem/1.2 var(--f-display);color:var(--link)}
.res .tagai{justify-self:start;font:500 .6rem/1 var(--f-mono);letter-spacing:.1em;background:var(--lemon);color:var(--lemon-ink);padding:3px 6px;border-radius:3px}
@keyframes rise{from{transform:translateY(0)}to{transform:translateY(-4px)}}
@keyframes blink{50%{opacity:0}}
.inbox{width:100%;max-width:320px;display:grid;gap:8px}
.mail{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px;font:500 .74rem/1.2 var(--f-display);color:var(--muted)}
.mail .av{width:28px;height:28px;border-radius:50%;background:var(--line)}
.mail.hot{color:var(--ink);border-color:var(--orange);animation:slidein 2.8s var(--ease) infinite}
.mail.hot .av{background:linear-gradient(140deg,var(--orange),var(--orange-2))}
.mail.hot em{font-style:normal;background:var(--lemon);color:var(--lemon-ink);padding:3px 6px;border-radius:3px;font-size:.62rem}
@keyframes slidein{0%{transform:translateX(-12px);opacity:.3}20%,100%{transform:none;opacity:1}}

/* Web device mock */
.devices{position:relative;min-height:320px;display:grid;place-items:center}
.devices .browser{max-width:420px}
.devices .site-sk{padding:14px;display:grid;gap:8px}
.sk{height:10px;border-radius:4px;background:linear-gradient(90deg,var(--line) 25%,color-mix(in srgb,var(--line) 40%,var(--surface)) 50%,var(--line) 75%);background-size:200% 100%;animation:sheen 1.8s linear infinite}
.sk.hero{height:70px;background:linear-gradient(120deg,var(--blue),var(--blue-2))}
.sk.btn{width:40%;height:16px;background:var(--orange)}
@keyframes sheen{to{background-position:-200% 0}}
.devices .phone{position:absolute;right:0;bottom:-10px;width:120px;padding:8px;gap:6px}
.devices .phone .img{height:50px;background:linear-gradient(120deg,var(--blue),var(--blue-2))}

/* AI page */
.ai-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.ai-hero-grid>*{min-width:0}
@media (max-width:860px){.ai-hero-grid{grid-template-columns:1fr}}
.term{background:rgba(0,0,0,.32);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:18px;font:500 .84rem/1.75 var(--f-mono);color:#E8EEFF;min-height:190px;backdrop-filter:blur(6px)}
.term .u{color:var(--lemon)}
.term .caret{display:inline-block;width:8px;height:1em;background:var(--lemon);vertical-align:-2px;animation:blink 1s steps(1) infinite}
.vs{display:grid;grid-template-columns:1fr auto 1fr;gap:0;align-items:stretch;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.vs>div{padding:28px;display:grid;gap:12px;align-content:start;min-width:0}
.vs .a{background:var(--surface)}
.vs .b{background:var(--lemon);color:var(--lemon-ink)}
.vs .b .eyebrow{color:var(--lemon-ink)}
.vs .plus{display:grid;place-items:center;background:var(--orange);color:#fff;font:900 1.6rem/1 var(--f-display);padding:0 14px}
.vs .chips span{background:var(--mist)}
.vs .b .chips span{background:rgba(0,0,0,.08);color:var(--lemon-ink)}
@media (max-width:700px){.vs{grid-template-columns:1fr}.vs .plus{padding:10px}}
.faq details{border-bottom:1px solid var(--line);padding-block:18px}
.faq summary{cursor:pointer;font:700 1.05rem/1.4 var(--f-display);list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--orange);font-size:1.4rem;line-height:1;transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--muted);margin-top:10px;max-width:68ch}

/* Split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split>*{min-width:0}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:32px}}
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
@media (max-width:760px){.pillars{grid-template-columns:1fr}}
.pillar b{display:block;font:900 2rem/1 var(--f-display);color:var(--orange);margin-bottom:8px}

/* Contact */
form.contact{display:grid;gap:14px}
.field{display:grid;gap:6px}
.field label{font:700 .78rem/1 var(--f-display);letter-spacing:.06em;text-transform:uppercase}
.field input,.field textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px 14px;width:100%;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px color-mix(in srgb,var(--lemon) 70%,transparent)}
.field textarea{min-height:120px;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:620px){.row2{grid-template-columns:1fr}}
.interests{display:flex;flex-wrap:wrap;gap:8px}
.interests label{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer;font:500 .9rem/1.2 var(--f-body);text-transform:none;letter-spacing:0;transition:.2s}
.interests label:hover{border-color:var(--orange)}
.interests input{accent-color:var(--orange)}
.interests label:has(input:checked){background:var(--lemon);color:var(--lemon-ink);border-color:var(--lemon)}
.note{font-size:.9rem;padding:12px 14px;border-radius:8px;background:var(--mist);border-left:4px solid var(--lemon)}
.info-list{display:grid;gap:22px;align-content:start}
.info-list h3{font:500 .76rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--orange);margin-bottom:6px}
.sel{user-select:all}
.info-list .card h3{font:700 1.2rem/1.2 var(--f-display);letter-spacing:0;text-transform:none;color:var(--lemon-ink);margin:0}

/* Reveal on scroll: visible at rest; animates as it enters */
.rv.in{animation:rvIn .8s var(--ease) both;animation-delay:calc(var(--d,0) * 80ms)}
@keyframes rvIn{from{opacity:.001;transform:translateY(26px)}}
section[data-page].enter{animation:pageIn .5s var(--ease)}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}}

/* Footer */
footer.site{background:#0A0D13;color:#C7CCD8;font-size:.92rem}
footer.site .wrap{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px;padding-block:56px}
footer.site h4{color:#fff;font:500 .74rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}
footer.site a{color:#C7CCD8;text-decoration:none;transition:color .2s}
footer.site a:hover{color:var(--lemon)}
footer.site ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
footer.site .logo small{color:#8D93A3}
footer.site .base{border-top:1px solid #1E2330;grid-column:1/-1;padding-top:20px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.82rem;color:#8D93A3}
@media (max-width:860px){footer.site .wrap{grid-template-columns:1fr 1fr}}
@media (max-width:520px){footer.site .wrap{grid-template-columns:1fr}}
.demo-flag{position:fixed;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--lemon);color:var(--lemon-ink);font:700 .68rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:8px 10px;border-radius:4px;box-shadow:var(--shadow)}

/* ===== Our Story ===== */
.story-hero{position:relative;overflow:hidden;background:radial-gradient(900px 500px at 85% 20%,rgba(255,157,0,.28),transparent 60%),linear-gradient(140deg,#050B18 0%,var(--navy) 45%,var(--blue) 100%);color:#fff}
.story-hero .wrap{position:relative;display:grid;gap:20px;padding-block:clamp(56px,8vw,110px)}
.story-hero .lede{color:#D6E4FF;max-width:58ch}
.story-hero .eyebrow{color:var(--lemon)}
.since{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;line-height:.9}
.since small{font:500 clamp(1.2rem,2.4vw,1.8rem)/1 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--orange-2)}
.since .yr{font:900 clamp(5rem,16vw,12rem)/.85 var(--f-display);letter-spacing:-.04em;background:linear-gradient(180deg,#fff 30%,#9CC3FF);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.story-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:8px}
.story-facts div{border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:14px 16px;background:rgba(255,255,255,.06);backdrop-filter:blur(6px);transition:transform .3s var(--ease),border-color .3s}
.story-facts div:hover{transform:translateY(-4px);border-color:var(--lemon)}
.story-facts b{display:block;font:900 1.4rem/1.1 var(--f-display);color:var(--lemon)}
.story-facts span{font-size:.86rem;color:#D6E4FF}
@media (max-width:760px){.story-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.scroll-cue{display:inline-flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font:500 .74rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;justify-self:start;margin-top:8px}
.scroll-cue i{width:22px;height:34px;border:2px solid rgba(255,255,255,.6);border-radius:12px;position:relative}
.scroll-cue i::after{content:"";position:absolute;left:50%;top:6px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--lemon);animation:cue 1.6s var(--ease) infinite}
@keyframes cue{60%{transform:translateY(10px);opacity:0}100%{opacity:0}}

.erabar{position:sticky;top:var(--hh,64px);z-index:40;background:var(--head-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.erabar .wrap{position:relative;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding-block:10px}
.erabar .wrap::-webkit-scrollbar{display:none}
.erabar button{flex:none;border:1px solid transparent;background:none;color:var(--muted);font:700 .78rem/1 var(--f-display);letter-spacing:.04em;padding:9px 14px;border-radius:999px;cursor:pointer;transition:.25s var(--ease)}
.erabar button:hover{color:var(--ink);border-color:var(--line)}
.erabar button.on{background:var(--lemon);color:var(--lemon-ink)}
.erafill{position:absolute;left:0;bottom:0;height:2px;width:100%;background:linear-gradient(90deg,var(--orange),var(--lemon));transform-origin:0 50%;transform:scaleX(0)}

.chapter{padding-block:clamp(64px,9vw,120px);scroll-margin-top:calc(var(--hh,64px) + 60px)}
.chapter.alt{background:var(--mist)}
.ch-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.ch-grid>*{min-width:0}
.chapter.alt .ch-text{order:2}
.ch-text{display:grid;gap:18px}
.ch-text p{color:var(--muted);font-size:1.08rem;max-width:54ch}
.ch-era{font:500 .76rem/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--orange);display:flex;align-items:center;gap:10px}
.ch-era::before{content:"";width:28px;height:2px;background:var(--orange)}
.ch-why{border-left:4px solid var(--lemon);padding-left:14px;color:var(--ink)!important;font-size:1rem!important}
.pull{margin:0;padding:18px 20px;border-radius:10px;background:var(--surface);border:1px solid var(--line);font:500 1.05rem/1.5 var(--f-display);color:var(--ink);display:grid;gap:10px}
.pull cite{font:400 .82rem/1.4 var(--f-body);font-style:normal;color:var(--muted)}
.bigstat{display:grid;gap:4px;border-left:4px solid var(--lemon);padding-left:16px}
.bigstat b{font:900 clamp(2.8rem,6vw,4rem)/1 var(--f-display);color:var(--title);font-variant-numeric:tabular-nums}
.bigstat span{color:var(--muted);max-width:40ch}
@media (max-width:860px){.ch-grid{grid-template-columns:1fr}.chapter.alt .ch-text{order:0}}
.ch-art{display:grid;place-items:center;min-height:280px}

/* art: CRT */
.crt{width:min(340px,100%);display:grid;justify-items:center;transition:transform .5s var(--ease)}
.crt:hover{transform:rotate(-2deg) scale(1.03)}
.crt .screen{width:100%;aspect-ratio:4/3;border-radius:18px;background:radial-gradient(circle at 50% 45%,#0D2A5C,#040A16 75%);border:14px solid #D9D3C3;box-shadow:inset 0 0 40px rgba(0,114,255,.5),var(--shadow);display:grid;place-content:center;justify-items:center;gap:8px;position:relative;overflow:hidden}
.crt .screen::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 2px,transparent 2px 4px);pointer-events:none}
.px{font:900 2.6rem/1 var(--f-mono);color:#7FB5FF;text-shadow:0 0 12px rgba(0,114,255,.9);letter-spacing:.08em}
.px i{font-style:normal;color:var(--orange-2);text-shadow:0 0 12px rgba(255,157,0,.9)}
.cur{width:12px;height:18px;background:var(--lemon);animation:blink 1s steps(1) infinite}
.crt small{font:500 .52rem/1 var(--f-mono);letter-spacing:.14em;color:#8DB4F0}
.crt-base{width:40%;height:22px;background:#C9C2B0;border-radius:0 0 10px 10px}

/* art: skyline */
.skyline{width:100%;max-width:440px}
.skyline .bldg>*{fill:var(--blue);opacity:.85}
.skyline .bldg polygon{fill:var(--orange)}
.skyline .links path{fill:none;stroke:var(--orange-2);stroke-width:2;stroke-dasharray:6 8;animation:dash 2.4s linear infinite}
.skyline .nodes circle{fill:var(--lemon);stroke:var(--blue);stroke-width:2;animation:pulse2 2s ease-in-out infinite}
.skyline .nodes circle:nth-child(2){animation-delay:.6s}.skyline .nodes circle:nth-child(3){animation-delay:1.2s}
.svgtag{font:500 12px var(--f-mono);fill:var(--muted);letter-spacing:.1em;text-transform:uppercase}
@keyframes dash{to{stroke-dashoffset:-56}}
@keyframes pulse2{50%{r:9}}

.sky-wrap{display:grid;justify-items:center;gap:16px;width:100%}
.sky-badge{display:inline-flex;align-items:center;gap:10px;background:var(--lemon);color:var(--lemon-ink);font:700 .78rem/1 var(--f-mono);letter-spacing:.14em;padding:10px 16px;border-radius:999px;box-shadow:var(--shadow)}
.sky-badge i{width:9px;height:9px;border-radius:50%;background:#1DB954;box-shadow:0 0 0 0 rgba(29,185,84,.6);animation:live 1.6s infinite}
@keyframes live{70%{box-shadow:0 0 0 8px rgba(29,185,84,0)}100%{box-shadow:0 0 0 0 rgba(29,185,84,0)}}
/* art: archive photo */
.snap{position:relative;margin:0;width:min(460px,100%);display:grid;gap:14px;justify-items:center}
.snap-print{position:relative;background:#FBF8F1;padding:12px 12px 14px;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.12),0 24px 50px rgba(18,21,28,.22);transform:rotate(-2.5deg);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.snap-print img{display:block;width:100%;height:auto;border-radius:2px;filter:saturate(.92) contrast(1.03)}
.snap-print::after{content:"";position:absolute;inset:12px 12px 14px;border-radius:2px;pointer-events:none;background:radial-gradient(ellipse at 50% 40%,transparent 55%,rgba(40,20,0,.28));mix-blend-mode:multiply}
.snap:hover .snap-print{transform:rotate(0) translateY(-6px) scale(1.02);box-shadow:0 2px 4px rgba(0,0,0,.12),0 34px 70px rgba(18,21,28,.28)}
.tape{position:absolute;width:86px;height:26px;background:color-mix(in srgb,var(--lemon) 70%,transparent);box-shadow:0 1px 2px rgba(0,0,0,.12);z-index:2}
.tape.t1{top:-12px;left:18px;transform:rotate(-8deg)}
.tape.t2{top:-10px;right:22px;transform:rotate(7deg)}
.snap figcaption{display:grid;gap:3px;text-align:center}
.snap figcaption b{font:700 .95rem/1.3 var(--f-display)}
.snap figcaption span{font:500 .7rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.snap-ball{position:absolute;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#E9E4D8);box-shadow:0 8px 18px rgba(0,0,0,.28);z-index:4;will-change:transform;pointer-events:none;left:4%;top:74%}
.snap-ball i{position:absolute;inset:6px;border-radius:50%;border:2px dashed #E0362A;border-top-color:transparent;border-bottom-color:transparent}
.snap-bat{position:absolute;left:-30px;top:74%;width:26px;height:140px;margin-top:-128px;padding:0;border:0;background:none;cursor:pointer;transform-origin:50% 92%;transform:rotate(-55deg);z-index:5;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25));transition:filter .2s}
.snap-bat svg{width:100%;height:100%;display:block}
.snap-bat:hover{filter:drop-shadow(0 0 6px var(--lemon)) drop-shadow(0 6px 8px rgba(0,0,0,.25))}
.snap-bat:not(.swing):hover{animation:waggle .9s ease-in-out infinite}
@keyframes waggle{0%,100%{transform:rotate(-55deg)}50%{transform:rotate(-46deg)}}
.snap-bat.swing{animation:swing3 .7s cubic-bezier(.2,.9,.3,1) forwards}
@keyframes swing3{0%{transform:rotate(-55deg)}12%{transform:rotate(-70deg)}34%{transform:rotate(40deg)}55%{transform:rotate(52deg)}100%{transform:rotate(-55deg)}}
.snap-pow{position:absolute;left:4%;top:74%;width:70px;height:70px;margin:-35px 0 0 -35px;border-radius:50%;z-index:3;pointer-events:none;background:radial-gradient(circle,var(--lemon) 0 30%,transparent 31%),conic-gradient(from 0deg,transparent 0 8%,var(--orange) 8% 12%,transparent 12% 25%,var(--orange) 25% 29%,transparent 29% 42%,var(--orange) 42% 46%,transparent 46% 58%,var(--orange) 58% 62%,transparent 62% 75%,var(--orange) 75% 79%,transparent 79% 92%,var(--orange) 92% 96%,transparent 96%);opacity:0;transform:scale(.3)}
.snap-pow.go{animation:pow2 .55s ease-out forwards}
@keyframes pow2{0%{opacity:0;transform:scale(.3)}25%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.6)}}
.bat-hint{position:absolute;left:-26px;top:calc(74% + 26px);z-index:5;font:700 .66rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--ink);color:var(--bg);padding:7px 9px;border-radius:4px;white-space:nowrap;pointer-events:none;transition:opacity .3s;animation:hintbob 1.6s ease-in-out infinite}
.bat-hint::before{content:"";position:absolute;left:14px;top:-5px;border:5px solid transparent;border-top:0;border-bottom-color:var(--ink)}
.bat-hint.gone{opacity:0}
@keyframes hintbob{50%{transform:translateY(-3px)}}
.snap .print-stack{right:-14px;bottom:70px;z-index:3}
.snap:hover .print-stack span:nth-child(1){transform:translateX(-10px)}
.snap:hover .print-stack span:nth-child(2){transform:translateX(-18px)}
.snap:hover .print-stack span:nth-child(3){transform:translateX(-26px)}
@media (max-width:560px){.snap-bat{left:-6px;width:20px;height:110px;margin-top:-100px}.snap-ball{width:32px;height:32px;margin:-16px 0 0 -16px}.snap-bat{left:12px}.bat-hint{left:2px}.snap .print-stack{right:-4px}}
/* art: diamond */
.diamond-wrap{position:relative;width:min(340px,100%)}
.diamond{width:100%}
.diamond .grass{fill:color-mix(in srgb,#2F7D3A 70%,var(--bg))}
.diamond .infield{fill:color-mix(in srgb,var(--orange) 55%,#8A5A2B)}
.diamond .base{fill:#fff}
.ball{position:absolute;left:44%;top:30%;width:46px;height:46px;border-radius:50%;background:#fff;box-shadow:var(--shadow);animation:pitch 3.2s var(--ease) infinite}
.ball i{position:absolute;inset:6px;border-radius:50%;border:2px dashed #E0362A;border-top-color:transparent;border-bottom-color:transparent}
@keyframes pitch{0%{transform:translate(0,90px) scale(.6) rotate(0)}50%{transform:translate(0,-10px) scale(1) rotate(360deg)}100%{transform:translate(0,90px) scale(.6) rotate(720deg)}}
.print-stack{position:absolute;right:-6px;bottom:6px;display:grid;gap:6px}
.print-stack span{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:6px;padding:6px 10px;font:700 .72rem/1 var(--f-display);box-shadow:var(--shadow);transition:transform .3s var(--ease)}
.diamond-wrap:hover .print-stack span:nth-child(1){transform:translateX(-10px)}
.diamond-wrap:hover .print-stack span:nth-child(2){transform:translateX(-18px)}
.diamond-wrap:hover .print-stack span:nth-child(3){transform:translateX(-26px)}

/* art: campus */
.campus{position:relative;width:min(380px,100%);height:260px;display:flex;align-items:flex-end;gap:10px;padding:0 20px 18px}
.campus span{flex:1;height:var(--h);border-radius:4px 4px 0 0;background:repeating-linear-gradient(0deg,transparent 0 12px,rgba(255,255,255,.35) 12px 14px),linear-gradient(180deg,var(--blue-2),var(--blue));transform-origin:bottom}
.campus span:nth-child(4){background:repeating-linear-gradient(0deg,transparent 0 12px,rgba(255,255,255,.35) 12px 14px),linear-gradient(180deg,var(--orange-2),var(--orange))}
.ch-art.in .campus span{animation:grow 1.1s var(--ease) both;animation-delay:calc(var(--i) * .12s)}
.campus .ground{position:absolute;left:0;right:0;bottom:0;height:18px;background:color-mix(in srgb,#2F7D3A 60%,var(--bg));border-radius:6px}
.campus .crane{position:absolute;top:18px;right:30px;width:4px;height:120px;background:var(--gold)}
.campus .crane::before{content:"";position:absolute;top:0;left:-70px;width:100px;height:4px;background:var(--gold);transform-origin:70px 2px;animation:swing 5s ease-in-out infinite}
@keyframes swing{50%{transform:rotate(-6deg)}}

/* art: brand wall */
.brandwall{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:420px}
.brandwall span{font:900 1rem/1 var(--f-display);padding:14px 18px;border-radius:10px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .3s var(--ease),background .3s,color .3s}
.brandwall span:nth-child(odd){transform:rotate(-2deg)}.brandwall span:nth-child(even){transform:rotate(2deg)}
.brandwall span:hover{transform:rotate(0) scale(1.08);background:var(--lemon);color:var(--lemon-ink)}

/* art: marin */
.marin{width:100%;max-width:440px}
.marin .sun{fill:var(--lemon);animation:rise2 6s ease-in-out infinite alternate}
.marin .h1{fill:color-mix(in srgb,#2F7D3A 75%,var(--bg))}
.marin .h2{fill:color-mix(in srgb,#7A9C3E 80%,var(--bg))}
.marin .pin path{fill:var(--orange)} .marin .pin circle{fill:#fff}
.marin .pin{animation:bob 2s ease-in-out infinite}
@keyframes rise2{to{transform:translateY(-12px)}}
@keyframes bob{50%{transform:translateY(-5px)}}

/* today */
.chapter.today{background:linear-gradient(140deg,var(--navy),var(--blue));color:#fff}
.chapter.today .ch-text p{color:#D6E4FF}
.chapter.today .ch-era{color:var(--lemon)}.chapter.today .ch-era::before{background:var(--lemon)}
.arc{position:relative;width:100%;max-width:440px;height:200px}
.arcline{position:absolute;left:4%;right:6%;top:50%;height:3px;background:linear-gradient(90deg,rgba(255,255,255,.25),var(--lemon));border-radius:2px}
.arc .dot{position:absolute;left:var(--x);top:50%;transform:translate(-50%,-50%);font:700 .7rem/1 var(--f-mono);letter-spacing:.06em;padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);color:#fff;z-index:1;white-space:nowrap}
.arc .dot:nth-child(even){top:calc(50% - 44px)}
.arc .dot:nth-child(odd):not(.now){top:calc(50% + 44px)}
.arc .dot.now{background:var(--lemon);color:var(--lemon-ink);border-color:var(--lemon);font-size:.95rem;padding:12px 16px;box-shadow:0 0 0 8px rgba(255,244,79,.18);animation:pulse3 2s infinite}
@keyframes pulse3{50%{box-shadow:0 0 0 16px rgba(255,244,79,.05)}}
.diff .card{gap:14px}

.arc .dot.now{top:50%}

.teaser-card{display:grid;gap:22px;padding:34px;border-radius:16px;background:linear-gradient(140deg,#050B18,var(--navy) 50%,var(--blue));color:#fff;text-decoration:none;overflow:hidden}
.t-yr{font:900 clamp(4rem,10vw,7rem)/.85 var(--f-display);letter-spacing:-.04em;background:linear-gradient(180deg,#fff 30%,#9CC3FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.t-line{display:flex;flex-wrap:wrap;gap:8px}
.t-line i{font:500 .72rem/1 var(--f-mono);font-style:normal;letter-spacing:.06em;padding:8px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.28)}
.t-line i.now{background:var(--lemon);color:var(--lemon-ink);border-color:var(--lemon)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .hl{background-size:100% 38%}
  .rotator span:not(.on){display:none}
}

/* ===== WordPress additions ===== */
.admin-bar header.site{top:32px}
@media (max-width:782px){.admin-bar header.site{top:46px}}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
.prose{max-width:760px}
.prose h2{font-size:1.6rem;margin:1.6em 0 .5em}.prose h3{margin:1.4em 0 .4em}
.prose p,.prose ul,.prose ol{margin:0 0 1em;color:var(--muted)}
/* Gravity Forms, styled to match */
.gform_wrapper .gform_fields{display:grid;gap:14px}
.gform_wrapper .gfield_label,.gform_wrapper legend.gfield_label{font:700 .78rem/1 var(--f-display)!important;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px!important;color:var(--ink)}
.gform_wrapper input[type=text],.gform_wrapper input[type=email],.gform_wrapper input[type=tel],.gform_wrapper input[type=url],.gform_wrapper select,.gform_wrapper textarea{font:inherit!important;color:var(--ink);background:var(--surface);border:1px solid var(--line)!important;border-radius:8px!important;padding:12px 14px!important;width:100%!important;transition:border-color .2s,box-shadow .2s}
.gform_wrapper input:focus,.gform_wrapper textarea:focus,.gform_wrapper select:focus{outline:none;border-color:var(--blue)!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--lemon) 70%,transparent)}
.gform_wrapper .gform_footer input[type=submit],.gform_wrapper .gform_footer button,.gform_wrapper .gform-button{font:700 .8rem/1 var(--f-display)!important;letter-spacing:.12em;text-transform:uppercase;padding:16px 26px!important;border:0!important;border-radius:4px!important;color:#fff!important;background:linear-gradient(90deg,var(--blue),var(--blue-2))!important;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.gform_wrapper .gform_footer input[type=submit]:hover,.gform_wrapper .gform-button:hover{transform:translateY(-3px);box-shadow:0 6px 0 var(--lemon)}
.gform_wrapper .gfield_required{color:var(--orange)}
