/* Alicia T. Aprilia Gunawan — editorial monochrome */
:root{
  --ink:#0d0d0d; --paper:#f4f3ee; --line:#1a1a1a; --soft:#5a5a55; --faint:#8d8d86;
  --card:#faf9f5; --accent:#0d0d0d; --maxw:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Inter",system-ui,sans-serif;background:var(--paper);color:var(--ink);
  line-height:1.55;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,.disp{font-family:"Archivo",Helvetica,sans-serif;}
a{color:inherit;text-decoration:none}
main[aria-busy="true"]{opacity:0}
main{opacity:1;transition:opacity .3s ease}

/* topbar */
.topbar{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;
  padding:14px 28px;background:rgba(244,243,238,.88);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.tb-name{font-family:"Archivo";font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:.92rem}
.tb-nav{display:flex;gap:22px;align-items:center;font-size:.86rem;font-weight:500}
.tb-nav a:hover{opacity:.55}
.tb-cv{border:1.5px solid var(--ink);border-radius:2px;padding:7px 14px;font-weight:600}
.tb-cv:hover{background:var(--ink);color:var(--paper);opacity:1}
@media(max-width:680px){.tb-nav a:not(.tb-cv){display:none}}

/* lang toggle */
.tb-lang{border:1.5px solid var(--ink);background:transparent;color:var(--ink);border-radius:2px;
  padding:7px 12px;font:inherit;font-weight:700;font-size:.82rem;cursor:pointer;letter-spacing:.04em}
.tb-lang:hover{background:var(--ink);color:var(--paper)}

/* hero */
.hero{max-width:var(--maxw);margin:0 auto;padding:90px 28px 64px}
.hero-photo{width:130px;height:130px;border-radius:50%;overflow:hidden;border:2px solid var(--ink);margin-bottom:28px;background:#e4e3dc}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(100%) contrast(1.03)}
.kicker{font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--soft);font-weight:600}
.bigname{font-weight:900;text-transform:uppercase;letter-spacing:-.02em;
  font-size:clamp(2.8rem,9vw,7rem);line-height:.95;margin:14px 0 26px}
.roles{list-style:none;display:flex;flex-direction:column;gap:6px;margin-bottom:26px;max-width:60ch}
.roles li{font-weight:600;font-size:clamp(.95rem,1.6vw,1.15rem);padding-left:18px;position:relative}
.roles li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:1.5px;background:var(--ink)}
.summary{max-width:62ch;font-size:1.08rem;color:var(--soft);margin-bottom:30px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}

.btn{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);
  padding:13px 24px;border-radius:2px;font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .15s,background .15s,color .15s}
.btn:hover{transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--paper)}
.btn--big{padding:16px 30px;font-size:1.05rem;margin-top:24px}

/* blocks */
.block{max-width:var(--maxw);margin:0 auto;padding:48px 28px;border-top:1px solid var(--line)}
.block-head{display:flex;flex-direction:column;gap:6px;margin-bottom:26px}
.eyebrow{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--soft);font-weight:600}
.block-title{font-weight:900;text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(2rem,5vw,3.4rem);line-height:1}

/* filters */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.chip{border:1.5px solid var(--line);background:transparent;color:var(--ink);border-radius:999px;
  padding:6px 14px;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;transition:all .15s}
.chip:hover{background:rgba(0,0,0,.06)}
.chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* card grid */
.grid{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line)}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid{grid-template-columns:1fr}}
.card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 22px 20px;
  display:flex;flex-direction:column;min-height:230px;background:transparent;transition:background .15s}
.card:hover{background:var(--card)}
.card .c-date{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:10px}
.card .c-title{font-family:"Archivo";font-weight:800;text-transform:uppercase;letter-spacing:-.01em;
  font-size:1.32rem;line-height:1.02;margin-bottom:8px}
.card .c-org{font-size:.9rem;font-weight:600;color:var(--ink);margin-bottom:10px}
.card .c-body{font-size:.9rem;color:var(--soft);margin-bottom:16px;flex:1}
.card .c-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.card .c-tags span{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);
  border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-weight:600}
.card.hide{display:none}

/* about: skills + edu */
.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px}
@media(max-width:760px){.about-grid{grid-template-columns:1fr;gap:36px}}
.sub{font-family:"Archivo";font-weight:800;text-transform:uppercase;font-size:1.05rem;letter-spacing:.02em;margin-bottom:16px}
.skill-group{margin-bottom:22px}
.skill-group h4{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:700;margin-bottom:10px}
.chips2{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.chips2 li{border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:.84rem;font-weight:500}
.edu-list{list-style:none;display:flex;flex-direction:column}
.edu-list li{padding:14px 0;border-bottom:1px solid var(--line)}
.edu-list li:first-child{border-top:1px solid var(--line)}
.edu-list .er{font-family:"Archivo";font-weight:700;font-size:1rem}
.edu-list .eo{font-size:.88rem;color:var(--soft)}
.edu-list .ed{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-top:3px}

/* contact */
.block--contact{padding-bottom:40px}
.contact-list{list-style:none;display:grid;gap:0;max-width:760px;border-top:1px solid var(--line)}
.contact-list li{display:grid;grid-template-columns:160px 1fr;gap:16px;align-items:baseline;
  padding:16px 0;border-bottom:1px solid var(--line)}
.contact-list .cl{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:700}
.contact-list a,.contact-list span.cv{font-family:"Archivo";font-weight:700;font-size:1.15rem;word-break:break-word}
.contact-list a:hover{text-decoration:underline}
@media(max-width:540px){.contact-list li{grid-template-columns:1fr;gap:4px}}

.foot{max-width:var(--maxw);margin:0 auto;padding:28px;display:flex;justify-content:space-between;
  border-top:1px solid var(--line);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600}
