:root{--paper:#f4efdf;--ink:#222018;--muted:#716b5d;--line:#d1c7ae;--card:#fffdf6;--red:#c4493d;--blue:#28647b;--yellow:#f1d57a;--note-yellow:#fff2a9;--note-pink:#f9d6dd;--note-blue:#d4ecf2;--note-green:#dcebc8;--note-lavender:#e5dcf3;--shadow:0 12px 34px rgba(69,57,31,0.1)}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);background:linear-gradient(rgba(67,59,40,.035) 1px,transparent 1px),var(--paper);background-size:100% 28px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}button,input,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a{color:inherit}.shell{width:min(960px,calc(100% - 32px));margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;min-height:76px;border-bottom:2px solid var(--ink)}.brand{font-weight:900;font-size:20px;text-decoration:none;letter-spacing:-.04em}.brand-mark{color:var(--red)}.topbar-actions{justify-content:flex-end;gap:16px;flex:1 1;min-width:0}.session,.topbar-actions{display:flex;align-items:center}.session{gap:14px;color:var(--muted);font-size:13px}.session-user{color:var(--muted);text-decoration:none;white-space:nowrap}.session-user:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.board-search{position:relative;display:flex;width:min(340px,100%)}.board-search-input{width:100%;min-width:0;border:1px solid var(--ink);border-right:0;background:#fff;color:var(--ink);padding:9px 11px;outline:none;font-size:12px}.board-search-input::-webkit-calendar-picker-indicator{display:none!important}.board-search-input:focus{box-shadow:inset 0 -3px 0 var(--yellow)}.board-search-button{border:1px solid var(--ink);background:var(--ink);color:#fff;padding:9px 12px;cursor:pointer;font-size:12px;font-weight:800}.board-search-button:hover{background:var(--red)}.board-search-button:disabled{opacity:.5;cursor:wait}.board-search-error{position:absolute;z-index:10;top:calc(100% + 7px);left:0;right:0;border:1px solid var(--red);background:#fff4ef;color:var(--red);padding:8px 10px;font-size:11px;line-height:1.35;box-shadow:var(--shadow)}.hero{padding:80px 0 44px;max-width:760px}.eyebrow{color:var(--red);text-transform:uppercase;font-weight:800;letter-spacing:.12em;font-size:12px}h1{font-size:clamp(48px,8vw,88px);line-height:.92;letter-spacing:-.055em;margin:18px 0 24px}.lede,h1{font-family:Georgia,Times New Roman,serif}.lede{font-size:clamp(20px,3vw,28px);line-height:1.35;color:#4e493e;max-width:670px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding-bottom:80px}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);padding:26px}.card h2{font-family:Georgia,Times New Roman,serif;font-size:28px;margin:0 0 10px}.card p{color:var(--muted);line-height:1.6;font-size:14px}.stack{display:grid;gap:12px}.field{width:100%;border:1px solid var(--ink);background:#fff;padding:13px 14px;color:var(--ink);outline:none}.field:focus{box-shadow:4px 4px 0 var(--yellow)}textarea.field{resize:vertical;min-height:108px;line-height:1.45}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.composer-note{font-family:Klee,Noteworthy,Avenir Next,sans-serif;font-size:17px;transition:background-color .15s ease,box-shadow .15s ease}.composer-tools{color:var(--muted);font-size:11px}.composer-head,.composer-tools{display:flex;align-items:center;justify-content:space-between;gap:12px}.composer-head h2{margin:0}.composer-close{width:28px;height:28px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);font:20px/1 Arial,sans-serif;cursor:pointer}.composer-close:hover{background:rgba(34,32,24,.08);color:var(--ink)}.color-picker{display:flex;gap:7px;margin:0;padding:0;border:0}.color-picker legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.color-picker label{display:block;cursor:pointer}.color-picker input{position:absolute;opacity:0;pointer-events:none}.color-swatch{display:block;width:22px;height:22px;border:1px solid rgba(34,32,24,.28);border-radius:50%;box-shadow:inset 0 0 0 2px rgba(255,255,255,.5)}.color-picker input:checked+.color-swatch{outline:2px solid var(--ink);outline-offset:2px}.color-picker input:focus-visible+.color-swatch{outline:2px solid var(--blue);outline-offset:2px}.color-yellow{background-color:var(--note-yellow)!important;border-color:#d8c062!important}.color-pink{background-color:var(--note-pink)!important;border-color:#d7aeb6!important}.color-blue{background-color:var(--note-blue)!important;border-color:#9abfc9!important}.color-green{background-color:var(--note-green)!important;border-color:#aec58d!important}.color-lavender{background-color:var(--note-lavender)!important;border-color:#b9a7cf!important}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--ink);background:var(--ink);color:#fff;padding:12px 16px;cursor:pointer;text-decoration:none;font-weight:800}.button:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--red)}.button:disabled{opacity:.5;cursor:wait;transform:none;box-shadow:none}.button.secondary{background:transparent;color:var(--ink)}.button.small{padding:7px 10px;font-size:12px}.error{color:var(--red);font-size:13px;line-height:1.4}.board-head{padding:52px 0 28px;border-bottom:2px solid var(--ink)}.board-head h1{font-size:clamp(42px,7vw,72px);margin-bottom:16px}.board-meta{color:var(--muted);display:flex;gap:12px;flex-wrap:wrap;font-size:13px}.board-layout{padding:34px 0 80px}.note{position:relative;background:var(--note-yellow);border:1px solid #d8c062;padding:20px 17px 14px;box-shadow:4px 5px 0 rgba(63,54,25,.1)}.note:before{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--red);top:7px;left:50%;box-shadow:1px 2px 2px #8d332a}.note-text{min-height:48px;padding-bottom:18px;font-family:Klee,Noteworthy,Avenir Next,sans-serif;max-height:225px;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;font-size:17px;line-height:1.34}.note-avatar{position:absolute;right:9px;bottom:8px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid rgba(36,32,23,.3);background:rgba(255,255,255,.58);color:rgba(36,32,23,.72);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;font-weight:900}.note-avatar img{width:100%;height:100%;border-radius:inherit;object-fit:cover}.note-avatar-tooltip{position:absolute;right:-1px;bottom:calc(100% + 6px);z-index:20;display:grid;gap:2px;width:135px;padding:7px 9px;border:1px solid rgba(36,32,23,.22);background:#fffdf6;color:var(--ink);box-shadow:3px 4px 10px rgba(48,32,15,.18);text-align:left;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;font-weight:400;line-height:1.35;opacity:0;visibility:hidden;transform:translateY(3px);pointer-events:none;transition:opacity .12s,transform .12s,visibility .12s}.note-avatar-tooltip strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-avatar-tooltip span{color:var(--muted)}.note-avatar:focus-visible .note-avatar-tooltip,.note-avatar:hover .note-avatar-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.note-visibility{position:absolute;left:9px;bottom:9px;max-width:calc(100% - 45px);padding:3px 5px;border:1px solid rgba(54,46,31,.24);background:rgba(255,255,255,.52);color:rgba(54,46,31,.68);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.04em}.note-remove{position:absolute;top:4px;right:5px;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:transparent;color:rgba(54,46,31,.46);font:18px/1 Arial,sans-serif;cursor:pointer;opacity:0;transition:opacity .12s,background .12s}.note-remove:focus-visible,.note:hover .note-remove{opacity:1}.note-remove:hover{background:rgba(255,255,255,.55);color:var(--red)}.note-remove:disabled{cursor:wait}.spatial-board-wrap{min-width:0;display:grid;gap:10px}.board-instructions{color:var(--muted);font-size:12px}.spatial-board{position:relative;height:720px;overflow:hidden;border:10px solid #6f4528;outline:1px solid #3d281b;background:radial-gradient(circle at 20% 30%,rgba(85,54,28,.1) 0 1px,transparent 1.5px),radial-gradient(circle at 70% 65%,rgba(85,54,28,.08) 0 1px,transparent 1.5px),#c99b61;background-size:21px 23px,29px 31px,auto;box-shadow:inset 0 0 35px rgba(70,39,16,.22),var(--shadow)}.spatial-board.can-compose{cursor:crosshair}.board-composer{position:absolute;z-index:100;width:min(300px,calc(100% - 24px));cursor:default}.board-composer-card{padding:20px;box-shadow:8px 10px 28px rgba(48,32,15,.28)}.board-composer-card h2{font-size:23px}.spatial-note{position:absolute;width:clamp(150px,32%,205px);max-height:265px;overflow:visible;-webkit-user-select:none;user-select:none;transform-origin:50% 8px}.spatial-note:hover{z-index:10}.spatial-note.movable{cursor:grab;touch-action:none}.spatial-note.dragging{cursor:grabbing;z-index:50;box-shadow:9px 12px 22px rgba(48,32,15,.24)}.board-empty{position:absolute;inset:30px;display:grid;place-items:center;border-color:rgba(57,36,18,.5);color:#5d4027}.sidebar{position:sticky;top:24px;display:grid;gap:18px}.empty{border:1px dashed var(--muted);color:var(--muted);padding:42px;line-height:1.6}.empty,.gate{text-align:center}.gate{margin:60px auto;max-width:560px}.gate .lock{font-size:42px}.fineprint{font-size:11px!important}.protocol{display:inline-block;background:#e9e1cf;padding:4px 7px;color:#655f52}@media (max-width:760px){.board-layout,.grid{grid-template-columns:1fr}.hero{padding-top:52px}.sidebar{position:static;grid-row:1}.topbar{flex-wrap:wrap;gap:12px;padding:14px 0}.topbar-actions{flex-basis:100%;gap:10px}.board-search{flex:1 1;width:auto}.session-user{display:none}.spatial-board{height:620px}.spatial-note{width:clamp(145px,42%,190px)}.note-remove{opacity:.7}}