:root{--color-bg: #fafafa;--color-text: #1a1a1a;--color-text-muted: #6b7280;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-glow: rgba(37, 99, 235, .15);--color-accent: #a78bfa;--color-border: #e5e7eb;--color-surface: #ffffff;--color-surface-hover: #f9fafb;--max-width: 800px;--font-sans: "Helvetica Neue", Arial, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;--mesh-1: rgba(37, 99, 235, .12);--mesh-2: rgba(139, 92, 246, .1);--mesh-3: rgba(6, 182, 212, .08)}:root.dark{--color-bg: #0f172a;--color-text: #e2e8f0;--color-text-muted: #94a3b8;--color-primary: #60a5fa;--color-primary-hover: #93bbfd;--color-primary-glow: rgba(96, 165, 250, .15);--color-accent: #c4b5fd;--color-border: #1e293b;--color-surface: #1e293b;--color-surface-hover: #334155;--mesh-1: rgba(96, 165, 250, .08);--mesh-2: rgba(139, 92, 246, .06);--mesh-3: rgba(6, 182, 212, .05)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:clamp(15px,2.5vw,16px);color:var(--color-text);background-color:var(--color-bg);line-height:1.7;-webkit-font-smoothing:antialiased;scroll-behavior:smooth;transition:background-color .3s,color .3s}body{min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden}main{flex:1;width:100%;max-width:var(--max-width);margin:0 auto;padding:2rem 1.5rem}h1,h2,h3{line-height:1.3;font-weight:700}h1{font-size:clamp(1.75rem,4vw,2.5rem);margin-bottom:1rem}h2{font-size:clamp(1.25rem,3vw,1.75rem);margin-bottom:.75rem}h3{font-size:clamp(1.1rem,2.5vw,1.35rem);margin-bottom:.5rem}p{margin-bottom:1rem}ul,ol{padding-left:1.5rem;margin-bottom:1rem}img{max-width:100%;height:auto}a{color:var(--color-primary);text-decoration:none;background-image:linear-gradient(var(--color-primary),var(--color-primary));background-size:0% 1px;background-position:left bottom;background-repeat:no-repeat;transition:background-size .3s,color .2s}a:hover{color:var(--color-primary-hover);background-size:100% 1px}@media(max-width:480px){html{font-size:15px}.tag,.date,.stat-detail,.stat-label,.stat-unit,.blog-date,.blog-desc,.cert-date,.skill-legend,.section-desc,.section-link a,.legend-item{font-size:max(.8rem,12px)}}.tag{display:inline-block;font-size:.8rem;padding:.2rem .6rem;border-radius:9999px;background-color:var(--color-primary-glow);color:var(--color-primary);transition:background-color .3s,color .3s}.date{color:var(--color-text-muted);font-size:.875rem}.card{padding:1.5rem;border:1px solid var(--color-border);border-radius:.75rem;background-color:var(--color-surface);background-image:none;transition:transform .25s,box-shadow .25s,border-color .25s,background-color .3s}.card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000014;border-color:var(--color-primary)}:root.dark .card:hover{box-shadow:0 8px 24px #0000004d}.card-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:1rem}.fade-in{opacity:0;transform:translateY(16px);animation:fadeUp .6s ease forwards}.delay-1{animation-delay:.15s}.delay-2{animation-delay:.3s}.delay-3{animation-delay:.45s}.delay-4{animation-delay:.6s}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}.scroll-top{position:fixed;bottom:1.5rem;right:1.5rem;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-muted);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .3s,transform .3s,border-color .2s,color .2s,background-color .3s;z-index:50}.scroll-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-top:hover{border-color:var(--color-primary);color:var(--color-primary)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:translateY(0)}.page-header{padding:2rem 0 1rem}.page-subtitle{color:var(--color-text-muted);font-size:1.1rem}.scroll-progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--color-primary),#8b5cf6,#06b6d4);width:0%;z-index:1000;transition:width .1s linear}.prose h1{margin-top:2.5rem}.prose h2{margin-top:2rem}.prose h3{margin-top:1.5rem}.prose h4{margin-top:1.25rem;font-size:1.1rem}.prose h5{margin-top:1rem;font-size:1rem}.prose h6{margin-top:1rem;font-size:.95rem;color:var(--color-text-muted)}.prose p{line-height:1.8}.prose strong{font-weight:700}.prose em{font-style:italic}.prose del{text-decoration:line-through;color:var(--color-text-muted)}.prose mark{background-color:#eab3084d;padding:.1em .2em;border-radius:.2em}.prose a{color:var(--color-primary)}.prose ul,.prose ol{padding-left:1.5rem;margin-bottom:1rem;line-height:1.8}.prose li{margin-bottom:.25rem}.prose li>ul,.prose li>ol{margin-top:.25rem;margin-bottom:0}.prose input[type=checkbox]{margin-right:.4rem;accent-color:var(--color-primary)}.prose code{font-size:.875em;background-color:var(--color-surface);border:1px solid var(--color-border);padding:.15em .4em;border-radius:.3em;font-family:Consolas,Monaco,Courier New,monospace}.prose pre{padding:1rem;border-radius:.75rem;overflow-x:auto;background-color:#1e293b;color:#e2e8f0;margin-bottom:1rem;font-size:.85rem;line-height:1.6}.prose pre code{background:none;border:none;padding:0;font-size:inherit;color:inherit}.prose blockquote{border-left:3px solid var(--color-accent);padding:.5rem 1rem;color:var(--color-text-muted);margin-bottom:1rem;background-color:color-mix(in srgb,var(--color-surface) 50%,transparent);border-radius:0 .5rem .5rem 0}.prose blockquote p:last-child{margin-bottom:0}.prose hr{border:none;border-top:1px solid var(--color-border);margin:2rem 0}.prose img{max-width:100%;height:auto;border-radius:.5rem;margin:1rem 0}.prose table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:.9rem}.prose thead{border-bottom:2px solid var(--color-border)}.prose th{text-align:left;padding:.6rem .75rem;font-weight:700;color:var(--color-text);background-color:var(--color-surface)}.prose td{padding:.6rem .75rem;border-bottom:1px solid var(--color-border);color:var(--color-text)}.prose tbody tr{transition:background-color .15s}.prose tbody tr:hover{background-color:var(--color-primary-glow)}.prose th:first-child,.prose td:first-child{font-weight:600}@media(max-width:600px){.prose table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.prose th:first-child,.prose td:first-child{white-space:nowrap}}.prose details{border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem 1rem;margin-bottom:1rem;background-color:var(--color-surface);transition:background-color .3s}.prose details[open]{border-color:var(--color-accent)}.prose summary{cursor:pointer;font-weight:600;list-style:none;user-select:none}.prose summary::-webkit-details-marker{display:none}.prose summary:before{content:"▶ ";font-size:.75em;color:var(--color-text-muted);transition:transform .2s;display:inline-block}.prose details[open]>summary:before{content:"▼ ";color:var(--color-accent)}.prose dl{margin-bottom:1rem}.prose dt{font-weight:700;margin-top:.75rem}.prose dd{margin-left:1.5rem;color:var(--color-text-muted)}.prose .footnotes{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--color-border);font-size:.85rem;color:var(--color-text-muted)}.prose sup a{color:var(--color-primary);font-size:.75em}.prose .mermaid,.prose [data-mermaid]{margin:1.5rem 0;text-align:center}.prose .mermaid svg,.prose [data-mermaid] svg{max-width:100%;height:auto}:root.dark .prose .mermaid svg,:root.dark .prose [data-mermaid] svg{filter:invert(.88) hue-rotate(180deg)}.prose kbd{display:inline-block;padding:.15em .4em;font-size:.85em;font-family:Consolas,monospace;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:.25em;box-shadow:0 1px 0 var(--color-border)}.hero-gradient{position:relative;overflow:hidden}.hero-gradient:before{content:"";position:absolute;inset:-50%;background:radial-gradient(ellipse at 20% 50%,var(--mesh-1) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,var(--mesh-2) 0%,transparent 50%),radial-gradient(ellipse at 60% 80%,var(--mesh-3) 0%,transparent 50%);animation:meshMove 12s ease-in-out infinite alternate;z-index:-1}@keyframes meshMove{0%{transform:translate(0) rotate(0)}to{transform:translate(30px,-20px) rotate(3deg)}}.typing{display:inline-block;border-right:2px solid var(--color-primary);animation:blink .8s step-end infinite;overflow:hidden;white-space:nowrap;animation:typing 2s steps(30) .5s forwards,blink .8s step-end infinite;width:0}.typing.done{width:auto;border-right:none;animation:none}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink{50%{border-color:transparent}}.header[data-astro-cid-3ef6ksr2]{border-bottom:1px solid var(--color-border);backdrop-filter:blur(12px);background-color:color-mix(in srgb,var(--color-surface) 85%,transparent);position:sticky;top:0;z-index:100;transition:background-color .3s,border-color .3s}.nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:.5rem;padding:0 .75rem;overflow:hidden}.nav-links[data-astro-cid-3ef6ksr2]{list-style:none;display:flex;gap:0;padding:0;margin:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1}.nav-links[data-astro-cid-3ef6ksr2]::-webkit-scrollbar{display:none}.nav-links[data-astro-cid-3ef6ksr2] li[data-astro-cid-3ef6ksr2]{flex-shrink:0}.nav-links[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{display:block;padding:.85rem .75rem;color:var(--color-text-muted);font-size:.8rem;background-image:none;white-space:nowrap;position:relative;transition:color .2s}.nav-links[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:after{content:"";position:absolute;bottom:0;left:.75rem;right:.75rem;height:2px;background-color:var(--color-primary);transform:scaleX(0);transition:transform .25s}.nav-links[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover:after,.nav-links[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active:after{transform:scaleX(1)}.nav-links[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover,.nav-links[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{color:var(--color-primary)}.header-actions[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.lang-switcher[data-astro-cid-3ef6ksr2]{display:flex;gap:.2rem;border:1px solid var(--color-border);border-radius:9999px;padding:.15rem;background-color:transparent}.lang-link[data-astro-cid-3ef6ksr2]{display:inline-block;padding:.25rem .6rem;font-size:.72rem;font-weight:600;color:var(--color-text-muted);background-image:none;border-radius:9999px;white-space:nowrap;transition:color .2s,background-color .2s}.lang-link[data-astro-cid-3ef6ksr2]:hover{color:var(--color-primary)}.lang-link[data-astro-cid-3ef6ksr2].active{color:var(--color-surface);background-color:var(--color-primary)}.dark .lang-link[data-astro-cid-3ef6ksr2].active{color:#0f172a}.theme-toggle[data-astro-cid-3ef6ksr2]{flex-shrink:0;background:none;border:1px solid var(--color-border);border-radius:50%;width:2rem;height:2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--color-text-muted);transition:border-color .2s,color .2s,transform .3s}.theme-toggle[data-astro-cid-3ef6ksr2]:hover{border-color:var(--color-primary);color:var(--color-primary);transform:rotate(30deg)}.icon-moon[data-astro-cid-3ef6ksr2],.dark .icon-sun[data-astro-cid-3ef6ksr2]{display:none}.dark .icon-moon[data-astro-cid-3ef6ksr2]{display:inline}.footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--color-border);padding:1.5rem;text-align:center;color:var(--color-text-muted);font-size:.8rem;transition:border-color .3s,color .3s}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
