@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap);.step-guide-grid,.tag-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.nav-links a,.post-card-content h3,body{color:var(--text-dark)}.prompt-text,.prompt-title{font-family:Menlo,Consolas,monospace}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;margin:0}.container{max-width:1200px;margin:0 auto;padding:0 20px}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .8s ease-out,transform .8s ease-out}.nav-links a::after,.step-number{left:50%;transform:translateX(-50%)}.fade-in.visible,.global-speech-control.visible{opacity:1;transform:translateY(0)}.site-header{background:rgba(255,255,255,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:15px 0;position:fixed;width:100%;top:0;z-index:999;box-shadow:0 2px 20px var(--shadow-light);transition:.3s}.nav-links a,.step-card{position:relative;transition:.3s}.site-header.scrolled{box-shadow:0 5px 25px var(--shadow-dark)}.site-header nav{display:flex;justify-content:space-between;align-items:center}.step-card,.tag-card{flex-direction:column;text-align:center}.logo img{height:40px;width:auto;display:block}.nav-links{display:flex;list-style:none;gap:30px;margin:0;padding:0}.nav-links a{text-decoration:none;font-weight:500;padding-bottom:5px}.nav-links a.nav-active,.nav-links a:hover{color:var(--primary-color-start)}.nav-links a::after{content:"";position:absolute;width:0;height:2px;bottom:0;background:linear-gradient(45deg,var(--primary-color-start),var(--primary-color-end));transition:width .3s}.nav-links a.nav-active::after,.nav-links a:hover::after{width:100%}.mobile-nav-toggle{display:none;background:0 0;border:none;cursor:pointer;z-index:10002}.mobile-nav-toggle .fa-bars,.mobile-nav-toggle .fa-times{font-size:28px;color:var(--text-dark)}.mobile-nav-toggle .fa-times,.portfolio-item.placeholder-item{display:none}.step-guide-grid{display:grid;gap:60px 30px;margin-top:80px}.step-card{background-color:var(--bg-white);border-radius:15px;padding:50px 30px 30px;box-shadow:0 15px 35px var(--shadow-light);display:flex;justify-content:space-between}.skill-card:hover,.step-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px var(--shadow-dark)}.step-number{position:absolute;top:-25px;background:linear-gradient(135deg,var(--primary-color-start),var(--primary-color-end));color:#fff;padding:10px 20px;border-radius:50px;font-size:1rem;font-weight:700;box-shadow:0 5px 15px rgba(0,0,0,.15)}.post-card-link,.tag-card{text-decoration:none;color:inherit}.theme-tags{background-color:#f8f9fa}.tag-grid{display:grid;gap:25px}.tag-card{background-color:#fff;border-radius:12px;padding:30px;border:1px solid #e9ecef;transition:transform .3s,box-shadow .3s;display:flex;align-items:center;justify-content:center}.tag-card:hover{transform:translateY(-5px);box-shadow:0 12px 20px rgba(0,0,0,.08)}.tag-icon{font-size:3rem;margin-bottom:15px;line-height:1}.tag-icon .fas{font-size:2.8rem;color:var(--primary-color-start)}.latest-posts{background-color:var(--bg-light)}.post-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px}.post-card-link{display:block}.post-card{background:var(--bg-white);border-radius:15px;overflow:hidden;box-shadow:0 10px 30px var(--shadow-light);transition:.4s cubic-bezier(.175, .885, .32, 1.275);height:100%}#site-footer a,.view-more-button{transition:.3s;text-decoration:none}.post-card:hover{transform:translateY(-10px);box-shadow:0 20px 40px var(--shadow-dark)}.portfolio-image,.post-card-image{width:100%;padding-top:56.25%;position:relative;overflow:hidden}.portfolio-image img,.post-card-image img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .4s}.post-card:hover .post-card-image img{transform:scale(1.08)}.post-card-content{padding:20px 25px}.post-card-category,.post-card-date{font-size:.85rem;color:var(--text-light);margin-bottom:8px}.post-card-content h3{font-size:1.1rem;font-weight:600;line-height:1.6;margin:0;text-decoration:none;transition:color .3s}.post-card-link:hover .post-card-content h3{color:var(--primary-color-start);text-decoration:underline}.view-more-button-wrapper{text-align:center;margin-top:60px}.view-more-button{display:inline-block;padding:12px 30px;border:2px solid var(--primary-color-start);color:var(--primary-color-start);border-radius:50px;font-weight:600}.view-more-button:hover{background-color:var(--primary-color-start);color:#fff;transform:translateY(-2px);box-shadow:0 5px 15px rgba(0,0,0,.1)}#site-footer{background:#2c3e50;color:#fff;text-align:center;padding:40px 20px}#site-footer .container{display:flex;flex-direction:column;align-items:center;gap:25px}.footer-social-links{display:flex;justify-content:center;align-items:center;gap:30px;flex-wrap:wrap}#site-footer a{color:rgba(255,255,255,.8);font-size:1rem;font-weight:500;display:flex;align-items:center;gap:8px}#site-footer a:hover{color:#fff;transform:translateY(-2px)}#site-footer .copyright,.footer-credit p{color:rgba(255,255,255,.6);font-size:.9rem;margin:0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;margin-top:2rem;padding:1.5rem;background-color:#f9f9f9;border-radius:12px}.contact-button{display:block;max-width:280px;margin:1rem auto;padding:1rem;border-radius:8px;text-decoration:none;color:#fff;font-weight:700;transition:transform .3s,box-shadow .3s;box-shadow:0 4px 6px rgba(0,0,0,.1)}.contact-button:hover{transform:translateY(-3px);box-shadow:0 6px 12px rgba(0,0,0,.15)}.contact-button.email{background-color:#ba59fb}.contact-button.line{background-color:#06c755}.contact-qr img{max-width:180px;width:100%;border:5px solid #fff;border-radius:8px;box-shadow:0 4px 10px rgba(0,0,0,.1)}.contact-email-text{margin-top:1rem;font-size:.95rem;color:#555;word-break:break-all;background-color:#f0f0f0;padding:.5rem 1rem;border-radius:6px;display:inline-block}.speech-button{background:0 0;border:1px solid #ddd;color:var(--text-light);width:28px;height:28px;border-radius:50%;cursor:pointer;margin-left:8px;display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;transition:.2s}.speech-button:hover{background-color:var(--primary-color-start);color:#fff;border-color:var(--primary-color-start)}.speaking{background-color:transparent;background-image:linear-gradient(to top,rgba(255,255,0,.4) 50%,transparent 50%);background-size:100% 100%;background-repeat:no-repeat;transition:background-position .5s ease-out;background-position:0 100%}.hero .speaking{background-image:linear-gradient(to top,rgba(255,255,255,.4) 50%,transparent 50%)}.global-speech-control{position:fixed;bottom:20px;right:20px;z-index:1000;background-color:rgba(44,62,80,.9);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border-radius:50px;padding:10px;box-shadow:0 4px 15px rgba(0,0,0,.2);display:flex;align-items:center;transition:opacity .3s,transform .3s;opacity:0;transform:translateY(20px)}.contact-email,.cta-button,.history-panel{backdrop-filter:blur(10px)}.global-speech-control.hidden{opacity:0;transform:translateY(20px);pointer-events:none}#global-speech-stop-btn{background-color:#e74c3c;color:#fff;border:none;width:40px;height:40px;border-radius:50%;font-size:16px;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:background-color .2s}#global-speech-stop-btn:hover{background-color:#c0392b}.floating-ai-button{position:fixed;right:25px;width:90px;height:90px;background-image:url("/portfolio/hakase/img/ogp-hakase.webp");background-size:cover;background-position:center;border-radius:50%;border:2px solid #fff;text-decoration:none;box-shadow:0 8px 20px rgba(0,0,0,.2);z-index:1000;transition:.3s;bottom:95px}.floating-ai-button:hover{transform:translateY(-5px) scale(1.05);box-shadow:0 12px 25px rgba(0,0,0,.25)}@keyframes slideInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;padding:80px 20px;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--primary-color-start) 0,var(--primary-color-end) 100%);z-index:1}.hero h1,.hero-content{z-index:2;position:relative}.hero-content{display:flex;flex-direction:column;align-items:center;gap:25px;max-width:800px}.hero h1{font-size:clamp(2.5rem, 5vw, 3.5rem);margin-bottom:20px;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.3);animation:1s ease-out slideInUp}.hero-subtitle{font-size:clamp(1.1rem, 3vw, 1.4rem);margin-bottom:40px;opacity:.9;animation:1s ease-out .3s both slideInUp}.hero-cta-buttons{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%;animation:1s ease-out .6s both slideInUp}.secondary-cta-group{display:flex;flex-wrap:wrap;justify-content:center;gap:20px}.cta-button{margin:0;animation:none;padding:15px 40px;font-size:1rem;display:inline-block;background:rgba(255,255,255,.2);color:#fff;text-decoration:none;border-radius:50px;font-weight:600;border:2px solid rgba(255,255,255,.3);transition:.3s}.contact-email:hover,.cta-button:hover{background:rgba(255,255,255,.3);transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,0,0,.2)}.cta-button.secondary-cta{padding:12px 28px;font-size:.95rem;background:0 0;border:2px solid rgba(255,255,255,.8);color:rgba(255,255,255,.9)}.cta-button.secondary-cta:hover{background:rgba(255,255,255,.1);color:#fff}.section{padding:100px 0}.section-title{text-align:center;font-size:2.5rem;margin-bottom:60px;background:linear-gradient(45deg,var(--primary-color-start),var(--primary-color-end));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}.about,.about-card{background:var(--bg-white)}.highlight{color:var(--primary-color-start);font-weight:600}.about-card{display:grid;grid-template-columns:1fr;gap:30px;align-items:start;padding:30px;border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.1)}@media (min-width:992px){.about-card{grid-template-columns:1fr 1.5fr;gap:50px;padding:50px}}.about-card-left,.ai-hakase-cta .cta-button-wrapper,.button-wrapper{text-align:center}.profile-image{width:100%;max-width:250px;height:250px;border-radius:50%;object-fit:cover;margin:0 auto 25px;box-shadow:0 10px 30px rgba(0,0,0,.15)}.course-card,.portfolio-card,.skill-card{box-shadow:0 15px 35px var(--shadow-light)}.about-card-right{font-size:1.1rem;line-height:1.8}.skills{background:var(--bg-light)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px}.skill-card{background:var(--bg-white);padding:40px 30px;border-radius:20px;text-align:center;transition:.3s}.skill-icon{width:80px;height:80px;background:linear-gradient(135deg,var(--primary-color-start),var(--primary-color-end));border-radius:50%;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:2.5rem}.contact{background:linear-gradient(135deg,var(--primary-color-start) 0,var(--primary-color-end) 100%);color:#fff;text-align:center}.contact .section-title{color:#fff;background:0 0;-webkit-text-fill-color:white}.contact .container{display:flex;flex-direction:column;align-items:center}.contact-info p{font-size:1.1rem;margin-bottom:10px;opacity:.9}.contact-email{display:inline-flex;align-items:center;gap:10px;padding:15px 30px;background:rgba(255,255,255,.2);color:#fff;text-decoration:none;border-radius:50px;font-size:1.2rem;font-weight:500;border:2px solid rgba(255,255,255,.3);transition:.3s}.contact-grid strong{color:#be7f00}.page-header{padding:80px 20px;text-align:center;background:linear-gradient(to right,#6a11cb 0,#2575fc 100%);color:#fff;margin-top:70px;margin-bottom:24px}.page-header h1{font-size:clamp(2.5rem, 5vw, 3.5rem);margin:0 0 10px;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.2);color:#fff!important;background:padding-box initial;-webkit-background-clip:initial;-webkit-text-fill-color:initial}.page-header p{font-size:clamp(1rem, 2.5vw, 1.2rem);opacity:.9;margin:0;color:#fff!important}.portfolio-intro,.section .container>p{text-align:center;font-size:1.1rem;color:var(--text-light);max-width:700px;margin:0 auto 50px;line-height:1.8}.portfolio-categories{display:flex;justify-content:center;gap:15px;margin-bottom:50px;flex-wrap:wrap}.category-btn{padding:10px 25px;border:2px solid var(--primary-color-start);background:0 0;color:var(--primary-color-start);border-radius:50px;cursor:pointer;transition:.3s;font-weight:600}.category-btn:hover{background:var(--primary-color-start);color:#fff;transform:translateY(-2px)}.ai-hakase-cta .category-btn:hover,.category-btn.active{background:var(--primary-color-start);color:#fff;border-color:var(--primary-color-start)}.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:40px;align-items:stretch}.course-card,.portfolio-card{background:var(--bg-white);border-radius:20px;overflow:hidden;transition:.4s cubic-bezier(.175, .885, .32, 1.275);display:flex;flex-direction:column;height:100%}.course-card:hover,.portfolio-card:hover{transform:translateY(-8px);box-shadow:0 25px 45px var(--shadow-dark)}.portfolio-card:hover .portfolio-image img{transform:scale(1.05)}.course-content,.portfolio-content{padding:25px 30px;display:flex;flex-direction:column;flex-grow:1}.course-content h3,.portfolio-content h3{font-size:1.3rem;margin:0 0 10px;color:var(--text-dark);line-height:1.4}.course-content p,.portfolio-content p{font-size:1rem;line-height:1.7;color:var(--text-light);margin:0 0 25px;flex-grow:1}.course-links,.portfolio-links{margin-top:auto}.course-action-btn,.gallery-toggle-btn,.portfolio-action-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(45deg,var(--primary-color-start),var(--primary-color-end));color:#fff;text-decoration:none;border-radius:50px;font-weight:600;border:none;cursor:pointer;transition:.3s}.article-content .caption,.article-meta,.tag{color:var(--text-light)}.course-action-btn:hover,.gallery-toggle-btn:hover,.portfolio-action-btn:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.2)}.portfolio-tags{margin-top:20px;display:flex;flex-wrap:wrap;gap:8px}.tag{background-color:var(--bg-light);padding:5px 12px;border-radius:15px;font-size:.8rem;font-weight:500}.thumbnail-gallery-wrapper{max-height:0;overflow:hidden;transition:.5s;padding:0 25px;background:#f9f9f9;border-top:1px solid #eee}.copy-btn,.thumbnail-img{transition:.2s;cursor:pointer}.thumbnail-gallery-wrapper.open{max-height:500px;padding:20px 25px;margin-top:20px}.thumbnail-gallery{display:flex;gap:10px;overflow-x:auto}.thumbnail-img{width:80px;height:80px;object-fit:cover;border-radius:8px}.thumbnail-img:hover{transform:scale(1.05);box-shadow:0 4px 15px rgba(0,0,0,.2)}.article-page{background-color:#f8f9fa;padding-top:70px}.article-main{padding:60px 20px}.article-container{max-width:800px;margin:0 auto;background:#fff;padding:40px;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.05)}.article-eyecatch{margin-bottom:30px;border-radius:8px;overflow:hidden}.article-eyecatch img{width:100%;height:auto;display:block}.article-header h1{font-size:2.2rem;line-height:1.5;margin-bottom:20px;font-weight:700}.article-meta{margin-bottom:40px;border-bottom:1px solid #e2e8f0;padding-bottom:20px;text-align:right}.article-content h2{font-size:1.8rem;margin-top:50px;margin-bottom:20px;border-bottom:2px solid var(--primary-color-start);padding-bottom:10px}.article-content p{font-size:1.1rem;line-height:2.2;margin-bottom:30px}.article-content .article-image{width:100%;max-width:100%;height:auto;margin:20px 0;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);display:block}.article-content .caption{font-size:.9rem;text-align:center;margin-top:-15px;margin-bottom:30px;display:block}.ai-hakase-cta .cta-button,.article-container .back-link,.table-of-contents a{display:inline-block;text-decoration:none}.article-content table{width:100%;margin:30px 0;border-collapse:collapse;border:1px solid #e0e0e0;font-size:.95rem;box-shadow:0 2px 8px rgba(0,0,0,.05)}.article-content pre,.article-content td code{font-family:Consolas,Menlo,monospace;font-size:.9em}.article-content td,.article-content th{border:1px solid #e0e0e0;padding:12px 15px;text-align:left;vertical-align:top}.article-content thead th{background-color:#f5f7fa;font-weight:600;color:var(--text-dark)}.article-content tbody tr:nth-child(2n){background-color:#fdfdfd}.article-content tbody tr:hover{background-color:#f0f4ff}.article-content td code{background-color:#eef2f7;padding:3px 8px;border-radius:4px}.article-content pre{background-color:#f5f7fa;border:1px solid #e0e0e0;padding:20px;border-radius:8px;white-space:pre-wrap;word-wrap:break-word;line-height:1.6;margin:20px 0}.article-footer{margin-top:60px;padding-top:30px;background-color:#fff;border:none;text-align:left}.comment-section h2{border-bottom:2px solid var(--primary-color-start)}.article-container .back-link{margin-top:40px;color:var(--primary-color-start);font-weight:700;font-size:1.1em;background-color:#fff;padding:12px 28px;border-radius:50px;border:1px solid #e0e0e0;transition:.3s}.article-container .back-link:hover{background-color:#f5f5f5;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.prompt-page .article-header{border-bottom:1px solid #e2e8f0;padding-bottom:20px;margin-bottom:40px}.prompt-page .article-header p{font-size:1rem;line-height:1.8;color:var(--text-light)}.prompt-list{display:flex;flex-direction:column;gap:40px}.prompt-card{background-color:#2d3748;color:#e2e8f0;border:none;border-radius:12px;padding:0 30px 20px}.copy-btn,.prompt-text{border:none;font-size:.9rem}.prompt-box,.prompt-text{margin:0;padding:0}.prompt-header{display:flex;justify-content:space-between;align-items:center;gap:15px}.prompt-title{margin:0;font-size:1.2rem;color:#cbd5e0}.prompt-text{line-height:1.7;white-space:pre-wrap;word-break:break-all;color:inherit;background-color:transparent}.copy-btn{background-color:#4a5568;color:#fff;padding:8px 16px;border-radius:6px;font-weight:600;display:flex;align-items:center;gap:8px;flex-shrink:0}.copy-btn:hover{background-color:#718096}.copy-btn.copied{background-color:#48bb78;color:#fff}.prompt-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.prompt-header-text{flex-grow:1}.prompt-header .prompt-title{margin-bottom:8px}.prompt-header .prompt-description{font-size:.9rem;color:#cbd5e0;margin:0;line-height:1.5}.prompt-header .copy-btn{flex-shrink:0;margin-top:20px}.prompt-section-heading{font-size:1.6rem;font-weight:700;margin-top:60px;margin-bottom:25px;padding-left:15px;border-left:6px solid var(--primary-color-start);color:var(--text-dark)}.prompt-evaluation-table{width:100%;border-collapse:collapse;margin-bottom:30px;font-size:1rem;border:1px solid #e9ecef}.prompt-evaluation-table td,.prompt-evaluation-table th{padding:15px;text-align:left;border-bottom:1px solid #e9ecef}.prompt-evaluation-table th{width:35%;background-color:#f8f9fa;font-weight:600}.prompt-evaluation-table td{width:65%}.star-rating{font-size:1.2rem;letter-spacing:3px}.star-rating .filled{color:#ffc107}.star-rating .empty{color:#ced4da}.recommendation-box{background-color:#e3f2fd;border:1px solid #bbdefb;border-radius:8px;padding:25px 30px;margin-bottom:30px}.recommendation-box ul,.table-of-contents ul{list-style:none;padding:0;margin:0}.recommendation-box li{font-size:1rem;font-weight:500;padding-left:30px;position:relative;color:#1e88e5}.recommendation-box li+li,.table-of-contents li+li{margin-top:15px}.recommendation-box li::before{content:'\f058';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:2px;color:#43a047;font-size:1.1rem}.prompt-comment p{font-size:1rem;line-height:2;color:var(--text-light)}.novel-main{background-color:#fdfaf4;padding:60px 20px}.novel-container{max-width:800px;margin:0 auto;background-color:#fff;padding:50px 60px;border-radius:8px;box-shadow:0 4px 15px rgba(0,0,0,.05);font-family:'Noto Serif JP',serif;color:#333}.novel-title{font-size:2.5rem;font-weight:700;text-align:center;margin-bottom:50px;padding-bottom:20px;border-bottom:1px solid #eee}.chapter-title{font-size:1.8rem;font-weight:700;margin-top:60px;margin-bottom:30px;padding-left:20px;border-left:4px solid #8d6e63;color:#5d4037}.dialogue,.novel-text{font-size:1.1rem;line-height:2.2;letter-spacing:.08em}.novel-text{text-indent:1em;margin-bottom:1.5em}.dialogue{margin:1.5em 0 1.5em 1em;text-indent:0}.table-of-contents{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;padding:25px 30px;margin:40px 0}.lesson-nav,.related-posts{border-top:1px solid #e2e8f0}.table-of-contents h3{font-size:1.2rem;font-weight:700;margin:0 0 20px;padding-bottom:15px;border-bottom:2px solid #e9ecef;color:var(--text-dark)}.table-of-contents li{font-size:1.05rem}.table-of-contents a{color:var(--primary-color-start);font-weight:500;transition:color .3s;position:relative;padding-left:25px}.table-of-contents a::before{content:'\f105';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:1px;transition:transform .3s}.table-of-contents a:hover{color:var(--primary-color-end);text-decoration:underline}.ai-hakase-cta .cta-content h3,.course-step-title,.related-posts-title{font-weight:700;color:var(--text-dark)}.table-of-contents a:hover::before{transform:translateX(4px)}@media (max-width:480px){.prompt-header{flex-direction:column;align-items:flex-start}.prompt-card{padding:0 20px 20px}.copy-btn{margin-top:15px;width:100%;justify-content:center}}.portfolio-content.simple-card-content{color:#333;padding:20px;text-align:center;flex-grow:0}.ai-hakase-cta .cta-button,.ai-hakase-cta .cta-icon,.lesson-nav .nav-link{color:var(--primary-color-start);color:var(--primary-color-start)}.portfolio-content.simple-card-content h3{font-size:1.1rem;margin:5px 0 0}.lesson-content .prompt-list:last-of-type,.portfolio-content.simple-card-content .post-card-category{margin-bottom:0}.lesson-nav{display:flex;justify-content:space-between;align-items:center;margin:30px 0;padding:15px 0;border-bottom:1px solid #e2e8f0}.lesson-nav .nav-link{text-decoration:none;font-weight:600;padding:8px 12px;border-radius:8px;transition:background-color .3s}.lesson-nav .nav-link:hover{background-color:#f0f4ff;text-decoration:underline}.lesson-nav .nav-link.disabled{color:#a0aec0;pointer-events:none}.course-step-title{font-size:1.8rem;margin-top:60px;margin-bottom:30px;padding-left:15px;border-left:6px solid var(--primary-color-start)}.course-step-title:first-of-type{margin-top:0}.portfolio-grid.step-grid-3,.portfolio-grid.step-grid-5{grid-template-columns:repeat(3,1fr)}.portfolio-grid.step-grid-4{grid-template-columns:repeat(2,1fr)}@media (max-width:992px){.portfolio-grid.step-grid-3,.portfolio-grid.step-grid-5{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}}.ai-hakase-cta .cta-icon{flex-shrink:0}.ai-hakase-cta .cta-button{border:2px solid var(--primary-color-start)}.ai-hakase-cta,.message{align-items:center}.related-posts{margin-top:60px;padding-top:40px}.related-posts-title{font-size:1.8rem;text-align:center;margin-bottom:40px}.ai-hakase-cta{margin:60px 0 30px;display:flex}.ai-hakase-cta .cta-icon{flex-shrink:0}.ai-hakase-cta .cta-icon img{width:80px;height:80px;border-radius:50%;object-fit:cover;box-shadow:0 4px 12px rgba(0,0,0,.1)}.ai-hakase-cta .cta-content h3{margin:0 0 10px}.ai-hakase-cta .cta-content p{margin:0 0 20px;color:var(--text-light)}.ai-hakase-cta .cta-button{padding:10px 25px;border:2px solid var(--primary-color-start);color:var(--primary-color-start);background-color:transparent;border-radius:50px;font-weight:600;transition:.3s}.ai-message .bubble,.chat-header h1,.history-header h2,.history-list,.user-message .bubble{color:var(--text-dark)}.ai-hakase-cta .cta-button:hover{background-color:var(--primary-color-start);color:#fff;transform:translateY(-2px)}@media (max-width:768px){.mobile-nav-toggle,.mobile-nav-toggle.active .fa-times,.nav-links a{display:block}.site-header nav{padding:0 20px}.nav-links{position:fixed;top:70px;left:0;width:100%;height:calc(100vh - 70px);background:rgba(255,255,255,.98);flex-direction:column;align-items:center;justify-content:center;gap:0;transform:translateX(100%);transition:transform .3s ease-in-out;z-index:9998}.nav-links.active{transform:translateX(0)}.nav-links li{width:100%;text-align:center}.nav-links a{font-size:1.5rem;padding:15px 0;width:100%}.floating-ai-button,.mobile-nav-toggle.active .fa-bars{display:none}.contact-grid{grid-template-columns:1fr}.nav-hakase-link{color:var(--primary-color-start);font-weight:700;background-color:rgba(106,17,203,.05);border-radius:8px;border:1px solid rgba(106,17,203,.1)}.portfolio-grid.step-grid-4{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.ai-hakase-cta{flex-direction:column;text-align:center;padding:25px}.ai-hakase-cta .cta-icon{margin-bottom:15px}}:root{--primary-color-start:#6a11cb;--primary-color-end:#2575fc;--text-dark:#333;--text-light:#666;--bg-white:#ffffff;--bg-light:#f8f9fa;--shadow-light:rgba(0, 0, 0, 0.05);--shadow-dark:rgba(0, 0, 0, 0.1);--counselor-bg:#f8f9fa;--panel-bg:rgba(255, 255, 255, 0.9);--window-bg:rgba(240, 244, 248, 0.95);--ai-bubble-bg:#eef2ff;--user-bubble-bg:#ffffff;--border-color:rgba(226, 232, 240, 0.7);--text-dark:#333;--text-light:#666;--primary-color:#6a11cb;--primary-color-start:#6a11cb;--primary-color-end:#2575fc}.counselor-main{padding-top:70px;height:100vh;display:flex;background:linear-gradient(135deg,var(--primary-color-start) 0,var(--primary-color-end) 100%);overflow:hidden}.chat-window,.history-panel{background-color:var(--panel-bg);box-shadow:0 8px 32px 0 rgba(0,0,0,.1);display:flex}.counselor-container{display:flex;width:100%;height:calc(100vh - 70px);max-width:1200px;margin:0 auto;padding:20px;gap:20px}.history-panel{flex-direction:column;width:280px;border-radius:12px;-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);overflow:hidden}.history-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid var(--border-color);flex-shrink:0}.history-header h2{font-size:1.1rem;font-weight:600;margin:0}#new-chat-btn{background:0 0;border:none;cursor:pointer;font-size:1.2rem;color:var(--text-light);transition:color .2s}#send-btn,.history-item,.lesson-content .copy-button{transition:background-color .2s}#new-chat-btn:hover{color:var(--primary-color)}.history-list{list-style:none;padding:10px;margin:0;overflow-y:auto;flex-grow:1}.chat-window{flex-direction:column;flex-grow:1;border-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);overflow:hidden}.chat-header{padding:15px 20px;border-bottom:1px solid var(--border-color);text-align:center;flex-shrink:0}.chat-header h1{font-size:1.2rem;font-weight:600;margin:0}.chat-log{flex-grow:1;padding:20px;overflow-y:auto;background-color:var(--window-bg)}.chat-input-area{display:flex;align-items:flex-end;padding:15px;border-top:1px solid var(--border-color);gap:10px;flex-shrink:0;background-color:var(--panel-bg)}#user-input{flex-grow:1;border:1px solid var(--border-color);border-radius:20px;padding:10px 15px;font-size:1rem;resize:none;max-height:150px;font-family:inherit;background-color:#fff}#send-btn,.delete-btn{flex-shrink:0;cursor:pointer}#user-input:focus{outline:0;border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(106,17,203,.2)}#send-btn{width:44px;height:44px;border-radius:50%;border:none;background-color:var(--primary-color);color:#fff;font-size:1.1rem}#send-btn:hover{background-color:#5a0fb1}@media (max-width:800px){.counselor-container{flex-direction:column;padding:10px;gap:10px;height:calc(100vh - 70px - 20px)}.history-panel{width:100%;height:200px}}.message{display:flex;align-items:flex-start;gap:15px;max-width:90%;margin-bottom:20px}.message .icon{width:40px;height:40px;border-radius:50%;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.5rem;flex-shrink:0;box-shadow:0 2px 4px rgba(0,0,0,.1)}.message .bubble{padding:12px 18px;border-radius:18px;line-height:1.6;word-break:break-word}.ai-message{justify-content:flex-start}.ai-message .bubble{background-color:var(--ai-bubble-bg);border-top-left-radius:4px}.user-message{margin-left:auto;flex-direction:row-reverse}.user-message .bubble{background-color:var(--user-bubble-bg);border-top-right-radius:4px}.history-item{padding:12px 15px;cursor:pointer;border-radius:8px;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;justify-content:space-between;align-items:center;gap:10px}.history-item:hover{background-color:#f0f4f8}.history-item.active{background-color:var(--ai-bubble-bg);font-weight:600;color:var(--primary-color)}.delete-btn{background:0 0;border:none;color:#aaa;font-size:.9rem;padding:5px;line-height:1;border-radius:50%;transition:color .2s,background-color .2s}.delete-btn:hover{color:#dc3545;background-color:#fbebee}.voice-play-btn{background:0 0;border:1px solid var(--border-color);color:var(--text-light);width:32px;height:32px;border-radius:50%;cursor:pointer;margin-left:10px;flex-shrink:0;display:flex;justify-content:center;align-items:center;transition:.2s}.voice-play-btn:hover{background-color:var(--ai-bubble-bg);color:var(--primary-color)}.message .icon img{width:40px;height:40px;object-fit:cover;border-radius:50%}.lesson-content{font-family:"Noto Sans JP",sans-serif;line-height:1.8;color:#333;background-color:#fff;padding:30px 40px;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.05);margin:40px 0}.lesson-content h1,.lesson-content h2,.lesson-content h3{font-weight:700;color:#1a237e;border-bottom:2px solid #c5cae9;padding-bottom:10px;margin-top:40px;margin-bottom:20px}.lesson-content h1{font-size:2em;text-align:center;border-bottom-width:3px;border-color:#3f51b5}.lesson-content h2{font-size:1.8em;margin-top:60px}.lesson-content h3{font-size:1.5em;border-bottom-style:dotted;margin-top:20px}.lesson-content blockquote h4{font-size:1.1em;color:#303f9f;border-bottom:1px dotted #7986cb;padding-bottom:5px;margin-top:1.5em}.lesson-content p{margin-bottom:1.2em}.lesson-content ol,.lesson-content ul{padding-left:20px;margin:1.5em 0}.lesson-content ol{list-style-type:decimal}.lesson-content li{margin-bottom:.8em}.lesson-content b,.lesson-content strong{color:#d81b60}.lesson-content blockquote{background-color:#f5f5f5;border-left:5px solid #ccc;padding:15px;margin:20px 0;border-radius:5px}.lesson-content .point-解説{background:#e3f2fd;border:1px solid #90caf9;padding:15px;margin:20px 0;border-radius:5px}.lesson-content .point-解説::before{content:"【ポイント解説】";font-weight:700;display:block;margin-bottom:10px;color:#1565c0}.lesson-content table{width:100%;border-collapse:collapse;margin:25px 0;font-size:.9em}.lesson-content td,.lesson-content th{border:1px solid #ddd;padding:12px;text-align:left}.lesson-content th{background-color:#3f51b5;color:#fff;font-weight:700}.lesson-content tbody tr:nth-child(2n){background-color:#f2f2f2}.lesson-content .prompt-block{position:relative;background-color:#263238;color:#eceff1;border-radius:8px;font-family:"Courier New",Courier,monospace;padding:50px 20px 20px}.lesson-content .prompt-block pre{margin:0;padding:0;white-space:pre-wrap;word-wrap:break-word}.lesson-content .copy-button{position:absolute;top:15px;right:15px;background-color:#455a64;color:#fff;border:none;padding:4px 8px;border-radius:5px;cursor:pointer;font-size:14px}.lesson-content .copy-button:hover{background-color:#607d8b}.lesson-content .section-divider{border:0;height:1px;background:#ddd;margin:60px auto}.feedback-section h3{border-bottom-color:#e0e0e0}.next-lesson-section{text-align:center;padding:40px 20px;background-color:#f5f7fa;margin:60px -40px -30px;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.next-lesson-section h2{color:#3f51b5;border-color:#7986cb}.nav-button-next{display:inline-flex;align-items:center;justify-content:center;padding:15px 40px;background-color:#3f51b5;color:#fff;text-decoration:none;font-weight:700;font-size:1.1em;border-radius:50px;box-shadow:0 4px 15px rgba(0,0,0,.1);transition:.3s;margin-top:20px}.nav-button-next:hover{background-color:#303f9f;box-shadow:0 6px 20px rgba(0,0,0,.15);transform:translateY(-3px)}.nav-button-next i{margin-left:10px;transition:transform .3s}.nav-button-next:hover i{transform:translateX(5px)}.lesson-content .prompt-list{margin-bottom:25px}.ai-hakase-cta img,.lesson-content img{height:auto;display:block;margin:35px auto}.lesson-content img{max-width:100%;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.ai-hakase-cta{display:flex;align-items:center;background-color:#f5f7fa;border:1px solid #e0e0e0;border-radius:8px;padding:25px 30px;margin-top:60px;gap:25px}.ai-hakase-cta img{max-width:100px;border-radius:50%}.ai-hakase-cta .cta-icon{font-size:50px;color:#3f51b5;background-color:#fff;border-radius:50%;width:90px;height:90px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.06)}.ai-hakase-cta .cta-content h3{margin-top:0;margin-bottom:8px;font-size:1.3em;color:#1a237e;border:none;padding-bottom:0}.ai-hakase-cta .cta-content p{margin-bottom:15px;font-size:.95em;line-height:1.7}.ai-hakase-cta .category-btn{display:inline-block;padding:10px 25px;border:2px solid var(--primary-color-start);background:0 0;color:var(--primary-color-start);border-radius:50px;cursor:pointer;transition:.3s;font-weight:600}.comment-section{max-width:900px;margin:40px auto;padding:30px 40px;background-color:#f5f7fa;border-radius:8px}.comment-section h2{font-size:1.8em;text-align:center;color:#3f51b5;border-bottom:2px solid #c5cae9;padding-bottom:15px;margin-bottom:30px}@media screen and (max-width:768px){.lesson-content{padding:20px 15px;margin:20px 0}.lesson-content h1{font-size:1.8em}.lesson-content h2{font-size:1.5em;margin-top:50px}.lesson-content h3{font-size:1.3em}.lesson-content .prompt-block,.lesson-content table{font-size:.8em}.next-lesson-section{margin:40px -15px -20px;padding:30px 15px}.ai-hakase-cta{flex-direction:column;text-align:center;padding:20px;gap:15px}.comment-section{padding:20px 15px}}
/* ===== フッタースタイル ===== */
.site-footer {
    background-color: #343a40; /* 濃いグレーの背景 */
    color: #adb5bd; /* 少し明るいグレーの文字色 */
    padding: 60px 0 20px 0;
    font-size: 0.9rem;
}

.footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 4%;
}

