@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Mono:wght@400;700&display=swap";
@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css";
@import "https://cdn.jsdelivr.net/gh/sun-typeface/SUIT@v2.0.5/fonts/variable/woff2/SUIT-Variable.css";
:root{--paper:#1e1e1e;--paper-2:#262626;--panel:#2b2b2b;--ink:#dcddde;--soft:#a0a0a0;--dim:#6f6f6f;--rule:#333;--rule-2:#454545;--accent:#a882ff;--accent-hover:#b99bff;--accent-soft:#a882ff24;--radius:6px;--tint:#ffffff08;--bar-bg:#262626eb;--bar-bg-solid:#262626fa;--strong:#fff;--code-ink:#e0a3ff;--track:#3a3a3a;--vt-line:#555;--vt-text:#8a8a8a;--hex-ink:#8f8f8f;--edge:#5a5a5a;--edge-dim:#3a3a3a;--node:#9a9a9a;--node-project:#c8c8c8;--vl:#4d4d4d;--vl-tag:#3d3d3d;--vl-related:#6a5a99;--k-log:#5fb3a8;--k-activity:#d6a35c;--k-tag:#7d7d7d;--k-page:#dcddde;--err:#ff8d72;--err-line:#e0664b;--err-bg:#ab332029;--err-ink:#ffb4a0;--shadow:var(--shadow);--scrim:#0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--blue:var(--accent);--bright:var(--accent);--violet:var(--accent);--cyan:var(--accent);--lime:var(--accent);--ease:cubic-bezier(.2, .7, .3, 1);--sans:"SUIT Variable", system-ui, -apple-system, "Apple SD Gothic Neo", sans-serif;--brand:"Pretendard Variable", Pretendard, system-ui, -apple-system, "Apple SD Gothic Neo", sans-serif;--mono:"Space Mono", "Pretendard Variable", ui-monospace, SFMono-Regular, Menlo, monospace;--code:"DM Mono", "Pretendard Variable", ui-monospace, SFMono-Regular, Menlo, monospace;--wrap:min(1240px, 100% - 64px);--header:68px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 16px);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;background:var(--paper)}body{color:var(--ink);background:var(--paper);min-height:100dvh;font-family:var(--sans);word-break:keep-all;overflow-wrap:break-word;flex-direction:column;margin:0;font-size:17.5px;line-height:1.65;display:flex;overflow-x:clip}::selection{background:var(--accent);color:var(--paper)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3{font-family:var(--brand);letter-spacing:-.03em;margin:0;font-weight:700;line-height:1.12}p,dl,dd{margin:0}.wrap{width:var(--wrap);margin-inline:auto}main{flex:1 0 auto}body>footer{flex:none}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.link{color:var(--accent)}.link:hover{text-underline-offset:3px;text-decoration:underline}.skip{z-index:99;background:var(--accent);color:var(--paper);padding:12px 18px;position:absolute;top:0;left:-9999px}.skip:focus{top:12px;left:16px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.bar{z-index:20;height:var(--header);grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;display:grid;position:sticky;top:0}.bar:before{content:"";z-index:-1;background:var(--bar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule);width:100vw;position:absolute;inset:0 0 0 50%;translate:-50%}.brand{font-family:var(--brand);letter-spacing:-.02em;white-space:nowrap;font-size:17.5px;font-weight:700}.brand em{font-style:normal;font-family:var(--mono);color:var(--soft);letter-spacing:.02em;margin-left:10px;font-size:12px;font-weight:400}.nav{font-family:var(--mono);letter-spacing:.06em;gap:32px;font-size:14px;display:flex}.nav a{color:var(--soft);padding:4px 0;transition:color .18s;position:relative}.nav a:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .25s var(--ease);position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.nav a:hover{color:var(--ink)}.nav a:hover:after{transform:scaleX(1)}.nav a[aria-current=page]{color:var(--ink)}.nav a[aria-current=page]:before{content:"";background:var(--accent);width:5px;height:5px;margin-top:-2.5px;position:absolute;top:50%;left:-11px}.status{font-family:var(--mono);color:var(--soft);justify-self:end;font-size:13px;transition:color .18s}.status:hover{color:var(--accent)}.menu-btn{background:0 0;border:0;justify-self:end;margin-right:-6px;padding:6px;display:none}.menu-btn svg{width:22px;height:22px;display:block}.kicker{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--soft);align-items:center;gap:10px;font-size:13px;display:flex}.live{background:var(--accent);flex:none;width:7px;height:7px}.sec-no{font-family:var(--mono);letter-spacing:.08em;color:var(--accent);font-size:14px}.sec-link,.sec-count{font-family:var(--mono);letter-spacing:.04em;color:var(--soft);white-space:nowrap;font-size:13px}.sec-link:hover{color:var(--accent)}.fig-cap{font-family:var(--mono);letter-spacing:.02em;color:var(--dim);margin-top:12px;font-size:12px}.hero{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1.7fr) minmax(0,.9fr);align-items:end;gap:64px;padding:clamp(72px,12vh,140px) 0 88px;display:grid}.hero-title{letter-spacing:-.055em;margin-top:28px;font-size:clamp(44px,8.4vw,116px);font-weight:800;line-height:.96}.hero-title em{color:var(--accent);font-style:normal}.hero-fields{font-family:var(--mono);letter-spacing:.02em;color:var(--ink);margin-top:30px;font-size:15px}.hero-fields i{color:var(--dim);margin:0 .55em;font-style:normal}.hero-id{border-top:1px solid var(--rule);max-width:560px;color:var(--soft);flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin-top:40px;padding-top:22px;font-size:15.5px;display:flex}.hero-id strong{font-family:var(--brand);color:var(--ink);font-size:20.5px;font-weight:700}.hero-cta{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.btn-primary,.btn-line{align-items:center;gap:10px;padding:14px 22px;font-size:16.5px;font-weight:600;transition:background .18s,color .18s,border-color .18s;display:inline-flex}.btn-primary{background:var(--accent);color:var(--paper)}.btn-primary svg{width:16px;height:16px;transition:transform .22s var(--ease)}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:hover svg{transform:translateY(2px)}.btn-line{border:1px solid var(--rule-2);color:var(--ink)}.btn-line:hover{border-color:var(--accent);color:var(--accent)}.hero-fig{margin:0}.hero-visual{aspect-ratio:1.45;border:1px solid var(--rule);overflow:hidden}.hero-visual .v-hex{padding:18px;font-size:clamp(9px,.9vw,12.5px)}.hero-link{color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:4px;font-size:16.5px;display:inline-block}.hero-link:hover{color:var(--accent-hover)}.sec{padding-top:clamp(88px,12vw,148px)}.sec-head{border-bottom:1px solid var(--rule);grid-template-columns:72px 1fr auto;align-items:baseline;gap:16px;padding-bottom:22px;display:grid}.sec-head h2{letter-spacing:-.05em;font-size:clamp(32px,4.4vw,60px);font-weight:800}.work-grid{background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(12,minmax(0,1fr));gap:1px;margin-top:40px;display:grid}.work-card{background:var(--paper);flex-direction:column;grid-column:span 5;padding:28px;transition:background .25s;display:flex;position:relative}.work-card.lead{grid-column:span 7}.work-grid:has(>:nth-child(3)) .work-card.lead{grid-row:span 2}.work-card.lead:only-child{grid-column:1/-1}.work-card:not(.lead){flex-direction:row;gap:24px}.work-visual{aspect-ratio:1.5;border:1px solid var(--rule);position:relative;overflow:hidden}.work-visual>*{transition:transform .5s var(--ease)}.work-card:not(.lead) .work-visual{aspect-ratio:1.15;flex:0 0 40%}.work-visual .v-hex{padding:10px;font-size:clamp(8px,.7vw,10px)}.work-card:not(.lead) .v-hex .asc{display:none}.work-card.lead .work-visual .v-hex{padding:20px;font-size:clamp(10px,1.05vw,14px)}.work-body{min-width:0}.work-card.lead .work-body{margin-top:28px}.work-meta{letter-spacing:.04em;color:var(--soft);flex-wrap:wrap;gap:4px 14px;font-size:12.5px;display:flex}.work-no{color:var(--accent)}.work-card h3{letter-spacing:-.035em;margin-top:12px;padding-right:28px;font-size:clamp(21px,2vw,27px)}.work-card.lead h3{letter-spacing:-.045em;font-size:clamp(30px,3.4vw,48px)}.work-summary{max-width:48ch;color:var(--soft);margin-top:12px;font-size:16.5px;line-height:1.7}.work-card:not(.lead) .work-summary{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.work-arrow{width:20px;height:20px;color:var(--dim);transition:transform .25s var(--ease), color .2s;position:absolute;top:26px;right:26px}.work-card:focus-visible{outline-offset:-2px}.stack{font-family:var(--code);color:var(--ink);flex-wrap:wrap;gap:6px;margin:18px 0 0;padding:0;font-size:12.5px;list-style:none;display:flex}.stack li{border:1px solid var(--rule-2);padding:3px 9px}.stack.lg{margin:0;font-size:14.5px}.stack.lg li{padding:6px 12px}.about{grid-template-columns:repeat(12,minmax(0,1fr));gap:56px 32px;padding-top:52px;display:grid}.about-lead{font-family:var(--brand);letter-spacing:-.035em;grid-column:1/span 7;font-size:clamp(26px,3.3vw,44px);font-weight:700;line-height:1.32}.about-lead em{color:var(--accent);font-style:normal}.about-facts{grid-column:1/-1}.about-facts>div{border-top:1px solid var(--rule);grid-template-columns:120px 1fr;gap:16px;padding:14px 0;font-size:16px;display:grid}.about-facts>div:last-child{border-bottom:1px solid var(--rule)}.about-facts dt{font-family:var(--mono);letter-spacing:.04em;color:var(--soft);padding-top:2px;font-size:12.5px}.about-facts dd .num{color:var(--soft);margin-left:8px;font-size:13px}.about-stats{border-block:1px solid var(--rule);grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.about-stats>div{padding:26px 0 24px}.about-stats>div+div{border-left:1px solid var(--rule);padding-left:28px}.about-stats dt{font-family:var(--mono);letter-spacing:.06em;color:var(--soft);font-size:12.5px}.about-stats dd{letter-spacing:-.04em;color:var(--ink);margin-top:12px;font-size:clamp(48px,6.4vw,92px);line-height:.9}.tl-year{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:32px;padding:32px 0;display:grid}.tl-y{top:calc(var(--header) + 24px);letter-spacing:-.04em;color:var(--dim);align-self:start;font-size:clamp(40px,5vw,72px);font-weight:700;line-height:1;position:sticky}.tl-year ol{margin:0;padding:0;list-style:none}.tl-year li{border-top:1px solid var(--rule);grid-template-columns:168px 64px minmax(0,1fr);align-items:baseline;gap:16px;padding:13px 0;display:grid}.tl-year li:first-child{border-top:0;padding-top:4px}.tl-date{color:var(--soft);font-size:13px}.tl-kind{letter-spacing:.04em;color:var(--soft);font-size:12px}.tl-year li[data-kind=수상] .tl-kind{color:var(--accent)}.tl-body{font-size:17px}.tl-body a{border-bottom:1px solid var(--rule-2);transition:color .18s,border-color .18s}.tl-body a:hover{color:var(--accent);border-bottom-color:var(--accent)}.tl-body small{color:var(--soft);margin-top:4px;font-size:14.5px;display:block}.notes{margin:0;padding:0;list-style:none}.notes li{border-bottom:1px solid var(--rule)}.notes a{transition:background .2s, padding .25s var(--ease);grid-template-columns:128px minmax(0,1fr) minmax(0,200px);align-items:baseline;gap:28px;padding:26px 0;display:grid}.n-date{color:var(--soft);font-size:13px}.n-title{font-family:var(--brand);letter-spacing:-.02em;font-size:20.5px;font-weight:600;transition:color .18s}.n-excerpt{max-width:62ch;color:var(--soft);margin-top:8px;font-size:16px;line-height:1.65;display:block}.n-tags{color:var(--soft);text-align:right;flex-direction:column;align-items:flex-end;gap:4px;font-size:12.5px;display:flex}.closing{background:var(--paper-2);border-top:2px solid var(--accent);margin-top:clamp(110px,14vw,180px);padding:clamp(80px,11vw,140px) 0}.closing-title{letter-spacing:-.055em;margin-top:26px;font-size:clamp(30px,6.6vw,96px);font-weight:800;line-height:1}.closing-title a{overflow-wrap:anywhere;transition:color .2s}.closing-title a:hover{color:var(--accent)}.closing-links{font-family:var(--mono);flex-wrap:wrap;gap:14px 32px;margin-top:44px;font-size:15px;display:flex}.closing-links a{border-bottom:1px solid var(--rule-2);padding-bottom:3px;transition:color .18s,border-color .18s}.closing-links a:hover{color:var(--accent);border-bottom-color:var(--accent)}.page{padding-top:64px;padding-bottom:40px}.page-head{border-bottom:1px solid var(--rule);grid-template-columns:1fr auto;align-items:end;gap:14px 24px;padding-bottom:26px;display:grid}.page-head .sec-no{grid-column:1/-1}.page-head h1{letter-spacing:-.055em;font-size:clamp(42px,6.4vw,88px);font-weight:800;line-height:1}.proj-list{margin:10px 0 0;padding:0;list-style:none}.proj-row{border-bottom:1px solid var(--rule);grid-template-columns:52px minmax(0,320px) minmax(0,1fr);align-items:start;gap:32px;padding:36px 0;transition:background .25s;display:grid;position:relative}.proj-no{color:var(--accent);padding-top:4px;font-size:14px}.proj-thumb{aspect-ratio:1.5;border:1px solid var(--rule);overflow:hidden}.proj-thumb>*{transition:transform .5s var(--ease)}.proj-thumb .v-hex{padding:12px;font-size:clamp(8px,.72vw,10.5px)}.proj-main{min-width:0;padding-right:40px}.proj-main h2{letter-spacing:-.04em;margin-top:12px;font-size:clamp(24px,2.6vw,36px)}.proj-row .work-arrow{top:38px;right:0}.searchbar{flex-wrap:wrap;align-items:center;gap:14px;padding:24px 0 8px;display:flex}.searchbar.pending{opacity:.55}.search-field{border:1px solid var(--rule-2);background:var(--paper-2);flex:280px;align-items:center;gap:10px;padding:11px 14px;display:flex}.search-field svg{width:15px;height:15px;color:var(--soft);flex:none}.search-field input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;flex:1;font-size:15.5px}.search-field input::placeholder{color:var(--dim)}.search-field input:focus{outline:none}.search-field:focus-within{border-color:var(--accent)}.filters{flex-wrap:wrap;gap:6px;display:flex}.filter{font-family:var(--mono);letter-spacing:.03em;color:var(--soft);border:1px solid var(--rule-2);background:0 0;padding:7px 13px;font-size:12.5px;transition:all .15s}.filter:hover{color:var(--ink);border-color:var(--ink)}.filter[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--paper)}.empty{font-family:var(--mono);color:var(--soft);border-bottom:1px solid var(--rule);padding:56px 0;font-size:14.5px}.chips{flex-wrap:wrap;gap:6px;margin:22px 0 0;padding:0;list-style:none;display:flex}.chips li{border:1px solid var(--rule-2);font-family:var(--code);color:var(--soft);font-size:12.5px;transition:border-color .18s,color .18s}.chips li a{padding:5px 11px;display:block}.chips li:hover{border-color:var(--accent);color:var(--accent)}.detail{padding-top:52px;padding-bottom:40px}.crumb{font-family:var(--mono);letter-spacing:.04em;color:var(--soft);font-size:13px}.crumb a:hover{color:var(--accent)}.case-head{border-bottom:1px solid var(--rule);grid-template-columns:repeat(12,minmax(0,1fr));gap:0 32px;padding:34px 0 44px;display:grid}.case-head>*{grid-column:1/-1}.case-head .kicker{color:var(--accent)}.case-head h1{letter-spacing:-.055em;grid-column:1/span 11;margin-top:18px;font-size:clamp(36px,6vw,84px);font-weight:800;line-height:1}.case-lead{grid-column:1/span 7;margin-top:28px;font-size:19.5px;line-height:1.7}.case-meta{grid-column:9/-1;align-self:end;margin-top:28px}.case-meta>div{border-top:1px solid var(--rule);grid-template-columns:60px 1fr;gap:14px;padding:10px 0;font-size:15.5px;display:grid}.case-meta dt{font-family:var(--mono);letter-spacing:.04em;color:var(--soft);padding-top:2px;font-size:12px}.case-head .chips{grid-column:1/span 7}.case-fig{margin:48px 0 0}.detail-visual{aspect-ratio:2.4;border:1px solid var(--rule);overflow:hidden}.detail-visual .v-hex{font-size:clamp(11px,1.3vw,17px)}.cs{margin-top:16px}.cs-block{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:32px;padding:44px 0;display:grid}.cs-label{top:calc(var(--header) + 24px);letter-spacing:.14em;color:var(--accent);align-self:start;font-size:13px;position:sticky}.cs-block .prose,.cs-block .prose>h2:first-child{margin-top:0}.detail>.prose{margin-left:calc(25% + 8px)}.prose{max-width:70ch;color:var(--ink);margin-top:48px;font-size:18px;line-height:1.85}.prose>*+*{margin-top:1.1em}.prose h2{letter-spacing:-.03em;margin-top:2em;font-size:23px}.prose h3{margin-top:1.7em;font-size:20px}.prose a{color:var(--accent);border-bottom:1px solid #a882ff66}.prose a:hover{border-bottom-color:var(--accent)}.prose strong{color:var(--strong);font-weight:700}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.45em}.prose li::marker{color:var(--dim)}.prose code{background:var(--panel);border:1px solid var(--rule);font-family:var(--code);color:var(--accent);padding:2px 6px;font-size:.86em}.prose pre{background:var(--paper-2);border:1px solid var(--rule);border-left:2px solid var(--accent);padding:20px 22px;overflow-x:auto}.prose pre code{color:var(--ink);background:0 0;border:0;padding:0;font-size:15px;line-height:1.7}.prose blockquote{border-left:2px solid var(--rule-2);color:var(--soft);padding-left:20px}.prose img{border:1px solid var(--rule);max-width:100%;height:auto}.prose table{border-collapse:collapse;width:100%;font-size:16px}.prose th,.prose td{border-bottom:1px solid var(--rule);text-align:left;padding:10px 12px}.prose th{font-family:var(--mono);color:var(--soft);font-size:12.5px;font-weight:400}.prose hr{border:0;border-top:1px solid var(--rule)}.v-blank{background:repeating-linear-gradient(135deg, var(--paper-2) 0 10px, var(--panel) 10px 11px);height:100%}.v-log{background:var(--paper-2);flex-direction:column;justify-content:center;gap:8px;height:100%;padding:24px 22px;display:flex}.v-log .line{grid-template-columns:54px 1fr;align-items:center;gap:14px;display:grid}.v-log time{font-family:var(--code);color:var(--dim);font-size:10px}.v-log i{background:var(--track);height:5px;display:block}.v-log .hit time{color:var(--accent)}.v-log .hit i{background:var(--accent)}.v-trust{background:var(--paper-2);width:100%;height:100%;display:block}.v-trust .vt-line{stroke:var(--vt-line)}.v-trust .vt-text{fill:var(--vt-text)}.v-trust .vt-accent{fill:var(--accent)}.v-trust .vt-flow{stroke:var(--accent)}.v-trust .vt-check{stroke:var(--paper)}.v-hex{background:var(--paper-2);height:100%;color:var(--hex-ink);font-family:var(--code);white-space:nowrap;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:26px;font-size:clamp(10px,1.5vw,16px);line-height:1.9;display:flex}.v-hex .off{color:var(--dim);margin-right:1.4em}.v-hex .asc{color:var(--dim);margin-left:1.4em}.v-hex .hot{color:var(--accent)}footer{font-family:var(--mono);color:var(--soft);justify-content:space-between;align-items:center;gap:20px;padding:28px 0 40px;font-size:12.5px;display:flex}footer .links{gap:20px;display:flex}footer a:hover{color:var(--accent)}.contact-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;padding-top:56px;display:grid}.contact-mail{font-family:var(--brand);letter-spacing:-.03em;overflow-wrap:anywhere;border-bottom:1px solid var(--rule-2);padding-bottom:6px;font-size:clamp(24px,2.8vw,38px);font-weight:700;transition:color .18s,border-color .18s;display:inline-block}.contact-mail:hover{color:var(--accent);border-bottom-color:var(--accent)}.contact-grid .about-facts{margin-top:36px}.form{flex-direction:column;gap:18px;max-width:600px;display:flex}.field{flex-direction:column;gap:7px;display:flex}.field>span{font-family:var(--mono);letter-spacing:.03em;color:var(--soft);font-size:12.5px}.field>span small{color:var(--dim);margin-left:6px;font-size:12px}.field input,.field select,.field textarea{background:var(--paper-2);border:1px solid var(--rule-2);color:var(--ink);font:inherit;border-radius:0;padding:12px 14px;font-size:16.5px}.field textarea{resize:vertical;line-height:1.7}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:none}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--err-line)}.field-error{color:var(--err);font-size:14px;font-style:normal}.honeypot{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.form-error{background:var(--err-bg);border-left:2px solid var(--err-line);color:var(--err-ink);padding:12px 15px;font-size:15.5px}.btn{background:var(--accent);border:1px solid var(--accent);color:var(--paper);justify-content:center;align-items:center;gap:9px;width:fit-content;padding:12px 22px;font-size:16px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{border-color:var(--rule-2);color:var(--ink);background:0 0}.btn.ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:0 0}.btn.danger{color:#fff;background:#a3301d;border-color:#a3301d}.btn.danger:hover:not(:disabled){background:#bd3a24;border-color:#bd3a24}.btn.gh{background:var(--panel);border-color:var(--rule-2);color:var(--ink);padding:14px 24px;font-size:16.5px}.btn.gh:hover:not(:disabled){background:var(--panel);border-color:var(--accent);color:var(--accent)}.btn.gh svg{width:18px;height:18px}.btn.sm{padding:7px 13px;font-size:14px}.btn svg{width:15px;height:15px}.spin{animation:1s linear infinite spin}.form-done{background:var(--paper-2);border-left:2px solid var(--accent);flex-direction:column;align-items:flex-start;gap:16px;max-width:600px;padding:34px;display:flex}.form-done svg{width:28px;height:28px;color:var(--accent)}.form-done p{font-size:17.5px;line-height:1.7}.admin{padding-bottom:90px}.admin-bar{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:26px 0;display:flex}.admin-tabs{font-family:var(--mono);gap:22px;font-size:14.5px;display:flex}.admin-tabs a{color:var(--soft);border-bottom:1px solid #0000;padding:4px 0}.admin-tabs a:hover{color:var(--ink)}.admin-tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.admin-user{color:var(--soft);align-items:center;gap:14px;font-size:14.5px;display:flex}.admin-user img{border-radius:50%;width:22px;height:22px}.admin-title{margin:44px 0 26px;font-size:clamp(25px,3vw,34px)}.admin-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.admin-head .admin-title{margin-bottom:26px}.login{max-width:420px;margin:0 auto;padding:110px 0 140px}.login h1{font-size:28px}.login .note{color:var(--soft);margin:12px 0 30px;font-size:14.5px}.login .form-error{margin-bottom:24px}.stat-row{background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;display:grid}.stat{background:var(--paper-2);flex-direction:column;gap:7px;padding:24px 22px;transition:background .15s;display:flex}.stat:hover{background:var(--panel)}.stat-label{font-family:var(--mono);color:var(--soft);font-size:12.5px}.stat-value{letter-spacing:-.04em;font-size:34px;line-height:1}.stat-sub{color:var(--dim);font-size:13px}.panel{margin-top:44px}.panel h2{border-bottom:1px solid var(--rule);padding-bottom:14px;font-size:18.5px}.rank{counter-reset:r;margin:0;padding:0;list-style:none}.rank li{border-bottom:1px solid var(--rule);grid-template-columns:34px 1fr auto;align-items:center;gap:16px;padding:14px 0;font-size:16px;display:grid}.rank-n{color:var(--dim);font-size:13px}.rank li a:hover{color:var(--accent)}.rank-v{color:var(--soft);font-size:14.5px}.quick{flex-wrap:wrap;gap:12px;padding-top:20px;display:flex}.table{border-collapse:collapse;width:100%;margin-top:8px;font-size:15.5px}.table th{border-bottom:1px solid var(--rule);text-align:left;font-family:var(--mono);color:var(--soft);padding:12px 14px;font-size:12.5px;font-weight:400}.table td{border-bottom:1px solid var(--rule);vertical-align:top;padding:15px 14px}.table tbody tr:hover{background:var(--tint)}.table a:hover{color:var(--accent)}.ta-r{text-align:right}.slug{font-family:var(--code);color:var(--dim);margin-top:5px;font-size:12.5px;display:block}.tag{background:var(--accent);color:var(--paper);margin-left:8px;padding:2px 7px;font-size:11.5px}.pill{border:1px solid var(--rule-2);color:var(--soft);padding:3px 10px;font-size:12.5px;display:inline-block}.pill.on{border-color:var(--accent);color:var(--accent)}.icon-btn{color:var(--soft);background:0 0;border:1px solid #0000;padding:7px;line-height:0}.icon-btn:hover{color:var(--err);border-color:var(--rule)}.icon-btn.danger{color:var(--err)}.icon-btn svg{width:15px;height:15px}.confirm{align-items:center;gap:9px;display:inline-flex}.confirm-q{color:var(--soft);font-size:14px}.editor{padding-bottom:60px}.editor-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:36px;display:grid}.editor-main{flex-direction:column;gap:18px;display:flex}.editor-main .field{max-width:none}.editor-side{top:calc(var(--header) + 20px);flex-direction:column;gap:18px;display:flex;position:sticky}.side-box{background:var(--paper-2);border:1px solid var(--rule);flex-direction:column;gap:16px;padding:20px;display:flex}.side-note{color:var(--dim);font-size:13px;line-height:1.6}.check{cursor:pointer;align-items:center;gap:10px;font-size:15.5px;display:flex}.check input{width:16px;height:16px;accent-color:var(--accent)}.mono{font-family:var(--code);font-size:15px!important}.body-area{min-height:420px}.visual-preview{aspect-ratio:1.6;border:1px solid var(--rule);overflow:hidden}.tabs{border-bottom:1px solid var(--rule);align-items:center;gap:4px;display:flex}.tabs button{color:var(--soft);background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 16px;font-size:15px}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.tabs-note{color:var(--dim);margin-left:auto;font-size:13px}.preview{min-height:420px;margin-top:0;padding:24px 0}.msg-list{border-top:1px solid var(--rule);margin:22px 0 0;padding:0;list-style:none}.msg{border-bottom:1px solid var(--rule)}.msg.unread{background:var(--tint)}.msg-head{text-align:left;background:0 0;border:0;grid-template-columns:1fr auto auto auto;align-items:center;gap:18px;width:100%;padding:17px 14px;display:grid}.msg-head:hover{background:var(--tint)}.msg-who{flex-direction:column;gap:3px;min-width:0;display:flex}.msg-who strong{font-size:16px;font-weight:500}.msg-who small{color:var(--dim);font-size:13px}.msg-kind,.msg-date{color:var(--soft);white-space:nowrap;font-size:14px}.msg-body{padding:4px 14px 22px}.msg-text{max-width:72ch;color:var(--ink);white-space:pre-wrap;font-size:16px;line-height:1.8}.msg-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;display:flex}.btn-primary,.btn-line,.btn,.search-field,.select-field,.filter,.field input,.field select,.field textarea,.form-done,.side-box,.work-visual,.hero-visual,.proj-thumb,.detail-visual,.prose pre,.prose img,.graph{border-radius:var(--radius)}.work-grid,.stat-row{border-radius:10px;overflow:hidden}.nav a[aria-current=page]:before,.live,.status-tag:before{border-radius:50%}.stack li{background:var(--panel);border-color:#0000;border-radius:4px}.chips li{background:var(--accent-soft);color:var(--accent);border-color:#0000;border-radius:999px}.chips li a:before{content:"#";opacity:.7}.chips li:hover{background:#a882ff3d;border-color:#0000}.prose blockquote{background:var(--paper-2);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;color:var(--ink);padding:14px 18px}.prose a{border-bottom:0;text-decoration:none}.prose a:hover{text-underline-offset:3px;text-decoration:underline}.prose code{background:var(--panel);color:var(--code-ink);border-color:#0000;border-radius:4px}.graph{background:var(--paper-2);border:1px solid var(--rule);width:100%;height:auto;display:block}.g-edges line{stroke:var(--edge);stroke-width:1.2px}.g-node circle{fill:var(--node);transition:fill .18s}.g-node.project circle{fill:var(--node-project)}.g-node text{font-family:var(--brand);fill:var(--soft);font-size:11px;transition:fill .18s,opacity .18s}.g-node.project text{fill:var(--ink);font-size:12px}.g-node.log text{opacity:.6;font-size:9.5px}.g-node:hover circle,.g-node:focus-visible circle{fill:var(--accent)}.g-node:hover text,.g-node:focus-visible text{fill:var(--ink);opacity:1}.g-node:focus-visible{outline:none}.graph:has(.g-node:hover) .g-edges line{stroke:var(--edge-dim)}.bar-right{justify-self:end;align-items:center;gap:16px;display:flex}.qs-btn{background:var(--panel);border:1px solid var(--rule-2);border-radius:var(--radius);color:var(--soft);align-items:center;gap:8px;padding:6px 8px 6px 10px;font-size:13px;transition:border-color .18s,color .18s;display:inline-flex}.qs-btn:hover{border-color:var(--accent);color:var(--ink)}.qs-btn svg{width:14px;height:14px}kbd{border:1px solid var(--rule-2);background:var(--paper);font-family:var(--mono);color:var(--soft);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-size:11px;display:inline-block}.qs-backdrop{z-index:100;background:var(--scrim);animation:menu-in .15s var(--ease);justify-content:center;align-items:flex-start;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.qs{background:var(--paper-2);border:1px solid var(--rule-2);width:min(640px,100%);box-shadow:0 24px 60px -12px var(--shadow);border-radius:10px;overflow:hidden}.qs-input{border:0;border-bottom:1px solid var(--rule);width:100%;color:var(--ink);font:inherit;background:0 0;padding:16px 18px;font-size:17px}.qs-input:focus{outline:none}.qs-list{max-height:50vh;margin:0;padding:6px;list-style:none;overflow-y:auto}.qs-item{border-radius:var(--radius);cursor:pointer;grid-template-columns:64px minmax(0,1fr);gap:2px 12px;padding:10px 12px;display:grid}.qs-item.on{background:var(--accent-soft)}.qs-kind{font-family:var(--mono);color:var(--accent);grid-row:span 2;padding-top:3px;font-size:11.5px}.qs-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:15.5px;overflow:hidden}.qs-hint{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.qs-empty{color:var(--soft);padding:16px 12px;font-size:14px}.qs-foot{border-top:1px solid var(--rule);color:var(--dim);align-items:center;gap:6px;padding:10px 16px;font-size:12px;display:flex}.qs-foot kbd+kbd{margin-left:-2px}.note-layout{grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:32px;margin-top:48px;display:grid}.note-layout .prose{margin-top:0}.note-side{position:relative}.outline{top:calc(var(--header) + 24px);border-left:1px solid var(--rule);padding-left:12px;position:sticky}.outline-title{letter-spacing:.08em;color:var(--dim);margin-bottom:10px;font-size:12px}.outline ul{margin:0;padding:0;list-style:none}.outline li.lv3{padding-left:14px}.outline a{color:var(--soft);padding:4px 0;font-size:14px;line-height:1.45;transition:color .15s;display:block}.outline a:hover{color:var(--ink)}.outline a[aria-current=location]{color:var(--accent)}.links-panel{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:32px;margin-top:28px;display:grid}.links-panel .notes{margin:0}.graph.local{aspect-ratio:4/3}.statusbar{z-index:15;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);color:var(--soft);gap:14px;margin:0;padding:5px 12px;font-size:12px;display:flex;position:fixed;bottom:12px;right:16px}.prose a.internal-link{color:var(--accent);border-bottom:0}.prose a.internal-link:before{content:"[[";opacity:.45}.prose a.internal-link:after{content:"]]";opacity:.45}.prose blockquote.callout{--c:168, 130, 255;background:rgba(var(--c), .08);border-left:3px solid rgb(var(--c));color:var(--ink);padding:12px 16px}.prose .callout-title{color:rgb(var(--c));margin-bottom:4px;font-weight:700}.prose .callout-title+p{margin-top:0}.prose .callout-info,.prose .callout-abstract{--c:2, 122, 255}.prose .callout-tip,.prose .callout-success{--c:8, 185, 78}.prose .callout-warning,.prose .callout-question{--c:236, 117, 0}.prose .callout-danger,.prose .callout-bug,.prose .callout-failure{--c:233, 49, 71}.prose .callout-example{--c:120, 82, 238}.prose .callout-quote{--c:158, 158, 158}html[data-theme=light]{--paper:#fff;--paper-2:#f6f6f6;--panel:#ececec;--ink:#222;--soft:#5c5c5c;--dim:#8a8a8a;--rule:#e3e3e3;--rule-2:#d0d0d0;--accent:#7b4fe0;--accent-hover:#6a3fd2;--accent-soft:#7b4fe01f;--tint:#00000008;--bar-bg:#f6f6f6eb;--bar-bg-solid:#f6f6f6fa;--strong:#000;--code-ink:#8a3fc8;--track:#d8d8d8;--vt-line:#bdbdbd;--vt-text:#7a7a7a;--hex-ink:#6f6f6f;--edge:#c4c4c4;--edge-dim:#e2e2e2;--node:#9a9a9a;--node-project:#5c5c5c;--vl:#cfcfcf;--vl-tag:#e0e0e0;--vl-related:#b9a3ef;--k-log:#2f8f84;--k-activity:#b97a1f;--k-tag:#9a9a9a;--k-page:#444;--err:#c2391f;--err-line:#d4502f;--err-bg:#d4502f1a;--err-ink:#a3301d;--shadow:#0000002e;--scrim:#0000004d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.theme-toggle{border:1px solid var(--rule-2);border-radius:var(--radius);width:32px;height:32px;color:var(--soft);background:0 0;place-items:center;padding:0;transition:border-color .18s,color .18s;display:inline-grid}.theme-toggle:hover{border-color:var(--accent);color:var(--ink)}.theme-toggle svg{width:16px;height:16px}body:has(.vault)>footer{display:none}body:has(.vault){--header:52px}body:has(.vault) .bar{width:100%;margin-inline:0;padding-inline:20px}body:has(.vault) .brand{font-size:16px}.vault{--lw:260px;--rw:300px;height:calc(100dvh - var(--header));background:var(--paper);flex-direction:column;font-size:15px;line-height:1.6;display:flex}.vault[data-left=false]{--lw:0px}.vault[data-right=false]{--rw:0px}.v-top{background:var(--paper-2);border-bottom:1px solid var(--rule);align-items:flex-end;gap:4px;height:42px;padding:0 6px;display:flex}.v-icon{border-radius:var(--radius);width:32px;height:32px;color:var(--soft);background:0 0;border:0;flex:none;place-items:center;margin-bottom:5px;display:grid}.v-icon:hover{background:var(--panel);color:var(--ink)}.v-icon svg{width:17px;height:17px}.v-tabs{scrollbar-width:none;flex:1;align-items:flex-end;gap:2px;min-width:0;display:flex;overflow-x:auto}.v-tabs::-webkit-scrollbar{display:none}.v-tab{max-width:220px;height:34px;color:var(--soft);border-radius:8px 8px 0 0;flex:none;align-items:center;padding:0 4px 0 10px;transition:background .15s,color .15s;display:flex}.v-tab:hover{background:var(--panel)}.v-tab.on{background:var(--paper);color:var(--ink)}.v-tab button[role=tab]{min-width:0;color:inherit;background:0 0;border:0;align-items:center;gap:7px;padding:0;font-size:13.5px;display:flex}.v-tab button[role=tab] span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.v-tab svg{flex:none;width:14px;height:14px}.v-tab-x{width:22px;height:22px;color:var(--dim);opacity:0;background:0 0;border:0;border-radius:4px;place-items:center;margin-left:6px;display:grid}.v-tab:hover .v-tab-x,.v-tab.on .v-tab-x,.v-tab-x:focus-visible{opacity:1}.v-tab-x:hover{background:var(--rule-2);color:var(--ink)}.v-body{grid-template-columns:var(--lw) minmax(0, 1fr) var(--rw);min-height:0;transition:grid-template-columns .2s var(--ease);flex:1;display:grid}.v-left,.v-right{background:var(--paper-2);min-width:0;overflow:hidden}.v-left{border-right:1px solid var(--rule)}.v-right{border-left:1px solid var(--rule);flex-direction:column;display:flex}.vault[data-left=false] .v-left,.vault[data-right=false] .v-right{border:0}.v-center{flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.v-fade{min-height:0;animation:vfade .2s var(--ease);flex:1}.v-scroll{overflow-y:auto}@keyframes vfade{0%{opacity:0;transform:translateY(4px)}}.v-state{color:var(--soft);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex}.v-state .skeleton{width:min(560px,90%);margin:0}.v-empty-links{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.v-empty-links button{background:var(--panel);border:1px solid var(--rule-2);border-radius:var(--radius);color:var(--ink);padding:8px 14px;font-size:14px}.v-empty-links button:hover{border-color:var(--accent)}.v-status{background:var(--paper-2);border-top:1px solid var(--rule);color:var(--dim);flex:none;justify-content:flex-end;gap:14px;margin:0;padding:4px 14px;font-size:11.5px;line-height:1.5;display:flex}.v-scrim{display:none}.fx{flex-direction:column;height:100%;display:flex}.fx-vault{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);padding:14px 16px 6px;font-size:11.5px}.fx-search{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);align-items:center;gap:6px;margin:4px 10px 8px;padding:6px 9px;display:flex}.fx-search:focus-within{border-color:var(--accent)}.fx-search svg{width:14px;height:14px;color:var(--dim);flex:none}.fx-search input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;flex:1;font-size:13.5px}.fx-search input:focus{outline:none}.fx-list{flex:1;min-height:0;padding:0 6px 56px;overflow-y:auto}.fx-folder,.fx-file{padding-block:4px;width:100%;color:var(--soft);text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:6px;padding-right:8px;font-size:13.5px;transition:background .12s,color .12s;display:flex}.fx-folder:hover,.fx-file:hover{background:var(--panel);color:var(--ink)}.fx-file[aria-current=page]{background:var(--accent-soft);color:var(--ink)}.fx-folder svg,.fx-file svg{flex:none;width:14px;height:14px}.fx-caret{transition:transform .15s var(--ease);width:12px!important;height:12px!important}.fx-folder[aria-expanded=true] .fx-caret{transform:rotate(90deg)}.fx-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.fx-count{color:var(--dim);font-size:11px}.fx-path{text-overflow:ellipsis;white-space:nowrap;max-width:45%;color:var(--dim);font-size:11px;overflow:hidden}.fx-children{transition:grid-template-rows .18s var(--ease);grid-template-rows:0fr;display:grid}.fx-children.open{grid-template-rows:1fr}.fx-children>div{overflow:hidden}.fx-empty{color:var(--dim);padding:12px 10px;font-size:13px}.nv{max-width:760px;margin:0 auto;padding:36px 40px 72px}.nv-path{font-family:var(--brand);color:var(--dim);overflow-wrap:anywhere;font-size:12.5px}.nv-head h1{letter-spacing:-.03em;margin-top:8px;font-size:clamp(24px,2.3vw,32px);font-weight:750;line-height:1.25}.nv-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.nv-btn{border:1px solid var(--rule-2);border-radius:var(--radius);color:var(--soft);align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;display:inline-flex}.nv-btn:hover{border-color:var(--accent);color:var(--ink)}.nv-btn svg{width:14px;height:14px}.nv-props{border-block:1px solid var(--rule);margin:24px 0 0;padding:8px 0;font-size:14px}.nv-props>div{grid-template-columns:110px minmax(0,1fr);gap:12px;padding:5px 0;display:grid}.nv-props dt{color:var(--dim);font-size:13px}.nv-props dd{color:var(--ink);overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.nv-props .internal-link{color:var(--accent)}.nv-props .internal-link:hover{text-underline-offset:3px;text-decoration:underline}.nv-tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 9px;font-size:12.5px}.nv-tag:hover{background:var(--accent-soft);filter:brightness(1.15)}.nv-muted{color:var(--dim)}.nv-body{max-width:none;margin-top:28px;font-size:16px;line-height:1.75}.nv-body h2{font-size:21px}.nv-body h3{font-size:18px}.nv-body pre code{font-size:13.5px}.nv-body table{font-size:14.5px}.nv-body .note-summary{border-bottom:1px solid var(--rule);color:var(--ink);padding-bottom:18px;font-size:16px}.nv-body .cs-tag{font-family:var(--mono);letter-spacing:.14em;color:var(--accent);margin-top:2.2em;font-size:11.5px}.nv-body .cs-tag+h2{margin-top:.3em}.nv-body small{color:var(--dim);font-size:12.5px}.prose a.internal-link.is-unresolved{color:var(--soft);opacity:.75;text-underline-offset:3px;-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.nv-missing{background:var(--paper-2);border-left:3px solid var(--dim);border-radius:0 var(--radius) var(--radius) 0;color:var(--soft);align-items:center;gap:10px;margin-top:18px;padding:10px 14px;font-size:14px;display:flex}.nv-missing button{color:var(--accent);background:0 0;border:0;margin-left:auto;font-size:13px}.nv-special{margin-top:28px}.nv-special .gb{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:0}.nv-special .gb-form{position:static}.v-rtabs{border-bottom:1px solid var(--rule);flex:none;display:flex}.v-rtabs button{color:var(--soft);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 6px;font-size:13px;display:inline-flex}.v-rtabs button svg{width:14px;height:14px}.v-rtabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.v-rbody{flex:1;min-height:0;overflow-y:auto}.lp{padding:12px 10px 24px}.lp-group+.lp-group{margin-top:18px}.lp-group h3{font-family:var(--brand);color:var(--soft);letter-spacing:0;padding:0 6px 6px;font-size:12.5px;font-weight:600}.lp-group h3 .num{color:var(--dim);margin-left:4px;font-weight:400}.lp-group ul{margin:0;padding:0;list-style:none}.lp-item{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:8px;padding:6px 8px;font-size:13.5px;display:flex}.lp-item:hover{background:var(--panel)}.lp-item i{background:var(--c);border-radius:50%;flex:none;width:7px;height:7px}.lp-item span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lp-item small{color:var(--dim);font-size:11.5px}.lp-none,.lp-empty{color:var(--dim);padding:4px 8px;font-size:12.5px}.lp-empty{padding:18px 16px}.lp-unresolved{font-family:var(--mono);color:var(--dim);padding:4px 8px;font-size:12px}.k-project{--c:var(--accent)}.k-log{--c:var(--k-log)}.k-activity{--c:var(--k-activity)}.k-tag{--c:var(--k-tag)}.k-page{--c:var(--k-page)}.vgraph{flex-direction:column;height:100%;min-height:260px;display:flex;position:relative}.vgraph-tools{z-index:2;pointer-events:none;align-items:center;gap:6px;display:flex;position:absolute;top:10px;left:10px;right:10px}.vgraph-tools>*{pointer-events:auto}.vgraph-search{background:var(--paper-2);border:1px solid var(--rule-2);border-radius:var(--radius);flex:1;align-items:center;gap:6px;max-width:240px;padding:5px 8px;display:flex}.vgraph-search svg{width:13px;height:13px;color:var(--dim);flex:none}.vgraph-search input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;flex:1;font-size:13px}.vgraph-search input:focus{outline:none}.vgraph-search:focus-within{border-color:var(--accent)}.vgraph-tools button{background:var(--paper-2);border:1px solid var(--rule-2);border-radius:var(--radius);width:30px;height:30px;color:var(--soft);place-items:center;display:grid}.vgraph-tools button:hover{color:var(--ink);border-color:var(--accent)}.vgraph-tools button svg{width:15px;height:15px}.vgraph-check{background:var(--paper-2);border:1px solid var(--rule-2);border-radius:var(--radius);color:var(--soft);align-items:center;gap:5px;padding:5px 9px;font-size:12.5px;display:inline-flex}.vgraph-check input{accent-color:var(--accent)}.vgraph-canvas{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:1;min-height:0;position:relative;overflow:hidden}.vgraph-canvas:active{cursor:grabbing}.vgraph-canvas svg{display:block}.vl{stroke:var(--vl);stroke-width:1px;vector-effect:non-scaling-stroke;transition:opacity .2s}.vl.tag{stroke:var(--vl-tag)}.vl.related{stroke:var(--vl-related)}.vl.dim{opacity:.12}.vn{cursor:pointer;transition:opacity .2s}.vn circle{fill:var(--c);stroke:var(--paper);stroke-width:1.5px;vector-effect:non-scaling-stroke;transition:filter .15s}.vn text{font-family:var(--brand);fill:var(--soft);text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:var(--paper);stroke-width:3px;font-size:11px}.vn:hover circle,.vn:focus-visible circle{filter:brightness(1.35)}.vn:hover text,.vn:focus-visible text{fill:var(--ink)}.vn:focus{outline:none}.vn.dim{opacity:.14}.vn.active circle{stroke:var(--ink);stroke-width:2.5px}.vn.pinned circle{stroke:var(--accent)}.vgraph-tip{z-index:3;background:var(--paper-2);border:1px solid var(--rule-2);border-radius:var(--radius);pointer-events:none;max-width:240px;box-shadow:0 8px 24px -8px var(--shadow);flex-direction:column;gap:2px;padding:7px 10px;display:flex;position:absolute}.vgraph-tip strong{color:var(--ink);font-size:13px;font-weight:600}.vgraph-tip span{color:var(--soft);font-size:11.5px}.vgraph-empty{color:var(--dim);place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.vgraph-legend{background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);color:var(--soft);flex-wrap:wrap;gap:6px 14px;margin:0;padding:6px 10px;font-size:12px;list-style:none;display:flex;position:absolute;bottom:12px;left:12px}.vgraph-legend i{background:var(--c);border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.vgraph.local .vgraph-tools{left:8px;right:8px}@media (max-width:1200px){.vault{--lw:224px;--rw:252px}.nv{padding-inline:28px}}@media (max-width:900px){.v-body{grid-template-columns:minmax(0,1fr)}.v-left,.v-right{top:calc(var(--header) + 42px);z-index:40;width:min(86vw,320px);transition:transform .22s var(--ease);position:fixed;bottom:0}.v-left{left:0;transform:translate(-100%)}.v-right{right:0;transform:translate(100%)}.v-left.drawer,.v-right.drawer{box-shadow:0 0 40px var(--shadow);transform:none}.vault[data-left=false] .v-left,.vault[data-right=false] .v-right{border-width:1px}.v-scrim{inset:0;top:calc(var(--header) + 42px);z-index:35;background:var(--scrim);border:0;display:block;position:fixed}.nv{padding:28px 18px 80px}.v-status{display:none}}.selects{flex-wrap:wrap;gap:10px;display:flex}.select-field{border:1px solid var(--rule-2);background:var(--paper-2);align-items:center;gap:8px;padding:0 0 0 12px;display:flex}.select-field span{font-family:var(--mono);letter-spacing:.04em;color:var(--soft);font-size:12px}.select-field select{color:var(--ink);font:inherit;background:0 0;border:0;max-width:180px;padding:10px 12px 10px 4px;font-size:15px}.select-field select option{background:var(--paper-2);color:var(--ink)}.select-field:focus-within{border-color:var(--accent)}.select-field select:focus{outline:none}.status-tag{align-items:center;gap:6px;display:inline-flex}.status-tag:before{content:"";background:var(--dim);width:6px;height:6px}.status-tag[data-status=진행\ 중]{color:var(--accent)}.status-tag[data-status=진행\ 중]:before{background:var(--accent)}.stack li[data-on]{border-color:var(--accent);color:var(--accent)}.art-img{object-fit:cover;width:100%;height:100%;display:block}.n-cat{color:var(--accent);margin-top:6px;font-style:normal;display:block}.gb{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:56px;padding-top:44px;display:grid}.gb-form{top:calc(var(--header) + 24px);flex-direction:column;gap:16px;display:flex;position:sticky}.gb-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.gb-notice{font-size:15px}.gb-notice.ok{color:var(--accent)}.gb-notice.err{color:var(--err)}.gb-items{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none;transition:opacity .2s}.gb-items.dim{opacity:.5}.gb-items li{border-bottom:1px solid var(--rule);padding:20px 0}.gb-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 16px;display:flex}.gb-head strong{font-family:var(--brand);font-size:16.5px;font-weight:600}.gb-head time{color:var(--soft);font-size:12.5px}.gb-msg{color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px;font-size:16.5px;line-height:1.7}.pager{color:var(--soft);justify-content:space-between;align-items:center;gap:16px;padding-top:18px;font-size:13px;display:flex}.pager button,.link-btn{color:var(--ink);font:inherit;background:0 0;border:0;padding:6px 0}.pager button:hover:not(:disabled),.link-btn:hover{color:var(--accent)}.pager button:disabled{color:var(--dim);cursor:default}.link-btn{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.skeleton{gap:1px;margin-top:28px;display:grid}.skeleton i{background:linear-gradient(90deg, var(--paper-2), var(--panel), var(--paper-2));background-size:200% 100%;height:96px;animation:1.4s linear infinite shimmer;display:block}@keyframes shimmer{to{background-position:-200% 0}}@media (hover:hover){.work-card:hover,.proj-row:hover{background:var(--paper-2)}.work-card:hover .work-arrow,.proj-row:hover .work-arrow{color:var(--accent);transform:translate(4px,-4px)}.work-card:hover .work-visual>*,.proj-row:hover .proj-thumb>*{transform:scale(1.03)}.proj-row:hover h2{color:var(--accent)}.notes a:hover{background:var(--paper-2);padding-inline:16px}.notes a:hover .n-title{color:var(--accent)}.tl-year li:hover .tl-date{color:var(--ink)}}@media (hover:none){.work-card:active,.proj-row:active,.notes a:active{background:var(--paper-2)}.btn:active:not(:disabled),.btn-primary:active{transform:scale(.98)}}.work-card:focus-visible .work-arrow,.proj-row:focus-visible .work-arrow{color:var(--accent)}.r1{animation:rise .6s var(--ease) 40ms backwards}.r2{animation:rise .6s var(--ease) .12s backwards}.r3{animation:rise .6s var(--ease) .2s backwards}.r4{animation:rise .6s var(--ease) .3s backwards}@supports (animation-timeline:view()){.sec-head,.work-card,.about,.tl-year,.notes li,.proj-row,.cs-block,.closing .wrap,.case-fig,.detail>.prose>*{animation:linear both reveal;animation-timeline:view();animation-range:entry entry 40%}}::view-transition{pointer-events:none}::view-transition-group(site-header){z-index:100;animation:none}::view-transition-old(site-header){display:none}::view-transition-new(site-header){animation:none}::view-transition-group(.morph){animation-duration:.42s;animation-timing-function:var(--ease)}::view-transition-image-pair(.morph){animation-name:via-blur}:root{--slide:60px}::view-transition-old(.nav-forward){--slide-offset:calc(var(--slide) * -1)}::view-transition-new(.nav-forward){--slide-offset:var(--slide)}::view-transition-old(.nav-back){--slide-offset:var(--slide)}::view-transition-new(.nav-back){--slide-offset:calc(var(--slide) * -1)}::view-transition-old(.nav-forward){animation:.15s ease-in reverse both vt-fade,.4s ease-in-out reverse both vt-slide}::view-transition-old(.nav-back){animation:.15s ease-in reverse both vt-fade,.4s ease-in-out reverse both vt-slide}::view-transition-new(.nav-forward){animation:.21s ease-out .15s both vt-fade,.4s ease-in-out both vt-slide}::view-transition-new(.nav-back){animation:.21s ease-out .15s both vt-fade,.4s ease-in-out both vt-slide}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes reveal{0%{opacity:0;translate:0 20px}to{opacity:1;translate:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes menu-in{0%{opacity:0;transform:translateY(-8px)}}@keyframes via-blur{30%{filter:blur(3px)}}@keyframes vt-fade{0%{filter:blur(3px);opacity:0}to{filter:blur();opacity:1}}@keyframes vt-slide{0%{translate:var(--slide-offset)}to{translate:0}}@media (max-width:1080px){.hero{grid-template-columns:1fr;align-items:start;gap:48px}.hero-fig{max-width:560px}.work-card,.work-card.lead{grid-column:1/-1}.work-grid:has(>:nth-child(3)) .work-card.lead{grid-row:auto}.work-card:not(.lead){flex-direction:column;grid-column:span 6;gap:0}.work-card:not(.lead) .work-visual{aspect-ratio:1.6;flex:none}.work-card:not(.lead) .work-body{margin-top:22px}.work-visual .v-hex{font-size:clamp(9px,1.1vw,12px)}}@media (max-width:900px){.bar{grid-template-columns:1fr auto auto}.about{grid-template-columns:minmax(0,1fr);gap:36px}.about-lead,.about-facts,.about-stats{grid-column:1/-1}.about-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.about-stats>div:nth-child(3){border-left:0;padding-left:0}.about-stats>div:nth-child(n+3){border-top:1px solid var(--rule)}.tl-year{grid-template-columns:minmax(0,1fr);gap:14px}.note-layout,.links-panel{grid-template-columns:minmax(0,1fr)}.note-side{display:none}.tl-y{position:static}.case-head{grid-template-columns:minmax(0,1fr)}.case-head h1,.case-lead,.case-meta,.case-head .chips{grid-area:auto/1/auto/-1}.case-meta{margin-top:32px}.cs-block{grid-template-columns:minmax(0,1fr);gap:16px;padding:36px 0}.cs-label{position:static}.detail>.prose{margin-left:0}.contact-grid{grid-template-columns:minmax(0,1fr);gap:44px}.proj-row{grid-template-columns:40px minmax(0,1fr);gap:20px 16px}.proj-thumb{grid-column:2}.proj-main{grid-column:2;padding-right:0}.proj-row .work-arrow{top:36px}.notes a{grid-template-columns:112px minmax(0,1fr)}.n-tags{text-align:left;flex-flow:wrap;grid-column:2;justify-content:flex-start;gap:4px 14px}.editor-grid{grid-template-columns:1fr}.editor-side{position:static}.detail-visual{aspect-ratio:1.7}}@media (max-width:680px){:root{--wrap:calc(100% - 32px);--slide:28px;--header:60px}.bar{gap:12px}.status,.qs-label,.qs-btn kbd,.statusbar{display:none}.menu-btn{display:block}.nav{top:var(--header);background:var(--bar-bg-solid);border-bottom:1px solid var(--rule);width:100vw;box-shadow:0 24px 40px -20px var(--shadow);flex-direction:column;gap:0;padding:6px 16px 14px;font-size:15.5px;display:none;position:absolute;left:50%;translate:-50%}.nav.open{animation:menu-in .24s var(--ease);display:flex}.nav a{border-bottom:1px solid var(--rule);padding:15px 2px}.nav a:last-child{border-bottom:0}.nav a:after{display:none}.nav a[aria-current=page]{color:var(--accent)}.nav a[aria-current=page]:before{display:none}.hero{gap:40px;padding:48px 0 64px}.hero-title{margin-top:20px}.hero-fields{font-size:14px;line-height:1.9}.hero-cta a{flex:auto;justify-content:center}.sec-head{grid-template-columns:1fr auto;gap:8px 12px}.sec-head .sec-no{grid-column:1/-1}.work-card{padding:22px}.work-card:not(.lead){grid-column:1/-1}.work-arrow{top:22px;right:22px}.about-stats dd{font-size:52px}.tl-year li{grid-template-columns:1fr auto;gap:4px 12px}.tl-year .tl-date{grid-column:1}.tl-year .tl-kind{text-align:right;grid-area:1/2}.tl-year .tl-body{grid-column:1/-1}.notes a{grid-template-columns:1fr;gap:8px;padding:22px 0}.gb{grid-template-columns:1fr;gap:36px}.gb-form{position:static}.selects{width:100%}.select-field{flex:140px}.select-field select{flex:1;max-width:none}.n-tags{grid-column:1}.proj-row{grid-template-columns:1fr;padding:28px 0}.proj-no{display:none}.proj-thumb,.proj-main{grid-column:1}.proj-row .work-arrow{top:auto;bottom:30px}.page{padding-top:44px}.detail{padding-top:36px}.case-lead{font-size:18px}.prose{font-size:17.5px}.prose pre{padding:16px 14px}footer{flex-direction:column;align-items:flex-start;gap:16px}.filters{scrollbar-width:none;flex-wrap:nowrap;margin-inline:-16px;padding-inline:16px;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.filter{flex:none;padding:9px 14px}.table thead{display:none}.table,.table tbody,.table tr,.table td{width:100%;display:block}.table tr{border-bottom:1px solid var(--rule);padding:16px 0}.table td{border:0;padding:3px 0}.table td.ta-r{text-align:left}.msg-head{grid-template-columns:1fr auto;gap:8px 14px}.msg-kind{grid-row:2}.stat-value{font-size:28px}}@media (max-width:360px){.brand em{display:none}.hero-title{font-size:40px}.v-hex{padding:14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}::view-transition-old(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-new(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-group(*){animation-duration:0s!important;animation-delay:0s!important}html{scroll-behavior:auto}}
