: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;--r-capsule: 999px;--r-cell: 28px;--accent-veil: color-mix(in srgb, var(--accent) 55%, transparent);--fog-mix: 100%;--fog: color-mix(in srgb, var(--accent) var(--fog-mix), var(--bg));--card: var(--surface);--line: var(--border);--font-ui: "Geist Pixel", -apple-system, "Apple SD Gothic Neo", "Pretendard", system-ui, monospace;--font-body: "Geist", -apple-system, "Apple SD Gothic Neo", "Pretendard", system-ui, sans-serif;--font-node: "Geist Pixel", -apple-system, "Apple SD Gothic Neo", "Pretendard", system-ui, monospace;--font-info: var(--font-body);--font-intro: var(--font-ui);--font-body-l: var(--font-body);--fw-ui: 700;--fw-body: 300;--fw-body-strong: 500;--fw-node: 400;--fw-body-l: var(--fw-body-strong);--fs-3xs: 9px;--fs-2xs: 10px;--fs-xs: .78rem;--fs-sm: .875rem;--fs-base: 1rem;--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;--info-fs: 1rem;--info-lh: 1.7;--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;--dur-off: .26s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--maxw: 1200px;--gutter: var(--space-6);--header-h: 58px}.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{-webkit-backdrop-filter:none;backdrop-filter:none}@media (prefers-reduced-motion: reduce){:root{--dur-fast: 0ms;--dur-base: 0ms;--dur-slow: 0ms;--dur-off: 0ms}.view-toggle a,.tile,.related-toggle,.dev-btn,.editor-save,.ed-item,.ed-dropzone-h,.ed-dropzone-v,.related-gallery,#splash,.splash-char,.splash-char:before,.splash-char>i{transition:none}}*{box-sizing:border-box}html,body,.node-list,.nav-filter-list,.design-panel{scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar,.node-list::-webkit-scrollbar,.nav-filter-list::-webkit-scrollbar,.design-panel::-webkit-scrollbar{display:none}.view-toggle a,.tile,.related-toggle,.top-nav-btn,.nav-filter-list li,.dev-btn,.wip-edit{touch-action:manipulation}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-base);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-weight:var(--fw-body-strong);line-height:var(--lh-tight)}.design-panel-title{font-family:var(--font-ui);font-weight:var(--fw-ui)}.site-header{position:fixed;top:0;left:0;right:0;z-index:5;padding:var(--space-2) var(--gutter);transition:transform var(--dur-base) var(--ease-out)}.site-header.is-tucked{transform:translateY(calc(-100% - 6px))}.top-nav{display:flex;align-items:stretch;gap:var(--space-2);width:100%;position:relative;z-index:1}.top-nav-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:5px 16px;border:0;border-radius:var(--r-capsule);background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));color:var(--fg);text-decoration:none;font-family:var(--font-ui);font-size:var(--fs-sm);font-weight:var(--fw-ui);letter-spacing:.05em;cursor:pointer;transition:background-color var(--dur-off) ease,-webkit-backdrop-filter var(--dur-off) ease,backdrop-filter var(--dur-off) ease;touch-action:manipulation}.top-nav-btn[hidden]{display:none}.top-nav-btn:hover{background:var(--accent-veil)}.top-nav-btn.active,.top-nav-btn.open{background:var(--accent);-webkit-backdrop-filter:none;backdrop-filter:none;transition-duration:var(--dur-fast)}.top-nav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-intro{font-family:var(--font-intro);font-weight:var(--intro-fw);font-size:var(--intro-fs);line-height:var(--intro-lh);letter-spacing:var(--tracking-tight);white-space:pre-line}.nav-filter-list{position:absolute;top:100%;left:0;z-index:6;margin:12px 0 0;padding:10px 14px;list-style:none;display:flex;flex-direction:column;gap:2px;max-height:50vh;overflow-y:auto;overflow-x:hidden;--fade-len: 104px;border-radius:var(--r-cell);transform-origin:top center}.nav-filter-list[hidden]{display:none}.nav-filter-list,.nav-contact-cell{background:linear-gradient(to bottom,var(--accent) 0,var(--accent) var(--fade-hold, 4px),color-mix(in srgb,var(--accent) 72%,var(--glass)) calc(var(--fade-len) * .15),color-mix(in srgb,var(--accent) 49%,var(--glass)) calc(var(--fade-len) * .3),color-mix(in srgb,var(--accent) 30%,var(--glass)) calc(var(--fade-len) * .45),color-mix(in srgb,var(--accent) 16%,var(--glass)) calc(var(--fade-len) * .6),color-mix(in srgb,var(--accent) 6%,var(--glass)) calc(var(--fade-len) * .78),var(--glass) var(--fade-len));-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}.nav-contact-cell{position:absolute;top:100%;left:0;z-index:6;margin:12px 0 0;padding:7px 0;display:flex;align-items:center;justify-content:center;--fade-len: 3.2em;--fade-hold: 1.5px;border-radius:var(--r-capsule);color:var(--fg);text-decoration:none;font-family:var(--font-ui);font-size:var(--fs-sm);font-weight:var(--fw-ui);letter-spacing:.05em;white-space:nowrap;overflow:hidden;transform-origin:top center;touch-action:manipulation}.nav-contact-cell[hidden]{display:none}.nav-contact-cell:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.nav-contact-cell.is-dividing{will-change:transform}.nav-contact-neck{position:absolute;top:100%;left:0;width:60px;height:20px;z-index:0;background:var(--accent);pointer-events:none}.nav-contact-neck[hidden]{display:none}.nav-filter-neck{position:absolute;top:100%;left:0;width:60px;height:20px;z-index:0;background:var(--accent);pointer-events:none}.nav-filter-neck[hidden]{display:none}.nav-filter-list.is-dividing{will-change:transform}.nav-filter-list li{cursor:pointer;color:var(--muted);font-family:var(--font-ui);font-size:var(--fs-2xs);letter-spacing:.04em;white-space:normal;padding:4px 10px;border-radius:var(--r-capsule);transition:background-color .15s ease,color .15s ease}.nav-filter-list li:hover{color:var(--fg);background:var(--accent-veil)}.nav-filter-list li.on{color:var(--fg)}.view-toggle{position:relative;margin-left:auto;display:flex;gap:var(--space-2)}.view-toggle a{position:relative;z-index:1;font-family:var(--font-ui);font-size:var(--fs-sm);font-weight:var(--fw-ui);color:var(--fg);text-decoration:none;padding:6px 14px;border-radius:var(--r-capsule);transition:background-color .2s ease}.view-toggle-pill{position:absolute;top:0;bottom:0;background:var(--accent);border-radius:var(--r-capsule);pointer-events:none}.view-toggle-pill.morphing{filter:url(#nav-goo)}.cat-toggle{margin:0 0 var(--space-5) var(--gutter)}#view-orb{position:fixed;right:var(--gutter);bottom:var(--space-5);z-index:6;width:56px;height:56px;padding:0;border:0;border-radius:var(--r-capsule);background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));display:grid;place-items:center;cursor:pointer;touch-action:manipulation;transition:background-color .2s ease}@media (hover: hover){#view-orb:hover{background:var(--accent-veil)}}#view-orb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#view-orb svg{width:28px;height:28px;display:block;overflow:visible}#view-orb circle{fill:var(--fg);transform-box:fill-box;transform-origin:center;transition:transform .45s cubic-bezier(.3,.9,.2,1)}#view-orb circle:nth-child(2),#view-orb circle:nth-child(4),#view-orb circle:nth-child(6),#view-orb circle:nth-child(8){transition-delay:.05s}#view-orb circle:nth-child(1),#view-orb circle:nth-child(3),#view-orb circle:nth-child(7),#view-orb circle:nth-child(9){transition-delay:.1s}#view-orb[data-icon=node] circle{transform:translate(0) scale(2.2)}#view-orb[data-icon=grid] circle:nth-child(1){transform:translate(-13px,-13px)}#view-orb[data-icon=grid] circle:nth-child(2){transform:translateY(-13px)}#view-orb[data-icon=grid] circle:nth-child(3){transform:translate(13px,-13px)}#view-orb[data-icon=grid] circle:nth-child(4){transform:translate(-13px)}#view-orb[data-icon=grid] circle:nth-child(5){transform:translate(0)}#view-orb[data-icon=grid] circle:nth-child(6){transform:translate(13px)}#view-orb[data-icon=grid] circle:nth-child(7){transform:translate(-13px,13px)}#view-orb[data-icon=grid] circle:nth-child(8){transform:translateY(13px)}#view-orb[data-icon=grid] circle:nth-child(9){transform:translate(13px,13px)}@media (prefers-reduced-motion: reduce){#view-orb circle{transition:none}}#splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:grid;place-items:center;padding:0 var(--gutter);background:var(--bg);transition:opacity var(--dur-slow) ease}#splash[data-phase=out]{opacity:0}.splash-copy{margin:0;text-align:center;font-weight:var(--fw-body-strong);font-size:var(--fs-sm);letter-spacing:.05em;color:var(--fg)}.splash-char{position:relative;display:inline-block;transition:transform .42s var(--ease-out);transition-delay:var(--d)}.splash-char:before{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--fg);transform:scale(0);transition:transform .4s var(--ease-out);transition-delay:var(--d)}.splash-char>i{display:inline-block;font-style:normal;transform:scale(.4);opacity:0;transition:transform .4s var(--ease-out),opacity .4s var(--ease-out);transition-delay:var(--d)}#splash[data-phase=in] .splash-char,#splash[data-phase=seed] .splash-char{transform:translate(var(--dx),var(--dy))}#splash[data-phase=in] .splash-char,#splash[data-phase=in] .splash-char:before,#splash[data-phase=in] .splash-char>i,#splash[data-phase=seed] .splash-char{transition:none}#splash[data-phase=seed] .splash-char:before{transform:scale(1.6)}#splash[data-phase=split] .splash-char:before{transform:scale(1)}#splash[data-phase=morph] .splash-char:before,#splash[data-phase=out] .splash-char:before{transform:scale(0)}#splash[data-phase=morph] .splash-char>i,#splash[data-phase=out] .splash-char>i{transform:scale(1);opacity:1}main{padding:calc(var(--header-h) + var(--space-4)) 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-family:var(--font-ui);font-size:var(--fs-sm);font-weight:var(--fw-ui);color:var(--fg);text-transform:uppercase;letter-spacing:.05em}.card-title{font-weight:var(--fw-body-strong);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)}.gallery.is-shedding{position:absolute;left:0;right:0;z-index:0;pointer-events:none}.tile{display:block;break-inside:avoid;margin-bottom:var(--space-3);padding:0;overflow:hidden;font-size:var(--fs-sm);line-height:var(--lh-tight);text-decoration:none;color:inherit;border-radius:var(--r-cell);transition:background-color .2s ease}@media (hover: hover){.tile{cursor:none}.tile:hover{background:var(--accent-veil)}}.tile--nolink{opacity:.55}.tile.is-dimmed{filter:blur(6px);opacity:.35;pointer-events:none;transition:filter .3s ease,opacity .3s ease}.tile{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-veil);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));color:var(--fg);font-weight:var(--fw-body-strong);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:0;overflow:hidden;margin:0}.tile-media{width:100%;height:auto;display:block;transition:transform var(--dur-slow) var(--ease-out)}@media (hover: hover){.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-tag{position:absolute;left:10px;bottom:10px;z-index:1;display:inline-flex;align-items:baseline;gap:8px;max-width:calc(100% - 20px);padding:6px 12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--r-capsule);color:var(--fg);font-size:var(--fs-sm);font-weight:var(--fw-body-strong)}.tile-tag em{font-style:normal;color:var(--muted);font-weight:var(--fw-body);text-transform:uppercase;letter-spacing:.05em}@media (hover: hover){.tile-tag{display:none}}#tile-cursor{position:fixed;z-index:20;display:flex;flex-direction:column;gap:2px;max-width:260px;padding:10px 16px;background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:calc(var(--r-cell) * .65);pointer-events:none;font-size:var(--fs-sm);line-height:var(--lh-tight);color:var(--fg);transform:scale(.35);transform-origin:center;opacity:0;transition:transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s ease}#tile-cursor.is-visible{transform:scale(1);opacity:1}#tile-cursor strong{font-weight:var(--fw-body-strong)}#tile-cursor span{color:var(--muted);font-weight:var(--fw-body);text-transform:uppercase;letter-spacing:.05em}@media (hover: hover){*{cursor:none!important}}#cursor-dot{position:fixed;top:0;left:0;z-index:9999;width:15px;height:15px;margin:-7.5px 0 0 -7.5px;border-radius:50%;background:#000;pointer-events:none;transition:width .24s cubic-bezier(.2,.8,.2,1),height .24s cubic-bezier(.2,.8,.2,1),margin .24s cubic-bezier(.2,.8,.2,1),opacity .18s ease}#cursor-dot[hidden]{display:none}#cursor-dot.is-grab{width:24px;height:24px;margin:-12px 0 0 -12px;opacity:.6}#cursor-dot.is-grabbing{width:18px;height:18px;margin:-9px 0 0 -9px;opacity:.9}.over-tile #cursor-dot{width:64px;height:64px;margin:-32px 0 0 -32px;opacity:0}body:after{content:"";position:fixed;left:0;right:0;bottom:0;height:min(30vh,260px);z-index:4;background:linear-gradient(to top,var(--fog) 0,color-mix(in srgb,var(--fog) 90%,transparent) calc(10% * var(--fog-rise, 0)),color-mix(in srgb,var(--fog) 80%,transparent) calc(20% * var(--fog-rise, 0)),color-mix(in srgb,var(--fog) 30%,transparent) calc(36% * var(--fog-rise, 0)),color-mix(in srgb,var(--fog) 10%,transparent) calc(55% * var(--fog-rise, 0)),color-mix(in srgb,var(--fog) 5%,transparent) calc(78% * var(--fog-rise, 0)),transparent calc(100% * var(--fog-rise, 0)));opacity:min(1,calc(var(--fog-rise, 0) * 3));pointer-events:none}@media (prefers-reduced-motion: reduce){body.is-cut:after{--fog-rise: 1;opacity:1}}.detail-header{padding:8px var(--gutter) var(--space-6)}.detail-header h1{margin:0;white-space:pre-line;font-family:var(--font-body-l);font-weight:var(--fw-body-l);font-size:var(--fs-2xl);letter-spacing:var(--tracking-tight);line-height:var(--lh-tight)}.detail-info{margin:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:calc(var(--gutter) * 2);row-gap:var(--space-7);align-items:start;padding:var(--space-8) var(--gutter) var(--space-8)}.detail-intro{margin:0;color:var(--fg);max-width:64ch;line-height:var(--lh-loose);white-space:pre-wrap}.detail-tags{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-5) var(--space-4);font-size:var(--fs-sm);font-weight:var(--fw-body);color:var(--fg);line-height:var(--lh-tight)}.detail-tag{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.detail-tag-values{line-height:var(--lh-tight)}.detail-tag em{font-style:normal;font-weight:var(--fw-body-strong)}.detail-body{display:flex;flex-direction:column;gap:calc(var(--gutter) / 4);padding:0 var(--gutter)}.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(--r-cell)}.detail-related{margin-top:0}.related-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;transition:background-color .2s ease}@media (hover: hover){.related-toggle:hover{background:var(--accent-veil)}}.related-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.related-gallery{max-height:0;opacity:0;overflow:hidden;transition:max-height .45s var(--ease-out),opacity .3s ease}.detail-related.is-open .related-gallery{max-height:3000px;opacity:1}@media (max-width: 720px){:root{--gutter: var(--space-4)}.top-nav{flex-wrap:wrap}.top-nav-btn{flex:1 1 40%}.site-intro{font-size:min(5vw,var(--intro-fs))}.detail-row.two{grid-template-columns:1fr}.detail-header{padding:8px var(--gutter) var(--space-5)}.detail-header h1{font-size:var(--fs-xl)}.detail-info{grid-template-columns:1fr;row-gap:var(--space-6);padding:var(--space-7) var(--gutter)}.detail-tags{grid-template-columns:repeat(2,minmax(0,1fr))}}.info-page{display:grid;grid-template-columns:repeat(4,1fr);column-gap:var(--gutter);row-gap:var(--space-8);padding:calc(var(--header-h) + var(--space-7)) var(--gutter) var(--space-9)}.info-section-about{grid-column:3 / -1;grid-row:1}.info-col-left{grid-column:3;grid-row:2}.info-col-right{grid-column:4;grid-row:2}.info-col{display:flex;flex-direction:column;gap:var(--space-8)}.info-section-label{margin:0 0 var(--space-2);font-family:var(--font-body);font-size:var(--fs-base);font-weight:var(--fw-body-strong)}.info-body{font-family:var(--font-info);font-size:var(--info-fs);line-height:var(--info-lh)}.info-body-s{font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--lh-base)}.info-body-s p:last-child{margin-bottom:0}.exp-list{margin:0;display:grid;grid-template-columns:max-content 1fr;column-gap:var(--space-4);row-gap:var(--space-2);font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--lh-base)}.exp-row{display:contents}.exp-year{margin:0}.exp-items{margin:0;display:flex;flex-direction:column;align-items:flex-start}.exp-item{text-decoration:none;color:inherit}.exp-item.is-linked{transition:color var(--dur-fast) ease}@media (hover: hover){.exp-item.is-linked:hover{color:var(--accent)}}#exp-thumb{position:fixed;top:0;left:0;z-index:6;width:132px;height:132px;border-radius:50%;overflow:hidden;background:var(--media-bg);pointer-events:none;opacity:0;transform:scale(.4);transform-origin:center;transition:transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s ease}#exp-thumb.is-visible{opacity:1;transform:scale(1)}#exp-thumb img,#exp-thumb video{width:100%;height:100%;object-fit:cover;display:block}#exp-thumb video{display:none}#exp-thumb.is-video img{display:none}#exp-thumb.is-video video{display:block}@media (max-width: 900px){#exp-thumb{display:none}}.info-body>:first-child{margin-top:0}.info-body h1,.info-body h2,.info-body h3,.info-body h4,.info-body h5,.info-body h6{margin:1.8em 0 .6em;line-height:var(--lh-tight)}.info-body h1{font-size:2.6em;letter-spacing:var(--tracking-tight);margin-bottom:.5em}.info-body h2{font-size:1.5em}.info-body h3,.info-body h4,.info-body h5,.info-body h6{font-size:1.15em}.info-body p{margin:0 0 1em}.info-body ul,.info-body ol{margin:0 0 1em;padding-left:1.4em}.info-body li{margin:.2em 0}.info-body a{text-decoration:underline;text-underline-offset:3px}.info-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--glass);padding:.1em .4em;border-radius:var(--radius-sm)}.info-body blockquote{margin:0 0 1em;padding-left:var(--space-4);border-left:2px solid var(--border);color:var(--muted)}.info-body hr{border:0;border-top:1px solid var(--border);margin:var(--space-6) 0}.is-inking{position:relative}.ink-ghost{--ink-r: 46px;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;-webkit-user-select:none;user-select:none;filter:url(#ink-goo);opacity:0;transition:opacity var(--dur-fast) ease;-webkit-mask-image:radial-gradient(circle var(--ink-r) at var(--ink-x, -999px) var(--ink-y, -999px),#000 0%,#000 52%,transparent 100%);mask-image:radial-gradient(circle var(--ink-r) at var(--ink-x, -999px) var(--ink-y, -999px),#000 0%,#000 52%,transparent 100%)}.ink-ghost.is-on{opacity:1}@media (max-width: 1200px){.info-page{grid-template-columns:1fr 1fr}.info-section-about{grid-column:1 / -1;grid-row:1}.info-col-left{grid-column:1;grid-row:2}.info-col-right{grid-column:2;grid-row:2}}@media (max-width: 900px){.info-page{grid-template-columns:1fr}.info-page>*{grid-column:1;grid-row:auto}}.info-editor{max-width:72ch;margin:0 auto;padding:calc(var(--header-h) + var(--space-6)) var(--gutter) var(--space-8)}.info-editor-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.info-editor-path{font-family:var(--font-ui);font-size:var(--fs-2xs);color:var(--muted)}.info-editor-actions{margin-left:auto;display:flex;gap:var(--space-2)}.info-editor-field{display:block;margin-bottom:var(--space-6)}.info-editor-name{display:block;margin-bottom:var(--space-2);font-family:var(--font-ui);font-weight:var(--fw-ui);font-size:var(--fs-sm)}.info-editor-name em{font-style:normal;font-weight:var(--fw-body);color:var(--muted);margin-left:var(--space-2)}.info-editor-area{width:100%;padding:var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--card-radius);background:var(--bg);color:var(--fg);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-sm);line-height:1.6;resize:vertical}.info-editor-hint{display:block;margin-top:var(--space-2);font-size:var(--fs-2xs);color:var(--muted)}.exp-ed-row{display:grid;grid-template-columns:6.5em 1fr 2em;gap:var(--space-3);align-items:start;margin-bottom:var(--space-3)}.exp-ed-year,.exp-ed-items{padding:var(--space-2) var(--space-3);border:1px dashed var(--border-strong);border-radius:var(--card-radius);background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-sm);line-height:1.6}.exp-ed-year{font-weight:700}.exp-ed-items{resize:vertical}.exp-ed-del{width:2em;height:2em;padding:0;border:0;border-radius:var(--r-capsule);background:none;color:var(--muted);font-size:1.25rem;line-height:1;cursor:pointer}.exp-ed-del:hover{background:var(--glass);color:var(--fg)}.exp-ed-add{margin-top:var(--space-2);padding:6px 14px;border:1px dashed var(--border-strong);border-radius:var(--r-capsule);background:none;color:var(--muted);font-family:var(--font-body);font-size:var(--fs-sm);cursor:pointer}.exp-ed-add:hover{color:var(--fg);border-color:var(--fg)}.exp-ed-foot{display:flex;align-items:center;gap:var(--space-3)}.exp-ed-reset{margin:var(--space-2) 0 0 auto;padding:6px 14px;border:0;background:none;color:var(--muted);font-family:var(--font-body);font-size:var(--fs-sm);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.exp-ed-reset:hover{color:var(--fg)}.exp-ed-reset:disabled{opacity:.5;cursor:default}.dev-chrome{position:fixed;left:var(--gutter);bottom:var(--space-5);z-index:6;display:flex;align-items:center;gap:var(--space-2)}.dev-btn{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-ui);font-family:var(--font-ui);color:var(--fg);padding:6px 14px;border:1px dashed var(--border-strong);border-radius:var(--r-capsule);cursor:pointer;transition:background var(--dur-fast) ease}.dev-btn:hover{background:var(--glass-hover)}.dev-btn[hidden],.dev-peek{display:none}:root[data-preview="1"] .dev-btn,:root[data-preview="1"] .design-panel{display:none}:root[data-preview="1"] .dev-peek{display:block;width:8px;height:8px;padding:0;background:none;border:1px dashed var(--border-strong);border-radius:50%;opacity:.35;cursor:pointer}:root[data-preview="1"] .dev-peek:hover{opacity:1}.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-range{width:96px}.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-family:var(--font-ui);font-size:var(--fs-2xs);font-weight:var(--fw-ui);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.design-section:first-of-type{margin-top:0;padding-top:0;border-top:none}.design-subsection{margin:10px 0 2px;font-size:var(--fs-3xs);font-weight:var(--fw-body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.design-subsection:first-of-type{margin-top:4px}.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-unit{width:40px;color:var(--muted);font-size:var(--fs-2xs);white-space:nowrap}.design-panel{max-height:calc(100vh - var(--gutter) * 3);overflow-y:auto}.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:var(--font-ui);font-size:var(--fs-xs);font-weight:var(--fw-ui);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-family:var(--font-ui);font-size:var(--fs-sm);font-weight:var(--fw-ui);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-body);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-body);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-family:var(--font-ui);font-size:.7rem;font-weight:var(--fw-ui);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}.node-list{position:absolute;right:var(--gutter);top:calc(var(--header-h) + var(--space-5));z-index:4;display:flex;flex-direction:column;align-items:flex-start;gap:0;max-height:calc(100vh - var(--header-h) - var(--space-5) * 2 - 72px);overflow-y:auto;overflow-x:hidden}.node-list.is-more{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 34px),transparent 100%);mask-image:linear-gradient(to bottom,#000 calc(100% - 34px),transparent 100%)}.node-list-item{position:relative;display:flex;align-items:center;gap:8px;padding:4px 0;border:0;background:none;color:var(--fg);font-family:var(--font-body);font-size:var(--fs-sm);font-weight:var(--fw-body);line-height:1.2;text-align:left;cursor:pointer;touch-action:manipulation}.node-list-item:focus-visible{outline:1px solid var(--fg);outline-offset:2px}.node-list-item.is-dividing,.node-list-item.is-leaving{overflow:hidden}.node-list-item.is-leaving{pointer-events:none}.node-list-dot,.node-list-label{opacity:.4;transition:opacity var(--dur-fast) ease}.node-list-item[data-kind=root] .node-list-dot,.node-list-item[data-kind=root] .node-list-label,.node-list-item.is-active .node-list-dot,.node-list-item.is-active .node-list-label{opacity:1}@media (hover: hover){.node-list-item:hover .node-list-dot,.node-list-item:hover .node-list-label{opacity:.75}.node-list-item[data-kind=root]:hover .node-list-dot,.node-list-item[data-kind=root]:hover .node-list-label,.node-list-item.is-active:hover .node-list-dot,.node-list-item.is-active:hover .node-list-label{opacity:1}}.nl-rails{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.nl-v,.nl-h{position:absolute;pointer-events:none;opacity:.3}.nl-v{width:0;border-left:1px dotted var(--fg)}.nl-h{height:0;border-top:1px dotted var(--fg);transform-origin:left center}.node-list-dot{flex:none;width:10px;height:10px;border-radius:50%;border:1px dotted var(--fg);transition:background-color var(--dur-fast) ease,border-color var(--dur-fast) ease,opacity var(--dur-fast) ease}.node-list-item.is-active .node-list-dot{border-color:transparent;background:var(--fg)}.node-list-item[data-kind=root] .node-list-dot{border-color:transparent;background:var(--accent)}.node-list-item[data-kind=category] .node-list-dot{border-color:transparent;background:var(--fg)}.node-list-item[data-kind=root] .node-list-label{font-weight:var(--fw-body-strong)}.node-list-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:145px}@media (max-width: 720px){.node-list-label{max-width:76px}}.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}.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)}
