@keyframes popupBounce{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05)}100%{transform:scale(1);opacity:1}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}.canvas-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:10000;backdrop-filter:blur(4px)}.canvas-modal-overlay--closing{animation:fadeOut .3s ease-out}.canvas-modal{background:var(--color-white);border:3px solid var(--color-text);border-radius:var(--radius-2xl);padding:40px;max-width:500px;width:95%;box-shadow:8px 8px 0 #000;text-align:center;animation:popupBounce .4s cubic-bezier(.68,-.55,.265,1.55);position:relative}.canvas-modal--projects{padding:32px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;text-align:left}.canvas-modal__close{position:absolute;top:16px;right:16px;background:0 0;border:none;font-size:28px;cursor:pointer;color:var(--color-text);line-height:1}.canvas-modal__close:hover{opacity:.7}.canvas-modal__icon{font-size:56px;margin-bottom:16px}.canvas-modal__title{font-size:24px;font-weight:800;color:var(--color-text);margin-bottom:8px}.canvas-modal--projects .canvas-modal__title{font-size:22px;margin:0}.canvas-modal__description{font-size:16px;color:var(--color-text-secondary);margin-bottom:24px}.canvas-modal__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.canvas-modal__input{width:100%;padding:14px 16px;border:3px solid var(--color-gray-200);border-radius:var(--radius-lg);font-size:16px;margin-bottom:12px;box-sizing:border-box;transition:border-color var(--transition-fast)}.canvas-modal__input:focus{outline:0;border-color:var(--color-primary)}.canvas-modal__input--error{border-color:var(--color-secondary)}.canvas-modal__textarea{width:100%;padding:14px 16px;border:3px solid var(--color-gray-200);border-radius:var(--radius-lg);font-size:16px;margin-bottom:16px;box-sizing:border-box;resize:vertical;min-height:80px;transition:border-color var(--transition-fast)}.canvas-modal__textarea:focus{outline:0;border-color:var(--color-primary)}.canvas-modal__btn{width:100%;background:var(--color-primary);color:var(--color-white);border:3px solid var(--color-text);border-radius:var(--radius-lg);padding:14px 32px;font-size:16px;font-weight:700;cursor:pointer;box-shadow:4px 4px 0 #000;transition:all var(--transition-fast) var(--ease-bounce)}.canvas-modal__btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 #000}.canvas-modal__btn:disabled{opacity:.7;cursor:not-allowed}.canvas-projects-list{flex:1;overflow-y:auto;margin-bottom:16px;padding:4px}.canvas-project-item{display:flex;align-items:center;padding:16px 18px;background:var(--color-background);border:3px solid var(--color-text);border-radius:14px;margin-bottom:12px;text-decoration:none;color:inherit;transition:all .2s;box-shadow:4px 4px 0 #000}.canvas-project-item:hover{transform:translate(-3px,-3px);box-shadow:7px 7px 0 #000;background:var(--color-accent)}.canvas-project-item__info{flex:1}.canvas-project-item__name{font-weight:800;color:var(--color-text);margin-bottom:4px;font-size:16px}.canvas-project-item__date{font-size:13px;color:var(--color-text-muted);font-weight:600}.canvas-project-item__arrow{width:36px;height:36px;background:var(--color-primary);border:2px solid var(--color-text);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.canvas-project-item__arrow svg{width:18px;height:18px;stroke:var(--color-text);stroke-width:3}.reviews-list{display:flex;flex-direction:column;gap:var(--spacing-5);max-width:700px;margin:0 auto}.review-item{display:flex;gap:var(--spacing-4)}.review-item__avatar{width:48px;height:48px;border-radius:50%;background:var(--color-primary);color:var(--color-white);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0}.review-item__content{flex:1}.review-item__header{display:flex;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.review-item__name{font-weight:700;font-size:var(--font-size-sm);color:var(--color-text)}.review-item__time{font-size:var(--font-size-xs);color:var(--color-text-muted)}.review-item__text{font-size:var(--font-size-base);line-height:1.6;color:var(--color-text);margin:0 0 var(--spacing-2) 0}.review-item__text strong{color:var(--color-primary);font-weight:700}.review-item__footer{display:flex;align-items:center;gap:var(--spacing-4)}.review-item__likes{font-size:var(--font-size-xs);color:var(--color-text-muted);display:flex;align-items:center;gap:var(--spacing-1)}.review-item__likes::before{content:"";display:inline-block;width:16px;height:16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c757d' stroke-width='2'%3E%3Cpath d='M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3'/%3E%3C/svg%3E");background-size:contain}@media (max-width:768px){.reviews-list{gap:var(--spacing-4)}.review-item__avatar{width:40px;height:40px;font-size:12px}.review-item__text{font-size:var(--font-size-sm)}}@media (max-width:640px){.review-item{gap:var(--spacing-3)}.review-item__avatar{width:36px;height:36px;font-size:11px}.review-item__name{font-size:var(--font-size-xs)}.review-item__text{font-size:var(--font-size-xs);line-height:1.5}}