:root{--paper: #f5efe4;--paper-warm: #ede4d0;--paper-deep: #e2d7bd;--paper-lifted: #fbf7ed;--sea: #13304a;--sea-deep: #0a1e30;--copper: #b8613a;--copper-deep: #8f4826;--sage: #5d7a68;--coral: #8a1f0f;--ink: #1a1714;--ink-soft: #5a4f42;--ink-mute: #8a7d6b;--line: #d4c8ad;--line-soft: #e1d7bd;--danger: #8a1f0f;--ok: #4a6b55;--warning-bg: #f7ecc9;--warning-line: #d9c277;--touch: 44px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}html,body{margin:0}body{font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:18px;line-height:1.55;color:var(--ink);background:var(--paper);background-image:url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.045 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");background-size:240px 240px;min-height:100vh;-webkit-font-smoothing:antialiased}::selection{background:var(--copper);color:var(--paper)}a{color:var(--sea-deep);text-underline-offset:3px}a:hover{color:var(--copper-deep)}h1,h2,h3,h4{font-family:Fraunces,Georgia,serif;font-weight:400;color:var(--sea-deep);letter-spacing:-.01em;margin:0 0 .75rem;font-variation-settings:"opsz" 144,"SOFT" 50}h1{font-size:clamp(1.9rem,3vw,2.4rem);line-height:1.1;font-weight:350}h1 em{font-style:italic;color:var(--copper);font-weight:400}h2{font-size:1.45rem;line-height:1.2;font-weight:400}h3{font-size:1.15rem;font-weight:500;letter-spacing:0}p{margin:0 0 1rem}strong{font-weight:600;color:var(--sea-deep)}em{font-style:italic}.eyebrow{font-family:Plus Jakarta Sans,sans-serif;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--copper-deep);margin:0 0 1rem;font-weight:500}h1.display{font-family:Fraunces,Georgia,serif;font-weight:350;font-size:clamp(2.6rem,5.5vw,4.2rem);font-variation-settings:"opsz" 144,"SOFT" 50;color:var(--sea-deep);margin:0 0 .9rem;letter-spacing:-.015em;line-height:1.04;max-width:20ch}h1.display em{color:var(--copper);font-style:italic;font-weight:400}.lede{font-size:1.08rem;color:var(--ink-soft);max-width:52ch;margin:0 0 2.5rem}.subtle{color:var(--ink-soft)}button,input,textarea,select{font:inherit;color:inherit}label{display:block;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:.45rem;font-weight:500}.field{margin-bottom:1.6rem}.field .help{font-weight:400;color:var(--ink-mute);font-size:.88rem;margin-top:.4rem;letter-spacing:0;text-transform:none}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search]{width:100%;min-height:var(--touch);font-size:1.02rem;padding:.55rem .1rem;background:transparent;border:none;border-bottom:1px solid var(--line);border-radius:0;color:var(--sea-deep);transition:border-color .15s}input::placeholder{color:var(--ink-mute);opacity:.6}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=search]:focus{outline:none;border-bottom-color:var(--copper)}input[type=file]{font:inherit;padding:.45rem 0;background:transparent;color:var(--ink-soft)}input[type=file]::file-selector-button{font:inherit;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500;padding:.55rem 1.05rem;margin-right:1rem;background:var(--paper-warm);color:var(--sea-deep);border:1px solid var(--line);cursor:pointer;transition:border-color .15s,color .15s,background .15s}input[type=file]::file-selector-button:hover{border-color:var(--copper);color:var(--copper-deep);background:var(--paper-lifted)}textarea{width:100%;min-height:120px;font-size:1.02rem;line-height:1.5;padding:.75rem .9rem;background:var(--paper-lifted);color:var(--sea-deep);border:1px solid var(--line);border-radius:0;resize:vertical;transition:border-color .15s}textarea:focus{outline:none;border-color:var(--copper)}select{width:100%;min-height:var(--touch);font-size:1rem;padding:.45rem 1.8rem .45rem .1rem;background:transparent;border:none;border-bottom:1px solid var(--line);color:var(--sea-deep);border-radius:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%2313304a' stroke-width='1.2' fill='none'/></svg>");background-repeat:no-repeat;background-position:right .35rem center;background-size:10px 6px;transition:border-color .15s}select:hover,select:focus{outline:none;border-bottom-color:var(--copper)}button{min-height:var(--touch);padding:.6rem 1.2rem;background:var(--paper-warm);color:var(--sea-deep);border:1px solid var(--line);border-radius:2px;cursor:pointer;font-family:inherit;font-size:.9rem;letter-spacing:.04em;transition:border-color .15s,color .15s,background .15s,transform .15s}button:hover:not(:disabled){border-color:var(--copper);color:var(--copper-deep)}button:focus-visible{outline:2px solid var(--copper);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}button[type=submit],button.primary{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.7rem;background:var(--sea-deep);color:var(--paper);border:1px solid var(--sea-deep);font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500;transition:background .22s,border-color .22s;border-radius:2px}button[type=submit]:hover:not(:disabled),button.primary:hover:not(:disabled){background:var(--copper);border-color:var(--copper);color:var(--paper)}button.danger{background:transparent;color:var(--danger);border-color:var(--line)}button.danger:hover:not(:disabled){background:var(--danger);color:var(--paper);border-color:var(--danger)}.btn-primary{display:inline-flex;align-items:center;gap:.6rem;min-height:var(--touch);padding:.85rem 1.7rem;background:var(--sea-deep);color:var(--paper);border:none;cursor:pointer;font:inherit;font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500;text-decoration:none;transition:background .22s}.btn-primary:hover{background:var(--copper);color:var(--paper)}.btn-primary .arrow{transition:transform .22s;display:inline-block}.btn-primary:hover .arrow{transform:translate(4px)}.btn-ghost{background:transparent;color:var(--ink-soft);border:1px solid var(--line);padding:.55rem 1.05rem;border-radius:2px;font-size:.85rem;letter-spacing:.04em;min-height:var(--touch);cursor:pointer;transition:border-color .15s,color .15s}.btn-ghost:hover{border-color:var(--copper);color:var(--copper-deep)}.checkbox-row{display:flex;align-items:flex-start;gap:.75rem;padding:.3rem 0}.checkbox-row input[type=checkbox]{width:22px;height:22px;margin-top:.15rem;flex-shrink:0;accent-color:var(--copper)}.checkbox-row label{flex:1;margin:0;font-weight:400;font-size:.98rem;letter-spacing:0;text-transform:none;color:var(--ink);line-height:1.45}.error{color:var(--danger);background:#f7ebe9;border:1px solid #e7c5bf;padding:.65rem .9rem;border-radius:2px;margin:.75rem 0;font-size:.95rem}.ok{color:var(--ok);background:#e9f0ea;border:1px solid #bcd0bf;padding:.65rem .9rem;border-radius:2px;margin:.75rem 0;font-size:.95rem}.ok-inline{color:var(--ok);font-weight:600}header.site{background:var(--paper-warm);border-bottom:1px solid var(--line);padding:1.15rem 2rem .85rem}header.site .site-inner,header.site .inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem}@media(max-width:860px){header.site{padding:1rem 1.25rem}header.site .site-inner,header.site .inner{grid-template-columns:1fr;gap:.75rem}}.wordmark,header.site .brand{font-family:Fraunces,Georgia,serif;font-weight:400;font-size:1.35rem;letter-spacing:-.01em;text-decoration:none;color:var(--sea-deep);display:inline-flex;align-items:baseline;gap:.45em;font-variation-settings:"opsz" 144,"SOFT" 50}.wordmark em,header.site .brand em{font-style:italic;color:var(--copper);font-weight:500}header.site nav,header.site nav.primary{display:flex;gap:.1rem;justify-self:center;flex-wrap:wrap}header.site nav a{color:var(--ink-soft);text-decoration:none;padding:.5rem .85rem;font-size:.95rem;position:relative;transition:color .15s;border-radius:0;background:transparent}header.site nav a:hover{color:var(--sea-deep);background:transparent}header.site nav a.active{color:var(--sea-deep);background:transparent}header.site nav a.active:after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:.1rem;height:1.5px;background:var(--copper)}header.site .me{margin-left:0;display:flex;align-items:center;gap:.9rem;font-size:.92rem;color:var(--ink-soft);white-space:nowrap;justify-self:end}header.site .me span:first-child{font-weight:500;color:var(--sea-deep)}header.site .me button{background:transparent;border:1px solid var(--line);color:var(--ink-soft);padding:.45rem .95rem;border-radius:2px;font-size:.85rem;letter-spacing:.04em;text-transform:none;min-height:var(--touch)}header.site .me button:hover{border-color:var(--copper);color:var(--copper-deep);background:transparent}.role-badge{border:1px solid var(--copper);background:transparent;color:var(--copper-deep);padding:.14rem .6rem;border-radius:999px;font-size:.7rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.horizon{display:flex;align-items:center;gap:1rem;color:var(--ink-mute);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;max-width:1280px;margin:.7rem auto 0;padding:0 2rem}.horizon:before,.horizon:after{content:"";flex:1;height:1px;background:var(--line)}main.content{max-width:760px;margin:0 auto;padding:3rem 1.5rem 5rem}main.content.wide{max-width:1280px;padding:2.5rem 2rem 5rem}main.content.feature{max-width:1280px;padding:3.5rem 2rem 5rem}main.login-split{display:grid;grid-template-columns:1.05fr .95fr;min-height:100vh;max-width:none;margin:0;padding:0}@media(max-width:860px){main.login-split{grid-template-columns:1fr;grid-template-rows:38vh 1fr}}.login-hero{position:relative;overflow:hidden;background:var(--sea-deep)}.login-hero img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:sepia(.32) saturate(.78) brightness(.75) contrast(1.05)}.login-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0a1e302e,#0a1e3099)}.hero-content{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(2rem,4vw,3.5rem);color:var(--paper);z-index:1}.hero-top .eyebrow{color:#f5efe4c7;margin-bottom:.5rem}.hero-quote{font-family:Fraunces,Georgia,serif;font-weight:300;font-style:italic;font-size:clamp(1.5rem,2.4vw,2.2rem);line-height:1.25;max-width:22ch;font-variation-settings:"opsz" 144;margin:.5rem 0 0;color:var(--paper)}.hero-quote:before{content:"“";color:var(--copper);margin-right:.12em;font-weight:400}.hero-bottom{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-top:1px solid rgba(245,239,228,.25);padding-top:1.35rem}.hero-mark{font-family:Fraunces,Georgia,serif;font-size:clamp(2.6rem,5vw,4rem);font-style:italic;color:var(--copper);font-variation-settings:"opsz" 144;line-height:1;font-weight:350}.hero-span{font-family:Plus Jakarta Sans,sans-serif;font-size:.78rem;letter-spacing:.25em;text-transform:uppercase;color:#f5efe4d1}.login-panel{display:flex;align-items:center;justify-content:center;padding:clamp(2rem,5vw,4rem)}.login-card{width:100%;max-width:420px}.login-card h1{font-family:Fraunces,Georgia,serif;font-weight:350;font-style:italic;font-size:2.6rem;font-variation-settings:"opsz" 144;color:var(--sea-deep);margin:0 0 .5rem;letter-spacing:-.01em}.login-card .login-lede{color:var(--ink-soft);margin:0 0 2.5rem;font-size:1rem;max-width:none}.login-card .reset-hint{margin-top:2.5rem;font-size:.85rem;color:var(--ink-mute)}.login-card .reset-hint a{color:var(--copper-deep)}.filters,.filter-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1rem 0;margin:2rem 0 3rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap;font-size:.95rem}.filter-label{font-family:Fraunces,Georgia,serif;font-style:italic;color:var(--ink-mute);font-size:1rem;font-variation-settings:"opsz" 144}.filters label,.filter-row label{display:inline-flex;align-items:baseline;gap:.55rem;color:var(--ink-soft);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;margin:0}.filters select,.filter-row select{width:auto;min-width:8rem;border-bottom:1px solid var(--line);padding:.3rem 1.4rem .3rem .25rem}.filters .reset,.filter-row button.reset,.filter-row>button{margin-left:auto;background:none;border:none;color:var(--copper-deep);cursor:pointer;text-decoration:underline;text-underline-offset:4px;min-height:var(--touch);padding:0 .25rem;font-size:.9rem;letter-spacing:0;text-transform:none}.filters .reset:hover,.filter-row button.reset:hover,.filter-row>button:hover{color:var(--coral);border:none;background:none}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2.2rem 1.75rem}@media(max-width:1024px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:1.7rem 1rem}.gallery-grid .tile.feature{grid-column:span 2}}@media(max-width:480px){.gallery-grid{grid-template-columns:1fr}.gallery-grid .tile.feature{grid-column:span 1}}.gallery-grid .tile,.gallery-grid .gallery-tile{display:block;text-decoration:none;color:inherit;background:transparent;border:none;border-radius:0;overflow:visible;transition:none}.gallery-grid .tile:hover,.gallery-grid .gallery-tile:hover{transform:none;box-shadow:none}.gallery-grid .tile.feature,.gallery-grid .gallery-tile.feature{grid-column:span 2}.gallery-grid .frame,.gallery-grid .gallery-tile>img,.gallery-grid .gallery-tile .gallery-frame{aspect-ratio:4 / 3;overflow:hidden;background:var(--paper-deep);position:relative;display:block}.gallery-grid .tile.feature .frame,.gallery-grid .gallery-tile.feature .gallery-frame{aspect-ratio:16 / 9}.gallery-grid .tile img,.gallery-grid .gallery-tile img{width:100%;height:100%;object-fit:cover;filter:sepia(.22) saturate(.9) contrast(.95);transition:filter .45s ease,transform 1.2s ease;display:block;aspect-ratio:auto}.gallery-grid .tile:hover img,.gallery-grid .tile:focus-visible img,.gallery-grid .gallery-tile:hover img,.gallery-grid .gallery-tile:focus-visible img{filter:sepia(0) saturate(1) contrast(1);transform:scale(1.03)}.gallery-grid .tile:focus-visible .frame,.gallery-grid .gallery-tile:focus-visible .gallery-frame{outline:2px solid var(--copper);outline-offset:4px}.gallery-grid .caption,.gallery-grid .gallery-caption{padding:.65rem 0 0;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);margin-top:.7rem;font-size:inherit;flex-direction:row;background:transparent}.gallery-grid .tile .year,.gallery-grid .gallery-tile .year{font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:350;font-size:1.35rem;color:var(--sea-deep);font-variation-settings:"opsz" 144}.gallery-grid .tile .year small,.gallery-grid .gallery-tile .year small{font-size:.55em;font-style:italic;color:var(--ink-mute);margin-right:.25em;vertical-align:.25em}.gallery-grid .tile .house,.gallery-grid .gallery-tile .house{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute)}.gallery-grid .tile .desc,.gallery-grid .gallery-tile .desc{font-size:.92rem;color:var(--ink-soft);margin:.35rem 0 0;line-height:1.4;font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:350}.gallery-grid .thumb-placeholder{width:100%;aspect-ratio:4 / 3;border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink-mute);font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;background:var(--paper-warm)}.crumb{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 2.5rem;font-weight:500}.crumb a{color:var(--ink-mute);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px;transition:border-color .15s}.crumb a:hover{border-bottom-color:var(--copper);color:var(--copper-deep)}.crumb .sep{margin:0 .7rem;color:var(--line)}.photo-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:3.5rem;align-items:start}@media(max-width:920px){.photo-layout{grid-template-columns:1fr;gap:2rem}}.photo-frame{position:relative;margin:0;padding:1rem;background:var(--paper-lifted);box-shadow:0 1px 0 var(--line),0 30px 60px -30px #0a142338,0 10px 25px -18px #0a14232e}.photo-frame:before{content:"";position:absolute;top:.55rem;right:.55rem;bottom:.55rem;left:.55rem;border:1px solid var(--copper);pointer-events:none;opacity:.42}.photo-frame img{display:block;width:100%;height:auto;filter:sepia(.12) contrast(.98)}.photo-frame-placeholder{aspect-ratio:3 / 2;display:flex;align-items:center;justify-content:center;color:var(--ink-mute);font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;background:var(--paper-warm)}.photo-meta{position:sticky;top:1.5rem}.photo-year{font-family:Fraunces,Georgia,serif;font-weight:300;font-size:clamp(3.6rem,8vw,5.4rem);line-height:.95;color:var(--sea-deep);font-variation-settings:"opsz" 144;margin:0 0 .75rem;letter-spacing:-.025em}.photo-year em{font-style:italic;color:var(--copper);font-size:.42em;margin-right:.2em;vertical-align:.7em}.photo-meta-line{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}.photo-desc{font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:300;font-size:1.25rem;line-height:1.5;color:var(--ink);margin:0 0 1.8rem;max-width:40ch;font-variation-settings:"opsz" 144}.photo-section{margin-bottom:1.8rem}.photo-section-title{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 .75rem;font-weight:500}.photo-actions{display:flex;gap:1.25rem;align-items:center;margin-top:2.5rem;flex-wrap:wrap}.link-muted{color:var(--ink-mute);font-size:.9rem;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line)}.link-muted:hover{color:var(--coral);text-decoration-color:var(--coral)}.gallery-full{display:block;max-width:100%;height:auto;margin:0}.download-btn{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.7rem;background:var(--sea-deep);color:var(--paper);text-decoration:none;font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500;transition:background .22s;border-radius:2px}.download-btn:hover{background:var(--copper);color:var(--paper)}.houses{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:.4rem}.houses button{min-height:56px;font-family:Fraunces,Georgia,serif;font-size:1.15rem;font-variation-settings:"opsz" 144;padding:0;background:var(--paper-warm);border:1px solid var(--line);color:var(--sea-deep);border-radius:0;letter-spacing:0;text-transform:none;transition:background .15s,border-color .15s,color .15s}.houses button:hover{border-color:var(--copper);color:var(--copper-deep);background:var(--paper-lifted)}.houses button.on{background:var(--sea-deep);color:var(--paper);border-color:var(--sea-deep)}.houses button.on:hover{background:var(--copper);border-color:var(--copper);color:var(--paper)}.photo-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}.photo-card{background:var(--paper-lifted);border:1px solid var(--line);padding:1.25rem;border-radius:0}.photo-card h3{margin:0 0 .35rem;font-family:Fraunces,Georgia,serif;font-size:1.25rem;font-weight:400;font-variation-settings:"opsz" 144;color:var(--sea-deep);letter-spacing:0}.photo-card .meta{color:var(--ink-mute);font-size:.9rem;margin:.15rem 0}.photo-card-row{display:flex;gap:1.25rem;align-items:flex-start}.thumb-wrap{flex:0 0 130px}.thumb{width:130px;height:130px;object-fit:cover;display:block;background:var(--paper-deep);filter:sepia(.18) saturate(.9) contrast(.97)}.thumb-placeholder{display:flex;align-items:center;justify-content:center;color:var(--ink-mute);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;border:1px dashed var(--line);background:var(--paper-warm);width:130px;height:130px}.photo-card-body{flex:1;min-width:0}.review-thumb-wrap{flex:0 0 200px}.review-thumb,.thumb-placeholder.review-thumb{width:200px;height:200px}.status{display:inline-block;padding:.18rem .65rem;border-radius:999px;background:var(--warning-bg);border:1px solid var(--warning-line);color:var(--copper-deep);font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;margin-right:.6rem}.status.decided{background:#e7efe8;border-color:#b8d0bc;color:var(--ok)}.review-controls{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.review-actions{display:flex;gap:.9rem;align-items:center;margin-top:.7rem}.admin-invite{background:var(--paper-warm);border:1px solid var(--line);padding:1.5rem 1.5rem 1rem;margin:1.5rem 0 2.5rem}.admin-invite h2{margin-top:0}.user-table{width:100%;border-collapse:collapse;font-size:1rem}.user-table th,.user-table td{text-align:left;padding:.75rem .6rem;border-bottom:1px solid var(--line);vertical-align:middle}.user-table th{font-family:Plus Jakarta Sans,sans-serif;font-weight:500;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);background:transparent;border-bottom:1px solid var(--line)}.user-table select{min-width:180px}.user-table .user-actions{text-align:right}.person-tag-input{position:relative}.person-tag-input .chips{display:flex;flex-wrap:wrap;gap:.4rem;min-height:var(--touch);padding:.45rem .55rem;border:1px solid var(--line);background:var(--paper-lifted);align-items:center;transition:border-color .15s}.person-tag-input .chips:focus-within{border-color:var(--copper)}.person-tag-input .chips.disabled{opacity:.6}.person-tag-input .chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--paper-warm);border:1px solid var(--line);border-radius:999px;padding:.22rem .5rem .22rem .75rem;font-size:.92rem;color:var(--sea-deep)}.person-tag-input .chip.chip-pending{background:var(--warning-bg);border-color:var(--warning-line);color:var(--copper-deep)}.person-tag-input .chip .chip-note{font-size:.72rem;color:var(--ink-mute);margin-left:.25rem;letter-spacing:.1em;text-transform:uppercase}.person-tag-input .chip button{min-height:0;min-width:22px;padding:0 .35rem;background:transparent;border:none;font-size:1.1rem;line-height:1;color:var(--ink-mute);border-radius:0}.person-tag-input .chip button:hover{color:var(--coral);background:transparent;border:none}.person-tag-input .chip-input{flex:1;min-width:120px;border:none;outline:none;padding:.25rem 0;min-height:32px;background:transparent}.person-tag-input .chip-input:focus-visible{outline:none}.tag-dropdown{position:absolute;z-index:10;top:calc(100% + 4px);left:0;right:0;background:var(--paper-lifted);border:1px solid var(--line);box-shadow:0 14px 30px -18px #0a142340;list-style:none;padding:.25rem 0;margin:0;max-height:280px;overflow-y:auto}.tag-option{padding:.6rem .9rem;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;color:var(--sea-deep)}.tag-option.active,.tag-option:hover{background:var(--paper-warm)}.tag-option-pending .tag-option-note{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}.tag-option-propose{color:var(--copper-deep);font-weight:600;border-top:1px solid var(--line)}.person-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0}.person-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.28rem .75rem;background:transparent;border:1px solid var(--line);border-radius:999px;font-size:.88rem;color:var(--sea-deep);text-decoration:none;transition:border-color .15s,color .15s,background .15s;font-family:inherit;letter-spacing:0;text-transform:none;cursor:pointer}.person-chip.pending{background:var(--warning-bg);border-color:var(--warning-line);color:var(--copper-deep)}a.person-chip:hover,button.person-chip:hover{border-color:var(--copper);color:var(--copper-deep);background:transparent}.field-label-display{font-family:Fraunces,Georgia,serif;font-style:italic;font-size:1.1rem;letter-spacing:0;text-transform:none;color:var(--ink)}.not-found-center{min-height:calc(100vh - 100px);display:flex;align-items:center;justify-content:center;text-align:center}.not-found-center h1{font-size:clamp(3.5rem,9vw,6rem);font-style:italic}.not-found-center p{color:var(--ink-soft);max-width:40ch}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}main.content>*,main.feature>*,.login-card>*,.hero-content>*{animation:rise .7s ease both}main>*:nth-child(1){animation-delay:0ms}main>*:nth-child(2){animation-delay:70ms}main>*:nth-child(3){animation-delay:.14s}main>*:nth-child(4){animation-delay:.21s}main>*:nth-child(5){animation-delay:.28s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.tile .frame{position:relative}.help-wanted-ribbon{position:absolute;top:.6rem;left:.6rem;background:var(--copper);color:var(--paper);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .55rem;border-radius:2px;box-shadow:0 2px 6px #00000026;font-weight:600;pointer-events:none}.tile-short-id{position:absolute;top:.6rem;right:.6rem;background:#fcf9f2eb;color:var(--copper-deep);font-family:JetBrains Mono,Menlo,Consolas,monospace;font-size:.72rem;letter-spacing:.04em;padding:.2rem .45rem;border-radius:2px;box-shadow:0 1px 3px #0000001f;pointer-events:none;font-weight:500}.help-wanted-banner{background:var(--paper-warm);border-left:3px solid var(--copper);padding:.75rem 1rem;margin-bottom:1rem;color:var(--ink-soft);font-size:.95rem;line-height:1.5;border-radius:2px}.help-wanted-banner strong{color:var(--copper-deep)}.help-wanted-toggle{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--paper-deep)}.help-wanted-toggle label{display:inline-flex;align-items:flex-start;gap:.6rem;cursor:pointer;font-size:.95rem;color:var(--ink-soft)}.help-wanted-toggle input[type=checkbox]{margin-top:.15rem;width:1.1rem;height:1.1rem;accent-color:var(--copper)}.help-wanted-toggle strong{color:var(--copper-deep)}.comment-addenda{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.9rem}.comment-addendum{background:var(--paper-lifted);border-left:2px solid var(--sage);padding:.75rem 1rem;border-radius:2px}.comment-addendum p{margin:0;color:var(--ink-soft);line-height:1.55}.comment-addendum p.attribution{margin-top:.4rem;font-family:Fraunces,Georgia,serif;font-style:italic;font-size:.9rem;color:var(--ink-mute)}.comment-card{margin:3rem auto 2rem;max-width:56rem;padding:2rem;background:var(--paper-lifted);border:1px solid var(--paper-deep);border-radius:3px;box-shadow:0 6px 18px #141e300a}.comment-card .eyebrow{color:var(--copper-deep)}.comment-heading{font-family:Fraunces,Georgia,serif;font-weight:400;font-size:clamp(1.5rem,2.5vw,2rem);color:var(--sea-deep);margin:.4rem 0 .6rem;line-height:1.15}.comment-heading em{color:var(--copper);font-style:italic}.comment-lede{margin:0 0 1.25rem;font-size:1rem}.comment-card textarea{width:100%;font-family:inherit;font-size:1rem;padding:.9rem 1rem;line-height:1.5;background:var(--paper);border:1px solid var(--paper-deep);border-radius:2px;resize:vertical}.comment-card textarea:focus{outline:none;border-color:var(--copper);box-shadow:0 0 0 3px #b8613a26}.comment-thanks{padding:1.25rem;background:var(--paper-warm);border-left:3px solid var(--sage);border-radius:2px}.comment-thanks p{margin:0 0 .75rem}.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}.comment-queue{display:flex;flex-direction:column;gap:1.5rem}.comment-row{background:var(--paper-lifted);border:1px solid var(--paper-deep);border-radius:3px;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.comment-row-head{display:flex;gap:1rem;align-items:flex-start}.comment-row-head .thumb,.comment-row-head .thumb-placeholder{width:120px;height:120px;object-fit:cover;border-radius:2px;border:1px solid var(--paper-deep);flex:0 0 auto}.comment-row-context{flex:1 1 auto;min-width:0}.comment-body{margin:0;padding:.9rem 1.1rem;background:var(--paper-warm);border-left:3px solid var(--copper);border-radius:2px;font-size:1rem;line-height:1.55;color:var(--ink)}.comment-body .attribution{margin-top:.5rem;font-family:Fraunces,Georgia,serif;font-style:italic;font-size:.85rem;color:var(--ink-mute)}.comment-actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.comment-editor{display:flex;flex-direction:column;gap:.75rem;padding-top:.5rem;border-top:1px dashed var(--paper-deep)}.comment-reject-confirm{padding:.75rem 1rem;background:var(--paper-warm);border-left:3px solid #b23a3a;border-radius:2px}.comment-reject-confirm p{margin:0 0 .5rem}.short-id{font-family:JetBrains Mono,Menlo,Consolas,monospace;font-size:.8em;letter-spacing:.02em;color:var(--copper-deep);background:var(--paper-warm);padding:.05em .4em;border-radius:2px;white-space:nowrap}.eyebrow .short-id{background:transparent;padding:0;font-weight:500}.removal-form{margin-top:1.25rem;padding:1rem 1.25rem;background:var(--paper-warm);border-left:3px solid #b23a3a;border-radius:2px}.removal-intro{margin:0 0 .75rem;color:var(--ink-soft);line-height:1.55;font-size:.95rem}.removal-form textarea{width:100%;font-family:inherit;font-size:1rem;padding:.7rem .9rem;background:var(--paper);border:1px solid var(--paper-deep);border-radius:2px;resize:vertical}.removal-actions{display:flex;gap:.5rem;flex-wrap:wrap}.removal-thanks{margin-top:1rem;padding:.9rem 1.1rem;background:var(--paper-warm);border-left:3px solid var(--sage);border-radius:2px;color:var(--ink-soft)}.removal-thanks p{margin:0}button.link-muted{background:none;border:none;padding:0;font:inherit;color:var(--ink-mute);text-decoration:underline;text-underline-offset:3px;cursor:pointer}button.link-muted:hover{color:var(--copper-deep)}.removal-decide{display:flex;flex-direction:column;gap:.75rem;padding:.75rem 1rem;background:var(--paper-warm);border-left:3px solid #b23a3a;border-radius:2px}.removal-decide p{margin:0}.edit-pencil{margin-left:.75rem;background:transparent;border:1px solid var(--copper);color:var(--copper-deep);font-size:.75rem;letter-spacing:.05em;padding:.2rem .55rem;border-radius:2px;cursor:pointer;text-transform:uppercase;vertical-align:middle}.edit-pencil:hover{background:var(--copper);color:var(--paper)}.photo-edit-form{margin:1rem 0 1.5rem;padding:1.2rem;background:var(--paper-warm);border-left:3px solid var(--copper);border-radius:2px;display:flex;flex-direction:column;gap:1rem}.photo-edit-form .field{display:flex;flex-direction:column;gap:.3rem}.photo-edit-form label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);font-weight:600}.photo-edit-form textarea,.photo-edit-form input[type=number],.photo-edit-form input[type=text]{font-family:inherit;font-size:1rem;padding:.55rem .7rem;border:1px solid var(--line);background:var(--paper);border-radius:2px;color:var(--ink)}.photo-edit-form .field-row{display:flex;gap:1rem;align-items:flex-end}.photo-edit-form .field-row .field{flex:1}.photo-edit-form .checkbox-inline{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;color:var(--ink-soft);text-transform:none;letter-spacing:normal;padding-bottom:.55rem}.photo-edit-form .help{font-size:.75rem;color:var(--ink-mute);align-self:flex-end}.photo-edit-form .house-chips{display:flex;flex-wrap:wrap;gap:.4rem}.photo-edit-form .house-chip{position:relative;cursor:pointer;padding:.3rem .7rem;border:1px solid var(--line);background:var(--paper);border-radius:2px;font-size:.85rem;color:var(--ink-soft);text-transform:none;letter-spacing:normal;font-weight:400}.photo-edit-form .house-chip input{position:absolute;opacity:0;pointer-events:none}.photo-edit-form .house-chip.selected{background:var(--copper);color:var(--paper);border-color:var(--copper)}.photo-edit-actions{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.photo-edit-actions .link-danger{background:transparent;border:none;color:#b23a3a;text-decoration:underline;text-underline-offset:3px;cursor:pointer;margin-left:auto;font-size:.9rem}.photo-edit-actions .link-danger:hover{color:#8a2929}.delete-confirm-inline{display:inline-flex;gap:.5rem;align-items:center;margin-left:auto;font-size:.9rem;color:#b23a3a}.delete-confirm-inline button.danger{background:#b23a3a;color:var(--paper);border:none;padding:.35rem .7rem;font-weight:600;cursor:pointer;border-radius:2px}.book-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--paper-warm);border:1px solid var(--line);border-radius:2px;margin-bottom:1.5rem;flex-wrap:wrap}.book-actions-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.book-actions-info{color:var(--ink-mute);font-size:.9rem}.book-actions button.primary{background:var(--copper);color:var(--paper);border:none;padding:.6rem 1.1rem;font-weight:600;letter-spacing:.04em;cursor:pointer;border-radius:2px}.book-actions button.primary:disabled{opacity:.5;cursor:not-allowed}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.book-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);background:var(--paper);border-radius:2px;overflow:hidden;transition:box-shadow .2s ease,border-color .2s ease}.book-card.selected{border-color:var(--copper);box-shadow:0 0 0 2px var(--copper) inset}.book-card.not-ready{opacity:.7}.book-card-check{position:absolute;top:.5rem;left:.5rem;z-index:2;background:#fcf9f2eb;padding:.3rem;border-radius:2px;box-shadow:0 1px 3px #00000026;cursor:pointer}.book-card-check input{width:1.2rem;height:1.2rem;margin:0;cursor:pointer;accent-color:var(--copper)}.book-card-thumb{position:relative;aspect-ratio:4 / 3;overflow:hidden;background:var(--paper-deep)}.book-card-thumb img{width:100%;height:100%;object-fit:cover;display:block}.book-card-body{padding:.8rem 1rem 1rem;display:flex;flex-direction:column;gap:.4rem}.book-card-year{font-family:Fraunces,Georgia,serif;font-style:italic;font-size:1.2rem;color:var(--sea-deep);margin:0}.book-card-desc{margin:0;font-size:.95rem;color:var(--ink-soft);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.book-card-actions{margin-top:.5rem}.book-card-actions{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.book-download{display:inline-block;font-size:.85rem;color:var(--copper-deep);text-decoration:underline;text-underline-offset:3px}.book-download:hover{color:var(--copper)}.book-delete{background:transparent;border:1px solid #b23a3a;color:#b23a3a;font-size:.8rem;padding:.3rem .6rem;border-radius:2px;cursor:pointer}.book-delete:hover{background:#b23a3a;color:var(--paper)}.book-delete:disabled{opacity:.4;cursor:not-allowed}.book-delete-confirm{margin-top:.75rem;padding:.75rem .9rem;background:var(--paper-warm);border-left:3px solid #b23a3a;border-radius:2px}.book-delete-confirm p{margin:0 0 .5rem;font-size:.9rem;color:var(--ink-soft);line-height:1.4}.book-delete-actions{display:flex;gap:.5rem}.book-delete-actions button.danger{background:#b23a3a;color:var(--paper);border:none;padding:.4rem .8rem;font-weight:600;cursor:pointer;border-radius:2px}.book-delete-actions button.danger:disabled{opacity:.5;cursor:not-allowed}.admin-hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;margin-top:1.5rem}.admin-hub-card{display:flex;flex-direction:column;gap:.75rem;padding:1.4rem 1.4rem 1.2rem;background:var(--paper);border:1px solid var(--line);border-radius:2px;text-decoration:none;color:inherit;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;min-height:180px}.admin-hub-card:hover{border-color:var(--copper);box-shadow:0 4px 14px #8f48261a;transform:translateY(-2px)}.admin-hub-card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.admin-hub-title{font-family:Fraunces,Georgia,serif;font-size:1.5rem;margin:0;color:var(--sea-deep);font-weight:500}.admin-hub-badge{background:var(--copper);color:var(--paper);font-weight:700;font-size:.95rem;min-width:1.7rem;height:1.7rem;padding:0 .5rem;border-radius:.85rem;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000001f}.admin-hub-desc{margin:0;color:var(--ink-soft);font-size:.95rem;line-height:1.5;flex:1}.admin-hub-cta{margin:0;color:var(--copper-deep);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600}.mine-tabs{display:flex;gap:.4rem;margin:1.5rem 0 1rem;border-bottom:1px solid var(--line);flex-wrap:wrap}.mine-tab{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.4rem;min-height:var(--touch);background:transparent;color:var(--ink-soft);text-decoration:none;font-size:1rem;font-weight:500;letter-spacing:.02em;border:1px solid transparent;border-bottom:none;border-radius:4px 4px 0 0;margin-bottom:-1px;transition:background .15s,color .15s,border-color .15s}.mine-tab:hover{background:var(--paper-warm);color:var(--copper-deep);text-decoration:none}.mine-tab.active{background:var(--paper-lifted);color:var(--ink);border-color:var(--line);border-bottom-color:var(--paper-lifted)}.mine-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;padding:0 .4rem;height:1.4rem;background:var(--paper-warm);color:var(--copper-deep);border-radius:999px;font-size:.78rem;font-weight:600}.mine-tab.active .mine-tab-count{background:var(--copper);color:var(--paper)}@media(max-width:600px){.mine-tabs{gap:.2rem}.mine-tab{flex:1 1 0;justify-content:center;padding:.85rem .6rem;font-size:.95rem;text-align:center}}.mine-section-intro{margin:0 0 1.5rem;padding:1rem 1.2rem;background:var(--paper-warm);border-left:3px solid var(--copper)}.mine-section-intro .lede{font-size:1.05rem;line-height:1.55;color:var(--ink)}.mine-upload-btn{margin-top:1rem;display:inline-flex}@media(max-width:600px){.mine-upload-btn{display:flex;width:100%;justify-content:center}}.mine-housetext{padding:1.1rem 1.25rem;background:var(--paper-warm);border-left:3px solid var(--copper)}.mine-card{background:var(--paper-lifted);border:1px solid var(--line);display:flex;flex-direction:column}.mine-card-house{border-left:3px solid var(--copper)}.mine-card-sibling{background:var(--paper-warm);opacity:.9}.mine-card-sibling .mine-card-priority-num{color:var(--ink-soft)}.mine-card-priority{display:flex;align-items:center;gap:.5rem;padding:.45rem .9rem;background:var(--paper-warm);border-bottom:1px solid var(--line)}.mine-card-priority-num{display:inline-block;min-width:1.6rem;text-align:center;color:var(--copper);font-size:1.15rem;font-weight:600}.mine-card-priority-label{flex:1;font-size:.9rem;color:var(--ink-soft)}.mine-card-arrow{min-width:2.6rem;min-height:2.4rem;padding:.25rem .5rem;font-size:1.3rem;background:var(--paper);border:1px solid var(--line)}.mine-card-row{display:flex;gap:1.25rem;align-items:flex-start;padding:1.1rem 1.25rem}.mine-card-thumb{flex:0 0 130px;display:flex;flex-direction:column;align-items:center;gap:.4rem}.mine-card-thumb a{display:block;text-decoration:none}.mine-card-thumb a:hover{opacity:.92}.mine-card-id{margin:0;font-family:Fraunces,Georgia,serif;font-size:.8rem;color:var(--copper-deep);letter-spacing:.08em;font-weight:500}.mine-card-body{flex:1;min-width:0}.mine-card-title{margin:0 0 .35rem;font-family:Fraunces,Georgia,serif;font-size:1.4rem;font-weight:400;font-variation-settings:"opsz" 144;color:var(--sea-deep);line-height:1.25}.mine-card-title a{color:inherit;text-decoration:none}.mine-card-title a:hover{color:var(--copper-deep)}.mine-card-status{margin:0 0 .4rem}.mine-card-meta{margin:.15rem 0;color:var(--ink-soft);font-size:.95rem}.mine-card-actions{display:flex;gap:.65rem;padding:.85rem 1.25rem;border-top:1px solid var(--line-soft);background:var(--paper);flex-wrap:wrap}.btn-card{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch);padding:.55rem 1.1rem;background:var(--paper-warm);color:var(--ink);border:1px solid var(--line);border-radius:2px;font-family:inherit;font-size:.95rem;font-weight:500;letter-spacing:.02em;text-transform:none;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.btn-card:hover:not(:disabled){background:var(--paper-lifted);border-color:var(--copper);color:var(--copper-deep);text-decoration:none}.btn-card:disabled{opacity:.55;cursor:not-allowed}.btn-card-primary{background:var(--paper-lifted);border-color:var(--copper);color:var(--copper-deep);font-weight:600}.btn-card-primary:hover:not(:disabled){background:var(--copper);color:var(--paper);border-color:var(--copper)}@media(max-width:600px){.mine-card-row{flex-direction:column;align-items:stretch}.mine-card-thumb{flex:none;width:100%;flex-direction:row;align-items:center;justify-content:flex-start;gap:.9rem}.mine-card-thumb .thumb,.mine-card-thumb .thumb-placeholder{width:110px;height:110px}.mine-card-actions{flex-direction:column}.btn-card{width:100%}}.doc-list{list-style:none;padding:0;margin:0}.doc-row{border-bottom:1px solid var(--line)}.doc-row:last-child{border-bottom:none}.doc-link{display:flex;flex-direction:column;gap:.35rem;padding:.9rem .2rem;color:inherit;text-decoration:none;transition:background .15s}.doc-link:hover{background:var(--paper-warm)}.doc-title{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:1.15rem;color:var(--ink)}.doc-meta{display:flex;flex-wrap:wrap;gap:.45rem;font-size:.92rem;color:var(--ink-soft);align-items:center}.doc-pill{display:inline-flex;padding:.15rem .6rem;background:var(--paper-lifted);border:1px solid var(--line);border-radius:999px;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;color:var(--copper-deep)}.doc-meta-list{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.2rem;margin:1.5rem 0 0;padding:0}.doc-meta-list dt{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);align-self:center}.doc-meta-list dd{margin:0;color:var(--ink)}.help-page p,.help-page li{font-size:1.05rem;line-height:1.65}.help-page h2{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:1.75rem;margin-bottom:.6rem;color:var(--ink)}.help-page h3{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:1.2rem;margin-bottom:.3rem;color:var(--ink)}.help-page section{border-top:1px solid var(--line);padding-top:1.5rem}.help-page section:first-of-type{border-top:none;padding-top:0}.help-page code{background:var(--paper-warm);padding:.1rem .4rem;border-radius:3px;font-size:.95em;color:var(--copper-deep)}.help-toc{background:var(--paper-lifted);border:1px solid var(--line);padding:1rem 1.5rem 1rem 1rem}.help-toc ol{margin:0;padding-left:1.4rem}.help-toc li{padding:.15rem 0}.help-toc a{color:var(--sea-deep);text-decoration:none}.help-toc a:hover{color:var(--copper);text-decoration:underline}
