/* KirinCore Blog — brand-matched stylesheet */
:root{
  --bg:#ffffff;--soft:#f7f5ff;--soft2:#faf9fd;--ink:#181231;--ink2:#4b4668;
  --muted:#8b85a6;--line:#ece8f8;--violet:#7c3aed;--violet-d:#6d28d9;--pink:#ec4899;
  --dark:#15102e;--dark2:#1c1340;
  --grad:linear-gradient(135deg,#7c3aed,#ec4899);
  --grad-soft:linear-gradient(135deg,#8b5cf6,#ec4899);
  --shadow:0 18px 50px -22px rgba(91,33,182,.45);
  --radius:20px;
  --font:"Noto Sans Thai","Plus Jakarta Sans",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{width:100%;max-width:1160px;margin:0 auto;padding:0 22px}

/* Header (matched to homepage exactly) */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;color:var(--ink);font-family:"Plus Jakarta Sans",var(--font)}
.brand .logo{height:34px;width:auto;display:block}
.nav-links{display:flex;gap:30px;font-size:15px;font-weight:600;color:var(--ink2)}
.nav-links a:hover{color:var(--violet-d)}
.nav-cta{display:flex;align-items:center;gap:14px}
.nav-login{font-weight:700;font-size:15px;color:var(--ink)}
.nav-login:hover{color:var(--violet-d)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--font);font-weight:700;font-size:15.5px;border-radius:14px;padding:14px 26px;cursor:pointer;border:1px solid transparent;transition:transform .25s cubic-bezier(.2,.8,.3,1),box-shadow .25s,background .25s;white-space:nowrap}
.btn svg{width:18px;height:18px;transition:transform .25s ease}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 12px 30px -10px rgba(124,58,237,.6)}
.btn-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 18px 40px -10px rgba(236,72,153,.6)}
.btn-primary:hover svg.arr{transform:translateX(5px)}
.btn-sm{padding:9px 20px;font-size:14.5px;border-radius:12px;gap:7px}
.btn-sm svg{width:15px;height:15px}
.btn-lg{padding:15px 30px;font-size:16px}

/* Hero */
.hero{position:relative;padding:54px 0 40px;text-align:center;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 120% at 50% -10%,rgba(124,58,237,.10),transparent 60%);pointer-events:none}
.eyebrow{display:inline-block;font-size:13px;font-weight:700;color:var(--violet);background:var(--soft);border:1px solid var(--line);padding:7px 15px;border-radius:999px;margin-bottom:18px}
.hero h1{font-size:clamp(30px,5vw,46px);line-height:1.2;font-weight:800;letter-spacing:-.5px;margin-bottom:16px}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{max-width:640px;margin:0 auto;color:var(--ink2);font-size:clamp(16px,2.2vw,18px)}

/* Breadcrumb */
.crumb{font-size:13.5px;color:var(--muted);padding:28px 0 0}
.crumb a:hover{color:var(--violet)}
.crumb span{margin:0 7px}

/* Section */
.sec{padding:48px 0}
.sec-head{margin-bottom:30px}
.sec-head h2{font-size:clamp(22px,3.4vw,28px);font-weight:800;letter-spacing:-.3px}
.sec-head p{color:var(--ink2);margin-top:6px}

