:root{--ink:#2b2924;--orange:#ed6a3b;--yellow:#f2be42;--blue:#78b9d0;--cream:#fff8e5;--green:#39735b;--paper:#fffdf8;--line:#dfd6c6;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,system-ui,-apple-system,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;margin:0}body:has(.modal-backdrop){overflow:hidden}button,input,textarea,select{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}.topbar{z-index:30;justify-content:space-between;align-items:center;height:78px;padding:0 max(5vw,24px);display:flex;position:absolute;inset:0 0 auto}.brand{letter-spacing:-.03em;align-items:center;gap:10px;font-weight:900;display:flex}.brand i{color:var(--orange);font-style:normal}.brand-mark{background:var(--orange);color:#fff;border-radius:50%;place-items:center;width:35px;height:35px;display:grid;transform:rotate(-8deg);box-shadow:0 5px #c94f26}nav{gap:30px;font-size:14px;font-weight:800;display:flex}nav a{border-bottom:3px solid #0000;padding:10px 0}nav a:hover{border-color:var(--orange)}.manage-btn,.outline-btn,.primary-btn,.save-btn{cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;font-weight:850;display:inline-flex}.manage-btn{background:var(--ink);color:#fff;padding:11px 17px}.menu-btn{cursor:pointer;background:0 0;border:0;display:none}.hero{border-bottom:1px solid #ecddc0;height:min(850px,88vh);min-height:700px;position:relative;overflow:hidden}.hero>img{object-fit:cover;width:100%;height:100%}.hero-veil{background:linear-gradient(90deg,#fff8e2f7,#fff8e2c2 29%,#0000 63%);position:absolute;inset:0}.hero-copy{z-index:2;max-width:540px;position:absolute;top:50%;left:max(7vw,28px);transform:translateY(-43%)}.eyebrow,.section-kicker{color:var(--orange);letter-spacing:.15em;align-items:center;gap:7px;font-size:12px;font-weight:900;display:inline-flex}.hero h1{letter-spacing:-.09em;margin:20px 0 18px;font:900 clamp(64px,7vw,110px)/.93 KaiTi,STKaiti,Microsoft YaHei,serif}.hero h1 em{color:var(--orange);font-style:normal;position:relative}.hero h1 em:after{content:"";z-index:-1;background:var(--yellow);border-radius:50%;height:8px;position:absolute;bottom:1px;left:5px;right:-4px;transform:rotate(-2deg)}.hero-copy p{color:#625b50;font-size:18px;line-height:1.9}.primary-btn{background:var(--orange);color:#fff;margin-top:15px;padding:15px 22px;transition:all .2s;box-shadow:0 7px #c94e25}.primary-btn:hover{transform:translateY(3px);box-shadow:0 4px #c94e25}.age-stamp{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--orange);background:#ffffffe6;border-radius:18px;align-items:center;gap:10px;padding:13px 18px;display:flex;position:absolute;bottom:28px;right:max(5vw,24px);transform:rotate(2deg);box-shadow:0 12px 30px #3e2e1a1e}.age-stamp span{color:#776f62;flex-direction:column;font-size:12px;display:flex}.age-stamp strong{color:var(--ink);margin-top:3px;font-size:16px}.stats{background:var(--ink);color:#fff;grid-template-columns:repeat(4,1fr);padding:18px 7vw;display:grid}.stats>div{border-right:1px dashed #ffffff35;justify-content:center;align-items:center;gap:14px;min-height:72px;display:flex}.stats>div:last-child{border:0}.stats svg{color:var(--yellow)}.stats strong{font:800 25px Georgia,serif}.stats small{color:#cfc7bb;margin-top:3px;font-size:12px;display:block}.content-section{max-width:1180px;margin:auto;padding:110px 28px}.section-heading{justify-content:space-between;align-items:flex-end;margin-bottom:45px;display:flex}.section-heading h2,.comic-copy h2,.modal-head h2{letter-spacing:-.06em;margin:10px 0 0;font:900 clamp(41px,5vw,68px)/1 KaiTi,STKaiti,Microsoft YaHei,serif}.section-heading p{color:#797267;margin:0;font-size:15px;line-height:1.8}.heading-side{align-items:center;gap:28px;display:flex}.outline-btn{border:2px solid var(--ink);background:0 0;padding:11px 16px}.outline-btn:hover{background:var(--ink);color:#fff}.story-list{border-top:2px solid var(--ink)}.story-card{border-bottom:1px solid var(--line);grid-template-columns:105px 58px minmax(0,130px) minmax(0,1fr) 130px;align-items:center;gap:19px;min-height:215px;transition:all .2s;display:grid;position:relative;overflow:hidden}.story-card:not(:has(.story-thumb)){grid-template-columns:105px 58px minmax(0,1fr) 130px}.story-card:not(:has(.story-thumb)) .story-copy{grid-column:3}.story-card:hover{background:#fff8e7;padding:0 14px}.story-date{flex-direction:column;gap:4px;display:flex}.story-date strong{letter-spacing:-.05em;font-size:25px}.story-date span{color:#8e8679;font-size:12px}.story-icon{color:#37798e;background:#e5f3f7;border-radius:50%;place-items:center;width:53px;height:53px;display:grid}.story-card:nth-child(2n) .story-icon{color:#8f6500;background:#fff0b8}.story-card:nth-child(3n) .story-icon{color:#b44d2e;background:#ffe0d6}.story-thumb{object-fit:cover;border:1px solid #d9cfbf;border-radius:14px;width:130px;height:100px}.story-copy>span{letter-spacing:.12em;color:var(--green);font-size:11px;font-weight:900}.story-copy h3{letter-spacing:-.04em;margin:7px 0 9px;font:800 27px/1.25 KaiTi,STKaiti,Microsoft YaHei,serif}.story-copy p{color:#6e675d;margin:0;font-size:15px;line-height:1.75}.story-aside{flex-direction:column;align-items:flex-end;gap:18px;display:flex}.story-aside small{color:#8f877a}.story-aside button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:50%;place-items:center;width:34px;height:34px;margin-left:7px;display:inline-grid}.story-aside button:hover{background:var(--ink);color:#fff}.story-aside button:last-child:hover{background:#b84d37}.story-number{color:#2b292409;pointer-events:none;font:900 74px Georgia,serif;position:absolute;bottom:-18px;right:3px}.state-panel{border:1px dashed var(--line);color:#756d61;text-align:center;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:260px;display:flex}.state-panel h3,.state-panel p{margin:0}.state-panel button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:10px 16px}.state-panel.error{color:#a64231}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.comic-section{background:var(--yellow);grid-template-columns:minmax(260px,.65fr) 1.7fr;gap:50px;padding:90px max(5vw,28px);display:grid;overflow:hidden}.comic-copy{align-self:center}.comic-copy .section-kicker{color:#76530f}.comic-copy h2{font-size:clamp(48px,6vw,80px)}.comic-copy p{color:#60491e;font-size:16px;line-height:1.9}.comic-date{color:#745719;align-items:center;gap:8px;margin-top:24px;font-size:13px;display:flex}.comic-frame{border:3px solid var(--ink);box-shadow:11px 12px 0 var(--ink);background:#fff;border-radius:18px;align-self:center;margin:0;padding:10px 10px 14px;transform:rotate(1deg)}.comic-frame img{border-radius:10px;width:100%;display:block}.comic-frame figcaption{text-align:center;grid-template-columns:repeat(4,1fr);gap:8px;padding:11px 7px 0;font-size:12px;font-weight:850;display:grid}.milestone-track{grid-template-columns:repeat(4,1fr);display:grid;position:relative}.milestone-track:before{content:"";border-top:2px dashed #d1c8b8;position:absolute;top:24px;left:10%;right:10%}.milestone-track>div{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex;position:relative}.milestone-track span{border:2px solid var(--ink);background:var(--cream);width:49px;height:49px;box-shadow:4px 4px 0 var(--yellow);border-radius:50%;place-items:center;margin-bottom:6px;font:800 18px Georgia;display:grid}.milestone-track strong{font:800 21px KaiTi,STKaiti,Microsoft YaHei,serif}.milestone-track small{color:#8a8276;letter-spacing:.08em}footer{background:var(--green);color:#fff;grid-template-columns:1fr auto 1fr;align-items:center;gap:25px;padding:46px max(5vw,28px);font-size:13px;display:grid}.footer-brand{align-items:center;gap:12px;display:flex}footer p{text-align:center;color:#e8f0e7}footer>span{text-align:right;color:#cad9cc;font-size:12px}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1d1b17a8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.editor-modal{background:var(--paper);border:2px solid var(--ink);width:min(720px,100%);max-height:calc(100vh - 40px);box-shadow:12px 14px 0 var(--ink);border-radius:26px;padding:28px;overflow:auto}.modal-head{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.modal-head h2{font-size:40px}.modal-head>button{cursor:pointer;background:0 0;border:0;padding:7px}.editor-modal form,.editor-modal label{flex-direction:column;gap:8px;display:flex}.editor-modal form{gap:18px}.editor-modal label{color:#625b50;font-size:13px;font-weight:800}.form-row{grid-template-columns:1fr 1fr;gap:15px;display:grid}.editor-modal input,.editor-modal textarea,.editor-modal select{width:100%;color:var(--ink);background:#fff;border:1px solid #d8cebd;border-radius:12px;outline:none;padding:12px 13px}.editor-modal input:focus,.editor-modal textarea:focus,.editor-modal select:focus{border-color:var(--orange);box-shadow:0 0 0 3px #ed6a3b20}.editor-modal textarea{resize:vertical;min-height:125px}.upload-field>input{opacity:0;pointer-events:none;position:absolute}.upload-box{cursor:pointer;color:#7b7264;background:#fffaf0;border:1.5px dashed #cfc3b0;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:135px;display:flex;overflow:hidden}.upload-box img{object-fit:cover;width:100%;height:180px}.upload-box small{font-weight:500}.form-error{color:#b24733;margin:0;font-size:13px}.form-actions{justify-content:flex-end;gap:10px;padding-top:3px;display:flex}.cancel-btn,.save-btn{cursor:pointer;padding:12px 18px}.cancel-btn{border:1px solid var(--line);background:#fff;border-radius:999px}.save-btn{background:var(--orange);color:#fff}.save-btn:disabled{opacity:.65;cursor:not-allowed}@media (width<=900px){.topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff9e6cf}nav{border:2px solid var(--ink);box-shadow:7px 7px 0 var(--ink);background:#fff;border-radius:18px;flex-direction:column;gap:10px;padding:22px;display:none;position:absolute;top:69px;left:20px;right:20px}nav.open{display:flex}.manage-btn{display:none}.menu-btn{display:block}.hero{height:760px;min-height:0}.hero>img{object-position:64% center}.hero-veil{background:linear-gradient(#fff9e6b5,#0000 42%,#fff9e6f5 72%)}.hero-copy{inset:auto 24px 35px;transform:none}.hero h1{margin:12px 0;font-size:clamp(58px,17vw,84px)}.hero-copy p{font-size:16px;line-height:1.65}.age-stamp{top:95px;bottom:auto;right:18px}.stats{grid-template-columns:repeat(2,1fr);padding:13px}.stats>div{border-bottom:1px dashed #ffffff35;padding:11px}.stats>div:nth-child(2){border-right:0}.stats>div:nth-child(n+3){border-bottom:0}.content-section{padding:78px 21px}.section-heading{flex-direction:column;align-items:flex-start;gap:19px}.heading-side{flex-direction:column;align-items:flex-start}:is(.story-card,.story-card:not(:has(.story-thumb))){grid-template-columns:72px 1fr;gap:13px;padding:27px 0}.story-card:hover{padding:27px 10px}.story-date{align-self:start}.story-icon{grid-area:2/1}.story-thumb{grid-area:1/2;width:100%;height:160px}.story-copy{grid-area:auto/2}.story-card:not(:has(.story-thumb)) .story-copy{grid-area:auto/2}.story-aside{flex-direction:row;grid-column:2;justify-content:space-between;align-items:center}.story-number{display:none}.comic-section{grid-template-columns:1fr;padding:72px 21px 82px}.comic-frame{box-shadow:7px 8px 0 var(--ink);transform:none}.comic-frame img{object-fit:cover;min-height:285px}.comic-frame figcaption{font-size:10px}.milestone-track{grid-template-columns:repeat(2,1fr);gap:42px 12px}.milestone-track:before{display:none}footer{text-align:center;grid-template-columns:1fr}.footer-brand{justify-content:center}footer>span{text-align:center}.form-row{grid-template-columns:1fr}.editor-modal{border-radius:20px;padding:22px 18px}.modal-head h2{font-size:34px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.spin{animation:none}}.admin-shell{background:#f4f1ea;grid-template-columns:250px 1fr;min-height:100vh;display:grid}.admin-sidebar{background:var(--ink);color:#fff;flex-direction:column;height:100vh;padding:32px 22px;display:flex;position:sticky;top:0}.admin-brand{border-bottom:1px solid #ffffff1c;align-items:center;gap:12px;padding:0 6px 34px;display:flex}.admin-brand>span{background:var(--orange);border-radius:13px;place-items:center;width:42px;height:42px;font:900 22px KaiTi,serif;display:grid;transform:rotate(-4deg)}.admin-brand strong{font-size:16px;line-height:1.2}.admin-brand small{color:#aca69c;letter-spacing:.08em;font-size:11px;font-weight:600}.admin-nav-title{color:#817c73;letter-spacing:.14em;margin:30px 10px 10px;font-size:11px;font-weight:800}.admin-nav-item{color:#d8d3ca;border-radius:11px;align-items:center;gap:11px;padding:12px 13px;font-size:14px;font-weight:750;display:flex}.admin-nav-item.active{color:#fff;background:#ffffff12}.admin-nav-item.active svg{color:var(--yellow)}.admin-back{color:#bdb7ad;border-top:1px solid #ffffff1c;align-items:center;gap:9px;margin-top:auto;padding:13px;font-size:13px;display:flex}.admin-main{min-width:0;padding:52px clamp(28px,5vw,76px) 80px}.admin-header{justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:38px;display:flex}.admin-header>div>span{letter-spacing:.17em;color:var(--orange);font-size:11px;font-weight:900}.admin-header h1{margin:10px 0 12px;font:900 52px/1 KaiTi,STKaiti,Microsoft YaHei,serif}.admin-header p{color:#777066;margin:0;font-size:14px}.admin-create,.admin-empty button{background:var(--orange);color:#fff;cursor:pointer;border:0;border-radius:12px;align-items:center;gap:8px;padding:13px 18px;font-weight:800;display:flex;box-shadow:0 4px #c64f28}.admin-panel{background:#fff;border:1px solid #e1dcd3;border-radius:18px;overflow:hidden;box-shadow:0 12px 35px #3e33270b}.admin-panel-head{border-bottom:1px solid #ebe6de;justify-content:space-between;align-items:center;padding:23px 26px;display:flex}.admin-panel-head h2{margin:0 0 5px;font-size:20px}.admin-panel-head p{color:#918a80;margin:0;font-size:12px}.admin-panel-head>button,.admin-entry-actions button{cursor:pointer;background:#fff;border:1px solid #e1dcd3;border-radius:10px;place-items:center;width:38px;height:38px;display:grid}.admin-list{padding:0 26px}.admin-entry{border-bottom:1px solid #eee9e2;grid-template-columns:88px minmax(240px,1fr) 170px auto;align-items:center;gap:20px;padding:20px 0;display:grid}.admin-entry:last-child{border-bottom:0}.admin-entry-image{color:#aaa39a;background:#eeeae2;border-radius:11px;place-items:center;width:88px;height:68px;display:grid;overflow:hidden}.admin-entry-image img{object-fit:cover;width:100%;height:100%}.admin-entry-copy{min-width:0}.admin-entry-copy span{color:var(--green);letter-spacing:.1em;font-size:10px;font-weight:900}.admin-entry-copy h3{white-space:nowrap;text-overflow:ellipsis;margin:5px 0 6px;font-size:16px;overflow:hidden}.admin-entry-copy p{color:#898278;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;overflow:hidden}.admin-entry-date{color:#777067;align-items:center;gap:7px;font-size:12px;display:flex}.admin-entry-actions{gap:8px;display:flex}.admin-entry-actions button:hover{background:var(--ink);color:#fff}.admin-entry-actions button.danger:hover{background:#b84d37;border-color:#b84d37}.admin-state,.admin-empty{color:#827b71;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:11px;min-height:310px;display:flex}.admin-state button{background:var(--ink);color:#fff;border:0;border-radius:999px;padding:9px 15px}.admin-empty h3,.admin-empty p{margin:0}.admin-empty h3{color:var(--ink)}.admin-empty button{margin-top:10px;padding:10px 14px;font-size:13px}@media (width<=800px){.admin-shell{display:block}.admin-sidebar{flex-direction:row;align-items:center;height:auto;padding:17px 20px;position:static}.admin-brand{border:0;padding:0}.admin-brand>span{width:36px;height:36px}.admin-nav-title,.admin-nav-item{display:none}.admin-back{border:0;margin:0 0 0 auto;padding:10px}.admin-main{padding:35px 18px 60px}.admin-header{flex-direction:column;align-items:flex-start}.admin-header h1{font-size:42px}.admin-entry{grid-template-columns:70px 1fr auto;gap:12px}.admin-entry-image{width:70px;height:60px}.admin-entry-date{display:none}.admin-entry-actions{flex-direction:column}.admin-list{padding:0 16px}}.admin-logout{color:#bdb7ad;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:11px 13px;display:flex}.admin-logout:hover,.admin-back:hover{color:#fff}.auth-check{color:#746d63;background:#f4f1ea;justify-content:center;align-items:center;gap:10px;min-height:100vh;display:flex}.login-page{background:var(--cream);place-items:center;min-height:100vh;padding:70px 20px;display:grid;position:relative}.login-page:before{content:"";pointer-events:none;background:radial-gradient(circle at 20% 20%,#f2be4230 0 100px,#0000 101px),radial-gradient(circle at 85% 75%,#78b9d025 0 150px,#0000 151px);position:absolute;inset:0}.login-back{color:#6f685e;align-items:center;gap:7px;font-size:13px;font-weight:750;display:flex;position:absolute;top:30px;left:max(24px,5vw)}.login-card{border:2px solid var(--ink);width:min(460px,100%);box-shadow:10px 11px 0 var(--ink);text-align:center;background:#fff;border-radius:24px;padding:42px;position:relative}.login-mark{background:var(--orange);color:#fff;border-radius:18px;place-items:center;width:58px;height:58px;margin:0 auto 20px;display:grid;transform:rotate(-4deg)}.login-card h1{margin:10px 0 12px;font:900 39px/1.1 KaiTi,STKaiti,Microsoft YaHei,serif}.login-card>p{color:#7e776c;margin:0 0 26px;font-size:13px;line-height:1.7}.login-card form,.login-card label{text-align:left;flex-direction:column;display:flex}.login-card form{gap:17px}.login-card label{color:#5e584f;gap:8px;font-size:13px;font-weight:800}.login-card label>div{color:#9a9287;border:1px solid #d9d1c4;border-radius:12px;align-items:center;gap:10px;height:48px;padding:0 13px;display:flex}.login-card input{background:0 0;border:0;outline:0;width:100%;height:100%}.login-card label>div:focus-within{border-color:var(--orange);box-shadow:0 0 0 3px #ed6a3b20}.login-card form>button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;height:49px;margin-top:2px;font-weight:850;display:flex}.login-card form>button:disabled{opacity:.65}.login-error{text-align:left;background:#fff0eb;border-radius:9px;padding:10px 12px;color:#b24733!important;margin:0!important;font-size:12px!important}.login-card input:-webkit-autofill{-webkit-box-shadow:inset 0 0 0 30px #fff}@media (width<=800px){.admin-logout{padding:10px;font-size:0}.login-card{box-shadow:7px 8px 0 var(--ink);padding:34px 22px}.login-card h1{font-size:34px}}.milestone-track{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));row-gap:38px}.milestone-state{border:1px dashed var(--line);color:#81796d;border-radius:18px;justify-content:center;align-items:center;gap:9px;min-height:160px;display:flex}.milestone-admin-panel{margin-top:28px}.admin-panel-tools{align-items:center;gap:9px;display:flex}.admin-panel-tools>button{cursor:pointer;background:#fff;border:1px solid #e1dcd3;border-radius:10px;justify-content:center;align-items:center;gap:6px;height:38px;display:flex}.admin-panel-tools>button:first-child{width:38px}.admin-panel-tools .admin-add-small{background:var(--ink);color:#fff;border-color:var(--ink);width:auto;padding:0 13px;font-size:12px;font-weight:800}.milestone-admin-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;padding:5px 26px 18px;display:grid}.milestone-admin-entry{border-bottom:1px solid #eee9e2;grid-template-columns:43px 1fr auto;align-items:center;gap:13px;padding:17px 0;display:grid}.milestone-admin-entry>span{background:var(--cream);border:1px solid var(--ink);width:37px;height:37px;box-shadow:3px 3px 0 var(--yellow);border-radius:50%;place-items:center;font-weight:850;display:grid}.milestone-admin-entry h3{margin:0 0 5px;font-size:15px}.milestone-admin-entry p{color:#898278;margin:0;font-size:12px}.milestone-editor{width:min(520px,100%)}.milestone-editor-note{color:#73591e;background:#fff7dc;border-radius:11px;align-items:center;gap:8px;padding:11px 13px;font-size:12px;display:flex}@media (width<=800px){.milestone-admin-list{grid-template-columns:1fr;padding:5px 16px 15px}.milestone-admin-entry{grid-template-columns:40px 1fr auto}.admin-panel-tools .admin-add-small{width:38px;padding:0;font-size:0}}
