:root{color-scheme:dark;--bg: #07080a;--panel: #111419;--text: #f6f8fb;--muted: rgba(246, 248, 251, .7);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--bg)}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{background:linear-gradient(180deg,rgba(255,255,255,.055),transparent 38%),linear-gradient(135deg,rgba(92,231,255,.08),transparent 34%),linear-gradient(315deg,rgba(255,224,102,.07),transparent 32%),var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}img{max-width:100%}.home{display:block;min-height:100svh;padding:clamp(14px,2.4vw,30px)}.profile-strip{width:min(1180px,100%);margin:0 auto;padding:clamp(12px,3vh,34px) 0 clamp(8px,1.5vh,14px)}.profile-head{display:flex;align-items:end;justify-content:space-between;gap:18px;padding-bottom:clamp(18px,2.2vw,26px);border-bottom:1px solid rgba(255,255,255,.13)}.profile-head h1{margin:0;color:var(--text);font-size:clamp(36px,7vw,88px);font-weight:900;line-height:1.24;letter-spacing:0}.profile-mails{display:grid;flex:0 1 auto;justify-items:end;gap:6px;min-width:0;padding:0 2px 8px}.profile-mail{display:inline-flex;min-width:0;align-items:center;gap:9px;min-height:24px;color:#f6f8fbc7;font-size:clamp(14px,1.35vw,16px);font-weight:650;line-height:1.35;transition:color .16s ease}.profile-mail:focus-visible{outline:3px solid rgba(99,230,190,.28);outline-offset:5px}.profile-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.8vw,22px);padding-top:clamp(16px,2.4vw,26px)}.profile-fact{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;min-width:0;color:#f6f8fbbd}.profile-fact-icon{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:1px solid rgba(246,248,251,.14);border-radius:50%;background:#ffffff0b;color:#f6f8fbc7;transition:background .16s ease,border-color .16s ease,color .16s ease}.profile-fact-copy{display:grid;gap:3px;min-width:0}.profile-fact-label{color:#f6f8fb75;font-size:11px;font-weight:720;line-height:1.1;letter-spacing:.08em;text-transform:uppercase}.profile-fact-value{color:#f6f8fbe6;font-size:clamp(13px,1.08vw,15px);font-weight:730;line-height:1.28;overflow-wrap:anywhere}.profile-fact--link{transition:color .16s ease}.profile-fact--link:focus-visible{outline:3px solid rgba(99,230,190,.28);outline-offset:5px}@media(hover:hover){.profile-mail:hover{color:#fff}.profile-fact--link:hover .profile-fact-icon{border-color:#63e6be6b;background:#63e6be1f;color:#fff}.profile-fact--link:hover .profile-fact-value{color:#fff}}.principles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(1180px,100%);gap:clamp(14px,2vw,26px);margin:0 auto;padding:clamp(14px,2.3vw,28px) 0 clamp(12px,2vw,24px);border-bottom:1px solid rgba(255,255,255,.1)}.principle{display:grid;align-content:start;min-width:0;gap:8px;margin:0}.principle strong{color:var(--text);font-size:clamp(14px,1.15vw,17px);font-weight:840;line-height:1.2;letter-spacing:0}.principle span{color:#f6f8fba8;font-size:clamp(13px,1vw,15px);font-weight:510;line-height:1.62}.project-sections{display:grid;width:min(1180px,100%);gap:clamp(18px,2.4vw,30px);margin:0 auto;padding:clamp(8px,3vh,34px) 0}.project-section{display:grid;gap:clamp(16px,2.3vw,28px)}.project-section+.project-section{padding-top:0}.project-section-note{display:flex;align-items:baseline;min-width:0;padding-bottom:2px;color:#f6f8fba8}.project-section-note span{flex:0 0 auto;color:#f6f8fbdb;font-size:clamp(14px,1.05vw,15px);font-weight:780;line-height:1.35;letter-spacing:0}.project-grid{display:grid;gap:clamp(18px,2.4vw,30px)}.project-card{position:relative;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.72fr);align-items:stretch;width:100%;overflow:hidden;min-height:0;border:1px solid color-mix(in srgb,var(--accent) 32%,rgba(255,255,255,.14));border-radius:8px;background:linear-gradient(145deg,#ffffff17,#ffffff05),color-mix(in srgb,var(--accent) 9%,var(--panel));box-shadow:0 24px 80px #00000057,inset 0 1px #ffffff29;outline:none;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.project-card:before{position:absolute;inset:0;content:"";pointer-events:none;background:linear-gradient(115deg,color-mix(in srgb,var(--accent) 20%,transparent),transparent 42%),linear-gradient(90deg,transparent 48%,rgba(0,0,0,.48) 100%);opacity:.82}.project-card:after{position:absolute;inset:10px;border:1px solid rgba(255,255,255,.08);border-radius:6px;content:"";pointer-events:none}.project-card:focus-within{border-color:color-mix(in srgb,var(--accent) 78%,white 16%);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 24%,transparent),0 22px 60px #00000057}@media(hover:hover){.project-card:hover{border-color:color-mix(in srgb,var(--accent) 62%,rgba(255,255,255,.26));box-shadow:0 30px 92px #0000006b,0 0 42px color-mix(in srgb,var(--accent) 18%,transparent);transform:translateY(-4px)}.project-card:hover .project-image{transform:scale(1.025)}.project-card:hover .github-badge,.project-card:hover .article-badge,.project-card:hover .site-badge{border-color:color-mix(in srgb,var(--accent) 55%,rgba(255,255,255,.28));background:color-mix(in srgb,var(--accent) 22%,rgba(0,0,0,.34))}}.project-frame{position:relative;z-index:1;display:block;min-height:0;margin:16px 0 16px 16px;overflow:hidden;border:1px solid rgba(255,255,255,.13);border-radius:6px;aspect-ratio:var(--frame-aspect);background:#0000004d;box-shadow:0 18px 46px #00000042}.project-frame--slides:after{position:absolute;top:0;right:0;bottom:0;width:82px;content:"";pointer-events:none;background:linear-gradient(90deg,transparent,rgba(0,0,0,.18))}.project-gallery{display:flex;width:100%;height:100%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch;cursor:grab}.project-gallery::-webkit-scrollbar{display:none}.project-gallery[data-dragging=true]{cursor:grabbing;scroll-snap-type:none}.project-image{flex:0 0 100%;display:block;width:100%;height:100%;object-fit:contain;scroll-snap-align:center;transition:transform .24s ease;-webkit-user-select:none;user-select:none}.project-info{position:relative;z-index:2;display:grid;align-content:center;gap:9px;min-height:0;padding:30px 90px 30px 30px}.project-info strong{color:var(--text);font-size:clamp(21px,2.1vw,30px);font-weight:880;line-height:1.05;letter-spacing:0}.project-info span{max-width:47em;color:var(--muted);font-size:clamp(14px,1.15vw,16px);font-weight:520;line-height:1.58}.project-info--link{border-radius:6px;transition:background .18s ease,color .18s ease}.project-info--link:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 42%,transparent);outline-offset:-8px}@media(hover:hover){.project-info--link:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}}.slide-dots{position:absolute;left:34px;bottom:28px;z-index:3;display:inline-flex;gap:7px;padding:8px;border-radius:999px;background:#00000042;-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2);pointer-events:none}.slide-dots span{width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--accent) 42%,rgba(255,255,255,.48));box-shadow:0 0 18px color-mix(in srgb,var(--accent) 32%,transparent)}.slide-dots--compact{gap:4px;padding:7px}.slide-dots--compact span{width:5px;height:5px}.github-badge,.article-badge,.site-badge{position:absolute;right:20px;bottom:22px;z-index:3;display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--accent) 36%,rgba(255,255,255,.2));border-radius:50%;background:#00000057;color:#fff;box-shadow:0 10px 30px #00000047;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);transition:background .18s ease,border-color .18s ease}.github-badge+.article-badge,.github-badge+.site-badge,.article-badge+.site-badge{right:78px}.github-badge:focus-visible,.article-badge:focus-visible,.site-badge:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 42%,transparent);outline-offset:4px}.project-card--no-link .project-info{padding-right:30px}@media(max-width:980px){.profile-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.home{align-items:start;padding:14px}.profile-strip{padding-top:18px}.profile-head{display:grid;align-items:start;gap:12px;padding-bottom:16px}.profile-mail{min-width:0}.profile-mails{justify-items:start;padding-bottom:0}.profile-mail span{overflow-wrap:anywhere}.profile-facts{grid-template-columns:1fr;gap:12px;padding-top:14px}.principles{grid-template-columns:1fr;gap:14px;padding:16px 0 18px}.principle{gap:5px}.project-sections{gap:14px;padding-top:16px}.project-section{gap:13px}.project-section-note{display:grid;gap:5px}.project-grid{gap:14px}.github-badge,.article-badge,.site-badge{right:16px;bottom:18px;width:40px;height:40px}.github-badge+.article-badge,.github-badge+.site-badge,.article-badge+.site-badge{right:66px}.project-card{grid-template-columns:1fr;min-height:0}.project-frame{margin:12px 12px 0;aspect-ratio:auto}.project-gallery,.project-image{height:auto}.project-info{align-content:start;min-height:0;padding:16px 70px 18px 16px}.project-card--no-link .project-info{padding-right:16px}.slide-dots{left:24px;bottom:22px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important}}
