/*
Theme Name: lu.kies Portfolio
Theme URI: https://lukaskiesewetter.com/
Author: Lukas Kiesewetter / OpenAI
Description: Editorial portfolio theme for lu.kies — focused on graphic design, 3D and illustration.
Version: 0.1.37
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: lukies-portfolio
*/

:root {
  --lk-bg: #f3f1ec;
  --lk-ink: #161616;
  --lk-muted: #77746f;
  --lk-line: #d5d1ca;
  --lk-soft: #c9c7c1;
  --lk-accent: #4055ff;
  --lk-max: 1540px;
  --lk-gutter: clamp(18px, 3vw, 48px);
  --lk-radius: 0px;
  --lk-ease: cubic-bezier(.2,.75,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; width:100%; max-width:100%; overflow-x:hidden; }
body {
  margin: 0;
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  background: var(--lk-bg);
  color: var(--lk-ink);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.35;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, video, iframe, model-viewer { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--lk-accent); outline-offset: 4px; }
::selection { background: var(--lk-accent); color: #fff; }

.lk-shell { width: min(100%, var(--lk-max)); max-width:100%; margin-inline: auto; padding-inline: var(--lk-gutter); }
main, section, article, header, footer, .lk-project-hero-grid, .lk-project-facts, .lk-project-content { min-width:0; }
.lk-rule { border-top: 1px solid var(--lk-line); }
.lk-kicker { text-transform: uppercase; letter-spacing: .08em; font-size: 11px; font-weight: 700; }
.lk-kicker::before { content:""; display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--lk-accent); margin-right:8px; vertical-align:1px; }
.lk-dot { display: inline-block; width: .52em; height: .52em; border-radius: 50%; background: var(--lk-accent); vertical-align: .04em; }
.lk-muted { color: var(--lk-muted); }

/* Header */
.lk-site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: color-mix(in srgb, var(--lk-bg) 91%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--lk-line);
}
.lk-header-inner {
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.lk-brand { font-weight: 800; font-size: 25px; letter-spacing: -.055em; line-height: 1; }
.lk-brand-dot { color: var(--lk-accent); }
.lk-brand:hover .lk-brand-dot { color: var(--lk-accent); }
.lk-nav { list-style:none; margin:0; padding:0; display: flex; align-items: center; gap: clamp(20px, 3vw, 44px); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; font-weight: 650; }
.lk-nav a { position: relative; padding: 8px 0; }
.lk-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:2px; height:1px; background:var(--lk-accent); transition:right .25s var(--lk-ease); }
.lk-nav a:hover::after, .lk-nav .current-menu-item > a::after { right:0; }
.lk-menu-toggle { display:none; border:0; background:transparent; padding:8px 0 8px 8px; color:inherit; font:inherit; cursor:pointer; }
.lk-menu-icon { width:24px; height:14px; position:relative; display:block; }
.lk-menu-icon::before, .lk-menu-icon::after { content:""; position:absolute; left:0; width:24px; height:1.5px; background:currentColor; transition:transform .25s var(--lk-ease), top .25s var(--lk-ease); }
.lk-menu-icon::before { top:2px; } .lk-menu-icon::after { top:11px; }
body.lk-menu-open .lk-menu-icon::before { top:6px; transform:rotate(45deg); }
body.lk-menu-open .lk-menu-icon::after { top:6px; transform:rotate(-45deg); }

/* Hero */
.lk-hero {
  min-height: clamp(610px, 76svh, 840px);
  display:flex;
  align-items:center;
  padding-block:clamp(74px,8vw,124px) clamp(64px,7vw,104px);
}
.lk-hero-main { width:100%; }
.lk-display {
  margin:0;
  font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:-.052em;
  line-height:.92;
}
.lk-display-categories {
  display:block;
  max-width:min(1100px, 100%);
}
.lk-display-row {
  display:flex;
  align-items:baseline;
  gap:clamp(10px, 1.3vw, 18px);
  width:max-content;
  max-width:100%;
}
.lk-display-row-1 { margin-bottom:clamp(12px, 1.6vw, 24px); }
.lk-display-row-2 { flex-wrap:nowrap; }
.lk-display-item {
  appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  padding:0 0 .055em;
  margin:0;
  font:inherit;
  font-size:clamp(54px, 7vw, 112px);
  line-height:.92;
  letter-spacing:inherit;
  text-transform:inherit;
  font-weight:inherit;
  white-space:nowrap;
  cursor:pointer;
  position:relative;
}
.lk-display-item::after {
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:0;
  height:clamp(3px,.28vw,5px);
  background:var(--lk-accent);
  transition:right .28s var(--lk-ease);
}
.lk-display-item:hover::after,
.lk-display-item:focus-visible::after,
.lk-display-item.is-active::after { right:0; }
.lk-display-item:focus-visible { outline:none; }
.lk-display-dot {
  display:inline-block;
  color:var(--lk-accent);
  font-size:clamp(54px, 7vw, 112px);
  line-height:.54;
  letter-spacing:-.08em;
  font-weight:800;
  align-self:baseline;
  transform:translateY(-.02em);
  flex:0 0 auto;
}
.lk-hero-copy {
  margin-top:clamp(30px,4vw,52px);
  max-width:420px;
}
.lk-hero-copy p { margin:0; font-size:clamp(13px,1vw,16px); max-width:38ch; }
.lk-hero-name { font-weight:700; margin-bottom:4px!important; }
.lk-hero-location { margin-top:18px!important; color:var(--lk-muted); }

