@import "https://fonts.googleapis.com/css2?family=Inconsolata&family=Noto+Sans+JP:wght@100..900&display=swap";
:root{--bg-color:#f5f5f5;--text-color:#2a2a2a;--heading-color:#1a1a1a;--secondary-text:#6a6a6a;--link-color:#4a4a4a;--link-hover:#000;--border-color:silver;--border-hover:gray;--bg-hover:#e0e0e0;--card-bg:#fff;--tag-bg:#e0e0e0;--tag-hover:#d0d0d0;--credit-bg:rgba(255,255,255,.7);--credit-text:#999;--credit-hover:#666;--shadow:rgba(0,0,0,.1)}@view-transition{navigation:auto}[data-theme=dark]{--bg-color:#1a1a1a;--text-color:#e0e0e0;--heading-color:#fff;--secondary-text:#b0b0b0;--link-color:silver;--link-hover:#fff;--border-color:#404040;--border-hover:#606060;--bg-hover:#2a2a2a;--card-bg:#252525;--tag-bg:#3a3a3a;--tag-hover:#4a4a4a;--credit-bg:rgba(30,30,30,.7);--credit-text:gray;--credit-hover:#a0a0a0;--shadow:rgba(0,0,0,.3)}*{box-sizing:border-box;margin:0;padding:0}body{font-optical-sizing:auto;background-color:var(--bg-color);color:var(--text-color);justify-content:center;align-items:center;min-height:100vh;padding:20px;font-family:Inconsolata,Noto Sans JP,monospace;font-style:normal;transition:background-color .3s,color .3s;display:flex;position:relative}body:before{content:"";opacity:.1;pointer-events:none;z-index:-1;background-image:url(/bunkyo_outline.svg);background-position:50%;background-repeat:no-repeat;background-size:50%;width:100%;height:100%;transition:filter .3s;position:fixed;top:0;left:0}[data-theme=dark] body:before{filter:invert()}.theme-toggle{border:2px solid var(--border-color);background-color:var(--card-bg);cursor:pointer;z-index:1000;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;padding:0;transition:all .3s;display:flex;position:fixed;top:20px;right:20px}.theme-toggle:hover{border-color:var(--border-hover);transform:scale(1.05)}.theme-icon{width:24px;height:24px;color:var(--text-color);transition:color .3s}.light-icon{display:block}.dark-icon,[data-theme=dark] .light-icon{display:none}[data-theme=dark] .dark-icon{display:block}.container{text-align:center;width:100%;max-width:800px}.header{justify-content:center;align-items:center;gap:30px;margin-bottom:40px;display:flex}.logo{content:url(/bw_logo_touka.png);max-width:150px;height:auto}[data-theme=dark] .logo{content:url(/bw_logo_touka_white.png)}.team-name{color:var(--heading-color);font-size:2.5rem;font-weight:700}.catchphrase{color:var(--secondary-text);margin-top:10px;font-size:1.2rem}.hashtags{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:12px;margin-top:12px;display:flex}.hashtag{color:#1da1f2;opacity:.9;vertical-align:baseline;font-size:.9rem;line-height:1;transition:all .3s}.hashtag:hover{opacity:1;color:#0c85d0}[data-theme=dark] .hashtag{color:#1da1f2}[data-theme=dark] .hashtag:hover{color:#57b9f5}.nav-links{justify-content:center;gap:30px;margin-bottom:50px;display:flex}.nav-links a{color:var(--text-color);border:1px solid var(--border-color);border-radius:5px;padding:10px 20px;font-size:1.2rem;text-decoration:none;transition:all .3s}.nav-links a:hover{background-color:var(--bg-hover);border-color:var(--border-hover);color:var(--link-hover)}.social-links{justify-content:center;gap:25px;margin-top:30px;margin-bottom:60px;display:flex}.social-links a{color:var(--link-color);font-size:1rem;text-decoration:none;transition:color .3s}.social-links a:hover{color:var(--link-hover)}.back-link{margin-bottom:30px}.back-link a{color:var(--link-color);font-size:1rem;text-decoration:none;transition:color .3s}.back-link a:hover{color:var(--link-hover)}.content{margin-top:30px}.content h2{color:var(--heading-color);margin-bottom:30px;font-size:2rem}.sponsors-list{flex-direction:column;align-items:center;gap:30px;display:flex}.sponsor-item{border:1px solid var(--border-color);background-color:var(--card-bg);border-radius:10px;width:100%;max-width:600px;padding:20px;transition:all .3s}.sponsor-item:hover{border-color:var(--border-hover);box-shadow:0 2px 8px var(--shadow)}.sponsor-name{color:var(--heading-color);margin-bottom:10px;font-size:1.5rem;font-weight:700}.sponsor-description{color:var(--link-color);font-size:1rem;line-height:1.6}.sponsor-link{color:var(--link-color);margin-top:10px;text-decoration:none;transition:color .3s;display:inline-block}.sponsor-link:hover{color:var(--link-hover)}.members-list{flex-direction:column;align-items:center;gap:25px;display:flex}.member-item{border:1px solid var(--border-color);background-color:var(--card-bg);text-align:left;border-radius:10px;gap:20px;width:100%;max-width:600px;padding:20px;transition:all .3s;display:flex}.member-item:hover{border-color:var(--border-hover);box-shadow:0 2px 8px var(--shadow)}.member-icon{object-fit:cover;border-radius:50%;flex-shrink:0;width:100px;height:100px}.member-info{flex-direction:column;flex-grow:1;gap:10px;display:flex}.member-name{color:var(--heading-color);font-size:1.5rem;font-weight:700}.member-profile{color:var(--text-color);margin:0;font-size:.95rem;line-height:1.6}.member-categories{flex-wrap:wrap;gap:8px;display:flex}.category-tag{background-color:var(--tag-bg);color:var(--text-color);border:1px solid transparent;border-radius:15px;padding:4px 12px;font-size:.9rem;transition:all .3s}.category-tag:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.1)}.category-tag.leader{color:#b8860b;background-color:rgba(255,215,0,.5);border-color:gold}[data-theme=dark] .category-tag.leader{color:gold;background-color:rgba(255,215,0,.25)}.category-tag.web{color:#1e40af;background-color:rgba(59,130,246,.5);border-color:#3b82f6}[data-theme=dark] .category-tag.web{color:#60a5fa;background-color:rgba(59,130,246,.25)}.category-tag.pwn{color:#b91c1c;background-color:rgba(239,68,68,.5);border-color:#ef4444}[data-theme=dark] .category-tag.pwn{color:#f87171;background-color:rgba(239,68,68,.25)}.category-tag.crypto{color:#b45309;background-color:rgba(245,158,11,.5);border-color:#f59e0b}[data-theme=dark] .category-tag.crypto{color:#fbbf24;background-color:rgba(245,158,11,.25)}.category-tag.reverse,.category-tag.rev{color:#c2410c;background-color:rgba(249,115,22,.5);border-color:#f97316}[data-theme=dark] .category-tag.reverse,[data-theme=dark] .category-tag.rev{color:#fb923c;background-color:rgba(249,115,22,.25)}.category-tag.misc{color:#374151;background-color:rgba(107,114,128,.5);border-color:#6b7280}[data-theme=dark] .category-tag.misc{color:#9ca3af;background-color:rgba(107,114,128,.25)}.category-tag.forensics,.category-tag.osint,.category-tag.hardware,.category-tag.blockchain,.category-tag.other{background-color:var(--tag-bg);color:var(--secondary-text)}.category-tag.forensics:hover,.category-tag.osint:hover,.category-tag.hardware:hover,.category-tag.blockchain:hover,.category-tag.other:hover{background-color:var(--tag-hover)}.member-links{gap:15px;display:flex}.member-links a{color:var(--link-color);font-size:.95rem;text-decoration:none;transition:color .3s}.member-links a:hover{color:var(--link-hover)}.osm-credit{color:var(--credit-text);background-color:var(--credit-bg);z-index:1000;border-radius:3px;padding:5px 10px;font-size:.85rem;position:fixed;bottom:10px;right:10px}.osm-credit a{color:var(--credit-text);text-decoration:none}.osm-credit a:hover{color:var(--credit-hover);text-decoration:underline}.year-section{margin-bottom:40px}.year-heading{color:var(--heading-color);text-align:center;margin-bottom:20px;font-size:1.8rem;font-weight:700}.ctftime-ranking{flex-wrap:wrap;justify-content:center;gap:30px;margin-bottom:25px;display:flex}.ranking-item{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;align-items:center;min-width:200px;padding:15px 25px;display:flex}.ranking-label{color:var(--secondary-text);margin-bottom:8px;font-size:.85rem}.ranking-value{color:#1da1f2;font-size:1.8rem;font-weight:900}.achievements-list{flex-direction:column;align-items:center;gap:15px;display:flex}.achievement-item{border:1px solid var(--border-color);background-color:var(--card-bg);text-align:left;border-radius:10px;grid-template-columns:80px 1fr;align-items:center;gap:20px;width:100%;max-width:650px;padding:18px;transition:all .3s;display:grid}.achievement-item:hover{border-color:var(--border-hover);box-shadow:0 4px 12px var(--shadow);transform:translateY(-2px)}.achievement-item.top-rank{border-width:2px}.achievement-item.rank-1{background:linear-gradient(135deg,var(--card-bg)0%,rgba(255,215,0,.08) 100%);border-color:gold}.achievement-item.rank-2{background:linear-gradient(135deg,var(--card-bg)0%,rgba(192,192,192,.08) 100%);border-color:silver}.achievement-item.rank-3{background:linear-gradient(135deg,var(--card-bg)0%,rgba(205,127,50,.08) 100%);border-color:#cd7f32}.achievement-rank{color:var(--heading-color);text-align:center;font-size:1.8rem;font-weight:900;line-height:1}.achievement-item.rank-1 .achievement-rank{color:gold}.achievement-item.rank-2 .achievement-rank{color:silver}.achievement-item.rank-3 .achievement-rank{color:#cd7f32}.achievement-content{flex-direction:column;gap:8px;display:flex}.achievement-name{color:var(--heading-color);font-size:1.2rem;font-weight:700;line-height:1.3}.achievement-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.achievement-type{border-radius:12px;padding:4px 12px;font-size:.85rem;font-weight:500}.achievement-type.quals{color:var(--heading-color);background-color:rgba(135,206,235,.5)}.achievement-type.finals{color:var(--heading-color);background-color:rgba(255,99,71,.5)}.achievement-type.online,.achievement-type.onsite{background-color:var(--tag-bg);color:var(--text-color)}.achievement-location{color:var(--secondary-text);align-items:center;gap:8px;font-size:.9rem;display:flex}.achievement-location .fi{font-size:1.2em}.achievement-upcoming{opacity:.85;border-style:dashed}.achievement-upcoming .achievement-rank{color:var(--secondary-text);font-weight:700}.achievement-note{color:var(--secondary-text);margin-top:10px;font-size:.9rem;font-style:italic;line-height:1.4}.message-container{align-items:flex-start;gap:40px;margin-top:30px;display:flex}.leader-photo{text-align:center;flex-shrink:0;align-self:flex-start;position:-webkit-sticky;position:sticky;top:100px}.leader-image{object-fit:cover;border:3px solid var(--border-color);border-radius:5px;width:200px;height:250px;margin-bottom:15px}.leader-title{color:var(--secondary-text);margin-bottom:5px;font-size:.9rem}.leader-name{color:var(--heading-color);font-size:1.1rem;font-weight:700}.message-content{flex:1;line-height:1.9}.message-paragraph{color:var(--text-color);text-align:justify;margin-bottom:20px}.message-signature{text-align:right;margin-top:40px}.signature-date{color:var(--secondary-text);margin-bottom:10px;font-size:.95rem}.signature-title{color:var(--text-color);margin-bottom:5px;font-size:.95rem}.signature-name{color:var(--heading-color);font-size:1.1rem;font-weight:700}.language-divider{background:linear-gradient(to right,transparent,var(--border-color),transparent);width:80%;height:2px;margin:60px auto}@media (max-width:768px){body:before{background-size:80%}.message-container{flex-direction:column;align-items:center}.leader-photo{position:static}.leader-image{width:150px;height:187px}.message-signature{text-align:center}.language-divider{margin:40px auto}.header{flex-direction:column;gap:20px}.team-name{font-size:2rem}.nav-links{flex-direction:column;gap:15px}.social-links{flex-wrap:wrap}.member-item{text-align:center;flex-direction:column;align-items:center}.member-info{align-items:center}}.blog-container{max-width:900px;margin:30px auto}.blog-coming-soon{background-color:var(--card-bg);border:2px dashed var(--border-color);text-align:center;border-radius:10px;margin-bottom:40px;padding:60px 40px}.blog-coming-soon h2{color:var(--heading-color);margin-bottom:20px;font-size:2rem}.blog-coming-soon p{color:var(--text-color);margin-bottom:10px;font-size:1.1rem;line-height:1.8}.blog-coming-soon p:last-child{margin-bottom:0}.blog-post{background-color:var(--card-bg);border:1px solid var(--border-color);text-align:left;box-shadow:0 2px 8px var(--shadow);border-radius:10px;margin-bottom:40px;padding:40px}.blog-post:last-child{margin-bottom:0}.post-header{border-bottom:2px solid var(--border-color);margin-bottom:30px;padding-bottom:20px}.post-title{color:var(--heading-color);margin-bottom:15px;font-size:2rem;font-weight:700;line-height:1.4}.post-meta{color:var(--secondary-text);flex-wrap:wrap;align-items:center;gap:20px;font-size:.95rem;display:flex}.post-date,.post-author{color:var(--secondary-text)}.post-category{border-radius:12px;padding:4px 12px;font-size:.85rem}.post-content{color:var(--text-color);line-height:1.8}.post-content h3{color:var(--heading-color);margin-top:30px;margin-bottom:15px;font-size:1.5rem;font-weight:700}.post-content p{margin-bottom:15px}.post-content ul,.post-content ol{margin-bottom:15px;margin-left:25px}.post-content li{margin-bottom:8px}.post-content pre{border:1px solid var(--border-color);background-color:#0d1117;border-radius:8px;margin:20px 0;padding:20px;font-size:.9rem;line-height:1.6;overflow-x:auto}[data-theme=dark] .post-content pre{border-color:var(--border-hover);background-color:#0d1117}.post-content code{font-family:Inconsolata,monospace;font-size:.9em}.post-content pre code{color:#c9d1d9;background:0 0;border-radius:0;padding:0}.post-content p code,.post-content li code{background-color:var(--tag-bg);color:var(--heading-color);border-radius:3px;padding:2px 6px;font-size:.9em}.post-content strong{color:var(--heading-color);font-weight:700}.post-tags{border-top:1px solid var(--border-color);flex-wrap:wrap;gap:10px;margin-top:30px;padding-top:20px;display:flex}.tag{background-color:var(--tag-bg);color:var(--text-color);border-radius:15px;padding:6px 14px;font-size:.85rem;transition:all .3s}.tag:hover{background-color:var(--tag-hover);transform:translateY(-1px)}.nav-links a.active{background-color:var(--bg-hover);border-color:var(--border-hover);font-weight:700}@media (max-width:768px){.blog-post{padding:25px}.post-title{font-size:1.5rem}.post-content h3{font-size:1.3rem}.post-content pre{padding:15px;font-size:.85rem}}
