.spinner{display:inline-block;position:relative}.spinner--small{width:16px;height:16px}.spinner--medium{width:24px;height:24px}.spinner--large{width:40px;height:40px}.spinner__circle{display:inline-block;width:100%;height:100%;border:2px solid transparent;border-top:2px solid;border-radius:50%;animation:spin 1s linear infinite}.spinner--primary .spinner__circle{border-top-color:#007bff}.spinner--secondary .spinner__circle{border-top-color:#6c757d}.spinner--success .spinner__circle{border-top-color:#28a745}.spinner--white .spinner__circle{border-top-color:#fff}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.page-loader{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 132px);padding:2rem;background-color:var(--main-bg-color)}.page-loader__content{display:flex;flex-direction:column;align-items:center;gap:1rem}.page-loader__message{color:var(--main-text-color);font-size:1rem;margin:0;opacity:.7}.skeleton-text__line,.skeleton-image,.skeleton-button{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}.dark-mode .skeleton-text__line,.dark-mode .skeleton-image,.dark-mode .skeleton-button{background:linear-gradient(90deg,#2a2a2a 25%,#3a3a3a,#2a2a2a 75%);background-size:200% 100%}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{display:flex;flex-direction:column;gap:.5rem}.skeleton-text__line{height:1em;border-radius:4px}.skeleton-image{border-radius:8px}.skeleton-image--rounded{border-radius:50%}.skeleton-button{border-radius:8px}.article-preview-skeleton{border:1px solid #ddd;border-radius:8px;overflow:hidden;margin-bottom:20px;box-shadow:0 2px 5px #0000001a}.article-preview-skeleton__content{padding:15px;display:flex;flex-direction:column;gap:10px}.article-preview-skeleton__actions{margin-top:10px}.dark-mode .article-preview-skeleton{border-color:#444;box-shadow:0 2px 5px #0000004d}.project-preview-skeleton{border:1px solid #ddd;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.project-preview-skeleton__content{padding:15px;display:flex;flex-direction:column;gap:10px}.dark-mode .project-preview-skeleton{border-color:#444;box-shadow:0 2px 8px #0000004d}.grid-skeleton{display:grid;gap:20px;padding:20px}.inline-loader{display:inline-flex;align-items:center;gap:.5rem}.inline-loader__text{font-size:.9rem;color:var(--main-text-color);opacity:.8}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-overlay__content{display:flex;flex-direction:column;align-items:center;gap:1rem;background-color:var(--main-bg-color);padding:2rem;border-radius:12px;box-shadow:0 8px 32px #0000004d;min-width:200px}.loading-overlay__message{color:var(--main-text-color);font-size:1rem;margin:0;text-align:center}@media (max-width: 768px){.page-loader{padding:1rem}.grid-skeleton{grid-template-columns:1fr;padding:10px;gap:15px}.loading-overlay__content{margin:1rem;padding:1.5rem}}@media (prefers-reduced-motion: reduce){.spinner__circle{animation:none}.skeleton-text__line,.skeleton-image,.skeleton-button{animation:none;background:#f0f0f0}.dark-mode .skeleton-text__line,.dark-mode .skeleton-image,.dark-mode .skeleton-button{background:#2a2a2a}}@media (prefers-contrast: high){.spinner--primary .spinner__circle{border-top-color:#000}.skeleton-text__line,.skeleton-image,.skeleton-button{background:#000;opacity:.1}}.contact-container{max-width:1200px;margin:0 auto;padding:0 1rem}.contact-header-section{text-align:center;padding:4rem 0;margin-bottom:3rem}.contact-hero{margin-bottom:3rem}.contact-title{font-size:3rem;font-weight:800;color:var(--text-primary);margin-bottom:1rem;background:linear-gradient(135deg,var(--accent-color),var(--accent-color-dark));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.contact-subtitle{font-size:1.25rem;color:var(--text-secondary);line-height:1.6;max-width:600px;margin:0 auto}.contact-info-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-top:3rem}.contact-info-card{background:var(--card-background);border:1px solid var(--card-border);border-radius:12px;padding:2rem 1.5rem;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;text-align:center}.contact-info-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000026;border-color:var(--accent-color)}.contact-card-icon{font-size:2rem;color:var(--accent-color);margin-bottom:1rem}.contact-card-content h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.contact-card-content p{color:var(--text-secondary);margin-bottom:.25rem}.contact-card-detail{font-size:.875rem;color:var(--text-tertiary)}.typing-email{font-family:monospace;font-weight:600;color:var(--accent-color);border-right:2px solid var(--accent-color);padding-right:5px;animation:blink-caret .75s step-end infinite;margin-bottom:1rem}@keyframes blink-caret{0%,to{border-color:transparent}50%{border-color:var(--accent-color)}}.copy-email-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--accent-color);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .3s ease}.copy-email-button:hover:not(:disabled){background:var(--accent-color-dark);transform:translateY(-1px)}.copy-email-button:disabled{opacity:.7;cursor:not-allowed}.copied-text{color:var(--success-color, #10b981);font-size:.875rem;font-weight:500;margin-top:.5rem;animation:fadeInOut 3s ease-in-out}@keyframes fadeInOut{0%,to{opacity:0}10%,90%{opacity:1}}.contact-form-section{background:var(--card-background);border:1px solid var(--card-border);border-radius:16px;padding:3rem;margin-bottom:4rem}.form-header{text-align:center;margin-bottom:2rem}.form-header h2{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.form-header p{color:var(--text-secondary);font-size:1rem}.contact-form{max-width:800px;margin:0 auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem;font-size:.9rem}.form-icon{color:var(--accent-color);font-size:1rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--card-border);border-radius:8px;background:var(--background);color:var(--text-primary);font-size:.95rem;transition:all .2s ease;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(var(--accent-color-rgb),.1)}.form-group textarea{resize:vertical;min-height:120px;line-height:1.5}.inquiry-type-options{display:grid;gap:1rem;margin-top:.5rem}.inquiry-option{cursor:pointer;display:block}.inquiry-option input[type=radio]{display:none}.inquiry-option-content{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--background);border:2px solid var(--card-border);border-radius:8px;transition:all .2s ease}.inquiry-option:hover .inquiry-option-content{border-color:var(--accent-color);background:var(--card-hover)}.inquiry-option input[type=radio]:checked+.inquiry-option-content{border-color:var(--accent-color);background:var(--accent-light)}.inquiry-option-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--accent-light);border-radius:8px;color:var(--accent-color);font-size:1.25rem;flex-shrink:0}.inquiry-option-text{flex:1}.inquiry-option-title{display:block;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.inquiry-option-desc{display:block;font-size:.875rem;color:var(--text-secondary);line-height:1.4}.submit-button{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:1rem 2rem;background:var(--accent-color);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:1rem}.submit-button:hover:not(:disabled){background:var(--accent-color-dark);transform:translateY(-2px);box-shadow:0 8px 16px #00000026}.submit-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.submit-icon{font-size:1.125rem}.contact-fun-section{text-align:center;padding:3rem 2rem;background:linear-gradient(135deg,var(--accent-light),transparent);border-radius:16px;margin-bottom:2rem}.fun-header h2{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:1rem}.fun-header p{color:var(--text-secondary);font-size:1.125rem;margin-bottom:2rem}.game-container{display:flex;flex-direction:column;align-items:center;gap:1rem}.dino-game-canvas{border:2px solid var(--card-border);border-radius:8px;background-color:var(--background);max-width:100%;height:auto}.game-controls{display:flex;flex-direction:column;align-items:center;gap:1rem}.start-button{padding:.75rem 2rem;background:var(--accent-color);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.start-button:hover{background:var(--accent-color-dark);transform:translateY(-1px)}.score-display{text-align:center;color:var(--text-secondary)}.score-display p{margin:.25rem 0}.score-display strong{color:var(--accent-color);font-weight:700}.dark-mode .dino-game-canvas{border-color:var(--card-border);background-color:var(--background)}.dark-mode .typing-email{animation:blink-caret .75s step-end infinite}@media (max-width: 768px){.contact-title{font-size:2.5rem}.contact-subtitle{font-size:1.125rem}.contact-info-cards{grid-template-columns:1fr;gap:1rem}.contact-info-card{padding:1.5rem 1rem}.contact-form-section{padding:2rem 1.5rem}.form-row{grid-template-columns:1fr;gap:1rem}.inquiry-option-content{flex-direction:column;text-align:center;gap:.75rem}.inquiry-option-icon{width:50px;height:50px}.contact-fun-section{padding:2rem 1rem}.fun-header h2{font-size:1.75rem}}@media (max-width: 480px){.contact-container{padding:0 .5rem}.contact-header-section{padding:2rem 0}.contact-title{font-size:2rem}.contact-form-section{padding:1.5rem 1rem}.form-header h2{font-size:1.75rem}.inquiry-option-content{padding:.75rem}.submit-button{padding:1rem}}.dark-mode .score-display,.dark-mode .high-score-display{color:#fff!important}@keyframes blink-caret-dark{0%,to{border-color:transparent}50%{border-color:#fff}}.contact-header{display:flex;align-items:center;justify-content:center;position:relative}.contact-header h2{margin:0;display:flex;align-items:center}.copy-email-button{background:none;border:none;cursor:pointer;font-size:1.2rem;color:#000;transition:all .3s cubic-bezier(.4,0,.2,1);padding:12px;margin-left:10px;display:flex;align-items:center;justify-content:center;outline:none;border-radius:50%;position:relative;overflow:hidden;min-width:44px;min-height:44px}.copy-email-button:focus{outline:none;color:#007bff}.copy-email-button:hover{color:#007bff;background-color:#007bff1a;transform:scale(1.15) rotate(5deg)}.copy-email-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background-color:#007bff33;border-radius:50%;transform:translate(-50%,-50%);transition:all .3s cubic-bezier(.4,0,.2,1)}.copy-email-button:hover:before{width:100%;height:100%}.dark-mode .copy-email-button{color:#fff}.dark-mode .copy-email-button:hover{color:#4da6ff;background-color:#4da6ff1a;transform:scale(1.15) rotate(5deg)}.dark-mode .copy-email-button:focus{color:#4da6ff}.copied-text{position:absolute;left:100%;margin-left:10px;opacity:0;animation:fadeUpAndOut 3s cubic-bezier(.4,0,.2,1);font-size:.5em;background-color:#007bff1a;padding:4px 8px;border-radius:4px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@keyframes fadeUpAndOut{0%{opacity:0;transform:translateY(0) scale(.8)}10%{opacity:1;transform:translateY(0) scale(1)}90%{opacity:1;transform:translateY(-20px) scale(1)}to{opacity:0;transform:translateY(-30px) scale(.9)}}.dark-mode .copied-text{color:#fff}@media (max-width: 768px){.contact-container{padding:1rem}.dino-game-canvas{width:100%;height:auto}.contact-header h2{font-size:1.5rem}}