/* Section heading */
.lk-section-head { display:flex; align-items:end; justify-content:space-between; gap:30px; padding-top:24px; margin-bottom:34px; }
.lk-section-title { margin:0; font-size:clamp(28px,3vw,48px); letter-spacing:-.045em; line-height:.95; text-transform:uppercase; }
.lk-filter { display:flex; align-items:center; flex-wrap:wrap; gap:14px 24px; margin:0 0 4px; }
.lk-filter button { appearance:none; border:0; background:transparent; padding:0; font:inherit; color:inherit; text-transform:uppercase; font-size:11px; letter-spacing:.03em; cursor:pointer; opacity:.65; }
.lk-filter button:hover, .lk-filter button.is-active { opacity:1; }
.lk-filter button.is-active::before { content:""; display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--lk-accent); margin-right:7px; vertical-align:1px; }


.lk-subfilter-row {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:18px 28px;
  flex-wrap:wrap;
  margin:-14px 0 34px;
  padding-top:14px;
  border-top:1px solid var(--lk-line);
}
.lk-subfilter-row[hidden] { display:none!important; }
.lk-subfilter-label { font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--lk-muted); }
.lk-subfilter { display:flex; align-items:center; flex-wrap:wrap; gap:12px 20px; }
.lk-subfilter button {
  appearance:none;
  border:0;
  background:transparent;
  padding:0 0 3px;
  font:inherit;
  color:inherit;
  text-transform:uppercase;
  font-size:11px;
  letter-spacing:.03em;
  cursor:pointer;
  opacity:.58;
  position:relative;
}
.lk-subfilter button::after {
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:0;
  height:1px;
  background:var(--lk-accent);
  transition:right .22s var(--lk-ease);
}
.lk-subfilter button:hover,
.lk-subfilter button.is-active { opacity:1; }
.lk-subfilter button:hover::after,
.lk-subfilter button.is-active::after { right:0; }

