/* Restrained enhancements. All content remains visible without JavaScript. */
.crixel-nuit .crixel-nuit-photo-column{position:relative;min-width:0}
.crixel-nuit .crixel-mini-console{position:absolute;top:-28px;right:-12px;z-index:3;width:min(304px,100%);padding:17px 19px 14px;border:1px solid hsl(var(--border));border-top-color:hsl(var(--brand)/.5);border-radius:11px;background:linear-gradient(135deg,hsl(217 27% 13%/.98),hsl(218 39% 7%/.97));box-shadow:0 24px 65px hsl(220 60% 2%/.5),inset 0 1px 0 hsl(var(--foreground)/.04);color:hsl(var(--muted-foreground));font:400 11px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;pointer-events:none;opacity:0;transform:translateY(10px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.65,.25,1)}
.crixel-nuit .crixel-mini-console.is-visible{opacity:1;transform:none}
.crixel-nuit .crixel-mini-console-head{display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:.11em;padding-bottom:12px;border-bottom:1px solid hsl(var(--border)/.65);color:hsl(var(--muted-foreground))}
.crixel-nuit .crixel-mini-console-mark{width:5px;height:5px;flex:none;border-radius:50%;background:hsl(var(--brand));box-shadow:0 0 12px hsl(var(--brand)/.2)}
.crixel-nuit .crixel-mini-console-slash{margin-left:auto;color:hsl(var(--brand))}
.crixel-nuit .crixel-mini-console-lines{padding-top:12px;font-size:11px;letter-spacing:-.035em}
.crixel-nuit .crixel-mini-console-lines>div{min-height:1.85em;white-space:pre-wrap;overflow-wrap:normal}
.crixel-nuit .crixel-mini-console-lines>div:nth-child(odd){color:hsl(var(--brand));padding-top:1px}
.crixel-nuit .crixel-mini-console-foot{margin-top:11px;padding-top:9px;border-top:1px solid hsl(var(--border)/.65);font-family:"DM Sans",Arial,sans-serif;font-size:10px;letter-spacing:.025em;color:hsl(var(--muted-foreground))}
.crixel-nuit .crixel-premium-card{position:relative;overflow:hidden;isolation:isolate}
.crixel-nuit .crixel-premium-card::after{content:"";position:absolute;pointer-events:none;z-index:1;left:0;top:0;width:32%;height:1px;opacity:0;background:linear-gradient(90deg,transparent,hsl(var(--brand)/.9),transparent);transform:translateX(-105%)}
.crixel-nuit .crixel-premium-card svg.lucide{transition:color .22s ease,transform .22s ease}
@keyframes crixel-card-impulse{0%{opacity:0;transform:translateX(-105%)}20%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translateX(420%)}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .crixel-nuit .crixel-premium-card:hover{background-image:radial-gradient(ellipse at 18% 0,hsl(var(--brand)/.055),transparent 65%)}
 .crixel-nuit .crixel-premium-card:hover::after{animation:crixel-card-impulse .85s ease-out 1}
 .crixel-nuit .crixel-premium-card:hover svg.lucide{color:hsl(var(--brand));transform:translateY(-1px)}
}
@media(prefers-reduced-motion:no-preference){
 .crixel-nuit .crixel-premium-card:focus-within::after{animation:crixel-card-impulse .85s ease-out 1}
 .crixel-nuit [data-crixel-reveal="pending"]{opacity:0;transform:translateY(14px)}
 .crixel-nuit [data-crixel-reveal="visible"]{animation:crixel-section-in .62s cubic-bezier(.2,.65,.25,1) both}
 @keyframes crixel-section-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
}
/* Keyboard access must never depend on an intersection notification. */
.crixel-nuit [data-crixel-reveal="pending"]:focus-within{opacity:1;transform:none}
@media(max-width:950px){
 .crixel-nuit .crixel-mini-console{position:relative;top:auto;right:auto;margin:48px 0 0 auto;width:min(340px,100%);padding:18px 20px}
 .crixel-nuit .crixel-mini-console-head{font-size:10px}
 .crixel-nuit .crixel-mini-console-lines{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
 .crixel-nuit .crixel-mini-console{transition:none;transform:none}
 .crixel-nuit [data-crixel-reveal]{opacity:1!important;transform:none!important;animation:none!important}
 .crixel-nuit .crixel-premium-card::after{display:none}
}
@media print{
 .crixel-nuit .crixel-mini-console{display:none}
 .crixel-nuit [data-crixel-reveal]{opacity:1!important;transform:none!important;animation:none!important}
}

/* The console now occupies its own space beneath the photo at every width. */
.crixel-nuit .crixel-console-slot{position:relative;margin-top:48px;min-width:0}
.crixel-nuit .crixel-console-slot .crixel-mini-console{position:relative;inset:auto;margin:0;width:100%;pointer-events:auto;opacity:0;transform:none;transition:opacity .45s ease,box-shadow .25s ease;background:radial-gradient(ellipse at var(--console-x,50%) var(--console-y,0%),hsl(var(--brand)/.055),transparent 70%),linear-gradient(135deg,hsl(217 27% 13%/.98),hsl(218 39% 7%/.98))}
.crixel-nuit .crixel-console-slot .crixel-mini-console.is-visible{opacity:1;transform:none}
.crixel-nuit .crixel-console-slot .crixel-mini-console.is-tilting{transform:perspective(900px) rotateX(var(--console-rx,0deg)) rotateY(var(--console-ry,0deg))}
.crixel-nuit .crixel-mini-console-head{font-size:10px;letter-spacing:.07em}
.crixel-nuit .crixel-mini-console-head button{margin-left:auto;background:transparent;color:hsl(var(--muted-foreground));border:1px solid hsl(var(--border));border-radius:5px;padding:5px 8px;min-height:32px;font:500 10px/1.3 "DM Sans",sans-serif;letter-spacing:0;cursor:pointer}
.crixel-nuit .crixel-mini-console-head button:hover{color:hsl(var(--foreground));border-color:hsl(var(--brand)/.5)}
.crixel-nuit .crixel-mini-console-lines{height:108px;overflow:hidden;scroll-behavior:auto;font-size:12px;letter-spacing:-.03em}
.crixel-nuit .crixel-mini-console-lines>div{min-height:1.8em;white-space:pre-wrap;overflow-wrap:anywhere;color:hsl(var(--muted-foreground))}
.crixel-nuit .crixel-mini-console-lines>div:nth-child(odd){color:inherit;padding-top:0}
.crixel-nuit .crixel-mini-console-lines>div.is-command{color:hsl(var(--brand))}
.crixel-nuit .crixel-mini-console-foot{font-size:11px}
@media(min-width:1740px){.crixel-nuit .crixel-console-slot .crixel-mini-console.is-docked{position:fixed;inset:auto 20px 24px auto;width:256px;z-index:40;box-shadow:0 20px 60px hsl(220 60% 2%/.55)}}
@media(max-width:767px){.crixel-nuit .crixel-mini-console-head button{min-height:44px;min-width:50px}.crixel-nuit .crixel-console-slot{margin-top:44px}}
@media(prefers-reduced-motion:reduce){.crixel-nuit .crixel-console-slot .crixel-mini-console,.crixel-nuit .crixel-console-slot .crixel-mini-console.is-tilting{transform:none!important;transition:none!important}}
/* Final intro: data stream through three curved fibre paths into the residual console. */
#crixel-arrival .crixel-data-transfer{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}
#crixel-arrival .crixel-data-transfer path{fill:none;stroke:#ff8546;stroke-width:1;vector-effect:non-scaling-stroke}
#crixel-arrival .crixel-data-transfer path:nth-child(2){stroke:#86cbd7}
#crixel-arrival .crixel-data-transfer .crixel-data-ring{fill:none;stroke:#ff8546;stroke-width:1}
#crixel-arrival .crixel-arrival-shell{transform-origin:center;will-change:transform,opacity}
@media(prefers-reduced-motion:reduce){#crixel-arrival .crixel-data-transfer{display:none}}

.crixel-nuit .crixel-console-slot{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows .65s cubic-bezier(.4,0,.2,1),margin-top .65s cubic-bezier(.4,0,.2,1),opacity .4s ease}
.crixel-nuit .crixel-console-collapse{min-height:0;overflow:hidden}
.crixel-nuit .crixel-console-slot.is-ending{grid-template-rows:0fr;margin-top:0;opacity:0}
.crixel-nuit .crixel-console-slot .crixel-mini-console{pointer-events:none}
@media(prefers-reduced-motion:reduce){.crixel-nuit .crixel-console-slot{transition:none}}
