@@ -63,6 +63,157 @@ body {
6363 animation-delay : -3.2s ;
6464}
6565
66+ .club-route-loader-stage {
67+ position : relative;
68+ display : flex;
69+ height : 11rem ;
70+ width : min (100% , 18rem );
71+ margin-inline : auto;
72+ align-items : center;
73+ justify-content : center;
74+ perspective : 1200px ;
75+ }
76+
77+ .club-route-loader-book {
78+ position : absolute;
79+ height : 8rem ;
80+ width : 12rem ;
81+ transform-style : preserve-3d;
82+ filter : drop-shadow (0 18px 24px rgba (42 , 32 , 18 , 0.12 ));
83+ }
84+
85+ .club-route-loader-cover ,
86+ .club-route-loader-paper ,
87+ .club-route-loader-turn-page ,
88+ .club-route-loader-spine {
89+ position : absolute;
90+ }
91+
92+ .club-route-loader-cover {
93+ top : 0 ;
94+ height : 100% ;
95+ width : 50% ;
96+ border : 1px solid color-mix (in oklab, var (--accent ) 16% , var (--border ));
97+ background :
98+ linear-gradient (
99+ 180deg ,
100+ color-mix (in oklab, var (--accent ) 24% , white) 0% ,
101+ color-mix (in oklab, var (--accent ) 14% , # d8c3a0 ) 52% ,
102+ color-mix (in oklab, var (--accent ) 20% , # b89462 ) 100%
103+ );
104+ box-shadow :
105+ inset 0 1px 0 rgba (255 , 255 , 255 , 0.25 ),
106+ inset 0 -1px 0 rgba (42 , 32 , 18 , 0.08 );
107+ }
108+
109+ .club-route-loader-cover-left {
110+ left : 0 ;
111+ border-radius : 0.95rem 0.25rem 0.25rem 0.95rem ;
112+ }
113+
114+ .club-route-loader-cover-right {
115+ right : 0 ;
116+ border-radius : 0.25rem 0.95rem 0.95rem 0.25rem ;
117+ }
118+
119+ .club-route-loader-spine {
120+ left : 50% ;
121+ top : 0 ;
122+ z-index : 4 ;
123+ height : 100% ;
124+ width : 0.95rem ;
125+ transform : translateX (-50% );
126+ border-inline : 1px solid rgba (42 , 32 , 18 , 0.08 );
127+ background :
128+ linear-gradient (
129+ 180deg ,
130+ color-mix (in oklab, var (--accent ) 30% , # ceb287 ) 0% ,
131+ color-mix (in oklab, var (--accent ) 18% , # b79263 ) 100%
132+ );
133+ box-shadow :
134+ inset 1px 0 0 rgba (255 , 255 , 255 , 0.15 ),
135+ inset -1px 0 0 rgba (42 , 32 , 18 , 0.08 );
136+ }
137+
138+ .club-route-loader-paper {
139+ top : 0.55rem ;
140+ z-index : 1 ;
141+ height : calc (100% - 1.1rem );
142+ width : calc (50% - 0.8rem );
143+ border : 1px solid color-mix (in oklab, var (--border ) 72% , white);
144+ background :
145+ linear-gradient (
146+ 180deg ,
147+ var (--surface-strong ) 0% ,
148+ # fbf3e6 100%
149+ );
150+ box-shadow :
151+ inset 0 0 0 1px rgba (255 , 255 , 255 , 0.35 ),
152+ 0 3px 8px rgba (42 , 32 , 18 , 0.04 );
153+ }
154+
155+ .club-route-loader-paper-left {
156+ left : 0.45rem ;
157+ border-radius : 0.72rem 0.16rem 0.16rem 0.72rem ;
158+ }
159+
160+ .club-route-loader-paper-right {
161+ right : 0.45rem ;
162+ border-radius : 0.16rem 0.72rem 0.72rem 0.16rem ;
163+ }
164+
165+ .club-route-loader-turn-page {
166+ top : 0.55rem ;
167+ left : calc (50% + 0.02rem );
168+ z-index : 5 ;
169+ height : calc (100% - 1.1rem );
170+ width : calc (50% - 0.47rem );
171+ transform-origin : left center;
172+ transform-style : preserve-3d;
173+ border : 1px solid color-mix (in oklab, var (--border ) 68% , white);
174+ border-radius : 0.16rem 0.72rem 0.72rem 0.16rem ;
175+ background :
176+ linear-gradient (
177+ 90deg ,
178+ color-mix (in oklab, var (--surface ) 92% , # d9c09a ) 0% ,
179+ var (--surface-strong ) 16% ,
180+ # f5ecdc 100%
181+ );
182+ box-shadow :
183+ inset 1px 0 0 rgba (42 , 32 , 18 , 0.05 ),
184+ 0 8px 16px rgba (42 , 32 , 18 , 0.08 );
185+ backface-visibility : hidden;
186+ opacity : 0 ;
187+ animation : club-route-page-turn 2.8s ease-in-out infinite;
188+ }
189+
190+ .club-route-loader-turn-page ::after {
191+ content : "" ;
192+ position : absolute;
193+ inset : 0.4rem 0.55rem ;
194+ border-radius : 0.25rem ;
195+ background :
196+ repeating-linear-gradient (
197+ 180deg ,
198+ transparent 0 ,
199+ transparent 0.44rem ,
200+ rgba (111 , 98 , 80 , 0.08 ) 0.44rem ,
201+ rgba (111 , 98 , 80 , 0.08 ) 0.5rem
202+ );
203+ }
204+
205+ .club-route-loader-turn-page-2 {
206+ animation-delay : 0.7s ;
207+ }
208+
209+ .club-route-loader-turn-page-3 {
210+ animation-delay : 1.4s ;
211+ }
212+
213+ .club-route-loader-turn-page-4 {
214+ animation-delay : 2.1s ;
215+ }
216+
66217@keyframes forbidden-float {
67218 0% ,
68219 100% {
@@ -87,9 +238,42 @@ body {
87238 }
88239}
89240
241+ @keyframes club-route-page-turn {
242+ 0% {
243+ opacity : 0 ;
244+ transform : rotateY (0deg );
245+ }
246+
247+ 10% {
248+ opacity : 1 ;
249+ transform : rotateY (0deg );
250+ }
251+
252+ 45% {
253+ opacity : 1 ;
254+ transform : rotateY (-168deg );
255+ }
256+
257+ 55% ,
258+ 100% {
259+ opacity : 0 ;
260+ transform : rotateY (-179deg );
261+ }
262+ }
263+
90264@media (prefers-reduced-motion : reduce) {
265+ .club-route-loader-turn-page ,
91266 .forbidden-glow ,
92267 .forbidden-book {
93268 animation : none;
94269 }
270+
271+ .club-route-loader-turn-page {
272+ opacity : 0 ;
273+ }
274+
275+ .club-route-loader-turn-page-1 {
276+ opacity : 0.9 ;
277+ transform : rotateY (-18deg );
278+ }
95279}
0 commit comments