/* Project grid */
.lk-work { padding-bottom:clamp(80px,10vw,160px); scroll-margin-top:82px; }
.lk-project-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(28px,3vw,48px) clamp(12px,1.6vw,24px); align-items:start; }
.lk-project-card { grid-column:span 6; min-width:0; transition:opacity .2s ease; }
.lk-project-card.lk-size-large { grid-column:span 8; }
.lk-project-card.lk-size-medium { grid-column:span 6; }
.lk-project-card.lk-size-small { grid-column:span 4; }
.lk-project-card.is-hidden { display:none; }
.lk-project-thumb { overflow:hidden; background:#ddd9d2; aspect-ratio: 4 / 3; position:relative; }
.lk-project-image-placeholder { width:100%; height:100%; display:grid; place-items:center; color:var(--lk-muted); font-size:12px; text-transform:uppercase; }
.lk-size-large .lk-project-thumb { aspect-ratio:16/9; }
.lk-project-thumb img { width:100%; height:100%; object-fit:cover; object-position:var(--lk-preview-x,50%) var(--lk-preview-y,50%); transform:scale(var(--lk-preview-zoom,1)); transform-origin:var(--lk-preview-x,50%) var(--lk-preview-y,50%); transition:filter .35s var(--lk-ease); will-change:transform,object-position; image-rendering:auto; backface-visibility:hidden; }
.lk-size-large .lk-project-thumb img,
.lk-home-featured .lk-featured-grid .lk-project-thumb img { object-position:var(--lk-featured-x,var(--lk-preview-x,50%)) var(--lk-featured-y,var(--lk-preview-y,50%)); transform:scale(var(--lk-featured-zoom,var(--lk-preview-zoom,1))); transform-origin:var(--lk-featured-x,var(--lk-preview-x,50%)) var(--lk-featured-y,var(--lk-preview-y,50%)); }
.lk-project-card:hover .lk-project-thumb img { filter:brightness(.985); }
.lk-project-arrow { position:absolute; right:14px; bottom:14px; width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:var(--lk-bg); transform:translateY(8px); opacity:0; transition:.25s var(--lk-ease); font-size:17px; }
.lk-project-card:hover .lk-project-arrow { transform:none; opacity:1; }
.lk-project-meta { display:flex; justify-content:space-between; gap:20px; margin-top:10px; font-size:12px; }
.lk-project-title { margin:0; font-size:13px; font-weight:700; letter-spacing:-.01em; }
.lk-project-sub { margin:2px 0 0; color:var(--lk-muted); }
.lk-project-year { white-space:nowrap; color:var(--lk-muted); }
.lk-empty { grid-column:1/-1; padding:80px 0; border-top:1px solid var(--lk-line); color:var(--lk-muted); }

/* CTA / footer */
.lk-cta { border-top:1px solid var(--lk-line); padding-block:clamp(42px,5.5vw,82px); }
.lk-cta-title { margin:0; max-width:100%; font-size:clamp(26px,4.4vw,68px); line-height:.95; letter-spacing:-.04em; text-transform:uppercase; font-weight:800; white-space:normal; overflow-wrap:normal; }
.lk-cta-line { display:inline; }
.lk-cta-dot { color:var(--lk-accent); }
.lk-cta-row { margin-top:34px; display:flex; justify-content:space-between; align-items:end; gap:30px; }
.lk-cta-link { font-size:14px; border-bottom:1px solid var(--lk-ink); padding-bottom:3px; }
.lk-cta-link:hover { border-color:var(--lk-accent); color:var(--lk-accent); }
.lk-arrow-icon {
  position:relative;
  display:inline-block;
  width:.72em;
  height:.72em;
  flex:0 0 auto;
}
.lk-arrow-icon::before {
  content:"";
  position:absolute;
  top:.05em;
  right:.02em;
  width:.48em;
  height:.48em;
  border-top:1.5px solid currentColor;
  border-right:1.5px solid currentColor;
}
.lk-arrow-icon::after {
  content:"";
  position:absolute;
  left:.08em;
  bottom:.10em;
  width:.68em;
  height:1.5px;
  background:currentColor;
  transform:rotate(-45deg);
  transform-origin:left center;
}
.lk-arrow-icon-inline { margin-left:.42em; vertical-align:.03em; }
.lk-next-arrow { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; font-size:25px; }
.lk-site-footer { border-top:1px solid var(--lk-line); padding-block:22px 34px; font-size:11px; text-transform:uppercase; letter-spacing:.03em; }
.lk-footer-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.lk-socials, .lk-legal { display:flex; flex-wrap:wrap; gap:18px; }
.lk-site-footer a:hover { color:var(--lk-accent); }

/* Project archive */
.lk-archive-hero { padding-block:clamp(70px,9vw,140px) clamp(50px,7vw,100px); display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:end; }
.lk-archive-hero h1 { margin:0; font-size:clamp(74px,10vw,170px); line-height:.78; letter-spacing:-.075em; text-transform:uppercase; }
.lk-archive-intro { max-width:36ch; margin:0 0 7px auto; font-size:15px; }
.lk-archive-intro-line { display:block; }

/* Single project */

.lk-project-back {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  margin-bottom:clamp(24px,2.5vw,38px);
  color:var(--lk-ink);
  transition:color .2s ease, transform .2s var(--lk-ease);
}
.lk-project-back:hover { color:var(--lk-accent); transform:translateX(-3px); }
.lk-project-back-icon {
  position:relative;
  display:block;
  width:28px;
  height:14px;
}
.lk-project-back-icon::before {
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:28px;
  height:1.5px;
  background:currentColor;
  transform:translateY(-50%);
}
.lk-project-back-icon::after {
  content:"";
  position:absolute;
  left:1px;
  top:50%;
  width:9px;
  height:9px;
  border-left:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:translateY(-50%) rotate(45deg);
}
@media (min-width: 981px) {
  .lk-project-hero-grid > :first-child { min-width:0; }
  .lk-project-heading { max-width:13.5ch; }
}
.lk-project-hero { padding-block:clamp(58px,6.5vw,96px) clamp(34px,4.5vw,64px); }
.lk-project-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(38px,5vw,78px); align-items:end; }
.lk-project-heading { margin:0; width:100%; max-width:13.5ch; font-size:clamp(44px,4.65vw,76px); line-height:.91; letter-spacing:-.048em; text-transform:uppercase; text-wrap:balance; overflow-wrap:normal; word-break:normal; }
.lk-project-lede { margin:28px 0 0; max-width:45ch; font-size:15px; }
.lk-project-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 34px; margin:0; }
.lk-project-facts div { border-top:1px solid var(--lk-line); padding-top:9px; }
.lk-project-facts dt { font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--lk-muted); }
.lk-project-facts dd { margin:5px 0 0; font-size:13px; }
.lk-project-cover { margin-top:clamp(50px,7vw,100px); }
.lk-project-cover img { width:100%; max-height:90svh; object-fit:cover; display:block; }
.lk-project-content { padding-block:clamp(30px,5vw,80px) clamp(80px,10vw,160px); }
.lk-project-content > * { max-width:840px; margin-left:auto; margin-right:auto; }
.lk-project-content > .alignwide { max-width:1220px; }
.lk-project-content > .alignfull { max-width:none; width:100%; }
.lk-project-content p { font-size:clamp(17px,1.4vw,21px); line-height:1.5; }
.lk-project-content h2 { margin-top:2.6em; font-size:clamp(34px,4vw,64px); letter-spacing:-.045em; line-height:.95; }
.lk-project-content h3 { margin-top:2em; font-size:clamp(24px,2.5vw,38px); letter-spacing:-.03em; }
.lk-project-content figure { margin-top:clamp(28px,5vw,70px); margin-bottom:clamp(28px,5vw,70px); }
.lk-project-content .wp-block-image img, .lk-project-content .wp-block-video video { width:100%; }
.lk-project-next { border-top:1px solid var(--lk-line); padding-block:40px 70px; }
.lk-project-next a { display:flex; justify-content:space-between; align-items:end; gap:30px; }
.lk-project-next-label { font-size:11px; text-transform:uppercase; color:var(--lk-muted); }
.lk-project-next-title { font-size:clamp(34px,5vw,76px); letter-spacing:-.05em; line-height:.95; }

