/* lukashensel.com — Ledger
   Self-hosted fonts, no external requests. */

@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;
  src:url("/assets/fonts/source-serif-4-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;
  src:url("/assets/fonts/source-serif-4-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;
  src:url("/assets/fonts/source-serif-4-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:700;font-display:swap;
  src:url("/assets/fonts/source-serif-4-latin-700-normal.woff2") format("woff2")}

:root{
  --paper:#FFFDFB; --tint:#FBF8F4; --ink:#1B1714; --ink-2:#4A423B; --muted:#6E645A;
  --faint:#9A8F84; --rule:#E3DCD2; --rule-2:#EFE9E1;
  --accent:#7A2E2E; --accent-2:#DBBFBF; --accent-3:#C9A5A5; --accent-bg:#FBF4F4;
  --serif:"Source Serif 4",Georgia,"Songti SC","Noto Serif CJK SC","Noto Serif SC",STSong,serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
:lang(zh){line-height:1.78}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--paper);padding:8px 14px;border:1px solid var(--rule);z-index:99}

/* header */
.head{position:sticky;top:0;z-index:5;background:rgba(255,253,251,.96);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--rule);display:flex;align-items:baseline;
  justify-content:space-between;gap:20px;padding:16px 34px}
.name{font-size:19px;font-weight:700;letter-spacing:-.012em;white-space:nowrap;text-decoration:none}
.right{display:flex;align-items:center;gap:20px}
.nav{display:flex;gap:22px}
.nav a{text-decoration:none;font-size:15px;color:var(--ink-2);padding-bottom:3px;
  border-bottom:1.5px solid transparent;white-space:nowrap}
.nav a:hover{color:var(--ink)}
.nav a[aria-current="page"]{color:var(--accent);border-bottom-color:var(--accent)}
.lang{display:inline-flex;border:1px solid var(--rule);border-radius:4px;overflow:hidden;flex:0 0 auto}
.lang a{text-decoration:none;background:var(--tint);font-size:12px;letter-spacing:.06em;
  padding:3px 9px;color:var(--muted);line-height:1.55}
.lang a+a{border-left:1px solid var(--rule)}
.lang a[aria-current="true"]{background:var(--accent);color:var(--paper)}
@media (max-width:640px){
  .head{flex-direction:column;align-items:stretch;gap:11px;padding:14px 0 0}
  .name{text-align:center;font-size:20px;padding:0 18px}
  .right{flex-direction:column;gap:9px}
  .nav{order:1;gap:2px 20px;flex-wrap:wrap;justify-content:center;padding:0 16px 4px}
  .nav a{font-size:15px;padding:2px 0 7px;border-bottom-width:2px}
  .lang{order:2;align-self:center;margin-bottom:8px}
}

/* body */
main{max-width:730px;margin:0 auto;padding:36px 34px 20px}
@media (max-width:640px){main{padding:24px 18px 16px}}
.lbl{font-size:11px;letter-spacing:.19em;text-transform:uppercase;color:var(--faint);
  font-weight:600;margin:0 0 12px}
h1{font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1.18;margin:0 0 18px;text-wrap:balance}
@media (max-width:640px){h1{font-size:25px}}
p{margin:0 0 15px}
hr{border:0;border-top:1px solid var(--rule);margin:32px 0}
.shot{width:120px;height:150px;float:right;margin:5px 0 16px 22px;border:1px solid var(--rule);
  object-fit:cover;background:var(--tint)}
@media (max-width:640px){.shot{float:none;display:block;margin:0 auto 20px;width:136px;height:170px}}
.drop::first-letter{float:left;font-size:52px;line-height:.82;font-weight:700;padding:5px 9px 0 0;color:var(--accent)}
:lang(zh) .drop::first-letter{float:none;font-size:inherit;line-height:inherit;font-weight:inherit;padding:0;color:inherit}
.lk{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent-2)}
.lk:hover{border-bottom-color:var(--accent)}
.meta{font-size:15px;color:var(--muted)}

/* entries */
.entries{display:flex;flex-direction:column}
.entry{display:grid;grid-template-columns:62px minmax(0,1fr);gap:16px;padding:20px 0;
  border-bottom:1px solid var(--rule-2)}
