Polish responsive portfolio experience
This commit is contained in:
+12
-9
@@ -6,6 +6,8 @@ html { scroll-behavior:smooth; background:var(--paper); }
|
|||||||
body { margin:0; overflow-x:hidden; background:var(--paper); color:var(--ink); font-family:'Manrope',sans-serif; }
|
body { margin:0; overflow-x:hidden; background:var(--paper); color:var(--ink); font-family:'Manrope',sans-serif; }
|
||||||
main { overflow:hidden; position:relative; background-image:linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px); background-size:48px 48px; }
|
main { overflow:hidden; position:relative; background-image:linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px); background-size:48px 48px; }
|
||||||
a { color:inherit; text-decoration:none; }
|
a { color:inherit; text-decoration:none; }
|
||||||
|
a:focus-visible { outline:2px solid var(--acid); outline-offset:5px; }
|
||||||
|
::selection { background:var(--acid); color:#0b0e0d; }
|
||||||
.link-arrow { width:14px; height:14px; flex:none; fill:none; stroke:currentColor; stroke-width:1.35; stroke-linecap:round; stroke-linejoin:round; }
|
.link-arrow { width:14px; height:14px; flex:none; fill:none; stroke:currentColor; stroke-width:1.35; stroke-linecap:round; stroke-linejoin:round; }
|
||||||
.shell { width:min(1180px, calc(100% - 48px)); margin-inline:auto; }
|
.shell { width:min(1180px, calc(100% - 48px)); margin-inline:auto; }
|
||||||
.ambient { position:absolute; width:680px; height:680px; border-radius:50%; pointer-events:none; filter:blur(4px); opacity:.55; }
|
.ambient { position:absolute; width:680px; height:680px; border-radius:50%; pointer-events:none; filter:blur(4px); opacity:.55; }
|
||||||
@@ -15,16 +17,16 @@ a { color:inherit; text-decoration:none; }
|
|||||||
.mark { font:600 17px 'DM Mono',monospace; letter-spacing:-.04em; color:var(--acid); }
|
.mark { font:600 17px 'DM Mono',monospace; letter-spacing:-.04em; color:var(--acid); }
|
||||||
.mark span { color:var(--muted); font-weight:300; }
|
.mark span { color:var(--muted); font-weight:300; }
|
||||||
.nav nav { display:flex; gap:34px; font:400 12px 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.08em; }
|
.nav nav { display:flex; gap:34px; font:400 12px 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.08em; }
|
||||||
.nav nav a { transition:color .2s; }.nav nav a:hover { color:var(--acid); }
|
.nav nav a { position:relative; transition:color .2s; }.nav nav a::after { content:''; position:absolute; left:0; right:0; bottom:-8px; height:1px; background:var(--acid); transform:scaleX(0); transform-origin:left; transition:transform .2s; }.nav nav a:hover { color:var(--acid); }.nav nav a:hover::after { transform:scaleX(1); }
|
||||||
.hero { min-height:760px; padding:84px 0 70px; position:relative; border-bottom:1px solid var(--line); }
|
.hero { min-height:760px; padding:84px 0 70px; position:relative; border-bottom:1px solid var(--line); }
|
||||||
.hero-kicker { float:right; max-width:290px; font:400 11px/1.5 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); display:flex; gap:10px; position:relative; z-index:1; }
|
.hero-kicker { float:right; max-width:290px; font:400 11px/1.5 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); display:flex; gap:10px; position:relative; z-index:1; }
|
||||||
.pulse { width:8px; height:8px; margin-top:4px; background:var(--acid); border-radius:50%; box-shadow:0 0 0 5px var(--glow),0 0 18px var(--acid); flex:none; }
|
.pulse { width:8px; height:8px; margin-top:4px; background:var(--acid); border-radius:50%; box-shadow:0 0 0 5px var(--glow),0 0 18px var(--acid); flex:none; }
|
||||||
.hero-orbit { position:absolute; width:318px; height:318px; border:1px solid rgba(199,255,70,.24); right:15%; top:103px; border-radius:50%; opacity:.9; animation:spin 20s linear infinite; }
|
.hero-orbit { position:absolute; width:318px; height:318px; border:1px solid rgba(199,255,70,.24); right:13%; top:112px; border-radius:50%; opacity:.68; animation:spin 20s linear infinite; }
|
||||||
.hero-orbit::before,.hero-orbit::after { content:''; position:absolute; border-radius:50%; background:var(--acid); box-shadow:0 0 18px var(--acid); }.hero-orbit::before { width:7px; height:7px; top:34px; left:34px; }.hero-orbit::after { width:4px; height:4px; bottom:29px; right:56px; }
|
.hero-orbit::before,.hero-orbit::after { content:''; position:absolute; border-radius:50%; background:var(--acid); box-shadow:0 0 18px var(--acid); }.hero-orbit::before { width:7px; height:7px; top:34px; left:34px; }.hero-orbit::after { width:4px; height:4px; bottom:29px; right:56px; }
|
||||||
.hero-orbit span { position:absolute; inset:32px; border:1px dashed rgba(231,250,224,.18); border-radius:50%; display:grid; place-items:center; font:500 13px 'DM Mono',monospace; color:var(--acid); animation:spin-reverse 20s linear infinite; }.hero-orbit i { position:absolute; width:100%; height:1px; top:50%; background:linear-gradient(90deg, transparent,rgba(199,255,70,.6),transparent); }
|
.hero-orbit span { position:absolute; inset:32px; border:1px dashed rgba(231,250,224,.18); border-radius:50%; display:grid; place-items:center; font:500 13px 'DM Mono',monospace; color:var(--acid); animation:spin-reverse 20s linear infinite; }.hero-orbit i { position:absolute; width:100%; height:1px; top:50%; background:linear-gradient(90deg, transparent,rgba(199,255,70,.6),transparent); }
|
||||||
.eyebrow { font:400 11px 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.15em; color:var(--muted); }
|
.eyebrow { font:400 11px 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.15em; color:var(--muted); }
|
||||||
.hero h1 { font-size:clamp(70px,11.5vw,164px); line-height:.82; letter-spacing:-.085em; margin:108px 0 26px -8px; font-weight:600; position:relative; z-index:1; text-shadow:0 0 55px rgba(199,255,70,.07); }
|
.hero h1 { font-size:clamp(70px,11.5vw,164px); line-height:.82; letter-spacing:-.085em; margin:108px 0 26px -8px; font-weight:600; position:relative; z-index:1; text-shadow:0 0 55px rgba(199,255,70,.07); }
|
||||||
.hero h2 { max-width:760px; font-size:clamp(28px,4.2vw,58px); line-height:1.03; letter-spacing:-.05em; margin:0 0 32px; font-weight:500; }
|
.hero h2 { max-width:760px; font-size:clamp(28px,4.2vw,58px); line-height:1.03; letter-spacing:-.05em; margin:0 0 32px; font-weight:500; text-wrap:balance; }
|
||||||
.hero-copy { width:min(620px,75%); margin-left:26%; color:#bac4bb; font-size:16px; line-height:1.75; }
|
.hero-copy { width:min(620px,75%); margin-left:26%; color:#bac4bb; font-size:16px; line-height:1.75; }
|
||||||
.hero-actions { margin:42px 0 0 26%; display:flex; gap:10px; }
|
.hero-actions { margin:42px 0 0 26%; display:flex; gap:10px; }
|
||||||
.button { padding:14px 18px; border:1px solid rgba(243,246,240,.36); background:rgba(15,20,18,.55); font:500 11px 'DM Mono',monospace; text-transform:uppercase; display:flex; gap:26px; justify-content:space-between; transition:transform .2s,background .2s,border .2s; }
|
.button { padding:14px 18px; border:1px solid rgba(243,246,240,.36); background:rgba(15,20,18,.55); font:500 11px 'DM Mono',monospace; text-transform:uppercase; display:flex; gap:26px; justify-content:space-between; transition:transform .2s,background .2s,border .2s; }
|
||||||
@@ -40,10 +42,10 @@ a { color:inherit; text-decoration:none; }
|
|||||||
.cap-card + .cap-card { padding-left:30px; }
|
.cap-card + .cap-card { padding-left:30px; }
|
||||||
.cap-card:last-child { border-right:0; }
|
.cap-card:last-child { border-right:0; }
|
||||||
.cap-number { font:300 11px 'DM Mono',monospace; color:var(--muted); }
|
.cap-number { font:300 11px 'DM Mono',monospace; color:var(--muted); }
|
||||||
.cap-card:hover { background:linear-gradient(135deg,rgba(199,255,70,.09),transparent 68%); }.cap-card h3 { font-size:24px; margin:54px 0 16px; letter-spacing:-.035em; }.cap-card p { color:#b0bab2; font-size:14px; line-height:1.7; min-height:74px; }
|
.cap-card:hover { background:linear-gradient(135deg,rgba(199,255,70,.09),transparent 68%); }.cap-card h3 { font-size:24px; margin:54px 0 16px; letter-spacing:-.035em; }.cap-card p { color:#b0bab2; font-size:14px; line-height:1.7; min-height:74px; }.cap-card:hover .cap-number { color:var(--acid); }
|
||||||
.tag-list { display:flex; flex-wrap:wrap; gap:7px; margin-top:24px; }
|
.tag-list { display:flex; flex-wrap:wrap; gap:7px; margin-top:24px; }
|
||||||
.tag-list span { font:400 10px 'DM Mono',monospace; border:1px solid var(--line); background:rgba(255,255,255,.025); padding:6px 8px; color:#b8c2bb; }
|
.tag-list span { font:400 10px 'DM Mono',monospace; border:1px solid var(--line); background:rgba(255,255,255,.025); padding:6px 8px; color:#b8c2bb; }
|
||||||
.project { display:grid; grid-template-columns:160px minmax(0,1fr) 150px; gap:34px; padding:52px 0; border-bottom:1px solid var(--line); transition:padding .25s,background .25s; }.project:hover { padding-left:18px; background:linear-gradient(90deg,rgba(199,255,70,.075),transparent 72%); }
|
.project { display:grid; grid-template-columns:160px minmax(0,1fr) 150px; gap:34px; padding:52px 0; border-bottom:1px solid var(--line); transition:padding .25s,background .25s; }.project:hover { padding-left:18px; background:linear-gradient(90deg,rgba(199,255,70,.075),transparent 72%); }.project:hover .project-meta span { color:var(--acid); }
|
||||||
.project-meta span { font:300 11px 'DM Mono',monospace; color:var(--muted); }
|
.project-meta span { font:300 11px 'DM Mono',monospace; color:var(--muted); }
|
||||||
.project-meta p { font:400 10px/1.5 'DM Mono',monospace; text-transform:uppercase; color:var(--muted); margin-top:60px; }
|
.project-meta p { font:400 10px/1.5 'DM Mono',monospace; text-transform:uppercase; color:var(--muted); margin-top:60px; }
|
||||||
.project-body h3 { margin:0 0 18px; font-size:clamp(30px,4vw,52px); letter-spacing:-.055em; font-weight:500; }
|
.project-body h3 { margin:0 0 18px; font-size:clamp(30px,4vw,52px); letter-spacing:-.055em; font-weight:500; }
|
||||||
@@ -52,7 +54,7 @@ a { color:inherit; text-decoration:none; }
|
|||||||
.project-body li { font:400 11px 'DM Mono',monospace; }
|
.project-body li { font:400 11px 'DM Mono',monospace; }
|
||||||
.project-body li::before { content:'—'; color:var(--muted); margin-right:9px; }
|
.project-body li::before { content:'—'; color:var(--muted); margin-right:9px; }
|
||||||
.project-links { display:flex; align-items:flex-end; justify-content:flex-end; flex-direction:column; gap:10px; }
|
.project-links { display:flex; align-items:flex-end; justify-content:flex-end; flex-direction:column; gap:10px; }
|
||||||
.project-links a { width:100%; display:flex; justify-content:space-between; align-items:center; padding:11px 0; border-bottom:1px solid rgba(243,246,240,.55); font:400 10px 'DM Mono',monospace; text-transform:uppercase; }.project-links a:hover { color:var(--acid); border-color:var(--acid); }
|
.project-links a { width:100%; display:flex; justify-content:space-between; align-items:center; padding:11px 0; border-bottom:1px solid rgba(243,246,240,.55); font:400 10px 'DM Mono',monospace; text-transform:uppercase; }.project-links a:hover { color:var(--acid); border-color:var(--acid); }.project-links a:hover .link-arrow,.tool-grid a:hover .link-arrow,.contact-grid a:hover .link-arrow { transform:translate(2px,-2px); }.link-arrow { transition:transform .2s; }
|
||||||
.tool-grid { display:grid; grid-template-columns:1fr 1fr; }
|
.tool-grid { display:grid; grid-template-columns:1fr 1fr; }
|
||||||
.tool-grid a { min-height:130px; border-bottom:1px solid var(--line); padding:26px 0; display:flex; justify-content:space-between; gap:30px; transition:color .2s,transform .2s; }
|
.tool-grid a { min-height:130px; border-bottom:1px solid var(--line); padding:26px 0; display:flex; justify-content:space-between; gap:30px; transition:color .2s,transform .2s; }
|
||||||
.tool-grid a:nth-child(odd) { padding-right:30px; border-right:1px solid var(--line); }
|
.tool-grid a:nth-child(odd) { padding-right:30px; border-right:1px solid var(--line); }
|
||||||
@@ -70,16 +72,17 @@ a { color:inherit; text-decoration:none; }
|
|||||||
.footer h2 { font-size:clamp(45px,7vw,96px); line-height:.98; letter-spacing:-.065em; font-weight:500; margin:48px 0 80px; }
|
.footer h2 { font-size:clamp(45px,7vw,96px); line-height:.98; letter-spacing:-.065em; font-weight:500; margin:48px 0 80px; }
|
||||||
.footer h2 em { color:var(--acid); font-style:normal; }
|
.footer h2 em { color:var(--acid); font-style:normal; }
|
||||||
.contact-grid { border-top:1px solid #484b42; }
|
.contact-grid { border-top:1px solid #484b42; }
|
||||||
.contact-grid a { display:grid; grid-template-columns:120px 1fr 24px; padding:22px 0; border-bottom:1px solid #484b42; align-items:center; }
|
.contact-grid a { display:grid; grid-template-columns:120px 1fr 24px; padding:22px 0; border-bottom:1px solid #484b42; align-items:center; transition:padding .2s,color .2s; }.contact-grid a:hover { padding-inline:10px; }
|
||||||
.contact-grid span { font:400 10px 'DM Mono',monospace; text-transform:uppercase; color:#92958a; }
|
.contact-grid span { font:400 10px 'DM Mono',monospace; text-transform:uppercase; color:#92958a; }
|
||||||
.contact-grid strong { font-weight:400; }
|
.contact-grid strong { font-weight:400; }
|
||||||
.contact-grid a:hover strong { color:var(--acid); }
|
.contact-grid a:hover strong { color:var(--acid); }
|
||||||
.footer-bottom { display:flex; justify-content:space-between; padding-top:60px; color:#787b71; font:300 9px 'DM Mono',monospace; text-transform:uppercase; }
|
.footer-bottom { display:flex; justify-content:space-between; padding-top:60px; color:#787b71; font:300 9px 'DM Mono',monospace; text-transform:uppercase; }
|
||||||
@keyframes spin { to { transform:rotate(360deg); } } @keyframes spin-reverse { to { transform:rotate(-360deg); } }
|
@keyframes spin { to { transform:rotate(360deg); } } @keyframes spin-reverse { to { transform:rotate(-360deg); } }
|
||||||
|
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
|
||||||
@media (max-width:760px) {
|
@media (max-width:760px) {
|
||||||
.shell { width:min(100% - 28px,1180px); }
|
.shell { width:min(100% - 28px,1180px); }
|
||||||
.nav { height:70px; }.nav nav { gap:14px; }.nav nav a:nth-child(2){display:none}
|
.nav { height:70px; }.nav nav { gap:15px; font-size:10px; }.nav nav a::after { bottom:-6px; }
|
||||||
.hero { min-height:auto; padding:55px 0 60px; }.hero-kicker { float:none; margin-bottom:70px; }.hero-orbit { width:180px; height:180px; right:-60px; top:105px; opacity:.45; }.hero h1 { margin-top:0; font-size:19vw; }.hero h2 { font-size:36px; }
|
.hero { min-height:auto; padding:55px 0 60px; }.hero-kicker { float:none; margin-bottom:70px; }.hero-orbit { width:154px; height:154px; right:-32px; top:146px; opacity:.35; }.hero h1 { margin-top:0; font-size:19vw; }.hero h2 { font-size:36px; }
|
||||||
.hero-copy,.hero-actions { width:100%; margin-left:0; }.hero-copy { margin-top:30px; }.hero-actions { flex-direction:column; }.hero-facts { margin-left:0; gap:16px; flex-direction:column; }.hero-index { display:none; }
|
.hero-copy,.hero-actions { width:100%; margin-left:0; }.hero-copy { margin-top:30px; }.hero-actions { flex-direction:column; }.hero-facts { margin-left:0; gap:16px; flex-direction:column; }.hero-index { display:none; }
|
||||||
.section-heading span { display:none; }.capabilities,.work,.tools,.about { padding-top:70px; }
|
.section-heading span { display:none; }.capabilities,.work,.tools,.about { padding-top:70px; }
|
||||||
.cap-grid { grid-template-columns:1fr; }.cap-card,.cap-card + .cap-card { border-right:0; border-bottom:1px solid var(--line); padding:34px 0; min-height:0; }.cap-card h3 { margin-top:28px; }.cap-card p { min-height:0; }
|
.cap-grid { grid-template-columns:1fr; }.cap-card,.cap-card + .cap-card { border-right:0; border-bottom:1px solid var(--line); padding:34px 0; min-height:0; }.cap-card h3 { margin-top:28px; }.cap-card p { min-height:0; }
|
||||||
|
|||||||
Reference in New Issue
Block a user