/* Generic pages */
.lk-page { padding-block:clamp(70px,9vw,140px); }
.lk-page-head { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:end; margin-bottom:clamp(50px,7vw,100px); }
.lk-page-title { margin:0; font-size:clamp(70px,10vw,164px); line-height:.8; letter-spacing:-.075em; text-transform:uppercase; }
.lk-page-content { max-width:900px; font-size:clamp(17px,1.5vw,22px); line-height:1.5; }
.lk-page-content > *:first-child { margin-top:0; }
.lk-about-layout { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:clamp(40px,7vw,120px); align-items:start; }
.lk-about-portrait img { width:100%; display:block; }

.lk-about-layout-text-only {
  grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);
}
.lk-about-ident { max-width:560px; }
.lk-about-ident p { margin:0; }
.lk-about-name {
  margin-bottom:8px!important;
  font-weight:700;
  font-size:clamp(26px,3vw,46px);
  letter-spacing:-.04em;
  line-height:.95;
}
.lk-about-role { font-size:clamp(18px,1.6vw,24px); line-height:1.35; }
.lk-about-location { margin-top:18px!important; color:var(--lk-muted); font-size:clamp(14px,1.15vw,18px); }
.lk-about-content { max-width:720px; }
.lk-about-content p { margin-top:0; margin-bottom:1.1em; }


/* About + Contact page refinement */
.lk-contact-page .lk-page-title,
.lk-about-page .lk-page-title {
  font-size:clamp(54px, 7vw, 112px);
  line-height:.92;
  letter-spacing:-.052em;
}
.lk-contact-page .lk-page-title::after,
.lk-about-page .lk-page-title::after {
  content:".";
  color:var(--lk-accent);
}

.lk-contact-mail { display:inline-block; font-size:clamp(35px,5vw,80px); line-height:.95; letter-spacing:-.05em; border-bottom:2px solid currentColor; overflow-wrap:anywhere; }


.lk-contact-layout { display:block; }
.lk-contact-ident { max-width:560px; font-size:clamp(16px,1.35vw,20px); line-height:1.35; }
.lk-contact-ident p { margin:0; max-width:30ch; }
.lk-contact-ident .lk-contact-name { margin-bottom:8px; font-weight:700; font-size:clamp(26px,3vw,46px); letter-spacing:-.04em; line-height:.95; }
.lk-contact-role { font-size:clamp(18px,1.6vw,24px); line-height:1.35; }
.lk-contact-inline-mail { margin-top:10px!important; font-size:clamp(18px,1.6vw,24px); line-height:1.35; }
.lk-contact-inline-mail a { border-bottom:1px solid currentColor; }
.lk-contact-inline-mail a:hover { color:var(--lk-accent); border-color:var(--lk-accent); }

/* WordPress basics */
.alignwide { margin-left:auto; margin-right:auto; }
.wp-block-columns { gap:clamp(14px,2vw,30px); }
.wp-block-separator { border:0; border-top:1px solid var(--lk-line); }
.screen-reader-text { position:absolute!important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden; }

@media (min-width: 981px) {
  .lk-display-row-2 .lk-display-item { font-size:clamp(54px, 6.7vw, 108px); }
}

@media (max-width: 980px) {
  .lk-project-back { display:none; }
  .lk-hero { min-height:auto; padding-top:72px; }
  .lk-display-item, .lk-display-dot { font-size:clamp(50px,9.2vw,88px); }
  .lk-display-categories { max-width:100%; }
  .lk-display-row { max-width:100%; }
  .lk-hero-copy { max-width:400px; }
  .lk-project-card.lk-size-large { grid-column:span 12; }
  .lk-project-card.lk-size-medium { grid-column:span 6; }
  .lk-project-card.lk-size-small { grid-column:span 6; }
  .lk-project-hero-grid, .lk-page-head, .lk-archive-hero, .lk-about-layout, .lk-about-layout-text-only, .lk-contact-layout { grid-template-columns:1fr; }
  .lk-archive-intro { margin-left:0; }
}

