@import"https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--waline-font-size: 1rem;--waline-white: #fff;--waline-light-grey: #999;--waline-dark-grey: #666;--waline-theme-color: #27ae60;--waline-active-color: #2ecc71;--waline-color: #444;--waline-bg-color: #fff;--waline-bg-color-light: #f8f8f8;--waline-bg-color-hover: #f0f0f0;--waline-border-color: #ddd;--waline-disable-bg-color: #f8f8f8;--waline-disable-color: #000;--waline-code-bg-color: #282c34;--waline-warning-color: #915930;--waline-warning-bg-color: rgb(234 179 8 / 14%);--waline-bq-color: #f0f0f0;--waline-avatar-size: 3.25rem;--waline-m-avatar-size: calc(var(--waline-avatar-size) * 9 / 13);--waline-badge-color: #3498db;--waline-badge-font-size: .75em;--waline-info-bg-color: #f8f8f8;--waline-info-color: #999;--waline-info-font-size: .625em;--waline-border: 1px solid var(--waline-border-color);--waline-avatar-radius: 50%;--waline-box-shadow: none}[data-waline]{font-size:var(--waline-font-size);text-align:start}[dir=rtl] [data-waline]{direction:rtl}[data-waline] *{box-sizing:content-box;line-height:1.75}[data-waline] p{color:var(--waline-color)}[data-waline] a{position:relative;display:inline-block;color:var(--waline-theme-color);text-decoration:none;overflow-wrap:break-word;cursor:pointer}[data-waline] a:hover{color:var(--waline-active-color)}[data-waline] img{max-width:100%;max-height:400px;border:none}[data-waline] hr{margin:.825em 0;border-style:dashed;border-color:var(--waline-bg-color-light)}[data-waline] code,[data-waline] pre{margin:0;padding:.2em .4em;border-radius:3px;background:var(--waline-bg-color-light);font-size:85%}[data-waline] pre{overflow:auto;padding:10px;line-height:1.45}[data-waline] pre::-webkit-scrollbar{width:6px;height:6px}[data-waline] pre::-webkit-scrollbar-track-piece:horizontal{border-radius:6px;background:#0000001a}[data-waline] pre::-webkit-scrollbar-thumb:horizontal{width:6px;border-radius:6px;background:var(--waline-theme-color)}[data-waline] pre code{padding:0;background:#0000;color:var(--waline-color);white-space:pre-wrap;word-break:keep-all}[data-waline] blockquote{margin:.5em 0;padding:.5em 0 .5em 1em;border-inline-start:8px solid var(--waline-bq-color);color:var(--waline-dark-grey)}[data-waline] blockquote>p{margin:0}[data-waline] ol,[data-waline] ul{margin-inline-start:1.25em;padding:0}[data-waline] input[type=checkbox],[data-waline] input[type=radio]{display:inline-block;vertical-align:middle;margin-top:-2px}.wl-btn{display:inline-block;vertical-align:middle;min-width:2.5em;margin-bottom:0;padding:.5em 1em;border:1px solid var(--waline-border-color);border-radius:.5em;background:#0000;color:var(--waline-color);font-weight:400;font-size:.75em;line-height:1.5;text-align:center;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;transition-duration:.4s}.wl-btn:hover,.wl-btn:active{border-color:var(--waline-theme-color);color:var(--waline-theme-color)}.wl-btn:disabled{border-color:var(--waline-border-color);background:var(--waline-disable-bg-color);color:var(--waline-disable-color);cursor:not-allowed}.wl-btn.primary{border-color:var(--waline-theme-color);background:var(--waline-theme-color);color:var(--waline-white)}.wl-btn.primary:hover,.wl-btn.primary:active{border-color:var(--waline-active-color);background:var(--waline-active-color);color:var(--waline-white)}.wl-btn.primary:disabled{border-color:var(--waline-border-color);background:var(--waline-disable-bg-color);color:var(--waline-disable-color);cursor:not-allowed}.wl-loading{text-align:center}.wl-loading svg{margin:0 auto}.wl-comment{position:relative;display:flex;margin-bottom:.75em}.wl-close{position:absolute;inset-inline-end:-4px;top:-4px;padding:0;border:none;background:#0000;line-height:1;cursor:pointer}.wl-login-info{max-width:80px;margin-top:.75em;text-align:center}.wl-logout-btn{position:absolute;inset-inline-end:-10px;top:-10px;padding:3px;border:none;background:#0000;line-height:0;cursor:pointer}.wl-avatar{position:relative;width:var(--waline-avatar-size);height:var(--waline-avatar-size);margin:0 auto;border:var(--waline-border);border-radius:var(--waline-avatar-radius)}@media(max-width:720px){.wl-avatar{width:var(--waline-m-avatar-size);height:var(--waline-m-avatar-size)}}.wl-avatar img{width:100%;height:100%;border-radius:var(--waline-avatar-radius)}.wl-login-nick{display:block;color:var(--waline-theme-color);font-size:.75em;word-break:break-all}.wl-panel{position:relative;flex-shrink:1;width:100%;margin:.5em;border:var(--waline-border);border-radius:.75em;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow)}.wl-header{display:flex;overflow:hidden;padding:0 4px;border-bottom:2px dashed var(--waline-border-color);border-top-left-radius:.75em;border-top-right-radius:.75em}@media(max-width:580px){.wl-header{display:block}}.wl-header label{min-width:40px;padding:.75em .5em;color:var(--waline-color);font-size:.75em;text-align:center}.wl-header input{flex:1;resize:none;width:0;padding:.5em;background:#0000;font-size:.625em}.wl-header-item{display:flex;flex:1}@media(max-width:580px){.wl-header-item:not(:last-child){border-bottom:2px dashed var(--waline-border-color)}}.wl-header-1 .wl-header-item{width:100%}.wl-header-2 .wl-header-item{width:50%}@media(max-width:580px){.wl-header-2 .wl-header-item{flex:0;width:100%}}.wl-header-3 .wl-header-item{width:33.33%}@media(max-width:580px){.wl-header-3 .wl-header-item{width:100%}}.wl-editor{position:relative;resize:vertical;box-sizing:border-box;width:calc(100% - 1em);min-height:8.75em;margin:.75em .5em;border-radius:.5em;background:#0000;font-size:.875em}.wl-editor,.wl-input{max-width:100%;border:none;color:var(--waline-color);outline:none;transition:all .25s ease}.wl-editor:focus,.wl-input:focus{background:var(--waline-bg-color-light)}.wl-preview{padding:0 .5em .5em}.wl-preview h4{margin:.25em;font-weight:700;font-size:.9375em}.wl-preview .wl-content{min-height:1.25em;padding:.25em;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.wl-preview .wl-content>*:first-child{margin-top:0}.wl-preview .wl-content>*:last-child{margin-bottom:0}.wl-footer{position:relative;display:flex;flex-wrap:wrap;margin:.5em .75em}.wl-actions{display:flex;flex:2;align-items:center}.wl-action{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em;margin:2px;padding:0;border:none;background:#0000;color:var(--waline-color);font-size:16px;cursor:pointer}.wl-action:hover{color:var(--waline-theme-color)}.wl-action.active{color:var(--waline-active-color)}#wl-image-upload{display:none}#wl-image-upload:focus+label{color:var(--waline-color)}#wl-image-upload:focus-visible+label{outline:-webkit-focus-ring-color auto 1px}.wl-info{display:flex;flex:3;align-items:center;justify-content:flex-end}.wl-info .wl-text-number{color:var(--waline-info-color);font-size:.75em}.wl-info .wl-text-number .illegal{color:red}.wl-info button{margin-inline-start:.75em}.wl-info button svg{display:block;margin:0 auto;line-height:18px}.wl-emoji-popup{position:absolute;inset-inline-start:1.25em;top:100%;z-index:10;display:none;width:100%;max-width:526px;border:var(--waline-border);border-radius:6px;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow)}.wl-emoji-popup.display{display:block}.wl-emoji-popup button{display:inline-block;vertical-align:middle;width:2em;margin:.125em;padding:0;border-width:0;background:#0000;font-size:inherit;line-height:2;text-align:center;cursor:pointer}.wl-emoji-popup button:hover{background:var(--waline-bg-color-hover)}.wl-emoji-popup .wl-emoji{display:inline-block;vertical-align:middle;max-width:1.5em;max-height:1.5em}.wl-emoji-popup .wl-emoji-preview{position:absolute;top:-4em;left:0;z-index:1;display:block;max-width:3em;max-height:3em;padding:.25em;border:var(--waline-border);border-radius:4px;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow)}.wl-emoji-popup .wl-tab-wrapper{overflow-y:auto;max-height:145px;padding:.5em}.wl-emoji-popup .wl-tab-wrapper::-webkit-scrollbar{width:6px;height:6px}.wl-emoji-popup .wl-tab-wrapper::-webkit-scrollbar-track-piece:vertical{border-radius:6px;background:#0000001a}.wl-emoji-popup .wl-tab-wrapper::-webkit-scrollbar-thumb:vertical{width:6px;border-radius:6px;background:var(--waline-theme-color)}.wl-emoji-popup .wl-tabs{position:relative;overflow-x:auto;padding:0 6px;white-space:nowrap}.wl-emoji-popup .wl-tabs:before{content:" ";position:absolute;top:0;right:0;left:0;z-index:2;height:1px;background:var(--waline-border-color)}.wl-emoji-popup .wl-tabs::-webkit-scrollbar{width:6px;height:6px}.wl-emoji-popup .wl-tabs::-webkit-scrollbar-track-piece:horizontal{border-radius:6px;background:#0000001a}.wl-emoji-popup .wl-tabs::-webkit-scrollbar-thumb:horizontal{height:6px;border-radius:6px;background:var(--waline-theme-color)}.wl-emoji-popup .wl-tab{position:relative;margin:0;padding:0 .5em}.wl-emoji-popup .wl-tab.active{z-index:3;border:1px solid var(--waline-border-color);border-top-width:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px;background:var(--waline-bg-color)}.wl-gif-popup{position:absolute;inset-inline-start:1.25em;top:100%;z-index:10;width:calc(100% - 3em);padding:.75em .75em .25em;border:var(--waline-border);border-radius:6px;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow);opacity:0;visibility:hidden;transition:transform .2s ease-out,opacity .2s ease-out;transform:scale(.9);transform-origin:0 0}.wl-gif-popup.display{opacity:1;visibility:visible;transform:none}.wl-gif-popup input{box-sizing:border-box;width:100%;margin-bottom:10px;padding:3px 5px;border:var(--waline-border)}.wl-gif-popup img{display:block;box-sizing:border-box;width:100%;border-width:2px;border-style:solid;border-color:#fff;cursor:pointer}.wl-gif-popup img:hover{border-color:var(--waline-theme-color);border-radius:2px}.wl-gallery{display:flex;overflow-y:auto;max-height:80vh}.wl-gallery-column{display:flex;flex:1;flex-direction:column;height:max-content}.wl-cards .wl-user{--avatar-size: var(--waline-avatar-size);position:relative;margin-inline-end:.75em}@media(max-width:720px){.wl-cards .wl-user{--avatar-size: var(--waline-m-avatar-size)}}.wl-cards .wl-user .wl-user-avatar{width:var(--avatar-size);height:var(--avatar-size);border-radius:var(--waline-avatar-radius);box-shadow:var(--waline-box-shadow)}.wl-cards .wl-user .verified-icon,.wl-cards .wl-user .administrator-icon{position:absolute;inset-inline-start:calc(var(--avatar-size)*3/4);top:calc(var(--avatar-size)*3/4);border-radius:50%;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow)}.wl-card-item{position:relative;display:flex;padding:.5em}.wl-card-item .wl-card-item{padding-inline-end:0}.wl-card{flex:1;width:0;padding-bottom:.5em;border-bottom:1px dashed var(--waline-border-color)}.wl-card:first-child{margin-inline-start:1em}.wl-card-item:last-child>.wl-card{border-bottom:none}.wl-card .wl-nick svg{position:relative;bottom:-.125em;line-height:1}.wl-card .wl-head{overflow:hidden;line-height:1.5}.wl-card .wl-head .wl-nick{position:relative;display:inline-block;margin-inline-end:.5em;font-weight:700;font-size:.875em;line-height:1;text-decoration:none}.wl-card span.wl-nick{color:var(--waline-dark-grey)}.wl-card .wl-badge{display:inline-block;margin-inline-end:1em;padding:0 .3em;border:1px solid var(--waline-badge-color);border-radius:4px;color:var(--waline-badge-color);font-size:var(--waline-badge-font-size)}.wl-card .wl-time{margin-inline-end:.875em;color:var(--waline-info-color);font-size:.75em}.wl-card .wl-meta{position:relative;line-height:1}.wl-card .wl-meta>span{display:inline-block;margin-inline-end:.25em;padding:2px 4px;border-radius:.2em;background:var(--waline-info-bg-color);color:var(--waline-info-color);font-size:var(--waline-info-font-size);line-height:1.5}.wl-card .wl-meta>span:empty{display:none}.wl-card .wl-comment-actions{float:right;line-height:1}[dir=rtl] .wl-card .wl-comment-actions{float:left}.wl-card .wl-delete,.wl-card .wl-like,.wl-card .wl-reply,.wl-card .wl-edit,.wl-card .wl-rss{display:inline-flex;align-items:center;border:none;background:#0000;color:var(--waline-color);line-height:1;cursor:pointer;transition:color .2s ease}.wl-card .wl-delete:hover,.wl-card .wl-like:hover,.wl-card .wl-reply:hover,.wl-card .wl-edit:hover,.wl-card .wl-rss:hover{color:var(--waline-theme-color)}.wl-card .wl-delete.active,.wl-card .wl-like.active,.wl-card .wl-reply.active,.wl-card .wl-edit.active,.wl-card .wl-rss.active{color:var(--waline-active-color)}.wl-card .wl-warning{margin-top:1em;padding:.5em 1em;border:1px dashed var(--waline-warning-color);border-radius:5px;background:var(--waline-warning-bg-color);color:var(--waline-warning-color);font-size:.875em;line-height:1em}.wl-card .wl-content{position:relative;margin-bottom:.75em;padding-top:.625em;font-size:.875em;line-height:2;overflow-wrap:break-word}.wl-card .wl-content.expand{overflow:hidden;max-height:8em;cursor:pointer}.wl-card .wl-content.expand:before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:3.15em;z-index:999;display:block;width:100%;background:linear-gradient(180deg,#000,#ffffffe6)}.wl-card .wl-content.expand:after{content:attr(data-expand);position:absolute;inset-inline-start:0;bottom:0;z-index:999;display:block;width:100%;height:3.15em;background:#ffffffe6;color:#828586;line-height:3.15em;text-align:center}.wl-card .wl-content>*:first-child{margin-top:0}.wl-card .wl-content>*:last-child{margin-bottom:0}.wl-card .wl-content .wl-reply-to{float:left;margin:1em .5em 0 0}.wl-card .wl-admin-actions{margin:8px 0;font-size:12px;text-align:right}.wl-card .wl-comment-status{margin:0 8px}.wl-card .wl-comment-status .wl-btn{border-radius:0}.wl-card .wl-comment-status .wl-btn:first-child{border-inline-end:0;border-radius:.5em 0 0 .5em}.wl-card .wl-comment-status .wl-btn:last-child{border-inline-start:0;border-radius:0 .5em .5em 0}.wl-card .wl-quote{border-inline-start:1px dashed rgba(237,237,237,.5)}.wl-card .wl-quote .wl-user{--avatar-size: var(--waline-m-avatar-size)}.wl-close-icon{color:var(--waline-border-color)}.wl-content .vemoji,.wl-content .wl-emoji{display:inline-block;vertical-align:baseline;height:1.25em;margin:-.125em .25em}.wl-content .wl-tex{background:var(--waline-info-bg-color);color:var(--waline-info-color)}.wl-content span.wl-tex{display:inline-block;margin-inline-end:.25em;padding:2px 4px;border-radius:.2em;font-size:var(--waline-info-font-size);line-height:1.5}.wl-content p.wl-tex{text-align:center}.wl-content .katex-display{overflow:auto hidden;padding-top:.2em;padding-bottom:.2em;-webkit-overflow-scrolling:touch}.wl-content .katex-display::-webkit-scrollbar{height:3px}.wl-content .katex-error{color:red}.wl-count{flex:1;font-weight:700;font-size:1.25em}.wl-empty{overflow:auto;padding:1.25em;color:var(--waline-color);text-align:center}.wl-operation{text-align:center}.wl-operation button{margin:1em 0}.wl-power{padding:.5em 0;margin-inline-start:auto;color:var(--waline-light-grey);font-size:var(--waline-info-font-size);text-align:end}.wl-meta-head{display:flex;flex-direction:row;align-items:center;padding:.375em}.wl-sort{margin:0;list-style-type:none}.wl-sort li{display:inline-block;color:var(--waline-info-color);font-size:.75em;cursor:pointer}.wl-sort li.active{color:var(--waline-theme-color)}.wl-sort li+li{margin-inline-start:1em}.wl-meta-foot{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.wl-rss{display:flex;gap:5px;max-width:16px;flex-wrap:nowrap;overflow:hidden;transition:all .2s ease-in-out}.wl-rss:hover{max-width:100%}.wl-rss>a{display:flex;gap:2px;flex-shrink:0}.wl-rss span{color:var(--waline-light-grey);font-size:var(--waline-info-font-size);text-align:end}.wl-reaction{overflow:auto hidden;margin-bottom:1.75em;text-align:center}.wl-reaction img{width:100%;height:100%;transition:all .25s ease-in-out}.wl-reaction-title{margin:16px auto;font-weight:700;font-size:18px}.wl-reaction-list{display:flex;flex-direction:row;gap:16px;justify-content:center;margin:0;padding:8px;list-style-type:none}@media(max-width:580px){.wl-reaction-list{gap:12px}}[data-waline] .wl-reaction-list{margin-inline-start:0}.wl-reaction-item{display:flex;flex-direction:column;align-items:center;cursor:pointer}.wl-reaction-item:hover img,.wl-reaction-item.active img{transform:scale(1.15)}.wl-reaction-img{position:relative;width:42px;height:42px}@media(max-width:580px){.wl-reaction-img{width:32px;height:32px}}.wl-reaction-loading{position:absolute;inset-inline-end:-5px;top:-4px;width:18px;height:18px;color:var(--waline-theme-color)}.wl-reaction-votes{position:absolute;inset-inline-end:-9px;top:-9px;min-width:1em;padding:2px;border:1px solid var(--waline-theme-color);border-radius:1em;background:var(--waline-bg-color);color:var(--waline-theme-color);font-weight:700;font-size:.75em;line-height:1}.wl-reaction-item.active .wl-reaction-votes{background:var(--waline-theme-color);color:var(--waline-bg-color)}.wl-reaction-text{font-size:.875em}.wl-reaction-item.active .wl-reaction-text{color:var(--waline-theme-color)}.wl-star{display:flex;flex-direction:column;gap:12px}.wl-star-rate{display:flex;gap:6px;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none}.wl-star-item{position:relative;width:24px;height:24px}.wl-star-icon{width:100%;height:100%}.wl-star-outline{fill:none;stroke:var(--waline-light-grey);stroke-width:1.5}.wl-star-solid{fill:var(--waline-theme-color);stroke:var(--waline-theme-color);stroke-width:1.5}.wl-star-score{display:flex;flex-direction:column;gap:6px}.wl-star-row{display:flex;gap:8px;align-items:center}.wl-star-row .wl-star-rate{gap:3px;align-items:center}.wl-star-row .wl-star-item{display:flex;width:12px;height:12px}.wl-star-progress{flex:1;overflow:hidden;height:6px;border-radius:999px;background:var(--waline-bg-color-light)}.wl-star-progress-bar{height:100%;background:var(--waline-theme-color)}.wl-star-percent{width:52px;color:var(--waline-light-grey);font-size:.75em;text-align:right}.wl-content pre,.wl-content pre[class*=language-]{overflow:auto;margin:.75rem 0;padding:1rem 1.25rem;border-radius:6px;background:var(--waline-code-bg-color);line-height:1.4}.wl-content pre code,.wl-content pre[class*=language-] code{padding:0;border-radius:0;background:#0000!important;color:#bbb;direction:ltr}.wl-content code[class*=language-],.wl-content pre[class*=language-]{background:none;color:#ccc;font-size:1em;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;overflow-wrap:normal;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.wl-content pre[class*=language-]{overflow:auto}.wl-content :not(pre)>code[class*=language-],.wl-content pre[class*=language-]{background:#2d2d2d}.wl-content :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.wl-content .token.comment,.wl-content .token.block-comment,.wl-content .token.prolog,.wl-content .token.doctype,.wl-content .token.cdata{color:#999}.wl-content .token.punctuation{color:#ccc}.wl-content .token.tag,.wl-content .token.attr-name,.wl-content .token.namespace,.wl-content .token.deleted{color:#e2777a}.wl-content .token.function-name{color:#6196cc}.wl-content .token.boolean,.wl-content .token.number,.wl-content .token.function{color:#f08d49}.wl-content .token.property,.wl-content .token.class-name,.wl-content .token.constant,.wl-content .token.symbol{color:#f8c555}.wl-content .token.selector,.wl-content .token.important,.wl-content .token.atrule,.wl-content .token.keyword,.wl-content .token.builtin{color:#cc99cd}.wl-content .token.string,.wl-content .token.char,.wl-content .token.attr-value,.wl-content .token.regex,.wl-content .token.variable{color:#7ec699}.wl-content .token.operator,.wl-content .token.entity,.wl-content .token.url{color:#67cdcc}.wl-content .token.important,.wl-content .token.bold{font-weight:700}.wl-content .token.italic{font-style:italic}.wl-content .token.entity{cursor:help}.wl-content .token.inserted{color:green}.wl-recent-item p{display:inline}.wl-user-list{padding:0;list-style:none}.wl-user-list a,.wl-user-list a:hover,.wl-user-list a:visited{color:var(--waline-color);text-decoration:none}.wl-user-list .wl-user-avatar{position:relative;display:inline-block;overflow:hidden;margin-inline-end:10px;border-radius:4px;line-height:0}.wl-user-list .wl-user-avatar>img{width:var(--waline-user-avatar-size, 48px);height:var(--waline-user-avatar-size, 48px)}.wl-user-list .wl-user-badge{position:absolute;inset-inline-end:0;bottom:0;min-width:.7em;height:1.5em;padding:0 .4em;border-radius:4px;background:var(--waline-info-bg-color);color:var(--waline-info-color);font-weight:700;font-size:10px;line-height:1.5em;text-align:center}.wl-user-list .wl-user-item{margin:10px 0}.wl-user-list .wl-user-item:nth-child(1) .wl-user-badge{background:var(--waline-rank-gold-bg-color, #fa3939);color:var(--waline-white);font-weight:700}.wl-user-list .wl-user-item:nth-child(2) .wl-user-badge{background:var(--waline-rank-silver-bg-color, #fb811c);color:var(--waline-white);font-weight:700}.wl-user-list .wl-user-item:nth-child(3) .wl-user-badge{background:var(--waline-rank-copper-bg-color, #feb207);color:var(--waline-white)}.wl-user-list .wl-user-meta{display:inline-block;vertical-align:top}.wl-user-list .wl-badge{display:inline-block;vertical-align:text-top;margin-inline-start:.5em;padding:0 .3em;border:1px solid var(--waline-badge-color);border-radius:4px;color:var(--waline-badge-color);font-size:var(--waline-badge-font-size)}.wl-user-wall{padding:0;list-style:none}.wl-user-wall .wl-user-badge,.wl-user-wall .wl-user-meta{display:none}.wl-user-wall .wl-user-item{position:relative;display:inline-block;transition:transform ease-in-out .2s}.wl-user-wall .wl-user-item:before,.wl-user-wall .wl-user-item:after{position:absolute;bottom:100%;left:50%;z-index:10;opacity:0;pointer-events:none;transition:all .18s ease-out .18s;transform:translate(-50%,4px);transform-origin:top}.wl-user-wall .wl-user-item:before{content:"";width:0;height:0;border:5px solid rgba(0,0,0,0);border-top-color:#101010f2}.wl-user-wall .wl-user-item:after{content:attr(aria-label);margin-bottom:10px;padding:.5em 1em;border-radius:2px;background:#101010f2;color:#fff;font-size:12px;white-space:nowrap}.wl-user-wall .wl-user-item:hover{transform:scale(1.1)}.wl-user-wall .wl-user-item:hover:before,.wl-user-wall .wl-user-item:hover:after{opacity:1;pointer-events:none;transform:translate(-50%)}.wl-user-wall .wl-user-item img{width:var(--waline-user-avatar-size, 48px);height:var(--waline-user-avatar-size, 48px)}.article-comments[data-v-599e454a]{margin-top:4rem;padding-top:2rem;border-top:1px solid rgba(0,0,0,.1)}.article-comments h3[data-v-599e454a]{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:inherit}.dark .article-comments[data-v-599e454a]{border-top-color:#ffffff1a}.admin-page[data-v-e8fec9ad]{min-height:80vh;display:flex;align-items:center;justify-content:center}.admin-container[data-v-e8fec9ad]{max-width:480px;width:100%;padding:2rem;text-align:center}.admin-container h1[data-v-e8fec9ad]{font-size:2rem;font-weight:700;margin-bottom:2rem}.admin-desc[data-v-e8fec9ad]{color:var(--text-secondary, #666);margin-bottom:2rem;line-height:1.6}.admin-actions[data-v-e8fec9ad]{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}.admin-btn[data-v-e8fec9ad]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;text-decoration:none;border:none}.admin-btn--primary[data-v-e8fec9ad]{background:var(--accent, #0070f3);color:#fff}.admin-btn--primary[data-v-e8fec9ad]:hover{opacity:.9;transform:translateY(-1px)}.admin-btn--secondary[data-v-e8fec9ad]{background:transparent;color:var(--text-primary, #333);border:1px solid var(--border, #ddd)}.admin-btn--secondary[data-v-e8fec9ad]:hover{background:var(--bg-secondary, #f5f5f5)}.admin-btn--github[data-v-e8fec9ad]{background:#24292f;color:#fff}.admin-logged-in p[data-v-e8fec9ad]{font-size:1.125rem;margin-bottom:1rem}.admin-editor-page[data-v-4a6af7a9]{max-width:1400px;margin:0 auto;padding:2rem}.editor-header[data-v-4a6af7a9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border, #eee)}.editor-actions[data-v-4a6af7a9]{display:flex;gap:.75rem}.editor-layout[data-v-4a6af7a9]{display:grid;grid-template-columns:280px 1fr;gap:2rem;min-height:600px}.editor-sidebar[data-v-4a6af7a9]{background:var(--bg-secondary, #f9f9f9);border-radius:12px;padding:1rem;height:-moz-fit-content;height:fit-content}.sidebar-header[data-v-4a6af7a9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border, #eee)}.sidebar-header h3[data-v-4a6af7a9]{font-size:1rem;font-weight:600}.post-list[data-v-4a6af7a9]{display:flex;flex-direction:column;gap:.5rem}.post-item[data-v-4a6af7a9]{padding:.75rem;border-radius:8px;cursor:pointer;transition:all .2s;border:1px solid transparent}.post-item[data-v-4a6af7a9]:hover{background:var(--bg-hover, #f0f0f0)}.post-item.active[data-v-4a6af7a9]{background:var(--accent-bg, #e6f2ff);border-color:var(--accent, #0070f3)}.post-title[data-v-4a6af7a9]{display:block;font-weight:500;font-size:.9375rem;margin-bottom:.25rem}.post-date[data-v-4a6af7a9]{display:block;font-size:.8125rem;color:var(--text-secondary, #888)}.editor-empty[data-v-4a6af7a9]{display:flex;align-items:center;justify-content:center;height:400px;color:var(--text-secondary, #888);font-size:1.125rem}.editor-meta[data-v-4a6af7a9]{background:var(--bg-secondary, #f9f9f9);padding:1.5rem;border-radius:12px;margin-bottom:1.5rem}.form-row[data-v-4a6af7a9]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-group[data-v-4a6af7a9]{display:flex;flex-direction:column;gap:.375rem}.form-group label[data-v-4a6af7a9]{font-size:.875rem;font-weight:500;color:var(--text-secondary, #666)}.form-group input[data-v-4a6af7a9]{padding:.625rem .875rem;border:1px solid var(--border, #ddd);border-radius:8px;font-size:.9375rem;background:#fff;transition:border-color .2s}.form-group input[data-v-4a6af7a9]:focus{outline:none;border-color:var(--accent, #0070f3)}.editor-content[data-v-4a6af7a9]{border:1px solid var(--border, #ddd);border-radius:12px;overflow:hidden}.editor-tabs[data-v-4a6af7a9]{display:flex;border-bottom:1px solid var(--border, #eee);background:var(--bg-secondary, #f9f9f9)}.editor-tabs button[data-v-4a6af7a9]{padding:.75rem 1.5rem;border:none;background:transparent;cursor:pointer;font-size:.9375rem;font-weight:500;color:var(--text-secondary, #888);transition:all .2s;border-bottom:2px solid transparent;margin-bottom:-1px}.editor-tabs button[data-v-4a6af7a9]:hover{color:var(--text-primary, #333)}.editor-tabs button.active[data-v-4a6af7a9]{color:var(--accent, #0070f3);border-bottom-color:var(--accent, #0070f3);background:#fff}.editor-body[data-v-4a6af7a9]{min-height:400px}.editor-textarea[data-v-4a6af7a9]{width:100%;min-height:400px;padding:1.5rem;border:none;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9375rem;line-height:1.7;resize:vertical;background:#fff}.editor-textarea[data-v-4a6af7a9]:focus{outline:none}.editor-preview[data-v-4a6af7a9]{padding:1.5rem;min-height:400px;background:#fff;line-height:1.7}.editor-preview[data-v-4a6af7a9] h1,.editor-preview[data-v-4a6af7a9] h2,.editor-preview[data-v-4a6af7a9] h3{margin-top:1.5rem;margin-bottom:1rem}.editor-preview[data-v-4a6af7a9] p{margin-bottom:1rem}.editor-preview[data-v-4a6af7a9] ul,.editor-preview[data-v-4a6af7a9] ol{margin-bottom:1rem;padding-left:1.5rem}.editor-preview[data-v-4a6af7a9] code{background:#f4f4f4;padding:.2rem .4rem;border-radius:4px;font-family:monospace}.editor-preview[data-v-4a6af7a9] pre{background:#f4f4f4;padding:1rem;border-radius:8px;overflow-x:auto;margin-bottom:1rem}.editor-message[data-v-4a6af7a9]{position:fixed;bottom:2rem;right:2rem;padding:1rem 1.5rem;border-radius:8px;font-weight:500;animation:slideIn-4a6af7a9 .3s ease;z-index:100}.editor-message.success[data-v-4a6af7a9]{background:#dcfce7;color:#166534;border:1px solid #86efac}.editor-message.error[data-v-4a6af7a9]{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.admin-btn[data-v-4a6af7a9]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:8px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.admin-btn[data-v-4a6af7a9]:disabled{opacity:.5;cursor:not-allowed}.admin-btn--primary[data-v-4a6af7a9]{background:var(--accent, #0070f3);color:#fff}.admin-btn--primary[data-v-4a6af7a9]:hover:not(:disabled){opacity:.9}.admin-btn--secondary[data-v-4a6af7a9]{background:transparent;color:var(--text-primary, #333);border:1px solid var(--border, #ddd)}.admin-btn--danger[data-v-4a6af7a9]{background:#ef4444;color:#fff}.admin-btn--danger[data-v-4a6af7a9]:hover:not(:disabled){background:#dc2626}.admin-btn--small[data-v-4a6af7a9]{padding:.375rem .75rem;font-size:.875rem}@keyframes slideIn-4a6af7a9{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:768px){.editor-layout[data-v-4a6af7a9],.form-row[data-v-4a6af7a9]{grid-template-columns:1fr}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:"Noto Serif SC",ui-serif,serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.fixed{position:fixed}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.border{border-width:1px}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{color-scheme:light;--color-primary: #18181b;--color-on-primary: #ffffff;--color-secondary: #3f3f46;--color-accent: #2563eb;--color-background: #fafafa;--color-foreground: #09090b;--color-muted: #e8ecf0;--color-border: #e4e4e7;--color-cyan: #ddf7f1;--color-amber: #ffe9c7;--color-orange: #ff8a3d}*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;min-width:320px;background:linear-gradient(135deg,rgba(221,247,241,.74),transparent 28rem),linear-gradient(315deg,rgba(255,233,199,.64),transparent 34rem),var(--color-background);color:var(--color-foreground);font-family:"Noto Serif SC",ui-serif,serif;letter-spacing:0}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid rgba(37,99,235,.55);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.opening-loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:grid;place-items:center;overflow:hidden;background:var(--color-background);pointer-events:none}.opening-panel{position:absolute;top:0;bottom:0;width:50.5%;background:linear-gradient(135deg,rgba(221,247,241,.76),transparent 24rem),linear-gradient(315deg,rgba(255,233,199,.64),transparent 24rem),var(--color-background);transition:transform .82s cubic-bezier(.76,0,.24,1)}.opening-panel--left{left:0;border-right:1px solid rgba(9,9,11,.1)}.opening-panel--right{right:0;border-left:1px solid rgba(9,9,11,.1)}.opening-core{position:relative;z-index:2;display:grid;place-items:center;gap:1rem;color:var(--color-primary);transition:opacity .32s ease,transform .52s ease}.opening-core p{margin:0;color:#52525b;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.82rem;font-weight:700;text-transform:uppercase}.opening-word{position:relative;display:flex;align-items:center;overflow:hidden;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(4.4rem,15vw,9.5rem);font-weight:700;letter-spacing:0;line-height:.86}.opening-word:after{position:absolute;top:-8%;bottom:-8%;left:-30%;width:22%;background:linear-gradient(90deg,transparent,rgba(37,99,235,.22),rgba(255,138,61,.18),transparent);content:"";transform:skew(-12deg);animation:word-scan .98s cubic-bezier(.22,1,.36,1) .22s both}.opening-word span{display:inline-block;opacity:0;transform:translateY(.38em);animation:word-rise .52s cubic-bezier(.22,1,.36,1) forwards}.opening-word span:nth-child(1){animation-delay:40ms}.opening-word span:nth-child(2){animation-delay:.11s}.opening-word span:nth-child(3){animation-delay:.18s}.opening-word span:nth-child(4){animation-delay:.25s}.opening-word span:nth-child(5){animation-delay:.32s}.opening-rail{position:relative;width:min(68vw,430px);height:2px;overflow:hidden;background:#09090b1f}.opening-rail:after{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--color-cyan),var(--color-accent),var(--color-orange));content:"";transform:translate(-101%);animation:rail-fill .78s cubic-bezier(.22,1,.36,1) .36s forwards}.opening-loader.is-opening .opening-panel--left{transform:translate(-101%)}.opening-loader.is-opening .opening-panel--right{transform:translate(101%)}.opening-loader.is-opening .opening-core{opacity:0;transform:translateY(-10px)}@keyframes word-rise{0%{opacity:0;transform:translateY(.38em)}to{opacity:1;transform:translateY(0)}}@keyframes word-scan{0%{left:-30%}to{left:108%}}@keyframes rail-fill{0%{transform:translate(-101%)}to{transform:translate(0)}}.skip-link{position:fixed;left:1rem;top:-4rem;z-index:1000;border-radius:999px;background:var(--color-primary);color:#fff;padding:.7rem 1rem}.skip-link:focus{top:1rem}.site-header{position:sticky;top:0;z-index:100;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;min-height:68px;border-bottom:1px solid rgba(228,228,231,.45);background:#fafafac7;padding:0 4vw;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:inline-flex;align-items:center;gap:.62rem;min-height:48px;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:1.22rem;font-weight:700;letter-spacing:0}.brand-logo{display:inline-flex;width:38px;height:38px;flex:0 0 auto}.brand-logo svg{display:block;width:100%;height:100%}.brand-logo__field{fill:#09090b}.brand-logo__stem,.brand-logo__bowl,.brand-logo__orbit{fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round}.brand-logo__stem{stroke-width:4.5}.brand-logo__bowl{stroke-width:4}.brand-logo__orbit{stroke:#ddf7f1;stroke-width:3}.brand-logo__dot{fill:#ff8a3d}.desktop-nav{display:flex;justify-content:center;align-items:center;gap:.35rem;color:#3f3f46;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.92rem}.desktop-nav a,.mobile-nav a{min-height:40px;display:inline-flex;align-items:center;border-radius:999px;padding:0 .85rem;transition:color .18s ease,background .18s ease}.desktop-nav a:hover{background:#0000000a}.desktop-nav a:hover,.mobile-nav a:hover{color:var(--color-accent)}.nav-dropdown{position:relative}.nav-dropdown__trigger{display:inline-flex;align-items:center;gap:.25rem;min-height:34px;border:0;border-radius:999px;padding:0 .5rem;background:transparent;color:inherit;font-family:inherit;font-size:inherit;cursor:pointer;transition:color .18s ease,background .18s ease}.nav-dropdown__trigger:hover,.nav-dropdown__trigger.is-open{color:var(--color-accent);background:#0f5fff14}.nav-dropdown__trigger svg{transition:transform .2s ease}.nav-dropdown__trigger.is-open svg{transform:rotate(180deg)}.nav-dropdown__menu{position:absolute;top:calc(100% + 6px);left:50%;z-index:101;display:grid;gap:.15rem;min-width:140px;border:1px solid var(--color-border);border-radius:12px;background:#fafafaf5;padding:.5rem;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 12px 40px #0f172a1f;transform:translate(-50%)}.nav-dropdown__menu:before{position:absolute;top:-5px;left:50%;width:10px;height:10px;background:inherit;border-left:1px solid var(--color-border);border-top:1px solid var(--color-border);content:"";transform:translate(-50%) rotate(45deg)}.nav-dropdown__menu a{display:flex;align-items:center;min-height:36px;border-radius:8px;padding:0 .7rem;font-size:.88rem;white-space:nowrap;transition:color .18s ease,background .18s ease}.nav-dropdown__menu a:hover{background:#2563eb0f}.dropdown-enter-active,.dropdown-leave-active{transition:opacity .18s ease,transform .18s ease}.dropdown-enter-from,.dropdown-leave-to{opacity:0;transform:translate(-50%) translateY(-6px)}.header-actions{display:flex;align-items:center;gap:.55rem}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--color-border);border-radius:999px;background:#ffffffbd;color:var(--color-primary);cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}.icon-button:hover{transform:translateY(-1px);border-color:#2563eb59;background:#fff}.mobile-only{display:none}.language-switch{display:flex;align-items:center;gap:.25rem;border:1px solid var(--color-border);border-radius:999px;background:#ffffffb3;padding:.22rem}.language-switch button{font-family:Space Grotesk,"Noto Serif SC",sans-serif;min-width:44px;min-height:36px;border:0;border-radius:999px;background:transparent;color:#52525b;cursor:pointer}.language-switch button.active{background:var(--color-primary);color:#fff}.mobile-nav{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;padding-bottom:1rem}.mobile-nav a{border:1px solid var(--color-border);background:#fff;padding:0 .9rem}.mobile-nav__group{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.mobile-nav__label{grid-column:1 / -1;display:flex;align-items:center;min-height:36px;padding:0 .4rem;color:#a1a1aa;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.78rem;font-weight:700;text-transform:uppercase}.hero-section{position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(280px,.88fr);gap:clamp(2rem,5vw,5rem);align-items:center;min-height:calc(100dvh - 72px);padding:clamp(3rem,7vw,6rem) 5vw 4rem}.hero-kicker,.section-heading p,.article-meta,.blog-card__meta,.timeline-item__meta{margin:0 0 .8rem;color:var(--color-accent);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.88rem;font-weight:700;text-transform:uppercase}.hero-copy h1{margin:0;max-width:11ch;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(3.1rem,9vw,7.5rem);line-height:.94;letter-spacing:0}.hero-lead{max-width:780px;margin:1.8rem 0 0;color:#18181b;font-size:clamp(1.08rem,2vw,1.42rem);line-height:1.72}.hero-body,.muted,.section-intro,.about-copy p,.photo-copy p,.article-description,.article-body{color:#52525b;line-height:1.78}.hero-body{max-width:760px}.hero-tags,.project-card__tags,.blog-card__tags,.article-tags,.tech-card div,.about-panel{display:flex;flex-wrap:wrap;gap:.55rem}.hero-actions,.contact-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:46px;border:1px solid var(--color-border);border-radius:999px;padding:.72rem 1.05rem;cursor:pointer;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-weight:700;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 12px 30px #09090b1f}.btn-secondary{border-color:#2563eb47;background:var(--color-accent);color:#fff}.btn-ghost{background:#ffffffc7;color:var(--color-primary)}.tag-pill{display:inline-flex;align-items:center;min-height:32px;border:1px solid rgba(63,63,70,.12);border-radius:999px;background:#ffffffad;padding:.32rem .72rem;color:#3f3f46;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.86rem;font-weight:600}.hero-visual{position:relative;min-height:460px}.portrait-shell{overflow:hidden;border:1px solid var(--color-border);border-radius:32px;background:#fff;box-shadow:var(--tw-shadow, 0 22px 70px rgba(15, 23, 42, .14));animation:float 5s ease-in-out infinite}.portrait-shell img{display:block;width:100%;aspect-ratio:1;-o-object-fit:cover;object-fit:cover}.code-note{position:absolute;right:-.3rem;bottom:2rem;max-width:245px;border:1px solid rgba(228,228,231,.9);border-radius:18px;background:#ffffffd1;padding:1rem;box-shadow:0 18px 48px #0f172a24;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.code-note span,.copy-card span{color:#71717a;font-size:.78rem;text-transform:uppercase}.code-note strong{display:block;margin-top:.25rem;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:1.45rem}.page-section,.subpage,.article-page,.not-found{max-width:1180px;margin:0 auto;padding:clamp(4rem,8vw,7rem) 5vw}.section-heading{margin-bottom:1.6rem}.section-heading h2,.subpage-hero h1,.article-page h1,.not-found h1{margin:0;color:var(--color-primary);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(2rem,5vw,4.2rem);line-height:1.06;letter-spacing:0}.section-intro{max-width:780px;margin:-.4rem 0 2rem;font-size:1.04rem}.about-grid,.code-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);gap:1.4rem;align-items:start}.about-copy{display:grid;gap:1rem}.about-copy p{margin:0;font-size:1.03rem}.about-panel,.tech-card,.project-card,.honor-card,.stat-card,.blog-card,.copy-card{border:1px solid var(--color-border);border-radius:8px;background:#ffffffb8;box-shadow:0 8px 30px #0f172a0d}.about-panel{padding:1.2rem}.timeline{position:relative;display:grid;gap:1rem;border-left:1px solid var(--color-border);padding-left:1.3rem}.timeline-item{position:relative;padding:.9rem 0 .9rem .7rem}.timeline-item__dot{position:absolute;left:-1.78rem;top:1.3rem;width:12px;height:12px;border:3px solid white;border-radius:999px;background:var(--color-accent);box-shadow:0 0 0 1px #2563eb40}.timeline-item h3,.project-card h3,.blog-card h3,.honor-card h3,.tech-card h3{margin:0 0 .55rem;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:1.2rem}.timeline-item__role,.honor-card__meta{margin:0 0 .5rem;color:var(--color-primary);font-weight:700}.tech-grid,.project-grid,.honor-grid,.blog-grid,.stats-grid,.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.tech-card,.project-card,.honor-card,.blog-card,.stat-card,.copy-card{padding:1.15rem}.project-card,.blog-card,.copy-card{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.project-card:hover,.blog-card:hover,.copy-card:hover{transform:translateY(-4px);border-color:#2563eb47;box-shadow:0 18px 50px #0f172a1a}.project-card__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;color:#71717a;font-weight:700}.project-card__top a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;background:var(--color-cyan)}.code-section{max-width:none;background:var(--color-primary);color:#fff}.code-section .section-heading,.code-section .code-grid,.code-section .github-live-panel{max-width:1180px;margin-left:auto;margin-right:auto}.code-section .section-heading h2,.code-section .section-intro{color:#fff}.code-slogan{margin:0 0 1.4rem;color:var(--color-amber);font-weight:700}.stat-card{min-height:150px;background:#ffffff14;border-color:#ffffff2e;color:#fff}.stat-card strong{display:block;margin:.8rem 0 .15rem;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:1.7rem}.stat-card span{color:#ffffffb8}.github-live-panel{margin-top:1.2rem;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#ffffff14;padding:1.2rem}.github-panel-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.github-panel-header p{margin:0 0 .25rem;color:var(--color-amber);font-size:.82rem;font-weight:800;text-transform:uppercase}.github-panel-header h3{margin:0;color:#fff;font-size:1.35rem}.github-panel-header a{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:44px;height:44px;border-radius:999px;background:#fff;color:var(--color-primary)}.repo-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.repo-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:start;min-height:104px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#ffffff14;padding:1rem;transition:transform .18s ease,border-color .18s ease,background .18s ease}.repo-row:hover{transform:translateY(-2px);border-color:#ffffff57;background:#ffffff1f}.repo-row strong{display:block;color:#fff;overflow-wrap:anywhere}.repo-row p{display:-webkit-box;overflow:hidden;margin:.45rem 0 0;color:#ffffffad;line-height:1.55;-webkit-line-clamp:2;-webkit-box-orient:vertical}.repo-row span,.language-meter div{border-radius:999px;background:#ddf7f124;color:var(--color-cyan);font-size:.8rem;font-weight:800}.repo-row span{padding:.25rem .55rem}.language-meter{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}.language-meter div{display:inline-flex;align-items:center;gap:.4rem;min-height:32px;padding:.3rem .7rem}.language-meter strong{color:#fff}.github-error{border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:1rem;color:#ffffffbf}.updates-list{display:grid;gap:.75rem}.update-item{display:grid;grid-template-columns:90px 140px 1fr;gap:1rem;align-items:start;border-bottom:1px solid var(--color-border);padding:1rem 0}.update-item span,.update-item strong{color:var(--color-primary)}.update-item p{margin:0;color:#52525b;line-height:1.65}.text-link{display:inline-flex;min-height:44px;align-items:center;margin-top:1.3rem;color:var(--color-accent);font-weight:800}.photo-section{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:clamp(1.5rem,5vw,4rem);align-items:center;max-width:1180px;margin:0 auto;padding:clamp(4rem,8vw,7rem) 5vw}.photo-media{overflow:hidden;border-radius:8px;background:var(--color-primary)}.photo-media img{display:block;width:100%}.photo-copy p{max-width:650px;margin-bottom:1.5rem;font-size:1.06rem}.contact-section{padding-bottom:5rem}.contact-page{background:linear-gradient(180deg,rgba(9,9,11,.04),transparent 420px),var(--color-background)}.contact-page-hero{max-width:1180px;margin:0 auto;padding:clamp(4rem,8vw,7rem) 5vw clamp(1.5rem,4vw,3rem)}.contact-page-hero p{margin:0 0 .8rem;color:var(--color-accent);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.88rem;font-weight:800;text-transform:uppercase}.contact-page-hero h1{max-width:780px;margin:0 0 1rem;color:var(--color-primary);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(2.6rem,7vw,6.4rem);line-height:.98}.contact-page-hero span{display:block;max-width:720px;color:#52525b;font-size:1.08rem;line-height:1.75}.contact-page .contact-section{padding-top:1rem}.contact-form{display:grid;gap:1rem;max-width:900px;margin:0 0 1.5rem;border:1px solid var(--color-border);border-radius:8px;background:#ffffffc7;padding:clamp(1rem,3vw,1.4rem);box-shadow:0 12px 36px #0f172a0f}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.contact-form label{display:grid;gap:.45rem}.contact-form label span{color:var(--color-primary);font-size:.92rem;font-weight:800}.contact-form input,.contact-form textarea{width:100%;min-height:46px;border:1px solid var(--color-border);border-radius:8px;background:#fff;color:var(--color-primary);font:inherit;line-height:1.5;padding:.78rem .9rem;transition:border-color .18s ease,box-shadow .18s ease}.contact-form textarea{resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:#2563eb99;outline:0;box-shadow:0 0 0 3px #2563eb24}.contact-submit{justify-self:start}.copy-card{display:grid;gap:.35rem;min-height:96px;border:1px solid var(--color-border);color:var(--color-primary);cursor:pointer;text-align:left}.copy-card strong{overflow-wrap:anywhere}.site-footer{display:grid;grid-template-columns:minmax(220px,1.2fr) repeat(3,minmax(160px,1fr));gap:1rem;border-top:1px solid var(--color-border);padding:2rem 5vw;color:#52525b}.site-footer strong{color:var(--color-primary)}.footer-brand p{max-width:340px;line-height:1.65}.footer-brand-mark{display:inline-flex;align-items:center;gap:.65rem}.footer-brand-mark strong{font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:1.25rem}.footer-links{display:grid;align-content:start;gap:.55rem}.footer-links h2{margin:0 0 .35rem;color:var(--color-primary);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.95rem}.footer-links a{min-height:34px;color:#52525b;line-height:1.45;overflow-wrap:anywhere;transition:color .18s ease}.footer-links a:hover{color:var(--color-accent)}.footer-bottom{grid-column:1 / -1;margin:0;border-top:1px solid var(--color-border);padding-top:1rem}.subpage-hero{max-width:820px;margin-bottom:2rem}.subpage-hero p{color:var(--color-accent);font-weight:800}.filter-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.4rem}.filter-row button{min-height:44px;border:1px solid var(--color-border);border-radius:999px;background:#fff;padding:.55rem .9rem;cursor:pointer}.filter-row button.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.article-page{max-width:860px}.article-description{font-size:1.18rem}.article-tags{margin:1.4rem 0 2rem}.article-body{border-top:1px solid var(--color-border);padding-top:2rem;font-size:1.08rem}.article-body h2{color:var(--color-primary)}.not-found{min-height:62vh}.not-found p{color:var(--color-accent);font-weight:800}.page-enter-active,.page-leave-active,.drop-enter-active,.drop-leave-active{transition:opacity .18s ease,transform .18s ease}.page-enter-from,.page-leave-to{opacity:0;transform:translateY(8px)}.drop-enter-from,.drop-leave-to{opacity:0;transform:translateY(-8px)}.reveal{animation:reveal .52s ease both}.hero-visual.reveal{animation-delay:90ms}@keyframes reveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media(max-width:1040px){.desktop-nav{display:none}.mobile-only{display:inline-flex}.site-header{grid-template-columns:auto 1fr}.header-actions{justify-content:flex-end}.hero-section,.about-grid,.code-grid,.photo-section{grid-template-columns:1fr}.hero-section{min-height:auto}.hero-visual{min-height:auto;max-width:520px}}@media(max-width:820px){.tech-grid,.project-grid,.honor-grid,.blog-grid,.stats-grid,.contact-grid{grid-template-columns:1fr}.site-footer{grid-template-columns:repeat(2,minmax(0,1fr))}.update-item{grid-template-columns:1fr;gap:.25rem}.repo-list{grid-template-columns:1fr}}@media(max-width:560px){.site-header{padding:0 1rem}.language-switch button{min-width:40px}.mobile-nav{grid-template-columns:1fr}.hero-section,.page-section,.subpage,.article-page,.not-found,.photo-section,.contact-page-hero{padding-left:1rem;padding-right:1rem}.hero-copy h1{font-size:3.35rem}.hero-kicker{font-size:.76rem}.hero-lead{font-size:1rem;line-height:1.66}.hero-visual{justify-self:center;width:min(100%,330px)}.portrait-shell{border-radius:22px}.code-note{position:static;margin-top:1rem}.btn{width:100%}.form-row,.site-footer{grid-template-columns:1fr}.contact-submit{justify-self:stretch}.github-live-panel{padding:1rem}.repo-row{grid-template-columns:1fr;min-height:auto}.repo-row span{width:-moz-fit-content;width:fit-content}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.opening-loader{display:none}}:root{--color-primary: #11110f;--color-on-primary: #fffaf0;--color-secondary: #3d3a34;--color-accent: #0f5fff;--color-background: #fbf3e6;--color-foreground: #11110f;--color-muted: #ede1d0;--color-border: rgba(17, 17, 15, .13);--color-cyan: #c8fff1;--color-amber: #ffe0a3;--color-orange: #ff7438;--surface-paper: rgba(255, 250, 240, .78);--surface-strong: rgba(255, 250, 240, .92);--shadow-soft: 0 22px 70px rgba(43, 33, 20, .11);--shadow-lift: 0 32px 90px rgba(43, 33, 20, .17);--radius-card: 28px;--radius-soft: 18px;--ease-out: cubic-bezier(.22, 1, .36, 1)}html{background:var(--color-background)}body{position:relative;overflow-x:hidden;background:radial-gradient(circle at 13% 8%,rgba(200,255,241,.92),transparent 25rem),radial-gradient(circle at 88% 6%,rgba(255,224,163,.96),transparent 24rem),radial-gradient(circle at 76% 54%,rgba(15,95,255,.13),transparent 25rem),linear-gradient(180deg,#fff8ec,#fbf3e6 44%,#f4eadc)}body:before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background-image:linear-gradient(rgba(17,17,15,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(17,17,15,.045) 1px,transparent 1px);background-size:42px 42px;content:"";-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.92),transparent 86%);mask-image:linear-gradient(180deg,rgba(0,0,0,.92),transparent 86%)}body:after{position:fixed;inset:auto -12vw -24vw auto;z-index:-1;width:48vw;height:48vw;border-radius:999px;background:radial-gradient(circle,rgba(255,116,56,.18),transparent 62%);content:"";pointer-events:none}::-moz-selection{background:#ff743847}::selection{background:#ff743847}main{position:relative;isolation:isolate}.opening-loader,.opening-panel{background:radial-gradient(circle at 20% 20%,rgba(200,255,241,.82),transparent 23rem),radial-gradient(circle at 86% 18%,rgba(255,224,163,.82),transparent 24rem),var(--color-background)}.opening-word{text-shadow:0 14px 42px rgba(17,17,15,.12)}.opening-rail{height:4px;border-radius:999px;background:#11110f1f}.site-header{min-height:68px;border-bottom:none;background:#fffaf0bd;box-shadow:0 1px #e4e4e766;-webkit-backdrop-filter:blur(22px) saturate(1.08);backdrop-filter:blur(22px) saturate(1.08)}.brand{position:relative}.brand:after{position:absolute;right:-1.15rem;top:50%;width:.48rem;height:.48rem;border-radius:999px;background:var(--color-orange);box-shadow:0 0 0 6px #ff743821;content:"";transform:translateY(-50%)}.brand-logo{filter:drop-shadow(0 10px 18px rgba(17,17,15,.15))}.brand-logo__field{fill:var(--color-primary)}.brand-logo__orbit{stroke:var(--color-cyan)}.desktop-nav{gap:.15rem;border:1px solid rgba(17,17,15,.06);border-radius:999px;background:#ffffff80;padding:.15rem}.desktop-nav a,.mobile-nav a{padding:0 .5rem;color:#11110fad;font-weight:700}.desktop-nav a:hover,.mobile-nav a:hover{background:#0f5fff14;color:var(--color-accent)}.icon-button,.language-switch,.mobile-nav a{border-color:#11110f1f;background:#fffaf0b8;box-shadow:0 10px 25px #2b21140f}.icon-button:hover{border-color:#0f5fff47;box-shadow:0 14px 34px #2b21141a}.language-switch button.active{background:var(--color-primary);color:var(--color-on-primary);box-shadow:inset 0 0 0 1px #ffffff29}.hero-section{isolation:isolate;overflow:hidden;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);min-height:calc(100dvh - 78px);padding-top:clamp(4rem,8vw,7.5rem)}.hero-section:before{position:absolute;inset:4rem 3vw auto auto;z-index:-1;width:min(48vw,720px);height:min(48vw,720px);border:1px solid rgba(17,17,15,.1);border-radius:38% 62% 54% 46%/46% 44% 56% 54%;background:linear-gradient(135deg,#fffaf0ad,#fffaf02e),radial-gradient(circle at 32% 28%,rgba(200,255,241,.64),transparent 36%),radial-gradient(circle at 72% 76%,rgba(255,116,56,.22),transparent 42%);box-shadow:inset 0 0 70px #ffffff8f,0 40px 110px #2b21141c;content:"";transform:rotate(-8deg)}.hero-section:after{position:absolute;left:5vw;right:5vw;bottom:1.3rem;z-index:-1;height:1px;background:linear-gradient(90deg,transparent,rgba(17,17,15,.24),transparent);content:""}.hero-orb{position:absolute;z-index:-1;border-radius:999px;filter:blur(1px);pointer-events:none}.hero-orb--cyan{left:4vw;top:17%;width:8.2rem;height:8.2rem;background:#c8fff1b8;animation:float 7s ease-in-out infinite}.hero-orb--amber{right:12vw;bottom:13%;width:5.5rem;height:5.5rem;background:#ffe0a3e6;animation:float 6.4s ease-in-out infinite reverse}.hero-copy{position:relative}.hero-copy:before{display:inline-flex;align-items:center;min-height:32px;margin-bottom:1rem;border:1px solid rgba(17,17,15,.12);border-radius:999px;background:#fffaf094;padding:0 .76rem;color:#11110fa3;content:"portfolio / 2026 / bofan";font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.hero-kicker,.section-heading p,.article-meta,.blog-card__meta,.timeline-item__meta{color:#0b56de;letter-spacing:.035em}.hero-copy h1{max-width:10.5ch;letter-spacing:-.065em;text-wrap:balance}.hero-copy h1:after{display:inline-block;width:.19em;height:.19em;margin-left:.07em;border-radius:999px;background:var(--color-orange);box-shadow:0 0 0 .08em #ff743824;content:"";vertical-align:.12em}.hero-lead{max-width:820px;color:#211f1a;font-weight:600}.hero-body,.muted,.section-intro,.about-copy p,.photo-copy p,.article-description,.article-body{color:#11110fab}.hero-tags{margin-top:1.25rem}.btn{position:relative;overflow:hidden;min-height:50px;border-color:#11110f21;padding:.78rem 1.1rem;box-shadow:0 12px 26px #2b211412;transition:transform .22s var(--ease-out),box-shadow .22s var(--ease-out),background .22s var(--ease-out),border-color .22s var(--ease-out)}.btn:before{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent,rgba(255,255,255,.24),transparent);content:"";transform:translate(-120%);transition:transform .42s var(--ease-out)}.btn:hover:before{transform:translate(120%)}.btn:hover{transform:translateY(-3px);box-shadow:0 18px 42px #2b211421}.btn-primary{border-color:#11110feb;background:linear-gradient(135deg,#11110f,#27231d);color:var(--color-on-primary)}.btn-secondary{border-color:#0f5fff38;background:linear-gradient(135deg,#0f5fff,#0b44b8);color:#fff}.btn-ghost{background:#fffaf0b8;color:var(--color-primary);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.tag-pill{min-height:34px;border-color:#11110f1f;background:#fffaf0a3;color:#11110fb8;box-shadow:inset 0 -1px #11110f0d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.hero-visual{display:grid;place-items:center;min-height:540px;perspective:1000px}.hero-visual__orbit{position:absolute;top:5%;right:2%;bottom:4%;left:2%;border:1px solid rgba(17,17,15,.13);border-radius:999px;transform:rotate(-18deg)}.hero-visual__orbit:before,.hero-visual__orbit:after,.hero-visual__orbit span{position:absolute;border-radius:999px;content:""}.hero-visual__orbit:before{top:11%;right:7%;bottom:11%;left:7%;border:1px dashed rgba(15,95,255,.22)}.hero-visual__orbit:after{left:12%;top:48%;width:12px;height:12px;background:var(--color-orange);box-shadow:0 0 0 8px #ff743824}.hero-visual__orbit span:nth-child(1){right:18%;top:12%;width:15px;height:15px;background:var(--color-cyan);box-shadow:0 0 0 8px #c8fff140}.hero-visual__orbit span:nth-child(2){right:6%;bottom:28%;width:9px;height:9px;background:var(--color-accent);box-shadow:0 0 0 7px #0f5fff21}.portrait-shell{position:relative;z-index:2;width:min(100%,430px);border:1px solid rgba(17,17,15,.12);border-radius:42px;background:linear-gradient(135deg,#fffaf0e6,#fffaf06b),linear-gradient(145deg,#c8fff194,#ffe0a385);padding:.64rem;box-shadow:var(--shadow-lift);transform:rotate(2.3deg)}.portrait-shell:before{position:absolute;top:-1rem;right:-1rem;bottom:-1rem;left:-1rem;z-index:-1;border:1px solid rgba(17,17,15,.08);border-radius:48px;background:#fffaf033;content:"";transform:rotate(-5deg)}.portrait-shell img{border-radius:34px;filter:saturate(1.02) contrast(1.02)}.code-note,.mini-card{z-index:3;border:1px solid rgba(17,17,15,.13);background:#fffaf0d1;box-shadow:0 22px 58px #2b211429;-webkit-backdrop-filter:blur(18px) saturate(1.12);backdrop-filter:blur(18px) saturate(1.12)}.code-note{right:-.6rem;bottom:4.6rem;border-radius:24px}.code-note strong,.copy-card strong{letter-spacing:-.04em}.code-note p{margin:.45rem 0 0;color:#11110f9e}.mini-card{position:absolute;display:grid;gap:.18rem;min-width:156px;border-radius:18px;padding:.9rem 1rem;font-family:Space Grotesk,"Noto Serif SC",sans-serif}.mini-card span,.code-note span,.copy-card span{color:#11110f85;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.76rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.mini-card strong{color:var(--color-primary);font-size:.98rem;line-height:1.15}.mini-card--top{left:0;top:4.6rem;transform:rotate(-6deg)}.mini-card--bottom{left:1.2rem;bottom:3.1rem;transform:rotate(4deg)}.page-section,.subpage,.article-page,.not-found{position:relative}.home-page>.page-section:not(.code-section):before,.home-page>.photo-section:before{position:absolute;right:5vw;top:clamp(3rem,7vw,5.5rem);color:#11110f17;counter-increment:home-section;content:"0" counter(home-section);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(3.4rem,9vw,8rem);font-weight:700;letter-spacing:-.08em;line-height:1;pointer-events:none}.section-heading{position:relative}.section-heading h2,.subpage-hero h1,.article-page h1,.not-found h1,.contact-page-hero h1{letter-spacing:-.055em;text-wrap:balance}.section-heading p:before,.subpage-hero p:before,.contact-page-hero p:before,.article-meta:before{display:inline-block;width:1.9rem;height:2px;margin-right:.62rem;background:currentColor;content:"";vertical-align:middle}.section-intro{font-size:1.08rem}.about-grid,.code-grid{gap:1.3rem}.about-copy{border:1px solid rgba(17,17,15,.12);border-radius:var(--radius-card);background:#fffaf080;padding:clamp(1.2rem,3vw,1.75rem);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.about-copy p{font-size:1.05rem}.about-panel,.tech-card,.project-card,.honor-card,.stat-card,.blog-card,.copy-card,.contact-form,.github-live-panel,.repo-row{border-color:#11110f1f;border-radius:var(--radius-card);background:var(--surface-paper);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(16px) saturate(1.04);backdrop-filter:blur(16px) saturate(1.04)}.about-panel{align-content:start;background:radial-gradient(circle at 14% 18%,rgba(200,255,241,.58),transparent 42%),#fffaf0b8;padding:clamp(1.1rem,3vw,1.6rem)}.tech-card,.project-card,.honor-card,.blog-card,.stat-card,.copy-card{padding:1.28rem}.tech-card,.honor-card{position:relative;overflow:hidden}.tech-card:after,.honor-card:after,.project-card:after,.blog-card:after{position:absolute;inset:auto 1.2rem 1.05rem auto;width:38px;height:38px;border-radius:999px;background:linear-gradient(135deg,#c8fff1cc,#ffe0a3cc);content:"";opacity:.38;pointer-events:none}.project-card,.blog-card,.copy-card,.repo-row{position:relative;overflow:hidden;transition:transform .24s var(--ease-out),box-shadow .24s var(--ease-out),border-color .24s var(--ease-out),background .24s var(--ease-out)}.project-card:hover,.blog-card:hover,.copy-card:hover,.repo-row:hover{transform:translateY(-6px) rotate(-.3deg);border-color:#0f5fff3d;background:var(--surface-strong);box-shadow:var(--shadow-lift)}.project-card__top a,.github-panel-header a{background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 12px 28px #11110f29}.project-card h3,.blog-card h3,.honor-card h3,.tech-card h3,.timeline-item h3{letter-spacing:-.035em}.timeline{gap:.7rem;border-left:0;padding-left:0}.timeline-item{border:1px solid rgba(17,17,15,.11);border-radius:var(--radius-card);background:#fffaf08f;padding:1.16rem 1.25rem 1.16rem 3.2rem;box-shadow:0 14px 42px #2b211412}.timeline-item__dot{left:1.1rem;top:1.45rem;width:14px;height:14px;border-color:var(--color-background);background:var(--color-orange);box-shadow:0 0 0 7px #ff743824}.code-section{position:relative;overflow:hidden;background:radial-gradient(circle at 8% 10%,rgba(200,255,241,.18),transparent 28rem),radial-gradient(circle at 86% 18%,rgba(255,116,56,.16),transparent 22rem),linear-gradient(135deg,#11110f,#1d1a16 58%,#071635)}.code-section:before{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,250,240,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,250,240,.055) 1px,transparent 1px);background-size:38px 38px;content:"";-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.88),transparent 92%);mask-image:linear-gradient(180deg,rgba(0,0,0,.88),transparent 92%);pointer-events:none}.code-section .section-heading,.code-section .code-grid,.code-section .github-live-panel{position:relative}.code-section .btn-primary{border-color:#fffaf03d;background:#fffaf01f}.stat-card,.github-live-panel,.repo-row{border-color:#fffaf02e;background:#fffaf017;box-shadow:0 24px 75px #0000002e}.stat-card strong{letter-spacing:-.04em}.github-live-panel,.repo-row{border-radius:26px}.repo-row:hover{background:#fffaf021}.update-item{position:relative;grid-template-columns:14px 100px 150px 1fr;border:1px solid rgba(17,17,15,.1);border-radius:22px;background:#fffaf07a;padding:1.05rem 1.2rem;box-shadow:0 12px 34px #2b21140e}.update-item:before{width:.55rem;height:.55rem;border-radius:999px;background:var(--color-accent);box-shadow:0 0 0 7px #0f5fff1c;content:"";margin-top:.5rem}.photo-section{position:relative}.photo-media{position:relative;overflow:visible;border-radius:34px;background:transparent}.photo-media:before{position:absolute;top:-1rem;right:-1rem;bottom:-1rem;left:-1rem;z-index:-1;border-radius:38px;background:linear-gradient(135deg,#11110ff2,#0f5fffbd);content:"";transform:rotate(-3deg)}.photo-media img{border:1px solid rgba(255,250,240,.45);border-radius:30px;box-shadow:var(--shadow-lift)}.contact-page{background:radial-gradient(circle at 18% 12%,rgba(200,255,241,.64),transparent 28rem),radial-gradient(circle at 84% 9%,rgba(255,224,163,.72),transparent 24rem),transparent}.contact-page-hero{position:relative}.contact-page-hero:after{position:absolute;right:5vw;top:4rem;width:min(24vw,260px);height:min(24vw,260px);border-radius:46% 54% 58% 42%;background:linear-gradient(135deg,#c8fff19e,#ffe0a39e);box-shadow:var(--shadow-soft);content:"";transform:rotate(14deg)}.contact-form input,.contact-form textarea{border-color:#11110f21;border-radius:16px;background:#ffffffad}.contact-form input:focus,.contact-form textarea:focus{border-color:#0f5fff9e;box-shadow:0 0 0 4px #0f5fff21}.copy-card{min-height:112px}.site-footer{position:relative;overflow:hidden;border-top:1px solid rgba(17,17,15,.11);background:#fffaf0a8}.site-footer:before{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 10% 12%,rgba(200,255,241,.32),transparent 22rem);content:"";pointer-events:none}.site-footer>*{position:relative}.subpage,.article-page,.not-found{padding-top:clamp(4.8rem,8vw,7.5rem)}.subpage-hero,.article-page{isolation:isolate}.subpage-hero h1,.article-page h1,.contact-page-hero h1{max-width:900px}.filter-row button{border-color:#11110f1f;background:#fffaf0ad;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-weight:800;box-shadow:0 10px 24px #2b21140f}.filter-row button.active{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.article-page{max-width:900px}.article-body{border-top-color:#11110f1f;border-radius:26px;background:#fffaf08a;padding:1.4rem;box-shadow:var(--shadow-soft)}.text-link{color:#0b56de}.reveal{animation:reveal .68s var(--ease-out) both}.page-enter-active{transition:opacity .24s var(--ease-out),transform .24s var(--ease-out),filter .24s var(--ease-out)}.page-leave-active{transition:opacity .16s ease,transform .16s ease,filter .16s ease}.page-enter-from{opacity:0;filter:blur(8px);transform:translateY(18px) scale(.992)}.page-leave-to{opacity:0;filter:blur(4px);transform:translateY(-8px) scale(.998)}@media(max-width:1040px){.desktop-nav{border:0;background:transparent;padding:0}.hero-section{grid-template-columns:1fr;min-height:auto}.hero-section:before{inset:auto -12vw 2rem auto;width:78vw;height:78vw}.hero-visual{width:min(100%,560px);min-height:520px;justify-self:center}}@media(max-width:820px){.home-page>.page-section:not(.code-section):before,.home-page>.photo-section:before,.contact-page-hero:after{display:none}.update-item{grid-template-columns:1fr}.update-item:before{position:absolute;left:1rem;top:1rem}}@media(max-width:560px){body:before{background-size:32px 32px}.site-header{min-height:70px}.brand:after,.hero-orb,.hero-visual__orbit,.mini-card{display:none}.hero-section{padding-top:3rem}.hero-copy:before{font-size:.7rem}.hero-copy h1{font-size:3.55rem}.hero-actions{gap:.65rem}.hero-visual{min-height:auto;width:min(100%,340px)}.portrait-shell{width:100%;border-radius:30px;transform:rotate(1deg)}.portrait-shell:before{border-radius:34px}.portrait-shell img{border-radius:24px}.code-note{border-radius:20px}.about-copy,.about-panel,.tech-card,.project-card,.honor-card,.blog-card,.stat-card,.copy-card,.contact-form,.github-live-panel,.repo-row,.article-body{border-radius:22px}.photo-media:before{top:-.65rem;right:-.65rem;bottom:-.65rem;left:-.65rem;border-radius:28px}.photo-media img{border-radius:22px}}:root{--cursor-default: url("data:image/svg+xml,%3Csvg width='28' height='28' viewBox='0 0 28 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 4L20 15.2L13.35 16.35L10.18 23.2L6 4Z' fill='%2311110F' stroke='%23FFFAF0' stroke-width='2.2' stroke-linejoin='round'/%3E%3Ccircle cx='20' cy='7' r='3.2' fill='%23FF7438' stroke='%23FFFAF0' stroke-width='1.4'/%3E%3C/svg%3E") 6 4, auto;--cursor-pointer: url("data:image/svg+xml,%3Csvg width='30' height='30' viewBox='0 0 30 30' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 5L22.2 16.4L15.05 17.8L11.55 25.2L7 5Z' fill='%230F5FFF' stroke='%23FFFAF0' stroke-width='2.3' stroke-linejoin='round'/%3E%3Ccircle cx='22.5' cy='7.5' r='3.4' fill='%23C8FFF1' stroke='%2311110F' stroke-width='1.5'/%3E%3C/svg%3E") 7 5, pointer;--cursor-text: text}html{scrollbar-color:rgba(17,17,15,.86) rgba(255,250,240,.76);scrollbar-width:thin}body{cursor:var(--cursor-default)}a,button,[role=button],input[type=submit],input[type=button],.copy-card,.project-card__top a,.filter-row button,.language-switch button,.nav-dropdown__trigger{cursor:var(--cursor-pointer)}input,textarea,[contenteditable=true]{cursor:var(--cursor-text)}::-webkit-scrollbar{width:14px;height:14px}::-webkit-scrollbar-track{background:linear-gradient(180deg,#fffaf0eb,#f4eadceb),#fffaf0e6}::-webkit-scrollbar-thumb{min-height:64px;border:4px solid transparent;border-radius:999px;background:linear-gradient(180deg,#11110f,#0f5fff 62%,#ff7438) content-box;box-shadow:inset 0 0 0 1px #fffaf03d}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#0f5fff,#ff7438 72%) content-box}::-webkit-scrollbar-corner{background:#fffaf0e6}.nav-dropdown{display:inline-flex;align-items:center}.nav-dropdown__trigger{min-height:40px;padding:0 .78rem;color:#11110fb8;font-weight:800}.nav-dropdown__trigger:hover,.nav-dropdown__trigger.is-open{color:var(--color-primary);background:radial-gradient(circle at 18% 20%,rgba(200,255,241,.55),transparent 48%),#fffaf0d6;box-shadow:inset 0 0 0 1px #11110f14,0 10px 26px #2b211414}.nav-dropdown__menu{top:calc(100% + 10px);min-width:178px;border-color:#11110f1c;border-radius:20px;background:radial-gradient(circle at 18% 16%,rgba(200,255,241,.44),transparent 52%),radial-gradient(circle at 88% 88%,rgba(255,224,163,.45),transparent 48%),#fffaf0f0;padding:.62rem;box-shadow:0 24px 70px #2b211429}.nav-dropdown__menu a{position:relative;min-height:40px;border-radius:14px;padding:0 .92rem 0 1.85rem;color:#11110fb8;font-weight:800}.nav-dropdown__menu a:before{position:absolute;left:.78rem;top:50%;width:.42rem;height:.42rem;border-radius:999px;background:var(--color-orange);content:"";opacity:.52;transform:translateY(-50%);transition:transform .18s var(--ease-out),opacity .18s var(--ease-out),background .18s ease}.nav-dropdown__menu a:hover{background:#0f5fff14;color:var(--color-accent)}.nav-dropdown__menu a:hover:before{background:var(--color-accent);opacity:1;transform:translateY(-50%) scale(1.25)}.mobile-nav__group{border:1px solid rgba(17,17,15,.11);border-radius:22px;background:#fffaf09e;padding:.55rem;box-shadow:0 14px 34px #2b211412}.mobile-nav__label{color:#11110f85}@media(pointer:coarse){body,a,button,[role=button],input,textarea,.copy-card,.nav-dropdown__trigger{cursor:auto}}@media(prefers-reduced-motion:reduce){.nav-dropdown__trigger svg,.nav-dropdown__menu a:before{transition:none!important}}.opening-loader{animation:loader-arrive .22s var(--ease-out) both}.opening-sparks{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;pointer-events:none}.opening-sparks span{position:absolute;width:clamp(5rem,12vw,10rem);height:clamp(5rem,12vw,10rem);border:1px solid rgba(17,17,15,.1);border-radius:999px;background:radial-gradient(circle,rgba(255,250,240,.48),transparent 62%);animation:loader-spark 1.5s var(--ease-out) both}.opening-sparks span:nth-child(1){left:12%;top:18%;background:radial-gradient(circle,rgba(200,255,241,.7),transparent 64%)}.opening-sparks span:nth-child(2){right:15%;top:14%;animation-delay:80ms;background:radial-gradient(circle,rgba(255,224,163,.78),transparent 64%)}.opening-sparks span:nth-child(3){left:50%;bottom:10%;animation-delay:.14s;background:radial-gradient(circle,rgba(15,95,255,.18),transparent 64%)}.opening-loader.is-opening .opening-sparks{opacity:0;transition:opacity .36s ease}.opening-core p{position:relative;min-height:1.1em}.opening-core p:after{display:inline-block;width:.52em;height:.52em;margin-left:.5rem;border-radius:999px;background:var(--color-orange);box-shadow:0 0 0 6px #ff743824;content:"";animation:loader-pulse .72s ease-in-out infinite alternate;vertical-align:.03em}.nav-feature{position:relative;isolation:isolate;gap:.36rem;overflow:hidden;border:1px solid rgba(17,17,15,.1);box-shadow:0 10px 25px #2b211412}.nav-feature:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.92;content:"";transition:transform .26s var(--ease-out),opacity .26s ease}.nav-feature:after{position:absolute;top:-70%;left:-50%;z-index:-1;width:38%;height:240%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.44),transparent);content:"";transform:translate(-160%) rotate(18deg);transition:transform .48s var(--ease-out)}.nav-feature svg{flex:0 0 auto;transition:transform .22s var(--ease-out)}.nav-feature:hover:after{transform:translate(520%) rotate(18deg)}.nav-feature:hover svg{transform:translateY(-1px) rotate(-8deg) scale(1.08)}.nav-feature--blog:before{background:radial-gradient(circle at 18% 22%,rgba(200,255,241,.72),transparent 44%),linear-gradient(135deg,#fffaf0f2,#dbf2ffe6)}.nav-feature--contact:before{background:radial-gradient(circle at 78% 20%,rgba(255,224,163,.8),transparent 42%),linear-gradient(135deg,#fffaf0f2,#ffe8d4e6)}.nav-feature--photo:before{background:radial-gradient(circle at 18% 18%,rgba(255,116,56,.24),transparent 42%),linear-gradient(135deg,#11110f,#102658 64%,#0f5fff)}.nav-feature--photo{color:#fffaf0!important;border-color:#fffaf038}.nav-feature--photo:hover{color:#fff!important}.nav-feature.router-link-active:not(.nav-feature--photo){color:var(--color-primary);box-shadow:inset 0 0 0 1px #0f5fff29,0 12px 30px #0f5fff1a}.btn,.icon-button,.copy-card,.project-card,.blog-card,.repo-row,.tech-card,.honor-card,.stat-card,.filter-row button,.nav-feature{position:relative;overflow:hidden;will-change:transform}.btn:active,.icon-button:active,.copy-card:active,.project-card:active,.blog-card:active,.repo-row:active,.filter-row button:active,.nav-feature:active{transform:translateY(1px) scale(.985)}.project-card:before,.blog-card:before,.copy-card:before,.tech-card:before,.honor-card:before,.stat-card:before{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.48) 42%,transparent 58%),radial-gradient(circle at var(--spot-x, 18%) var(--spot-y, 12%),rgba(200,255,241,.34),transparent 34%);content:"";opacity:0;pointer-events:none;transform:translate(-18%);transition:opacity .24s ease,transform .52s var(--ease-out)}.project-card:hover:before,.blog-card:hover:before,.copy-card:hover:before,.tech-card:hover:before,.honor-card:hover:before,.stat-card:hover:before{opacity:1;transform:translate(0)}.tag-pill{transition:transform .2s var(--ease-out),border-color .2s ease,background .2s ease,color .2s ease}.tag-pill:hover{transform:translateY(-2px) rotate(-1deg);border-color:#0f5fff38;background:#c8fff170;color:var(--color-primary)}.hero-visual__orbit{animation:orbit-breathe 5.2s ease-in-out infinite}.hero-visual__orbit:after,.hero-visual__orbit span{animation:orbit-dot 2.4s ease-in-out infinite}.hero-visual__orbit span:nth-child(1){animation-delay:.24s}.hero-visual__orbit span:nth-child(2){animation-delay:.48s}.mini-card,.code-note{transition:transform .26s var(--ease-out),box-shadow .26s var(--ease-out)}.hero-visual:hover .mini-card--top{transform:rotate(-8deg) translate(-6px,-5px)}.hero-visual:hover .mini-card--bottom{transform:rotate(6deg) translate(5px,6px)}.hero-visual:hover .code-note{transform:translate(5px,-5px) rotate(1deg);box-shadow:0 30px 78px #2b211430}@supports (animation-timeline: view()){.page-section,.photo-section,.subpage,.article-page{animation:section-rise both;animation-range:entry 8% cover 24%;animation-timeline:view()}}@keyframes loader-arrive{0%{opacity:0}to{opacity:1}}@keyframes loader-spark{0%{opacity:0;transform:translateY(18px) scale(.7)}45%{opacity:1}to{opacity:.82;transform:translateY(-10px) scale(1)}}@keyframes loader-pulse{0%{transform:scale(.72)}to{transform:scale(1.08)}}@keyframes orbit-breathe{0%,to{transform:rotate(-18deg) scale(1)}50%{transform:rotate(-13deg) scale(1.025)}}@keyframes orbit-dot{0%,to{filter:blur(0);transform:scale(1)}50%{filter:blur(.3px);transform:scale(1.22)}}@keyframes section-rise{0%{opacity:.18;transform:translateY(38px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1040px){.mobile-nav .nav-feature{justify-content:flex-start;padding:0 .9rem}}@media(max-width:560px){.mobile-nav .nav-feature{min-height:48px}}@media(prefers-reduced-motion:reduce){.opening-sparks,.opening-core p:after,.hero-visual__orbit,.hero-visual__orbit:after,.hero-visual__orbit span,.page-section,.photo-section,.subpage,.article-page{animation:none!important}}.site-header{gap:clamp(.45rem,1.2vw,.9rem);padding-left:clamp(1rem,3.6vw,4vw);padding-right:clamp(1rem,3.6vw,4vw)}.desktop-nav{gap:.28rem;justify-self:center}.desktop-nav a,.nav-dropdown__trigger{min-height:36px;padding-left:.68rem;padding-right:.68rem}.nav-feature{min-height:36px;gap:.28rem;border-radius:999px;padding-left:.64rem!important;padding-right:.72rem!important;font-size:.88rem;box-shadow:0 7px 18px #2b21140e}.nav-feature svg{width:14px;height:14px}.nav-feature--blog:before{background:linear-gradient(135deg,#c8fff18f,#fffaf0eb)}.nav-feature--contact:before{background:linear-gradient(135deg,#ffe0a39e,#fffaf0eb)}.nav-feature--photo:before{background:linear-gradient(135deg,#1a1713,#0f5fff)}.nav-feature:hover{transform:translateY(-1px);box-shadow:0 10px 22px #2b211414}.header-actions{gap:.4rem}@media(max-width:1180px){.desktop-nav{gap:.18rem;font-size:.86rem}.desktop-nav a,.nav-dropdown__trigger,.nav-feature{min-height:34px;padding-left:.54rem!important;padding-right:.58rem!important}.nav-feature svg{width:13px;height:13px}}@media(max-width:1040px){.mobile-nav .nav-feature{min-height:46px;padding-left:.9rem!important;padding-right:.9rem!important}.mobile-nav .nav-feature svg{width:16px;height:16px}}.desktop-nav{gap:.42rem;border-color:#11110f0a;background:#fffaf061}.nav-feature,.nav-dropdown__trigger,.desktop-nav>a{border-color:#11110f11}.nav-feature{box-shadow:0 6px 16px #2b21140b}.nav-feature--blog:before{background:linear-gradient(135deg,#c8fff16b,#fffaf0e0)}.nav-feature--contact:before{background:linear-gradient(135deg,#ffe0a375,#fffaf0e0)}.nav-feature--photo{border-color:#0f5fff2e}.nav-feature--photo:before{background:linear-gradient(135deg,#1f1b16,#1357d3)}.nav-feature:hover{border-color:#0f5fff29}@media(max-width:1180px){.desktop-nav{gap:.3rem}}.desktop-nav{gap:.58rem;border-color:#11110f16;background:#fffaf085;padding:.22rem}.nav-feature,.nav-dropdown__trigger,.desktop-nav>a{border-color:#11110f14}@media(max-width:1180px){.desktop-nav{gap:.42rem;padding:.18rem}}.opening-loader,.opening-panel{background:linear-gradient(135deg,rgba(200,255,241,.42),transparent 28rem),linear-gradient(315deg,rgba(255,224,163,.36),transparent 30rem),#fff8ec}.opening-panel{transition:transform .98s cubic-bezier(.76,0,.24,1)}.opening-panel--left,.opening-panel--right{border-color:#11110f13}.opening-core{gap:1.15rem;transition:opacity .46s ease,transform .68s cubic-bezier(.22,1,.36,1)}.opening-word{font-size:clamp(4.2rem,14vw,8.8rem);text-shadow:none}.opening-word:after{width:16%;background:linear-gradient(90deg,transparent,rgba(17,17,15,.12),transparent);animation-duration:1.32s;animation-delay:.42s}.opening-word span{animation-duration:.7s}.opening-word span:nth-child(1){animation-delay:.12s}.opening-word span:nth-child(2){animation-delay:.22s}.opening-word span:nth-child(3){animation-delay:.32s}.opening-word span:nth-child(4){animation-delay:.42s}.opening-word span:nth-child(5){animation-delay:.52s}.opening-rail{width:min(58vw,360px);height:2px;background:#11110f1a}.opening-rail:after{background:linear-gradient(90deg,rgba(17,17,15,.18),var(--color-primary));animation-duration:1.12s;animation-delay:.64s}.opening-core p{color:#11110f7a;font-size:.76rem;letter-spacing:.08em}.opening-core p:after,.opening-sparks{display:none!important}.opening-loader.is-opening .opening-core{transform:translateY(-6px)}.home-page{counter-reset:home-section}.home-page section.page-section:before,.home-page section.photo-section:before{position:absolute;top:clamp(2.4rem,5vw,4.2rem);right:5vw;z-index:0;display:inline-flex;align-items:center;justify-content:center;min-width:clamp(4.6rem,8vw,7.4rem);height:clamp(3.1rem,5.4vw,5.1rem);border:1px solid rgba(17,17,15,.08);border-radius:18px;background:#11110f0e;color:#11110f38;counter-increment:home-section;content:"0" counter(home-section);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(2.15rem,5.4vw,4.9rem);font-weight:700;letter-spacing:-.08em;line-height:1;pointer-events:none}.home-page section.code-section:before{border-color:#fffaf017;background:#fffaf013;color:#fffaf033}.home-page section.page-section>*,.home-page section.photo-section>*{position:relative;z-index:1}.nav-feature:after,.btn:before,.opening-word:after{opacity:.42}.project-card:before,.blog-card:before,.copy-card:before,.tech-card:before,.honor-card:before,.stat-card:before{background:linear-gradient(180deg,rgba(255,250,240,.18),transparent 46%);transform:none;transition:opacity .18s ease}.project-card:hover:before,.blog-card:hover:before,.copy-card:hover:before,.tech-card:hover:before,.honor-card:hover:before,.stat-card:hover:before{opacity:.62;transform:none}.hero-orb,.hero-visual__orbit:after,.hero-visual__orbit span{opacity:.58}.hero-visual__orbit,.hero-visual__orbit:after,.hero-visual__orbit span{animation-duration:7.6s}.project-card:hover,.blog-card:hover,.copy-card:hover,.repo-row:hover{transform:translateY(-4px)}@supports (animation-timeline: view()){.page-section,.photo-section,.subpage,.article-page{animation-range:entry 6% cover 18%}}@media(max-width:820px){.home-page section.page-section:before,.home-page section.photo-section:before{top:2rem;right:1rem;min-width:3.7rem;height:2.7rem;border-radius:14px;font-size:2rem}}.home-page section.page-section:before,.home-page section.photo-section:before{top:clamp(3.1rem,6.2vw,5rem);right:5vw;min-width:auto;height:auto;border:0;border-radius:0;background:transparent;color:#11110f21;content:counter(home-section,decimal-leading-zero);font-size:clamp(1.55rem,3.7vw,3.45rem);font-weight:600;letter-spacing:-.07em;line-height:.9}.home-page section.page-section:after,.home-page section.photo-section:after{position:absolute;top:calc(clamp(3.1rem,6.2vw,5rem) + clamp(1.55rem,3.7vw,3.45rem)*.86);right:5vw;width:clamp(2rem,4vw,3.8rem);height:1px;background:#11110f1c;content:"";pointer-events:none}.home-page section.code-section:before{color:#fffaf029;background:transparent}.home-page section.code-section:after{background:#fffaf024}@media(max-width:820px){.home-page section.page-section:before,.home-page section.photo-section:before{top:2.15rem;right:1.05rem;font-size:1.65rem}.home-page section.page-section:after,.home-page section.photo-section:after{top:3.7rem;right:1.05rem;width:2rem}}.home-page section.page-section:before,.home-page section.photo-section:before{top:clamp(2.2rem,5.2vw,4.4rem);right:5vw;z-index:0;display:block;width:auto;height:auto;min-width:0;border:0;border-radius:0;background:transparent;color:#11110f13;content:counter(home-section,decimal-leading-zero);font-size:clamp(4rem,9vw,8.2rem);font-weight:700;letter-spacing:-.08em;line-height:.8}.home-page section.page-section:after,.home-page section.photo-section:after{display:none}.home-page section.code-section:before{color:#fffaf016}.tech-card:after,.honor-card:after,.project-card:after,.blog-card:after{display:none}.project-card__top a{border:1px solid rgba(15,95,255,.18);background:radial-gradient(circle at 25% 20%,rgba(200,255,241,.72),transparent 48%),#fffaf0c2;color:var(--color-accent);box-shadow:0 10px 24px #0f5fff14;transition:transform .2s var(--ease-out),border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.project-card__top a:hover{border-color:#0f5fff4d;background:#0f5fff14;color:#0b44b8;box-shadow:0 14px 30px #0f5fff1c}@media(max-width:820px){.home-page section.page-section:before,.home-page section.photo-section:before{top:2rem;right:1rem;font-size:3.2rem}}.home-page section.page-section:before,.home-page section.photo-section:before{content:counter(home-section)}.home-page section.page-section:before,.home-page section.page-section:after,.home-page section.photo-section:before,.home-page section.photo-section:after{display:none!important;content:none!important}.opening-loader{background:radial-gradient(circle at 50% 42%,rgba(255,250,240,.98),rgba(255,250,240,.72) 34%,transparent 58%),linear-gradient(135deg,rgba(200,255,241,.36),transparent 30rem),linear-gradient(315deg,rgba(255,224,163,.3),transparent 32rem),#fff8ec;transition:opacity .72s ease,filter .72s ease}.opening-panel{display:none}.opening-core{gap:1rem;transform:translateY(0);transition:opacity .62s ease,transform .78s cubic-bezier(.22,1,.36,1),filter .78s ease}.opening-core:before{display:inline-flex;align-items:center;justify-content:center;width:3.1rem;height:3.1rem;border:1px solid rgba(17,17,15,.1);border-radius:999px;background:#fffaf08a;color:#11110fdb;content:"b";font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:1.45rem;font-weight:700;line-height:1;box-shadow:0 18px 48px #2b211414;animation:loader-mark .98s cubic-bezier(.22,1,.36,1) both}.opening-word{overflow:visible;color:#11110fed;font-size:clamp(3.4rem,11vw,7.2rem);letter-spacing:-.075em;line-height:.9}.opening-word:after{display:none}.opening-word span{opacity:0;transform:translateY(.24em);animation:word-rise-soft .86s cubic-bezier(.22,1,.36,1) forwards}.opening-word span:nth-child(1){animation-delay:.16s}.opening-word span:nth-child(2){animation-delay:.23s}.opening-word span:nth-child(3){animation-delay:.3s}.opening-word span:nth-child(4){animation-delay:.37s}.opening-word span:nth-child(5){animation-delay:.44s}.opening-rail{width:min(44vw,280px);height:1px;background:#11110f1a}.opening-rail:after{background:#11110f9e;animation:rail-fill 1.28s cubic-bezier(.22,1,.36,1) .52s forwards}.opening-core p{color:#11110f6b;font-size:.72rem;font-weight:700;letter-spacing:.11em}.opening-loader.is-opening{opacity:0;filter:blur(8px)}.opening-loader.is-opening .opening-core{opacity:0;filter:blur(4px);transform:translateY(-8px) scale(.99)}@keyframes loader-mark{0%{opacity:0;transform:translateY(8px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes word-rise-soft{0%{opacity:0;transform:translateY(.24em)}to{opacity:1;transform:translateY(0)}}.opening-core:before{display:none!important;content:none!important}.opening-loader:before,.opening-loader:after{position:absolute;left:50%;top:50%;z-index:0;content:"";pointer-events:none;transform:translate(-50%,-50%)}.opening-loader:before{width:min(68vw,760px);height:1px;background:linear-gradient(90deg,transparent,rgba(17,17,15,.08),transparent)}.opening-loader:after{width:1px;height:min(42vh,360px);background:linear-gradient(180deg,transparent,rgba(17,17,15,.055),transparent)}.opening-core{z-index:1;gap:.95rem}.opening-word{letter-spacing:-.09em;transform:translate(-.03em)}.opening-word span{animation-name:word-rise-spread}.opening-rail{width:min(36vw,260px);overflow:visible}.opening-rail:before{position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:999px;background:#11110f42;content:"";transform:translate(-50%,-50%)}.opening-rail:after{background:linear-gradient(90deg,#11110f29,#11110fad,#11110f29)}.opening-core p{margin-top:.1rem}@keyframes word-rise-spread{0%{opacity:0;letter-spacing:-.16em;transform:translateY(.22em)}to{opacity:1;letter-spacing:-.09em;transform:translateY(0)}}.project-showcase{display:grid;gap:1rem}.project-feature{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:clamp(1rem,3vw,2rem);overflow:hidden;border:1px solid rgba(17,17,15,.12);border-radius:34px;background:linear-gradient(135deg,#fffaf0e0,#fffaf094),radial-gradient(circle at 12% 18%,rgba(200,255,241,.55),transparent 36%),radial-gradient(circle at 82% 74%,rgba(255,224,163,.48),transparent 38%);padding:clamp(1.35rem,4vw,2.4rem);box-shadow:var(--shadow-soft)}.project-feature:before{position:absolute;top:1rem;right:1rem;bottom:1rem;left:1rem;border:1px solid rgba(17,17,15,.055);border-radius:26px;content:"";pointer-events:none}.project-feature__copy,.project-feature__panel,.project-feature__link{position:relative;z-index:1}.project-feature__eyebrow{margin:0 0 .8rem;color:var(--color-accent);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.84rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.project-feature h3{max-width:11ch;margin:0;color:var(--color-primary);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(2rem,5vw,4.4rem);line-height:.96;letter-spacing:-.06em}.project-feature__copy>p:not(.project-feature__eyebrow){max-width:680px;margin:1rem 0 1.2rem;color:#11110fad;line-height:1.78}.project-feature__panel{align-self:stretch;display:grid;align-content:space-between;gap:1.1rem;min-height:260px;border:1px solid rgba(17,17,15,.1);border-radius:26px;background:linear-gradient(135deg,#11110fed,#142545eb);color:#fffaf0;padding:1.25rem}.project-feature__panel span{color:#fffaf094;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.project-feature__panel strong{max-width:12ch;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(1.8rem,3.4vw,3rem);line-height:.98;letter-spacing:-.055em}.project-feature__panel div{display:grid;gap:.5rem}.project-feature__panel i{border-top:1px solid rgba(255,250,240,.12);padding-top:.55rem;color:#fffaf0b8;font-style:normal;line-height:1.5}.project-feature__link{grid-column:1 / -1;justify-self:start;display:inline-flex;align-items:center;gap:.45rem;min-height:46px;border:1px solid rgba(15,95,255,.2);border-radius:999px;background:#fffaf0b8;color:var(--color-accent);padding:0 1rem;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-weight:800;box-shadow:0 12px 28px #0f5fff14;transition:transform .2s var(--ease-out),background .2s ease,border-color .2s ease}.project-feature__link:hover{transform:translateY(-2px);border-color:#0f5fff57;background:#c8fff161}.project-grid--compact{grid-template-columns:repeat(4,minmax(0,1fr))}.project-case-page{max-width:1040px;margin:0 auto;padding:clamp(4.8rem,8vw,7.5rem) 5vw}.case-hero{position:relative;overflow:hidden;border:1px solid rgba(17,17,15,.11);border-radius:34px;background:radial-gradient(circle at 12% 16%,rgba(200,255,241,.45),transparent 34%),linear-gradient(135deg,#fffaf0d1,#fffaf08f);padding:clamp(1.4rem,4vw,2.4rem);box-shadow:var(--shadow-soft)}.case-hero h1{max-width:860px;margin:0;color:var(--color-primary);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(2.5rem,6.4vw,5.8rem);line-height:.98;letter-spacing:-.065em}.case-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.5rem}.case-meta-grid div,.case-section{border:1px solid rgba(17,17,15,.1);border-radius:24px;background:#fffaf08f;box-shadow:0 12px 34px #2b21140e}.case-meta-grid div{display:grid;gap:.35rem;min-height:112px;padding:1rem}.case-meta-grid span,.case-section>div>p{margin:0;color:#11110f7a;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.case-meta-grid strong{color:var(--color-primary);line-height:1.45}.case-section{display:grid;grid-template-columns:minmax(180px,.36fr) minmax(0,.64fr);gap:clamp(1rem,3vw,2rem);margin-top:1rem;padding:clamp(1.2rem,3vw,1.75rem)}.case-section h2{margin:.35rem 0 0;color:var(--color-primary);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(1.35rem,3vw,2.4rem);line-height:1.05;letter-spacing:-.045em}.case-section>p,.case-list{margin:0;color:#11110fad;line-height:1.78}.case-list{display:grid;gap:.75rem;padding:0;list-style:none}.case-list li{position:relative;padding-left:1.2rem}.case-list li:before{position:absolute;left:0;top:.75em;width:.42rem;height:.42rem;border-radius:999px;background:var(--color-accent);content:""}.case-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.opening-loader:before{background:linear-gradient(90deg,transparent,rgba(17,17,15,.08),transparent),repeating-linear-gradient(90deg,transparent 0 34px,rgba(17,17,15,.06) 34px 35px,transparent 35px 70px)}.opening-loader:after{background:linear-gradient(180deg,transparent,rgba(17,17,15,.05),transparent),repeating-linear-gradient(180deg,transparent 0 30px,rgba(17,17,15,.045) 30px 31px,transparent 31px 62px)}@media(max-width:1040px){.project-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.project-feature,.case-section,.case-meta-grid{grid-template-columns:1fr}.project-feature__panel{min-height:220px}}@media(max-width:560px){.project-grid--compact{grid-template-columns:1fr}.project-case-page{padding-left:1rem;padding-right:1rem}}.tech-flow{display:grid;grid-auto-columns:minmax(280px,380px);grid-auto-flow:column;gap:1rem;overflow-x:auto;overflow-y:hidden;margin:0 -5vw;padding:.35rem 5vw 1.15rem;scroll-padding-left:5vw;scroll-snap-type:x mandatory;scrollbar-width:thin}.tech-flow::-webkit-scrollbar{height:10px}.tech-flow::-webkit-scrollbar-track{background:#11110f0e;border-radius:999px}.tech-flow::-webkit-scrollbar-thumb{border:3px solid transparent;background:#11110f61 content-box;border-radius:999px}.tech-flow .tech-card{position:relative;display:grid;align-content:space-between;min-height:280px;scroll-snap-align:start;border-radius:30px;background:linear-gradient(135deg,#fffaf0db,#fffaf094),radial-gradient(circle at 18% 18%,rgba(200,255,241,.42),transparent 38%)}.tech-flow .tech-card:nth-child(2n){background:linear-gradient(135deg,#fffaf0e0,#fffaf094),radial-gradient(circle at 84% 18%,rgba(255,224,163,.42),transparent 40%)}.tech-flow .tech-card:before{position:absolute;left:1.28rem;right:1.28rem;top:4.45rem;height:1px;background:#11110f14;content:"";opacity:1;transform:none}.tech-card__top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2.1rem;font-family:Space Grotesk,"Noto Serif SC",sans-serif}.tech-card__top span{color:#11110f38;font-size:clamp(2rem,4vw,3.2rem);font-weight:700;letter-spacing:-.08em;line-height:.85}.tech-card__top i{color:#11110f75;font-size:.72rem;font-style:normal;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.tech-flow .tech-card h3{margin-bottom:1rem;font-size:clamp(1.45rem,2.5vw,2.1rem);line-height:1.05;letter-spacing:-.05em}.tech-card__items{display:flex;flex-wrap:wrap;gap:.55rem;align-self:end}.tech-flow .tech-card:hover{transform:translateY(-4px);border-color:#0f5fff2e;box-shadow:var(--shadow-lift)}@media(max-width:820px){.tech-flow{grid-auto-columns:minmax(260px,82vw);margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem;scroll-padding-left:1rem}}.tech-flow{display:block;overflow:hidden;scroll-snap-type:none}.tech-flow__track{display:grid;grid-auto-columns:minmax(280px,380px);grid-auto-flow:column;gap:1rem;width:-moz-max-content;width:max-content;animation:tech-marquee 38s linear infinite}.tech-flow:hover .tech-flow__track,.tech-flow:focus-within .tech-flow__track{animation-play-state:paused}.tech-flow .tech-card{width:min(380px,82vw)}@keyframes tech-marquee{0%{transform:translate(0)}to{transform:translate(calc(-50% - .5rem))}}@media(max-width:820px){.tech-flow__track{grid-auto-columns:minmax(260px,82vw);animation-duration:44s}}@media(prefers-reduced-motion:reduce){.tech-flow{overflow-x:auto}.tech-flow__track{animation:none!important}}.blog-notebook-page{max-width:1180px}.blog-notebook-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:end;margin-bottom:clamp(1.6rem,4vw,2.6rem)}.blog-notebook-hero p,.blog-index p,.note-entry__content p{margin:0 0 .7rem;color:var(--color-accent);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.78rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.blog-notebook-hero h1{max-width:840px;margin:0;color:var(--color-primary);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(2.5rem,6.4vw,5.8rem);line-height:.98;letter-spacing:-.065em;text-wrap:balance}.blog-notebook-hero>span{max-width:260px;border-left:1px solid rgba(17,17,15,.14);padding-left:1rem;color:#11110f8f;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.86rem;font-weight:700;line-height:1.55}.blog-notebook{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:1rem;align-items:start}.blog-index{position:sticky;top:96px;display:grid;gap:.5rem;border:1px solid rgba(17,17,15,.1);border-radius:26px;background:#fffaf09e;padding:1rem;box-shadow:0 14px 38px #2b211411}.blog-index p{color:#11110f7a}.blog-index button{display:flex;align-items:center;justify-content:space-between;gap:.8rem;min-height:42px;border:1px solid transparent;border-radius:16px;background:transparent;color:#11110fad;padding:0 .78rem;cursor:var(--cursor-pointer);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-weight:800;text-align:left;transition:background .18s ease,border-color .18s ease,color .18s ease}.blog-index button strong{color:#11110f5c;font-size:.78rem}.blog-index button:hover,.blog-index button.active{border-color:#0f5fff24;background:#c8fff147;color:var(--color-primary)}.note-list{overflow:hidden;border:1px solid rgba(17,17,15,.1);border-radius:30px;background:linear-gradient(90deg,rgba(17,17,15,.035) 1px,transparent 1px) 3.1rem 0 / 1px 100% no-repeat,repeating-linear-gradient(180deg,transparent 0 47px,rgba(17,17,15,.035) 47px 48px),#fffaf0a3;box-shadow:var(--shadow-soft)}.note-entry{position:relative;display:grid;grid-template-columns:4.8rem minmax(0,1fr) auto;gap:clamp(.8rem,2vw,1.4rem);align-items:start;min-height:176px;border-bottom:1px solid rgba(17,17,15,.085);padding:clamp(1.1rem,3vw,1.55rem);transition:background .2s ease,transform .2s var(--ease-out)}.note-entry:last-child{border-bottom:0}.note-entry:hover{background:#fffaf0c7;transform:translate(4px)}.note-entry__index{color:#11110f2e;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(1.8rem,4vw,3rem);font-weight:700;letter-spacing:-.08em;line-height:.9}.note-entry__content h2{max-width:780px;margin:0;color:var(--color-primary);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:clamp(1.35rem,3vw,2.2rem);line-height:1.12;letter-spacing:-.045em}.note-entry__content>span{display:block;max-width:760px;margin-top:.75rem;color:#11110f9e;line-height:1.75}.note-entry__tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}.note-entry__arrow{display:inline-grid;place-items:center;width:42px;height:42px;border:1px solid rgba(15,95,255,.16);border-radius:999px;background:#fffaf0a3;color:var(--color-accent);font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-weight:800;transition:transform .2s var(--ease-out),background .2s ease}.note-entry:hover .note-entry__arrow{background:#c8fff15c;transform:translate(2px,-2px)}@media(max-width:900px){.blog-notebook,.blog-notebook-hero{grid-template-columns:1fr}.blog-index{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.blog-index p{grid-column:1 / -1}}@media(max-width:560px){.blog-index{grid-template-columns:1fr}.note-list{background:#fffaf0a3}.note-entry{grid-template-columns:1fr;min-height:auto}.note-entry__arrow{justify-self:start}}.contact-board{display:grid;grid-template-columns:minmax(220px,.34fr) minmax(0,.66fr);gap:1rem;align-items:stretch;margin-top:1.6rem}.contact-board .contact-actions{display:grid;align-content:start;gap:.65rem;margin-top:0;border:1px solid rgba(17,17,15,.1);border-radius:28px;background:radial-gradient(circle at 16% 18%,rgba(200,255,241,.36),transparent 42%),#fffaf094;padding:.9rem;box-shadow:0 14px 38px #2b211411}.contact-board .contact-actions .btn{justify-content:flex-start;width:100%;min-height:46px;border-radius:18px;box-shadow:none}.contact-board .contact-actions .btn-secondary{background:linear-gradient(135deg,#165ee4,#0b48bc)}.contact-board .contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.contact-board .copy-card{display:grid;grid-template-columns:minmax(80px,.3fr) minmax(0,.7fr);gap:.8rem;align-items:center;min-height:76px;border-radius:22px;background:#fffaf094;padding:.95rem 1rem;text-align:left;box-shadow:0 10px 28px #2b21140e}.contact-board .copy-card span{color:#11110f70;font-size:.72rem;letter-spacing:.08em}.contact-board .copy-card strong{color:var(--color-primary);font-size:clamp(.98rem,1.8vw,1.12rem);letter-spacing:-.025em;line-height:1.35}.contact-board .copy-card:hover{transform:translateY(-3px);border-color:#0f5fff29;background:#fffaf0c7}@media(max-width:900px){.contact-board{grid-template-columns:1fr}.contact-board .contact-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.contact-board .contact-actions,.contact-board .contact-grid{grid-template-columns:1fr}.contact-board .copy-card{grid-template-columns:1fr;gap:.3rem}}.scroll-progress{position:fixed;right:.72rem;top:88px;bottom:1rem;z-index:1800;width:12px;pointer-events:none}.scroll-progress__track{position:relative;width:2px;height:100%;margin:0 auto;border-radius:999px;background:linear-gradient(180deg,#11110f24,#11110f0a),#fffaf0b8;box-shadow:0 0 0 1px #fffaf080,0 12px 32px #2b211414;overflow:visible}.scroll-progress__track span{position:absolute;left:0;top:0;width:100%;height:100%;border-radius:inherit;background:linear-gradient(180deg,var(--color-primary),var(--color-accent),var(--color-orange));transform-origin:top;transition:transform 90ms linear}.scroll-progress__track i{position:absolute;left:50%!important;top:clamp(0%,var(--progress-y, 0%),100%);width:10px;height:10px;border:2px solid #fff8ec;border-radius:999px;background:var(--color-orange);box-shadow:0 0 0 5px #ff74381f,0 8px 20px #2b211424;transform:translate(-50%,-50%)}.scroll-progress__track i[style]{top:auto;transform:translate(-50%,-50%)}.home-page{position:relative;overflow:hidden}.bubble-playground{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.site-bubble{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border:1px solid rgba(17,17,15,.065);border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.82),transparent 22%),radial-gradient(circle at 66% 72%,rgba(255,255,255,.34),transparent 34%),#c8fff147;box-shadow:inset 0 0 28px #ffffff59,0 18px 46px #2b21140d;cursor:var(--cursor-pointer);opacity:.72;pointer-events:auto;transform:translate(-50%,-50%);transition:opacity .22s ease,transform .22s var(--ease-out),border-color .22s ease;animation:bubble-drift 7s ease-in-out infinite}.site-bubble[style*=amber]{background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.82),transparent 22%),radial-gradient(circle at 66% 72%,rgba(255,255,255,.34),transparent 34%),#ffe0a357}.site-bubble:nth-child(2n){animation-duration:8.4s;animation-delay:-1.4s}.site-bubble:nth-child(3n){animation-duration:9.2s;animation-delay:-2.1s}.site-bubble:hover{border-color:#0f5fff24;opacity:.9;transform:translate(-50%,-50%) scale(1.05)}.site-bubble span{position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:999px;background:#fffaf0d1;opacity:0;transform:translate(-50%,-50%) scale(.3)}.site-bubble.is-bursting{opacity:0;transform:translate(-50%,-50%) scale(1.28);transition:opacity .26s ease .12s,transform .36s var(--ease-out)}.site-bubble.is-bursting span:nth-child(1){--dx: -34px;--dy: -26px}.site-bubble.is-bursting span:nth-child(2){--dx: 30px;--dy: -30px}.site-bubble.is-bursting span:nth-child(3){--dx: 42px;--dy: 7px}.site-bubble.is-bursting span:nth-child(4){--dx: 18px;--dy: 38px}.site-bubble.is-bursting span:nth-child(5){--dx: -26px;--dy: 32px}.site-bubble.is-bursting span:nth-child(6){--dx: -42px;--dy: 4px}@keyframes bubble-drift{0%,to{translate:0 0}50%{translate:0 -14px}}@keyframes bubble-piece{0%{opacity:.95;transform:translate(-50%,-50%) scale(.45)}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.1)}}@media(max-width:820px){.scroll-progress{right:.35rem;top:76px;bottom:.65rem}.site-bubble:nth-child(n+4){display:none}}@media(pointer:coarse),(prefers-reduced-motion:reduce){.bubble-playground{display:none}.site-bubble{animation:none!important}}.scroll-progress__track i{left:50%!important;top:0}.scroll-progress__track i[style]{top:var(--unused, 0);transform:translate(-50%,-50%)}.scroll-progress{right:.32rem;top:0;bottom:0;z-index:1900;width:18px;display:grid;place-items:center}.scroll-progress__track{width:4px;height:min(58vh,520px);border-radius:999px;background:#11110f14;box-shadow:none;overflow:hidden}.scroll-progress__track span{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:inherit;background:#181611;transform-origin:top;transition:transform 80ms linear}.scroll-progress__track i{display:none}.scroll-progress strong{position:absolute;right:.05rem;bottom:calc(50% - min(29vh,260px) - 1.55rem);color:#11110f6b;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.62rem;font-weight:800;line-height:1;writing-mode:vertical-rl}.scroll-progress strong:after{content:"%"}.bubble-playground{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;overflow:hidden;pointer-events:none}.site-bubble{left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-color:#11110f0e;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.88),transparent 24%),#c8fff140;opacity:0;pointer-events:auto;transform:translate(-50%,18px) scale(.32);animation:bubble-rise var(--duration) cubic-bezier(.22,1,.36,1) forwards}.site-bubble[style*=amber]{background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.88),transparent 24%),#ffe0a34d}.site-bubble:nth-child(2n),.site-bubble:nth-child(3n){animation-name:bubble-rise}.site-bubble:hover{opacity:.86;transform:translate(-50%,-50%) scale(1.08)}.site-bubble.is-bursting{animation-play-state:paused;opacity:0;transform:translate(-50%,-50%) scale(1.22)}.site-bubble.is-bursting span{animation:bubble-piece .62s var(--ease-out) forwards}@keyframes bubble-rise{0%{opacity:0;transform:translate(-50%,18px) scale(.32)}14%{opacity:.7;transform:translate(-50%) scale(.72)}58%{opacity:.78;transform:translate(calc(-50% + var(--drift) * .48),calc(var(--rise) * -.55)) scale(1)}to{opacity:0;transform:translate(calc(-50% + var(--drift)),calc(var(--rise) * -1)) scale(1.12)}}@media(max-width:820px){.scroll-progress{right:.18rem;top:0;bottom:0}.scroll-progress__track{height:min(46vh,360px)}.scroll-progress strong{display:none}}.scroll-progress{position:fixed;top:0;right:0;bottom:0;z-index:1900;width:18px;display:block;pointer-events:none}.scroll-progress__track{position:absolute;top:.55rem;bottom:.55rem;left:50%;width:3px;height:auto;margin:0;border-radius:999px;background:#11110f14;box-shadow:none;overflow:hidden;transform:translate(-50%)}.scroll-progress__track span{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:inherit;background:#181611;transform-origin:top}.scroll-progress__track i{display:none!important}.scroll-progress strong{position:absolute;left:50%;bottom:1.25rem;color:#11110f61;font-family:Space Grotesk,"Noto Serif SC",sans-serif;font-size:.62rem;font-weight:800;line-height:1;writing-mode:vertical-rl;transform:translate(-50%)}.bubble-playground,.site-bubble{display:none!important}@media(max-width:820px){.scroll-progress{width:12px}.scroll-progress__track{width:2px}}html{scrollbar-width:none}body{-ms-overflow-style:none}body::-webkit-scrollbar{width:0;height:0}.photo-section{gap:clamp(2rem,6vw,5rem)}.photo-media:before{background:linear-gradient(135deg,#0f5fff6b,#ffe0a3b8);box-shadow:0 24px 70px #2b21141f}.photo-media img{background:#fff8ec;filter:saturate(1.08) contrast(1.02)}.photo-copy .btn-primary{border-color:#0f5fff42;background:linear-gradient(135deg,#11110f,#0f5fff);color:#fffaf0;box-shadow:0 16px 38px #0f5fff29}.photo-copy p{color:#11110fa3}.scroll-progress{right:0;width:8px}.scroll-progress__track{left:auto;right:2px;width:3px;transform:none}.scroll-progress strong{left:auto;right:2px;transform:none}@media(max-width:820px){.scroll-progress{width:6px}.scroll-progress__track{right:1px;width:2px}}.code-section{background:radial-gradient(circle at 12% 10%,rgba(200,255,241,.5),transparent 28rem),radial-gradient(circle at 88% 18%,rgba(255,224,163,.58),transparent 24rem),linear-gradient(180deg,#fffaf0eb,#f4eadcdb);color:var(--color-primary)}.code-section:before{background-image:linear-gradient(rgba(17,17,15,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(17,17,15,.04) 1px,transparent 1px);background-size:38px 38px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.78),transparent 92%);mask-image:linear-gradient(180deg,rgba(0,0,0,.78),transparent 92%)}.code-section .section-heading h2,.code-section .section-intro{color:var(--color-primary)}.code-section .section-intro,.code-section .muted{color:#11110fa8}.code-slogan{color:var(--color-accent)}.code-section .btn-primary{border-color:#0f5fff33;background:linear-gradient(135deg,#11110f,#0f5fff);color:#fffaf0;box-shadow:0 16px 38px #0f5fff24}.code-section .stat-card,.code-section .github-live-panel,.code-section .repo-row{border-color:#11110f1f;background:#fffaf0ad;color:var(--color-primary);box-shadow:0 14px 42px #2b211413}.code-section .stat-card svg{color:var(--color-accent)}.code-section .stat-card strong,.code-section .github-panel-header h3,.code-section .repo-row strong,.code-section .language-meter strong{color:var(--color-primary)}.code-section .stat-card span,.code-section .repo-row p,.code-section .github-error{color:#11110f9e}.code-section .github-panel-header p{color:var(--color-accent)}.code-section .github-panel-header a{background:#fffaf0d1;color:var(--color-accent);border:1px solid rgba(15,95,255,.18)}.code-section .repo-row:hover{border-color:#0f5fff33;background:#fffaf0e0}.code-section .repo-row span,.code-section .language-meter div{background:#c8fff157;color:#0b56de}.code-section .github-error{border-color:#11110f1f;background:#fffaf094}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}
