:root{--bg: #ffffff;--surface: #f5f5f5;--fg: #0a0a0a;--muted: #5a5a60;--border: #e4e4e7;--border-strong: #c4c4c8;--accent: #e8ff61;--media-bg: #f0f0f0;--node-mid: #c9c9ce;--node-faint: #ededf0;--node-dim: #d4d4d8;--edge: #0a0a0a;--glass: rgba(233, 233, 234, .72);--glass-hover: rgba(224, 224, 226, .85);--glass-blur: 22px;--card-radius: 8px;--card: var(--surface);--line: var(--border);--font-sans: "Geist", -apple-system, "Apple SD Gothic Neo", "Pretendard", system-ui, sans-serif;--font-display: var(--font-sans);--font-mono: "Geist Pixel", -apple-system, "Apple SD Gothic Neo", "Pretendard", system-ui, monospace;--fw-display: 700;--fw-body: 300;--fs-3xs: 9px;--fs-2xs: 10px;--fs-xs: .78rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-md: 1.25rem;--fs-lg: 1.5rem;--fs-xl: 2rem;--fs-2xl: 2.5rem;--node-fs-root: 11px;--node-fs-category: 11px;--node-fs-project: 10px;--node-fs-tag: 9px;--intro-fs: .875rem;--intro-lh: 1.2;--intro-fw: 700;--lh-tight: 1.2;--lh-base: 1.5;--lh-loose: 1.7;--tracking-tight: -.02em;--tracking-base: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--dur-fast: .15s;--dur-base: .25s;--dur-slow: .45s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--maxw: 1200px;--gutter: var(--space-6)}.frost{background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--card-radius)}body.net-anim .frost,body.net-anim .net-hud-filter,body.net-anim .net-hud-results,body.net-anim .slide{-webkit-backdrop-filter:none;backdrop-filter:none}@media (prefers-reduced-motion: reduce){:root{--dur-fast: 0ms;--dur-base: 0ms;--dur-slow: 0ms}.view-toggle a,.tile,a.chip,.edit-btn,.editor-save,.ed-item,.ed-dropzone-h,.ed-dropzone-v,.slide,.slide-top,.slide-foot,.slide-view{transition:none}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-weight:var(--fw-body);line-height:var(--lh-base)}a{color:inherit}:focus-visible{outline:2px solid var(--fg);outline-offset:2px;border-radius:2px}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--fw-display)}.site-header{position:relative;z-index:5;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--gutter)}.site-intro{display:block;margin:0;max-width:640px;color:var(--fg);text-decoration:none;font-family:var(--font-mono);font-weight:var(--intro-fw);font-size:var(--intro-fs);line-height:var(--intro-lh);letter-spacing:var(--tracking-tight);text-transform:uppercase;white-space:pre-line}.view-toggle{position:relative;margin-left:auto;display:flex;gap:var(--space-2)}.view-toggle a{position:relative;z-index:1;font-size:var(--fs-sm);font-weight:var(--fw-display);color:var(--fg);text-decoration:none;padding:6px 14px;border-radius:var(--card-radius);transition:background-color .2s ease}.view-toggle-pill{position:absolute;top:0;bottom:0;background:var(--accent);border-radius:var(--card-radius);pointer-events:none}.view-toggle-pill.morphing{filter:url(#nav-goo)}body[data-view=detail] .site-header{display:none}.cat-toggle{margin:0 0 var(--space-5) var(--gutter)}main{padding:0 0 var(--space-9)}.loading,.empty{color:var(--muted);padding:0 var(--gutter)}.empty code{background:var(--surface);padding:2px 6px;border-radius:var(--radius-sm);font-size:.85em}.section{margin-top:var(--space-8);scroll-margin-top:var(--space-5)}.section-label{display:inline-block;margin:0 0 var(--space-4) var(--gutter);padding:6px 14px;border-radius:var(--card-radius);background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));font-size:var(--fs-sm);font-weight:var(--fw-display);color:var(--fg);text-transform:uppercase;letter-spacing:.05em}.card-title{font-weight:var(--fw-display);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.card-sub{font-weight:var(--fw-body);color:var(--muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gallery{columns:4 240px;column-gap:var(--space-3);padding:0 var(--gutter)}.tile{display:block;break-inside:avoid;margin-bottom:var(--space-3);padding:13px 14px;font-size:var(--fs-sm);line-height:var(--lh-tight);text-decoration:none;color:inherit;transition:background-color .2s ease}.tile:hover{background:var(--accent)}.tile--nolink{opacity:.55}.tile,.slide{position:relative}.wip-note{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:12px;text-align:center;background:var(--accent);color:var(--fg);font-weight:var(--fw-display);font-size:var(--fs-sm);border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .25s ease}.is-wip-flash .wip-note{opacity:1}.wip-edit{position:absolute;top:10px;right:12px;font-size:var(--fs-2xs);font-weight:var(--fw-body);text-decoration:underline;text-underline-offset:2px;pointer-events:auto;cursor:pointer}.tile-panel{background:var(--media-bg);border-radius:var(--card-radius);overflow:hidden;margin-bottom:10px}.tile-media{width:100%;height:auto;display:block;transition:transform var(--dur-slow) var(--ease-out)}.tile:hover .tile-media{transform:scale(1.03)}.tile-empty{color:var(--muted);font-size:var(--fs-sm);padding:28px 12px;text-align:center}.tile-text{display:flex;flex-direction:column;min-width:0}.tile-title{color:var(--fg)}.tile-year{display:block;text-align:right;margin-top:4px;color:var(--muted)}.is-detail .site-header{display:none}.is-detail main{padding:0}body.is-detail{overflow:hidden}body.is-detail:has(.editor-overlay){overflow:auto}.detail-split{display:grid;grid-template-columns:minmax(320px,38fr) 62fr;height:100dvh}.detail-pane{min-height:0;overflow-y:auto;scrollbar-width:none}.detail-pane::-webkit-scrollbar{display:none}.detail-pane-text{display:flex;flex-direction:column}.detail-pane-text:after{content:"";position:sticky;bottom:0;flex-shrink:0;height:44px;margin-top:auto;background:linear-gradient(to bottom,rgba(255,255,255,0),var(--bg));pointer-events:none}.detail-header{padding:40px 32px 44px}.detail-header .back{display:inline-block;margin-bottom:28px;color:var(--muted);text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-body)}.detail-header .back:hover{color:var(--fg)}.detail-header h1{margin:0;font-size:var(--fs-2xl);letter-spacing:var(--tracking-tight);line-height:var(--lh-tight)}.detail-meta{margin:10px 0 0;color:var(--muted);font-size:var(--fs-sm)}.detail-info{margin:0;padding:16px 32px 64px}.detail-intro{margin:0;color:var(--fg);max-width:64ch;line-height:var(--lh-loose);white-space:pre-wrap}.detail-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-6)}.chip{display:inline-flex;align-items:baseline;gap:8px;padding:8px 14px;font-size:var(--fs-xs);font-weight:var(--fw-body)}a.chip{text-decoration:none;color:inherit;cursor:pointer;transition:background-color .2s ease}a.chip:hover{background:var(--glass-hover)}.chip em{font-style:normal;color:var(--muted);font-size:var(--fs-2xs);font-weight:var(--fw-body);text-transform:uppercase;letter-spacing:.05em}.detail-body{display:flex;flex-direction:column;gap:calc(var(--gutter) / 4);padding:40px var(--gutter) var(--space-9) 0}.detail-row{display:grid;gap:calc(var(--gutter) / 4)}.detail-row.one{grid-template-columns:1fr}.detail-row.two{grid-template-columns:1fr 1fr}.detail-media{width:100%;height:auto;display:block;background:var(--media-bg);border-radius:var(--card-radius)}.detail-related{margin-top:0;padding-bottom:var(--space-9)}.detail-pane-text .gallery{columns:1}@media (max-width: 720px){:root{--gutter: var(--space-4)}body.is-detail{overflow:auto}.detail-split{display:flex;flex-direction:column;height:auto}.detail-pane{display:contents}.detail-pane-text:after{display:none}.detail-header{order:1}.detail-body{order:2;padding:0 var(--gutter)}.detail-info{order:3}.detail-related{order:4}.detail-row.two{grid-template-columns:1fr}.detail-header{padding:28px 20px}.detail-header h1{font-size:var(--fs-xl)}.detail-info{padding:48px 20px 64px}}.edit-btn{margin-top:16px;padding:8px 20px;background:var(--glass);color:var(--fg);border:none;border-radius:var(--card-radius);font-size:var(--fs-sm);cursor:pointer;transition:background .15s}.edit-btn:hover{background:var(--border)}.design-btn{font-size:var(--fs-sm);font-weight:var(--fw-display);font-family:inherit;color:var(--fg);padding:6px 14px;border:1px dashed var(--border-strong);border-radius:var(--card-radius);background:transparent;cursor:pointer}.design-btn:hover{background:var(--glass-hover)}.design-panel{position:fixed;top:calc(var(--gutter) * 2);right:var(--gutter);z-index:20;width:240px;padding:16px;background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--card-radius);display:flex;flex-direction:column;gap:10px}.design-panel-title{margin:0 0 4px;font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.05em}.design-row{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs)}.design-row-label{flex:1;color:var(--muted)}.design-row input[type=color]{width:28px;height:22px;padding:0;border:1px solid var(--border);border-radius:4px;background:transparent;cursor:pointer}.design-row input[type=range]{width:64px}.design-row-col{flex-direction:column;align-items:stretch;gap:4px}.design-textarea{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;font-family:inherit;font-size:var(--fs-2xs);color:var(--fg);resize:vertical}.design-section{margin:8px 0 0;padding-top:10px;border-top:1px solid var(--border);font-size:var(--fs-2xs);font-weight:var(--fw-display);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.design-section:first-of-type{margin-top:0;padding-top:0;border-top:none}.design-select{width:118px;padding:3px 4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;font-family:inherit;font-size:var(--fs-2xs);color:var(--fg)}.design-num{width:58px;padding:3px 4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;font-family:inherit;font-size:var(--fs-2xs);color:var(--fg)}.design-unit{width:24px;color:var(--muted);font-size:var(--fs-2xs)}.design-panel{max-height:calc(100vh - var(--gutter) * 3);overflow-y:auto;scrollbar-width:thin}.design-toggle{margin-top:2px}.design-toggle input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:var(--accent)}.design-foot{display:flex;gap:8px;margin-top:6px}.design-foot button{flex:1;padding:7px 0;border:none;border-radius:var(--card-radius);font-family:inherit;font-size:var(--fs-xs);font-weight:var(--fw-display);cursor:pointer}.design-save{background:var(--fg);color:var(--bg)}.design-reset{background:transparent;border:1px solid var(--border-strong)!important;color:var(--muted)}.editor-overlay{min-height:100vh;background:var(--bg);padding-bottom:80px}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:10}.editor-title{font-size:var(--fs-base);color:var(--muted)}.editor-cancel{background:none;border:none;color:var(--muted);font-size:var(--fs-sm);cursor:pointer;padding:6px 0}.editor-cancel:hover{color:var(--fg)}.editor-save{padding:8px 24px;background:var(--fg);color:var(--bg);border:none;border-radius:6px;font-size:var(--fs-sm);font-weight:var(--fw-display);cursor:pointer;transition:opacity .15s}.editor-save:hover{opacity:.85}.editor-save:disabled{opacity:.4;cursor:default}.editor-hint{margin:16px 32px;font-size:var(--fs-xs);color:var(--muted)}.ed-meta{max-width:900px;margin:20px auto 4px;padding:16px;display:flex;flex-direction:column;gap:12px}.ed-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.ed-field{display:flex;flex-direction:column;gap:4px;min-width:0}.ed-field span{font-size:var(--fs-2xs);font-weight:var(--fw-body);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.ed-field input,.ed-field textarea{font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--fg);background:#ffffffa6;border:none;border-radius:4px;padding:8px 10px;resize:vertical}.ed-field input:focus,.ed-field textarea:focus{outline:2px solid var(--fg);outline-offset:0}.ed-wip{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);color:var(--muted);cursor:pointer}.ed-wip input{accent-color:var(--accent)}.ed-tags{display:flex;flex-wrap:wrap;gap:6px}.ed-tag{font-family:var(--font-sans);font-size:var(--fs-2xs);color:var(--muted);background:#ffffffa6;border:none;border-radius:var(--radius-sm);padding:4px 10px;cursor:pointer;transition:background-color .15s ease,color .15s ease}.ed-tag:hover{color:var(--fg)}.ed-tag.active{background:var(--accent);color:var(--fg)}.ed-canvas{max-width:900px;margin:0 auto;padding:0 16px 40px}.ed-prow{display:grid;gap:8px;position:relative}.ed-prow.one{grid-template-columns:1fr}.ed-prow.two{grid-template-columns:1fr 1fr}.ed-item{cursor:grab;position:relative;border:2px solid transparent;border-radius:4px;transition:opacity .15s,border-color .15s}.ed-item:active{cursor:grabbing}.ed-item:hover{border-color:var(--border-strong)}.ed-item.dragging{opacity:.35}.ed-item.is-cover{border-color:var(--fg)}.ed-item.is-cover:after{content:"표지";position:absolute;top:6px;left:6px;background:var(--fg);color:var(--bg);font-size:.7rem;font-weight:var(--fw-display);padding:2px 8px;border-radius:3px;pointer-events:none}.ed-media{width:100%;height:auto;display:block;background:var(--media-bg);border-radius:var(--card-radius);pointer-events:none}.ed-dropzone-h,.ed-dropzone-v{pointer-events:none}body.ed-dragging .ed-dropzone-h,body.ed-dragging .ed-dropzone-v{pointer-events:auto}.ed-dropzone-h{height:10px;margin:2px 0;border-radius:4px;transition:background .12s,height .12s}body.ed-dragging .ed-dropzone-h{height:16px;background:var(--border)}body.ed-dragging .ed-dropzone-h.active{background:var(--fg);height:22px}.ed-dropzone-v{position:absolute;top:0;bottom:0;width:22%;z-index:5;border-radius:4px;transition:background .12s}.ed-dropzone-v[data-side=left]{left:0}.ed-dropzone-v[data-side=right]{right:0}body.ed-dragging .ed-dropzone-v{background:#0000000a}body.ed-dragging .ed-dropzone-v.active{background:#0000001f;box-shadow:inset 0 0 0 2px var(--fg)}@media (max-width: 600px){.editor-header{padding:16px 20px}}body[data-view=network]{overflow:hidden}body[data-view=network] main{padding:0}.network{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1}.network-canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%}.network-canvas.goo{filter:url(#goo)}.goo-defs{position:absolute;width:0;height:0;pointer-events:none}.network-hint{position:absolute;left:50%;bottom:var(--space-5);transform:translate(-50%);margin:0;color:var(--muted);font-size:var(--fs-sm);pointer-events:none}.net-hud{position:fixed;left:var(--gutter);bottom:var(--space-5);z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.net-hud-goo{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;filter:url(#nav-goo)}.net-hud-blob{position:absolute;border-radius:var(--card-radius);background:var(--glass);transform-origin:bottom left}.net-hud-blob.accent{background:var(--accent)}.net-hud.gooing .net-hud-filter,.net-hud.gooing .net-hud-results{position:relative;z-index:1;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.net-hud-filter{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:6px 14px;background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:0;border-radius:var(--card-radius);color:var(--fg);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-display);cursor:pointer;transition:background-color .2s ease}.net-hud-filter:hover,.net-hud-filter.open{background:var(--accent)}.net-hud-filter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.net-hud-results{margin:0;padding:10px 14px;list-style:none;display:flex;flex-direction:column;gap:2px;max-height:40vh;overflow-y:auto;scrollbar-width:thin;background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--card-radius);transform-origin:bottom left}.net-hud-results:empty{display:none}.net-hud-results li{cursor:pointer;color:var(--muted);font-size:var(--fs-2xs);font-weight:var(--fw-body);letter-spacing:.04em;white-space:nowrap;padding:2px 6px;margin:0 -6px;border-radius:var(--radius-sm)}.net-hud-results li:hover{color:var(--fg);background:var(--accent)}.net-hud-results li.on{color:var(--fg)}@media (max-width: 720px){.net-hud{display:none}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tray-hint{left:auto;right:var(--gutter);bottom:auto;top:calc(var(--gutter) * 2 - 22px);transform:none;text-align:right;max-width:220px}@media (max-width: 720px){.tray-hint{right:var(--gutter);top:auto;bottom:90px;text-align:left}}.visually-hidden:focus-visible{position:fixed;top:var(--space-4);left:var(--space-4);width:auto;height:auto;padding:8px 14px;margin:0;clip:auto;z-index:10;background:var(--fg);color:var(--bg);border-radius:var(--card-radius);font-size:var(--fs-sm)}.slide-tray{position:fixed;top:calc(var(--gutter) * 2);right:0;bottom:var(--gutter);width:clamp(280px,28vw,380px);z-index:2;display:flex;flex-direction:column;justify-content:flex-start;gap:10px;padding:4px var(--gutter) 4px 4px;overflow-y:auto;overflow-x:hidden;pointer-events:none;scrollbar-width:none}.slide-tray::-webkit-scrollbar{display:none}.slide-tray:after{content:"";position:sticky;bottom:-4px;flex-shrink:0;height:44px;margin-top:-44px;background:linear-gradient(to bottom,rgba(255,255,255,0),var(--bg));pointer-events:none}.slide{pointer-events:auto;flex-shrink:0;cursor:pointer;box-sizing:border-box;width:100%;max-height:180px;overflow:hidden;padding:13px 14px;font-family:var(--font-sans);font-size:var(--fs-sm);line-height:var(--lh-tight);transform:translate(0);transition:transform .45s var(--ease-out),opacity .3s ease,background-color .2s ease,width .45s var(--ease-out),max-height .45s var(--ease-out),padding .45s var(--ease-out)}.slide.is-enter,.slide.is-exit{transform:translate(calc(100% + var(--gutter) + 8px));opacity:0}.slide.is-tucked{width:44px;max-height:44px;padding:0;align-self:flex-end;opacity:.6;cursor:pointer;-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--glass)}.slide.is-tucked:hover,.slide.is-tucked:focus-visible{width:220px;max-height:64px;padding:10px 14px;opacity:.95;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}.slide-top,.slide-foot{transition:opacity .25s ease}.slide.is-tucked .slide-top,.slide.is-tucked .slide-foot{opacity:0}.slide.is-tucked:hover .slide-top,.slide.is-tucked:focus-visible .slide-top{opacity:1}.slide.is-lit:hover,.slide.is-hot{background:var(--glass-hover)}.slide.is-lit:hover{transform:scale(1.015);transform-origin:right center}.slide-top{display:grid;grid-template-columns:0fr auto;justify-content:start;transition:grid-template-columns .5s var(--ease-out),gap .5s var(--ease-out)}.slide.is-open .slide-top,.slide.is-hot:not(.is-tucked) .slide-top,.slide:not(.is-tucked):hover .slide-top{grid-template-columns:.66fr 1fr;gap:12px}.slide-media{min-width:0}.slide-media-clip{overflow:hidden;border-radius:var(--card-radius)}.slide-media-clip img,.slide-media-clip video{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block}.slide-text{display:flex;flex-direction:column;min-width:0}.slide-foot{display:flex;justify-content:space-between;align-items:baseline;margin-top:4px}.slide.is-open .slide-foot{margin-top:12px}.slide-year{font-weight:var(--fw-body);color:var(--muted);margin-left:auto}.slide-view{font-weight:var(--fw-body);color:var(--muted);opacity:0;transition:opacity .25s ease}.slide.is-open .slide-view{opacity:1}.slide.is-open:hover .slide-view{color:var(--fg)}.slide.is-hot .slide-title,.slide.is-lit:hover .slide-title{text-decoration:underline;text-underline-offset:3px}@media (max-width: 720px){.slide-tray{top:auto;left:0;right:0;bottom:0;width:auto;flex-direction:row;align-items:flex-end;gap:var(--space-2);padding:var(--space-1) var(--gutter) var(--space-4);overflow-x:auto;overflow-y:hidden}.slide-tray:after{position:sticky;bottom:auto;right:-4px;height:auto;width:32px;margin-top:0;margin-left:-32px;background:linear-gradient(to right,rgba(255,255,255,0),var(--bg))}.slide{width:230px}.slide.is-enter,.slide.is-exit{transform:translateY(120%)}.slide.is-lit:hover{transform:none}}
