@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap);*{box-sizing:border-box;margin:0;padding:0}:root{--header-bg:#f8e8e8;--bg-primary:#fff;--bg-secondary:#fafafa;--text-primary:#1a1a1a;--text-secondary:#666;--text-light:#999;--accent-pink:#f5c2c2;--accent-blue:#4a90e2;--border-color:#e8e8e8;--card-bg:#fff;--card-border:#f0f0f0;--shadow-sm:0 2px 8px #0000000a;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 8px 24px #0000001f;--border-radius:12px;--toggle-bg:#f5f5f5;--toggle-bg-hover:#e8e8e8;--toggle-border:#e0e0e0}[data-theme=dark]{--header-bg:#1a1a1a;--bg-primary:#121212;--bg-secondary:#1e1e1e;--text-primary:#fff;--text-secondary:#b0b0b0;--text-light:grey;--accent-pink:#c98787;--accent-blue:#6bb3ff;--border-color:#2a2a2a;--card-bg:#1e1e1e;--card-border:#2a2a2a;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 24px #00000080;--toggle-bg:#2a2a2a;--toggle-bg-hover:#353535;--toggle-border:#3a3a3a}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;background:var(--bg-primary);color:#1a1a1a;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:16px;line-height:1.7;margin:0;min-height:100vh}code{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Courier New,monospace}.App{background:var(--bg-primary);margin:0 auto;max-width:1200px;min-height:100vh;padding:0;position:relative;z-index:1}.error-container,.loading-container{align-items:center;color:var(--text-primary);display:flex;flex-direction:column;justify-content:center;min-height:100vh}.spinner{animation:spin .8s linear infinite;border-top:3px solid var(--border-color);border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--accent-pink);height:50px;margin-bottom:24px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-container{color:#e74c3c}main{background:var(--bg-primary);padding:0;position:relative}@media (max-width:768px){.App{padding:0}}.theme-toggle{align-items:center;background:var(--toggle-bg);border:1px solid var(--toggle-border);border-radius:50%;color:var(--text-primary);cursor:pointer;display:flex;height:40px;justify-content:center;margin-left:16px;outline:none;padding:0;transition:all .3s ease;width:40px}.theme-toggle:hover{background:var(--toggle-bg-hover);transform:scale(1.1)}.theme-toggle:active{transform:scale(.95)}.theme-icon{font-size:18px;transition:transform .3s ease}.theme-toggle:hover .theme-icon{transform:rotate(15deg)}@media (max-width:768px){.theme-toggle{height:36px;margin-left:12px;width:36px}.theme-icon{font-size:16px}}.header{background:var(--header-bg);border-bottom:1px solid var(--border-color);position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:100}.header-container{justify-content:space-between;margin:0 auto;max-width:1200px;padding:16px 24px}.header-container,.header-left{align-items:center;display:flex}.header-left{color:inherit;gap:12px;text-decoration:none;transition:opacity .2s ease}.header-left:hover{opacity:.8}.avatar-circle,.header-avatar{align-items:center;display:flex}.avatar-circle{background:var(--accent-pink);border:2px solid #fffc;border-radius:50%;font-weight:600;height:40px;justify-content:center;width:40px}.avatar-circle,.header-name{color:var(--text-primary);font-size:18px}.header-name{font-weight:500;letter-spacing:-.01em;text-transform:lowercase}.header-nav-wrapper{align-items:center;display:flex;gap:12px}.header-mobile-theme{display:none}.header-menu-btn{align-items:center;background:#f5f5f5;background:var(--toggle-bg,#f5f5f5);border:1px solid var(--border-color);border-radius:8px;border-radius:var(--border-radius,8px);color:var(--text-primary);cursor:pointer;display:none;font-size:1.1rem;height:38px;justify-content:center;line-height:1;padding:0;transition:background .2s ease,color .2s ease;width:38px}.header-menu-btn:hover{background:#e8e8e8;background:var(--toggle-bg-hover,#e8e8e8)}.header-menu-btn:focus{outline:2px solid var(--accent-pink);outline-offset:2px}.header-nav{align-items:center;display:flex;flex-wrap:nowrap;gap:24px}.nav-link{color:var(--text-primary);font-size:16px;font-weight:400;padding:4px 0;position:relative;text-decoration:none;text-transform:lowercase;transition:color .2s ease}.nav-link:hover{color:var(--text-secondary)}.nav-link.active{color:var(--text-primary);font-weight:600}.nav-link.active:after{background:var(--text-primary);bottom:0;content:"";height:2px;left:0;position:absolute;right:0}.hero-section{background:var(--bg-primary);margin:0 auto;max-width:1200px;padding:80px 24px 60px;text-align:center}.hero-title{color:var(--text-primary);font-size:3rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}@media (max-width:768px){.header-container{flex-wrap:wrap;gap:12px;padding:12px 16px}.header-menu-btn{display:flex}.header-mobile-theme{display:block}.header-nav .theme-toggle{display:none}.header-nav-wrapper{align-items:center;flex-wrap:wrap;justify-content:flex-end}.header-nav-wrapper-open{order:3;width:100%}.header-nav{align-items:stretch;border-top:1px solid var(--border-color);display:none;flex-direction:column;gap:0;margin-top:8px;padding:16px 0 8px;width:100%}.header-nav-wrapper-open .header-nav{display:flex}.header-nav .nav-link{border-bottom:none;font-size:1rem;padding:12px 0}.header-nav .nav-link.active:after{display:none}.header-nav .nav-link.active{color:var(--accent-pink);font-weight:600}.hero-section{padding:60px 16px 40px}.hero-title{font-size:2rem}}.section{background:var(--bg-primary);margin:0 auto;max-width:1200px;padding:80px 24px}.section-content{margin:0 auto;max-width:900px}.section .section-title{text-align:center}.about-section .section-title{color:var(--text-primary);font-size:1.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-bottom:40px;text-align:center}.about-bio{color:var(--text-primary);font-size:1.125rem;font-weight:400;line-height:1.8;margin:0 auto;max-width:800px;text-align:left}.about-section{scroll-margin-top:80px}@media (max-width:768px){.section{padding:60px 16px}.about-section .section-title{font-size:1.5rem;margin-bottom:32px}.about-bio{font-size:1rem;line-height:1.7}}.footer{background:var(--bg-secondary);border-top:1px solid var(--border-color);margin-left:auto;margin-right:auto;margin-top:0;max-width:1200px;padding:60px 24px;text-align:center}.footer,.footer p{color:var(--text-secondary)}.footer p{font-size:.95rem;margin:6px 0}.footer-subtitle{color:var(--text-light);font-size:.85rem;font-weight:400;margin-top:8px}@media (max-width:768px){.footer{padding:40px 16px}.footer p{font-size:.9rem}.footer-subtitle{font-size:.8rem}}.projects-intro{color:var(--text-secondary);font-size:1.125rem;line-height:1.8;margin-bottom:40px;margin-left:auto;margin-right:auto;max-width:800px;text-align:center}.projects-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-top:40px}.project-card{background:var(--bg-secondary);border:1px solid var(--card-border);border-radius:var(--border-radius);display:flex;flex-direction:column;overflow:visible;padding:0;position:relative;transition:all .3s ease}.project-card:hover{border-color:var(--accent-pink);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.project-image-container{align-items:center;background:var(--bg-primary);border-radius:var(--border-radius) var(--border-radius) 0 0;display:flex;height:200px;justify-content:center;overflow:hidden;position:relative;width:100%;z-index:1}.project-image{display:block;height:100%;object-fit:cover;object-position:top;transition:transform .3s ease;width:100%}.project-card:hover .project-image{transform:scale(1.05)}.project-card>:not(.project-image-container){padding:24px 32px}.project-title-container{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px;padding-top:24px}.project-title{color:var(--text-primary);font-size:1.5rem;font-weight:700;letter-spacing:-.01em;margin:0}.project-badge{align-items:center;box-shadow:0 2px 6px #0003;display:inline-flex;font-size:.68rem;font-weight:800;justify-content:center;left:-2px;letter-spacing:.12em;line-height:1.2;padding:6px 14px 6px 18px;position:absolute;text-transform:uppercase;top:12px;z-index:100}.project-badge-wip{background:#c00;border:none;border-radius:0 4px 4px 0;color:#fff;padding-right:18px;text-shadow:0 1px 1px #0000004d}.project-badge-wip:after{border-bottom:10px solid #0000;border-left:8px solid #c00;border-top:10px solid #0000;content:"";filter:drop-shadow(1px 0 2px rgba(0,0,0,.15));height:0;position:absolute;right:-8px;top:50%;transform:translateY(-50%);width:0}.project-description{color:var(--text-secondary);font-size:.95rem;line-height:1.7;margin-bottom:24px;min-height:80px}.project-description strong{color:var(--text-primary);font-weight:600}.project-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:auto}.project-link{align-items:center;background:var(--text-primary);border:1px solid var(--text-primary);border-radius:8px;color:var(--bg-primary);display:inline-flex;font-size:.9rem;font-weight:500;justify-content:center;padding:10px 20px;text-decoration:none;transition:all .2s ease}.project-link:hover{background:var(--accent-pink);border-color:var(--accent-pink);color:var(--text-primary);transform:translateY(-1px)}.projects-section{scroll-margin-top:80px}@media (max-width:768px){.projects-grid{gap:20px;grid-template-columns:1fr;margin-top:32px}.project-card{padding:24px}.project-title{font-size:1.3rem}.project-description{font-size:.9rem;min-height:auto}}.skills-container{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:40px}.skill-category{background:var(--bg-secondary);border:1px solid var(--card-border);border-radius:var(--border-radius);padding:32px;transition:all .3s ease}.skill-category:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.skill-category-title{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:20px;text-align:left}.skill-tags{display:flex;flex-wrap:wrap;gap:10px}.skill-tag{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:20px;color:var(--text-primary);cursor:default;font-size:.9rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.skill-tag:hover{background:var(--accent-pink);border-color:var(--accent-pink);color:var(--text-primary)}.skills-section{scroll-margin-top:80px}@media (max-width:768px){.skills-container{gap:20px;grid-template-columns:1fr;margin-top:32px}.skill-category{padding:24px}.skill-category-title{font-size:1.1rem;margin-bottom:16px}.skill-tag{font-size:.85rem;padding:6px 14px}}.timeline-section{scroll-margin-top:80px}.timeline-section .section-content{padding-top:0}.timeline-section .section-title{margin-bottom:20px}.timeline-intro{color:var(--text-secondary);font-size:1rem;line-height:1.7;margin:20px auto 40px;max-width:700px;text-align:center}.timeline-wrapper{margin:0 auto;max-width:1000px;overflow-x:visible}.timeline-scale,.timeline-wrapper{min-height:4000px;position:relative}.timeline-scale{width:100%}.timeline-vertical-line{background:var(--border-color);bottom:0;left:60px;position:absolute;width:2px;z-index:0}.timeline-year-marker{align-items:center;display:flex;gap:12px;left:0;position:absolute;transform:translateY(-50%);z-index:2}.timeline-year-tick{background:var(--text-primary);height:2px;margin-left:56px;width:8px}.timeline-year-label{color:var(--text-primary);font-family:SF Mono,Monaco,monospace;font-size:.875rem;font-weight:600;white-space:nowrap}.timeline-event-on-scale{align-items:center;display:flex;gap:12px;left:120px;position:absolute;transform:translateY(-50%);z-index:3}.timeline-event-on-scale.expanded{z-index:5}.timeline-event-on-scale.greyed-out .timeline-entry{background:var(--bg-secondary);border-color:var(--border-color)}.timeline-event-on-scale.greyed-out .timeline-category-badge{opacity:.6}.timeline-event-on-scale.greyed-out .timeline-entry-description{opacity:.7}.timeline-event-on-scale.greyed-out:hover .timeline-entry{background:var(--card-bg);border-color:var(--accent-pink)}.timeline-event-on-scale.greyed-out:hover .timeline-category-badge,.timeline-event-on-scale.greyed-out:hover .timeline-entry-description{opacity:1}.timeline-event-on-scale.greyed-out .timeline-entry-title{color:var(--text-primary);opacity:1}.timeline-event-bullet{background:var(--accent-pink);border:3px solid var(--bg-primary);border-radius:50%;box-shadow:0 0 0 2px var(--accent-pink);flex-shrink:0;height:12px;width:12px}[data-theme=dark] .timeline-event-bullet{border-color:var(--bg-primary);box-shadow:0 0 0 2px var(--accent-pink),0 0 8px #f5c2c24d}.timeline-event-popup{flex:1 1;max-width:420px;min-width:0;position:relative}.timeline-entry{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius);cursor:pointer;max-width:420px;padding:10px 14px;position:relative;transition:all .3s ease;-webkit-user-select:none;user-select:none;z-index:2}.timeline-entry:hover{border-color:var(--accent-pink);box-shadow:var(--shadow-md);transform:translateX(4px)}.timeline-entry-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.timeline-entry-left{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.timeline-category-badge{background:#f5c2c21a;border-radius:4px;color:var(--accent-pink);display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.05em;padding:3px 6px;text-transform:uppercase;width:-webkit-fit-content;width:fit-content}[data-theme=dark] .timeline-category-badge{background:#c9878726}.timeline-entry-title{font-size:.9rem;font-weight:600;letter-spacing:-.01em;line-height:1.3;margin:0}.timeline-entry-title,.timeline-event-on-scale .timeline-entry-title{color:var(--text-primary);opacity:1}.timeline-expand-icon{color:var(--text-secondary);flex-shrink:0;font-size:1.25rem;font-weight:300;line-height:1;transition:transform .3s ease}.timeline-entry.expanded .timeline-expand-icon,.timeline-event-on-scale.expanded .timeline-expand-icon{transform:rotate(180deg)}.timeline-connector-line{animation:drawLine .3s ease-out;background:var(--accent-pink);height:2px;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:40px;z-index:1}@keyframes drawLine{0%{opacity:0;width:0}to{opacity:1;width:40px}}.timeline-entry-details{animation:slideIn .3s ease-out;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);left:calc(100% + 40px);max-width:400px;min-width:300px;padding:16px 20px;position:absolute;top:50%;transform:translateY(-50%);z-index:10}@keyframes slideIn{0%{opacity:0;transform:translateY(-50%) translateX(-10px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}.timeline-entry-description{color:var(--text-secondary);font-size:.875rem;line-height:1.6;margin:0}@media (max-width:768px){.timeline-wrapper{min-height:auto;overflow-x:visible;padding:0 16px}.timeline-scale{display:block;min-height:auto;position:relative}.timeline-vertical-line{display:none}.timeline-year-group{display:block;margin-bottom:40px;padding-left:0;position:static}.timeline-year-group:last-of-type{margin-bottom:24px}.timeline-year-marker{align-items:center;display:flex;gap:10px;margin-bottom:16px;padding-left:0;position:static;transform:none}.timeline-year-tick{flex-shrink:0;height:2px;margin-left:0;width:10px}.timeline-year-label{font-size:1rem}.timeline-event-on-scale{align-items:stretch;display:flex;flex-direction:column;gap:0;left:auto!important;margin-left:0;margin-top:12px;position:static!important;top:auto!important;transform:none!important;width:100%}.timeline-event-on-scale .timeline-event-popup{max-width:none}.timeline-entry{max-width:none;padding:14px 16px}.timeline-entry-title{font-size:.95rem}.timeline-connector-line{display:none}.timeline-entry-details{box-sizing:border-box;left:auto!important;margin-left:0;margin-top:12px;max-width:none;min-width:0;padding:14px 16px;position:static!important;top:auto!important;transform:none!important;width:100%}.timeline-entry-description{font-size:.9rem}}.contact-description{color:var(--text-secondary);font-size:1.125rem;line-height:1.8;margin-bottom:40px;margin-left:auto;margin-right:auto;max-width:700px;text-align:center}.contact-links{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.contact-link{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-primary);display:flex;font-size:1rem;font-weight:500;gap:8px;padding:16px 24px;text-decoration:none;transition:all .2s ease}.contact-link:hover{background:var(--accent-pink);border-color:var(--accent-pink);box-shadow:var(--shadow-md);transform:translateY(-2px)}.contact-icon{color:var(--text-primary);font-size:1.5rem}.contact-section{scroll-margin-top:80px}@media (max-width:768px){.contact-description{font-size:1rem;margin-bottom:32px}.contact-links{align-items:stretch;flex-direction:column;gap:12px}.contact-link{font-size:.95rem;justify-content:center;padding:14px 20px}.contact-icon{font-size:1.1rem}}.globe-container{align-items:center;cursor:grab;display:flex;flex-shrink:0;justify-content:center;position:relative}.globe-container:active{cursor:grabbing}.globe-container.globe-small{height:100px;width:100px}.globe-container.globe-large{height:100%!important;min-height:100%;min-width:100%;width:100%!important}.globe-container canvas{display:block;max-height:100%;max-width:100%}@media (max-width:768px){.globe-container.globe-small{height:70px;width:70px}.globe-container.globe-large{min-height:300px;min-width:300px}}.globe-section{background:var(--bg-primary);bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:60px;z-index:1}.globe-section,.globe-section .section-content{margin:0!important;max-width:none!important;padding:0!important}.globe-section .section-content{display:flex;flex-direction:column;height:100%!important;width:100%!important}.globe-intro,.globe-section .section-title{display:none}.globe-wrapper{align-items:center;display:flex;flex:1 1;height:100%!important;justify-content:center;margin:0!important;overflow:hidden;padding:0!important;position:relative;width:100%!important}.globe-legend{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;border-radius:8px;bottom:20px;display:flex;flex-direction:column;font-size:.75rem;gap:8px;padding:12px 16px;position:absolute;right:20px;z-index:10}.legend-item{align-items:center;color:#fffffff2;display:flex;gap:8px}.legend-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.legend-dot-red{background:red}.legend-dot-cyan{background:#00ced1}.legend-label{color:#fffffff2;font-weight:400}@media (max-width:768px){.globe-section{top:50px}.globe-legend{bottom:15px;font-size:.7rem;gap:6px;padding:10px 12px;right:15px}.legend-dot{height:8px;width:8px}}.ideas-section{min-height:calc(100vh - 120px);overflow:hidden;padding-top:40px;position:relative;scroll-margin-top:80px}.ideas-form{display:flex;flex-direction:column;gap:16px;margin:0 auto 40px;max-width:900px;width:100%}.ideas-textarea{background:var(--bg-secondary);border:1px solid var(--card-border);border-radius:var(--border-radius);color:var(--text-primary);font-family:inherit;font-size:1rem;line-height:1.6;min-height:120px;padding:16px;resize:vertical;transition:border-color .3s ease,box-shadow .3s ease;width:100%}.ideas-textarea:focus{border-color:var(--accent-pink);box-shadow:0 0 0 3px #ec48991a;outline:none}.ideas-textarea::placeholder{color:var(--text-secondary);opacity:.6}.ideas-submit-btn{align-self:flex-start;background:var(--accent-pink);border:none;border-radius:var(--border-radius);color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.ideas-submit-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.ideas-submit-btn:active{transform:translateY(0)}.ideas-display-container{margin:0 auto;max-width:1200px;min-height:500px;overflow:visible;position:relative;width:100%}.idea-card{word-wrap:break-word;background:var(--bg-secondary);border:2px solid var(--accent-pink);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;font-size:.95rem;line-height:1.5;max-width:250px;padding:16px 20px;position:absolute;transition:all .3s ease;-webkit-user-select:none;user-select:none;z-index:10}.idea-card:hover{border-color:var(--accent-blue);box-shadow:var(--shadow-md);transform:scale(1.05);z-index:20}.idea-card:active{transform:scale(.95)}@media (max-width:768px){.ideas-section{min-height:calc(100vh - 100px);padding:20px 16px;scroll-margin-top:60px}.ideas-textarea{font-size:.95rem;min-height:100px;padding:12px}.ideas-display-container{min-height:400px}.idea-card{font-size:.85rem;max-width:200px;padding:12px 16px}}.books-section{padding-top:40px;scroll-margin-top:80px}.books-intro{color:var(--text-secondary);font-size:1rem;line-height:1.7;margin-bottom:24px;margin-left:auto;margin-right:auto;max-width:700px;text-align:center}.books-setup{margin:0 auto 40px;max-width:600px}.goodreads-form{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.goodreads-input{background:var(--bg-secondary);border:1px solid var(--card-border);border-radius:var(--border-radius);color:var(--text-primary);flex:1 1;font-family:inherit;font-size:1rem;min-width:200px;padding:12px 16px;transition:border-color .3s ease,box-shadow .3s ease}.goodreads-input:focus{border-color:var(--accent-pink);box-shadow:0 0 0 3px #ec48991a;outline:none}.goodreads-refresh-btn,.goodreads-submit-btn{background:var(--accent-pink);border:none;border-radius:var(--border-radius);color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease;white-space:nowrap}.goodreads-refresh-btn:hover:not(:disabled),.goodreads-submit-btn:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-2px)}.goodreads-refresh-btn:active:not(:disabled),.goodreads-submit-btn:active:not(:disabled){transform:translateY(0)}.goodreads-refresh-btn:disabled,.goodreads-submit-btn:disabled{cursor:not-allowed;opacity:.6}.goodreads-refresh-btn{display:block;margin:0 auto}.books-error,.goodreads-refresh-btn{background:var(--bg-secondary);border:1px solid var(--card-border)}.books-error{border-radius:var(--border-radius);margin-bottom:40px;margin-left:auto;margin-right:auto;max-width:600px;padding:24px;text-align:center}.books-error p{color:var(--text-primary);margin-bottom:8px}.books-error-help{color:var(--text-secondary);font-size:.9rem;margin-bottom:0!important}.books-loading{padding:40px;text-align:center}.books-loading p{color:var(--text-secondary);margin-top:16px}.books-count{color:var(--text-secondary);font-size:.95rem;margin-bottom:32px;text-align:center}.books-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin:0 auto;max-width:1200px}.book-card{background:var(--bg-secondary);border:1px solid var(--card-border);border-radius:var(--border-radius);color:inherit;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;text-decoration:none;transition:all .3s ease}.book-card:hover{border-color:var(--accent-pink);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.book-cover{aspect-ratio:2/3;background:var(--bg-primary);object-fit:cover;width:100%}.book-cover-placeholder{align-items:center;aspect-ratio:2/3;background:var(--accent-pink);color:var(--text-primary);display:flex;font-size:3rem;font-weight:700;justify-content:center;width:100%}.book-info{display:flex;flex:1 1;flex-direction:column;padding:16px}.book-title{-webkit-line-clamp:2;color:var(--text-primary);font-size:1rem;font-weight:600;line-height:1.3}.book-author,.book-title{-webkit-box-orient:vertical;display:-webkit-box;margin:0 0 8px;overflow:hidden}.book-author{-webkit-line-clamp:1;color:var(--text-secondary);font-size:.85rem}.book-rating{color:#f5c842;font-size:.9rem;letter-spacing:2px;margin-top:auto}.books-empty{color:var(--text-secondary);padding:40px;text-align:center}@media (max-width:768px){.books-section{padding:20px 16px;scroll-margin-top:60px}.goodreads-form{flex-direction:column}.goodreads-input,.goodreads-refresh-btn,.goodreads-submit-btn{width:100%}.books-grid{gap:16px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.book-info{padding:12px}.book-title{font-size:.9rem}.book-author{font-size:.8rem}}
/*# sourceMappingURL=main.c2c15050.css.map*/