/* ============================================================
   Вратите към стаите, призмата и краткото „За мен“.
   Всяка врата има --door-bg (фон), --door-fg (текст) и --door-label (надзаглавие);
   идват от полето „Стая“ или от „Цветове“ в елемента.
   ============================================================ */

/* Playfair Display, курсив: вторият ред на авторската врата („проекти“) */
@font-face { font-family: 'Plabo Playfair'; font-style: italic; font-display: swap; font-weight: 400 900; src: url(fonts/playfair-display-cyrillic-wght-italic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Plabo Playfair'; font-style: italic; font-display: swap; font-weight: 400 900; src: url(fonts/playfair-display-latin-wght-italic.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---------- зоната: докато фонът тече, цветовете идват от скрипта (на всички секции наведнъж) ---------- */
.pfx[data-pfx-zone] { background-color: var(--door-bg); color: var(--door-fg); }

/* ---------- врата ---------- */
.pfx.door { position: relative; display: block; overflow: clip; background-color: var(--door-bg); color: var(--door-fg); text-decoration: none; }
.pfx.door:hover, .pfx.door:focus { color: var(--door-fg); }
.pfx.door .label { color: var(--door-label, currentColor); }
/* текстът следва цвета на вратата (и на зоната), а не „.light p“ / „.dark p“ на Salient според реда */
.pfx.door .door-copy p, .pfx .me-big { color: inherit; }
.pfx.door .door-body { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(28px, 5vw, 90px); min-height: 92svh; padding-block: 90px; }
.pfx.door .door-t { display: flex; flex-direction: column; margin-top: 24px; font-size: clamp(46px, 9vw, 152px); line-height: .9; letter-spacing: -.055em; }
.pfx.door .door-t .t1 { font-weight: 800; }
.pfx.door .door-t .t2 { font-weight: 200; }
.pfx.door .door-copy > p { margin-top: 24px; max-width: 440px; font-size: clamp(18px, 1.6vw, 22px); line-height: 1.5; }
.pfx.door .door-copy > .link { margin-top: 30px; }
.pfx.door .door-copy > .link::after { transform-origin: right; }
.pfx.door:hover .door-copy > .link::after { transform: scaleX(0); }

/* Сватби: „Сватбена“ плътно, „фотография“ тънко и курсивно, наполовина */
.pfx.door-svatbi .door-t .t2 { font-size: .5em; font-style: italic; letter-spacing: -.03em; margin-top: .1em; }
/* Авторски: първата дума с главни букви, втората с Playfair курсив */
.pfx.door-avtorski .door-t .t1 { font-weight: 900; text-transform: uppercase; letter-spacing: -.045em; }
.pfx.door-avtorski .door-t .t2 { font-family: 'Plabo Playfair', 'Playfair Display', Georgia, serif; font-style: italic; font-weight: 400; letter-spacing: -.01em; font-size: .8em; margin-top: .02em; }
/* Медитация: тънко и още по-тънко */
.pfx.door-meditacia .door-t .t1 { font-weight: 300; }
.pfx.door-meditacia .door-t .t2 { font-size: .55em; }

/* снимка в арка */
.pfx.door .door-photo { position: relative; aspect-ratio: 4 / 5; max-height: 76svh; justify-self: center; width: min(100%, 520px); border-radius: 999px 999px 10px 10px; overflow: clip; box-shadow: 0 60px 120px -50px rgba(60, 48, 0, .55); }
.pfx.door .door-photo .img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 2.2s var(--ease-out), opacity .9s; }
.pfx.door:hover .door-photo .img { transform: scale(1.07); }

/* фенерче: снимката е в мрака, светлината около мишката я разкрива; отгоре и отдолу меко избледнява */
.pfx.door.v-flashlight .door-body { grid-template-columns: minmax(0, 1fr); align-items: end; min-height: 112svh; padding-block: 180px 140px; }
.pfx .door-light { position: absolute; inset: 0; overflow: clip; --fl-in: 40px; --fl-out: 420px; --fl-core: .3;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 26%, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, #000 26%, #000 70%, transparent 100%); }
.pfx .door-light .dl-img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.pfx .door-light .dl-dark { position: absolute; inset: 0; background: radial-gradient(circle at var(--mx, 70%) var(--my, 50%), rgb(0 0 0 / var(--fl-core)) var(--fl-in), rgb(0 0 0 / .97) var(--fl-out)); }

/* мандала и дишане */
.pfx .door-mandala { position: absolute; z-index: 0; right: -8vw; top: 50%; width: min(118vw, 1360px); color: currentColor; opacity: .26; transform: translateY(-50%); }
.pfx.door .door-br { justify-self: center; }

/* снимка встрани: половината от вратата, отваря се изцяло при посочване */
.pfx .door-side { position: absolute; right: 0; top: 0; bottom: 0; width: 46%; overflow: clip; clip-path: inset(0 0 0 30%); transition: clip-path 1.4s var(--ease-io); }
.pfx .door-side .img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 2.2s var(--ease-out); }
.pfx.door.side-left .door-side { right: auto; left: 0; clip-path: inset(0 30% 0 0); }
.pfx.door:hover .door-side { clip-path: inset(0 0 0 0); }
.pfx.door:hover .door-side .img { transform: none; }
.pfx.door.v-side .door-body { grid-template-columns: minmax(0, 1fr); }
.pfx.door.v-side .door-copy { max-width: 50%; }
.pfx.door.v-side.side-left .door-copy { justify-self: end; text-align: right; }
.pfx.door.v-side.side-left .door-copy > p { margin-left: auto; }

/* ---------- врата-лента (по-ниска, като на „Събития“) ---------- */
.pfx.door.l-band .door-body { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; min-height: 0; padding-block: clamp(100px, 16vh, 190px); }
.pfx.door.l-band .door-copy { display: grid; gap: 20px; justify-items: start; }
.pfx.door.l-band.side-left .door-copy { justify-items: end; }
.pfx.door.l-band .door-t { display: block; margin-top: 0; font-size: clamp(42px, 6vw, 110px); line-height: 1; letter-spacing: -.045em; max-width: 9em; }
.pfx.door.l-band .door-t > span { display: inline; }
.pfx.door.l-band .door-copy > p { margin-top: 0; max-width: 26em; font-size: 19px; line-height: 1.6; }
.pfx.door.l-band .door-copy > .link { margin-top: 0; }
/* Сватби като лента: „Сватба ли“ тънко курсивно, „планирате?“ по-плътно курсивно */
.pfx.door.l-band.door-svatbi .door-t .t1 { font-weight: 200; font-style: italic; }
.pfx.door.l-band.door-svatbi .door-t .t2 { font-size: 1em; margin: 0; font-weight: 600; font-style: italic; letter-spacing: inherit; }
/* Бизнес като лента (реклама): два реда, тънко и плътно */
.pfx.door.l-band.door-biznes .door-t { font-size: clamp(34px, 3.6vw, 70px); max-width: none; }
.pfx.door.l-band.door-biznes .door-t > span { display: block; }
.pfx.door.l-band.door-biznes .door-t .t1 { font-weight: 200; }
.pfx.door.l-band.door-biznes .door-t .t2 { font-weight: 800; }
.pfx.door.l-band.door-biznes .label { opacity: .7; }

/* ---------- въведение: „Същата светлина, различни пространства.“ и призмата ---------- */
.pfx.doors-intro { position: relative; overflow-x: clip; background-color: var(--door-bg); color: var(--door-fg); }
.pfx .doors-intro-in { position: relative; min-height: clamp(460px, 62vh, 720px); display: flex; align-items: center; }
.pfx .doors-intro-in > .di-copy { position: relative; z-index: 1; max-width: 640px; }
.pfx .di-t { font-size: clamp(38px, 4.6vw, 80px); line-height: 1.04; letter-spacing: -.035em; font-weight: 200; }
.pfx .di-t b { font-weight: 800; }
.pfx .doors-lead { margin-top: 28px; max-width: 560px; color: color-mix(in srgb, currentColor 66%, transparent); }
.pfx .prism { position: absolute; z-index: 0; right: -2%; top: 50%; width: min(70vw, 1180px); height: auto; overflow: visible; transform: translateY(-50%); pointer-events: none; }
.pfx .prism path { fill: none; stroke-width: var(--u, 1); }
.pfx .pr-beam { stroke: currentColor; stroke-width: calc(1.2 * var(--u, 1)); stroke-opacity: .22; stroke-dasharray: 1; }
.pfx .pr-edge { stroke: currentColor; stroke-width: calc(1.4 * var(--u, 1)); stroke-opacity: .5; stroke-dasharray: 1; stroke-linecap: round; }
.pfx .pr-edge.is-back { stroke-width: var(--u, 1); stroke-opacity: .16; stroke-dasharray: .025 .02; }
.pfx .pr-hatch { stroke: currentColor; stroke-width: var(--u, 1); stroke-dasharray: 1; }
.pfx .pr-glass { stroke: currentColor; stroke-width: calc(2 * var(--u, 1)); stroke-opacity: .4; stroke-dasharray: 1; }
.pfx .pr-fan { stroke: currentColor; stroke-width: var(--u, 1); stroke-opacity: .13; stroke-dasharray: 1; }
.pfx .pr-ray { stroke-width: calc(1.5 * var(--u, 1)); stroke-opacity: .55; stroke-dasharray: 1; }
.pfx .pr-flow { stroke: currentColor; stroke-width: calc(1.6 * var(--u, 1)); stroke-opacity: .35; stroke-dasharray: .05 .95; stroke-linecap: round; animation: pfx-pr-flow 5.5s linear var(--fd, 0s) infinite; animation-play-state: paused; }
.pfx .prism[data-vis] .pr-flow, .pfx .prism[data-vis] .pr-orbits path { animation-play-state: running; }
.pfx .pr-flow.is-c { stroke-width: calc(2.2 * var(--u, 1)); stroke-opacity: .9; }
@keyframes pfx-pr-flow { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
.pfx .pr-orbits path { stroke: currentColor; stroke-opacity: .12; stroke-dasharray: 2 9; animation: pfx-pr-orbit 60s linear infinite; animation-play-state: paused; }
.pfx .pr-orbits path:nth-child(2) { stroke-dasharray: 1 5; stroke-opacity: .16; animation-direction: reverse; animation-duration: 80s; }
@keyframes pfx-pr-orbit { to { stroke-dashoffset: -440; } }
.pfx .pr-lab { font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.pfx .pr-plus path { stroke: currentColor; stroke-width: 1; stroke-opacity: .3; }

/* ---------- кратко „За мен“ ---------- */
.pfx.me { background-color: var(--door-bg); color: var(--door-fg); }
.pfx .me-in { display: grid; grid-template-columns: 4fr 7fr; gap: clamp(32px, 6vw, 110px); align-items: center; }
.pfx .me-copy > * + * { margin-top: 26px; }
.pfx .me-big { font-size: clamp(26px, 3vw, 46px); line-height: 1.24; letter-spacing: -.025em; font-weight: 200; }
.pfx .me-big b { font-weight: 800; }
.pfx .me-note { font-size: 17px; line-height: 1.6; color: color-mix(in srgb, currentColor 62%, transparent); }
.pfx .me-photo-plain { aspect-ratio: 4 / 5; overflow: clip; }

/* ---------- таблет и телефон ---------- */
@media (max-width: 1000px) {
  .pfx .door-mandala { right: -40vw; top: 64%; width: 150vw; opacity: .2; }
  .pfx .doors-intro-in { flex-direction: column; align-items: stretch; min-height: 0; padding-bottom: 20px; }
  .pfx .prism { position: relative; right: auto; top: auto; transform: none; width: 118%; max-width: none; margin: 12px -9% -20px; opacity: .9; }
  .pfx.door .door-body { grid-template-columns: minmax(0, 1fr); min-height: auto; padding-block: 110px; }
  .pfx.door .door-photo { justify-self: start; width: min(100%, 440px); }
  .pfx.door .door-br { justify-self: start; width: min(100%, 400px); }
  .pfx.door.v-flashlight .door-body { min-height: 96svh; }
  .pfx .me-in { grid-template-columns: minmax(0, 1fr); }
  .pfx .me-in .me-photo { max-width: 460px; }
}
@media (max-width: 900px) {
  .pfx .door-side { position: relative; width: 100%; height: 56vw; clip-path: none !important; }
  .pfx.door.side-left .door-side { left: auto; }
  .pfx.door.v-side .door-body { padding-top: 30px; }
  .pfx.door.v-side .door-copy { max-width: none; }
  .pfx.door.v-side.side-left .door-copy, .pfx.door.l-band.side-left .door-copy { justify-self: start; justify-items: start; text-align: left; }
  .pfx.door.v-side.side-left .door-copy > p { margin-left: 0; }
}
@media (max-width: 640px) {
  .pfx.door.v-flashlight .door-body { padding-block: 160px 90px; }
}
@media (prefers-reduced-motion: reduce) {
  .pfx .pr-flow { display: none; }
  .pfx .pr-orbits path { animation: none; }
  .pfx.door .door-photo .img, .pfx .door-side, .pfx .door-side .img { transition: none; }
}
