@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600&family=Noto+Serif+SC:wght@400;500;600&display=swap');

:root{
  --paper:#fffdfd;
  --pink:#f06f9b;
  --pink-strong:#ec5f91;
  --pink-pale:#f7c6d5;
  --line:#f6dce5;
  --ink:#715f66;
  --muted:#9a828b;
  --success:#b94f76;
  --error:#c94864;
}

html{min-width:320px;min-height:100%;background:var(--paper);scroll-behavior:smooth}
body{margin:0;min-width:320px;min-height:100vh;background:var(--paper);color:var(--ink);font-family:'Noto Sans SC','Microsoft YaHei',sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body::before{display:none!important}
button,input{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid rgb(240 111 155 / 24%);outline-offset:3px}

.site-shell{min-height:100svh;background:var(--paper)}
.site-header{height:128px;padding:0 64px 0 51px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f8dbe5;background:#fffdfd}
.brand,.bilibili-link{color:var(--pink);text-decoration:none;display:inline-flex;align-items:center}
.brand{gap:22px;font-family:'Noto Serif SC','Songti SC','STSong',serif;font-size:25px;font-weight:600;letter-spacing:.08em}
.brand img{width:64px;height:64px;display:block;object-fit:cover;border-radius:50%;box-shadow:0 0 0 1px rgb(240 111 155 / 34%)}
.bilibili-link{gap:10px;font-family:'Noto Serif SC','Songti SC','STSong',serif;font-size:20px;font-weight:500;letter-spacing:.03em;transition:color .18s ease,transform .18s ease}
.bilibili-link:hover{color:#d95784;transform:translateY(-1px)}
.bilibili-link i{font-size:28px}

.decrypt-layout{min-height:calc(100svh - 128px);display:grid;grid-template-columns:34.1% 65.9%}
.intro-panel{min-width:0;position:relative;overflow:hidden;border-right:1px solid #f5d8e2;background:#fffefe}
.petal-art{position:absolute;inset:0;pointer-events:none;user-select:none}
.petal{position:absolute;display:block;width:25px;height:auto;opacity:.78}
.petal-1{top:84px;left:30%;transform:rotate(-9deg)}
.petal-2{top:354px;left:79%;width:21px;transform:rotate(7deg)}
.petal-3{top:566px;left:31%;width:24px;transform:rotate(-22deg)}
.petal-4{top:694px;left:66%;width:23px;transform:rotate(8deg)}
.petal-5{top:813px;left:21%;width:24px;transform:rotate(-18deg)}
.intro-content{position:relative;z-index:1;margin:166px 40px 0 78px}
.intro-content h1{margin:0;color:#766269;font-family:'Noto Serif SC','Songti SC','STSong',serif;font-size:clamp(50px,4.25vw,66px);font-weight:500;line-height:1.16;letter-spacing:.045em;white-space:nowrap;display:inline-block;transform:scaleX(1.15);transform-origin:left center}
.intro-content h1 em{color:var(--pink);font-style:normal;margin-left:8px}
.local-note{margin:28px 0 0;color:#7f6971;font-family:'Noto Serif SC','Songti SC','STSong',serif;font-size:20px;font-weight:400;letter-spacing:.02em;line-height:1.7;white-space:nowrap;transform:scaleX(1.12);transform-origin:left center}
.local-note strong{color:var(--pink);font-weight:500}
.short-rule{display:block;width:44px;height:2px;margin:48px 0 43px;background:var(--pink)}
.privacy-copy{margin:0;color:#8d747e;font-family:'Noto Serif SC','Songti SC','STSong',serif;font-size:17px;line-height:2.5;letter-spacing:.035em}

.workspace-panel{min-width:0;padding:70px 75px 38px 68px;background:var(--paper)}
.drop-zone{height:340px;padding:0;border:1px dashed #f4b8ca;border-radius:20px;background:#fffefe;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#856d76;text-align:center;position:relative;overflow:hidden;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.drop-zone::before{display:none!important}
.drop-zone.dragover{border-color:var(--pink);background:#fff7fa;transform:scale(.995);box-shadow:none}
.drop-zone.has-files{border-style:solid;border-color:#f5c1d1;background:#fffafb}
.drop-symbol{width:82px;height:82px;position:relative;display:grid;place-items:center;color:var(--pink)}
.drop-symbol .ph-folder-open{font-size:78px;font-weight:200}
.drop-symbol .drop-arrow{position:absolute;left:31px;top:35px;font-size:28px}
.drop-symbol .ph-check-circle{font-size:76px}
.drop-text{margin:28px 0 0;color:#806a72;font-family:'Noto Serif SC','Songti SC','STSong',serif;font-size:26px;font-weight:400;letter-spacing:.025em}
.drop-hint{margin:11px 0 0;color:#b18f9c;font-size:14px;opacity:0;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease}
.drop-zone:hover .drop-hint,.drop-zone.dragover .drop-hint,.drop-zone.has-files .drop-hint{opacity:1;transform:translateY(0)}
.or-divider{height:85px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;color:var(--pink);font-family:'Noto Serif SC','Songti SC','STSong',serif;font-size:19px;font-weight:500}
.or-divider span{height:1px;background:#f3cad6}.or-divider b{font-weight:500}
.file-input{display:none!important}
.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin:0}
.btn-action{height:62px;padding:0 24px;border:1px solid #f2b9cb;border-radius:11px;background:#fffefe;color:#826b74;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:'Noto Serif SC','Songti SC','STSong',serif;font-size:20px;font-weight:400;transition:background .16s ease,border-color .16s ease,color .16s ease}
.btn-action i{color:var(--pink);font-size:23px}
.btn-action:hover{color:#d95784;border-color:#eb91af;background:#fff8fa;transform:none}
.password-block{margin-top:39px}
.password-block label{display:block;margin-bottom:12px;color:var(--pink);font-family:'Noto Serif SC','Songti SC','STSong',serif;font-size:19px;font-weight:500;letter-spacing:.02em}
.password-field{height:64px;border:1px solid #f2c2d0;border-radius:11px;background:#fffefe;display:flex;align-items:center;transition:border-color .16s ease,box-shadow .16s ease}
.password-field:focus-within{border-color:#ec8eac;box-shadow:0 0 0 4px rgb(240 111 155 / 8%)}
.password-field input{width:100%;height:100%;padding:0 22px;border:0;outline:0;background:transparent;color:#725e66;font-size:18px}
.password-field input::placeholder{color:#c5afb7}
.icon-button{width:62px;height:100%;flex:0 0 auto;border:0;background:transparent;color:var(--pink);cursor:pointer;display:grid;place-items:center}
.icon-button i{font-size:25px}
.decrypt-button{width:100%;height:74px;margin-top:38px;border:0;border-radius:11px;color:#fff;background:#f2709a;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:14px;font-family:'Noto Serif SC','Songti SC','STSong',serif;font-size:27px;font-weight:500;letter-spacing:.035em;box-shadow:0 8px 22px rgb(223 95 139 / 12%);transition:background .16s ease,transform .16s ease}
.decrypt-button i{font-size:27px}.decrypt-button:hover:not(:disabled){background:#e86190;transform:translateY(-1px)}.decrypt-button:disabled{cursor:not-allowed;opacity:1;box-shadow:none}
.decrypt-button.is-working i{animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.support-note{margin:31px 0 0;color:#8d747e;display:flex;align-items:center;justify-content:center;gap:12px;font-family:'Noto Serif SC','Songti SC','STSong',serif;font-size:16px;letter-spacing:.03em}.support-note i{color:var(--pink);font-size:24px}

.stats-bar{display:none;margin:28px 0 14px;padding:12px 18px;background:#fff8fa;border:1px solid #f4cfdb;border-radius:11px;text-align:center;font-size:13px;color:#9c7f89}.stats-bar.active{display:block}.stats-bar span{color:var(--pink-strong);font-weight:600}
.results{margin-top:20px}.result-item{background:#fffafa;border:1px solid #f2ccd8;border-radius:12px;padding:15px 18px;margin-bottom:12px;display:flex;align-items:center;gap:14px;animation:resultIn .25s ease-out;box-shadow:none}.result-icon{font-size:28px;color:var(--pink);flex-shrink:0}.result-info{flex:1;min-width:0}.result-name{font-size:14px;font-weight:500;color:#725e66;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-status{font-size:12px;margin-top:4px}.result-status.success{color:var(--success)}.result-status.error{color:var(--error)}.result-status.loading{color:var(--pink)}.progress-bar{width:100%;height:4px;background:#f6e0e7;border-radius:2px;margin-top:8px;overflow:hidden}.progress-fill{height:100%;background:var(--pink);border-radius:2px;transition:width .3s;width:0}
@keyframes resultIn{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}

.modal-overlay{display:none;position:fixed;inset:0;background:rgb(84 64 72 / 28%);backdrop-filter:blur(5px);z-index:100;justify-content:center;align-items:center}.modal-overlay.active{display:flex}.modal{background:#fffdfd;border:1px solid #f1c8d5;border-radius:18px;padding:28px;width:90%;max-width:400px;text-align:center;box-shadow:0 20px 60px rgb(111 77 91 / 18%)}.modal h3{font-family:'Noto Serif SC','Songti SC','STSong',serif;font-size:18px;margin-bottom:20px;color:var(--pink)}.modal input{width:100%;padding:12px 16px;border:1px solid #f2c2d0;border-radius:11px;background:#fff;color:#725e66;font-size:16px;outline:none}.modal input:focus{border-color:var(--pink)}.modal-btns{display:flex;gap:12px;margin-top:20px}.modal-btns button{flex:1;padding:10px;border:0;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer}.btn-confirm{background:var(--pink);color:#fff}.btn-cancel{background:#f8e9ee;color:#8f7680}

@media(max-width:1080px){.decrypt-layout{grid-template-columns:39% 61%}.site-header{padding-inline:36px}.intro-content{margin-left:42px}.intro-content h1{font-size:48px}.local-note{font-size:16px;white-space:normal}.privacy-copy{font-size:15px}.workspace-panel{padding-inline:44px}.btn-row{gap:20px}}
@media(max-width:760px){.site-header{height:82px;padding:0 20px}.brand{gap:12px;font-size:19px}.brand img{width:48px;height:48px}.bilibili-link{font-size:0;gap:0}.bilibili-link i{font-size:26px}.decrypt-layout{min-height:calc(100svh - 82px);display:block}.intro-panel{min-height:380px;border-right:0;border-bottom:1px solid #f5d8e2}.petal-1{top:34px;left:77%}.petal-2{top:184px;left:12%;width:19px}.petal-3{top:314px;left:82%;width:20px}.petal-4,.petal-5{display:none}.intro-content{margin:0;padding:68px 28px 48px}.intro-content h1{font-size:clamp(46px,14vw,58px);transform:none}.local-note{margin-top:18px;font-size:16px;transform:none}.short-rule{margin:30px 0 25px}.privacy-copy{font-size:14px;line-height:2.1}.workspace-panel{padding:34px 20px 36px}.drop-zone{height:230px;border-radius:16px}.drop-symbol{transform:scale(.78)}.drop-text{margin-top:18px;font-size:20px}.drop-hint{opacity:1}.or-divider{height:64px;gap:17px}.btn-row{gap:12px}.btn-action{height:54px;padding-inline:12px;gap:8px;font-size:16px}.password-block{margin-top:30px}.password-field{height:58px}.decrypt-button{height:62px;margin-top:26px;font-size:22px}.support-note{align-items:flex-start;font-size:13px;line-height:1.7;text-align:center}.stats-bar{margin-top:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
