:root{--color-name: #ffd93d;--color-title: #ff6b9d;--color-bg-light: #f8f6f1;--color-bg-overlay: rgba(255, 255, 255, 1);--color-bg-overlay-hover: rgba(255, 255, 255, 1);--color-text-dark: #1a1a2e;--color-text-accent: #2d3047;--color-text-light: #f8f6f1;--color-text-muted: rgba(45, 48, 71, .7);--color-border-light: #d4cfc3;--color-btn-default: #2d3047;--color-btn-hover-bg: #ffd93d;--color-btn-hover-text: #2d3047;--color-btn-active-bg: #ff6b9d;--color-btn-active-text: #ffffff;--color-link: #ff6b9d;--color-link-hover: #ffd93d;--color-audio-1: #667eea;--color-audio-2: #f093fb;--color-ui-1: #4facfe;--color-ui-2: #43e97b;--color-tools-1: #fa709a;--color-tools-2: #30cfd0;--shadow-text-outline: #2d3047;--shadow-text-soft: rgba(0, 0, 0, .3);--shadow-card: rgba(0, 0, 0, .12);--shadow-card-pink: rgba(255, 107, 157, .2);--shadow-button-yellow: rgba(255, 217, 61, .4);--shadow-button-pink: rgba(255, 107, 157, .4);--color-scroll-border: rgba(26, 26, 46, .7);--color-scroll-bg: rgba(255, 255, 255, .3);--color-scroll-wheel: rgba(26, 26, 46, .8);--color-scroll-arrow: rgba(26, 26, 46, .8)}:root{--spacing-xs: .5rem;--spacing-sm: .75rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--spacing-4xl: 5rem;--font-primary: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-secondary: "Crimson Pro", Georgia, serif;--font-handwritten: "Caveat", cursive;--font-size-xs: .85rem;--font-size-sm: .95rem;--font-size-base: 1rem;--font-size-md: 1.1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.35rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.75rem;--font-size-4xl: 2.5rem;--font-size-hero: clamp(1.75rem, 4vw, 3rem);--font-size-title: clamp(2.5rem, 5vw, 4rem);--font-weight-regular: 400;--font-weight-semibold: 600;--font-weight-bold: 700;--letter-spacing-tight: .02em;--line-height-tight: 1.4;--line-height-normal: 1.6;--line-height-relaxed: 1.7;--line-height-loose: 1.8;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 30px;--radius-full: 50%;--border-width-thin: 1px;--border-width-regular: 2px;--border-width-thick: 3px;--border-width-thicker: 4px;--transition-fast: .3s ease;--transition-base: .4s ease;--transition-slow: .6s ease;--section-bg-opacity: .75;--overlay-opacity: .9;--z-background: 0;--z-base: 1;--z-ripple: 2;--z-content: 10;--z-nav: 1000;--z-hamburger: 1001;--animation-bounce: bounce 2s infinite;--animation-scroll: scroll 1.5s infinite;--animation-ripple: ripple-animation 1.5s ease-out;--animation-fadeIn: fadeIn .4s ease-in;--animation-fadeInUp: fadeInUp .6s ease-out}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-primary);overflow-x:hidden;overflow-y:auto;color:var(--color-text);scroll-behavior:smooth;background:var(--color-bg-light)}.nav-menu{position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);background:transparent;backdrop-filter:none;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:var(--border-width-thin) solid transparent;transition:var(--transition-fast)}.nav-menu.scrolled{background:#f8f6f1f2;backdrop-filter:blur(10px);border-bottom:var(--border-width-thin) solid var(--color-border-light)}.hamburger{display:none;flex-direction:column;gap:6px;background:none;border:none;cursor:pointer;padding:var(--spacing-xs);position:absolute;right:var(--spacing-xl);top:50%;transform:translateY(-50%);z-index:var(--z-hamburger)}.hamburger span{width:28px;height:3px;background:var(--color-text-dark);border-radius:2px;transition:var(--transition-fast)}.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(8px,8px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(8px,-8px)}.nav-links{display:flex;justify-content:center;align-items:center;gap:var(--spacing-2xl);list-style:none;padding:0;margin:0}.nav-links li{margin:0}.nav-links a{font-family:var(--font-handwritten);font-weight:600;font-size:1.82rem;color:#6b4e71;text-decoration:none;letter-spacing:.01em;transition:var(--transition-fast);position:relative;padding:var(--spacing-xs) 0}.nav-links a:after{content:"";position:absolute;bottom:0;left:0;width:0;height:var(--border-width-regular);background:var(--color-title);transition:width var(--transition-fast)}.nav-links a:hover,.nav-links a:active,.nav-links a:focus,.nav-links a.active{color:var(--color-title)}.nav-links a:hover:after,.nav-links a.active:after{width:100%}.hero{position:relative;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:transparent;scroll-margin-top:50px}#background-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:var(--z-background);opacity:1;display:block}#ripple-container{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:var(--z-ripple)}.ripple{position:absolute;border-radius:var(--radius-full);border:var(--border-width-regular) solid;animation:var(--animation-ripple);pointer-events:none}@keyframes ripple-animation{0%{width:0;height:0;opacity:.6}50%{opacity:.3}to{width:200px;height:200px;opacity:0}}.content{position:relative;z-index:var(--z-content);text-align:center;padding:var(--spacing-xl)}.name{font-family:var(--font-handwritten);font-size:clamp(3rem,8vw,6rem);font-weight:700;letter-spacing:.01em;margin-bottom:.25rem;color:var(--color-name);text-shadow:-2px -2px 0 #6b4e71,2px -2px 0 #6b4e71,-2px 2px 0 #6b4e71,2px 2px 0 #6b4e71,0 4px 12px var(--shadow-text-soft)}.tagline{font-family:var(--font-handwritten);font-size:clamp(2.31rem,6.93vw,4.62rem);font-weight:600;letter-spacing:.01em;line-height:var(--line-height-tight);color:var(--color-title);text-shadow:2px 2px 0 #ffffff,-2px -2px 0 #ffffff,2px -2px 0 #ffffff,-2px 2px 0 #ffffff,0 4px 12px rgba(248,246,241,.8)}.role{font-weight:var(--font-weight-semibold);display:inline-block;position:relative;color:inherit;text-decoration:none;cursor:default}.scroll-indicator{position:absolute;bottom:var(--spacing-xl);right:var(--spacing-xl);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);opacity:.8;animation:var(--animation-bounce)}.mouse{width:28px;height:42px;border:var(--border-width-regular) solid var(--color-scroll-border);border-radius:15px;position:relative;background:var(--color-scroll-bg);backdrop-filter:blur(10px)}.wheel{width:4px;height:8px;background:var(--color-scroll-wheel);border-radius:2px;position:absolute;top:8px;left:50%;transform:translate(-50%);animation:var(--animation-scroll)}@keyframes scroll{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(12px)}}.arrow{font-size:var(--spacing-xl);color:var(--color-scroll-arrow);text-shadow:0 2px 10px rgba(0,0,0,.1);line-height:1}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.bio-section{min-height:100vh;background:rgba(248,246,241,var(--section-bg-opacity));color:var(--color-text-dark);padding:var(--spacing-4xl) 0;border-bottom:var(--border-width-thin) solid var(--color-border-light);scroll-margin-top:50px;position:relative;z-index:var(--z-base)}.bio-title{font-family:var(--font-handwritten);font-weight:700;font-size:clamp(3rem,6vw,5rem);letter-spacing:.01em;text-align:center;margin-bottom:var(--spacing-2xl);color:#6b4e71;text-shadow:2px 2px 0 #ffffff,-2px -2px 0 #ffffff,2px -2px 0 #ffffff,-2px 2px 0 #ffffff,0 4px 12px rgba(248,246,241,.8)}.bio-intro{max-width:900px;margin:0 auto var(--spacing-3xl) auto;padding:2.5rem;background:var(--color-bg-overlay);border-left:var(--border-width-thicker) solid var(--color-title);border-radius:var(--radius-sm)}.bio-description{font-family:var(--font-secondary);font-size:var(--font-size-lg);line-height:var(--line-height-loose);margin-bottom:var(--spacing-lg);color:var(--color-text-dark)}.bio-description:last-child{margin-bottom:0}.bio-description strong{color:var(--color-text-accent);font-weight:var(--font-weight-semibold)}.bio-content{max-width:900px;margin:0 auto;padding:var(--spacing-lg);background:var(--color-bg-overlay);border-left:var(--border-width-thick) solid var(--color-title);border-radius:var(--radius-sm)}.bio-block{margin-bottom:var(--spacing-2xl)}.bio-heading{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-3xl);letter-spacing:var(--letter-spacing-tight);margin-bottom:var(--spacing-lg);color:var(--color-title)}.bio-list{list-style:none;padding:0}.bio-list li{font-family:var(--font-secondary);font-size:var(--font-size-xl);line-height:var(--line-height-loose);margin-bottom:1.25rem;padding-left:var(--spacing-xl);position:relative}.bio-list li:before{content:"■";position:absolute;left:0;color:var(--color-title);font-size:var(--font-size-2xl);line-height:var(--line-height-loose)}.bio-list a{color:var(--color-link);text-decoration:none;border-bottom:var(--border-width-thin) solid transparent;transition:var(--transition-fast)}.bio-list a:hover{color:var(--color-link-hover);border-bottom-color:var(--color-link-hover)}.bio-links{display:flex;justify-content:center;gap:var(--spacing-xl);flex-wrap:wrap;margin-top:var(--spacing-3xl);padding-top:var(--spacing-2xl);border-top:var(--border-width-thin) solid var(--color-border-light)}.bio-link{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);color:var(--color-text-dark);text-decoration:none;padding:var(--spacing-sm) var(--spacing-lg);border:var(--border-width-regular) solid var(--color-border-light);border-radius:var(--radius-xl);transition:var(--transition-fast);letter-spacing:var(--letter-spacing-tight)}.bio-link:hover{background:var(--color-name);color:var(--color-text-dark);border-color:var(--color-name);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-button-yellow)}.portfolio-section{min-height:100vh;background:rgba(248,246,241,var(--section-bg-opacity));color:var(--color-text-dark);padding:var(--spacing-4xl) 0;scroll-margin-top:50px;position:relative;z-index:var(--z-base)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-2xl)}.portfolio-header{margin-bottom:var(--spacing-lg);text-align:center}.portfolio-title{font-family:var(--font-handwritten);font-weight:700;font-size:clamp(3rem,6vw,5rem);letter-spacing:.01em;margin-bottom:var(--spacing-xl);color:#6b4e71;text-shadow:2px 2px 0 #ffffff,-2px -2px 0 #ffffff,2px -2px 0 #ffffff,-2px 2px 0 #ffffff,0 4px 12px rgba(248,246,241,.8)}.filter-buttons{display:flex;justify-content:center;gap:var(--spacing-md);flex-wrap:wrap}.filter-btn{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-lg);background:transparent;color:var(--color-btn-default);border:var(--border-width-regular) solid var(--color-border-light);border-radius:var(--radius-xl);cursor:pointer;transition:var(--transition-fast);letter-spacing:var(--letter-spacing-tight)}.filter-btn:hover{background:var(--color-btn-hover-bg);color:var(--color-btn-hover-text);border-color:var(--color-btn-hover-bg);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-button-yellow)}.filter-btn.active{background:var(--color-btn-active-bg);color:var(--color-btn-active-text);border-color:var(--color-btn-active-bg);box-shadow:0 4px 12px var(--shadow-button-pink)}.cv-download-section{margin-top:var(--spacing-lg);display:flex;justify-content:center}.cv-download-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-xl);background:var(--color-title);color:#fff;border:var(--border-width-regular) solid var(--color-title);border-radius:var(--radius-xl);text-decoration:none;cursor:pointer;transition:var(--transition-fast);letter-spacing:var(--letter-spacing-tight)}.cv-download-btn .cv-btn-text{color:#fff;font-weight:var(--font-weight-semibold)}.cv-download-btn svg{transition:var(--transition-fast);stroke:#fff}.cv-download-btn:hover{background:var(--color-name);color:var(--color-text-dark);border-color:var(--color-name);transform:translateY(-2px);box-shadow:0 6px 16px var(--shadow-button-yellow)}.cv-download-btn:hover .cv-btn-text{color:var(--color-text-dark)}.cv-download-btn:hover svg{transform:translateY(2px);stroke:var(--color-text-dark)}.work-content{position:relative;min-height:400px}.work-tab{display:none;animation:var(--animation-fadeIn)}.work-tab.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.section-heading{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-3xl);letter-spacing:var(--letter-spacing-tight);margin-bottom:var(--spacing-xl);color:var(--color-title);border-bottom:var(--border-width-regular) solid var(--color-border-light);padding-bottom:var(--spacing-xs)}.skills-section{margin-bottom:var(--spacing-3xl)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);padding:var(--spacing-lg);background:var(--color-bg-overlay);border-left:var(--border-width-thick) solid var(--color-title);border-radius:var(--radius-sm)}.skill-category h4{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:1.125rem;margin-bottom:var(--spacing-md);color:var(--color-text-dark)}.skill-category ul{list-style:none;padding:0}.skill-category li{font-family:var(--font-secondary);font-size:var(--font-size-xl);padding:var(--spacing-xs) 0;padding-left:var(--spacing-lg);position:relative;color:var(--color-text-dark)}.skill-category li:before{content:"▸";position:absolute;left:0;color:var(--color-title)}.experience-section{margin-bottom:var(--spacing-xl)}.experience-table{display:flex;flex-direction:column;gap:var(--spacing-xl)}.experience-row{display:grid;grid-template-columns:180px 1fr;gap:var(--spacing-xl);padding:var(--spacing-lg);background:var(--color-bg-overlay);border-left:var(--border-width-thick) solid var(--color-title);border-radius:var(--radius-sm);transition:var(--transition-fast)}.experience-row:hover{background:var(--color-bg-overlay-hover);transform:translate(8px)}.exp-period{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-accent);letter-spacing:var(--letter-spacing-tight)}.exp-details{flex:1}.exp-title{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);margin-bottom:.25rem;color:var(--color-text-dark)}.exp-role{font-family:var(--font-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);color:var(--color-title);margin-bottom:var(--spacing-xs)}.exp-description{font-family:var(--font-secondary);font-size:var(--font-size-xl);line-height:var(--line-height-normal);color:var(--color-text-dark);opacity:var(--overlay-opacity)}.fixed-contact-icons{position:fixed;bottom:var(--spacing-xl);left:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:var(--z-nav)}.fixed-contact-icons .contact-link{display:flex;align-items:center;justify-content:center;color:var(--color-text-dark);text-decoration:none;padding:var(--spacing-sm);background:#f8f6f1f2;backdrop-filter:blur(10px);border:var(--border-width-regular) solid var(--color-border-light);border-radius:var(--radius-full);transition:var(--transition-fast);width:52px;height:52px}.fixed-contact-icons .contact-link svg{width:28px;height:28px;transition:var(--transition-fast)}.fixed-contact-icons .contact-link:hover{background:var(--color-name);color:var(--color-text-dark);border-color:var(--color-name);transform:translate(4px) scale(1.05);box-shadow:0 4px 16px var(--shadow-button-yellow)}.fixed-contact-icons .contact-link:hover svg{transform:scale(1.1)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-3xl)}.project-card{padding:var(--spacing-xl);background:var(--color-bg-overlay);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);transition:var(--transition-base);opacity:1;transform:scale(1)}.project-card.hidden{display:none}.project-card:hover{transform:translateY(-8px);box-shadow:0 12px 32px var(--shadow-card-pink);border-color:var(--color-title)}.project-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--spacing-md);flex-wrap:wrap;gap:var(--spacing-xs)}.project-title{font-family:var(--font-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-2xl);color:var(--color-text-dark);transition:color var(--transition-fast)}.project-card:hover .project-title{color:var(--color-title)}.project-year{font-family:var(--font-primary);font-size:var(--font-size-sm);color:var(--color-text-accent);opacity:.7}.project-description{font-family:var(--font-secondary);font-size:1.125rem;line-height:var(--line-height-relaxed);margin-bottom:1.25rem;color:var(--color-text-dark)}.project-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.tag{font-family:var(--font-primary);font-size:var(--font-size-xs);padding:.4rem .9rem;background:var(--color-text-dark);color:var(--color-text-light);border-radius:var(--radius-lg);letter-spacing:var(--letter-spacing-tight)}.portfolio-section a{color:var(--color-link);text-decoration:none;transition:var(--transition-fast);border-bottom:var(--border-width-regular) solid transparent}.portfolio-section a:hover{color:var(--color-link-hover);border-bottom-color:var(--color-link-hover)}.portfolio-section a:active{color:var(--color-link);transform:translateY(1px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.role.changing{animation:var(--animation-fadeInUp)}@media (max-width: 768px){.hamburger{display:flex;right:var(--spacing-md);top:var(--spacing-md);transform:none;position:fixed;z-index:1001}.nav-menu{border:none!important;border-bottom:none!important;background:transparent!important;backdrop-filter:none!important;box-shadow:none!important;padding:0!important}.nav-links{position:fixed;inset:0;height:100vh;flex-direction:column;justify-content:center;gap:0;background:#f8f6f1fa;backdrop-filter:blur(10px);padding:var(--spacing-xl) 0;transform:translateY(-100%);opacity:0;visibility:hidden;transition:var(--transition-fast)}.nav-links.active{transform:translateY(0);opacity:1;visibility:visible}.nav-links li{width:100%;text-align:center;padding:var(--spacing-md) 0}.nav-links a{font-size:2.08rem;padding:var(--spacing-md) 0;display:block}.name{font-size:clamp(2.5rem,10vw,4rem);margin-bottom:.1rem}.tagline{font-size:clamp(2.079rem,9.24vw,3.465rem)}.scroll-indicator{bottom:var(--spacing-lg);right:var(--spacing-lg);scale:.9}.container{padding:0 var(--spacing-lg)}.bio-title{font-size:clamp(2rem,6vw,3rem);margin-bottom:var(--spacing-xl)}.bio-intro{padding:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}.bio-description{font-size:1.0625rem;margin-bottom:1.25rem}.bio-heading{font-size:var(--font-size-2xl)}.bio-list li{font-size:var(--font-size-base);padding-left:var(--spacing-lg)}.bio-links{gap:var(--spacing-md)}.bio-link{font-size:var(--font-size-sm);padding:.6rem 1.2rem}.filter-buttons{gap:var(--spacing-sm)}.filter-btn,.cv-download-btn{font-size:var(--font-size-xs);padding:.6rem 1.2rem}.cv-download-section{margin-top:var(--spacing-md)}.section-heading{font-size:var(--font-size-2xl)}.skills-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.experience-row{grid-template-columns:1fr;gap:var(--spacing-md);padding:1.25rem}.experience-row:hover{transform:translate(4px)}.exp-period{font-size:.875rem;padding-bottom:var(--spacing-xs);border-bottom:var(--border-width-thin) solid var(--color-border-light)}.exp-title{font-size:1.125rem}.exp-role{font-size:var(--font-size-sm)}.exp-description{font-size:var(--font-size-base)}.projects-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.project-card{padding:var(--spacing-lg)}.project-title{font-size:var(--font-size-lg)}.contact-link{width:56px;height:56px;padding:var(--spacing-sm)}.contact-link svg{width:28px;height:28px}.fixed-contact-icons{bottom:var(--spacing-md);left:var(--spacing-md);gap:.5rem}.fixed-contact-icons .contact-link{width:44px;height:44px;padding:.5rem}.fixed-contact-icons .contact-link svg{width:24px;height:24px}}
