@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,300&family=DM+Mono:wght@300;400;500&family=Cormorant+Garamond:wght@300;400;500&display=swap";:root{--color-bg-base:#141416;--color-bg-subtle:#1c1c1f;--color-bg-muted:#111113;--color-surface-primary:#1e1e22;--color-surface-secondary:#242428;--color-surface-overlay:#2c2c31;--color-surface-input:#18181b;--color-text-primary:#f2efe9;--color-text-secondary:#8a8884;--color-text-tertiary:#4a4845;--color-text-on-accent:#0e0d0b;--color-accent:#d4a843;--color-accent-hover:#e8bc5a;--color-accent-active:#b8912e;--color-accent-subtle:#d4a84314;--color-accent-glow:#d4a84326;--color-border-default:#ffffff0f;--color-border-strong:#ffffff1f;--color-border-accent:#d4a8434d;--color-border-subtle:#ffffff08;--color-hover-bg:#ffffff0a;--color-focus-ring:#d4a84366;--color-selected-bg:#d4a8431a;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 12px 40px #000000a6;--shadow-accent:0 0 20px #d4a8431f;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--font-body:"DM Sans", sans-serif;--font-mono:"DM Mono", monospace;--font-display:"Cormorant Garamond", serif;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--duration:.22s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}*{scrollbar-width:none}::-webkit-scrollbar{display:none}html,body{height:100%}body{font-family:var(--font-body);color:var(--color-text-primary);background-color:var(--color-bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.6}#root{justify-content:space-between;gap:1.5rem;height:100%;padding:2rem;display:flex}.sidebar{background-color:var(--color-surface-primary);border:1px solid var(--color-border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);flex-direction:column;flex:none;align-items:stretch;width:320px;display:flex;position:relative;overflow:hidden auto}.sidebar:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(90deg,#0000,#d4a84366,#0000);height:1px;position:absolute;top:0;left:10%;right:10%}.section-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-tertiary);align-items:center;gap:.5rem;margin-top:.25rem;margin-bottom:.5rem;padding:0 1.25rem;font-size:9px;font-weight:500;display:flex}.section-label:after{content:"";background:var(--color-border-default);flex:1;height:1px}.group-photo{background:linear-gradient(160deg, var(--color-surface-overlay) 0%, var(--color-surface-primary) 100%);border-bottom:1px solid var(--color-border-default);flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1.25rem 1.5rem;display:flex;position:relative}.photo-wrapper{cursor:pointer;width:88px;height:88px;position:relative}.photo-wrapper:before{content:"";background:conic-gradient(var(--color-accent) 0%, transparent 40%, var(--color-accent) 70%, transparent 100%);opacity:.5;transition:opacity var(--duration) var(--ease-out);border-radius:50%;position:absolute;inset:-3px}.photo-wrapper:hover:before{opacity:1}.photo{object-fit:cover;border:2px solid var(--color-surface-primary);background-color:var(--color-surface-overlay);z-index:1;border-radius:50%;width:88px;height:88px;display:block;position:relative}.photo-overlay{opacity:0;transition:opacity var(--duration) var(--ease-out);z-index:2;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:2px}.photo-wrapper:hover .photo-overlay{opacity:1}.photo-overlay svg{color:#fff;width:18px;height:18px}.photo-hint{color:var(--color-text-tertiary);letter-spacing:.02em;font-size:11px}.group{flex-direction:column;gap:.4rem;padding:.6rem 1.25rem;display:flex}.group label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-tertiary);transition:color var(--duration);font-size:9px;font-weight:500}.group:focus-within label{color:var(--color-accent)}.group input{background:var(--color-surface-input);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);width:100%;font-family:var(--font-body);color:var(--color-text-primary);letter-spacing:.01em;transition:border-color var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out), background-color var(--duration);padding:.5rem .65rem;font-size:13px;font-weight:400}.group input::placeholder{color:var(--color-text-tertiary);font-style:italic}.group input:hover{border-color:var(--color-border-strong);background:var(--color-surface-secondary)}.group input:focus{border-color:var(--color-border-accent);background:var(--color-surface-secondary);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.group-list{flex-direction:column;gap:.4rem;padding:.6rem 1.25rem;display:flex}.group-list-header{justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex}.group-list-header label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-tertiary);font-size:9px;font-weight:500}.btn-add{background:var(--color-accent-subtle);border:1px solid var(--color-border-accent);border-radius:var(--radius-full);cursor:pointer;transition:background var(--duration) var(--ease-out), border-color var(--duration);align-items:center;gap:4px;padding:3px 10px 3px 6px;display:inline-flex}.btn-add:hover{border-color:var(--color-accent);background:#d4a84326}.btn-add svg{width:12px;height:12px;color:var(--color-accent)}.btn-add span{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);font-size:9px;font-weight:500}.btn-remove{border:1px solid var(--color-border-default);cursor:pointer;width:20px;height:20px;transition:border-color var(--duration), background var(--duration);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.btn-remove:hover{background:#f871711a;border-color:#f87171}.btn-remove svg{width:10px;height:10px;color:var(--color-text-tertiary);transition:color var(--duration)}.btn-remove:hover svg{color:#f87171}.nodes{flex-direction:column;gap:.4rem;max-height:220px;padding:2px;display:flex;overflow:hidden auto}.node-row{align-items:center;gap:.4rem;display:flex}.node-index{font-family:var(--font-mono);color:var(--color-text-tertiary);text-align:right;flex-shrink:0;width:14px;padding-top:1px;font-size:9px;line-height:1}.node-row input{background:var(--color-surface-input);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);font-family:var(--font-body);color:var(--color-text-primary);letter-spacing:.01em;transition:border-color var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out);flex:1;padding:.45rem .6rem;font-size:12.5px}.node-row input::placeholder{color:var(--color-text-tertiary);font-size:11.5px;font-style:italic}.node-row input:hover{border-color:var(--color-border-strong)}.node-row input:focus{border-color:var(--color-border-accent);box-shadow:0 0 0 2px var(--color-focus-ring);outline:none}.edu-levels{flex-direction:column;gap:.3rem;display:flex}.edu-level{border:1px solid var(--color-border-default);border-radius:var(--radius-sm);transition:border-color var(--duration);overflow:hidden}.edu-level.edu-open{border-color:var(--color-border-accent)}.edu-header{background:var(--color-surface-input);cursor:pointer;width:100%;transition:background var(--duration);border:none;align-items:center;gap:.5rem;padding:.45rem .75rem;display:flex}.edu-header:hover{background:var(--color-surface-secondary)}.edu-open .edu-header{background:var(--color-accent-subtle)}.edu-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-secondary);text-align:left;flex:1;font-size:9.5px;font-weight:500}.edu-open .edu-label{color:var(--color-accent)}.edu-hint{color:var(--color-text-tertiary);text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:9px;font-style:italic;overflow:hidden}.edu-chevron{width:12px;height:12px;color:var(--color-text-tertiary);transition:transform var(--duration) var(--ease-out);flex-shrink:0}.edu-open .edu-chevron{color:var(--color-accent);transform:rotate(180deg)}.edu-body{background:var(--color-surface-primary);border-top:1px solid var(--color-border-default);flex-direction:column;gap:.3rem;padding:.6rem .75rem .75rem;display:flex}.edu-year-row{align-items:center;gap:.4rem;display:flex}.edu-year-row .group{flex:1;padding:.3rem 0}.edu-dash{color:var(--color-text-tertiary);flex-shrink:0;padding-top:1.2rem;font-size:13px}.edu-group{padding-left:0!important;padding-right:0!important}.group textarea{background:var(--color-surface-input);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);width:100%;font-family:var(--font-body);color:var(--color-text-primary);letter-spacing:.01em;resize:vertical;min-height:64px;transition:border-color var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out);padding:.5rem .65rem;font-size:13px;line-height:1.5}.group textarea::placeholder{color:var(--color-text-tertiary);font-style:italic}.group textarea:hover{border-color:var(--color-border-strong);background:var(--color-surface-secondary)}.group textarea:focus{border-color:var(--color-border-accent);background:var(--color-surface-secondary);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.customize{flex-direction:column;gap:0;padding-bottom:1.5rem;display:flex}.c-section{border-bottom:1px solid var(--color-border-subtle);padding:.9rem 1.25rem}.c-row{justify-content:space-between;align-items:center;display:flex}.c-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-tertiary);align-items:center;gap:.5rem;margin-bottom:.7rem;font-size:9px;font-weight:500;display:flex}.c-value{color:var(--color-accent);letter-spacing:.05em;margin-left:auto;font-size:9px}.layout-grid{grid-template-columns:repeat(5,1fr);gap:.4rem;display:grid}.layout-card{background:var(--color-surface-input);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--duration) var(--ease-out), background var(--duration) var(--ease-out);color:var(--color-text-tertiary);flex-direction:column;align-items:center;gap:.3rem;padding:.5rem .3rem .35rem;display:flex}.layout-card:hover{border-color:var(--color-border-strong);color:var(--color-text-secondary)}.layout-card.active{border-color:var(--color-border-accent);background:var(--color-accent-subtle);color:var(--color-accent)}.layout-preview{width:30px;height:40px}.layout-preview svg{width:100%;height:100%}.layout-num{font-family:var(--font-mono);letter-spacing:.1em;font-size:8px}.swatch-row{flex-wrap:wrap;gap:.45rem;display:flex}.swatch{background-color:var(--swatch-color,#888);cursor:pointer;border:2px solid #0000;border-radius:50%;outline:none;width:24px;height:24px;transition:transform .12s,border-color .12s;position:relative}.swatch:hover{transform:scale(1.15)}.swatch.active{border-color:var(--color-text-primary);box-shadow:0 0 0 2px var(--swatch-color)}.swatch-custom{background:var(--color-surface-overlay);justify-content:center;align-items:center;display:flex;overflow:hidden}.swatch-custom input[type=color]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.swatch-custom svg{width:11px;height:11px;color:var(--color-text-tertiary);pointer-events:none}.font-list{flex-direction:column;gap:.3rem;display:flex}.font-card{background:var(--color-surface-input);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--duration), background var(--duration);justify-content:space-between;align-items:center;padding:.45rem .75rem;display:flex}.font-card:hover{border-color:var(--color-border-strong)}.font-card.active{border-color:var(--color-border-accent);background:var(--color-accent-subtle)}.font-card.active .font-label{color:var(--color-accent)}.font-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-secondary);font-size:10px}.font-preview{color:var(--color-text-primary);font-size:18px;line-height:1}.c-slider{appearance:none;background:var(--color-border-strong);cursor:pointer;border-radius:99px;outline:none;width:100%;height:3px}.c-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--color-accent);border:2px solid var(--color-surface-primary);cursor:pointer;border-radius:50%;width:14px;height:14px;transition:transform .12s;box-shadow:0 0 6px #d4a84366}.c-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.toggle{background:var(--color-surface-overlay);border:1px solid var(--color-border-default);cursor:pointer;width:36px;height:20px;transition:background var(--duration), border-color var(--duration);border-radius:99px;flex-shrink:0;position:relative}.toggle.on{background:var(--color-accent);border-color:var(--color-accent)}.toggle-knob{background:var(--color-text-primary);width:14px;height:14px;transition:transform var(--duration) var(--ease-out);border-radius:50%;position:absolute;top:2px;left:2px}.toggle.on .toggle-knob{background:var(--color-text-on-accent);transform:translate(16px)}.document{background-color:var(--color-bg-subtle);box-shadow:var(--shadow-md);transform-origin:50%;-webkit-user-select:none;user-select:none;background-image:radial-gradient(circle,#d4a8431a 1.5px,#0000 1.5px),linear-gradient(#d4a84305 1px,#0000 1px),linear-gradient(90deg,#d4a84305 1px,#0000 1px);background-size:25px 25px,25px 25px,25px 25px;border-radius:.6rem;flex-grow:1;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.switch-buttons{background:var(--color-surface-overlay);border:1px solid var(--color-border-default);border-radius:var(--radius-full);z-index:10;align-items:center;gap:.2rem;padding:.2rem;display:flex;position:absolute;top:.75rem;left:1rem}.switch-buttons>span{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius-full);color:var(--color-text-tertiary);transition:all .2s var(--ease-out);cursor:pointer;padding:.3rem .85rem;font-size:.72rem;font-weight:500}.switch-buttons>span:hover{color:var(--color-text-secondary)}.switch-buttons>span.active{background:var(--color-accent);color:var(--color-text-on-accent)}.export-btn{background:var(--color-surface-overlay);border:1px solid var(--color-border-default);border-radius:var(--radius-full);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-tertiary);cursor:pointer;transition:all .2s var(--ease-out);z-index:10;align-items:center;gap:.4rem;padding:.3rem .85rem .3rem .65rem;font-size:.72rem;font-weight:500;display:flex;position:absolute;top:.75rem;right:1rem}.export-btn svg{width:13px;height:13px}.export-btn:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent);box-shadow:0 0 16px #d4a8434d}.export-btn:active{transform:scale(.97)}.CV{transform-origin:50%;background:#fff;flex-direction:column;width:794px;height:1123px;transition:font-family .2s;display:flex;position:absolute;overflow:hidden;box-shadow:0 2px 8px #0000002e,0 16px 48px #00000047}.CV *{word-break:break-word;overflow-wrap:break-word;min-width:0}.CV img{min-width:unset;flex-shrink:0}.vt-l0{flex-direction:column;flex:1;display:flex}.vt-l0-header{color:#fff;flex-shrink:0;align-items:center;gap:1.25rem;display:flex}.vt-l0-body{flex-direction:column;flex:1;gap:.85rem;display:flex;overflow:hidden}.vt-l1{flex:1;display:flex}.vt-l1-sidebar{color:#fff;flex-direction:column;flex-shrink:0;width:200px;display:flex;overflow:hidden}.vt-l1-main{flex-direction:column;flex:1;gap:.8rem;display:flex;overflow:hidden}.vt-l2{flex:1;display:flex}.vt-l2-sidebar{color:#fff;flex-direction:column;flex-shrink:0;align-items:center;width:230px;display:flex;overflow:hidden}.vt-l2-main{flex-direction:column;flex:1;gap:.8rem;display:flex;overflow:hidden}.vt-l3{flex-direction:column;flex:1;display:flex}.vt-l3-header{color:#fff;text-align:center;flex-direction:column;flex-shrink:0;align-items:center;display:flex}.vt-l3-body{flex:1;grid-template-columns:1fr 1fr;gap:1.5rem;display:grid;overflow:hidden}.vt-l3-col{flex-direction:column;gap:.85rem;display:flex}.vt-l3-divider{width:40px;height:2px;margin:.75rem auto 0}.vt-name{letter-spacing:.02em;color:#fff;margin-bottom:.35rem;font-size:2rem;font-weight:600;line-height:1.1}.vt-name-sm{color:#fff;margin-bottom:.25rem;font-size:1.1rem;font-weight:600;line-height:1.2}.vt-name-center{color:#fff;text-align:center;margin-bottom:.3rem;font-weight:600;line-height:1.15}.vt-meta{color:#ffffffa6;letter-spacing:.03em;flex-wrap:wrap;gap:.35rem 1rem;font-size:.72rem;display:flex}.vt-meta-center{justify-content:center;margin-top:.25rem}.vt-meta-sm{color:#fff9;word-break:break-all;margin-bottom:.1rem;font-size:.65rem}.vt-meta-sm-center{text-align:center}.vt-jobtitle{letter-spacing:.06em;opacity:.9;margin-bottom:.2rem;font-weight:500}.vt-jobtitle-sm{display:block}.vt-jobtitle-center{text-align:center;display:block}.vt-description{opacity:.85;margin-top:.45rem;line-height:1.55}.vt-photo{object-fit:cover;border:2px solid;border-radius:8px;flex-shrink:0;width:120px;height:120px}.vt-photo-sm{border-radius:50%;align-self:flex-start;width:90px;height:90px;margin-bottom:.75rem}.vt-photo-center-sm{border-radius:50%;width:90px;height:90px;margin-bottom:.75rem}.vt-photo-center{object-fit:cover;border:2px solid;border-radius:50%;width:80px;height:80px;margin-bottom:.75rem}.vt-section-title{letter-spacing:.22em;text-transform:uppercase;border-bottom:1.5px solid;margin-bottom:.55rem;padding-bottom:.3rem;font-size:.62em;font-weight:700}.vt-section-sm{font-size:.55em}.vt-block{margin-bottom:.85rem}.vt-list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.vt-list li{color:#333;padding-left:.9rem;font-size:.92em;line-height:1.5;position:relative}.vt-list li:before{content:"▸";opacity:.4;font-size:.65em;position:absolute;top:.15em;left:0}.vt-list-light li{color:#ffffffbf}.vt-list-light li:before{color:#ffffff80}.vt-pills{flex-wrap:wrap;gap:.3rem;display:flex}.vt-pill{letter-spacing:.04em;border:1px solid;border-radius:99px;padding:.2rem .55rem;font-size:.82em;font-weight:500}.vt-edu-grid{grid-template-columns:1fr 1fr;gap:.6rem 1rem;display:grid}.vt-edu-col{flex-direction:column;gap:.55rem;display:flex}.vt-edu-item{flex-direction:column;gap:.1rem;display:flex}.vt-edu-level{letter-spacing:.14em;text-transform:uppercase;font-size:.62em;font-weight:700}.vt-edu-school{font-size:.88em;font-weight:600;line-height:1.2}.vt-edu-year{letter-spacing:.03em;font-size:.74em}.vt-edu-achievements{flex-direction:column;gap:.15rem;margin:.2rem 0 0;padding:0;list-style:none;display:flex}.vt-edu-achievements li{padding-left:.75rem;font-size:.76em;line-height:1.4;position:relative}.vt-edu-achievements li:before{content:"·";color:#999;position:absolute;left:.2rem}
