@@ -30,15 +30,10 @@ body {
3030 font-family : var (--font-sans );
3131 -webkit-font-smoothing : antialiased;
3232 -moz-osx-font-smoothing : grayscale;
33- transition : background-color 0.3s ease, color 0.3s ease;
3433 line-height : 1.6 ;
3534}
3635
37- * ,
38- * ::before ,
39- * ::after {
40- transition : color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
41- }
36+
4237
4338
4439/* ── Page scrollbar ── */
@@ -237,6 +232,73 @@ body.dark-mode .theme-toggle-container {
237232 transform : translateX (20px );
238233}
239234
235+ /* ── Theme Switch Spinner ── */
236+
237+ .theme-switch-overlay {
238+ position : fixed;
239+ top : 0 ;
240+ left : 0 ;
241+ width : 100% ;
242+ height : 100% ;
243+ background : rgba (255 , 255 , 255 , 0.8 ) !important ;
244+ backdrop-filter : blur (8px );
245+ -webkit-backdrop-filter : blur (8px );
246+ z-index : 99999 !important ;
247+ display : none;
248+ flex-direction : column;
249+ justify-content : center;
250+ align-items : center;
251+ gap : 20px ;
252+ }
253+
254+ body .dark-mode .theme-switch-overlay {
255+ background : rgba (10 , 10 , 10 , 0.8 ) !important ;
256+ }
257+
258+ .theme-switch-overlay .active {
259+ display : flex !important ;
260+ }
261+
262+ .theme-dots-container {
263+ display : flex;
264+ gap : 12px ;
265+ align-items : center;
266+ }
267+
268+ .theme-dot {
269+ width : 14px ;
270+ height : 14px ;
271+ background-color : # 3b82f6 ;
272+ border-radius : 50% ;
273+ animation : theme-pulse 1.4s ease-in-out infinite both;
274+ box-shadow : 0 0 10px rgba (59 , 130 , 246 , 0.2 );
275+ will-change : transform, opacity;
276+ }
277+
278+ .theme-dot : nth-child (1 ) {
279+ animation-delay : -0.32s ;
280+ }
281+
282+ .theme-dot : nth-child (2 ) {
283+ animation-delay : -0.16s ;
284+ }
285+
286+ @keyframes theme-pulse {
287+
288+ 0% ,
289+ 80% ,
290+ 100% {
291+ transform : scale (0.6 );
292+ opacity : 0.4 ;
293+ }
294+
295+ 40% {
296+ transform : scale (1.1 );
297+ opacity : 1 ;
298+ box-shadow : 0 0 15px rgba (59 , 130 , 246 , 0.4 );
299+ }
300+ }
301+
240302/* ── Dark mode: layout backgrounds ── */
241303
242304body .dark-mode {
@@ -1077,7 +1139,6 @@ p.caption:hover>a.headerlink,
10771139 overflow-y : auto;
10781140 scrollbar-width : thin;
10791141 scrollbar-color : rgba (0 , 0 , 0 , 0.08 ) transparent;
1080- transition : background 0.3s ease;
10811142}
10821143
10831144.sphinxsidebar ::-webkit-scrollbar {
@@ -1170,7 +1231,6 @@ body.dark-mode .sphinxsidebar::-webkit-scrollbar-thumb {
11701231 font-size : 0.85rem ;
11711232 font-weight : 600 ;
11721233 text-decoration : none !important ;
1173- transition : background 0.15s ease, color 0.15s ease;
11741234 line-height : 1.4 ;
11751235 border : none !important ;
11761236}
@@ -1213,97 +1273,89 @@ body.dark-mode .sphinxsidebar li a.current::before {
12131273/* Search box */
12141274/* Search box - Modern "Pill" Style */
12151275.sphinxsidebar # searchbox {
1216- margin-top : 12px ;
1276+ margin-top : 32px !important ;
1277+ padding-top : 0 ;
12171278 position : relative;
12181279}
12191280
12201281.sphinxsidebar form .search {
12211282 display : flex !important ;
12221283 gap : 8px !important ;
12231284 align-items : center;
1285+ margin-top : -2px !important ;
1286+ /* Pull up to reduce gap */
12241287}
12251288
12261289.sphinxsidebar input [type = "text" ] {
1227- width : 100% ;
1228- padding : 10px 16px 10px 36px !important ;
1229- border : 1px solid rgba (16 , 24 , 40 , 0.08 ) !important ;
1290+ flex : 1 ;
1291+ padding : 0 16px !important ;
1292+ height : 38px !important ;
1293+ border : 1px solid rgba (16 , 24 , 40 , 0.15 ) !important ;
12301294 border-radius : 99px !important ;
1231- background-color : rgba (255 , 255 , 255 , 0.6 ) !important ;
1232- background-image : url ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%239ca3af' class='w-6 h-6'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z' /%3E%3C/svg%3E" );
1233- background-repeat : no-repeat;
1234- background-position : 10px center;
1235- background-size : 16px ;
1295+ background-color : # ffffff !important ;
12361296 font-size : 0.9rem !important ;
12371297 color : # 1f2937 !important ;
12381298 outline : none !important ;
1239- transition : all 0.2 s ease ;
1240- box-shadow : 0 1 px 2 px rgba ( 0 , 0 , 0 , 0.04 ) ;
1299+ box-shadow : none !important ;
1300+ transition : border-color 0.2 s ;
12411301}
12421302
12431303.sphinxsidebar input [type = "text" ]: focus {
1244- background-color : # fff !important ;
1245- border-color : # 3b82f6 !important ;
1246- box-shadow : 0 0 0 4px rgba (59 , 130 , 246 , 0.1 ) !important ;
1247- transform : translateY (-1px );
1304+ border : 1.5px solid # 3b82f6 !important ;
1305+ padding : 0 15.5px !important ;
1306+ box-shadow : 0 0 0 2px rgba (59 , 130 , 246 , 0.1 ) !important ;
12481307}
12491308
12501309.sphinxsidebar input [type = "text" ]::placeholder {
12511310 color : # 9ca3af !important ;
1252- font-weight : 450 ;
12531311}
12541312
12551313.sphinxsidebar input [type = "submit" ] {
1256- display : flex;
1314+ display : flex !important ;
12571315 align-items : center;
12581316 justify-content : center;
1259- padding : 0 !important ;
1260- width : 36px ;
1261- height : 36px ;
1262- border : 1px solid rgba (16 , 24 , 40 , 0.08 ) !important ;
1263- border-radius : 50% !important ;
1264- background : rgba (255 , 255 , 255 , 0.6 ) !important ;
1265- color : transparent !important ;
1266- /* Hide text, show icon */
1267- background-image : url ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%234b5563'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3' /%3E%3C/svg%3E" );
1268- background-repeat : no-repeat;
1269- background-position : center;
1270- background-size : 16px ;
1317+ padding : 0 16px !important ;
1318+ height : 38px !important ;
1319+ /* Match input height */
1320+ border : none !important ;
1321+ border-radius : 99px !important ;
1322+ background-color : # 2563eb !important ;
12711323 cursor : pointer;
1272- transition : all 0.2s ease;
1273- box-shadow : 0 1px 2px rgba (0 , 0 , 0 , 0.04 );
1324+ color : # ffffff !important ;
1325+ font-weight : 600 !important ;
1326+ font-size : 0.85rem !important ;
1327+ box-shadow : 0 2px 4px rgba (37 , 99 , 235 , 0.2 );
1328+ transition : background-color 0.2s , box-shadow 0.2s ;
1329+ white-space : nowrap;
12741330}
12751331
12761332.sphinxsidebar input [type = "submit" ]: hover {
1277- background-color : # 3b82f6 !important ;
1278- border-color : # 3b82f6 !important ;
1279- background-image : url ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3' /%3E%3C/svg%3E" );
1280- transform : translateY (-1px );
1281- box-shadow : 0 4px 6px rgba (59 , 130 , 246 , 0.2 );
1333+ background-color : # 1d4ed8 !important ;
1334+ box-shadow : 0 4px 8px rgba (37 , 99 , 235 , 0.3 );
12821335}
12831336
12841337body .dark-mode .sphinxsidebar input [type = "text" ] {
1285- background-color : rgba ( 0 , 0 , 0 , 0.2 ) !important ;
1286- border-color : rgba (255 , 255 , 255 , 0.08 ) !important ;
1338+ background-color : # 121212 !important ;
1339+ border-color : rgba (255 , 255 , 255 , 0.12 ) !important ;
12871340 color : # f3f4f6 !important ;
1288- background-image : url ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%236b7280' class='w-6 h-6'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z' /%3E%3C/svg%3E" );
12891341}
12901342
12911343body .dark-mode .sphinxsidebar input [type = "text" ]: focus {
1292- background-color : rgba (0 , 0 , 0 , 0.4 ) !important ;
1293- border-color : # 60a5fa !important ;
1294- box-shadow : 0 0 0 4px rgba (96 , 165 , 250 , 0.15 ) !important ;
1344+ background-color : # 0b0b0b !important ;
1345+ border : 1.5px solid # 60a5fa !important ;
1346+ padding : 0 15.5px !important ;
1347+ box-shadow : 0 0 0 2px rgba (96 , 165 , 250 , 0.1 ) !important ;
12951348}
12961349
12971350body .dark-mode .sphinxsidebar input [type = "submit" ] {
1298- background-color : rgba ( 0 , 0 , 0 , 0.2 ) !important ;
1299- border-color : rgba ( 255 , 255 , 255 , 0.08 ) !important ;
1300- background-image : url ( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%239ca3af'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3' /%3E%3C/svg%3E" ) ;
1351+ background-color : # 3b82f6 !important ;
1352+ border : none !important ;
1353+ color : # ffffff !important ;
13011354}
13021355
13031356body .dark-mode .sphinxsidebar input [type = "submit" ]: hover {
13041357 background-color : # 3b82f6 !important ;
13051358 border-color : # 3b82f6 !important ;
1306- background-image : url ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3' /%3E%3C/svg%3E" );
13071359}
13081360
13091361/* ── Modern code block card ── */
@@ -1617,7 +1669,6 @@ body.dark-mode div.ipython-output {
16171669 padding : 15px ;
16181670 box-shadow : 4px 4px 4px 4px rgba (0 , 0 , 0 , 0.2 );
16191671 perspective : 100px ;
1620- transition : 0.3s ;
16211672}
16221673
16231674/* On mouse-over, add a deeper shadow */
@@ -1663,7 +1714,6 @@ body.dark-mode div.ipython-output {
16631714 color : # 334155 ;
16641715 padding : 8px 12px ;
16651716 font-size : 0.9rem ;
1666- transition : background 0.2s ease;
16671717}
16681718
16691719.method dt : hover {
@@ -1684,7 +1734,6 @@ body.dark-mode div.ipython-output {
16841734 color : # 4c1d95 ;
16851735 padding : 8px 12px ;
16861736 font-size : 0.9rem ;
1687- transition : background 0.2s ease;
16881737}
16891738
16901739.attribute dt : hover {
0 commit comments