/* Home composition: perspective grid and illuminated glass navigation. */
.home-frame{display:contents}
.home-view .workspace{background-image:url('/assets/home/perspective-grid.svg?v=glass-home-63');background-size:100% 100%;background-repeat:no-repeat}
.home-view .folder-link.glass-tile{isolation:isolate;width:176px;max-width:100%;height:auto;aspect-ratio:1;min-height:0;padding:17px;gap:0;justify-content:center;border:1px solid rgba(255,255,255,.98);border-radius:25px;background:linear-gradient(145deg,rgba(255,255,255,.34),rgba(255,255,255,.11) 55%,rgba(255,255,255,.26));box-shadow:inset 0 2px 3px #fff9,inset 0 -3px 5px #fff7,inset 2px 0 5px #fff6,0 15px 28px #1f273215,0 3px 5px #1f273214,0 0 12px #fff8;backdrop-filter:blur(13px) saturate(1.12);color:#fff;transition:transform .8s cubic-bezier(.2,.7,.2,1),box-shadow 1.8s ease,border-color 1.8s ease,color 1.8s ease}
.home-view .glass-tile::before{content:'';position:absolute;inset:-16px;border-radius:40px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 70%,rgba(190,21,24,.65),rgba(165,18,19,.25) 53%,transparent 74%);filter:blur(22px);opacity:0;transform:scale(.85);transition:opacity 2s ease,transform 2.2s ease}
.home-view .glass-tile::after{content:'';position:absolute;inset:-1px;padding:1.5px;border-radius:inherit;pointer-events:none;background:linear-gradient(110deg,transparent 8%,currentColor 27%,transparent 43%,currentColor 65%,transparent 83%);background-size:280% 100%;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;filter:drop-shadow(0 0 3px #fff);animation:home-glass-shimmer var(--tile-period,14s) ease-in-out var(--tile-delay,0s) infinite;transition:filter 1.8s ease}
.home-view .glass-tile:hover,.home-view .glass-tile:focus-visible,.home-view .glass-tile.en-theatre-cue{color:#ff6469;border-color:#f05155;box-shadow:inset 0 2px 3px #fffa,inset 0 -3px 5px #fff7,0 15px 28px #1f27321a,0 0 15px #c72125b3,0 0 36px #a512138c,0 0 76px #a5121359}
.home-view .glass-tile:hover::before,.home-view .glass-tile:focus-visible::before,.home-view .glass-tile.en-theatre-cue::before{opacity:1;transform:scale(1.14)}
.home-view .glass-tile:hover::after,.home-view .glass-tile:focus-visible::after,.home-view .glass-tile.en-theatre-cue::after{filter:drop-shadow(0 0 9px #d82027)}
.home-view .tile-symbol{width:28px;height:28px;margin-bottom:11px;color:#373b40;flex-shrink:0;filter:drop-shadow(0 1px 0 #fff);transition:color 1.6s ease,filter 1.6s ease}
.home-view .tile-symbol svg{width:100%;height:100%;display:block}
.home-view .glass-tile:hover .tile-symbol,.home-view .glass-tile:focus-visible .tile-symbol,.home-view .glass-tile.en-theatre-cue .tile-symbol{color:#fff;filter:drop-shadow(0 0 3px #ffffff55)}
.home-view .glass-tile .folder-label{display:block;background:none;border:0;padding:0;box-shadow:none;backdrop-filter:none;border-radius:0;max-width:100%;font-family:UNCAGE,sans-serif;font-size:17px;line-height:1.13;letter-spacing:-.02em;text-transform:uppercase;text-align:center;color:var(--ink);transition:color 1.6s ease}
.home-view .folder-name{text-align:center;text-wrap:balance}
.home-view .glass-tile .folder-sub{margin-top:8px;max-width:100%;font-size:12px;line-height:1.4;white-space:normal;text-align:center;text-wrap:balance;color:#585e64;transition:color 1.6s ease}
.home-view .tile-fill{position:absolute;inset:0;z-index:0;border-radius:inherit;pointer-events:none;background:linear-gradient(145deg,#c5262a,#a51213 58%,#780b11);opacity:0;transition:opacity 1.8s ease}
.home-view .glass-tile:hover .tile-fill,.home-view .glass-tile:focus-visible .tile-fill,.home-view .glass-tile.en-theatre-cue .tile-fill{opacity:1}
.home-view .glass-tile .tile-symbol,.home-view .glass-tile .folder-label,.home-view .glass-tile .folder-sub{position:relative;z-index:1}
.home-view .glass-tile:hover .folder-label,.home-view .glass-tile:focus-visible .folder-label,.home-view .glass-tile:hover .folder-sub,.home-view .glass-tile:focus-visible .folder-sub,.home-view .glass-tile.en-theatre-cue .folder-label,.home-view .glass-tile.en-theatre-cue .folder-sub{color:#fff}
.home-view .home-footer-formats{display:block!important;margin-left:auto}
@keyframes home-glass-shimmer{0%,100%{background-position:0% 50%;opacity:.65}37%{background-position:68% 50%;opacity:1}73%{background-position:100% 50%;opacity:.76}}
@media(min-width:1024px) and (min-height:560px){
 body.home-view{height:100svh;min-height:0;overflow:hidden;display:grid;place-items:center;background:#e6e8eb}
 .home-view .home-frame{display:block;position:relative;isolation:isolate;width:min(100vw,calc(100svh * 16 / 9));aspect-ratio:16/9;container-type:inline-size;background-color:var(--paper)}
 .home-view .home-frame::before,.home-view .home-frame::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1}
 .home-view .home-frame::before{background:url('/assets/home/perspective-grid.svg?v=glass-home-63') center/100% 100% no-repeat;mask-image:radial-gradient(ellipse at 58% 62%,#000 16%,rgba(0,0,0,.76) 62%,rgba(0,0,0,.16) 100%)}
 .home-view .home-frame::after{background:radial-gradient(ellipse at 30% 0%,#f3f4f5 8%,transparent 64%),radial-gradient(ellipse at 0% 100%,rgba(33,38,44,.065),transparent 54%),radial-gradient(ellipse at 100% 92%,rgba(33,38,44,.035),transparent 58%)}
 .home-view .topbar{position:absolute;z-index:5;top:2.2%;left:5%;width:90%;height:clamp(50px,4cqw,68px);margin:0;padding:8px clamp(20px,2cqw,36px);gap:clamp(16px,1.5cqw,28px);border-radius:20px;border:1px solid rgba(255,255,255,.85);background:rgba(243,244,245,.78);box-shadow:inset 0 1px 0 #fff,0 9px 30px rgba(33,38,44,.035);backdrop-filter:blur(14px)}
 .home-view .brand{width:clamp(120px,10cqw,170px);flex-shrink:0}
 .home-view .desktop-nav{gap:clamp(18px,1.8cqw,32px);font-size:14px;white-space:nowrap}
 .home-view .topbar>.glass{padding:7px 16px;font-size:14px;border-radius:10px;white-space:nowrap}
 .home-view #main{position:absolute;inset:0;outline:none}
 .home-view .workspace{position:absolute;z-index:2;inset:0;margin:0;padding:0;min-height:0;border-radius:0;background:none;overflow:visible;pointer-events:none}
 .home-view .workspace::before{display:none}
 .home-view .workspace-head{position:absolute;left:5%;top:11%;width:90%;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(20px,2cqw,36px);align-items:start}
 .home-view .workspace-head h2{margin:0;font-size:clamp(24px,2cqw,38px);line-height:1.04;letter-spacing:-.035em;max-width:none}
 .home-view .workspace-head p{margin:0;font-size:14px;line-height:1.5;max-width:none}
 .home-view .folder-field{position:absolute;z-index:3;inset:0;display:block;min-height:0;max-width:none;margin:0;pointer-events:none}
 .home-view .folder-link.glass-tile:nth-child(n){position:absolute;grid-column:auto;grid-row:auto;align-self:auto;width:clamp(140px,10.4cqw,200px);height:auto;min-height:0;padding:clamp(12px,1.05cqw,20px);transform:translate(-50%,-50%);pointer-events:auto}
 .home-view .folder-link:nth-child(1){left:23%;top:39%}
 .home-view .folder-link:nth-child(2){left:73%;top:30%}
 .home-view .folder-link:nth-child(3){left:81%;top:58%}
 .home-view .folder-link:nth-child(4){left:64%;top:76%}
 .home-view .folder-link:nth-child(5){left:31%;top:74%}
 .home-view .folder-link:nth-child(6){left:92%;top:86.5%}
 .home-view .folder-link.glass-tile:nth-child(n):hover,.home-view .folder-link.glass-tile:nth-child(n):focus-visible{transform:translate(-50%,-50%) translateY(-6px)}
 .home-view .glass-tile .folder-label{font-size:clamp(14px,1cqw,19px)}
 .home-view .tile-symbol{width:clamp(24px,1.55cqw,30px);height:clamp(24px,1.55cqw,30px);margin-bottom:clamp(8px,.65cqw,12px)}
 .home-view .glass-tile .folder-sub{margin-top:6px}
 .home-view .footer{position:absolute;z-index:3;left:5%;bottom:1.5%;width:90%;padding:0;gap:16px;font-size:12px;line-height:1.5;flex-wrap:nowrap}
 .home-view .mobile-menu{position:absolute;z-index:6;top:10%;left:5%;width:90%;margin:0}
 .home-view .noscript{position:fixed;inset:0;z-index:10;background:var(--paper)}
}
@media(min-width:1024px) and (min-height:560px) and (max-width:1350px){.home-view .workspace-head{grid-template-columns:minmax(0,1fr) 330px;gap:20px}}
@media(max-width:1023px), (max-height:559px){
 .home-view .folder-field{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto;min-height:0;gap:34px;margin:40px 0}
 .home-view .folder-link.glass-tile:nth-child(n){grid-column:auto;grid-row:auto;min-height:0;justify-self:center;transform:none}
 .home-view .folder-link.glass-tile:nth-child(n):hover,.home-view .folder-link.glass-tile:nth-child(n):focus-visible{transform:translateY(-5px)}
}
@media(max-width:760px){
 .home-view .workspace{padding-top:calc(2.2svh + 84px)}
 .home-view .workspace-head h2{font-size:30px;margin:0 0 18px}
 .home-view .folder-field{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}
 .home-view .folder-link.glass-tile{width:100%;max-width:176px;padding:12px;border-radius:22px}
 .home-view .glass-tile .folder-label{font-size:14px}
 .home-view .tile-symbol{width:24px;height:24px;margin-bottom:8px}
 .home-view .glass-tile .folder-sub{font-size:12px}
 .home-view .footer{flex-wrap:nowrap;gap:12px}
 .home-view .home-footer-formats{font-size:12px;text-align:right;max-width:46%}
}
@media(prefers-reduced-motion:reduce){.home-view .glass-tile::after{animation:none}.home-view .folder-link.glass-tile:nth-child(n):hover,.home-view .folder-link.glass-tile:nth-child(n):focus-visible{transform:none}}
@media(min-width:1024px) and (min-height:560px) and (prefers-reduced-motion:reduce){.home-view .folder-link.glass-tile:nth-child(n):hover,.home-view .folder-link.glass-tile:nth-child(n):focus-visible{transform:translate(-50%,-50%)}}

/* En lives in the open centre, in front of the perspective grid.
   Every moving light uses the same transparent artwork: no flat disc or box. */
.home-view .home-en{position:relative;isolation:isolate;width:min(66vw,360px);aspect-ratio:1;margin:28px auto 44px;z-index:4;pointer-events:none;user-select:none;opacity:var(--en-birth-opacity,0)}
.home-en.en-birthing *{animation-play-state:paused!important}
.en-birth-field{position:fixed;inset:0;width:100vw;height:100svh;z-index:7;pointer-events:none}
.en-birth-field[hidden]{display:none}
.home-en .en-float{position:absolute;inset:0;display:block;animation:en-float 9.8s ease-in-out infinite;will-change:transform}
.home-en .en-body{position:absolute;inset:0;display:block;isolation:isolate;animation:en-turn 18s ease-in-out -4s infinite;transform-origin:50% 52%;will-change:transform}
.home-en img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;max-width:none}
.home-en .en-art{filter:drop-shadow(0 0 8px #ff26384a) drop-shadow(0 8px 17px #a5121342);animation:en-breathe 12s ease-in-out -3s infinite}
.home-en .en-light{mix-blend-mode:screen;pointer-events:none;mask-repeat:no-repeat;mask-size:230% 170%;-webkit-mask-repeat:no-repeat;-webkit-mask-size:230% 170%}
.home-en .en-light-white{opacity:.7;filter:brightness(1.75) saturate(.65);mask-image:radial-gradient(ellipse at 50% 50%,#000 0%,#000a 15%,transparent 34%);-webkit-mask-image:radial-gradient(ellipse at 50% 50%,#000 0%,#000a 15%,transparent 34%);animation:en-white-flow 14s ease-in-out -5s infinite}
.home-en .en-light-red{opacity:.48;filter:brightness(1.4) saturate(1.55);mask-image:radial-gradient(ellipse at 37% 42%,#000 0%,transparent 28%),radial-gradient(ellipse at 76% 66%,#000c 0%,transparent 23%);-webkit-mask-image:radial-gradient(ellipse at 37% 42%,#000 0%,transparent 28%),radial-gradient(ellipse at 76% 66%,#000c 0%,transparent 23%);animation:en-red-flow 21s ease-in-out -9s infinite}
.home-en .en-aura{position:absolute;inset:8%;border-radius:50%;background:radial-gradient(ellipse at 35% 30%,#fffa 0%,transparent 44%),radial-gradient(ellipse at 55% 58%,#ed26343b 12%,#a5121321 43%,transparent 72%);filter:blur(26px);transform:scale(1.28);animation:en-aura 13s ease-in-out -6s infinite}
.home-en .en-ground-shadow{position:absolute;left:22%;top:106%;width:56%;height:8%;border-radius:50%;background:radial-gradient(ellipse,#26252b30 0%,#a5121310 34%,transparent 70%);filter:blur(9px);animation:en-shadow 9.8s ease-in-out infinite}
@keyframes en-float{0%,100%{transform:translate3d(-3px,6px,0)}50%{transform:translate3d(4px,-10px,0)}}
@keyframes en-turn{0%,100%{transform:perspective(900px) rotateY(-5deg) rotateZ(-1.2deg) scale(1)}50%{transform:perspective(900px) rotateY(5deg) rotateZ(1.6deg) scale(1.025)}}
@keyframes en-breathe{0%,100%{filter:brightness(1.02) drop-shadow(0 0 8px #ff26384a) drop-shadow(0 8px 17px #a5121342)}50%{filter:brightness(1.15) drop-shadow(0 0 13px #ff263866) drop-shadow(0 8px 21px #a5121352)}}
@keyframes en-white-flow{0%,100%{mask-position:0% 15%;-webkit-mask-position:0% 15%;opacity:.55}50%{mask-position:100% 90%;-webkit-mask-position:100% 90%;opacity:.82}}
@keyframes en-red-flow{0%,100%{mask-position:100% 85%;-webkit-mask-position:100% 85%;opacity:.35}50%{mask-position:0% 0%;-webkit-mask-position:0% 0%;opacity:.6}}
@keyframes en-aura{0%,100%{opacity:.65;transform:scale(1.18)}50%{opacity:1;transform:scale(1.32)}}
@keyframes en-shadow{0%,100%{opacity:.8;transform:scaleX(1.03)}50%{opacity:.46;transform:scaleX(.85)}}
.home-en.en-resting *{animation-play-state:paused!important}
.home-en .en-surface{display:none;position:absolute;inset:-8%;width:116%;height:116%;filter:drop-shadow(0 0 9px #ff233750) drop-shadow(0 6px 15px #a512133d)}
.home-en.en-fluid .en-surface{display:block}
.home-en.en-fluid .en-art,.home-en.en-fluid .en-light{visibility:hidden;animation:none}
.home-en .en-particles{position:absolute;left:-25%;top:-25%;width:150%;height:150%;pointer-events:none}
@media(min-width:1024px) and (min-height:560px){
 .home-view .home-en{position:absolute;left:50%;top:43%;width:clamp(220px,22cqw,460px);margin:0;transform:translate(-50%,-50%)}
}
@media(prefers-reduced-motion:reduce){.home-en *{animation:none!important;will-change:auto!important}.home-en .en-light,.home-en .en-surface,.home-en .en-particles{display:none!important}.home-en .en-art{visibility:visible!important}.home-en .en-ground-shadow{opacity:.6}}

/* Different distances keep the five principal doors out of a regular orbit. */
@media(min-width:1024px) and (min-height:560px){
 .home-view .folder-link.glass-tile[data-home-folder="about"]{width:clamp(142px,9.2cqw,177px)}
 .home-view .folder-link.glass-tile[data-home-folder="styles"]{width:clamp(140px,8.4cqw,163px)}
 .home-view .folder-link.glass-tile[data-home-folder="packages"]{width:clamp(146px,9.6cqw,185px)}
 .home-view .folder-link.glass-tile[data-home-folder="contacts"]{width:clamp(150px,10cqw,193px)}
 .home-view .folder-link.glass-tile[data-home-folder="new-year-show"]{width:clamp(100px,6.3cqw,122px);padding:11px;border-radius:21px}
 .home-view .glass-tile[data-home-folder="new-year-show"] .folder-label{font-size:clamp(12px,.8cqw,15px)}
 .home-view .glass-tile[data-home-folder="new-year-show"] .folder-sub{display:none}
}
@media(max-width:1023px), (max-height:559px){.home-view .glass-tile[data-home-folder="new-year-show"]{width:130px;justify-self:end;opacity:.8}}

/* Luminous glass corners: a long diffuse tail with two opposing white cores. */
.home-view .tile-radiance{position:absolute;inset:-1px;z-index:2;pointer-events:none;border-radius:inherit;filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 10px #ffffffb8);transition:filter 3s ease}
.home-view .tile-radiance svg{width:100%;height:100%;overflow:visible;fill:none;stroke:#fff;stroke-linecap:round}
.home-view .tile-radiance rect{vector-effect:non-scaling-stroke}
.home-view .tile-rim-base{stroke-width:.75;opacity:.7}
.home-view .tile-rim-haze{stroke-width:8;stroke-dasharray:42 158;filter:blur(3px);opacity:.82}
.home-view .tile-rim-core{stroke-width:2;stroke-dasharray:7 193}
.home-view .tile-rim-haze,.home-view .tile-rim-core{animation:home-rim-orbit calc(var(--tile-period,14s)*1.6) linear var(--tile-delay,0s) infinite}
.home-view .glass-tile:hover .tile-radiance,.home-view .glass-tile:focus-visible .tile-radiance,.home-view .glass-tile.en-theatre-cue .tile-radiance{filter:drop-shadow(0 0 5px #fff) drop-shadow(0 0 12px #ed2539) drop-shadow(0 0 21px #c91a2fa8)}
@keyframes home-rim-orbit{from{stroke-dashoffset:0}to{stroke-dashoffset:-400}}
@media(prefers-reduced-motion:reduce){.home-view .tile-rim-haze,.home-view .tile-rim-core{animation:none}}
