:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;--paper:#f6f0e3;--paper-deep:#e8dfcf;--ink:#181712;--muted:#6f6a5f;--acid:#c9ff37;--coral:#ff604d;--blue:#3187ff;--yellow:#ffd63d;--chrome:#f6f0e3eb;--topbar-h:calc(76px + env(safe-area-inset-top));--dock-h:calc(202px + env(safe-area-inset-bottom));font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:var(--paper-deep);width:100%;height:100%;color:var(--ink);margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit}button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.app-shell{background:linear-gradient(135deg, transparent 0 48%, #18171209 48% 52%, transparent 52%) 0 0 / 20px 20px, var(--paper-deep);position:fixed;inset:0;overflow:hidden}.topbar{z-index:30;height:var(--topbar-h);padding:calc(10px + env(safe-area-inset-top)) 14px 9px;border-bottom:2px solid var(--ink);background:var(--chrome);-webkit-backdrop-filter:blur(16px)saturate(1.1);backdrop-filter:blur(16px)saturate(1.1);justify-content:space-between;align-items:center;gap:12px;display:flex;position:fixed;inset:0 0 auto}.brand-block{min-width:0}.brand-block h1,.brand-block p{margin:0}.brand-block h1{letter-spacing:-.06em;white-space:nowrap;text-overflow:ellipsis;max-width:58vw;font-family:FZCuHeiSongS-B-GB,STZhongsong,PingFang SC,sans-serif;font-size:clamp(19px,5.3vw,25px);font-weight:900;line-height:1.03;display:inline-block;position:relative;overflow:hidden}.brand-block h1:after{content:"";z-index:-1;background:var(--acid);height:7px;position:absolute;bottom:-1px;left:2px;right:-3px;transform:rotate(-1deg)skew(-14deg)}.eyebrow{color:var(--muted);letter-spacing:.16em;font-size:9px;font-weight:800;margin-bottom:4px!important}.month-controls{border:2px solid var(--ink);background:var(--paper);box-shadow:3px 3px 0 var(--ink);flex:none;grid-template-columns:34px auto 34px;align-items:center;display:grid}.icon-button,.month-label{cursor:pointer;background:0 0;border:0;height:34px}.icon-button{width:34px;font-size:18px;font-weight:900}.icon-button:active,.month-label:active{background:var(--yellow)}.icon-button:disabled{opacity:.3;cursor:not-allowed;background:#18171212}.month-label{border-inline:2px solid var(--ink);letter-spacing:.08em;min-width:62px;padding:0 8px;font-size:11px;font-weight:900}.canvas-viewport{inset:var(--topbar-h) 0 var(--dock-h);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;position:fixed;overflow:hidden}.canvas-viewport.is-grabbing{cursor:grabbing}.world{transform-origin:0 0;contain:layout style;text-rendering:geometricprecision;width:500px;height:800px;position:absolute}.world-hd{width:500px;height:800px;position:absolute;top:0;left:0}.calendar-sheet{border:3px solid var(--ink);background:var(--paper);grid-template-rows:88px 34px 1fr;display:grid;position:absolute;inset:0;overflow:hidden;box-shadow:12px 14px #181712f0,19px 24px 36px #18171238}.calendar-masthead{border-bottom:3px solid var(--ink);background:linear-gradient(90deg, var(--acid) 0 13%, transparent 13% 100%), var(--paper);grid-template-columns:1fr auto;align-items:end;padding:12px 15px 10px;display:grid;position:relative}.calendar-masthead:after{content:"";border:2px solid var(--ink);background:#ffd63dcc;width:58px;height:18px;position:absolute;top:4px;right:54px;transform:rotate(4deg);box-shadow:3px 3px #18171226}.calendar-title-group{min-width:0}.calendar-kicker{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;margin-bottom:4px;font-size:9px;font-weight:800;display:block}.calendar-masthead h2{letter-spacing:-.09em;margin:0;font-family:Arial Black,PingFang SC,sans-serif;font-size:46px;font-weight:950;line-height:.82}.calendar-masthead h2 em{letter-spacing:-.04em;margin-left:5px;font-family:STKaiti,KaiTi,serif;font-size:19px;font-style:normal}.calendar-side-note{z-index:1;text-align:right;width:132px;margin:0;font-size:9px;font-weight:700;line-height:1.35;position:relative}.calendar-ranking{z-index:2;text-align:center;width:150px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.calendar-ranking-title{border:1px solid var(--ink);background:var(--yellow);box-shadow:1px 1px 0 var(--ink);letter-spacing:.08em;padding:2px 5px;font-size:7px;font-weight:950;line-height:1;display:inline-block}.calendar-ranking-list{min-height:13px;color:var(--muted);white-space:nowrap;justify-content:center;gap:4px;margin-top:3px;font-size:6px;font-weight:800;line-height:1.2;display:flex;overflow:hidden}.calendar-ranking-entry{text-overflow:ellipsis;max-width:48px;overflow:hidden}.weekday-row{border-bottom:2px solid var(--ink);background:var(--ink);color:var(--paper);grid-template-columns:repeat(7,1fr);display:grid}.weekday-row span{letter-spacing:.08em;border-right:1px solid #f6f0e347;place-items:center;font-size:9px;font-weight:900;display:grid}.weekday-row span:last-child{border-right:0}.day-grid{grid-template-rows:repeat(6,1fr);grid-template-columns:repeat(7,1fr);display:grid}.day-cell{border:0;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);text-align:left;cursor:pointer;background:#ffffff24;min-width:0;position:relative;overflow:hidden}.day-cell:nth-child(7n){border-right:0}.day-cell:nth-last-child(-n+7){border-bottom:0}.day-cell.is-ghost{cursor:default;background:repeating-linear-gradient(135deg,#18171209 0 5px,#0000 5px 10px),#18171206}.day-cell.is-weekend:not(.is-ghost){background:#ff604d0e}.day-cell.is-today{background:color-mix(in srgb, var(--acid) 22%, var(--paper))}.day-cell.is-future:not(.is-ghost){color:#1817129e;background:repeating-linear-gradient(135deg,#18171209 0 4px,#0000 4px 9px),#ffffff14}.day-cell.is-selected:after{content:"";z-index:2;pointer-events:none;border:3px solid #3187ff26;position:absolute;inset:3px}.day-number{font-family:Arial Black,PingFang SC,sans-serif;font-size:19px;font-weight:950;line-height:1;position:absolute;bottom:5px;left:6px}.day-cell.is-today .day-number:after{content:"今天";border:1.5px solid var(--ink);background:var(--coral);color:#fff;vertical-align:3px;margin-left:4px;padding:2px 3px;font-family:PingFang SC,sans-serif;font-size:7px;line-height:1;display:inline-block}.day-score{z-index:10;pointer-events:none;position:absolute;top:5px;left:5px;right:5px}.day-score-copy{letter-spacing:-.02em;white-space:nowrap;justify-content:space-between;align-items:baseline;gap:2px;margin-bottom:3px;font-size:6px;font-weight:900;display:flex}.day-score-value{font-size:7px}.day-score.is-over .day-score-value{color:#d52816}.sticker-layer{z-index:8;pointer-events:none;position:absolute;inset:0}.placed-sticker{width:19.2px;height:19.2px;transform:translate(-50%, -50%) rotate(var(--rotation)) scale(var(--sticker-scale));transform-origin:50%;pointer-events:auto;cursor:pointer;filter:drop-shadow(3px 4px 1px #18171233);background:0 0;border:0;padding:0;position:absolute}.placed-sticker.is-mine{pointer-events:auto;cursor:grab;touch-action:none}.placed-sticker.is-job-wild{width:28.8px;height:28.8px}.placed-sticker.is-dragging{cursor:grabbing;filter:drop-shadow(8px 12px 5px #18171247);z-index:999!important}.placed-sticker.is-selected:after{content:"";border:2px dashed var(--blue);border-radius:50%;animation:8s linear infinite selection-spin;position:absolute;inset:-3px}.sticker-art{object-fit:contain;image-rendering:auto;pointer-events:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.canvas-chrome{z-index:20;pointer-events:none;flex-wrap:wrap;gap:7px;max-width:calc(100% - 20px);display:flex;position:absolute;top:10px;left:10px}.chip-button{border:2px solid var(--ink);height:31px;box-shadow:2px 2px 0 var(--ink);cursor:pointer;pointer-events:auto;background:#f6f0e3f2;border-radius:99px;padding:0 11px;font-size:11px;font-weight:900}.chip-button:active{box-shadow:0 0 0 var(--ink);transform:translate(2px,2px)}.chip-button--accent{background:var(--acid)}.chip-button--danger{background:var(--coral);color:#fff}.connection-badge{z-index:20;border:1.5px solid var(--ink);pointer-events:none;background:#f6f0e3e6;border-radius:99px;align-items:center;gap:6px;min-height:26px;padding:5px 9px;font-size:9px;font-weight:800;display:flex;position:absolute;bottom:10px;right:10px;box-shadow:2px 2px #181712e6}.connection-dot{background:var(--yellow);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 2px #ffd63d47}.connection-badge.is-online .connection-dot{background:#47c96a;box-shadow:0 0 0 2px #47c96a3d}.connection-badge.is-local .connection-dot{background:var(--blue);box-shadow:0 0 0 2px #3187ff38}.sticker-dock{z-index:40;height:var(--dock-h);padding:10px 10px calc(8px + env(safe-area-inset-bottom));border-top:3px solid var(--ink);background:var(--chrome);-webkit-backdrop-filter:blur(18px)saturate(1.12);backdrop-filter:blur(18px)saturate(1.12);position:fixed;inset:auto 0 0}.dock-copy{justify-content:space-between;align-items:baseline;gap:8px;padding:0 4px 7px;display:flex}.dock-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.2;overflow:hidden}.dock-copy span{color:var(--muted);flex:none;font-size:9px;font-weight:700}.sticker-picker{overscroll-behavior-x:contain;scrollbar-width:none;scroll-snap-type:x proximity;touch-action:pan-x;-webkit-overflow-scrolling:touch;grid-auto-columns:66px;grid-auto-flow:column;gap:9px;padding:1px 4px 7px;scroll-padding-inline:4px;display:grid;overflow-x:auto}.sticker-picker::-webkit-scrollbar{display:none}.job-sticker-section{border-top:1.5px solid #181712ad;margin:0 4px;padding-top:6px;display:block}.job-sticker-picker{grid-auto-columns:76px;gap:7px;padding:0 3px}.sticker-choice.job-sticker-choice{height:35px;box-shadow:2px 2px 0 var(--ink);border-radius:8px 8px 4px 4px;padding:2px 3px}.sticker-choice.job-sticker-choice img{width:68px;height:29px;margin:0 auto}.sticker-choice.job-sticker-choice span{margin-top:0;font-size:7px}.sticker-choice{border:2px solid var(--ink);background:var(--paper);height:70px;box-shadow:3px 3px 0 var(--ink);cursor:pointer;scroll-snap-align:start;touch-action:pan-x;border-radius:12px 12px 5px 5px;padding:4px 5px 3px;position:relative;overflow:hidden}.sticker-choice:before{content:"";pointer-events:none;background:linear-gradient(145deg,#ffffff80,#0000 48%);position:absolute;inset:0}.sticker-choice img{object-fit:contain;pointer-events:none;-webkit-user-drag:none;width:47px;height:47px;margin:-1px auto 0;display:block}.sticker-choice span{text-align:center;text-overflow:ellipsis;white-space:nowrap;margin-top:-1px;font-size:9px;font-weight:900;line-height:1.1;display:block;position:relative;overflow:hidden}.sticker-choice:active{box-shadow:none;transform:translate(3px,3px)}.sticker-choice:disabled{opacity:.42;filter:grayscale(.75);cursor:not-allowed}.picker-drag-ghost{z-index:90;object-fit:contain;filter:drop-shadow(7px 10px 4px #18171247);pointer-events:none;will-change:transform;width:76px;height:76px;margin:-38px 0 0 -38px;position:fixed}.day-cell.is-drop-target:after{content:"放这里";z-index:4;border:3px dashed var(--blue);color:var(--blue);background:#3187ff1f;place-items:center;font-size:9px;font-weight:950;display:grid;position:absolute;inset:3px}.challenge-backdrop{z-index:120;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#18171275;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.challenge-backdrop[hidden]{display:none}.challenge-card{border:3px solid var(--ink);background:var(--paper);width:min(100%,360px);box-shadow:9px 10px 0 var(--ink);padding:22px;transform:rotate(-.6deg)}.challenge-card h2,.challenge-card p{margin:0}.challenge-card h2{letter-spacing:-.06em;margin:5px 0 6px;font-family:FZCuHeiSongS-B-GB,STZhongsong,PingFang SC,sans-serif;font-size:25px}.challenge-card>p{color:var(--muted);font-size:12px;font-weight:700}.challenge-kicker{border:2px solid var(--ink);background:var(--coral);color:#fff;letter-spacing:.12em;padding:3px 6px;font-size:9px;font-weight:900;display:inline-block}.challenge-question{border-block:3px solid var(--ink);background:var(--acid);text-align:center;letter-spacing:.02em;margin:20px 0 16px;padding:16px;font-family:Arial Black,sans-serif;font-size:38px;font-weight:950;line-height:1}.challenge-answer{border:2px solid var(--ink);background:#fff;grid-template-columns:52px 1fr;align-items:center;display:grid}.challenge-answer span{border-right:2px solid var(--ink);background:var(--yellow);align-self:stretch;place-items:center;font-size:12px;font-weight:900;display:grid}.challenge-answer input{background:0 0;border:0;outline:0;width:100%;height:46px;padding:0 12px;font-family:Arial Black,sans-serif;font-size:24px}.challenge-answer:focus-within{box-shadow:0 0 0 3px var(--blue)}.challenge-error{min-height:18px;color:#c52212!important;margin-top:7px!important;font-size:11px!important}.challenge-actions{grid-template-columns:1fr 1.35fr;gap:9px;margin-top:9px;display:grid}.challenge-actions button{border:2px solid var(--ink);cursor:pointer;height:42px;font-size:12px;font-weight:900}.challenge-cancel{background:var(--paper)}.challenge-submit{background:var(--coral);color:#fff;box-shadow:3px 3px 0 var(--ink)}.challenge-submit:disabled{opacity:.45;cursor:wait}.toast{z-index:100;left:50%;bottom:calc(var(--dock-h) + 15px);border:2px solid var(--ink);background:var(--ink);max-width:min(86vw,360px);color:var(--paper);box-shadow:5px 5px 0 var(--coral);text-align:center;opacity:0;pointer-events:none;border-radius:7px;padding:10px 13px;font-size:12px;font-weight:800;line-height:1.4;position:fixed;transform:translate(-50%,14px)}@keyframes selection-spin{to{transform:rotate(360deg)}}@media (min-width:760px){:root{--topbar-h:86px;--dock-h:184px}.topbar{padding-inline:24px}.brand-block h1{font-size:27px}.canvas-chrome{top:18px;left:18px}.connection-badge{bottom:18px;right:18px}.sticker-dock{grid-template:"copy stickers"78px"jobs jobs"58px/minmax(190px,.7fr) minmax(390px,1fr);align-items:center;gap:28px;padding-inline:max(24px,50vw - 460px);display:grid}.dock-copy{grid-area:copy;display:block}.dock-copy strong,.dock-copy span{display:block}.dock-copy strong{margin-bottom:6px;font-size:16px}.sticker-picker{grid-area:stickers;justify-content:end}.job-sticker-section{grid-area:jobs;align-self:stretch;margin:0;padding-top:6px}.job-sticker-picker{grid-area:auto;justify-content:end}}@media (max-height:640px){:root{--topbar-h:calc(66px + env(safe-area-inset-top));--dock-h:calc(164px + env(safe-area-inset-bottom))}.eyebrow{display:none}.sticker-dock{padding-top:6px}.dock-copy{padding-bottom:4px}.sticker-choice{height:51px}.sticker-choice img{width:34px;height:34px}.job-sticker-section{padding-top:3px}.sticker-choice.job-sticker-choice{height:35px}.sticker-choice.job-sticker-choice img{width:68px;height:29px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
