:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif;color:#142647;background:#f4f6fc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--page:#f4f6fc;--surface:#fff;--text:#152645;--muted:#63718e;--primary:#285cc7;--border:#d5dff1;--shadow:0 12px 38px rgba(16,40,84,.09);--hover:#eaf0fc;--success:#147c5b;--danger:#bc3651;color-scheme:light}
:root[data-theme=dark]{--page:#0c1323;--surface:#161f32;--text:#e6edfc;--muted:#a1abc0;--primary:#87a9ff;--border:#33435f;--shadow:0 14px 40px rgba(0,0,0,.25);--hover:#273552;--success:#69d8ac;--danger:#ff98a6;color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){--page:#0c1323;--surface:#161f32;--text:#e6edfc;--muted:#a1abc0;--primary:#87a9ff;--border:#33435f;--shadow:0 14px 40px rgba(0,0,0,.25);--hover:#273552;--success:#69d8ac;--danger:#ff98a6;color-scheme:dark}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--page);color:var(--text);min-height:100vh;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{color:var(--primary)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--primary);outline-offset:3px}svg{height:1.3em;width:1.3em;flex:none}.site-shell{width:min(100% - 36px,1320px);margin-inline:auto}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:inline-flex;align-items:center;gap:12px;font-weight:750;min-width:0;color:var(--text)}.brand>svg{color:var(--primary);width:23px;height:23px}.brand>span{overflow-wrap:anywhere}.toolbar{display:flex;align-items:center;gap:12px}.language-trigger{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 13px;min-width:180px;max-width:255px;line-height:1.15}.language-trigger:hover,.theme-button:hover{background:var(--hover)}.language-trigger span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.language-trigger svg{color:var(--muted);height:17px;width:17px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--primary)}.theme-button{border-radius:50%;color:var(--text)}.hero{margin-top:12px;overflow:hidden;border-radius:13px 13px 0 0;background:#0b2c85;height:clamp(195px,26vw,340px)}.hero img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 45%}.intro{position:relative;display:flex;align-items:center;gap:28px;min-height:178px;background:var(--surface);border:1px solid var(--border);border-top:0;padding:26px 42px 28px 46px}.portrait{flex:0 0 144px;width:144px;height:164px;align-self:flex-start;margin-top:-66px;padding:5px;border-radius:11px;background:var(--surface);box-shadow:0 0 0 1px var(--border);overflow:hidden}.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 16%;display:block;border-radius:6px}.intro-text{padding-block:9px;max-width:800px;min-width:0}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;font-weight:750;color:var(--primary);margin-bottom:4px}.intro h1{font-weight:540;font-size:clamp(1.6rem,3.1vw,2.5rem);letter-spacing:-.045em;line-height:1.2;margin:0 0 9px}.intro p{margin:0;color:var(--muted);font-size:1rem}.social-links{display:flex;align-items:center;gap:13px;margin-top:15px}.social-links a{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;color:var(--muted);border-radius:8px;transition:background .18s,color .18s}.social-links a:hover{color:var(--primary);background:var(--hover)}.social-links svg{height:20px;width:20px} .social-links img.social-icon-facebook{display:block;width:17px;height:17px;object-fit:contain} .social-links img.social-icon-youtube{display:block;width:19px;height:14px;object-fit:contain}.research-section{margin-top:39px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:19px}.section-heading h2{font-size:clamp(1.35rem,2.6vw,1.85rem);letter-spacing:-.035em;font-weight:570;margin:0}.section-heading span{font-size:.83rem;color:var(--muted)}.research-list{border-radius:11px;overflow:hidden;background:var(--surface);border:1px solid var(--border);min-height:175px}.empty-research{min-height:175px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px 16px;text-align:center}.empty-research p{margin:0;font-size:1.12rem}.empty-icon svg{height:34px;width:34px;color:var(--primary)}.research-row{display:flex;align-items:center;gap:16px;min-height:76px;padding:14px 18px}.research-row+.research-row{border-top:1px solid var(--border)}.research-name{flex:1;min-width:0;overflow-wrap:anywhere;font-weight:540}.version-hint{font-size:.74rem;color:var(--muted)}.research-actions{display:flex;gap:8px;align-items:center;flex:none}.research-action{height:40px;width:40px;border-radius:9px}.research-action:hover{background:var(--hover)}.footer{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--border);padding:21px 0 33px;margin-top:55px;color:var(--muted);font-size:.82rem}.footer a:hover{color:var(--primary)}.language-control{position:relative;min-width:0;flex:none}
.language-dialog{position:absolute;z-index:100;top:calc(100% + 8px);inset-inline-end:0;display:flex;flex-direction:column;width:min(380px,calc(100vw - 24px));max-height:min(70vh,560px);border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--text);box-shadow:0 18px 44px rgba(10,25,52,.24);padding:0;overflow:hidden}
.language-dialog[hidden]{display:none!important}
.language-control .language-search{flex:none;margin:12px 12px 9px}
.language-control .language-options{flex:1;min-height:0;max-height:min(55vh,460px);overflow-y:auto;overscroll-behavior:contain;padding:0 8px 10px;scrollbar-width:thin}
@media(max-width:600px){.language-dialog{position:fixed;top:var(--language-menu-top,70px);inset-inline-start:12px;inset-inline-end:12px;width:auto;max-height:min(65dvh,560px);border-radius:12px}.language-control .language-options{max-height:min(50dvh,460px)}}
.language-dialog-header{padding:20px 23px 12px;display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.language-dialog-header h2{font-size:1.2rem;margin:0}.language-dialog-header small{color:var(--muted)}.dialog-close{background:transparent;border:0;color:var(--muted);font-size:1.7rem;width:36px;height:36px;line-height:1}.language-search{margin:0 19px 12px;border:1px solid var(--border);border-radius:9px;display:flex;align-items:center;gap:10px;padding:0 12px;color:var(--muted)}.language-search input{border:0;background:transparent;width:100%;height:43px;outline:0;color:var(--text)}.language-options{overflow:auto;max-height:min(60vh,590px);padding:0 10px 14px}.lang-option{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:start;background:transparent;color:var(--text);border:0;border-radius:10px;padding:11px 14px}.lang-option:hover,.lang-option.selected{background:var(--hover)}.lang-option.selected{color:var(--primary)}.lang-option strong{display:block;font-weight:620}.lang-option small{display:block;color:var(--muted);font-size:.79rem}.lang-option .check{font-size:1.1rem}.site-shell [dir=rtl],.language-dialog [dir=rtl]{unicode-bidi:isolate}
@media(max-width:700px){.site-shell{width:min(100% - 24px,1320px)}.topbar{height:auto;min-height:65px}.brand>span{font-size:.85rem}.brand{gap:8px}.toolbar{gap:7px}.language-trigger{min-width:110px;max-width:160px;padding:10px 9px;font-size:.8rem}.theme-button{width:39px;height:39px}.hero{height:clamp(165px,36vw,225px);border-radius:11px 11px 0 0}.intro{padding:22px 18px 24px;gap:15px;min-height:0}.portrait{width:105px;height:130px;flex-basis:105px;margin-top:-54px}.intro-text{padding-block:0}.intro h1{font-size:clamp(1.25rem,4.4vw,1.7rem)}.intro p{font-size:.88rem}.eyebrow{font-size:.64rem;letter-spacing:.12em}.social-links{margin-top:9px}.research-section{margin-top:29px}.section-heading span{font-size:.72rem}.research-row{padding:12px;gap:9px}.research-name{font-size:.92rem}.research-actions{gap:5px}.research-action{height:39px;width:39px}.footer{margin-top:39px}}
@media(max-width:420px){.site-shell{width:min(100% - 18px,1320px)}.intro{display:grid;grid-template-columns:86px minmax(0,1fr);gap:12px;padding:13px 11px 20px}.portrait{width:86px;height:111px;flex-basis:auto;margin-top:-36px}.intro h1{font-size:1.25rem}.intro p{font-size:.81rem}.eyebrow{font-size:.58rem}.section-heading h2{font-size:1.4rem}.section-heading{gap:6px}.brand>span{max-width:130px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.language-trigger{max-width:120px;min-width:97px}.research-actions{flex-direction:row}.research-name{font-size:.86rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Mobile touch feedback: suppress browser blue tap flash, retaining focus-visible outlines. */
a,button,input,select,textarea,summary,[role="button"]{-webkit-tap-highlight-color:transparent}

/* Accessible keyboard focus for the language search; not visible during ordinary use. */
.language-control .language-search:focus-within{outline:3px solid var(--primary);outline-offset:1px}

/* Published research actions reuse the pre-existing 40px icon-button footprint. */
.research-action{display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--surface);border:1px solid var(--border);color:var(--primary);text-decoration:none}
.research-action svg{height:20px;width:20px}
.research-action:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
.research-name>div:first-child{overflow-wrap:anywhere}
.research-name .version-hint{font-weight:400;margin-top:3px}


/* Section 7: precision fixes for enlarged text and very narrow viewports.
   Flex wrapping happens only when the content will not fit on one line. */
.section-heading{flex-wrap:wrap}
.section-heading h2,.section-heading span{min-width:0;max-width:100%;overflow-wrap:anywhere}
.research-row{flex-wrap:wrap}
.research-actions{margin-inline-start:auto}
.footer{flex-wrap:wrap}

/* Keep the approved PNG as a transparent fallback for older browsers. */
.hero picture{display:block;width:100%;height:100%}

/* Keep secondary labels legible over light hover/selected backgrounds. */
:root{--language-active-muted:#5f6b86}
:root[data-theme=dark]{--language-active-muted:var(--muted)}
@media(prefers-color-scheme:dark){
  :root:not([data-theme=light]):not([data-theme=dark]){--language-active-muted:var(--muted)}
}
.lang-option:hover small,.lang-option.selected small{color:var(--language-active-muted)}

/* Do not truncate the site name; move controls to a second line when needed. */
@media(max-width:420px){
  .topbar{height:auto;min-height:65px;flex-wrap:wrap;gap:8px;padding-block:7px}
  .brand{max-width:100%;min-width:0}
  .brand>span{max-width:none;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
  .toolbar{max-width:100%;min-width:0;margin-inline-start:auto}
  .intro-text{overflow-wrap:anywhere}
}
/* Handle extreme text enlargement without allowing the grid or toolbar to overflow. */
@media(max-width:260px){
  .intro{display:flex;flex-direction:column;align-items:flex-start}
  .intro-text{width:100%}
  .language-trigger{min-width:0;width:clamp(67px,49vw,97px)}
  .toolbar{flex-wrap:wrap;justify-content:flex-end}
}
/* Prevent unspaced long words in the empty state and copyright from overflowing. */
.empty-research p{max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word}
.footer>span{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
