*,:before,:after{box-sizing:border-box;border:0 solid;margin:0;padding:0}html{-webkit-text-size-adjust:100%;tab-size:4}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}body{margin:0}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}button,input,textarea,select{font:inherit;color:inherit;background:0 0}button{cursor:pointer}button:disabled{cursor:default}img,svg,canvas{vertical-align:middle;display:block}img{max-width:100%;height:auto}ol,ul{list-style:none}table{border-collapse:collapse;text-indent:0}[hidden]{display:none!important}
*{margin:0;padding:0;transition-timing-function:cubic-bezier(.19,1,.22,1)}body,html{-webkit-font-smoothing:antialiased;color:#fff;background-color:#212121;min-width:1150px;font-family:Microsoft YaHei;font-size:14px;line-height:1.5;overflow-x:hidden}.intro{position:relative}.clear:after{content:"";visibility:hidden;clear:both;height:0;display:block}.chatbox>.line{display:none}#startrack{width:100%;height:140%}.background.fixed{position:fixed;top:-60%}.background{width:100vw;height:100vh;position:absolute;top:0;left:0}.background .cover{background:linear-gradient(#20202000,#202020 70%);width:100%;height:100%;position:absolute;bottom:-42%;left:0}@keyframes bg{0%{border-radius:0;transform:rotate(0)}50%{border-radius:0;transform:rotate(180deg)}to{border-radius:0;transform:rotate(1turn)}}nav{z-index:2333;transform-origin:0 0;vertical-align:middle;font-family:Roboto,Tahoma,Consolas,Microsoft YaHei;transition:all .3s ease-out;position:fixed;bottom:0;left:20px;transform:rotate(-90deg)translateZ(0)}nav a.clip{background:#fff;border-radius:100%;width:3px;height:3px}nav a{color:#fff;opacity:.4;vertical-align:middle;margin:0 10px;font-size:13px;text-decoration:none;transition:all .3s;display:inline-block}nav a.time{opacity:1}nav a.active,nav a:hover{opacity:1;text-decoration:underline}.ch{-ms-animation:fadedown 1s cubic-bezier(.19, 1, .22, 1);width:100%;padding:80px 0;animation:1s cubic-bezier(.19,1,.22,1) fadedown}.ch h2.chtitle{letter-spacing:.2em;color:#ffffff80;padding-bottom:30px;font-size:26px}.ch h2.chtitle span{color:#fff}.ch h2.chtitle:after{content:"";background-color:#ffffff80;width:10%;height:5px;margin-top:30px;display:block}@keyframes fadedown{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.ch-container{width:1000px;height:100%;margin:0 auto;padding:20px 0;position:relative}.intro{color:#fff;height:100vh;padding:0}.intro .ch-container{-ms-animation:fadedown 3.5s cubic-bezier(.19, 1, .22, 1);animation:3.5s cubic-bezier(.19,1,.22,1) fadedown}.hello{position:absolute;bottom:20%;left:0}.hello h1,.hello h2{letter-spacing:.2em;font-size:22px;font-weight:400;line-height:1.5em}.hello h1{letter-spacing:.5em;font-size:42px}.hello h2{padding-top:.6em}.hello .circle{float:left;letter-spacing:0;margin-right:10px}.hello .circle span{background-color:#fff;border-radius:100%;width:13px;height:13px;margin-right:5px;display:inline-block}.hello .circle span:first-child{background-color:#ff493f}.hello .circle span:nth-child(2){background-color:#f7c900}.hello .circle span:nth-child(3){background-color:#00ff37}.about .introduct{line-height:2em}.about .introduct img.avatar{float:right;border-radius:100%;width:140px;margin-left:40px;margin-right:20px}.about ul.skill{margin-top:50px}.about ul.skill li{float:left;width:45%;margin-right:5%;padding:10px 0;list-style:none}.about ul.skill li p{width:26%;margin-right:3%;font-size:12px;display:inline-block}.about ul.skill li .progress{vertical-align:middle;background-color:#fff3;width:70%;height:3px;display:inline-block}.about ul.skill li .progress span{color:#fff6;opacity:0;letter-spacing:.5em;font-size:12px;transition:all .3s;position:relative;top:-5px}.about ul.skill li:hover .progress span{opacity:1;top:0}.about ul.skill li .progress div{background-color:#fff;height:3px;position:relative}ul.skill li .progress div{-ms-animation:progressin 7s;animation:7s progressin}@keyframes progressin{0%{width:0}}.about ul.skill li .progress div:after{content:"";border-top:3px solid #fff;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;display:inline-block;position:absolute;top:-8px;right:-4px}.links a{color:#fff;text-decoration:none}.find .links .item{text-align:center;float:left;opacity:.9;height:80px;margin:10px 1.2%;padding:5px 0;line-height:80px;transition:all .2s;position:relative}.find .links .item:hover{opacity:1;-webkit-animation:1s cubic-bezier(.315,.605,.375,.925) forwards index-link-active;transform:translateY(-10px)}.find .links .item .inner{z-index:5;position:relative}.find .links .item .bg{z-index:0;width:100%;height:1.8%;transition:all .15s;position:absolute;bottom:0;left:0}.find .links .item:hover .bg{border-radius:5px;width:100%;height:100%;box-shadow:0 3px 20px #00000047}.find .links .item i{font-size:20px}.find .links .item span{width:100px;display:inline-block}.find .links .col-3 .item{width:30.93%;margin:10px 1.2%}.gate .links .item{float:left;opacity:.85;height:60px;margin:5px 0;padding:15px 1.5%;transition:all .2s}.gate .links .item.akarin{opacity:.58}.gate .links .item:hover{opacity:1;background-color:#ffffff40;border-radius:5px;-webkit-animation:1s cubic-bezier(.315,.605,.375,.925) forwards index-link-active;transform:translateY(-5px);box-shadow:0 3px 20px #00000047}.gate .links .item .avatar{float:left;text-align:center;background-color:#353535;border-radius:100%;width:60px;height:60px;margin-right:15px;line-height:60px;overflow:hidden}.gate .links .item .avatar i{font-size:24px}.gate .links .item .avatar img{border-radius:100%;max-width:60px;height:60px}.gate .links .item .inner{padding:6px}.gate .links .item .inner h5{font-size:17px;font-weight:400}.gate .links .item .inner p{color:#fff9;font-size:13px}.footer{text-align:center}.footer a{color:inherit;text-decoration:none}.footer a:hover{text-decoration:underline}.footer h3{letter-spacing:.8em;margin:6px 0;font-size:20px;font-weight:400}.footer p{letter-spacing:1em;opacity:.3;font-size:12px}.footer p.c{letter-spacing:.1em;margin-top:20px}.chatbox .line{margin:40px 0}.chatbox .line p{margin:10px 0}.chatbox .question a{cursor:pointer;opacity:.8;background-color:#ffffff4d;border-radius:10px 10px 10px 0;margin-right:10px;padding:0 10px;font-size:12px;transition:all .2s;display:inline-block;transform:translateY(0)}.chatbox .question a:hover{opacity:1;-webkit-animation:1s cubic-bezier(.315,.605,.375,.925) forwards index-link-active;transform:translateY(-2px)}.chatbox .question.disable a{opacity:.3}.chatbox .question.disable a.selected{opacity:.9}.chatbox .question a.error{opacity:.3;animation:.2s ease-in-out error}.chatbox .loading span{background-color:#fff;border-radius:100%;width:10px;height:10px;margin-right:5px;animation:1.4s ease-in-out infinite both loading-point;display:inline-block}.chatbox .loading span:first-child{animation-delay:.2s}.chatbox .loading span:nth-child(2){animation-delay:.4s}.chatbox .loading span:nth-child(3){animation-delay:.6s}.enter-list{margin-left:-2%;margin-right:-2%}.enter-list .item{float:left;color:#fff;background-color:#333;border-radius:10px;width:29.33%;height:160px;margin:0 2%;text-decoration:none;transition:all .2s;display:block;position:relative}.enter-list .item:hover{background-color:#383838;animation:1s cubic-bezier(.315,.605,.375,.925) forwards index-link-active;transform:translateY(-5px)}.enter-list .item .text{position:absolute;bottom:16%;left:8%}.enter-list .item .bg{width:100%;height:100%;position:absolute;overflow:hidden}.enter-list .item .bg div{width:100%;height:100%}.enter-list .item .bg svg{opacity:.05;width:160px;height:160px;position:absolute;top:-20px;right:-20px}.enter-list .item .bg .triangle svg{width:180px;height:180px}.enter-list .item .bg .square svg{animation:15s linear infinite spin-icon}.enter-list .item .bg .triangle svg{animation:30s linear infinite spin-icon}.enter-list .item .bg .rounded svg{animation:20s linear infinite spin-icon}@keyframes spin-icon{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes tag-entering{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes tag-removing{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}@keyframes loading-point{0%{opacity:.8}50%{opacity:.25}to{opacity:1}}@keyframes error{0%{transform:translate(0)}25%{transform:translate(-2px)}50%{transform:translate(0)}75%{transform:translate(2px)}to{transform:translate(0)}}@keyframes index-link-active{0%{transform:perspective(1600px)rotateX(0)rotateY(0)translateZ(0)}16%{transform:perspective(1600px)rotateX(10deg)rotateY(5deg)translateZ(32px)}to{transform:perspective(1600px)rotateX(0)rotateY(0)translateZ(65px)}}@media screen and (min-width:1400px){.ch-container{width:70%}nav a{font-size:18px}}@media screen and (max-width:700px){body,html{min-width:0}.ch-container{width:auto;margin:0 5%}nav{left:0;top:inherit;transform-origin:0 100%;white-space:nowrap;background:linear-gradient(#0000,#000c);width:90%;padding:15px 5%;font-size:13px;bottom:0;overflow:auto;transform:rotate(0)translateZ(0)}.about .introduct img.avatar{float:none;width:100px;margin-left:0;margin-right:0}.about .introduct,.about .skill{float:none;width:auto}.about .skill{padding-top:40px}.about ul.skill li{width:100%}.find .links .item,.gate .links .item{height:auto;margin:10px 2%;padding:5px 0}.find .links .item{height:60px;font-size:13px;line-height:60px}.gate .links .item .avatar{width:40px;height:40px;line-height:40px}.gate .links .item .inner{padding:0}.gate .links .item .inner h5,.gate .links .item .inner p{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.footer h3,.footer p{letter-spacing:.2em}body,html{min-width:0;font-size:15px}div.el span{width:60%;margin:-40% auto 0;display:block;top:75px;left:0}.ch{padding:20px 0}.hello h1{font-size:40px}.readme{font-size:15px}.roll-tag{height:60px}.roll-tag span{white-space:normal;display:block}.enter-list .item{float:none;width:auto;height:100px;margin-bottom:20px}.gate .links .item{height:auto;margin:0;padding:15px 1.5%}.gate .links .item .avatar{width:40px;height:40px;margin-right:10px;line-height:40px}.gate .links .item .avatar img{max-width:40px;height:40px}.gate .links .item .inner{padding:0;line-height:1.5}.gate .links .item .inner h5{font-size:15px}.footer{padding-bottom:100px}.footer h3{letter-spacing:.1em}.footer p{letter-spacing:.2em}}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg:#101216;--surface:#191c22;--surface-raised:#20242c;--border:#ffffff12;--text:#edf1f7;--muted:#959dab;--accent:#b6d1f7}html{scroll-behavior:smooth;min-width:0}body,html{background:var(--page-bg);color:var(--text);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.7}body{min-width:0}main{position:relative}::selection{color:#fff;background:#769dce55}section[id],main[id]{scroll-margin-top:110px}.ch{padding:72px 0;animation:none}.ch-container{width:min(1080px,100% - 48px);height:auto;margin-inline:auto;padding:0}.section-eyebrow{color:var(--accent);letter-spacing:.2em;margin:0 0 12px;font-size:10px;font-weight:600;line-height:1.6}.section-heading{color:var(--text);letter-spacing:-.025em;margin:0 0 28px;font-size:clamp(26px,3vw,36px);font-weight:600;line-height:1.4}.ch h2.chtitle{letter-spacing:-.02em;color:var(--muted);padding-bottom:24px;font-size:clamp(24px,3vw,32px);font-weight:500}.ch h2.chtitle:after{background:var(--accent);border-radius:2px;width:32px;height:2px;margin-top:22px}.ch h2.chtitle span{color:var(--text)}.star-background{z-index:0;pointer-events:none;background:var(--page-bg);overflow:visible}.star-background.is-fixed{position:fixed;top:-60%}.star-background canvas{width:100%;height:140%}.star-background:after{content:"";background:radial-gradient(at 80% 15%,#789cc014,#0000 58%);height:140%;position:absolute;inset:0}.star-background .cover{z-index:1;background:linear-gradient(0deg, var(--page-bg) 30%, #10121600)}.icon{vertical-align:-.18em;flex:none;width:1.25em;height:1.25em;display:inline-block}.skip-link{z-index:100;background:var(--text);color:var(--page-bg);border-radius:10px;padding:10px 18px;position:fixed;top:-100px;left:24px}.skip-link:focus{top:100px}a:focus-visible,button:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.site-header{z-index:20;-webkit-backdrop-filter:blur(18px);background:#14171c99;border:1px solid #ffffff0d;border-radius:18px;align-items:center;gap:20px;width:min(1080px,100% - 48px);min-height:64px;padding:10px 16px;transition:border-color .25s,background .25s,box-shadow .25s;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)}.site-header--scrolled{background:#15181eef;border-color:#ffffff16;box-shadow:0 12px 40px #0003}.site-brand{color:var(--text);letter-spacing:-.02em;white-space:nowrap;flex-shrink:0;align-items:center;gap:10px;font-size:15px;font-weight:650;display:inline-flex}.site-brand img{object-fit:cover;border-radius:10px;width:30px;height:30px;box-shadow:0 0 0 1px #ffffff15}.site-brand__dot{color:var(--accent)}.site-header .header-nav{width:auto;height:auto;font:inherit;z-index:auto;background:0 0;flex:none;align-items:center;gap:4px;margin-left:auto;padding:0;transition:none;display:flex;position:static;top:auto;bottom:auto;left:auto;overflow:visible;transform:none}.site-header .header-nav a{min-height:40px;color:var(--muted);opacity:1;border-radius:10px;justify-content:center;align-items:center;margin:0;padding:6px 16px;font-size:13px;font-weight:500;text-decoration:none;transition:color .2s,background .2s;display:inline-flex}.site-header .header-nav a:hover{color:var(--text);background:#ffffff06;text-decoration:none}.site-header .header-nav a[aria-current=page]{color:var(--text);background:#ffffff0e;box-shadow:inset 0 0 0 1px #ffffff05}.header-github{border-left:1px solid var(--border);width:38px;height:38px;color:var(--muted);justify-content:center;align-items:center;padding:9px;transition:color .2s;display:flex}.header-github:hover{color:var(--text)}.back-to-top{z-index:19;width:44px;height:44px;color:var(--text);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#20242cde;border:1px solid #ffffff17;border-radius:14px;place-items:center;transition:background .2s,transform .2s;display:grid;position:fixed;bottom:28px;right:28px;box-shadow:0 6px 22px #0003}.back-to-top:hover{background:#2c3340;transform:translateY(-3px)}.back-to-top .icon{transform:rotate(-45deg)}.intro.site-hero{align-items:center;height:auto;min-height:min(840px,94svh);padding:156px 0 112px;display:flex;position:relative}.intro.site-hero .ch-container{width:min(1080px,100% - 48px);padding:0;animation:.8s cubic-bezier(.2,.65,.3,1) both hero-reveal}.site-hero .hello{max-width:840px;position:relative;inset:auto}.hero-eyebrow{color:#a5adbc;letter-spacing:.19em;align-items:center;gap:14px;margin-bottom:28px;font-size:10px;font-weight:500;display:flex}.hero-eyebrow .circle{float:none;align-items:center;gap:5px;margin:0;display:flex}.hero-eyebrow .circle span{opacity:.85;width:6px;height:6px;margin:0}.hero-eyebrow .circle span:first-child{background:#e4a0a0}.hero-eyebrow .circle span:nth-child(2){background:#ddc48b}.hero-eyebrow .circle span:nth-child(3){background:#9ec5ae}.site-hero .hello h1{color:#f3f5fa;letter-spacing:.005em;text-wrap:balance;max-width:840px;margin:0;font-size:clamp(40px,5.2vw,70px);font-weight:650;line-height:1.35}#slogan{white-space:pre-line;overflow-wrap:anywhere}.hero-description{color:#abb2c0;text-wrap:balance;max-width:530px;margin-top:26px;font-size:16px;line-height:1.9}.hero-identity{color:#d5dbe5;flex-wrap:wrap;align-items:center;gap:10px;margin-top:26px;font-size:13px;font-weight:500;display:flex}.hero-identity img{border-radius:50%;width:28px;height:28px;box-shadow:0 0 0 2px #ffffff0a}.hero-identity__divider{background:#ffffff20;width:1px;height:12px;margin:0 3px}.hero-identity .hero-identity__note{color:#7f899b;font-size:11px;font-weight:400}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.site-button{border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:10px 20px;font-size:13px;font-weight:600;line-height:1.4;transition:transform .2s,background .2s,border-color .2s,box-shadow .2s;display:inline-flex}.site-button:hover{transform:translateY(-2px)}.site-button--primary{color:#151c28;background:#e2eaf6;box-shadow:inset 0 2px #ffffff30,0 4px 24px #b6d1f70c}.site-button--primary:hover{background:#f1f5fc;box-shadow:0 6px 30px #b6d1f721}.site-button--quiet{color:#d0d7e4;background:#ffffff04;border-color:#ffffff16}.site-button--quiet:hover{background:#ffffff0b;border-color:#ffffff2c}.hero-scroll{color:#737c8c;letter-spacing:.12em;align-items:center;gap:12px;font-size:10px;display:inline-flex;position:absolute;bottom:-68px;left:0}.hero-scroll__line{background:#8794ab55;width:34px;height:1px;transition:width .3s;display:block}.hero-scroll:hover{color:#c4cfdf}.hero-scroll:hover .hero-scroll__line{width:48px}.intro.site-hero--work,.intro.site-hero--friend{min-height:560px;padding-top:156px;padding-bottom:112px}.site-hero--work .hello h1,.site-hero--friend .hello h1{font-size:clamp(38px,4.8vw,64px)}.site-hero--work .hero-identity,.site-hero--friend .hero-identity{display:none}.site-gate{padding-top:64px;padding-bottom:72px}.site-gate__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.site-gate__card{border:1px solid var(--border);background:linear-gradient(145deg,#1c202788,#16191f55);border-radius:16px;flex-direction:column;align-items:flex-start;gap:14px;min-height:170px;padding:26px;transition:transform .25s,border-color .25s,background .25s;display:flex;position:relative}.site-gate__card:hover{background:#1c2129;border-color:#ffffff26;transform:translateY(-4px)}.site-gate__number{color:#768093;letter-spacing:.08em;font-family:ui-monospace,Consolas,monospace;font-size:10px}.site-gate__label{width:100%;color:var(--text);justify-content:space-between;align-items:center;font-size:18px;font-weight:500;display:flex}.site-gate__label .icon{color:#818c9d;width:18px;height:18px;transition:color .2s,transform .2s}.site-gate__card:hover .icon{color:var(--accent);transform:translate(2px,-2px)}.site-gate__description{color:var(--muted);font-size:12px;line-height:1.7}.site-footer{border-top:1px solid var(--border);padding:32px 0;position:relative}.site-footer__inner{justify-content:space-between;align-items:center;gap:20px;display:flex}.site-footer__inner>div>a{color:#d9e0eb;font-size:14px;font-weight:600}.site-footer__inner>div>p{color:#6f798a;margin-top:5px;font-size:11px}.site-footer__credit{color:#758092;font-size:11px}.site-footer__credit a:hover{color:#c7d2e3}@keyframes hero-reveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (min-width:768px){::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#63708577;border-radius:6px}::-webkit-scrollbar-track{background:0 0}}@media (max-width:700px){.ch{padding:52px 0}.site-header{border-radius:15px;gap:10px;width:calc(100% - 28px);min-height:58px;padding:7px 10px;top:12px}.site-brand{gap:8px;font-size:12px}.site-brand img{border-radius:9px;width:27px;height:27px}.site-header .header-nav{gap:2px}.site-header .header-nav a{border-radius:9px;min-height:40px;padding:7px 10px;font-size:12px}.header-github{display:none}.ch-container,.intro.site-hero .ch-container{width:calc(100% - 40px)}.intro.site-hero{min-height:min(800px,92svh);padding-top:144px;padding-bottom:96px}.intro.site-hero--work,.intro.site-hero--friend{min-height:540px}.hero-eyebrow{letter-spacing:.12em;gap:10px;margin-bottom:24px;font-size:9px}.site-hero .hello h1{font-size:clamp(35px,9.5vw,52px);line-height:1.4}.hero-description{margin-top:22px;font-size:14px;line-height:1.85}.hero-identity{margin-top:22px}.hero-identity__divider,.hero-identity__note{display:none}.hero-actions{gap:10px;margin-top:28px}.site-button{border-radius:10px;padding:11px 15px;font-size:12px}.hero-scroll{bottom:-58px}.site-gate__grid{grid-template-columns:1fr;gap:10px}.site-gate__card{gap:8px;min-height:110px;padding:18px 22px}.site-gate__number{position:absolute;top:23px;right:50px}.site-gate__label{font-size:16px}.site-footer__inner{flex-direction:column;align-items:flex-start;gap:18px}.back-to-top{border-radius:12px;width:40px;height:40px;bottom:20px;right:20px}}@media (max-width:639px){.star-background.is-fixed{position:absolute;top:0}}@media (max-width:350px){.site-brand img{display:none}.site-header .header-nav a{padding-inline:9px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
.home-about.ch{padding-block:5.5rem 2.5rem}.home-projects.ch{padding-block:2.5rem 5.5rem}.home-section-heading{margin-bottom:1.75rem}.home-section-heading .section-heading{margin:0}.home-section-heading--with-link{justify-content:space-between;align-items:flex-end;gap:1.5rem;display:flex}.home-profile{border:1px solid var(--border,#ffffff12);background:var(--surface,#191c22);border-radius:1.25rem;grid-template-columns:15.5rem minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 12px 40px #0000000d}.home-profile__identity{border-right:1px solid var(--border,#ffffff12);background:linear-gradient(145deg,#b6d1f709,#0000 65%);flex-direction:column;align-items:flex-start;padding:2rem;display:flex}.home-profile__avatar{object-fit:cover;border:1px solid #ffffff1a;border-radius:1.5rem;width:6rem;height:6rem;display:block;box-shadow:0 8px 20px #0000001f}.home-profile__identity-copy{margin-top:1.25rem}.home-profile__name{color:var(--text,#edf1f7);letter-spacing:-.025em;margin:0;font-size:1.125rem;font-weight:600;line-height:1.5}.home-profile__focus{color:var(--muted,#959dab);margin:.5rem 0 0;font-size:.8125rem;line-height:1.8}.home-profile__socials{flex-wrap:wrap;gap:.75rem;margin-top:auto;padding-top:1.5rem;display:flex}.home-profile__social{color:var(--text,#edf1f7);align-items:center;gap:.55rem;font-size:.875rem;line-height:1.5;transition:color .2s;display:inline-flex}.home-profile__social .icon{width:1.125rem;height:1.125rem}.home-profile__social .home-profile__social-arrow{width:.95rem;height:.95rem;color:var(--muted,#959dab);transition:transform .2s,color .2s}.home-profile__social:hover{color:var(--accent,#b6d1f7)}.home-profile__social:hover .home-profile__social-arrow{color:inherit;transform:translate(2px,-2px)}.home-profile__content{min-width:0;padding:2.25rem 2.5rem 1.75rem}.home-profile__content h3{color:var(--text,#edf1f7);letter-spacing:-.025em;margin:0 0 1rem;font-size:1.375rem;font-weight:600;line-height:1.55}.home-profile__content p{max-width:39rem;color:var(--muted,#959dab);text-wrap:pretty;margin:.75rem 0 0;font-size:.9375rem;line-height:1.95}.home-profile__actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.home-action{min-height:2.625rem;color:var(--text,#edf1f7);font:inherit;cursor:pointer;background:#ffffff04;border:1px solid #ffffff14;border-radius:.625rem;justify-content:center;align-items:center;gap:.55rem;padding:.65rem 1rem;font-size:.8125rem;font-weight:500;line-height:1.5;transition:border-color .2s,background-color .2s,transform .2s;display:inline-flex}.home-action .icon{width:1.125rem;height:1.125rem}.home-action--primary{color:var(--accent,#b6d1f7);background:#b6d1f70d;border-color:#b6d1f724}.home-action:hover{background:#b6d1f714;border-color:#b6d1f740;transform:translateY(-1px)}.home-action:active{transform:translateY(0)}.home-roll-tag{min-height:2rem;margin-top:.875rem;position:relative}.home-roll-tag__hint{color:var(--muted,#959dab);font-size:.75rem;line-height:1.875rem}.home-roll-tag__item{background:var(--surface-raised,#20242c);max-width:100%;color:var(--accent,#b6d1f7);white-space:nowrap;border:1px solid #b6d1f71c;border-radius:.375rem;padding:.25rem .625rem;font-size:.75rem;line-height:1.375rem;animation:.14s both home-tag-enter;display:inline-block;position:absolute;top:0;left:0}.home-roll-tag__item:before{content:"#";opacity:.55;margin-right:.4rem}.home-roll-tag__leaving{pointer-events:none;animation:.14s both home-tag-leave}.home-practices-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin:2.5rem 0 1rem;display:flex}.home-practices-heading h3{color:var(--text,#edf1f7);margin:0;font-size:1rem;font-weight:500}.home-practices-heading>span{color:var(--muted,#959dab);font-size:.75rem}.home-practices{grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.home-practices li{border:1px solid var(--border,#ffffff12);background:#191c22a6;border-radius:.75rem;min-width:0;padding:1.125rem 1rem}.home-practices__name{color:var(--text,#edf1f7);font-size:.875rem;font-weight:500;line-height:1.55;display:block}.home-practices__description{color:var(--muted,#959dab);margin-top:.375rem;font-size:.8125rem;line-height:1.7;display:block}.home-projects__all{color:var(--muted,#959dab);flex:none;align-items:center;gap:.375rem;padding-block:.375rem;font-size:.8125rem;transition:color .2s;display:inline-flex}.home-projects__all .icon{width:1rem;height:1rem}.home-projects__all:hover{color:var(--text,#edf1f7)}.home-projects__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.home-projects__grid>li{min-width:0}.home-project-card{border:1px solid var(--border,#ffffff12);background:var(--surface,#191c22);border-radius:1rem;height:100%;padding:1.5rem;transition:transform .22s,border-color .22s,background-color .22s;display:block}.home-project-card__icons{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.home-project-card__icon{width:2.25rem;height:2.25rem;color:var(--muted,#959dab);background:#ffffff05;border:1px solid #ffffff0f;border-radius:.625rem;place-items:center;display:grid}.home-project-card__icon .icon{width:1.125rem;height:1.125rem}.home-project-card__arrow{width:1.125rem;height:1.125rem;color:var(--muted,#959dab);transition:transform .22s,color .22s}.home-project-card h3{color:var(--text,#edf1f7);letter-spacing:-.025em;overflow-wrap:anywhere;margin:0;font-size:1rem;font-weight:500;line-height:1.55}.home-project-card p{color:var(--muted,#959dab);margin:.5rem 0 0;font-size:.875rem;line-height:1.75}.home-project-card__links{flex-wrap:wrap;gap:1rem;margin-top:1.25rem;display:flex}.home-project-card__links a{color:var(--muted,#959dab);align-items:center;gap:.375rem;font-size:.8125rem;line-height:1.5;transition:color .2s;display:inline-flex}.home-project-card__links a:hover{color:var(--accent,#b6d1f7)}.home-project-card__links .icon{width:1rem;height:1rem}.home-project-card:hover{background:#1c2027;border-color:#b6d1f72e}.home-profile__social:focus-visible,.home-action:focus-visible,.home-projects__all:focus-visible,.home-project-card:focus-visible{outline:2px solid var(--accent,#b6d1f7);outline-offset:5px}.home-project-card__links a:focus-visible{outline:2px solid var(--accent,#b6d1f7);outline-offset:4px}@keyframes home-tag-enter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes home-tag-leave{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@media (max-width:960px){.home-profile{grid-template-columns:13.5rem minmax(0,1fr)}.home-profile__identity{padding:1.75rem 1.5rem}.home-profile__content{padding:1.75rem 1.75rem 1.5rem}.home-practices{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:700px){.home-about.ch{padding-block:3.5rem 1.75rem}.home-projects.ch{padding-block:1.75rem 3.5rem}.home-section-heading{margin-bottom:1.5rem}.home-section-heading--with-link{flex-direction:column;align-items:flex-start;gap:.75rem}.home-profile{border-radius:1rem;grid-template-columns:minmax(0,1fr)}.home-profile__identity{border-right:0;border-bottom:1px solid var(--border,#ffffff12);grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:1rem;padding:1.5rem;display:grid}.home-profile__avatar{border-radius:1rem;width:4rem;height:4rem}.home-profile__identity-copy{margin-top:0}.home-profile__name{overflow-wrap:anywhere;font-size:1rem}.home-profile__focus{margin-top:.375rem;font-size:.75rem;line-height:1.7}.home-profile__socials{grid-column:1/-1;margin-top:0;padding-top:1.25rem}.home-profile__content{padding:1.5rem}.home-profile__content h3{margin-bottom:.75rem;font-size:1.25rem}.home-profile__content p{font-size:.875rem;line-height:1.9}.home-profile__actions{gap:.625rem}.home-action{padding-inline:.875rem}.home-practices-heading{margin-top:2rem}.home-practices{grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}.home-practices li{padding:1rem .875rem}.home-practices__name{font-size:.8125rem}.home-practices__description{font-size:.75rem}.home-projects__grid{grid-template-columns:minmax(0,1fr);gap:.75rem}.home-project-card{padding:1.375rem}.home-project-card__icons{margin-bottom:1.125rem}}@media (max-width:420px){.home-profile__actions{grid-template-columns:minmax(0,1fr);display:grid}}@media (prefers-reduced-motion:reduce){.home-roll-tag__item{animation:none}.home-roll-tag__leaving{display:none}.home-profile__social:hover .home-profile__social-arrow,.home-action:hover{transform:none}}
.local-chat{z-index:50;position:relative}.local-chat__backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05070bb3;transition:opacity .18s;position:fixed;inset:0}.local-chat__backdrop[data-closed]{opacity:0}.local-chat__position{justify-content:center;align-items:center;padding:2.5rem 1.5rem;display:flex;position:fixed;inset:0}.local-chat__panel{isolation:isolate;border:1px solid var(--border,#ffffff12);background:var(--surface,#191c22);width:100%;max-width:54rem;height:min(44rem,100dvh - 5rem);min-height:0;color:var(--text,#edf1f7);text-align:left;border-radius:1.5rem;flex-direction:column;font-family:inherit;transition:opacity .18s,transform .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 32px 96px #0007,inset 0 1px #ffffff05}.local-chat__panel[data-closed]{opacity:0;transform:translateY(10px)scale(.988)}.local-chat__header{border-bottom:1px solid var(--border,#ffffff12);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.75rem;display:flex}.local-chat__identity{align-items:center;gap:.75rem;min-width:0;display:flex}.local-chat__identity>div:last-child{min-width:0}.local-chat__avatar{border:1px solid var(--border,#ffffff12);background:var(--surface-raised,#20242c);border-radius:.8rem;flex:0 0 2.5rem;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:flex;overflow:hidden}.local-chat__avatar-icon{width:1.25rem;height:1.25rem}.local-chat__avatar-photo{border-radius:inherit;object-fit:cover;width:100%;height:100%}.local-chat__title{color:var(--text,#edf1f7);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1.0625rem;font-weight:550;line-height:1.55;overflow:hidden}.local-chat__subtitle{color:var(--muted,#959dab);white-space:nowrap;align-items:center;gap:.375rem;margin:.125rem 0 0;font-size:.75rem;line-height:1.5;display:flex}.local-chat__status-dot{background:var(--accent,#b6d1f7);opacity:.75;border-radius:50%;flex-shrink:0;width:.3125rem;height:.3125rem}.local-chat__typing{animation:1.5s ease-in-out infinite local-chat-pulse}.local-chat__actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.local-chat__round-button{border:1px solid var(--border,#ffffff12);width:2.375rem;height:2.375rem;color:var(--muted,#959dab);cursor:pointer;background:0 0;border-radius:.7rem;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.local-chat__round-button:hover{background:var(--surface-raised,#20242c);color:var(--text,#edf1f7);border-color:#ffffff20}.local-chat__new-session{gap:.375rem;width:auto;padding:0 .7rem;font-size:.75rem}.local-chat__action-icon{width:1.0625rem;height:1.0625rem}.local-chat__round-button:focus-visible,.local-chat__suggestion:focus-visible,.local-chat__send:focus-visible,.local-chat__details-button:focus-visible{outline:2px solid var(--accent,#b6d1f7);outline-offset:3px}.local-chat__scroll{overscroll-behavior:contain;scrollbar-color:#ffffff24 transparent;scrollbar-width:thin;flex:1;min-height:0;padding:1.5rem 1.75rem;overflow-y:auto}.local-chat__empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:26rem;min-height:100%;margin:0 auto;padding:1.5rem .5rem;display:flex}.local-chat__profile-preview{object-fit:cover;border:1px solid #ffffff1a;border-radius:1.35rem;flex-shrink:0;width:4.5rem;height:4.5rem;margin-bottom:1.5rem;box-shadow:0 8px 28px #0003}.local-chat__empty h2{color:var(--text,#edf1f7);letter-spacing:-.025em;margin:0;font-size:1.375rem;font-weight:550;line-height:1.5}.local-chat__empty p{max-width:25rem;color:var(--muted,#959dab);text-wrap:pretty;margin:.75rem 0 0;font-size:.875rem;line-height:1.9}.local-chat__messages{flex-direction:column;gap:1.75rem;margin:.5rem 0;display:flex}.local-chat__message{justify-content:flex-start;align-items:flex-start;gap:.625rem;min-width:0;display:flex}.local-chat__message>.local-chat__avatar{border-radius:.625rem;flex-basis:2rem;width:2rem;height:2rem;margin-top:1.5rem}.local-chat__message--user{flex-direction:row-reverse}.local-chat__message-content{flex-direction:column;align-items:flex-start;gap:.375rem;min-width:0;max-width:min(42rem,100% - 2.625rem);display:flex}.local-chat__message--user .local-chat__message-content{align-items:flex-end;max-width:min(35rem,100% - 2.625rem)}.local-chat__message-author{color:var(--muted,#959dab);margin:0 .25rem;font-size:.75rem;line-height:1.5}.local-chat__bubble{border:1px solid var(--border,#ffffff12);background:var(--surface-raised,#20242c);min-width:0;max-width:100%;color:var(--text,#edf1f7);border-radius:1rem 1rem 1rem .375rem;padding:.875rem 1.125rem;font-size:.9375rem;line-height:1.8}.local-chat__message--user .local-chat__bubble{background:#b6d1f712;border-color:#b6d1f71f;border-radius:1rem 1rem .375rem}.local-chat__markdown{overflow-wrap:anywhere}.local-chat__markdown p{white-space:pre-wrap;margin:0 0 .8em}.local-chat__markdown>:first-child{margin-top:0}.local-chat__markdown>:last-child{margin-bottom:0}.local-chat__markdown a{color:var(--accent,#b6d1f7);text-underline-offset:3px;-webkit-text-decoration:underline #b6d1f760;text-decoration:underline #b6d1f760}.local-chat__markdown a:hover{text-decoration-color:currentColor}.local-chat__markdown ul,.local-chat__markdown ol{margin:.65em 0;padding-left:1.4em}.local-chat__markdown ul{list-style:outside}.local-chat__markdown ol{list-style:decimal}.local-chat__markdown li{margin:.3em 0}.local-chat__markdown h1,.local-chat__markdown h2,.local-chat__markdown h3,.local-chat__markdown h4,.local-chat__markdown h5,.local-chat__markdown h6{margin:1em 0 .45em;font-size:1.05em;font-weight:600;line-height:1.6}.local-chat__markdown pre{border:1px solid var(--border,#ffffff12);background:var(--page-bg,#101216);white-space:pre-wrap;border-radius:.6rem;max-width:100%;margin:.75em 0;padding:.75em;overflow:auto}.local-chat__markdown code{background:#ffffff07;border-radius:.25rem;padding:.12em .32em;font-size:.9em}.local-chat__markdown pre code{background:0 0;padding:0}.local-chat__markdown blockquote{color:var(--muted,#959dab);border-left:2px solid #b6d1f74d;margin:.75em 0;padding-left:.9em}.local-chat__markdown hr{border:0;border-top:1px solid var(--border,#ffffff12);height:0;margin:1.25em 0}.local-chat__markdown table{border-collapse:collapse;max-width:100%;font-size:.875em;display:block;overflow-x:auto}.local-chat__markdown th,.local-chat__markdown td{border:1px solid #ffffff18;padding:.5em .65em}.local-chat__composer{border-top:1px solid var(--border,#ffffff12);background:var(--surface,#191c22);flex-direction:column;flex-shrink:0;gap:.75rem;padding:1rem 1.75rem 1.125rem;display:flex}.local-chat__suggestions{overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#ffffff1f transparent;align-items:center;gap:.5rem;width:100%;padding:.1875rem 1px .375rem;scroll-padding-inline:.25rem;display:flex;overflow-x:auto}.local-chat__suggestion{border:1px solid var(--border,#ffffff12);color:var(--muted,#959dab);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;flex-shrink:0;align-items:center;padding:.4375rem .8125rem;font-size:.8125rem;font-weight:400;line-height:1.5;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.local-chat__suggestion:hover{background:var(--surface-raised,#20242c);color:var(--text,#edf1f7);border-color:#ffffff20}.local-chat__form{border:1px solid var(--border,#ffffff12);background:var(--page-bg,#101216);border-radius:.875rem;align-items:center;gap:.5rem;margin:0;padding:.375rem;transition:border-color .15s,box-shadow .15s;display:flex}.local-chat__form:focus-within{border-color:#b6d1f74d;box-shadow:0 0 0 3px #b6d1f709}.local-chat__input-wrap{flex:1;min-width:0}.local-chat__input{width:100%;min-height:2.625rem;color:var(--text,#edf1f7);font:inherit;background:0 0;border:0;border-radius:.5rem;outline:none;padding:.5625rem .625rem;font-size:1rem;line-height:1.5rem;display:block}.local-chat__input::placeholder{color:var(--muted,#959dab);opacity:.8}.local-chat__send{background:var(--accent,#b6d1f7);color:#16263d;min-width:2.625rem;height:2.625rem;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:.625rem;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;padding:0 .875rem;font-size:.875rem;font-weight:550;transition:background .15s,color .15s;display:inline-flex}.local-chat__send:hover:not(:disabled){background:#c9dffb}.local-chat__send:disabled{background:var(--surface-raised,#20242c);color:#697382;cursor:not-allowed}.local-chat__send-icon{width:1rem;height:1rem}.local-chat__composer-note{color:var(--muted,#959dab);justify-content:space-between;align-items:center;gap:.75rem;font-size:.6875rem;line-height:1.5;display:flex}.local-chat__composer-note p{min-width:0;margin:0}.local-chat__counter,.local-chat__keyboard-hint{font-variant-numeric:tabular-nums;flex-shrink:0}.local-chat__details{flex-shrink:0}.local-chat__details-button{color:var(--muted,#959dab);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:.375rem;justify-content:center;align-items:center;gap:.3rem;padding:.25rem .375rem;font-size:.75rem;line-height:1.5;transition:color .15s,background .15s;display:inline-flex}.local-chat__details-button:hover,.local-chat__details-button[data-open]{color:var(--accent,#b6d1f7);background:#b6d1f709}.local-chat__details-icon{width:.9375rem;height:.9375rem}.local-chat__details-panel{--anchor-gap:10px;--anchor-padding:12px;z-index:60;background:var(--surface-raised,#20242c);width:28rem;max-width:calc(100vw - 1.5rem);color:var(--text,#edf1f7);border:1px solid #ffffff1a;border-radius:1rem;font-family:inherit;transition:opacity .16s,transform .16s;overflow:hidden;box-shadow:0 20px 60px #0007}.local-chat__details-panel[data-closed]{opacity:0;transform:translateY(-.25rem)}.local-chat__details-heading{border-bottom:1px solid var(--border,#ffffff12);justify-content:space-between;align-items:center;gap:.75rem;padding:.875rem 1.125rem;display:flex}.local-chat__details-heading h3{color:var(--text,#edf1f7);margin:0;font-size:.875rem;font-weight:550;line-height:1.5}.local-chat__details-heading>span{color:var(--muted,#959dab);background:#b6d1f70d;border-radius:999px;flex-shrink:0;padding:.1875rem .5rem;font-size:.6875rem;line-height:1.5}.local-chat__details-content{overscroll-behavior:contain;scrollbar-color:#ffffff24 transparent;scrollbar-width:thin;max-height:min(28rem,100dvh - 8rem);overflow-y:auto}.local-chat__sources,.local-chat__details-answer{padding:1rem 1.125rem}.local-chat__sources{border-bottom:1px solid var(--border,#ffffff12)}.local-chat__sources h4,.local-chat__details-answer>h4{color:var(--muted,#959dab);margin:0 0 .625rem;font-size:.75rem;font-weight:500;line-height:1.5}.local-chat__sources ul{flex-direction:column;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.local-chat__sources li{color:var(--text,#edf1f7);overflow-wrap:anywhere;padding-left:.75rem;font-size:.8125rem;line-height:1.7;position:relative}.local-chat__sources li:before{content:"";background:var(--accent,#b6d1f7);opacity:.6;border-radius:50%;width:.25rem;height:.25rem;position:absolute;top:.7em;left:0}.local-chat__details-answer .local-chat__markdown{color:var(--text,#edf1f7);font-size:.875rem;line-height:1.8}@keyframes local-chat-pulse{50%{opacity:.55}}@media (max-width:640px){.local-chat__position{padding:.75rem}.local-chat__panel{border-radius:1.25rem;height:calc(100dvh - 1.5rem)}.local-chat__header{gap:.625rem;padding:1rem}.local-chat__identity{gap:.625rem}.local-chat__identity>.local-chat__avatar{border-radius:.75rem;flex-basis:2.25rem;width:2.25rem;height:2.25rem}.local-chat__title{font-size:1rem}.local-chat__round-button{width:2.375rem;height:2.375rem}.local-chat__new-session{padding:0}.local-chat__new-session>span{display:none}.local-chat__scroll{padding:1.125rem 1rem}.local-chat__empty{padding:1.25rem 0}.local-chat__profile-preview{border-radius:1rem;width:3.5rem;height:3.5rem;margin-bottom:1.125rem}.local-chat__empty h2{font-size:1.25rem}.local-chat__empty p{max-width:20rem;font-size:.8125rem;line-height:1.85}.local-chat__messages{gap:1.5rem}.local-chat__message{gap:.5rem}.local-chat__message>.local-chat__avatar{border-radius:.5rem;flex-basis:1.75rem;width:1.75rem;height:1.75rem}.local-chat__message-content,.local-chat__message--user .local-chat__message-content{max-width:calc(100% - 2.25rem)}.local-chat__bubble{padding:.75rem .875rem;font-size:.9375rem;line-height:1.75}.local-chat__details-button{min-height:2.125rem;padding:.375rem}.local-chat__composer{padding:.75rem 1rem calc(.875rem + env(safe-area-inset-bottom,0px));gap:.625rem}.local-chat__suggestions{scrollbar-width:none}.local-chat__suggestions::-webkit-scrollbar{display:none}.local-chat__suggestion{padding:.4375rem .75rem}.local-chat__keyboard-hint{display:none}}@media (max-width:420px){.local-chat__send{width:2.625rem;padding:0}.local-chat__send>span{display:none}.local-chat__subtitle{font-size:.6875rem}}@media (max-height:520px){.local-chat__position{padding-block:.5rem}.local-chat__panel{height:calc(100dvh - 1rem)}.local-chat__header{padding-block:.625rem}.local-chat__scroll{padding-block:.75rem}.local-chat__empty{min-height:12rem;padding-block:.75rem}.local-chat__profile-preview{border-radius:.875rem;width:2.75rem;height:2.75rem;margin-bottom:.75rem}.local-chat__empty h2{font-size:1.125rem}.local-chat__composer{gap:.5rem;padding-top:.5rem;padding-bottom:.625rem}}@media (prefers-reduced-motion:reduce){.local-chat__typing{animation:none}.local-chat__backdrop,.local-chat__panel,.local-chat__details-panel{transition:none}}
.works-section{scroll-margin-top:100px;position:relative}.work-heading{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.work-eyebrow{color:var(--accent,#b6d1f7);letter-spacing:.18em;margin-bottom:12px;font-size:11px;font-weight:600;line-height:1.4}.works-section .chtitle{color:var(--text,#edf1f7);letter-spacing:-.04em;margin:0;padding:0;font-size:clamp(28px,3.6vw,38px);font-weight:650;line-height:1.3}.work-total{white-space:nowrap;align-items:baseline;gap:8px;padding-bottom:3px;display:flex}.work-total strong{color:var(--text,#edf1f7);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:500;line-height:1}.work-total span{color:var(--muted,#959dab);font-size:12px}.work-collection-note{color:var(--muted,#959dab);margin:15px 0 32px;font-size:14px;line-height:1.9}.work-collection-note a{color:var(--accent,#b6d1f7);text-underline-offset:4px;-webkit-text-decoration:underline #b6d1f740;text-decoration:underline #b6d1f740}.work-collection-note a:hover{text-decoration-color:currentColor}.work-explorer{border:1px solid var(--border,#ffffff12);background:linear-gradient(120deg, #ffffff03, transparent 70%), var(--surface,#191c22);border-radius:16px;padding:24px}.work-search label{color:var(--text,#edf1f7);margin-bottom:11px;font-size:14px;font-weight:500;display:block}.work-search-field{align-items:center;display:flex;position:relative}.work-search-field input{background:var(--page-bg,#101216);width:100%;min-width:0;height:48px;color:var(--text,#edf1f7);appearance:none;border:1px solid #ffffff13;border-radius:10px;outline:none;padding:0 48px 0 43px;font-size:15px;line-height:1.5;transition:border-color .2s,box-shadow .2s}.work-search-field input::placeholder{color:#737e8f}.work-search-field input:focus{border-color:#b6d1f77a;box-shadow:0 0 0 3px #b6d1f70b}.work-search-field input::-webkit-search-cancel-button{appearance:none}.work-search-field input::-webkit-search-decoration{appearance:none}.work-search-icon{width:19px;height:19px;color:var(--muted,#959dab);pointer-events:none;position:absolute;left:15px}.work-search-clear{width:32px;height:32px;color:var(--muted,#959dab);border-radius:7px;justify-content:center;align-items:center;transition:background .2s,color .2s;display:flex;position:absolute;right:8px}.work-search-clear:hover{color:var(--text,#edf1f7);background:#ffffff08}.work-search-clear .icon{width:17px;height:17px}.work-search-hint{color:#838d9c;margin-top:9px;font-size:12px;line-height:1.7}.work-filters{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.work-filter{min-height:36px;color:var(--muted,#959dab);white-space:nowrap;background:#ffffff02;border:1px solid #ffffff0b;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:7px 11px;font-size:12px;font-weight:500;line-height:1.4;transition:color .2s,background .2s,border-color .2s;display:inline-flex}.work-filter:hover{color:var(--text,#edf1f7);background:#ffffff05;border-color:#ffffff20}.work-filter[aria-pressed=true]{color:#d4e3f7;background:#b6d1f710;border-color:#b6d1f740}.work-filter-count{color:#7e899a;font-variant-numeric:tabular-nums;text-align:center;min-width:17px;font-size:10px;font-weight:500}.work-filter[aria-pressed=true] .work-filter-count{color:#a7beda}.work-results-bar{min-height:62px;color:var(--muted,#959dab);justify-content:space-between;align-items:center;gap:16px;font-size:12px;line-height:1.6;display:flex}.work-results-bar strong{color:var(--text,#edf1f7);font-variant-numeric:tabular-nums;font-weight:500}.work-results-group{color:#758091}.work-reset{color:var(--muted,#959dab);white-space:nowrap;align-items:center;gap:7px;padding:5px 0 5px 8px;font-size:12px;transition:color .2s;display:inline-flex}.work-reset:hover{color:var(--accent,#b6d1f7)}.work-reset .icon{width:14px;height:14px}.work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.group-0{--work-group-color:#acb9e2}.group-1{--work-group-color:#abcbb2}.group-2{--work-group-color:#cdbb9b}.group-3{--work-group-color:#b9bdc9}.group-4{--work-group-color:#9dbdcc}.group-5{--work-group-color:#b4afd0}.group-6{--work-group-color:#d0b2b8}.work-group-dot{background:var(--work-group-color,#b6d1f7);border-radius:50%;flex:none;width:5px;height:5px;display:inline-block}.work-card{border:1px solid var(--border,#ffffff12);background:var(--surface,#191c22);min-width:0;color:var(--text,#edf1f7);isolation:isolate;border-radius:16px;flex-direction:column;margin:0;transition:border-color .25s,box-shadow .25s,transform .25s;display:flex;position:relative}.work-card:hover{border-color:#b6d1f72f;transform:translateY(-2px);box-shadow:0 14px 34px -18px #0009}.work-card:focus-within{outline:2px solid var(--accent,#b6d1f7);outline-offset:4px}.work-cover-wrap{border-bottom:1px solid var(--border,#ffffff12);border-radius:15px 15px 0 0;flex:none;position:relative;overflow:hidden}.work-cover{background:#15191f;width:100%;height:clamp(180px,20vw,208px);overflow:hidden}.work-cover>img{object-fit:cover;filter:saturate(.82);width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.65,.3,1),filter .7s;display:block}.work-card:hover .work-cover>img,.work-card:focus-within .work-cover>img{filter:saturate();transform:scale(1.045)}.work-cover-group{color:#d3d9e2;letter-spacing:.02em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#101216dd;border:1px solid #ffffff12;border-radius:6px;align-items:center;gap:7px;max-width:calc(100% - 26px);padding:5px 9px;font-size:11px;font-weight:500;line-height:1.5;display:inline-flex;position:absolute;top:13px;left:13px}.work-icon-cover{background:radial-gradient(at 50% 0,#b6d1f70b,#0000 80%),linear-gradient(140deg,#ffffff03,#0000);flex-direction:column;justify-content:center;align-items:center;gap:14px;width:100%;height:100%;padding:45px 24px 22px;display:flex}.work-icon-emblem{width:65px;height:65px;color:var(--work-group-color,#b6d1f7);background:#ffffff03;border:1px solid #ffffff0e;border-radius:18px;flex:none;justify-content:center;align-items:center;transition:transform .7s cubic-bezier(.2,.65,.3,1);display:flex;box-shadow:inset 0 1px #ffffff05}.work-card:hover .work-icon-emblem,.work-card:focus-within .work-icon-emblem{transform:translateY(-3px)scale(1.04)}.work-cover-icon{width:39px;height:39px}.work-icon-label{color:#9fa8b6;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;line-height:1.6;overflow:hidden}.work-card-copy{flex-direction:column;flex:1;min-width:0;padding:21px 20px 18px;display:flex}.work-card-heading{margin:0}.work-card-open{width:100%;color:inherit;text-align:left;background:0 0;border:0;padding:0;display:block}.work-card-open:after{z-index:2;content:"";cursor:pointer;border-radius:16px;position:absolute;inset:0}.work-card-open:focus-visible{outline:none}.work-card-title{letter-spacing:-.02em;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:52px;font-size:17px;font-weight:600;line-height:26px;display:-webkit-box;overflow:hidden}.work-subtitle{color:#adb8c7;-webkit-line-clamp:1;-webkit-box-orient:vertical;min-height:22px;margin-top:8px;font-size:13px;line-height:22px;display:-webkit-box;overflow:hidden}.work-description{min-height:48px;color:var(--muted,#959dab);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:11px 0 16px;font-size:14px;line-height:24px;display:-webkit-box;overflow:hidden}.work-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.work-tags .work-tag{width:auto;min-height:23px;color:var(--tag-ink,#adb6c5);white-space:nowrap;background:#ffffff03;border:1px solid #ffffff09;border-radius:5px;align-items:center;padding:3px 7px;font-size:11px;font-weight:400;line-height:15px;display:inline-flex}.tag-0{--tag-ink:#d0b3b8}.tag-1{--tag-ink:#cfbd98}.tag-2{--tag-ink:#a1c6b7}.tag-3{--tag-ink:#a4bddc}.tag-4{--tag-ink:#bcb6d8}.tag-5{--tag-ink:#c6b0d0}.tag-6{--tag-ink:#cfb0c2}.work-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-top:auto;padding-top:21px;display:flex}.work-date{color:#7e8a9b;font-variant-numeric:tabular-nums;font-size:11px;line-height:18px}.work-card-affordance{color:#b2c7e2;align-items:center;gap:5px;font-size:12px;font-weight:500;line-height:18px;display:inline-flex}.work-card-affordance .icon{width:14px;height:14px;transition:transform .3s}.work-card:hover .work-card-affordance .icon{transform:translate(2px,-2px)}.work-empty{text-align:center;background:#ffffff02;border:1px dashed #ffffff1c;border-radius:16px;flex-direction:column;align-items:center;min-height:310px;padding:48px 24px;display:flex}.work-empty-symbol{border:1px solid var(--border,#ffffff12);background:var(--surface,#191c22);width:52px;height:52px;color:var(--muted,#959dab);border-radius:14px;justify-content:center;align-items:center;margin-bottom:20px;display:flex}.work-empty-symbol svg{width:24px;height:24px}.work-empty h3{color:var(--text,#edf1f7);font-size:18px;font-weight:500}.work-empty p{color:var(--muted,#959dab);margin:10px 0 24px;font-size:14px;line-height:1.8}.work-dialog{z-index:40;position:relative}.work-backdrop{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#080a10b8;transition:opacity .25s;position:fixed;inset:0}.work-backdrop[data-closed]{opacity:0}.work-positioner{pointer-events:none;justify-content:center;align-items:center;padding:32px 24px;display:flex;position:fixed;inset:0}.work-panel{background:var(--surface,#191c22);width:min(1024px,100%);height:min(840px,100dvh - 64px);max-height:calc(100dvh - 64px);color:var(--text,#edf1f7);pointer-events:auto;border:1px solid #ffffff19;border-radius:20px;flex-direction:column;transition:transform .28s cubic-bezier(.2,.7,.2,1),opacity .25s;display:flex;position:relative;overflow:hidden;box-shadow:0 32px 120px #0008,0 0 0 1px #0003}.work-panel[data-closed]{opacity:0;transform:translateY(20px)scale(.985)}.work-dialog-bar{border-bottom:1px solid var(--border,#ffffff12);background:#14171cd9;flex:none;justify-content:space-between;align-items:center;gap:12px;min-height:62px;padding:11px 22px;display:flex}.work-dialog-label{min-width:0;color:var(--muted,#959dab);white-space:nowrap;align-items:center;gap:9px;font-size:12px;line-height:1.5;display:inline-flex}.work-dialog-divider{color:#485160;margin:0 2px}.work-tools{flex:none;align-items:center;gap:7px;display:flex}.work-tools button,.image-close{color:#a6b2c3;background:#ffffff03;border:1px solid #ffffff0e;border-radius:9px;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s,border-color .2s,color .2s;display:flex}.work-tools button:hover,.image-close:hover{color:var(--text,#edf1f7);background:#ffffff08;border-color:#fff2}.work-tools .icon{width:20px;height:20px}.work-sheet{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.work-detail-header{border-bottom:1px solid var(--border,#ffffff12);background:linear-gradient(125deg,#ffffff05,#0000 65%);flex:none;padding:27px 32px 23px;position:relative;overflow:hidden}.work-detail-glow{pointer-events:none;background:radial-gradient(#b6d1f70b,#0000 70%);width:440px;height:260px;position:absolute;top:-100px;right:-80px}.work-header-content{flex-direction:column;gap:13px;min-width:0;display:flex;position:relative}.work-title-row,.work-meta-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.work-detail-title{max-width:100%;color:var(--text,#edf1f7);letter-spacing:-.035em;overflow-wrap:anywhere;font-size:clamp(21px,2.5vw,28px);font-weight:600;line-height:1.5}.work-title-row .work-tag{padding:4px 8px;font-size:11px}.work-meta-row{color:#b2bdcc;align-items:baseline;font-size:14px;line-height:1.75}.work-meta-row>p{flex:1;min-width:180px}.work-detail-date{color:#7f8b9c;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.work-toolbar{align-items:center;gap:16px;min-width:0;margin-top:9px;display:flex}.work-technologies{scrollbar-width:thin;scrollbar-color:#46505f transparent;flex:1;gap:7px;min-width:0;padding:4px 0 7px;display:flex;overflow:auto}.work-technologies:focus-visible{outline-offset:4px;border-radius:5px;outline:1px solid #b6d1f760}.work-chip{white-space:nowrap;color:#a9b5c6;background:#ffffff03;border:1px solid #ffffff0c;border-radius:6px;flex:none;align-items:center;gap:7px;padding:7px 10px;font-size:11px;line-height:18px;display:inline-flex}.work-chip .icon{opacity:.8;width:14px;height:14px}.work-actions{flex-wrap:wrap;flex:none;align-items:center;gap:8px;display:flex}.work-action{color:#c2cfdf;white-space:nowrap;background:#ffffff03;border:1px solid #ffffff17;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:36px;padding:8px 12px;font-size:12px;font-weight:500;line-height:18px;text-decoration:none;transition:border-color .2s,background .2s,color .2s;display:inline-flex}.work-action:hover{color:var(--text,#edf1f7);background:#ffffff08;border-color:#ffffff2b}.work-action-primary{color:#d0e0f7;background:#b6d1f710;border-color:#b6d1f726}.work-action-primary:hover{background:#b6d1f71a;border-color:#b6d1f749}.work-action .icon{width:15px;height:15px}.work-detail-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#47515f transparent;flex:1;min-height:0;padding:32px 34px 44px;position:relative;overflow:auto}.work-markdown{color:#b7c0cd;overflow-wrap:anywhere;max-width:800px;margin:0 auto;font-family:inherit;font-size:16px;line-height:1.9}.work-markdown .work-detail-summary{border-bottom:1px solid var(--border,#ffffff12);color:#d0d7e1;margin:0 0 30px;padding-bottom:28px;font-size:16px;line-height:1.9}.work-markdown h1,.work-markdown h2,.work-markdown h3,.work-markdown h4{color:var(--text,#edf1f7);letter-spacing:-.02em;margin-top:32px;margin-bottom:16px;font-weight:600;line-height:1.5}.work-markdown h1{border-bottom:1px solid var(--border,#ffffff12);padding-bottom:12px;font-size:24px}.work-markdown h2{border-bottom:1px solid var(--border,#ffffff12);padding-bottom:10px;font-size:21px}.work-markdown h3{font-size:18px}.work-markdown h4{font-size:16px}.work-markdown p,.work-markdown blockquote,.work-markdown ul,.work-markdown ol,.work-markdown table,.work-markdown pre{margin-bottom:20px}.work-markdown strong{color:#d9e0e9;font-weight:600}.work-markdown ul,.work-markdown ol{padding-left:1.6em}.work-markdown ul{list-style-type:disc}.work-markdown ol{list-style-type:decimal}.work-markdown li+li{margin-top:6px}.work-markdown li::marker{color:#768ca8}.work-markdown li>p{margin-top:10px}.work-markdown blockquote{color:var(--muted,#959dab);background:#b6d1f704;border-left:2px solid #b6d1f749;border-radius:0 8px 8px 0;padding:13px 18px}.work-markdown blockquote>:last-child{margin-bottom:0}.work-markdown a{color:var(--accent,#b6d1f7);text-underline-offset:4px;-webkit-text-decoration:underline #b6d1f733;text-decoration:underline #b6d1f733}.work-markdown a:hover{text-decoration-color:currentColor}.work-markdown pre{background:#111419;border:1px solid #ffffff09;border-radius:10px;padding:18px 20px;font-size:13px;line-height:1.75;overflow:auto}.work-markdown code{color:#b9cde7;background:#ffffff05;border-radius:4px;padding:3px 5px;font-family:Consolas,Monaco,monospace;font-size:.88em}.work-markdown pre code{color:inherit;background:0 0;padding:0;font-size:1em}.work-markdown table{border-collapse:collapse;width:max-content;max-width:100%;font-size:13px;display:block;overflow:auto}.work-markdown th,.work-markdown td{border:1px solid #ffffff0f;padding:10px 14px}.work-markdown th{color:#d2dbe8;background:#ffffff04;font-weight:500}.work-markdown tr:nth-child(2n){background:#ffffff02}.work-markdown hr{background:var(--border,#ffffff12);border:0;height:1px;margin:28px 0}.markdown-image-button{cursor:zoom-in;text-align:left;background:#101216;border:1px solid #ffffff10;border-radius:12px;width:100%;max-width:100%;margin:24px 0;display:block;position:relative;overflow:hidden}.markdown-image-button img{width:100%;max-width:100%;height:auto;display:block}.markdown-image-hint{color:#d9e4f4;opacity:0;background:#101216e6;border:1px solid #fff2;border-radius:6px;align-items:center;gap:5px;padding:5px 8px;font-size:11px;line-height:18px;transition:opacity .2s,transform .2s;display:inline-flex;position:absolute;bottom:12px;right:12px;transform:translateY(3px)}.markdown-image-hint .icon{width:15px;height:15px}.markdown-image-button:hover .markdown-image-hint,.markdown-image-button:focus-visible .markdown-image-hint{opacity:1;transform:translateY(0)}.work-panel.expanded,.work-panel:fullscreen{border:0;border-radius:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;position:fixed;inset:0}.work-panel.expanded .work-markdown,.work-panel:fullscreen .work-markdown{max-width:960px}.image-dialog{z-index:70;position:relative}.image-backdrop{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#05070bef;position:fixed;inset:0}.image-positioner{justify-content:center;align-items:center;padding:72px 24px 28px;display:flex;position:fixed;inset:0}.image-panel{background:#0b0d11;border:1px solid #ffffff17;border-radius:12px;max-width:min(1440px,100%);max-height:calc(100dvh - 100px);box-shadow:0 24px 90px #0008}.image-panel>img{object-fit:contain;border-radius:11px;width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 102px);display:block}.image-caption{color:#e0e7f0;white-space:nowrap;align-items:baseline;gap:12px;font-size:13px;line-height:24px;display:flex;position:fixed;top:24px;left:24px;right:86px;overflow:hidden}.image-caption span{color:#8490a2;text-overflow:ellipsis;font-size:12px;overflow:hidden}.image-close{background:#191c22;width:38px;height:38px;position:fixed;top:18px;right:24px}.image-close .icon{width:21px;height:21px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:959px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.work-toolbar{flex-wrap:wrap;gap:9px}.work-technologies{flex-basis:100%}.work-actions{margin-top:3px}}@media (max-width:639px){.work-grid{grid-template-columns:minmax(0,1fr);gap:20px}.work-total strong{font-size:26px}.work-total span{font-size:11px}.work-collection-note{margin-bottom:26px;font-size:12px}.work-explorer{padding:18px 16px}.work-search label{font-size:13px}.work-search-field input{height:46px;font-size:16px}.work-search-hint{font-size:11px}.work-filters{gap:7px;margin-top:19px}.work-filter{min-height:36px;padding:7px 9px;font-size:11px}.work-cover{height:clamp(192px,54vw,250px)}.work-card-copy{padding:22px}.work-card-title{min-height:0;font-size:18px;line-height:28px}.work-description{min-height:0;font-size:14px;line-height:24px}.work-subtitle{font-size:13px}.work-tags .work-tag,.work-date{font-size:11px}.work-card-affordance{font-size:12px}.work-positioner{align-items:flex-end;padding:36px 0 0}.work-panel{border-bottom:0;border-radius:20px 20px 0 0;width:100%;height:88dvh;max-height:calc(100dvh - 36px)}.work-panel[data-closed]{transform:translateY(30px)}.work-dialog-bar{min-height:58px;padding:10px 18px}.work-dialog-label{gap:7px;font-size:11px}.work-detail-header{padding:22px 22px 20px}.work-header-content,.work-title-row{gap:10px}.work-detail-title{font-size:21px}.work-meta-row{gap:7px;font-size:13px}.work-meta-row>p{flex-basis:100%}.work-detail-date{font-size:11px}.work-toolbar{margin-top:5px}.work-detail-scroll{padding:24px 22px 36px}.work-markdown{font-size:15px}.work-markdown .work-detail-summary{margin-bottom:24px;padding-bottom:24px;font-size:15px}.work-markdown h1{font-size:22px}.work-markdown h2{font-size:19px}.work-markdown h3{font-size:17px}.image-positioner{padding:64px 12px 20px}.image-panel{border-radius:9px;max-height:calc(100dvh - 84px)}.image-panel>img{border-radius:8px;max-height:calc(100dvh - 86px)}.image-caption{font-size:12px;top:23px;left:16px;right:68px}.image-close{top:17px;right:14px}.work-panel.expanded,.work-panel:fullscreen{border-radius:0;height:100dvh;max-height:100dvh}}@media (max-height:620px){.work-positioner{padding-top:16px;padding-bottom:16px}.work-panel{height:calc(100dvh - 32px);max-height:calc(100dvh - 32px)}.work-sheet{overscroll-behavior:contain;overflow-y:auto}.work-detail-header{padding-top:20px;padding-bottom:20px}.work-detail-scroll{flex:none;min-height:160px;overflow:visible}.work-panel.expanded,.work-panel:fullscreen{height:100dvh;max-height:100dvh}}@media (hover:none){.work-card:hover{transform:none}.markdown-image-hint{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.work-card,.work-cover>img,.work-icon-emblem,.work-card-affordance .icon,.work-panel,.work-backdrop,.markdown-image-hint{transition:none}.work-card:hover,.work-card:hover .work-cover>img,.work-card:focus-within .work-cover>img,.work-card:hover .work-icon-emblem,.work-card:focus-within .work-icon-emblem,.work-card:hover .work-card-affordance .icon{transform:none}}
