:root{--ink: #182125;--ink-soft: #3a454b;--muted: #5c6a71;--paper: #f4f8fb;--paper-elevated: #ffffff;--line: #d5e0e7;--accent: #b01532;--accent-deep: #8c1028;--sky: #c7e4f8;--sky-deep: #9ecdeb;--placeholder: #243038;--shadow: 0 10px 30px rgba(24, 33, 37, .08);--radius: 6px;--font-sans: "Libre Franklin", "Segoe UI", sans-serif;--font-display: "Source Serif 4", Georgia, serif;--max: 1120px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);font-family:var(--font-sans);font-size:1rem;line-height:1.55;background:radial-gradient(1200px 520px at 12% -10%,rgba(199,228,248,.85),transparent 60%),radial-gradient(900px 480px at 92% 8%,rgba(176,21,50,.08),transparent 55%),linear-gradient(180deg,#eef5fa 0%,var(--paper) 42%,#eef3f6 100%)}img{max-width:100%;display:block}a{color:var(--accent-deep)}a:hover{color:var(--accent)}.skip-link{position:absolute;left:1rem;top:-3rem;background:var(--ink);color:#fff;padding:.5rem .75rem;z-index:20;border-radius:var(--radius)}.skip-link:focus{top:1rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-header{border-bottom:1px solid rgba(24,33,37,.08);background:#ffffffb8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.header-inner,.hero-inner,.results-section,.footer-inner{width:min(100% - 2rem,var(--max));margin-inline:auto}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0}.brand{display:flex;align-items:center;gap:.85rem;text-decoration:none;color:inherit}.brand-logo{width:64px;height:64px;border-radius:50%;box-shadow:0 0 0 2px #b015322e;background:#fff}.brand-name{margin:0;font-family:var(--font-display);font-size:clamp(2rem,3.4vw,2.55rem);font-weight:700;letter-spacing:.02em;line-height:1.05}.brand-sub{margin:.15rem 0 0;color:var(--muted);font-size:.82rem;letter-spacing:.01em}.header-nav a{font-weight:600;text-decoration:none;color:var(--ink-soft)}.header-nav a:hover{color:var(--accent)}.hero{padding:2.4rem 0 1.2rem;animation:rise .7s ease both}.hero-kicker{margin:0 0 .55rem;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700;color:var(--accent)}.hero h1{margin:0;font-family:var(--font-display);font-size:clamp(1.85rem,3.6vw,2.55rem);font-weight:600;letter-spacing:-.015em;line-height:1.12}.hero-lead{margin:.85rem 0 0;max-width:38rem;color:var(--ink-soft);font-size:1.05rem}.search-panel{margin-top:1.75rem;padding:1.15rem 1.2rem 1rem;background:#ffffffdb;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);animation:rise .85s ease .08s both}.search-field{display:block}.search-field input[type=search]{width:100%;margin-top:.35rem;border:1px solid var(--line);border-radius:var(--radius);padding:.85rem 1rem;font:inherit;font-size:1.05rem;background:#fff;color:var(--ink);transition:border-color .2s ease,box-shadow .2s ease}.search-field input[type=search]:focus,.filter-grid select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #b0153226}.label{display:block;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;margin-top:.95rem}.filter-grid label{min-width:0}.filter-grid select{width:100%;height:2.75rem;margin-top:.35rem;border:1px solid var(--line);border-radius:var(--radius);padding:0 2rem 0 .75rem;font:inherit;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235c6a71' d='M1.4.6 6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E") no-repeat right .75rem center;color:var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none}.filter-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.95rem;padding-top:.75rem;border-top:1px solid var(--line)}.btn-text{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--accent-deep);font:inherit;font-weight:600;cursor:pointer;padding:.25rem 0}.btn-text:hover{color:var(--accent)}.result-meta{margin:0;color:var(--muted);font-size:.92rem}.results-section{padding:.5rem 0 3.5rem;scroll-margin-top:5.5rem}.results{display:flex;flex-direction:column;gap:1.75rem}.year-heading{margin:0 0 .8rem;padding-bottom:.35rem;border-bottom:1px solid var(--line);font-family:var(--font-display);font-size:1.45rem;font-weight:600;line-height:1.2}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.1rem}.pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:1.6rem}.pagination button{min-width:2.4rem;height:2.4rem;padding:0 .7rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);font:inherit;font-size:.92rem;font-weight:600;cursor:pointer}.pagination button[aria-current=page]{background:var(--accent);border-color:var(--accent);color:#fff}.pagination button:hover:not(:disabled):not([aria-current=page]){border-color:var(--accent);color:var(--accent-deep)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.card{display:flex;flex-direction:column;min-height:100%;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease;animation:rise .55s ease both}.card:hover,.card:focus-within{border-color:#b0414859;box-shadow:0 10px 24px #1821250f}.card-media{aspect-ratio:16 / 9;background:#eef3f6;overflow:hidden}.card-media img{width:100%;height:100%;object-fit:cover}.card-media-logo{display:grid;place-items:center;background:#fff}.card-media-logo img{width:auto;height:78%;max-width:70%;object-fit:contain}.card-body{display:flex;flex-direction:column;gap:.55rem;padding:1rem 1.05rem .95rem;flex:1}.card-kicker{display:flex;align-items:center;gap:.5rem;min-height:1.55rem}.card-year{margin-left:auto;color:var(--muted);font-size:.82rem;font-weight:600;letter-spacing:.04em}.tag{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);background:#eef4f8;border:1px solid var(--line);border-radius:999px;padding:.18rem .55rem}.tag.type{color:var(--accent-deep);background:#b0153214;border-color:#b015322e}.card h3{margin:0;min-height:calc(1.35em * 3);font-family:var(--font-display);font-size:1.08rem;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-authors,.card-area{margin:0;color:var(--muted);font-size:.88rem;line-height:1.4}.card-authors{min-height:2.8em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-area{min-height:1.4em;color:var(--ink-soft);font-size:.8rem}.card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:auto;padding-top:.35rem}.card-actions .btn-secondary{border-color:transparent;padding-inline:0;background:transparent}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:var(--radius);padding:.55rem .85rem;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease,border-color .2s ease}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-deep);color:#fff}.btn-secondary{background:transparent;color:var(--ink-soft);border-color:var(--line)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent-deep)}.btn[aria-disabled=true],.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.empty-state{margin:2rem 0 0;padding:1.4rem 1.2rem;border:1px dashed var(--line);border-radius:12px;background:#ffffffa6;color:var(--ink-soft);text-align:center}.site-footer{background:#fff;color:#000;padding:2.6rem 0 1.4rem}.footer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:2.5rem 3rem;align-items:start}.footer-contact h2{margin:0 0 .85rem;color:#b04148;font-family:Questrial,Libre Franklin,sans-serif;font-size:clamp(2.6rem,4.6vw,3.5rem);font-weight:400;line-height:1.05;letter-spacing:0}.footer-social{display:flex;gap:.45rem;margin:0 0 1.35rem;padding:0;list-style:none}.footer-social a{display:grid;place-items:center;width:33px;height:33px;color:#000}.footer-social a:hover{color:#b04148}.footer-social svg{width:26px;height:26px;fill:currentColor}.footer-contact h3{margin:1.15rem 0 .45rem;color:#000;font-family:Questrial,Libre Franklin,sans-serif;font-size:1.625rem;font-weight:400;line-height:1.2}.footer-contact p{margin:0;color:#000;font-family:Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.55}.footer-contact p+p{margin-top:.85rem}.footer-contact a{color:#000;text-decoration:none}.footer-contact a:hover{color:#b04148}.footer-map iframe{width:100%;height:324px;border:0}.footer-copy{margin:1.6rem 0 0;color:#000;font-family:Questrial,Libre Franklin,sans-serif;font-size:.875rem;font-weight:400;text-align:center}.detail-dialog{width:min(92vw,640px);border:1px solid var(--line);border-radius:14px;padding:0;box-shadow:0 24px 60px #18212538}.detail-dialog::backdrop{background:#18212573}.detail-close-bar{display:flex;justify-content:flex-end;padding:.75rem 1rem 0}#detail-body{padding:0 1.25rem 1.4rem}#detail-body h2{margin:0 0 .6rem;font-family:var(--font-display);font-size:1.45rem;line-height:1.25}#detail-body dl{display:grid;grid-template-columns:8.5rem 1fr;gap:.45rem .75rem;margin:1rem 0}#detail-body dt{color:var(--muted);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}#detail-body dd{margin:0}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:860px){.footer-grid{grid-template-columns:1fr}.footer-map iframe{height:260px}.brand-logo{width:56px;height:56px}}@media(max-width:560px){.header-inner{align-items:flex-start}.brand-sub{max-width:12rem}.filter-grid{grid-template-columns:1fr}.hero{padding-top:1.6rem}#detail-body dl{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
