:global(.lang-switch){display:none}.breadcrumb{font-size:11px;color:var(--fg-dim);margin-bottom:2.5rem;letter-spacing:.02em}.breadcrumb a{color:var(--fg-dim)}.breadcrumb a:hover{color:var(--fg-bright)}.breadcrumb .sep{margin:0 .6em;color:var(--fg-xdim)}.breadcrumb .current{color:var(--fg)}.project-header{max-width:720px;margin-bottom:2.5rem}.project-header h1{font-family:var(--serif);font-size:26px;font-weight:300;color:var(--fg-bright);letter-spacing:-.01em;margin-bottom:.6rem}.project-meta{font-size:11px;color:var(--fg-dim);line-height:1.6;letter-spacing:.02em}.project-meta span+span:before{content:" · ";color:var(--fg-xdim)}.project-links{margin-top:.6rem;font-size:11px;display:flex;gap:1.2rem}.project-links a{color:var(--fg-dim);text-decoration:none;transition:color .25s ease}.project-links a:hover{color:var(--fg-bright)}.output-area{background:#080808;border:1px solid #181818;border-radius:3px;margin-bottom:3rem;position:relative;overflow:hidden}.output-label{position:absolute;top:.8rem;right:1rem;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-xdim);z-index:2}.output-controls{display:flex;justify-content:flex-end;padding:.5rem 1rem;background:#080808}.output-controls button{background:none;border:1px solid var(--fg-dim);border-radius:2px;font-family:var(--mono);font-size:11px;font-weight:400;color:var(--fg);padding:.4rem 1rem;cursor:pointer;letter-spacing:.03em;transition:color .2s,border-color .2s,background .2s}.output-controls button:hover{color:var(--fg-bright);border-color:var(--fg);background:#ffffff0a}.gallery{margin-bottom:3rem}.gallery-row{display:flex;gap:1rem;margin-bottom:1rem}.gallery-row.single{display:block}.gallery-item{flex:1;min-width:0}.gallery-item img{width:100%;height:auto;display:block;border:1px solid #181818;border-radius:2px}.gallery-caption{font-size:10px;color:var(--fg-dim);margin-top:.5rem;line-height:1.45;letter-spacing:.01em}.text-excerpt{margin-bottom:3rem;max-width:620px}.text-excerpt .excerpt-label{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--rule)}.text-excerpt blockquote{background:#f5f2ec0a;border-left:3px solid #6b7c5e;padding:1.2rem 1.5rem;border-radius:0 3px 3px 0;font-family:var(--serif);font-size:13px;font-weight:300;line-height:1.7;color:var(--fg);font-style:italic}.text-excerpt .excerpt-source{font-family:var(--mono);font-size:10px;color:var(--fg-dim);margin-top:.6rem;font-style:normal}.concept{max-width:620px;margin-bottom:3rem}.concept h2{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--rule)}.concept p{font-size:12.5px;line-height:1.65;color:var(--fg);margin-bottom:.8rem}.code-viewer{margin-bottom:3rem;max-width:720px}.code-viewer h2{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim);margin-bottom:0;padding-bottom:0;border-bottom:none}.code-tabs{display:flex;gap:0;border-bottom:1px solid var(--rule);margin-bottom:0}.code-tab{padding:.7rem 1.2rem;font-family:var(--mono);font-size:11px;font-weight:300;color:var(--fg-dim);cursor:pointer;border-bottom:1.5px solid transparent;margin-bottom:-1px;transition:color .2s,border-color .2s;user-select:none;letter-spacing:.02em}.code-tab:hover{color:var(--fg)}.code-tab.active{color:var(--fg-bright);border-bottom-color:var(--fg-dim)}.code-panels{background:#0a0a0a;border:1px solid #1a1a1a;border-top:none;border-radius:0 0 3px 3px;overflow:hidden}.code-panel{display:none}.code-panel.active{display:block}.code-pre{margin:0;padding:1.5rem;overflow-x:auto}.code-pre code{font-family:var(--mono);font-size:12px;font-weight:300;line-height:1.6;color:var(--fg);white-space:pre;tab-size:4}.project-nav{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;margin-top:0;margin-bottom:1rem;font-size:11px}.project-nav a,.project-nav a:link,.project-nav a:visited{color:var(--fg-dim);text-decoration:none;transition:color .25s ease}.project-nav a:hover{color:var(--fg-bright)}.nav-prev-next{display:flex;gap:1.5rem}@media(max-width:768px){.project-header h1{font-size:22px}.gallery-row{flex-direction:column}.text-excerpt blockquote{padding:1rem 1.2rem;font-size:12px}.code-pre{padding:1rem}.code-pre code{font-size:11px}}
