/* The floating cake atelier. Scoped so the birthday presentation keeps its own layout. */
#cake-editor{position:absolute;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(1030px,calc(100% - 44px));z-index:30;color:#f2eaf8;font-family:"Microsoft YaHei","PingFang SC",sans-serif;isolation:isolate}
#cake-editor *,#cake-editor *:before,#cake-editor *:after{box-sizing:border-box}
#cake-editor .ce-shell{border:1px solid #cdb3f132;border-radius:18px;background:linear-gradient(145deg,#21182de8,#171421ed);box-shadow:0 18px 65px #0008,inset 0 1px #ffffff0c;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:10px 13px 9px}
#cake-editor button{color:inherit;font:inherit;border:0;cursor:pointer;background:none;min-height:36px;padding:7px 10px;line-height:1.4;letter-spacing:.15px;touch-action:manipulation;white-space:nowrap;transition:background .18s,border-color .18s,color .18s}
#cake-editor button:disabled{opacity:.5;cursor:wait}
#cake-editor button:focus-visible,#cake-editor input:focus-visible{outline:2px solid #dab8fd;outline-offset:3px}
#cake-editor svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linejoin:round;stroke-linecap:round;flex:none}
#cake-editor .ce-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
#cake-editor .ce-tabs{display:flex;align-items:center;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}
#cake-editor .ce-tabs::-webkit-scrollbar{display:none}
#cake-editor .ce-tab{font-size:12px;border-radius:8px;padding:8px 12px;color:#b8a9c8;min-height:37px}
#cake-editor .ce-tab:hover{color:#f5eaff;background:#b891e118}
#cake-editor .ce-tab[aria-selected="true"]{color:#fff4ff;background:linear-gradient(135deg,#ad78db,#8564b5);box-shadow:0 2px 14px #b789df23,inset 0 1px #edcbff44}
#cake-editor .ce-actions{display:flex;align-items:center;gap:5px;flex-shrink:0}
#cake-editor .ce-actions button{display:flex;align-items:center;justify-content:center;gap:6px;background:#ffffff0b;border:1px solid #d5b8ee20;border-radius:8px;font-size:11px;min-height:35px;padding:6px 10px;color:#d9cde4}
#cake-editor .ce-actions button:hover{background:#a786cb27;border-color:#dab8fa55;color:#fff}
#cake-editor .ce-actions button[aria-pressed="true"]{background:#b78ce62b;border-color:#dcb5fb70;color:#f8e3ff}
#cake-editor .ce-actions .ce-done{color:#23112e;background:#c5a0e6;border-color:#ddbcf5;box-shadow:0 2px 14px #cda5ee18}
#cake-editor .ce-actions .ce-done:hover{background:#d8b4f4;color:#211129}
#cake-editor .ce-options{display:flex;align-items:center;gap:22px;min-height:68px;overflow-x:auto;padding:14px 4px 10px;scrollbar-width:thin;scrollbar-color:#b592d641 transparent;outline:none}
#cake-editor .ce-group{display:flex;align-items:center;gap:10px;flex:none;min-height:32px}
#cake-editor .ce-group+.ce-group:before{content:"";height:22px;width:1px;background:#c7a6e322;margin-left:-8px;margin-right:3px;flex:none}
#cake-editor .ce-options[data-panel="layers"]{flex-wrap:wrap;gap:8px 22px;overflow:visible;padding-top:11px;padding-bottom:9px}
#cake-editor .ce-options[data-panel="layers"] .ce-theme-group{width:100%;min-width:0}
#cake-editor .ce-options[data-panel="layers"] .ce-theme-group:before{display:none}
#cake-editor .ce-theme-group .ce-choice-list{min-width:0;flex:1;overflow-x:auto;padding:2px 1px;scrollbar-width:thin;scrollbar-color:#c29be748 transparent}
#cake-editor .ce-theme-group .ce-choice{flex:none}
#cake-editor .ce-layer-target{flex:none;width:71px;height:31px;margin:0;padding:5px 5px 5px 9px;border:1px solid #c8a4e543;border-radius:8px;background:#30243e;color:#e6d4f3;font:inherit;font-size:10px;line-height:1.3;letter-spacing:0;color-scheme:dark;cursor:pointer;outline:none}
#cake-editor .ce-layer-target:focus-visible{outline:2px solid #dab8fd;outline-offset:3px}
#cake-editor .ce-layer-target option{background:#241b31;color:#f2e7f9}
#cake-editor .ce-label{font-size:10px;color:#ae91c9;white-space:nowrap;letter-spacing:1px;flex:none}
#cake-editor .ce-choice-list{display:flex;gap:5px;align-items:center;flex:none}
#cake-editor .ce-choice{font-size:10px;color:#bfb0cd;background:#ffffff03;border:1px solid #c1a3da24;border-radius:18px;min-height:31px;padding:5px 10px;display:inline-flex;align-items:center;gap:6px}
#cake-editor .ce-choice:hover{background:#ffffff0d;color:#f9edff;border-color:#c9a5eb72}
#cake-editor .ce-choice[aria-pressed="true"]{background:#a67bd525;border-color:#d4afe58f;color:#fbecff;box-shadow:inset 0 0 0 1px #c6a4d414}
#cake-editor .ce-swatch{width:11px;height:11px;flex:none;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff9,transparent 55%),var(--swatch);box-shadow:0 0 0 1px #fff3,inset 0 -2px 3px #0003}
#cake-editor .ce-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #cdb6e914;padding-top:6px;gap:12px;min-height:32px}
#cake-editor .ce-tip{font-size:9px;letter-spacing:.65px;color:#b7a4c784;margin-left:3px}
#cake-editor .ce-ambience{display:flex;align-items:center;gap:12px}
#cake-editor .ce-ambience button{display:inline-flex;gap:6px;align-items:center;font-size:9px;min-height:28px;padding:4px 2px;color:#a699b4}
#cake-editor .ce-ambience svg{width:11px;height:11px}
#cake-editor .ce-ambience button i{display:block;width:15px;height:8px;border-radius:6px;background:#74647f50;position:relative;margin-left:1px}
#cake-editor .ce-ambience button i:after{content:"";position:absolute;left:2px;top:2px;width:4px;height:4px;border-radius:50%;background:#b5a6c4;transition:left .2s}
#cake-editor .ce-ambience button[aria-pressed="true"]{color:#dcc1f2}
#cake-editor .ce-ambience button[aria-pressed="true"] i{background:#b08bd68f}
#cake-editor .ce-ambience button[aria-pressed="true"] i:after{left:9px;background:#f6e8ff}
#cake-editor .ce-text-form,#cake-editor .ce-number-form{display:flex;gap:7px;align-items:center;margin:0}
#cake-editor input{font:inherit;border:1px solid #bd9adc40;border-radius:8px;background:#0e0c1899;color:#f6e7fc;padding:7px 11px;margin:0;line-height:1.4;font-size:12px;letter-spacing:.1px;min-width:0;outline:none;color-scheme:dark;height:35px}
#cake-editor input::placeholder{color:#8e7c9c}
#cake-editor .ce-text-form input{width:270px}
#cake-editor .ce-number-form input{width:58px;text-align:center;font-family:Georgia,serif;font-size:16px}
#cake-editor .ce-text-apply{font-size:11px;background:#bd96dd24;border:1px solid #c3a1e05c;color:#ead4f9;border-radius:8px;min-height:35px;padding:6px 12px}
#cake-editor .ce-text-apply:hover{background:#bd96dd40}
#cake-editor .ce-resume{display:none;align-items:center;gap:8px;margin:auto;color:#d9c1e8;font-size:11px;padding:9px 16px;border:1px solid #cfaae94a;border-radius:24px;background:#21172ae6;backdrop-filter:blur(16px);box-shadow:0 4px 25px #0003}
body.editor-finished #cake-editor .ce-shell{display:none}
body.editor-finished #cake-editor .ce-resume{display:flex}
body.editor-finished #cake-editor{bottom:max(18px,env(safe-area-inset-bottom))}
#cake-editor .ce-status{position:absolute;bottom:calc(100% + 14px);left:50%;transform:translateX(-50%);font-size:11px;color:#f1e3fb;background:#241c2fec;border-radius:22px;padding:10px 17px;box-shadow:0 8px 24px #0004;max-width:90vw;text-align:center}
#cake-editor .ce-status:empty{display:none}
#cake-editor.ce-unavailable .ce-tabs,#cake-editor.ce-unavailable .ce-actions,#cake-editor.ce-unavailable .ce-bottom{display:none}
#cake-editor.ce-unavailable .ce-options{font-size:12px;line-height:1.7;min-height:50px;padding:12px;color:#d4c1df;white-space:normal}
#cake-editor.ce-unavailable .ce-shell{display:block!important}
#cake-editor.ce-unavailable .ce-resume{display:none!important}
#cake-editor .ce-export-dialog{width:min(570px,calc(100vw - 28px));max-height:calc(100svh - 28px);margin:auto;padding:27px 25px 20px;border:1px solid #d4b5f344;border-radius:21px;background:linear-gradient(150deg,#2a1d36,#14101d);color:#f1e5f7;box-shadow:0 24px 100px #000a;overflow:auto;animation:none!important;transform:none;opacity:1}
#cake-editor .ce-export-dialog::backdrop{background:#090710c9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
#cake-editor .ce-export-close{position:absolute;right:10px;top:9px;width:38px;height:38px;padding:0;min-height:38px;border-radius:50%;font-size:27px;font-weight:300;line-height:1;color:#c8b2d5}
#cake-editor .ce-export-close:hover{background:#e4c4f418;color:#fff}
#cake-editor .ce-export-eyebrow{margin:0 40px 10px 0;font-family:Georgia,serif;font-size:9px;letter-spacing:2.6px;color:#b99acb}
#cake-editor .ce-export-dialog h2{margin:0 25px 19px 0;font-family:"STKaiti","KaiTi",serif;font-size:27px;font-weight:400;letter-spacing:2px;color:#f5e8fc;line-height:1.5}
#cake-editor .ce-export-stage{display:flex;align-items:center;justify-content:center;width:100%;min-height:140px;overflow:hidden;border:1px solid #a68bb921;border-radius:13px;background:#08080d}
#cake-editor .ce-export-image{display:block;width:100%;height:auto;max-height:min(57svh,530px);object-fit:contain;-webkit-touch-callout:default;user-select:auto}
#cake-editor .ce-export-actions{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:18px}
#cake-editor .ce-save-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:43px;padding:10px 20px;background:#c9a3e9;color:#24132e;border:1px solid #e1c0f7;border-radius:24px;text-decoration:none;font-size:12px;line-height:1.5;letter-spacing:.4px;cursor:pointer}
#cake-editor .ce-save-link:hover{background:#d9b8f3}
#cake-editor .ce-save-link:focus-visible{outline:2px solid #eac8ff;outline-offset:4px}
#cake-editor .ce-export-back{font-size:11px;min-height:43px;padding:10px 15px;color:#cbb3da;border:1px solid #c6a5dd2b;border-radius:24px}
#cake-editor .ce-export-back:hover{background:#d2b3e512}
#cake-editor .ce-export-hint{margin:13px 0 0;text-align:center;font-size:10px;line-height:1.8;letter-spacing:.2px;color:#ae93be}
@media(max-width:900px){#cake-editor .ce-top{gap:7px}#cake-editor .ce-tab{font-size:11px;padding:8px 10px}#cake-editor .ce-actions button{padding:6px 8px;gap:4px}#cake-editor .ce-options{gap:17px}#cake-editor .ce-group{gap:8px}#cake-editor .ce-choice{padding:5px 9px}}
@media(max-width:650px){
  #cake-editor{width:calc(100% - 24px);bottom:max(12px,env(safe-area-inset-bottom))}
  #cake-editor .ce-shell{padding:9px 10px 8px;border-radius:15px;display:flex;flex-direction:column}
  #cake-editor .ce-top{display:contents}
  #cake-editor .ce-tabs{order:0;width:100%;gap:2px;justify-content:space-between;overflow-x:auto;min-height:39px}
  #cake-editor .ce-tab{font-size:11px;padding:8px 9px;min-height:36px;flex:1}
  #cake-editor .ce-options{order:1;min-height:69px;padding:12px 2px 10px;gap:17px}
  #cake-editor .ce-options[data-panel="layers"]{gap:6px 15px;padding-top:9px;padding-bottom:8px}
  #cake-editor .ce-options[data-panel="layers"] .ce-group:not(.ce-theme-group) .ce-choice{padding:5px 8px;min-height:31px}
  #cake-editor .ce-options[data-panel="layers"] .ce-theme-group .ce-choice{min-height:31px;padding:5px 9px}
  #cake-editor .ce-group{gap:7px}
  #cake-editor .ce-label{font-size:9px;letter-spacing:.3px}
  #cake-editor .ce-choice{min-height:34px;padding:6px 10px;font-size:10px}
  #cake-editor .ce-actions{order:2;padding-top:8px;border-top:1px solid #c9aae51a;gap:7px;width:100%;justify-content:space-between}
  #cake-editor .ce-actions button{flex:1;min-height:36px;padding:6px 7px;gap:6px;font-size:10px}
  #cake-editor .ce-actions svg{width:13px;height:13px}
  #cake-editor .ce-bottom{order:3;min-height:29px;padding-top:4px;border:0;gap:4px}
  #cake-editor .ce-tip{font-size:8px;letter-spacing:0}
  #cake-editor .ce-ambience{gap:8px}
  #cake-editor .ce-ambience button{font-size:8px;gap:4px;padding:3px 0;min-height:25px}
  #cake-editor .ce-ambience button svg{display:none}
  #cake-editor .ce-text-form input{width:185px;height:36px;font-size:12px}
  #cake-editor .ce-writing-group .ce-label{display:none}
  #cake-editor .ce-text-apply{font-size:10px;padding:6px 10px;min-height:36px}
  #cake-editor .ce-resume{font-size:10px;min-height:37px;padding:9px 16px}
  #cake-editor .ce-export-dialog{padding:24px 17px 18px;border-radius:18px}
  #cake-editor .ce-export-dialog h2{font-size:24px;margin-bottom:15px}
  #cake-editor .ce-export-image{max-height:55svh}
  #cake-editor .ce-save-link{font-size:11px;padding:10px 16px}
  body.editor-finished #cake-editor{bottom:max(12px,env(safe-area-inset-bottom))}
}
@media(max-width:360px){#cake-editor .ce-tab{padding:8px 7px;font-size:10px}#cake-editor .ce-tip{display:none}#cake-editor .ce-bottom{justify-content:flex-end}#cake-editor .ce-text-form input{width:160px}}
@media(prefers-reduced-motion:reduce){#cake-editor *,#cake-editor *:after{transition:none!important}}
