@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Courier New", monospace;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--spacing-24: 6rem;--radius-sm: .125rem;--radius-base: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-base: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--transition-fast: .15s;--transition-base: .2s;--transition-slow: .3s;--max-width-lg: 1024px;--max-width-xl: 1280px;--container-padding: 1rem}:root,[data-theme=light]{--color-primary-main: #2d5016;--color-primary-light: #4a7c2c;--color-primary-dark: #1a3009;--color-primary-contrast: #ffffff;--color-secondary-main: #4e342e;--color-secondary-light: #6d4c41;--color-secondary-dark: #3e2723;--color-secondary-contrast: #ffffff;--color-neutral-white: #ffffff;--color-neutral-gray-100: #f5f5f4;--color-neutral-gray-200: #e7e5e4;--color-neutral-gray-300: #d6d3d1;--color-neutral-gray-400: #a8a29e;--color-neutral-gray-500: #78716c;--color-neutral-gray-600: #57534e;--color-neutral-gray-700: #44403c;--color-neutral-gray-800: #292524;--color-neutral-gray-900: #1c1917;--color-neutral-black: #0a0a0a;--color-success: #2d5016;--color-warning: #92400e;--color-error: #991b1b;--color-info: #0f766e;--color-bg-primary: #fafaf9;--color-bg-secondary: #f5f5f4;--color-bg-tertiary: #e7e5e4;--color-text-primary: #1c1917;--color-text-secondary: #44403c;--color-text-tertiary: #78716c;--color-text-inverse: #fafaf9;--color-border-primary: #e7e5e4;--color-border-secondary: #d6d3d1;--color-border-tertiary: #a8a29e;color-scheme:light}[data-theme=dark]{--color-primary-main: #4ebb8b;--color-primary-light: #6fcfa3;--color-primary-dark: #3a9a72;--color-primary-contrast: #1c1917;--color-secondary-main: #8d6e63;--color-secondary-light: #a1887f;--color-secondary-dark: #6d4c41;--color-secondary-contrast: #1c1917;--color-neutral-white: #0a0a0a;--color-neutral-gray-100: #1c1917;--color-neutral-gray-200: #292524;--color-neutral-gray-300: #44403c;--color-neutral-gray-400: #57534e;--color-neutral-gray-500: #78716c;--color-neutral-gray-600: #a8a29e;--color-neutral-gray-700: #d6d3d1;--color-neutral-gray-800: #e7e5e4;--color-neutral-gray-900: #f5f5f4;--color-neutral-black: #fafaf9;--color-success: #4ebb8b;--color-warning: #d97706;--color-error: #dc2626;--color-info: #0d9488;--color-bg-primary: #0a0a0a;--color-bg-secondary: #1c1917;--color-bg-tertiary: #292524;--color-text-primary: #f5f5f4;--color-text-secondary: #d6d3d1;--color-text-tertiary: #a8a29e;--color-text-inverse: #1c1917;--color-border-primary: #292524;--color-border-secondary: #44403c;--color-border-tertiary: #57534e;color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme]){--color-primary-main: #4ebb8b;--color-primary-light: #6fcfa3;--color-primary-dark: #3a9a72;--color-primary-contrast: #1c1917;--color-secondary-main: #8d6e63;--color-secondary-light: #a1887f;--color-secondary-dark: #6d4c41;--color-secondary-contrast: #1c1917;--color-neutral-white: #0a0a0a;--color-neutral-gray-100: #1c1917;--color-neutral-gray-200: #292524;--color-neutral-gray-300: #44403c;--color-neutral-gray-400: #57534e;--color-neutral-gray-500: #78716c;--color-neutral-gray-600: #a8a29e;--color-neutral-gray-700: #d6d3d1;--color-neutral-gray-800: #e7e5e4;--color-neutral-gray-900: #f5f5f4;--color-neutral-black: #fafaf9;--color-success: #4ebb8b;--color-warning: #d97706;--color-error: #dc2626;--color-info: #0d9488;--color-bg-primary: #0a0a0a;--color-bg-secondary: #1c1917;--color-bg-tertiary: #292524;--color-text-primary: #f5f5f4;--color-text-secondary: #d6d3d1;--color-text-tertiary: #a8a29e;--color-text-inverse: #1c1917;--color-border-primary: #292524;--color-border-secondary: #44403c;--color-border-tertiary: #57534e;color-scheme:dark}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}#root{transform:none!important;zoom:1!important}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-primary);font-size:1rem;line-height:1.5;color:var(--color-text-primary);background-color:var(--color-bg-primary);min-height:100vh;transition:background-color .3s ease,color .3s ease;transform:none!important;zoom:1!important}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.25;margin-bottom:.5em;color:var(--color-text-primary)}h1{font-size:2rem;font-weight:800}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.9375rem}p{margin-bottom:1rem;color:var(--color-text-secondary)}a{color:var(--color-primary-main);text-decoration:none;transition:color var(--transition-base) ease}a:hover{color:var(--color-primary-dark)}ul,ol{list-style:none}button{font-family:inherit;font-size:inherit;border:none;background:none;cursor:pointer}img{max-width:100%;height:auto;display:block}code,pre{font-family:var(--font-mono)}code{padding:.125rem .25rem;background-color:var(--color-neutral-gray-100);border-radius:var(--radius-base);font-size:.875rem}pre{padding:1rem;background-color:var(--color-neutral-gray-900);color:var(--color-text-inverse);border-radius:var(--radius-lg);overflow-x:auto}pre code{background:none;padding:0;color:inherit}.container{max-width:var(--max-width-xl);margin:0 auto;padding:0 var(--container-padding)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}*:focus-visible{outline:2px solid var(--color-primary-main);outline-offset:2px}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media print{body{background:#fff;color:#000}}.theme-toggle{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-full);font-size:.875rem;font-weight:500;font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) ease;white-space:nowrap}.theme-toggle:hover{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border-color:var(--color-border-secondary)}.theme-toggle:active{transform:scale(.95)}.theme-toggle__icon{display:flex;align-items:center;justify-content:center}.theme-toggle__icon svg{transition:transform var(--transition-base) ease}.theme-toggle:hover .theme-toggle__icon svg{transform:rotate(15deg)}.theme-toggle__label{font-size:.8125rem}.theme-toggle:focus-visible{outline:2px solid var(--color-primary-main);outline-offset:2px}@media(max-width:640px){.theme-toggle__label{display:none}.theme-toggle{padding:var(--spacing-2)}}@media(min-width:641px){.theme-toggle__label{display:block}}.header{position:sticky;top:0;z-index:1020;background-color:var(--color-bg-primary);border-bottom:1px solid var(--color-border-primary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header__container{display:flex;align-items:center;justify-content:space-between;height:3.5rem;padding-top:var(--spacing-4);padding-bottom:var(--spacing-4)}.header__logo{display:flex;align-items:center;text-decoration:none;color:var(--color-text-primary);font-weight:700;font-size:1rem;transition:color var(--transition-base) ease}.header__logo:hover{color:var(--color-primary-main)}.header__logo-text{letter-spacing:-.025em}.header__actions{display:flex;align-items:center;gap:var(--spacing-4)}.header__nav{display:flex;align-items:center}.header__nav-list{display:flex;gap:0;list-style:none;margin:0;padding:0}.header__nav-item{display:flex}.header__nav-link{position:relative;display:flex;align-items:center;padding:var(--spacing-2);color:var(--color-text-secondary);text-decoration:none;font-weight:500;font-size:.875rem;border-radius:var(--radius-md);transition:all var(--transition-base) ease}.header__nav-link:hover{color:var(--color-primary-main);background-color:var(--color-neutral-gray-100)}.header__nav-link--active{color:var(--color-primary-main);background-color:var(--color-bg-tertiary)}.header__nav-link--active:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:2px;background-color:var(--color-primary-main)}@media(min-width:768px){.header__container{height:3.75rem}.header__logo{font-size:1.125rem}.header__nav-list{gap:var(--spacing-1)}.header__nav-link{padding:var(--spacing-2) var(--spacing-3);font-size:.9375rem}}@media(min-width:1024px){.header__container{height:4rem}.header__logo{font-size:1.25rem}.header__nav-list{gap:var(--spacing-2)}.header__nav-link{padding:var(--spacing-2) var(--spacing-4)}}.footer{margin-top:auto;background-color:var(--color-bg-secondary);border-top:1px solid var(--color-neutral-gray-200);padding:var(--spacing-8) 0}.footer__container{display:flex;flex-direction:column;align-items:center}.footer__content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-4);text-align:center}.footer__text{color:var(--color-text-secondary);font-size:.875rem;margin:0}.footer__links{display:flex;gap:var(--spacing-6)}.footer__link{color:var(--color-text-secondary);text-decoration:none;font-size:.875rem;font-weight:500;transition:color var(--transition-base) ease}.footer__link:hover{color:var(--color-primary-main)}.footer__link--cryptic{font-family:var(--font-mono)}.footer__link--cryptic:hover{color:var(--color-error)}@media(min-width:768px){.footer__content{flex-direction:row;justify-content:space-between;width:100%}.footer__text{text-align:left}}.layout{display:flex;flex-direction:column;min-height:100vh}.layout__main{flex:1;width:100%;padding:var(--spacing-4) 0}@media(min-width:768px){.layout__main{padding:var(--spacing-6) 0}}@media(min-width:1024px){.layout__main{padding:var(--spacing-8) 0}}.playback-bar{position:fixed;bottom:var(--spacing-4);left:50%;transform:translate(-50%);max-width:900px;width:calc(100% - var(--spacing-8));background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:16px;padding:var(--spacing-3) var(--spacing-4);z-index:1000;box-shadow:0 4px 20px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.playback-bar__container{display:grid;grid-template-columns:1fr 2fr 1fr;gap:var(--spacing-4);align-items:center}.playback-bar__song-info{display:flex;align-items:center;gap:var(--spacing-3);min-width:0}.playback-bar__song-details{min-width:0;flex:1}.playback-bar__song-name{font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}.playback-bar__song-artist{font-size:.8rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playback-bar__controls{display:flex;flex-direction:column;gap:var(--spacing-2);align-items:center}.playback-bar__buttons{display:flex;align-items:center;gap:var(--spacing-2)}.playback-bar__button{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-2);border-radius:var(--border-radius-sm);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.playback-bar__button svg{width:20px;height:20px}.playback-bar__button:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.playback-bar__button--play{background:var(--color-primary);color:#fff;width:40px;height:40px;border-radius:50%}.playback-bar__button--play:hover{background:var(--color-primary-dark);transform:scale(1.05)}.playback-bar__button--play svg{width:24px;height:24px}.playback-bar__button--active{color:#1db954}.playback-bar__progress-container{display:flex;align-items:center;gap:var(--spacing-2);width:100%}.playback-bar__time{font-size:.75rem;color:var(--color-text-secondary);min-width:40px;text-align:center;flex-shrink:0}.playback-bar__progress-wrapper{flex:1;position:relative;height:12px;display:flex;align-items:center;background:transparent;overflow:visible}.playback-bar__progress-fill{position:absolute;top:50%;transform:translateY(-50%);left:0;height:6px;background:#1db954;border-radius:3px;pointer-events:none;transition:width .1s linear;z-index:1}.playback-bar__progress-wrapper:before{content:"";position:absolute;top:50%;transform:translateY(-50%);left:0;width:100%;height:6px;background:var(--color-border);border-radius:3px;z-index:0}.playback-bar__progress{position:absolute;top:0;left:0;width:100%;height:100%;background:transparent;outline:none;-webkit-appearance:none;appearance:none;cursor:pointer;margin:0;z-index:2}.playback-bar__progress::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:0;height:0;cursor:pointer;opacity:0}.playback-bar__progress::-moz-range-thumb{width:0;height:0;border:none;cursor:pointer;opacity:0}.playback-bar__progress::-webkit-slider-runnable-track{width:100%;height:6px;background:transparent}.playback-bar__progress::-moz-range-track{width:100%;height:6px;background:transparent}.playback-bar__playlist-info{display:flex;justify-content:flex-end;align-items:center;min-width:0}.playback-bar__playlist-name{font-size:.85rem;color:var(--color-text-secondary);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playback-bar__track-count{display:block;font-size:.75rem;color:var(--color-text-tertiary);margin-top:2px}@media(max-width:768px){.playback-bar{bottom:var(--spacing-2);width:calc(100% - var(--spacing-4));padding:var(--spacing-3);max-width:none}.playback-bar__container{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:var(--spacing-3)}.playback-bar__song-info{order:1;justify-content:center;text-align:center}.playback-bar__controls{order:2;gap:var(--spacing-2)}.playback-bar__playlist-info{order:3;justify-content:center}.playback-bar__buttons{gap:var(--spacing-2)}.playback-bar__button{padding:var(--spacing-1)}.playback-bar__button svg{width:18px;height:18px}.playback-bar__button--play{width:40px;height:40px}.playback-bar__button--play svg{width:22px;height:22px}.playback-bar__progress-container{width:100%}.playback-bar__time{font-size:.7rem;min-width:35px}.playback-bar__song-name{font-size:.85rem}.playback-bar__song-artist{font-size:.75rem}.playback-bar__playlist-name{font-size:.8rem;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--spacing-2)}.playback-bar__track-count{margin-top:0}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);font-family:var(--font-primary);font-weight:600;text-align:center;white-space:nowrap;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base) ease;outline:none}.btn--primary{background-color:var(--color-primary-main);color:var(--color-primary-contrast);box-shadow:var(--shadow-sm)}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn--primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn--secondary{background-color:var(--color-secondary-main);color:var(--color-secondary-contrast);box-shadow:var(--shadow-sm)}.btn--secondary:hover:not(:disabled){background-color:var(--color-secondary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn--secondary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn--outline{background-color:transparent;color:var(--color-primary-main);border:2px solid var(--color-primary-main)}.btn--outline:hover:not(:disabled){background-color:var(--color-primary-main);color:var(--color-primary-contrast)}.btn--ghost{background-color:transparent;color:var(--color-text-primary)}.btn--ghost:hover:not(:disabled){background-color:var(--color-neutral-gray-100)}.btn--sm{padding:var(--spacing-2) var(--spacing-3);font-size:.875rem;line-height:1.25}.btn--md,.btn--lg{padding:var(--spacing-3) var(--spacing-6);font-size:1rem;line-height:1.5}.btn--full-width{width:100%}.btn--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn:focus-visible{outline:2px solid var(--color-primary-main);outline-offset:2px}.card{background-color:var(--color-bg-primary);border-radius:var(--radius-xl);transition:all var(--transition-base) ease}.card--default{background-color:var(--color-bg-primary);border:1px solid var(--color-neutral-gray-200)}.card--elevated{background-color:var(--color-bg-primary);box-shadow:var(--shadow-md)}.card--elevated:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card--outlined{background-color:transparent;border:2px solid var(--color-neutral-gray-300)}.card--padding-sm{padding:var(--spacing-3)}.card--padding-md{padding:var(--spacing-4)}.card--padding-lg{padding:var(--spacing-6)}@media(min-width:768px){.card--padding-sm{padding:var(--spacing-4)}.card--padding-md{padding:var(--spacing-6)}.card--padding-lg{padding:var(--spacing-8)}}@media(min-width:1024px){.card--padding-sm{padding:var(--spacing-2)}.card--padding-md{padding:var(--spacing-3)}.card--padding-lg{padding:var(--spacing-4)}}.logo-marquee{position:relative;overflow:hidden;width:100%;mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent)}.logo-marquee__track{display:flex;gap:3rem;width:fit-content;align-items:center;will-change:transform}.logo-marquee__logo{height:24px;width:auto;object-fit:contain;flex-shrink:0;pointer-events:none;-webkit-user-select:none;user-select:none}@media(min-width:1024px){.logo-marquee__logo{height:28px}}.ai-chat{display:flex;flex-direction:column;overflow:hidden}.ai-chat__messages{flex:1;padding:var(--spacing-2) 0;overflow-y:auto;min-height:200px;max-height:350px;display:flex;flex-direction:column;gap:var(--spacing-3)}.ai-chat__welcome{text-align:center;padding:var(--spacing-4);color:var(--color-text-secondary)}.ai-chat__welcome-text{font-size:.9375rem;margin:0;color:var(--color-text-secondary);line-height:1.6}.ai-chat__activate{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-4)}.ai-chat__activate-text{font-size:.9375rem;color:var(--color-text-secondary);line-height:1.6;margin:0;max-width:400px}.ai-chat__activate-note{font-size:.8125rem;color:var(--color-text-tertiary);margin:0}.ai-chat__activate-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid var(--color-border-secondary);box-shadow:var(--shadow-md)}.ai-chat__init{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-4);text-align:center;gap:var(--spacing-3)}.ai-chat__init-text{font-size:.875rem;color:var(--color-text-secondary);word-break:break-word}.ai-chat__init-note{font-size:.8125rem;color:var(--color-text-tertiary);margin:0}.ai-chat__checking{display:flex;align-items:center;justify-content:center;gap:var(--spacing-2);padding:var(--spacing-4);color:var(--color-text-secondary);font-size:.875rem}.ai-chat__spinner{width:20px;height:20px;border:2px solid var(--color-border-secondary);border-top-color:var(--color-primary-main);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ai-chat__message{display:flex;gap:var(--spacing-2);max-width:90%;animation:messageSlideIn .2s ease-out}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ai-chat__message--user{align-self:flex-end;flex-direction:row-reverse}.ai-chat__message--assistant{align-self:flex-start}.ai-chat__message-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:600;flex-shrink:0;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.02em;overflow:hidden}.ai-chat__message--user .ai-chat__message-avatar{background:var(--color-primary-main);color:var(--color-primary-contrast)}.ai-chat__avatar-img{width:100%;height:100%;object-fit:cover}.ai-chat__message-content{padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-lg);font-size:.9375rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.ai-chat__message--user .ai-chat__message-content{background:var(--color-primary-main);color:var(--color-primary-contrast);border-bottom-right-radius:var(--radius-sm)}.ai-chat__message--assistant .ai-chat__message-content{background:var(--color-bg-tertiary);color:var(--color-text-primary);border-bottom-left-radius:var(--radius-sm)}.ai-chat__message-content--typing{display:flex;gap:4px;padding:var(--spacing-3) var(--spacing-4)}.ai-chat__typing-dot{width:8px;height:8px;background:var(--color-text-tertiary);border-radius:50%;animation:typingBounce 1.4s ease-in-out infinite}.ai-chat__typing-dot:nth-child(2){animation-delay:.2s}.ai-chat__typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.ai-chat__error{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);padding:var(--spacing-3);background:#dc26261a;color:var(--color-error);font-size:.875rem;border-radius:var(--radius-md);margin-top:var(--spacing-2)}.ai-chat__error button{font-size:.75rem;padding:var(--spacing-1) var(--spacing-2);background:var(--color-error);color:#fff;border-radius:var(--radius-base);cursor:pointer;transition:opacity var(--transition-fast)}.ai-chat__error button:hover{opacity:.9}.ai-chat__input-container{display:flex;gap:var(--spacing-2);padding-top:var(--spacing-3);border-top:1px solid var(--color-border-primary);margin-top:var(--spacing-2)}.ai-chat__input{flex:1;padding:var(--spacing-3);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);background:var(--color-bg-secondary);color:var(--color-text-primary);font-family:var(--font-primary);font-size:.9375rem;line-height:1.4;resize:none;min-height:44px;max-height:120px;transition:border-color var(--transition-fast)}.ai-chat__input:focus{outline:none;border-color:var(--color-primary-main)}.ai-chat__input::placeholder{color:var(--color-text-tertiary)}.ai-chat__input:disabled{opacity:.6;cursor:not-allowed}.ai-chat__send{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--color-primary-main);color:var(--color-primary-contrast);border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast)}.ai-chat__send:hover:not(:disabled){background:var(--color-primary-dark);transform:scale(1.02)}.ai-chat__send:disabled{opacity:.5;cursor:not-allowed}.ai-chat__send svg{width:20px;height:20px}.ai-chat__unsupported{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-4)}.ai-chat__unsupported-title{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-2)}.ai-chat__unsupported-text{font-size:.9375rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-3);line-height:1.6}.ai-chat__unsupported-alt{font-size:.875rem;color:var(--color-text-tertiary);margin:0}.ai-chat__unsupported-alt a{color:var(--color-primary-main);text-decoration:underline}@media(min-width:768px){.ai-chat__messages{max-height:400px;min-height:250px}.ai-chat__message{max-width:80%}}@media(min-width:1024px){.ai-chat__messages{max-height:350px}}.home{width:100%}.home__hero{padding:var(--spacing-8) 0;background:linear-gradient(135deg,var(--color-bg-primary) 0%,var(--color-bg-secondary) 100%);position:relative;overflow:hidden}.home__hero-content{max-width:38rem;margin:0 auto;text-align:center;position:relative;z-index:1}.home__companies{margin-top:3rem;padding-top:0}.home__companies-label{text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.5rem}.home__section-decoration{position:absolute;width:80px;height:auto;opacity:1;filter:grayscale(50%);pointer-events:none;z-index:1}.home__section-decoration--about,.home__section-decoration--cta{left:0;bottom:0}.home__title{font-size:2rem;font-weight:800;margin-bottom:var(--spacing-6);line-height:1.1}.home__title-highlight{background:linear-gradient(135deg,var(--color-primary-dark),var(--color-primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home__subtitle{font-size:1.125rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-4);font-weight:500}.home__description{font-size:1rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-8);line-height:1.7}.home__cta{display:flex;gap:var(--spacing-4);justify-content:center;flex-direction:column}.home__about{padding:var(--spacing-8) 0;position:relative;overflow:hidden}.home__section-title{text-align:center;font-size:2rem;margin-bottom:var(--spacing-8)}.home__cards{display:grid;grid-template-columns:1fr;gap:var(--spacing-6)}.home__card-title{font-size:1.125rem;margin-bottom:var(--spacing-2)}.home__card-text{font-size:.875rem;color:var(--color-text-secondary);line-height:1.6}.home__chat{padding:var(--spacing-8) 0;background:linear-gradient(180deg,var(--color-bg-primary) 0%,var(--color-bg-secondary) 100%)}.home__chat-intro{text-align:center;max-width:36rem;margin:0 auto var(--spacing-6);font-size:.9375rem;color:var(--color-text-secondary);line-height:1.6}.home__chat-wrapper{max-width:600px;margin:0 auto}.home__cta-section{padding:var(--spacing-8) 0;background-color:var(--color-bg-secondary);position:relative;overflow:hidden}.home__cta-card-wrapper{position:relative}.home__cta-content{text-align:center;max-width:32rem;margin:0 auto}.home__cta-image{position:absolute;width:80px;height:auto;filter:grayscale(40%);left:var(--spacing-4);bottom:0;z-index:1}.home__cta-content h2{font-size:1.5rem;margin-bottom:var(--spacing-3)}.home__cta-content p{font-size:.9375rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-4)}@media(min-width:768px){.home__cta-image{width:120px;left:var(--spacing-6);bottom:0}}.home__gallery{padding:var(--spacing-12) 0}.home__gallery-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-6)}.home__gallery-image{width:100%;height:auto;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);transition:transform var(--transition-base) ease,box-shadow var(--transition-base) ease}.home__gallery-image:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}@media(min-width:768px){.home__hero{padding:var(--spacing-10) 0}.home__title{font-size:2.25rem}.home__subtitle{font-size:1.125rem}.home__cta{flex-direction:row}.home__cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.home__section-decoration{width:120px;opacity:1}.home__section-decoration--about,.home__section-decoration--cta{left:10px;bottom:10px}}@media(min-width:1024px){.home__hero{padding:var(--spacing-8) 0}.home__title{font-size:2.25rem}.home__subtitle{font-size:1.125rem}.home__description{font-size:.9375rem}.home__about,.home__cta-section{padding:var(--spacing-8) 0}.home__section-title{font-size:1.75rem}.home__section-decoration{width:180px;opacity:1;filter:grayscale(40%)}.home__section-decoration--about,.home__section-decoration--cta{left:40px;bottom:20px}.home__gallery-grid{grid-template-columns:repeat(3,1fr)}}.library{width:100%}.library__hero{padding:var(--spacing-8) 0 var(--spacing-6) 0;background:linear-gradient(135deg,var(--color-bg-primary) 0%,var(--color-bg-secondary) 100%)}.library__header{text-align:center;max-width:48rem;margin:0 auto}.library__title{font-size:2rem;margin-bottom:var(--spacing-4);font-weight:800}.library__description{font-size:1rem;color:var(--color-text-secondary);line-height:1.7}.library__section{padding:var(--spacing-8) 0}.library__section--articles{background-color:var(--color-bg-primary)}.library__section--books{background-color:var(--color-bg-secondary)}.library__section-title{text-align:center;font-size:1.75rem;font-weight:700;margin-bottom:var(--spacing-3)}.library__section-description{text-align:center;max-width:42rem;margin:0 auto var(--spacing-8);font-size:1rem;color:var(--color-text-secondary);line-height:1.6}.library__grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-6)}.library__article{display:flex;flex-direction:column}.library__article-meta{display:flex;gap:var(--spacing-3);align-items:center;margin-bottom:var(--spacing-4)}.library__article-type{display:inline-block;padding:var(--spacing-1) var(--spacing-3);background-color:var(--color-bg-tertiary);color:var(--color-primary-main);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full)}.library__article-date{font-size:.875rem;color:var(--color-text-tertiary)}.library__article-title{font-size:1.5rem;font-weight:700;margin-bottom:var(--spacing-3);color:var(--color-text-primary)}.library__article-description{font-size:1rem;color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--spacing-4)}.library__article-link{color:var(--color-primary-main);font-weight:600;font-size:.9375rem;text-decoration:none;transition:color var(--transition-base) ease;margin-top:auto}.library__article-link:hover{color:var(--color-primary-dark);text-decoration:underline}.library__books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--spacing-4)}.library__book-card{display:block;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 4px 12px #0003;transition:all var(--transition-base) ease;text-decoration:none;cursor:pointer}.library__book-card:hover{box-shadow:0 8px 20px #0000004d;transform:translateY(-6px) scale(1.02)}.library__book-cover-image{width:100%;aspect-ratio:2/3;overflow:hidden;position:relative}.library__book-cover-image img{width:100%;height:100%;object-fit:cover;display:block}.library__book-favorite{position:absolute;top:var(--spacing-2);right:var(--spacing-2);width:28px;height:28px;background:#fffffff2;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0003;z-index:10}.library__book-favorite-icon{width:16px;height:16px;color:#f59e0b}.library__book-info{display:none}@media(min-width:768px){.library__hero{padding:var(--spacing-10) 0 var(--spacing-8) 0}.library__title{font-size:2.5rem}.library__description{font-size:1.125rem}.library__section{padding:var(--spacing-10) 0}.library__section-title{font-size:2rem}.library__section-description{font-size:1.0625rem}.library__grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.library__books-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--spacing-5)}}@media(min-width:1024px){.library__hero{padding:var(--spacing-8) 0}.library__title{font-size:2.25rem}.library__description{font-size:.9375rem}.library__section{padding:var(--spacing-8) 0}.library__section-title{font-size:1.75rem}.library__section-description{font-size:.9375rem}.library__books-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--spacing-6)}}.projects{width:100%;padding:var(--spacing-6) 0}.projects__header{text-align:center;max-width:48rem;margin:0 auto var(--spacing-8)}.projects__title{font-size:2rem;margin-bottom:var(--spacing-4)}.projects__description{font-size:1rem;color:var(--color-text-secondary);line-height:1.7}.projects__grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-6)}.projects__card{position:relative;overflow:hidden}.projects__item{display:flex;flex-direction:column;height:100%;position:relative;z-index:2}.projects__item-preview{position:absolute;bottom:var(--spacing-4);right:var(--spacing-4);width:120px;pointer-events:none;z-index:1;opacity:.85;transition:opacity var(--transition-base),transform var(--transition-base)}.projects__item-preview img{width:100%;height:auto;object-fit:cover;border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:2px solid var(--color-border-secondary)}.projects__card:hover .projects__item-preview{opacity:1;transform:scale(1.05)}.projects__item-title{font-size:1.75rem;font-weight:700;margin-bottom:var(--spacing-4);color:var(--color-text-primary)}.projects__item-description{font-size:1rem;color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--spacing-6);flex:1}.projects__item-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin-bottom:var(--spacing-6)}.projects__item-tag{padding:var(--spacing-1) var(--spacing-3);background-color:var(--color-neutral-gray-100);color:var(--color-text-secondary);font-size:.8125rem;font-weight:500;border-radius:var(--radius-full);transition:all var(--transition-base) ease}.projects__item-tag:hover{background-color:var(--color-primary-main);color:var(--color-primary-contrast)}.projects__item-actions{display:flex;flex-direction:column;gap:var(--spacing-3);margin-top:auto}@media(min-width:768px){.projects{padding:var(--spacing-8) 0}.projects__title{font-size:2.5rem}.projects__header{margin-bottom:var(--spacing-12)}.projects__description{font-size:1.125rem}.projects__grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.projects__item-actions{flex-direction:row}.projects__item-preview{width:160px}}@media(min-width:1024px){.projects__title{font-size:3rem}.projects__grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}}.project-detail{min-height:100vh;margin-top:calc(-1 * var(--spacing-4))}.project-detail__hero{position:relative;width:100vw;margin-left:calc(-50vw + 50%);height:250px;overflow:hidden;margin-bottom:var(--spacing-6)}.project-detail__hero-image{width:100%;height:100%;object-fit:cover;object-position:top center}.project-detail__hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 0%,var(--color-bg-primary) 100%)}.project-detail__back{display:inline-block;color:var(--color-text-secondary);font-size:.9375rem;margin-bottom:var(--spacing-4);transition:color var(--transition-fast)}.project-detail__back:hover{color:var(--color-primary-main)}.project-detail__header{margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-6);border-bottom:1px solid var(--color-border-primary)}.project-detail__title{font-size:2rem;font-weight:800;margin-bottom:var(--spacing-4);line-height:1.2}.project-detail__tags{display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin-bottom:var(--spacing-6)}.project-detail__tag{padding:var(--spacing-1) var(--spacing-3);background-color:var(--color-primary-main);color:var(--color-primary-contrast);font-size:.8125rem;font-weight:600;border-radius:var(--radius-full)}.project-detail__actions{display:flex;gap:var(--spacing-3);flex-wrap:wrap}.project-detail__content{display:flex;flex-direction:column;gap:var(--spacing-10);padding-bottom:var(--spacing-12)}.project-detail__section-title{font-size:1.5rem;font-weight:700;margin-bottom:var(--spacing-6);color:var(--color-text-primary);position:relative;padding-bottom:var(--spacing-2)}.project-detail__section-title:after{content:"";position:absolute;bottom:0;left:0;width:60px;height:3px;background:var(--color-primary-main);border-radius:var(--radius-full)}.project-detail__description p{color:var(--color-text-secondary);line-height:1.8;margin-bottom:var(--spacing-4);font-size:1.0625rem}.project-detail__description p:last-child{margin-bottom:0}.project-detail__highlights{display:flex;flex-wrap:wrap;gap:var(--spacing-3);margin-bottom:var(--spacing-2)}.project-detail__highlight{display:inline-flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);background:linear-gradient(135deg,var(--color-primary-main),var(--color-primary-dark));color:var(--color-primary-contrast);font-size:.875rem;font-weight:600;border-radius:var(--radius-full)}.project-detail__highlight:before{content:"★";font-size:.75rem}.project-detail__gallery{display:flex;flex-direction:column;gap:var(--spacing-6)}.project-detail__gallery-secondary-row{display:flex;gap:var(--spacing-4);flex-wrap:wrap}.project-detail__gallery-item{margin:0}.project-detail__gallery-item--main{width:100%}.project-detail__gallery-item--main img{width:100%;height:auto;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl)}.project-detail__gallery-item--secondary{max-width:150px}.project-detail__gallery-item--secondary img{width:100%;height:auto;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.project-detail__gallery-item--secondary figcaption{font-size:.75rem}.project-detail__gallery-item img{transition:transform var(--transition-base),box-shadow var(--transition-base)}.project-detail__gallery-item img:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.project-detail__gallery-item figcaption{margin-top:var(--spacing-3);text-align:center;font-size:.875rem;color:var(--color-text-tertiary);font-style:italic}.project-detail__features{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:var(--spacing-3)}.project-detail__features li{position:relative;padding:var(--spacing-3) var(--spacing-4);padding-left:var(--spacing-10);background:var(--color-bg-secondary);border-radius:var(--radius-lg);color:var(--color-text-secondary);line-height:1.5;font-size:.9375rem}.project-detail__features li:before{content:"✓";position:absolute;left:var(--spacing-4);top:50%;transform:translateY(-50%);color:var(--color-primary-main);font-weight:700;font-size:1rem}.project-detail__tech-stack{display:grid;grid-template-columns:1fr;gap:var(--spacing-6)}.project-detail__tech-category{background:var(--color-bg-secondary);padding:var(--spacing-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.project-detail__tech-category h3{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-4);text-transform:uppercase;letter-spacing:.05em}.project-detail__tech-items{display:flex;flex-wrap:wrap;gap:var(--spacing-2)}.project-detail__tech-item{padding:var(--spacing-2) var(--spacing-4);background:var(--color-bg-primary);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;border-radius:var(--radius-lg);border:1px solid var(--color-border-primary)}@media(min-width:768px){.project-detail{margin-top:calc(-1 * var(--spacing-6))}.project-detail__hero{height:350px}.project-detail__title{font-size:2.5rem}.project-detail__features{grid-template-columns:repeat(2,1fr)}.project-detail__tech-stack{grid-template-columns:repeat(3,1fr)}.project-detail__gallery-item--secondary{max-width:220px}.project-detail__gallery-item--secondary figcaption{font-size:.8125rem}}@media(min-width:1024px){.project-detail{margin-top:calc(-1 * var(--spacing-8))}.project-detail__hero{height:450px}.project-detail__title{font-size:3rem}.project-detail__content{max-width:1000px}.project-detail__section-title{font-size:1.75rem}.project-detail__gallery-item--secondary{max-width:300px}}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors:active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors:active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;inset:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}.resume{padding:var(--spacing-8) 0;min-height:100vh}.resume__header{text-align:center;margin-bottom:var(--spacing-8)}.resume__title{font-size:2rem;font-weight:800;color:var(--color-text-primary);margin-bottom:var(--spacing-2)}.resume__subtitle{font-size:1rem;color:var(--color-text-secondary);max-width:600px;margin:0 auto var(--spacing-6)}.resume__actions{display:flex;gap:var(--spacing-3);justify-content:center;flex-wrap:wrap}.resume__document{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-6)}.resume__page{box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);overflow:hidden;background:#fff}.resume__page canvas{max-width:100%!important;height:auto!important}.resume__loading{padding:var(--spacing-8);text-align:center;color:var(--color-text-secondary);font-size:1rem}.resume__error{padding:var(--spacing-8);text-align:center;color:var(--color-error);font-size:1rem}.resume__page .react-pdf__Page__textContent{-webkit-user-select:text;user-select:text}@media(min-width:768px){.resume__title{font-size:2.5rem}.resume__subtitle{font-size:1.125rem}}@media(min-width:1024px){.resume{padding:var(--spacing-12) 0}}.song-item{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);transition:all .2s cubic-bezier(.4,0,.2,1);background-color:transparent;border:1px solid transparent;position:relative}.song-item:hover{background-color:#00000005;transform:translate(2px)}[data-theme=dark] .song-item:hover{background-color:#ffffff08}.song-item--playing{background:linear-gradient(135deg,var(--color-primary-dark),var(--color-primary-main));color:#fff;border-color:transparent;box-shadow:0 2px 8px #2d501640}[data-theme=dark] .song-item--playing{background:linear-gradient(135deg,var(--color-primary-main),var(--color-primary-light));box-shadow:0 2px 8px #7a9b5a40}.song-item--playing .song-item__artist,.song-item--playing .song-item__album{color:#ffffffd9}.song-item__index{flex-shrink:0;width:28px;text-align:center;font-size:.8125rem;color:var(--color-text-tertiary);font-weight:600;font-variant-numeric:tabular-nums}.song-item--playing .song-item__index{color:#fffffff2}.song-item__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--spacing-1)}.song-item__name{font-weight:600;font-size:.9375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-primary)}.song-item--playing .song-item__name{color:#fff}.song-item__artist{font-size:.8125rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-item__album{font-size:.75rem;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-item__play-button{flex-shrink:0;width:36px;height:36px;border-radius:50%;border:none;background-color:var(--color-primary-main);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);opacity:0;box-shadow:0 2px 8px #2d501633}.song-item:hover .song-item__play-button{opacity:1}.song-item--playing .song-item__play-button{opacity:1;background-color:#fff;color:var(--color-primary-main);box-shadow:0 2px 8px #00000026}[data-theme=dark] .song-item--playing .song-item__play-button{background-color:#fffffff2;color:var(--color-primary-dark)}.song-item__play-button:hover{transform:scale(1.08)}.song-item__play-button:active{transform:scale(.96)}.song-item__spotify-icon{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);opacity:.5}.song-item__error{position:absolute;bottom:-24px;right:0;font-size:.6875rem;color:var(--color-error, #ef4444);background:var(--color-bg-secondary);padding:4px 8px;border-radius:var(--radius-sm);white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 8px #0000001a;z-index:10}@media(min-width:768px){.song-item{padding:var(--spacing-3) var(--spacing-4)}.song-item__index{width:32px;font-size:.875rem}.song-item__name{font-size:1rem}.song-item__artist{font-size:.875rem}.song-item__album{font-size:.8125rem}.song-item__play-button,.song-item__spotify-icon{width:40px;height:40px}}@media(min-width:1024px){.song-item{padding:var(--spacing-3) var(--spacing-4);gap:var(--spacing-4)}}.monthly-playlist{background-color:var(--color-bg-secondary);border-radius:var(--radius-xl);overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid var(--color-border-primary);box-shadow:0 1px 3px #0000000d}.monthly-playlist:hover{border-color:var(--color-primary-light);box-shadow:0 8px 24px #00000014;transform:translateY(-2px)}.monthly-playlist--expanded{border-color:var(--color-primary-light);box-shadow:0 4px 16px #0000001a}.monthly-playlist__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease;position:relative}.monthly-playlist__header:hover{background-color:#00000005}[data-theme=dark] .monthly-playlist__header:hover{background-color:#ffffff08}.monthly-playlist__title-section{display:flex;flex-direction:column;gap:var(--spacing-2)}.monthly-playlist__title{font-size:1.125rem;font-weight:700;margin:0;background:linear-gradient(135deg,var(--color-primary-dark),var(--color-primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.01em}.monthly-playlist__count{font-size:.75rem;color:var(--color-text-tertiary);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.monthly-playlist__toggle{flex-shrink:0;width:36px;height:36px;border:none;background:#00000008;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-primary);transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:var(--radius-md)}[data-theme=dark] .monthly-playlist__toggle{background:#ffffff0d}.monthly-playlist__toggle:hover{background-color:var(--color-primary);color:#fff;transform:scale(1.05)}.monthly-playlist--expanded .monthly-playlist__toggle{transform:rotate(180deg)}.monthly-playlist--expanded .monthly-playlist__toggle:hover{transform:rotate(180deg) scale(1.05)}.monthly-playlist__toggle-icon{width:18px;height:18px}.monthly-playlist__content{padding:0 var(--spacing-4) var(--spacing-4);animation:slideDown .3s cubic-bezier(.4,0,.2,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.monthly-playlist__songs{display:flex;flex-direction:column;gap:var(--spacing-1);background-color:transparent;border-radius:var(--radius-md);padding:0}@media(min-width:768px){.monthly-playlist__header{padding:var(--spacing-5)}.monthly-playlist__title{font-size:1.25rem}.monthly-playlist__count{font-size:.8125rem}.monthly-playlist__content{padding:0 var(--spacing-5) var(--spacing-5)}.monthly-playlist__toggle{width:40px;height:40px}.monthly-playlist__toggle-icon{width:20px;height:20px}}@media(min-width:1024px){.monthly-playlist__header{padding:var(--spacing-6)}.monthly-playlist__title{font-size:1.5rem}.monthly-playlist__content{padding:0 var(--spacing-6) var(--spacing-6)}}.spotify-auth-notification{position:fixed;bottom:var(--spacing-6);left:50%;transform:translate(-50%);z-index:1000;animation:slideInUp .4s cubic-bezier(.4,0,.2,1);width:calc(100% - var(--spacing-8));max-width:320px}@keyframes slideInUp{0%{opacity:0;transform:translate(-50%) translateY(100%)}to{opacity:1;transform:translate(-50%) translateY(0)}}.spotify-auth-notification__content{display:flex;align-items:center;gap:var(--spacing-2);background:linear-gradient(135deg,#1ed760,#1db954);color:#fff;padding:var(--spacing-3);border-radius:var(--radius-lg);box-shadow:0 8px 32px #1ed7604d,0 2px 8px #00000026;width:100%;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.spotify-auth-notification__icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#fff3;border-radius:var(--radius-md)}.spotify-auth-notification__icon svg{width:20px;height:20px}.spotify-auth-notification__text{flex:1;min-width:0}.spotify-auth-notification__title{font-size:.875rem;font-weight:700;line-height:1.3;margin-bottom:2px}.spotify-auth-notification__subtitle{font-size:.75rem;opacity:.9;line-height:1.2}.spotify-auth-notification__button{flex-shrink:0;padding:7px 14px;background:#fff;color:#1db954;border:none;border-radius:var(--radius-md);font-size:.8125rem;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #00000026;white-space:nowrap;line-height:1.2}.spotify-auth-notification__button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0003;background:#fff}.spotify-auth-notification__button:active{transform:translateY(0);box-shadow:0 1px 4px #00000026}.spotify-auth-notification__close{flex-shrink:0;width:24px;height:24px;padding:0;background:#ffffff26;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1)}.spotify-auth-notification__close svg{width:12px;height:12px}.spotify-auth-notification__close:hover{background:#ffffff40;transform:scale(1.1)}.spotify-auth-notification__close:active{transform:scale(.95)}.spotify-auth-notification__error{position:absolute;bottom:-20px;right:0;font-size:.75rem;color:#ff6b6b;background:#000c;padding:4px 8px;border-radius:var(--radius-sm);white-space:nowrap}@media(min-width:768px){.spotify-auth-notification{bottom:var(--spacing-8);left:auto;right:var(--spacing-8);transform:none;width:auto;max-width:400px}@keyframes slideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.spotify-auth-notification__content{padding:var(--spacing-4) var(--spacing-6);gap:var(--spacing-4)}.spotify-auth-notification__text{max-width:none}.spotify-auth-notification__icon{width:44px;height:44px}.spotify-auth-notification__title{font-size:1rem}.spotify-auth-notification__subtitle{font-size:.875rem}.spotify-auth-notification__button{padding:9px 18px;font-size:.9375rem}.spotify-auth-notification__close{width:32px;height:32px}}.mobile-playback-info{position:fixed;top:80px;left:var(--spacing-4);right:var(--spacing-4);z-index:1000;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.mobile-playback-info__content{display:flex;align-items:flex-start;gap:var(--spacing-3);background:linear-gradient(135deg,#1db954,#1ed760);color:#fff;padding:var(--spacing-3);border-radius:var(--radius-lg);box-shadow:0 4px 12px #00000026;max-width:600px;margin:0 auto}.mobile-playback-info__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px}.mobile-playback-info__text{flex:1;font-size:.875rem;line-height:1.5}.mobile-playback-info__text strong{font-weight:600;display:block;margin-bottom:2px}.mobile-playback-info__dismiss{flex-shrink:0;background:none;border:none;color:#fff;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background-color .2s}.mobile-playback-info__dismiss:hover{background-color:#ffffff1a}.mobile-playback-info__dismiss:active{background-color:#fff3}@media(min-width:768px){.mobile-playback-info{top:100px;left:50%;right:auto;transform:translate(-50%);width:90%;max-width:600px}}.historical-jams{width:100%;padding-bottom:120px}.historical-jams__hero{padding:var(--spacing-8) 0;background:linear-gradient(135deg,var(--color-bg-primary) 0%,var(--color-bg-secondary) 100%);text-align:center}.historical-jams__title{font-size:2rem;font-weight:800;margin-bottom:var(--spacing-4);line-height:1.1;background:linear-gradient(135deg,var(--color-primary-dark),var(--color-primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.historical-jams__subtitle{font-size:1rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-6)}.historical-jams__search{position:relative;max-width:500px;margin:var(--spacing-6) auto 0}.historical-jams__search-input{width:100%;padding:var(--spacing-3) var(--spacing-4);padding-right:var(--spacing-10);font-size:1rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-primary);color:var(--color-text-primary);transition:all .2s ease;outline:none}.historical-jams__search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-alpha)}.historical-jams__search-input::placeholder{color:var(--color-text-tertiary)}.historical-jams__search-clear{position:absolute;right:var(--spacing-3);top:50%;transform:translateY(-50%);background:var(--color-bg-secondary);border:none;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);transition:all .2s ease;font-size:.875rem}.historical-jams__search-clear:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.historical-jams__no-results{text-align:center;padding:var(--spacing-12) var(--spacing-4);color:var(--color-text-secondary);font-size:1.125rem}.historical-jams__content{padding:var(--spacing-10) 0 var(--spacing-16)}.historical-jams__playlists{display:flex;flex-direction:column;gap:var(--spacing-6)}@media(min-width:768px){.historical-jams__hero{padding:var(--spacing-10) 0}.historical-jams__title{font-size:2.25rem}.historical-jams__subtitle{font-size:1.125rem}.historical-jams__playlists{gap:var(--spacing-8)}}@media(min-width:1024px){.historical-jams__hero{padding:var(--spacing-12) 0}.historical-jams__title{font-size:2.5rem}.historical-jams__subtitle{font-size:1.25rem}.historical-jams__content{padding:var(--spacing-12) 0 var(--spacing-24)}.historical-jams__playlists{gap:var(--spacing-10)}}.not-found{min-height:80vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-8);text-align:center;position:relative;overflow:hidden}.not-found__content{max-width:500px;position:relative;z-index:1}.not-found__code{font-size:8rem;font-weight:900;line-height:1;margin-bottom:var(--spacing-4);color:var(--color-primary-main);transition:opacity .3s,filter .3s;-webkit-user-select:none;user-select:none}.not-found__title{font-size:1.75rem;font-weight:700;margin-bottom:var(--spacing-4);color:var(--color-text-primary)}.not-found__message{font-size:1.125rem;color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--spacing-6)}.not-found__score{position:fixed;bottom:var(--spacing-6);left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:.875rem;color:var(--color-primary-main);padding:var(--spacing-2) var(--spacing-4);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);z-index:20;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:var(--spacing-4)}.not-found__reset{font-family:var(--font-primary);font-size:.75rem;font-weight:600;padding:var(--spacing-1) var(--spacing-3);background:var(--color-primary-main);color:var(--color-primary-contrast);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.not-found__reset:hover{background:var(--color-primary-dark)}.not-found__content--hidden{opacity:0;pointer-events:none;transition:opacity .5s}.not-found__game-over-panel{position:fixed;left:50%;top:65%;transform:translate(-50%);z-index:20;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-4);animation:fadeInUp .8s ease-out .5s both}.not-found__final-score{font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--color-text-primary);background:var(--color-bg-secondary);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);border:1px solid var(--color-primary-main);box-shadow:var(--shadow-md);margin:0 var(--spacing-4)}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(min-width:768px){.not-found__game-over-panel{top:70%}.not-found__final-score{font-size:1rem;padding:var(--spacing-3) var(--spacing-6)}}.not-found__suggestions{margin-bottom:var(--spacing-8)}.not-found__suggestions>p{font-size:.9375rem;color:var(--color-text-tertiary);margin-bottom:var(--spacing-4)}.not-found__links{display:flex;gap:var(--spacing-4);justify-content:center;flex-wrap:wrap;position:relative;z-index:100}.not-found__footer{font-size:.875rem;color:var(--color-text-tertiary);font-style:italic;margin:0}.not-found__invader{position:fixed;font-family:var(--font-mono);font-size:.875rem;font-weight:700;color:var(--color-error);background:none;border:none;cursor:crosshair;padding:.25rem;transform:translate(-50%,-50%);z-index:50;transition:transform .1s,color .1s;text-shadow:0 0 6px var(--color-error);animation:invaderPulse .5s ease-in-out infinite alternate}.not-found__invader:hover{transform:translate(-50%,-50%) scale(1.4);color:var(--color-warning)}.not-found__invader--formation{color:var(--color-error);text-shadow:0 0 10px var(--color-error);cursor:default;animation:formationPulse 1s ease-in-out infinite alternate;font-size:1rem;font-weight:700}.not-found__invader--formation:hover{transform:translate(-50%,-50%);color:var(--color-error)}@keyframes formationPulse{0%{opacity:.85;text-shadow:0 0 8px var(--color-error)}to{opacity:1;text-shadow:0 0 15px var(--color-error),0 0 30px var(--color-error)}}@media(min-width:768px){.not-found__invader--formation{font-size:1.25rem}}@keyframes invaderPulse{0%{opacity:.8}to{opacity:1;text-shadow:0 0 15px var(--color-error)}}.not-found__explosion{position:fixed;width:24px;height:24px;transform:translate(-50%,-50%);z-index:6;pointer-events:none;background:radial-gradient(circle,var(--color-primary-main) 0%,transparent 70%);border-radius:50%;animation:explode .3s ease-out forwards}@keyframes explode{0%{transform:translate(-50%,-50%) scale(.5);opacity:1}to{transform:translate(-50%,-50%) scale(2);opacity:0}}@media(min-width:768px){.not-found__code{font-size:12rem}.not-found__title{font-size:2rem}.not-found__invader{font-size:1rem}}
