@@ -151,6 +151,72 @@ body {
151151 color : var (--cyan );
152152}
153153
154+ /* Hamburger Menu */
155+ .nav-hamburger {
156+ display : none;
157+ position : absolute;
158+ right : 16px ;
159+ top : 50% ;
160+ transform : translateY (-50% );
161+ flex-direction : column;
162+ justify-content : center;
163+ gap : 5px ;
164+ width : 30px ;
165+ height : 30px ;
166+ background : transparent;
167+ border : none;
168+ cursor : pointer;
169+ padding : 0 ;
170+ z-index : 103 ;
171+ transition : transform 0.3s ease;
172+ }
173+
174+ .hamburger-line {
175+ width : 24px ;
176+ height : 2.5px ;
177+ background : var (--black );
178+ border-radius : 1px ;
179+ transition : all 0.3s ease;
180+ transform-origin : center;
181+ }
182+
183+ .nav-hamburger--active .hamburger-line : nth-child (1 ) {
184+ transform : translateY (7.5px ) rotate (45deg );
185+ }
186+
187+ .nav-hamburger--active .hamburger-line : nth-child (2 ) {
188+ opacity : 0 ;
189+ }
190+
191+ .nav-hamburger--active .hamburger-line : nth-child (3 ) {
192+ transform : translateY (-7.5px ) rotate (-45deg );
193+ }
194+
195+ /* Mobile Menu Overlay */
196+ .nav-overlay {
197+ display : none;
198+ position : fixed;
199+ top : 0 ;
200+ left : 0 ;
201+ width : 100% ;
202+ height : 100% ;
203+ background : rgba (0 , 0 , 0 , 0.7 );
204+ z-index : 98 ;
205+ opacity : 0 ;
206+ pointer-events : none;
207+ transition : opacity 0.3s ease;
208+ }
209+
210+ .nav-overlay--visible {
211+ opacity : 1 ;
212+ pointer-events : all;
213+ }
214+
215+ /* Prevent body scroll when menu is open */
216+ body .nav-open {
217+ overflow : hidden;
218+ }
219+
154220
155221/* Accessibility: Focus Indicators */
156222a : focus-visible ,
@@ -1359,28 +1425,62 @@ button,
13591425 height : 34px ;
13601426 }
13611427
1428+ /* Show hamburger menu on mobile */
1429+ .nav-hamburger {
1430+ display : flex;
1431+ }
1432+
1433+ /* Show overlay on mobile */
1434+ .nav-overlay {
1435+ display : block;
1436+ }
1437+
1438+ /* Mobile menu - slide in from right */
13621439 .nav-links {
1363- position : relative;
1364- right : auto;
1365- gap : 4px ;
1366- font-size : 12px ;
1367- margin-left : auto;
1368- margin-right : 8px ;
1369- height : 34px ;
1440+ position : fixed;
1441+ top : 0 ;
1442+ right : -100% ;
1443+ width : 280px ;
1444+ height : 100vh ;
1445+ background : var (--yellow );
1446+ flex-direction : column;
1447+ justify-content : flex-start;
1448+ align-items : stretch;
1449+ padding : 80px 0 40px ;
1450+ gap : 0 ;
1451+ margin : 0 ;
1452+ z-index : 99 ;
1453+ box-shadow : -4px 0 12px rgba (0 , 0 , 0 , 0.3 );
1454+ transition : right 0.3s ease;
1455+ overflow-y : auto;
1456+ }
1457+
1458+ .nav-links--open {
1459+ right : 0 ;
1460+ }
1461+
1462+ .nav-links li {
1463+ width : 100% ;
1464+ border-bottom : 1px solid rgba (0 , 0 , 0 , 0.1 );
13701465 }
13711466
13721467 .nav-links li : not (: last-child )::after {
1373- margin-left : 4px ;
1374- font-size : 12px ;
1468+ display : none;
13751469 }
13761470
13771471 .nav-links a {
1378- padding : 8px 12px ;
1379- min-height : 34px ;
1380- min-width : 44px ;
1381- display : flex;
1382- align-items : center;
1383- justify-content : center;
1472+ width : 100% ;
1473+ padding : 18px 24px ;
1474+ font-size : 16px ;
1475+ font-weight : 700 ;
1476+ text-align : left;
1477+ min-height : 60px ;
1478+ transition : background 0.2s , padding-left 0.2s ;
1479+ }
1480+
1481+ .nav-links a : hover {
1482+ background : rgba (0 , 0 , 0 , 0.05 );
1483+ padding-left : 32px ;
13841484 }
13851485
13861486 .hero {
@@ -1621,21 +1721,16 @@ button,
16211721/* Extra small screens (iPhone SE, etc) */
16221722@media (max-width : 374px ) {
16231723 .nav-logo a {
1624- font-size : 16 px ;
1724+ font-size : 14 px ;
16251725 }
16261726
16271727 .nav-accent-angle {
1628- width : 8 em ;
1728+ width : 7.5 em ;
16291729 }
16301730
1731+ /* Mobile menu width adjustment for very small screens */
16311732 .nav-links {
1632- gap : 2px ;
1633- font-size : 11px ;
1634- margin-right : 4px ;
1635- }
1636-
1637- .nav-links a {
1638- padding : 8px 10px ;
1733+ width : 260px ;
16391734 }
16401735
16411736 .hero-content {
0 commit comments