/* Dipakai bersama oleh 10 alternatif. Tiap file hanya mengatur tata letaknya sendiri. */
:root{
  --bg:#F6F8FA; --surface:#FFFFFF; --ink:#152233; --muted:#5A6A7C; --line:#DCE5EE;
  --glass:rgba(255,255,255,.72); --accent:#0F766E; --accent-2:#2563EB;
  --g1:#DBF3ED; --g2:#DFE9FF; --g3:#EAF1FA;
  --sans:"Plus Jakarta Sans",system-ui,sans-serif;
  --serif:"Newsreader",Georgia,serif;
  --display:"Bebas Neue","Plus Jakarta Sans",sans-serif;
  --r:5px; --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0D141C; --surface:#131C26; --ink:#E6EDF3; --muted:#93A3B5; --line:#243243;
    --glass:rgba(19,28,38,.7); --accent:#5EC4B6; --accent-2:#8AB4FF;
    --g1:#0F2A2A; --g2:#14213A; --g3:#111A24; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0D141C; --surface:#131C26; --ink:#E6EDF3; --muted:#93A3B5; --line:#243243;
  --glass:rgba(19,28,38,.7); --accent:#5EC4B6; --accent-2:#8AB4FF;
  --g1:#0F2A2A; --g2:#14213A; --g3:#111A24; color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 var(--sans);overflow-x:hidden}
a{color:inherit}
img{max-width:100%;display:block}
button{font:inherit;color:inherit}
::selection{background:var(--accent);color:#fff}

/* Kontrol bahasa & tema */
.ctl{appearance:none;border:1px solid var(--line);background:transparent;border-radius:var(--r);
  height:32px;min-width:32px;padding:0 9px;font-size:12.5px;font-weight:600;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:border-color .2s,background .2s}
.ctl:hover{border-color:var(--accent)}
.ctl svg{width:15px;height:15px}

/* Placeholder foto satwa: gradasi, nanti diganti foto Pexels asli */
.ph{position:relative;overflow:hidden;border-radius:var(--r);background:#1d2b25}
.ph::after{content:attr(data-label);position:absolute;left:10px;bottom:8px;font-size:11px;letter-spacing:.06em;
  color:rgba(255,255,255,.78);text-transform:uppercase;font-weight:600}
.p1{background:radial-gradient(60% 70% at 35% 40%,#3f8f7d,transparent 70%),radial-gradient(40% 50% at 75% 30%,#2a5d8f,transparent 70%),linear-gradient(160deg,#0f2a24,#162433)}
.p2{background:radial-gradient(50% 60% at 60% 45%,#c08a3e,transparent 70%),radial-gradient(60% 60% at 20% 80%,#4a5d2a,transparent 70%),linear-gradient(180deg,#2b2416,#151a10)}
.p3{background:radial-gradient(45% 55% at 50% 40%,#1f6f8b,transparent 70%),radial-gradient(50% 50% at 80% 80%,#2d7a4f,transparent 70%),linear-gradient(200deg,#0c1d26,#10221a)}
.p4{background:radial-gradient(55% 50% at 30% 30%,#d9b56f,transparent 70%),radial-gradient(60% 60% at 80% 70%,#6b4a2b,transparent 70%),linear-gradient(140deg,#3a2b19,#1a140c)}
.p5{background:radial-gradient(50% 60% at 65% 35%,#5b8c3a,transparent 70%),radial-gradient(45% 45% at 25% 70%,#1b5e6b,transparent 70%),linear-gradient(170deg,#13200f,#0d1a1d)}
.p6{background:radial-gradient(50% 55% at 45% 55%,#8a6fb0,transparent 70%),radial-gradient(50% 50% at 80% 20%,#2f6f8f,transparent 70%),linear-gradient(190deg,#1b1626,#101b24)}
.p7{background:radial-gradient(60% 60% at 50% 30%,#b9c7cf,transparent 70%),radial-gradient(50% 50% at 30% 80%,#56707c,transparent 70%),linear-gradient(180deg,#36444c,#1c252a)}
.p8{background:radial-gradient(50% 60% at 40% 50%,#2f8f6a,transparent 70%),radial-gradient(40% 40% at 75% 40%,#c9a24a,transparent 70%),linear-gradient(150deg,#0e2219,#1f1a0d)}

/* Panel Profesional: konten kerja baru muncul saat menu dibuka */
.pro{position:fixed;inset:0;z-index:60;display:flex;justify-content:flex-end;visibility:hidden;pointer-events:none}
.pro.open{visibility:visible;pointer-events:auto}
.pro-shade{position:absolute;inset:0;background:rgba(8,14,22,.38);opacity:0;transition:opacity .35s var(--ease)}
.pro.open .pro-shade{opacity:1}
.pro-card{position:relative;width:min(520px,100%);height:100%;overflow:auto;background:var(--surface);
  border-left:1px solid var(--line);padding:28px 28px 40px;transform:translateX(24px);opacity:0;
  transition:transform .4s var(--ease),opacity .3s var(--ease)}
.pro.open .pro-card{transform:none;opacity:1}
.pro-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.pro-top span{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.pro h2{font-size:24px;line-height:1.25;letter-spacing:-.02em;margin:0 0 10px}
.pro p{color:var(--muted);margin:0 0 22px}
.pro ol{list-style:none;margin:0 0 24px;padding:0;border-top:1px solid var(--line)}
.pro li a{display:block;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none}
.pro li b{display:block;font-weight:600;line-height:1.4}
.pro li small{color:var(--muted);font-size:13px}
.pro li a:hover b{color:var(--accent)}
.pro .more{display:flex;gap:10px;flex-wrap:wrap}
.pro .more a{font-size:14px;font-weight:600;text-decoration:none;border:1px solid var(--line);border-radius:var(--r);padding:8px 12px}
.pro .more a:hover{border-color:var(--accent)}
.pro .stack{font-size:13px;color:var(--muted);margin-top:24px}

/* Label draf di pojok */
.draft{position:fixed;left:12px;bottom:12px;z-index:50;font:600 12px/1 var(--sans);text-decoration:none;
  background:var(--ink);color:var(--bg);padding:8px 10px;border-radius:var(--r);opacity:.82}
.draft:hover{opacity:1}

/* Muncul saat digulir */
.rv{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
}

/* Placeholder street photography: malam neon, beton mendung, sore keemasan, hujan */
.s1{background:radial-gradient(30% 40% at 30% 35%,#e0408a,transparent 70%),radial-gradient(35% 45% at 72% 55%,#22b8cf,transparent 70%),radial-gradient(20% 20% at 55% 20%,#f5c542,transparent 70%),linear-gradient(180deg,#0b0b14,#141020)}
.s2{background:linear-gradient(90deg,transparent 58%,rgba(0,0,0,.35) 58% 61%,transparent 61%),radial-gradient(40% 50% at 70% 30%,#d9cfc0,transparent 70%),linear-gradient(170deg,#7d8186,#3f4347)}
.s3{background:radial-gradient(50% 40% at 80% 25%,#ffb347,transparent 70%),linear-gradient(100deg,rgba(0,0,0,.55) 0 22%,transparent 22% 30%,rgba(0,0,0,.4) 30% 34%,transparent 34%),linear-gradient(180deg,#b56a2c,#3b2312)}
.s4{background:repeating-linear-gradient(100deg,rgba(255,255,255,.06) 0 1px,transparent 1px 7px),radial-gradient(25% 30% at 40% 70%,#e85d4a,transparent 70%),radial-gradient(30% 30% at 70% 60%,#3d8bd9,transparent 70%),linear-gradient(180deg,#1b2633,#0e141b)}
.s5{background:radial-gradient(35% 45% at 50% 60%,#f2e6d0,transparent 70%),linear-gradient(0deg,#232323 0 18%,transparent 18%),linear-gradient(180deg,#5c6b73,#2d3439)}

/* Butiran film halus, supaya foto dan latar tidak terasa plastik */
.grain::before{content:"";position:fixed;inset:-50%;z-index:80;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(4) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}}
/* Ken Burns pelan untuk foto besar */
.kb{animation:kb 18s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.1) translate(-1.5%,-1%)}}

/* ===== v4 ===== */
/* Placeholder yang lebih kalem: warna diturunkan, vignette, butiran. Tetap placeholder sampai foto asli masuk. */
:root{--noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.ph{background-blend-mode:normal}
.ph.s1{background:var(--noise),radial-gradient(120% 90% at 50% 40%,transparent 40%,rgba(0,0,0,.55)),radial-gradient(9% 7% at 30% 38%,rgba(240,170,90,.7),transparent),radial-gradient(6% 5% at 62% 30%,rgba(200,215,220,.55),transparent),radial-gradient(7% 6% at 74% 46%,rgba(220,120,90,.5),transparent),linear-gradient(0deg,#141414 0 26%,transparent 26%),linear-gradient(180deg,#1d2430,#2b2a2e 60%,#1a1a1c)}
.ph.s2{background:var(--noise),radial-gradient(120% 90% at 50% 45%,transparent 45%,rgba(0,0,0,.45)),linear-gradient(90deg,transparent 61%,rgba(0,0,0,.28) 61% 63%,transparent 63%),linear-gradient(0deg,#3a3936 0 22%,transparent 22%),linear-gradient(175deg,#a9a59c,#7c7a74 55%,#55534f)}
.ph.s3{background:var(--noise),radial-gradient(120% 90% at 50% 45%,transparent 40%,rgba(0,0,0,.5)),radial-gradient(45% 35% at 82% 22%,rgba(255,196,120,.75),transparent 70%),linear-gradient(100deg,rgba(20,12,6,.6) 0 20%,transparent 20% 28%,rgba(20,12,6,.45) 28% 31%,transparent 31%),linear-gradient(180deg,#a8743f,#5a3a1f 70%,#2d1d10)}
.ph.s4{background:var(--noise),radial-gradient(120% 90% at 50% 45%,transparent 40%,rgba(0,0,0,.5)),repeating-linear-gradient(100deg,rgba(255,255,255,.05) 0 1px,transparent 1px 8px),radial-gradient(10% 8% at 40% 66%,rgba(210,90,70,.55),transparent),radial-gradient(10% 8% at 66% 60%,rgba(90,140,200,.5),transparent),linear-gradient(180deg,#26303a,#1a2027 70%,#111519)}
.ph.s5{background:var(--noise),radial-gradient(120% 90% at 50% 45%,transparent 45%,rgba(0,0,0,.45)),radial-gradient(30% 40% at 50% 58%,rgba(235,225,205,.55),transparent 70%),linear-gradient(0deg,#262422 0 18%,transparent 18%),linear-gradient(180deg,#6d7479,#3f4549)}
.ph.p1{background:var(--noise),radial-gradient(120% 90% at 50% 45%,transparent 40%,rgba(0,0,0,.5)),radial-gradient(28% 34% at 46% 46%,rgba(46,110,120,.85),transparent 70%),radial-gradient(14% 18% at 50% 40%,rgba(30,70,140,.7),transparent 70%),radial-gradient(60% 60% at 20% 80%,rgba(70,96,52,.7),transparent 70%),linear-gradient(170deg,#2c3a24,#18221a)}
.ph.p2{background:var(--noise),radial-gradient(120% 90% at 50% 45%,transparent 40%,rgba(0,0,0,.5)),radial-gradient(30% 30% at 58% 44%,rgba(196,160,96,.75),transparent 70%),radial-gradient(70% 60% at 30% 80%,rgba(92,104,58,.75),transparent 70%),linear-gradient(180deg,#4a4a30,#23261a)}
.ph.p3{background:var(--noise),radial-gradient(120% 90% at 50% 45%,transparent 40%,rgba(0,0,0,.5)),radial-gradient(26% 30% at 50% 42%,rgba(150,160,150,.7),transparent 70%),radial-gradient(70% 70% at 70% 85%,rgba(56,86,64,.8),transparent 70%),linear-gradient(190deg,#3c4a3e,#1a231d)}
.ph.p5{background:var(--noise),radial-gradient(120% 90% at 50% 45%,transparent 40%,rgba(0,0,0,.5)),radial-gradient(40% 40% at 64% 36%,rgba(120,150,80,.75),transparent 70%),linear-gradient(170deg,#3a4628,#1c2416)}
.ph.p7{background:var(--noise),radial-gradient(120% 90% at 50% 45%,transparent 45%,rgba(0,0,0,.35)),radial-gradient(60% 50% at 50% 30%,rgba(220,226,228,.8),transparent 70%),linear-gradient(180deg,#9aa6ad,#5c676d)}
.ph.p8{background:var(--noise),radial-gradient(120% 90% at 50% 45%,transparent 40%,rgba(0,0,0,.5)),radial-gradient(36% 40% at 40% 50%,rgba(70,120,90,.8),transparent 70%),radial-gradient(18% 18% at 70% 40%,rgba(190,150,70,.6),transparent 70%),linear-gradient(150deg,#1e2a1f,#2a2616)}
.ph::after{font-size:10.5px;letter-spacing:.1em;color:rgba(255,255,255,.62)}

/* Header bersama v4: dua baris di HP, satu baris di desktop */
.hdr{position:fixed;left:0;right:0;top:0;z-index:30;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px 28px;padding:18px 28px}
.hdr .brand{font-weight:700;text-decoration:none;letter-spacing:-.01em}
.hdr .nav{justify-self:end;display:flex;gap:22px;font-size:14px}
.hdr .nav a{text-decoration:none;opacity:.62;transition:opacity .25s}
.hdr .nav a:hover,.hdr .nav a[aria-current="true"]{opacity:1}
.hdr .ctls{display:flex;gap:6px}
.hdr.blend{mix-blend-mode:difference;color:#fff}
.hdr.blend .ctl{border-color:rgba(255,255,255,.4)}
@media (max-width:700px){
  .hdr{grid-template-columns:1fr auto;padding:14px 16px;gap:10px}
  .hdr .nav{grid-column:1/-1;grid-row:2;justify-self:start;gap:18px;font-size:13.5px}
}
/* Garis bawah tautan yang tumbuh dari kiri */
.ul{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s var(--ease)}
.ul:hover,.ul:focus-visible{background-size:100% 1px}
/* Teks naik dari balik garis */
.ln{display:block;overflow:hidden;padding-bottom:.06em}
.ln>span{display:block;transform:translateY(108%);transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.in .ln>span,.ln.in>span{transform:none}
.lbl{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;opacity:.6}
@media (prefers-reduced-motion:reduce){.ln>span{transform:none}}
