/* Consistent frames, readable controls and narrow-screen reflow. */
.header-frame::before{inset:-6%;background:#efb6a3;opacity:.08;mask:url('dus-calligraphy.png') center/cover no-repeat;-webkit-mask:url('dus-calligraphy.png') center/cover no-repeat;animation:header-ink-drift 28s ease-in-out infinite alternate}
@keyframes header-ink-drift{from{transform:translate(-1%,0) rotate(-1deg)}to{transform:translate(1%,1%) rotate(1deg)}}
.header-frame{padding:32px;min-height:160px}.header-frame h1{overflow-wrap:anywhere}.header-frame>*{position:relative;z-index:1}
.brand-name{white-space:normal;line-height:1.2}.brand-name small{line-height:1.5}
.public-nav .links a{font-size:1rem}.public-nav .links{gap:8px}.public-nav .brand-lockup{flex-shrink:0}
button,a,input,textarea,select{touch-action:manipulation}.textbtn{min-height:44px;display:inline-flex;align-items:center}.select-trigger,.select-option{min-height:48px}
.form>*{min-width:0}.form input,.form textarea{font-size:1rem}.form textarea{line-height:1.6}
button:disabled{cursor:not-allowed;opacity:.55}.card .row,.modalhead,.heading{flex-wrap:wrap}.message{overflow-wrap:anywhere}.message.mine{margin-left:24px}
.tablewrap{max-width:100%;overscroll-behavior-x:contain}.tablewrap:focus-visible{outline:2px solid #ededed;outline-offset:4px}
dialog{max-height:calc(100dvh - 32px);overflow-y:auto}h1{text-wrap:balance}.card h2,.card h3{overflow-wrap:anywhere}
.footer-address-links a{overflow-wrap:anywhere}.compact-footer .social-icons{display:flex;flex-wrap:wrap;gap:8px}.compact-footer .social-icons a{flex:0 0 44px;width:44px;height:44px}
@media(max-width:700px){.topbar{height:auto;gap:8px}.topbar .role{order:2;width:100%;justify-content:center}.topbar .role button{flex:1;min-height:44px}.topbar .user .badge{display:none}.topbar .dashboard-public-link{font-size:1rem}.workspace{padding:24px 16px}.header-frame{padding:24px;min-height:0}.public-nav .links{display:grid;grid-template-columns:1fr 1fr;width:100%}.public-nav .links a{justify-content:center;min-height:48px;font-size:1rem}.public-nav .links a.btn{padding:10px 12px}.public-nav .brand{font-size:24px}.heading h1{font-size:1.75rem}.message.mine{margin-left:12px}.cardtop{align-items:start}.cardtop h2{flex:1 1 150px}.cardtop .textbtn{max-width:100%}.form{grid-template-columns:minmax(0,1fr)}.signup-actions{flex-wrap:wrap}.signup-actions button{flex:1 1 110px}.footer-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.compact-footer .footer-address-links{grid-template-columns:1fr}.compact-footer .social-icons a{width:44px}.compact-footer-notices{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.header-frame::before{animation:none}}
@media(prefers-contrast:more),(forced-colors:active){.header-frame::before{display:none}}
.modalhead{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:start;gap:12px}.modalhead h2{margin:0}.modalhead .close{width:44px;height:44px;min-height:44px;border-radius:9999px;display:grid;place-items:center}
.auth-layout a:not(.btn){display:inline-flex;align-items:center;min-height:44px}
/* Keep text readable throughout transitions, including slower devices. */
@keyframes content-in{from{opacity:1;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes page-in{from{opacity:1}to{opacity:1}}
