/* ===== PETA PEMICU CEMAS — Psikorealis (rebuild total) ===== */
#cms-app, #cms-app *{box-sizing:border-box}
#cms-app{--cms-bg:#0B0B0D;--cms-fg:#EDEDED;--cms-fg-dim:#9A9A9F;--cms-c1:#8E0E3A;--cms-c2:#C2185B;--cms-c3:#FF2D7A;--cms-line:rgba(255,255,255,0.08);--cms-card:#131316;font-family:'Montserrat',sans-serif;background:var(--cms-bg);color:var(--cms-fg);border-radius:18px;overflow:hidden;max-width:560px;margin:0 auto;box-shadow:0 20px 60px rgba(0,0,0,0.45);position:relative;isolation:isolate}
#cms-app .cms-grad{background:linear-gradient(120deg,var(--cms-c1),var(--cms-c2) 55%,var(--cms-c3));}
#cms-app .cms-screen{display:none;padding:32px 26px 28px;position:relative;z-index:1}
#cms-app .cms-screen.cms-active{display:block;animation:cmsFade .5s ease}
@keyframes cmsFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

#cms-app::before,#cms-app::after{content:"";position:absolute;border-radius:50%;filter:blur(60px);opacity:.22;z-index:0;pointer-events:none;animation:cmsDrift 9s ease-in-out infinite alternate}
#cms-app::before{width:220px;height:220px;background:#FF2D7A;top:-70px;right:-60px}
#cms-app::after{width:180px;height:180px;background:#8E0E3A;bottom:10%;left:-70px;animation-delay:-4s}
@keyframes cmsDrift{from{transform:translate(0,0) scale(1)}to{transform:translate(-14px,16px) scale(1.12)}}

.cms-series{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:18px;opacity:0;animation:cmsIn .55s ease forwards}
.cms-series-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,0.18)}
.cms-series-dot.cms-series-active{background:var(--cms-c3);width:16px;border-radius:99px}
.cms-series-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--cms-fg-dim);font-weight:700}

#cms-app .cms-eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cms-fg-dim);font-weight:600;margin-bottom:10px}
#cms-app h1.cms-title{font-size:26px;line-height:1.25;font-weight:800;margin:0 0 12px}
#cms-app p.cms-desc{font-size:14.5px;line-height:1.65;color:var(--cms-fg-dim);margin:0 0 22px}
#cms-app .cms-meta-row{display:flex;gap:18px;margin-bottom:24px;flex-wrap:wrap}
#cms-app .cms-meta{font-size:12px;color:var(--cms-fg-dim);display:flex;align-items:center;gap:7px}
#cms-app .cms-meta svg{width:15px;height:15px;flex-shrink:0;opacity:.85}
#cms-app .cms-meta b{color:var(--cms-fg);font-weight:700}

.cms-hero-visual{width:100%;max-width:230px;margin:2px auto 18px;display:block}
.cms-node{transform-origin:center;animation:cmsNodePulse 2.6s ease-in-out infinite}
.cms-node-1{animation-delay:0s}.cms-node-2{animation-delay:.4s}.cms-node-3{animation-delay:.8s}.cms-node-4{animation-delay:1.2s}
@keyframes cmsNodePulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.28);opacity:1}}
.cms-node-center{animation:cmsCenterGlow 2.6s ease-in-out infinite}
@keyframes cmsCenterGlow{0%,100%{opacity:.9}50%{opacity:1}}
.cms-hero-ring{animation:cmsRingSpin 12s linear infinite;transform-origin:120px 70px}
@keyframes cmsRingSpin{to{transform:rotate(360deg)}}
.cms-hero-line{stroke-dasharray:4 4;animation:cmsLineFlow 3s linear infinite}
@keyframes cmsLineFlow{to{stroke-dashoffset:-16}}

