/* Explicit appearance prevents native blue pictographic controls on iOS. */
button{color:inherit;-webkit-appearance:none;appearance:none}.ui-icon{flex-shrink:0;pointer-events:none}.hero-actions .ui-play{width:.8em;height:.8em}.video-play .ui-play{width:.8em;height:.8em}
.lightbox-image{transition:none;max-height:calc(100dvh - 80px - var(--photo-caption-height,0px))}
.lightbox-image-wrap{max-height:calc(100% - var(--photo-caption-height,0px))}
@media(max-width:767px){.lightbox-image{max-height:calc(100dvh - 105px - var(--photo-caption-height,0px))}}
/* A single semantic heading; the divider and typography are visual only. */
.page-heading h1.page-title{margin:0;font-size:64px;font-weight:400;line-height:1.1}
.page-title-main{display:block;margin-bottom:20px}
.page-title .heading-rule{display:block}
.page-title-subtitle{display:block;font-size:30px;font-weight:400;line-height:1.3;letter-spacing:-.02em}
@media(min-width:992px){
 .inner-page .page-heading,.gallery-page .page-heading{padding-top:56px}
 /* The header keeps the same edges across pages with different content widths. */
 .site-header{padding-inline:max(20px,calc((100% - 1320px)/2))}
 .contact-page-content>.contact-layout{width:min(var(--page),calc(100% - 40px));column-gap:40px;row-gap:0;grid-template-rows:max-content max-content 1fr;align-items:start}
 .contact-layout>.contact-portrait{display:contents}
 .contact-layout>.contact-portrait>img{grid-column:1;grid-row:1 / span 3;align-self:start}
 .contact-layout>.contact-copy{grid-column:2;grid-row:1;min-width:0}
 .contact-layout>.contact-portrait>.brand-profiles{grid-column:2;grid-row:2;margin:24px 0 0}
}
/* Match the approved home header on every mobile/tablet page. */
@media(max-width:991px){
 .site-header{padding-left:26px}
 .site-header .site-logo{flex-basis:205px}
 .site-header .site-logo img{width:205px}
}
@media(max-width:767px){
 .site-header{height:78px}
 .site-header .site-logo{transform:translateY(1.75px)}
 .site-header .main-nav{top:78px}
}
@media(max-width:359px){
 .site-header{gap:16px}
 .site-header .site-logo{flex-basis:185px}
 .site-header .site-logo img{width:185px}
}
@media(scripting:none){.site-header{height:auto}.site-header .main-nav{top:auto}}
.contact-page-content>.contact-content{margin-top:0}
.contact-copy h2{margin:0 0 10px}
.contact-links svg{width:22px;height:22px;flex:none;color:inherit}
@media(min-width:992px){
 .contact-copy .prose-block>p:first-child{margin-top:0}
 .contact-copy .contact-links{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
 .contact-copy .contact-links a{font-size:20px;gap:8px;white-space:nowrap}
 .contact-layout>.contact-portrait>.brand-profiles{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;max-width:none;gap:10px}
 .contact-portrait .brand-profiles>a.brand-resume-download{font-size:12px;gap:5px}
}
/* Shared rhythm for article sections and gallery albums. */
.gallery-page .page-heading{padding-bottom:42px}
.gallery-page .gallery-section>h2{margin:0 0 20px}
.gallery-page .gallery-section:has(>.album-description)>h2{margin-bottom:10px}
.gallery-page .album-description{margin:0 0 30px}
.gallery-page .album-description p{margin:0 0 20px;line-height:1.6}
.gallery-page .album-description p:last-child{margin-bottom:0}
@media(max-width:767px){
 .inner-page .page-heading,.gallery-page .page-heading{padding-top:10px;padding-bottom:28px}
 .page-heading h1.page-title{font-size:42px}
 .page-title-main{margin-bottom:16px}
 .page-title-subtitle{font-size:20px;line-height:1.3}
 .contact-page-content .contact-portrait>img{display:block;width:100%;max-width:none;aspect-ratio:1;object-fit:cover;margin-inline:auto}
 .gallery-page .album-description{margin-bottom:28px}
 .gallery-page .gallery-section{margin-bottom:32px}
}
/* Resume rhythm and mobile footer, shared by all language versions. */
.brand-profiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:316px;gap:14px 16px}
.brand-profiles>a{width:100%;box-sizing:border-box}
.brand-profiles>a.brand-resume-download{gap:7px;background:var(--wine,#62183f);color:#fff;font-size:13px;font-weight:600;line-height:1.15;text-align:center;text-decoration:none}
.brand-resume-download:hover{filter:brightness(.85)}
.brand-resume-download:focus-visible{outline:2px solid #62183f;outline-offset:3px}
.brand-resume-download svg{width:18px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.contact-portrait .brand-profiles>a[href*="kino-teatr.ru"]{background:#9b3838}
.contact-portrait .brand-profiles>a[href*="kino-teatr.ru"] img{width:82%}
.resume-intro-copy .resume-location,.resume-location p{font-size:inherit;line-height:inherit}
.resume-intro-copy .brand-profiles{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:none;gap:10px;margin:0 0 18px;align-items:stretch}
.resume-intro-copy .brand-profiles>a{aspect-ratio:auto;min-height:44px}
.resume-intro-copy .brand-profiles>a[href*="kino-teatr.ru"]{background:#9b3838}
:root .inner-page .resume-intro-copy>h2{margin:0 0 10px;line-height:1.3;text-wrap:balance}
.resume-heading-line{display:block}
:root .inner-page .resume-intro-copy .prose-block p{text-align:start}
:root .inner-page .resume-intro-copy .resume-bio p{margin:0 0 12px}
:root .inner-page .resume-intro-copy .resume-bio p:last-child{margin-bottom:0}
/* Keep closed language controls outside the widest content column. */
@media(min-width:992px){
 .floating-tools{right:max(6px,calc((100% - 1320px)/2 - 56px));bottom:12px;flex-direction:column;gap:6px;width:42px;font-size:11px}
 .floating-tools .language-picker summary{display:flex;align-items:center;justify-content:center;gap:4px;width:42px;height:34px;padding:0;border-radius:4px;line-height:1.2}
 .floating-tools .language-flag{width:12px;height:8px;flex:none}
 .floating-tools .to-top{display:grid;place-items:center;width:42px;height:34px;padding:0;border-radius:4px;font-size:20px}
 .floating-tools .language-picker>div{left:auto;right:0;min-width:112px;padding:10px;gap:6px;font-size:14px;border-radius:4px}
}
@media(min-width:992px) and (max-width:1439px){
 .floating-tools{position:static;flex-direction:row;justify-content:flex-end;width:min(1320px,calc(100% - 40px));margin:12px auto}
}
@media(max-width:767px){.brand-profiles,.contact-portrait .brand-profiles{max-width:290px;gap:12px 14px}.brand-profiles>a.brand-resume-download{font-size:12px}}
@media(max-width:767px){
 .inner-page .resume-portrait{width:100%;max-width:none;height:auto;aspect-ratio:1;margin:0 0 20px}
 .inner-page .resume-portrait img{display:block;width:100%;height:100%;aspect-ratio:1;object-fit:cover}
 .inner-page .resume-intro{margin-bottom:0}
 .inner-page .resume-intro-copy .resume-location{margin-bottom:18px}
 .inner-page .article-content:has(.resume-intro)>h2,.inner-page .resume-intro-copy h2{margin:28px 0 10px}
 .inner-page .article-content:has(.resume-intro)>.prose-block,.inner-page .resume-intro-copy .prose-block{margin:0}
 .inner-page .article-content:has(.resume-intro) .prose-block p{margin:0 0 12px}
 .inner-page .article-content:has(.resume-intro) .prose-block p:last-child{margin-bottom:0}
 .inner-page .article-content:has(.resume-intro) dl{margin:0;row-gap:8px}
 .site-footer{padding-inline:20px}
 .site-footer>p{width:100%;font-size:17px;margin:0 0 18px}
 .site-footer .social-links{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));width:100%;gap:0;align-items:center}
 .site-footer .social-links a{display:flex;align-items:center;justify-content:center;min-height:44px;min-width:0}
 .site-footer .social-links svg{width:25px;height:25px}
}
/* Mobile navigation groups do not toggle; desktop Video retains its disclosure. */
.nav-mobile-video,.mobile-gallery-submenu,.nav-pdf-link,.nav-contact-link{display:none}
.nav-dropdown-arrow{display:inline-block;width:11px;height:8px;margin-left:5px;vertical-align:.08em;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@media(min-width:992px){
 .nav-gallery-group{position:relative}
 .main-nav .video-submenu,.nav-gallery-group>.mobile-gallery-submenu{position:absolute;top:100%;left:0;margin-top:14px;min-width:245px;padding:12px;background:#fff;box-shadow:0 8px 22px #0002;gap:12px;z-index:1}
 .main-nav .video-submenu::before,.nav-gallery-group>.mobile-gallery-submenu::before{content:"";position:absolute;inset:-16px 0 auto;height:16px}
 .nav-gallery-group[data-submenu-open]>.mobile-gallery-submenu{display:grid}
 .nav-gallery-group>.mobile-gallery-submenu a{font-size:18px;font-weight:400;line-height:1.5;color:var(--wine);white-space:nowrap}
}
.main-nav a{text-decoration:none}
.nav-resume-row>a,.nav-gallery-group>a,.nav-contact-row>a{font-size:22px;font-weight:700;line-height:1;color:var(--wine);white-space:nowrap}
.on-hero .nav-resume-row>a,.on-hero .nav-gallery-group>a,.on-hero .nav-contact-row>a{color:#fff}
.nav-pdf-link svg,.nav-contact-link svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media(min-width:992px) and (max-width:1150px){.nav-resume-row>a,.nav-gallery-group>a,.nav-contact-row>a{font-size:20px}}
.gallery-section[id]{scroll-margin-top:16px}
@media(max-width:991px){
 .nav-gallery-group>a>.nav-dropdown-arrow{display:none}
 .main-nav{border-bottom:1px solid var(--wine);gap:18px;max-height:calc(100dvh - 75px);overflow-y:auto}
 .main-nav .video-menu{display:none}
 .main-nav .nav-mobile-video{display:block}
 .main-nav .nav-resume-row,.main-nav .nav-contact-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
 .main-nav .nav-resume-row>a,.main-nav .nav-contact-row>a,.main-nav .nav-gallery-group>a,.main-nav .nav-group-title{color:var(--wine);font-size:20px;font-weight:400;line-height:1.2}
 .main-nav .nav-group-title{display:block}
 .main-nav .nav-gallery-group>a{display:block}
 .main-nav .nav-resume-row>.nav-pdf-link,.main-nav .nav-contact-row>.nav-contact-link{display:inline-flex;align-items:center;gap:6px;min-height:32px;font-size:14px;font-weight:400;line-height:1.2;white-space:nowrap;text-decoration:none}
 .main-nav [aria-disabled=true]{opacity:.55}
 .main-nav .mobile-gallery-submenu,.main-nav .nav-mobile-video .video-submenu{display:grid;position:static;box-shadow:none;min-width:0;background:none;padding:14px 0 0 14px;gap:8px}
 .main-nav .mobile-gallery-submenu a,.main-nav .nav-mobile-video .video-submenu a{font-size:18px;font-weight:400;line-height:1.3;border-bottom:1px solid #eee;padding:0 0 6px;color:var(--wine)}
}
@media(max-width:359px){.main-nav{padding-inline:24px}}
html:not(.salty-keyboard) .home-page .photo-link:focus,
html:not(.salty-keyboard) .home-page .album:focus,
html:not(.salty-keyboard) .home-page .lightbox button:focus{outline:none}
.home-page .home-portfolio .coverflow .album{height:480px}
.home-page .home-portfolio .coverflow .photo-link{height:450px}
.lightbox-close svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;display:block;margin:auto}
@media(max-width:767px){.home-page .home-portfolio .coverflow .album{height:320px}.home-page .home-portfolio .coverflow .photo-link{height:285px}}
.home-page .home-portfolio .photo-link{position:relative}
.article-content .education-rows{font-size:18px;line-height:1.5;row-gap:4px;column-gap:10px;margin:0}
.article-content:has(.education-rows)>h2:first-child{margin-top:0;margin-bottom:10px}
.article-content>.prose-block:has(.education-rows){margin-bottom:0}
.article-content>.prose-block:has(.education-rows)+h2{margin-top:28px}
@media(max-width:767px){.article-content .education-rows{font-size:16px;line-height:1.5;row-gap:8px;column-gap:9px}}
/* Recurring credits use the same measured typography on every website page. */
.home-page .resume-summary dl,.article-content dl.shared-credits{font-size:18px;line-height:1.5;display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:10px;row-gap:4px;margin:0}
.home-page .resume-summary dt,.shared-credits dt{font-weight:400}
.shared-credits dd{min-width:0;margin:0}
/* On desktop, let credits wrap to their actual width instead of saved line breaks. */
@media(min-width:992px){.shared-credits dd br{display:none}}
@media(max-width:767px){.home-page .resume-summary dl,.article-content dl.shared-credits{font-size:16px;line-height:1.5;column-gap:9px;row-gap:8px}}
/* Shared heading scale. Semantic levels and layout spacing are separate concerns. */
:root{--h2-desktop:26px;--h2-mobile:22px;--h3-desktop:21px;--h3-mobile:19px;--heading-2:var(--h2-desktop);--heading-3:var(--h3-desktop);--credit-emphasis-weight:600;--credit-emphasis-color:#44474d;--credit-font:"Roboto Condensed",sans-serif}
@media(max-width:767px){:root{--heading-2:var(--h2-mobile);--heading-3:var(--h3-mobile)}}
:root .home-page h2,
.home-page .projects-section>.content-width>h2,
:root .inner-page .article-content h2,
:root .inner-page .contact-copy h2,
:root .gallery-page .gallery-section>h2{font-size:var(--heading-2);font-weight:600;line-height:1.3;letter-spacing:-.02em;color:var(--wine)}
:root .home-page .resume-summary h3,
:root .home-page .resume-summary h2,
:root .home-page .project-card h3,
:root .inner-page .article-content h3{font-size:var(--heading-3);font-weight:600;line-height:1.3;letter-spacing:-.02em;color:var(--wine)}
.home-page .bio-copy>h2{margin-bottom:10px}
.home-page .home-portfolio>h2,
.home-page .projects-section>.content-width>h2,
.home-page .home-video h2{margin-bottom:20px}
.home-page .resume-summary :is(h2,h3){margin:0 0 8px}
.home-page .resume-summary dl,
.inner-page .article-content dl,
.inner-page .resume-intro-copy .prose-block{font-family:var(--credit-font)}
.home-page .resume-summary :is(strong,b),
.inner-page .article-content dl :is(strong,b),
.inner-page .resume-intro-copy .prose-block :is(strong,b){font-weight:var(--credit-emphasis-weight);color:var(--credit-emphasis-color)}
@font-face{font-family:"Roboto Condensed";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/roboto-condensed-regular.be9a811cef144b80.woff2") format("woff2")}
@font-face{font-family:"Roboto Condensed";font-style:normal;font-weight:500 900;font-display:swap;src:url("/assets/fonts/roboto-condensed-medium.611e22439dba2701.woff2") format("woff2")}
@font-face{font-family:"Roboto Condensed";font-style:italic;font-weight:400;font-display:swap;src:url("/assets/fonts/roboto-condensed-italic.1bf529399365044b.woff2") format("woff2")}
@font-face{font-family:"Roboto Condensed";font-style:italic;font-weight:500 900;font-display:swap;src:url("/assets/fonts/roboto-condensed-medium-italic.e2c0a5630156ec5f.woff2") format("woff2")}
/* The selected family is self-hosted; the four real faces avoid synthetic bold/italic. */
:root{--site-font:"Roboto Condensed",sans-serif;--credit-font:var(--site-font)}
body,input,textarea,select{font-family:var(--site-font);font-synthesis:none}
button,summary{font-family:inherit}
.hero.name-poster h1,.hero.name-theatre h1,.hero.name-credits h1{font-family:var(--site-font)}
.hero-action-label text{font-family:var(--site-font)}
/* Roboto Condensed needs a little more optical size on a phone. */
@media(max-width:767px){
 :root{--h2-mobile:24px;--h3-mobile:21px}
 body{font-size:20px;line-height:1.5}
 .home-page .bio-copy p,
 .home-page .resume-summary p,
 .home-page .project-card p,
 .inner-page .article-content,
 .inner-page .article-content .prose-block,
 .inner-page .article-content p,
 .inner-page .article-content li,
 .inner-page .resume-intro-copy .prose-block p,
 .inner-page .contact-copy .prose-block p,
 .gallery-page .album-description p{font-size:20px;line-height:1.5;text-align:start}
 .home-page .bio-copy p,
 .home-page .resume-summary p,
 .home-page .project-card p,
 .inner-page .article-content .prose-block p,
 .inner-page .contact-copy .prose-block p,
 .gallery-page .album-description p{margin-bottom:12px}
 .inner-page .article-content>.prose-block{margin-bottom:18px}
 .inner-page .resume-intro-copy .resume-location{font-size:20px;line-height:1.5}
 .inner-page .article-content:has(.resume-intro)>.prose-block{margin-bottom:0}
 .inner-page .article-content .prose-block>p:last-child,
 .inner-page .contact-copy .prose-block>p:last-child,
 .gallery-page .album-description p:last-child{margin-bottom:0}
 .home-page .resume-summary dl,
 .inner-page .article-content dl,
 .inner-page .article-content dl.shared-credits,
 .inner-page .article-content .education-rows{font-size:18px;line-height:1.5;row-gap:4px}
 .home-page .credit-entry+.credit-entry{margin-top:4px}
 /* Only running prose uses the browser's dictionary for the page language. */
 .home-page .bio-copy p,
 .home-page .project-card p,
 .inner-page .article-content .prose-block p,
 .inner-page .contact-copy .prose-block p,
 .gallery-page .album-description p{
  -webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:7 3 3;
  -webkit-hyphenate-limit-before:3;-webkit-hyphenate-limit-after:3;
  -webkit-hyphenate-limit-lines:2;hyphenate-limit-lines:2;
  word-break:normal;overflow-wrap:normal
 }
 /* Reference lists, proper names in emphasis, headings and controls stay intact. */
 .home-page .resume-summary dl,
 .inner-page .article-content dl,
 :is(h1,h2,h3,h4,h5,h6),a,button,summary,
 :is(.bio-copy,.article-content,.contact-copy,.album-description) :is(strong,b,em){-webkit-hyphens:none;hyphens:none}
}
/* Keep one semantic definition list; only desktop changes the visual columns. */
.shared-credits .credit-note{display:none}
.shared-credits .credit-play{display:block}
.resume-skills p{white-space:normal}
.home-page .home-skills p{margin-bottom:0}
@media(min-width:992px){
 .shared-credits{--credit-year-width:5em}
 .home-page .resume-summary dl.shared-credits,
 .home-page .home-profile dl.shared-credits,
 .article-content dl.shared-credits{grid-template-columns:minmax(0,1fr) var(--credit-year-width);grid-auto-flow:row dense;column-gap:10px}
 .shared-credits dt{grid-column:2;text-align:right;color:#666}
 .shared-credits dd{grid-column:1}
 .shared-credits .credit-entry{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:baseline;column-gap:12px;position:relative}
 .shared-credits .credit-body{min-width:0}
 .shared-credits .credit-note{display:block;color:#666;font-size:14px;white-space:nowrap}
 .shared-credits .credit-note::before{content:attr(data-label)}
 .shared-credits .credit-inline-lead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}
 .shared-credits .credit-year-colon{display:none}
 .home-page .shared-credits .credit-repeat-year{left:auto;right:calc(-1*(var(--credit-year-width) + 10px));width:var(--credit-year-width);text-align:right;color:#666}
 .inner-page .article-content>.resume-skills p{font-size:17px}
 /* Home and website CV: chronology is the first scanning column again. */
 :root .home-page dl.shared-credits,
 .article-content:has(.resume-intro) dl.shared-credits{grid-template-columns:max-content minmax(0,1fr);grid-auto-flow:row dense;column-gap:.35em}
 .home-page .shared-credits dt,
 .article-content:has(.resume-intro) .shared-credits dt{grid-column:1;text-align:left;font-variant-numeric:tabular-nums;white-space:nowrap}
 .home-page .shared-credits dd,
 .article-content:has(.resume-intro) .shared-credits dd{grid-column:2}
 .home-page .shared-credits .credit-year-colon,
 .article-content:has(.resume-intro) .shared-credits .credit-year-colon{display:inline}
 /* Repeated visible years anchor to the list, not an estimated column width. */
 .home-page .shared-credits .credit-entry{position:static}
 .home-page .shared-credits .credit-repeat-year{left:0;right:auto;width:auto;text-align:left;font-variant-numeric:tabular-nums}
}
