/* One quiet motion language for the sheet, campaign and social tools. */
:root{--motion-fast:160ms;--motion-normal:240ms;--motion-slow:320ms;--motion-ease:cubic-bezier(.2,.7,.2,1)}
body,body::before,body::after,.sidebar,.topbar,.sheet-tabs,.sheet-toolbar,.sheet-dock,
button,a,input,textarea,select,label,summary,article,section,th,td,h1,h2,h3,p,span,svg{
 transition-property:background-color,color,border-color,box-shadow,fill,stroke,opacity,transform;
 transition-duration:var(--motion-fast);
 transition-timing-function:var(--motion-ease);
}
body,.sidebar,.topbar,.sheet-tabs,.sheet-toolbar,.sheet-dock,.sheet-share-icon{transition-duration:var(--motion-slow)}
button:active:not(:disabled),.site-action:active:not(:disabled){transform:scale(.97)}
input,textarea,select{transition-property:background-color,color,border-color,box-shadow}
input[type="range"]{transition:none}
.sheet-panel:not([hidden]){animation:panel-reveal var(--motion-normal) var(--motion-ease)}
.site-view:not([hidden]){animation:surface-reveal var(--motion-normal) var(--motion-ease)}
.toast:not([hidden]),.form-error:not([hidden]){animation:surface-reveal var(--motion-fast) ease-out}
.collapsible-card .card-content{display:grid;grid-template-rows:1fr;max-height:none;overflow:visible;opacity:1;transition:grid-template-rows var(--motion-normal) var(--motion-ease),opacity var(--motion-fast) ease}
.card-content-inner{min-height:0;overflow:hidden}
.collapsible-card.is-collapsed .card-content{grid-template-rows:0fr;max-height:none;opacity:0}
.collapse-section-button{transition:transform var(--motion-normal) var(--motion-ease),background-color var(--motion-fast)}
.collapse-section-button.down{transform:rotate(180deg)}
.collapse-section-button.up::before,.collapse-section-button.down::before{border:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid var(--accent)}
.collapse-section-button:hover::before,.collapse-section-button:focus-visible::before{border-bottom-color:var(--accent-hover)}
.roll-modal,.sheet-menu-modal,.rules-help-modal,.codex-modal{
 display:flex;opacity:0;visibility:hidden;pointer-events:none;
 transition:opacity var(--motion-normal) ease,visibility 0s linear var(--motion-normal);
}
.roll-modal.open,.sheet-menu-modal.open,.rules-help-modal.open,.codex-modal.open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.codex-modal.open{pointer-events:none}
.codex-modal:not(.open) .codex-panel{pointer-events:none}
.roll-panel,.sheet-menu-panel,.rules-help-panel,.codex-panel{transform:translateY(12px) scale(.985);transition:transform var(--motion-normal) var(--motion-ease),border-color var(--motion-fast),box-shadow var(--motion-fast)}
.roll-modal.open .roll-panel,.sheet-menu-modal.open .sheet-menu-panel,.rules-help-modal.open .rules-help-panel,.codex-modal.open .codex-panel{transform:none}
.codex-panel.is-moving,.codex-panel.is-resizing{transition:none}
dialog.campaign-dialog{opacity:0;transform:translateY(12px) scale(.985);transition:opacity var(--motion-normal) ease,transform var(--motion-normal) var(--motion-ease);transition:opacity var(--motion-normal) ease,transform var(--motion-normal) var(--motion-ease),display var(--motion-normal) allow-discrete,overlay var(--motion-normal) allow-discrete}
dialog.campaign-dialog[open]{opacity:1;transform:none}
dialog.campaign-dialog::backdrop{background:#15121b00;transition:background-color var(--motion-normal),display var(--motion-normal) allow-discrete,overlay var(--motion-normal) allow-discrete}
dialog.campaign-dialog[open]::backdrop{background:#15121b99}
@starting-style{dialog.campaign-dialog[open]{opacity:0;transform:translateY(12px) scale(.985)}dialog.campaign-dialog[open]::backdrop{background:#15121b00}}
details[open]>.codex-group-items,details[open]>.codex-subgroup-items,details[open]>.portrait-controls-body{animation:surface-reveal var(--motion-normal) ease}
.sheet-reset-dialog{max-width:520px}
.sheet-reset-dialog .dialog-close{width:40px;min-width:40px;flex:0 0 40px;height:40px;padding:0}
.sheet-reset-dialog .campaign-dialog-head h2{font-family:inherit;font-size:20px;line-height:1.3;letter-spacing:0;text-transform:none}
.sheet-reset-dialog .dialog-actions .site-action{min-height:44px}
.sheet-reset-dialog p{line-height:1.6}
@keyframes surface-reveal{from{opacity:0}to{opacity:1}}
@keyframes panel-reveal{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:760px){
 .sidebar{transition:transform var(--motion-normal) var(--motion-ease),background-color var(--motion-slow)}
 .mobile-shade{display:block;position:fixed;inset:0;background:#20000e88;z-index:1900;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--motion-normal),visibility 0s var(--motion-normal)}
 .mobile-shade.open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 body.has-class-emblem::before{-webkit-mask-position:center!important;mask-position:center!important}
 body.has-nation-pattern::after{-webkit-mask-position:center 0!important;mask-position:center 0!important}
}
@media print{.collapsible-card .card-content{display:block;opacity:1}.card-content-inner{overflow:visible}.roll-modal,.sheet-menu-modal,.rules-help-modal{display:none!important}}