/* Card grid */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .18s,box-shadow .25s;height:100%}
a.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card-media{aspect-ratio:16/8;background:var(--grad-soft);position:relative;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:19px;text-align:center;padding:16px}
.card-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.card-body{padding:24px 22px 26px;display:flex;flex-direction:column;gap:12px;flex:1}
.tag{align-self:flex-start;font-size:12px;font-weight:700;color:var(--violet);background:var(--soft);padding:5px 11px;border-radius:999px}
.tag.soon{color:var(--muted);background:#f4f2f9}
.card h3{font-size:18px;font-weight:800;line-height:1.4}
.card .excerpt{color:var(--ink2);font-size:14.5px;flex:1}
.card .meta{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:8px;margin-top:4px}
.card.disabled{opacity:.85;cursor:default}
.card.disabled .card-media{filter:saturate(.6) opacity(.9)}

/* CTA band */
.cta-band{margin:16px 0 80px;background:var(--dark);border-radius:24px;padding:40px 30px;text-align:center;color:#fff;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 140% at 50% 0%,rgba(236,72,153,.25),transparent 55%),radial-gradient(60% 120% at 50% 120%,rgba(124,58,237,.35),transparent 60%)}
.cta-band>*{position:relative}
.cta-band h2{font-size:clamp(22px,3vw,32px);font-weight:800;margin-bottom:0;line-height:1.2}
.cta-band p{color:rgba(237,231,255,.9);margin:10px 0 22px;font-size:15px;line-height:1.65}

/* Article body */
.article{padding:14px 0 40px}
.article-head{max-width:760px;margin:0 auto 26px;text-align:center}
.article-head .tag{margin:0 auto 14px}
.article-head h1{font-size:clamp(27px,4.5vw,40px);line-height:1.25;font-weight:800;letter-spacing:-.4px}
.article-head .byline{color:var(--muted);font-size:14px;margin-top:14px}
.article-cover{max-width:900px;margin:0 auto 30px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.article-body{max-width:720px;margin:0 auto;font-size:17px}
.article-body h2{font-size:26px;font-weight:800;letter-spacing:-.3px;margin:38px 0 14px;line-height:1.3}
.article-body h3{font-size:20px;font-weight:800;margin:26px 0 10px}
.article-body p{margin:0 0 18px;color:#2c2647}
.article-body ul,.article-body ol{margin:0 0 18px;padding-left:24px;color:#2c2647}
.article-body li{margin-bottom:9px}
.article-body img{border-radius:14px;margin:24px auto;box-shadow:var(--shadow)}
.article-body a{color:var(--violet);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.article-body blockquote{border-left:4px solid var(--violet);background:var(--soft);padding:16px 20px;border-radius:0 14px 14px 0;margin:24px 0;color:var(--ink2);font-size:16px}
.article-body strong{color:var(--ink);font-weight:700}
.callout{background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:20px 22px;margin:26px 0}
.callout strong{color:var(--violet)}
.share{max-width:720px;margin:34px auto 0;padding-top:22px;border-top:1px solid var(--line);display:flex;gap:12px;align-items:center;color:var(--muted);font-size:14px}

/* Footer (copied from homepage) */
.ft{background:#140e2a;color:#cdc6e6;padding:54px 0 30px;line-height:1.65}
.ft-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 30px; padding-bottom: 34px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.ft .brand { color: rgb(255, 255, 255); margin-bottom: 12px; }
.ft p.about { font-size: 13.5px; color: rgb(155, 147, 189); max-width: 280px; }
.ft h5 { color: rgb(255, 255, 255); font-size: 14px; font-weight: 800; margin-bottom: 14px; }
.ft ul { list-style: none; display: flex; flex-direction: column; gap: 9px; }
.ft ul a { font-size: 13.5px; color: rgb(167, 159, 198); display: inline-flex; align-items: center; gap: 8px; }
.ft ul a:hover { color: rgb(255, 255, 255); }
.ft ul a svg { width: 15px; height: 15px; flex: 0 0 auto; }
.ft-bot { text-align: center; font-size: 12.5px; color: rgb(125, 117, 160); padding-top: 22px; display: flex; align-items: center; justify-content: center; gap: 6px; }
.ft-bot svg { width: 14px; height: 14px; color: rgb(236, 72, 153); }
.fab { position: fixed; right: 20px; bottom: 22px; z-index: 60; display: flex; flex-direction: column; gap: 13px; align-items: flex-end; }
.fab-btn { position: relative; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; color: rgb(255, 255, 255); box-shadow: rgba(0, 0, 0, 0.32) 0px 12px 28px -6px; transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.3, 1), box-shadow 0.25s; }
.fab-btn svg { width: 30px; height: 30px; }
.fab-btn:hover { transform: translateY(-3px) scale(1.07); box-shadow: rgba(0, 0, 0, 0.4) 0px 18px 36px -8px; }
.fab .line { background: rgb(6, 199, 85); }
.fab .fb { background: rgb(24, 119, 242); }
.fab-label { position: absolute; right: 67px; top: 50%; transform: translateY(-50%) translateX(8px); white-space: nowrap; background: rgb(255, 255, 255); color: rgb(27, 22, 51); font-size: 13px; font-weight: 700; padding: 8px 14px; border-radius: 11px; box-shadow: rgba(0, 0, 0, 0.28) 0px 10px 24px -8px; opacity: 0; pointer-events: none; transition: 0.25s; }
.fab-btn:hover .fab-label { opacity: 1; transform: translateY(-50%) translateX(0px); }
.fab .line::after { content: ""; position: absolute; inset: 0px; border-radius: 50%; animation: 2.3s ease 0s infinite normal none running fabpulse; }
@keyframes fabpulse { 
  0% { box-shadow: rgba(6, 199, 85, 0.55) 0px 0px 0px 0px; }
  70% { box-shadow: rgba(6, 199, 85, 0) 0px 0px 0px 15px; }
  100% { box-shadow: rgba(6, 199, 85, 0) 0px 0px 0px 0px; }
}
@media (prefers-reduced-motion: reduce){.fbadge, .fchip, .fcard, .spark, .mq-track, .fab .line::after, .vbadge .dot { animation: auto ease 0s 1 normal none running none; }}
@media (max-width: 900px){.ft-top { grid-template-columns: 1fr 1fr; }}
@media (max-width: 520px){.fab-btn { width: 52px; height: 52px; }}
.fab .line svg { width: 40px; height: auto; }
.ft .ft-ico { width: 22px; height: 22px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.ft .ft-ico svg { width: 13px; height: 13px; }

/* Responsive */
@media(max-width:900px){
  .nav-links{display:none}
  .grid,.grid-2{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1/-1}
}
@media(max-width:640px){
  .grid,.grid-2{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .hero{padding:48px 0 32px}
}

/* homepage button effects (kcfx) - matched to homepage */
@keyframes kcfxSheen{0%{transform:translateX(-160%) skewX(-20deg)}60%,100%{transform:translateX(260%) skewX(-20deg)}}
@keyframes kcfxGlow{0%,100%{box-shadow:0 12px 30px -10px rgba(124,58,237,.5)}50%{box-shadow:0 18px 44px -8px rgba(236,72,153,.6)}}
@keyframes kcfxGrad{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.btn-primary{position:relative;overflow:hidden}
.btn-primary::after{content:"";position:absolute;top:0;left:0;width:60%;height:100%;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.5) 50%,transparent 75%);transform:translateX(-160%) skewX(-20deg);pointer-events:none;z-index:3}
.btn-primary:hover::after{animation:kcfxSheen 1.1s ease}
.btn-primary:not(.btn-sm){background:linear-gradient(120deg,#7c3aed,#a855f7,#ec4899,#a855f7,#7c3aed) 0 0/300% 100%;animation:kcfxGlow 3.6s ease-in-out infinite,kcfxGrad 8s linear infinite}
.btn-primary.btn-sm{padding:7px 16px;font-size:14px;gap:6px;background:linear-gradient(120deg,#7c3aed,#a855f7,#ec4899,#a855f7,#7c3aed) 0 0/300% 100%;animation:kcfxGlow 3.6s ease-in-out infinite,kcfxGrad 6s linear infinite}

.cta-band .btn{position:relative;z-index:2;background:#fff;color:var(--violet-d);line-height:1.65}
.cta-band .btn:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 18px 40px -12px rgba(0,0,0,.4)}
