/* Soft, tactile controls instead of default gray dropdown boxes. */
select,.field:is(select),.editor-top select,.format-bar select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--lav) 50%),linear-gradient(135deg,var(--lav) 50%,transparent 50%),linear-gradient(135deg,rgba(255,255,255,.8),rgba(244,237,255,.8));background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52%,100% 0;background-size:5px 5px,5px 5px,42px 100%;background-repeat:no-repeat;border:1px solid color-mix(in srgb,var(--lav) 28%,white);border-radius:18px;padding-right:50px;box-shadow:0 6px 20px rgba(75,55,110,.06)}
.drop-zone,.source-drop{border:2px dashed color-mix(in srgb,var(--lav) 45%,white);border-radius:28px;background:linear-gradient(145deg,rgba(255,255,255,.92),color-mix(in srgb,var(--wash) 75%,white));box-shadow:inset 0 0 0 7px rgba(255,255,255,.35),0 14px 35px rgba(83,60,120,.08)}
.art-visual img{width:min(100%,420px);filter:drop-shadow(0 20px 30px rgba(72,48,109,.18));animation:floatArt 6s ease-in-out infinite}@keyframes floatArt{50%{transform:translateY(-10px) rotate(1deg)}}

.sound-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.sound-grid .span-12{grid-column:1/-1}.sound-main audio{display:block;width:100%;margin:20px 0}.sound-volume{display:flex;align-items:center;gap:14px}.sound-volume input{accent-color:var(--lav);width:100%}.ambient-buttons,.station-row{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.ambient-buttons button,.station-row button{border:1px solid var(--line);background:var(--paper);padding:12px 16px;border-radius:999px;color:var(--ink);cursor:pointer}.ambient-buttons button.active{background:var(--lav);color:white;box-shadow:0 8px 22px color-mix(in srgb,var(--lav) 35%,transparent)}
.youtube-search{display:grid;grid-template-columns:1fr auto;gap:9px;margin:12px 0}.youtube-frame{width:100%;aspect-ratio:16/9;border:0;border-radius:22px;margin:12px 0;background:#171424;box-shadow:0 15px 35px rgba(30,23,48,.18)}
.music-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0;max-height:390px;overflow:auto}.music-result{display:grid;grid-template-columns:78px 1fr auto;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:18px;padding:7px;background:var(--paper);color:var(--ink);cursor:pointer;transition:.18s ease}.music-result:hover,.music-result.playing{border-color:var(--lav);transform:translateY(-2px);box-shadow:0 9px 24px rgba(60,42,92,.1)}.music-result img{width:78px;aspect-ratio:16/10;object-fit:cover;border-radius:12px}.music-result b,.music-result small{display:block}.music-result b{font-size:.78rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.music-result small{margin-top:4px;color:var(--muted);font-size:.67rem}.music-result i{color:var(--lav);font-style:normal}.music-searching{grid-column:1/-1;padding:24px;text-align:center;background:var(--wash);border-radius:18px;color:var(--muted)}

.grade-head,.grade-row{display:grid;grid-template-columns:1.4fr .8fr .8fr 34px;gap:10px;align-items:center}.grade-head{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:0 8px}.grade-row{margin:9px 0}.grade-row label{position:relative}.grade-row label i{position:absolute;right:14px;top:15px;color:var(--muted);font-style:normal}.grade-row label input{padding-right:30px}.grade-row>button{border:0;background:transparent;color:#b26b82;font-size:1.4rem;cursor:pointer}.grade-target{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.grade-target label{font-size:.78rem;color:var(--muted)}.grade-target input{display:block;margin-top:6px}.grade-result{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.grade-result>div{padding:16px;border-radius:20px;background:var(--wash)}.grade-result small{display:block;color:var(--muted)}.grade-result strong{font:700 1.8rem var(--serif)}.grade-result p{grid-column:1/-1}

.source-picks{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin:22px 0}.source-drop{display:grid;place-items:center;min-height:150px;text-align:center;padding:20px;cursor:pointer}.source-drop input{max-width:220px;margin-top:12px}.reader-card{background:linear-gradient(145deg,#fff,#f0e9ff)!important}

.profile-photo,.mini-avatar{background-size:cover;background-position:center;display:grid;place-items:center;border-radius:50%;background-color:var(--lav2);color:white;font-weight:800;flex:0 0 auto}.profile-photo{width:92px;height:92px;border:5px solid white;box-shadow:0 10px 30px rgba(70,48,100,.16);margin:0 0 16px}.mini-avatar{width:36px;height:36px;font-size:.72rem}.profile-settings .btn{margin:6px 8px 6px 0}.profile-settings small{display:block;color:var(--muted)}
.custom-color-label{display:block;margin-top:15px}.color-picker-row{display:grid;grid-template-columns:64px 1fr 32px;gap:10px;align-items:center;margin:7px 0}.color-picker-row input[type=color]{width:64px;height:48px;padding:3px;border:1px solid var(--line);border-radius:16px;background:white;cursor:pointer}.color-picker-row .field{margin:0}.color-picker-row i{width:30px;height:30px;border-radius:50%;box-shadow:0 0 0 5px white,0 3px 15px rgba(40,25,70,.2)}.custom-color-label small{color:var(--muted)}

/* Original sticker sheet: tiny details tucked around pages, never giant hero art. */
.page{position:relative}.page-sticker{position:absolute;z-index:0;width:52px;height:52px;background-image:url('assets/cute-stickers.png');background-size:400% 300%;background-repeat:no-repeat;pointer-events:none;filter:drop-shadow(0 7px 8px rgba(62,42,89,.12));opacity:.9;transform:rotate(var(--tilt,0deg))}.page>.page-title,.page>.panel,.page>div:not(.page-sticker){position:relative;z-index:1}.scatter-0{right:4%;top:30px;--tilt:9deg}.scatter-1{left:2%;top:43%;--tilt:-12deg;width:42px;height:42px;opacity:.72}.scatter-2{right:3%;bottom:35px;--tilt:7deg;width:46px;height:46px;opacity:.78}.sticker-0{background-position:0 0}.sticker-1{background-position:33.333% 0}.sticker-2{background-position:66.666% 0}.sticker-3{background-position:100% 0}.sticker-4{background-position:0 50%}.sticker-5{background-position:33.333% 50%}.sticker-6{background-position:66.666% 50%}.sticker-7{background-position:100% 50%}.sticker-8{background-position:0 100%}.sticker-9{background-position:33.333% 100%}.sticker-10{background-position:66.666% 100%}.sticker-11{background-position:100% 100%}

.social-layout{display:grid;grid-template-columns:320px 1fr;gap:22px;min-height:650px}.social-side{overflow:auto}.person-row{display:flex;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.person-row b{flex:1}.person-row button{border:0;border-radius:999px;padding:6px 10px;cursor:pointer}.group-row{width:100%;display:flex;justify-content:space-between;text-align:left;padding:14px;margin:8px 0;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink);cursor:pointer}.chat-panel{display:flex;flex-direction:column}.chat-panel #chatActive{display:grid;grid-template-rows:auto 1fr auto;height:610px}.message-list{overflow:auto;padding:18px 3px}.chat-message{display:flex;gap:10px;margin:16px 0;max-width:82%}.chat-message.mine{margin-left:auto;flex-direction:row-reverse}.chat-message>div{background:var(--wash);border-radius:4px 20px 20px;padding:12px 15px}.chat-message.mine>div{background:color-mix(in srgb,var(--lav2) 45%,white);border-radius:20px 4px 20px 20px}.chat-message p{white-space:pre-wrap;margin:4px 0}.chat-message small,.chat-message i{color:var(--muted);font-size:.7rem}.chat-compose{display:grid;grid-template-columns:1fr auto;gap:8px}.chat-compose textarea{grid-row:1/3;border:1px solid var(--line);border-radius:18px;padding:13px;resize:none;background:var(--paper);color:var(--ink)}.friend-checks{max-height:250px;overflow:auto;margin:16px 0}.friend-check{display:flex;align-items:center;gap:10px;padding:9px}

body[data-theme=rose]{background-image:radial-gradient(#f3b5cf 1.5px,transparent 1.5px);background-size:22px 22px}body[data-theme=rose] .panel{box-shadow:8px 9px 0 rgba(231,165,192,.14),0 16px 35px rgba(85,50,76,.07)}body[data-theme=ocean]{background-image:linear-gradient(120deg,rgba(176,217,247,.24),transparent 35%),radial-gradient(circle at 80% 10%,rgba(124,175,225,.22),transparent 25%)}body[data-theme=matcha]{--lav:#6f9970;--lav2:#c9deb1;--wash:#f2f7e9;--cream:#f8f6e9;background-color:#fbfaf1;background-image:radial-gradient(#b7cc9c 1px,transparent 1px);background-size:18px 18px}body[data-theme=starlight]{--lav:#7662b8;--lav2:#c9bcff;--wash:#f1edff;background:linear-gradient(135deg,#fff 35%,#eee9ff);background-attachment:fixed}body[data-theme=starlight] .panel:before{content:'✦';float:right;color:#b7a7ee;font-size:1.2rem}body[data-theme=midnight]{background-image:radial-gradient(circle at 20% 10%,#4b3f70 0 1px,transparent 2px),radial-gradient(circle at 75% 30%,#8d79ca 0 1px,transparent 2px);background-size:75px 75px,110px 110px}
@media(max-width:850px){.sound-grid,.social-layout{grid-template-columns:1fr}.social-layout{min-height:0}.chat-panel #chatActive{height:520px}.source-picks{grid-template-columns:1fr}.grade-head,.grade-row{grid-template-columns:1.2fr .8fr .8fr 30px}.page-sticker{width:38px;height:38px;opacity:.58}.music-results{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.grade-target,.grade-result{grid-template-columns:1fr}.grade-result p{grid-column:auto}.youtube-search,.music-results{grid-template-columns:1fr}.scatter-1{display:none}}

/* Softer type and a much more complete accent-color system. */
body{font-family:'Nunito',system-ui,sans-serif;--accent-soft:rgba(155,123,232,.1);--accent-wash:rgba(155,123,232,.05);--accent-border:rgba(155,123,232,.28);--accent-shadow:rgba(155,123,232,.2)}
h1,h2,h3,.logo,.panel-head h2{font-family:'Nunito',system-ui,sans-serif;font-weight:700;letter-spacing:-.045em}h1 em,h2 em,.logo em,.hero-visual p,.mood-card h2{font-family:'Caveat',cursive;font-style:normal;letter-spacing:0;font-weight:700}.page-title h1 em,.welcome h1 em{font-size:1.15em}.sticker,.kicker,.eyebrow{font-family:'Nunito',sans-serif;text-transform:lowercase;letter-spacing:.08em}
.welcome{grid-template-columns:1fr;min-height:330px;background:linear-gradient(135deg,var(--accent-soft),rgba(255,255,255,.92) 48%,var(--accent-wash));border-color:var(--accent-border)}.welcome>div{max-width:850px}.art-visual{display:none!important}
.btn.primary,.music-toggle,.logo-mark{background:linear-gradient(135deg,color-mix(in srgb,var(--lav) 78%,white),var(--lav));box-shadow:0 12px 30px var(--accent-shadow)}.btn.soft,.main-nav a:hover,.main-nav a.active,.nav-button:hover,.folder-strip button.active,.notebook-tab.active{background:var(--accent-soft);border-color:var(--accent-border);color:color-mix(in srgb,var(--lav) 72%,#2d2540)}.main-nav a.active{box-shadow:inset 3px 0 var(--lav)}
.panel,.stat-row article,.file-card,.tool-card,.bookmark-card,.date-card,.progress-card,.editor-shell,.sound-main,.modal{border-color:var(--accent-border);box-shadow:0 13px 38px var(--accent-wash)}.panel:nth-child(odd),.tool-card:nth-child(3n+1),.file-card:nth-child(3n+2){background:linear-gradient(145deg,rgba(255,255,255,.94),var(--accent-wash))}.field,.search-box,.search-pill,select,.task-item,.group-row,.music-result{border-color:var(--accent-border)}.field:focus,.search-box:focus-within,input:focus,textarea:focus,select:focus{border-color:var(--lav)!important;box-shadow:0 0 0 4px var(--accent-soft);outline:0}.progress i,.timer-ring circle:last-child{stroke:var(--lav);background:linear-gradient(90deg,var(--lav),color-mix(in srgb,var(--lav) 45%,#ffd4e7))}.stat-icon,.tool-icon,.site-icon,.studio-modes button span,.bookmark-tags span{background:var(--accent-soft)!important;color:var(--lav)!important}.drop-zone,.source-drop,.vault-drop{border-color:var(--accent-border);background:linear-gradient(145deg,#fff,var(--accent-wash))}.mood-card{background:linear-gradient(145deg,color-mix(in srgb,var(--lav) 72%,white),color-mix(in srgb,var(--lav) 82%,#342652))}.page-title p,.muted{font-weight:500}

/* Lots of tiny original stickers, scattered through whitespace and card corners. */
.page-sticker,.panel-sticker{position:absolute;display:block;z-index:3;width:var(--size,38px);height:var(--size,38px);left:var(--x,auto);top:var(--y,auto);background-image:url('assets/cute-stickers.png');background-size:400% 300%;background-repeat:no-repeat;pointer-events:none;filter:drop-shadow(0 5px 7px rgba(62,42,89,.13));opacity:.82;transform:translate(-50%,-50%) rotate(var(--tilt,0deg))}.page-sticker:nth-of-type(2n){opacity:.62}.panel,.file-card,.tool-card,.class-card{position:relative}.panel-sticker{--size:32px;left:auto;top:-10px;right:14px;transform:rotate(8deg);z-index:4}.panel-sticker.sticker-0,.page-sticker.sticker-0{background-position:0 0}.panel-sticker.sticker-1,.page-sticker.sticker-1{background-position:33.333% 0}.panel-sticker.sticker-2,.page-sticker.sticker-2{background-position:66.666% 0}.panel-sticker.sticker-3,.page-sticker.sticker-3{background-position:100% 0}.panel-sticker.sticker-4,.page-sticker.sticker-4{background-position:0 50%}.panel-sticker.sticker-5,.page-sticker.sticker-5{background-position:33.333% 50%}.panel-sticker.sticker-6,.page-sticker.sticker-6{background-position:66.666% 50%}.panel-sticker.sticker-7,.page-sticker.sticker-7{background-position:100% 50%}.panel-sticker.sticker-8,.page-sticker.sticker-8{background-position:0 100%}.panel-sticker.sticker-9,.page-sticker.sticker-9{background-position:33.333% 100%}.panel-sticker.sticker-10,.page-sticker.sticker-10{background-position:66.666% 100%}.panel-sticker.sticker-11,.page-sticker.sticker-11{background-position:100% 100%}
@media(max-width:600px){.page-sticker{opacity:.45!important;--size:30px}.panel-sticker{--size:25px}.welcome{min-height:360px}}

/* Class spaces */
.classroom-back{margin-bottom:18px}.classroom-hero{border-radius:36px;padding:42px;margin-bottom:20px;background:linear-gradient(135deg,var(--accent-soft),#fff 55%,var(--accent-wash));border:1px solid var(--accent-border);display:flex;align-items:end;justify-content:space-between;gap:20px}.classroom-hero h1{margin:14px 0 7px}.classroom-hero p{margin:0;color:var(--muted)}.classroom-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.classroom-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.class-folder-list{display:grid;gap:8px}.class-folder-list>div{display:grid;grid-template-columns:1fr auto;gap:6px}.class-folder-list button{border:1px solid var(--accent-border);background:var(--accent-soft);border-radius:15px;padding:12px;text-align:left}.class-folder-list button small{float:right;color:var(--muted)}.class-folder-list .folder-delete{width:42px;text-align:center;background:#fff3f5;color:#b85d75}.class-file-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.class-file-list button{display:grid;grid-template-columns:40px 1fr;gap:4px 9px;text-align:left;border:1px solid var(--accent-border);border-radius:15px;padding:10px;background:var(--paper)}.class-file-list span{grid-row:span 2;width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--accent-soft);color:var(--lav)}.class-file-list small{color:var(--muted)}.mini-empty{padding:25px;border:1px dashed var(--accent-border);border-radius:16px;color:var(--muted)}#classProgressSlider{width:100%;accent-color:var(--lav)}#classProgressLabel{display:block;font:700 42px 'Caveat',cursive;color:var(--lav);margin:12px 0}
.grade-presets{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0}.grade-presets button{border:1px solid var(--accent-border);background:var(--accent-soft);color:var(--lav);padding:8px 12px;border-radius:999px}.grade-target.intricate{grid-template-columns:repeat(3,1fr)}.grade-result details{grid-column:1/-1;background:var(--accent-wash);padding:12px 15px;border-radius:14px}.grade-result summary{cursor:pointer;font-weight:700}.grade-result details p{margin:8px 0;font-size:.82rem}

/* Every little illustration has its own buoyant rhythm. */
.page-sticker,.panel-sticker{animation:stickerBob 3.2s ease-in-out infinite alternate;animation-delay:calc(var(--x,10) * -20ms);will-change:transform}.page-sticker:nth-of-type(3n){animation-name:stickerWiggle;animation-duration:4.1s}.panel-sticker{animation-duration:2.5s}@keyframes stickerBob{from{transform:translate(-50%,-50%) rotate(var(--tilt,0deg)) translateY(0)}to{transform:translate(-50%,-50%) rotate(calc(var(--tilt,0deg) + 5deg)) translateY(-11px)}}@keyframes stickerWiggle{from{transform:translate(-50%,-50%) rotate(-9deg) scale(.96)}to{transform:translate(-50%,-50%) rotate(9deg) scale(1.05)}}
@media(max-width:800px){.classroom-hero{align-items:flex-start;flex-direction:column;padding:28px}.classroom-actions{justify-content:flex-start}.classroom-grid{display:block}.classroom-grid>*{margin-bottom:14px}.grade-target.intricate{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.page-sticker,.panel-sticker{animation:none}}

/* Energy pass: finite motion, no permanent compositor layers, and fewer costly blurs. */
.page-sticker,.panel-sticker{animation-iteration-count:2;will-change:auto}.tab-sleeping .page-sticker,.tab-sleeping .panel-sticker,.battery-low .page-sticker,.battery-low .panel-sticker,body[data-energy=still] .page-sticker,body[data-energy=still] .panel-sticker{animation:none!important}.page-sticker:hover,.panel-sticker:hover{filter:drop-shadow(0 5px 7px rgba(62,42,89,.13));scale:1.06}.sidebar,.topbar,.music-body{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.sidebar{background:rgba(255,255,255,.96)}.topbar{background:rgba(255,255,255,.9)}.music-body{background:rgba(255,255,255,.98)}.ambient i{filter:none!important;opacity:.18}.page:not(.active) .page-sticker,.page:not(.active) .panel-sticker{animation:none!important}
.planet{animation-iteration-count:2!important;will-change:auto}.tab-sleeping .planet,.battery-low .planet,body[data-energy=still] .planet{animation:none!important}.modal-backdrop,.command{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* Final scale, handwriting, avatar, and context-menu polish. */
.btn{min-height:40px;width:auto;max-width:100%;padding:10px 16px;font-size:.86rem;line-height:1.15;border-radius:15px}.btn.wide{width:100%}.page-title>.btn,.panel-head>.btn,.classroom-actions .btn,.hero-actions .btn{flex:0 0 auto}.class-actions button,.text-btn{font-size:.78rem;line-height:1.2}.rich-editor{font-family:'Caveat',cursive;font-size:22px;letter-spacing:.01em}.rich-editor h2{font-family:'Caveat',cursive;font-size:34px}.rich-editor blockquote{font-family:'Caveat',cursive;font-size:23px}.rich-editor .free-note{font-family:'Caveat',cursive}.mini-profile{grid-template-columns:40px minmax(0,1fr) 25px;overflow:visible}.avatar{width:40px!important;height:40px!important;min-width:40px;aspect-ratio:1;background-size:cover!important;background-position:center!important;background-repeat:no-repeat;border:3px solid white;box-shadow:0 5px 15px var(--accent-shadow);overflow:hidden;line-height:1}.mini-profile>div:nth-child(2){min-width:0;overflow:hidden}.mini-profile strong,.mini-profile small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-photo,.mini-avatar{background-repeat:no-repeat;isolation:isolate}
.vault-context{position:fixed;z-index:1200;width:220px;padding:8px;background:rgba(255,255,255,.98);border:1px solid var(--accent-border);border-radius:17px;box-shadow:0 20px 55px rgba(38,25,58,.2)}.vault-context>small{display:block;padding:7px 10px 9px;color:var(--muted);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vault-context button{width:100%;border:0;background:transparent;border-radius:11px;padding:10px;display:flex;gap:10px;align-items:center;text-align:left;font-size:.82rem}.vault-context button:hover{background:var(--accent-soft);color:var(--lav)}.vault-context button span{width:20px;text-align:center}.vault-context button.danger{color:#b64f6b}.vault-context button.danger:hover{background:#fff0f4}.notebook-tab,.class-card,#folderStrip button,[data-open-folder]{-webkit-user-select:none;user-select:none}
@media(max-width:560px){.btn{padding:9px 13px;font-size:.8rem}.page-title>.btn{align-self:flex-start}.classroom-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.classroom-actions .btn{width:100%}}

/* A real lock-screen illustration: paper, stickers, and tiny moving pieces. */
.lock-art:before{width:520px;height:520px;background:radial-gradient(circle,rgba(255,255,255,.74),rgba(255,255,255,.12) 62%,transparent 63%);border:1px dashed rgba(139,105,202,.2);box-shadow:none}.lock-desk{position:relative;width:min(500px,78%);aspect-ratio:1.05;border-radius:42px;background:linear-gradient(145deg,#fffdfd,#f5efff);border:1px solid rgba(151,119,211,.2);box-shadow:0 28px 70px rgba(77,54,118,.16),inset 0 0 0 10px rgba(255,255,255,.45);transform:rotate(-2deg)}.lock-desk:before,.lock-desk:after{content:'';position:absolute;border-radius:999px;background:var(--lav2);opacity:.32}.lock-desk:before{width:120px;height:16px;left:52px;top:55px;transform:rotate(-5deg)}.lock-desk:after{width:75px;height:12px;right:65px;bottom:48px;transform:rotate(7deg)}.lock-note{position:absolute;left:50%;top:50%;width:245px;min-height:210px;transform:translate(-50%,-50%) rotate(3deg);padding:35px 30px;background:#fff8c9;background-image:linear-gradient(transparent 31px,rgba(128,102,163,.12) 32px);background-size:100% 32px;box-shadow:0 16px 35px rgba(82,62,107,.14);font-family:'Caveat',cursive;color:#554467}.lock-note span{display:block;font:700 13px 'Nunito',sans-serif;color:#9879c6;margin-bottom:16px}.lock-note b{font-size:25px;line-height:1.3}.lock-sticker{position:absolute;display:block;width:92px;height:92px;background-image:url('assets/cute-stickers.png');background-size:400% 300%;background-repeat:no-repeat;z-index:2;filter:drop-shadow(0 9px 9px rgba(64,42,91,.13));animation:lockFloat 2.8s ease-in-out 4 alternate}.book-float{background-position:33.333% 100%;left:22px;bottom:28px;transform:rotate(-10deg)}.berry-float{background-position:0 0;right:25px;top:28px;width:82px;height:82px;animation-delay:-.8s}.moon-float{background-position:33.333% 50%;left:32px;top:120px;width:72px;height:72px;animation-delay:-1.4s}.flower-float{background-position:66.666% 0;right:44px;bottom:60px;width:68px;height:68px;animation-delay:-1.9s}.sparkle-float{background-position:100% 100%;right:104px;top:4px;width:55px;height:55px;animation-delay:-.4s}@keyframes lockFloat{from{translate:0 0;rotate:-3deg}to{translate:0 -14px;rotate:6deg}}body[data-energy=still] .lock-sticker,.tab-sleeping .lock-sticker,.battery-low .lock-sticker{animation:none}.creator-credit{padding:9px 12px;color:var(--muted);font-size:10px;text-align:center;letter-spacing:.04em}.creator-credit span{color:var(--lav);margin-right:4px}.creator-credit b{color:var(--lav)}.privacy-note b{font-family:'Caveat',cursive;font-size:17px;color:var(--lav)}
@media(max-width:820px){.lock-desk{width:min(430px,78%)}}@media(max-width:560px){.lock-art{display:none}.lock-panel:before{content:'✿';display:block;font-size:38px;color:var(--lav);margin-bottom:8px}}
.vault-toolbar>.search-box{position:relative}.vault-search-clear{width:28px;height:28px;flex:0 0 auto;border:0;border-radius:50%;background:var(--accent-soft);color:var(--lav);font-size:18px;display:grid;place-items:center}.vault-match-count{align-self:center;color:var(--muted);font-size:10px;white-space:nowrap;margin-left:-2px}.vault-toolbar:has(.vault-match-count:not(:empty)){align-items:center}@media(max-width:820px){.vault-match-count{order:2;flex-basis:100%;margin-top:-5px}}

/* Editorial type: modern body, distinctive variable-serif headings, handwriting only where intentional. */
body{font-family:'Manrope',system-ui,sans-serif}button,input,textarea,select{font-family:'Manrope',system-ui,sans-serif}h1,h2,h3,.logo,.panel-head h2{font-family:'Fraunces',serif;font-weight:600;letter-spacing:-.035em}h1 em,h2 em,.logo em,.mood-card h2{font-family:'Fraunces',serif;font-style:italic}.kicker,.eyebrow,.sticker{font-family:'Manrope',sans-serif}.mood-card:after{content:'૮ ˶ᵔ ᵕ ᵔ˶ ა';position:absolute;right:22px;top:18px;font:600 13px 'Manrope',sans-serif;opacity:.5}.mood-card h2{padding-right:82px}

/* Each preset is a complete atmosphere: canvas, surfaces, edges, controls, and tiny motifs. */
body[data-theme=lilac]{--theme-surface:#fffefe;--theme-raised:#faf7ff;--theme-edge:#ded1f2;background-color:#fbf9ff;background-image:radial-gradient(circle at 8% 12%,rgba(183,156,235,.22),transparent 23%),radial-gradient(circle at 88% 8%,rgba(242,191,220,.17),transparent 19%),linear-gradient(135deg,#fff 25%,#f7f1ff 100%);background-attachment:fixed}body[data-theme=lilac] .panel{border-color:#e4d9f4}body[data-theme=lilac] .panel:nth-child(3n+1){box-shadow:8px 8px 0 rgba(178,150,225,.09),0 15px 35px rgba(71,48,107,.06)}
body[data-theme=rose]{--theme-surface:#fffafb;--theme-raised:#fff2f7;--theme-edge:#efc6d8;background-color:#fff8fb;background-image:linear-gradient(90deg,rgba(226,126,164,.055) 1px,transparent 1px),linear-gradient(rgba(226,126,164,.055) 1px,transparent 1px),radial-gradient(circle at 85% 10%,rgba(244,178,205,.32),transparent 24%);background-size:34px 34px,34px 34px,auto;background-attachment:fixed}body[data-theme=rose] .panel,body[data-theme=rose] .file-card{border-color:#f0cfdd}body[data-theme=rose] .sticker{background:#fff8fb;border-color:#f3cddd}body[data-theme=rose] .page-title:after{content:'✿';color:#d985aa;font-size:26px;opacity:.55}
body[data-theme=ocean]{--theme-surface:#fafdff;--theme-raised:#eef8ff;--theme-edge:#bfdcf1;background-color:#f5fbff;background-image:linear-gradient(150deg,rgba(130,190,232,.2),transparent 34%),radial-gradient(circle at 15% 75%,rgba(174,220,245,.22),transparent 20%),repeating-radial-gradient(circle at 90% 12%,transparent 0 15px,rgba(89,145,197,.055) 16px 17px);background-attachment:fixed}body[data-theme=ocean] .panel{border-color:#cfe4f3}body[data-theme=ocean] .panel:nth-child(even){background:linear-gradient(145deg,#fff,rgba(223,243,255,.62))}body[data-theme=ocean] .page-title:after{content:'≈';font:600 42px 'Fraunces',serif;color:#78add6;opacity:.45}
body[data-theme=matcha]{--theme-surface:#fffef7;--theme-raised:#f1f7e9;--theme-edge:#cfdbb9;background-color:#fbfaef;background-image:linear-gradient(30deg,rgba(117,149,100,.06) 12%,transparent 12.5%,transparent 87%,rgba(117,149,100,.06) 87.5%),linear-gradient(150deg,rgba(117,149,100,.06) 12%,transparent 12.5%,transparent 87%,rgba(117,149,100,.06) 87.5%);background-size:38px 66px;background-attachment:fixed}body[data-theme=matcha] .panel{border-color:#d6dfc5}body[data-theme=matcha] .panel:nth-child(odd){background:linear-gradient(145deg,#fffef9,#f4f8ec)}body[data-theme=matcha] .page-title:after{content:'❧';font-size:30px;color:#71936e;opacity:.5}
body[data-theme=starlight]{--theme-surface:#fdfcff;--theme-raised:#f0ecff;--theme-edge:#d4c9f5;background-color:#f8f5ff;background-image:radial-gradient(circle at 12% 18%,#c8b9f0 0 1px,transparent 2px),radial-gradient(circle at 78% 27%,#9d88db 0 1px,transparent 2px),radial-gradient(circle at 42% 82%,#e2acd0 0 1.5px,transparent 2.5px),linear-gradient(145deg,#fff 15%,#efeaff 100%);background-size:73px 73px,109px 109px,137px 137px,auto;background-attachment:fixed}body[data-theme=starlight] .panel{border-color:#d9d0f3;box-shadow:0 15px 40px rgba(79,57,131,.1)}body[data-theme=starlight] .panel:nth-child(3n):before{content:'✦';float:right;color:#9c84d8;font-size:16px;opacity:.6}

/* Midnight contrast audit: no white-on-white controls or pale islands. */
body[data-theme=midnight]{--ink:#f8f5ff;--muted:#c4bdd4;--paper:#211c35;--cream:#171326;--wash:#2c2544;--line:#4b4265;--theme-surface:#211c35;--theme-raised:#2b2442;--theme-edge:#51466f;color-scheme:dark;background-color:#100d1b;background-image:radial-gradient(circle at 15% 15%,rgba(132,105,194,.24),transparent 25%),radial-gradient(circle at 84% 8%,rgba(67,93,151,.2),transparent 22%),radial-gradient(#7661ae 0 1px,transparent 1.5px);background-size:auto,auto,74px 74px;background-attachment:fixed}body[data-theme=midnight] .sidebar,body[data-theme=midnight] .topbar,body[data-theme=midnight] .panel,body[data-theme=midnight] .stat-row article,body[data-theme=midnight] .file-card,body[data-theme=midnight] .tool-card,body[data-theme=midnight] .bookmark-card,body[data-theme=midnight] .date-card,body[data-theme=midnight] .progress-card,body[data-theme=midnight] .editor-shell,body[data-theme=midnight] .modal,body[data-theme=midnight] .music-body,body[data-theme=midnight] .vault-context,body[data-theme=midnight] .account-card{background:#211c35!important;color:#f8f5ff!important;border-color:#4b4265!important}body[data-theme=midnight] input,body[data-theme=midnight] textarea,body[data-theme=midnight] select,body[data-theme=midnight] .field,body[data-theme=midnight] .search-box,body[data-theme=midnight] .search-pill,body[data-theme=midnight] .task-item,body[data-theme=midnight] .group-row,body[data-theme=midnight] .music-result,body[data-theme=midnight] .notebook-tab,body[data-theme=midnight] .format-bar button,body[data-theme=midnight] .format-bar select,body[data-theme=midnight] .format-bar label,body[data-theme=midnight] .folder-strip button,body[data-theme=midnight] .view-toggle button,body[data-theme=midnight] .class-file-list button,body[data-theme=midnight] .class-folder-list button{background:#191529!important;color:#f8f5ff!important;border-color:#51476a!important}body[data-theme=midnight] .rich-editor,body[data-theme=midnight] .rich-editor.plain,body[data-theme=midnight] .rich-editor.lined,body[data-theme=midnight] .rich-editor.grid,body[data-theme=midnight] .rich-editor.dots{background-color:#19162a!important;color:#f7f2ff!important}body[data-theme=midnight] .rich-editor.lined{background-image:linear-gradient(transparent 31px,#3e3654 32px)!important}body[data-theme=midnight] .rich-editor.grid{background-image:linear-gradient(#373049 1px,transparent 1px),linear-gradient(90deg,#373049 1px,transparent 1px)!important}body[data-theme=midnight] .rich-editor.dots{background-image:radial-gradient(#5d5277 1px,transparent 1px)!important}body[data-theme=midnight] .format-bar,body[data-theme=midnight] .editor-status,body[data-theme=midnight] .classroom-hero,body[data-theme=midnight] .welcome,body[data-theme=midnight] .ai-output,body[data-theme=midnight] .tool-output,body[data-theme=midnight] .empty-state,body[data-theme=midnight] .mini-empty,body[data-theme=midnight] .grade-result>div{background:#27203d!important;color:#f8f5ff!important;border-color:#51476a!important}body[data-theme=midnight] .btn.soft,body[data-theme=midnight] .btn.white{background:#342a50!important;color:#f8f5ff!important;border-color:#66578a!important}body[data-theme=midnight] .btn.danger{background:#482337!important;color:#ffdce7!important;border-color:#75425a!important}body[data-theme=midnight] .muted,body[data-theme=midnight] small,body[data-theme=midnight] .page-title p,body[data-theme=midnight] .editor-status,body[data-theme=midnight] .class-file-list small{color:#c4bdd4!important}body[data-theme=midnight] .viewer{background:#151122;color:#f8f5ff}body[data-theme=midnight] .modal-close,body[data-theme=midnight] .icon-btn,body[data-theme=midnight] .file-menu{background:#342b4c;color:#fff}body[data-theme=midnight] .privacy-chip{background:#233a31;color:#bce8ce;border-color:#355a49}body[data-theme=midnight] .mood-card{background:linear-gradient(145deg,#5d478b,#30284c)!important}
