@@ -142,6 +142,18 @@ body {
142
142
animation : bounce-slow 3s infinite;
143
143
}
144
144
145
+ .animate-bounce-fast {
146
+ animation : bounce 2s infinite;
147
+ }
148
+
149
+ .animate-bounce-slower {
150
+ animation : bounce-slow 3.5s infinite;
151
+ }
152
+
153
+ .animate-bounce-slowest {
154
+ animation : bounce-slow 5s infinite;
155
+ }
156
+
145
157
/* Hamburger menu styles */
146
158
.hamburger {
147
159
cursor : pointer;
@@ -427,4 +439,163 @@ body:not(.is-home-page) main {
427
439
428
440
.bg-lavender {
429
441
background-color : # F0EEFF ;
430
- }
442
+ }
443
+
444
+ .window-container .face {
445
+ position : absolute;
446
+ border : 1.5px solid black;
447
+ }
448
+
449
+ .window-container .face .top {
450
+ border-bottom-width : 1px ;
451
+ border-left-width : 0px ;
452
+ }
453
+
454
+ .window-container .face .left {
455
+ border-right-width : 1.5px ;
456
+ border-top-width : 1px ;
457
+ border-left-width : 1.5px ;
458
+ }
459
+
460
+ .window-container .face .front {
461
+ border-top-width : 0px ;
462
+ border-left-width : 0px ;
463
+ overflow : hidden;
464
+ }
465
+
466
+ /* Window title bar */
467
+ .window-titlebar {
468
+ background-color : # CD89FF ;
469
+ padding : 10px 16px ;
470
+ display : flex;
471
+ justify-content : space-between;
472
+ align-items : center;
473
+ border-bottom : 0.5px solid black;
474
+ flex-shrink : 0 ;
475
+ }
476
+
477
+ .window-titlebar-dots {
478
+ display : flex;
479
+ gap : 8px ;
480
+ }
481
+
482
+ .window-titlebar-dot {
483
+ width : 12px ;
484
+ height : 12px ;
485
+ background-color : # D7FF7B ;
486
+ border-radius : 50% ;
487
+ border : 1.5px solid black;
488
+ }
489
+
490
+ /* Window content area */
491
+ .window-content {
492
+ padding : 20px ;
493
+ }
494
+
495
+ /* === core geometry ========================================= */
496
+ .window-container {
497
+ position : relative;
498
+ width : calc ( (var (--w ) + var (--d )) * 1px );
499
+ height : calc ( (var (--h ) + var (--d )) * 1px );
500
+ }
501
+
502
+ /* faces share a lot ⇒ utility class */
503
+ .face {
504
+ position : absolute;
505
+ display : block;
506
+ }
507
+
508
+ /* ---- top panel ---- */
509
+ .face .top {
510
+ width : calc (var (--w ) * 1px );
511
+ height : calc (var (--d ) * 1px );
512
+ background : var (--top-bg );
513
+ transform : skewX (45deg )
514
+ translateX (calc (var (--d ) / 2 * 1px ))
515
+ translateY (calc (var (--d ) / -2 * 1px ));
516
+ border : 1.5px solid black;
517
+ border-bottom-width : 1px ;
518
+ border-left-width : 0px ;
519
+ }
520
+
521
+ /* ---- left panel ---- */
522
+ .face .left {
523
+ width : calc (var (--d ) * 1px );
524
+ height : calc (var (--h ) * 1px );
525
+ background : var (--left-bg );
526
+ transform : skewY (45deg )
527
+ translateY (calc (var (--d ) / 2 * 1px ))
528
+ translateX (calc (var (--d ) / -2 * 1px ));
529
+ border : 1.5px solid black;
530
+ border-right-width : 1.5px ;
531
+ border-top-width : 1px ;
532
+ border-left-width : 1.5px ;
533
+ }
534
+
535
+ /* ---- front panel ---- */
536
+ .face .front {
537
+ width : calc (var (--w ) * 1px );
538
+ height : calc (var (--h ) * 1px );
539
+ background : var (--front-bg );
540
+ transform : translateX (calc (var (--d ) / 2 * 1px ))
541
+ translateY (calc (var (--d ) / 2 * 1px ));
542
+ overflow : hidden; /* keeps content inside */
543
+ border : 1.5px solid black;
544
+ border-top-width : 0px ;
545
+ border-left-width : 0px ;
546
+ }
547
+
548
+ /* A. Allow height to be auto for content flow */
549
+ .window-container .window-auto-height {
550
+ height : auto;
551
+ min-height : calc ((var (--h ) + var (--d )) * 1px );
552
+ }
553
+
554
+ .window-container .window-auto-height .face .left {
555
+ height : 100% ;
556
+ }
557
+
558
+ .window-container .window-auto-height .face .front {
559
+ height : auto;
560
+ min-height : calc (var (--h ) * 1px );
561
+ }
562
+
563
+ /* B. Responsive scaling for mobile */
564
+ @media (max-width : 768px ) {
565
+ .window-container {
566
+ --scale : min (1 , calc (90vw / ((var (--w ) + var (--d )) * 1px )));
567
+ transform : scale (var (--scale ));
568
+ transform-origin : top left;
569
+ margin-bottom : calc ((1 - var (--scale )) * -100% );
570
+ }
571
+ }
572
+
573
+ @media (max-width : 640px ) {
574
+ .window-container {
575
+ --w : 350 ; /* Smaller default width for mobile */
576
+ --h : auto; /* Allow height to adjust */
577
+ --d : 20 ; /* Smaller depth */
578
+ }
579
+
580
+ /* Adjust font sizes in window content for mobile */
581
+ .window-content {
582
+ padding : 15px ;
583
+ font-size : 0.9rem ;
584
+ }
585
+
586
+ .window-content .font-semibold {
587
+ font-size : 1rem ;
588
+ }
589
+ }
590
+
591
+ @media (max-width : 480px ) {
592
+ .window-container {
593
+ --w : 300 ; /* Even smaller for very small screens */
594
+ --d : 15 ;
595
+ }
596
+
597
+ .window-content {
598
+ padding : 12px ;
599
+ font-size : 0.85rem ;
600
+ }
601
+ }
0 commit comments