
/* portfolio */
.nav a[aria-current="page"]{background-size:100% 1.5px;color:var(--ink)}
.pf-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(1.5rem,4vw,4rem);align-items:center}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.5rem;margin-top:2rem}
.photo-wrap{position:relative;max-width:460px;width:100%;justify-self:end}
.photo{position:relative;aspect-ratio:4/5;max-width:100%;border-radius:30px;overflow:hidden;background:linear-gradient(155deg,#E6E1F7,#F8DCC0)}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo-wrap .ball{position:absolute;top:-22px;right:-14px;width:68px;height:68px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFD29A,#F39A30 45%,#D9650C);box-shadow:0 16px 30px -12px rgba(217,101,12,.6)}
.photo-badge{position:absolute;left:1rem;bottom:1rem;right:1rem;display:flex;align-items:center;gap:.75rem;background:rgba(245,243,238,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:.75rem .9rem;font-size:.8125rem;line-height:1.35;color:var(--text)}
.photo-badge i{width:34px;height:34px;flex:none;background:var(--logo) center/contain no-repeat}
.photo-badge b{display:block;color:var(--ink);font-size:.9375rem}
@media (max-width:900px){.pf-grid{grid-template-columns:1fr}.photo-wrap{justify-self:start;max-width:420px}.photo-wrap .ball{right:10px;top:-20px;width:54px;height:54px}}

.about2{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,5rem)}
.prose{display:grid;gap:1.1rem;max-width:40em;font-size:1.125rem;line-height:1.65}
.prose p:first-child::first-letter{font-family:var(--serif);font-style:italic;font-size:3.4em;float:left;line-height:.85;margin:.06em .12em 0 0;color:var(--orange)}
@media (max-width:900px){.about2{grid-template-columns:1fr}}

.domains{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;align-items:start}
.domain{background:var(--card);border:1px solid var(--line);border-radius:26px;padding:clamp(1.4rem,2.8vw,2.1rem);display:flex;flex-direction:column;gap:1rem;min-width:0}
.domain .num{font-size:.875rem;font-weight:700;color:var(--orange-text);font-variant-numeric:tabular-nums;letter-spacing:.04em}
.domain h3{font-size:clamp(1.4rem,2.2vw,1.75rem);letter-spacing:-.025em}
.domain p{font-size:.9375rem;line-height:1.6}
.domain .sub{color:var(--muted)}
.domain .media{margin-top:auto;padding-top:.5rem}
.ticks{list-style:none;padding:0;display:grid;gap:.55rem}
.ticks li{position:relative;padding-left:1.2rem;font-size:.9375rem;line-height:1.55}
.ticks li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--orange)}
.ticks strong{color:var(--ink);font-weight:600}
@media (max-width:900px){.domains{grid-template-columns:1fr}}

