1414 --radius-lg : 26px ;
1515 --radius-md : 16px ;
1616 --container : 1240px ;
17+ --nav-pill-height-mobile : 56px ;
18+ --nav-pill-height-desktop : 46px ;
19+ --nav-top-gap : 12px ;
20+ --nav-shadow : 0 16px 36px -26px rgba (17 , 19 , 23 , 0.42 );
21+ --nav-shadow-scrolled : 0 20px 40px -22px rgba (17 , 19 , 23 , 0.52 );
22+ --nav-mobile-offset : calc (env (safe-area-inset-top, 0px ) + var (--nav-top-gap ) + var (--nav-pill-height-mobile ) + 18px );
1723 --nav-h : 74px ;
1824 --heading-font : "Unbounded" , "Arial" , sans-serif;
1925 --body-font : "Space Grotesk" , "Segoe UI" , sans-serif;
3339 --button-text : # 111317 ;
3440 --highlight : rgba (241 , 241 , 235 , 0.08 );
3541 --highlight-strong : rgba (241 , 241 , 235 , 0.18 );
42+ --nav-shadow : 0 16px 38px -26px rgba (0 , 0 , 0 , 0.58 );
43+ --nav-shadow-scrolled : 0 22px 44px -22px rgba (0 , 0 , 0 , 0.66 );
3644 }
3745}
3846
@@ -295,31 +303,46 @@ a {
295303
296304.site-nav {
297305 position : fixed;
298- top : 14 px ;
306+ top : calc ( env (safe-area-inset-top , 0 px ) + var ( --nav-top-gap )) ;
299307 left : 0 ;
300308 right : 0 ;
301309 z-index : 1000 ;
310+ pointer-events : none;
311+ }
312+
313+ .site-nav * {
314+ pointer-events : auto;
302315}
303316
304317.nav-frame {
305318 width : min (1320px , calc (100% - 1.5rem ));
306319 margin : 0 auto;
307- display : flex;
308- align-items : center;
309- gap : 1rem ;
310- padding : 0.68rem 0.95rem ;
320+ display : block;
321+ padding : 0 ;
311322 border-radius : 999px ;
312323 border : 1px solid var (--line );
313324 background : var (--surface );
314325 backdrop-filter : blur (12px );
315326 -webkit-backdrop-filter : blur (12px );
316- transition : border-color 220ms ease, transform 220ms ease, background-color 220ms ease;
327+ box-shadow : var (--nav-shadow );
328+ overflow : hidden;
329+ transition : border-color 220ms ease, transform 220ms ease, background-color 220ms ease, box-shadow 220ms ease;
330+ }
331+
332+ .nav-row {
333+ min-height : var (--nav-pill-height-desktop );
334+ display : flex;
335+ align-items : center;
336+ gap : 1rem ;
337+ padding : 0.58rem 0.95rem ;
317338}
318339
319- body .nav-scrolled .nav-frame {
340+ body .nav-scrolled .nav-frame ,
341+ body .nav--scrolled .nav-frame {
320342 transform : translateY (-1px );
321343 border-color : var (--line-strong );
322344 background : var (--surface-strong );
345+ box-shadow : var (--nav-shadow-scrolled );
323346}
324347
325348.brand {
@@ -333,8 +356,12 @@ body.nav-scrolled .nav-frame {
333356 height : 30px ;
334357}
335358
359+ .nav-links-desktop {
360+ margin-left : auto;
361+ }
362+
336363.nav-links {
337- margin : 0 0 0 auto ;
364+ margin : 0 ;
338365 padding : 0 ;
339366 list-style : none;
340367 display : flex;
@@ -396,6 +423,60 @@ body.nav-scrolled .nav-frame {
396423 transform : translateY (-3.5px ) rotate (-45deg );
397424}
398425
426+ .nav-sheet {
427+ display : none;
428+ }
429+
430+ .nav-sheet-inner {
431+ overflow : hidden;
432+ }
433+
434+ .nav-mobile-links {
435+ list-style : none;
436+ margin : 0 ;
437+ padding : 0.2rem 0.4rem 0.7rem ;
438+ }
439+
440+ .nav-mobile-links li {
441+ opacity : 0 ;
442+ transform : translateY (-6px );
443+ }
444+
445+ .nav-mobile-links a {
446+ display : block;
447+ min-height : 42px ;
448+ padding : 0.62rem 0.78rem ;
449+ border-radius : 14px ;
450+ text-decoration : none;
451+ font-size : 0.92rem ;
452+ letter-spacing : 0.06em ;
453+ text-transform : uppercase;
454+ color : var (--muted );
455+ transition : color 180ms ease, background-color 180ms ease;
456+ }
457+
458+ .nav-mobile-links a : hover ,
459+ .nav-mobile-links a .is-active {
460+ color : var (--text );
461+ background : var (--highlight );
462+ }
463+
464+ .site-nav .nav-open .nav-mobile-links li {
465+ animation : nav-mobile-in 380ms cubic-bezier (0.22 , 1 , 0.36 , 1 ) forwards;
466+ animation-delay : var (--menu-delay , 0s );
467+ }
468+
469+ @keyframes nav-mobile-in {
470+ from {
471+ opacity : 0 ;
472+ transform : translateY (-6px );
473+ }
474+ to {
475+ opacity : 1 ;
476+ transform : translateY (0 );
477+ }
478+ }
479+
399480.hero {
400481 min-height : min (900px , 100vh );
401482 display : flex;
@@ -727,52 +808,6 @@ body.nav-scrolled .nav-frame {
727808}
728809
729810@media (max-width : 980px ) {
730- .site-nav {
731- top : 12px ;
732- }
733-
734- .nav-frame {
735- flex-wrap : wrap;
736- border-radius : 24px ;
737- gap : 0.5rem ;
738- padding : 0.6rem ;
739- }
740-
741- .nav-toggle {
742- display : inline-flex;
743- }
744-
745- .nav-links {
746- width : 100% ;
747- margin : 0 ;
748- order : 3 ;
749- flex-direction : column;
750- align-items : stretch;
751- gap : 0.3rem ;
752- max-height : 0 ;
753- overflow : hidden;
754- opacity : 0 ;
755- pointer-events : none;
756- transform : translateY (-8px );
757- transition :
758- max-height 300ms cubic-bezier (0.22 , 1 , 0.36 , 1 ),
759- opacity 220ms ease,
760- transform 240ms ease;
761- }
762-
763- .site-nav .nav-open .nav-links {
764- max-height : 280px ;
765- opacity : 1 ;
766- pointer-events : auto;
767- transform : translateY (0 );
768- }
769-
770- .nav-links a {
771- width : 100% ;
772- justify-content : flex-start;
773- min-height : 42px ;
774- }
775-
776811 .page-wrap {
777812 padding-top : 98px ;
778813 }
@@ -816,6 +851,62 @@ body.nav-scrolled .nav-frame {
816851 }
817852}
818853
854+ @media (max-width : 980px ) and (orientation : portrait) {
855+ .site-nav {
856+ top : calc (env (safe-area-inset-top, 0px ) + var (--nav-top-gap ));
857+ }
858+
859+ .nav-frame {
860+ width : calc (100% - 1.2rem );
861+ border-radius : calc (var (--nav-pill-height-mobile ) / 2 );
862+ }
863+
864+ .nav-row {
865+ min-height : var (--nav-pill-height-mobile );
866+ padding : 0.52rem 0.72rem ;
867+ }
868+
869+ .nav-links-desktop {
870+ display : none;
871+ }
872+
873+ .nav-toggle {
874+ display : inline-flex;
875+ }
876+
877+ .nav-sheet {
878+ display : grid;
879+ grid-template-rows : 0fr ;
880+ transition : grid-template-rows 420ms cubic-bezier (0.22 , 1 , 0.36 , 1 );
881+ }
882+
883+ .site-nav .nav-open .nav-sheet {
884+ grid-template-rows : 1fr ;
885+ }
886+
887+ .nav-mobile-links a {
888+ font-size : 0.9rem ;
889+ }
890+
891+ .page-wrap {
892+ padding-top : var (--nav-mobile-offset );
893+ }
894+ }
895+
896+ @media (max-width : 980px ) and (orientation : landscape) {
897+ .nav-toggle {
898+ display : none !important ;
899+ }
900+
901+ .nav-sheet {
902+ display : none !important ;
903+ }
904+
905+ .nav-links-desktop {
906+ display : flex;
907+ }
908+ }
909+
819910@media (max-width : 680px ) {
820911 .container ,
821912 .projects-shell {
@@ -838,6 +929,7 @@ body.nav-scrolled .nav-frame {
838929
839930 .ambient-orb ,
840931 .ambient-grain ,
932+ .site-nav .nav-open .nav-mobile-links li ,
841933 .hero-line > span ,
842934 .button ,
843935 .discipline-card ,
0 commit comments