@media (max-width: 720px) {
  .lk-project-heading { font-size:clamp(38px,12vw,58px); max-width:12ch; }
  .lk-header-inner { min-height:56px; }
  .lk-menu-toggle { display:block; }
  .lk-nav-wrap { position:fixed; inset:57px 0 auto; background:var(--lk-bg); border-bottom:1px solid var(--lk-line); transform:translateY(-130%); opacity:0; pointer-events:none; transition:.3s var(--lk-ease); }
  body.lk-menu-open .lk-nav-wrap { transform:none; opacity:1; pointer-events:auto; }
  .lk-nav { min-height:calc(100svh - 57px); flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:0; padding:28px var(--lk-gutter) 60px; }
  .lk-nav a { display:block; font-size:clamp(42px,13vw,72px); font-weight:700; letter-spacing:-.055em; line-height:1; padding:13px 0; }
  .lk-nav a::after { display:none; }
  body.lk-menu-open { overflow:hidden; }
  .lk-hero { padding-top:54px; padding-bottom:64px; }
  .lk-display-row { gap:8px 10px; }
  .lk-display-row-1 { margin-bottom:12px; }
  .lk-display-item, .lk-display-dot { font-size:clamp(34px,10.5vw,60px); }
  .lk-display-item { line-height:.92; }
  .lk-hero-copy { margin-top:30px; }
  .lk-section-head { align-items:flex-start; flex-direction:column; }
  .lk-project-grid { gap:30px 10px; }
  .lk-project-card, .lk-project-card.lk-size-large, .lk-project-card.lk-size-medium, .lk-project-card.lk-size-small { grid-column:span 12; }
  .lk-project-thumb, .lk-size-large .lk-project-thumb { aspect-ratio:4/3; }
  .lk-project-meta { font-size:11px; }
  .lk-cta-row, .lk-footer-inner { align-items:flex-start; flex-direction:column; }
  .lk-project-facts { grid-template-columns:1fr 1fr; }

  /* Mobile viewport / overflow hardening */
  .lk-shell { width:100%; max-width:100%; padding-left:20px; padding-right:20px; }
  .lk-project-hero, .lk-project-content, .lk-work, .lk-cta, .lk-site-footer { max-width:100%; overflow-x:clip; }
  .lk-project-hero-grid, .lk-project-facts, .lk-project-content, .lk-project-content > *, .lk-project-content figure, .lk-project-content img, .lk-project-content video { min-width:0; max-width:100%; }
  .lk-project-content > .alignwide, .lk-project-content > .alignfull { width:100%; max-width:100%; margin-left:auto; margin-right:auto; }

  /* Project title: consistent mobile measure */
  .lk-project-heading {
    width:100%;
    max-width:100%;
    font-size:clamp(38px,11.2vw,50px);
    line-height:.91;
    letter-spacing:-.048em;
    overflow-wrap:break-word;
    word-break:normal;
    hyphens:none;
    text-wrap:balance;
  }

  /* Footer CTA: controlled two-line treatment */
  .lk-cta-title {
    max-width:12ch;
    font-size:clamp(32px,10.2vw,46px);
    line-height:.92;
    letter-spacing:-.045em;
  }
  .lk-cta-line { display:block; white-space:nowrap; }
}


@media (max-width: 520px) {
  .lk-cta-title { font-size:clamp(31px,9.7vw,40px); letter-spacing:-.042em; }
}



@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}



/* Project image interaction */
.lk-project-content .lk-lightbox-item {
  position:relative;
  display:block;
  overflow:hidden;
}
.lk-project-content .lk-lightbox-item img[data-lk-lightbox="true"] {
  display:block;
  transition:transform .32s var(--lk-ease);
}
@media (hover:hover) and (pointer:fine) {
  .lk-project-content .lk-lightbox-item:hover img[data-lk-lightbox="true"] { transform:scale(1.008); }
}

/* Project content carousel / lightbox */
.lk-project-content img[data-lk-lightbox="true"] {
  cursor: zoom-in;
}
.lk-project-content img[data-lk-lightbox="true"]:focus-visible {
  outline: 3px solid var(--lk-accent);
  outline-offset: 5px;
}
body.lk-lightbox-open { overflow: hidden; }
.lk-lightbox[hidden] { display: none !important; }
.lk-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  opacity: 0;
  transition: opacity .18s ease;
}
.lk-lightbox.is-open { opacity: 1; }
.lk-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(16,16,16,.92);
  cursor: zoom-out;
}
.lk-lightbox-panel {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-rows: auto minmax(0,1fr) auto;
  padding: clamp(14px,2vw,28px);
  color: #f3f1ec;
  outline: 0;
}
.lk-lightbox-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 48px;
}
.lk-lightbox-counter {
  font-size: 12px;
  letter-spacing: .08em;
  font-variant-numeric: tabular-nums;
}
.lk-lightbox-close,
.lk-lightbox-nav,
.lk-lightbox-thumb {
  appearance: none;
  border: 0;
  color: inherit;
  background: transparent;
  cursor: pointer;
}
.lk-lightbox-close {
  position: fixed;
  top: clamp(16px, 2vw, 28px);
  right: clamp(16px, 2vw, 28px);
  z-index: 5;
  min-width: 104px;
  height: 46px;
  padding: 0 14px 0 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 999px;
  background: var(--lk-accent);
  color: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  box-shadow: 0 6px 24px rgba(0,0,0,.16);
}
.lk-lightbox-close-label {
  font-size: 11px;
  line-height: 1;
  letter-spacing: .08em;
  font-weight: 700;
}
.lk-lightbox-close-icon {
  font-size: 25px;
  line-height: .8;
  font-weight: 300;
  margin-top: -2px;
}
.lk-lightbox-close:hover,
.lk-lightbox-close:focus-visible {
  background: #fff;
  color: var(--lk-ink);
}
.lk-lightbox-stage {
  min-height: 0;
  display: grid;
  grid-template-columns: 64px minmax(0,1fr) 64px;
  align-items: center;
  gap: clamp(8px,2vw,24px);
}
.lk-lightbox-media-wrap {
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
}
.lk-lightbox-media {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(100vh - 210px);
  object-fit: contain;
}
.lk-lightbox-nav {
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 22px;
  transition: background .2s ease, border-color .2s ease;
}
.lk-lightbox-nav:hover,
.lk-lightbox-nav:focus-visible {
  background: var(--lk-accent);
  border-color: var(--lk-accent);
  outline: none;
}
.lk-lightbox-meta {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(240px,560px);
  gap: 24px;
  align-items: end;
  padding-top: 16px;
}
.lk-lightbox-caption {
  margin: 0;
  max-width: 60ch;
  font-size: 12px;
  color: rgba(243,241,236,.78);
}
.lk-lightbox-filmstrip {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 2px;
}
.lk-lightbox-filmstrip::-webkit-scrollbar { display: none; }
.lk-lightbox-thumb {
  flex: 0 0 58px;
  width: 58px;
  height: 44px;
  padding: 0;
  opacity: .45;
  border: 2px solid transparent;
  transition: opacity .2s ease, border-color .2s ease;
}
.lk-lightbox-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lk-lightbox-thumb:hover { opacity: .8; }
.lk-lightbox-thumb.is-active {
  opacity: 1;
  border-color: var(--lk-accent);
}

