1 line
No EOL
8.2 KiB
CSS
1 line
No EOL
8.2 KiB
CSS
:root{--pink-50:#FFF0F5;--pink-100:#FFE0EB;--pink-200:#FFB8D9;--pink-300:#FF8AC8;--pink-400:#F45D9E;--pink-500:#D23B80;--sage-200:#D4E6D5;--sage-300:#B5D4B7;--sage-400:#8AB68C;--sage-500:#6A9A6C;--cream-50:#FFFEF5;--cream-100:#FFF9F0;--text:#4a4a4a;--bg-primary:var(--pink-50);--bg-secondary:white;--accent-primary:var(--pink-400);--accent-secondary:var(--sage-400);--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-xxl:3rem;--container-max:1200px;--transition:0.2s ease}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;line-height:1.6;color:var(--text);background-color:var(--bg-primary);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--space-md)}.skip-link{position:absolute;top:-40px;left:0;padding:var(--space-sm) var(--space-md);background-color:var(--accent-primary);color:white;z-index:100;transition:top var(--transition)}.skip-link:focus{top:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}h1,h2,h3{line-height:1.3;margin-bottom:var(--space-md)}h1{font-size:clamp(2.25rem,5vw,3rem);color:var(--accent-primary)}h2{font-size:clamp(1.75rem,4vw,2rem);color:var(--accent-secondary)}h3{font-size:clamp(1.25rem,3vw,1.5rem);color:var(--accent-primary)}p{margin-bottom:var(--space-md)}a{color:var(--accent-primary);text-decoration:none;transition:color var(--transition)}a:focus,a:hover{color:var(--accent-secondary);text-decoration:underline}:focus{outline:3px solid var(--pink-300);outline-offset:3px}header{background-color:var(--bg-primary);box-shadow:0 2px 8px rgba(0,0,0,.1);position:-webkit-sticky;position:sticky;top:0;z-index:10}nav{padding:var(--space-md) 0}nav .container{display:flex;align-items:center;justify-content:space-between}.logo{font-weight:700;font-size:1.25rem;color:var(--accent-primary)}.logo:focus,.logo:hover{text-decoration:none}.nav-links{display:flex;list-style:none;gap:var(--space-sm);align-items:center}.nav-links a{display:inline-flex;align-items:center;padding:var(--space-sm) var(--space-md);border-radius:9999px;background-color:var(--sage-200);color:var(--text);transition:all var(--transition)}.nav-links a:focus,.nav-links a:hover{background-color:var(--pink-200);text-decoration:none;transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.1)}.theme-toggle{background-color:var(--pink-300);border:none;color:white;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition)}.theme-toggle:focus,.theme-toggle:hover{background-color:var(--pink-200);transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.1)}.menu-toggle{display:none;background-color:var(--pink-300);border:none;width:36px;height:36px;border-radius:50%;position:relative;cursor:pointer;color:white;align-items:center;justify-content:center;transition:all var(--transition)}.menu-toggle:focus,.menu-toggle:hover{background-color:var(--pink-200);transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.1)}main{flex:1 1;padding:var(--space-xxl) 0}.intro{background-color:var(--bg-secondary);border-radius:.75rem;padding:var(--space-xl);box-shadow:0 2px 10px rgba(0,0,0,.05)}.intro,.projects{margin-bottom:var(--space-xxl)}.projects h2{position:relative;margin-bottom:var(--space-xl);display:flex;align-items:center}.projects h2:after{content:"";flex:1 1;height:1px;margin-left:var(--space-md);background-color:var(--sage-200)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:var(--space-lg);gap:var(--space-lg)}.project{background-color:var(--bg-secondary);border-radius:.5rem;padding:var(--space-md);box-shadow:0 2px 5px rgba(0,0,0,.05);transition:transform var(--transition),box-shadow var(--transition)}.project:focus-within,.project:hover{transform:translateY(-4px);box-shadow:0 6px 12px rgba(0,0,0,.08)}.project h3,.project p{margin-bottom:var(--space-sm)}.project a{display:inline-flex;align-items:center;font-size:.875rem;transition:all var(--transition)}.project a:focus,.project a:hover{transform:translateY(-2px)}.icon-small{width:14px;height:14px;margin-left:var(--space-xs)}footer{background-color:var(--pink-100);padding:var(--space-xl);text-align:center}.social-links{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-xs);list-style:none;margin-bottom:var(--space-md)}.social-links li:not(:last-child):after{content:"•";margin:0 var(--space-xs)}.theme-note{margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);display:inline-block}.dark-mode{--pink-50:#3A2A35;--pink-100:#59354B;--pink-200:#8E5773;--pink-300:#B47A93;--pink-400:#D7A1B8;--pink-500:#E9C3D3;--sage-200:#3D5D3E;--sage-300:#7BA97D;--sage-400:#5D8F5F;--text:#f7fafc;--bg-primary:#1a202c;--bg-secondary:#2d3748}.dark-mode .projects h2:after{background:linear-gradient(to right,var(--pink-400),transparent)}@media (max-width:768px){.menu-toggle{display:flex}.nav-links{position:fixed;top:60px;left:0;right:0;background-color:var(--bg-primary);flex-direction:column;padding:var(--space-md);box-shadow:0 4px 6px rgba(0,0,0,.1);border-top:1px solid var(--pink-200);transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform var(--transition),opacity var(--transition);z-index:100}.nav-links.menu-open{transform:translateY(0);opacity:1;pointer-events:auto}.nav-links li{width:100%}.nav-links a{display:flex;width:100%;padding:var(--space-md);margin-bottom:var(--space-xs);transform:none}.nav-links a:focus,.nav-links a:hover{transform:none;box-shadow:none;background-color:var(--pink-200)}.intro{padding:var(--space-lg)}}@media (min-width:769px){.project-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.project-grid{grid-template-columns:repeat(3,1fr)}}.resume-header{flex-direction:column;margin-bottom:var(--space-xl)}.contact-info,.resume-header{display:flex;gap:var(--space-md)}.contact-info{flex-wrap:wrap;font-size:.95rem}.resume-section{background-color:var(--bg-secondary);border-radius:.75rem;padding:var(--space-xl);margin-bottom:var(--space-xl);box-shadow:0 2px 10px rgba(0,0,0,.05);transition:transform var(--transition),box-shadow var(--transition)}.resume-section:hover{box-shadow:0 6px 16px rgba(0,0,0,.08)}.resume-section h2{position:relative;margin-bottom:var(--space-lg);display:flex;align-items:center}.resume-section h2:after{content:"";flex:1 1;height:1px;margin-left:var(--space-md);background-color:var(--sage-200)}.dark-mode .resume-section h2:after{background:linear-gradient(to right,var(--pink-400),transparent)}.education-item,.experience-item{margin-bottom:var(--space-lg)}.education-header,.experience-header{display:flex;justify-content:space-between;flex-wrap:wrap;margin-bottom:var(--space-xs)}.location{color:var(--accent-primary);font-weight:500}.date{color:var(--text);font-style:italic}.degree,.job-title{font-weight:600;color:var(--accent-secondary)}.gpa{margin-bottom:var(--space-md)}.coursework{margin-top:var(--space-sm)}.bullet-list{padding-left:var(--space-xl);margin-bottom:var(--space-md)}.bullet-list li{margin-bottom:var(--space-xs)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:var(--space-md);gap:var(--space-md)}.skill-category{display:flex;align-items:center;gap:var(--space-xs)}.skill-category:before{content:"•";color:var(--accent-primary);font-size:1.5rem}@media print{body{background-color:white}.menu-toggle,.theme-toggle,footer,header{display:none}.container{max-width:100%;padding:0}.resume-section{box-shadow:none;page-break-inside:avoid;margin-bottom:var(--space-lg)}.resume-section:hover{transform:none;box-shadow:none}}.skill-heading{font-size:1.1rem;color:var(--accent-primary);margin-bottom:var(--space-sm);border-bottom:1px solid var(--sage-200);padding-bottom:var(--space-xs)}.skill-heading,.skill-heading:first-of-type{margin-top:var(--space-lg)}.dark-mode .skill-heading{border-bottom-color:var(--pink-300)}@media (max-width:768px){.education-header,.experience-header{flex-direction:column}.resume-section{padding:var(--space-lg)}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.back-link:hover{transform:translateX(-4px)} |