:root{--bg-body: #f8fafc;--bg-surface: #ffffff;--bg-elevated: #ffffff;--bg-hero-orb: rgba(37,99,235,0.10);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--text-on-accent: #ffffff;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: rgba(37,99,235,0.08);--accent-border: rgba(37,99,235,0.18);--cyan: #06b6d4;--border: rgba(15,23,42,0.08);--shadow-sm: 0 1px 2px rgba(15,23,42,0.04);--shadow-md: 0 4px 12px rgba(15,23,42,0.06);--shadow-lg: 0 12px 40px rgba(15,23,42,0.10);--radius-sm: 10px;--radius-md: 18px;--radius-lg: 28px;--motion-duration: 0.6s;--motion-ease: cubic-bezier(0.22,1,0.36,1);--resistance-offset: 0px;--resistance-parallax: 0px;--resistance-progress: 0;--page-transition-progress: 0;}[data-animations="off"],[data-animations="reduced"]{--motion-duration: 0.001s;}@media (prefers-reduced-motion: reduce){:root:not([data-animations="on"]){--motion-duration: 0.001s;}}*{box-sizing: border-box;margin: 0;padding: 0;}html{scroll-behavior: smooth;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;}html.snap-active{scroll-behavior: auto;overscroll-behavior-y: contain;}html.resistance-active{overscroll-behavior-y: contain;}.return-progress{position: fixed;top: 1.35rem;left: 50%;z-index: 200;width: 92px;height: 3px;overflow: hidden;border-radius: 999px;background: rgba(37,99,235,0.12);opacity: calc(var(--resistance-progress) * 0.9);transform: translate3d(-50%,calc((1 - var(--resistance-progress)) * -10px),0);pointer-events: none;will-change: transform,opacity;}.return-progress span{display: block;width: 100%;height: 100%;border-radius: inherit;background: linear-gradient(90deg,var(--accent),var(--cyan));transform: scaleX(var(--resistance-progress));transform-origin: left center;will-change: transform;}body{font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;background: var(--bg-body);color: var(--text-primary);line-height: 1.65;overflow-x: hidden;}body.page-home{height: 100vh;height: 100svh;overflow: hidden;}body.page-details{min-height: 100vh;overflow-y: auto;background:
radial-gradient(circle at 82% 4%,rgba(37,99,235,0.09),transparent 34%),linear-gradient(180deg,#eef7ff 0%,#e9f1fa 58%,#eef5fb 100%);}a{color: var(--accent);text-decoration: none;transition: color 0.2s ease;}a:hover{color: var(--accent-hover);}img{max-width: 100%;display: block;}.page-transition{position: fixed;inset: 0;z-index: 9999;pointer-events: none;overflow: hidden;background:
radial-gradient(circle at 18% 24%,rgba(255,255,255,0.72) 0 7%,transparent 22%),radial-gradient(circle at 78% 68%,rgba(125,211,252,0.34) 0 10%,transparent 30%),radial-gradient(circle at 52% 42%,rgba(186,230,253,0.42) 0 18%,transparent 48%),rgba(224,242,254,0.94);opacity: 0;}.page-transition.is-active{pointer-events: auto;opacity: 1;animation: page-fade-in 360ms ease forwards;}@keyframes page-fade-in{from{opacity: 0;}to{opacity: 1;}}[data-animations="off"] .page-transition.is-active,[data-animations="reduced"] .page-transition.is-active{animation-duration: 180ms;}.section-transition{position: fixed;inset: -6% -10%;z-index: 9997;pointer-events: none;overflow: hidden;opacity: 0.98;background: linear-gradient(128deg,#eaf8ff 0%,#c8ecff 48%,#8fd2f4 100%);transform: translate3d(0,calc((1 - var(--page-transition-progress)) * 112%),0) skewY(-1.5deg) scale(1.03);will-change: transform,opacity;}.light-curtain-edge{position: absolute;inset: 0 0 auto;height: 2px;background: rgba(255,255,255,0.92);opacity: 0.9;}.light-curtain-glow{position: absolute;inset: 0;background: linear-gradient(112deg,transparent 18%,rgba(255,255,255,0.28) 48%,transparent 75%);opacity: 0.5;transform: translate3d(-10%,0,0);will-change: transform,opacity;}.transition-resetting .section-transition{transition: transform 180ms var(--motion-ease),opacity 180ms var(--motion-ease);}.transition-committing .section-transition,.details-leaving .section-transition{--page-transition-progress: 1;pointer-events: auto;transition: transform 400ms ease-out,opacity 400ms ease-out;}.transition-committing .light-curtain-glow,.details-leaving .light-curtain-glow{transform: translate3d(10%,0,0);opacity: 0.28;transition: transform 400ms ease-out,opacity 400ms ease-out;}.transition-committing .hero,.details-leaving .dashboard{opacity: 0.86;transform: scale(0.985);transition: transform 400ms ease-out,opacity 400ms ease-out;}.details-preload .section-transition{--page-transition-progress: 1;pointer-events: auto;transform: translate3d(0,0,0) skewY(-1.5deg) scale(1.03);}.details-preload .dashboard,.details-entering .dashboard{opacity: 0;transform: translate3d(0,14px,0);}.details-entering .section-transition{--page-transition-progress: 1;pointer-events: auto;animation: details-curtain-out 460ms ease-in-out forwards;}.details-entering .dashboard{animation: details-content-in 460ms ease-out forwards;}@keyframes details-curtain-out{from{transform: translate3d(0,0,0) skewY(-1.5deg) scale(1.03);opacity: 0.98;}to{transform: translate3d(0,-112%,0) skewY(-1.5deg) scale(1.03);opacity: 0.92;}}@keyframes details-content-in{from{transform: translate3d(0,14px,0);opacity: 0;}to{transform: translate3d(0,0,0);opacity: 1;}}.transition-progress{position: fixed;left: 50%;bottom: 1.25rem;z-index: 9996;width: min(320px,calc(100vw - 3rem));color: var(--text-muted);font-size: 0.7rem;letter-spacing: 0.12em;text-align: center;opacity: calc(0.35 + var(--page-transition-progress) * 0.65);transform: translate3d(-50%,0,0);}.transition-progress i{display: block;height: 3px;margin-top: 0.5rem;overflow: hidden;border-radius: 999px;background: rgba(37,99,235,0.12);}.transition-progress i::after{content: "";display: block;width: 100%;height: 100%;border-radius: inherit;background: linear-gradient(90deg,var(--accent),var(--cyan));transform: scaleX(var(--page-transition-progress));transform-origin: left center;will-change: transform;}[data-animations="off"] .transition-committing .section-transition,[data-animations="off"] .details-leaving .section-transition,[data-animations="reduced"] .transition-committing .section-transition,[data-animations="reduced"] .details-leaving .section-transition{transition-duration: 180ms;}[data-animations="off"] .details-entering .section-transition,[data-animations="off"] .details-entering .dashboard,[data-animations="reduced"] .details-entering .section-transition,[data-animations="reduced"] .details-entering .dashboard{animation-duration: 180ms;}.details-back{position: fixed;top: 1.25rem;z-index: 100;display: inline-flex;left: max(1.5rem,calc((100vw - 1120px) / 2));padding: 0.55rem 1rem;border: 1px solid var(--accent-border);border-radius: 999px;background: rgba(255,255,255,0.96);box-shadow: var(--shadow-md);font-size: 0.82rem;}.anim-toggle{position: fixed;top: 1.25rem;right: 1.25rem;z-index: 100;display: flex;align-items: center;gap: 0.5rem;padding: 0.45rem 0.85rem;background: var(--bg-surface);border: 1px solid var(--border);border-radius: 999px;box-shadow: var(--shadow-md);font-size: 0.78rem;color: var(--text-secondary);cursor: pointer;user-select: none;transition: transform 0.2s ease,box-shadow 0.2s ease;}.anim-toggle:hover{transform: translateY(-1px);box-shadow: var(--shadow-lg);}.anim-toggle input{appearance: none;width: 2.2rem;height: 1.2rem;background: var(--border);border-radius: 999px;position: relative;cursor: pointer;transition: background 0.2s ease;}.anim-toggle input::after{content: "";position: absolute;top: 0.14rem;left: 0.14rem;width: 0.92rem;height: 0.92rem;background: white;border-radius: 50%;box-shadow: var(--shadow-sm);transition: transform 0.2s ease;}.anim-toggle input:checked{background: var(--accent);}.anim-toggle input:checked::after{transform: translateX(1rem);}.noise{position: fixed;inset: 0;pointer-events: none;z-index: 9998;opacity: 0.035;background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}.hero{min-height: 100vh;height: 100vh;min-height: 100svh;height: 100svh;display: grid;grid-template-columns: 1fr 1fr;align-items: center;position: relative;padding: 4rem 6vw;overflow: hidden;transform: translate3d(0,calc(var(--resistance-parallax) * -1),0);will-change: transform;}.hero::before,.hero::after{content: "";position: absolute;pointer-events: none;}.hero::before{inset: 0;opacity: 0.5;background-image:
linear-gradient(rgba(37,99,235,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,0.04) 1px,transparent 1px);background-size: 64px 64px;mask-image: radial-gradient(ellipse at 30% 50%,black 0%,transparent 70%);-webkit-mask-image: radial-gradient(ellipse at 30% 50%,black 0%,transparent 70%);}.hero::after{width: min(80vw,900px);height: min(80vw,900px);background: radial-gradient(circle at 40% 40%,rgba(37,99,235,0.12) 0%,rgba(6,182,212,0.06) 35%,transparent 65%);border-radius: 50%;top: 45%;left: 55%;transform: translate(-50%,-50%);animation: breathe 10s ease-in-out infinite;will-change: transform,opacity;}[data-animations="off"] .hero::after,[data-animations="reduced"] .hero::after{animation: none;}@keyframes breathe{0%,100%{transform: translate(-50%,-50%) scale(1);opacity: 0.8;}50%{transform: translate(-50%,-50%) scale(1.12);opacity: 1;}}.hero-content{position: relative;z-index: 1;padding-right: 4vw;transform: translate3d(0,clamp(-72px,-7vh,-58px),0);}.hero-welcome{font-size: 0.95rem;color: var(--text-secondary);letter-spacing: 0.28em;text-transform: uppercase;margin-bottom: 1.4rem;opacity: 0;transform: translateY(18px);animation: fade-up 0.8s var(--motion-ease) 0.15s forwards;}.hero-name{font-size: clamp(4rem,12vw,9rem);font-weight: 800;letter-spacing: -0.025em;line-height: 0.9;opacity: 0;transform: translateY(28px);animation: fade-up 0.95s var(--motion-ease) 0.3s forwards;}.hero-name span{display: block;background: linear-gradient(135deg,var(--text-primary) 0%,var(--accent) 100%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;background-clip: text;}.hero-side{position: relative;z-index: 1;align-self: center;justify-self: start;padding-left: 4vw;border-left: 1px solid var(--border);transform: translate3d(0,clamp(-72px,-7vh,-58px),0);}.hero-tagline{font-size: 1.25rem;color: var(--text-secondary);min-height: 2em;opacity: 0;animation: fade-in 0.85s var(--motion-ease) 0.65s forwards;}.hero-tagline .cursor{display: inline-block;width: 2px;height: 1.1em;background: var(--accent);margin-left: 3px;vertical-align: middle;animation: blink 1s step-end infinite;}[data-animations="off"] .hero-tagline .cursor,[data-animations="reduced"] .hero-tagline .cursor{animation: none;opacity: 0;}@keyframes blink{50%{opacity: 0;}}@keyframes fade-up{to{opacity: 1;transform: translateY(0);}}@keyframes fade-in{to{opacity: 1;}}.hero-intro{margin-top: 1.8rem;font-size: 1.05rem;color: var(--text-muted);max-width: 340px;line-height: 1.75;opacity: 0;animation: fade-up 0.85s var(--motion-ease) 0.85s forwards;}.scroll-hint{position: absolute;bottom: 2.5rem;left: 6vw;font-size: 0.78rem;color: var(--text-muted);letter-spacing: 0.12em;opacity: 0;animation: fade-in 0.8s var(--motion-ease) 1.3s forwards,float 2.2s ease-in-out 1.3s infinite;}@keyframes float{0%,100%{transform: translateY(0);}50%{transform: translateY(7px);}}.info{min-height: 100vh;padding: 5rem 1.5rem 7rem;background: linear-gradient(180deg,var(--bg-body) 0%,#eef2f7 100%);}.container{max-width: 1120px;margin: 0 auto;}.section-label{font-size: 0.8rem;letter-spacing: 0.2em;text-transform: uppercase;color: var(--text-muted);margin-bottom: 2.2rem;}.bento{display: grid;grid-template-columns: repeat(12,1fr);gap: 1.1rem;}.card{background: var(--bg-surface);border: 1px solid var(--border);border-radius: var(--radius-md);padding: 1.5rem;box-shadow: var(--shadow-sm);transition: transform 0.25s var(--motion-ease),box-shadow 0.25s var(--motion-ease);opacity: 0;transform: translateY(20px);}.card.is-visible{opacity: 1;transform: translateY(0);transition: opacity 0.6s var(--motion-ease),transform 0.6s var(--motion-ease),box-shadow 0.25s var(--motion-ease);}.card:hover{transform: translateY(-4px);box-shadow: var(--shadow-lg);}[data-animations="off"] .card,[data-animations="reduced"] .card{opacity: 1;transform: none;}.card h3{font-size: 0.82rem;letter-spacing: 0.1em;text-transform: uppercase;color: var(--text-muted);margin-bottom: 1rem;font-weight: 600;}.span-8{grid-column: span 8;}.span-4{grid-column: span 4;}.span-6{grid-column: span 6;}.span-5{grid-column: span 5;}.span-7{grid-column: span 7;}.span-12{grid-column: span 12;}.about-text{font-size: 1.18rem;line-height: 1.8;color: var(--text-primary);}.status-dot{display: inline-block;width: 8px;height: 8px;background: #22c55e;border-radius: 50%;margin-right: 0.4rem;box-shadow: 0 0 0 3px rgba(34,197,94,0.15);}.status-text{font-size: 1.05rem;font-weight: 500;}.status-meta{font-size: 0.9rem;color: var(--text-muted);margin-top: 0.5rem;}.skills{display: flex;flex-wrap: wrap;gap: 0.6rem;}.skill-tag{font-size: 0.85rem;padding: 0.38rem 0.85rem;border-radius: 999px;background: var(--accent-soft);color: var(--accent);border: 1px solid var(--accent-border);transition: transform 0.15s ease,background 0.15s ease;}.skill-tag:hover{transform: scale(1.05);background: rgba(37,99,235,0.14);}.links{display: flex;flex-wrap: wrap;gap: 0.75rem;}.link-pill{font-size: 0.92rem;padding: 0.45rem 1rem;border-radius: 999px;border: 1px solid var(--border);color: var(--text-secondary);transition: border-color 0.2s ease,color 0.2s ease,transform 0.2s ease;}.link-pill:hover{border-color: var(--accent-border);color: var(--accent);transform: translateY(-1px);}.now-text{font-size: 1.05rem;color: var(--text-primary);}.project{display: flex;gap: 1rem;align-items: flex-start;padding: 0.85rem 0;border-bottom: 1px solid var(--border);transition: transform 0.2s ease;}.project:last-child{border-bottom: none;}.project:hover{transform: translateX(4px);}.project-thumb{width: 48px;height: 48px;border-radius: var(--radius-sm);background: linear-gradient(135deg,var(--accent),var(--cyan));flex-shrink: 0;}.project-title{font-weight: 600;font-size: 1.05rem;}.project-desc{font-size: 0.92rem;color: var(--text-secondary);}.article{display: flex;justify-content: space-between;align-items: baseline;padding: 0.65rem 0;border-bottom: 1px solid var(--border);transition: transform 0.2s ease;}.article:last-child{border-bottom: none;}.article:hover{transform: translateX(4px);}.article-title{font-size: 1rem;color: var(--text-primary);transition: color 0.2s ease;}.article:hover .article-title{color: var(--accent);}.article-date{font-size: 0.82rem;color: var(--text-muted);white-space: nowrap;margin-left: 1rem;}.article-page{min-height: 100vh;padding: 6rem 1.5rem 5rem;background: var(--bg-body);}.article-page .container{max-width: 720px;}.back-link{display: inline-flex;align-items: center;gap: 0.4rem;font-size: 0.85rem;color: var(--text-muted);margin-bottom: 2rem;transition: color 0.2s ease,transform 0.2s ease;}.back-link:hover{color: var(--accent);transform: translateX(-3px);}.article-header h1{font-size: clamp(1.8rem,5vw,2.8rem);line-height: 1.25;letter-spacing: -0.02em;margin-bottom: 0.8rem;}.article-meta{font-size: 0.85rem;color: var(--text-muted);margin-bottom: 2.5rem;}.article-body{font-size: 1.05rem;line-height: 1.85;color: var(--text-primary);}.article-body h2{font-size: 1.4rem;margin: 2.2rem 0 1rem;letter-spacing: -0.01em;}.article-body p{margin-bottom: 1.25rem;}.article-body a{text-decoration: underline;text-underline-offset: 3px;}.article-body code{font-family: "SF Mono",Monaco,"Cascadia Code",Consolas,monospace;font-size: 0.88em;background: rgba(15,23,42,0.06);padding: 0.15rem 0.4rem;border-radius: 5px;}.wave-divider{position: relative;height: clamp(190px,24vh,280px);margin-top: -2px;background: var(--bg-body);overflow: hidden;}.wave-svg{position: absolute;bottom: 0;left: 0;width: 100%;height: 100%;}.wave-path{fill: #eef2f7;}.w1{opacity: 0.5;animation: wave-move 8s ease-in-out infinite;transform-origin: center bottom;}.w2{opacity: 0.65;animation: wave-move 6s ease-in-out infinite reverse;}.w3{opacity: 1;animation: wave-move 10s ease-in-out infinite;}@keyframes wave-move{0%,100%{transform: scaleX(1) translateX(0);}50%{transform: scaleX(1.04) translateX(-1%);}}[data-animations="off"] .w1,[data-animations="off"] .w2,[data-animations="off"] .w3,[data-animations="reduced"] .w1,[data-animations="reduced"] .w2,[data-animations="reduced"] .w3{animation: none;}.resistance-active .wave-svg{transform: translate3d(0,calc(var(--resistance-parallax) * 0.35),0) scaleY(calc(1 + var(--resistance-progress) * 0.08));transform-origin: center bottom;will-change: transform;}.resistance-resetting .hero,.resistance-resetting .dashboard,.resistance-resetting .wave-svg,.resistance-resetting .return-progress,.resistance-resetting .return-progress span{transition: transform 280ms var(--motion-ease),opacity 220ms ease-out,box-shadow 280ms var(--motion-ease);}.dashboard{position: relative;z-index: 2;min-height: 100vh;background:
radial-gradient(circle at 82% 4%,rgba(37,99,235,0.09),transparent 34%),linear-gradient(180deg,rgba(238,242,247,0.98),#e9eff7 58%,#eef2f7 100%);padding: 1.5rem 1.5rem 5rem;box-shadow: 0 -20px 58px rgba(15,23,42,0.1);}.page-details .dashboard{padding-top: 1.5rem;}.dashboard::before{content: "";position: absolute;inset: 0;pointer-events: none;background: linear-gradient(180deg,rgba(37,99,235,0.08),transparent 24%);opacity: var(--resistance-progress);will-change: opacity;}.dash-container{position: relative;z-index: 1;max-width: 1120px;margin: 0 auto;display: grid;grid-template-columns: 280px 1fr;gap: 2rem;align-items: start;}.sidebar{display: flex;flex-direction: column;gap: 1.2rem;position: sticky;top: 2rem;}.sidebar-card{background: var(--bg-surface);border: 1px solid var(--border);border-radius: var(--radius-md);padding: 1.4rem;box-shadow: var(--shadow-sm);}.sidebar-title{font-size: 0.75rem;letter-spacing: 0.12em;text-transform: uppercase;color: var(--text-muted);margin-bottom: 0.9rem;font-weight: 600;}.profile-card{text-align: center;}.profile-avatar{width: 64px;height: 64px;border-radius: 50%;background: linear-gradient(135deg,var(--accent),var(--cyan));color: white;font-size: 1.6rem;font-weight: 700;display: flex;align-items: center;justify-content: center;margin: 0 auto 0.85rem;}.profile-name{font-weight: 700;font-size: 1.1rem;color: var(--text-primary);}.profile-bio{font-size: 0.85rem;color: var(--text-muted);margin-top: 0.3rem;}.profile-stats{display: flex;justify-content: center;gap: 1.5rem;margin: 1rem 0;padding: 0.8rem 0;border-top: 1px solid var(--border);border-bottom: 1px solid var(--border);}.stat{display: flex;flex-direction: column;align-items: center;}.stat-num{font-weight: 700;font-size: 1.15rem;color: var(--text-primary);}.stat-label{font-size: 0.72rem;color: var(--text-muted);margin-top: 0.1rem;}.profile-links{display: flex;justify-content: center;gap: 0.6rem;flex-wrap: wrap;margin-top: 0.9rem;}.profile-link{font-size: 0.82rem;padding: 0.3rem 0.75rem;border-radius: 999px;border: 1px solid var(--border);color: var(--text-secondary);transition: border-color 0.2s,color 0.2s;}.profile-link:hover{border-color: var(--accent-border);color: var(--accent);}.cat-list{list-style: none;display: flex;flex-direction: column;gap: 0.35rem;}.cat-item{display: flex;justify-content: space-between;align-items: center;font-size: 0.92rem;color: var(--text-secondary);padding: 0.35rem 0.5rem;border-radius: 8px;transition: background 0.15s,color 0.15s;}.cat-item:hover{background: var(--accent-soft);color: var(--accent);}.cat-count{font-size: 0.75rem;padding: 0.12rem 0.55rem;border-radius: 999px;background: var(--accent-soft);color: var(--accent);}.tag-cloud{display: flex;flex-wrap: wrap;gap: 0.45rem;}.tag-chip{font-size: 0.78rem;padding: 0.28rem 0.7rem;border-radius: 999px;background: var(--accent-soft);color: var(--accent);border: 1px solid var(--accent-border);transition: transform 0.15s ease,background 0.15s ease;}.tag-chip:hover{background: rgba(37,99,235,0.15);transform: scale(1.04);}.tag-chip.sm{font-size: 0.72rem;padding: 0.2rem 0.55rem;}.site-info{font-size: 0.85rem;display: grid;grid-template-columns: auto 1fr;gap: 0.35rem 1rem;}.site-info dt{color: var(--text-muted);}.site-info dd{color: var(--text-primary);display: flex;align-items: center;gap: 0.4rem;}.online-dot{display: inline-block;width: 7px;height: 7px;border-radius: 50%;background: #22c55e;box-shadow: 0 0 0 2px rgba(34,197,94,0.2);flex-shrink: 0;}.post-feed{display: flex;flex-direction: column;gap: 1.2rem;}.feed-header{display: flex;align-items: baseline;justify-content: space-between;padding-bottom: 0.8rem;border-bottom: 2px solid var(--accent-border);}.feed-title{font-size: 1.1rem;font-weight: 700;color: var(--text-primary);letter-spacing: -0.01em;}.feed-archive{font-size: 0.82rem;color: var(--text-muted);transition: color 0.2s;}.feed-archive:hover{color: var(--accent);}.post-card{background: var(--bg-surface);border: 1px solid var(--border);border-radius: var(--radius-md);padding: 1.6rem;box-shadow: var(--shadow-sm);transition: transform 0.25s var(--motion-ease),box-shadow 0.25s var(--motion-ease);}.post-card:hover{transform: translateY(-3px);box-shadow: var(--shadow-lg);}.post-card.pinned{border-color: var(--accent-border);border-left: 3px solid var(--accent);}.wave-card{opacity: 1;transform: none;transition: box-shadow 0.25s var(--motion-ease);}.post-list{display: flex;flex-direction: column;gap: 1.2rem;}.blog-skeleton{min-height: 150px;background: linear-gradient(100deg,var(--bg-surface) 25%,var(--accent-soft) 45%,var(--bg-surface) 65%);background-size: 220% 100%;animation: blog-skeleton-pulse 1.2s ease-in-out infinite;}.blog-message,.blog-error{padding: 2rem 1rem;color: var(--text-muted);text-align: center;}.post-list > .more-btn,.article-body > .more-btn{align-self: center;}@keyframes blog-skeleton-pulse{from{background-position: 100% 0;}to{background-position: -100% 0;}}[data-animations="off"] .blog-skeleton,[data-animations="reduced"] .blog-skeleton{animation: none;}.post-meta{display: flex;align-items: center;gap: 0.6rem;font-size: 0.8rem;color: var(--text-muted);margin-bottom: 0.65rem;flex-wrap: wrap;}.pin-badge{font-size: 0.7rem;padding: 0.18rem 0.6rem;border-radius: 999px;background: var(--accent);color: white;font-weight: 600;}.post-cat{padding: 0.15rem 0.6rem;border-radius: 999px;background: var(--accent-soft);color: var(--accent);font-weight: 500;}.post-title{font-size: 1.15rem;font-weight: 700;line-height: 1.4;letter-spacing: -0.01em;margin-bottom: 0.55rem;}.post-title a{color: var(--text-primary);transition: color 0.2s;}.post-title a:hover{color: var(--accent);}.post-excerpt{font-size: 0.95rem;color: var(--text-secondary);line-height: 1.7;margin-bottom: 0.8rem;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;}.post-tags{display: flex;gap: 0.4rem;flex-wrap: wrap;}.feed-more{text-align: center;padding-top: 0.5rem;}.more-btn{display: inline-block;font-size: 0.88rem;padding: 0.55rem 1.8rem;border-radius: 999px;border: 0;background: var(--md-sys-color-primary-container);color: var(--md-sys-color-on-primary-container);cursor: pointer;transition: filter 0.2s,transform 0.2s;}.more-btn:hover{filter: brightness(1.06);color: var(--accent);transform: translateY(-1px);}.site-footer{padding: 2.5rem 1.5rem;text-align: center;font-size: 0.8rem;color: var(--text-muted);border-top: 1px solid var(--border);}@media (max-width: 1024px){.hero{grid-template-columns: 1.2fr 1fr;padding: 3rem 5vw;}.hero-side{padding-left: 3vw;}}@media (max-width: 860px){.hero{grid-template-columns: 1fr;text-align: left;align-content: center;gap: 2rem;padding: 2.5rem 1.5rem;}.hero-content{padding-right: 0;}.hero-side{padding-left: 0;border-left: none;border-top: 1px solid var(--border);padding-top: 1.5rem;justify-self: stretch;}.hero-name{font-size: clamp(3.2rem,15vw,5.5rem);}.hero-tagline{font-size: 1.1rem;}.hero-intro{max-width: none;font-size: 1rem;}.dash-container{grid-template-columns: 1fr;}.sidebar{position: static;display: grid;grid-template-columns: 1fr 1fr;gap: 1rem;}.profile-card{grid-column: span 2;}.anim-toggle{top: 0.75rem;right: 0.75rem;}}@media (max-width: 640px){.sidebar{grid-template-columns: 1fr;}.profile-card{grid-column: span 1;}}@media (max-width: 480px){.hero{padding: 1.5rem;}.hero-welcome{font-size: 0.78rem;}.hero-tagline{font-size: 1rem;}.hero-intro{font-size: 0.95rem;}.card{padding: 1.25rem;}.article{flex-direction: column;gap: 0.2rem;}.article-date{margin-left: 0;}}:root{--portal-preview: 0%;--portal-bg: #eef5fb;--portal-orb: rgba(37,99,235,0.09);}.portal-layer{position: fixed;inset: 0;z-index: 9990;overflow-y: auto;-webkit-overflow-scrolling: touch;clip-path: circle(var(--portal-preview,0%) at 50% 100%);background-color: var(--portal-bg,#eef5fb);background-image: radial-gradient(circle at 82% 4%,var(--portal-orb,rgba(37,99,235,0.09)),transparent 34%);transform: translateZ(0);will-change: transform;pointer-events: none;transition: clip-path 80ms linear,background-color 0.5s ease;}html.portal-direct .hero,html.portal-direct .scroll-hint,html.portal-direct .transition-progress{visibility: hidden;}html.portal-direct .portal-layer{clip-path: circle(162% at 50% 90%);pointer-events: auto;}.portal-layer.is-charging{box-shadow: 0 12px 60px 12px rgba(37,99,235,0.35),0 0 0 2px rgba(37,99,235,0.18);}.portal-layer.is-open{animation: portal-open 700ms cubic-bezier(0.22,1,0.36,1) forwards;pointer-events: auto;transition: none;}.portal-layer.is-settled{animation: none;clip-path: circle(162% at 50% 90%);}.portal-layer.is-closing{animation: portal-close 500ms cubic-bezier(0.55,0,1,0.45) forwards;transition: none;}@keyframes portal-open{0%{clip-path: circle(var(--portal-preview,0%) at 50% 100%);opacity: 1;}25%{clip-path: circle(18% at 50% 100%);}60%{clip-path: circle(75% at 50% 95%);}100%{clip-path: circle(162% at 50% 90%);}}@keyframes portal-close{0%{clip-path: circle(162% at 50% 90%);}40%{clip-path: circle(75% at 50% 95%);}100%{clip-path: circle(0% at 50% 100%);}}[data-animations="off"] .portal-layer,[data-animations="reduced"] .portal-layer{transition: none;}[data-animations="off"] .portal-layer.is-open,[data-animations="reduced"] .portal-layer.is-open{clip-path: circle(162% at 50% 90%);animation: none;}[data-animations="off"] .portal-layer.is-closing,[data-animations="reduced"] .portal-layer.is-closing{clip-path: circle(0% at 50% 100%);animation: none;}.portal-back{position: fixed;top: 1.5rem;right: 1.5rem;z-index: 9991;padding: 0.65rem 1.1rem;border-radius: var(--radius-sm);background: var(--bg-elevated);color: var(--text-primary);font-size: 0.95rem;font-weight: 500;box-shadow: var(--shadow-md);transition: all 0.2s ease;text-decoration: none;}.portal-back:hover{background: var(--accent);color: var(--text-on-accent);box-shadow: var(--shadow-lg);}:root{--md-sys-color-primary: #6750a4;--md-sys-color-on-primary: #ffffff;--md-sys-color-primary-container: #e8def8;--md-sys-color-on-primary-container: #1d192b;--md-sys-color-surface: #fef7ff;--md-sys-color-surface-container: #f7f2fa;--md-sys-color-surface-container-high: #ece6f0;--md-sys-color-on-surface: #1d1b20;--md-sys-color-on-surface-variant: #49454f;--md-sys-color-outline: #79747e;}.detail-topbar{position: fixed;z-index: 9992;top: 12px;left: 40px;right: 40px;height: 56px;padding: 8px 20px;display: flex;align-items: center;justify-content: space-between;gap: 16px;border-radius: 24px;border: 1px solid rgba(116,119,127,0.12);background: rgba(247,242,250,0.72);backdrop-filter: blur(18px) saturate(180%);-webkit-backdrop-filter: blur(18px) saturate(180%);color: var(--md-sys-color-on-surface);font-size: 13px;box-shadow: 0 4px 20px rgba(25,28,32,0.08);}.topbar-date{display: inline-flex;align-items: center;gap: 7px;color: var(--md-sys-color-on-surface-variant);font-size: 12px;font-weight: 600;letter-spacing: 0.12em;font-variant-numeric: tabular-nums;}.topbar-date svg{opacity: 0.75;}.topbar-actions{display: flex;align-items: center;gap: 6px;}.topbar-icon{width: 32px;height: 32px;display: flex;align-items: center;justify-content: center;border: 0;border-radius: 50%;background: transparent;color: var(--md-sys-color-on-surface-variant);font-size: 14px;cursor: pointer;text-decoration: none;transition: background 150ms ease-out;}.topbar-icon:hover{background: var(--md-sys-color-surface-container-high);}.detail-topbar .portal-back{position: static;padding: 6px 12px;border-radius: 16px;box-shadow: none;background: var(--md-sys-color-primary-container);color: var(--md-sys-color-on-primary-container);font-size: 12px;text-decoration: none;}.banner-panel{display: grid;grid-template-columns: 1fr 2.4fr 1fr;gap: 12px;max-width: 1200px;margin: 0 auto 16px;padding: 84px 24px 0;}.banner-segment{display: flex;align-items: center;padding: 16px;border-radius: 20px;background: var(--md-sys-color-primary-container);color: var(--md-sys-color-on-surface);gap: 10px;}.banner-segment.is-brand{background: var(--md-sys-color-primary);color: var(--md-sys-color-on-primary);flex-direction: row;align-items: center;justify-content: flex-start;gap: 10px;}.banner-segment .profile-name{display: flex;flex-direction: column;line-height: 1.3;}.banner-segment strong{font-size: 12px;font-weight: 600;color: var(--md-sys-color-on-surface);}.banner-segment.is-brand strong,.banner-segment.is-brand span{color: var(--md-sys-color-on-primary);}.brand-local-time{display: none;font-size: 10px;opacity: 0.8;color: var(--md-sys-color-on-primary);margin-top: 2px;}.banner-segment span{font-size: 9px;color: var(--md-sys-color-on-surface-variant);}.banner-segment .brand-avatar{width: 40px;height: 40px;flex-shrink: 0;border-radius: 50%;object-fit: cover;border: 2px solid rgba(255,255,255,0.4);box-shadow: 0 2px 8px rgba(0,0,0,0.2);}.status-line{display: inline-flex;align-items: center;gap: 5px;margin-top: 2px;}.status-dot{display: inline-block;width: 6px;height: 6px;border-radius: 50%;background: #34c759;animation: status-pulse 2.2s ease-out infinite;}@keyframes status-pulse{0%{box-shadow: 0 0 0 0 rgba(52,199,89,0.55);}70%{box-shadow: 0 0 0 6px rgba(52,199,89,0);}100%{box-shadow: 0 0 0 0 rgba(52,199,89,0);}}[data-animations="off"] .status-dot,[data-animations="reduced"] .status-dot{animation: none;}.search-pill{display: flex;align-items: center;gap: 12px;width: 100%;max-width: none;height: 42px;padding: 0 16px;border-radius: 24px;background: rgba(255,255,255,0.16);backdrop-filter: blur(4px);transition: background 200ms ease-out;}.search-pill:focus-within{background: rgba(255,255,255,0.24);}.search-pill input{flex: 1;min-width: 0;background: transparent;border: 0;color: #e8e0f0;font-size: 13px;outline: none;}.search-pill input::placeholder{color: #c4b8d6;}.banner-segment.is-widgets{display: flex;align-items: center;justify-content: center;gap: 4px;}.banner-segment.is-widgets a{display: flex;align-items: center;justify-content: center;width: 36px;height: 36px;border-radius: 50%;background: var(--md-sys-color-surface);color: var(--md-sys-color-primary);text-decoration: none;transition: background 150ms ease-out;}.banner-segment.is-widgets a:hover{background: var(--md-sys-color-surface-container-highest);}.banner-segment.is-widgets .qq-mark{font-size: 15px;font-weight: 800;line-height: 1;}.detail-bento{display: flex;gap: 14px;align-items: flex-start;max-width: 1200px;margin: 0 auto;padding: 0 24px 48px;color: var(--md-sys-color-on-surface);}.bento-column{flex: 1 1 0;min-width: 0;display: flex;flex-direction: column;gap: 14px;}.bento-column + .bento-column{display: grid;grid-template-columns: repeat(2,1fr);gap: 12px;align-content: start;}.bento-card{min-width: 0;padding: 14px;border-radius: 20px;background: var(--md-sys-color-surface-container);border: 1px solid rgba(0,0,0,0.04);overflow: visible;transition: transform 200ms ease-out,box-shadow 200ms ease-out;}.bento-column + .bento-column .bento-card{padding: 10px 12px;border-radius: 16px;}.bento-column + .bento-column .bento-card .eyebrow{font-size: 8px !important;margin-bottom: 4px;}.bento-column + .bento-column .bento-card h2{font-size: 13px;margin-bottom: 6px;}.bento-column + .bento-column .bento-card p,.bento-column + .bento-column .bento-card li,.bento-column + .bento-column .bento-card a{font-size: 11px;}.bento-column + .bento-column .profile-card h2{font-size: 14px;}.bento-column + .bento-column .focus-card li,.bento-column + .bento-column .activity-list li{padding: 3px 0;font-size: 10px;}.bento-column + .bento-column .stat-row,.bento-column + .bento-column .health-row,.bento-column + .bento-column .metric-row{padding: 3px 0;font-size: 10px;}.bento-column + .bento-column .health-row i{width: 6px;height: 6px;}.bento-column + .bento-column .metric-row b{height: 4px;}.bento-column + .bento-column .heatmap-grid{grid-template-columns: repeat(14,minmax(5px,1fr));gap: 2px;}.bento-card:hover{transform: translateY(-2px);box-shadow: 0 8px 24px rgba(29,27,32,0.08);}.hero-tile{animation: hero-enter 400ms ease-out;}@keyframes hero-enter{from{transform: scale(0.96);opacity: 0.8;}to{transform: scale(1);opacity: 1;}}.bento-card h1,.bento-card h2,.bento-card p{margin-top: 0;}.bento-card h1{margin-bottom: 8px;font-size: 20px;}.bento-card h2{margin-bottom: 10px;font-size: 15px;}.bento-card p,.bento-card li,.bento-card a{font-size: 12px;}.eyebrow{margin-bottom: 6px;color: var(--md-sys-color-primary);font-size: 9px !important;font-weight: 700;letter-spacing: 0.12em;text-transform: uppercase;}.bento-heading{display: flex;align-items: flex-start;justify-content: space-between;gap: 8px;margin-bottom: 10px;}.bento-heading > span{color: var(--md-sys-color-outline);font-size: 10px;}.hero-tile{width: 100%;min-height: auto;aspect-ratio: 3 / 2;padding: 0;border-radius: 32px;background:
url('/assets/img/gallery/web/hero-mahiro.webp') center/cover no-repeat;display: flex;align-items: center;justify-content: center;box-shadow: 0 8px 24px rgba(103,80,164,0.22);}.hero-tile-content{text-align: center;color: #fff;}.hero-tile-content h1{font-size: 28px;font-weight: 700;text-shadow: 0 2px 16px rgba(0,0,0,0.6),0 0 4px rgba(0,0,0,0.45);}.hero-tile-type{display: inline-flex;align-items: center;justify-content: center;gap: 2px;min-height: 1.2em;}.hero-tile-type .t-char{display: inline-block;white-space: pre;will-change: transform,opacity,filter;}.hero-tile-type .t-cursor{display: inline-block;width: 2px;height: 1.05em;margin-left: 3px;background: #fff;box-shadow: 0 0 6px rgba(0,0,0,0.5);animation: tile-cursor-blink 1s step-end infinite;}@keyframes tile-cursor-blink{50%{opacity: 0;}}.hero-tile-type.is-dissolving .t-cursor,.hero-tile-type.is-waiting .t-cursor{opacity: 0;animation: none;}.hero-tile-type.is-dissolving .t-char{animation: smoke-dissolve 760ms cubic-bezier(0.3,0,0.7,0.4) forwards;animation-delay: var(--d,0ms);}@keyframes smoke-dissolve{0%{opacity: 1;transform: translate3d(0,0,0) scale(1) rotate(0deg);filter: blur(0);}100%{opacity: 0;transform: translate3d(var(--dx,0),var(--dy,-30px),0) scale(0.55) rotate(var(--rot,0deg));filter: blur(5px);}}[data-animations="off"] .hero-tile-type .t-cursor,[data-animations="reduced"] .hero-tile-type .t-cursor{animation: none;opacity: 0;}.hero-tile-content p{font-size: 11px;opacity: 0.95;text-shadow: 0 1px 8px rgba(0,0,0,0.65);}.writing-card{min-height: 320px;}.post-reader{position: relative;clip-path: circle(0% at var(--reader-x,50%) var(--reader-y,50%));opacity: 0;}.post-reader.is-active{opacity: 1;animation: reader-expand 460ms cubic-bezier(0.22,1,0.36,1) forwards;}.post-reader.is-closing{opacity: 1;animation: reader-collapse 340ms cubic-bezier(0.55,0,1,0.45) forwards;}@keyframes reader-expand{0%{clip-path: circle(0% at var(--reader-x,50%) var(--reader-y,50%));opacity: 0;}55%{opacity: 1;}100%{clip-path: circle(150% at var(--reader-x,50%) var(--reader-y,50%));opacity: 1;}}@keyframes reader-collapse{0%{clip-path: circle(150% at var(--reader-x,50%) var(--reader-y,50%));opacity: 1;}100%{clip-path: circle(0% at var(--reader-x,50%) var(--reader-y,50%));opacity: 0;}}.writing-card.has-reader{min-height: auto;}.writing-card.has-reader .bento-heading{margin-bottom: 12px;}.writing-card.has-reader [data-view-toggle]{display: none;}.post-reader-back{display: inline-flex;align-items: center;gap: 4px;margin-bottom: 12px;padding: 6px 12px;border: 0;border-radius: 16px;background: var(--md-sys-color-surface-container-high);color: var(--md-sys-color-primary);font-size: 12px;cursor: pointer;transition: background 150ms ease-out;}.post-reader-back:hover{background: var(--md-sys-color-surface-container-highest);}.post-reader h3{margin: 4px 0 6px;font-size: 20px;line-height: 1.4;color: var(--md-sys-color-on-surface);}.post-reader-meta{margin-bottom: 12px;font-size: 11px;color: var(--md-sys-color-on-surface-variant);}.post-reader-body{font-size: 13px;line-height: 1.8;color: var(--md-sys-color-on-surface);overflow-wrap: break-word;}.post-reader-body h1,.post-reader-body h2,.post-reader-body h3,.post-reader-body h4{margin: 18px 0 8px;line-height: 1.4;color: var(--md-sys-color-on-surface);}.post-reader-body h2{font-size: 17px;}.post-reader-body h3{font-size: 15px;}.post-reader-body h4{font-size: 14px;}.post-reader-body p{margin: 0 0 12px;}.post-reader-body ul,.post-reader-body ol{margin: 0 0 12px;padding-left: 20px;}.post-reader-body li{margin-bottom: 4px;}.post-reader-body a{color: var(--md-sys-color-primary);text-decoration: underline;}.post-reader-body blockquote{margin: 0 0 12px;padding: 4px 12px;border-left: 3px solid var(--md-sys-color-primary);color: var(--md-sys-color-on-surface-variant);background: var(--md-sys-color-surface-container-high);border-radius: 0 10px 10px 0;}.post-reader-body code{padding: 2px 5px;border-radius: 6px;background: var(--md-sys-color-surface-container-high);font-size: 12px;}.post-reader-body pre{margin: 0 0 12px;padding: 12px;overflow-x: auto;border-radius: 12px;background: var(--md-sys-color-surface-container-high);}.post-reader-body pre code{padding: 0;background: transparent;}.post-reader-body img{max-width: 100%;border-radius: 12px;margin: 0 0 12px;}.post-reader-body hr{margin: 16px 0;border: 0;border-top: 1px solid var(--md-sys-color-outline-variant);}.post-reader-extras{margin-top: 20px;padding-top: 16px;border-top: 1px solid var(--md-sys-color-outline-variant);}.post-like-bar{display: flex;align-items: center;margin-bottom: 16px;}.like-btn{display: inline-flex;align-items: center;gap: 6px;padding: 7px 16px;border: 1px solid var(--md-sys-color-outline-variant);border-radius: 999px;background: var(--md-sys-color-surface-container-high);color: var(--md-sys-color-on-surface-variant);font-size: 13px;cursor: pointer;transition: background 150ms ease-out,color 150ms ease-out,transform 120ms ease-out;}.like-btn:hover{background: var(--md-sys-color-surface-container-highest);}.like-btn:active{transform: scale(0.96);}.like-btn:disabled{opacity: 0.6;cursor: default;}.like-btn.is-liked{border-color: var(--accent-border);background: var(--accent-soft);color: var(--accent);}.like-icon{font-size: 15px;line-height: 1;}.like-count{font-variant-numeric: tabular-nums;}.post-comments h4{margin: 0 0 10px;font-size: 14px;color: var(--md-sys-color-on-surface);}.comment-list{display: flex;flex-direction: column;gap: 10px;}.comment-empty{color: var(--md-sys-color-outline);font-size: 12px;padding: 4px 0;}.comment-item{padding: 10px 12px;border-radius: 12px;background: var(--md-sys-color-surface-container-high);}.comment-meta{display: flex;align-items: baseline;gap: 8px;margin-bottom: 4px;}.comment-meta strong{font-size: 12px;color: var(--md-sys-color-primary);}.comment-meta span{font-size: 10px;color: var(--md-sys-color-outline);}.comment-text{margin: 0;font-size: 13px;line-height: 1.6;color: var(--md-sys-color-on-surface);white-space: pre-wrap;word-break: break-word;}.comment-form{display: flex;flex-direction: column;gap: 8px;margin-top: 14px;}.comment-form input[type="text"],.comment-form textarea{width: 100%;padding: 9px 12px;border: 1px solid var(--md-sys-color-outline-variant);border-radius: 10px;background: var(--md-sys-color-surface-container-high);color: var(--md-sys-color-on-surface);font-family: inherit;font-size: 13px;box-sizing: border-box;transition: border-color 150ms ease-out;}.comment-form textarea{min-height: 72px;resize: vertical;}.comment-form input:focus,.comment-form textarea:focus{outline: none;border-color: var(--md-sys-color-primary);}.comment-form button[type="submit"]{align-self: flex-start;padding: 8px 20px;border: 0;border-radius: 999px;background: var(--md-sys-color-primary);color: var(--md-sys-color-on-primary);font-size: 13px;cursor: pointer;transition: opacity 150ms ease-out;}.comment-form button[type="submit"]:hover{opacity: 0.9;}.comment-form button[type="submit"]:disabled{opacity: 0.6;cursor: default;}.comment-error{margin: 0;padding: 6px 10px;border-radius: 8px;background: rgba(211,47,47,0.1);color: #c62828;font-size: 12px;}[data-animations="off"] .post-reader.is-active,[data-animations="reduced"] .post-reader.is-active{animation: none;clip-path: circle(150% at var(--reader-x,50%) var(--reader-y,50%));opacity: 1;}[data-animations="off"] .post-reader.is-closing,[data-animations="reduced"] .post-reader.is-closing{animation: none;clip-path: circle(0% at var(--reader-x,50%) var(--reader-y,50%));opacity: 0;}.bento-column + .bento-column .heatmap-grid{grid-template-columns: repeat(7,1fr);gap: 3px;}.profile-card h2{font-size: 16px;margin-bottom: 4px;}.profile-card p{font-size: 11px;color: var(--md-sys-color-on-surface-variant);}.profile-links{display: flex;justify-content: center;gap: 8px;margin: 12px 0 6px;}.profile-links a{display: flex;align-items: center;justify-content: center;width: 34px;height: 34px;border-radius: 50%;background: var(--md-sys-color-surface-container-high);color: var(--md-sys-color-on-surface-variant);transition: background 150ms ease-out,color 150ms ease-out,transform 100ms ease-out;}.profile-links a:hover{background: var(--md-sys-color-primary);color: var(--md-sys-color-on-primary);transform: translateY(-2px);}.skill-tags{display: flex;flex-wrap: wrap;justify-content: center;gap: 6px;margin-top: 10px;}.skill-tags span{padding: 3px 10px;border-radius: 999px;background: var(--md-sys-color-surface-container-high);color: var(--md-sys-color-on-surface-variant);font-size: 10px;}.lang-icons{display: flex;align-items: center;justify-content: center;flex-wrap: wrap;gap: 10px;margin-top: 10px;}.lang-icon{display: inline-flex;align-items: center;justify-content: center;line-height: 0;}.lang-icon svg{width: 16px;height: 16px;display: block;opacity: 0.88;transition: transform 150ms ease-out,opacity 150ms ease-out;}.lang-icon:hover svg{transform: scale(1.18);opacity: 1;}.stat-row{display: flex;justify-content: space-between;align-items: center;padding: 5px 0;border-bottom: 1px solid rgba(121,116,126,0.12);font-size: 11px;}.stat-row:last-child{border-bottom: 0;}.stat-row strong{font-size: 13px;color: var(--md-sys-color-primary);}.live-row{display: flex;justify-content: space-between;align-items: center;gap: 8px;padding: 5px 0;border-bottom: 1px solid rgba(121,116,126,0.12);font-size: 11px;}.live-row:last-child{border-bottom: 0;}.live-row strong{font-size: 12px;color: var(--md-sys-color-primary);text-align: right;word-break: break-all;}.bento-heading{display: flex;justify-content: space-between;align-items: flex-start;gap: 8px;}.heatmap-source{font-size: 9px;color: var(--md-sys-color-outline);background: var(--md-sys-color-surface-container-high);padding: 2px 8px;border-radius: 10px;white-space: nowrap;}.heatmap-grid{display: grid;grid-template-rows: repeat(7,8px);grid-auto-flow: column;grid-auto-columns: 8px;gap: 3px;margin-top: 10px;overflow-x: auto;}.heatmap-grid i{width: 8px;height: 8px;border-radius: 2px;background: var(--md-sys-color-surface-container-high);}.heatmap-grid i.hm-l1{background: #b6dfb7;}.heatmap-grid i.hm-l2{background: #7fc98c;}.heatmap-grid i.hm-l3{background: #34a862;}.heatmap-grid i.hm-l4{background: #007a3d;}.heatmap-grid i.hm-empty{background: transparent;}.heatmap-legend{display: flex;align-items: center;gap: 3px;margin-top: 8px;font-size: 9px;color: var(--md-sys-color-outline);}.heatmap-legend i{width: 8px;height: 8px;border-radius: 2px;}.heatmap-legend i:nth-child(2){background: var(--md-sys-color-surface-container-high);}.heatmap-legend i:nth-child(3){background: #b6dfb7;}.heatmap-legend i:nth-child(4){background: #7fc98c;}.heatmap-legend i:nth-child(5){background: #34a862;}.heatmap-legend i:nth-child(6){background: #007a3d;}.github-head{display: flex;align-items: center;gap: 10px;margin-top: 6px;}.github-avatar{width: 40px;height: 40px;border-radius: 50%;object-fit: cover;border: 2px solid var(--md-sys-color-surface-variant);}.github-id{display: flex;flex-direction: column;gap: 2px;}.github-id strong{font-size: 14px;color: var(--md-sys-color-on-surface);}.github-meta{font-size: 10px;color: var(--md-sys-color-outline);}.repo-list{padding: 0;margin: 10px 0 8px;list-style: none;}.repo-list li{padding: 6px 0;border-top: 1px solid rgba(121,116,126,0.12);}.repo-list li:first-child{border-top: 0;}.repo-list a{display: block;border-radius: 8px;transition: transform 0.2s var(--motion-ease);}.repo-list a:hover{transform: translateX(2px);}.repo-item a{display: flex;justify-content: space-between;align-items: center;gap: 8px;text-decoration: none;}.repo-name{font-size: 12px;color: var(--md-sys-color-primary);font-weight: 600;}.repo-meta{font-size: 10px;color: var(--md-sys-color-outline);}.repo-desc{font-size: 11.5px;line-height: 1.5;color: var(--md-sys-color-on-surface-variant);margin: 2px 0 0;}.repo-placeholder{font-size: 10px;color: var(--md-sys-color-outline);padding: 4px 0;}.focus-card ul,.activity-list{padding: 0;margin: 0;list-style: none;}.focus-card li{display: flex;gap: 9px;padding: 6px 0;border-top: 1px solid rgba(121,116,126,0.12);}.focus-card li span,.activity-list time{color: var(--md-sys-color-outline);font-size: 10px;}[data-view-toggle]{min-height: 28px;padding: 4px 10px;border: 0;border-radius: 14px;background: var(--md-sys-color-primary-container);color: var(--md-sys-color-on-primary-container);font-size: 10px;cursor: pointer;}.writing-card .post-list{gap: 8px;}.writing-card .post-list.is-expanded{max-height: 800px;overflow-y: auto;overscroll-behavior: contain;scrollbar-width: thin;scrollbar-color: var(--md-sys-color-outline) transparent;padding-right: 2px;}.writing-card .post-list.is-expanded::-webkit-scrollbar{width: 6px;}.writing-card .post-list.is-expanded::-webkit-scrollbar-thumb{background: var(--md-sys-color-outline);border-radius: 999px;}.writing-card .post-list.is-expanded.is-compact{max-height: 480px;}.writing-card .post-card{margin: 0;padding: 10px;border-radius: 12px;background: #fff;}.writing-card .post-title{margin: 4px 0;font-size: 14px;}.writing-card .post-excerpt{margin: 3px 0 6px;font-size: 11px;line-height: 1.45;}.post-read-time{margin-left: auto;color: var(--md-sys-color-outline);font-size: 10px;}.post-list.is-compact .post-card{margin: 0;padding: 5px 7px;}.post-list.is-compact .post-excerpt,.post-list.is-compact .post-tags{display: none;}.post-list.is-compact .post-title{margin: 2px 0;font-size: 12px;}.heatmap-grid{display: grid;grid-template-columns: repeat(14,minmax(7px,1fr));gap: 3px;}.heatmap-grid i{aspect-ratio: 1;border-radius: 2px;background: #e8def8;}.heatmap-grid i:nth-child(4n + 1){background: #d0bcff;}.heatmap-grid i:nth-child(5n + 2){background: #b69df8;}.heatmap-grid i:nth-child(7n + 3){background: #6750a4;}.terminal-card{display: flex;flex-direction: column;justify-content: center;padding: 0;overflow: hidden;background: #0d1117;border-color: rgba(255,255,255,0.08);}.terminal-bar{display: flex;align-items: center;gap: 6px;padding: 6px 10px;background: rgba(255,255,255,0.045);border-bottom: 1px solid rgba(255,255,255,0.07);}.terminal-dots{display: inline-flex;gap: 5px;}.terminal-dot{display: block;width: 8px;height: 8px;border-radius: 50%;}.terminal-dot-red{background: #ff5f57;}.terminal-dot-yellow{background: #febc2e;}.terminal-dot-green{background: #28c840;}.terminal-title{margin-left: 2px;font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size: 9px;color: rgba(255,255,255,0.55);letter-spacing: 0.03em;}.terminal-body{margin: 0;padding: 10px 12px 12px;font-family: ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size: 12px;line-height: 1.55;color: #e6edf3;white-space: pre-wrap;word-break: break-word;}.t-keyword{color: #c586c0;}.t-const{color: #4ec9b0;}.t-func{color: #dcdcaa;}.t-prompt{color: #3fb950;}.t-cursor{display: inline-block;width: 7px;height: 1.05em;margin-left: 2px;vertical-align: text-bottom;background: #e6edf3;border-radius: 1px;animation: terminal-blink 1.1s step-end infinite;}@keyframes terminal-blink{0%,100%{opacity: 1;}50%{opacity: 0;}}@media (prefers-reduced-motion: reduce){.t-cursor{animation: none;}}.metric-row{display: grid;grid-template-columns: 42px 1fr 22px;align-items: center;gap: 6px;margin: 6px 0;font-size: 10px;}.metric-row b{height: 5px;border-radius: 4px;background: var(--md-sys-color-surface-container-high);overflow: hidden;}.metric-row b i{display: block;height: 100%;border-radius: inherit;background: var(--md-sys-color-primary);}.metric-row em{color: var(--md-sys-color-outline);font-size: 10px;font-style: normal;}.activity-list li{display: grid;grid-template-columns: 40px 1fr;gap: 7px;padding: 5px 0;border-top: 1px solid rgba(121,116,126,0.12);}.health-row{display: grid;grid-template-columns: 8px 1fr auto;align-items: center;gap: 7px;padding: 5px 0;font-size: 11px;}.health-row i{width: 7px;height: 7px;border-radius: 50%;background: #2e7d32;}.health-row em{color: var(--md-sys-color-outline);font-size: 10px;font-style: normal;}.material-network-state{position: fixed;z-index: 10000;left: 50%;bottom: max(18px,env(safe-area-inset-bottom));transform: translateX(-50%);display: flex;align-items: center;gap: 12px;padding: 10px 18px 10px 10px;border-radius: 24px;background: var(--md-sys-color-primary-container);color: #102f60;box-shadow: 0 5px 18px rgba(25,28,32,0.18);font-size: 12px;}.material-network-state[hidden]{display: none;}.material-loader{width: 44px;height: 44px;flex: 0 0 44px;border: 4px solid rgba(65,95,145,0.2);border-top-color: var(--md-sys-color-primary);border-radius: 50%;animation: material-spinner 900ms linear infinite;}@keyframes material-spinner{to{transform: rotate(360deg);}}@media (max-width: 860px){.banner-panel{grid-template-columns: 1fr auto;grid-template-areas: "brand widgets" "search search";padding: 84px 20px 0;}.banner-segment.is-brand{grid-area: brand;align-items: center;justify-content: flex-start;}.banner-segment.is-search{grid-area: search;}.banner-segment.is-widgets{grid-area: widgets;justify-content: center;}.brand-local-time{display: inline-block;}.search-pill{max-width: 100%;}.detail-bento{flex-direction: column;gap: 16px;padding: 0 20px 40px;}.bento-column{width: 100%;gap: 16px;}.bento-column + .bento-column{width: 100%;grid-template-columns: repeat(2,minmax(0,1fr));justify-content: center;}.hero-tile{width: 100%;aspect-ratio: 16 / 9;}.writing-card{width: 100%;min-height: 280px;}}@media (max-width: 640px){.detail-topbar{top: 8px;left: 16px;right: 16px;height: 48px;padding: 6px 14px;}.banner-panel{padding: 70px 16px 0;}.detail-bento{padding: 0 16px 32px;}.bento-card{padding: 14px;}}@media (prefers-reduced-motion: reduce){.material-loader{animation: none;border-color: var(--md-sys-color-primary);border-right-color: transparent;}}[data-theme="dark"]{--bg-body: #101014;--bg-surface: #1c1b20;--bg-elevated: #26242b;--text-primary: #e6e1e8;--text-secondary: #c4bec8;--text-muted: #9b949f;--text-on-accent: #ffffff;--accent: #d0bcff;--accent-hover: #bca7f5;--accent-soft: rgba(208,188,255,0.10);--accent-border: rgba(208,188,255,0.22);--cyan: #4dd0e1;--border: rgba(255,255,255,0.08);--shadow-sm: 0 1px 2px rgba(0,0,0,0.4);--shadow-md: 0 4px 12px rgba(0,0,0,0.45);--shadow-lg: 0 12px 40px rgba(0,0,0,0.55);--md-sys-color-primary: #d0bcff;--md-sys-color-on-primary: #381e72;--md-sys-color-primary-container: #4f378b;--md-sys-color-on-primary-container: #eaddff;--md-sys-color-surface: #141218;--md-sys-color-surface-container: #211f26;--md-sys-color-surface-container-high: #2b2930;--md-sys-color-on-surface: #e6e0e9;--md-sys-color-on-surface-variant: #cac4d0;--md-sys-color-outline: #938f99;--portal-bg: #121016;--portal-orb: rgba(208,188,255,0.08);}[data-theme="dark"] body,[data-theme="dark"] body.page-details{background: var(--bg-body);}[data-theme="dark"] .hero::before{background-image:
linear-gradient(rgba(208,188,255,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(208,188,255,0.05) 1px,transparent 1px);}[data-theme="dark"] .hero::after{background: radial-gradient(circle at 40% 40%,rgba(208,188,255,0.14) 0%,rgba(77,208,225,0.06) 35%,transparent 65%);}[data-theme="dark"] .detail-topbar{background: rgba(33,31,38,0.72);border-color: rgba(255,255,255,0.09);box-shadow: 0 4px 20px rgba(0,0,0,0.4);}[data-theme="dark"] .topbar-icon:hover{background: var(--md-sys-color-surface-container-high);}[data-theme="dark"] .search-pill{background: rgba(255,255,255,0.10);}[data-theme="dark"] .search-pill:focus-within{background: rgba(255,255,255,0.16);}[data-theme="dark"] .search-pill input{color: #e6e0e9;}[data-theme="dark"] .search-pill input::placeholder{color: #9b949f;}[data-theme="dark"] .banner-segment{background: var(--md-sys-color-primary-container);}[data-theme="dark"] .banner-segment.is-brand{background: var(--md-sys-color-primary);color: var(--md-sys-color-on-primary);}[data-theme="dark"] .banner-segment.is-brand strong,[data-theme="dark"] .banner-segment.is-brand span{color: var(--md-sys-color-on-primary);}[data-theme="dark"] .bento-card,[data-theme="dark"] .writing-card .post-card,[data-theme="dark"] .post-card{background: var(--md-sys-color-surface-container);}[data-theme="dark"] .terminal-card{background: #0d1117;border-color: rgba(255,255,255,0.08);}[data-theme="dark"] .anim-toggle,[data-theme="dark"] .portal-back,[data-theme="dark"] .details-back{background: var(--md-sys-color-surface-container);color: var(--md-sys-color-on-surface);border-color: var(--border);}[data-theme="dark"] .hero-tile{box-shadow: 0 8px 28px rgba(0,0,0,0.5);background:
radial-gradient(circle at 70% 30%,rgba(208,188,255,0.08),transparent 50%),linear-gradient(135deg,rgba(20,16,24,0.28),rgba(33,31,38,0.24),rgba(30,24,36,0.28)),url('/assets/img/gallery/web/hero-mahiro.webp') center/cover no-repeat;}[data-theme="dark"] .transition-progress,[data-theme="dark"] .scroll-hint,[data-theme="dark"] .hero-intro,[data-theme="dark"] .hero-tagline{color: var(--text-muted);}[data-theme="dark"] .hero-welcome{color: var(--text-secondary);}[data-theme="dark"] .hero-name span{background: linear-gradient(135deg,var(--text-primary) 0%,var(--accent) 100%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;background-clip: text;}[data-theme="dark"] .material-network-state{background: var(--md-sys-color-primary-container);color: var(--md-sys-color-on-primary-container);}[data-theme="dark"] [data-theme-toggle] svg{display: none;}[data-theme="dark"] [data-theme-toggle]::after{content: "";width: 16px;height: 16px;border-radius: 50%;background: radial-gradient(circle at 32% 32%,#ffd76e 0%,#ffb84d 45%,#ff9500 100%);box-shadow: 0 0 8px rgba(255,180,77,0.5);}html.theme-switching body,html.theme-switching .portal-layer,html.theme-switching .detail-topbar,html.theme-switching .topbar-date,html.theme-switching .topbar-icon,html.theme-switching .portal-back,html.theme-switching .details-back,html.theme-switching .banner-segment,html.theme-switching .search-pill,html.theme-switching .search-pill input,html.theme-switching .bento-card,html.theme-switching .post-card,html.theme-switching .anim-toggle,html.theme-switching .hero,html.theme-switching .hero-tagline,html.theme-switching .hero-welcome,html.theme-switching .hero-intro,html.theme-switching .scroll-hint,html.theme-switching .transition-progress,html.theme-switching .material-network-state,html.theme-switching .bento-card h1,html.theme-switching .bento-card h2,html.theme-switching .bento-card p,html.theme-switching .bento-card li,html.theme-switching .bento-card a,html.theme-switching .eyebrow,html.theme-switching .stat-row,html.theme-switching .stat-row strong,html.theme-switching .health-row,html.theme-switching .health-row em,html.theme-switching .metric-row,html.theme-switching .metric-row em,html.theme-switching .focus-card li,html.theme-switching .activity-list li,html.theme-switching .activity-list time,html.theme-switching .profile-card h2,html.theme-switching .profile-card p,html.theme-switching .quote-text,html.theme-switching .quote-author,html.theme-switching .post-title a,html.theme-switching .post-excerpt,html.theme-switching .post-read-time,html.theme-switching .tag-chip,html.theme-switching .profile-links a,html.theme-switching .skill-tags span,html.theme-switching .post-reader h3,html.theme-switching .post-reader-meta,html.theme-switching .post-reader-body,html.theme-switching .post-reader-back,html.theme-switching .post-reader-body blockquote,html.theme-switching .post-reader-body code,html.theme-switching .post-reader-body pre{transition:
background-color 0.55s ease,color 0.55s ease,border-color 0.55s ease,box-shadow 0.55s ease;}html.theme-switching body,html.theme-switching .portal-layer{transition: background-color 0.65s ease;}[data-animations="off"] html.theme-switching *,[data-animations="reduced"] html.theme-switching *{transition: none !important;}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.detail-topbar{background: var(--md-sys-color-surface);}.search-pill{background: rgba(255,255,255,0.28);}[data-theme="dark"] .detail-topbar{background: var(--md-sys-color-surface-container);}}.heatmap-grid{display:grid !important;grid-template-rows:repeat(7,8px) !important;grid-template-columns:none !important;grid-auto-flow:column !important;grid-auto-columns:8px !important;gap:3px !important;margin-top:10px !important;overflow-x:auto}.heatmap-grid i{width:8px !important;height:8px !important;aspect-ratio:auto !important;border-radius:2px;background:var(--md-sys-color-surface-container-high)}.heatmap-grid i.hm-l1{background:#b6dfb7}.heatmap-grid i.hm-l2{background:#7fc98c}.heatmap-grid i.hm-l3{background:#34a862}.heatmap-grid i.hm-l4{background:#007a3d}.heatmap-grid i.hm-empty{background:transparent}.heatmap-grid{display:grid !important;width:100% !important;grid-template-rows:repeat(7,var(--hm-cell,8px)) !important;grid-template-columns:none !important;grid-auto-flow:column !important;grid-auto-columns:var(--hm-cell,8px) !important;gap:3px !important;margin-top:10px !important;overflow-x:auto}.heatmap-grid i{width:var(--hm-cell,8px) !important;height:var(--hm-cell,8px) !important;aspect-ratio:1 !important;border-radius:2px !important;background:#ebedf0 !important}.heatmap-grid i.hm-empty{background:transparent !important}.heatmap-grid i.hm-l1{background:#9be9a8 !important}.heatmap-grid i.hm-l2{background:#40c463 !important}.heatmap-grid i.hm-l3{background:#30a14e !important}.heatmap-grid i.hm-l4{background:#216e39 !important}.heatmap-legend i:nth-child(2){background:#ebedf0 !important}.heatmap-legend i:nth-child(3){background:#9be9a8 !important}.heatmap-legend i:nth-child(4){background:#40c463 !important}.heatmap-legend i:nth-child(5){background:#30a14e !important}.heatmap-legend i:nth-child(6){background:#216e39 !important}[data-theme="dark"] .heatmap-grid i{background:#1f272d !important}[data-theme="dark"] .heatmap-grid i.hm-empty{background:transparent !important}[data-theme="dark"] .heatmap-grid i.hm-l1{background:#0e4429 !important}[data-theme="dark"] .heatmap-grid i.hm-l2{background:#006d32 !important}[data-theme="dark"] .heatmap-grid i.hm-l3{background:#26a641 !important}[data-theme="dark"] .heatmap-grid i.hm-l4{background:#39d353 !important}[data-theme="dark"] .heatmap-legend i:nth-child(2){background:#1f272d !important}[data-theme="dark"] .heatmap-legend i:nth-child(3){background:#0e4429 !important}[data-theme="dark"] .heatmap-legend i:nth-child(4){background:#006d32 !important}[data-theme="dark"] .heatmap-legend i:nth-child(5){background:#26a641 !important}[data-theme="dark"] .heatmap-legend i:nth-child(6){background:#39d353 !important}.detail-footer{max-width: 1200px;margin: 8px auto 0;padding: 26px 24px 34px;display: flex;align-items: center;justify-content: space-between;gap: 12px;border-top: 1px solid rgba(121,116,126,0.14);color: var(--md-sys-color-outline);font-size: 12px;}.detail-footer a{color: var(--md-sys-color-primary);}.detail-footer a:hover{text-decoration: underline;}.detail-footer .to-top{border: 0;border-radius: 999px;padding: 6px 14px;background: var(--md-sys-color-surface-container-high);color: var(--md-sys-color-on-surface-variant);font-size: 12px;cursor: pointer;transition: background 0.2s,color 0.2s;}.detail-footer .to-top:hover{background: var(--md-sys-color-primary-container);color: var(--md-sys-color-on-primary-container);}.bento-card.reveal{opacity: 0;transform: translateY(14px);transition: opacity 0.55s var(--motion-ease),transform 0.55s var(--motion-ease);transition-delay: var(--reveal-delay,0ms);}.bento-card.reveal.in-view{opacity: 1;transform: none;}[data-animations="off"] .bento-card.reveal,[data-animations="reduced"] .bento-card.reveal{opacity: 1;transform: none;transition: none;}.health-warn i{background: #f59e0b;}.health-warn em{color: #b45309;}.health-bad i{background: #ef4444;}.health-bad em{color: #b91c1c;}[data-theme="dark"] .health-warn i{background: #fbbf24;}[data-theme="dark"] .health-bad i{background: #f87171;}.support-cta{display: inline-flex;align-items: center;justify-content: center;margin-top: 10px;padding: 7px 14px;border-radius: 999px;background: var(--md-sys-color-primary-container);color: var(--md-sys-color-on-primary-container);font-size: 12px;font-weight: 600;text-decoration: none;transition: filter 0.2s,transform 0.2s;}.support-cta:hover{filter: brightness(1.06);transform: translateY(-1px);color: var(--md-sys-color-on-primary-container);}.activity-bars{display: flex;align-items: flex-end;gap: 1px;height: 34px;margin: 4px 0 10px;}.activity-bars i{flex: 1;min-height: 2px;border-radius: 1px 1px 0 0;background: var(--md-sys-color-primary);opacity: 0.65;}.activity-bars i.is-today{opacity: 1;}.hm-tip{position: fixed;z-index: 10001;max-width: 240px;padding: 6px 10px;border-radius: 10px;background: var(--md-sys-color-on-surface);color: var(--md-sys-color-surface);font-size: 11px;line-height: 1.4;pointer-events: none;box-shadow: 0 4px 14px rgba(25,28,32,0.25);}.hm-tip[hidden]{display: none;}.gallery-count{color: var(--md-sys-color-outline);font-size: 10px;}.gallery-grid{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 8px;margin-top: 10px;}.gallery-item{position: relative;padding: 0;border: 0;border-radius: 14px;overflow: hidden;cursor: zoom-in;background: var(--md-sys-color-surface-container-high);aspect-ratio: 1;transition: transform 0.25s var(--motion-ease),box-shadow 0.25s var(--motion-ease);}.gallery-item img{display: block;width: 100%;height: 100%;object-fit: cover;transition: transform 0.45s var(--motion-ease);}.gallery-item:hover{transform: translateY(-2px);box-shadow: var(--shadow-md);}.gallery-item:hover img{transform: scale(1.06);}.gallery-item:focus-visible{outline: 2px solid var(--md-sys-color-primary);outline-offset: 2px;}.gallery-lightbox{position: fixed;inset: 0;z-index: 10002;display: flex;align-items: center;justify-content: center;padding: 24px;background: rgba(8,6,12,0.82);backdrop-filter: blur(6px);-webkit-backdrop-filter: blur(6px);cursor: zoom-out;}.gallery-lightbox[hidden]{display: none;}.gallery-lightbox img{max-width: min(92vw,1100px);max-height: 88vh;border-radius: 18px;box-shadow: 0 24px 60px rgba(0,0,0,0.5);}.gallery-lightbox button{position: absolute;top: 18px;right: 22px;width: 40px;height: 40px;border: 0;border-radius: 50%;background: rgba(255,255,255,0.16);color: #fff;font-size: 20px;line-height: 1;cursor: pointer;transition: background 0.2s;}.gallery-lightbox button:hover{background: rgba(255,255,255,0.3);}.gallery-single{display: block;width: 100%;aspect-ratio: 4 / 3;margin-top: 10px;}.gallery-caption{margin: 8px 2px 0;font-size: 11px;color: var(--md-sys-color-outline);letter-spacing: 0.02em;}.detail-bento{gap: 20px;padding-bottom: 56px;}.bento-column{gap: 20px;}.bento-card{border-radius: 26px;padding: 18px;}.bento-column + .bento-column .bento-card{border-radius: 16px;padding: 12px 14px;background: var(--md-sys-color-surface);border-color: rgba(121,116,126,0.10);}[data-theme="dark"] .bento-column + .bento-column .bento-card{background: rgba(255,255,255,0.022);border-color: rgba(255,255,255,0.05);}.real-shot{display: block;width: 100%;aspect-ratio: 16 / 9;margin-top: 8px;padding: 0;border: 0;border-radius: 10px;overflow: hidden;cursor: zoom-in;background: #0d1117;transition: transform 0.25s var(--motion-ease);}.real-shot img{display: block;width: 100%;height: 100%;object-fit: cover;object-position: top center;}.real-shot:hover{transform: translateY(-2px);}.real-shot:focus-visible{outline: 2px solid var(--md-sys-color-primary);outline-offset: 2px;}.real-caption{margin: 6px 2px 0;font-size: 10px;line-height: 1.4;color: var(--md-sys-color-outline);}.gallery-video{display: block;width: 100%;aspect-ratio: 16 / 9;margin-top: 10px;border-radius: 12px;object-fit: cover;background: #0d1117;}.music-body{margin-top: 10px;display: flex;flex-direction: column;}.music-head{display: flex;align-items: center;gap: 11px;}.music-cover{flex: 0 0 46px;width: 46px;height: 46px;border-radius: 10px;background: linear-gradient(135deg,rgba(90,79,208,.85),rgba(56,120,220,.8));display: flex;align-items: center;justify-content: center;color: rgba(255,255,255,.92);}.music-cover svg{width: 18px;height: 18px;}.music-meta{flex: 1;min-width: 0;}.music-title{font-size: 12.5px;font-weight: 700;color: #1c2340;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}.music-artist{font-size: 10.5px;color: #8a91ad;margin-top: 3px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}.music-progress{height: 4px;border-radius: 3px;background: rgba(120,130,255,.18);margin-top: 11px;cursor: pointer;position: relative;}.music-bar{height: 100%;width: 0;border-radius: 3px;background: linear-gradient(90deg,#7c5cff,#38c6ff);}.music-time{margin-top: 4px;font-size: 10.5px;color: #8a91ad;font-family: ui-monospace,Menlo,Consolas,monospace;display: flex;justify-content: space-between;}.music-ctrl{display: flex;align-items: center;justify-content: center;gap: 11px;margin-top: 6px;}.music-btn{width: 27px;height: 27px;border-radius: 50%;border: 1px solid rgba(120,130,255,.3);background: transparent;color: #5a4fd0;display: flex;align-items: center;justify-content: center;cursor: pointer;transition: background .2s,transform .15s;}.music-btn:hover{background: rgba(120,130,255,.12);transform: scale(1.06);}.music-btn.music-play{width: 33px;height: 33px;background: linear-gradient(135deg,#7c5cff,#38c6ff);border: none;color: #fff;box-shadow: 0 5px 14px rgba(90,70,220,.35);}.music-btn.music-play:hover{transform: scale(1.08);}
/* ================= v51: 文章头图 + 软件下载卡片（2026-10-24） ================= */
/* 列表卡片头图缩略 */
.post-card.has-cover .post-cover {
  display: block; width: 100%; height: auto;
  max-height: 340px; object-fit: contain;
  margin: 0 0 12px;
  border-radius: 14px;
  background-color: var(--surface-soft, #ebe2f8);
  border: 1px solid rgba(104, 82, 164, 0.10);
}
/* 阅读器头图横幅 */
.reader-cover {
  display: block; width: 100%; height: auto; max-height: 560px; object-fit: contain;
  border-radius: 18px; margin: 0 0 18px;
  border: 1px solid rgba(104, 82, 164, 0.10);
}
/* 软件下载卡片 */
.download-card {
  display: flex; gap: 16px; align-items: stretch;
  background: #fefefe;
  border: 1px solid rgba(104, 82, 164, 0.14);
  border-radius: 20px;
  padding: 16px;
  margin: 20px 0;
  box-shadow: 0 8px 24px rgba(82, 65, 120, 0.05);
}
.download-shot { flex: 0 0 168px; min-height: 118px; border-radius: 14px; overflow: hidden; background: #ebe2f8; display: flex; align-items: center; justify-content: center; }
.download-shot img { width: 100%; height: 100%; object-fit: contain; display: block; }
.download-shot-empty { font-size: 11px; font-weight: 700; letter-spacing: 0.12em; color: #9a8ac2; }
.download-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.download-name-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.download-name { font-size: 17px; font-weight: 700; color: #201e22; }
.download-platform {
  font-size: 11px; font-weight: 600; color: #6852a4;
  background: #ebe2f8; border-radius: 999px; padding: 3px 10px;
}
.download-tagline { margin: 0; font-size: 13.5px; color: #55515a; line-height: 1.6; }
.download-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.download-pill {
  font-size: 11.5px; color: #6e6b71; background: #f6f1f9;
  border: 1px solid #e6e0ea; border-radius: 999px; padding: 3px 10px;
}
.download-actions { display: flex; gap: 10px; margin-top: 2px; flex-wrap: wrap; }
.download-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: #6852a4; color: #fff; text-decoration: none;
  font-size: 13.5px; font-weight: 600;
  border-radius: 999px; padding: 8px 18px;
  transition: background 0.2s ease, transform 0.2s ease;
}
.download-btn:hover { background: #58448e; transform: translateY(-1px); }
.download-repo {
  display: inline-flex; align-items: center;
  color: #5c78c0; text-decoration: none; font-size: 13.5px; font-weight: 600;
  border: 1px solid rgba(92, 120, 192, 0.35); border-radius: 999px; padding: 7px 16px;
  transition: background 0.2s ease;
}
.download-repo:hover { background: rgba(92, 120, 192, 0.08); }
.download-changelog { font-size: 12.5px; color: #6e6b71; margin-top: 4px; }
.download-changelog summary { cursor: pointer; color: #6852a4; font-weight: 600; user-select: none; }
.download-changelog ul { margin: 8px 0 0; padding-left: 18px; line-height: 1.8; }
@media (max-width: 640px) {
  .download-card { flex-direction: column; }
  .download-shot { flex: none; width: 100%; height: 160px; }
}
.download-pending { color: #9a8ac2; font-size: 13px; }
.beian{margin:.4rem 0 0;font-size:.75rem;color:var(--text-muted)}.beian a{color:inherit;text-decoration:none}.beian a:hover{text-decoration:underline}