:root{--color-text:#333;--color-text-muted:#666;--color-link:#f9652e;--color-link-hover:#d85525;--color-bg:#fff;--color-nav:#666;--max-width:720px;--font-stack:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}html{font-size:16px}body{font-family:var(--font-stack);color:var(--color-text);background:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased}.page-wrapper{display:flex;min-height:100vh}.sidebar{position:fixed;left:2rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.5rem}.sidebar a{color:var(--color-nav);text-decoration:none;font-size:.9rem;transition:color .2s}.sidebar a.active,.sidebar a:hover{color:var(--color-link)}main{max-width:var(--max-width);margin:0 auto;padding:4rem 2rem;display:flex;flex-direction:column;justify-content:center;min-height:100vh}.header{margin-bottom:2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.header h1{font-size:1.5rem;font-weight:600}.social-links{display:inline-flex;align-items:center;gap:.75rem;vertical-align:middle}.social-links a{color:var(--color-text-muted);display:inline-flex;transition:color .2s}.social-links a:hover{color:var(--color-link);text-decoration:none}h2{font-size:1.1rem;font-weight:600;margin-top:1rem}h2,p{margin-bottom:.75rem}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}ul{list-style:none;margin-bottom:1rem}.story-list{list-style:disc;padding-left:1.25rem}li{margin-bottom:.5rem}.intro{color:var(--color-text-muted);margin-bottom:1.5rem}.intro-justify{text-align:justify;margin-bottom:1rem}.project-item{margin-bottom:.75rem}.project-item strong{font-weight:500}.project-item span{color:var(--color-text-muted)}@media (max-width:900px){.sidebar{position:static;transform:none;flex-direction:row;flex-wrap:wrap;gap:1rem;padding:1.5rem 2rem;border-bottom:1px solid #eee}main{min-height:auto;padding:2rem 1.5rem}}@media (max-width:600px){.header{flex-direction:column;align-items:flex-start}.sidebar{padding:1rem 1.5rem}main{padding:1.5rem}.header h1{margin-bottom:.5rem}.header h1,.social-links{display:block}}.books-page{overflow:hidden}.books-page h1{text-align:center}.books-page .intro{text-align:center;margin-bottom:2rem}.book-carousel-container{position:relative;width:100%;display:flex;flex-direction:column;align-items:center;padding:2rem 0}.book-carousel{position:relative;width:100%;height:280px;perspective:1000px;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:visible}.book-carousel:active{cursor:-webkit-grabbing;cursor:grabbing}.book-carousel-track{position:relative;width:100%;height:100%;transform-style:preserve-3d;display:flex;justify-content:center;align-items:center}.book-cover-wrapper{position:absolute;width:140px;height:200px;transform-style:preserve-3d;transition:transform .4s ease,opacity .4s ease;cursor:pointer}.book-cover-wrapper.active{cursor:default}.book-cover{width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px;box-shadow:0 10px 30px rgba(0,0,0,.3);overflow:hidden;position:relative}.book-cover img{width:100%;height:100%;object-fit:cover}.book-cover-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:1rem;text-align:center}.book-cover-placeholder.hidden{display:none}.placeholder-title{color:#fff;font-size:.8rem;font-weight:600;line-height:1.3;text-shadow:0 1px 2px rgba(0,0,0,.3)}.book-cover-reflection{position:absolute;top:100%;left:0;width:100%;height:60px;background:linear-gradient(180deg,hsla(0,0%,100%,.2),transparent);transform:scaleY(-1);opacity:.3;pointer-events:none}.carousel-arrow{position:absolute;top:50%;transform:translateY(-100%);z-index:200;background:hsla(0,0%,100%,.9);border:none;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px rgba(0,0,0,.15);color:var(--color-text)}.carousel-arrow:hover:not(:disabled){background:#fff;box-shadow:0 4px 12px rgba(0,0,0,.2)}.carousel-arrow:disabled{opacity:.3;cursor:not-allowed}.carousel-arrow-left{left:1rem}.carousel-arrow-right{right:1rem}.book-info{text-align:center;margin-top:2rem;padding:0 1rem}.book-info-title{font-size:1.25rem;font-weight:600;margin:0 0 .25rem;color:var(--color-text)}.book-info-author{font-size:.95rem;color:var(--color-text-muted);margin:0 0 .5rem}.book-info-genre{display:inline-block;font-size:.8rem;color:var(--color-link);font-weight:500}.book-interaction{margin-top:1rem;display:flex;flex-direction:column;align-items:center;gap:.75rem}.vote-buttons{gap:.5rem}.vote-btn,.vote-buttons{display:flex;align-items:center}.vote-btn{background:transparent;border:1px solid #ddd;border-radius:4px;padding:.4rem;cursor:pointer;color:var(--color-text-muted);transition:all .2s ease;justify-content:center}.vote-btn:hover:not(:disabled){border-color:var(--color-link);color:var(--color-link)}.vote-btn.active{background:var(--color-link);border-color:var(--color-link);color:#fff}.vote-btn:disabled{opacity:.5;cursor:not-allowed}.vote-count{font-size:.9rem;font-weight:500;min-width:2.5rem;text-align:center;color:var(--color-text-muted)}.vote-count.positive{color:#22c55e}.vote-count.negative{color:#ef4444}.comment-btn{background:transparent;border:1px solid #ddd;border-radius:4px;padding:.4rem;cursor:pointer;color:var(--color-text-muted);transition:all .2s ease;display:flex;align-items:center;justify-content:center;position:relative;margin-left:.5rem}.comment-btn:hover{border-color:var(--color-link)}.comment-btn.commented,.comment-btn:hover{color:var(--color-link)}.commented-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:var(--color-link);border-radius:50%}.comment-form{width:100%;max-width:400px;flex-direction:column;padding:1rem;background:#f9f9f9;border-radius:8px}.comment-form,.name-input-row{display:flex;gap:.5rem}.name-input-row input{flex:1 1;padding:.5rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;font-family:inherit}.name-input-row input:focus{outline:none;border-color:var(--color-link)}.regenerate-btn{background:transparent;border:1px solid #ddd;border-radius:4px;padding:.5rem;cursor:pointer;color:var(--color-text-muted);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.regenerate-btn:hover{border-color:var(--color-link);color:var(--color-link)}.comment-form textarea{padding:.5rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;font-family:inherit;resize:vertical;min-height:80px}.comment-form textarea:focus{outline:none;border-color:var(--color-link)}.comment-form-footer{display:flex;justify-content:space-between;align-items:center}.char-count{font-size:.75rem;color:var(--color-text-muted)}.submit-btn{background:var(--color-link);color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.9rem;cursor:pointer;transition:background .2s ease}.submit-btn:hover:not(:disabled){background:var(--color-link-hover)}.submit-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width:600px){.book-carousel{height:220px}.book-cover-wrapper{width:110px;height:160px}.carousel-arrow{width:36px;height:36px}.carousel-arrow-left{left:.5rem}.carousel-arrow-right{right:.5rem}.book-info-title{font-size:1.1rem}.comment-form{max-width:100%}}