/* Two explicit opponents. No game logic or global site selectors. */
.opponent-page{margin:0;background:#0b1112;color:#e9eee9;font:17px/1.65 system-ui,sans-serif;color-scheme:dark}
.opponent-page *{box-sizing:border-box}
.opponent-page a{color:#f1cd85;text-underline-offset:4px}
.opponent-nav,.opponent-main,.opponent-footer{max-width:1120px;margin:auto;padding:24px}
.opponent-nav{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #35433e;flex-wrap:wrap}
.opponent-nav strong{letter-spacing:.1em;color:#fff}
.opponent-hero{position:relative;isolation:isolate;min-height:450px;display:flex;align-items:end;padding:44px;margin:28px 0;border:1px solid #655139;border-radius:18px;overflow:hidden;background:#192324}
.opponent-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:url('/open-labyrinth/art/banner-canon.webp') center 48%/cover}
.opponent-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,12,12,.94),rgba(4,12,12,.7) 52%,rgba(4,12,12,.1)),linear-gradient(0deg,#0b1112,transparent)}
.opponent-hero h1{font:600 clamp(2.5rem,7vw,4.6rem)/1.08 Georgia,serif;margin:20px 0;letter-spacing:-.035em;max-width:700px}
.opponent-hero p{max-width:560px}
.opponent-kicker{font-size:.75rem!important;letter-spacing:.15em;text-transform:uppercase;color:#e1bd78}
.opponent-tag{display:inline-block;font:600 .76rem/1.3 system-ui,sans-serif;color:#e5c88d;background:#332b1d;border:1px solid #84704b;padding:8px 12px;border-radius:30px}
.is-warden .opponent-tag{color:#e4d0ff;background:#2c253a;border-color:#796194}
.is-warden .opponent-hero{border-color:#655079;background:#17141f}
.is-warden .opponent-hero::before{background-position:center 30%}
.is-warden .opponent-hero::after{background:linear-gradient(90deg,rgba(12,8,18,.94),rgba(12,8,18,.7) 52%,rgba(12,8,18,.1)),linear-gradient(0deg,#0b1112,transparent)}
.is-warden .opponent-button,.is-warden button{background:#c2a8e4;border-color:#c2a8e4;color:#1a1426!important}
.opponent-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.opponent-panel,.opponent-choice{padding:26px;border:1px solid #35443d;background:#121b19;border-radius:12px;min-width:0}
.opponent-panel h2,.opponent-choice h3{margin:0 0 12px;font-family:Georgia,serif;font-weight:500}
.opponent-panel li{margin:10px 0}
.opponent-panel ul{padding-left:20px}
.opponent-panel code{overflow-wrap:anywhere}
.opponent-copy-block{grid-column:1/-1;scroll-margin-top:24px}
.opponent-page pre,.opponent-prompt{font:14px/1.75 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;border:1px solid #405149;background:#0c1412;color:#d4e7db;padding:18px;border-radius:8px}
.opponent-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0}
.opponent-button,.opponent-page button{display:inline-block;background:#d6b578;color:#111c18!important;border:1px solid #d6b578;border-radius:7px;padding:13px 20px;font:600 15px/1.4 system-ui,sans-serif;text-decoration:none;cursor:pointer;min-height:48px}
.opponent-button.secondary{background:transparent;color:#e6d0a7!important;border-color:#766343}
.opponent-page button:disabled{opacity:.55;cursor:default}
.opponent-page :focus-visible,.opponent-chooser :focus-visible{outline:3px solid #eacc90;outline-offset:4px}
.opponent-footnote{font-size:.88rem;color:#bac8bf}
.opponent-page details{border-top:1px solid #3e4b41;padding:18px 0;margin-top:24px}
.opponent-page summary{cursor:pointer;font-weight:600}
.opponent-footer{font-size:.86rem;color:#a9b7ac;border-top:1px solid #35433e}
.opponent-chooser{padding:28px;margin:20px 0;border:1px solid #736344;border-radius:14px;background:#141e1b;color:#e9eee9}
.opponent-chooser>h2{margin-top:8px}
.opponent-chooser .opponent-grid{margin:18px 0}
.opponent-chooser p{line-height:1.65}
.opponent-chooser a{color:#ecd3a0}
.opponent-select{display:block;padding:12px;width:100%;max-width:500px;background:#131d19;color:#f4e8cb;border:1px solid #a58b5a;border-radius:5px;margin:10px 0 18px;font:inherit}
.opponent-chooser .opponent-footnote{color:#c3ccc5}
@media(max-width:600px){.opponent-nav,.opponent-main,.opponent-footer{padding:18px}.opponent-hero{padding:24px;min-height:390px}.opponent-grid{grid-template-columns:1fr}.opponent-panel,.opponent-chooser,.opponent-choice{padding:18px}.opponent-hero::after{background:linear-gradient(0deg,#0b1112 5%,rgba(4,12,12,.48))}.opponent-page pre{font-size:13px;padding:12px}}
