.DevlogPostContainer_wrapper__tyrpF{position:relative;min-height:100dvh;background:rgba(var(--js2-bg),.5)}.DevlogPostContainer_article__jXnt7{max-width:900px;margin:0 auto;padding:5rem 1.5rem}.DevlogPostContainer_header__YcknS{margin-bottom:3rem;border-bottom:1px solid rgba(var(--js2-primary),.12);padding-bottom:2rem}.DevlogPostContainer_backLink__hEqcP{display:inline-block;font-family:var(--font-orbitron),sans-serif;font-size:var(--js2-fs-xs);letter-spacing:var(--js2-ls-wider);color:rgba(var(--js2-primary-mid),.6);text-decoration:none;margin-bottom:1.5rem;transition:color .2s}.DevlogPostContainer_backLink__hEqcP:hover{color:rgba(var(--js2-primary-pale),.9)}.DevlogPostContainer_meta__FME6o{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.DevlogPostContainer_category__AGycX{font-family:var(--font-orbitron),sans-serif;font-size:var(--js2-fs-2xs);letter-spacing:var(--js2-ls-wider);color:rgba(var(--js2-accent),.85);background:rgba(var(--js2-accent),.08);border:1px solid rgba(var(--js2-accent),.22);border-radius:4px;padding:2px 8px}.DevlogPostContainer_date__44vC9,.DevlogPostContainer_readTime__g6sy8{font-family:var(--font-orbitron),sans-serif;font-size:var(--js2-fs-2xs);letter-spacing:var(--js2-ls-base);color:rgba(var(--js2-text-dim),.5)}.DevlogPostContainer_date__44vC9:after{content:"·";margin-left:.75rem;color:rgba(var(--js2-text-dim),.3)}.DevlogPostContainer_title__iSp0U{font-family:var(--font-orbitron),"Pretendard Variable",Pretendard,sans-serif;font-size:clamp(1.35rem,4vw,1.85rem);font-weight:700;letter-spacing:-.01em;color:rgba(var(--js2-primary-pale),.95);line-height:1.4;margin:0 0 .9rem}.DevlogPostContainer_summary__41JAe{font-family:Pretendard Variable,Pretendard,sans-serif;font-size:var(--js2-fs-md);color:rgba(var(--js2-text-dim),.72);letter-spacing:-.01em;line-height:1.7;margin:0 0 1.1rem}.DevlogPostContainer_tags__uMBmA{display:flex;flex-wrap:wrap;gap:.4rem}.DevlogPostContainer_tag__DABxt{font-family:var(--font-orbitron),sans-serif;font-size:var(--js2-fs-2xs);letter-spacing:var(--js2-ls-base);color:rgba(var(--js2-primary-mid),.6);border:1px solid rgba(var(--js2-primary),.18);border-radius:4px;padding:1px 7px}.DevlogPostContainer_body__RBPKT{color:rgba(var(--js2-text),.85);font-family:Pretendard Variable,Pretendard,sans-serif;font-size:1.05rem;letter-spacing:-.01em;line-height:1.85}.DevlogPostContainer_body__RBPKT h2{font-size:var(--js2-fs-xl);font-weight:700;color:rgba(var(--js2-primary-pale),.95);margin:2.5rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid rgba(var(--js2-primary),.15)}.DevlogPostContainer_body__RBPKT h2,.DevlogPostContainer_body__RBPKT h3{font-family:var(--font-orbitron),"Pretendard Variable",Pretendard,sans-serif;letter-spacing:-.01em}.DevlogPostContainer_body__RBPKT h3{font-size:var(--js2-fs-lg);font-weight:600;color:rgba(var(--js2-primary-light),.88);margin:2rem 0 .75rem}.DevlogPostContainer_body__RBPKT p{margin:0 0 1.25rem}.DevlogPostContainer_body__RBPKT hr{border:none;border-top:1px solid rgba(var(--js2-primary),.12);margin:2.5rem 0}.DevlogPostContainer_body__RBPKT code{font-family:var(--font-geist-mono),"Courier New",monospace;font-size:.88em;background:rgba(var(--js2-primary),.1);border:1px solid rgba(var(--js2-primary),.2);border-radius:3px;padding:1px 5px;color:rgba(var(--js2-primary-pale),.9)}.DevlogPostContainer_body__RBPKT pre{background:rgba(3,0,20,.85);border:1px solid rgba(var(--js2-primary),.18);border-radius:6px;padding:1.2rem 1.4rem;overflow-x:auto;margin:0 0 1.5rem}.DevlogPostContainer_body__RBPKT pre code{background:none;border:none;padding:0;font-size:var(--js2-fs-sm);color:rgba(var(--js2-text),.9);line-height:1.7}.DevlogPostContainer_body__RBPKT strong{color:rgba(var(--js2-primary-pale),.95);font-weight:600}.DevlogPostContainer_body__RBPKT a{color:rgba(var(--js2-accent),.85);text-decoration:none;border-bottom:1px solid rgba(var(--js2-accent),.3);transition:color .2s,border-color .2s}.DevlogPostContainer_body__RBPKT a:hover{color:rgba(var(--js2-accent),1);border-color:rgba(var(--js2-accent),.7)}.DevlogPostContainer_body__RBPKT ol,.DevlogPostContainer_body__RBPKT ul{padding-left:1.5rem;margin:0 0 1.25rem}.DevlogPostContainer_body__RBPKT li{margin-bottom:.4rem}.DevlogPostContainer_body__RBPKT table{width:100%;border-collapse:collapse;margin:0 0 1.5rem;font-size:.95rem}.DevlogPostContainer_body__RBPKT thead{border-bottom:2px solid rgba(var(--js2-primary),.25)}.DevlogPostContainer_body__RBPKT th{font-family:var(--font-orbitron),"Pretendard Variable",Pretendard,sans-serif;font-size:.82rem;font-weight:600;letter-spacing:.02em;color:rgba(var(--js2-primary-pale),.9);text-align:left;padding:.6rem .75rem;white-space:nowrap}.DevlogPostContainer_body__RBPKT td{padding:.5rem .75rem;border-bottom:1px solid rgba(var(--js2-primary),.1);color:rgba(var(--js2-text),.8);vertical-align:top}.DevlogPostContainer_body__RBPKT tbody tr:hover{background:rgba(var(--js2-primary),.04)}@media (max-width:640px){.DevlogPostContainer_body__RBPKT table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}.DevlogPostContainer_relatedBox__C8g48{margin:3rem 0 0;padding:1.25rem 1.5rem;background:rgba(var(--js2-accent),.04);border:1px solid rgba(var(--js2-accent),.2);border-radius:6px;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.DevlogPostContainer_relatedLabel__BVnyb{font-family:var(--font-orbitron),sans-serif;font-size:var(--js2-fs-xs);letter-spacing:var(--js2-ls-wider);color:rgba(var(--js2-text-dim),.6);margin:0}.DevlogPostContainer_relatedLink__2hkHw{font-family:var(--font-orbitron),sans-serif;font-size:var(--js2-fs-sm);letter-spacing:var(--js2-ls-wide);color:rgba(var(--js2-accent),.85);text-decoration:none;transition:color .2s}.DevlogPostContainer_relatedLink__2hkHw:hover{color:rgba(var(--js2-accent),1)}.DevlogPostContainer_footer__It8u7{margin-top:3.5rem;padding-top:2rem;border-top:1px solid rgba(var(--js2-primary),.1)}.DevlogPostContainer_footerBack__MUcmt{font-family:var(--font-orbitron),sans-serif;font-size:var(--js2-fs-xs);letter-spacing:var(--js2-ls-wider);color:rgba(var(--js2-primary-mid),.6);text-decoration:none;transition:color .2s}.DevlogPostContainer_footerBack__MUcmt:hover{color:rgba(var(--js2-primary-pale),.9)}