body:has(.resume-page) { background: #000; }
body:has(.resume-page) > header, body:has(.resume-page) > footer { display: none; }
body:has(.resume-page) > main { background: #000; }

.resume-page { --resume-bg:#000; --resume-card:#101010; --resume-muted:#a6a6a6; --resume-line:#2a2a2a; --resume-accent:#28e98c; background:var(--resume-bg); color:#fff; font-family:'Space Grotesk',sans-serif; min-height:100vh; padding:60px 40px; }
.resume-shell { max-width:1440px; margin:0 auto; display:grid; grid-template-columns:360px minmax(0,1fr); gap:70px; align-items:start; }
.resume-sidebar { position:sticky; top:40px; border:1px solid #282828; border-radius:42px; overflow:hidden; background:var(--resume-card); padding:29px; text-align:center; }
.resume-portrait { width:100%; aspect-ratio:1 / 1; object-fit:cover; object-position:center; border-radius:34px; background:#202020; }
.resume-status { display:inline-flex; align-items:center; gap:9px; margin-top:43px; padding:15px 28px; border:1px solid #303030; border-radius:16px; color:#e2e2e2; font-size:15px; font-weight:500; }
.resume-status::before { width:8px; height:8px; border-radius:999px; background:var(--resume-accent); box-shadow:0 0 0 4px rgba(40,233,140,.09); content:''; }
.resume-name { margin:32px 0 0; font-size:26px; font-weight:600; letter-spacing:-.06em; line-height:1.1; white-space:nowrap; }
.resume-role { display:none; }
.resume-socials { display:flex; justify-content:center; gap:12px; margin-top:34px; }
.resume-social { display:grid; width:58px; height:58px; place-items:center; border:1px solid #343434; border-radius:15px; color:#fff; transition:background .2s ease,color .2s ease; }
.resume-social:hover { background:var(--resume-accent); border-color:var(--resume-accent); color:#000; }
.resume-social svg { width:22px; height:22px; fill:currentColor; }
.resume-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:36px; }
.resume-actions > :only-child { grid-column:1 / -1; }
.resume-action { display:flex; align-items:center; justify-content:center; gap:8px; min-height:52px; padding:0 12px; border-radius:12px; background:var(--resume-accent); color:#000; font-size:15px; font-weight:600; transition:transform .2s ease,background .2s ease; }
.resume-action:hover { transform:translateY(-2px); background:#5af0a8; }
.resume-action--secondary { background:#252525; color:#fff; }
.resume-action--secondary:hover { background:#353535; }
.resume-action svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; }

.resume-content { max-width:900px; padding-top:78px; }
.resume-kicker { display:flex; align-items:center; gap:8px; margin:0; color:var(--resume-accent); font-size:14px; font-weight:500; }
.resume-intro h1 { max-width:none; margin:27px 0 0; color:#fff; font-size:clamp(38px,3.6vw,52px); font-weight:500; letter-spacing:-.065em; line-height:1.12; white-space:nowrap; }
.resume-intro h1 span { display:block; margin-top:.24em; white-space:nowrap; }
.resume-intro-role { color:var(--resume-accent); }
.resume-intro-location { color:#f5f5f5; }
.resume-bio { max-width:660px; margin:30px 0 0; color:#aaa; font-size:16px; line-height:1.75; }
.resume-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:42px; }
.resume-stat { min-height:106px; padding:16px 12px; border:1px solid var(--resume-line); border-radius:12px; }
.resume-stat-number { display:block; color:var(--resume-accent); font-size:30px; font-weight:600; letter-spacing:-.05em; line-height:1; }
.resume-stat-label { display:block; margin-top:13px; color:#aaa; font-size:11px; line-height:1.35; }

.resume-section { margin-top:90px; }
.resume-section-heading { display:flex; align-items:center; gap:11px; margin:0 0 28px; font-size:14px; font-weight:500; }
.resume-section-heading svg { width:18px; height:18px; stroke:var(--resume-accent); stroke-width:1.8; fill:none; }
.resume-entry { display:grid; grid-template-columns:minmax(0,1fr) 130px; gap:28px; padding:25px 0; border-top:1px solid var(--resume-line); }
.resume-entry:last-child { border-bottom:1px solid var(--resume-line); }
.resume-entry-title { margin:0; color:#fff; font-size:19px; font-weight:500; letter-spacing:-.03em; line-height:1.35; }
.resume-entry-location { margin:7px 0 0; color:#aaa; font-size:13px; }
.resume-entry-summary { margin:14px 0 0; color:#b7b7b7; font-size:14px; line-height:1.7; }
.resume-entry-date { color:var(--resume-accent); font-size:13px; line-height:1.5; text-align:right; white-space:nowrap; }
.resume-experience-heading { gap:13px; margin-bottom:34px; font-size:32px; font-weight:500; letter-spacing:-.05em; }
.resume-experience-heading svg { width:37px; height:37px; stroke:#fff; stroke-width:1.7; }
.resume-experience-entry,.resume-education-entry { display:block; margin-top:18px; border:1px solid #303030; border-radius:17px; background:#101010; }
.resume-experience-entry { padding:35px; }
.resume-education-entry { padding:34px 30px; }
.resume-experience-top { display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:20px; }
.resume-education-top { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:24px; }
.resume-experience-mark { display:grid; width:40px; height:40px; place-items:center; color:var(--resume-accent); }
.resume-experience-mark svg { width:34px; height:34px; fill:currentColor; }
.resume-experience-entry .resume-entry-title,.resume-education-entry .resume-entry-title { font-size:26px; }
.resume-experience-entry .resume-entry-location,.resume-education-entry .resume-entry-location { margin-top:6px; font-size:16px; }
.resume-experience-entry .resume-entry-date,.resume-education-entry .resume-entry-date { padding:10px 16px; border:1px solid #303030; border-radius:7px; background:#202020; color:#f4f4f4; font-size:16px; font-weight:500; }
.resume-experience-entry .resume-entry-summary,.resume-education-entry .resume-entry-summary { margin:24px 0 0; padding-top:22px; border-top:1px solid #292929; color:#c2c2c2; font-size:15px; line-height:1.65; }
.resume-publications,.resume-stakes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.resume-publication { overflow:hidden; border:1px solid var(--resume-line); border-radius:14px; background:var(--resume-card); transition:border-color .2s ease,transform .2s ease; }
.resume-publication:hover { border-color:#5d5d5d; transform:translateY(-3px); }
.resume-publication-thumbnail { position:relative; display:flex; height:215px; align-items:end; overflow:hidden; padding:22px; background:linear-gradient(135deg,#19362d 0%,#0e1714 48%,#111 100%); }
.resume-publication-thumbnail::before { position:absolute; top:-82px; right:-54px; width:235px; height:235px; border:1px solid rgba(40,233,140,.45); border-radius:50%; box-shadow:0 0 0 40px rgba(40,233,140,.05),0 0 0 80px rgba(40,233,140,.04); content:''; }
.resume-publication-thumbnail::after { position:absolute; right:19px; bottom:-24px; color:rgba(40,233,140,.16); font-size:126px; font-weight:700; letter-spacing:-.1em; line-height:1; content:'CV'; }
.resume-publication-thumbnail--article { background:linear-gradient(135deg,#122a25 0%,#121d1a 48%,#111 100%); }
.resume-publication-thumbnail span { position:relative; z-index:1; max-width:155px; color:#fff; font-size:13px; font-weight:500; line-height:1.4; }
.resume-publication-body { display:flex; flex-direction:column; min-height:190px; padding:21px; }
.resume-publication-type { color:var(--resume-accent); font-size:12px; }
.resume-publication-title { margin:17px 0 0; font-size:19px; font-weight:500; letter-spacing:-.03em; line-height:1.35; }
.resume-publication-summary { margin:10px 0 0; color:#aaa; font-size:13px; line-height:1.65; }
.resume-publication-meta { margin:auto 0 0; padding-top:18px; color:#757575; font-size:12px; }
.resume-load-more { display:flex; width:fit-content; min-height:48px; align-items:center; justify-content:center; margin:32px auto 0; padding:0 20px; border-radius:13px; background:#4a4a4a; color:#fff; font-size:16px; font-weight:600; transition:background .2s ease,transform .2s ease; }
.resume-load-more:hover { background:#5c5c5c; transform:translateY(-2px); }
.resume-stake { display:flex; min-height:112px; align-items:center; gap:18px; padding:20px; border:1px solid #303030; border-radius:17px; background:#101010; transition:border-color .2s ease,transform .2s ease; }
.resume-stake:hover { border-color:#4c4c4c; transform:translateY(-2px); }
.resume-stake-icon { display:grid; width:52px; height:52px; flex:0 0 52px; place-items:center; border:1px solid #363636; border-radius:12px; background:#191919; color:var(--resume-accent); }
.resume-stake-icon svg { width:29px; height:29px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
.resume-stake-title { margin:0; color:#fff; font-size:20px; font-weight:500; letter-spacing:-.035em; line-height:1.25; }
.resume-stake-description { margin:6px 0 0; color:#aaa; font-size:14px; line-height:1.45; }
.resume-contact-title { margin:0 0 36px; color:#fff; font-size:34px; font-weight:500; letter-spacing:-.05em; }
.resume-contact-grid { display:grid; grid-template-columns:minmax(250px,.95fr) minmax(0,1fr); gap:44px; }
.resume-contact-details,.resume-contact-form { display:flex; flex-direction:column; }
.resume-contact-details { gap:18px; }
.resume-contact-detail { display:flex; min-height:102px; align-items:center; gap:18px; padding:20px; border-radius:14px; background:#101010; color:#fff; }
a.resume-contact-detail { transition:background .2s ease,transform .2s ease; }
a.resume-contact-detail:hover { background:#191919; transform:translateY(-2px); }
.resume-contact-icon { display:grid; width:30px; height:30px; flex:0 0 30px; place-items:center; color:var(--resume-accent); }
.resume-contact-icon svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
.resume-contact-detail small,.resume-contact-detail strong { display:block; }
.resume-contact-detail small { color:#bcbcbc; font-size:14px; }
.resume-contact-detail strong { margin-top:7px; color:#fff; font-size:16px; font-weight:500; overflow-wrap:anywhere; }
.resume-contact-form { gap:12px; }
.resume-contact-form input,.resume-contact-form textarea { width:100%; border:1px solid #353535; border-radius:9px; outline:none; background:#101010; color:#fff; font:inherit; transition:border-color .2s ease; }
.resume-contact-form input { height:60px; padding:0 18px; }
.resume-contact-form textarea { min-height:166px; padding:17px 18px; resize:vertical; }
.resume-contact-form input::placeholder,.resume-contact-form textarea::placeholder { color:#777; }
.resume-contact-form input:focus,.resume-contact-form textarea:focus { border-color:var(--resume-accent); }
.resume-contact-form button { min-height:60px; border:0; border-radius:12px; background:var(--resume-accent); color:#000; font:inherit; font-size:16px; font-weight:600; transition:background .2s ease,transform .2s ease; }
.resume-contact-form button:hover { background:#5af0a8; transform:translateY(-2px); }
.resume-contact-error { margin:-5px 0 0; color:#ff7777; font-size:12px; }
.resume-contact-success { margin:0; padding:12px; border:1px solid rgba(40,233,140,.4); border-radius:9px; color:var(--resume-accent); font-size:13px; line-height:1.5; }

@media (max-width:1000px) { .resume-page{padding:24px}.resume-shell{grid-template-columns:1fr;gap:0}.resume-sidebar{position:relative;top:auto;max-width:500px;margin:0 auto}.resume-content{max-width:none;padding-top:65px} }
@media (max-width:620px) { .resume-page{padding:16px}.resume-sidebar{padding:20px;border-radius:30px}.resume-portrait{border-radius:23px}.resume-status{margin-top:27px;padding:13px 22px;font-size:14px}.resume-name{margin-top:25px;font-size:24px}.resume-socials{margin-top:26px}.resume-social{width:52px;height:52px}.resume-actions{margin-top:28px}.resume-action{min-height:54px;font-size:14px}.resume-action svg{width:15px;height:15px}.resume-stats{grid-template-columns:repeat(2,1fr)}.resume-intro h1,.resume-intro h1 span{white-space:normal;font-size:40px}.resume-bio{font-size:15px}.resume-section{margin-top:64px}.resume-entry{grid-template-columns:1fr;gap:12px}.resume-entry-date{text-align:left;order:-1}.resume-experience-heading{font-size:27px}.resume-experience-entry,.resume-education-entry{padding:23px}.resume-experience-top{grid-template-columns:34px minmax(0,1fr);gap:14px}.resume-education-top{grid-template-columns:1fr;gap:12px}.resume-experience-mark{width:34px;height:34px}.resume-experience-entry .resume-entry-title,.resume-education-entry .resume-entry-title{font-size:21px}.resume-experience-entry .resume-entry-date{grid-column:2;justify-self:start;margin-top:3px;padding:8px 12px;font-size:14px}.resume-education-entry .resume-entry-date{justify-self:start;padding:8px 12px;font-size:14px}.resume-experience-entry .resume-entry-summary,.resume-education-entry .resume-entry-summary{font-size:15px}.resume-publications,.resume-stakes,.resume-contact-grid{grid-template-columns:1fr}.resume-stake{min-height:96px}.resume-stake-title{font-size:18px}.resume-contact-title{margin-bottom:25px;font-size:30px} }
