/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
.item-list__comma-list,.item-list__comma-list li{display:inline;}.item-list__comma-list{margin:0;padding:0;}.item-list__comma-list li::after{content:", ";}.item-list__comma-list li:last-child::after{content:"";}
.text-align-left{text-align:left;}.text-align-right{text-align:right;}.text-align-center{text-align:center;}.text-align-justify{text-align:justify;}.align-left{float:left;}.align-right{float:right;}.align-center{display:block;margin-right:auto;margin-left:auto;}
.container-inline div,.container-inline label{display:inline-block;}.container-inline .details-wrapper{display:block;}.container-inline .hidden{display:none;}
.clearfix::after{display:table;clear:both;content:"";}
.hidden{display:none;}.visually-hidden{position:absolute !important;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;word-wrap:normal;}.visually-hidden.focusable:active,.visually-hidden.focusable:focus-within{position:static !important;overflow:visible;clip:auto;width:auto;height:auto;}.invisible{visibility:hidden;}
.js .js-hide{display:none;}.js-show{display:none;}.js .js-show{display:block;}@media (scripting:enabled){.js-hide.js-hide{display:none;}.js-show{display:block;}}
.dc-architecture{--arch-surface:var(--dc-surface-primary,var(--bs-body-bg));--arch-surface-muted:var(--dc-surface-elevated,var(--bs-tertiary-bg));--arch-surface-deep:var(--dc-surface-abyss,var(--bs-secondary-bg));--arch-border:var(--bs-border-color);--arch-text:var(--dc-text-primary,var(--bs-body-color));--arch-text-muted:var(--dc-text-secondary,var(--bs-secondary-color));--arch-accent:var(--dc-link-primary,var(--bs-primary));--arch-link:var(--dc-link-primary,var(--bs-link-color));--arch-link-hover:var(--dc-link-hover,var(--bs-link-hover-color));color:var(--arch-text);display:grid;gap:1rem;}.dc-architecture__header,.dc-architecture__section{background:var(--arch-surface);border:1px solid var(--arch-border);border-radius:10px;padding:1rem 1.1rem;}.dc-architecture__header h2,.dc-architecture__section h3,.dc-architecture__card h4,.dc-architecture__row h4{margin-top:0;}.dc-architecture__header p,.dc-architecture__card p,.dc-architecture__row p{color:var(--arch-text-muted);}.dc-architecture__header,.dc-architecture__section,.dc-architecture__card,.dc-architecture__row,.dc-architecture__table th,.dc-architecture__table td{color:var(--arch-text);}.dc-architecture__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0.8rem;}.dc-architecture__card{background:var(--arch-surface-muted);border:1px solid var(--arch-border);border-radius:8px;padding:0.8rem;}.dc-architecture__card ul,.dc-architecture__links{margin:0.6rem 0 0;padding-left:1.2rem;}.dc-architecture__stack{display:grid;gap:0.7rem;}.dc-architecture__row{background:var(--arch-surface-muted);border-left:4px solid var(--arch-accent);border-radius:6px;padding:0.7rem 0.8rem;}.dc-architecture__table{width:100%;border-collapse:collapse;background:var(--arch-surface);}.dc-architecture__table th,.dc-architecture__table td{border:1px solid var(--arch-border);background:var(--arch-surface);padding:0.5rem 0.6rem;text-align:left;vertical-align:top;word-break:break-word;}.dc-architecture__table thead{background:var(--arch-surface-muted);}.dc-architecture__table thead th{background:var(--arch-surface-muted);}.dc-architecture__table tbody tr:nth-child(even) td{background:var(--arch-surface-deep);}.dc-architecture__links li{margin-bottom:0.5rem;}.dc-architecture__links a{color:var(--arch-link);display:inline-block;font-weight:600;margin-right:0.4rem;word-break:break-word;}.dc-architecture__links a:hover,.dc-architecture__links a:focus{color:var(--arch-link-hover);}.dc-architecture__links span{color:var(--arch-text-muted);}.controller-architecture-doc,.encounter-ai-integration-doc{--arch-surface:var(--dc-surface-primary,var(--bs-body-bg));--arch-surface-muted:var(--dc-surface-elevated,var(--bs-tertiary-bg));--arch-surface-deep:var(--dc-surface-abyss,var(--bs-secondary-bg));--arch-border:var(--bs-border-color);--arch-text:var(--dc-text-primary,var(--bs-body-color));--arch-text-muted:var(--dc-text-secondary,var(--bs-secondary-color));--arch-link:var(--dc-link-primary,var(--bs-link-color));--arch-link-hover:var(--dc-link-hover,var(--bs-link-hover-color));color:var(--arch-text);display:grid;gap:1rem;}.controller-architecture-doc > h2,.encounter-ai-integration-doc > h2,.controller-architecture-doc h2,.encounter-ai-integration-doc h2,.controller-architecture-doc h3,.encounter-ai-integration-doc h3,.controller-architecture-doc h4,.encounter-ai-integration-doc h4{color:var(--arch-text);}.controller-architecture-doc p,.encounter-ai-integration-doc p,.controller-architecture-doc li,.encounter-ai-integration-doc li,.controller-architecture-doc summary,.encounter-ai-integration-doc summary,.controller-architecture-doc td,.encounter-ai-integration-doc td,.controller-architecture-doc th,.encounter-ai-integration-doc th{color:var(--arch-text);}.controller-architecture-doc > p,.encounter-ai-integration-doc > p{color:var(--arch-text-muted);}.controller-architecture-doc details,.encounter-ai-integration-doc details{background:var(--arch-surface);border:1px solid var(--arch-border);border-radius:10px;padding:0.85rem 1rem;}.controller-architecture-doc details + details,.encounter-ai-integration-doc details + details{margin-top:0.8rem;}.controller-architecture-doc summary,.encounter-ai-integration-doc summary{cursor:pointer;font-weight:700;}.controller-architecture-doc table,.encounter-ai-integration-doc table{width:100%;border-collapse:collapse;margin-top:0.6rem;background:var(--arch-surface);}.controller-architecture-doc th,.encounter-ai-integration-doc th,.controller-architecture-doc td,.encounter-ai-integration-doc td{border:1px solid var(--arch-border);background:var(--arch-surface);padding:0.5rem 0.6rem;vertical-align:top;}.controller-architecture-doc thead th,.encounter-ai-integration-doc thead th{background:var(--arch-surface-muted);}.controller-architecture-doc tbody tr:nth-child(even) td,.encounter-ai-integration-doc tbody tr:nth-child(even) td{background:var(--arch-surface-deep);}.controller-architecture-doc a,.encounter-ai-integration-doc a{color:var(--arch-link);}.dc-architecture--hub{background:linear-gradient(180deg,color-mix(in srgb,var(--dc-surface-abyss,#111) 35%,transparent) 0%,color-mix(in srgb,var(--dc-surface-primary,#1b1b1b) 70%,transparent) 100%),url("/themes/custom/dungeoncrawler/build/assets/images/site/architecture/hub-background.png") center/cover no-repeat;border-radius:18px;isolation:isolate;overflow:hidden;padding:1.25rem;}.controller-architecture-doc a:hover,.controller-architecture-doc a:focus,.encounter-ai-integration-doc a:hover,.encounter-ai-integration-doc a:focus{color:var(--arch-link-hover);}
.world-game-flow{--dc-flow-surface:var(--dc-surface-primary,var(--bs-body-bg));--dc-flow-surface-muted:var(--dc-surface-elevated,var(--bs-tertiary-bg));--dc-flow-surface-deep:var(--dc-surface-abyss,var(--bs-secondary-bg));--dc-flow-border:var(--bs-border-color);--dc-flow-text:var(--dc-text-primary,var(--bs-body-color));--dc-flow-text-muted:var(--dc-text-secondary,var(--bs-secondary-color));--dc-flow-accent:var(--bs-warning,#ffc107);color:var(--dc-flow-text);display:grid;gap:1.5rem;}.world-game-flow__hero-card,.world-game-flow__text-card,.world-game-flow__diagram-card{background:var(--dc-flow-surface);border:1px solid var(--dc-flow-border);color:var(--dc-flow-text);}.world-game-flow__hero-card{background:linear-gradient(135deg,color-mix(in srgb,var(--dc-flow-accent) 20%,transparent) 0%,transparent 55%),linear-gradient(180deg,color-mix(in srgb,var(--dc-flow-surface-deep) 72%,transparent) 0%,var(--dc-flow-surface) 100%);border-radius:20px;overflow:hidden;}.world-game-flow__text-card,.world-game-flow__diagram-card{border-radius:16px;box-shadow:0 16px 40px rgba(0,0,0,0.08);}.world-game-flow__diagram-stack{display:grid;gap:1.25rem;}.world-game-flow__eyebrow{color:var(--dc-flow-accent);letter-spacing:0.08em;}.world-game-flow__summary,.world-game-flow__text-card p,.world-game-flow__hero-card .lead,.world-game-flow__hero-card p{color:var(--dc-flow-text-muted);}.world-game-flow__list{padding-left:1.2rem;}.world-game-flow__list li + li{margin-top:0.45rem;}.world-game-flow__mermaid-shell{background:linear-gradient(180deg,var(--dc-flow-surface-muted) 0%,var(--dc-flow-surface) 100%);border:1px solid var(--dc-flow-border);border-radius:14px;overflow:auto;padding:1rem;touch-action:pan-x pan-y;}.world-game-flow__mermaid{display:inline-block;min-width:760px;transition:transform 140ms ease;}.world-game-flow__mermaid svg{display:block;height:auto;margin:0;max-width:none;}.world-game-flow__mermaid-controls{align-items:center;display:inline-flex;gap:0.4rem;margin-bottom:0.75rem;position:sticky;top:0;z-index:2;}.world-game-flow__mermaid-controls .btn{line-height:1;min-width:2rem;padding:0.2rem 0.45rem;}.world-game-flow__mermaid-shell--draggable{cursor:grab;}.world-game-flow__mermaid-shell--dragging,.world-game-flow__mermaid-shell--dragging *{cursor:grabbing !important;user-select:none;}.world-game-flow__mermaid-zoom-level{color:var(--dc-flow-text-muted);font-size:0.8rem;font-weight:600;min-width:3rem;text-align:right;}.world-game-flow__mermaid--error{min-width:0;white-space:normal;}.world-game-flow__mermaid-source{background:var(--dc-flow-surface);border:1px solid var(--dc-flow-border);border-radius:8px;font-size:0.78rem;margin:0;max-height:18rem;overflow:auto;padding:0.75rem;white-space:pre-wrap;word-break:break-word;}.world-game-flow__table{width:100%;border-collapse:collapse;background:var(--dc-flow-surface);}.world-game-flow__table th,.world-game-flow__table td{background:var(--dc-flow-surface);border:1px solid var(--dc-flow-border);color:var(--dc-flow-text);padding:0.65rem 0.75rem;text-align:left;vertical-align:top;}.world-game-flow__table thead th{background:var(--dc-flow-surface-muted);}.world-game-flow__table tbody tr:nth-child(even) td{background:var(--dc-flow-surface-deep);}@media (max-width:991.98px){.world-game-flow__mermaid{min-width:640px;}}@media (max-width:575.98px){.world-game-flow__hero-card .btn{width:100%;}.world-game-flow__mermaid-shell{padding:0.75rem;}.world-game-flow__mermaid{min-width:560px;}}
