@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,500;6..72,600&display=swap";:root{color-scheme:light;--font-sans: "DM Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-display: "Newsreader", Georgia, serif;--ink: #24231f;--ink-soft: #66635b;--ink-faint: #918c80;--paper: #f4f0e7;--paper-warm: #ebe3d3;--surface: #fcfaf5;--surface-raised: #fffefa;--line: #d9d1c1;--line-strong: #bbb09e;--ochre: #a9572f;--ochre-dark: #7b3b21;--ochre-soft: #f2d8c5;--sage: #426656;--sage-soft: #dce9df;--gold: #c08a32;--danger: #a54139;--danger-soft: #f6ded9;--shadow-sm: 0 1px 2px rgb(45 37 25 / 7%);--shadow-md: 0 16px 48px rgb(45 37 25 / 11%);--radius-sm: 7px;--radius-md: 13px;--radius-lg: 24px;--content: 1220px}*{box-sizing:border-box}html{min-width:320px;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 5%,rgb(255 255 255 / 50%),transparent 25rem),var(--paper)}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--ochre-dark);text-underline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--font-display);font-weight:600;letter-spacing:-.025em}h1{margin-bottom:.35rem;font-size:clamp(2.4rem,5vw,4rem);line-height:.98}h2{font-size:clamp(1.5rem,3vw,2.15rem);line-height:1.08}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgb(169 87 47 / 24%);outline-offset:2px}.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}.brand{display:inline-flex;align-items:center;gap:.65rem;color:var(--ink);font-family:var(--font-display);font-size:1.35rem;font-weight:600;text-decoration:none}.brand__mark{width:1.75rem;color:var(--ochre)}.brand--large{font-size:1.65rem}.brand--large .brand__mark{width:2.25rem}.button{min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1rem;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;font-weight:700;line-height:1;text-decoration:none;transition:background .14s,border-color .14s,color .14s,transform .14s}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.58}.button svg{width:1.1rem}.button--primary{background:var(--ochre);color:#fff;box-shadow:0 5px 14px #7b3b2126}.button--primary:hover:not(:disabled){background:var(--ochre-dark)}.button--outline{background:var(--surface-raised);border-color:var(--line-strong);color:var(--ink)}.button--outline:hover:not(:disabled),.button--quiet:hover:not(:disabled){border-color:var(--ochre);background:var(--ochre-soft)}.button--quiet{background:transparent;border-color:transparent;color:var(--ink)}.button--small{min-height:2.2rem;padding:.45rem .7rem;font-size:.82rem}.button--wide{width:100%}.button--added{color:var(--sage);background:var(--sage-soft);border-color:transparent}.spinner-wrap{display:inline-flex}.spinner{width:1rem;height:1rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.eyebrow{margin-bottom:.65rem;color:var(--ochre);font-size:.73rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.lede{color:var(--ink-soft);line-height:1.65}.app-frame{min-height:100vh}.topbar{position:sticky;z-index:20;top:0;height:72px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;padding:0 max(1.25rem,calc((100vw - var(--content)) / 2));background:#f4f0e7e5;border-bottom:1px solid rgb(187 176 158 / 60%);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar__nav{height:100%;display:flex;align-items:stretch;gap:1.7rem}.topbar__nav a{display:flex;align-items:center;border-bottom:2px solid transparent;color:var(--ink-soft);font-size:.88rem;font-weight:700;text-decoration:none}.topbar__nav a.active{border-color:var(--ochre);color:var(--ink)}.topbar__account{display:flex;align-items:center;justify-content:flex-end;gap:.8rem}.username{color:var(--ink-soft);font-size:.82rem;text-decoration:none}.app-main{width:min(var(--content),calc(100% - 2.5rem));margin:0 auto;padding:clamp(2.5rem,6vw,5.5rem) 0 6rem}.editor-layout{display:grid;grid-template-columns:minmax(0,1.13fr) minmax(330px,.87fr);gap:clamp(2rem,5vw,5.5rem);align-items:start}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2rem}.page-heading>div:first-child>p:last-child{max-width:42rem;margin:.75rem 0 0;color:var(--ink-soft);line-height:1.6}.piece-count{min-width:5.5rem;padding-left:1.4rem;border-left:1px solid var(--line-strong)}.piece-count strong,.piece-count span{display:block}.piece-count strong{font-family:var(--font-display);font-size:2.25rem}.piece-count span{color:var(--ink-soft);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.search-panel{position:sticky;top:104px;max-height:calc(100vh - 130px);padding:1.4rem;overflow:auto;background:#fcfaf5cc;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.section-heading h2{margin-bottom:1.2rem;font-size:1.7rem}.kind-picker{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}.kind-picker input{position:absolute;opacity:0;pointer-events:none}.kind-picker span{display:block;padding:.48rem .72rem;background:var(--paper);border:1px solid var(--line);border-radius:999px;cursor:pointer;color:var(--ink-soft);font-size:.78rem;font-weight:700}.kind-picker input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--surface)}.kind-picker input:focus-visible+span{outline:3px solid rgb(169 87 47 / 24%);outline-offset:2px}.search-field{height:3.15rem;display:flex;align-items:center;gap:.7rem;padding:0 .9rem;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-md)}.search-field:focus-within{border-color:var(--ochre);box-shadow:0 0 0 3px #a9572f1f}.search-field>svg{width:1.15rem;color:var(--ink-faint)}.search-field input{width:100%;height:100%;padding:0;background:transparent;border:0;outline:0}.search-hint,.results-refreshing{margin:.55rem 0 0;color:var(--ink-faint);font-size:.76rem}.results-refreshing{margin-bottom:.6rem}.search-results-wrap{margin-top:1rem}.search-results{padding:0;margin:0;list-style:none}.search-results li{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.75rem 0;border-top:1px solid var(--line)}.search-results li:first-child{border-top:0}.result-copy{min-width:0}.result-title{margin-bottom:.18rem;overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.result-copy>p:nth-child(2),.tessera-copy p{margin-bottom:.32rem;color:var(--ink-soft);font-size:.76rem}.artwork{width:48px;height:62px;display:block;object-fit:cover;background:var(--paper-warm);border:1px solid rgb(36 35 31 / 9%);border-radius:4px;box-shadow:0 3px 9px #2d25191c}.artwork--placeholder{position:relative;display:grid;place-items:center;overflow:hidden;color:var(--ochre-dark)}.artwork--placeholder svg{position:absolute;width:70%;opacity:.12}.artwork--placeholder span{font-family:var(--font-display);font-size:1.5rem}.artwork--mosaic{width:66px;height:86px}.medium-chip{display:inline-block;color:var(--ochre-dark);font-size:.62rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.mosaic-list{padding:0;margin:0;list-style:none;counter-reset:none}.tessera-row{position:relative;display:grid;grid-template-columns:2rem 2rem 66px minmax(0,1fr) auto;gap:.8rem;align-items:center;min-height:112px;padding:.75rem 0;background:var(--paper);border-top:1px solid var(--line)}.tessera-row:last-child{border-bottom:1px solid var(--line)}.tessera-row--dragging{z-index:10;padding-inline:.75rem;background:var(--surface-raised);border:1px solid var(--ochre);border-radius:var(--radius-md);box-shadow:var(--shadow-md);opacity:.96}.position{color:var(--ink-faint);font-family:var(--font-display);font-size:.9rem}.drag-handle,.icon-button{width:2rem;height:2rem;display:inline-grid;place-items:center;padding:0;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--ink-faint);cursor:grab}.drag-handle:hover,.icon-button:hover:not(:disabled){background:var(--surface);border-color:var(--line);color:var(--ink)}.drag-handle:active{cursor:grabbing}.drag-handle svg,.icon-button svg{width:1.15rem}.icon-button{cursor:pointer}.icon-button:disabled{opacity:.25;cursor:not-allowed}.icon-button--danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.tessera-copy{min-width:0}.tessera-copy h3{margin-bottom:.25rem;overflow:hidden;font-family:var(--font-display);font-size:1.2rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.row-actions{display:flex;gap:.1rem}.empty-mosaic,.empty-search{display:grid;justify-items:center;padding:3.5rem 1.5rem;text-align:center;border:1px dashed var(--line-strong);border-radius:var(--radius-lg)}.empty-mosaic>svg{width:3rem;margin-bottom:1rem;color:var(--ochre)}.empty-mosaic h2,.empty-search h3{margin-bottom:.5rem}.empty-mosaic p,.empty-search p{max-width:29rem;margin:0;color:var(--ink-soft);line-height:1.6}.empty-search{padding:2rem 1rem}.empty-search>span{color:var(--ochre);font-family:var(--font-display);font-size:2rem}.alert{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding:.75rem .9rem;border:1px solid;border-radius:var(--radius-sm);font-size:.8rem;line-height:1.45}.alert--error{background:var(--danger-soft);border-color:#dfaaa2;color:#74302b}.alert--warning{background:#f7e9c9;border-color:#dfc88e;color:#6c4c19}.alert--success{background:var(--sage-soft);border-color:#aac8b0;color:#2f5845}.alert--info{background:#e4e8eb;border-color:#bec8ce;color:#3f555f}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(330px,.9fr) minmax(480px,1.1fr)}.auth-intro{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(2rem,5vw,5rem);overflow:hidden;background:#263c35;color:#f7f0df}.auth-intro .brand{position:relative;z-index:1;color:#fffaf0}.auth-intro .brand__mark{color:#d9955e}.auth-intro blockquote{position:relative;z-index:1;max-width:28rem;margin:auto 0;font-family:var(--font-display);font-size:clamp(2rem,4vw,3.6rem);line-height:1.08}.auth-intro cite{display:block;margin-top:1.4rem;color:#bec9bf;font-family:var(--font-sans);font-size:.76rem;font-style:normal;letter-spacing:.08em;text-transform:uppercase}.auth-intro__mosaic{position:absolute;right:-3rem;bottom:-3rem;width:20rem;height:20rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;opacity:.23;transform:rotate(-10deg)}.auth-intro__mosaic span{background:#d9955e;border:1px solid #fff1}.auth-intro__mosaic span:nth-child(2),.auth-intro__mosaic span:nth-child(4){background:#a6b9a3}.auth-intro__mosaic span:nth-child(3){grid-row:span 2;background:#e2c083}.auth-panel{display:grid;place-items:center;padding:3rem 1.5rem}.auth-card{width:min(100%,430px)}.auth-card h1{font-size:clamp(2.5rem,5vw,3.6rem)}.auth-card__footer{margin-top:1.5rem;color:var(--ink-soft);font-size:.86rem;text-align:center}.form-stack{display:grid;gap:1.1rem;margin-top:2rem}.form-stack label,.profile-form label{display:grid;gap:.45rem;font-size:.81rem;font-weight:700}input,textarea{width:100%;padding:.78rem .85rem;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink);outline:none;transition:border-color .13s,box-shadow .13s}input:focus,textarea:focus{border-color:var(--ochre);box-shadow:0 0 0 3px #a9572f1a}input[aria-invalid=true]{border-color:var(--danger)}textarea{resize:vertical;line-height:1.5}label small,.fine-print,.immutable-field small{color:var(--ink-faint);font-size:.72rem;font-weight:400;line-height:1.45}.label-row{display:flex;justify-content:space-between;gap:1rem}.label-row a,.label-row small{font-size:.72rem;font-weight:500}.input-prefix{display:flex;align-items:center;padding-left:.85rem;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.input-prefix:focus-within{border-color:var(--ochre);box-shadow:0 0 0 3px #a9572f1a}.input-prefix>span{color:var(--ink-faint)}.input-prefix input{padding-left:.3rem;border:0;box-shadow:none}.fine-print{margin-top:1rem;text-align:center}.field-error{color:var(--danger)}.centered-card-state{display:grid;place-items:center;min-height:7rem}.centered-state{min-height:60vh;display:grid;align-content:center;justify-items:center;gap:.75rem;color:var(--ink-soft)}.page-narrow{width:min(100%,760px);margin:0 auto}.card{padding:clamp(1.3rem,4vw,2.2rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.profile-form{display:grid;gap:1.5rem}.immutable-field{display:grid;gap:.25rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}.immutable-field>span{font-size:.81rem;font-weight:700}.immutable-field strong{font-family:var(--font-display);font-size:1.3rem}.form-actions{display:flex;justify-content:flex-end}@media(max-width:920px){.editor-layout{grid-template-columns:1fr}.search-panel{position:static;max-height:none;grid-row:1}.auth-page{grid-template-columns:1fr}.auth-intro{min-height:250px;padding:2rem}.auth-intro blockquote{margin-top:4rem;font-size:2rem}.auth-intro__mosaic{width:14rem;height:14rem}}@media(max-width:680px){.topbar{height:auto;grid-template-columns:1fr auto;gap:.4rem 1rem;padding:.75rem 1rem 0}.topbar__nav{grid-column:1 / -1;grid-row:2;height:2.5rem;gap:1.5rem}.topbar__account .username{display:none}.app-main{width:min(100% - 1.5rem,var(--content));padding-top:2.5rem}.page-heading{align-items:flex-start;flex-direction:column}.page-heading .button{width:100%}.piece-count{display:flex;align-items:baseline;gap:.45rem;padding:0;border:0}.piece-count strong,.piece-count span{display:inline}.tessera-row{grid-template-columns:1.3rem 2rem 52px minmax(0,1fr);gap:.45rem}.artwork--mosaic{width:52px;height:70px}.row-actions{grid-column:3 / -1;justify-content:flex-end}.auth-intro{min-height:190px}.auth-intro blockquote{display:none}.auth-panel{padding-block:2.5rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.app-footer{padding:1rem 2rem 2rem;text-align:center;color:var(--ink-muted);font-size:.875rem}.app-footer a,.result-sources a{color:inherit}.result-sources{display:flex;flex-wrap:wrap;gap:.35rem .75rem;margin-top:.45rem;font-size:.78rem}
