@font-face{font-family:Fragment Mono;src:url(/class-board/assets/FragmentMono-Regular-CQGFFnOf.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--ink:#000;--paper:#fff;--panel:#ececeb;--hair:1px;--bg:var(--paper);--surface:var(--paper);--border:var(--ink);--text:var(--ink);--text-muted:#6b6b6b;--accent:var(--ink);--danger:#c8102e;--radius:0;--font:"Fragment Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--topbar-h:40px;--z-world:1;--z-cursors:10;--z-hint:15;--z-topbar:20;--z-banner:25;--z-modal:30;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{overscroll-behavior:none;background:var(--paper);color:var(--ink);font:12px/1.3 var(--font);-webkit-font-smoothing:antialiased;overflow:hidden}h1,h2,h3,p{margin:0}button,input,textarea,select{font:inherit;color:inherit}button{border:var(--hair) solid var(--ink);color:var(--ink);letter-spacing:.06em;cursor:pointer;background:0 0;border-radius:0;padding:2px 8px}button:disabled{opacity:.35;cursor:default}input[type=text],input[type=password],input[type=url],input:not([type]),textarea{border:var(--hair) solid var(--ink);background:var(--paper);color:var(--ink);border-radius:0;padding:3px 6px}input::placeholder,textarea::placeholder{color:var(--text-muted)}img{max-width:100%;display:block}[hidden]{display:none!important}:focus-visible{outline:var(--hair) solid var(--ink);outline-offset:2px}#app{flex-direction:column;display:flex;position:fixed;inset:0}#topbar{z-index:var(--z-topbar);height:var(--topbar-h);background:var(--paper);border-bottom:var(--hair) solid var(--ink);flex:none;position:relative}#viewport{touch-action:none;background:var(--paper);-webkit-user-select:none;user-select:none;flex:auto;min-height:0;position:relative;overflow:hidden}#world{z-index:var(--z-world);transform-origin:0 0;will-change:transform;--line:calc(1px / var(--cam-s,1));position:absolute;top:0;left:0}#tiles{width:5232px;height:2992px;position:relative}#cursor-layer{z-index:var(--z-cursors);pointer-events:none;position:absolute;inset:0;overflow:hidden}#hint{z-index:var(--z-hint);background:var(--ink);max-width:calc(100% - 32px);color:var(--paper);letter-spacing:.04em;white-space:nowrap;pointer-events:none;visibility:hidden;opacity:0;padding:5px 12px;font-size:10px;transition:opacity .18s,visibility 0s linear .18s;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}#hint.is-visible{visibility:visible;opacity:1;transition:opacity .18s}#app>#banner{top:calc(var(--topbar-h) + 10px);z-index:var(--z-banner);pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:min(520px,100% - 32px);display:flex;position:fixed;bottom:auto;left:50%;transform:translate(-50%)}#app>#banner>*{pointer-events:auto}#modal-root{z-index:var(--z-modal);position:relative}.tile-body:popover-open{background:var(--paper);width:100vw;max-width:none;height:100vh;max-height:none;color:var(--ink);border:0;border-radius:0;outline:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.tile-body:popover-open:after{display:none}.tile-body:popover-open::backdrop{background:0 0}.tile-body:popover-open .tile-frame{position:absolute;inset:0}.tile-body:popover-open iframe{width:100%;height:100%;transform:none}.tile-body:popover-open .tile-shield{display:none}.focus-back{z-index:5;border:var(--hair) solid var(--ink);background:var(--paper);color:var(--ink);font:400 11px/1.4 var(--font);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border-radius:0;padding:2px 8px;position:fixed;top:10px;left:10px}.focus-back:hover{background:var(--ink);color:var(--paper)}.focus-back[hidden]{display:none}.tile.is-focus .tile-label,.tile.is-focus .tile-actions{visibility:hidden}.tile.is-focus:not(.is-live) .tile-card{visibility:visible;width:100%;height:100%;position:absolute;inset:0}.tile.is-focus:not(.is-live) .tile-card img{object-fit:contain;width:100%;height:100%}.tile.is-focus:not(.is-live) .tile-actions{z-index:4;visibility:visible;opacity:1;pointer-events:none;background:0 0;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.tile.is-focus:not(.is-live) .tile-actions>*{display:none}.tile.is-focus:not(.is-live) .tile-actions>[data-action=open]{border-width:var(--hair);letter-spacing:.06em;pointer-events:auto;padding:3px 12px;font-size:11px;display:inline-flex}:is(.tile-body:popover-open .tile-blank-hint,.tile-body:popover-open .tile-hint){border-width:var(--hair);font-size:10px}.tile{border-radius:0;flex-direction:column;display:flex;position:absolute}.tile:focus-visible{outline:calc(2 * var(--line)) solid var(--ink);outline-offset:calc(3 * var(--line))}.tile-label{align-items:flex-end;gap:clamp(3px, calc(7px / var(--cam-s,1)), 28px);height:32px;padding:0 0 clamp(2px, calc(5px / var(--cam-s,1)), 8px);color:var(--ink);letter-spacing:.04em;flex:none;font-size:11px;line-height:1;display:flex}.tile-name{max-width:400px;color:var(--ink);font-size:clamp(4px, calc(12px / var(--cam-s,1)), 64px);letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:0;order:1;margin:-.15em -.3em;padding:.15em .3em;font-weight:400;line-height:1.1;overflow:hidden}.tile-name:hover:not(:disabled){background:var(--ink);color:var(--paper)}.tile-name:disabled{cursor:default;opacity:1}.tile-name-input{border:var(--line) solid var(--ink);background:var(--paper);width:260px;height:22px;color:var(--ink);letter-spacing:.04em;border-radius:0;order:1;padding:2px 6px;font-size:12px;font-weight:400}.tile-slot{font-size:clamp(4px, calc(12px / var(--cam-s,1)), 44px);font-variant-numeric:tabular-nums;letter-spacing:.04em;order:0;font-weight:400;line-height:1.1}.tile-badge{background:var(--ink);color:var(--paper);font-size:clamp(3px, calc(9px / var(--cam-s,1)), 34px);letter-spacing:.06em;order:2;padding:.2em .45em;font-weight:400;line-height:1.2}.tile-body{background:var(--paper);border-radius:0;flex:none;width:480px;height:300px;position:relative;overflow:hidden}.tile-body:after{content:"";z-index:2;border:var(--line) solid var(--ink);pointer-events:none;position:absolute;inset:0}.tile.is-empty .tile-body{background:0 0}.tile.is-empty .tile-body:after{border-style:dashed}.tile-card{z-index:0;flex-direction:column;display:flex;position:absolute;inset:0}.tile-add{width:100%;height:100%;color:var(--ink);font-size:clamp(4px, calc(11px / var(--cam-s,1)), 50px);letter-spacing:.04em;background:0 0;border:0;border-radius:0;padding:0;font-weight:400}.tile-add:hover{color:var(--ink);text-decoration:underline;text-decoration-thickness:var(--line);text-underline-offset:.3em;background:0 0}.tile-checking{color:var(--ink);font-size:clamp(4px, calc(11px / var(--cam-s,1)), 50px);letter-spacing:.04em;flex:1;justify-content:center;align-items:center;gap:.8em;display:flex}.tile-spinner{border:var(--line) solid var(--ink);background:0 0;width:.8em;height:.8em;animation:1s steps(2,jump-none) infinite tile-blink}@keyframes tile-blink{to{background:var(--ink)}}@media (prefers-reduced-motion:reduce){.tile-spinner{animation:none}}.tile-shot{object-fit:cover;object-position:top center;-webkit-user-drag:none;width:100%;height:100%}.tile-info{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;gap:0;min-height:0;padding:24px 28px;display:flex}.tile-icon{width:clamp(20px, calc(16px / var(--cam-s,1)), 48px);height:clamp(20px, calc(16px / var(--cam-s,1)), 48px);object-fit:contain;margin-bottom:12px}.tile-title{-webkit-line-clamp:2;font-size:clamp(14px, calc(13px / var(--cam-s,1)), 56px);letter-spacing:.02em;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-weight:400;line-height:1.3;display:-webkit-box;overflow:hidden}.tile-domain{border-top:var(--line) solid var(--ink);color:var(--text-muted);font-size:clamp(9px, calc(10px / var(--cam-s,1)), 34px);letter-spacing:.04em;align-self:stretch;margin-top:.7em;padding-top:.5em}.tile-note{background:var(--paper);border-top:var(--line) solid var(--ink);color:var(--ink);font-size:clamp(9px, calc(10px / var(--cam-s,1)), 36px);letter-spacing:.04em;padding:.6em 1em;position:absolute;bottom:0;left:0;right:0}.tile-hint,.tile-action{border:var(--line) solid var(--ink);background:var(--paper);color:var(--ink);font-size:clamp(3px, calc(9px / var(--cam-s,1)), 32px);letter-spacing:.06em;white-space:nowrap;border-radius:0;padding:.1em .55em;font-weight:400;line-height:1.4}.tile-hint:hover,.tile-action:hover{background:var(--ink);color:var(--paper)}.tile-hint{z-index:1;position:absolute;bottom:6px;right:6px}.tile-actions{z-index:3;opacity:0;pointer-events:none;gap:0;transition:opacity .12s;display:flex;position:absolute;top:6px;right:6px}.tile-action+.tile-action{margin-left:calc(-1 * var(--line))}.tile:hover .tile-actions,.tile:focus-within .tile-actions{opacity:1;pointer-events:auto}.tile-action[data-action=clear]:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}.focus-back{z-index:4;position:absolute;top:12px;left:12px}.tile.is-blocked .tile-shot{filter:saturate(.85)}.tile-note:has(+.tile-hint){padding-right:15em}.tile-frame{z-index:1;border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.tile-frame>*{pointer-events:auto}.tile-frame iframe{transform-origin:0 0;background:var(--paper);border:0;width:1280px;height:800px;position:absolute;top:0;left:0;transform:scale(.375)}.tile-shield{cursor:pointer;background:0 0;position:absolute;inset:0}.tile.is-live .tile-body:has(.tile-shield:hover){outline:var(--line) solid var(--ink);outline-offset:var(--line)}.tile.is-live .tile-card{visibility:hidden}.tile.is-live .tile-actions{z-index:3}.tile.is-active .tile-body{outline:calc(2 * var(--line)) solid var(--ink);outline-offset:var(--line)}.tile-blank-hint{z-index:2;border:var(--line) solid var(--ink);background:var(--paper);color:var(--ink);font:400 clamp(3px, calc(9px / var(--cam-s,1)), 32px)/1.4 var(--font);letter-spacing:.06em;white-space:nowrap;cursor:pointer;border-radius:0;padding:.1em .55em;position:absolute;bottom:6px;right:6px}.tile-blank-hint:hover{background:var(--ink);color:var(--paper)}.tile-blank-hint[hidden]{display:none}.cursor{pointer-events:none;will-change:transform;width:0;height:0;transition:opacity .4s;position:absolute;top:0;left:0}.cursor[hidden]{display:none}.cursor-img{-webkit-user-select:none;user-select:none;width:32px;max-width:none;height:32px;display:block;position:absolute}.cursor-tag{border:var(--hair) solid var(--ink);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font:400 10px/1.4 var(--font,ui-monospace, monospace);letter-spacing:.04em;border-radius:0;padding:1px 5px;position:absolute;top:20px;left:14px;overflow:hidden}.cursor.is-idle .cursor-tag{display:none}.modal{z-index:var(--z-modal);font:12px/1.3 var(--font);color:var(--ink);background:#ffffffbf;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--paper);border:var(--hair) solid var(--ink);border-radius:0;flex-direction:column;width:min(560px,100%);max-height:100%;display:flex}.modal-header{border-bottom:var(--hair) solid var(--ink);justify-content:space-between;align-items:center;gap:12px;padding:9px 12px 8px;display:flex}.modal-title{letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:11px;font-weight:400;overflow:hidden}.modal-close{border:var(--hair) solid var(--ink);width:20px;height:20px;color:var(--ink);letter-spacing:0;cursor:pointer;background:0 0;border-radius:0;flex:none;place-items:center;padding:0;font-size:14px;line-height:1;display:grid}.modal-close:hover{background:var(--ink);color:var(--paper)}.modal-close:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.modal-body{padding:14px 12px 12px;overflow:auto}.modal .dialog-error{color:var(--danger);letter-spacing:.04em;margin:0;font-size:10px}#banner{z-index:var(--z-banner);pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:min(560px,100% - 32px);display:flex;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.banner{box-sizing:border-box;background:var(--ink);max-width:100%;color:var(--paper);font:10px/1.4 var(--font);letter-spacing:.04em;text-align:center;pointer-events:auto;border:0;border-radius:0;padding:5px 12px}.banner-warn{outline:var(--hair) solid var(--paper);outline-offset:-3px;padding:6px 14px}.banner-error{border:var(--hair) solid var(--ink);background:var(--paper);color:var(--danger)}.modal[data-dialog=help] .help{font-size:12px;line-height:1.45}.modal[data-dialog=help] .help-section h3{letter-spacing:.04em;text-transform:uppercase;margin:0 0 5px;font-size:11px;font-weight:400}.modal[data-dialog=help] .help-section p{color:var(--ink);letter-spacing:.02em;margin:0 0 7px;line-height:1.45}.modal[data-dialog=help] .help-section+.help-section{border-top:var(--hair) solid var(--ink);margin-top:12px;padding-top:10px}.modal[data-dialog=help] .help code,.modal[data-dialog=help] .help kbd{border:var(--hair) solid var(--ink);color:var(--ink);font:inherit;letter-spacing:.04em;background:0 0;border-radius:0;padding:0 4px;font-size:10px}.modal[data-dialog=help] .help-keys{grid-template-columns:max-content 1fr;gap:5px 14px;margin:8px 0 0;font-size:11px;display:grid}.modal[data-dialog=help] .help-keys dt,.modal[data-dialog=help] .help-keys dd{margin:0}.people-panel{z-index:var(--z-banner,25);border:var(--hair) solid var(--ink);background:var(--paper);width:min(300px,100vw - 16px);max-height:min(70vh,560px);color:var(--ink);font:12px/1.3 var(--font);border-radius:0;flex-direction:column;display:flex;position:fixed}.people-head{border-bottom:var(--hair) solid var(--ink);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);padding:8px 10px 7px;font-size:11px;font-weight:400}.people-list{margin:0;padding:0;list-style:none;overflow-y:auto}.person{align-items:center;gap:6px;padding-right:8px;display:flex}.person+.person{border-top:var(--hair) solid var(--ink)}.person-jump{min-width:0;color:inherit;font:inherit;letter-spacing:.02em;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:0;flex:1;grid-template-columns:11px minmax(0,1fr) auto auto;grid-template-areas:"swatch name tag you""swatch presence presence presence";align-items:center;gap:1px 7px;padding:6px 10px;display:grid}.person-jump:hover{background:var(--panel)}.person-swatch{border:var(--hair) solid var(--ink);border-radius:0;grid-area:swatch;align-self:start;width:11px;height:11px;margin-top:2px}.person-name{text-overflow:ellipsis;white-space:nowrap;grid-area:name;font-weight:400;overflow:hidden}.person-you{letter-spacing:.06em;color:var(--text-muted);grid-area:you;font-size:9px}.person-teacher-tag{background:var(--ink);color:var(--paper);letter-spacing:.06em;text-transform:uppercase;border-radius:0;grid-area:tag;padding:0 4px;font-size:9px;font-weight:400;line-height:1.5}.person-you[hidden],.person-teacher-tag[hidden],.person-reset[hidden]{display:none}.person-presence{letter-spacing:.06em;color:var(--text-muted);grid-area:presence;font-size:9px}.person-reset{border:var(--hair) solid var(--ink);color:var(--ink);font:inherit;letter-spacing:.06em;cursor:pointer;background:0 0;border-radius:0;flex:none;padding:1px 5px;font-size:9px;line-height:1.4}.person-reset:not(:disabled):hover{background:var(--ink);color:var(--paper)}.people-foot{border-top:var(--hair) solid var(--ink);padding:7px 10px 8px}.people-teacher{color:var(--ink);font:inherit;letter-spacing:.06em;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;font-size:9px;text-decoration:underline}.people-teacher:hover{text-decoration-thickness:2px}.pixel-editor{justify-items:start;gap:10px;display:grid}.pixel-tools{flex-wrap:wrap;gap:0;display:inline-flex}.pixel-tool{font:inherit;border:var(--hair) solid var(--ink);color:var(--ink);letter-spacing:.06em;cursor:pointer;background:0 0;border-radius:0;margin-left:-1px;padding:2px 8px;font-size:11px}.pixel-tool:first-child{margin-left:0}.pixel-tool:hover{background:var(--panel)}.pixel-tool.is-active{background:var(--ink);color:var(--paper)}.pixel-palette{flex-wrap:wrap;gap:5px;display:flex}.pixel-swatch{border:var(--hair) solid var(--ink);cursor:pointer;border-radius:0;width:22px;height:22px;padding:0}.pixel-swatch:hover{outline:var(--hair) solid var(--ink);outline-offset:1px}.pixel-swatch.is-transparent{background:linear-gradient(to top right, transparent calc(50% - .5px), var(--ink) calc(50% - .5px), var(--ink) calc(50% + .5px), transparent calc(50% + .5px)), var(--paper)}.pixel-swatch.is-selected{outline:2px solid var(--ink);outline-offset:1px}.pixel-grid{aspect-ratio:1;border:var(--hair) solid var(--ink);background-color:var(--paper);touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;background-image:linear-gradient(90deg,#0000002e 1px,#0000 1px),linear-gradient(#0000002e 1px,#0000 1px);background-position:-1px -1px;background-size:6.25% 6.25%;grid-template-columns:repeat(16,1fr);width:min(100%,320px);display:grid}.pixel-cell{position:relative}.pixel-cell.is-tip:after{content:"";border:1.5px solid var(--ink);outline:1px solid var(--paper);background:linear-gradient(to bottom right, transparent calc(50% - .75px), var(--ink) calc(50% - .75px), var(--ink) calc(50% + .75px), transparent calc(50% + .75px)), linear-gradient(to bottom left, transparent calc(50% - .75px), var(--ink) calc(50% - .75px), var(--ink) calc(50% + .75px), transparent calc(50% + .75px)), var(--paper);pointer-events:none;position:absolute;inset:18%}.pixel-previews{letter-spacing:.06em;color:var(--ink);align-items:flex-end;gap:8px;font-size:9px;display:flex}.pixel-preview{border:var(--hair) solid var(--ink);background:var(--paper);line-height:0}.profile-panel{gap:14px;min-width:min(360px,100%);display:grid}.profile-field{gap:5px;display:grid}.profile-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-size:9px;font-weight:400}.profile-panel input[name=name],.profile-panel input[name=teacher-code]{font:inherit;border:var(--hair) solid var(--ink);background:var(--paper);color:var(--ink);border-radius:0;padding:4px 6px;font-size:12px}.profile-panel input:focus{outline:var(--hair) solid var(--ink);outline-offset:1px}.profile-panel .dialog-error{color:var(--danger);letter-spacing:.04em;margin:0;font-size:10px}.profile-panel .dialog-error[hidden]{display:none}.profile-swatches{grid-template-columns:repeat(12,minmax(0,30px));gap:5px;display:grid}.profile-swatch{aspect-ratio:1;border:var(--hair) solid var(--ink);cursor:pointer;border-radius:0;padding:0;position:relative}.profile-swatch:hover{outline:var(--hair) solid var(--ink);outline-offset:1px}.profile-swatch.is-selected{outline:2px solid var(--ink);outline-offset:1px}.profile-swatch.is-selected:after{content:"";pointer-events:none;background:linear-gradient(to bottom right,#0000 calc(50% - .8px),#fff calc(50% - .8px) calc(50% + .8px),#0000 calc(50% + .8px)),linear-gradient(to bottom left,#0000 calc(50% - .8px),#fff calc(50% - .8px) calc(50% + .8px),#0000 calc(50% + .8px));border:1.5px solid #fff;position:absolute;inset:12%}.profile-tabs{border:0;justify-self:start;gap:0;display:inline-flex}.profile-tab{font:inherit;border:var(--hair) solid var(--ink);color:var(--ink);letter-spacing:.06em;cursor:pointer;background:0 0;border-radius:0;margin-left:-1px;padding:2px 8px;font-size:11px}.profile-tab:first-child{margin-left:0}.profile-tab:hover{background:var(--panel)}.profile-tab.is-selected{background:var(--ink);color:var(--paper)}.profile-tabpanel{margin-top:4px}.profile-tabpanel[hidden]{display:none}.profile-shapes{grid-template-columns:repeat(5,1fr);gap:0;padding:0 0 1px 1px;display:grid}.profile-shape{border:var(--hair) solid var(--ink);background:var(--paper);cursor:pointer;border-radius:0;place-items:center;margin:0 0 -1px -1px;padding:8px;display:grid}.profile-shape svg{width:36px;height:36px}.profile-shape:hover{z-index:1;outline:var(--hair) solid var(--ink);outline-offset:1px;position:relative}.profile-shape.is-selected{z-index:2;outline:2px solid var(--ink);outline-offset:1px;position:relative}.profile-preview{gap:5px;display:grid}.profile-preview-box{border:var(--hair) solid var(--ink);background:var(--paper);border-radius:0;align-items:center;gap:6px;padding:14px 12px;display:flex}.profile-preview-img{width:32px;height:32px}.profile-preview-tag{font:400 11px/1.4 var(--font);letter-spacing:.04em;border-radius:0;padding:1px 6px}.profile-actions{justify-content:flex-end;display:flex}.profile-save{font:inherit;border:var(--hair) solid var(--ink);background:var(--ink);color:var(--paper);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:0;padding:3px 12px;font-size:13px}.profile-save:hover{background:#2a2a2a}.profile-save:disabled{opacity:.35;cursor:default}.profile-save:disabled:hover{background:var(--ink)}.profile-teacher{border-top:var(--hair) solid var(--ink);padding-top:10px}.profile-teacher-content{gap:6px;display:grid}.profile-teacher-field{gap:4px;display:grid}.profile-teacher-label{letter-spacing:.06em;font-size:10px}.profile-hint{color:var(--text-muted);letter-spacing:.06em;margin:0;font-size:9px}.teacher-actions{flex-wrap:wrap;gap:6px;display:flex}.teacher-actions button{font:inherit;border:var(--hair) solid var(--ink);color:var(--ink);letter-spacing:.06em;cursor:pointer;background:0 0;border-radius:0;padding:2px 8px;font-size:11px}.teacher-actions button:not(:disabled):hover,.teacher-actions .teacher-primary{background:var(--ink);color:var(--paper)}.teacher-actions .teacher-primary:not(:disabled):hover{background:#2a2a2a}.teacher-actions button:disabled{opacity:.35;cursor:default}.history-body{flex-direction:column;gap:8px;min-width:min(520px,90vw);max-height:70vh;display:flex;overflow-y:auto}.history-status{color:var(--ink);letter-spacing:.1em;text-align:center;margin:0;padding:18px 0;font-size:10px}.history-status[hidden],.history-body .dialog-error[hidden]{display:none}.history-body .dialog-error{color:var(--danger);letter-spacing:.04em;margin:0;font-size:10px}.history-list{border-top:var(--hair) solid var(--ink);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.history-row{border:0;border-bottom:var(--hair) solid var(--ink);border-radius:0;grid-template-columns:80px 1fr auto;align-items:center;gap:12px;padding:7px 3px;display:grid}.history-thumb{border:var(--hair) solid var(--ink);background:var(--paper);object-fit:cover;border-radius:0;width:80px;height:50px}.history-thumb.is-blank{color:var(--ink);letter-spacing:.1em;justify-content:center;align-items:center;font-size:9px;display:flex}.history-row.is-current .history-thumb{outline:2px solid var(--ink);outline-offset:1px}.history-info{flex-direction:column;gap:1px;min-width:0;display:flex}.history-title{color:var(--ink);letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:400;overflow:hidden}.history-label,.history-meta{color:var(--text-muted);letter-spacing:.06em;font-size:9px}.history-current{background:var(--ink);color:var(--paper);letter-spacing:.06em;text-transform:uppercase;padding:1px 5px;font-size:9px;font-weight:400;line-height:1.4}.history-restore{border:var(--hair) solid var(--ink);color:var(--ink);font:inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:0;padding:1px 5px;font-size:9px;line-height:1.4}.history-restore:not(:disabled):hover{background:var(--ink);color:var(--paper)}.history-restore:disabled{opacity:.35;cursor:progress}.post-form{flex-direction:column;gap:12px;min-width:min(480px,90vw);display:flex}.post-warning{border:var(--hair) solid var(--ink);color:var(--danger);letter-spacing:.04em;background:0 0;border-radius:0;margin:0;padding:6px 8px;font-size:10px;line-height:1.45}.post-tabs{border:0;align-self:flex-start;display:inline-flex}.post-tab{border:var(--hair) solid var(--ink);color:var(--ink);font:inherit;letter-spacing:.06em;cursor:pointer;background:0 0;border-radius:0;margin-left:-1px;padding:2px 9px;font-size:11px}.post-tab:first-child{margin-left:0}.post-tab:hover{background:var(--panel)}.post-tab.is-selected{background:var(--ink);color:var(--paper)}.post-panel{flex-direction:column;gap:6px;display:flex}.post-panel[hidden]{display:none}.post-form input[type=url],.post-form input[type=text],.post-form textarea{box-sizing:border-box;border:var(--hair) solid var(--ink);background:var(--paper);width:100%;color:var(--ink);font:inherit;border-radius:0;padding:4px 6px;font-size:12px}.post-form input:focus,.post-form textarea:focus{outline:var(--hair) solid var(--ink);outline-offset:1px}.post-form textarea{font-family:var(--font);resize:vertical;font-size:11px}.link-preview{min-height:1.4em;color:var(--text-muted);letter-spacing:.04em;margin:0;font-size:10px}.link-preview[data-tone=warn]{color:var(--ink)}.link-preview[data-tone=error]{color:var(--danger)}.post-drop{border:var(--hair) dashed var(--ink);color:var(--ink);letter-spacing:.1em;text-align:center;cursor:pointer;border-radius:0;flex-direction:column;align-items:center;gap:5px;padding:22px 16px;font-size:10px;display:flex}.post-drop:hover{outline:var(--hair) solid var(--ink);outline-offset:1px}.modal[data-dialog=post].is-dragging .post-drop{outline:2px solid var(--ink);outline-offset:1px;border-style:solid}.post-drop input[type=file]{max-width:100%;font:inherit;letter-spacing:.04em;color:var(--text-muted);font-size:10px}.post-drop input[type=file]::file-selector-button{border:var(--hair) solid var(--ink);color:var(--ink);font:inherit;letter-spacing:.06em;cursor:pointer;background:0 0;border-radius:0;margin-right:8px;padding:1px 5px;font-size:9px}.post-drop input[type=file]::file-selector-button:hover{background:var(--ink);color:var(--paper)}.post-file-name{color:var(--ink);letter-spacing:.04em;font-size:11px;font-weight:400}.post-label{letter-spacing:.06em;color:var(--ink);flex-direction:column;gap:4px;font-size:10px;display:flex}.post-label>span{text-transform:uppercase;font-size:9px}.post-form .dialog-error{color:var(--danger);letter-spacing:.04em;margin:0;font-size:10px}.post-form .dialog-error[hidden]{display:none}.post-footer{border-top:var(--hair) solid var(--ink);justify-content:flex-end;padding-top:10px;display:flex}.post-submit{border:var(--hair) solid var(--ink);background:var(--ink);color:var(--paper);font:13px/1.3 var(--font);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:0;padding:3px 12px}.post-submit:hover{background:#2a2a2a}.post-submit:disabled{opacity:.35;cursor:progress}.post-submit:disabled:hover{background:var(--ink)}.topbar{z-index:var(--z-topbar);background:var(--paper);border-bottom:var(--hair) solid var(--ink);color:var(--ink);font-family:var(--font);letter-spacing:.04em;justify-content:space-between;align-items:center;gap:12px;padding:0 12px;font-size:11px;display:flex;position:relative}.topbar-group{align-items:center;gap:6px;min-width:0;display:flex}.topbar-title{letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:400}.topbar-board{max-width:16em;color:var(--text-muted);letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap;margin-left:6px;font-size:9px;overflow:hidden}.topbar-badge{background:var(--ink);color:var(--paper);letter-spacing:.06em;text-transform:uppercase;margin-left:4px;padding:1px 5px;font-size:9px;line-height:1.4}.topbar-badge[hidden],.topbar-cursor[hidden]{display:none}.topbar-btn{border:var(--hair) solid var(--ink);height:22px;color:var(--ink);font:inherit;letter-spacing:.06em;white-space:nowrap;cursor:pointer;background:0 0;border-radius:0;align-items:center;gap:5px;padding:0 8px;font-size:11px;display:inline-flex}.topbar-btn:hover{background:var(--ink);color:var(--paper)}.topbar-btn:focus-visible{outline:var(--hair) solid var(--ink);outline-offset:2px}.topbar-zoom-group{gap:0}.topbar-zoom-group>[data-action=zoom-out],.topbar-zoom-group>[data-action=zoom-in]{justify-content:center;width:22px;padding:0}.topbar-zoom{min-width:4.5em;height:22px;margin-left:calc(-1 * var(--hair));border:var(--hair) solid var(--ink);color:var(--ink);letter-spacing:.04em;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:10px;display:inline-flex}.topbar-zoom-group>[data-action=zoom-in]{margin-left:calc(-1 * var(--hair))}.topbar-zoom-group>[data-action=fit]{margin-left:8px}.topbar-cursor{width:16px;height:16px;image-rendering:pixelated}@media (width<=720px){.topbar-title,.topbar-board,.topbar-label{display:none}}.help-section h3{letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:400}.help-section p{color:var(--ink);margin:0 0 8px;line-height:1.45}.help-section+.help-section{margin-top:14px}.help code,.help kbd{border:var(--hair) solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--font);border-radius:0;padding:0 5px;font-size:10px}.help-keys{grid-template-columns:max-content 1fr;gap:6px 14px;margin:8px 0 0;display:grid}.help-keys dt,.help-keys dd{margin:0}
