/* Vanilla Veterans Guild Hall 10.9: additive visual and news refresh.
   Existing Guild Hall and Gnomish Bureau CSS are preserved unchanged. */
.hero-image{
  background-image:linear-gradient(90deg,rgba(2,15,27,.91) 0%,rgba(2,15,27,.76) 31%,rgba(2,15,27,.34) 64%,rgba(2,15,27,.12) 100%),
    linear-gradient(0deg,rgba(2,12,21,.85) 0%,transparent 40%),
    url('../img/guildhall-alliance-v109.webp');
  background-position:center 48%;
}
.handbook-section .handbook-intro h2{font-size:clamp(2.8rem,4.4vw,4.25rem);max-width:690px}
.vv-handbook-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:2px 0 25px}
.vv-handbook-paths a{display:flex;align-items:center;gap:13px;min-width:0;padding:14px 16px;text-decoration:none;color:#11384a;background:rgba(255,255,255,.68);border:1px solid #d7bea0;border-radius:14px;box-shadow:0 4px 14px #153e5012;transition:transform .16s,border-color .16s,background .16s}
.vv-handbook-paths a:hover{transform:translateY(-2px);background:#fffdfa;border-color:#977046}
.vv-handbook-paths a:focus-visible{outline:3px solid #116c75;outline-offset:2px}
.vv-path-icon{flex:0 0 43px;width:43px;height:43px;display:grid;place-items:center;background:#13394c;border:1px solid #c49b56;color:#f4d796;border-radius:12px;font:800 .86rem Georgia,serif}
.vv-handbook-paths strong{display:block;line-height:1.25;color:#173748;font:700 1.02rem Georgia,serif}
.vv-handbook-paths small{display:block;color:#60717a;font-size:.78rem;margin-top:3px}
.vv-handbook-timely{display:flex;align-items:center;gap:17px;margin:23px 0 15px;padding:17px 21px;border:1px solid #cba671;border-left:5px solid #b78139;border-radius:15px;background:#f9efdc;color:#183a4a;box-shadow:0 7px 26px #59411b15}
.vv-handbook-mark{display:grid;place-items:center;width:41px;height:41px;flex:none;color:#fae1a9;background:#173e4f;border-radius:50%;font-size:1.22rem}
.vv-handbook-timely>div{flex:1;min-width:0}.vv-handbook-timely strong{font:700 1.05rem Georgia,serif}.vv-handbook-timely p{font-size:.83rem;line-height:1.5;margin:4px 0 0;color:#425c6a}
.vv-handbook-timely a{font-size:.83rem;color:#005d75;font-weight:800;text-underline-offset:3px}
.vv-bulletin-layout{align-items:start}
.vv-guild-dispatch-panel{position:relative}
.vv-guild-dispatch-panel::before{content:'';position:absolute;top:-3px;left:25px;right:25px;height:4px;background:linear-gradient(90deg,#16465a,#d4a565);border-radius:4px}
.vv-guild-dispatch-panel .news-list{display:grid;gap:0}
.vv-guild-dispatch-panel .news-item{position:relative;padding:18px 0 17px 16px;border-bottom:1px solid #e6ddca}
.vv-guild-dispatch-panel .news-item::before{content:'';position:absolute;left:0;top:27px;width:5px;height:5px;border-radius:50%;background:#b8864a}
.vv-guild-dispatch-panel .news-item:first-child{margin-top:13px;padding:16px 15px 17px;border:1px solid #d4b184;border-radius:13px;background:#fff1d8}
.vv-guild-dispatch-panel .news-item:first-child::before{display:none}
.vv-guild-dispatch-panel .news-item h4{font-size:clamp(1.12rem,1.7vw,1.37rem)}
.vv-guild-dispatch-panel .news-item a{display:inline-block;margin-top:5px;text-underline-offset:3px}
.vv-launch-date{margin:21px 0 14px;padding:18px;border-radius:12px;border:1px solid #d3b78a;background:#f8efdf;text-align:left}
.vv-launch-date>span{display:block;letter-spacing:.13em;font-weight:900;color:#966b38;font-size:.62rem}
.vv-launch-date strong{display:block;color:#17394c;font:700 clamp(1.3rem,2vw,1.68rem) Georgia,serif;margin:5px 0 1px}
.vv-launch-date small{font-size:.78rem;color:#6a6a5e}
.vv-event-panel .events-list{min-height:130px}
.vv-event-panel .events-empty{padding:15px 5px}.vv-event-panel .events-empty strong{font-size:.9rem}.vv-event-panel .events-empty p{font-size:.82rem}
.vv-official-block{margin-top:24px;padding:25px 27px 22px;background:#f9f5e9;border:1px solid #c9b58e;border-radius:18px;box-shadow:0 16px 35px #41371d14}
.vv-official-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:18px}
.vv-official-head h3{margin:4px 0 0;color:#1d3d4d;font:700 clamp(1.7rem,3vw,2.4rem)/1.12 Georgia,serif}
.vv-official-head h3 em{color:#a06d32}
.vv-official-head>p{max-width:390px;font-size:.81rem;color:#5c6e78;margin:0}
.vv-official-head .kicker{font-size:.64rem;color:#956730}
.vv-official-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.vv-official-card{display:flex;flex-direction:column;align-items:start;min-width:0;background:#fffefa;border:1px solid #d8c5a7;border-top:4px solid #194c61;border-radius:12px;padding:19px 19px 20px}
.vv-official-card>span{color:#936839;font-size:.64rem;font-weight:900;letter-spacing:.13em}
.vv-official-card h4{margin:10px 0;color:#19394d;font:700 1.27rem/1.23 Georgia,serif}
.vv-official-card p{color:#4f6570;font-size:.84rem;line-height:1.58;margin:0 0 17px}
.vv-official-card a{font-weight:850;color:#006180;font-size:.82rem;margin-top:auto;text-underline-offset:3px}
.vv-source-line{margin-top:14px;font-size:.76rem;color:#566971}.vv-source-line a{font-weight:750;color:#005775}
.vv-goblin-teaser{padding:72px 0;background:linear-gradient(145deg,#102b39,#071c2b 72%);border-top:4px solid #b18b54;border-bottom:4px solid #b18b54;color:#f5e9d2}
.vv-goblin-teaser-inner{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1fr);gap:clamp(30px,4vw,62px);align-items:center}
.vv-goblin-teaser-art img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:19px;border:2px solid #b6925e;box-shadow:0 18px 60px #0008}
.vv-goblin-teaser-copy .kicker{color:#f1c582;font-size:.68rem}
.vv-goblin-teaser h2{font-size:clamp(2.45rem,4.2vw,4.35rem);line-height:1.08;margin:12px 0 23px;color:#fff1d4}
.vv-goblin-teaser h2 em{color:#e9b36c}.vv-goblin-teaser p{max-width:580px;color:#d7e0df;font-size:1rem}
.vv-goblin-teaser p.vv-goblin-boundary{font-size:.82rem;color:#d6b788;font-weight:700;margin-top:12px}
.vv-goblin-teaser .btn{display:inline-flex;align-items:center;margin-top:12px}
/* Floating announcement; all text is real HTML, not baked into artwork. */
.vv-notice-root{position:fixed;bottom:17px;right:19px;z-index:90;color:#193546;font-family:system-ui,-apple-system,'Segoe UI',sans-serif}
.vv-notice-card{width:min(370px,calc(100vw - 24px));border:2px solid #b78644;border-radius:18px;overflow:hidden;background:#fbf5e8;box-shadow:0 17px 55px #06131d89;color:#173546}
.vv-notice-top{display:flex;align-items:center;gap:11px;padding:13px 14px;background:linear-gradient(95deg,#122e42,#163c48);color:#fbe4b9}
.vv-notice-top img{height:39px;width:39px;border-radius:50%;object-fit:cover;border:1px solid #d2a56e}
.vv-notice-top .vv-notice-eyebrow{display:block;font-size:.6rem;font-weight:850;letter-spacing:.13em;color:#dbb882}
.vv-notice-top strong{font:700 1.12rem Georgia,serif;line-height:1.2;display:block;margin-top:1px}
.vv-notice-close{border:1px solid #d8b780;background:#0b273b;color:#ffe3aa;cursor:pointer;margin-left:auto;width:32px;height:32px;flex:none;border-radius:50%;font-size:1.12rem;line-height:1}
.vv-notice-body{padding:16px 18px 16px}.vv-notice-title{font:700 1.16rem Georgia,serif;color:#183c50;margin:0 0 9px}
.vv-notice-time{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 10px}
.vv-notice-time>div{background:#133349;border:1px solid #be955c;border-radius:11px;padding:9px 5px 7px;text-align:center;color:#ffe9bd}
.vv-notice-time b{display:block;font:700 1.55rem Georgia,serif;line-height:1.05}.vv-notice-time small{display:block;font-size:.65rem;letter-spacing:.09em;text-transform:uppercase;margin-top:4px}
.vv-notice-body>p{font-size:.81rem;color:#506675;line-height:1.5;margin:6px 0 15px}.vv-notice-link{display:block;background:#a97030;color:#fff8e8;padding:10px 12px;text-align:center;border:1px solid #82551e;border-radius:10px;font-weight:850;text-decoration:none;font-size:.87rem}
.vv-notice-link:hover{background:#875823}.vv-notice-tab{border:2px solid #c09960;border-radius:50px;background:#123448;color:#f5d398;box-shadow:0 8px 28px #0008;padding:11px 18px;font-weight:800;font-size:.87rem;cursor:pointer}
.vv-notice-root button:focus-visible,.vv-notice-root a:focus-visible{outline:3px solid #26a4a1;outline-offset:2px}
body[data-mode="harmony"] .vv-official-block,body[data-mode="harmony"] .vv-handbook-timely{background:#153b47;color:#f7e6c7;border-color:#b9a47d}
body[data-mode="harmony"] .vv-official-block h3,body[data-mode="harmony"] .vv-handbook-timely strong{color:#ffe1ad}
body[data-mode="harmony"] .vv-handbook-timely p,body[data-mode="harmony"] .vv-official-head>p{color:#dbe2df}
body[data-mode="focus"] .vv-goblin-teaser{background:#f6f1e7;color:#173647;border-color:#bd986b}
body[data-mode="focus"] .vv-goblin-teaser h2,body[data-mode="focus"] .vv-goblin-teaser p{color:#173647}
body[data-mode="focus"] .vv-goblin-teaser h2 em{color:#895623}
body[data-mode="focus"] .vv-goblin-teaser p.vv-goblin-boundary{color:#76542e}
@media(max-width:900px){.vv-bulletin-layout{grid-template-columns:1fr}.vv-official-grid{grid-template-columns:1fr 1fr}.vv-goblin-teaser-inner{grid-template-columns:1fr}.vv-goblin-teaser-art img{max-height:350px}.vv-notice-card{width:min(350px,calc(100vw - 24px))}}
@media(max-width:760px){.hero-image{background-image:linear-gradient(90deg,rgba(2,16,28,.91),rgba(2,16,28,.65)),linear-gradient(0deg,rgba(2,12,21,.86),transparent 43%),url('../img/guildhall-alliance-v109.webp');background-position:60% center}.vv-handbook-paths{grid-template-columns:1fr;gap:8px}.vv-handbook-paths a{padding:10px 13px}.vv-path-icon{width:35px;height:35px;flex-basis:35px}.vv-handbook-timely{flex-wrap:wrap}.vv-handbook-timely a{margin-left:58px}.vv-official-head{display:block}.vv-official-head>p{margin-top:10px}.vv-official-grid{grid-template-columns:1fr}.vv-goblin-teaser{padding:52px 0}}
@media(max-width:560px){.vv-notice-root{right:10px;bottom:10px}.vv-notice-card{width:calc(100vw - 20px)}.vv-official-block{padding:19px}.vv-goblin-teaser h2{font-size:2.55rem}}
@media(prefers-reduced-motion:reduce){.vv-handbook-paths a{transition:none}}
@media print{.vv-notice-root{display:none!important}.vv-goblin-teaser{break-inside:avoid}.vv-official-block{break-inside:avoid}}

.vv-notice-card[hidden],.vv-notice-tab[hidden]{display:none!important}

.vv-notice-card{max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);overflow-y:auto}
@media(max-width:560px){.vv-notice-card{width:min(350px,calc(100vw - 40px))}}
.vv-guild-archive summary,.vv-official-archive summary{cursor:pointer;font-weight:700;padding:10px 0}
.vv-official-archive{grid-column:1/-1}