.cms-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.cms-chip{font-size:11.5px;font-weight:700;color:#e8c9d3;background:rgba(255,45,122,0.09);border:1px solid rgba(255,45,122,0.28);padding:7px 12px;border-radius:99px;opacity:0;animation:cmsChipIn .5s ease forwards}
.cms-chip-1{animation-delay:.15s}.cms-chip-2{animation-delay:.28s}.cms-chip-3{animation-delay:.41s}.cms-chip-4{animation-delay:.54s}
@keyframes cmsChipIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

.cms-in{opacity:0;animation:cmsIn .55s ease forwards}
.cms-in-1{animation-delay:.05s}.cms-in-2{animation-delay:.15s}.cms-in-3{animation-delay:.25s}.cms-in-4{animation-delay:.5s}.cms-in-5{animation-delay:.62s}
@keyframes cmsIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

button.cms-btn{border:none;cursor:pointer;font-family:inherit;font-weight:700;font-size:15px;color:#fff;padding:15px 22px;border-radius:12px;width:100%;letter-spacing:.01em;transition:transform .15s ease,box-shadow .15s ease}
#cms-app button.cms-btn:active{transform:scale(.98)}
#cms-app button.cms-btn.cms-primary{background:linear-gradient(120deg,var(--cms-c1),var(--cms-c2) 55%,var(--cms-c3));box-shadow:0 8px 24px rgba(194,24,91,0.35);position:relative;overflow:hidden}
#cms-app button.cms-btn.cms-primary::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,0.35),transparent);animation:cmsShine 2.8s ease-in-out infinite}
@keyframes cmsShine{0%{left:-60%}55%{left:120%}100%{left:120%}}
#cms-app button.cms-btn.cms-ghost{background:transparent;border:1px solid var(--cms-line);color:var(--cms-fg)}
#cms-app button.cms-btn.cms-ghost:hover{border-color:rgba(255,255,255,0.25)}
.cms-cred{font-size:11px;color:var(--cms-fg-dim);text-align:center;margin-top:12px;line-height:1.5}

#cms-app .cms-progress-wrap{margin-bottom:26px}
#cms-app .cms-progress-track{height:5px;background:var(--cms-line);border-radius:99px;overflow:hidden}
#cms-app .cms-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--cms-c1),var(--cms-c3));transition:width .4s ease;border-radius:99px}
#cms-app .cms-progress-label{font-size:11px;color:var(--cms-fg-dim);margin-top:8px;display:flex;justify-content:space-between}
#cms-app .cms-q{font-size:19px;line-height:1.5;font-weight:700;margin:0 0 26px;min-height:76px}
#cms-app .cms-options{display:flex;flex-direction:column;gap:10px}
#cms-app .cms-opt{text-align:left;background:var(--cms-card);border:1px solid var(--cms-line);color:var(--cms-fg);padding:14px 16px;border-radius:12px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:12px;transition:border-color .15s ease,background .15s ease}
#cms-app .cms-opt:hover{border-color:rgba(255,255,255,0.22);background:#17171b}
#cms-app .cms-opt .cms-opt-dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--cms-fg-dim);flex-shrink:0}
#cms-app .cms-opt[data-val="4"] .cms-opt-dot,#cms-app .cms-opt[data-val="3"] .cms-opt-dot{background:var(--cms-c3);border-color:var(--cms-c3)}
#cms-app .cms-back{background:none;border:none;color:var(--cms-fg-dim);font-family:inherit;font-size:12.5px;cursor:pointer;margin-bottom:18px;padding:0;display:inline-flex;align-items:center;gap:5px}

#cms-app .cms-loading{padding:80px 26px;text-align:center}
#cms-app .cms-spinner{width:46px;height:46px;border-radius:50%;border:3px solid var(--cms-line);border-top-color:var(--cms-c3);margin:0 auto 22px;animation:cmsSpin 0.9s linear infinite}
@keyframes cmsSpin{to{transform:rotate(360deg)}}
#cms-app .cms-loading-text{font-size:14px;color:var(--cms-fg-dim);min-height:20px}

#cms-app .cms-chapter{padding-top:6px;padding-bottom:30px;border-bottom:1px solid var(--cms-line)}
#cms-app .cms-chapter:last-of-type{border-bottom:none}
#cms-app .cms-result-badge{display:inline-block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:6px 12px;border-radius:99px;background:rgba(255,45,122,0.12);color:#FF7CA8;margin-bottom:14px}
#cms-app h2.cms-result-title{font-size:26px;line-height:1.25;font-weight:800;margin:0 0 4px}
#cms-app p.cms-result-sub{font-size:13.5px;color:var(--cms-fg-dim);margin:0 0 14px}
#cms-app p.cms-validation{font-size:15px;line-height:1.7;font-style:italic;color:#e8c9d3;border-left:3px solid var(--cms-c3);padding-left:14px;margin:0}
#cms-app h3.cms-chapter-h{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--cms-fg-dim);font-weight:700;margin:0 0 18px}
#cms-app .cms-bar-group{margin-bottom:16px}
#cms-app .cms-bar-label{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:6px}
#cms-app .cms-bar-label span:last-child{color:var(--cms-fg-dim);font-weight:700}
#cms-app .cms-bar-track{height:8px;background:var(--cms-line);border-radius:99px;overflow:hidden}
#cms-app .cms-bar-fill{height:100%;width:0%;border-radius:99px;background:linear-gradient(90deg,var(--cms-c1),var(--cms-c3));transition:width 1.1s cubic-bezier(.16,1,.3,1)}
#cms-app .cms-mechanism{font-size:15px;line-height:1.75;color:var(--cms-fg);margin:0 0 12px}
#cms-app .cms-mechanism:last-child{margin-bottom:0}
#cms-app .cms-implications{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
#cms-app .cms-implications li{font-size:14px;line-height:1.6;color:var(--cms-fg-dim);padding-left:20px;position:relative}
#cms-app .cms-implications li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--cms-c3)}
#cms-app .cms-quote-card{border-radius:16px;padding:30px 24px;text-align:center;position:relative;overflow:hidden}
#cms-app .cms-quote-card p{position:relative;font-size:19px;line-height:1.5;font-weight:800;margin:0;color:#fff}
#cms-app .cms-stat-box{background:var(--cms-card);border:1px solid var(--cms-line);border-radius:14px;padding:18px}
#cms-app .cms-stat-box p{font-size:13.5px;line-height:1.65;color:var(--cms-fg-dim);margin:0}
#cms-app .cms-stat-box b{color:var(--cms-fg)}
#cms-app .cms-reflect-box{background:var(--cms-card);border:1px dashed rgba(255,255,255,0.18);border-radius:14px;padding:20px}
#cms-app .cms-reflect-box p{font-size:15px;line-height:1.6;font-weight:600;margin:0;color:var(--cms-fg)}
#cms-app .cms-share-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
#cms-app .cms-share-btn{width:42px;height:42px;border-radius:50%;background:var(--cms-card);border:1px solid var(--cms-line);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s ease}
#cms-app .cms-share-btn:hover{border-color:rgba(255,255,255,0.3)}
#cms-app .cms-share-btn svg{width:19px;height:19px;fill:var(--cms-fg)}

#cms-app .cms-cross-card{display:block;background:var(--cms-card);border:1px solid var(--cms-line);border-radius:14px;padding:16px 18px;text-decoration:none;margin-bottom:10px;transition:border-color .15s ease,transform .15s ease}
#cms-app .cms-cross-card:last-child{margin-bottom:0}
#cms-app .cms-cross-card:hover{border-color:rgba(255,45,122,0.4);transform:translateY(-2px)}
#cms-app .cms-cross-label{display:block;color:#FF7CA8;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
#cms-app .cms-cross-title{display:flex;align-items:center;justify-content:space-between;color:var(--cms-fg);font-size:15px;font-weight:700}
#cms-app .cms-cross-desc{display:block;color:var(--cms-fg-dim);font-size:12.5px;margin-top:4px;line-height:1.4}
#cms-app .cms-cross-title svg{width:15px;height:15px;flex-shrink:0}

#cms-app .cms-footer{padding:22px 26px 26px;text-align:center}
#cms-app .cms-footer span{font-size:11px;color:var(--cms-fg-dim);letter-spacing:.05em}
#cms-app canvas{display:none}
@media(max-width:420px){#cms-app h2.cms-result-title{font-size:22px}#cms-app .cms-q{font-size:17px}}
@media(prefers-reduced-motion:reduce){#cms-app *{animation:none!important;transition:none!important}}
