/* A signature forged in light: finite opening, continuous contour illumination. */
.site-entrance { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; overflow: auto; background: #0b111b; color: #f4efeb; overscroll-behavior: contain; touch-action: pan-y pinch-zoom; }
.site-entrance::backdrop { background: #0b111b; }
.site-entrance[open] { display: block; }
.entry-shell { position: relative; isolation: isolate; display: flex; flex-direction: column; min-height: 100svh; padding: clamp(24px, 4vh, 48px) clamp(24px, 4vw, 64px); overflow: hidden; }
.entry-shell::before { content: ''; position: absolute; z-index: -2; inset: 0; background: radial-gradient(ellipse at 82% 48%, #c7976420, transparent 42%), linear-gradient(115deg, #0b111b 42%, #13212d 100%); }
.entry-top, .entry-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; font: 500 10px/1.5 var(--mono); letter-spacing: .12em; }
.entry-top { padding-bottom: 22px; border-bottom: 1px solid #c29b7633; color: #d5b295; }
.entry-top > span:first-child { display: flex; align-items: center; gap: 17px; }
.entry-seal { display: inline-flex; align-items: center; justify-content: center; width: 35px; height: 35px; border: 1px solid #a9846455; font: 500 17px/1 var(--display); letter-spacing: -.06em; color: #f2b58f; }
.entry-edition { color: #968b85; }
.entry-center { position: relative; flex: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; text-align: left; padding: clamp(36px,7vh,84px) 0; }
.entry-kicker { margin: 0 0 32px; color: #c6a488; font: 500 10px/1.5 var(--mono); letter-spacing: .13em; }
.entry-kicker > span { margin-right: 16px; color: #f2b58f; }
.entry-name { margin: 0; font: 500 clamp(58px,7.1vw,112px)/.96 var(--display); letter-spacing: -.075em; }
.entry-name span { display: block; }
.entry-name span:first-child { color: #f4efeb; }
.entry-name span:last-child { color: #e7b68f; }
.entry-name span { animation: signature-type 1.15s cubic-bezier(.22,1,.36,1) both; }
.entry-name span:last-child { animation-delay: .1s; }
@keyframes signature-type { from { opacity: .7; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.entry-identity { margin: 30px 0 0; color: #c4b5ac; font-size: clamp(15px, 1.5vw, 20px); letter-spacing: -.02em; }
.entry-controls { margin-top: 38px; display: flex; align-items: center; gap: 23px; }
.entry-button { min-width: 242px; min-height: 60px; padding: 18px 23px; background-color: #f2b58f08; color: #f2b58f; border-color: #c28c69; border-radius: 2px; }
.entry-button:hover, .entry-button:focus-visible { transform: none; box-shadow: 0 0 0 1px #e5bb9655; }
.entry-button:focus-visible:not(:hover) { background-size: 0 100%; color: #f2b58f; outline: 1px solid #efc5a5; outline-offset: 5px; }
.entry-button:active, .entry-button.is-pressed { transform: none; background-size: 100% 100%; color: #0b111b; }
.entry-skip { min-height: 44px; padding: 10px 16px; border: 0; background: transparent; color: #bca798; font: 500 10px/1.5 var(--mono); letter-spacing: .08em; text-underline-offset: 5px; cursor: pointer; }
.entry-skip:hover, .entry-skip:focus-visible { color: #f4efeb; text-decoration: underline; }
.entry-bottom { padding-top: 22px; border-top: 1px solid #c29b7633; color: #968b85; }
.entry-bottom strong { color: #d5b295; font-weight: 400; }
.entry-art { position: absolute; z-index: -1; inset: 0; pointer-events: none; }
.entry-field { width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.entry-art__caption { position: absolute; right: 6%; bottom: 19%; font: 500 9px/1.5 var(--mono); letter-spacing: .16em; color: #a38e7b; animation: signature-caption 1s ease 2s both; }
.entry-current { fill: none; stroke: #c9a78b; stroke-width: .65; vector-effect: non-scaling-stroke; opacity: .17; stroke-dasharray: 1; stroke-dashoffset: 0; animation: signature-current 2.2s cubic-bezier(.4,0,.2,1) var(--delay) both; }
.entry-mark { opacity: .86; transition: opacity .5s; }
.entry-band { fill: none; stroke: url(#entry-metal); stroke-width: 1.7; stroke-linecap: round; vector-effect: non-scaling-stroke; transform-origin: 1060px 450px; animation: signature-gather 2.35s cubic-bezier(.22,1,.36,1) var(--delay) both; }
.entry-outline { fill: none; stroke: #efc6a4; stroke-width: .7; vector-effect: non-scaling-stroke; opacity: .35; stroke-dasharray: 1; animation: signature-outline 2.6s cubic-bezier(.4,0,.2,1) .3s both; }
.entry-metal-base { fill: #d9b28b; opacity: .035; }
.entry-contours, .entry-glints { opacity: 0; transition: opacity .7s; }
[data-phase="settled"] .entry-contours, [data-phase="settled"] .entry-glints { opacity: 1; }
.entry-contour { fill: none; stroke: #ffe7c8; stroke-width: 1.2; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: .065 .935; animation: signature-trace 9s linear var(--phase) infinite; opacity: .65; }
.entry-glint { opacity: 1; animation: signature-light 8s linear infinite; }
.entry-glint--second { animation-delay: -4s; opacity: .5; }
[data-phase="settled"] .entry-current { stroke-dasharray: .12 .22 .045 .615; animation: signature-current-flow 14s linear calc(var(--delay) * -8) infinite; }
.is-engaged .entry-contour, .is-focused .entry-contour { stroke: #fff4e4; stroke-width: 1.8; }
.is-engaged .entry-mark, .is-focused .entry-mark { opacity: 1; }
.is-engaged .entry-art__caption { color: #edbd95; }
.entry-sequence { display: inline-flex; align-items: center; gap: 14px; }
.entry-sequence i { width: 4px; height: 4px; background: #f2b58f; }
.entry-sequence > span { color: #b78762; }
@keyframes signature-gather { 0% { opacity: .12; transform: translate(var(--from-x),var(--from-y)) rotate(var(--from-r)); } 55% { opacity: .8; } 100% { opacity: 1; transform: none; } }
@keyframes signature-current { from { opacity: 0; stroke-dashoffset: 1; } to { opacity: .17; stroke-dashoffset: 0; } }
@keyframes signature-outline { from { opacity: 0; stroke-dashoffset: 1; } to { opacity: .35; stroke-dashoffset: 0; } }
@keyframes signature-caption { from { opacity: 0; } to { opacity: 1; } }
@keyframes signature-light { from { transform: translateX(0) skewX(-12deg); } to { transform: translateX(800px) skewX(-12deg); } }
@keyframes signature-trace { to { stroke-dashoffset: -1; } }
@keyframes signature-current-flow { from { stroke-dashoffset: 1; opacity: .16; } to { stroke-dashoffset: 0; opacity: .16; } }
@keyframes signature-atmosphere { from { transform: translate3d(-6%,-3%,0) scale(.95); opacity: .55; } to { transform: translate3d(4%,5%,0) scale(1.1); opacity: 1; } }
.entry-shell::after { content: ''; position: absolute; z-index: -2; top: 2%; right: -14%; width: 80%; height: 94%; border-radius: 50%; background: radial-gradient(ellipse, #d7b69117, transparent 62%); animation: signature-atmosphere 12s ease-in-out infinite alternate; pointer-events: none; }
.entry-art::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 340px 280px at var(--light-x,78%) var(--light-y,45%), #ffe2c313, transparent 75%); opacity: .7; transition: opacity .6s; }
.is-engaged .entry-art::after { opacity: 1; }
.entry-sweep { position: absolute; z-index: -1; inset: 0; pointer-events: none; background: linear-gradient(110deg, transparent 35%, #f2b58f18 49%, #ffe0bd32 50%, transparent 65%); transform: translateX(-150%); }
.site-entrance.is-leaving { animation: entry-dissolve .95s cubic-bezier(.4,0,.2,1) forwards; pointer-events: none; }
.site-entrance.is-leaving .entry-center { animation: entry-copy-out .55s cubic-bezier(.4,0,.2,1) forwards; }
.site-entrance.is-leaving .entry-sweep { animation: entry-light .85s cubic-bezier(.3,0,.3,1) forwards; }
.site-entrance.is-leaving .entry-band { animation: signature-release .75s cubic-bezier(.4,0,.2,1) calc(var(--delay) * .2) both; }
.site-entrance.is-leaving .entry-current { animation: signature-current-out .8s ease both; }
.site-entrance.is-leaving .entry-art__caption { opacity: 0; animation: none; }
.site-entrance.is-leaving .entry-contours { opacity: 0; }
@keyframes signature-release { from { opacity: 1; transform: none; } to { opacity: 0; transform: translate(110px,-28px) rotate(-7deg); } }
@keyframes signature-current-out { from { stroke-dashoffset: 0; opacity: .17; } to { stroke-dashoffset: -1; opacity: 0; } }
@keyframes entry-light { to { transform: translateX(150%); } }
@keyframes entry-copy-out { to { opacity: 0; transform: translateY(-8px); } }
@keyframes entry-dissolve { 0%,25% { opacity: 1; } to { opacity: 0; } }
html[data-entry="waiting"], html[data-entry="leaving"] { overflow: hidden; }
html:has(.site-entrance[open]) { overflow: hidden; }
html[data-entry="booting"] .hero__content *, html[data-entry="waiting"] .hero__content *, html[data-entry="leaving"] .hero__content * { animation-play-state: paused !important; }
html[data-entry="booting"] .hero__field, html[data-entry="waiting"] .hero__field, html[data-entry="leaving"] .hero__field { opacity: 0; animation: none; }
.entry-paused *, .entry-paused *::before, .entry-paused *::after { animation-play-state: paused !important; }
/* The dot is exact; only the fine outline follows with a short settling response. */
.portfolio-cursor { position: fixed; inset: 0; z-index: 2147483647; pointer-events: none; visibility: hidden; color: #ffe6ce; }
.portfolio-cursor.is-visible { visibility: visible; }
.portfolio-cursor__point, .portfolio-cursor__trail { position: absolute; top: 0; left: 0; will-change: transform; }
.portfolio-cursor__point { z-index: 2; }
.cursor-point { position: absolute; display: block; width: 5px; height: 5px; left: -2.5px; top: -2.5px; border-radius: 50%; background: #fff2df; box-shadow: 0 0 0 1px #172331; }
.portfolio-cursor__shape { position: relative; display: block; width: 24px; height: 24px; border: 1px solid #e4c4a3; border-radius: 50%; opacity: .72; transform: translate(-50%,-50%); box-shadow: 0 0 0 1px #10202e8c; transition: width .2s, height .2s, opacity .2s, background .2s; }
.portfolio-cursor[data-interactive] .portfolio-cursor__shape { width: 36px; height: 36px; opacity: 1; background: #eac9a10c; }
.portfolio-cursor.is-down .portfolio-cursor__shape { width: 19px; height: 19px; opacity: 1; }
.portfolio-cursor__label { position: absolute; top: 25px; left: 28px; max-width: 90px; padding: 5px 8px; border: 1px solid #c08e67; border-radius: 2px; background: #10202ef2; color: #f8d6b9; white-space: nowrap; font: 500 9px/1.2 var(--mono); letter-spacing: .09em; text-transform: uppercase; }
.portfolio-cursor__label:empty { display: none; }
.portfolio-cursor[data-side="left"] .portfolio-cursor__label { left: auto; right: 22px; }
.portfolio-cursor[data-vertical="above"] .portfolio-cursor__label { top: auto; bottom: 20px; }
html.cursor-active, html.cursor-active * { cursor: none !important; }
@media (max-width:760px) {
  .entry-shell { padding: 24px; }
  .entry-center { padding: 220px 0 32px; }
  .entry-name { font-size: clamp(40px,10.1vw,72px); }
  .entry-identity { max-width: 280px; margin-top: 22px; font-size: 14px; line-height: 1.6; }
  .entry-kicker { font-size: 8px; margin-bottom: 20px; letter-spacing: .1em; }
  .entry-kicker > span { margin-right: 8px; }
  .entry-art { inset: 90px 0 auto; height: 210px; overflow: hidden; }
  .entry-field { position: absolute; width: 700px; max-width: none; height: 438px; left: calc(50% - 512px); top: -101px; }
  .entry-art__caption { display: none; }
  .entry-controls { flex-direction: row; gap: 12px; margin-top: 28px; flex-wrap: wrap; }
  .entry-button { min-width: 204px; min-height: 56px; padding: 16px 18px; }
  .entry-skip { padding: 10px 8px; font-size: 9px; }
  .entry-edition { display: none; }
  .entry-bottom { font-size: 9px; gap: 14px; }
  .entry-bottom span:last-child { max-width: 90px; text-align: right; }
  .entry-sequence { gap: 8px; }
  .entry-bottom .entry-sequence { max-width: none !important; font-size: 8px; }
}
@media (prefers-reduced-motion:reduce) {
  .entry-shell::after, .entry-name span, .entry-band, .entry-current, .entry-outline, .entry-contour, .entry-art__caption { animation: none !important; }
  .entry-contours { opacity: 0; }
  .entry-glints { display: none; }
  .entry-glint { animation: none !important; }
  .site-entrance.is-leaving { animation: entry-dissolve .12s linear forwards; }
  .site-entrance.is-leaving .entry-center, .site-entrance.is-leaving .entry-sweep, .site-entrance.is-leaving .entry-band, .site-entrance.is-leaving .entry-current { animation: none; }
  .portfolio-cursor__shape { transition: none; }
}
@media (max-width:760px) and (max-height:700px) {
  .entry-center { padding-top: 155px; padding-bottom: 24px; }
  .entry-art { height: 145px; }
  .entry-field { width: 560px; height: 350px; left: calc(50% - 410px); top: -96px; }
  .entry-kicker { margin-bottom: 16px; }
  .entry-identity { margin-top: 16px; }
  .entry-controls { margin-top: 24px; gap: 10px; }
  .entry-button { min-width: 190px; font-size: 10px; }
  .entry-bottom { padding-top: 16px; }
}