.ph{position:relative;display:grid;place-items:center;aspect-ratio:var(--ar,16/10);width:100%;max-width:100%;border-radius:18px;overflow:hidden;background:linear-gradient(140deg,#E8E3F7 0%,#F3EBE2 55%,#F7DCC2 100%)}
.ph::before{content:"";position:absolute;inset:0;background:radial-gradient(rgba(21,24,59,.08) 1px,transparent 1.2px) 0 0/14px 14px}
.ph--cool{background:linear-gradient(140deg,#DCE8F8 0%,#E8E3F7 60%,#EFE9F3 100%)}
.ph--ink{background:linear-gradient(150deg,#262B66,#15183B)}
.ph--ink::before{background:radial-gradient(rgba(245,243,238,.09) 1px,transparent 1.2px) 0 0/14px 14px}
.ph span{position:relative;display:inline-flex;align-items:center;gap:.45rem;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);background:rgba(255,255,255,.75);padding:.45rem .75rem;border-radius:999px;text-align:center}
.ph--ink span{background:rgba(245,243,238,.12);color:var(--on-ink-muted)}
.ph.tall{--ar:3/4;max-width:300px}
.ph.square{--ar:1/1;max-width:320px}
.ph figcaption{position:absolute;right:.75rem;bottom:.6rem;font-size:.6875rem;color:var(--muted)}
.shot{position:relative;aspect-ratio:var(--ar,16/10);width:100%;max-width:100%;border-radius:18px;overflow:hidden;background:var(--paper-2)}
.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.shot.logo{background:#fff;border:1px solid var(--line)}
.shot.logo img{object-fit:contain;padding:10%;box-sizing:border-box}
.shot figcaption{position:absolute;left:.6rem;bottom:.5rem;font-size:.6875rem;color:#fff;background:rgba(21,24,59,.55);padding:.2rem .45rem;border-radius:6px}
.qr{display:grid;gap:.6rem;justify-items:start;max-width:220px}
.qr img{width:100%;height:auto;border-radius:16px;border:1px solid var(--line)}
.qr p{font-size:.8125rem;color:var(--muted);line-height:1.4}
@media (min-width:981px){.tl-item>.tl-body:last-child{grid-column:2/-1;max-width:48rem}}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.vid{display:flex;align-items:center;gap:.85rem;padding:.9rem 1.1rem;border-radius:16px;background:var(--ink);color:var(--on-ink);text-decoration:none;max-width:360px;transition:transform .2s}
.vid:hover{transform:translateY(-2px)}
.vid i{width:42px;height:42px;flex:none;border-radius:50%;background:var(--orange);color:var(--ink);display:grid;place-items:center}
.vid b{display:block;font-weight:600;font-size:.9375rem}
.vid small{display:block;color:var(--on-ink-muted);font-size:.8125rem}
.docs{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0}
.doc{display:inline-flex;align-items:center;gap:.6rem;padding:.6rem .85rem;border-radius:12px;border:1px solid var(--line);background:var(--card);text-decoration:none;color:var(--ink);font-size:.875rem;font-weight:600;line-height:1.25;transition:border-color .2s,transform .2s}
.doc:hover{border-color:var(--ink);transform:translateY(-1px)}
.doc svg{flex:none;color:var(--orange-text)}
.doc small{display:block;font-weight:500;color:var(--muted);font-size:.75rem}
.on-ink .doc{background:var(--ink-card);border-color:var(--ink-line);color:var(--on-ink)}
.on-ink .doc small{color:var(--on-ink-muted)}

.filters{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.5rem}
.filters button{font:500 .875rem/1 var(--font);padding:.65rem 1rem;border-radius:999px;border:1.5px solid var(--line-2);background:transparent;color:var(--ink-2);cursor:pointer;transition:all .2s;display:inline-flex;gap:.45rem;align-items:center}
.filters button:hover{border-color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.filters small{font-size:.75rem;opacity:.7;font-variant-numeric:tabular-nums}
.tl{list-style:none;padding:0;border-bottom:1px solid var(--line)}
.tl-item{display:grid;grid-template-columns:8rem minmax(0,1fr) minmax(0,.72fr);gap:1.5rem clamp(1.5rem,3vw,3rem);padding-block:2.25rem;border-top:1px solid var(--line);align-items:start}
.tl-year{font-size:1.375rem;font-weight:700;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.2}
.tl-year span{color:var(--orange)}
.tl-body{display:grid;gap:.85rem;min-width:0}
.tl-body h3{font-size:clamp(1.3rem,2vw,1.6rem);letter-spacing:-.025em}
.tl-meta{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-text);margin-top:-.25rem}
.tl-body p{font-size:.9375rem;line-height:1.65}
.tl-body a.inl{color:var(--ink);font-weight:600;text-decoration-color:var(--orange);text-underline-offset:3px}
.tl-media{min-width:0;display:grid;justify-items:start}
.tl-tags{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;padding:0}
.tl-tags li{font-size:.75rem;padding:.25rem .55rem;border-radius:6px;background:var(--paper-2);color:var(--ink-2)}
@media (max-width:980px){.tl-item{grid-template-columns:minmax(0,1fr);gap:1rem}.tl-media{max-width:440px}}

.research{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,5rem)}
.research .ph{margin-top:2rem}
.art{padding-block:1.6rem;border-top:1px solid var(--ink-line);display:grid;gap:.85rem}
.art:last-child{border-bottom:1px solid var(--ink-line)}
.art h3{font-size:1.375rem}
.art p{font-size:.9375rem;line-height:1.7}
@media (max-width:900px){.research{grid-template-columns:1fr}}

.edu-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,5rem)}
.edu-grid .lead2{margin-top:1rem;max-width:30em}
.edu-grid .docs{margin-top:1.5rem}
.edu{list-style:none;padding:0;border-top:1px solid var(--line)}
.edu li{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:1rem;padding:1.05rem 0;border-bottom:1px solid var(--line)}
.edu .y{font-variant-numeric:tabular-nums;font-weight:700;color:var(--orange-text);font-size:.9375rem}
.edu b{display:block;color:var(--ink);font-weight:600;font-size:1.0625rem;line-height:1.35}
.edu span{font-size:.9375rem;color:var(--muted)}
@media (max-width:900px){.edu-grid{grid-template-columns:1fr}}

.create{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.create p{margin-top:1rem;max-width:30em}
.create .docs{margin-top:1.5rem}
@media (max-width:900px){.create{grid-template-columns:1fr}}

.cta{text-align:center;display:grid;justify-items:center;gap:1.5rem}
.cta h2{font-size:clamp(2.2rem,5.4vw,4.6rem);letter-spacing:-.04em;max-width:16em}
.cta .row{display:flex;flex-wrap:wrap;justify-content:center;gap:.9rem 1.5rem;align-items:center}
