/* Disk Faxina · Entrance 01 / Verde → Marfim
   The supplied logo is a PNG, not a vector. All reveals use the same artwork. */
.df-intro {
  --df-ivory: #f8f6ef; --df-forest: #0e3b2e; --df-gold: #c9a96b;
  position: fixed; inset: 0; z-index: 2147483000; overflow: hidden;
  isolation: isolate; color: var(--df-ivory); pointer-events: auto;
  font-family: Arial, Helvetica, sans-serif; line-height: 1.4;
  -webkit-font-smoothing: antialiased; box-sizing: border-box;
}
.df-intro *, .df-intro *::before, .df-intro *::after {box-sizing: border-box;}
.df-intro [hidden] {display: none !important;}
.df-intro__door {position: absolute; top: 0; bottom: 0; width: 50.2%; background: var(--df-ivory); will-change: transform;}
.df-intro__door--left {left: 0;}
.df-intro__door--right {right: 0;}
.df-intro__ink {position: absolute; inset: 0; background: radial-gradient(ellipse at 37% 22%, #214e3d 0%, #103829 36%, #071d17 76%, #04110d 100%);}
.df-intro__light {position:absolute; width:62vw; height:120vh; left:-18vw; top:-62vh; transform:rotate(-28deg); background:linear-gradient(90deg, transparent, rgba(228,212,168,.055),transparent); filter:blur(16px); pointer-events:none;}
.df-intro__frame {position: absolute; inset: 26px; border: 1px solid rgba(170,142,84,.3); pointer-events: none;}
.df-intro__frame::before, .df-intro__frame::after {content: ''; position: absolute; width: 48px; height: 48px; border-color: #c9a96b; opacity: .65;}
.df-intro__frame::before {top: -1px; left: -1px; border-left: 1px solid; border-top: 1px solid;}
.df-intro__frame::after {bottom: -1px; right: -1px; border-right: 1px solid; border-bottom: 1px solid;}
.df-intro__top {position: absolute; top: 51px; left: 56px; right: 56px; display: flex; align-items: center; justify-content: space-between; gap: 20px;}
.df-intro__eyebrow {font-size: 10px; letter-spacing: .32em; font-weight: 400; color: #b89c65;}
.df-intro__skip {appearance: none; border: 1px solid rgba(174,151,102,.5); border-radius: 100px; background: rgba(248,246,239,.92); color: #254137; font-family: inherit; font-size: 11px; letter-spacing: .06em; padding: 11px 18px; min-height: 42px; cursor: pointer;}
.df-intro__skip:hover {background: #fff;}
.df-intro__skip:focus-visible {outline: 3px solid #c9a96b; outline-offset: 4px;}
.df-intro__stage {position: absolute; left: 50%; top: 49%; width: min(540px, 74vw, 73vh); aspect-ratio: 1; transform: translate(-50%, -50%);}
.df-intro__stage img {display: block; width:100%; height:100%; object-fit: contain; max-width: none; user-select: none; -webkit-user-drag: none;}
.df-intro__mono-wrap, .df-intro__part, .df-intro__final, .df-intro__trace, .df-intro__sheen {position:absolute; inset:0;}
.df-intro__mono {clip-path: inset(0 0 40.5% 0);}
.df-intro__word {clip-path: inset(59.5% 0 21.5% 0);}
.df-intro__signature {clip-path: inset(78.5% 0 14.5% 0);}
.df-intro__tagline {clip-path: inset(85.5% 0 0 0);}
.df-intro__trace {overflow: visible; pointer-events:none;}
.df-intro__trace path {fill: none; stroke: #e7cd95; stroke-width: 2.4; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray: 1; stroke-dashoffset: 1;}
.df-intro__sheen {mask-image: var(--df-logo); mask-size:100% 100%; mask-repeat:no-repeat; -webkit-mask-image:var(--df-logo); -webkit-mask-size:100% 100%; -webkit-mask-repeat:no-repeat; pointer-events:none;}
.df-intro__beam {position:absolute; inset:-10% -20%; background:linear-gradient(112deg, transparent 38%, rgba(255,251,228,.1) 45%, rgba(255,253,243,.94) 50%, rgba(255,250,231,.15) 55%, transparent 62%);}
.df-intro__bottom {position:absolute; bottom:58px; left:50%; transform:translateX(-50%); text-align:center; min-width:200px;}
.df-intro__motto {color:#ad935f; font-size:9px; letter-spacing:.33em; margin:0 0 17px; white-space:nowrap;}
.df-intro__rule {height:1px; width:90px; background:rgba(172,145,91,.23); margin:0 auto; overflow:hidden;}
.df-intro__rule-fill {height:100%; width:100%; background:#b99a5d; transform-origin:left;}
.df-intro__url {color:#aa946d; margin:17px 0 0; font-size:10px; letter-spacing:.15em;}
@media (max-width:600px) {
  .df-intro__frame {inset:14px;}
  .df-intro__top {top:max(31px, env(safe-area-inset-top)); left:32px; right:30px;}
  .df-intro__eyebrow {font-size:8px; letter-spacing:.24em;}
  .df-intro__skip {font-size:10px; padding:10px 14px; min-height:42px;}
  .df-intro__stage {width:min(86vw, 61vh, 440px); top:48%;}
  .df-intro__bottom {bottom:max(45px, calc(env(safe-area-inset-bottom) + 30px));}
  .df-intro__motto {font-size:8px; letter-spacing:.23em;}
}
@media (max-height:520px) and (min-width:601px) {
  .df-intro__stage {width:70vh;}
  .df-intro__top {top:29px;left:40px;right:40px;}
  .df-intro__bottom {bottom:25px;}
  .df-intro__motto, .df-intro__url {display:none;}
}
/* Safety net: prefer the page, never an inaccessible waiting screen. */
@media (prefers-reduced-motion: reduce) {
  .df-intro {display:none !important;}
}
