/* Re Prime — detail pages (speed / services / works). Same tokens as the top page. */
:root{
  --blue: oklch(0.56 0.21 258); --blue-2: oklch(0.72 0.15 225);
  --paper: oklch(0.985 0.006 250); --paper-2: oklch(0.955 0.015 245);
  --ink: oklch(0.2 0.03 260); --ink-dim: oklch(0.45 0.03 260); --line: oklch(0.88 0.02 250);
  --night:#05070d;
  --disp:'Outfit','Zen Kaku Gothic New',sans-serif; --jp:'Zen Kaku Gothic New','Hiragino Sans',sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
  --grad: linear-gradient(100deg, oklch(0.52 0.23 262) 0%, oklch(0.62 0.2 245) 45%, oklch(0.78 0.14 210) 100%);
  --acc:var(--blue); --acc-soft:oklch(0.95 0.03 255);
}
.pg-web3{--acc:oklch(0.62 0.2 300);--acc-soft:oklch(0.95 0.035 300);--grad:linear-gradient(100deg,#7c3aed,#a855f7 45%,#22d3ee)}
.pg-ai{--acc:oklch(0.6 0.16 175);--acc-soft:oklch(0.95 0.035 175);--grad:linear-gradient(100deg,#0d9488,#14b8a6 45%,#38bdf8)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--jp);color:var(--ink);background:var(--paper);line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
::selection{background:var(--blue);color:#fff}
.wrap{max-width:1560px;margin:0 auto;padding:0 clamp(20px,6vw,96px)}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--acc);text-transform:uppercase;display:flex;align-items:center;gap:10px}
.eyebrow i{width:28px;height:1px;background:currentColor}

/* header */
.ph{position:sticky;top:0;z-index:20;background:color-mix(in oklch,var(--paper) 82%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.ph .wrap{display:flex;align-items:center;gap:20px;height:64px}
.ph-logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.ph-logo svg{width:30px;height:26px}
.ph-logo span{font-family:var(--disp);font-weight:500;font-size:14px;letter-spacing:.32em;background:linear-gradient(100deg,#2f6bff,#4f8bff 45%,#5ee0ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.ph nav{margin-left:auto;display:flex;gap:22px;font-size:13px;font-weight:700}
.ph nav a{text-decoration:none;opacity:.7;transition:opacity .2s}
.ph nav a:hover,.ph nav a.on{opacity:1;color:var(--acc)}
.ph .cta{padding:10px 18px;border-radius:99px;background:var(--grad);color:#fff;font-size:13px;font-weight:700;text-decoration:none;box-shadow:0 10px 24px -12px var(--acc)}
@media (max-width:860px){.ph nav{display:none}.ph .cta{margin-left:auto}}

/* breadcrumb */
.crumb{font-size:12px;color:var(--ink-dim);padding-top:22px;display:flex;gap:8px;flex-wrap:wrap}
.crumb a{text-decoration:none}.crumb a:hover{color:var(--acc)}

/* hero */
.hero{position:relative;padding:clamp(40px,8vw,120px) 0 clamp(48px,7vw,96px)}
body::before{content:"";position:fixed;z-index:-1;right:-18vw;top:-30vh;width:80vmax;height:80vmax;border-radius:50%;background:radial-gradient(circle,color-mix(in oklch,var(--acc) 22%,transparent),transparent 62%);pointer-events:none;animation:heroGlow 9s ease-in-out infinite alternate}
@keyframes heroGlow{to{transform:translate(-6%,8%) scale(1.08)}}
.hero h1{position:relative;font-size:clamp(36px,6vw,112px);font-weight:900;letter-spacing:-.045em;line-height:1.12;margin:20px 0 24px;text-wrap:balance}
.hero .lead{position:relative;font-size:clamp(15px,1.25vw,21px);color:var(--ink-dim);max-width:860px;text-wrap:pretty}
.hero-stats{position:relative;display:flex;gap:clamp(20px,5vw,64px);flex-wrap:wrap;margin-top:40px}
.hero-stats div b{display:block;font-family:var(--disp);font-size:clamp(32px,4vw,52px);font-weight:800;letter-spacing:-.03em;line-height:1.05}
.hero-stats div span{font-size:12.5px;color:var(--ink-dim);font-weight:700}
.hero-act{position:relative;display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:34px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:54px;padding:0 26px;white-space:nowrap;border-radius:14px;font-weight:700;font-size:15px;text-decoration:none;transition:transform .2s, box-shadow .2s}
.btn.pri{background:var(--grad);color:#fff;box-shadow:0 18px 36px -18px var(--acc)}
.btn.ghost{background:#fff;border:1px solid var(--line)}
.btn:hover{transform:translateY(-2px)}

/* answer box (the sentence AI / search should quote) */
.answer{position:relative;margin-top:8px;padding:24px 28px 24px 30px;border-radius:22px;background:#fff;border:1px solid var(--line);box-shadow:0 24px 60px -40px oklch(0.4 0.12 258 / .5)}
.answer::before{content:"";position:absolute;left:0;top:22px;bottom:22px;width:4px;border-radius:0 4px 4px 0;background:var(--grad)}
.answer small{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--acc)}
.answer p{margin-top:6px;font-size:clamp(16px,1.5vw,19px);font-weight:700;line-height:1.85;text-wrap:pretty}

/* sections */
.sec{padding:clamp(56px,8vw,104px) 0 0;scroll-margin-top:40px}
.rpc-launch.on{z-index:30}
.sec-h{margin-bottom:32px}
.sec-h h2{font-size:clamp(26px,3.4vw,44px);font-weight:900;letter-spacing:-.035em;line-height:1.3;margin-top:12px;text-wrap:balance}
.sec-h p{margin-top:12px;color:var(--ink-dim);max-width:720px;font-size:15px}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.card{position:relative;padding:24px;border-radius:22px;background:#fff;border:1px solid var(--line);transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s, border-color .35s}
.card:hover{transform:translateY(-4px);border-color:color-mix(in oklch,var(--acc) 40%,var(--line));box-shadow:0 26px 50px -32px var(--acc)}
.card .no{font-family:var(--disp);font-weight:800;font-size:13px;letter-spacing:.1em;color:var(--acc)}
.card h3{font-size:17px;font-weight:900;letter-spacing:-.01em;line-height:1.5;margin:8px 0 8px}
.card p{font-size:13.5px;color:var(--ink-dim);line-height:1.85}
.card ul{list-style:none;margin-top:10px;display:grid;gap:6px;font-size:13px;color:var(--ink-dim)}
.card li{padding-left:16px;position:relative}
.card li::before{content:"";position:absolute;left:0;top:.75em;width:6px;height:6px;border-radius:50%;background:var(--acc)}
.card.dark{background:#0b1220;color:#fff;border-color:#0b1220}
.card.dark p,.card.dark li{color:#cbd5e1}

/* timeline */
.tl{position:relative;display:grid;gap:12px}
.tl::before{content:"";position:absolute;left:31px;top:20px;bottom:20px;width:2px;background:linear-gradient(var(--acc),color-mix(in oklch,var(--acc) 10%,transparent))}
.tl-i{position:relative;display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:start}
.tl-d{position:relative;z-index:1;width:64px;height:64px;border-radius:20px;background:#fff;border:2px solid var(--acc);display:grid;place-items:center;font-family:var(--disp);font-weight:800;line-height:1;color:var(--acc);text-align:center}
.tl-d small{display:block;font-size:9px;letter-spacing:.12em}
.tl-d b{font-size:26px}
.tl-b{padding:18px 22px;border-radius:20px;background:#fff;border:1px solid var(--line)}
.tl-b h3{font-size:17px;font-weight:900}
.tl-b p{font-size:13.5px;color:var(--ink-dim);margin-top:4px}
.tl-b dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin-top:12px;font-size:13px}
.tl-b dt{font-weight:700;color:var(--acc);white-space:nowrap}
.tl-b dd{color:var(--ink-dim)}
.tl-i.in .tl-d{background:var(--acc);color:#fff}

/* two-col fit lists */
.fit{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fit .card h3{display:flex;align-items:center;gap:10px}
.fit .card h3 span{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;color:#fff;font-size:14px;background:var(--grad)}
.fit .card.no h3 span{background:#94a3b8}
.fit .card.no li::before{background:#cbd5e1}

/* case study */
.case{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:start;padding:clamp(24px,3.5vw,40px);border-radius:28px;background:#fff;border:1px solid var(--line);margin-bottom:18px}
.case.rev{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
.case.rev .case-v{order:2}
.case-v{position:relative;border-radius:18px;overflow:hidden;background:var(--paper-2);aspect-ratio:16/10;border:1px solid var(--line)}
.case-v img{width:100%;height:100%;object-fit:cover;object-position:top left}
.case-v .tag{position:absolute;left:12px;top:12px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;padding:5px 10px;border-radius:99px;background:rgba(11,18,32,.82);color:#fff}
.case-t .kind{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--acc)}
.case-t h3{font-size:clamp(20px,2.2vw,28px);font-weight:900;letter-spacing:-.025em;line-height:1.4;margin:8px 0 12px}
.case-t > p{font-size:14px;color:var(--ink-dim)}
.case-t dl{margin-top:16px;display:grid;grid-template-columns:96px 1fr;border-top:1px solid var(--line)}
.case-t dt,.case-t dd{padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.75}
.case-t dt{font-weight:700;color:var(--ink-dim);font-size:12px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.chips span{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:99px;background:var(--acc-soft);color:var(--acc)}
.case-link{display:inline-flex;margin-top:14px;font-size:13px;font-weight:700;color:var(--acc);text-decoration:none}
.case-link:hover{text-decoration:underline}
@media (max-width:900px){.case,.case.rev{grid-template-columns:1fr}.case.rev .case-v{order:0}.fit{grid-template-columns:1fr}}

/* stat strip */
.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.strip div{padding:20px;border-radius:18px;background:#fff;border:1px solid var(--line)}
.strip b{display:block;font-family:var(--disp);font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1.1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.strip span{font-size:12.5px;color:var(--ink-dim);font-weight:700}

/* price */
.price{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.price div{padding:22px;border-radius:20px;background:#fff;border:1px solid var(--line)}
.price div.hl{border-color:color-mix(in oklch,var(--acc) 50%,var(--line));box-shadow:0 24px 50px -34px var(--acc)}
.price small{font-size:13px;font-weight:700}
.price b{display:block;font-family:var(--disp);font-size:40px;font-weight:800;letter-spacing:-.04em;line-height:1.1;margin:8px 0 4px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.price b em{font-style:normal;font-size:15px;-webkit-text-fill-color:var(--ink)}
.price p{font-size:12.5px;color:var(--ink-dim)}
.note{margin-top:12px;font-size:12px;color:var(--ink-dim)}

/* FAQ */
.faq{display:grid;gap:10px}
.faq details{border:1px solid var(--line);border-radius:18px;background:#fff}
.faq details[open]{border-color:color-mix(in oklch,var(--acc) 40%,var(--line))}
.faq summary{list-style:none;display:flex;gap:14px;align-items:center;padding:18px 22px;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary b{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--grad);color:#fff;font-family:var(--disp);font-size:14px}
.faq summary h3{flex:1;font-size:15.5px;font-weight:700;line-height:1.6}
.faq summary i{flex:none;width:12px;height:12px;border-right:2px solid var(--acc);border-bottom:2px solid var(--acc);transform:rotate(45deg);transition:transform .25s}
.faq details[open] summary i{transform:rotate(225deg)}
.faq details p{padding:0 22px 20px 66px;font-size:14px;color:var(--ink-dim);line-height:2}
@media (max-width:640px){.faq details p{padding:0 20px 18px}}

/* related */
.rel{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.rel a{display:block;padding:20px 22px;border-radius:18px;background:#fff;border:1px solid var(--line);text-decoration:none;transition:transform .25s, border-color .25s}
.rel a:hover{transform:translateY(-3px);border-color:var(--acc)}
.rel small{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--acc)}
.rel b{display:block;font-size:16px;margin-top:4px}
.rel span{font-size:12.5px;color:var(--ink-dim)}

/* CTA */
.cta-band{position:relative;overflow:hidden;margin:clamp(64px,9vw,120px) 0 0;padding:clamp(40px,6vw,72px);border-radius:32px;background:#0b1220;color:#fff;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.cta-band::after{content:"";position:absolute;right:-12%;top:-70%;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,color-mix(in oklch,var(--acc) 60%,transparent),transparent 65%);opacity:.6}
.cta-band h2{position:relative;z-index:1;font-size:clamp(24px,3vw,38px);font-weight:900;letter-spacing:-.03em;line-height:1.35}
.cta-band p{position:relative;z-index:1;color:#cbd5e1;font-size:14px;margin-top:8px}
.cta-band .btn{position:relative;z-index:1}
@media (max-width:760px){.cta-band{grid-template-columns:1fr}}

.pf{margin-top:72px;border-top:1px solid var(--line);padding:30px 0 44px;font-size:12px;color:var(--ink-dim)}
.pf .wrap{display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between}
.pf nav{display:flex;gap:16px;flex-wrap:wrap}
.pf a{text-decoration:none}.pf a:hover{color:var(--acc)}

/* reveal */
.rv{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}body::before{animation:none}}

/* large screens: scale reading sizes so pages don't look shrunk */
@media (min-width:1600px){
  body{font-size:17px}
  .sec-h h2{font-size:clamp(40px,2.8vw,56px)}
  .sec-h p,.card p,.tl-b p,.case-t > p,.faq details p{font-size:15.5px}
  .card h3,.tl-b h3{font-size:19px}
  .answer p{font-size:21px}
  .case-t h3{font-size:32px}
  .ph .wrap{height:72px}.ph nav{font-size:14px;gap:28px}
}
html,body{min-height:100%}
body{position:relative;isolation:isolate}
