:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fff;--surface:#fff;--text:#17243d;--muted:#58677e;--line:#e0e7f1;--accent:#2f6b50;--font-mono:"JetBrains Mono", "D2Coding", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}*{box-sizing:border-box}body{background:var(--background);color:var(--text);margin:0;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,sans-serif;line-height:1.6}:is(code,kbd,samp,pre){font-family:var(--font-mono);font-variant-ligatures:normal}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--accent);outline-offset:5px;border-radius:4px}.skip-link{z-index:10;background:var(--surface);padding:12px;position:fixed;top:-100px;left:12px}.skip-link:focus{top:12px}.site-header{background:var(--surface);border-bottom:1px solid var(--line)}.header-inner{justify-content:space-between;align-items:center;gap:16px;max-width:960px;margin:auto;padding:20px 28px;display:flex}.brand{letter-spacing:-.04em;align-items:center;gap:10px;font-size:24px;font-weight:750;display:inline-flex}.header-label{color:var(--muted);font-size:14px}.page-shell{max-width:960px;min-height:65vh;margin:auto;padding:0 28px}.intro{padding:36px 0 32px}.header-nav{color:var(--accent);flex:1;margin-left:28px;font-weight:700;display:flex}.preview-notice{border:1px solid var(--line);background:var(--surface);border-radius:6px;margin-bottom:12px;padding:4px 10px;font-size:12px;display:inline-block}h1{letter-spacing:-.05em;margin:12px 0 16px;font-size:clamp(26px,4vw,34px);line-height:1.3}p{color:var(--muted);margin:0}h1,h2,h3,p,.post-meta,.tag-list{overflow-wrap:anywhere}.list-heading{justify-content:space-between;align-items:baseline;gap:16px;padding:0 0 16px;display:flex}.list-heading h2{margin:0;font-size:18px}.list-heading span{color:var(--muted);font-size:13px}.post-list,.tag-list{margin:0;padding:0;list-style:none}.post-list{border:1px solid var(--line);background:var(--surface);border-radius:16px;overflow:hidden}.post-list>li+li{border-top:1px solid var(--line)}.post-card{padding:28px 32px}.post-meta{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;display:flex}.post-card h3{letter-spacing:-.03em;margin:12px 0 10px;font-size:22px;line-height:1.45}.post-summary{white-space:pre-line}.tag-list{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.tag-list li{background:var(--accent-soft);color:var(--accent);border-radius:6px;max-width:100%;padding:3px 10px;font-size:12px}.pagination{justify-content:center;align-items:center;gap:24px;padding:28px 0;font-size:14px;display:flex}.page-link{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:10px 14px}.page-link:not(.disabled):hover,.button:hover{border-color:var(--accent);color:var(--accent)}.disabled{color:#718096;background:0 0}.list-state{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:56px 24px}.list-state h2{margin:0 0 12px;font-size:22px}.button{border:1px solid var(--line);border-radius:8px;min-height:44px;margin-top:24px;padding:10px 20px;font-weight:600;display:inline-block}.loading-dot{background:var(--accent);border-radius:50%;width:10px;height:10px;margin-right:12px;display:inline-block}.site-footer{text-align:center;color:var(--muted);padding:32px 24px;font-size:12px}@media (max-width:600px){.header-inner{padding:16px 20px}.page-shell{padding:0 16px}.intro{padding:28px 4px 24px}.header-nav{margin-left:8px}.header-label{font-size:12px}.post-card{padding:24px 20px}.post-card h3{font-size:20px}.pagination{gap:12px;font-size:13px}.list-heading{padding-left:4px;padding-right:4px}}.search-panel{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-bottom:28px;padding:20px}.search-form{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.search-field{flex:160px;min-width:0}.search-field:first-child{flex:2}.search-field label{margin-bottom:6px;font-size:13px;font-weight:700;display:block}.search-field input,.search-field select{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;min-height:44px;color:var(--text);font:inherit;border-radius:8px;padding:10px 12px;font-size:16px}.search-submit{background:var(--accent);color:#fff;min-height:44px;font:inherit;cursor:pointer;border:0;border-radius:8px;padding:10px 22px}.search-reset{min-height:44px;padding:10px;font-size:14px}.search-help{margin-top:12px;font-size:12px}.search-help a{text-decoration:underline}input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}@media (max-width:600px){.search-panel{padding:16px}.search-field,.search-field:first-child{flex-basis:100%}}.tag-picker{min-width:0;position:relative}.tag-trigger{border:1px solid var(--line);width:100%;min-width:0;min-height:44px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:16px;display:flex}.tag-trigger>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tag-trigger>span:last-child{flex-shrink:0}.tag-trigger:disabled{opacity:.6;cursor:default}.tag-options{z-index:5;border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;max-height:280px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 8px 24px #17243d18}.tag-options button{width:100%;min-height:44px;color:var(--text);font:inherit;text-align:left;overflow-wrap:anywhere;cursor:pointer;background:#fff;border:0;border-radius:6px;justify-content:space-between;gap:8px;padding:10px;font-size:14px;display:flex}.tag-options button[aria-pressed=true],.tag-options button:hover{background:var(--accent-soft);color:var(--accent)}.post-card h3 a:hover{color:var(--accent)}.detail-shell{padding-top:28px}.detail-back{color:var(--muted);margin-bottom:20px;font-size:14px;display:block}.post-detail{border:1px solid var(--line);background:#fff;border-radius:16px;padding:40px}.post-detail>header{border-bottom:1px solid var(--line);padding-bottom:28px}.post-body{padding-top:28px}.post-body>[data-block-alignment=CENTER]>:is(.code-block,.table-block,.architecture-block){width:fit-content;max-width:100%;margin-left:auto;margin-right:auto}.post-body>[data-block-alignment=RIGHT]>:is(.code-block,.table-block,.architecture-block){width:fit-content;max-width:100%;margin-left:auto;margin-right:0}.post-rich-content img[data-align=center]{margin-left:auto;margin-right:auto;display:block}.post-rich-content img[data-align=right]{margin-left:auto;margin-right:0;display:block}.post-rich-content table[data-align=center]{width:auto;margin-left:auto;margin-right:auto}.post-rich-content table[data-align=right]{width:auto;margin-left:auto;margin-right:0}.text-block{margin:24px 0}.text-block p{white-space:pre-wrap;color:var(--text)}.code-block{border:1px solid var(--line);border-radius:10px;min-width:0;margin:28px 0;overflow:hidden;box-shadow:0 2px 8px #00000008}.code-heading{background:var(--accent-soft);border-bottom:1px solid var(--line);color:var(--text);overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:13px;font-weight:600;display:flex}.code-heading-left{align-items:center;gap:10px;display:flex}.code-lang-badge{font-family:var(--font-mono);letter-spacing:.04em;background:var(--accent);color:#fff;border-radius:5px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;line-height:1.4;display:inline-flex}.code-heading button{border:1px solid var(--line);min-height:32px;color:var(--text);cursor:pointer;background:#fff;border-radius:6px;flex-shrink:0;padding:4px 10px;font-size:12px;transition:all .15s}.code-heading button:hover{background:var(--surface-soft,#f8fafc);border-color:var(--accent)}:is(.code-block,.post-rich-content) pre{font-family:var(--font-mono);color:#1e293b;border:1px solid var(--line);tab-size:2;font-variant-ligatures:normal;font-feature-settings:"calt" 1, "liga" 1;background:#f8fafc;border-radius:10px;margin:24px 0;padding:18px 20px;font-size:13.5px;line-height:1.75;overflow-x:auto}.code-block pre{border:0;border-radius:0;margin:0}:is(.code-block,.post-rich-content) pre code{font-family:inherit;font-size:inherit;line-height:inherit;background:0 0;border:0;padding:0}:is(.code-block,.post-rich-content) pre:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.copy-status:not(:empty){padding:8px 16px;font-size:12px}.hl-comment{color:#64748b;font-style:italic}.hl-string{color:#0284c7}.hl-keyword{color:#d97706;font-weight:600}.hl-number{color:#059669}.hl-function{color:#7c3aed;font-weight:500}.hl-class-name{color:#2563eb;font-weight:600}.hl-operator{color:#dc2626}.hl-punctuation{color:#64748b}.hl-boolean{color:#059669;font-weight:600}.hl-property{color:#0284c7}.hl-annotation{color:#b45309;font-weight:600}@media (max-width:600px){.post-detail{padding:24px 20px}}.header-nav{color:var(--muted);gap:24px}.header-nav a[aria-current=page]{color:var(--accent)}.project-status{background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:3px 10px;font-size:12px}.project-status.completed{color:#216445;background:#e8f5ef}@media (max-width:600px){.header-inner{flex-wrap:wrap;gap:12px}.header-nav{gap:16px}.header-label{display:none}}.project-search-form .search-field:first-child{flex:2 240px}@media (max-width:600px){.project-search-form .search-field:first-child{flex-basis:100%}}.related-posts{margin-top:36px}.project-period{margin-top:20px;font-size:14px}.feature-list{padding-left:24px}.feature-list li{overflow-wrap:anywhere;padding:8px 0}.feature-list h3{margin:0 0 8px}.project-links{flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none;display:flex}.project-links li{max-width:100%}.project-links a{background:var(--accent-soft);min-height:44px;color:var(--accent);overflow-wrap:anywhere;border-radius:8px;padding:10px 16px;display:block}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.explore-tags{border:1px solid var(--line);background:#fff;border-radius:16px;flex-wrap:wrap;gap:12px;margin:0;padding:24px;list-style:none;display:flex}.explore-tags li{max-width:100%}.explore-tags a{background:var(--accent-soft);min-height:44px;color:var(--accent);overflow-wrap:anywhere;border-radius:8px;flex-wrap:wrap;gap:8px;padding:10px 16px;display:flex}.classification-note{color:var(--muted);font-size:12px}.category-groups{border:1px solid var(--line);background:#fff;border-radius:16px;margin:0;padding:0;list-style:none}.category-groups>li{padding:24px 28px}.category-groups>li+li{border-top:1px solid var(--line)}.category-groups h2{margin:0;font-size:20px}.category-groups h2 a{padding:6px 0;display:inline-block}.category-groups ul{flex-wrap:wrap;gap:12px;margin:12px 0 0;padding:0;list-style:none;display:flex}.category-groups ul li{max-width:100%}.category-groups ul a{background:var(--accent-soft);min-height:44px;color:var(--accent);overflow-wrap:anywhere;border-radius:8px;flex-wrap:wrap;gap:8px;padding:10px 12px;display:flex}@media (max-width:600px){.header-nav{flex-basis:100%;justify-content:space-between;margin-left:0}.category-groups>li{padding:20px}}.table-block{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:0;margin:28px 0;overflow:hidden}.table-block-heading{background:var(--accent-soft);padding:16px 20px}.table-block-heading h2{margin:0;font-size:18px}.table-block-heading p{margin-top:4px;font-size:13px}.table-scroll{overscroll-behavior-x:contain;width:100%;max-width:100%;overflow-x:auto}.table-scroll:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.table-scroll table{border-collapse:collapse;width:100%;min-width:680px;font-size:14px}.table-scroll caption{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.table-scroll th,.table-scroll td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere;max-width:320px;padding:11px 14px}.table-scroll thead th{background:#f7f9fc;font-weight:700}.table-scroll tbody th{font-weight:650}.table-scroll tr:last-child>*{border-bottom:0}.table-spec-intro{margin-bottom:24px}.table-editor-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.table-editor,.table-live-preview{border:1px solid var(--line);background:#fff;border-radius:12px;min-width:0;padding:20px}.table-editor-field{min-width:0;margin-bottom:14px}.table-editor-field label{margin-bottom:5px;font-size:13px;font-weight:700;display:block}.table-editor-field input,.table-editor-field textarea{border:1px solid var(--line);width:100%;min-height:44px;color:var(--text);font:inherit;background:#fff;border-radius:7px;padding:9px 11px;display:block}.table-editor-field textarea{resize:vertical;min-height:72px}.table-editor-columns-heading{justify-content:space-between;align-items:center;gap:12px;margin:24px 0 12px;display:flex}.table-editor-columns-heading h2,.table-live-preview>h2{margin:0;font-size:18px}.table-editor-columns-heading button,.table-remove-column{border:1px solid var(--line);min-height:40px;color:var(--text);font:inherit;cursor:pointer;background:#fff;border-radius:7px;padding:7px 12px}.table-editor-columns-heading button:disabled,.table-remove-column:disabled{opacity:.55;cursor:default}.table-column-editor{border:1px solid var(--line);border-radius:8px;min-width:0;margin:0 0 14px;padding:14px}.table-column-editor legend{padding:0 6px;font-weight:700}.table-editor-check{align-items:center;gap:7px;min-height:40px;margin:0 16px 10px 0;font-size:14px;display:inline-flex}.table-editor-check input{width:18px;height:18px}.table-remove-column{color:#8c3030;width:100%}.table-editor-error{color:#8c3030;background:#fff0ef;border-radius:7px;margin:10px 0;padding:10px;font-size:13px}.table-editor-note,.table-preview-invalid{margin-top:14px;font-size:12px}.table-live-preview{overflow:hidden}.table-live-preview>.table-block{margin-top:12px}.table-preview-invalid{border:1px dashed var(--line);border-radius:8px;padding:16px}.table-spec-json{border:1px solid var(--line);background:#fff;border-radius:12px;min-width:0;margin-top:20px;padding:20px}.table-spec-json h2{margin:0 0 12px;font-size:18px}.table-spec-json p{font-size:13px}.table-spec-json pre{overflow-wrap:anywhere;white-space:pre-wrap;background:#f7f9fc;border-radius:8px;max-width:100%;margin:0;padding:16px;font-size:12px;overflow:auto}@media (max-width:760px){.table-editor-layout{grid-template-columns:minmax(0,1fr)}}.architecture-block{background:#fbfcfe;border:1px solid #d9e0e9;border-radius:14px;min-width:0;margin:0;overflow:hidden}.architecture-heading{background:var(--accent-soft);padding:16px 20px}.architecture-heading h2{margin:0;font-size:18px}.architecture-heading p{color:#526075;margin:4px 0 0;font-size:13px}.architecture-scroll{overscroll-behavior:contain;background-color:#f9fbfd;background-image:radial-gradient(#dce3ec 1px,#0000 1px);background-size:20px 20px;width:100%;max-width:100%;overflow:auto}.architecture-scroll:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.architecture-svg{touch-action:pan-x pan-y;max-width:none;display:block}.arch-group{fill:#ebf2ffa6;stroke:#9eb1cb;stroke-width:1.5px;stroke-dasharray:7 5}.arch-group-docker{fill:#e7f4ebd1;stroke:#7aaa87;stroke-dasharray:4 4}.arch-group-custom{fill:#f4eeffb3;stroke:#a892ce}.arch-group-color-BLUE{fill:#ebf2ffbf;stroke:#9eb1cb}.arch-group-color-GREEN{fill:#e7f4ebcc;stroke:#85b493}.arch-group-color-PURPLE{fill:#f4eeffbf;stroke:#b49fd9}.arch-group-color-AMBER{fill:#fef7e6cc;stroke:#ddb76f}.arch-group-color-ROSE{fill:#feec;stroke:#e09d9d}.arch-group-color-PEACH{fill:#fff3eacc;stroke:#e4aa7e}.arch-group-color-TEAL{fill:#e6f7f7cc;stroke:#7ec3c3}.arch-group-color-INDIGO{fill:#eef0fecc;stroke:#9ba4df}.arch-group-color-PINK{fill:#feeff8cc;stroke:#d89ec5}.arch-group-color-GRAY{fill:#f1f4f8cc;stroke:#aeb9c7}.arch-group-label{fill:#334258;font-size:13px;font-weight:750}.arch-group-desc{fill:#65748a;font-size:10px;font-weight:500}.arch-edge{fill:none;stroke:#77859a;stroke-width:2px}.arch-edge-label{fill:#536177;text-anchor:middle;paint-order:stroke;stroke:#f9fbfd;stroke-width:5px;stroke-linejoin:round;cursor:pointer;font-size:11px}.arch-node{stroke:#bac6d5;stroke-width:1.4px;filter:drop-shadow(0 2px 3px #1f30491a)}.arch-node-type{fill:#617187;text-anchor:middle;font-size:10px}.arch-node-label{fill:#1e2b3d;text-anchor:middle;font-size:12px;font-weight:750}.arch-tech-icon{pointer-events:none}.arch-node-wrap{outline:none}.arch-node-wrap.arch-node-draggable{cursor:grab}.arch-node-wrap.arch-node-draggable:active{cursor:grabbing}.arch-node-wrap:focus-visible .arch-node,.arch-node-wrap.is-selected .arch-node{stroke:#446fe0;stroke-width:3px}.arch-node-tooltip{opacity:0;pointer-events:none;transition:opacity .16s,transform .16s;transform:translateY(2px)}.arch-node-wrap:hover .arch-node-tooltip,.arch-node-wrap:focus-visible .arch-node-tooltip,.arch-node-tooltip.is-active-overlay{opacity:1;transform:translateY(0)}.arch-node-tooltip-bg{fill:#fff;stroke:#cbd5e1;stroke-width:1px;filter:drop-shadow(0 4px 10px #0f172a1f)}.arch-node-tooltip-text{fill:#334155;letter-spacing:-.01em;-webkit-user-select:none;user-select:none;font-size:10.5px;font-weight:500}.architecture-inspector-textarea{color:#0f172a;resize:vertical;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:6px;width:100%;min-height:64px;padding:7px 10px;font-family:inherit;font-size:12px;line-height:1.5}.architecture-inspector-textarea:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 2px #6366f126}.architecture-description{border-top:1px solid var(--line);grid-template-columns:minmax(110px,1fr) 3fr;gap:8px 18px;padding:16px 20px;font-size:13px;display:grid}.architecture-description h3{margin:0;font-size:13px}.architecture-description ul,.architecture-description ol{margin:0;padding-left:20px}.architecture-description li{overflow-wrap:anywhere;margin-bottom:4px}.architecture-description p{margin:0}.architecture-editor-layout{grid-template-columns:minmax(210px,248px) minmax(0,1fr) minmax(224px,260px);align-items:start;gap:14px;display:grid}.architecture-palette,.architecture-inspector,.architecture-canvas-panel{background:#fff;border:1px solid #dfe5ee;border-radius:10px;min-width:0;box-shadow:0 2px 8px #0f172a08}.architecture-palette,.architecture-inspector{padding:14px}.architecture-panel-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.architecture-panel-title h2{letter-spacing:-.02em;margin:2px 0 0;font-size:15px}.architecture-eyebrow{color:#8090a5;letter-spacing:.12em;font-size:9px;font-weight:800}.architecture-count{color:#65748a;background:#f0f3f8;border-radius:6px;padding:4px 7px;font-size:10px;font-weight:750}.architecture-palette>p{color:#77869a;margin:12px 0 14px;font-size:11px}.architecture-tech-grid{gap:6px;display:grid}.architecture-tech-grid button{color:#26364a;text-align:left;min-height:39px;font:inherit;cursor:pointer;background:#f7f9fc;border:1px solid #0000;border-radius:8px;grid-template-columns:30px 1fr 14px;align-items:center;gap:9px;padding:5px 8px;font-size:11px;font-weight:650;display:grid}.architecture-tech-grid button:hover,.architecture-group-list button:hover{background:#f0f4fa;border-color:#c9d5e6}.architecture-tech-mark{color:#3e5e9a;background:#fff;border-radius:7px;place-items:center;width:28px;height:28px;font-size:10px;font-weight:850;display:grid;box-shadow:0 1px 3px #182b4412}.tech-spring{color:#438b48}.tech-postgresql{color:#39658e}.tech-redis{color:#c95151}.tech-docker{color:#168ab6}.tech-oracle_cloud{color:#bb3838}.tech-aws{color:#c80}.tech-cloudflare,.tech-workers{color:#d8792c}.tech-r2{color:#b47e1e}.tech-react{color:#1494b8}.tech-nodejs{color:#498543}.tech-nginx{color:#3a8b62}.architecture-custom-add,.architecture-connect-button,.architecture-group-buttons button{color:#475a73;width:100%;min-height:36px;font:inherit;cursor:pointer;background:#fff;border:1px solid #dce2eb;border-radius:8px;font-size:11px;font-weight:700}.architecture-custom-add{border-style:dashed;margin-top:7px}.architecture-palette-section{border-top:1px solid #edf0f4;margin-top:20px;padding-top:16px}.architecture-group-buttons{grid-template-columns:1fr 1fr;gap:5px;margin-top:11px;display:grid}.architecture-group-buttons button{min-height:31px;padding:4px;font-size:10px}.architecture-group-list{gap:3px;margin-top:8px;display:grid}.architecture-group-list button{text-align:left;color:#526177;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:8px;padding:7px;font-size:11px;display:flex}.architecture-group-list button.active{color:#274d9a;background:#f2f6ff;border-color:#c8d7f8}.group-dot{background:#81a1d0;border-radius:3px;width:8px;height:8px}.group-docker{background:#67a880}.group-custom{background:#a78bca}.architecture-connect-button{margin:12px 0 8px}.architecture-connect-button.active{color:#3256a7;background:#eff4ff;border-color:#6686dc}.architecture-edge-list{gap:5px;max-height:230px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.architecture-edge-list li{color:#64738a;background:#f7f9fc;border-radius:6px;justify-content:space-between;align-items:center;gap:4px;padding:6px;font-size:9px;display:flex}.architecture-edge-list li span{overflow-wrap:anywhere}.architecture-edge-list b{color:#8996a8}.architecture-edge-list button{color:#8692a3;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:0 0 22px;width:22px;height:22px;font-size:17px}.architecture-canvas-panel{overflow:hidden}.architecture-canvas-toolbar{box-sizing:border-box;background:#fff;border-bottom:1px solid #e2e6eb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-height:42px;padding:6px 12px;font-size:12px;display:flex}.architecture-canvas-title{color:#4b5565;font-size:12px;font-weight:600}.architecture-canvas-hint{color:#64748b;margin-right:auto;font-size:11.5px;font-weight:400}.architecture-canvas-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.architecture-canvas-panel .architecture-block{box-shadow:none;border:0;border-radius:0}.architecture-canvas-panel .architecture-scroll{width:100%;min-height:340px;max-height:540px}.architecture-canvas-panel .architecture-svg{min-width:unset}.architecture-canvas-status{color:#64748b;background:#fff;border-top:1px solid #e2e6eb;min-height:28px;padding:5px 12px;font-size:11px}.architecture-inspector label{color:#65748a;gap:5px;margin-top:15px;font-size:10px;font-weight:750;display:grid}.architecture-inspector input,.architecture-inspector select{color:#29384d;width:100%;min-width:0;height:36px;font:inherit;background:#fff;border:1px solid #dce2eb;border-radius:7px;padding:6px 8px;font-size:11px}.architecture-inspector-icon{color:#73839b;background:#f1f4f9;border-radius:8px;place-items:center;width:30px;height:30px;display:grid}.architecture-coordinate-fields{grid-template-columns:1fr 1fr;gap:8px;display:grid}.architecture-inspector .architecture-delete{color:#a14646;width:100%;min-height:34px;font:inherit;cursor:pointer;background:snow;border:1px solid #f0d6d4;border-radius:7px;margin-top:20px;font-size:10px;font-weight:750}.architecture-multi-inspector{gap:12px;margin-top:14px;display:grid}.architecture-multi-summary{color:#2b394d;background:#f4f7fc;border-radius:8px;margin:0;padding:10px 12px;font-size:13px;line-height:1.5}.architecture-multi-summary .text-muted{color:#65748a;font-size:11px}.architecture-multi-hint{color:#728298;margin:0;font-size:11px;line-height:1.5}.arch-marquee-selection{fill:#446fe01f;stroke:#446fe0;stroke-width:1.5px;stroke-dasharray:4 3;pointer-events:none}.arch-canvas-bg{cursor:default}.architecture-empty-inspector{color:#8491a2;margin:16px 0 0;font-size:11px;line-height:1.6}.architecture-editor-error{color:#8c3030;background:#fff0ef;border-radius:7px;grid-column:1/-1;padding:10px;font-size:13px}.architecture-editor-note{color:#8894a3;grid-column:1/-1;margin:0;font-size:10px}.architecture-json-panel{border:1px solid var(--line);background:#fff;border-radius:12px;margin-top:20px;padding:18px}.architecture-json-panel h2{margin:0 0 10px;font-size:18px}.architecture-json-panel pre{overflow-wrap:anywhere;white-space:pre-wrap;max-width:100%;font-size:12px;overflow:auto}@media (max-width:1050px){.architecture-editor-layout{grid-template-columns:minmax(190px,230px) minmax(0,1fr)}.architecture-inspector{grid-column:1/-1}}@media (max-width:680px){.architecture-editor-layout{grid-template-columns:minmax(0,1fr);gap:10px}.architecture-palette{order:1}.architecture-canvas-panel{order:2}.architecture-inspector{order:3;grid-column:auto}.architecture-panel-title h2,.architecture-canvas-toolbar h2{font-size:15px}.architecture-palette,.architecture-inspector{padding:13px}.architecture-tech-grid{grid-template-columns:1fr 1fr}.architecture-tech-grid button{grid-template-columns:26px 1fr;font-size:10px}.architecture-tech-grid button>:last-child{display:none}.architecture-canvas-help{max-width:115px;font-size:8px}.architecture-canvas-panel .architecture-scroll{min-height:360px;max-height:58vh}}.architecture-tech-grid button{font-size:13px}.architecture-group-list button,.architecture-edge-list li,.architecture-canvas-help,.architecture-inspector label,.architecture-inspector input,.architecture-inspector select,.architecture-group-buttons button,.architecture-custom-add,.architecture-connect-button,.architecture-canvas-status,.architecture-empty-inspector{font-size:12px}.architecture-dev{max-width:1480px}@media (max-width:680px){.architecture-tech-grid button{font-size:12px}.architecture-canvas-help{font-size:10px}}.arch-node-draggable{touch-action:none}.architecture-edge-select{overflow-wrap:anywhere;color:#526177;text-align:left;min-width:0;font:inherit;font-size:inherit;cursor:pointer;background:0 0;border:0;padding:2px}.architecture-edge-select:hover{color:#3159a4}@media (max-width:680px){.architecture-canvas-help{font-size:12px}}.architecture-auto-layout{color:#444c59;height:28px;min-height:28px;font:inherit;cursor:pointer;background:#fff;border:1px solid #dce1e8;border-radius:6px;padding:4px 9px;font-size:12px;transition:background .15s,border-color .15s,color .15s}.architecture-auto-layout:hover:not(:disabled){background:#f7f9fc;border-color:#98afd2}.architecture-auto-layout:disabled{opacity:.4;cursor:default}.architecture-json-panel summary{cursor:pointer;color:#65748a;font-size:13px}.architecture-edge-list .architecture-edge-select{text-align:left;overflow-wrap:anywhere;flex:1;width:auto;min-width:0;height:auto;font-size:12px}.architecture-canvas-fit .architecture-scroll{width:100%;max-height:540px}.architecture-canvas-fit .architecture-svg{max-width:none;min-width:unset;display:block}.architecture-color-swatches{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.architecture-color-swatch{cursor:pointer;border:2px solid;border-radius:6px;outline:none;justify-content:center;align-items:center;width:26px;height:26px;padding:0;transition:transform .12s,box-shadow .12s;display:flex}.architecture-color-swatch:hover{transform:scale(1.12)}.architecture-color-swatch.is-selected{transform:scale(1.08);box-shadow:0 0 0 2px #fff,0 0 0 4px #446fe0}.architecture-swatch-check{pointer-events:none;font-size:13px;font-weight:700;line-height:1}.arch-group-wrap.is-interactive .arch-group{cursor:grab;pointer-events:all}.arch-group-wrap.is-interactive .arch-group:active{cursor:grabbing}.arch-group-wrap.is-interactive.is-selected .arch-group,.arch-group-wrap.is-interactive:hover .arch-group{stroke:#446fe0;stroke-width:2.5px}.arch-group-wrap .arch-group-label{-webkit-user-select:none;user-select:none}.arch-group-wrap.is-interactive .arch-group-label{cursor:grab;outline:none}.arch-group-wrap.is-interactive .arch-group-label:focus-visible{fill:#244d9c;text-decoration:underline}.arch-connect-handle{cursor:crosshair;opacity:0;outline:none;transition:opacity .12s}.arch-connect-handle:hover,.arch-connect-handle:focus-visible{opacity:1}.arch-connect-hit{fill:#0000;pointer-events:all}.arch-connect-dot{fill:#fff;stroke:#4770d6;stroke-width:2.5px;pointer-events:none}.arch-connect-handle:focus-visible .arch-connect-dot,.arch-connect-handle.is-connecting .arch-connect-dot{fill:#4770d6;stroke:#fff}.arch-group-resize{cursor:nwse-resize;opacity:.65;outline:none}.arch-group-wrap:hover .arch-group-resize,.arch-group-wrap.is-selected .arch-group-resize,.arch-group-resize:focus-visible{opacity:1}.arch-group-resize-hit{fill:#fff;stroke:#6686dc;stroke-width:1.5px}.arch-group-resize-mark{fill:none;stroke:#4669c4;stroke-width:1.5px;pointer-events:none}.arch-group-resize:focus-visible .arch-group-resize-hit{fill:#eaf0ff;stroke-width:2.5px}.arch-group-wrap.is-interactive,.arch-group-resize,.arch-connect-handle{touch-action:none}.arch-edge-wrap{outline:none}.arch-edge-wrap[role=button]{cursor:pointer}.arch-edge-hit{fill:none;stroke:#0000;stroke-width:14px;vector-effect:non-scaling-stroke;pointer-events:stroke}.arch-edge-wrap.is-selected .arch-edge{stroke:#416fe0;stroke-width:3px}.arch-edge-wrap:focus-visible .arch-edge{stroke:#3159a4;stroke-width:3px}.arch-edge-controls{pointer-events:none}.arch-edge-controls>g{pointer-events:auto}.arch-edge-waypoint{cursor:move;outline:none}.arch-edge-waypoint-hit{fill:#fff;stroke:#5478d2;stroke-width:1.5px}.arch-edge-waypoint-dot{fill:#5478d2;pointer-events:none}.arch-edge-waypoint:focus-visible .arch-edge-waypoint-hit{fill:#eaf0ff;stroke-width:2.5px}.arch-edge-toolbar{pointer-events:auto}.arch-edge-toolbar>rect{fill:#fff;stroke:#cbd5e4;stroke-width:1px;filter:drop-shadow(0 2px 4px #1b2d451e);cursor:pointer;transition:stroke .15s}.arch-edge-toolbar:hover>rect{stroke:var(--accent)}.arch-edge-toolbar>text{fill:#465773;cursor:pointer;pointer-events:auto;-webkit-user-select:none;user-select:none;font-size:10px;font-weight:700}.arch-edge-toolbar:hover>text{fill:var(--accent)}.arch-edge-delete{cursor:pointer;pointer-events:auto;outline:none}.arch-edge-delete circle{fill:#fff4f3;stroke:#e6c4c1}.arch-edge-delete path{fill:none;stroke:#a84c47;stroke-width:1.5px;pointer-events:none}.arch-edge-delete:focus-visible circle{fill:#ffe2df;stroke-width:2px}.arch-edge-endpoint-handle{cursor:crosshair;outline:none}.arch-edge-endpoint-handle circle{fill:#fff;stroke:#5478d2;stroke-width:2px}.arch-edge-endpoint-handle.source circle{fill:#5478d2}.arch-edge-endpoint-handle:focus-visible circle{stroke:#243f87;stroke-width:3px}.arch-edge-waypoint,.arch-edge-endpoint-handle{touch-action:none}.architecture-edge-disclosure summary{cursor:pointer;color:#65748a;margin-top:12px;font-size:12px}.post-editor{color:#17243d;gap:24px;display:grid}.post-editor-fields{gap:16px;display:grid}.post-editor-fields label,.post-editor-block-fields>label,.post-editor-code-meta label{color:#34435d;gap:7px;font-size:14px;font-weight:650;display:grid}.post-editor-fields label>span{color:#748198;justify-self:end;margin-bottom:-25px;font-size:12px;font-weight:400}.post-editor input,.post-editor textarea,.post-editor select{color:#17243d;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #dce4ef;border-radius:9px;padding:11px 12px;font-weight:400}.post-editor textarea{resize:vertical;line-height:1.65}.post-editor input:focus-visible,.post-editor textarea:focus-visible,.post-editor select:focus-visible,.post-editor button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.post-editor [aria-invalid=true]{border-color:#bc4b52}.post-editor-block-heading,.post-editor-block-row,.post-editor-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.post-editor-block-heading h2{margin:0;font-size:19px}.post-editor-block-heading p{color:#748198;margin:5px 0 0;font-size:13px}.post-editor-add{flex-wrap:wrap;gap:7px;display:flex}.post-editor button{color:#344c70;min-height:36px;font:inherit;cursor:pointer;background:#fff;border:1px solid #dce4ef;border-radius:8px;padding:6px 10px;font-size:13px}.post-editor button:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-soft)}.post-editor button:disabled{cursor:not-allowed;opacity:.48}.post-editor-block-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.post-editor-block-list>li{background:#fff;border:1px solid #e1e8f1;border-radius:12px;min-width:0;overflow:hidden}.post-editor-block-row{background:#f7f9fc;border-bottom:1px solid #e7edf6;padding:10px 12px}.post-editor-block-row>button:first-child{background:0 0;border-color:#0000;font-weight:700}.post-editor-block-row>div{gap:5px;display:flex}.post-editor-invalid-mark{color:#a83e44;font-weight:500}.post-editor-block-fields{gap:14px;padding:14px;display:grid}.post-editor-block-fields[hidden]{display:none}.post-editor-code-meta{grid-template-columns:minmax(140px,.45fr) minmax(180px,1fr);gap:12px;display:grid}.post-editor-preview{border-top:1px solid #edf1f7;min-width:0;padding-top:12px;overflow:auto}.post-editor-preview>h3{color:#748198;margin:0 0 9px;font-size:12px}.post-editor-text-preview{color:#34435d;white-space:pre-wrap;overflow-wrap:anywhere;min-height:48px;line-height:1.75}.post-editor-errors{color:#8d3036;background:#fff7f6;border:1px solid #edc9c9;border-radius:9px;padding:12px 16px;font-size:13px}.post-editor-errors p{margin:0 0 6px;font-weight:700}.post-editor-errors ul{margin:0;padding-left:19px}.post-editor-footer{color:#748198;background:#fffffff2;border:1px solid #e4eaf3;border-radius:10px;padding:12px;font-size:13px;position:sticky;bottom:0}.post-editor-footer button{border-color:var(--accent);background:var(--accent);color:#fff;min-width:132px;font-weight:700}.post-editor-footer button:hover:not(:disabled){background:var(--accent-hover);color:#fff}@media (max-width:680px){.post-editor-block-heading,.post-editor-footer{flex-direction:column;align-items:stretch}.post-editor-code-meta{grid-template-columns:1fr}.post-editor-add{grid-template-columns:1fr 1fr;display:grid}.post-editor-add button{width:100%}}.writer-shell{max-width:1440px;padding-bottom:40px}.writer-status{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-bottom:24px;display:flex}.naver-login{color:#fff;background:#03c75a;border:0}fieldset{min-width:0}@media (max-width:600px){.header-inner{flex-wrap:wrap}.header-nav{gap:8px}.header-label{margin-left:auto}}.post-editor .table-editor-layout{display:block}.post-editor .table-live-preview{display:none}.post-editor>div:first-child{gap:24px;min-width:0;display:grid}.post-editor-fields label{grid-template-columns:minmax(0,1fr) auto;align-items:center}.post-editor-fields label>span{margin:0}.post-editor-fields input,.post-editor-fields textarea{grid-column:1/-1}.post-editor>div:first-child[hidden]{display:none}.publish-review{grid-template-columns:minmax(0,1fr);gap:24px;min-width:0;display:grid}.publish-review .post-detail{min-width:0}.publish-review>h2{margin:0}.publish-options{border:0;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:0;display:grid}.publish-options legend{margin-bottom:12px;font-weight:700}.publish-options label{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;align-items:flex-start;gap:12px;padding:18px;display:flex}.publish-options label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.publish-options input{width:20px;min-width:20px;accent-color:var(--accent);margin-top:4px}.publish-options small{color:var(--muted);font-size:13px;display:block}.post-editor-actions{flex-wrap:wrap;gap:12px;display:flex}.post-editor-footer button.secondary{color:var(--accent);border-color:var(--line);background:#fff}.writer-public-link{margin:0 0 24px}@media (max-width:680px){.publish-options{grid-template-columns:1fr}.publish-review .post-detail{padding:20px}.post-editor-actions{grid-template-columns:1fr 1fr;display:grid}.post-editor-actions button{min-width:0}}.post-classification{color:#17243d;gap:20px;min-width:0;display:grid}.post-classification-field{gap:8px;min-width:0;display:grid}.post-classification-field>label{color:#34435d;font-size:14px;font-weight:650}.post-classification-field>input,.post-classification-field>select{color:#17243d;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #dce4ef;border-radius:9px;padding:11px 12px}.post-classification-add-tag{flex-wrap:wrap;gap:8px;display:flex}.post-classification-add-tag input{color:#17243d;min-width:0;font:inherit;background:#fff;border:1px solid #dce4ef;border-radius:9px;flex:220px;padding:11px 12px}.post-classification-add-tag input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.post-classification-chips{flex-wrap:wrap;gap:6px;margin-left:6px;display:inline-flex}.post-classification-chip{border:1px solid var(--accent-border);background:var(--accent-soft);color:var(--accent);border-radius:16px;align-items:center;gap:6px;padding:3px 6px 3px 10px;display:inline-flex}.post-classification-chip button{width:22px;height:22px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0}.post-classification-chip button:focus-visible{outline:2px solid var(--accent)}.post-classification-field>input:focus-visible,.post-classification-field>select:focus-visible,.post-classification-tags input:focus-visible,.post-classification-help button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.post-classification-help,.post-classification-selected{color:#748198;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.5}.post-classification-help button{color:var(--accent-hover);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.post-classification-tags{flex-wrap:wrap;gap:8px;max-height:220px;padding:2px;display:flex;overflow:auto}.post-classification-tag{color:#34435d;cursor:pointer;background:#fff;border:1px solid #dce4ef;border-radius:18px;align-items:center;gap:7px;max-width:100%;min-height:36px;padding:6px 10px;font-size:13px;display:inline-flex}.post-classification-tag span{overflow-wrap:anywhere}.post-classification-tag:has(input:checked){border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent)}.post-editor .post-classification-tag input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);flex:0 0 16px;margin:0;padding:0}.writer-composer{color:#202a38;gap:30px;max-width:980px;margin:0 auto;padding:0 0 56px}.writer-action-bar{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffed;border-bottom:1px solid #e5e8ed;justify-content:space-between;align-items:center;gap:16px;min-height:68px;margin:0 -20px;padding:12px 20px;display:flex;position:sticky;top:0}.writer-action-bar>span{color:#687384;text-align:center;flex:1;font-size:13px}.writer-action-bar>div{gap:8px;display:flex}.writer-action-bar button{border-radius:8px;min-width:92px;min-height:40px;padding:8px 15px;font-weight:700}.writer-action-bar .secondary,.writer-action-bar .writer-exit{color:#536174;background:0 0;border:0}.writer-action-bar .writer-exit{min-width:auto;padding-left:4px}.writer-composer .writer-title-field{grid-template-columns:1fr auto;align-items:center;gap:10px 16px;padding:28px 0 12px;display:grid}.writer-title-field>span{color:#657184;grid-column:1/-1;font-size:13px;font-weight:700}.writer-title-field input{color:#17243d;letter-spacing:-.04em;background:0 0;border:0;border-bottom:1px solid #e2e6ec;border-radius:0;grid-column:1;min-width:0;padding:12px 0 18px;font-size:clamp(28px,4vw,40px);font-weight:750}.writer-title-field small{color:#8b95a3;grid-area:2/2;font-size:12px}.writer-composer .post-editor-block-heading{border-bottom:1px solid #e8ebef;padding-bottom:14px}.writer-composer .post-editor-block-heading h2{font-size:16px}.writer-composer .post-editor-block-heading p{color:#828b99}.writer-composer .post-editor-block-list>li{border:1px solid #e9ecf0;border-radius:10px;overflow:visible;box-shadow:0 2px 10px #1b2b4208}.writer-composer .post-editor-block-row{background:#fbfcfd}.writer-composer .post-editor-block-fields{padding:18px}.writer-composer .post-editor-block-fields>label{color:#667286}.writer-publish-dialog{color:#202a38;background:#fff;border:1px solid #e2e6ec;border-radius:18px;width:min(700px,100vw - 32px);max-width:700px;max-height:min(88dvh,920px);padding:0;overflow:auto;box-shadow:0 24px 90px #1b2b4240}.writer-publish-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14213680}.writer-publish-dialog form{gap:22px;padding:26px;display:grid}.writer-publish-dialog form>header{border-bottom:1px solid #ebedf0;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:16px;display:flex}.writer-publish-dialog form>header p{color:#6d7c91;margin:0 0 5px;font-size:12px;font-weight:700}.writer-publish-dialog h2{margin:0;font-size:20px}.writer-dialog-close{min-width:36px;min-height:36px;color:#657184!important;background:0 0!important;border:0!important;padding:0!important;font-size:25px!important}.writer-publish-fields{gap:20px;display:grid}.writer-publish-fields fieldset{border:0;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;display:grid}.writer-publish-fields legend{grid-column:1/-1;margin-bottom:8px;font-size:14px;font-weight:700}.writer-publish-fields fieldset label{cursor:pointer;border:1px solid #e2e6ec;border-radius:10px;align-items:flex-start;gap:10px;min-height:76px;padding:14px;display:flex}.writer-publish-fields fieldset label:has(input:checked){border-color:var(--accent-border);background:var(--accent-soft)}.writer-publish-fields fieldset input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin-top:2px}.writer-publish-fields fieldset small,.writer-form-field>small{color:#7a8595;margin-top:5px;font-size:12px;line-height:1.45;display:block}.writer-form-field{color:#39465a;gap:7px;min-width:0;font-size:13px;font-weight:700;display:grid}.writer-form-field>input,.writer-form-field>textarea,.writer-slug-field input{color:#202a38;width:100%;min-width:0;font:inherit;border:1px solid #dfe4eb;border-radius:8px;padding:11px 12px;font-weight:400}.writer-form-field .post-classification{gap:8px}.writer-board-label{margin-top:-8px}.writer-slug-field output{overflow-wrap:anywhere;color:#657184;border:1px solid #e7eaf0;border-radius:8px;padding:11px 12px;font-weight:500}.writer-slug-prefix{color:#7c8796;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.writer-extra-fields{border-top:1px solid #e9ecf0;padding-top:15px}.writer-extra-fields summary{color:var(--accent);cursor:pointer;font-size:13px;font-weight:700}.writer-extra-fields[open]{gap:18px;display:grid}.writer-publish-dialog form>footer{border-top:1px solid #ebedf0;justify-content:flex-end;gap:9px;padding-top:16px;display:flex}.writer-publish-dialog form>footer button{border:1px solid var(--accent);background:var(--accent);color:#fff;min-width:108px;min-height:42px;font:inherit;cursor:pointer;border-radius:8px;padding:8px 14px;font-weight:700}.writer-publish-dialog form>footer .secondary{color:#45536a;background:#fff;border-color:#dfe4eb}.writer-publish-dialog button:focus-visible,.writer-publish-dialog input:focus-visible,.writer-publish-dialog textarea:focus-visible,.writer-action-bar button:focus-visible,.writer-title-field input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.writer-existing-media{color:#536174;max-width:980px;margin:24px auto}.writer-existing-media summary{cursor:pointer;font-size:13px;font-weight:700}@media (max-width:680px){.writer-composer{gap:22px;padding-bottom:32px}.writer-action-bar{gap:8px;margin:0 -14px;padding:10px 14px}.writer-action-bar>span{font-size:11px}.writer-action-bar button{min-width:70px;padding:7px 10px}.writer-composer .writer-title-field{padding-top:18px}.writer-publish-dialog form{padding:19px}.writer-publish-fields fieldset{grid-template-columns:1fr}.writer-publish-fields fieldset label{min-height:64px}.writer-publish-dialog h2{font-size:18px}.writer-composer .post-editor-block-row{align-items:flex-start}.writer-composer .post-editor-block-row>div{flex-wrap:wrap;justify-content:flex-end}}.post-classification-tag.is-existing{border-style:dashed}.post-classification-tag input:disabled{cursor:not-allowed}@media (max-width:680px){.post-classification{gap:16px}.post-classification-tags{max-height:180px}.post-classification-tag{min-height:40px}}.personal-blog-layout{grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:start;gap:28px;display:grid}.personal-blog-profile{border:1px solid var(--line);overflow-wrap:anywhere;background:#fff;border-radius:16px;padding:24px;position:sticky;top:24px;box-shadow:0 8px 28px #24395d0a}.personal-blog-profile h1{color:#17243d;margin:0 0 12px;font-size:24px;line-height:1.35}.personal-blog-profile p{color:#52627b;margin:6px 0}.personal-blog-profile .personal-blog-handle,.personal-blog-heading>span{color:#748198;font-size:13px}.personal-blog-content{min-width:0}.personal-blog-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:16px;margin:0 0 18px;padding:0 0 18px;display:flex}.personal-blog-heading .eyebrow{color:#748198;letter-spacing:.12em;margin:0 0 5px;font-size:11px;font-weight:750}.personal-blog-heading h2{color:#17243d;margin:0;font-size:26px}@media (max-width:760px){.personal-blog-layout{grid-template-columns:minmax(0,1fr);gap:18px}.personal-blog-profile{padding:18px;position:static}.personal-blog-profile h1{font-size:21px}.personal-blog-heading{align-items:start}.personal-blog-heading h2{font-size:22px}}.session-links{flex-shrink:0;justify-content:flex-end;align-items:center;gap:16px;font-size:13px;display:flex}.session-links a:hover{color:var(--accent)}.login-action{flex-direction:column;align-items:center;gap:12px;max-width:100%;display:inline-flex}.login-error{color:#973a42;overflow-wrap:anywhere;max-width:440px;font-size:13px;line-height:1.65;display:block}.header-login{border:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;background:#fff;border-radius:7px;padding:8px 12px}.session-links .login-action{position:relative}.session-links .login-error{border:1px solid var(--line);z-index:8;background:#fff;border-radius:10px;width:min(360px,85vw);padding:16px;position:absolute;top:100%;right:0;box-shadow:0 8px 24px #17243d18}.login-panel{justify-items:center;gap:20px;max-width:540px;margin:40px auto;display:grid}.login-panel .button{margin-top:8px}.member-agreements{text-align:left;max-width:640px;margin:20px auto}.member-agreements>h1,.member-agreements>p{text-align:center}.agreement-versions{margin-top:10px;font-size:13px}.agreement-summary{border:1px solid var(--line);text-align:left;border-radius:10px;max-width:520px;margin:24px auto 0;padding:16px 20px}.agreement-summary h2{margin:0 0 8px;font-size:16px}.agreement-summary ul{color:var(--muted);margin:0;padding-left:20px;font-size:13px}.agreement-form{gap:16px;max-width:520px;margin:24px auto 0;display:grid}.agreement-check{text-align:left;color:var(--text);align-items:flex-start;gap:10px;font-size:14px;display:flex}.agreement-check input{width:18px;height:18px;accent-color:var(--accent);flex:0 0 18px;margin:4px 0 0}.agreement-check a,.agreement-withdrawal a{color:var(--accent);text-decoration:underline}.agreement-form .button{justify-self:center}.member-agreements .agreement-form>button[type=submit]{grid-column:1/-1;justify-self:center;width:fit-content;margin:0 auto}.agreement-form button:disabled{opacity:.55;cursor:not-allowed}.agreement-text-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.agreement-error{color:#a33;margin:18px 0}.agreement-withdrawal{text-align:center;margin-top:28px;font-size:13px}.login-eyebrow,.home-eyebrow{letter-spacing:.16em;color:var(--accent);font-size:11px;font-weight:700}.home-intro{border-bottom:1px solid var(--line);margin-bottom:28px;padding:62px 0 38px;position:relative}.home-intro h1{margin:18px 0 20px;font-size:clamp(32px,5vw,48px);line-height:1.28}.home-intro>p:not(.home-eyebrow){max-width:520px;font-size:15px}.home-blog-link{color:var(--accent);margin-top:24px;font-size:14px;font-weight:700;display:inline-block}.home-shell .search-panel{background:0 0;border:0;border-radius:0;padding:16px 0}.home-shell .post-list{background:0 0;border:0;border-radius:0}.home-shell .post-card{padding:32px 0}.home-shell .post-card h3{max-width:700px;font-size:25px}.home-shell .post-summary{max-width:680px}.home-shell .tag-list li{border:1px solid var(--line);background:0 0;border-radius:20px}.post-author-link:hover{color:var(--accent);text-decoration:underline}@media (max-width:680px){.session-links{gap:12px;margin-left:auto}.home-intro{padding:36px 0 28px}.home-shell .post-card{padding:24px 4px}.home-shell .post-card h3{font-size:22px}.header-nav{flex-basis:100%;order:3;justify-content:space-between;margin-left:0}.login-panel{margin:12px auto}}.blog-owner-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.blog-owner-actions a{border:1px solid var(--line);color:var(--accent);background:#fff;border-radius:8px;padding:8px 12px;font-size:13px}.personal-blog-layout{padding-top:36px}.personal-blog-content .post-list{background:0 0;border:0;border-radius:0}.personal-blog-content .post-card{padding:28px 0}@media (max-width:760px){.personal-blog-layout{padding-top:24px}.personal-blog-content .post-card{padding:24px 4px}}.comments-panel{border-top:1px solid var(--line);margin:48px 0;padding-top:28px}.comment-list{margin:0;padding:0;list-style:none}.comment-list>li{border-bottom:1px solid var(--line);padding:24px 0}.comment-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.comment-meta strong{color:var(--text)}.comment-secret-badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-weight:650;display:inline-flex}.comment-secret-badge svg{width:13px;height:13px}.comment-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:14px 0;font-size:14px;line-height:1.8}.comment-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;font-size:12px;display:flex}.comment-form{margin-top:24px}.comments-panel form>label:not(.comment-secret){margin:12px 0;font-size:14px;display:block}.comments-panel textarea{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:100%;font:inherit;resize:vertical;border-radius:4px;min-height:110px;padding:12px;font-size:16px}.comment-create-actions{justify-content:flex-end;margin-top:12px;display:flex}.comment-count,.comment-help{color:var(--muted);font-size:12px}.comment-count{text-align:right}.comment-secret{align-items:center;gap:8px;min-height:44px;font-size:13px;display:flex}.comment-secret input{width:16px;height:16px;accent-color:var(--accent)}.comment-login{padding-top:20px}.comments-panel .button{min-height:44px}.linked-project{border:1px solid var(--line);overflow-wrap:anywhere;border-radius:12px;gap:.5rem;min-width:0;margin-block:2rem;padding:1.25rem;display:grid}.linked-project>span{color:var(--muted);font-size:.8rem}.linked-project>a{font-size:1.1rem;font-weight:600}.linked-project>p{margin:0;font-size:.9rem;line-height:1.6}.like-panel{text-align:center;margin-top:2.5rem;margin-bottom:1rem;padding-top:1.5rem}.like-actions,.like-login{justify-content:center;align-items:center;gap:.75rem;display:flex}.like-actions .button,.like-login .button{margin-top:0}.like-button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.like-button{border-radius:50%;place-items:center;width:44px;height:44px;padding:0;display:inline-grid}.like-button svg,.like-guest-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.like-button[aria-pressed=true] svg{fill:currentColor}.like-guest-icon{place-items:center;width:44px;height:44px;display:inline-grid}.like-error{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.like-error p{margin:0}.like-panel>p,.like-login{margin-top:.75rem}.post-owner-actions{gap:10px;margin-top:20px;display:flex}.post-owner-actions a{border:1px solid var(--line);color:var(--accent);background:#fff;border-radius:8px;padding:8px 12px;font-size:13px}.list-like-count{white-space:nowrap;align-items:center;gap:.2rem;display:inline-flex}.blog-board-nav{gap:.25rem;margin-top:1.5rem;display:grid}.blog-board-nav a{overflow-wrap:anywhere;border-radius:.5rem;padding:.5rem}.blog-board-nav a[aria-current=page]{background:var(--surface);color:var(--accent);font-weight:600}.board-management{gap:1.5rem;margin-top:1.5rem;display:grid}.board-management form{gap:.75rem;display:grid}.board-row{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:.75rem;margin-block:.5rem;display:flex}.board-row .button{margin-top:0}.content-management,.content-media{border:1px solid var(--border,#ddd);overflow-wrap:anywhere;border-radius:12px;margin-block:1.5rem;padding:1rem}.content-management form,.content-media-upload,.content-media-list li{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.content-management input{width:6rem;max-width:100%}.content-media label{gap:.35rem;max-width:100%;display:grid}.content-media input,.content-media select{min-width:0;max-width:100%}.content-media img{max-width:100%;height:auto}.content-media-list{padding:0;list-style:none}.content-media-list li{padding-block:1rem}.content-media-list li p{flex-basis:100%}.content-thumbnail{object-fit:contain;border-radius:10px;width:100%;max-height:24rem;margin-block:1rem;display:block}.public-project-media-list{gap:1rem;display:grid}.public-project-media figure{margin:0}.public-project-media img{max-width:100%;height:auto;display:block}.public-project-media figcaption{margin-top:.5rem}.account-menu{flex-shrink:0;position:relative}.account-menu summary{cursor:pointer;list-style:none}.account-menu summary::-webkit-details-marker{display:none}.account-avatar{border:1px solid var(--line);background:var(--accent-soft);width:38px;height:38px;color:var(--accent);border-radius:50%;place-items:center;font-weight:700;display:grid;overflow:hidden}.account-avatar img{object-fit:cover;width:100%;height:100%}.account-menu-panel{z-index:12;border:1px solid var(--line);background:#fff;border-radius:10px;gap:4px;min-width:180px;padding:10px;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 8px 24px #17243d18}.account-menu-panel strong{padding:0}.account-menu-panel a,.account-menu-panel button{box-sizing:border-box;width:100%;min-height:42px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:9px 10px;display:block}.account-menu-panel a:hover,.account-menu-panel button:hover{background:var(--accent-soft);color:var(--accent)}.profile-screen{max-width:660px;margin-inline:auto}.profile-heading{justify-content:space-between;align-items:end;gap:16px;margin-bottom:20px;display:flex}.profile-heading h1{margin:0}.profile-eyebrow{color:var(--muted);margin:0 0 5px;font-size:12px}.profile-account-link{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 12px;font-size:13px}.profile-form{padding:24px}.profile-form fieldset{border:0;min-width:0;margin:0;padding:0}.profile-form legend{margin-bottom:22px;font-size:17px;font-weight:700}.profile-photo-field{align-items:center;gap:18px;margin-bottom:24px;display:flex}.profile-avatar-frame{border:1px solid var(--line);background:var(--accent-soft);width:88px;height:88px;color:var(--accent);border-radius:50%;flex:0 0 88px;place-items:center;font-size:26px;font-weight:700;display:grid;overflow:hidden}.profile-avatar-frame img{object-fit:cover;width:100%;height:100%}.profile-photo-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.profile-photo-actions p{flex-basis:100%;font-size:12px}.profile-file-button{cursor:pointer;justify-content:center;align-items:center;margin:0;display:inline-flex}.profile-form .button{margin-top:0}.profile-input-row{align-items:end;gap:10px;margin-top:16px;display:flex}.profile-input-row .search-field{flex:1}.profile-check{flex:none}.profile-help,.profile-availability{margin-top:6px;font-size:12px}.profile-availability{color:#216445}.profile-error{color:#8c3030;background:#fff0ef;border-radius:7px;margin-top:16px;padding:10px}.profile-notice{background:var(--accent-soft);color:var(--accent);border-radius:7px;margin-top:16px;padding:10px}.profile-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.profile-actions .button{margin:0}.profile-primary{background:var(--accent);border-color:var(--accent);color:#fff}.withdrawal-screen{border:1px solid var(--line);background:#fff;border-radius:14px;max-width:660px;margin:0 auto;padding:32px}.withdrawal-screen h1{margin:0 0 12px}.withdrawal-screen h2{margin:22px 0 8px}.withdrawal-screen>p{margin:12px 0}.withdrawal-screen>a:not(.button){text-decoration:underline}.withdrawal-danger{color:#8c3030;border-color:#e4b9b8;margin-right:8px;display:inline-block}@media (max-width:600px){.profile-form{padding:17px}.profile-photo-field{align-items:flex-start}.profile-avatar-frame{flex-basis:72px;width:72px;height:72px}.profile-input-row{align-items:stretch}.profile-check{align-self:end;padding-inline:10px}.withdrawal-screen{padding:22px 18px}}.header-logout{color:var(--muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:8px 2px}.header-logout:hover{color:var(--accent)}.withdrawal-actions{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.withdrawal-actions .button{margin:0}.withdrawal-actions .withdrawal-danger{margin-right:0}body:has(.writer-shell){background:#fff}.writer-shell.page-shell{max-width:none;min-height:100dvh;margin:0;padding:114px 48px 148px}.writer-shell .writer-composer{color:#222;grid-template-columns:minmax(0,1fr);gap:0;min-width:0;max-width:900px;margin:0 auto;padding:0}.writer-visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;padding:0!important;position:absolute!important}.writer-identity{z-index:46;color:#333;background:#fff;align-items:center;gap:10px;max-width:150px;font-size:12px;display:flex;position:fixed;top:20px;right:48px}.writer-identity>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.writer-identity img,.writer-identity-avatar{object-fit:cover;border-radius:50%;width:32px;height:32px}.writer-identity-avatar{color:#607087;background:#edf0f4;place-items:center;display:grid}.writer-composer .writer-action-bar{z-index:40;-webkit-backdrop-filter:none;backdrop-filter:none;background:#f7f7f7;border-top:1px solid #eee;border-bottom:0;min-height:80px;margin:0;padding:18px 48px;position:fixed;inset:auto 0 0}.writer-action-bar>span{text-align:right;font-size:12px;font-weight:400}.writer-action-bar button{border-radius:24px;min-width:110px;min-height:40px;font-size:13px;font-weight:400}.writer-action-bar .secondary{color:#555;background:0 0;border:1px solid #d6d6d6}.writer-action-bar>div>button:last-child{color:#fff;background:#171717;border-color:#171717}.writer-action-bar .writer-exit{color:#777;min-width:auto;padding-left:0}.writer-composer .writer-title-field{border-bottom:1px solid #eee;margin-bottom:30px;padding:20px 0 26px;display:block;position:relative}.writer-composer .writer-title-field input{letter-spacing:-.04em;background:#fff;border:0;padding:0;font-size:30px;font-weight:400;line-height:1.5}.writer-title-field input::placeholder{color:#a4a4a4}.writer-title-field small{color:#aaa;font-size:10px;position:absolute;top:-14px;right:0}.writer-composer .post-editor-block-list{gap:28px}.writer-composer .post-editor-block-list>li{box-shadow:none;background:0 0;border:0;border-radius:0;overflow:visible}.writer-composer .post-editor-block-fields{gap:18px;padding:0}.writer-composer .post-editor-block-row{color:#888;background:#fff;border:0;padding:0 0 12px}.writer-composer .writer-single-block{display:none}.writer-composer .post-editor-block-row button{color:#888;background:0 0;border:0;font-size:11px}.writer-add-block{color:#a2a2a2;margin-top:40px;font-size:12px}.writer-add-block summary{cursor:pointer;list-style:none}.writer-add-block summary:before{content:"＋ ";font-size:15px}.writer-add-block>div{gap:10px;margin-top:12px;display:flex}.writer-composer .post-editor-errors{color:#a16767;background:0 0;border:0;margin-top:20px;padding:0;font-size:12px}.writer-existing-media{max-width:900px;margin:30px 0;font-size:12px}.writer-publish-dialog{border-radius:12px;max-width:600px;box-shadow:0 12px 60px #0003}.writer-publish-dialog form>footer>button:last-child{background:#171717;border-color:#171717}.writer-publish-dialog form>footer>button:last-child:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.writer-publish-fields fieldset label:has(input:checked){background:#f8f8f8;border-color:#555}.writer-publish-fields fieldset input{accent-color:#333}@media (max-width:720px){.writer-shell.page-shell{padding:92px 22px 130px}.writer-composer .writer-action-bar{gap:14px;min-height:74px;padding:14px 22px}.writer-action-bar>span{display:none}.writer-action-bar>div{margin-left:auto}.writer-action-bar button{min-width:84px}.writer-identity{display:none}.writer-composer .writer-title-field input{font-size:26px}.writer-composer .post-editor-block-row,.writer-add-block>div{flex-wrap:wrap}}.writer-identity{z-index:1002}.writer-structure-toolbar{z-index:1000;color:#777;background:#fff;border-bottom:1px solid #eee;align-items:center;gap:20px;height:72px;padding:0 180px 0 48px;font-size:12px;display:flex;position:fixed;inset:0 0 auto}.writer-composer .writer-structure-toolbar button{color:#333;background:0 0;border:0;min-height:34px}@media (max-width:720px){.writer-structure-toolbar{gap:12px;height:60px;padding:0 22px}}.writer-public-link{z-index:41;color:#888;background:0 0;border:0;min-height:0;margin:0;padding:0;font-size:12px;position:fixed;bottom:28px;left:125px}@media (max-width:720px){.writer-public-link{display:none}}.comment-compose-row{grid-template-columns:minmax(0,1fr) 92px;align-items:stretch;gap:10px;display:grid}.comments-panel .comment-compose-row textarea{box-sizing:border-box;resize:vertical;width:100%;min-width:0;min-height:96px;margin:0}.comment-compose-row>.button{background:var(--text);color:#fff;border-color:var(--text);align-self:stretch;margin:0;padding:10px}.comment-compose-footer{justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.comment-compose-footer .comment-secret{min-height:36px;margin:0}.comment-compose-footer .comment-count{white-space:nowrap;margin:0}.comment-pagination{justify-content:center;align-items:center;gap:5px;margin:24px 0;display:flex}.comment-pagination button{min-width:36px;min-height:36px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:6px;font-size:13px;display:inline-flex}.comment-pagination button:hover{background:var(--surface)}.comment-pagination button[aria-current=page]{background:var(--surface);color:var(--text);font-weight:700}.comment-pagination button:disabled{opacity:.35;cursor:default}.comment-pagination svg{width:18px;height:18px}.comment-pagination button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.table-primary-key-note{color:var(--muted);margin:12px 0;font-size:12px;line-height:1.6}.table-primary-key-note p{margin:4px 0}.table-primary-key-note code{overflow-wrap:anywhere;margin-left:8px}@media (max-width:480px){.comment-compose-row{grid-template-columns:minmax(0,1fr) 76px;gap:8px}.comment-compose-row>.button{padding:8px;font-size:12px}}.login-dialog{box-sizing:border-box;border:1px solid var(--line);width:min(400px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--text);text-align:center;background:#fff;border-radius:16px;padding:38px 28px 32px;font-size:14px;line-height:1.6;overflow:auto;box-shadow:0 24px 80px #16342326}.login-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14251d66}.login-dialog-close{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;top:12px;right:12px}.login-dialog-close:hover{background:var(--accent-soft)}.login-dialog-close svg{width:20px;height:20px}.login-dialog-brand{justify-content:center;align-items:center;gap:9px;margin:0 0 22px;display:flex}.login-dialog-brand img{width:56px;height:56px}.login-dialog-brand>span{letter-spacing:-.05em;font-size:28px;font-weight:700}.login-dialog h2{margin:0;font-size:22px;font-weight:650;line-height:1.5}.login-dialog>p{color:var(--muted);margin:8px 0 26px;font-size:13px}.login-dialog .login-action{align-items:stretch;width:100%;display:flex}.login-dialog .login-error{width:auto;max-width:none;box-shadow:none;text-align:left;background:0 0;border:0;padding:0;font-size:12px;position:static}.naver-provider-button{color:#fff;width:100%;min-height:48px;font:inherit;cursor:pointer;background:#03a94d;border:0;border-radius:5px;justify-content:center;align-items:center;padding:12px 18px 12px 56px;font-size:14px;font-weight:500;display:flex;position:relative}.naver-provider-button>img{width:48px;height:48px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.naver-provider-button:hover{filter:brightness(.96)}.naver-provider-button:disabled{opacity:.65;cursor:wait}.login-dialog button:focus-visible,.naver-provider-button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.login-panel .login-action{align-items:stretch;width:min(340px,100%)}.post-private-badge{color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:4px;align-items:center;gap:4px;width:fit-content;padding:2px 6px;font-weight:500;font-size:11px!important;display:inline-flex!important}.post-meta .blog-post-edit{margin-left:auto}.blog-post-edit{color:var(--accent);white-space:nowrap;font-size:12px}.blog-home-posts>li{position:relative}.blog-home-posts>li>.blog-post-edit{width:auto;padding:0;display:block;position:absolute;bottom:8px;right:0}.project-writer-shell{max-width:1240px}.project-document-overview{grid-template-columns:90px 1fr;gap:12px;padding:20px 0;display:grid}.project-document-overview dt{color:var(--muted)}.project-document-overview dd{margin:0}.project-document-section{border-top:1px solid var(--line);padding:24px 0}.project-document-section>h2{margin:0 0 22px}.page-shell.project-writer-shell{max-width:1440px}.page-shell.writer-shell.project-writer-shell{max-width:1440px;min-height:100dvh;margin:auto;padding:130px 48px 160px}@media (max-width:720px){.page-shell.writer-shell.project-writer-shell{padding:165px 22px 140px}}.page-shell.project-writer-shell .writer-composer{max-width:none;color:var(--writer-text)}.architecture-editor-layout{grid-template-columns:minmax(0,1fr);gap:12px}.architecture-palette{margin-bottom:10px;padding:6px 12px}.architecture-library-disclosure>summary{cursor:pointer;color:var(--text);font-size:13px;font-weight:650}.architecture-library{grid-template-columns:minmax(0,2fr) minmax(160px,1fr) minmax(160px,1fr);gap:20px;padding-top:16px;display:grid}.architecture-library .architecture-tech-grid{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:5px}.architecture-library .architecture-tech-grid button{grid-template-columns:26px 1fr 12px;gap:5px;padding:4px 6px;font-size:12px}.architecture-library .architecture-palette-section{border:0;margin:0;padding:0}.architecture-library .architecture-panel-title{margin-bottom:10px}.architecture-canvas-panel .architecture-scroll{min-height:0;max-height:540px}.architecture-zoom-controls{align-items:center;gap:3px;display:flex}.architecture-zoom-controls button{padding:4px 7px}.architecture-canvas-toolbar button.active{border-color:var(--accent);color:var(--accent)}.architecture-workspace{width:100%;min-width:0;position:relative}.architecture-workspace>.architecture-canvas-panel{width:100%;min-width:0}.architecture-inspector.architecture-inspector-sidebar{z-index:25;border:1px solid var(--line,#dce2eb);background:var(--surface,#fff);box-sizing:border-box;border-radius:14px;flex-direction:column;grid-column:auto;align-items:stretch;gap:12px;width:300px;max-width:320px;max-height:calc(100vh - 120px);padding:16px 18px;animation:.18s cubic-bezier(.16,1,.3,1) archSidebarSlideIn;display:flex;position:absolute;top:0;left:calc(100% + 16px);overflow-y:auto;box-shadow:0 8px 24px #1c2d481a}@keyframes archSidebarSlideIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.architecture-inspector-sidebar .architecture-panel-title{border-bottom:1px solid var(--line,#edf0f4);justify-content:space-between;align-items:center;gap:8px;width:100%;margin-bottom:2px;padding-bottom:10px;display:flex}.architecture-inspector-close{border:1px solid var(--line,#dce2eb);background:var(--surface,#fff);width:28px;height:28px;color:var(--muted,#77869a);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;transition:all .15s;display:inline-flex}.architecture-inspector-close:hover{background:var(--accent-soft,#f0f4ff);color:var(--accent,#4770d6);border-color:var(--accent,#4770d6)}.architecture-inspector-toggle{align-items:center;gap:4px;transition:all .15s;display:inline-flex}.architecture-inspector-toggle.is-active{background:var(--accent-soft,#f0f4ff);border-color:var(--accent,#4770d6);color:var(--accent,#4770d6);font-weight:650}.architecture-inspector-sidebar label{width:100%;color:var(--muted,#65748a);flex-direction:column;gap:6px;margin:0;font-size:11px;font-weight:700;display:flex}.architecture-inspector-sidebar input,.architecture-inspector-sidebar select{border:1px solid var(--line,#dce2eb);background:var(--surface,#fff);width:100%;min-width:0;height:36px;color:var(--text,#29384d);font:inherit;box-sizing:border-box;border-radius:8px;padding:6px 10px;font-size:12px;transition:border-color .15s,box-shadow .15s}.architecture-inspector-sidebar input:focus,.architecture-inspector-sidebar select:focus{border-color:var(--accent,#4770d6);box-shadow:0 0 0 2px var(--accent-soft,#4770d626);outline:none}.architecture-inspector-sidebar .architecture-coordinate-fields{grid-template-columns:1fr 1fr;gap:8px;width:100%;margin:0;display:grid}.architecture-inspector-sidebar .architecture-edge-actions{gap:6px;width:100%;margin-top:2px;display:flex}.architecture-inspector-sidebar .architecture-edge-actions button{white-space:nowrap;flex:1;min-height:32px;padding:6px 8px;font-size:11px}.architecture-inspector-sidebar .architecture-delete{color:#a14646;width:100%;min-height:36px;font:inherit;cursor:pointer;background:snow;border:1px solid #f0d6d4;border-radius:8px;margin:6px 0 0;padding:8px 12px;font-size:12px;font-weight:700;transition:all .15s}.architecture-inspector-sidebar .architecture-delete:hover{color:#8c2a2a;background:#fde8e6;border-color:#e5a8a4}.architecture-inspector-sidebar .architecture-inspector-hint{color:var(--muted,#77869a);margin:2px 0 0;font-size:11px;line-height:1.5}.architecture-inspector-icon{display:none}@media (max-width:960px){.architecture-inspector.architecture-inspector-sidebar{width:100%;max-width:none;margin-top:14px;position:static}}.arch-connection-preview{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-dasharray:6 4;pointer-events:none}.is-canvas-connecting .arch-connect-handle,.arch-connect-handle.is-visible,.arch-connect-handle.is-connecting{opacity:1!important;visibility:visible!important}.is-canvas-connecting .arch-connect-dot,.arch-connect-handle.is-connecting .arch-connect-dot{fill:#fff;stroke:var(--accent,#4770d6);stroke-width:2.2px;filter:drop-shadow(0 1px 2px #4770d659)}.arch-connect-handle:hover .arch-connect-dot,.arch-connect-handle:focus-visible .arch-connect-dot{fill:var(--accent,#4770d6);stroke:#fff;stroke-width:2px;transform:scale(1.4)}@media (max-width:850px){.architecture-library{grid-template-columns:1fr 1fr}.architecture-library>div:first-child{grid-column:1/-1}}@media (max-width:680px){.architecture-editor-layout{grid-template-columns:minmax(0,1fr)}.architecture-canvas-help{max-width:none}.architecture-library{grid-template-columns:1fr}.architecture-library>div:first-child{grid-column:auto}.architecture-canvas-panel .architecture-scroll{height:420px;min-height:0;max-height:none}.architecture-inspector label{flex-basis:135px}}.architecture-editor-layout:focus{outline:none}.architecture-library-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.architecture-library-toolbar [role=tablist],.architecture-custom-actions{flex-wrap:wrap;gap:6px;display:flex}.architecture-library-toolbar button{border:1px solid var(--line);min-height:34px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:7px;padding:7px 12px;font-size:12px}.architecture-library-toolbar [role=tab][aria-selected=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:650}.architecture-library-panel{margin-top:12px}.architecture-library-panel .architecture-tech-grid{gap:6px;padding-bottom:5px;display:flex;overflow-x:auto}.architecture-library-panel .architecture-tech-grid button{flex:none;grid-template-columns:26px auto 12px;gap:5px;min-width:124px;font-size:12px}.architecture-library-panel .architecture-group-buttons{flex-wrap:wrap;gap:7px;margin:0;display:flex}.architecture-library-panel .architecture-group-buttons button{width:auto;min-height:36px;padding:6px 12px;font-size:12px}.arch-name-editor input{box-sizing:border-box;border:1.5px solid var(--accent);background:var(--surface);width:100%;height:30px;color:var(--text);font:inherit;border-radius:5px;outline:none;padding:4px 6px;font-size:12px}.arch-node-label,.arch-group-label{cursor:text}.architecture-compact-palette{z-index:12;position:relative}.architecture-library-triggers{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.architecture-library-triggers button,.architecture-connection-dropdown>button{background:var(--surface,#fff);height:30px;color:var(--text,#444c59);font:inherit;cursor:pointer;white-space:nowrap;box-sizing:border-box;border:1px solid #dce1e8;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:550;line-height:1;transition:all .15s;display:inline-flex}.architecture-library-triggers button:hover:not(:disabled),.architecture-connection-dropdown>button:hover:not(:disabled){color:var(--accent,#4770d6);background:#f7f9fc;border-color:#98afd2}.architecture-library-triggers button[aria-expanded=true],.architecture-library-triggers button[aria-pressed=true],.architecture-connection-dropdown>button[aria-expanded=true],.architecture-connection-dropdown>button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);font-weight:600}.architecture-library-triggers button svg,.architecture-connection-dropdown>button svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:16px;height:16px}.architecture-connection-dropdown{display:inline-flex;position:relative}.architecture-connection-dropdown>button .architecture-dropdown-caret{margin-left:2px;font-size:10px;line-height:1;transition:transform .15s}.architecture-connection-dropdown>button[aria-expanded=true] .architecture-dropdown-caret{transform:rotate(180deg)}.architecture-connection-menu{background:var(--surface);border:1px solid var(--line);z-index:20;border-radius:8px;flex-direction:column;gap:4px;min-width:160px;padding:6px;display:flex;position:absolute;top:calc(100% + 7px);left:0;box-shadow:0 10px 30px #0002}.architecture-connection-menu button{color:var(--text);font:inherit;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.architecture-connection-menu button:hover{background:var(--accent-soft);color:var(--accent)}.architecture-connection-menu button.is-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.architecture-connection-menu button svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.architecture-library-popup{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:min(560px,100%);color:var(--text);border-radius:10px;padding:12px;position:absolute;top:calc(100% + 7px);left:0;box-shadow:0 10px 30px #0002}.architecture-library-search{align-items:center;gap:8px;margin-bottom:10px;display:flex}.architecture-library-search input{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;color:var(--text);font:inherit;border-radius:6px;padding:9px 11px;font-size:13px}.architecture-library-search>button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:3px 6px;font-size:22px}.architecture-library-popup .architecture-tech-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:230px;display:grid;overflow:auto}.architecture-library-popup .architecture-tech-grid button{grid-template-columns:26px 1fr;gap:5px;min-width:0;font-size:12px}.architecture-library-popup .architecture-tech-grid button>:last-child{display:none}.architecture-library-popup .architecture-tech-grid p,.architecture-library-popup .architecture-group-buttons p{color:var(--muted);grid-column:1/-1;font-size:13px;line-height:1.7}.architecture-library-popup .architecture-group-buttons{max-height:230px;margin:0;overflow:auto}.architecture-library-popup .architecture-group-buttons button{min-height:40px;font-size:12px}.arch-editable-kind{cursor:text}.arch-edge{stroke-linejoin:round}@media (max-width:540px){.architecture-library-popup .architecture-tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.architecture-custom-actions button{padding-inline:8px;font-size:11px}}.architecture-editor-layout .arch-name-editor input{box-sizing:border-box;border:1px solid var(--accent);width:100%;min-width:0;height:28px;min-height:0;box-shadow:none;background:var(--surface);color:var(--text);border-radius:3px;margin:0;padding:2px 4px;font-family:inherit;font-size:11px;line-height:20px;transform:none}.architecture-editor-layout .arch-name-editor[data-kind=node] input,.architecture-editor-layout .arch-name-editor[data-kind=nodeType] input,.architecture-editor-layout .arch-name-editor[data-kind=edge] input{text-align:center}.architecture-editor-layout .arch-name-editor input:focus{outline:1px solid var(--accent);outline-offset:0;box-shadow:none}.architecture-library-category{max-width:180px;margin:0 0 8px}.agreement-document-open{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.agreement-document-dialog{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:min(760px,100vw - 32px);max-height:85dvh;color:var(--text);text-align:left;border-radius:14px;padding:0;box-shadow:0 20px 70px #0003}.agreement-document-dialog[open]{flex-direction:column;display:flex}.agreement-document-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14251d88}.agreement-document-scroll.legal-document{background:var(--surface);border:0;border-radius:0;min-height:0;padding:24px;overflow:auto}.agreement-document-scroll>h2{margin-top:0}.agreement-document-actions{border-top:1px solid var(--line);flex-wrap:wrap;flex:none;justify-content:center;gap:12px;padding:16px;display:flex}.agreement-document-actions .button{margin:0}@media (max-width:600px){.agreement-document-scroll.legal-document{padding:18px}.agreement-document-dialog{max-height:90dvh}}.member-agreements .agreement-form{width:100%;max-width:520px;margin-inline:auto}.architecture-tool-hint{color:var(--muted);margin-left:auto;font-size:11px}.architecture-icon-heading{justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;display:flex}.architecture-icon-heading>button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px 8px;font-size:22px}.architecture-icon-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.architecture-icon-grid>button{border:1px solid var(--line);background:var(--surface);min-height:84px;color:var(--text);cursor:pointer;font:inherit;border-radius:8px;flex-direction:column;align-items:center;gap:10px;padding:12px 8px;font-size:12px;display:flex}.architecture-icon-grid>button:hover{background:var(--accent-soft);color:var(--accent)}.architecture-icon-grid svg{width:30px;height:30px}.architecture-icon-grid>button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.arch-object-hit{fill:#0000;stroke:#0000;stroke-width:1.5px;rx:10px;pointer-events:all;transition:stroke .15s,fill .15s}.arch-node-wrap:hover .arch-object-hit{stroke:#4770d659;stroke-dasharray:4 3}.arch-node-wrap.is-selected .arch-object-hit{stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:none;fill:#4770d60a}.arch-node-wrap:focus-visible .arch-object-hit{stroke:var(--focus);stroke-width:2px;stroke-dasharray:3 3}.arch-object-symbol{color:var(--text);pointer-events:none}.arch-node-wrap .arch-object-symbol .arch-tech-icon{color:inherit;stroke-width:1.4px}.arch-node-wrap:is(.is-selected,:focus-visible) .arch-object-symbol{color:var(--accent)}.architecture-icon-search{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:8px;margin-bottom:10px;padding:9px 12px}.architecture-icon-categories{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.architecture-icon-categories button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 10px;font-size:12px}.architecture-icon-categories button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.architecture-icon-notice,.architecture-icon-credits{color:var(--muted);font-size:11px}.architecture-icon-notice{margin:12px 0 0;line-height:1.6}.architecture-icon-credits{text-align:right;width:fit-content;margin:8px 16px 10px auto;padding:0 4px;display:block}.architecture-popup-desc{color:var(--muted);margin:-6px 0 12px;font-size:12px;line-height:1.5}.architecture-tech-icon-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-height:280px;padding-right:4px;display:grid;overflow-y:auto}.architecture-tech-icon-grid>button{border:1px solid var(--line);background:var(--surface);min-height:76px;color:var(--text);cursor:pointer;font:inherit;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:10px 6px;font-size:12px;transition:all .15s;display:flex}.architecture-tech-icon-grid>button:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.architecture-tech-icon-grid svg{width:28px;height:28px}.architecture-tech-icon-grid>button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (max-width:540px){.architecture-tech-icon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:961px) and (max-width:1800px){.architecture-inspector.architecture-inspector-sidebar{max-width:calc(100% - 24px);top:76px;left:auto;right:12px}}.editor-fullscreen-button{white-space:nowrap;justify-content:center;align-items:center;gap:6px;display:inline-flex}.diagram-editor-fullscreen:fullscreen{box-sizing:border-box;background:var(--surface);width:100%;height:100%;color:var(--text);padding:16px;overflow:auto;max-width:none!important;max-height:none!important}.architecture-editor-layout:fullscreen{flex-direction:column;gap:10px;display:flex}.architecture-editor-layout:fullscreen>.architecture-palette{flex-shrink:0;margin:0}.architecture-editor-layout:fullscreen>.architecture-workspace{box-sizing:border-box;flex:1;min-height:300px;display:flex}.architecture-editor-layout:fullscreen .architecture-workspace.has-sidebar{padding-right:316px}.architecture-editor-layout:fullscreen .architecture-canvas-panel{flex-direction:column;min-height:0;display:flex}.architecture-editor-layout:fullscreen .architecture-block{flex-direction:column;flex:1;min-height:0;display:flex}.architecture-editor-layout:fullscreen .architecture-scroll{flex:1;min-height:200px;height:auto!important;max-height:none!important}.architecture-editor-layout:fullscreen .architecture-canvas-toolbar,.architecture-editor-layout:fullscreen .architecture-canvas-status{flex-shrink:0}.architecture-editor-layout:fullscreen .architecture-inspector-sidebar{width:300px;max-height:100%;margin:0;position:absolute;top:0;left:auto;right:0}@media (max-width:680px){.diagram-editor-fullscreen:fullscreen{padding:8px}.architecture-editor-layout:fullscreen .architecture-workspace.has-sidebar{padding-right:0}.architecture-editor-layout:fullscreen .architecture-inspector-sidebar{z-index:30;width:min(300px,90%)}}.architecture-editor-layout:fullscreen>.architecture-palette{left:50%;top:calc(var(--architecture-toolbar-height,42px) + 28px);box-sizing:border-box;z-index:40;border-radius:12px;width:max-content;max-width:calc(100% - 32px);padding:10px 12px;position:absolute;bottom:auto;transform:translate(-50%);box-shadow:0 6px 24px #0002}.architecture-editor-layout:fullscreen .architecture-library-toolbar,.architecture-editor-layout:fullscreen .architecture-library-triggers{justify-content:center}.architecture-editor-layout:fullscreen .architecture-tool-hint{display:none}.architecture-editor-layout:fullscreen .architecture-library-popup{width:min(560px,100vw - 32px);max-height:calc(100dvh - 150px);top:calc(100% + 10px);bottom:auto;left:50%;overflow:auto;transform:translate(-50%)}.architecture-editor-layout:fullscreen .architecture-connection-menu{inset:calc(100% + 10px) 0 auto auto}@media (max-width:420px){.architecture-editor-layout:fullscreen>.architecture-palette{top:calc(var(--architecture-toolbar-height,42px) + 20px);padding:8px}.architecture-editor-layout:fullscreen .architecture-library-triggers{gap:4px}}.architecture-scroll[data-space-pan=true],.architecture-scroll[data-space-pan=true] *{-webkit-user-select:none;user-select:none;cursor:grab!important}.architecture-scroll.is-panning,.architecture-scroll.is-panning *{cursor:grabbing!important}.architecture-scroll:focus,.architecture-scroll:focus-visible{box-shadow:none;outline:none}.diagram-zoom-field{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);height:28px;color:var(--text);white-space:nowrap;border-radius:6px;align-items:center;gap:2px;padding:0 6px;font-size:12px;display:inline-flex}.architecture-canvas-toolbar .diagram-zoom-field input{box-sizing:content-box;width:4ch;min-width:0;height:24px;min-height:0;color:inherit;font:inherit;text-align:right;box-shadow:none;background:0 0;border:0;border-radius:2px;padding:0}.diagram-zoom-field input{appearance:textfield}.diagram-zoom-field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.diagram-zoom-field input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
