.hdc-rol{--bg:var(--background);--panel:var(--surface);--line:var(--border);--text:var(--foreground);--gold:var(--foreground);--rol-width:72rem;color:var(--foreground);font-family:var(--font-sans),system-ui,sans-serif;font-size:15px;line-height:1.6;background:transparent}.hdc-rol .shell{display:block;min-height:0;background:transparent}.hdc-rol .main{width:100%;min-width:0;margin:0;background:transparent}.hdc-rol .content>footer,.hdc-rol .main:before,.hdc-rol .shell:after,.hdc-rol .shell:before,.hdc-rol .site-header{display:none}.hdc-rol .content{width:100%;padding:2rem 1rem 4rem}.hdc-rol .content,.hdc-rol .rol-intro{max-width:var(--rol-width);margin:0 auto}.hdc-rol .rol-intro{padding:2.5rem 1rem 1.75rem}.hdc-rol .rol-intro h1{max-width:42rem;margin:0 0 .75rem;font-size:clamp(2.125rem,1.55rem + 2.1vw,3.25rem);line-height:1.05;letter-spacing:-.015em}.hdc-rol .rol-intro p{max-width:42rem;margin:0;color:var(--muted);font-size:1.0625rem;line-height:1.6}.hdc-rol .rol-intro-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.hdc-rol .rol-intro-actions a{display:inline-flex;align-items:center;min-height:2.75rem;padding:.625rem 1.125rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--foreground);font-weight:600}.hdc-rol .rol-intro-actions a:hover{background:var(--surface-3);border-color:var(--field)}.hdc-rol .rol-intro-actions a.primary{background:var(--accent-fill);border-color:var(--accent-fill);color:#fff}.hdc-rol .rol-intro-actions a.primary:hover{background:var(--accent-600);border-color:var(--accent-600)}.hdc-rol:has(.system-banner) .rol-intro,.hdc-rol:has(.world-map-scene) .rol-intro{display:none}.hdc-rol .rol-toolbar{max-width:var(--rol-width);margin:0 auto;padding:0 1rem}.hdc-rol .journey-nav,.hdc-rol .rol-toolbar nav{display:flex;flex-direction:row;gap:1.5rem;overflow-x:auto;border-bottom:1px solid var(--border);scrollbar-width:none}.hdc-rol .journey-nav button,.hdc-rol .rol-toolbar a{position:relative;display:inline-flex;align-items:center;min-height:2.75rem;padding:.625rem 0;border:0;border-radius:0;background:none;color:var(--muted);font-size:.9375rem;font-weight:600;white-space:nowrap}.hdc-rol .journey-nav button:hover,.hdc-rol .rol-toolbar a:hover{background:none;color:var(--foreground)}.hdc-rol .journey-nav button.active,.hdc-rol .rol-toolbar a[aria-current=page]{color:var(--foreground)}.hdc-rol .journey-nav button.active:after,.hdc-rol .rol-toolbar a[aria-current=page]:after{content:"";position:absolute;inset-inline:0;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}.hdc-rol .journey-nav{position:static;padding:0;background:none}.hdc-rol .journey-nav,.hdc-rol .notice{width:calc(100% - 2rem);max-width:calc(var(--rol-width) - 2rem);margin:1rem auto 0}.hdc-rol .notice{padding:.75rem 1rem;border:1px solid var(--border-strong);border-left:3px solid var(--info);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted);font-size:.875rem}.hdc-rol .error{color:var(--danger)}.hdc-rol h1,.hdc-rol h2{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em;text-wrap:balance}.hdc-rol h1{font-size:clamp(2rem,1.5rem + 1.9vw,3rem);line-height:1.08}.hdc-rol h2{font-size:clamp(1.5rem,1.3rem + .85vw,2.125rem);line-height:1.15}.hdc-rol h3{font-family:var(--font-sans);font-size:1.1875rem;font-weight:650;letter-spacing:-.005em}.hdc-rol .eyebrow,.hdc-rol .rol-eyebrow{font-size:.8125rem}.hdc-rol .badge,.hdc-rol .eyebrow,.hdc-rol .rol-eyebrow{color:var(--muted);font-weight:600;letter-spacing:0;text-transform:none}.hdc-rol .badge{border-color:var(--border-strong);border-radius:999px;font-size:.75rem}.hdc-rol button{min-height:2.5rem;border-color:var(--border-strong);border-radius:var(--radius-sm);font-weight:600}.hdc-rol button:hover{border-color:var(--field);background:var(--surface-2)}.hdc-rol .primary{border-color:var(--accent-fill);border-radius:var(--radius-sm);background:var(--accent-fill);color:#fff;font-weight:600}.hdc-rol .primary:hover{border-color:var(--accent-600);background:var(--accent-600);color:#fff}.hdc-rol input,.hdc-rol select,.hdc-rol textarea{max-width:100%;border:1px solid var(--field);border-radius:var(--radius-sm);background-color:var(--inset);color:var(--foreground)}.hdc-rol select{appearance:none;padding-right:2.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a9b5ad' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .625rem center;background-size:1rem}.hdc-rol input:focus,.hdc-rol select:focus,.hdc-rol textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 26%,transparent);outline:none}.hdc-rol :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hdc-rol .panel,.hdc-rol .system-card,.hdc-rol .world-card{border-color:var(--border);border-radius:var(--radius-lg);background-color:var(--surface)}.hdc-rol .panel:hover,.hdc-rol .world-card:hover{border-color:var(--border-strong)}.hdc-rol .system-card.panel{display:block;min-height:310px;cursor:pointer}.hdc-rol .system-card-copy{background:linear-gradient(transparent,rgb(5 10 8/.96))}.hdc-rol .system-card-copy h2{font-size:clamp(1.625rem,1.3rem + 1.2vw,2.25rem)}.hdc-rol .system-card-copy p,.hdc-rol .world-copy p{color:var(--muted)}.hdc-rol .world-copy>.primary{display:inline-flex;padding:.625rem 1rem}.hdc-rol .board-dialog-backdrop,.hdc-rol .guide-backdrop,.hdc-rol .modal-overlay{z-index:100}.hdc-rol .board-dialog,.hdc-rol .guide-dialog,.hdc-rol .modal{border-color:var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);color:var(--foreground);box-shadow:var(--shadow-pop)}.hdc-rol .rol-world-agenda{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin:2rem 0;padding:1.5rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.hdc-rol .rol-world-agenda h2{margin:.25rem 0;font-size:1.5rem}.hdc-rol .rol-world-agenda p{flex:1;min-width:14rem;color:var(--muted)}.hdc-rol .rol-world-agenda a{color:var(--accent);font-weight:600}.hdc-rol .rol-world-agenda ul{flex:1;padding:0;list-style:none}.hdc-rol .rol-world-agenda li span{display:block;color:var(--muted);font-size:.8125rem}.hdc-rol:has(.world-map-scene){overflow:visible}.hdc-rol .world-map-scene{position:relative;inset:auto;z-index:auto;min-height:0;overflow:clip;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.hdc-rol .world-scene-bar{flex-wrap:wrap;height:auto;min-height:4.75rem;padding:1rem 1.25rem;border-color:var(--border);background:var(--surface);color:var(--foreground)}.hdc-rol .world-scene-bar h1{font-size:clamp(1.625rem,1.3rem + 1.2vw,2.25rem);white-space:normal}.hdc-rol .world-scene-bar small{color:var(--muted);font-size:.8125rem}.hdc-rol .world-map-scene .world-home-grid{grid-template-columns:minmax(0,1fr) minmax(260px,340px);align-items:start;max-height:none}.hdc-rol .world-map-scene .world-home-side{height:auto;overflow:visible;border-color:var(--border);background:var(--surface)}.hdc-rol .world-map-scene .world-home-map,.hdc-rol .world-scene-mapbar{background:var(--background)}.hdc-rol .world-scene-mapbar{padding:.5rem .75rem}.hdc-rol .world-scene-mapbar select{max-width:100%;min-height:2.25rem;font-size:.875rem}.hdc-rol .world-map-scene .map-viewport{flex:auto;height:570px;min-height:450px;background-color:var(--background)}.hdc-rol .world-map-scene .world-home-map:has(.world-home-empty){align-self:stretch}.hdc-rol .world-map-scene .world-home-empty{flex:1;display:grid;place-content:center;min-height:16rem;padding:2rem;color:var(--muted);text-align:center}.hdc-rol .world-map-scene .world-home-hq{padding:1.25rem;border-color:var(--border)}.hdc-rol .world-three-doors .world-door{border-color:var(--border);background:var(--surface);white-space:normal}.hdc-rol .world-door strong{font-family:var(--font-display);font-size:1.375rem}.hdc-rol .world-door>span{padding:1rem}.hdc-rol .world-door span span{color:var(--muted)}.hdc-rol .world-door small{display:none}.hdc-rol .world-scene-details,.hdc-rol .world-scene-locations{border-color:var(--border);background:var(--surface)}.hdc-rol .world-activity h2{font-size:1.5rem}.hdc-rol .world-activity h3{font-size:1.0625rem}.hdc-rol .world-scene-options summary{color:var(--muted)}.hdc-rol .world-map-scene .world-home-place{background:var(--surface-2);color:var(--foreground)}.hdc-rol .character-portal{border-color:var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:none}.hdc-rol .character-portal[open]{border-color:var(--border-strong)}.hdc-rol .character-portal-summary{grid-template-columns:64px minmax(0,1fr);grid-template-areas:"art copy" "art action";row-gap:.375rem;column-gap:1rem;min-height:0;background:none}.hdc-rol .character-portal-art{grid-area:art;width:64px;height:64px}.hdc-rol .character-portal-copy{grid-area:copy}.hdc-rol .character-portal-copy small{color:var(--muted);font-size:.8125rem;font-weight:600;letter-spacing:0;text-transform:none}.hdc-rol .character-portal-copy strong{color:var(--foreground);font:700 1.375rem/1.15 var(--font-display);overflow-wrap:break-word;hyphens:auto}.hdc-rol .character-portal-copy>span{color:var(--muted);font-size:.8125rem}.hdc-rol .character-portal-action{grid-area:action;color:var(--accent);font-size:.875rem;font-weight:600}.hdc-rol .character-portal-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (max-width:850px){.hdc-rol .world-map-scene .world-home-grid{display:flex;flex-direction:column}.hdc-rol .world-map-scene .world-home-side,.hdc-rol .world-map-scene .world-three-doors{position:static;display:flex;width:100%;max-width:100%;border-left:0}.hdc-rol .world-map-scene .world-home-map{order:1}.hdc-rol .world-map-scene .world-home-side{order:2}.hdc-rol .world-map-scene .map-viewport{height:440px;min-height:320px}.hdc-rol .world-door-nav{gap:.625rem;padding:1rem}.hdc-rol .world-door-nav .world-door{width:100%}}@media (max-width:760px){.hdc-rol .content{padding:1.5rem 1rem 3rem}.hdc-rol .rol-intro{padding-top:2rem}.hdc-rol .systems-gallery{grid-template-columns:minmax(0,1fr)}.hdc-rol .system-card.panel{min-height:270px}.hdc-rol .rol-world-agenda{padding:1.125rem}}.hdc-rol:has(.world-map-scene) .journey-nav{display:flex}.hdc-rol .world-door strong{color:var(--foreground)}.hdc-rol .how-it-works-trigger{min-height:2.75rem;margin-top:0;padding:.625rem 1.125rem;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--foreground);font-size:.9375rem}.hdc-rol .how-it-works-trigger:hover{border-color:var(--field);background:var(--surface-3)}.hdc-rol .meeting-place-card h4{color:var(--muted);font-size:.8125rem;font-weight:600;letter-spacing:0;text-transform:none}.hdc-rol .guide-top{color:var(--muted);font-size:.875rem;font-weight:600;letter-spacing:0}.hdc-rol .character-editor-tabs,.hdc-rol .character-profile-tabs,.hdc-rol .world-admin-nav{display:flex;flex-direction:row;flex-wrap:nowrap;gap:1.25rem;overflow-x:auto;border-bottom:1px solid var(--border);scrollbar-width:none}.hdc-rol .character-editor-tabs button,.hdc-rol .character-profile-tabs button,.hdc-rol .world-admin-nav button{flex:0 0 auto;min-height:2.75rem;margin-bottom:-1px;padding:.625rem 0;border:0;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--muted);font-size:.9375rem;font-weight:600;white-space:nowrap}.hdc-rol .character-editor-tabs button:hover,.hdc-rol .character-profile-tabs button:hover,.hdc-rol .world-admin-nav button:hover{background:none;color:var(--foreground)}.hdc-rol .character-editor-tabs button.active,.hdc-rol .character-profile-tabs button.active,.hdc-rol .world-admin-nav button[aria-pressed=true]{border-bottom-color:var(--accent);background:none;color:var(--foreground)}.hdc-rol dialog.character-message-dialog,.hdc-rol dialog.place-window{position:fixed;inset:0;margin:auto;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overscroll-behavior:contain}.hdc-rol .character-message-dialog>header>div{flex:1;min-width:0;overflow-wrap:anywhere}.hdc-rol .character-message-dialog>header>button,.hdc-rol .editor-dialog-heading>button{flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;justify-content:center}.hdc-rol dialog.editor-dialog{padding-bottom:0}.hdc-rol .character-editor-actions,.hdc-rol .editor-dialog form>.editor-actions{border-top:1px solid var(--border)}@media (max-width:760px){.hdc-rol dialog.editor-dialog{height:var(--editor-height,100dvh)}}