:root{--ink:#202629;--muted:#7a8281;--line:#d8d8d2;--desk:#202827;--desk2:#26302f;--navy:#163f78;--paper:#f7f5ef;--paper-ink:#24313a;--cream:#eeeae0}
*{box-sizing:border-box}body{margin:0;background:var(--desk);color:#f2f1ec;font-family:'DM Sans',sans-serif}button{font:inherit;border:0;cursor:pointer}.shell{min-height:100vh;background:radial-gradient(circle at 75% -20%,#35433f 0,#202827 46%)}.topbar{height:74px;padding:0 34px;display:flex;align-items:center;border-bottom:1px solid #3d4644;gap:28px}.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px;letter-spacing:.01em}.brand-mark{display:grid;place-items:center;width:25px;height:25px;border:1px solid #d5d6ca;color:#d5d6ca;font-family:'Playfair Display',serif;font-size:17px}.brand-slash{color:#d1ad67;margin:0 2px}.topbar-meta{display:flex;align-items:center;gap:8px;color:#aab3ae;font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.05em}.live-dot{width:6px;height:6px;background:#a7c48c;border-radius:50%;box-shadow:0 0 0 4px #a7c48c18}.divider{width:1px;height:14px;background:#485250;margin:0 5px}.topbar-actions{margin-left:auto;display:flex;gap:10px}.ghost-btn,.primary-btn{height:36px;padding:0 15px;border-radius:3px;font-size:12px}.ghost-btn{background:transparent;color:#bac2bc;border:1px solid #46514e}.primary-btn{background:#d6b26b;color:#20251f;font-weight:600}.primary-btn span{font-size:16px;vertical-align:-1px}.workspace{display:grid;grid-template-columns:minmax(330px,38%) 1fr;min-height:calc(100vh - 74px)}.editor-panel{background:#25302f;border-right:1px solid #3a4542;display:flex;flex-direction:column;padding:38px 30px 22px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:25px}.eyebrow{margin:0 0 8px;color:#97a19b;font:500 10px 'DM Mono',monospace;letter-spacing:.13em}.panel-heading h1{margin:0;font:600 28px 'Playfair Display',serif;color:#eef0e9}.file-chip{font:10px 'DM Mono',monospace;color:#adb8b1;border:1px solid #47524f;padding:7px 8px}.format-bar{display:flex;justify-content:space-between;color:#d2d5ce;font:11px 'DM Mono',monospace;border-top:1px solid #3d4845;border-bottom:1px solid #3d4845;padding:10px 0}.format-hint{color:#7f8a85}.editor-panel textarea{flex:1;width:100%;resize:none;background:transparent;border:0;outline:0;color:#d4d8d1;padding:22px 4px 12px 0;font:13px/1.8 'DM Mono',monospace;tab-size:2}.editor-panel textarea::selection{background:#b79b5b55}.editor-footer{display:flex;justify-content:space-between;color:#81908a;font:10px 'DM Mono',monospace;border-top:1px solid #3d4845;padding-top:14px}.editor-footer kbd{border:1px solid #53605b;padding:2px 5px;margin-right:3px;color:#aeb7b0}.preview-panel{display:flex;flex-direction:column;min-width:0}.preview-toolbar{height:59px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid #394442;background:#222b2a}.preview-title{display:flex;gap:10px;align-items:center;font-size:12px;color:#bdc5be}.paper-icon{color:#d5b36c;font-size:16px}.zoom-control{display:flex;align-items:center;gap:10px;color:#9da7a1;font:11px 'DM Mono',monospace}.zoom-control button{background:transparent;color:#bcc5be;font-size:18px;width:25px;height:25px}.paper-viewport{overflow:auto;padding:42px 46px 64px;background:#d9d8d1;min-height:calc(100vh - 133px)}.resume{width:794px;min-height:1123px;margin:0 auto;background:var(--paper);color:var(--paper-ink);display:grid;grid-template-columns:265px 1fr;box-shadow:0 22px 50px #17211d45;transform-origin:top center;transition:transform .25s ease}.resume-sidebar{background:var(--navy);color:#f5f3ec;padding:52px 28px 45px;display:flex;flex-direction:column;gap:38px}.identity{margin-bottom:2px}.avatar{width:122px;height:122px;border-radius:50%;border:7px solid #f3f1e8;background:#b8c0c3;color:var(--navy);display:grid;place-items:center;font:700 37px 'DM Sans',sans-serif;letter-spacing:.04em;margin-bottom:25px;box-shadow:0 0 0 1px #ffffff44}.name{font:700 30px/1.05 'DM Sans',sans-serif;letter-spacing:.04em;margin:0 0 23px;color:#fff}.role{font:500 13px/1.65 'DM Sans',sans-serif;margin:0;color:#f3f2eb}.contact{font:11px/1.8 'DM Mono',monospace;color:#d5dfdb;margin-top:12px}.side-section h2,.main-section h2{font:700 18px 'Playfair Display',serif;letter-spacing:.02em;margin:0 0 20px;display:flex;align-items:center;gap:9px}.side-section h2:before,.main-section h2:before{content:'';display:block;width:4px;height:22px;background:#f7f4e9}.side-section ul{list-style:none;margin:0;padding:0}.side-section li{font:11px/1.65 'DM Sans',sans-serif;color:#d7e0df;margin:4px 0}.education-item{margin:0 0 12px}.education-item strong{display:block;font:600 12px/1.35 'Playfair Display',serif;color:#fff}.education-item span{display:block;font-size:10px;line-height:1.6;color:#d4dfdc}.resume-main{padding:53px 31px 55px}.main-section{margin-bottom:38px}.main-section h2{color:var(--navy);margin-bottom:16px}.main-section p{font:11px/1.75 'DM Sans',sans-serif;margin:0;color:#3a454b}.experience-item{margin:0 0 27px}.experience-head{display:flex;justify-content:space-between;gap:15px;align-items:baseline}.experience-head h3{margin:0;color:#2a3942;font:600 14px/1.35 'Playfair Display',serif}.experience-head time{font:10px 'DM Mono',monospace;color:#737c7d;white-space:nowrap}.experience-role{font:600 11px 'DM Sans',sans-serif;color:var(--navy);margin:4px 0 8px}.experience-item ul{padding:0 0 0 15px;margin:0}.experience-item li{font:10.5px/1.65 'DM Sans',sans-serif;color:#3e484b;padding-left:2px}.project-item{margin-bottom:24px}.project-item h3{font:600 13px 'Playfair Display',serif;color:#2a3942;margin:0 0 7px}.path-item{margin:0 0 19px}.path-item strong{font:600 11px 'Playfair Display',serif;color:var(--navy)}.path-item p{margin-top:4px}
@media(max-width:900px){.workspace{grid-template-columns:1fr}.editor-panel{min-height:470px;border-right:0;border-bottom:1px solid #3a4542}.preview-panel{min-height:800px}.paper-viewport{padding:28px 15px 50px}.resume{transform:scale(.78);margin-bottom:-247px}.topbar{padding:0 18px}.topbar-meta{display:none}}@media(max-width:600px){.topbar{height:62px}.topbar-actions .ghost-btn{display:none}.editor-panel{padding:27px 20px 18px}.preview-toolbar{padding:0 18px}.resume{transform:scale(.55);margin-bottom:-505px;margin-left:calc(50% - 219px)}.paper-viewport{min-height:680px}}
@media print{@page{size:A4;margin:0}body{background:#fff}.topbar,.editor-panel,.preview-toolbar{display:none}.workspace,.preview-panel,.paper-viewport{display:block;min-height:auto;background:#fff;padding:0}.resume{box-shadow:none;transform:none;margin:0}}
.avatar-upload{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #3d4845}.upload-label{display:block;color:#d2d5ce;font:10px 'DM Mono',monospace;letter-spacing:.08em}.upload-note{display:block;color:#7f8a85;font:10px 'DM Sans',sans-serif;margin-top:4px}.upload-btn{border:1px solid #59645f;color:#d8ddd5;padding:7px 10px;font-size:11px;cursor:pointer;white-space:nowrap}.upload-btn:hover{border-color:#d6b26b;color:#e3c480}.avatar-upload input{display:none}.avatar.has-image{background-size:cover;background-position:center;color:transparent}.help-backdrop{position:fixed;inset:0;z-index:20;background:#10171699;display:grid;place-items:center;padding:22px}.help-backdrop[hidden]{display:none}.help-modal{width:min(520px,100%);max-height:min(720px,90vh);overflow:auto;background:#293331;border:1px solid #53605b;box-shadow:0 24px 70px #101514aa;color:#e6e9e1}.help-modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:27px 29px 20px;border-bottom:1px solid #46524e}.help-modal h2{margin:0;font:600 27px 'Playfair Display',serif}.close-btn{background:transparent;color:#b9c2ba;font-size:26px;line-height:1;padding:0 3px}.help-content{padding:23px 29px 30px}.help-content>p,.guide-block p{font:12px/1.7 'DM Sans',sans-serif;color:#bdc8c0;margin:0 0 15px}.guide-block{padding:15px 0;border-top:1px solid #414d49}.guide-block h3{margin:0 0 10px;font:600 13px 'DM Sans',sans-serif;color:#e7dfca}.guide-block pre{margin:0;padding:13px;background:#202827;color:#cbd5cd;font:11px/1.8 'DM Mono',monospace;white-space:pre-wrap}
.main-section h2:before{background:var(--navy)}