.entry:first-child{border-top:1px solid var(--rule)}
.yr{font-variant-numeric:tabular-nums;font-size:13.5px;color:var(--faint);padding-top:4px;white-space:nowrap}
.ti{font-weight:600;font-size:17.5px;line-height:1.32;margin:0 0 4px;letter-spacing:-.008em}
.au{font-size:14px;color:var(--muted);margin:0 0 10px;font-style:italic}
.au b{font-style:normal;font-weight:600;color:var(--ink-2)}
.flag{display:inline-block;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--paper);background:var(--accent);border-radius:2px;padding:1.5px 7px;font-style:normal;
  font-weight:600;margin-left:6px;vertical-align:1.5px;white-space:nowrap}
@media (max-width:640px){
  .entry{grid-template-columns:minmax(0,1fr);gap:0}
  .yr{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;padding:0 0 6px}
  .ti{font-size:17px}
}
/* chips: resource links, then expandables */
.chips{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 10px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.13em;
  text-transform:uppercase;font-weight:600;border-radius:3px;padding:3px 9px;
  text-decoration:none;white-space:nowrap;font-family:inherit;line-height:1.5}
:lang(zh) .chip{letter-spacing:.06em}
a.chip{border:1px solid var(--rule);background:var(--paper);color:var(--muted)}
a.chip:hover{border-color:var(--accent-2);color:var(--accent)}
details.dd{margin:0}
details.dd summary{list-style:none;cursor:pointer}
details.dd summary::-webkit-details-marker{display:none}
details.dd summary::marker{content:""}
details.dd summary .chip{border:1px solid #E0CFCF;background:var(--accent-bg);color:var(--accent)}
details.dd[open] summary .chip{background:var(--accent);color:var(--paper);border-color:var(--accent)}
details.dd .car{display:inline-block;font-size:9px;line-height:1;transition:transform .18s}
details.dd[open] .car{transform:rotate(90deg)}
.panel{margin:11px 0 0;padding:14px 17px;background:var(--tint);border-left:2px solid var(--accent-3);
  font-size:15.5px;line-height:1.6;color:#3D362F}
.panel p{margin:0}
.panel.cite{font-size:15px}
.panel pre{margin:0;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  font-size:12.5px;line-height:1.6;white-space:pre;overflow-x:auto;color:#3D362F}
.copy{appearance:none;cursor:pointer;margin-top:10px;font-family:inherit;font-size:11px;
  letter-spacing:.13em;text-transform:uppercase;font-weight:600;border:1px solid var(--rule);
  background:var(--paper);color:var(--muted);border-radius:3px;padding:3px 9px}
.copy:hover{border-color:var(--accent-2);color:var(--accent)}
.copy[data-done="1"]{border-color:var(--accent-2);color:var(--accent)}

.group{font-size:11px;letter-spacing:.19em;text-transform:uppercase;color:var(--faint);
  font-weight:600;margin:36px 0 12px}
.group:first-of-type{margin-top:0}
.cvlist{list-style:none;margin:0 0 22px;padding:0}
.cvlist li{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;padding:9px 0;
  border-bottom:1px solid var(--rule-2)}
.cvlist li span{font-variant-numeric:tabular-nums;font-size:14px;color:var(--faint)}
@media (max-width:640px){.cvlist li{grid-template-columns:minmax(0,1fr);gap:2px}}
.cta{display:inline-block;text-decoration:none;border:1px solid var(--accent-2);background:var(--accent-bg);
  color:var(--accent);padding:9px 18px;font-size:15px;border-radius:3px}
.cta:hover{border-color:var(--accent)}

footer{max-width:730px;margin:0 auto;padding:26px 34px 56px;border-top:1px solid var(--rule);
  font-size:14px;color:var(--muted)}
@media (max-width:640px){footer{padding:22px 18px 44px}}
footer a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--rule)}
footer a:hover{color:var(--accent);border-bottom-color:var(--accent-2)}

.oh{background:var(--tint);border-left:2px solid var(--accent-3);padding:11px 16px;
  font-size:15.5px;margin:0 0 15px}
.oh b{font-weight:600}
