:root{--paper:#f8f3f7;--card:#fffafd;--ink:#35203a;--ink2:#5d4764;--rule:#e6d3e6;--v:#c08ac4;--v2:#8a4a96;--soft:#f4e4f2;--gold:#f4cf8f;--pill:#35203a;--panel:#35203a;--bigfill:#f0e1f3;--orb1:#f4d9f5;--orb2:#d9b4de;--foot:#2a1630;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
:root[data-theme="dark"]{--paper:#170f1f;--card:#231630;--ink:#f6ecf8;--ink2:#cbb8d4;--rule:#3a2a48;--v2:#d9a8de;--soft:#2e1f3b;--pill:#4a2d56;--panel:#2d1b39;--bigfill:#2a1c38;--orb1:#5a3a6e;--orb2:#3d2650;--foot:#120a19;color-scheme:dark;}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(96px + env(safe-area-inset-top,0px));height:100%}
body{margin:0;min-height:100%;background:var(--foot);color:var(--ink);font:400 16px/1.65 "Instrument Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--paper);z-index:10}
a{color:inherit;text-decoration:none}h1,h2,h3,p,ul{margin:0}ul{padding:0;list-style:none}
.s{font-family:"Bricolage Grotesque",sans-serif;letter-spacing:-.03em}
:focus-visible{outline:2px solid var(--v2);outline-offset:3px;border-radius:6px}
.wrap{width:min(1180px,100% - 48px);margin-inline:auto}
section{padding-top:110px}
/* header */
.hd{position:fixed;z-index:50;top:env(safe-area-inset-top,0px);left:0;right:0;display:flex;justify-content:center;pointer-events:none}
.hd-in{pointer-events:auto;position:relative;width:min(1180px,100% - 48px);height:76px;display:flex;align-items:center;justify-content:space-between;gap:12px;transition:all .75s cubic-bezier(.7,0,.2,1)}
.hd.sc .hd-in{width:min(860px,100% - 24px);height:58px;margin-top:12px;padding:0 8px 0 20px;border-radius:99px;background:var(--pill);color:#fff;box-shadow:0 18px 44px -18px rgba(53,32,58,.6)}
.mark{font:700 19px "Bricolage Grotesque",sans-serif;letter-spacing:-.03em;display:flex;align-items:center;gap:9px;white-space:nowrap}
.mark i{width:12px;height:12px;border-radius:50% 50% 50% 0;background:var(--v);transform:rotate(-45deg)}
.mark .more{display:inline-block;max-width:240px;overflow:hidden;white-space:pre;vertical-align:bottom;transition:max-width .7s,opacity .4s}
.hd.sc .mark .more{max-width:0;opacity:0}
.nav{display:flex;gap:22px;font-weight:600;font-size:14px}.nav a{opacity:.7;transition:opacity .2s}.nav a:hover{opacity:1}
.hr{display:flex;align-items:center;gap:8px}
.pill{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 24px;border-radius:99px;background:var(--v);color:#2f1b36;font-weight:600;transition:transform .3s,background .3s}
.pill:hover{transform:translateY(-2px);background:#cf9ed3}.pill.o{background:none;border:1.5px solid currentColor}.pill.o:hover{background:rgba(192,138,196,.18)}
.hd .pill{height:40px;padding:0 18px;font-size:14px}
.ib{display:none;width:40px;height:40px;border-radius:50%;border:1px solid color-mix(in srgb,currentColor 22%,transparent);background:none;color:inherit;place-items:center;cursor:pointer}
.ib svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.bar{position:absolute;left:22px;right:22px;bottom:0;height:2px;background:var(--v);transform-origin:left;transform:scaleX(0);opacity:0;transition:opacity .4s}.hd.sc .bar{opacity:1}
/* main */
main{position:relative;z-index:1;background:var(--paper);border-radius:0 0 44px 44px;padding-bottom:120px;box-shadow:0 40px 80px -40px rgba(30,5,60,.5);}
.orb{position:absolute;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--orb1),var(--orb2));opacity:.55;pointer-events:none;z-index:0}
/* hero */
.hero{position:relative;height:800px;overflow:hidden;padding:0}
.stage{display:contents}
.big{position:absolute;top:120px;left:0;right:0;text-align:center;font:700 clamp(150px,27vw,360px)/.9 "Bricolage Grotesque",sans-serif;letter-spacing:-.06em;color:var(--bigfill);-webkit-text-stroke:2px var(--v);user-select:none}
.me{position:absolute;bottom:0;left:50%;margin-left:-190px;height:700px;width:auto}
.l{position:absolute;left:max(24px,calc(50% - 590px));bottom:56px;width:292px;z-index:2}
.ub{display:grid;place-items:center;width:148px;height:56px;background:#fff;border:1px solid var(--rule);border-radius:16px;padding:8px 14px;margin-bottom:16px}.ub img{display:block;max-width:100%;max-height:40px;width:auto;height:auto;object-fit:contain}
.l .nm{font:600 22px "Bricolage Grotesque",sans-serif;letter-spacing:-.02em;margin-bottom:8px}.l p{color:var(--ink2)}
.l .pill{margin-top:20px}.l .lede{font-size:14.5px;line-height:1.65;font-weight:400;color:var(--ink2)}
/* shared */
.k{display:flex;align-items:center;gap:14px;font-size:14px;font-weight:600;color:var(--v2)}.k::after{content:"";flex:1;height:1px;background:var(--rule)}
h2{font:700 clamp(38px,5.4vw,72px)/1 "Bricolage Grotesque",sans-serif;letter-spacing:-.035em;margin:24px 0 48px;max-width:16ch}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.cols b{font:600 21px "Bricolage Grotesque",sans-serif;letter-spacing:-.02em;display:block;margin-bottom:10px}.cols p{color:var(--ink2)}
/* pengalaman */
.xp{position:relative;z-index:1;padding:44px 0;border-top:1px solid var(--rule)}.xp:last-child{border-bottom:1px solid var(--rule)}
.xh{display:flex;align-items:center;gap:22px;margin-bottom:30px}
.lg{flex:none;width:148px;height:72px;background:#fff;border:1px solid var(--rule);border-radius:18px;display:grid;place-items:center;padding:10px 14px}.lg img{display:block;max-width:100%;max-height:52px;width:auto;height:auto;object-fit:contain}
.xh p{font-weight:600;color:var(--v2);font-size:14px}.xh h3{font:700 clamp(26px,3.2vw,40px)/1.05 "Bricolage Grotesque",sans-serif;letter-spacing:-.03em;margin-top:4px}
.xb{display:grid;grid-template-columns:1fr 400px;gap:56px;align-items:start}
.xb ul{display:grid;gap:14px}.xb li{position:relative;padding-left:22px;color:var(--ink2)}.xb li::before{content:"";position:absolute;left:0;top:.65em;width:8px;height:8px;border-radius:50%;background:var(--v)}
/* slider */
.sl{position:relative;border-radius:26px;overflow:hidden;background:var(--soft);aspect-ratio:4/3;touch-action:pan-y}
.tr{display:flex;height:100%;transition:transform .7s cubic-bezier(.65,0,.25,1)}.tr img{flex:0 0 100%;width:100%;height:100%;object-fit:cover}
.nv{position:absolute;top:50%;margin-top:-20px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,250,253,.92);color:#35203a;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 20px -8px rgba(0,0,0,.4)}
.nv svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pv{left:10px}.nx{right:10px}
.dt{position:absolute;left:0;right:0;bottom:6px;display:flex;justify-content:center}
.dt button{width:22px;height:22px;border:0;background:none;padding:0;position:relative;cursor:pointer}.dt button::after{content:"";position:absolute;inset:7px;border-radius:50%;background:rgba(255,255,255,.6);box-shadow:0 0 0 1px rgba(53,32,58,.25)}.dt button[aria-current=true]::after{inset:5px;background:#fff}
/* proyek, sertifikat, organisasi */
.zm{display:block;width:100%;padding:0;border:0;background:var(--soft);cursor:zoom-in}.zm img{display:block;width:100%;height:auto}
.tg{display:grid;position:relative;overflow:hidden;transition:border-color .3s}.tg:hover{border-color:currentColor}
.tg svg{grid-area:1/1;transition:transform .55s cubic-bezier(.2,.8,.2,1),opacity .35s}
.tg .sun{opacity:0;transform:rotate(-90deg) scale(.5)}[data-theme="dark"] .tg .sun{opacity:1;transform:none}[data-theme="dark"] .tg .moon{opacity:0;transform:rotate(90deg) scale(.5)}
::view-transition-old(root),::view-transition-new(root){animation-duration:.5s;animation-timing-function:cubic-bezier(.4,0,.2,1)}
html.tt *,html.tt *::before,html.tt *::after{transition:background-color .5s,color .5s,border-color .5s,fill .5s,stroke .5s,-webkit-text-stroke-color .5s!important}
/* band */
.band{margin-top:90px;padding:26px 0;border-block:1px solid var(--ink);overflow:hidden;white-space:nowrap}.band.b2{margin-top:0;border-top:0;background:var(--v);color:#2f1b36}
.row{display:inline-flex;gap:48px;align-items:center;font:700 clamp(40px,6vw,88px)/1 "Bricolage Grotesque",sans-serif;letter-spacing:-.02em;animation:mq 42s linear infinite;will-change:transform}.b2 .row{animation-direction:reverse;animation-duration:50s}
.row span:nth-of-type(odd){color:transparent;-webkit-text-stroke:1.4px var(--ink)}
.row i{width:.32em;height:.32em;border-radius:50%;background:var(--v2);flex:none}.row i:nth-of-type(3n+2){background:var(--gold)}.row i:nth-of-type(3n){background:var(--v)}.b2 .row i{background:var(--ink)}.b2 .row i:nth-of-type(3n+2){background:#fff}
@keyframes mq{to{transform:translateX(-50%)}}
.lead{font:600 clamp(26px,3.4vw,46px)/1.28 "Bricolage Grotesque",sans-serif;letter-spacing:-.025em;max-width:28em;margin-top:28px}.lead em{font-style:normal;color:var(--v2)}
/* orbit logo */
.me{z-index:1}.big{z-index:0}
.oc{position:absolute;left:calc(50% - 28px);bottom:292px;width:56px;height:56px;border-radius:50%;background:var(--card);border:1px solid var(--rule);display:grid;place-items:center;box-shadow:0 12px 26px -12px rgba(53,32,58,.55);will-change:translate,scale}.oc img{width:32px;height:32px;object-fit:contain}.oc span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.js .oc{animation:grow 1.2s cubic-bezier(.3,1.5,.4,1) both;animation-delay:calc(1s + var(--c,0)*.13s)}@keyframes grow{from{opacity:0;transform:scale(.1)}to{opacity:1;transform:scale(1)}}
/* tumpukan kartu */
.stack{display:grid;gap:28px;padding-bottom:20px}
.pcard{position:sticky;top:calc(108px + var(--i,0)*18px);min-height:min(500px,74vh);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:44px;padding:44px 52px;border-radius:36px;background:var(--card);border:1px solid var(--rule);box-shadow:0 -20px 60px -40px rgba(53,32,58,.45);overflow:hidden;color:var(--ink)}
.pcard.mv{background:var(--v);border-color:transparent;color:#2f1b36}.pcard.ink{background:var(--panel);color:#f6ecf8;border-color:transparent}
.pcard .no{font-size:13px;font-weight:600;opacity:.7;margin-bottom:14px}.pcard h3{font:700 clamp(26px,3vw,40px)/1.05 "Bricolage Grotesque",sans-serif;letter-spacing:-.03em;margin-bottom:14px}
.pcard p{max-width:44ch;opacity:.88}.pcard small{display:block;margin-top:10px;opacity:.7;font-size:13px}.pcard .pill{margin-top:20px;height:46px}.pcard.ink .pill{background:var(--v)}.pcard.mv .pill{background:var(--ink);color:#fff}
.pcard .zm{border-radius:20px;overflow:hidden;box-shadow:0 24px 44px -30px rgba(0,0,0,.55)}
/* footer */
.foot{position:sticky;bottom:0;z-index:0;background:#2a1630;color:#f4e4f2;padding:100px 0 0;overflow:hidden;--fa:#d9a8de}
.foot .k{color:rgba(244,228,242,.65)}.foot .k::after{background:rgba(244,228,242,.16)}
.fg{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:end;margin:28px 0 52px}
.foot h2{font-size:clamp(46px,7vw,104px);line-height:.95;margin:0;max-width:none;color:#fff}.foot h2 em{font-style:normal;color:var(--fa)}
.fs p{color:rgba(244,228,242,.78);margin-bottom:18px;max-width:38ch}
.fm{display:flex;gap:8px;padding:6px;border:1px solid rgba(244,228,242,.22);border-radius:99px}.fm input{flex:1;min-width:0;background:none;border:0;color:#fff;font:inherit;padding:0 16px;outline:none}.fm input::placeholder{color:rgba(244,228,242,.55)}
.fm button{height:46px;padding:0 24px;border:0;border-radius:99px;background:var(--fa);color:#2a1630;font:600 15px "Instrument Sans",sans-serif;cursor:pointer}
.fk{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fl.wide{grid-column:1/-1}
.fl{display:flex;align-items:center;gap:12px;height:58px;padding:0 20px 0 9px;border-radius:99px;border:1px solid rgba(244,228,242,.18);color:rgba(244,228,242,.9);transition:border-color .25s,color .25s}
.fl .fi{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(244,228,242,.1);transition:background .25s,color .25s}.fl .fi svg{width:18px;height:18px}.fl .fi .ic{fill:none}
.fl .tx{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fl .ar{margin-left:auto;flex:none;opacity:.65;width:15px;height:15px;transition:transform .3s}
.fl:hover{border-color:var(--fa);color:#fff}.fl:hover .fi{background:var(--fa);color:#2a1630}.fl:hover .ar{transform:translate(2px,-2px)}
.fb{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:44px;padding:22px 0;border-top:1px solid rgba(244,228,242,.14);font-size:14px;color:rgba(244,228,242,.72)}.fb a:hover{color:#fff}
.fw{height:clamp(60px,9vw,150px);overflow:hidden}.fw span{display:block;font:700 clamp(90px,18vw,280px)/1 "Bricolage Grotesque",sans-serif;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px rgba(244,228,242,.24);white-space:nowrap;text-align:center}
/* menu mobile */
.l1,.l2{transform-origin:12px 12px;transition:transform .5s cubic-bezier(.7,0,.2,1)}#mb[aria-expanded=true] .l1{transform:translateY(4px) rotate(45deg)}#mb[aria-expanded=true] .l2{transform:translateY(-4px) rotate(-45deg)}
.og{border-top:1px solid var(--rule)}.og li{display:grid;grid-template-columns:190px 1fr;gap:16px;padding:22px 0;border-bottom:1px solid var(--rule)}
.og time{font:700 24px "Bricolage Grotesque",sans-serif;letter-spacing:-.03em;color:var(--v2)}.og b{display:block;font:600 19px "Bricolage Grotesque",sans-serif;letter-spacing:-.02em}.og span{color:var(--ink2)}
dialog{border:0;padding:0;background:none;max-width:min(1100px,94vw);overflow:visible}dialog::backdrop{background:rgba(30,10,40,.8)}dialog img{display:block;width:100%;max-height:86vh;object-fit:contain;border-radius:16px;background:#fff}
dialog .x{position:absolute;top:-48px;right:0;width:40px;height:40px;border-radius:50%;border:0;background:#fff;color:#35203a;font-size:24px;line-height:1;cursor:pointer}
.ic{width:1em;height:1em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.14em}
.pill .ic{width:17px;height:17px;transition:transform .3s}.pill:hover .ic.ar{transform:translate(2px,-2px)}
.cols{gap:20px}.cols>div{padding:26px;border:1px solid var(--rule);border-radius:24px;background:var(--card);transition:translate .4s,border-color .4s}.cols>div:hover{translate:0 -4px;border-color:var(--v)}
.bi{width:46px;height:46px;border-radius:14px;background:var(--soft);color:var(--v2);display:grid;place-items:center;margin-bottom:16px}.bi .ic{width:22px;height:22px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:56px;padding-top:36px;border-top:1px solid var(--rule)}
.stats b{display:block;font:700 clamp(44px,6vw,76px)/1 "Bricolage Grotesque",sans-serif;letter-spacing:-.04em;color:var(--v2)}.stats span{color:var(--ink2);font-size:15px}
.xh p .ic,.pb .k2 .ic,.cf figcaption .ic{margin-right:6px}.og b .ic{margin-right:8px;color:var(--v2)}
/* gerak */
.split .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em;margin-bottom:-.12em}
.js .split .i{display:inline-block;transform:translate3d(0,110%,0) rotate(4deg);transform-origin:left bottom;transition:transform 1.1s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--d)*65ms)}.js .split.in .i{transform:none}
.js .rv{opacity:0;transform:translateY(26px);transition:opacity 1s cubic-bezier(.2,.8,.2,1),transform 1s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--s,0)*90ms)}.js .rv.in{opacity:1;transform:none}
.js .rm{clip-path:inset(0 0 100% 0 round var(--r,0px));transition:clip-path 1.3s cubic-bezier(.7,0,.2,1)}.js .rm.in{clip-path:inset(0 0 0 0 round var(--r,0px))}
.js .rm img{transform:scale(1.2);transition:transform 1.9s cubic-bezier(.2,.8,.2,1)}.js .rm.in img{transform:none}.sl{--r:26px}
.js .big .ch{display:inline-block;animation:chIn 1.1s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--c)*90ms + .1s)}
.js .me{animation:meIn 1.5s .35s cubic-bezier(.7,0,.2,1) both}
.js .l{animation:up .9s .8s cubic-bezier(.2,.8,.2,1) both}.js .hd{animation:hdIn .9s cubic-bezier(.2,.8,.2,1) both}
@keyframes chIn{from{opacity:0;transform:translateY(45%) rotate(5deg)}}@keyframes meIn{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes pop{from{opacity:0;transform:translateY(18px) scale(.9)}}@keyframes up{from{opacity:0;transform:translateY(22px)}}@keyframes hdIn{from{opacity:0;transform:translateY(-16px)}}
h2.h-tentang{max-width:20ch}h2.h-tentang em{font-style:normal;color:var(--v2)}
/* video profil */
.profil{padding-top:100px}
.profil-in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:56px;align-items:center}
.profil-k{font-size:14px;font-weight:600;color:var(--v2)}
.profil-text h2{margin:18px 0 16px}
.profil-text p{color:var(--ink2);max-width:38ch}
.profil-video{position:relative;border-radius:26px;overflow:hidden;border:1px solid var(--rule);background:var(--soft);aspect-ratio:16/9;box-shadow:0 40px 80px -50px rgba(53,32,58,.55)}
.profil-video video{display:block;width:100%;height:100%;object-fit:cover}
.profil-play{position:absolute;left:20px;bottom:20px;display:inline-flex;align-items:center;gap:12px;padding:12px 22px 12px 12px;border:0;border-radius:99px;background:var(--pill);color:#fff;font:600 15px "Instrument Sans",sans-serif;cursor:pointer;box-shadow:0 16px 40px -10px rgba(30,5,60,.5);transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .3s}
.profil-play svg{width:28px;height:28px;padding:5px;border-radius:50%;background:var(--v);color:#2f1b36}
.profil-play:hover{transform:scale(1.04)}
.profil-video.playing .profil-play{opacity:0;pointer-events:none}
/* kontak */
@media(max-width:1180px){
.hero{height:auto;display:flex;flex-direction:column;align-items:center;padding:104px 24px 40px}
.big{position:relative;top:auto;font-size:33vw}
.stage{display:block;position:relative;width:min(340px,100%);margin:-20vw auto 0}
.me{position:relative;left:auto;margin:0 auto;display:block;height:auto;width:min(290px,78vw)}
.oc{bottom:auto;top:calc(44% - 26px);left:calc(50% - 26px);width:52px;height:52px}.oc img{width:30px;height:30px}
.l{position:static;max-width:420px;width:100%;margin-top:26px}
}
@media(max-width:900px){
section{padding-top:84px}
.nav{display:grid;position:fixed;left:12px;right:12px;top:calc(76px + env(safe-area-inset-top,0px));background:var(--pill);color:#fff;padding:14px 22px;border-radius:24px;gap:0;font-size:22px;z-index:60;visibility:hidden;clip-path:inset(0 0 100% 0 round 24px);transform:translateY(-10px);transition:clip-path .65s cubic-bezier(.7,0,.2,1),transform .65s cubic-bezier(.2,.8,.2,1),visibility 0s .65s}
.nav.open{visibility:visible;clip-path:inset(0 0 0 0 round 24px);transform:none;transition-delay:0s}
.nav a{opacity:0;transform:translateY(14px);padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12);transition:opacity .45s,transform .6s cubic-bezier(.2,.8,.2,1)}.nav a:last-child{border-bottom:0}
.nav.open a{opacity:1;transform:none}.nav.open a:nth-child(1){transition-delay:.14s}.nav.open a:nth-child(2){transition-delay:.2s}.nav.open a:nth-child(3){transition-delay:.26s}.nav.open a:nth-child(4){transition-delay:.32s}.nav.open a:nth-child(5){transition-delay:.38s}
.hd .pill{display:none}.ib{display:grid}
.pcard{top:calc(84px + var(--i,0)*12px);grid-template-columns:1fr;padding:20px;gap:18px;min-height:0;border-radius:28px}.pcard>button{order:-1}
.foot{position:relative;padding-top:80px}.fg,.fk{grid-template-columns:1fr}
.og li{grid-template-columns:1fr;gap:4px}
.profil-in{grid-template-columns:minmax(0,1fr);gap:24px}.profil-play span{display:none}.profil-play{padding:12px}
.cols{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.xb{grid-template-columns:1fr;gap:28px}.xh{flex-direction:column;align-items:flex-start;gap:16px}.lg{width:124px;height:60px}.lg img{max-height:40px}
}
@media(prefers-reduced-motion:reduce){.nav,.nav a{transition:none}.row{animation:none}html{scroll-behavior:auto}.tr{transition:none}}
