:root{--paper: #fbfaf7;--card: #ffffff;--chip: #eeeae3;--hair: #e6e2da;--ink: #1a1c22;--muted: #5c6472;--faint: #8c93a1;--accent: #2f5fd0;--accent-soft: #f3f6ff;--pick: #dbe4f8;--pick-fg: #244aa2;--pill: #d9e2f6;--accent-line: #91a9e2;--accent-on: #ffffff;--warn-bg: #f7e6e0;--warn-fg: #a8431f;color-scheme:light}:root[data-scheme=dark]{--paper: #14161c;--card: #1b1e26;--chip: #232833;--hair: #2b303c;--ink: #eef0f5;--muted: #a6adbb;--faint: #767f90;--accent: #6f9bff;--accent-soft: #1e2536;--pick: #6f9bff;--pick-fg: #12182a;--pill: #2b3550;--accent-line: #47588f;--accent-on: #12182a;--warn-bg: #3a1f1a;--warn-fg: #f0a68a;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:Golos Text,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.45}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}.num{font-variant-numeric:tabular-nums}.display{font-family:Unbounded,Golos Text,sans-serif;letter-spacing:-.015em}.app{overflow-x:hidden;overflow-x:clip;max-width:720px;margin:0 auto;padding:calc(var(--top-inset, 0px) + 62px) 20px calc(var(--dock-height, 150px) + 16px)}.topbar{position:fixed;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:10px;height:calc(var(--top-inset, 0px) + 50px);padding:var(--top-inset, 0px) 20px 0;background:var(--paper);border-bottom:1px solid var(--hair);transform:translateZ(0);backface-visibility:hidden}.topbar .name{font-family:Unbounded,sans-serif;font-size:14px;font-weight:600;letter-spacing:-.01em}.head{margin-bottom:11px}.head .eyebrow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.head .org{font-family:Unbounded,sans-serif;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}.head h1{font-family:Unbounded,sans-serif;font-size:22px;font-weight:600;line-height:1.12;letter-spacing:-.015em;margin:0}.head p{margin:5px 0 0;font-size:13px;color:var(--faint)}.who{font-size:13.5px;font-weight:600;color:var(--muted);white-space:nowrap}.week{display:flex;gap:6px;margin-bottom:11px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.week::-webkit-scrollbar{display:none}.week button[data-today=true]{border-color:var(--accent)}.week button[data-off]:not(.on) .wd,.week button[data-off]:not(.on) .dnum{color:var(--faint)}.week button{transition:background .18s ease,border-color .18s ease,color .18s ease,transform .12s ease;flex:0 0 52px;scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 0 8px;border-radius:13px;background:var(--card);border:1px solid var(--hair);min-height:56px}.week button.on{background:var(--pick);border-color:transparent;color:var(--pick-fg)}.monthmark{flex:0 0 auto;align-self:center;padding:0 4px;font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);writing-mode:vertical-rl;text-orientation:mixed}.week .wd{font-size:10px;letter-spacing:.07em;text-transform:uppercase;opacity:.72}.week .dnum{font-size:16px;font-weight:600;line-height:1}.marks{display:flex;align-items:center;justify-content:center;gap:2px;height:4px}@keyframes dot-in{0%{opacity:0;transform:scale(.4)}}.marks i{width:3.5px;height:3.5px;border-radius:50%;background:var(--accent);animation:dot-in .18s both ease-out}@media(prefers-reduced-motion:reduce){.marks i{animation:none}}.week button.on .marks i,.calday[aria-pressed=true] .marks i{background:var(--pick-fg);opacity:.75}.calday[data-today=true] .marks i{background:var(--accent)}.lessons{display:flex;flex-direction:column;gap:7px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.lesson,.gap{animation:rise .4s both cubic-bezier(.22,.61,.36,1)}.lesson:nth-child(2),.gap:nth-child(2){animation-delay:.05s}.lesson:nth-child(3),.gap:nth-child(3){animation-delay:.1s}.lesson:nth-child(4),.gap:nth-child(4){animation-delay:.15s}.lesson:nth-child(n+5),.gap:nth-child(n+5){animation-delay:.2s}@media(prefers-reduced-motion:reduce){.lesson,.gap{animation:none}.tabs button:active,.monthnav button:active,.week button:active,.calday:active{transform:none}}.lesson{display:flex;gap:12px;align-items:stretch}.lesson .when{flex:none;width:50px;padding-top:10px;text-align:right}.lesson .from{font-size:14px;font-weight:600;line-height:1.1}.lesson .to{font-size:11.5px;color:var(--faint);margin-top:2px}.lesson .body{flex:1;min-width:0;border-radius:16px;background:var(--card);border:1px solid var(--hair);padding:9px 12px 10px;position:relative;overflow:hidden}.lesson.now .body{background:var(--accent-soft);border-color:var(--accent)}.lesson.gap.now .body{border-style:solid;border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.lesson.now .body:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}.lesson .top{display:flex;align-items:center;gap:7px;margin-bottom:7px}.tag{display:inline-block;vertical-align:2px;margin-right:6px;font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:5px;background:var(--chip);color:var(--muted)}.tag.solid{background:var(--accent);color:var(--accent-on)}.tag.warn{background:var(--warn-bg);color:var(--warn-fg)}.lesson .name{font-size:14px;font-weight:600;line-height:1.3;text-wrap:wrap}.lesson .meta{margin-top:5px;display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;font-size:11.5px;color:var(--muted)}.parallel{margin-top:9px;padding-top:9px;border-top:1px dashed var(--hair)}.meta.warn{color:var(--warn-fg)}.part{position:relative;display:block;width:100%;text-align:left;font:inherit;color:inherit}.part[data-link]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.part[data-link]:after{content:"";position:absolute;inset:-3px -5px;border-radius:11px;background:var(--accent);opacity:0;transition:opacity .16s ease;pointer-events:none}.part[data-link]:active:after{opacity:.08}.part.parallel[data-link]:after{top:3px}.part[data-link]:not(:last-child):after{bottom:-6px}.part[data-link] .meta,.part[data-link] .name:last-child,.body[data-clip]>.meta{padding-right:34px}.clip{position:absolute;right:-12px;bottom:-6px;width:52px;height:26px;display:flex;align-items:flex-end;justify-content:flex-end;padding:0 6px 6px 0;color:var(--accent);pointer-events:none}.part:last-child .clip{bottom:-10px;height:30px;padding-bottom:6px}.clip:before{border-top-left-radius:52px 26px}.part:last-child .clip:before{border-top-left-radius:52px 30px}.clip:before{content:"";position:absolute;inset:0;background:var(--accent);opacity:.16;-webkit-mask-image:radial-gradient(58px 58px at 100% 100%,#000 62%,transparent 100%);mask-image:radial-gradient(58px 58px at 100% 100%,#000 62%,transparent 100%)}.swatches{display:flex;justify-content:space-between;flex-wrap:nowrap;gap:3px;margin-top:12px;padding:3px 0}.swatch{flex:0 1 32px;min-width:26px;aspect-ratio:1;height:auto;border-radius:50%;background:var(--dot);box-shadow:inset 0 0 0 1px #0000001f;transition:transform .12s ease,box-shadow .18s ease}.swatch[aria-pressed=true]{box-shadow:inset 0 0 0 1px #0000001f,0 0 0 2px var(--paper),0 0 0 4px var(--dot)}.swatch:active{transform:scale(.9)}.gap .body{display:flex;align-items:center;justify-content:center;background:transparent;border-style:dashed;color:var(--faint);font-size:12.5px;min-height:46px}.gap .when{opacity:.55}.card{border-radius:16px;background:var(--card);border:1px solid var(--hair);padding:14px 15px 15px;margin-bottom:10px}.card .row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.card .stamp{font-size:11.5px;color:var(--faint)}.card .title{font-size:15px;font-weight:600;line-height:1.3}.card .text{margin-top:6px;font-size:13.5px;line-height:1.45;color:var(--muted);text-wrap:pretty;white-space:pre-line}.card .text,.card .before,.card .after{word-break:break-word;overflow-wrap:anywhere}.card .before{font-size:13.5px;line-height:1.4;color:var(--faint);text-decoration:line-through;text-decoration-color:var(--hair)}.card .after{font-size:14px;line-height:1.4;font-weight:600;margin-top:5px}.swipe{min-height:max(30vh,calc(100vh - var(--top-inset, 0px) - var(--dock-height, 150px) - 168px));min-height:max(30vh,calc(100dvh - var(--top-inset, 0px) - var(--dock-height, 150px) - 168px))}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:max(34vh,calc(100vh - var(--top-inset, 0px) - var(--dock-height, 150px) - 152px));min-height:max(34vh,calc(100dvh - var(--top-inset, 0px) - var(--dock-height, 150px) - 152px));margin-top:0;text-align:center;color:var(--faint);animation:rise .42s both cubic-bezier(.22,.61,.36,1)}.empty strong{display:block;font-family:Unbounded,sans-serif;font-size:17px;font-weight:600;color:var(--ink)}.empty span{display:block;margin-top:6px;font-size:13px}.error{background:var(--warn-bg);color:var(--warn-fg);border-radius:14px;padding:13px 15px;margin-bottom:10px;font-size:13.5px}.section{margin-bottom:18px}.section>h2{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:0 0 8px}.choice{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:13px 14px;border-radius:14px;background:var(--card);border:1px solid var(--hair);margin-bottom:7px}.choice[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.choice .radio{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--hair);display:flex;align-items:center;justify-content:center}.choice[aria-pressed=true] .radio{border-color:var(--accent)}.rolebody{animation:rise .4s both cubic-bezier(.22,.61,.36,1)}@media(prefers-reduced-motion:reduce){.rolebody{animation:none}}.cards .card{animation:rise .44s both cubic-bezier(.22,.61,.36,1)}.cards .card:nth-child(2){animation-delay:.06s}.cards .card:nth-child(3){animation-delay:.12s}.cards .card:nth-child(4){animation-delay:.18s}.cards .card:nth-child(5){animation-delay:.24s}.cards .card:nth-child(n+6){animation-delay:.3s}@media(prefers-reduced-motion:reduce){.cards .card,.seasonal{animation:none}}.choice .radio i{transition:transform .18s cubic-bezier(.22,1,.36,1),background .18s ease;transform:scale(0)}.choice[aria-pressed=true] .radio i{transform:scale(1)}.choice .radio i{width:8px;height:8px;border-radius:50%;background:transparent}.choice[aria-pressed=true] .radio i{background:var(--accent)}.choice strong{display:block;font-size:14.5px;font-weight:600}.choice small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}.seg{display:flex;gap:7px}.inputrow{display:flex;gap:8px;align-items:stretch}.okbtn{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:68px;min-height:44px;padding:0 18px;border-radius:12px;background:var(--accent);color:var(--accent-on);font-weight:600;transition:opacity .18s ease,transform .12s ease}.okbtn:disabled{opacity:.45}.okbtn:active:not(:disabled){transform:scale(.96)}.seg button{flex:1;padding:11px 0;border-radius:13px;font-size:14px;font-weight:600;background:var(--card);border:1px solid var(--hair);min-height:44px}.seg button[aria-pressed=true]{background:var(--pick);border-color:transparent;color:var(--pick-fg)}.switch{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 14px;border-radius:14px;background:var(--card);border:1px solid var(--hair)}.switch .track{flex:none;width:46px;height:27px;border-radius:999px;background:var(--hair);position:relative;transition:background .18s}.switch[aria-pressed=true] .track{background:var(--accent)}.switch .knob{position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #10141e47;transition:left .18s}.switch[aria-pressed=true] .knob{left:22px}.search{margin-bottom:10px}.fieldrow{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px}.fieldname{font-size:15px;font-weight:600}.pickval{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:var(--card);border:1px solid var(--hair);font-size:16px;font-variant-numeric:tabular-nums;transition:background .18s ease,transform .12s ease}.pickval b{font-weight:600}.pickval:active:not(:disabled){background:var(--chip);transform:scale(.96)}.courses{display:flex;gap:6px;margin-bottom:10px}.courses button{flex:1 1 0;min-height:42px;border-radius:12px;background:var(--card);border:1px solid var(--hair);font-size:15px;font-weight:600;transition:background .18s ease,border-color .18s ease,transform .12s ease}.courses button.on{background:var(--pick);border-color:transparent;color:var(--pick-fg)}.courses button:active:not(:disabled){transform:scale(.94)}.chev{width:7px;height:7px;border-right:2px solid var(--faint);border-bottom:2px solid var(--faint);transform:rotate(45deg) translate(-2px,-2px);flex:0 0 auto}.sheetwrap{position:fixed;inset:0;z-index:100;background:#0000006b;animation:veil .18s ease both}.sheet{position:absolute;left:0;right:0;display:flex;flex-direction:column;padding:8px 14px calc(14px + env(safe-area-inset-bottom));background:var(--paper);border-radius:20px 20px 0 0;box-shadow:0 -12px 40px #00000038;animation:sheet-up .24s cubic-bezier(.16,1,.3,1) both;transition:bottom .18s ease,max-height .18s ease}.grab{width:38px;height:4px;margin:2px auto 10px;border-radius:2px;background:var(--hair)}.sheethead{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}.sheethead b{font-size:17px}.sheethead span{font-size:13px;color:var(--faint)}.sheetlist{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;margin:0 -14px;padding:4px 14px 0}@keyframes veil{0%{opacity:0}}@keyframes sheet-up{0%{transform:translateY(100%)}}@media(prefers-reduced-motion:reduce){.sheet,.sheetwrap{animation:none}}.groupgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}.groupgrid button{min-height:46px;border-radius:12px;background:var(--card);border:1px solid var(--hair);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;transition:background .18s ease,border-color .18s ease,transform .12s ease}.groupgrid button.on{background:var(--pick);border-color:transparent;color:var(--pick-fg)}.groupgrid button:active:not(:disabled){transform:scale(.94)}.empty-inline{padding:14px 2px;color:var(--faint);font-size:13.5px}.keyboard-room{height:42vh}select,input{font:inherit;color:inherit;background:var(--card);border:1px solid var(--hair);border-radius:12px;padding:11px 12px;width:100%;min-height:44px}.dock .monthnav{display:flex;align-items:stretch;gap:7px;margin:0;padding:9px 12px 3px;height:var(--strip-slot, 73px);min-height:62px}.monthnav button{transition:background .18s ease,color .18s ease,border-color .18s ease,transform .12s ease;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:14px;background:var(--chip);color:var(--ink);font-size:14px;min-height:44px}.monthnav button:first-child,.monthnav button:last-child{flex:none;width:54px;color:var(--muted)}.monthnav button:nth-child(2){flex:1;font-weight:600}.monthnav button:nth-child(2).here{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.calhead-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}@keyframes cal-next{0%{opacity:0;transform:translate(18px)}}@keyframes cal-prev{0%{opacity:0;transform:translate(-18px)}}.cal[data-dir=next]{animation:cal-next .36s both cubic-bezier(.16,1,.3,1)}.cal[data-dir=prev]{animation:cal-prev .36s both cubic-bezier(.16,1,.3,1)}@media(prefers-reduced-motion:reduce){.cal[data-dir=next],.cal[data-dir=prev]{animation:none}}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calhead{text-align:center;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);padding-bottom:3px}.calday{transition:background .18s ease,border-color .18s ease,transform .12s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:50px;border-radius:12px;background:var(--card);border:1px solid var(--hair);font-size:16px}.calday[data-outside=true]{background:transparent;border-color:transparent;color:var(--faint);opacity:.55}.calday[aria-pressed=true]{background:var(--pick);border-color:transparent;color:var(--pick-fg)}.calday[data-today=true]{background:var(--card);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}.legend{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 2px 8px;font-size:12px;color:var(--faint)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend .marks i{width:5px;height:5px}.dock{position:fixed;left:0;right:0;bottom:0;z-index:4;background:var(--paper);border-top:1px solid var(--hair);transform:translateZ(0);backface-visibility:hidden}.dock .week{margin:0;padding:9px 12px 3px}.tabs{padding:6px 0 calc(14px + env(safe-area-inset-bottom))}.tabsrow{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.tabs button+button:before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:1px;background:var(--hair)}.tabs button{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:58px;color:var(--faint);transition:color .18s ease,transform .12s ease}.tabpill{position:absolute;top:2px;bottom:2px;left:0;width:20%;border-radius:14px;background:var(--pill);transition:transform .26s cubic-bezier(.22,1,.36,1);pointer-events:none}.tabpill[data-edge=left]{border-top-left-radius:0;border-bottom-left-radius:0}.tabpill[data-edge=right]{border-top-right-radius:0;border-bottom-right-radius:0}@media(prefers-reduced-motion:reduce){.tabpill{transition:none}}.tabs button:active,.monthnav button:active,.week button:active,.calday:active{transform:scale(.94)}.tabs button.on{color:var(--accent);font-weight:600}@media(min-width:900px){.app{max-width:1200px;padding:26px 30px 40px}.topbar{display:none}.dock{position:static;border-top:none;border-bottom:1px solid var(--hair);margin-bottom:18px}.tabsrow{display:flex;justify-content:flex-start;gap:4px}.tabpill{display:none}.tabs{position:static;border-top:none;border-bottom:1px solid var(--hair);padding:0 0 10px;margin-bottom:18px}.tabs button{padding:9px 14px;border-radius:11px;min-height:44px}.tabs button.on{background:var(--accent-soft)}.head h1{font-size:28px}.grid{display:grid;grid-template-columns:62px repeat(6,minmax(0,1fr));gap:10px}.grid .colhead{padding:9px 12px;border-radius:12px;background:var(--chip)}.grid .colhead[data-today=true]{background:var(--pick);color:var(--pick-fg)}.grid .colhead .wd{font-size:11px;letter-spacing:.07em;text-transform:uppercase;opacity:.72}.grid .colhead .dnum{font-size:17px;font-weight:600;margin-top:2px}.grid .slot{padding-top:12px;font-size:12.5px;color:var(--faint);text-align:right;line-height:1.5;white-space:pre-line}.grid .cell{min-height:84px;border-radius:14px;border:1px solid transparent}.grid .cell.filled{background:var(--card);border-color:var(--hair);padding:11px 12px 12px}.grid .cell.filled .name{font-size:13px;font-weight:600;line-height:1.3;margin-top:7px;text-wrap:wrap}.grid .cell.filled .meta{font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.35}}.calpage{display:flex;flex-direction:column;min-height:calc(100vh - var(--dock-tall, 230px) - var(--top-inset, 0px) - 74px);min-height:calc(100dvh - var(--dock-tall, 230px) - var(--top-inset, 0px) - 74px)}.seasonal{position:relative;flex:1 1 auto;min-height:96px;animation:dawn .9s both ease-out;margin:14px -20px -16px;overflow:hidden;pointer-events:none;animation:dawn 1.1s both ease-out}@keyframes dawn{0%{opacity:0}}.seasonal:before,.seasonal:after{content:"";position:absolute;top:0;bottom:0;width:46px;z-index:2}.seasonal:before{left:0;background:linear-gradient(to right,var(--paper),transparent)}.seasonal:after{right:0;background:linear-gradient(to left,var(--paper),transparent)}.seasonal .scene{position:absolute;inset:0;width:100%;height:100%}.seasonal .veil{position:absolute;left:0;right:0;top:0;height:44px;z-index:2;background:linear-gradient(to bottom,var(--paper),transparent)}.seasonal .sway{animation:sway var(--dur, 7s) ease-in-out infinite alternate}@keyframes sway{0%{transform:rotate(-1deg)}to{transform:rotate(1deg)}}.seasonal .grass{animation:wave var(--dur, 3.6s) ease-in-out infinite alternate}@keyframes wave{0%{transform:skew(-9deg)}to{transform:skew(9deg)}}.seasonal .cloud{animation:drift var(--dur, 90s) linear infinite;will-change:transform}@keyframes drift{0%{transform:translate(-165px);opacity:0}7%{opacity:1}93%{opacity:1}to{transform:translate(560px);opacity:0}}.seasonal .flock{animation:fly var(--dur, 46s) linear infinite;will-change:transform}@keyframes fly{0%{transform:translate(-110px,8px);opacity:0}8%{opacity:1}50%{transform:translate(195px,-7px)}92%{opacity:1}to{transform:translate(500px,5px);opacity:0}}.seasonal .bird{transform-box:fill-box;transform-origin:center;animation:flap .72s ease-in-out infinite alternate}@keyframes flap{0%{transform:scaleY(1)}to{transform:scaleY(-.55)}}.seasonal .puff{transform-box:fill-box;transform-origin:center;animation:puff 5.1s linear infinite;will-change:transform,opacity}@keyframes puff{0%{transform:translate(0) scale(.45);opacity:0}14%{opacity:.6}to{transform:translate(7px,-24px) scale(1.8);opacity:0}}.seasonal .star{animation:twinkle var(--dur, 3s) ease-in-out infinite alternate}@keyframes twinkle{0%{opacity:.2}to{opacity:1}}.seasonal i,.ambient i{position:absolute;top:0;height:100%;line-height:0;opacity:0;animation-iteration-count:infinite;animation-timing-function:linear;will-change:transform,opacity}.seasonal i svg,.ambient i svg{display:block;overflow:visible}.seasonal i[data-rock] svg,.ambient i[data-rock] svg{animation:rock var(--rock, 2s) ease-in-out infinite alternate;animation-delay:var(--rock-delay, 0s)}@keyframes rock{0%{transform:rotate(-34deg)}to{transform:rotate(34deg)}}.seasonal i[data-glow] svg,.ambient i[data-glow] svg{animation:glow 2.3s ease-in-out infinite alternate;animation-delay:var(--rock-delay, 0s)}@keyframes glow{0%{opacity:.15;transform:scale(.8)}to{opacity:1;transform:scale(1.1)}}.seasonal i[data-kind=fall],.ambient i[data-kind=fall]{animation-name:leaf}.seasonal i[data-kind=drift],.ambient i[data-kind=drift]{animation-name:flake}.seasonal i[data-kind=float],.ambient i[data-kind=float]{animation-name:waft}.seasonal i[data-kind=hover],.ambient i[data-kind=hover]{animation-name:hover;animation-timing-function:ease-in-out}@keyframes leaf{0%{transform:translate3d(-50%,-8%,0) rotate(0);opacity:0}10%{opacity:.92}76%{opacity:.92}to{transform:translate3d(calc(-50% + var(--drift)),calc(100% - 22px),0) rotate(140deg);opacity:0}}@keyframes flake{0%{transform:translate3d(-50%,-8%,0);opacity:0}10%{opacity:.85}50%{transform:translate3d(calc(-50% + var(--drift)),46%,0)}76%{opacity:.85}to{transform:translate3d(-50%,calc(100% - 18px),0);opacity:0}}@keyframes waft{0%{transform:translate3d(-50%,calc(100% - 26px),0) scale(.9);opacity:0}18%{opacity:.8}72%{opacity:.8}to{transform:translate3d(calc(-50% + var(--drift)),-8%,0) scale(1.05);opacity:0}}@keyframes hover{0%{transform:translate3d(-50%,62%,0);opacity:0}16%{opacity:1}40%{transform:translate3d(calc(-50% + var(--drift)),42%,0)}70%{transform:translate3d(calc(-50% - var(--drift)),30%,0)}78%{opacity:1}to{transform:translate3d(-50%,14%,0);opacity:0}}@media(prefers-reduced-motion:reduce){.seasonal i,.ambient i{animation:none;transform:translate3d(-50%,62%,0);opacity:.7}.ambient i{display:none}.seasonal i svg,.seasonal .puff,.seasonal .sway,.seasonal .grass,.seasonal .cloud,.seasonal .flock,.seasonal .bird,.seasonal .star{animation:none}}.toast{position:fixed;left:50%;bottom:calc(var(--dock-height, 150px) + 16px);z-index:120;transform:translate(-50%);max-width:calc(100% - 40px);padding:9px 16px;border-radius:13px;background:var(--ink);color:var(--paper);font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;animation:toast-in .22s both cubic-bezier(.22,1,.36,1)}.toast.gone{animation:toast-out .24s both ease-in}@media(prefers-reduced-motion:reduce){.toast,.toast.gone{animation:none}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}@keyframes toast-out{to{opacity:0;transform:translate(-50%,8px)}}:root[data-shift] *,:root[data-shift] *:before,:root[data-shift] *:after{transition:background-color .3s ease,border-color .3s ease,color .3s ease,fill .3s ease,box-shadow .3s ease!important}:root[data-shift] .tabpill{transition:transform .26s cubic-bezier(.22,1,.36,1)!important}:root[data-shift] .scenery{transition:opacity .7s ease!important}:root[data-shift] .ambient .amb{transition:opacity .5s ease-out!important}@media(prefers-reduced-motion:reduce){:root[data-shift] *,:root[data-shift] *:before,:root[data-shift] *:after,:root[data-shift] .tabpill,:root[data-shift] .scenery,:root[data-shift] .ambient .amb{transition:none!important}}:root[data-motion=off] *,:root[data-motion=off] *:before,:root[data-motion=off] *:after{animation:none!important;transition:none!important}:root[data-motion=off] .ambient,:root[data-motion=off] .seasonal,:root[data-motion=off] .napwrap{display:none}:root[data-motion=off] .nap .zzz~.zzz{display:none}.scenery{position:fixed;left:0;right:0;bottom:calc(var(--dock-tall, 150px) - 2px);height:170px;z-index:-1;pointer-events:none;opacity:0;transition:opacity .7s ease;contain:layout paint}.scenery[data-on=true]{opacity:1}.scenery .seasonal{position:absolute;inset:0;margin:0;min-height:0;animation:none}.ambient{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:layout paint;animation:dawn 1.1s both ease-out}.ambient .amb{position:absolute;opacity:0;transition:opacity .5s ease-out}.ambient .band{left:0;width:200%;height:auto;animation:pan var(--dur, 200s) linear infinite;will-change:transform;transition:opacity .5s ease-out,bottom .5s ease}.ambient .sky{left:0;right:0;top:0;height:46vh}.ambient .disc{right:-22px;top:9%;width:165px;height:165px}.ambient .field{inset:0}.ambient .fill{left:0;right:0;bottom:0;transition:opacity .5s ease-out,height .3s ease}.ambient .amb{opacity:1}@keyframes pan{0%{transform:translate(0)}to{transform:translate(-50%)}}.ambient .halo{transform-box:fill-box;transform-origin:center;animation:halo 11s ease-in-out infinite alternate}@keyframes halo{0%{opacity:.7;transform:scale(.94)}to{opacity:1;transform:scale(1.06)}}@media(prefers-reduced-motion:reduce){.ambient,.ambient .band,.ambient .halo{animation:none}}.empty .napwrap{display:flex;justify-content:center;width:100%;margin-bottom:15px}.napshot{display:block;width:100%;max-width:296px;height:auto;filter:drop-shadow(0 7px 9px rgb(26 28 34 / .16))}:root[data-scheme=dark] .napshot{filter:brightness(.92) drop-shadow(0 7px 12px rgb(0 0 0 / .5))}.nap{display:block;width:100%;max-width:320px;height:auto;border-radius:18px}.nap .breathe{animation:breathe 3.9s ease-in-out infinite alternate}@keyframes breathe{0%{transform:scale(1)}to{transform:scale(1.017)}}.nap .ear{animation:twitch 8.5s ease-in-out infinite}@keyframes twitch{0%,88%{transform:rotate(0)}91%{transform:rotate(-9deg)}94%{transform:rotate(5deg)}97%,to{transform:rotate(0)}}.nap .tail{animation:flick 11s ease-in-out infinite}@keyframes flick{0%,78%{transform:rotate(0)}86%{transform:rotate(-5deg)}93%{transform:rotate(2deg)}to{transform:rotate(0)}}.nap .zzz{animation:zzz 6s linear infinite}@keyframes zzz{0%{transform:translate(0) scale(.5);opacity:0}18%{opacity:.9}70%{opacity:.5}to{transform:translate(17px,-42px) scale(1.15);opacity:0}}.nap .tick{animation:tick 60s steps(60) infinite}@keyframes tick{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.nap .puff{transform-box:fill-box;transform-origin:center;animation:puff 5.1s linear infinite}.nap .sway-slow{animation:sway 6.5s ease-in-out infinite alternate}.nap .drop{animation:drop 7.6s linear infinite}@keyframes drop{0%{transform:translateY(-8px);opacity:0}18%{opacity:.95}78%{opacity:.95}to{transform:translate(var(--dx, 4px),46px);opacity:0}}@media(prefers-reduced-motion:reduce){.nap .zzz~.zzz{display:none}.nap .breathe,.nap .ear,.nap .tail,.nap .zzz,.nap .tick,.nap .puff,.nap .sway-slow,.nap .drop{animation:none}}.mecard{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:16px;border-radius:16px;background:var(--card);border:1px solid var(--hair)}.avatar{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:17px;font-weight:700}.mename{display:flex;flex-direction:column;gap:2px;min-width:0}.mename strong{font-size:15.5px;font-weight:600}.mename small{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:20px;padding:13px 14px;border-radius:16px;background:var(--card);border:1px solid var(--hair);text-align:left}.channel span:first-child{display:flex;flex-direction:column;gap:2px}.channel strong{font-size:14.5px;font-weight:600}.channel small{font-size:12.5px;color:var(--muted)}.channame{flex:0 0 auto;font-size:14px;font-weight:600;color:var(--accent)}.channel:active{background:var(--chip)}.welcome{margin:24px 0;padding:22px 18px;border-radius:18px;background:var(--card);border:1px solid var(--hair);text-align:center}.welcome h2{margin:0 0 8px;font-size:19px}.welcome p{margin:0 0 16px;font-size:14px;line-height:1.45;color:var(--muted)}.welcome .okbtn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:0 22px}.diag{margin:14px 0 0!important;font-size:11px!important;color:var(--faint)!important}.loader{display:flex;align-items:center;justify-content:center;gap:9px;min-height:38vh;animation:rise .22s both ease-out}.loader i{width:9px;height:9px;border-radius:50%;background:var(--accent);opacity:.25;animation:blink 1.15s ease-in-out infinite}.loader i:nth-child(2){animation-delay:.16s}.loader i:nth-child(3){animation-delay:.32s}@keyframes blink{0%,70%,to{transform:scale(.72);opacity:.22}35%{transform:scale(1.15);opacity:.85}}@media(prefers-reduced-motion:reduce){.loader i{animation:none;opacity:.45}}.setup{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:52vh;padding:0 22px;text-align:center;animation:rise .26s both cubic-bezier(.22,.61,.36,1)}.setup .title{font-size:18px;font-weight:600}.setup .text{max-width:300px;font-size:14px;line-height:1.5;color:var(--muted)}.setup .okbtn{margin-top:6px;padding:0 24px}