@media (max-width: 720px) {
  .lk-lightbox-close {
    top: 12px;
    right: 12px;
    min-width: 48px;
    width: 48px;
    height: 48px;
    padding: 0;
    border-radius: 50%;
  }
  .lk-lightbox-close-label { display: none; }
  .lk-lightbox-close-icon { font-size: 28px; }
  .lk-lightbox-panel { padding: 12px; }
  .lk-lightbox-stage {
    grid-template-columns: 42px minmax(0,1fr) 42px;
    gap: 4px;
  }
  .lk-lightbox-nav {
    width: 38px;
    height: 38px;
    font-size: 18px;
  }
  .lk-lightbox-media { max-height: calc(100vh - 190px); }
  .lk-lightbox-meta {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .lk-lightbox-filmstrip { justify-content: flex-start; }
  .lk-lightbox-thumb { flex-basis: 48px; width:48px; height:36px; }
}

@media (prefers-reduced-motion: reduce) {
  .lk-lightbox { transition: none; }
}


/* v0.1.27 — curated landing page, Work archive and PDF portfolio */
.lk-display-item[href] { color:inherit; text-decoration:none; }
.lk-home-featured .lk-featured-grid .lk-project-card,
.lk-home-featured .lk-featured-grid .lk-project-card.lk-size-large,
.lk-home-featured .lk-featured-grid .lk-project-card.lk-size-medium,
.lk-home-featured .lk-featured-grid .lk-project-card.lk-size-small { grid-column:1 / -1; width:100%; }
.lk-home-featured .lk-featured-grid .lk-project-thumb { aspect-ratio:16 / 9; }
.lk-home-featured .lk-featured-grid .lk-project-title { font-size:clamp(16px,1.4vw,22px); }
.lk-home-featured .lk-featured-grid .lk-project-sub,
.lk-home-featured .lk-featured-grid .lk-project-year { font-size:13px; }
.lk-section-link { margin-bottom:4px; white-space:nowrap; }
.lk-work-hero { padding-bottom:clamp(34px,4vw,58px); }
.lk-work-hero > div { min-width:0; }
.lk-work-hero .lk-kicker { margin-bottom:12px; display:block; }
.lk-work-archive { padding-top:0; }

.lk-pdf-page { padding-bottom:clamp(80px,10vw,150px); }
.lk-page-head-compact { margin-bottom:clamp(36px,5vw,68px); }
.lk-page-title-dot span { color:var(--lk-accent); }
.lk-pdf-actions { display:flex; flex-wrap:wrap; gap:18px 28px; margin-bottom:34px; }
.lk-pdf-viewer { width:100%; min-height:760px; border-top:1px solid var(--lk-line); padding-top:24px; }
.lk-pdf-viewer object { width:100%; height:min(82vh,1100px); min-height:720px; border:0; background:#fff; }
.lk-pdf-empty { max-width:620px; padding-block:clamp(30px,5vw,70px); border-top:1px solid var(--lk-line); }
.lk-pdf-empty p { font-size:clamp(17px,1.4vw,22px); line-height:1.45; }
.lk-pdf-empty-title { font-size:clamp(30px,4vw,58px)!important; font-weight:700; letter-spacing:-.045em; margin-top:0; }

@media (max-width:720px) {
  .lk-home-featured .lk-section-head { gap:20px; }
  .lk-home-featured .lk-featured-grid .lk-project-thumb { aspect-ratio:4 / 3; }
  .lk-size-large .lk-project-thumb img,
  .lk-home-featured .lk-featured-grid .lk-project-thumb img { object-position:var(--lk-preview-x,50%) var(--lk-preview-y,50%); transform:scale(var(--lk-preview-zoom,1)); transform-origin:var(--lk-preview-x,50%) var(--lk-preview-y,50%); }
  .lk-section-link { margin-top:0; }
  .lk-pdf-viewer { min-height:0; }
  .lk-pdf-viewer object { min-height:560px; height:70vh; }
}


@media (max-width: 720px) {
  .lk-subfilter-row { justify-content:flex-start; align-items:flex-start; flex-direction:column; gap:10px; margin-top:-10px; }
  .lk-subfilter { gap:10px 16px; }
}


/* Dynamic portfolio PDF -------------------------------------------------- */
.lk-pdf-page { padding-bottom:clamp(80px,10vw,150px); }
.lk-pdf-page .lk-page-head { align-items:end; }
.lk-pdf-intro { max-width:38ch; margin:0 0 8px auto; font-size:15px; line-height:1.4; }
.lk-pdf-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; margin:0 0 18px; }
.lk-pdf-button { appearance:none; border:1px solid var(--lk-ink); background:transparent; color:var(--lk-ink); font:inherit; font-size:12px; text-transform:uppercase; letter-spacing:.04em; font-weight:700; padding:11px 14px; cursor:pointer; transition:background .2s ease,color .2s ease,border-color .2s ease; }
.lk-pdf-button:hover { border-color:var(--lk-accent); color:var(--lk-accent); }
.lk-pdf-button-primary { background:var(--lk-accent); border-color:var(--lk-accent); color:#fff; }
.lk-pdf-button-primary:hover { background:var(--lk-ink); border-color:var(--lk-ink); color:#fff; }
.lk-pdf-button-quiet { opacity:.6; }
.lk-pdf-button[disabled] { opacity:.45; cursor:wait; }
.lk-pdf-status { margin-left:auto; font-size:12px; color:var(--lk-muted); }
.lk-pdf-admin-note { margin:0 0 28px; padding:12px 14px; border-left:3px solid var(--lk-accent); background:rgba(64,85,255,.055); font-size:13px; }
.lk-pdf-preview-shell { padding-top:24px; border-top:1px solid var(--lk-line); overflow:hidden; }
.lk-pdf-document { width:210mm; margin:0 auto; }
.lk-pdf-sheet { width:210mm; height:297mm; position:relative; overflow:hidden; box-sizing:border-box; padding:15mm; background:#f3f1ec; color:#161616; font-family:"Helvetica Neue", Helvetica, Arial, sans-serif; page-break-after:always; break-after:page; box-shadow:0 12px 35px rgba(0,0,0,.08); margin:0 auto 28px; }
.lk-pdf-sheet:last-child { page-break-after:auto; break-after:auto; }
.lk-pdf-wordmark { font-size:27px; font-weight:800; letter-spacing:-.055em; line-height:1; }
.lk-pdf-wordmark::first-letter { letter-spacing:-.04em; }
.lk-pdf-cover-top { display:flex; justify-content:space-between; gap:20mm; border-bottom:.25mm solid #d5d1ca; padding-bottom:8mm; }
.lk-pdf-cover-contact { display:flex; flex-direction:column; gap:1.2mm; min-width:58mm; font-size:8.5pt; line-height:1.25; text-transform:uppercase; letter-spacing:.02em; }
.lk-pdf-cover-main { position:absolute; left:15mm; right:15mm; top:84mm; }
.lk-pdf-eyebrow,.lk-pdf-sheet-kicker { display:flex; align-items:center; gap:2.5mm; font-size:8pt; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.lk-pdf-square { width:2.1mm; height:2.1mm; display:inline-block; background:#4055ff; flex:0 0 auto; }
.lk-pdf-cover-main h2 { margin:6mm 0 0; max-width:175mm; font-size:48pt; line-height:.88; letter-spacing:-.06em; text-transform:uppercase; font-weight:800; }
.lk-pdf-blue-dot { display:inline-block; width:3.3mm; height:3.3mm; margin:0 3.2mm 1.5mm; background:#4055ff; vertical-align:baseline; }
.lk-pdf-cover-bottom { position:absolute; left:15mm; right:15mm; bottom:15mm; display:flex; justify-content:space-between; gap:20mm; padding-top:7mm; border-top:.25mm solid #d5d1ca; font-size:9pt; }

.lk-pdf-profile-sheet { padding-top:16mm; }
.lk-pdf-profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:14mm; margin-top:14mm; padding-bottom:14mm; border-bottom:.25mm solid #d5d1ca; }
.lk-pdf-profile-grid h2 { margin:0; font-size:42pt; line-height:.86; letter-spacing:-.06em; text-transform:uppercase; }
.lk-pdf-about-copy { font-size:10.5pt; line-height:1.5; }
.lk-pdf-about-copy p { margin:0 0 4mm; }
.lk-pdf-index { margin-top:12mm; }
.lk-pdf-index-head { display:flex; align-items:end; justify-content:space-between; gap:10mm; padding-bottom:4mm; border-bottom:.25mm solid #d5d1ca; }
.lk-pdf-index-head h3 { margin:0; font-size:21pt; text-transform:uppercase; letter-spacing:-.04em; }
.lk-pdf-index-head span { font-size:8.5pt; color:#77746f; }
.lk-pdf-index ol { list-style:none; margin:0; padding:0; }
.lk-pdf-index li { display:grid; grid-template-columns:11mm minmax(0,1.1fr) minmax(0,.9fr) 15mm; gap:4mm; align-items:start; padding:3.6mm 0; border-bottom:.2mm solid #d5d1ca; font-size:8.7pt; }
.lk-pdf-index-number { color:#4055ff; font-weight:700; }
.lk-pdf-index-title { font-weight:700; }
.lk-pdf-index-category { color:#77746f; }
.lk-pdf-index-year { text-align:right; color:#77746f; }

.lk-pdf-project-sheet { padding-bottom:13mm; }
.lk-pdf-project-heading-row { display:grid; grid-template-columns:minmax(0,1fr) 18mm; gap:8mm; align-items:start; }
.lk-pdf-project-heading-row h2 { margin:4mm 0 0; max-width:158mm; font-size:29pt; line-height:.92; letter-spacing:-.05em; text-transform:uppercase; font-weight:800; }
.lk-pdf-project-number { font-size:23pt; line-height:1; color:#4055ff; font-weight:700; text-align:right; letter-spacing:-.04em; }
.lk-pdf-facts { margin-top:8mm; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4mm; }
.lk-pdf-facts > div { border-top:.25mm solid #d5d1ca; padding-top:2.2mm; min-width:0; }
.lk-pdf-facts span { display:block; margin-bottom:1mm; color:#77746f; font-size:6.7pt; letter-spacing:.07em; text-transform:uppercase; }
.lk-pdf-facts strong { display:block; font-size:8.4pt; line-height:1.28; font-weight:500; overflow-wrap:anywhere; }
.lk-pdf-main-image { position:relative; width:100%; height:112mm; margin-top:8mm; overflow:hidden; background:#ddd9d2; }
.lk-pdf-main-image img { width:100%; height:100%; object-fit:cover; object-position:var(--pdf-x,50%) var(--pdf-y,50%); transform:scale(var(--pdf-zoom,1)); transform-origin:var(--pdf-x,50%) var(--pdf-y,50%); display:block; }
.lk-pdf-image-placeholder { display:grid; place-items:center; text-transform:uppercase; font-size:8pt; color:#77746f; }
.lk-pdf-project-bottom { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:7mm; margin-top:7mm; }
.lk-pdf-project-bottom-text-only { grid-template-columns:1fr; max-width:125mm; }
.lk-pdf-project-description { font-size:8.7pt; line-height:1.45; }
.lk-pdf-project-description p { margin:0 0 3mm; }
.lk-pdf-project-description a { color:#161616; text-decoration:none; border-bottom:.25mm solid #161616; padding-bottom:.5mm; font-size:7.5pt; }
.lk-pdf-secondary-images { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3mm; }
.lk-pdf-secondary-images figure { margin:0; height:40mm; background:#ddd9d2; overflow:hidden; }
.lk-pdf-secondary-images img { width:100%; height:100%; object-fit:cover; display:block; }
.lk-pdf-sheet-footer { position:absolute; left:15mm; right:15mm; bottom:7mm; display:flex; justify-content:space-between; gap:10mm; color:#77746f; font-size:6.5pt; text-transform:uppercase; letter-spacing:.04em; }

.lk-pdf-end-sheet { display:flex; flex-direction:column; justify-content:space-between; }
.lk-pdf-end-main { margin-top:50mm; }
.lk-pdf-end-main h2 { margin:6mm 0 0; max-width:180mm; font-size:45pt; line-height:.9; letter-spacing:-.06em; text-transform:uppercase; }
.lk-pdf-end-main h2 span { color:#4055ff; }
.lk-pdf-end-contact { display:flex; flex-direction:column; align-items:flex-start; gap:2mm; padding-top:8mm; border-top:.25mm solid #d5d1ca; font-size:11pt; }
.lk-pdf-end-contact strong { font-size:17pt; letter-spacing:-.03em; }
.lk-pdf-end-contact a { color:#161616; text-decoration:none; border-bottom:.25mm solid currentColor; }

body.lk-pdf-exporting { cursor:progress; }
body.lk-pdf-exporting .lk-pdf-button { pointer-events:none; }

@media (max-width: 980px) {
  .lk-pdf-intro { margin-left:0; }
  .lk-pdf-status { width:100%; margin-left:0; }
  .lk-pdf-preview-shell { margin-inline:calc(var(--lk-gutter) * -1); padding-inline:var(--lk-gutter); }
  .lk-pdf-document { transform-origin:top left; }
}

@media (max-width: 720px) {
  .lk-pdf-actions { align-items:stretch; }
  .lk-pdf-button { flex:1 1 auto; min-height:44px; }
  .lk-pdf-preview-shell { overflow:auto; }
  .lk-pdf-document { width:210mm; }
  .lk-pdf-sheet { box-shadow:0 8px 25px rgba(0,0,0,.07); }
}

@media print {
  @page { size:A4 portrait; margin:0; }
  html, body { background:#f3f1ec !important; }
  .lk-site-header, .lk-pdf-ui, .lk-cta, .lk-site-footer, #wpadminbar { display:none !important; }
  .lk-pdf-page, .lk-shell { width:auto !important; max-width:none !important; padding:0 !important; margin:0 !important; }
  .lk-pdf-preview-shell { padding:0 !important; border:0 !important; overflow:visible !important; }
  .lk-pdf-document { width:210mm !important; margin:0 !important; }
  .lk-pdf-sheet { box-shadow:none !important; margin:0 !important; }
}

.lk-pdf-render-source { position:absolute; left:-100000px; top:0; width:210mm; margin:0; padding:0; background:#f3f1ec; z-index:-9999; }
.lk-pdf-render-source .lk-pdf-sheet { margin:0 !important; box-shadow:none !important; }
