/*! tailwindcss v4.1.7 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:"Pretendard Korean",var(--font-ibm-sans);--font-mono:var(--font-ibm-mono),"Pretendard Korean";--color-red-600:oklch(57.7% .245 27.325);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-800:oklch(47.3% .137 46.201);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-800:oklch(42.4% .199 265.638);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-6{margin-block:calc(var(--spacing)*6)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-10{margin-top:calc(var(--spacing)*10)}.mt-12{margin-top:calc(var(--spacing)*12)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-auto{margin-bottom:auto}.ml-2{margin-left:calc(var(--spacing)*2)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.h-full{height:100%}.min-h-\[70vh\]{min-height:70vh}.min-h-screen{min-height:100vh}.w-64{width:calc(var(--spacing)*64)}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[1fr_auto_auto\]{grid-template-columns:1fr auto auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing)*0)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-10{gap:calc(var(--spacing)*10)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-neutral-200>:not(:last-child)){border-color:var(--color-neutral-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-neutral-200{border-color:var(--color-neutral-200)}.border-neutral-300{border-color:var(--color-neutral-300)}.bg-\[\#255f38\]{background-color:#255f38}.bg-\[\#727D73\]\/50{background-color:oklab(57.7456% -.0169027 .0105933/.5)}.bg-\[\#a0c878\]{background-color:#a0c878}.bg-\[var\(--bg\)\]{background-color:var(--bg)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-neutral-50{background-color:var(--color-neutral-50)}.bg-neutral-900{background-color:var(--color-neutral-900)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/40{background-color:#fff6}@supports (color:color-mix(in lab,red,red)){.bg-white\/40{background-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.bg-white\/60{background-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-6{padding:calc(var(--spacing)*6)}.p-10{padding:calc(var(--spacing)*10)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-20{padding-inline:calc(var(--spacing)*20)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-3{padding-top:calc(var(--spacing)*3)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-\[var\(--text-selected\)\]{color:var(--text-selected)}.text-amber-800{color:var(--color-amber-800)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-600{color:var(--color-neutral-600)}.text-neutral-900{color:var(--color-neutral-900)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.placeholder\:text-neutral-400::placeholder{color:var(--color-neutral-400)}@media (hover:hover){.hover\:bg-neutral-50:hover{background-color:var(--color-neutral-50)}.hover\:bg-neutral-100:hover{background-color:var(--color-neutral-100)}.hover\:bg-neutral-800:hover{background-color:var(--color-neutral-800)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-neutral-700:hover{color:var(--color-neutral-700)}}.focus\:border-neutral-500:focus{border-color:var(--color-neutral-500)}.disabled\:opacity-40:disabled{opacity:.4}}@font-face{font-family:Pretendard Korean;src:url(/PretendardVariable.woff2)format("woff2-variations");font-style:normal;font-weight:100 900;font-display:swap;unicode-range:u+11??,u+3130-318f,u+a960-a97f,u+ac00-d7af,u+d7b0-d7ff}:root{--bg:#f5f7ec;--bg-term:#14150d;--ink:#17180f;--dim:#6b6d5e;--rule:#dfe1cf;--lime:#9fd336;--lime-bg:#eaf5c8;--lime-txt:#4a7300;--yolk:#ffcf33;--yolk-bg:#fff4c2;--yolk-txt:#7a5e00;--code-fg:#dde0cc;--r:10px}[data-theme=dark]{--bg:#13140c;--bg-card:#1c1d13;--bg-term:#0c0d07;--ink:#e8ead8;--dim:#888a76;--rule:#2a2c1c;--lime:#b8e655;--lime-bg:#1e2e08;--lime-txt:#9fd336;--yolk:#ffd64d;--yolk-bg:#2a2100;--yolk-txt:#ffd64d;--code-fg:#d8dbb6}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5;transition:background-color .3s,color .3s}.skip-link{z-index:120;background:var(--lime);color:#13140c;font:12px var(--font-mono),monospace;border-radius:4px;padding:8px 12px;position:fixed;top:8px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}a{color:inherit;text-decoration:none}::selection{background:var(--lime);color:#14150d}.wrap{margin:0 auto;padding:0 28px}.site-header{z-index:40;background:var(--bg);position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.site-header{background:color-mix(in srgb,var(--bg)90%,transparent)}}.site-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}.header-inner{justify-content:space-between;align-items:center;gap:20px;padding:16px 0;display:flex}.logo{letter-spacing:-.01em;color:var(--ink);font-size:20px;font-style:normal}.logo-accent{color:var(--lime-txt);font-style:normal;font-weight:700}[data-theme=dark] .logo-accent{color:var(--lime)}.site-nav{gap:24px;display:flex}.nav-link{font-family:var(--font-mono),monospace;color:var(--dim);padding:3px 0;transition:color .2s;position:relative}.nav-link:after{content:"";background:var(--yolk);width:0;height:1.5px;transition:width .2s;position:absolute;bottom:-2px;left:0}.nav-link:hover{color:var(--ink)}.nav-link:hover:after{width:100%}.hero-eyebrow{font-family:var(--font-mono),monospace;color:var(--lime-txt);align-items:center;gap:8px;margin-bottom:14px;font-size:12px;display:flex}[data-theme=dark] .hero-eyebrow{color:var(--lime)}.live-dot{background:var(--yolk);width:6px;height:6px;box-shadow:0 0 0 3px var(--yolk);border-radius:50%}@supports (color:color-mix(in lab,red,red)){.live-dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--yolk)30%,transparent)}}.live-dot{flex-shrink:0}.hero-h1{font-family:var(--font-sans),sans-serif;letter-spacing:-.02em;color:var(--ink);margin-bottom:14px;font-size:clamp(28px,4.5vw,44px);line-height:1.14}.hero-h1 em{color:var(--ink);background:linear-gradient(transparent 55%,var(--yolk)55%);font-style:normal;font-weight:700}@supports (color:color-mix(in lab,red,red)){.hero-h1 em{background:linear-gradient(transparent 55%,color-mix(in srgb,var(--yolk)70%,transparent)55%)}}[data-theme=dark] .hero-h1 em{background:linear-gradient(transparent 55%,var(--lime)55%)}@supports (color:color-mix(in lab,red,red)){[data-theme=dark] .hero-h1 em{background:linear-gradient(transparent 55%,color-mix(in srgb,var(--lime)50%,transparent)55%)}}.hero-sub{color:var(--dim);max-width:480px;margin-bottom:28px;font-size:15px;line-height:1.7}.terminal{background:var(--bg-term);border-radius:var(--r);border:1px solid var(--rule);overflow:hidden}.term-bar{background:#ffffff08;border-bottom:1px solid #ffffff0d;align-items:center;gap:6px;padding:9px 12px;display:flex}.term-dot{border-radius:50%;width:9px;height:9px}.term-path{color:#6a6c58;margin-left:8px;font-size:11px}.term-body,.term-path{font-family:var(--font-mono),monospace}.term-body{color:var(--code-fg);min-height:60px;padding:18px 18px 22px;font-size:13px}.term-prompt{color:var(--lime)}.typed-cursor:after{content:"▍";color:var(--yolk);margin-left:1px;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.cat-row{flex-wrap:wrap;align-items:center}.cat-list,.cat-row{gap:6px;display:flex}.cat-list{scrollbar-width:thin;flex:1;padding:2px 2px 6px;overflow-x:auto}.cat-label{margin-right:8px;font-size:11px}.cat-chip,.cat-label{font-family:var(--font-mono),monospace;color:var(--dim);flex-shrink:0}.cat-chip{border:1px solid var(--rule);background:var(--bg-card);border-radius:999px;padding:5px 13px;font-size:11.5px;text-decoration:none;transition:all .15s;display:inline-block}.cat-chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.cat-chip:hover:not(.active){border-color:var(--ink);color:var(--ink)}.tag-row{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;padding:14px 0;display:flex}.tag-row-label{font-family:var(--font-mono),monospace;color:var(--dim);flex-shrink:0;font-size:11px}.selected-tags{flex-wrap:wrap;flex:1;gap:6px;min-width:0;display:flex}.sel-tag{font-family:var(--font-mono),monospace;background:var(--lime-bg);color:var(--lime-txt);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:10.5px;display:flex}.sel-tag-rm{opacity:.7;cursor:pointer;font-size:11px;line-height:1}.sel-tag-rm:hover{opacity:1}.tag-filter-btn{font-family:var(--font-mono),monospace;color:var(--dim);border:1px solid var(--rule);background:var(--bg-card);white-space:nowrap;cursor:pointer;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:5px 14px;font-size:11.5px;transition:all .15s;display:flex}.tag-filter-btn:hover{border-color:var(--ink);color:var(--ink)}.tag-count{background:var(--lime);color:#14150d;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:600}.tag-empty-hint{font-family:var(--font-mono),monospace;color:var(--dim);font-size:11px}.tag-panel-overlay{z-index:60;opacity:0;pointer-events:none;background:#14150d73;justify-content:center;align-items:flex-end;transition:opacity .2s;display:flex;position:fixed;inset:0}.tag-panel-overlay.open{opacity:1;pointer-events:all}.tag-panel{background:var(--bg-card);border:1px solid var(--rule);border-radius:20px 20px 0 0;width:100%;max-width:700px;max-height:80vh;padding:24px 26px 36px;transition:transform .25s cubic-bezier(.32,.72,0,1);overflow-y:auto;transform:translateY(24px)}.tag-panel-overlay.open .tag-panel{transform:translateY(0)}.panel-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.panel-title{font-family:var(--font-mono),monospace;color:var(--dim);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.panel-actions{align-items:center;gap:10px;display:flex}.panel-clear{font-family:var(--font-mono),monospace;color:var(--dim);cursor:pointer;background:0 0;border:none;font-size:11px}.panel-clear:hover{color:var(--ink)}.panel-close{border:1px solid var(--rule);width:28px;height:28px;color:var(--dim);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:13px;display:flex}.panel-close:hover{border-color:var(--ink);color:var(--ink)}.tag-cloud{flex-wrap:wrap;gap:8px;display:flex}.tc{font-family:var(--font-mono),monospace;border:1px solid var(--rule);background:var(--bg);color:var(--dim);cursor:pointer;border-radius:999px;transition:all .15s}.tc.sm{padding:4px 10px;font-size:10.5px}.tc.md{padding:5px 13px;font-size:12px}.tc.lg{padding:6px 15px;font-size:13.5px}.tc:hover{border-color:var(--lime-txt);color:var(--lime-txt)}[data-theme=dark] .tc:hover{border-color:var(--lime);color:var(--lime)}.tc.picked{background:var(--lime-bg);color:var(--lime-txt);border-color:var(--lime-txt)}[data-theme=dark] .tc.picked{color:var(--lime);border-color:var(--lime)}.panel-apply{background:var(--ink);width:100%;color:var(--bg);border-radius:var(--r);font-family:var(--font-mono),monospace;cursor:pointer;border:none;margin-top:22px;padding:12px;font-size:13px;transition:opacity .15s;display:block}.panel-apply:hover{opacity:.9}.section-head{border-bottom:1px solid var(--rule);align-items:center;gap:12px;margin-bottom:22px;display:flex}.section-tag{font-family:var(--font-mono),monospace;color:var(--lime-txt);font-size:12px}[data-theme=dark] .section-tag{color:var(--lime)}.section-count{font-family:var(--font-mono),monospace;color:var(--dim);font-size:11px}.post-list{flex-direction:column;display:flex}.post-row{border-bottom:1px solid var(--rule);cursor:pointer;color:var(--ink);grid-template-columns:78px 1fr;gap:0 20px;padding:18px 0;text-decoration:none;display:grid;position:relative}.post-row:last-child{border-bottom:none}.post-row:hover .post-title{color:var(--lime-txt)}.post-arrow{color:var(--dim);font:13px var(--font-mono),monospace;opacity:0;transition:opacity .15s,transform .15s;position:absolute;top:20px;right:6px;transform:translate(-4px,4px)}.post-row:hover .post-arrow{opacity:1;transform:translate(0)}[data-theme=dark] .post-row:hover .post-title{color:var(--lime)}.post-date{font-family:var(--font-mono),monospace;color:var(--dim);padding-top:3px;font-size:11px}.post-title{color:var(--ink);margin-bottom:5px;font-size:15.5px;font-weight:500;line-height:1.35;transition:color .15s}.post-desc{color:var(--dim);margin-bottom:8px;font-size:13px;line-height:1.6}.post-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.post-min{font-family:var(--font-mono),monospace;color:var(--dim);font-size:10.5px}.pills{flex-wrap:wrap;gap:6px;display:flex}.pill{font-family:var(--font-mono),monospace;background:var(--lime-bg);color:var(--lime-txt);border-radius:999px;padding:3px 9px;font-size:10.5px}[data-theme=dark] .pill{color:var(--lime)}.pill-n{background:var(--bg);color:var(--dim);border:1px solid var(--rule)}.proj-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:600px){.proj-grid{grid-template-columns:1fr}}.proj-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:var(--r);color:var(--ink);flex-direction:column;padding:18px 20px;text-decoration:none;transition:border-color .15s;display:flex}.proj-card:hover{border-color:var(--lime-txt)}[data-theme=dark] .proj-card:hover{border-color:var(--lime)}.proj-status{font-family:var(--font-mono),monospace;color:var(--yolk-txt);align-items:center;gap:5px;margin-bottom:8px;font-size:10.5px;display:flex}[data-theme=dark] .proj-status{color:var(--yolk)}.proj-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.proj-name{font-family:var(--font-sans),sans-serif;color:var(--ink);margin-bottom:6px;font-size:18px}.proj-desc{color:var(--dim);flex:1;margin-bottom:12px;font-size:13px;line-height:1.55}.proj-foot{border-top:1px dashed var(--rule);justify-content:space-between;margin-top:auto;padding-top:10px}.proj-commit,.proj-foot{align-items:center;display:flex}.proj-commit{font-family:var(--font-mono),monospace;color:var(--dim);gap:5px;font-size:10px}.site-footer{border-top:1px solid var(--rule);padding:24px 0 40px}.footer-inner{font-family:var(--font-mono),monospace;color:var(--dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;font-size:11px;display:flex}.footer-links{gap:16px;display:flex}.footer-links a:hover{color:var(--ink)}.footer-credits{font-family:var(--font-mono),monospace;color:var(--dim);opacity:.7;flex-wrap:wrap;gap:16px;margin-top:8px;font-size:10px;display:flex}.footer-credits a:hover{color:var(--ink)}.article-wrap{max-width:700px;margin:0 auto;padding:36px 28px 64px}.back-btn{font-family:var(--font-mono),monospace;color:var(--dim);border:1px solid var(--rule);border-radius:999px;align-items:center;gap:6px;margin-bottom:30px;padding:6px 14px;font-size:11.5px;text-decoration:none;transition:all .15s;display:inline-flex}.back-btn:hover{border-color:var(--ink);color:var(--ink)}.art-h1{font-family:var(--font-sans),sans-serif;color:var(--ink);margin-bottom:12px;font-size:clamp(24px,4vw,34px);line-height:1.2}.art-sub{color:var(--dim);margin-bottom:16px;font-size:15px;line-height:1.7}.art-meta{font-family:var(--font-mono),monospace;color:var(--dim);border-bottom:1px solid var(--rule);align-items:center;gap:12px;margin-bottom:28px;padding-bottom:22px;font-size:11.5px;display:flex}.art-avatar{object-fit:cover;border:1px solid var(--rule);border-radius:50%;flex-shrink:0;width:24px;height:24px}.reading-progress{z-index:80;pointer-events:none;background:0 0;height:2px;position:fixed;inset:0 0 auto}.reading-progress span{transform-origin:0;background:var(--lime);will-change:transform;width:100%;height:100%;display:block}.prose-blog{color:var(--ink);font-size:16px;line-height:1.85}.prose-blog h1{margin:36px 0 14px;font-size:28px;line-height:1.2}.prose-blog h1,.prose-blog h2{font-family:var(--font-sans),sans-serif;color:var(--ink)}.prose-blog h2{margin:34px 0 12px;font-size:22px;line-height:1.25}.prose-blog h3{color:var(--ink);margin:28px 0 10px;font-size:18px;font-weight:600}.prose-blog h4{margin:22px 0 8px;font-size:16px;font-weight:600}.prose-blog p{color:var(--ink);margin-bottom:18px}.prose-blog code{font-family:var(--font-mono),monospace;background:var(--lime-bg);border-radius:4px;padding:2px 6px;font-size:.86em}[data-theme=dark] .prose-blog code{color:var(--lime)}.code-block-wrap{background:#1e1e1e;border:1px solid #2a2a2a;border-radius:9px;width:100%;margin:0 0 26px;overflow:hidden}.code-block-head{background:#252526;border-bottom:1px solid #1a1a1a;justify-content:space-between;align-items:center;padding:9px 14px;display:flex}.code-block-language,.code-copy-button{font-family:var(--font-mono),monospace;letter-spacing:.04em;font-size:11px}.code-block-language{color:#9a9a9a}.code-copy-button{color:#8d8d8d;cursor:pointer;background:0 0;border:0;padding:2px 0;transition:color .2s}.code-copy-button:hover,.code-copy-button[data-copied=true]{color:#d4d4d4}.code-block-body{background:#1e1e1e;padding:17px 0;position:relative}.code-block-body:before{content:"";background:#2a2a2a;width:1px;position:absolute;top:0;bottom:0;left:46px}.code-block-row{font:13px/1.75 var(--font-mono),monospace;grid-template-columns:46px minmax(0,1fr);display:grid}.code-line-number{color:#5a5a5a;text-align:right;-webkit-user-select:none;user-select:none;padding:0 12px 0 8px}.code-line{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;padding:0 16px;display:block}.code-block-wrap code{color:inherit;font-size:inherit;background:0 0;border-radius:0;padding:0}.prose-blog blockquote{border-left:3px solid var(--lime-txt);color:var(--dim);margin:22px 0;padding:2px 0 2px 18px;font-style:italic}[data-theme=dark] .prose-blog blockquote{border-color:var(--lime)}.prose-blog hr{border:none;border-top:1px solid var(--rule);margin:32px 0}.prose-blog ul{list-style:none}.prose-blog ol,.prose-blog ul{margin-bottom:18px;padding-left:1.5rem}.prose-blog ol{list-style:decimal}.prose-blog li{margin-bottom:6px}.prose-blog a{color:var(--lime-txt);text-decoration:underline}[data-theme=dark] .prose-blog a{color:var(--lime)}.prose-blog table{border-collapse:collapse;width:100%;margin-bottom:18px}.prose-blog td,.prose-blog th{border:1px solid var(--rule);padding:8px 12px}.prose-blog th{background:var(--bg-card);font-weight:600}.prose-blog img{border-radius:var(--r);max-width:100%;margin:22px auto;display:block}.post-nav{border-top:1px solid var(--rule);justify-content:space-between;gap:12px;margin-top:36px;padding-top:22px;display:flex}.post-nav-btn{font-family:var(--font-mono),monospace;color:var(--dim);border:1px solid var(--rule);border-radius:var(--r);text-overflow:ellipsis;white-space:nowrap;flex:1;padding:12px 16px;font-size:12px;text-decoration:none;transition:all .15s;display:block;overflow:hidden}.post-nav-btn:hover{border-color:var(--lime-txt);color:var(--ink)}[data-theme=dark] .post-nav-btn:hover{border-color:var(--lime)}.post-nav-btn.right{text-align:right}@media (max-width:580px){.site-nav{display:none}.post-row{grid-template-columns:1fr;gap:4px}.post-date{padding-top:0}}.utterances{margin-top:2rem;max-width:100%!important;position:static!important}.li-with-hand{padding-left:1.5rem;position:relative}.li-with-hand:before{content:"";background-color:var(--lime-txt);border-radius:50%;width:.4rem;height:.4rem;display:inline-block;position:absolute;top:calc(.925em - .2rem);left:.2rem}[data-theme=dark] .li-with-hand:before{background-color:var(--lime)}.prose-blog ol .li-with-hand{padding-left:0}.prose-blog ol .li-with-hand:before{content:none}button,input{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.about-content,.art-h1,.hero-h1,.logo,.proj-name,.prose-blog h1,.prose-blog h2,.prose-blog h3{font-family:var(--font-sans),sans-serif}.art-meta,.back-btn,.cat-chip,.cat-label,.command-label,.footer-credits,.footer-inner,.hero-eyebrow,.nav-link,.not-found-terminal,.panel-clear,.panel-title,.pill,.post-date,.post-min,.post-nav-btn,.proj-commit,.proj-status,.prose-blog code,.search-trigger,.section-count,.section-index,.sel-tag,.shiki-wrap pre.shiki,.site-nav,.tag-empty-hint,.tag-filter-btn,.tag-row-label,.tc,.term-body,.term-path{font-family:var(--font-mono),monospace}.wrap{max-width:1040px}.header-inner{min-height:64px;padding:10px 0}.logo{font-weight:600}.site-nav{gap:20px;margin-left:auto}.header-actions{align-items:center;gap:10px;display:flex}.search-trigger{border:1px solid var(--rule);background:var(--bg-card);color:var(--dim);cursor:pointer;border-radius:5px;padding:6px 9px;font-size:11px}.search-trigger kbd{color:var(--ink);margin-left:4px}.hero-h1{letter-spacing:-.04em;font-size:clamp(36px,6vw,54px);font-weight:400;line-height:1.22}.hero-h1 em{font-weight:600}.hero-h1 em,[data-theme=dark] .hero-h1 em{color:var(--lime);background:0 0}.hero-sub{font-size:16px;font-weight:300}.terminal{max-width:640px}.filter-wrap{padding:28px 0 12px}.filter-wrap,.section{scroll-margin-top:84px}.section{padding:44px 0}.section-head{border:0;margin-bottom:18px;padding:0}.section-index{color:var(--dim);letter-spacing:.15em;white-space:nowrap;font-size:11px}.section-line{background:var(--rule);flex:1;height:1px}.about-grid,.post-list,.proj-grid{border:1px solid var(--rule);background:var(--bg);border-radius:14px}.post-list{padding:0 24px}.post-row{border-radius:6px;grid-template-columns:90px minmax(0,1fr);padding:20px 34px 20px 10px}.post-title{letter-spacing:-.025em;font-size:17px}.post-empty{color:var(--dim);text-align:center;padding:54px 16px}.post-empty span{color:var(--lime-txt);font:12px var(--font-mono),monospace}.post-empty p{margin:10px 0 0;font-size:14px}.proj-grid{padding:24px}.proj-card{border-radius:9px}.infinite-loader{min-height:92px;color:var(--dim);font:500 11px var(--font-mono),monospace;text-align:center;justify-content:center;align-items:center;gap:8px;display:flex}.infinite-loader__prompt{color:var(--lime-txt)}.infinite-loader__more{border-bottom:1px solid var(--line);color:var(--dim)}.infinite-loader__more:hover{border-color:var(--lime);color:var(--lime-txt)}.tag-panel-overlay{background:#0000009e;align-items:center;padding:24px}.tag-panel{border-radius:10px;max-width:640px;max-height:min(720px,90vh);padding:22px;transform:translateY(10px)}.tag-search{border:1px solid var(--rule);color:var(--dim);border-radius:6px;align-items:center;gap:10px;margin-bottom:18px;padding:10px 12px;display:flex}.tag-search input{width:100%;color:var(--ink);background:0 0;border:0;outline:0}.tag-group-label{font:10px var(--font-mono),monospace;letter-spacing:.12em;text-transform:uppercase;margin:14px 0 8px;display:block}.tag-scroll{align-content:flex-start;max-height:250px;padding-right:6px}.tc{border-radius:4px;align-items:center;gap:7px;display:inline-flex}.tc small{color:var(--dim)}.tc:disabled{opacity:.35;cursor:not-allowed}.panel-footer{border-top:1px solid var(--rule);color:var(--dim);font:11px var(--font-mono),monospace;justify-content:space-between;align-items:center;gap:18px;margin-top:18px;padding-top:14px;display:flex}.panel-apply{color:#13140c;border-radius:5px;width:auto;margin:0;padding:9px 16px}.about-grid{gap:44px;padding:42px 32px;display:grid}.about-profile{color:var(--dim);font:11px var(--font-mono),monospace;flex-direction:column;gap:8px;display:flex}.about-image{aspect-ratio:1;object-fit:cover;border:1px solid var(--rule);filter:saturate(.85);border-radius:10px;width:100%;height:auto;margin-bottom:4px}.about-content{gap:30px;display:grid}.command-label{color:var(--dim);letter-spacing:.14em;font-size:11px}.about-content h2{letter-spacing:-.035em;margin:12px 0 10px;font-size:30px;font-weight:400}.about-content h2 em{color:var(--lime-txt);font-style:normal;font-weight:600}[data-theme=dark] .about-content h2 em{color:var(--lime)}.about-content>div>p{color:var(--dim);font-weight:300;line-height:1.85}.not-found-page{place-items:center;min-height:70vh;padding:48px 24px;display:grid}.not-found-terminal{border:1px solid var(--rule);background:var(--bg-term);width:min(100%,540px);color:var(--code-fg);border-radius:9px;overflow:hidden}.not-found-body p{margin:0}.not-found-body span{color:var(--lime)}.command-error{color:#ff8f6b}.terminal-cursor{background:var(--lime);vertical-align:-2px;width:7px;height:14px;animation:blink 1s step-end infinite;display:inline-block}.not-found-actions{border-top:1px solid #ffffff0f;gap:8px;padding:14px 16px;display:flex}.not-found-actions a,.not-found-actions button{color:#8f9280;cursor:pointer;background:0 0;border:1px solid #2a2c1c;border-radius:4px;padding:8px 13px}.not-found-actions a{background:var(--lime);color:#13140c;border-color:var(--lime)}@media (max-width:760px){.header-inner{grid-template-columns:1fr auto;gap:8px 12px;display:grid}.site-nav{scrollbar-width:none;order:3;grid-area:2/1/auto/-1;gap:18px;width:100%;padding:2px 0 4px;overflow-x:auto}.site-nav::-webkit-scrollbar{display:none}.header-actions{grid-area:1/2}.search-trigger kbd{display:none}.about-grid{grid-template-columns:1fr}.about-profile{max-width:180px}}@media (max-width:580px){.wrap{padding:0 18px}.hero{padding-top:48px}.hero-h1{font-size:36px}.post-list{padding:0 10px}.post-row{grid-template-columns:1fr;padding:17px 28px 17px 8px}.proj-grid{padding:14px}.about-grid{padding:24px 18px}.tag-panel-overlay{align-items:flex-end;padding:0}.tag-panel{border-radius:16px 16px 0 0}.panel-footer{align-items:flex-end}.cat-row{flex-wrap:nowrap;align-items:flex-start}.cat-label{padding-top:8px}.cat-list{margin-right:-18px;padding-right:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.post-layout{grid-template-columns:minmax(0,760px) 220px;gap:42px;max-width:1080px;margin:0 auto;padding:0 28px;display:grid}.post-layout .article-wrap{width:100%;max-width:none;padding-left:0;padding-right:0}.post-toc--desktop{position:relative}.post-toc--desktop .post-toc__nav{border-left:1px solid var(--rule);margin-top:184px;padding-left:16px;position:sticky;top:96px}.post-toc__summary,.post-toc__title{color:var(--dim);font:11px var(--font-mono),monospace;letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px}.post-toc__list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.post-toc__item{min-width:0}.post-toc__item--level-2{padding-left:10px}.post-toc__item--level-3{padding-left:20px}.post-toc__link{color:var(--dim);font:11px/1.5 var(--font-mono),monospace;text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}[data-theme=dark] .post-toc__link[aria-current=location]{color:var(--lime)}.post-toc--mobile{border:1px solid var(--rule);border-radius:7px;margin-bottom:24px;padding:12px 14px;display:none}.post-toc__summary{cursor:pointer;margin:0}.post-toc--mobile .post-toc__nav{margin-top:12px}.prose-blog h1,.prose-blog h2,.prose-blog h3{scroll-margin-top:96px}:root{--bg:#faf7ec;--bg-card:#fff;--card:#fff;--soft:#f2ede0;--bg-term:#151308;--term:#151308;--ink:#151308;--fg:#151308;--dim:#5f5a49;--rule:#e2ded0;--line:#e2ded0;--lime:#ffd64d;--lime-txt:#7a5c00;--lime-bg:#fff3bf;--on-accent:#141206;--header-bg:#faf7ecd1;--hover:#14180611;--code-bg:#1418060e;--code-line:#1418061a;--shadow:0 20px 44px #282c141f;--r:9px}[data-theme=dark]{--bg:#141206;--bg-card:#1e1b0e;--card:#1e1b0e;--soft:#1b1809;--bg-term:#0d0c04;--term:#0d0c04;--ink:#eeeade;--fg:#eeeade;--dim:#a5a08a;--rule:#2f2d1c;--line:#2f2d1c;--lime:#ffd64d;--lime-txt:#ffd64d;--lime-bg:#352b08;--on-accent:#141206;--header-bg:#141206d1;--hover:#ffffff13;--code-bg:#ffffff12;--code-line:#ffffff1c;--shadow:0 24px 60px #00000080}body{background:var(--bg);min-height:100vh;color:var(--fg);font-family:var(--font-sans),sans-serif;text-rendering:optimizeLegibility;font-weight:400;overflow-x:clip}.wrap{box-sizing:border-box;width:100%;max-width:940px;padding-inline:28px}.site-header{z-index:50;background:var(--header-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.header-inner{min-height:62px;padding-block:0}.logo{font:600 15.5px/1 var(--font-mono),monospace;letter-spacing:-.02em}.logo-accent{color:var(--lime)}.site-nav{gap:4px;margin:0}.nav-link{letter-spacing:.09em;border-radius:5px;padding:6px 10px;font-size:12px}.nav-link:after{display:none}.nav-link.active{background:var(--soft);color:var(--fg)}.header-actions{gap:8px}.search-trigger{display:flex}.theme-toggle{border:1px solid var(--line);background:var(--soft);width:78px;height:30px;color:var(--dim);cursor:pointer;border-radius:999px;position:relative;overflow:hidden}.theme-toggle__word{font:9px var(--font-mono),monospace;letter-spacing:.1em;align-items:center;display:flex;position:absolute;top:0;bottom:0}.theme-toggle--dark .theme-toggle__word{right:11px}.theme-toggle--light .theme-toggle__word{left:12px}.theme-toggle__knob{background:var(--lime);border-radius:50%;place-items:center;width:22px;height:22px;transition:left .34s cubic-bezier(.65,-.2,.3,1.2);display:grid;position:absolute;top:3px}.theme-toggle--dark .theme-toggle__knob{left:3px}.theme-toggle--light .theme-toggle__knob{left:51px}.theme-toggle__glyph{border-radius:50%;width:11px;height:11px}.theme-toggle--dark .theme-toggle__glyph{box-shadow:inset -4px 1px 0 var(--on-accent);transform:rotate(-18deg)}.theme-toggle--light .theme-toggle__glyph{background:var(--on-accent);box-shadow:0 0 0 1.5px var(--on-accent)}.hero{padding:96px 0 72px}.hero-eyebrow{color:var(--dim);letter-spacing:.16em;margin-bottom:32px;font-size:11.5px}.live-dot{background:var(--lime);box-shadow:none;animation:blink 1.8s step-end infinite}.hero-h1{letter-spacing:-.025em;margin:0;font-size:clamp(34px,5vw,54px);line-height:1.3}.hero-h1 em{font-family:var(--font-ibm-sans),sans-serif}.hero-sub{max-width:none;color:var(--fg);opacity:.78;margin:22px 0 0;font-size:17.5px;font-weight:400;line-height:1.8}.terminal{max-width:560px;box-shadow:var(--shadow);border-radius:9px;margin-top:42px}.term-bar{padding:10px 14px}.term-path{color:#7e8070}.term-body{color:#e0ddc9;min-height:52px;padding:17px 15px;font-size:13.5px}.term-cwd{color:#928f7c}.typed-cursor{background:var(--lime);vertical-align:-3px;width:7px;height:15px;margin-left:1px;animation:blink 1.1s step-end infinite;display:inline-block}.typed-cursor:after{content:none}.filter-wrap{padding:0}.cat-row{flex-wrap:nowrap;align-items:flex-start;gap:7px;min-width:0;margin-bottom:12px}.cat-label{padding-top:9px}.cat-list{flex-wrap:wrap;gap:7px;min-width:0;padding:0;overflow:visible}.home-wrap{padding-bottom:110px}.cat-label,.tag-row-label{letter-spacing:.16em;font-size:11.5px}.cat-chip{background:0 0;border-radius:5px;padding:6px 12px;font-size:12.5px}.cat-chip.active{border-color:var(--lime);background:var(--lime);color:var(--on-accent)}.cat-chip-count{color:var(--dim);margin-left:3px;font-size:11px}.archive-link{margin:26px 0 0;display:inline-block}.section-index.section-index--verbatim{text-transform:none}.article-wrap .pills a.pill:hover{border-color:var(--lime);color:var(--lime-txt)}[data-theme=dark] .article-wrap .pills a.pill:hover{color:var(--lime)}.cat-chip.active .cat-chip-count{color:inherit;opacity:.7}.tag-row{border:1px solid var(--line);background:var(--soft);border-radius:8px;gap:8px;padding:10px 12px}.sel-tag{background:var(--lime);color:var(--on-accent);border-radius:5px;padding:4px 9px;font-size:12px}.sel-tag-rm{color:inherit;background:0 0;border:0}.tag-filter-btn{background:0 0;border-radius:5px;margin-left:auto;padding:5px 11px}.section{padding:46px 0 0}.section-head{border-bottom:1px solid var(--line);justify-content:space-between;margin-bottom:0;padding-bottom:14px}.section-index{letter-spacing:0;text-transform:lowercase;font-size:12.5px}.section-index b{color:var(--lime);font-weight:500}.section-count{letter-spacing:.06em;font-size:11.5px}.post-list{background:0 0;border:0;border-radius:0;padding:0}.post-row{border-bottom:1px solid var(--line);border-radius:7px;grid-template-columns:82px 1fr;gap:24px;padding:22px 10px}.post-row:hover{background:var(--hover)}.post-title{font-family:var(--font-sans),sans-serif;margin:0 0 9px;font-size:18px;font-weight:600;line-height:1.55}.post-date{padding-top:4px;font-size:12px}.post-foot{gap:10px}.post-min{color:var(--lime-txt);font-size:12px;font-weight:500}.pill{border-radius:5px;padding:4px 9px}.post-list .pill{color:var(--dim);background:0 0;border:0;padding:0;font-size:12px}.page-main{padding-bottom:110px}.standalone-page{padding-top:56px;animation:rise .45s both}.standalone-page>h1{font:600 34px var(--font-sans),sans-serif;letter-spacing:-.04em;margin:0}.page-lead{color:var(--dim);font:400 15px/1.75 var(--font-sans),sans-serif;letter-spacing:-.015em;margin:12px 0 0}.proj-grid{background:0 0;border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:34px 0 0}.proj-card{border:1px solid var(--line);background:var(--soft);border-radius:11px;gap:12px;padding:20px;display:grid}.proj-card:hover{border-color:var(--lime);transform:translateY(-2px)}.proj-name{font-size:17px}.proj-desc{min-height:0;font:400 13.5px/1.7 var(--font-sans),sans-serif;letter-spacing:-.01em}.proj-status{color:var(--lime-txt)}.proj-status--unavailable{color:var(--dim)}.about-section{padding-top:64px}.about-grid{background:0 0;border:0;grid-template-columns:180px 1fr;gap:46px;padding:0}.about-content h1{font:400 32px/1.45 var(--font-sans),sans-serif;letter-spacing:-.025em;margin:14px 0 0}.about-content h1 em{color:var(--lime);font-family:var(--font-ibm-sans),sans-serif;font-style:normal;font-weight:600}.about-content>div>p{max-width:30em;color:var(--fg);opacity:.82;margin-top:16px;font-size:17px;line-height:1.95}.about-image{border-radius:11px}.about-stack-grid{background:var(--term);box-shadow:var(--shadow);border:1px solid #2f2d1c;border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:14px;display:grid;overflow:hidden}.about-stack-grid:before{content:"yeji@dev  ~/stack";color:#7e8070;font:500 10.5px/1 var(--font-mono),monospace;letter-spacing:.04em;background:#1e1b0e;border-bottom:1px solid #2f2d1c;grid-column:1/-1;padding:10px 14px}.about-stack-group{border-bottom:1px solid #2f2d1c;min-width:0;padding:18px 20px}.about-stack-group:nth-child(odd){border-right:1px solid #2f2d1c}.about-stack-group:last-child{border-bottom:0}.about-stack-group h2{color:var(--lime);font:500 12px/1.4 var(--font-mono),monospace;letter-spacing:0;margin:0 0 11px}.about-stack-group h2:before{content:"$ ls ";color:#a5a08a}.about-stack-group ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}.about-stack-group li{color:#e0ddc9;font:400 12.5px/1.55 var(--font-mono),monospace}.about-stack-group li:before{content:"› ";color:#928f7c}.tag-panel-overlay{z-index:70;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0c0c0694;place-items:center}.tag-panel{border:1px solid var(--line);width:min(600px,100%);overflow:hidden}@supports (color:color-mix(in lab,red,red)){.tag-panel{border:1px solid color-mix(in srgb,var(--line)78%,var(--dim))}}.tag-panel{background:var(--bg);border-radius:14px;padding:0;box-shadow:0 28px 80px #0c0c064d}.panel-head{border-bottom:1px solid var(--line);background:var(--soft);margin:0}@supports (color:color-mix(in lab,red,red)){.panel-head{background:color-mix(in srgb,var(--soft)42%,var(--bg))}}.panel-head{padding:14px 16px}.panel-title{color:var(--fg);font:600 13px var(--font-sans),sans-serif;text-transform:none;letter-spacing:-.01em;align-items:center;gap:7px;display:inline-flex}.panel-title b{color:var(--lime-txt);font:600 15px var(--font-mono),monospace}.panel-title small{background:var(--lime);min-width:20px;height:20px;color:var(--on-accent);font:600 10px var(--font-mono),monospace;border-radius:999px;place-items:center;display:grid}.panel-clear{border-radius:6px;padding:5px 7px;font-weight:500}.panel-clear:disabled{cursor:default;opacity:.38}.panel-close{border:1px solid var(--line);background:var(--bg);width:auto;height:auto;box-shadow:inset 0 -1px 0 var(--line);font:500 9.5px var(--font-mono),monospace;border-radius:6px;padding:4px 7px}.tag-search-section{border-bottom:1px solid var(--line);padding:13px 16px}.tag-search{background:var(--soft);border-color:#0000;border-radius:8px;margin:0;padding:11px 12px}.tag-search:focus-within{border-color:var(--lime-txt);box-shadow:0 0 0 3px var(--lime)}@supports (color:color-mix(in lab,red,red)){.tag-search:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--lime)16%,transparent)}}.tag-search>span{color:var(--lime-txt);font-weight:600}.tag-search input{font-family:var(--font-sans),sans-serif;font-weight:500}.tag-search small{white-space:nowrap;color:var(--dim);font-weight:500}.tag-panel-body{gap:11px;padding:16px;display:grid}.tag-group-label{color:var(--dim);font:600 11px var(--font-sans),sans-serif;letter-spacing:-.01em;text-transform:none;justify-content:space-between;margin:0;display:flex}.tag-group-label i{font:500 10px var(--font-mono),monospace;letter-spacing:0;text-transform:none}.tag-cloud{gap:7px;margin:0}.tag-scroll{overscroll-behavior:contain;max-height:220px;overflow-y:auto}.tc{background:0 0;border-radius:7px;gap:6px;min-height:34px;font-weight:500}.tc small{background:var(--soft);border-radius:999px;place-items:center;min-width:18px;height:18px;font-size:9px;display:inline-grid}.tc.picked{background:var(--lime)}@supports (color:color-mix(in lab,red,red)){.tc.picked{background:color-mix(in srgb,var(--lime)15%,transparent)}}.tc.picked:before{content:"✓";font-weight:700}.tag-no-results{width:100%;color:var(--dim);text-align:center;margin:12px 0;font-size:13px}.popular-tags{margin-bottom:8px}.panel-footer{border-top:1px solid var(--line);background:var(--soft);margin-top:0}@supports (color:color-mix(in lab,red,red)){.panel-footer{background:color-mix(in srgb,var(--soft)42%,var(--bg))}}.panel-footer{font-family:var(--font-sans),sans-serif;padding:12px 16px;font-weight:500}.panel-apply{background:var(--lime);color:var(--on-accent);font:600 12px var(--font-sans),sans-serif;border-radius:8px;padding:9px 14px}.panel-apply b{font-family:var(--font-mono),monospace;margin-left:5px}.post-layout{grid-template-columns:minmax(0,1fr) 200px;gap:48px;max-width:1040px;padding:38px 28px 110px}.article-wrap{padding:0}.back-btn{border:0;border-radius:0;margin-bottom:22px;padding:0}.back-btn:hover{color:var(--lime-txt)}.art-h1{letter-spacing:-.025em;max-width:23em;font-size:clamp(23px,3vw,30px);font-weight:600;line-height:1.4}.art-meta{margin:20px 0 0;padding-bottom:28px;font-weight:500}.prose-blog{max-width:40em;font-family:var(--font-sans),sans-serif;letter-spacing:-.006em;padding-top:34px;font-size:17px;font-weight:400;line-height:1.9}.prose-blog h1,.prose-blog h2{letter-spacing:-.02em;margin:46px 0 18px;font-size:23px;font-weight:600;line-height:1.35}.prose-blog>h1:first-child,.prose-blog>h2:first-child{margin-top:0}.prose-blog h1:before,.prose-blog h2:before{content:"##";color:var(--lime);font:14px var(--font-mono),monospace;margin-right:10px}.prose-blog p{margin-bottom:20px}.prose-blog code{border:1px solid var(--code-line);background:var(--code-bg);color:var(--lime-txt)}.prose-blog .code-line{color:inherit;background:0 0;border:0}.prose-blog blockquote{background:var(--soft);border-left-width:2px;border-radius:0 7px 7px 0;margin:24px 0;padding:16px 18px;font-size:15px;font-style:normal}.prose-blog blockquote>:first-child{margin-top:0}.prose-blog blockquote>:last-child{margin-bottom:0}.post-toc--desktop .post-toc__nav{border:1px solid var(--line);background:var(--soft);border-radius:9px;flex-direction:column;max-height:calc(100vh - 106px);margin-top:0;display:flex;top:82px;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.post-toc--desktop .post-toc__nav{background:color-mix(in srgb,var(--soft)62%,var(--bg))}}.post-toc--desktop .post-toc__nav{padding:14px 10px 10px;box-shadow:0 8px 24px #282c140d}.post-toc__title{letter-spacing:.16em;flex:none;padding:0 6px}.post-toc__list{overscroll-behavior:contain;scrollbar-color:var(--line)transparent;scrollbar-width:thin;gap:2px;min-height:0;padding-right:3px;overflow-y:auto}.post-toc__link{white-space:normal;border-left:2px solid #0000;border-radius:0 5px 5px 0;padding:6px 8px;font-size:11.5px;font-weight:500;line-height:1.45}.post-toc__link:hover{background:var(--hover);color:var(--fg)}.post-toc__link[aria-current=location]{border-color:var(--lime);background:var(--lime)}@supports (color:color-mix(in lab,red,red)){.post-toc__link[aria-current=location]{background:color-mix(in srgb,var(--lime)12%,transparent)}}.post-toc__link[aria-current=location]{color:var(--fg)}.post-toc__top{border:1px solid var(--line);color:var(--dim);text-align:center;font:500 11px var(--font-mono),monospace;border-radius:6px;flex:none;margin-top:10px;padding:8px 0;display:block}.post-toc--mobile .post-toc__list{max-height:min(52vh,420px)}.post-nav{grid-template-columns:1fr 1fr;margin-top:52px;padding-top:30px;display:grid}.post-nav-btn{white-space:normal;border-radius:9px;gap:6px;padding:16px;display:grid}.post-nav-direction{color:var(--dim);letter-spacing:.1em;font-size:11.5px}.site-footer{border-top:1px solid var(--line)}.footer-inner{max-width:940px;padding:24px 28px}.footer-credits{padding-bottom:24px}.not-found-page{align-items:start;min-height:0;padding:110px 28px 220px}.not-found-terminal{width:min(100%,520px);box-shadow:var(--shadow)}.not-found-actions a,.not-found-actions button{border-radius:5px}.not-found-body{padding:20px 16px;font-size:13.5px;line-height:1.9}.not-found-body p:last-child{margin-top:10px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (max-width:940px){.post-layout{max-width:760px;display:block}.post-toc--desktop{display:none}.post-toc--mobile{display:block}.about-grid{grid-template-columns:1fr;gap:32px}.about-profile{width:180px}}@media (max-width:640px){.wrap{box-sizing:border-box;width:100%;padding-inline:18px}.header-inner{grid-template-columns:minmax(0,1fr);grid-template-areas:"logo""nav";min-height:56px;padding-top:0;display:grid;position:relative}.logo{grid-area:logo;min-width:0;padding-right:128px}.site-nav{grid-area:nav;gap:4px;width:100%;min-width:0;margin-inline:-4px;padding-bottom:9px;display:flex;overflow-x:auto}.nav-link{align-items:center;min-height:40px;font-size:11.5px;display:inline-flex}.header-actions{display:flex;position:absolute;top:8px;right:18px}.search-trigger{justify-content:center;width:40px;min-width:40px;height:40px;padding:0}.theme-toggle{width:70px;height:40px}.theme-toggle__knob{top:8px}.theme-toggle--light .theme-toggle__knob{left:43px}.hero{padding:52px 0 44px}.hero-h1{font-size:34px}.hero-sub{font-size:16px}.terminal{width:100%;max-width:100%;margin-top:36px}.cat-row{flex-wrap:nowrap;align-items:flex-start}.cat-label{padding-top:12px}.cat-list{flex-wrap:wrap;margin-right:0;padding-right:0;overflow:visible}.cat-chip{align-items:center;min-height:40px;display:inline-flex}.tag-row{grid-template-columns:auto minmax(0,1fr);min-height:62px;padding-right:104px;display:grid;position:relative}.tag-filter-btn{min-height:40px;margin-left:0;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.post-row{grid-template-columns:1fr;gap:9px;padding:20px 4px}.post-date{padding:0}.page-main{padding-bottom:80px}.standalone-page{padding-top:52px}.proj-grid{padding-top:26px}.about-stack-grid,.proj-grid{grid-template-columns:1fr}.about-stack-group:nth-child(odd){border-right:0}.about-stack-group:last-child{border-bottom:0}.tag-panel-overlay{align-items:end;padding:0}.tag-panel{border-radius:16px 16px 0 0;max-height:86vh}.post-layout{padding:26px 18px 80px}.post-nav{grid-template-columns:1fr;margin-top:40px}.post-nav-btn.right{text-align:left}.footer-credits,.footer-inner{padding-inline:18px}.home-wrap{padding-bottom:80px}.not-found-page{padding:80px 18px 160px}.infinite-loader{flex-direction:column;gap:4px;min-height:78px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}