:root{--taskbar-height:52px;--bg:#2b1d48;--panel:#fdf8ff;--panel2:#f5e8fb;--line:#d6b2ea;--title1:#c89fe6;--title2:#9a6bc9;--accent:#a96dca;--text:#6f538b;--shadow:#2b1946b6}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{font-family:"Trebuchet MS","Microsoft YaHei UI",sans-serif;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}button{cursor:pointer}
.desktop{position:relative;height:100%;background:#281940;isolation:isolate}.wallpaper,.wallpaper-shade{position:absolute;inset:0}.wallpaper{background:center/cover no-repeat}.wallpaper-shade{background:linear-gradient(180deg,#27194422,#1b123344 65%,#25154588)}
.desktop-brand{position:absolute;top:16px;left:24px;display:flex;gap:12px;align-items:center;z-index:10;color:#fff}.brand-pet{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(#f8d8ff,#ddaae7);color:#a75bc3;border:2px solid #fff4ff;font-size:26px;box-shadow:0 4px 10px #00000030}.brand-name{font-size:20px;font-weight:800;letter-spacing:2px}.brand-tagline{font-size:12px;opacity:.95}
.desktop-icons{position:absolute;top:88px;left:16px;display:flex;flex-direction:column;gap:12px;z-index:6}.desktop-icon{width:72px;display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:none;color:#fff;text-shadow:0 2px 4px #231537;padding:0}.icon-bubble{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:28px;background:linear-gradient(#f5d8ff,#cb95e2);border:2px solid #fff1ff;color:#8d55a9;box-shadow:4px 4px #00000025}.desktop-icon span:last-child{font-size:12px;line-height:1.2}
#window-layer{position:absolute;inset:0;z-index:12;pointer-events:none}.os-window{pointer-events:auto;position:absolute;background:var(--panel);border:3px solid #d9b5ea;box-shadow:0 0 0 2px #644595,7px 8px 0 #28173f7d;display:flex;flex-direction:column;resize:both;overflow:hidden;min-width:280px;min-height:180px}.os-window.front{box-shadow:0 0 0 2px #644595,10px 10px 0 #28173f9d}.os-window.minimized{display:none}.os-window.maximized{left:0!important;top:0!important;width:100%!important;height:calc(100% - var(--taskbar-height))!important;resize:none}.window-titlebar{height:37px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;background:linear-gradient(180deg,var(--title1),var(--title2));color:#fff;user-select:none}.window-title{font-size:14px;font-weight:700;letter-spacing:.5px}.window-controls{display:flex;gap:5px}.window-controls button{width:24px;height:22px;border:1px solid #f3dbff;background:#f7efff;color:#8e62b2;font-weight:700}.window-content{flex:1;overflow:auto;background:#fffdfd}.window-footer{display:flex;justify-content:space-between;padding:4px 10px;background:#f3e2fb;border-top:1px solid #e3ccef;font-size:11px;color:#9d80b2}
.window-menu{display:flex;gap:18px;padding:8px 13px;border-bottom:1px solid #ecd9f4;background:#fff8fe;font-size:13px}.panel-section{padding:16px}.muted{color:#9c85af}.tiny{font-size:12px}
.home-grid{display:grid;grid-template-columns:245px 1fr;gap:14px;padding:14px 16px}.home-image{position:relative;display:flex;align-items:center;justify-content:center;min-height:280px;background:linear-gradient(180deg,#f6edff,#f1dbfb);border:1px solid #ebd6f3;padding:10px}.home-image.deluxe img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 10px 18px #b285d466)}.image-tag{position:absolute;left:10px;bottom:10px;background:#8157a5;color:#fff;padding:5px 9px;font-size:11px;border-radius:4px}.intro{padding:4px 0}.pixel-heading{font-size:38px;line-height:1;color:#b156cd;margin:6px 0 12px;font-weight:900}.headline{display:block;color:#7c4a9a;font-size:18px;margin-bottom:10px}.intro p{line-height:1.75;margin:0 0 14px}.quick-links{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pixel-button{border:1px solid #d4a7eb;background:linear-gradient(#fff7fc,#f4d6ee);box-shadow:2px 2px #d6b5e2;color:#89509f;padding:9px 10px;min-height:38px;font-size:13px;font-weight:700}.pixel-button small{display:block;font-weight:500;opacity:.88}.pixel-button:hover{background:#f8d0f7;transform:translateY(-1px)}.pixel-button.blue{background:linear-gradient(#faf7ff,#d9e7ff);color:#5872bc;border-color:#adcaf6}.pixel-button.peach{background:linear-gradient(#fff7f0,#ffe2cb);color:#bf7092;border-color:#f1c9ad}.pixel-button.purple{background:linear-gradient(#fdf7ff,#ead4ff);color:#875ab6;border-color:#d4b2f2}.pixel-button.selected{outline:2px solid #7a54a5}
.home-quote{margin:0 16px 16px;padding:12px 16px;background:#ffe8fa;color:#9a60ab;border:1px dashed #d8a0db;line-height:1.65}.vampire-points{display:flex;flex-wrap:wrap;gap:10px}.chip{background:#f3e4ff;border:1px solid #e4c7ef;padding:5px 9px;color:#8b68ae;font-size:12px}
.app-topbar{display:flex;flex-wrap:wrap;gap:9px;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #ead8ef;background:#fff6fc}.app-topbar h2{margin:0;font-size:18px;color:#9a6aab}.searchbox,.textinput{border:2px solid #ddc0ec;background:#fff;color:#745488;padding:9px 10px;min-width:0;border-radius:2px}.searchbox{max-width:260px;width:52%}
.app-list{display:flex;flex-direction:column;gap:9px}.list-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #e9d6ee;background:#fff;cursor:pointer;text-align:left;color:#74558b;width:100%}.list-item:hover{background:#fff0fe;border-color:#ca92db}.list-icon{font-size:24px}.list-main{flex:1;min-width:0}.list-item strong{display:block;margin-bottom:3px}.list-item small{color:#ab92b5}
.notice{background:#fff2d9;border:1px solid #f2ca91;padding:10px 12px;color:#946d46;line-height:1.6;font-size:12px}.notice.purple{background:#f6eaff;border-color:#dcc2f0;color:#8766a4}.reader{padding:24px clamp(15px,6%,70px);max-width:800px;margin:auto;line-height:2}.reader h1,.reader h2{color:#81539f}
.cover-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:14px}.cover-card{border:2px solid #e3caec;background:#fff;padding:6px;text-align:left;cursor:pointer;color:#705384;box-shadow:2px 2px #eddaef}.cover-card:hover{transform:translateY(-3px);border-color:#be83d9}.cover-art{height:145px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;text-align:center;color:#fff;padding:12px;background:linear-gradient(140deg,var(--cover1,#b884d2),var(--cover2,#ffc2de));text-shadow:1px 2px #653b7655;position:relative;overflow:hidden}.cover-art:before{content:'✦';position:absolute;top:7px;right:12px;color:#fff6;font-size:32px}.cover-symbol{font-size:37px;z-index:1}.cover-name{font-size:13px;font-weight:900;z-index:1}.cover-card b{display:block;font-size:12px;margin:9px 2px 2px}.cover-card small{font-size:11px;color:#a18cad;margin:0 2px}.detail-split{display:grid;grid-template-columns:150px 1fr;gap:18px}.big-cover{height:215px}.info-list{line-height:2}
.tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-top:14px}.tool-card{background:#fff;border:1px solid #e7d3f0;padding:14px;box-shadow:2px 2px #efdef8}.tool-card h3{margin:5px 0 8px;color:#8f58b0}.tool-card p{margin:0 0 14px;line-height:1.65;font-size:13px}.tool-kind,.tool-action{display:inline-block;padding:4px 8px;border:1px solid #e4c8f3;background:#f9f0ff;color:#8f6aaf;font-size:11px}.tool-action{background:#fff4eb;border-color:#f2d1bc;color:#bb7990}
.chat-row{display:flex;gap:9px;align-items:flex-start;margin-bottom:14px}.chat-avatar{width:44px;height:44px;object-fit:cover;border:2px solid #d7b1e1;background:#f7e7ff}.chat-meta{font-size:12px;color:#9376a1;margin-bottom:5px}.bubble{max-width:90%;border:1px solid #e9cdea;background:#fff3ff;padding:10px 13px;border-radius:13px 13px 13px 3px;line-height:1.6}.chat-form{display:flex;flex-direction:column;gap:9px;margin-top:18px;border-top:1px dashed #dfc2e4;padding-top:14px}.chat-form textarea{min-height:83px;resize:vertical}
.wallpaper-choice{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.wallpaper-choice .pixel-button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:120px}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid #f0e4f3;gap:12px}
.music-content{display:grid;grid-template-columns:87px 1fr;gap:12px;padding:14px}.music-cover{width:87px;height:87px;background:linear-gradient(140deg,#a57dcc,#eeabc5);display:grid;place-items:center;font-size:32px;color:#fff;border:2px solid #dbc2e7}.music-row{display:flex;gap:9px;align-items:center;margin-top:13px}.music-row button{border:1px solid #dfc3ed;background:#f8e9ff;color:#a16bc0;padding:4px 11px}.music-row input{width:100%}
.todo-panel{padding-bottom:14px}.todo-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.summary-card{background:#fff7fe;border:1px solid #e4caef;padding:10px 12px;text-align:center}.summary-card strong{display:block;color:#8b58b0;font-size:20px}.summary-card small{font-size:12px;color:#a088b4}.progress-line{height:10px;background:#f0e1f7;border:1px solid #e0c7ef;margin-top:14px;overflow:hidden}.progress-line span{display:block;height:100%;background:linear-gradient(90deg,#d58ceb,#a56ad2)}.todo-items{display:flex;flex-direction:column;gap:10px}.todo-card{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;background:#fff;border:1px solid #e6d4ef}.todo-card.done{opacity:.72;background:#fcf6ff}.todo-main{display:flex;gap:10px;flex:1;align-items:flex-start}.todo-main input{margin-top:4px;accent-color:#a76ccc}.todo-copy{flex:1}.todo-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.todo-head strong{color:#7c5797}.todo-meta{font-size:12px;color:#a089b4;margin-top:4px}.todo-note{font-size:12px;line-height:1.55;margin-top:7px;color:#826799}.todo-priority{padding:2px 8px;border-radius:999px;font-size:11px;border:1px solid}.p-高{background:#ffe8ef;color:#c0577f;border-color:#f3b0c4}.p-中{background:#f4ecff;color:#865cb2;border-color:#d7c0ef}.p-低{background:#eaf6ff;color:#5579ba;border-color:#c9ddfb}.todo-remove{border:none;background:transparent;color:#aa78bd;font-size:20px;line-height:1}.todo-form{margin-top:14px;display:flex;flex-direction:column;gap:10px}.todo-form-row{display:grid;grid-template-columns:1fr 100px;gap:10px}
.mascot{position:absolute;bottom:64px;right:16px;width:180px;z-index:25;cursor:pointer;text-align:center;user-select:none;filter:drop-shadow(0 10px 16px #24143b80)}.mascot img{width:100%;display:block;image-rendering:pixelated}.mascot:hover{transform:translateY(-4px)}.mascot-speech{position:absolute;bottom:86%;right:78px;width:230px;padding:12px;background:#fff4ff;border:2px solid #d8b0ec;box-shadow:4px 4px #3525529b;color:#9158ac;font-size:12px;line-height:1.55;border-radius:8px}.mascot-hint{color:#fff;text-shadow:0 2px 4px #39204f;font-size:10px}
.taskbar{height:var(--taskbar-height);display:flex;gap:8px;align-items:center;padding:6px 8px;position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,#956dc0,#c29add 80%,#e4c7f3);border-top:3px solid #efceff;z-index:100;box-shadow:0 -2px 12px #20133588}.start-button{height:36px;background:linear-gradient(#bd92ea,#9566c7);border:2px solid #f7dcff;box-shadow:2px 2px #674a9e;color:white;font-size:15px;font-weight:900;padding:0 14px}.start-flower{color:#ffe2f5;font-size:19px}.running-apps{display:flex;gap:6px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.running-app{max-width:180px;min-width:88px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#664784;background:#f9effd;border:2px solid #b38bdb;box-shadow:1px 1px #553b8b;min-height:34px;padding:5px 10px;font-size:12px}.running-app.active{background:#e2c5f4;box-shadow:inset 2px 2px 1px #9670b8}.system-tray{display:flex;align-items:center;gap:6px;color:#fff}.tray-button{border:none;background:transparent;color:#fff;font-size:20px;padding:3px}.clock{min-width:63px;font-family:monospace;font-size:12px;text-align:right;white-space:pre-line;line-height:1.2}
.start-menu{position:absolute;bottom:52px;left:8px;width:295px;max-height:min(560px,calc(100dvh - 80px));overflow:auto;background:#f9edff;border:3px solid #d2ade9;box-shadow:0 0 0 2px #63469a,6px 5px #2e1d50b0;z-index:101}.hidden{display:none!important}.start-menu-header{display:flex;gap:11px;align-items:center;padding:12px;background:linear-gradient(90deg,#ae7acb,#dfb0e8);color:#fff}.start-menu-header img{width:55px;height:55px;object-fit:cover;border:2px solid #fff4ff;background:#fff}.start-menu-header small{display:block;margin-top:5px}.start-menu-items{padding:7px}.start-menu-items button{display:flex;gap:12px;align-items:center;padding:9px 11px;color:#76568f;border:0;background:transparent;text-align:left;width:100%}.start-menu-items button:hover{background:#ead5fa}.start-menu-footer{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#e7d0ee;font-size:11px}.start-menu-footer button{background:#fff6ff;border:1px solid #c69bd8;color:#855fa4;padding:6px 8px}
.toast{position:absolute;left:50%;bottom:70px;transform:translateX(-50%);z-index:200;background:#fff4ff;border:2px solid #c58edc;color:#8e58a4;padding:12px 20px;box-shadow:4px 4px #3421499e;font-size:13px;display:none;max-width:92vw;text-align:center}.toast.show{display:block}.empty{padding:22px;text-align:center;color:#a288b6}.reduce-motion *{transition:none!important;animation:none!important}
@media(max-width:960px){.home-grid{grid-template-columns:1fr 1fr}.mascot{width:142px;right:8px}.mascot-speech{width:190px;right:60px}}
@media(max-width:680px){:root{--taskbar-height:58px}.desktop-brand{top:10px;left:10px}.desktop-icons{top:78px;left:6px;right:6px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.desktop-icon{width:auto}.icon-bubble{width:44px;height:44px;font-size:24px}.os-window,.os-window.maximized{position:absolute!important;left:0!important;top:0!important;width:100%!important;height:calc(100% - var(--taskbar-height))!important;min-width:0;resize:none;border-width:2px}.home-grid{grid-template-columns:1fr;gap:10px}.pixel-heading{font-size:28px}.quick-links{grid-template-columns:1fr}.searchbox{width:100%;max-width:none}.detail-split{grid-template-columns:100px 1fr}.tool-grid{grid-template-columns:1fr 1fr}.todo-summary{grid-template-columns:1fr 1fr 1fr}.mascot{width:110px;bottom:60px;right:2px}.mascot-speech{width:160px;font-size:11px;right:38px}.mascot-hint{display:none}.running-app{min-width:42px;width:48px;padding:5px;text-align:center;font-size:15px}.running-name{display:none}.start-button{font-size:12px;padding:0 8px}.clock{font-size:10px;min-width:50px}}

/* V0.3: full-body standing pixel vampire companion */
.mascot{width:154px;right:20px;bottom:calc(var(--taskbar-height) + 12px);transform-origin:bottom center;filter:drop-shadow(0 9px 8px #170e308a)}
.mascot img{display:block;width:100%;height:auto;object-fit:contain;image-rendering:pixelated;animation:mascotIdle 3.5s ease-in-out infinite;transform-origin:bottom center}
.mascot:hover{transform:translateY(-4px)}
.mascot-speech{right:100%;bottom:68%;width:215px;max-width:min(215px,55vw)}
.mascot-hint{display:block;margin-top:1px;font-size:10px}
.mascot.mascot-bounce img{animation:mascotBounce .55s ease-out}
@keyframes mascotIdle{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}
@keyframes mascotBounce{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-16px) scale(1.04)}100%{transform:translateY(0) scale(1)}}
.reduce-motion .mascot img{animation:none}
@media(max-width:960px){.mascot{width:134px;right:10px}.mascot-speech{right:93%;width:185px}}
@media(max-width:680px){.mascot{width:99px;right:4px;bottom:calc(var(--taskbar-height) + 8px)}.mascot-speech{width:155px;right:94%;bottom:70%}.mascot-hint{display:none}}


/* V0.4 - four visually distinct wallpapers with live previews */
.wallpaper-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:13px 0 19px}
.wallpaper-choice .wallpaper-card{display:flex;flex-direction:column;gap:7px;text-align:left;background:#fff9fe;border:2px solid #ddc5ed;box-shadow:3px 3px #ead9f1;color:#815c9a;padding:8px;min-height:0;transition:transform .12s ease}
.wallpaper-choice .wallpaper-card:hover{transform:translateY(-2px);border-color:#b481d5}
.wallpaper-choice .wallpaper-card.selected{border-color:#9d61cb;box-shadow:0 0 0 2px #efc4fa,3px 3px #d1afdf}
.wallpaper-card .wallpaper-preview{display:block;width:100%;aspect-ratio:16/9;background-size:cover;background-position:center;image-rendering:pixelated;border:1px solid #c5acd5}
.wallpaper-card .wallpaper-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;font-weight:700}
.wallpaper-card .wallpaper-tip{font-size:11px;color:#a18bb0;font-weight:400;line-height:1.35}
.wallpaper-card .wallpaper-selected{font-size:11px;color:#a362c0}
@media(max-width:440px){.wallpaper-choice{grid-template-columns:1fr}}

/* v0.5 · 网站内容模块和真实交互 */
:root { --taskbar-height:52px; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {outline:3px solid #d48cf8;outline-offset:2px}
button, a, input, textarea { -webkit-tap-highlight-color:transparent; }
.window-titlebar {cursor:grab;touch-action:none}
.window-titlebar:active {cursor:grabbing}
.window-controls {cursor:default}
.window-controls button:hover {background:#ebd2f8;border-color:#b380d1}
.os-window {border-radius:1px;}
.window-content {overscroll-behavior:contain;scrollbar-color:#c69be0 #fff5ff;}
.window-content a {color:#9761b9;}
.window-content a:hover {color:#bd67c5;}
.window-menu {gap:3px}
.window-menu button {font-size:12px;border:0;background:transparent;color:#8655a3;padding:3px 9px}
.window-menu button:hover {background:#f1dffa}
.home-grid {grid-template-columns:215px 1fr;gap:16px;}
.home-image.deluxe {min-height:300px;overflow:hidden}
.home-image.deluxe img {width:100%;height:100%;object-fit:contain}
.home-grid .intro {min-width:0}
.home-grid .intro p {font-size:14px;line-height:1.8}
.home-grid .pixel-heading {font-size:34px}
.home-grid .vampire-points {margin-top:12px;gap:6px}
.home-grid .chip {font-size:11px}
.home-quote {font-size:13px}
.pixel-button {text-decoration:none;display:inline-block;line-height:1.35;text-align:center}
.pixel-button.subtle {background:#fff;color:#916bb3;box-shadow:none;border:1px solid #dfc9e7;font-weight:500}
.pixel-button:disabled {opacity:.55;cursor:not-allowed}
.action-row {display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:9px}
.action-row .pixel-button {font-size:12px;min-height:32px;padding:7px 10px}
.action-link {display:inline-block;text-decoration:none;cursor:pointer}
.action-link:focus-visible {outline:2px solid #8a5cbc;outline-offset:2px}
.section-heading {display:flex;justify-content:space-between;align-items:center;color:#9c60ac;font-weight:bold;font-size:15px;margin-bottom:14px;border-bottom:1px dashed #edd0ec;padding-bottom:10px}
.section-heading span {font-size:11px;color:#aa86b7}
.posts-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:13px}
.post-card {border:1px solid #e2caed;background:linear-gradient(#fffefa,#fff8ff);text-align:left;color:#745588;padding:17px;min-height:160px;display:flex;flex-direction:column;gap:9px;box-shadow:3px 3px #f0e4f5}
.post-card:hover {border-color:#c48bdc;transform:translateY(-2px)}
.post-card h3,.project-card h3 {color:#8652a8;font-size:17px;line-height:1.45;margin:0}
.post-meta {color:#aa80b7;font-size:11px;line-height:1.5}
.post-card p,.project-card p {font-size:13px;line-height:1.7;margin:0;color:#826c91;flex:1}
.read-more {font-size:12px;font-weight:700;color:#a65cc7;margin-top:4px}
.reader {color:#655177;font-size:15px;line-height:1.95;max-width:740px}
.reader p {margin:0 0 18px;white-space:normal;overflow-wrap:anywhere}
.filter-row {display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.filter-btn {padding:7px 10px;color:#8d63ac;background:#fff;border:1px solid #ddc7ea;font-size:12px;border-radius:3px}
.filter-btn:hover,.filter-btn.selected {background:#eaccf6;color:#77489c;border-color:#b989d2}
.filter-btn.danger {color:#b26180;border-color:#eec0ca}
.filter-btn.danger:hover {background:#ffe4ed}
.cover-grid {grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:15px}
.cover-card {min-width:0;overflow:hidden}
.cover-card b {overflow-wrap:anywhere;line-height:1.4;min-height:2.8em}
.cover-card .cover-art {height:160px}
.cover-card .cover-name {font-size:12px;overflow-wrap:anywhere}
.anime-cover-image {width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.detail-split {grid-template-columns:200px 1fr;align-items:start}
.big-cover {height:285px}
.info-list p {line-height:1.85;margin:12px 0;overflow-wrap:anywhere}
.info-list .chip {margin-right:5px}
.project-grid {display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.project-card {display:grid;grid-template-columns:75px 1fr;gap:13px;background:#fff;border:1px solid #e7d3ef;padding:13px;box-shadow:3px 3px #f3e6f6}
.project-art {height:75px;display:grid;place-items:center;font-size:31px;background:linear-gradient(135deg,#cfb7ee,#f6d1e6);border:2px solid #e7ceec;color:#9366b4}
.project-info {display:flex;flex-direction:column;gap:8px;min-width:0}
.project-info .action-link {align-self:start;margin-top:4px;font-size:12px;min-height:0;padding:7px 11px}
.project-info .chip {align-self:start;margin-top:4px}
.tool-card {min-width:0;display:flex;flex-direction:column;gap:5px}
.tool-card .tool-kind {align-self:start}
.tool-card .tool-action {align-self:start;margin-top:auto}
.tool-card p {flex:1;min-height:40px;overflow-wrap:anywhere}
.tool-card h3 {font-size:15px}
.guest-messages {margin-top:18px;max-height:255px;overflow:auto;border-bottom:1px solid #eedbf3;padding-bottom:8px}
.guest-avatar {flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;background:#eacff9;border:2px solid #d5abe8;border-radius:8px;color:#8954ae;font-weight:bold}
.guest-copy {min-width:0;flex:1}
.bubble {overflow-wrap:anywhere;white-space:pre-wrap;max-width:100%;display:inline-block;font-size:13px}
.honeypot {position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.todo-panel {padding:13px}
.todo-card {gap:8px}
.todo-card .todo-main {min-width:0}
.todo-copy {min-width:0;overflow-wrap:anywhere}
.todo-small {background:transparent;border:0;color:#9672b3;font-size:15px;padding:2px}
.todo-form {border-top:1px dashed #dac5e6;padding-top:12px}
.todo-form > strong {font-size:13px;color:#945bb5}
.todo-form .textinput {width:100%;font-size:12px}
.small-label {display:flex;align-items:center;justify-content:space-between;gap:8px;color:#9877ad;font-size:12px}
.small-label input {width:auto!important;max-width:65%}
.settings-extra {background:#fffcff;border:1px solid #ead8f0;padding:12px;margin-top:16px}
.settings-extra h3 {margin:0 0 8px;color:#9364ad;font-size:14px}
.settings-extra hr {border:0;border-top:1px dashed #e4c8ed;margin:13px 0}
.music-content {grid-template-columns:80px 1fr;padding:0;gap:14px}
.music-content .music-cover {width:80px;height:80px}
.music-content strong {display:block;max-width:230px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.music-content p {margin:6px 0}
.music-content .music-row {margin:8px 0;gap:5px;flex-wrap:wrap}
.music-content .music-row .pixel-button {min-height:0;padding:5px 9px}
.music-content input[type=range] {max-width:100%;accent-color:#ad72cf}
.music-content label {display:flex;align-items:center;gap:6px}
.playlist {margin-top:14px;max-height:130px;overflow:auto;display:grid;gap:4px}
.track {text-align:left;padding:7px 9px;border:1px solid #edd6f0;background:#fff9ff;color:#8f6cac;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track.selected {background:#f0d6ff;border-color:#c694dc;font-weight:bold}
.editor-toolbar {display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:8px;margin-top:12px}
.editor-toolbar .textinput {width:100%;font-size:12px}
.editor-toolbar .pixel-button {font-size:12px}
.editor-tabs {margin:16px 0 8px;padding:8px 0;border-top:1px solid #e9d3f0;border-bottom:1px solid #e9d3f0}
.editor-heading {font-size:15px;font-weight:700;margin:15px 0 10px;color:#865baa}
.editor-items {max-height:220px;overflow:auto;display:grid;gap:6px;margin:10px 0 15px}
.editor-item {display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border:1px solid #e9d7ef;font-size:13px;background:#fffafd}
.editor-item span {overflow-wrap:anywhere;min-width:0}
.editor-item .action-row {margin:0;flex-wrap:nowrap}
.editor-item .filter-btn {padding:4px 8px}
#editor-form {display:grid;gap:9px;max-width:680px;margin-bottom:16px}
#editor-form h3 {font-size:14px;color:#865baa}
.editor-field {display:grid;gap:4px;font-size:12px;color:#84649f}
.editor-field .textinput {width:100%;font-size:13px}
.editor-field textarea {min-height:70px;resize:vertical;line-height:1.6}
.editor-check {display:flex;align-items:center;gap:7px;font-size:13px}
.moderation-card {margin:11px 0;padding:12px;border:1px solid #e7cce9;background:#fff9fd;overflow-wrap:anywhere}
.moderation-card p {white-space:pre-wrap}
.desktop-icon:hover .icon-bubble {transform:translateY(-3px);filter:brightness(1.06)}
.mascot {z-index:28;}
@media(min-width:1280px){.os-window[data-app="home"] {min-height:430px}}
@media(max-width:960px){.home-grid {grid-template-columns:170px 1fr}.home-image.deluxe {min-height:280px}.home-grid .pixel-heading {font-size:28px}}
@media(max-width:680px){
 .desktop-icons {grid-template-columns:repeat(5,minmax(0,1fr));gap:7px 2px}
 .desktop-icon {font-size:10px}
 .desktop-icon span:last-child {font-size:10px}
 .icon-bubble {width:40px;height:40px;font-size:21px}
 .home-grid {grid-template-columns:1fr}
 .home-image.deluxe {height:215px;min-height:0}
 .home-grid .pixel-heading {font-size:29px}
 .home-grid .intro p {font-size:13px}
 .quick-links {grid-template-columns:1fr 1fr}
 .detail-split {grid-template-columns:118px 1fr;gap:12px}
 .detail-split .big-cover {height:180px}
 .detail-split .cover-name {font-size:10px}
 .tool-grid {grid-template-columns:1fr 1fr;gap:9px}
 .project-grid {grid-template-columns:1fr}
 .posts-grid {grid-template-columns:1fr}
 .music-content {grid-template-columns:1fr}
 .music-content .music-cover {display:none}
 .editor-toolbar {grid-template-columns:1fr}
 .wallpaper-choice {grid-template-columns:1fr 1fr}
 .mascot {z-index:8}
}
@media(max-width:390px){.tool-grid,.wallpaper-choice{grid-template-columns:1fr}.desktop-brand .brand-name {font-size:16px}.desktop-icons {grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.mascot img {animation:none!important}}