/* --- フッターメイン (3カラム) --- */
.footer-main {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    padding-bottom: 40px;
    margin-bottom: 30px;
    border-bottom: 1px solid #495057; /* セクションの区切り線 */
}

.footer-section {
    flex: 1;
}

.footer-section h4 {
    color: #ffffff;
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 20px;
}

/* 1. サイトについて */
.footer-about {
    text-align: center; /* これで中のテキストやインライン要素が中央に寄る */
    display: flex; /* flexboxを使うことで、img要素も中央に寄せやすくする */
    flex-direction: column; /* 要素を縦方向に並べる */
    align-items: center; /* これでflexアイテム（imgなど）が中央に寄る */
}

.footer-about .footer-logo img {
    width: 100px; /* ロゴのサイズ調整 */
    margin-bottom: 15px;
    /* display: block; を追加すると、より安定して中央寄せできる場合がある */
}
.footer-about .site-description {
    line-height: 1.7;
    margin-bottom: 15px;
}
.footer-about .about-me-link {
    color: #ffffff;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.3s;
}
.footer-about .about-me-link:hover {
    color: #87CEEB; /* ホバー時の色 */
}

/* 2,3. ナビゲーションリスト */
.footer-nav ul,
.footer-support ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.footer-nav li,
.footer-support li {
    margin-bottom: 12px;
}
.footer-nav a,
.footer-support a {
    color: #adb5bd;
    text-decoration: none;
    transition: color 0.3s;
}
.footer-nav a:hover,
.footer-support a:hover {
    color: #ffffff;
}

/* --- フッターボトム --- */
.footer-bottom {
    max-width: 1200px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap; /* スマホ表示で改行させるため */
    gap: 20px;
}

.social-links a {
    color: #adb5bd;
    font-size: 1.5rem;
    margin-right: 20px;
    transition: color 0.3s, transform 0.3s;
}
.social-links a:hover {
    color: #ffffff;
    transform: translateY(-2px);
}
.social-links a:last-child {
    margin-right: 0;
}

.copyright {
    font-size: 0.8rem;
}

/* --- レスポンシブ対応 --- */
@media (max-width: 768px) {
    .footer-main {
        flex-direction: column; /* スマホではカラムを縦積みに */
    }
    .footer-bottom {
        flex-direction: column; /* SNSとコピーライトも縦積みに */
        align-items: center;
        text-align: center;
    }
    .social-links {
        margin-bottom: 20px;
    }
}
.footer-credit {
    text-align: center; /* これでテキストが中央に寄るよ */
    margin: 40px 0; /* 上下の余白を調整して、見やすくするの */
    color: #adb5bd; /* 文字色を少し調整 */
    font-size: 0.85rem; /* 少しだけ文字を小さくして、すっきりと */
    line-height: 1.8; /* 行間を少し広げる */
}