:root{--desk: #F7F1E8;--ink: #1F3A5F;--ink-soft: #51483b;--paper: #FFFDF7;--bristol-green: #AECBB0;--bristol-red: #F3B79C;--bristol-blue: #A9DCE3;--bristol-green-ink: #2E4B33;--bristol-red-ink: #7A3A16;--bristol-blue-ink: #17505A;--contact: 0 1px 1px rgba(31,58,95,.2);--hand: var(--font-hand)}:is(.feedback-write-button,.feedback-legend button,.feedback-type,.observer-toolbar button,.observer-note,.feedback-note,.feedback-pin):focus-visible{outline:3px solid var(--ink);outline-offset:3px}.feedback-legend button{min-width:44px;min-height:44px}.feedback-sheet-toggle{display:none}.desk-note{color:var(--ink-soft);font-size:1rem;line-height:1.3;transform:rotate(-1deg)}.feedback-panel h3{font-size:clamp(1.3rem,1.7vw,1.55rem);line-height:1.05;font-weight:400;color:var(--ink);transform:rotate(-1.6deg)}.feedback-write-button{position:relative;display:flex;align-items:center;gap:.5rem;width:100%;min-height:46px;margin:.85rem 0 .2rem;padding:.55rem .7rem .62rem;border:0;text-align:left;color:var(--ink);background:var(--paper);border-radius:0 0 3px 9px;box-shadow:var(--contact),0 8px 11px -7px #b07a4f80;font-family:var(--hand);font-size:1.12rem;line-height:1.15;transform:rotate(-1deg);transition:transform .16s ease,box-shadow .16s ease}.feedback-write-button:hover{transform:rotate(0) translateY(-2px);box-shadow:var(--contact),0 14px 18px -10px #b07a4f8c}.feedback-write-button .plus{font-size:1.35rem;line-height:.8;opacity:.65}.feedback-write-button .palette{display:flex;gap:3px;margin-left:auto}.feedback-write-button .palette i{width:11px;height:15px;box-shadow:0 1px 1px #b07a4f59;transform:rotate(-5deg)}.feedback-write-button .palette i:nth-child(2){transform:rotate(4deg)}.feedback-legend{display:flex;flex-wrap:wrap;gap:.35rem;margin:.9rem 0 .5rem}.feedback-legend button{display:inline-flex;align-items:center;gap:.32rem;padding:.18rem .45rem .24rem;border:0;border-radius:0 0 2px 5px;color:var(--ink);background:var(--paper);box-shadow:var(--contact),0 5px 7px -6px #b07a4f73;font-family:var(--font-sans);font-size:.82rem;font-weight:600;line-height:1.15;transform:rotate(-1deg);transition:transform .14s ease,background .14s ease}.feedback-legend button:nth-child(2n){transform:rotate(1.2deg)}.feedback-legend button:hover{transform:rotate(0) translateY(-1px);background:#fff}.feedback-legend button.is-active{background:#fff;outline:2px solid rgba(31,58,95,.35);outline-offset:1px}.feedback-swatch{width:13px;height:13px;box-shadow:0 1px 1px #b07a4f59;transform:rotate(-6deg)}.feedback-list{flex:1;min-height:0;display:grid;gap:.75rem;align-content:start;overflow:auto;padding:.25rem .45rem .6rem 0}.feedback-list::-webkit-scrollbar{width:6px}.feedback-list::-webkit-scrollbar-thumb{background:#b07a4f47}.feedback-empty{padding:.7rem .2rem;color:var(--ink-soft);font-size:.95rem;line-height:1.35}.feedback-note{position:relative;padding:.6rem .65rem .65rem;border:0;border-radius:0 0 2px 8px;background-image:linear-gradient(180deg,#1f3a5f0f 0 11%,#1f3a5f00 11%),radial-gradient(130% 70% at 46% -4%,#ffffff61,#fff0 60%),linear-gradient(180deg,#1f3a5f00 74%,#1f3a5f1a);box-shadow:var(--contact),0 9px 12px -8px #b07a4f6b;transform:rotate(-.8deg);font-size:.95rem;line-height:1.3}.feedback-note:after{content:"";position:absolute;right:0;bottom:0;width:20px;height:20px;background:linear-gradient(315deg,#ffffff85 0 42%,#1f3a5f33);clip-path:polygon(100% 0,100% 100%,0 100%);filter:drop-shadow(-1px -1px 2px rgba(176,122,79,.26))}.feedback-note:nth-child(2n){transform:rotate(.9deg)}.feedback-note:hover{transform:rotate(0) translateY(-2px)}.feedback-note-meta{display:block;font-size:.8rem;font-weight:600}.feedback-note small{display:block;margin-top:.3rem;font-size:.78rem;font-style:italic}.feedback-note--works{background:var(--bristol-green);color:var(--bristol-green-ink)}.feedback-note--improve{background:var(--bristol-red);color:var(--bristol-red-ink)}.feedback-note--suggestion{background:var(--bristol-blue);color:var(--bristol-blue-ink)}.page-feedback-canvas{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.is-feedback-active .page-feedback-canvas{cursor:crosshair}.page-feedback-canvas img{position:relative;z-index:1}.feedback-pin{position:absolute;z-index:4;width:24px;height:24px;padding:0;border:0;box-shadow:0 1px 1px #1f3a5f66,0 6px 8px -4px #1f3a5f80;transform:translate(-50%,-50%) rotate(-5deg);cursor:pointer}.feedback-pin:before{content:"";position:absolute;inset:-10px}.feedback-pin:after{content:"";position:absolute;right:0;bottom:0;width:8px;height:8px;background:linear-gradient(135deg,#1f3a5f47,#ffffff80);clip-path:polygon(100% 0,100% 100%,0 100%)}.feedback-pin:hover{z-index:8;transform:translate(-50%,-50%) rotate(0) scale(1.2)}.postits-hidden .feedback-pin{opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.72)}.feedback-ghost-pin{position:absolute;z-index:6;width:24px;height:24px;background:var(--paper);box-shadow:0 1px 1px #1f3a5f66,0 6px 8px -4px #1f3a5f80;outline:2px dashed rgba(31,58,95,.55);outline-offset:2px;transform:translate(-50%,-50%) rotate(-5deg);pointer-events:none;animation:ghost-pin-in .18s ease}.feedback-ghost-pin[hidden]{display:none}@keyframes ghost-pin-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}}.feedback-toast{position:fixed;left:50%;bottom:1.25rem;z-index:90;transform:translate(-50%) rotate(-.6deg);padding:.5rem .9rem .58rem;color:var(--ink);background:var(--paper);box-shadow:var(--contact),0 16px 22px -14px #b07a4f99;font-size:1rem;line-height:1.2;max-width:min(90vw,34rem)}.feedback-toast[hidden]{display:none}.feedback-hint{position:fixed;left:max(1rem,calc((100vw - 1720px)/2 + 1rem));bottom:1.25rem;z-index:90;padding:.35rem .6rem .42rem;color:var(--ink);background:var(--paper);box-shadow:var(--contact),0 10px 14px -10px #b07a4f99;font-size:.95rem;line-height:1.15;transform:rotate(-1.2deg);pointer-events:none}.feedback-hint[hidden]{display:none}.feedback-composer{position:fixed;left:max(1rem,calc((100vw - 1720px)/2 + 1rem));bottom:1.25rem;z-index:95;width:min(300px,calc(100vw - 2rem));padding:.9rem;background:var(--paper);border:0;box-shadow:0 2px 3px #b07a4f59,0 30px 50px -22px #b07a4fb3;transform:rotate(-.6deg)}.feedback-composer[hidden]{display:none}.feedback-composer{max-height:calc(100dvh - 2.5rem);overflow:auto}.feedback-composer.is-anchored{left:max(1rem,calc((100vw - 1720px)/2 + 1rem));bottom:1.25rem;width:min(300px,calc(100vw - 2rem))}.feedback-composer h4{font-size:1.25rem;line-height:1.05;font-weight:400}.feedback-composer textarea{width:100%;min-height:96px;margin-top:.6rem;padding:.6rem .7rem;border:0;background:repeating-linear-gradient(180deg,#466e961f 0 1px,#466e9600 1px 26px),#fff;color:var(--ink);font-family:var(--hand);font-size:1.05rem;line-height:26px;resize:vertical}.feedback-composer input[type=text]{width:100%;margin-top:.5rem;padding:.45rem .6rem;border:0;background:#fff;font-family:var(--hand);font-size:1rem;color:var(--ink)}.feedback-type-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;margin-top:.6rem}.feedback-type{min-height:44px;padding:.38rem .3rem .45rem;border:0;border-radius:0 0 2px 6px;box-shadow:var(--contact),0 5px 8px -6px #b07a4f80;font-family:var(--font-sans);font-size:.82rem;font-weight:600;transform:rotate(-1.2deg)}.feedback-type:nth-child(2){transform:rotate(1.4deg)}.feedback-type[data-feedback-type=works]{background:var(--bristol-green);color:var(--bristol-green-ink)}.feedback-type[data-feedback-type=improve]{background:var(--bristol-red);color:var(--bristol-red-ink)}.feedback-type[data-feedback-type=suggestion]{background:var(--bristol-blue);color:var(--bristol-blue-ink)}.feedback-type.is-active{outline:2px solid rgba(31,58,95,.5);outline-offset:2px;transform:rotate(0) scale(1.04)}.feedback-anchor-row{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:.6rem;color:var(--ink-soft);font-family:var(--font-sans);font-size:.78rem}.feedback-anchor-row .anchor-state{color:var(--ink);font-weight:600}#feedback-anchor-button{min-height:44px;padding:.25rem .55rem .3rem;border:0;color:var(--ink);background:var(--desk);box-shadow:var(--contact),0 5px 8px -7px #b07a4f8c;font-family:var(--font-sans);font-size:.78rem;font-weight:600;transform:rotate(-.8deg)}#feedback-anchor-button:hover{background:#fff;transform:rotate(0)}.feedback-composer.is-picking{opacity:0;pointer-events:none}.feedback-composer-actions{display:flex;justify-content:flex-end;align-items:center;gap:.6rem;margin-top:.65rem}.feedback-composer-actions button{min-height:44px;padding:.45rem .8rem .5rem;font-family:var(--font-sans);font-size:.88rem;font-weight:600}.feedback-composer-actions button[type=submit]{color:var(--paper);background:var(--ink);box-shadow:0 2px #1f3a5f66}#feedback-composer-cancel.is-confirming{color:var(--bristol-red-ink);background:var(--bristol-red);padding-inline:.55rem}.contributions-observer{position:fixed;inset:0;z-index:240;display:flex;flex-direction:column;min-height:0;height:100dvh;padding:clamp(.85rem,1.8vw,1.6rem) clamp(1rem,3vw,2.6rem);color:var(--ink);background:var(--paper)}.contributions-observer[hidden]{display:none}html:has(body.has-observer-open),body:has(.collection-reader-shell).has-observer-open{overflow:hidden}.observer-header{display:flex;align-items:start;justify-content:space-between;gap:1rem}.observer-header h3{font-size:clamp(1.3rem,1.8vw,1.7rem);line-height:1;font-weight:400;transform:rotate(-1deg)}.observer-header .desk-note{font-size:.88rem}.observer-close{display:grid;min-width:44px;min-height:44px;place-items:center;border:0;color:var(--ink-soft);background:transparent;font-size:1.8rem;line-height:1}.observer-close:hover{color:var(--ink);transform:rotate(8deg)}.observer-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin:.7rem 0 .5rem}.observer-toolbar button{min-height:44px;border:0;padding:.32rem .62rem .38rem;color:var(--ink);background:var(--desk);box-shadow:var(--contact),0 5px 9px -8px #b07a4f99;font-family:var(--font-sans);font-size:.84rem;font-weight:600;transform:rotate(-.8deg)}.observer-toolbar button:nth-child(2n){transform:rotate(1deg)}.observer-toolbar button.is-active{background:var(--ink);color:var(--paper);transform:rotate(0)}.observer-book-picker{display:flex;flex-wrap:wrap;gap:.35rem;margin:-.05rem 0 .45rem}.observer-book-picker[hidden]{display:none}.observer-book-picker button{min-height:44px;max-width:min(18rem,100%);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.22rem .5rem .27rem;border:1px solid rgba(31,58,95,.14);color:var(--ink-soft);background:#fff;font-family:var(--font-sans);font-size:.8rem;font-weight:600;transform:rotate(-.5deg)}.observer-book-picker button:nth-child(2n){transform:rotate(.7deg)}.observer-book-picker button.is-active{color:var(--ink);background:var(--bristol-blue);border-color:transparent}.observer-type-picker{display:flex;flex-wrap:wrap;gap:.35rem;margin:-.05rem 0 .45rem}.observer-type-picker[hidden]{display:none}.observer-type-picker button{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;padding:.22rem .52rem .27rem;border:0;color:var(--ink);font-family:var(--font-sans);font-size:.8rem;font-weight:600;box-shadow:var(--contact),0 5px 8px -7px #b07a4f8c;transform:rotate(-.5deg)}.observer-type-swatch{flex:0 0 13px;width:13px;height:16px}.observer-type-picker button:nth-child(2n){transform:rotate(.7deg)}.observer-type-picker button[data-observer-type=works]{background:var(--bristol-green);color:var(--bristol-green-ink)}.observer-type-picker button[data-observer-type=improve]{background:var(--bristol-red);color:var(--bristol-red-ink)}.observer-type-picker button[data-observer-type=suggestion]{background:var(--bristol-blue);color:var(--bristol-blue-ink)}.observer-type-picker button.is-active{outline:2px solid rgba(31,58,95,.5);outline-offset:2px;transform:rotate(0) scale(1.03)}.observer-summary{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1rem;color:var(--ink-soft);font-size:.88rem}.observer-summary>span{display:inline-flex;align-items:center;gap:.32rem}.observer-summary strong{color:var(--ink);font-size:1.05rem;font-weight:400}.observer-content{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;margin-top:.55rem;padding:.3rem .35rem .6rem}.observer-board{column-width:17rem;column-gap:1.05rem;min-height:100%;padding:1rem;background:linear-gradient(90deg,rgba(31,58,95,.035) 1px,transparent 1px),linear-gradient(rgba(31,58,95,.035) 1px,transparent 1px),var(--desk);background-size:24px 24px;box-shadow:inset 0 0 0 1px #1f3a5f0f}.observer-board.is-empty{columns:1}.observer-note{display:inline-block;width:100%;margin-bottom:1.05rem;break-inside:avoid;position:relative;padding:.7rem .8rem .75rem;border:0;text-align:left;color:var(--ink);box-shadow:0 2px 2px #b07a4f38,0 13px 16px -12px #1f3a5f80;transform:rotate(-1.6deg);font-family:var(--hand);font-size:1.06rem;line-height:1.3;transition:transform .16s ease,box-shadow .16s ease}.observer-note--xs{font-size:1.32rem;line-height:1.22}.observer-note--sm{font-size:1.16rem}.observer-note--lg{font-size:.99rem;line-height:1.34}.observer-note:nth-child(3n){transform:rotate(1.8deg) translateY(.25rem)}.observer-note:nth-child(4n){transform:rotate(-.4deg) translateY(-.2rem)}.observer-note:hover{z-index:2;transform:rotate(0) translateY(-3px) scale(1.02);box-shadow:0 4px 4px #b07a4f3d,0 20px 22px -14px #1f3a5f8c}.observer-note:after{content:"";position:absolute;right:0;bottom:0;width:24px;height:24px;background:linear-gradient(315deg,#ffffff94 0 43%,#1f3a5f33);clip-path:polygon(100% 0,100% 100%,0 100%)}.observer-note--works{background:var(--bristol-green);color:var(--bristol-green-ink)}.observer-note--improve{background:var(--bristol-red);color:var(--bristol-red-ink)}.observer-note--suggestion{background:var(--bristol-blue);color:var(--bristol-blue-ink)}.observer-note-meta{display:block;margin-bottom:.45rem;font-family:var(--font-sans);font-weight:600;font-size:.74rem}.observer-note-body{display:block;overflow-wrap:anywhere}.observer-note--lg .observer-note-body{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:16;overflow:hidden}.observer-note-author{display:block;margin-top:.55rem;opacity:.9;font-size:.8rem;font-style:italic}.observer-empty{display:grid;place-items:center;min-height:220px;padding:2rem;color:var(--ink-soft);text-align:center}@media(max-width:900px){.feedback-composer,.feedback-composer.is-anchored{left:.8rem;right:.8rem;bottom:.8rem;width:auto}.feedback-hint{left:.8rem;bottom:.8rem}.feedback-legend button{min-height:44px}.observer-type-picker,.observer-book-picker{margin-bottom:.4rem}.contributions-observer{padding:.7rem .75rem .5rem}.observer-board{column-width:13.5rem;column-gap:.75rem;padding:.7rem}.observer-note{margin-bottom:.8rem}}@media(prefers-reduced-motion:reduce){.feedback-pin,.feedback-note,.feedback-write-button,.feedback-legend button{transition:none}.feedback-ghost-pin{animation:none}}
