:root{--ink:#f8f1e7;--muted:#bcb9ca;--gold:#dec38f;--red:#a92d42;--night:#080b20;--panel:#11152be8;--line:#ffffff24;--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--night);color:var(--ink);font-family:"Songti SC","Noto Serif CJK SC","STSong",serif;overflow-x:hidden}.grain{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.12;background:repeating-linear-gradient(97deg,#fff0 0 3px,#fff 4px,#fff0 5px 11px);mix-blend-mode:soft-light}.topbar{position:absolute;z-index:10;left:0;right:0;top:0;height:98px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,5vw,78px);border-bottom:1px solid #ffffff1c}.brand{display:flex;align-items:center;gap:13px;color:var(--ink);text-decoration:none}.brand-moon{display:grid;place-items:center;width:47px;height:47px;border:1px solid #ffffff54;border-radius:50%;font-size:21px;background:#12152e88;box-shadow:inset 0 0 0 5px #ffffff08}.brand b,.brand small{display:block}.brand b{font-size:20px;letter-spacing:.16em}.brand small{margin-top:3px;color:#c9c5d4;font:10px/1.2 ui-sans-serif,system-ui;letter-spacing:.34em}.topbar nav{display:flex;align-items:center;gap:22px}.chapter-link{color:#b7b3c4;text-decoration:none;font:10px/1 ui-sans-serif,system-ui;letter-spacing:.18em;transition:.2s}.chapter-link:hover,.chapter-link.active{color:var(--gold)}.topbar button{border:0;color:var(--ink);font:14px/1 "Songti SC",serif;cursor:pointer}.text-button{background:transparent}.login-button{padding:11px 22px;border:1px solid #ffffff52!important;border-radius:999px;background:#ffffff0e}.hero{position:relative;min-height:100svh;overflow:hidden;display:flex;align-items:center}.scene,.hero-shade,.stars{position:absolute;inset:0}.scene{background-size:cover;background-position:center;transition:opacity 1.3s var(--ease),transform 12s linear}.scene-roof{background-image:url('/assets/qixi-rooftop.png');opacity:1}.scene-sea{background-image:url('/assets/qixi-seaside-v2.png');opacity:0}.hero:hover .scene{transform:scale(1.025)}body[data-scene=sea] .scene-roof{opacity:0}body[data-scene=sea] .scene-sea{opacity:1}.hero-shade{background:linear-gradient(90deg,#050719e8 0%,#080a1ab8 33%,#090b1738 62%,#0809152b 100%),linear-gradient(0deg,#07091b 0%,transparent 26%)}.stars{background:radial-gradient(circle at 14% 26%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 29% 18%,#fff9 0 1px,transparent 1.5px),radial-gradient(circle at 23% 64%,#fff8 0 1px,transparent 1.5px);background-size:160px 140px,210px 190px,270px 240px;opacity:.38}.hero-copy{position:relative;z-index:2;width:min(670px,82vw);margin-left:clamp(25px,9vw,148px);padding-top:70px}.kicker{display:flex;align-items:center;gap:8px;margin:0 0 25px;color:var(--gold);font-size:13px}.kicker span{display:grid;place-items:center;width:29px;height:29px;border:1px solid #d9bd7c88;border-radius:50%}.kicker i{width:47px;height:1px;background:#d9bd7c6b;margin-left:3px}.kicker em{font:10px/1 ui-sans-serif,system-ui;font-style:normal;letter-spacing:.25em}.hero h1{margin:0;font-size:clamp(50px,6vw,92px);font-weight:500;line-height:1.12;letter-spacing:.03em;text-shadow:0 8px 30px #000}.hero h1 mark{color:var(--ink);background:linear-gradient(transparent 72%,#9f203f99 0);padding:0 .08em}.intro{max-width:540px;margin:28px 0 0;color:#d2cede;font-size:16px;line-height:2;letter-spacing:.05em;text-shadow:0 2px 8px #000}.hero-actions{display:flex;align-items:center;gap:30px;margin-top:38px}.primary{display:inline-flex;align-items:center;gap:24px;padding:14px 21px;color:var(--ink);text-decoration:none;border:1px solid #ffffff56;background:#0c0d238f;backdrop-filter:blur(8px);transition:.2s}.primary:hover{background:#90223f;border-color:#b43c58}.primary span{font-family:ui-sans-serif}.scene-switch{display:flex;gap:6px}.scene-switch button{display:flex;align-items:center;gap:8px;padding:9px 10px;border:0;background:transparent;color:#aaa7b8;font:13px "Songti SC",serif;cursor:pointer}.scene-switch i{width:6px;height:6px;border-radius:50%;border:1px solid currentColor}.scene-switch button.active{color:var(--ink)}.scene-switch button.active i{background:var(--red);border-color:var(--red);box-shadow:0 0 0 4px #b02d4930}.vertical-note{position:absolute;z-index:2;right:3vw;bottom:11vh;writing-mode:vertical-rl;letter-spacing:.35em;line-height:2.1;color:#ffffffa3;font-size:12px}.scroll-cue{position:absolute;z-index:2;left:50%;bottom:0;display:flex;flex-direction:column;align-items:center;gap:14px;transform:translateX(-50%);font:8px ui-sans-serif;letter-spacing:.28em;color:#ffffff8f}.scroll-cue i{width:1px;height:48px;background:linear-gradient(#fff8,transparent)}.story{position:relative;min-height:980px;padding:130px clamp(25px,8vw,120px) 100px;background:radial-gradient(circle at 82% 13%,#2e28516e,transparent 31%),linear-gradient(135deg,#080b1d,#101126 55%,#090b20)}.story:before{content:"七夕";position:absolute;right:4vw;top:20px;color:#ffffff05;font-size:300px;line-height:1;letter-spacing:-.2em}.story-heading{position:relative;z-index:1}.story-heading p{color:var(--gold);font:9px ui-sans-serif;letter-spacing:.28em}.story-heading h2{margin:18px 0 0;font-size:clamp(43px,5vw,72px);font-weight:400;line-height:1.25}.floating-panel{position:absolute;z-index:2;border:1px solid var(--line);background:var(--panel);box-shadow:0 30px 80px #0005;backdrop-filter:blur(18px);transition:box-shadow .2s,border-color .2s}.floating-panel:focus{outline:2px solid #d7b870}.drag-handle{display:flex;align-items:center;justify-content:space-between;padding-bottom:15px;border-bottom:1px solid var(--line);cursor:grab;color:var(--gold);font-size:13px;letter-spacing:.16em;user-select:none}.drag-handle i{color:#918da3;font:9px ui-sans-serif;font-style:normal;letter-spacing:.15em}.letter-panel{width:min(690px,75vw);left:36%;top:190px;padding:32px 38px}.large-quote{margin:30px 0 25px;font-size:clamp(22px,2.4vw,36px);line-height:1.65}.letter-panel>p:not(.large-quote){color:var(--muted);line-height:2;letter-spacing:.04em}.letter-panel footer{display:flex;justify-content:space-between;margin-top:35px;padding-top:18px;border-top:1px solid var(--line);color:#9895a8;font-size:12px}.letter-panel footer b{color:var(--ink);letter-spacing:.15em}.music-panel{width:min(420px,82vw);left:13%;top:580px;padding:24px}.record-row{display:grid;grid-template-columns:78px 1fr;gap:18px;align-items:center;margin-top:20px}.record{position:relative;width:78px;height:78px;border:1px solid #d8c68a66;border-radius:50%;background:repeating-radial-gradient(circle,#1b1b2e 0 4px,#10101f 5px 7px);color:#fff;cursor:pointer;animation:spin 8s linear infinite;animation-play-state:paused}.record.playing{animation-play-state:running}.record:disabled{opacity:.55;cursor:not-allowed}.record:after{content:"";position:absolute;inset:27px;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px #b89f6833}.record span{position:relative;z-index:1;font-size:11px}.record-row small{color:var(--gold);font:8px ui-sans-serif;letter-spacing:.2em}.record-row h3{margin:7px 0 4px;font-size:16px;font-weight:500}.record-row p{margin:0;color:#9491a4;font:10px ui-sans-serif}.volume{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin-top:20px;color:#a9a6b6;font-size:11px}.volume input{width:100%;accent-color:#b33c56}.music-note{margin:12px 0 0;color:#858194;font-size:10px;line-height:1.6}.story-footer{position:absolute;left:8vw;right:8vw;bottom:52px;display:flex;align-items:center;gap:16px;color:#817e91;font:10px ui-sans-serif;letter-spacing:.2em}.story-footer span{color:var(--gold);font-size:18px}.story-footer i{height:1px;flex:0 0 50px;background:#6d687d}.story-footer p{margin:0}.story-footer a{margin-left:auto;padding:10px 14px;color:#c2af88;text-decoration:none;border:1px solid #ffffff25;font:10px "Songti SC";transition:.2s}.story-footer a:hover{color:#fff;border-color:#c2af88}.edit-bar{position:fixed;z-index:30;left:50%;bottom:22px;width:min(720px,calc(100% - 28px));transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:12px;background:#f3eee4;color:#161424;box-shadow:0 20px 60px #0008}.edit-bar[hidden]{display:none}.edit-bar p{display:flex;flex-direction:column;gap:2px;margin:0 auto 0 6px}.edit-bar p span{font-size:10px;color:#736f79}.edit-bar button{padding:10px 13px;border:1px solid #24202f33;background:transparent;color:#1a1724;font-family:"Songti SC";cursor:pointer}.edit-bar .save{background:#951f3c;color:white;border-color:#951f3c}body.editing .floating-panel{border-color:#d8bd7c99;box-shadow:0 0 0 3px #d8bd7c1a,0 30px 80px #0007}body.editing .drag-handle{cursor:move}dialog{width:min(470px,calc(100% - 30px));padding:0;border:1px solid #ffffff26;background:#101329;color:var(--ink);box-shadow:0 30px 120px #000}dialog::backdrop{background:#03040cbf;backdrop-filter:blur(8px)}.dialog-shell{position:relative;padding:40px}.close{position:absolute;right:15px;top:12px;border:0;background:transparent;color:#aaa6b8;font-size:28px;cursor:pointer}.dialog-kicker{color:var(--gold);font:9px ui-sans-serif;letter-spacing:.25em}.dialog-shell h2{margin:12px 0 8px;font-size:30px;font-weight:500}.dialog-lead{margin:0;color:#aaa7b7;font-size:13px;line-height:1.7}.auth-tabs{display:flex;gap:4px;margin:25px 0 16px;padding:4px;background:#080a1b}.auth-tabs button{flex:1;padding:10px;border:0;background:transparent;color:#8f8c9f;font-family:"Songti SC";cursor:pointer}.auth-tabs button.active{background:#252842;color:white}.dialog-shell label{display:grid;gap:7px;margin-top:13px;color:#aaa7b5;font-size:12px}.dialog-shell input{width:100%;padding:12px 13px;border:1px solid #ffffff20;background:#090b1b;color:#fff;font:14px ui-sans-serif;outline:none}.dialog-shell input:focus{border-color:#d5b976}.form-message{min-height:20px;margin:10px 0 0;color:#e58fa2;font-size:12px}.submit{width:100%;padding:13px;border:0;background:#a32a45;color:#fff;font-family:"Songti SC";cursor:pointer}.account-menu{position:fixed;z-index:31;right:4vw;top:80px;display:grid;min-width:180px;padding:10px;border:1px solid #ffffff25;background:#11142b;box-shadow:0 20px 60px #0008}.account-menu button{padding:11px;border:0;background:transparent;color:#d5d1dc;text-align:left;font-family:"Songti SC";cursor:pointer}.account-menu button:hover{background:#ffffff0c}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.topbar{height:76px;padding:0 17px}.brand-moon{width:39px;height:39px}.brand b{font-size:16px}.brand small,.chapter-chip{display:none}.topbar nav{gap:12px}.login-button{padding:9px 14px}.hero-copy{margin-left:24px;padding-top:60px;width:calc(100% - 48px)}.hero h1{font-size:47px}.intro{font-size:14px}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.vertical-note{display:none}.scene{background-position:62% center}.hero-shade{background:linear-gradient(90deg,#050719e8 0%,#080a1ab5 70%,#090b1744),linear-gradient(0deg,#07091b,transparent 30%)}.story{min-height:1050px;padding:90px 24px}.story:before{font-size:180px}.letter-panel{width:calc(100% - 48px);left:24px;top:235px;padding:25px}.music-panel{width:calc(100% - 48px);left:24px;top:660px}.story-footer{left:24px;right:24px;bottom:35px}.story-footer i{flex-basis:20px}.story-footer button{display:none}.edit-bar{flex-wrap:wrap}.edit-bar p{width:100%;margin-bottom:3px}.edit-bar button{flex:1}.dialog-shell{padding:34px 24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scene,.floating-panel{transition:none}.record{animation:none}}
.panel-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:15px;border-bottom:1px solid var(--line);color:var(--gold);font-size:13px;letter-spacing:.16em}.panel-heading i{color:#918da3;font:9px ui-sans-serif;font-style:normal;letter-spacing:.15em}.music-panel.dragging{cursor:grabbing;border-color:#e4ca8e;box-shadow:0 0 0 3px #d8bd7c24,0 30px 80px #0008}.music-panel.attention{animation:attention 1.6s var(--ease)}.cookie-toast{position:fixed;z-index:40;left:50%;bottom:24px;transform:translate(-50%,18px);padding:11px 17px;border:1px solid #d8bd7c59;background:#14172ee8;color:#eee6d8;box-shadow:0 18px 50px #0009;opacity:0;pointer-events:none;transition:.25s var(--ease);font-size:12px;letter-spacing:.08em}.cookie-toast.show{opacity:1;transform:translate(-50%,0)}@keyframes attention{0%,100%{box-shadow:0 30px 80px #0005}35%,70%{border-color:#e4ca8e;box-shadow:0 0 0 6px #d8bd7c20,0 30px 80px #0008}}
.assassin-chapter{background:#090d13;color:#f0eee8}.chapter-intro{position:relative;min-height:620px;padding:145px clamp(28px,9vw,150px);overflow:hidden;background:radial-gradient(circle at 82% 20%,#a7422224,transparent 28%),linear-gradient(135deg,#090d13,#111820)}.chapter-intro:before{content:"";position:absolute;left:50%;top:0;width:1px;height:100%;background:linear-gradient(transparent,#ffffff25,transparent);transform:rotate(24deg)}.chapter-intro>p:first-child{position:relative;z-index:1;color:#a9997d;font:10px ui-sans-serif;letter-spacing:.32em}.chapter-intro>span{position:absolute;right:7vw;top:35px;color:#ffffff07;font:430px/.9 Georgia,serif;letter-spacing:-.12em}.chapter-intro h2{position:relative;z-index:1;margin:30px 0 22px;font-size:clamp(48px,7vw,104px);font-weight:400;line-height:1.05;letter-spacing:.02em}.chapter-lead{position:relative;z-index:1;max-width:660px;color:#9fa5aa;font-size:16px;line-height:2;letter-spacing:.04em}.memory{position:relative;min-height:82svh;overflow:hidden;display:flex;align-items:center}.memory-image,.memory-shade{position:absolute;inset:0}.memory-image{background-size:cover;background-position:center;transition:transform 10s ease}.memory:hover .memory-image{transform:scale(1.025)}.memory-ezio .memory-image{background-image:url('/assets/ac-ezio.png')}.memory-unity .memory-image{background-image:url('/assets/ac-unity-arno-elise.png')}.memory-shade{background:linear-gradient(90deg,#06090fe8 0%,#090d14c2 28%,#090d1554 57%,#0002 100%),linear-gradient(0deg,#06090e8c,transparent 35%,#06090e2b)}.memory-copy{position:relative;z-index:2;width:min(650px,80vw);margin-left:clamp(28px,9vw,150px);padding:80px 0}.memory-copy>p:first-child{margin:0 0 23px;color:#bea77e;font:9px ui-sans-serif;letter-spacing:.3em}.memory-copy h3{margin:0;font-size:clamp(52px,7vw,98px);font-weight:400;line-height:.95;text-shadow:0 5px 30px #000}.memory-copy h3 small{font:14px/1.5 ui-sans-serif;letter-spacing:.13em;color:#b9b7b2}.memory-copy blockquote{max-width:620px;margin:33px 0 22px;padding-left:20px;border-left:1px solid #b89e6d;color:#e1d9ca;font-size:clamp(20px,2.2vw,31px);line-height:1.7}.memory-text{max-width:540px;color:#adb0af;font-size:14px;line-height:2}.memory-index{position:absolute;z-index:2;right:4vw;bottom:1vh;color:#ffffff10;font:190px/1 Georgia,serif}.chapter-end{display:flex;align-items:center;gap:16px;padding:48px 8vw;background:#080b10;color:#747a7e;font:10px ui-sans-serif;letter-spacing:.2em}.chapter-end span{color:#b6a079;font-size:18px}.chapter-end i{width:50px;height:1px;background:#565c61}.chapter-end p{margin:0}.chapter-end button{margin-left:auto;padding:10px 14px;color:#5d6367;background:transparent;border:1px solid #ffffff14;font:10px "Songti SC"}
@media(max-width:760px){.topbar nav .chapter-link.active{display:none}.topbar nav{gap:9px}.chapter-link{font-size:9px}.chapter-intro{min-height:520px;padding:100px 24px}.chapter-intro>span{font-size:250px;right:-10px;top:80px}.memory{min-height:760px;align-items:flex-end}.memory-image{background-position:63% center}.memory-unity .memory-image{background-position:58% center}.memory-shade{background:linear-gradient(0deg,#05080df2 0%,#070a10b8 42%,#070a1038 76%),linear-gradient(90deg,#070a106e,transparent)}.memory-copy{width:calc(100% - 48px);margin:0 24px;padding:280px 0 65px}.memory-copy h3{font-size:50px}.memory-copy h3 small{font-size:11px}.memory-copy blockquote{font-size:20px}.memory-index{font-size:110px}.chapter-end{padding:35px 24px}.chapter-end button{display:none}.story-footer a{display:none}}
.chapter-end a{margin-left:auto;padding:10px 14px;color:#b6a079;text-decoration:none;border:1px solid #ffffff20;font:10px "Songti SC";transition:.2s}.chapter-end a:hover{color:#fff;border-color:#b6a079}.roco-chapter{background:#07151a}.roco-intro{background:radial-gradient(circle at 82% 18%,#70e6b233,transparent 26%),radial-gradient(circle at 60% 80%,#4ca7c21c,transparent 35%),linear-gradient(135deg,#07151a,#0d2528)}.roco-intro>p:first-child{color:#9be1c5}.roco-intro h2{color:#f3fff8}.roco-intro .chapter-lead{color:#a9c6bd}.memory-roco-day .memory-image{background-image:url('/assets/roco-dimo-miaomiao.png')}.memory-roco-night .memory-image{background-image:url('/assets/roco-shiny-xiaoye-wolf.png')}.memory-roco-day .memory-shade{background:linear-gradient(90deg,#061318e8 0%,#092027bb 28%,#0b222359 58%,transparent 82%),linear-gradient(0deg,#07141977,transparent 35%)}.memory-roco-night .memory-shade{background:linear-gradient(90deg,#080a25e8 0%,#0d1030bf 30%,#15133d52 60%,transparent 84%),linear-gradient(0deg,#07092280,transparent 36%)}.memory-roco-day .memory-copy>p:first-child{color:#9ee4c1}.memory-roco-night .memory-copy>p:first-child{color:#b9a8ff}.memory-roco-day .memory-copy blockquote{border-color:#75d6aa}.memory-roco-night .memory-copy blockquote{border-color:#9e86ec}.roco-end{background:#061115}.roco-end span{color:#80d8b4}.roco-end i{background:#426b62}
@media(max-width:760px){.topbar nav .chapter-link:not(:last-of-type){display:none}.memory-roco-day .memory-image{background-position:60% center}.memory-roco-night .memory-image{background-position:62% center}.memory-roco-day .memory-shade,.memory-roco-night .memory-shade{background:linear-gradient(0deg,#050b12f2 0%,#07151dbd 43%,#07131a35 76%),linear-gradient(90deg,#07111766,transparent)}.chapter-end a{display:none}}
.scene-sea{background-image:url('/assets/qixi-seaside-v3.png')}
.memory-roco-night .memory-image{background-image:url('/assets/roco-shiny-xiaoye-wolf-v2.png')}
@media(max-width:760px){
html,body{max-width:100%;overflow-x:hidden}
.scene{background-position:68% center}
.memory{min-height:820px;background:#070b13;align-items:flex-end}
.memory-image{inset:0 0 auto;height:370px;background-position:68% center}
.memory-ezio .memory-image{background-position:70% center}
.memory-unity .memory-image{background-position:62% center}
.memory-roco-day .memory-image{background-position:66% center}
.memory-roco-night .memory-image{background-position:72% center}
.memory-shade,.memory-roco-day .memory-shade,.memory-roco-night .memory-shade{background:linear-gradient(0deg,#060911 0%,#070b13f5 49%,#070b1382 68%,#070b1314 100%)}
.memory-copy{width:calc(100% - 48px);margin:0 24px;padding:330px 0 50px}
.memory-copy h3{font-size:clamp(40px,12vw,48px);line-height:1.02}
.memory-copy blockquote{margin:25px 0 17px;font-size:18px;line-height:1.65}
.memory-text{font-size:13px;line-height:1.85}
.music-panel{max-width:calc(100% - 48px)}
.story{min-height:1250px}
}
@media(max-width:420px){
.hero h1{font-size:clamp(42px,12vw,47px)}
.chapter-intro h2{font-size:46px}
.memory-roco-night .memory-copy h3{font-size:40px}
}
@media(max-width:760px){
.scene{background-position:center center}
.scene-roof{background-image:url('/assets/qixi-rooftop-mobile-v1.jpg')}
.scene-sea{background-image:url('/assets/qixi-seaside-mobile-v1.jpg')}
}
.scene-roof,.scene-sea{background-image:none}
body[data-scene=roof] .scene-roof{background-image:url('/assets/qixi-rooftop-web-v1.jpg')}
body[data-scene=sea] .scene-sea{background-image:url('/assets/qixi-seaside-web-v4.jpg')}
.memory .memory-image{background-image:none}
.memory.media-ready.memory-ezio .memory-image{background-image:url('/assets/ac-ezio-web-v1.jpg')}
.memory.media-ready.memory-unity .memory-image{background-image:url('/assets/ac-unity-arno-elise-web-v1.jpg')}
.memory.media-ready.memory-roco-day .memory-image{background-image:url('/assets/roco-dimo-miaomiao-web-v1.jpg')}
.memory.media-ready.memory-roco-night .memory-image{background-image:url('/assets/roco-shiny-xiaoye-wolf-web-v3.jpg')}
@media(max-width:760px){
body[data-scene=roof] .scene-roof{background-image:url('/assets/qixi-rooftop-mobile-v1.jpg')}
body[data-scene=sea] .scene-sea{background-image:url('/assets/qixi-seaside-mobile-v1.jpg')}
}
