:root,:root[data-theme=light]{--paper:#fafaf8;--ink:#111;--ink-2:#2a2a2a;--ink-3:#5a5a5a;--ink-4:#8a8a8a;--rule:#111;--rule-hair:#d8d6ce;--rule-soft:#e8e6de;--bg-chip:#f2f0e8;--stamp:#b0341a;--hover-fg:#fafaf8}:root[data-theme=dark]{--paper:#0e0e0c;--ink:#f2f0e8;--ink-2:#d6d4cc;--ink-3:#9a9890;--ink-4:#6a6862;--rule:#f2f0e8;--rule-hair:#2a2a28;--rule-soft:#1a1a18;--bg-chip:#1a1a18;--stamp:#e8593a;--hover-fg:#0e0e0c}:root{--sans:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--gutter:40px}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"ss01", "cv11";margin:0;padding:0;font-size:15px;line-height:1.55}a{color:var(--ink);border-bottom:1px solid var(--rule);text-decoration:none;transition:background .12s}a:hover{background:var(--ink);color:var(--hover-fg)}.strip{background:var(--ink);width:52px;height:100vh;color:var(--paper);font-family:var(--mono);letter-spacing:.22em;z-index:10;writing-mode:vertical-rl;text-orientation:mixed;flex-direction:column;justify-content:space-between;align-items:center;padding:24px 0;font-size:10px;animation:.9s cubic-bezier(.2,.7,.2,1) .1s forwards strip-in;display:flex;position:fixed;top:0;left:0;overflow:hidden;transform:translateY(100%)}.strip .top,.strip .bot{text-transform:uppercase;white-space:nowrap}.strip .doc-id{font-weight:600}@keyframes strip-in{to{transform:translateY(0)}}.theme-toggle{z-index:20;border:1px solid var(--rule);background:var(--paper);width:40px;height:40px;color:var(--ink);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:flex;position:fixed;top:20px;right:20px}.theme-toggle:hover{background:var(--ink);color:var(--hover-fg)}.theme-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.theme-toggle svg{width:16px;height:16px;display:block}.doc{max-width:980px;margin:0 auto;padding:56px 64px 80px 96px}.topbar{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--rule);opacity:0;justify-content:space-between;align-items:baseline;margin-bottom:0;padding-bottom:18px;font-size:10.5px;animation:.6s .2s forwards fade-in;display:flex}.topbar .right{gap:18px;display:flex}.topbar .stamp{border:1px solid var(--stamp);color:var(--stamp);padding:2px 8px;font-weight:600}.title-block{border:1px solid var(--rule);opacity:0;border-top:0;grid-template-columns:1fr 1fr 1fr 1fr;margin-bottom:64px;animation:.7s .35s forwards fade-in;display:grid}.title-block .cell{border-right:1px solid var(--rule);font-family:var(--mono);padding:14px 16px}.title-block .cell:last-child{border-right:0}.title-block .label{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px;font-size:9.5px}.title-block .value{color:var(--ink);font-size:12px;font-weight:500}.title-block .value.big{font-size:13px;font-weight:600}.hero{border-bottom:1px solid var(--rule);opacity:0;grid-template-columns:1fr 320px;align-items:start;gap:56px;padding:40px 0 56px;animation:.8s .5s forwards fade-in;display:grid}.hero .left{padding-top:8px}.hero .right{border-top:1px solid var(--rule);padding-top:26px}.hero h1{font-family:var(--sans);letter-spacing:-.035em;color:var(--ink);margin:0 0 18px;font-size:clamp(48px,7vw,72px);font-weight:300;line-height:.98}.hero h1 em{font-style:normal;font-weight:600}.hero .role-line{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:0;font-size:12px}.hero .summary{color:var(--ink-2);max-width:36ch;margin:0;font-size:14px;line-height:1.65}.hero .meta-line{font-family:var(--mono);letter-spacing:.12em;color:var(--ink-3);text-transform:uppercase;margin-bottom:10px;font-size:11px}.sec-head{border-top:1px solid var(--rule);grid-template-columns:64px 1fr auto;align-items:baseline;gap:16px;padding:48px 0 14px;display:grid}.sec-head .num{font-family:var(--mono);letter-spacing:.18em;color:var(--ink-3);font-size:11px;font-weight:500}.sec-head h2{font-family:var(--sans);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:28px;font-weight:500}.sec-head .crumb{font-family:var(--mono);letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase;font-size:10.5px}.sec-head .crumb:before{content:"§ ";color:var(--ink-4)}.stack-grid{border-bottom:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:0;display:grid}.stack-group{border-bottom:1px solid var(--rule-hair);padding:24px 0}.stack-group:nth-last-child(-n+2){border-bottom:1px solid var(--rule-hair)}.stack-group:nth-child(odd){border-right:1px solid var(--rule-hair);padding-right:32px}.stack-group:nth-child(2n){padding-left:32px}.stack-group h3{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:0 0 16px;font-size:10.5px;font-weight:500}.stack-group .items{flex-wrap:wrap;gap:6px;display:flex}.tag{font-family:var(--mono);border:1px solid var(--rule);background:var(--paper);color:var(--ink);white-space:nowrap;padding:4px 9px;font-size:12px;transition:background .15s,color .15s}.tag:hover{background:var(--ink);color:var(--hover-fg)}.exp-list{border-top:1px solid var(--rule)}.exp{border-bottom:1px solid var(--rule-hair);grid-template-columns:140px 1fr;gap:32px;padding:28px 0;display:grid}.exp .gutter{font-family:var(--mono);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-size:11px}.exp .gutter .period{color:var(--ink);margin-bottom:4px;font-weight:600;display:block}.exp .gutter .tenure{color:var(--ink-4);margin-bottom:4px;display:block}.exp .gutter .mode{color:var(--ink-4);font-size:10px;display:block}.exp .body .head{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:8px;display:flex}.exp .body .title{letter-spacing:-.01em;font-size:19px;font-weight:500}.exp .body .org{font-family:var(--mono);color:var(--ink-3);margin-bottom:14px;font-size:12px}.exp .body .org strong{color:var(--ink);font-weight:500}.exp .body .client-tag{font-family:var(--mono);letter-spacing:.1em;background:var(--ink);color:var(--paper);text-transform:uppercase;vertical-align:2px;margin-left:6px;padding:2px 7px;font-size:10px;display:inline-block}.exp .body ul{max-width:62ch;margin:12px 0 16px;padding:0;list-style:none}.exp .body li{color:var(--ink-2);margin-bottom:6px;padding-left:20px;font-size:14px;line-height:1.6;position:relative}.exp .body li:before{content:"—";color:var(--ink-4);font-family:var(--mono);font-weight:500;position:absolute;left:0}.exp .env{flex-wrap:wrap;gap:4px;margin-top:10px;display:flex}.exp .env .env-tag{font-family:var(--mono);background:var(--bg-chip);color:var(--ink-2);padding:2px 7px;font-size:10.5px}.kv-rows{border-top:1px solid var(--rule)}.kv-row{border-bottom:1px solid var(--rule-hair);grid-template-columns:200px 1fr auto;align-items:baseline;gap:32px;padding:18px 0;display:grid}.kv-row .k{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);font-size:11px}.kv-row .v{color:var(--ink);font-size:15px;font-weight:500}.kv-row .v small{font-weight:400;font-family:var(--mono);color:var(--ink-3);margin-top:2px;font-size:11px;display:block}.kv-row .status{font-family:var(--mono);letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase;text-align:right;font-size:10px}.kv-row .status.ok{color:var(--ink);font-weight:600}.kv-row .status .cefr{border:1px solid var(--rule);margin-left:8px;padding:1px 6px;font-size:9.5px;display:inline-block}.contact-block{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:1fr 1fr;display:grid}.contact-cell{padding:24px 0}.contact-cell:nth-child(odd){border-right:1px solid var(--rule-hair);padding-right:32px}.contact-cell:nth-child(2n){padding-left:32px}.contact-cell .k{font-family:var(--mono);text-transform:uppercase;letter-spacing:.16em;color:var(--ink-3);margin-bottom:6px;font-size:10.5px}.contact-cell .v{letter-spacing:-.01em;font-size:17px;font-weight:500}.contact-cell .v a{border-bottom:1px solid var(--rule)}.end-block{border:1px solid var(--rule);grid-template-columns:2fr 1fr 1fr 1fr;margin-top:64px;display:grid}.end-block .cell{border-right:1px solid var(--rule);font-family:var(--mono);padding:14px 16px}.end-block .cell:last-child{border-right:0}.end-block .label{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px;font-size:9.5px}.end-block .value{font-size:12px;font-weight:500}.end-block .stamp{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;border:1px solid var(--stamp);color:var(--stamp);padding:8px 14px;font-size:11px;font-weight:600;display:inline-block}@keyframes fade-in{to{opacity:1}}@media (prefers-reduced-motion:reduce){.strip,.topbar,.title-block,.hero{opacity:1;animation:none;transform:none}}@media (width<=820px){.doc{padding:40px 24px 60px 72px}.strip{width:44px;padding:16px 0}.title-block,.end-block{grid-template-columns:1fr 1fr}.title-block .cell:nth-child(2n){border-right:0}.title-block .cell:nth-child(-n+2){border-bottom:1px solid var(--rule)}.end-block .cell{border-right:1px solid var(--rule)}.hero{grid-template-columns:1fr;gap:24px}.hero .summary{max-width:100%}.stack-grid{grid-template-columns:1fr}.stack-group:nth-child(odd){border-right:0;padding-right:0}.stack-group:nth-child(2n){padding-left:0}.stack-group{border-bottom:1px solid var(--rule-hair)}.stack-group:last-child{border-bottom:0}.exp{grid-template-columns:1fr;gap:12px}.kv-row{grid-template-columns:1fr;gap:4px}.kv-row .status{text-align:left}.contact-block{grid-template-columns:1fr}.contact-cell{padding:18px 0}.contact-cell:nth-child(odd){border-right:0;border-bottom:1px solid var(--rule-hair);padding-right:0}.contact-cell:nth-child(2n){padding-left:0}.sec-head{grid-template-columns:48px 1fr}.sec-head .crumb{display:none}}@media (width<=480px){.doc{padding:32px 16px 48px 60px}.strip{width:40px}.hero h1{font-size:44px}.sec-head h2{font-size:22px}}
