@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500;1,600&family=EB+Garamond:ital,wght@0,400;0,500;1,400&display=swap";:root{--ivory:#fff;--umber:#111;--gold:#000;--ink:#000;--rose:#444;--marble:#e4e4e2;--gold-soft:#0000004d;--umber-soft:#0000008c;--shadow-deep:#0006;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--umber);-webkit-font-smoothing:antialiased;background-color:#05050a;min-height:100vh;margin:0;font-family:EB Garamond,Cormorant Garamond,Georgia,serif;font-size:18px;line-height:1.6}body:before,body:after{content:"";z-index:-1;position:fixed;inset:0}body:before{filter:brightness(.85);background-image:url(/landing_page.png);background-position:50% 20%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed}body:after{background:linear-gradient(#00000080 0%,#000000ad 45%,#000000d1 100%)}#root{z-index:0;position:relative}h1,h2,h3,h4{color:var(--ink);letter-spacing:.01em;margin:0;font-family:Playfair Display,Cormorant Garamond,Georgia,serif;font-style:italic;font-weight:600}a{color:inherit}button{font-family:inherit}textarea,input{font-family:EB Garamond,Georgia,serif}.gilded-rule{background:linear-gradient(90deg,#0000,#ffffffb3 15% 85%,#0000);border:none;height:1px;margin:0;position:relative}.gilded-rule:after{content:"❦";color:#ffffffd9;text-shadow:0 2px 8px #0009;padding:0 .6em;font-size:.9rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.teardrop{background:linear-gradient(160deg,#fff,#b8b8b8 120%);border-radius:60% 60% 60% 5%/65% 65% 45% 45%;width:.55em;height:.75em;display:inline-block;transform:rotate(-8deg);box-shadow:0 1px 3px #00000080}.gold-rays{pointer-events:none;background:conic-gradient(from 90deg,#ffffff38 0deg,#0000 8deg 22deg,#ffffff29 30deg,#0000 38deg 52deg,#ffffff38 60deg,#0000 68deg 82deg,#ffffff29 90deg,#0000 98deg 112deg,#ffffff38 120deg,#0000 128deg 142deg,#ffffff29 150deg,#0000 158deg 172deg,#ffffff38 180deg,#0000 188deg 202deg,#ffffff29 210deg,#0000 218deg 232deg,#ffffff38 240deg,#0000 248deg 262deg,#ffffff29 270deg,#0000 278deg 292deg,#ffffff38 300deg,#0000 308deg 322deg,#ffffff29 330deg,#0000 338deg 352deg,#ffffff38 360deg);border-radius:50%;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000 0% 55%,#0000 78%);mask-image:radial-gradient(circle,#000 0% 55%,#0000 78%)}.app-shell{max-width:1180px;margin:0 auto;padding:2.5rem 1.5rem 5rem}.app-header{text-align:center;padding:2.5rem 0 1.75rem;position:relative}.app-header .eyebrow{letter-spacing:.35em;text-transform:uppercase;color:#fffc;margin-bottom:.6rem;font-family:Cormorant Garamond,serif;font-size:.7rem;font-style:italic}.app-header h1{color:#fff;text-shadow:0 3px 16px #0000008c;font-size:clamp(2.2rem,5vw,3.2rem)}.app-header p.tagline{color:#ffffffd1;text-shadow:0 2px 10px #00000080;margin-top:.6rem;font-size:1.05rem;font-style:italic}.toolbar{flex-wrap:wrap;align-items:stretch;gap:.85rem;margin:2rem 0 1.25rem;display:flex}.search-wrap{flex:320px;align-items:center;display:flex;position:relative}.search-wrap input{border:1px solid var(--gold-soft);width:100%;color:var(--umber);background:#ffffffe6;border-radius:2px;outline:none;padding:.75rem 1.1rem .75rem 2.4rem;font-size:1.05rem;font-style:italic;transition:border-color .2s,box-shadow .2s}.search-wrap input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #0000001f}.search-wrap input::placeholder{color:var(--umber-soft);opacity:.65}.search-icon{color:var(--gold);pointer-events:none;font-size:1rem;position:absolute;left:.85rem}.btn-add{color:var(--ivory);border:1px solid var(--gold);cursor:pointer;box-shadow:0 3px 10px var(--shadow-deep);white-space:nowrap;background:linear-gradient(160deg,#1a1a1a,#000 120%);border-radius:2px;flex:none;padding:.75rem 1.6rem;font-family:Playfair Display,serif;font-size:1.05rem;font-style:italic;transition:transform .15s,box-shadow .15s}.btn-add:hover{box-shadow:0 5px 14px var(--shadow-deep);transform:translateY(-1px)}.tag-filter-bar{flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:2rem;display:flex}.tag-filter-bar .label{color:#fffc;text-shadow:0 1px 4px #00000080;letter-spacing:.08em;margin-right:.25rem;font-size:.85rem;font-style:italic}.tag-badge{--badge-border:var(--gold);color:var(--umber);border:1px solid var(--badge-border);cursor:pointer;background:linear-gradient(160deg,#ffffffe6,#e4e4e299);border-radius:3px;align-items:center;gap:.3rem;padding:.28rem .75rem;font-family:Cormorant Garamond,serif;font-size:.95rem;font-style:italic;line-height:1.3;transition:all .15s;display:inline-flex;position:relative;box-shadow:inset 0 0 0 1px #fff6}.tag-badge:before,.tag-badge:after{content:"";background:var(--gold);opacity:.8;border-radius:50%;width:3px;height:3px;position:absolute}.tag-badge:before{top:2px;left:2px}.tag-badge:after{bottom:2px;right:2px}.tag-badge:hover{border-color:var(--umber)}.tag-badge.active{color:var(--ivory);box-shadow:0 2px 6px var(--shadow-deep);background:linear-gradient(160deg,#222,#000 120%);border-color:#000}.tag-badge.active:before,.tag-badge.active:after{background:#fff}.tag-badge .count{color:var(--rose);font-size:.75rem;font-style:normal}.tag-badge.active .count{color:var(--ivory);opacity:.7}.gallery{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.75rem;display:grid}.frame-card{border:1px solid var(--gold);outline-offset:-8px;box-shadow:0 1px 0 #fff9 inset, 0 10px 24px -12px var(--shadow-deep), 0 0 0 1px #0000001f;cursor:pointer;background:linear-gradient(160deg,#fffffff7,#e4e4e2e0);outline:5px solid #ffffff80;flex-direction:column;gap:.7rem;min-height:190px;padding:1.3rem 1.4rem 1.15rem;transition:transform .18s,box-shadow .18s;display:flex;position:relative}.frame-card:before{content:"";pointer-events:none;border:1px solid #0003;position:absolute;inset:3px}.frame-card .corner{border:1px solid var(--gold);opacity:.85;width:13px;height:13px;position:absolute}.frame-card .corner.tl{border-bottom:none;border-right:none;top:-1px;left:-1px}.frame-card .corner.tr{border-bottom:none;border-left:none;top:-1px;right:-1px}.frame-card .corner.bl{border-top:none;border-right:none;bottom:-1px;left:-1px}.frame-card .corner.br{border-top:none;border-left:none;bottom:-1px;right:-1px}.frame-card:hover{box-shadow:0 1px 0 #fff9 inset, 0 16px 28px -12px var(--shadow-deep), 0 0 0 1px #0000002e;transform:translateY(-3px)}.frame-card .content{color:var(--ink);-webkit-line-clamp:5;-webkit-box-orient:vertical;font-family:Cormorant Garamond,serif;font-size:1.2rem;font-style:italic;line-height:1.5;display:-webkit-box;overflow:hidden}.frame-card .content:before{content:"“";color:var(--gold);margin-right:.05em;font-size:1.3em}.frame-card .meta-row{color:var(--umber-soft);justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.82rem;font-style:italic;display:flex}.frame-card .source{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.frame-card .tag-row{flex-wrap:wrap;gap:.35rem;margin-top:auto;display:flex}.frame-card .tag-row .tag-badge{cursor:default;padding:.15rem .55rem;font-size:.78rem}.frame-card .card-actions{opacity:0;gap:.3rem;transition:opacity .15s;display:flex;position:absolute;top:.6rem;right:.7rem}.frame-card:hover .card-actions{opacity:1}.icon-btn{border:1px solid var(--gold-soft);color:var(--umber);cursor:pointer;background:#ffffffd9;border-radius:50%;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;font-size:.85rem;line-height:1;display:inline-flex}.icon-btn:hover{border-color:var(--gold);color:var(--ink)}.empty-state{text-align:center;padding:4.5rem 1rem;position:relative;overflow:hidden}.empty-state .rays-wrap{width:220px;height:220px;margin:0 auto 1.5rem;position:relative}.empty-state .rays-wrap .teardrop{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(3)rotate(-8deg)}.empty-state h3{color:#fff;text-shadow:0 2px 10px #00000080;font-size:1.5rem}.empty-state p{color:#ffffffc7;text-shadow:0 1px 6px #00000080;margin-top:.5rem;font-style:italic}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#0009;justify-content:center;align-items:flex-start;padding:4vh 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-card{background:linear-gradient(165deg, #fff, var(--ivory) 60%, var(--marble) 140%);border:1px solid var(--gold);outline-offset:-10px;outline:6px solid #ffffff8c;width:100%;max-width:620px;margin-bottom:4vh;padding:2rem 2rem 1.7rem;position:relative;box-shadow:0 25px 60px -15px #00000080}.modal-card .corner{border:1px solid var(--gold);width:18px;height:18px;position:absolute}.modal-card .corner.tl{border-bottom:none;border-right:none;top:2px;left:2px}.modal-card .corner.tr{border-bottom:none;border-left:none;top:2px;right:2px}.modal-card .corner.bl{border-top:none;border-right:none;bottom:2px;left:2px}.modal-card .corner.br{border-top:none;border-left:none;bottom:2px;right:2px}.modal-close{color:var(--umber);cursor:pointer;background:0 0;border:none;font-family:Playfair Display,serif;font-size:1.4rem;line-height:1;position:absolute;top:.9rem;right:1rem}.modal-card h2{margin-bottom:1.2rem;padding-right:1.5rem;font-size:1.5rem}.field{flex-direction:column;gap:.35rem;margin-bottom:1.1rem;display:flex}.field label{color:var(--rose);letter-spacing:.03em;font-family:Cormorant Garamond,serif;font-size:.95rem;font-style:italic}.field textarea,.field input{border:1px solid var(--gold-soft);color:var(--ink);resize:vertical;background:#ffffffb3;border-radius:2px;outline:none;padding:.65rem .8rem;font-size:1.05rem;transition:border-color .2s,box-shadow .2s}.field textarea:focus,.field input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #0000001f}.field .hint{color:var(--umber-soft);font-size:.78rem}.form-error{color:var(--ink);margin-top:-.4rem;margin-bottom:.8rem;font-size:.9rem;font-weight:600}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1.4rem;display:flex}.btn-secondary,.btn-primary,.btn-danger{cursor:pointer;border:1px solid var(--gold);border-radius:2px;padding:.6rem 1.3rem;font-family:Playfair Display,serif;font-size:.98rem;font-style:italic;transition:transform .15s}.btn-secondary{color:var(--umber);background:0 0}.btn-primary{color:var(--ivory);background:linear-gradient(160deg,#1a1a1a,#000 120%)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-danger{color:var(--ink);border:1px solid var(--ink);text-underline-offset:3px;background:0 0;text-decoration:underline}.btn-secondary:hover,.btn-primary:hover,.btn-danger:hover{transform:translateY(-1px)}.detail-content{color:var(--ink);white-space:pre-wrap;font-family:Cormorant Garamond,serif;font-size:1.35rem;font-style:italic;line-height:1.65}.detail-content:before{content:"“";color:var(--gold);font-size:1.4em}.detail-meta{color:var(--umber-soft);margin-top:1rem;font-size:.95rem;font-style:italic}.detail-note{border-left:3px solid var(--ink);color:var(--umber);white-space:pre-wrap;background:#0000000a;margin-top:1.1rem;padding:.8rem 1rem;font-size:1rem}.detail-tags{flex-wrap:wrap;gap:.4rem;margin-top:1.1rem;display:flex}.error-banner{border:1px solid var(--ink);color:var(--umber);background:#ffffffeb;border-radius:2px;margin-bottom:1.5rem;padding:.8rem 1.1rem;font-size:.95rem;line-height:1.55;box-shadow:0 8px 20px -10px #0006}.error-banner code{background:#00000014;border-radius:2px;padding:.1rem .35rem}.loading-text{text-align:center;color:#ffffffd9;text-shadow:0 1px 6px #00000080;padding:3rem 0;font-style:italic}.results-count{color:#ffffffbf;text-shadow:0 1px 4px #00000080;margin-bottom:1rem;font-size:.88rem;font-style:italic}@media (width<=640px){.app-shell{padding:1.5rem 1rem 4rem}.toolbar{flex-direction:column}.btn-add{width:100%}.gallery{grid-template-columns:1fr}.modal-card{padding:1.5rem 1.3rem 1.3rem}}
